- Update version to 0.4.20 in all components - Regenerate OpenAPI spec and client SDKs - Python packages: hindsight-api, hindsight-dev, hindsight-all, hindsight-embed - Python client: hindsight-clients/python - TypeScript client: hindsight-clients/typescript - Rust CLI: hindsight-cli - Control Plane: hindsight-control-plane - Helm chart - Sync documentation to version-0.4
5527 lines
148 KiB
YAML
5527 lines
148 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
contact:
|
|
name: Memory System
|
|
description: HTTP API for Hindsight
|
|
license:
|
|
name: Apache 2.0
|
|
url: https://www.apache.org/licenses/LICENSE-2.0.html
|
|
title: Hindsight HTTP API
|
|
version: 0.4.20
|
|
servers:
|
|
- url: /
|
|
paths:
|
|
/health:
|
|
get:
|
|
description: Checks the health of the API and database connection
|
|
operationId: health_endpoint_health_get
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
description: Successful Response
|
|
summary: Health check endpoint
|
|
tags:
|
|
- Monitoring
|
|
/version:
|
|
get:
|
|
description: Returns API version information and enabled feature flags. Use
|
|
this to check which capabilities are available in this deployment.
|
|
operationId: get_version
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VersionResponse'
|
|
description: Successful Response
|
|
summary: Get API version and feature flags
|
|
tags:
|
|
- Monitoring
|
|
/metrics:
|
|
get:
|
|
description: Exports metrics in Prometheus format for scraping
|
|
operationId: metrics_endpoint_metrics_get
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
description: Successful Response
|
|
summary: Prometheus metrics endpoint
|
|
tags:
|
|
- Monitoring
|
|
/v1/default/banks/{bank_id}/graph:
|
|
get:
|
|
description: "Retrieve graph data for visualization, optionally filtered by\
|
|
\ type (world/experience/opinion)."
|
|
operationId: get_graph
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: true
|
|
in: query
|
|
name: type
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 1000
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: q
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: tags
|
|
required: false
|
|
schema:
|
|
items:
|
|
nullable: true
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: tags_match
|
|
required: false
|
|
schema:
|
|
default: all_strict
|
|
title: Tags Match
|
|
type: string
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GraphDataResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get memory graph data
|
|
tags:
|
|
- Memory
|
|
/v1/default/banks/{bank_id}/memories/list:
|
|
get:
|
|
description: "List memory units with pagination and optional full-text search.\
|
|
\ Supports filtering by type. Results are sorted by most recent first (mentioned_at\
|
|
\ DESC, then created_at DESC)."
|
|
operationId: list_memories
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: true
|
|
in: query
|
|
name: type
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: q
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 100
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: offset
|
|
required: false
|
|
schema:
|
|
default: 0
|
|
title: Offset
|
|
type: integer
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ListMemoryUnitsResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List memory units
|
|
tags:
|
|
- Memory
|
|
/v1/default/banks/{bank_id}/memories/{memory_id}:
|
|
get:
|
|
description: "Get a single memory unit by ID with all its metadata including\
|
|
\ entities and tags. Note: the 'history' field is deprecated and always returns\
|
|
\ an empty list - use GET /memories/{memory_id}/history instead."
|
|
operationId: get_memory
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: memory_id
|
|
required: true
|
|
schema:
|
|
title: Memory Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get memory unit
|
|
tags:
|
|
- Memory
|
|
/v1/default/banks/{bank_id}/memories/{memory_id}/history:
|
|
get:
|
|
description: "Get the full history of an observation, with each change's source\
|
|
\ facts resolved to their text."
|
|
operationId: get_observation_history
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: memory_id
|
|
required: true
|
|
schema:
|
|
title: Memory Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get observation history
|
|
tags:
|
|
- Memory
|
|
/v1/default/banks/{bank_id}/memories/recall:
|
|
post:
|
|
description: |-
|
|
Recall memory using semantic similarity and spreading activation.
|
|
|
|
The type parameter is optional and must be one of:
|
|
- `world`: General knowledge about people, places, events, and things that happen
|
|
- `experience`: Memories about experience, conversations, actions taken, and tasks performed
|
|
operationId: recall_memories
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RecallRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RecallResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Recall memory
|
|
tags:
|
|
- Memory
|
|
/v1/default/banks/{bank_id}/reflect:
|
|
post:
|
|
description: |-
|
|
Reflect and formulate an answer using bank identity, world facts, and opinions.
|
|
|
|
This endpoint:
|
|
1. Retrieves experience (conversations and events)
|
|
2. Retrieves world facts relevant to the query
|
|
3. Retrieves existing opinions (bank's perspectives)
|
|
4. Uses LLM to formulate a contextual answer
|
|
5. Returns plain text answer and the facts used
|
|
operationId: reflect
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReflectRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReflectResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Reflect and generate answer
|
|
tags:
|
|
- Memory
|
|
/v1/default/banks:
|
|
get:
|
|
description: Get a list of all agents with their profiles
|
|
operationId: list_banks
|
|
parameters:
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankListResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List all memory banks
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}/stats:
|
|
get:
|
|
description: Get statistics about nodes and links for a specific agent
|
|
operationId: get_agent_stats
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankStatsResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get statistics for memory bank
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}/entities:
|
|
get:
|
|
description: "List all entities (people, organizations, etc.) known by the bank,\
|
|
\ ordered by mention count. Supports pagination."
|
|
operationId: list_entities
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- description: Maximum number of entities to return
|
|
explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 100
|
|
description: Maximum number of entities to return
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- description: Offset for pagination
|
|
explode: true
|
|
in: query
|
|
name: offset
|
|
required: false
|
|
schema:
|
|
default: 0
|
|
description: Offset for pagination
|
|
title: Offset
|
|
type: integer
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EntityListResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List entities
|
|
tags:
|
|
- Entities
|
|
/v1/default/banks/{bank_id}/entities/{entity_id}:
|
|
get:
|
|
description: Get detailed information about an entity including observations
|
|
(mental model).
|
|
operationId: get_entity
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: entity_id
|
|
required: true
|
|
schema:
|
|
title: Entity Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EntityDetailResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get entity details
|
|
tags:
|
|
- Entities
|
|
/v1/default/banks/{bank_id}/entities/{entity_id}/regenerate:
|
|
post:
|
|
deprecated: true
|
|
description: This endpoint is deprecated. Entity observations have been replaced
|
|
by mental models.
|
|
operationId: regenerate_entity_observations
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: entity_id
|
|
required: true
|
|
schema:
|
|
title: Entity Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EntityDetailResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Regenerate entity observations (deprecated)
|
|
tags:
|
|
- Entities
|
|
/v1/default/banks/{bank_id}/mental-models:
|
|
get:
|
|
description: List user-curated living documents that stay current.
|
|
operationId: list_mental_models
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- description: Filter by tags
|
|
explode: true
|
|
in: query
|
|
name: tags
|
|
required: false
|
|
schema:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
style: form
|
|
- description: How to match tags
|
|
explode: true
|
|
in: query
|
|
name: tags_match
|
|
required: false
|
|
schema:
|
|
default: any
|
|
description: How to match tags
|
|
enum:
|
|
- any
|
|
- all
|
|
- exact
|
|
title: Tags Match
|
|
type: string
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 100
|
|
maximum: 1000
|
|
minimum: 1
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: offset
|
|
required: false
|
|
schema:
|
|
default: 0
|
|
minimum: 0
|
|
title: Offset
|
|
type: integer
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MentalModelListResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List mental models
|
|
tags:
|
|
- Mental Models
|
|
post:
|
|
description: Create a mental model by running reflect with the source query
|
|
in the background. Returns an operation ID to track progress. The content
|
|
is auto-generated by the reflect endpoint. Use the operations endpoint to
|
|
check completion status.
|
|
operationId: create_mental_model
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateMentalModelRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateMentalModelResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Create mental model
|
|
tags:
|
|
- Mental Models
|
|
/v1/default/banks/{bank_id}/mental-models/{mental_model_id}:
|
|
delete:
|
|
description: Delete a mental model.
|
|
operationId: delete_mental_model
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: mental_model_id
|
|
required: true
|
|
schema:
|
|
title: Mental Model Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Delete mental model
|
|
tags:
|
|
- Mental Models
|
|
get:
|
|
description: Get a specific mental model by ID.
|
|
operationId: get_mental_model
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: mental_model_id
|
|
required: true
|
|
schema:
|
|
title: Mental Model Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MentalModelResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get mental model
|
|
tags:
|
|
- Mental Models
|
|
patch:
|
|
description: Update a mental model's name and/or source query.
|
|
operationId: update_mental_model
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: mental_model_id
|
|
required: true
|
|
schema:
|
|
title: Mental Model Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateMentalModelRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MentalModelResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Update mental model
|
|
tags:
|
|
- Mental Models
|
|
/v1/default/banks/{bank_id}/mental-models/{mental_model_id}/history:
|
|
get:
|
|
description: "Get the refresh history of a mental model, showing content changes\
|
|
\ over time."
|
|
operationId: get_mental_model_history
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: mental_model_id
|
|
required: true
|
|
schema:
|
|
title: Mental Model Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get mental model history
|
|
tags:
|
|
- Mental Models
|
|
/v1/default/banks/{bank_id}/mental-models/{mental_model_id}/refresh:
|
|
post:
|
|
description: Submit an async task to re-run the source query through reflect
|
|
and update the content.
|
|
operationId: refresh_mental_model
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: mental_model_id
|
|
required: true
|
|
schema:
|
|
title: Mental Model Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AsyncOperationSubmitResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Refresh mental model
|
|
tags:
|
|
- Mental Models
|
|
/v1/default/banks/{bank_id}/directives:
|
|
get:
|
|
description: List hard rules that are injected into prompts.
|
|
operationId: list_directives
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- description: Filter by tags
|
|
explode: true
|
|
in: query
|
|
name: tags
|
|
required: false
|
|
schema:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
style: form
|
|
- description: How to match tags
|
|
explode: true
|
|
in: query
|
|
name: tags_match
|
|
required: false
|
|
schema:
|
|
default: any
|
|
description: How to match tags
|
|
enum:
|
|
- any
|
|
- all
|
|
- exact
|
|
title: Tags Match
|
|
type: string
|
|
style: form
|
|
- description: Only return active directives
|
|
explode: true
|
|
in: query
|
|
name: active_only
|
|
required: false
|
|
schema:
|
|
default: true
|
|
description: Only return active directives
|
|
title: Active Only
|
|
type: boolean
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 100
|
|
maximum: 1000
|
|
minimum: 1
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: offset
|
|
required: false
|
|
schema:
|
|
default: 0
|
|
minimum: 0
|
|
title: Offset
|
|
type: integer
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DirectiveListResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List directives
|
|
tags:
|
|
- Directives
|
|
post:
|
|
description: Create a hard rule that will be injected into prompts.
|
|
operationId: create_directive
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateDirectiveRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DirectiveResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Create directive
|
|
tags:
|
|
- Directives
|
|
/v1/default/banks/{bank_id}/directives/{directive_id}:
|
|
delete:
|
|
description: Delete a directive.
|
|
operationId: delete_directive
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: directive_id
|
|
required: true
|
|
schema:
|
|
title: Directive Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Delete directive
|
|
tags:
|
|
- Directives
|
|
get:
|
|
description: Get a specific directive by ID.
|
|
operationId: get_directive
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: directive_id
|
|
required: true
|
|
schema:
|
|
title: Directive Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DirectiveResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get directive
|
|
tags:
|
|
- Directives
|
|
patch:
|
|
description: Update a directive's properties.
|
|
operationId: update_directive
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: directive_id
|
|
required: true
|
|
schema:
|
|
title: Directive Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateDirectiveRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DirectiveResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Update directive
|
|
tags:
|
|
- Directives
|
|
/v1/default/banks/{bank_id}/documents:
|
|
get:
|
|
description: List documents with pagination and optional search. Documents are
|
|
the source content from which memory units are extracted.
|
|
operationId: list_documents
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- description: Case-insensitive substring filter on document ID (e.g. 'report'
|
|
matches 'report-2024')
|
|
explode: true
|
|
in: query
|
|
name: q
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- description: Filter documents by tags
|
|
explode: true
|
|
in: query
|
|
name: tags
|
|
required: false
|
|
schema:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
style: form
|
|
- description: "How to match tags: 'any', 'all', 'any_strict', 'all_strict'"
|
|
explode: true
|
|
in: query
|
|
name: tags_match
|
|
required: false
|
|
schema:
|
|
default: any_strict
|
|
description: "How to match tags: 'any', 'all', 'any_strict', 'all_strict'"
|
|
title: Tags Match
|
|
type: string
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 100
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- explode: true
|
|
in: query
|
|
name: offset
|
|
required: false
|
|
schema:
|
|
default: 0
|
|
title: Offset
|
|
type: integer
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ListDocumentsResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List documents
|
|
tags:
|
|
- Documents
|
|
/v1/default/banks/{bank_id}/documents/{document_id}:
|
|
delete:
|
|
description: |-
|
|
Delete a document and all its associated memory units and links.
|
|
|
|
This will cascade delete:
|
|
- The document itself
|
|
- All memory units extracted from this document
|
|
- All links (temporal, semantic, entity) associated with those memory units
|
|
|
|
This operation cannot be undone.
|
|
operationId: delete_document
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: document_id
|
|
required: true
|
|
schema:
|
|
title: Document Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteDocumentResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Delete a document
|
|
tags:
|
|
- Documents
|
|
get:
|
|
description: Get a specific document including its original text
|
|
operationId: get_document
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: document_id
|
|
required: true
|
|
schema:
|
|
title: Document Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DocumentResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get document details
|
|
tags:
|
|
- Documents
|
|
patch:
|
|
description: |-
|
|
Update mutable fields on a document without re-processing its content.
|
|
|
|
**Tags** (`tags`): Propagated to all associated memory units. Observations derived from those units are invalidated and queued for re-consolidation under the new tags. Co-source memories from other documents that shared those observations are also reset.
|
|
|
|
At least one field must be provided.
|
|
operationId: update_document
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: document_id
|
|
required: true
|
|
schema:
|
|
title: Document Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateDocumentRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateDocumentResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Update document
|
|
tags:
|
|
- Documents
|
|
/v1/default/banks/{bank_id}/tags:
|
|
get:
|
|
description: "List all unique tags in a memory bank with usage counts. Supports\
|
|
\ wildcard search using '*' (e.g., 'user:*', '*-fred', 'tag*-2'). Case-insensitive."
|
|
operationId: list_tags
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- description: "Wildcard pattern to filter tags (e.g., 'user:*' for user:alice,\
|
|
\ '*-admin' for role-admin). Use '*' as wildcard. Case-insensitive."
|
|
explode: true
|
|
in: query
|
|
name: q
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- description: Maximum number of tags to return
|
|
explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 100
|
|
description: Maximum number of tags to return
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- description: Offset for pagination
|
|
explode: true
|
|
in: query
|
|
name: offset
|
|
required: false
|
|
schema:
|
|
default: 0
|
|
description: Offset for pagination
|
|
title: Offset
|
|
type: integer
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ListTagsResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List tags
|
|
tags:
|
|
- Memory
|
|
/v1/default/chunks/{chunk_id}:
|
|
get:
|
|
description: Get a specific chunk by its ID
|
|
operationId: get_chunk
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: chunk_id
|
|
required: true
|
|
schema:
|
|
title: Chunk Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChunkResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get chunk details
|
|
tags:
|
|
- Documents
|
|
/v1/default/banks/{bank_id}/operations:
|
|
get:
|
|
description: "Get a list of async operations for a specific agent, with optional\
|
|
\ filtering by status and operation type. Results are sorted by most recent\
|
|
\ first."
|
|
operationId: list_operations
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- description: "Filter by status: pending, completed, or failed"
|
|
explode: true
|
|
in: query
|
|
name: status
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- description: "Filter by operation type: retain, consolidation, refresh_mental_model,\
|
|
\ file_convert_retain, webhook_delivery"
|
|
explode: true
|
|
in: query
|
|
name: type
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- description: Maximum number of operations to return
|
|
explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 20
|
|
description: Maximum number of operations to return
|
|
maximum: 100
|
|
minimum: 1
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- description: Number of operations to skip
|
|
explode: true
|
|
in: query
|
|
name: offset
|
|
required: false
|
|
schema:
|
|
default: 0
|
|
description: Number of operations to skip
|
|
minimum: 0
|
|
title: Offset
|
|
type: integer
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/OperationsListResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List async operations
|
|
tags:
|
|
- Operations
|
|
/v1/default/banks/{bank_id}/operations/{operation_id}:
|
|
delete:
|
|
description: Cancel a pending async operation by removing it from the queue
|
|
operationId: cancel_operation
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: operation_id
|
|
required: true
|
|
schema:
|
|
title: Operation Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CancelOperationResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Cancel a pending async operation
|
|
tags:
|
|
- Operations
|
|
get:
|
|
description: "Get the status of a specific async operation. Returns 'pending',\
|
|
\ 'completed', or 'failed'. Completed operations are removed from storage,\
|
|
\ so 'completed' means the operation finished successfully."
|
|
operationId: get_operation_status
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: operation_id
|
|
required: true
|
|
schema:
|
|
title: Operation Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/OperationStatusResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get operation status
|
|
tags:
|
|
- Operations
|
|
/v1/default/banks/{bank_id}/operations/{operation_id}/retry:
|
|
post:
|
|
description: Re-queue a failed async operation so the worker picks it up again
|
|
operationId: retry_operation
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: operation_id
|
|
required: true
|
|
schema:
|
|
title: Operation Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RetryOperationResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Retry a failed async operation
|
|
tags:
|
|
- Operations
|
|
/v1/default/banks/{bank_id}/profile:
|
|
get:
|
|
deprecated: true
|
|
description: Get disposition traits and mission for a memory bank. Auto-creates
|
|
agent with defaults if not exists.
|
|
operationId: get_bank_profile
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankProfileResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get memory bank profile
|
|
tags:
|
|
- Banks
|
|
put:
|
|
deprecated: true
|
|
description: "Update bank's disposition traits (skepticism, literalism, empathy)"
|
|
operationId: update_bank_disposition
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateDispositionRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankProfileResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Update memory bank disposition
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}/background:
|
|
post:
|
|
deprecated: true
|
|
description: "Deprecated: Use PUT /mission instead. This endpoint now updates\
|
|
\ the mission field."
|
|
operationId: add_bank_background
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AddBackgroundRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BackgroundResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Add/merge memory bank background (deprecated)
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}:
|
|
delete:
|
|
description: "Delete an entire memory bank including all memories, entities,\
|
|
\ documents, and the bank profile itself. This is a destructive operation\
|
|
\ that cannot be undone."
|
|
operationId: delete_bank
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Delete memory bank
|
|
tags:
|
|
- Banks
|
|
patch:
|
|
description: Partially update an agent's profile. Only provided fields will
|
|
be updated.
|
|
operationId: update_bank
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateBankRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankProfileResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Partial update memory bank
|
|
tags:
|
|
- Banks
|
|
put:
|
|
description: Create a new agent or update existing agent with disposition and
|
|
mission. Auto-fills missing fields with defaults.
|
|
operationId: create_or_update_bank
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateBankRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankProfileResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Create or update memory bank
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}/observations:
|
|
delete:
|
|
description: Delete all observations for a memory bank. This is useful for resetting
|
|
the consolidated knowledge.
|
|
operationId: clear_observations
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Clear all observations
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}/consolidation/recover:
|
|
post:
|
|
description: Reset all memories that were permanently marked as failed during
|
|
consolidation (after exhausting all LLM retries and adaptive batch splitting)
|
|
so they are picked up again on the next consolidation run. Does not delete
|
|
any observations.
|
|
operationId: recover_consolidation
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RecoverConsolidationResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Recover failed consolidation
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}/memories/{memory_id}/observations:
|
|
delete:
|
|
description: Delete all observations derived from a specific memory and reset
|
|
it for re-consolidation. The memory itself is not deleted. A consolidation
|
|
job is triggered automatically so the memory will produce fresh observations
|
|
on the next consolidation run.
|
|
operationId: clear_memory_observations
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: memory_id
|
|
required: true
|
|
schema:
|
|
title: Memory Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ClearMemoryObservationsResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Clear observations for a memory
|
|
tags:
|
|
- Memory
|
|
/v1/default/banks/{bank_id}/config:
|
|
delete:
|
|
description: Reset bank configuration to defaults by removing all bank-specific
|
|
overrides. The bank will then use global and tenant-level configuration only.
|
|
operationId: reset_bank_config
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankConfigResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Reset bank configuration
|
|
tags:
|
|
- Banks
|
|
get:
|
|
description: Get fully resolved configuration for a bank including all hierarchical
|
|
overrides (global → tenant → bank). The 'config' field contains all resolved
|
|
config values. The 'overrides' field shows only bank-specific overrides.
|
|
operationId: get_bank_config
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankConfigResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Get bank configuration
|
|
tags:
|
|
- Banks
|
|
patch:
|
|
description: "Update configuration overrides for a bank. Only hierarchical fields\
|
|
\ can be overridden (LLM settings, retention parameters, etc.). Keys can be\
|
|
\ provided in Python field format (llm_provider) or environment variable format\
|
|
\ (HINDSIGHT_API_LLM_PROVIDER)."
|
|
operationId: update_bank_config
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankConfigUpdate'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BankConfigResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Update bank configuration
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}/consolidate:
|
|
post:
|
|
description: Run memory consolidation to create/update observations from recent
|
|
memories.
|
|
operationId: trigger_consolidation
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConsolidationResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Trigger consolidation
|
|
tags:
|
|
- Banks
|
|
/v1/default/banks/{bank_id}/webhooks:
|
|
get:
|
|
description: List all webhooks registered for a bank.
|
|
operationId: list_webhooks
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WebhookListResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List webhooks
|
|
tags:
|
|
- Webhooks
|
|
post:
|
|
description: Register a webhook endpoint to receive event notifications for
|
|
this bank.
|
|
operationId: create_webhook
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateWebhookRequest'
|
|
required: true
|
|
responses:
|
|
"201":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WebhookResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Register webhook
|
|
tags:
|
|
- Webhooks
|
|
/v1/default/banks/{bank_id}/webhooks/{webhook_id}:
|
|
delete:
|
|
description: Remove a registered webhook.
|
|
operationId: delete_webhook
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: webhook_id
|
|
required: true
|
|
schema:
|
|
title: Webhook Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Delete webhook
|
|
tags:
|
|
- Webhooks
|
|
patch:
|
|
description: Update one or more fields of a registered webhook. Only provided
|
|
fields are changed.
|
|
operationId: update_webhook
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: webhook_id
|
|
required: true
|
|
schema:
|
|
title: Webhook Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateWebhookRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WebhookResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Update webhook
|
|
tags:
|
|
- Webhooks
|
|
/v1/default/banks/{bank_id}/webhooks/{webhook_id}/deliveries:
|
|
get:
|
|
description: Inspect delivery history for a webhook (useful for debugging).
|
|
operationId: list_webhook_deliveries
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: path
|
|
name: webhook_id
|
|
required: true
|
|
schema:
|
|
title: Webhook Id
|
|
type: string
|
|
style: simple
|
|
- description: Maximum number of deliveries to return
|
|
explode: true
|
|
in: query
|
|
name: limit
|
|
required: false
|
|
schema:
|
|
default: 50
|
|
description: Maximum number of deliveries to return
|
|
maximum: 200
|
|
title: Limit
|
|
type: integer
|
|
style: form
|
|
- description: Pagination cursor (created_at of last item)
|
|
explode: true
|
|
in: query
|
|
name: cursor
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WebhookDeliveryListResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: List webhook deliveries
|
|
tags:
|
|
- Webhooks
|
|
/v1/default/banks/{bank_id}/memories:
|
|
delete:
|
|
description: "Delete memory units for a memory bank. Optionally filter by type\
|
|
\ (world, experience, opinion) to delete only specific types. This is a destructive\
|
|
\ operation that cannot be undone. The bank profile (disposition and background)\
|
|
\ will be preserved."
|
|
operationId: clear_bank_memories
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- description: "Optional fact type filter (world, experience, opinion)"
|
|
explode: true
|
|
in: query
|
|
name: type
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: form
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Clear memory bank memories
|
|
tags:
|
|
- Memory
|
|
post:
|
|
description: |-
|
|
Retain memory items with automatic fact extraction.
|
|
|
|
This is the main endpoint for storing memories. It supports both synchronous and asynchronous processing via the `async` parameter.
|
|
|
|
**Features:**
|
|
- Efficient batch processing
|
|
- Automatic fact extraction from natural language
|
|
- Entity recognition and linking
|
|
- Document tracking with automatic upsert (when document_id is provided)
|
|
- Temporal and semantic linking
|
|
- Optional asynchronous processing
|
|
|
|
**The system automatically:**
|
|
1. Extracts semantic facts from the content
|
|
2. Generates embeddings
|
|
3. Deduplicates similar facts
|
|
4. Creates temporal, semantic, and entity links
|
|
5. Tracks document metadata
|
|
|
|
**When `async=true`:** Returns immediately after queuing. Use the operations endpoint to monitor progress.
|
|
|
|
**When `async=false` (default):** Waits for processing to complete.
|
|
|
|
**Note:** If a memory item has a `document_id` that already exists, the old document and its memory units will be deleted before creating new ones (upsert behavior).
|
|
operationId: retain_memories
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RetainRequest'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RetainResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Retain memories
|
|
tags:
|
|
- Memory
|
|
/v1/default/banks/{bank_id}/files/retain:
|
|
post:
|
|
description: |-
|
|
Upload files (PDF, DOCX, etc.), convert them to markdown, and retain as memories.
|
|
|
|
This endpoint handles file upload, conversion, and memory creation in a single operation.
|
|
|
|
**Features:**
|
|
- Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription)
|
|
- Automatic file-to-markdown conversion using pluggable parsers
|
|
- Files stored in object storage (PostgreSQL by default, S3 for production)
|
|
- Each file becomes a separate document with optional metadata/tags
|
|
- Always processes asynchronously — returns operation IDs immediately
|
|
|
|
**The system automatically:**
|
|
1. Stores uploaded files in object storage
|
|
2. Converts files to markdown
|
|
3. Creates document records with file metadata
|
|
4. Extracts facts and creates memory units (same as regular retain)
|
|
|
|
Use the operations endpoint to monitor progress.
|
|
|
|
**Request format:** multipart/form-data with:
|
|
- `files`: One or more files to upload
|
|
- `request`: JSON string with FileRetainRequest model
|
|
|
|
**Parser selection:**
|
|
- Set `parser` in the request body to override the server default for all files.
|
|
- Set `parser` inside a `files_metadata` entry for per-file control.
|
|
- Pass a list (e.g. `['iris', 'markitdown']`) to define an ordered fallback chain — each parser is tried in sequence until one succeeds.
|
|
- Falls back to the server default (`HINDSIGHT_API_FILE_PARSER`) if not specified.
|
|
- Only parsers enabled on the server may be requested; others return HTTP 400.
|
|
operationId: file_retain
|
|
parameters:
|
|
- explode: false
|
|
in: path
|
|
name: bank_id
|
|
required: true
|
|
schema:
|
|
title: Bank Id
|
|
type: string
|
|
style: simple
|
|
- explode: false
|
|
in: header
|
|
name: authorization
|
|
required: false
|
|
schema:
|
|
nullable: true
|
|
type: string
|
|
style: simple
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/Body_file_retain'
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FileRetainResponse'
|
|
description: Successful Response
|
|
"422":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
description: Validation Error
|
|
summary: Convert files to memories
|
|
tags:
|
|
- Files
|
|
components:
|
|
schemas:
|
|
AddBackgroundRequest:
|
|
description: "Request model for adding/merging background information. Deprecated:\
|
|
\ use SetMissionRequest instead."
|
|
example:
|
|
content: I was born in Texas
|
|
update_disposition: true
|
|
properties:
|
|
content:
|
|
description: New background information to add or merge
|
|
title: Content
|
|
type: string
|
|
update_disposition:
|
|
default: true
|
|
description: Deprecated - disposition is no longer auto-inferred from mission
|
|
title: Update Disposition
|
|
type: boolean
|
|
required:
|
|
- content
|
|
title: AddBackgroundRequest
|
|
AsyncOperationSubmitResponse:
|
|
description: Response model for submitting an async operation.
|
|
example:
|
|
operation_id: 550e8400-e29b-41d4-a716-446655440000
|
|
status: queued
|
|
properties:
|
|
operation_id:
|
|
title: Operation Id
|
|
type: string
|
|
status:
|
|
title: Status
|
|
type: string
|
|
required:
|
|
- operation_id
|
|
- status
|
|
title: AsyncOperationSubmitResponse
|
|
BackgroundResponse:
|
|
description: "Response model for background update. Deprecated: use MissionResponse\
|
|
\ instead."
|
|
example:
|
|
mission: I was born in Texas. I am a software engineer with 10 years of experience.
|
|
properties:
|
|
mission:
|
|
title: Mission
|
|
type: string
|
|
background:
|
|
nullable: true
|
|
type: string
|
|
disposition:
|
|
$ref: '#/components/schemas/DispositionTraits'
|
|
required:
|
|
- mission
|
|
title: BackgroundResponse
|
|
BankConfigResponse:
|
|
description: Response model for bank configuration.
|
|
example:
|
|
bank_id: my-bank
|
|
config:
|
|
llm_model: gpt-4
|
|
llm_provider: openai
|
|
retain_extraction_mode: verbose
|
|
overrides:
|
|
llm_model: gpt-4
|
|
retain_extraction_mode: verbose
|
|
properties:
|
|
bank_id:
|
|
description: Bank identifier
|
|
title: Bank Id
|
|
type: string
|
|
config:
|
|
additionalProperties: {}
|
|
description: Fully resolved configuration with all hierarchical overrides
|
|
applied (Python field names)
|
|
title: Config
|
|
overrides:
|
|
additionalProperties: {}
|
|
description: Bank-specific configuration overrides only (Python field names)
|
|
title: Overrides
|
|
required:
|
|
- bank_id
|
|
- config
|
|
- overrides
|
|
title: BankConfigResponse
|
|
BankConfigUpdate:
|
|
description: Request model for updating bank configuration.
|
|
example:
|
|
updates:
|
|
llm_model: claude-sonnet-4-5
|
|
retain_custom_instructions: Extract technical details carefully
|
|
retain_extraction_mode: verbose
|
|
properties:
|
|
updates:
|
|
additionalProperties: {}
|
|
description: Configuration overrides. Keys can be in Python field format
|
|
(llm_provider) or environment variable format (HINDSIGHT_API_LLM_PROVIDER).
|
|
Only hierarchical fields can be overridden per-bank.
|
|
title: Updates
|
|
required:
|
|
- updates
|
|
title: BankConfigUpdate
|
|
BankListItem:
|
|
description: Bank list item with profile summary.
|
|
properties:
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
name:
|
|
nullable: true
|
|
type: string
|
|
disposition:
|
|
$ref: '#/components/schemas/DispositionTraits'
|
|
mission:
|
|
nullable: true
|
|
type: string
|
|
created_at:
|
|
nullable: true
|
|
type: string
|
|
updated_at:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- bank_id
|
|
- disposition
|
|
title: BankListItem
|
|
BankListResponse:
|
|
description: Response model for listing all banks.
|
|
example:
|
|
banks:
|
|
- bank_id: user123
|
|
created_at: 2024-01-15T10:30:00Z
|
|
disposition:
|
|
empathy: 3
|
|
literalism: 3
|
|
skepticism: 3
|
|
mission: I am a software engineer helping my team ship quality code
|
|
name: Alice
|
|
updated_at: 2024-01-16T14:20:00Z
|
|
properties:
|
|
banks:
|
|
items:
|
|
$ref: '#/components/schemas/BankListItem'
|
|
type: array
|
|
required:
|
|
- banks
|
|
title: BankListResponse
|
|
BankProfileResponse:
|
|
description: Response model for bank profile.
|
|
example:
|
|
bank_id: user123
|
|
disposition:
|
|
empathy: 3
|
|
literalism: 3
|
|
skepticism: 3
|
|
mission: I am a software engineer helping my team stay organized and ship
|
|
quality code
|
|
name: Alice
|
|
properties:
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
name:
|
|
title: Name
|
|
type: string
|
|
disposition:
|
|
$ref: '#/components/schemas/DispositionTraits'
|
|
mission:
|
|
description: The agent's mission - who they are and what they're trying
|
|
to accomplish
|
|
title: Mission
|
|
type: string
|
|
background:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- bank_id
|
|
- disposition
|
|
- mission
|
|
- name
|
|
title: BankProfileResponse
|
|
BankStatsResponse:
|
|
description: Response model for bank statistics endpoint.
|
|
example:
|
|
bank_id: user123
|
|
failed_operations: 0
|
|
last_consolidated_at: 2024-01-15T10:30:00Z
|
|
links_breakdown:
|
|
fact:
|
|
entity: 40
|
|
semantic: 60
|
|
temporal: 100
|
|
links_by_fact_type:
|
|
fact: 200
|
|
observation: 40
|
|
preference: 60
|
|
links_by_link_type:
|
|
entity: 50
|
|
semantic: 100
|
|
temporal: 150
|
|
nodes_by_fact_type:
|
|
fact: 100
|
|
observation: 20
|
|
preference: 30
|
|
pending_consolidation: 0
|
|
pending_operations: 2
|
|
total_documents: 10
|
|
total_links: 300
|
|
total_nodes: 150
|
|
total_observations: 45
|
|
properties:
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
total_nodes:
|
|
title: Total Nodes
|
|
type: integer
|
|
total_links:
|
|
title: Total Links
|
|
type: integer
|
|
total_documents:
|
|
title: Total Documents
|
|
type: integer
|
|
nodes_by_fact_type:
|
|
additionalProperties:
|
|
type: integer
|
|
title: Nodes By Fact Type
|
|
links_by_link_type:
|
|
additionalProperties:
|
|
type: integer
|
|
title: Links By Link Type
|
|
links_by_fact_type:
|
|
additionalProperties:
|
|
type: integer
|
|
title: Links By Fact Type
|
|
links_breakdown:
|
|
additionalProperties:
|
|
additionalProperties:
|
|
type: integer
|
|
title: Links Breakdown
|
|
pending_operations:
|
|
title: Pending Operations
|
|
type: integer
|
|
failed_operations:
|
|
title: Failed Operations
|
|
type: integer
|
|
last_consolidated_at:
|
|
nullable: true
|
|
type: string
|
|
pending_consolidation:
|
|
default: 0
|
|
description: Number of memories not yet processed into observations
|
|
title: Pending Consolidation
|
|
type: integer
|
|
total_observations:
|
|
default: 0
|
|
description: Total number of observations
|
|
title: Total Observations
|
|
type: integer
|
|
required:
|
|
- bank_id
|
|
- failed_operations
|
|
- links_breakdown
|
|
- links_by_fact_type
|
|
- links_by_link_type
|
|
- nodes_by_fact_type
|
|
- pending_operations
|
|
- total_documents
|
|
- total_links
|
|
- total_nodes
|
|
title: BankStatsResponse
|
|
Body_file_retain:
|
|
properties:
|
|
files:
|
|
description: Files to upload and convert
|
|
items:
|
|
format: binary
|
|
type: string
|
|
type: array
|
|
request:
|
|
description: JSON string with FileRetainRequest model
|
|
title: Request
|
|
type: string
|
|
required:
|
|
- files
|
|
- request
|
|
title: Body_file_retain
|
|
Budget:
|
|
description: Budget levels for recall/reflect operations.
|
|
enum:
|
|
- low
|
|
- mid
|
|
- high
|
|
title: Budget
|
|
type: string
|
|
CancelOperationResponse:
|
|
description: Response model for cancel operation endpoint.
|
|
example:
|
|
message: Operation 550e8400-e29b-41d4-a716-446655440000 cancelled
|
|
operation_id: 550e8400-e29b-41d4-a716-446655440000
|
|
success: true
|
|
properties:
|
|
success:
|
|
title: Success
|
|
type: boolean
|
|
message:
|
|
title: Message
|
|
type: string
|
|
operation_id:
|
|
title: Operation Id
|
|
type: string
|
|
required:
|
|
- message
|
|
- operation_id
|
|
- success
|
|
title: CancelOperationResponse
|
|
ChildOperationStatus:
|
|
description: Status of a child operation (for batch operations).
|
|
properties:
|
|
operation_id:
|
|
title: Operation Id
|
|
type: string
|
|
status:
|
|
title: Status
|
|
type: string
|
|
sub_batch_index:
|
|
nullable: true
|
|
type: integer
|
|
items_count:
|
|
nullable: true
|
|
type: integer
|
|
error_message:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- operation_id
|
|
- status
|
|
title: ChildOperationStatus
|
|
ChunkData:
|
|
description: Chunk data for a single chunk.
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
text:
|
|
title: Text
|
|
type: string
|
|
chunk_index:
|
|
title: Chunk Index
|
|
type: integer
|
|
truncated:
|
|
default: false
|
|
description: Whether the chunk text was truncated due to token limits
|
|
title: Truncated
|
|
type: boolean
|
|
required:
|
|
- chunk_index
|
|
- id
|
|
- text
|
|
title: ChunkData
|
|
ChunkIncludeOptions:
|
|
description: Options for including chunks in recall results.
|
|
properties:
|
|
max_tokens:
|
|
default: 8192
|
|
description: Maximum tokens for chunks (chunks may be truncated)
|
|
title: Max Tokens
|
|
type: integer
|
|
title: ChunkIncludeOptions
|
|
ChunkResponse:
|
|
description: Response model for get chunk endpoint.
|
|
example:
|
|
bank_id: user123
|
|
chunk_id: user123_session_1_0
|
|
chunk_index: 0
|
|
chunk_text: This is the first chunk of the document...
|
|
created_at: 2024-01-15T10:30:00Z
|
|
document_id: session_1
|
|
properties:
|
|
chunk_id:
|
|
title: Chunk Id
|
|
type: string
|
|
document_id:
|
|
title: Document Id
|
|
type: string
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
chunk_index:
|
|
title: Chunk Index
|
|
type: integer
|
|
chunk_text:
|
|
title: Chunk Text
|
|
type: string
|
|
created_at:
|
|
title: Created At
|
|
type: string
|
|
required:
|
|
- bank_id
|
|
- chunk_id
|
|
- chunk_index
|
|
- chunk_text
|
|
- created_at
|
|
- document_id
|
|
title: ChunkResponse
|
|
ClearMemoryObservationsResponse:
|
|
description: Response model for clearing observations for a specific memory.
|
|
example:
|
|
deleted_count: 3
|
|
properties:
|
|
deleted_count:
|
|
title: Deleted Count
|
|
type: integer
|
|
required:
|
|
- deleted_count
|
|
title: ClearMemoryObservationsResponse
|
|
ConsolidationResponse:
|
|
description: Response model for consolidation trigger endpoint.
|
|
example:
|
|
deduplicated: false
|
|
operation_id: operation_id
|
|
properties:
|
|
operation_id:
|
|
description: ID of the async consolidation operation
|
|
title: Operation Id
|
|
type: string
|
|
deduplicated:
|
|
default: false
|
|
description: True if an existing pending task was reused
|
|
title: Deduplicated
|
|
type: boolean
|
|
required:
|
|
- operation_id
|
|
title: ConsolidationResponse
|
|
CreateBankRequest:
|
|
description: Request model for creating/updating a bank.
|
|
example:
|
|
observations_mission: Observations are stable facts about people and projects.
|
|
Always include preferences and skills.
|
|
retain_mission: Always include technical decisions and architectural trade-offs.
|
|
Ignore meeting logistics.
|
|
properties:
|
|
name:
|
|
nullable: true
|
|
type: string
|
|
disposition:
|
|
$ref: '#/components/schemas/DispositionTraits'
|
|
disposition_skepticism:
|
|
maximum: 5.0
|
|
minimum: 1.0
|
|
nullable: true
|
|
type: integer
|
|
disposition_literalism:
|
|
maximum: 5.0
|
|
minimum: 1.0
|
|
nullable: true
|
|
type: integer
|
|
disposition_empathy:
|
|
maximum: 5.0
|
|
minimum: 1.0
|
|
nullable: true
|
|
type: integer
|
|
mission:
|
|
nullable: true
|
|
type: string
|
|
background:
|
|
nullable: true
|
|
type: string
|
|
reflect_mission:
|
|
nullable: true
|
|
type: string
|
|
retain_mission:
|
|
nullable: true
|
|
type: string
|
|
retain_extraction_mode:
|
|
nullable: true
|
|
type: string
|
|
retain_custom_instructions:
|
|
nullable: true
|
|
type: string
|
|
retain_chunk_size:
|
|
nullable: true
|
|
type: integer
|
|
enable_observations:
|
|
nullable: true
|
|
type: boolean
|
|
observations_mission:
|
|
nullable: true
|
|
type: string
|
|
title: CreateBankRequest
|
|
CreateDirectiveRequest:
|
|
description: Request model for creating a directive.
|
|
example:
|
|
is_active: true
|
|
name: name
|
|
priority: 0
|
|
content: content
|
|
tags:
|
|
- tags
|
|
- tags
|
|
properties:
|
|
name:
|
|
description: Human-readable name for the directive
|
|
title: Name
|
|
type: string
|
|
content:
|
|
description: The directive text to inject into prompts
|
|
title: Content
|
|
type: string
|
|
priority:
|
|
default: 0
|
|
description: Higher priority directives are injected first
|
|
title: Priority
|
|
type: integer
|
|
is_active:
|
|
default: true
|
|
description: Whether this directive is active
|
|
title: Is Active
|
|
type: boolean
|
|
tags:
|
|
default: []
|
|
description: Tags for filtering
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- content
|
|
- name
|
|
title: CreateDirectiveRequest
|
|
CreateMentalModelRequest:
|
|
description: Request model for creating a mental model.
|
|
example:
|
|
id: team-communication
|
|
max_tokens: 2048
|
|
name: Team Communication Preferences
|
|
source_query: How does the team prefer to communicate?
|
|
tags:
|
|
- team
|
|
trigger:
|
|
refresh_after_consolidation: false
|
|
properties:
|
|
id:
|
|
nullable: true
|
|
type: string
|
|
name:
|
|
description: Human-readable name for the mental model
|
|
title: Name
|
|
type: string
|
|
source_query:
|
|
description: The query to run to generate content
|
|
title: Source Query
|
|
type: string
|
|
tags:
|
|
default: []
|
|
description: Tags for scoped visibility
|
|
items:
|
|
type: string
|
|
type: array
|
|
max_tokens:
|
|
default: 2048
|
|
description: Maximum tokens for generated content
|
|
maximum: 8192.0
|
|
minimum: 256.0
|
|
title: Max Tokens
|
|
type: integer
|
|
trigger:
|
|
$ref: '#/components/schemas/MentalModelTrigger'
|
|
required:
|
|
- name
|
|
- source_query
|
|
title: CreateMentalModelRequest
|
|
CreateMentalModelResponse:
|
|
description: Response model for mental model creation.
|
|
example:
|
|
operation_id: operation_id
|
|
mental_model_id: mental_model_id
|
|
properties:
|
|
mental_model_id:
|
|
nullable: true
|
|
type: string
|
|
operation_id:
|
|
description: Operation ID to track refresh progress
|
|
title: Operation Id
|
|
type: string
|
|
required:
|
|
- operation_id
|
|
title: CreateMentalModelResponse
|
|
CreateWebhookRequest:
|
|
description: Request model for registering a webhook.
|
|
example:
|
|
event_types:
|
|
- event_types
|
|
- event_types
|
|
secret: secret
|
|
http_config:
|
|
headers:
|
|
key: headers
|
|
method: POST
|
|
timeout_seconds: 0
|
|
params:
|
|
key: params
|
|
url: url
|
|
enabled: true
|
|
properties:
|
|
url:
|
|
description: HTTP(S) endpoint URL to deliver events to
|
|
title: Url
|
|
type: string
|
|
secret:
|
|
nullable: true
|
|
type: string
|
|
event_types:
|
|
default:
|
|
- consolidation.completed
|
|
description: "List of event types to deliver. Currently supported: 'consolidation.completed'"
|
|
items:
|
|
type: string
|
|
type: array
|
|
enabled:
|
|
default: true
|
|
description: Whether this webhook is active
|
|
title: Enabled
|
|
type: boolean
|
|
http_config:
|
|
$ref: '#/components/schemas/WebhookHttpConfig'
|
|
required:
|
|
- url
|
|
title: CreateWebhookRequest
|
|
DeleteDocumentResponse:
|
|
description: Response model for delete document endpoint.
|
|
example:
|
|
document_id: session_1
|
|
memory_units_deleted: 5
|
|
message: Document 'session_1' and 5 associated memory units deleted successfully
|
|
success: true
|
|
properties:
|
|
success:
|
|
title: Success
|
|
type: boolean
|
|
message:
|
|
title: Message
|
|
type: string
|
|
document_id:
|
|
title: Document Id
|
|
type: string
|
|
memory_units_deleted:
|
|
title: Memory Units Deleted
|
|
type: integer
|
|
required:
|
|
- document_id
|
|
- memory_units_deleted
|
|
- message
|
|
- success
|
|
title: DeleteDocumentResponse
|
|
DeleteResponse:
|
|
description: Response model for delete operations.
|
|
example:
|
|
deleted_count: 10
|
|
message: Deleted successfully
|
|
success: true
|
|
properties:
|
|
success:
|
|
title: Success
|
|
type: boolean
|
|
message:
|
|
nullable: true
|
|
type: string
|
|
deleted_count:
|
|
nullable: true
|
|
type: integer
|
|
required:
|
|
- success
|
|
title: DeleteResponse
|
|
DirectiveListResponse:
|
|
description: Response model for listing directives.
|
|
example:
|
|
items:
|
|
- is_active: true
|
|
updated_at: updated_at
|
|
bank_id: bank_id
|
|
name: name
|
|
created_at: created_at
|
|
id: id
|
|
priority: 0
|
|
content: content
|
|
tags:
|
|
- tags
|
|
- tags
|
|
- is_active: true
|
|
updated_at: updated_at
|
|
bank_id: bank_id
|
|
name: name
|
|
created_at: created_at
|
|
id: id
|
|
priority: 0
|
|
content: content
|
|
tags:
|
|
- tags
|
|
- tags
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/DirectiveResponse'
|
|
type: array
|
|
required:
|
|
- items
|
|
title: DirectiveListResponse
|
|
DirectiveResponse:
|
|
description: Response model for a directive.
|
|
example:
|
|
is_active: true
|
|
updated_at: updated_at
|
|
bank_id: bank_id
|
|
name: name
|
|
created_at: created_at
|
|
id: id
|
|
priority: 0
|
|
content: content
|
|
tags:
|
|
- tags
|
|
- tags
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
name:
|
|
title: Name
|
|
type: string
|
|
content:
|
|
title: Content
|
|
type: string
|
|
priority:
|
|
default: 0
|
|
title: Priority
|
|
type: integer
|
|
is_active:
|
|
default: true
|
|
title: Is Active
|
|
type: boolean
|
|
tags:
|
|
default: []
|
|
items:
|
|
type: string
|
|
type: array
|
|
created_at:
|
|
nullable: true
|
|
type: string
|
|
updated_at:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- bank_id
|
|
- content
|
|
- id
|
|
- name
|
|
title: DirectiveResponse
|
|
DispositionTraits:
|
|
description: Disposition traits that influence how memories are formed and interpreted.
|
|
example:
|
|
empathy: 3
|
|
literalism: 3
|
|
skepticism: 3
|
|
properties:
|
|
skepticism:
|
|
description: "How skeptical vs trusting (1=trusting, 5=skeptical)"
|
|
maximum: 5.0
|
|
minimum: 1.0
|
|
title: Skepticism
|
|
type: integer
|
|
literalism:
|
|
description: "How literally to interpret information (1=flexible, 5=literal)"
|
|
maximum: 5.0
|
|
minimum: 1.0
|
|
title: Literalism
|
|
type: integer
|
|
empathy:
|
|
description: "How much to consider emotional context (1=detached, 5=empathetic)"
|
|
maximum: 5.0
|
|
minimum: 1.0
|
|
title: Empathy
|
|
type: integer
|
|
required:
|
|
- empathy
|
|
- literalism
|
|
- skepticism
|
|
title: DispositionTraits
|
|
DocumentResponse:
|
|
description: Response model for get document endpoint.
|
|
example:
|
|
bank_id: user123
|
|
content_hash: abc123
|
|
created_at: 2024-01-15T10:30:00Z
|
|
id: session_1
|
|
memory_unit_count: 15
|
|
original_text: Full document text here...
|
|
tags:
|
|
- user_a
|
|
- session_123
|
|
updated_at: 2024-01-15T10:30:00Z
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
original_text:
|
|
title: Original Text
|
|
type: string
|
|
content_hash:
|
|
nullable: true
|
|
type: string
|
|
created_at:
|
|
title: Created At
|
|
type: string
|
|
updated_at:
|
|
title: Updated At
|
|
type: string
|
|
memory_unit_count:
|
|
title: Memory Unit Count
|
|
type: integer
|
|
tags:
|
|
default: []
|
|
description: Tags associated with this document
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- bank_id
|
|
- content_hash
|
|
- created_at
|
|
- id
|
|
- memory_unit_count
|
|
- original_text
|
|
- updated_at
|
|
title: DocumentResponse
|
|
EntityDetailResponse:
|
|
description: Response model for entity detail endpoint.
|
|
example:
|
|
canonical_name: John
|
|
first_seen: 2024-01-15T10:30:00Z
|
|
id: 123e4567-e89b-12d3-a456-426614174000
|
|
last_seen: 2024-02-01T14:00:00Z
|
|
mention_count: 15
|
|
observations:
|
|
- mentioned_at: 2024-01-15T10:30:00Z
|
|
text: John works at Google
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
canonical_name:
|
|
title: Canonical Name
|
|
type: string
|
|
mention_count:
|
|
title: Mention Count
|
|
type: integer
|
|
first_seen:
|
|
nullable: true
|
|
type: string
|
|
last_seen:
|
|
nullable: true
|
|
type: string
|
|
metadata:
|
|
additionalProperties: {}
|
|
nullable: true
|
|
observations:
|
|
items:
|
|
$ref: '#/components/schemas/EntityObservationResponse'
|
|
type: array
|
|
required:
|
|
- canonical_name
|
|
- id
|
|
- mention_count
|
|
- observations
|
|
title: EntityDetailResponse
|
|
EntityIncludeOptions:
|
|
description: Options for including entity observations in recall results.
|
|
properties:
|
|
max_tokens:
|
|
default: 500
|
|
description: Maximum tokens for entity observations
|
|
title: Max Tokens
|
|
type: integer
|
|
title: EntityIncludeOptions
|
|
EntityInput:
|
|
description: Entity to associate with retained content.
|
|
properties:
|
|
text:
|
|
description: The entity name/text
|
|
title: Text
|
|
type: string
|
|
type:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- text
|
|
title: EntityInput
|
|
EntityListItem:
|
|
description: Entity list item with summary.
|
|
example:
|
|
canonical_name: John
|
|
first_seen: 2024-01-15T10:30:00Z
|
|
id: 123e4567-e89b-12d3-a456-426614174000
|
|
last_seen: 2024-02-01T14:00:00Z
|
|
mention_count: 15
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
canonical_name:
|
|
title: Canonical Name
|
|
type: string
|
|
mention_count:
|
|
title: Mention Count
|
|
type: integer
|
|
first_seen:
|
|
nullable: true
|
|
type: string
|
|
last_seen:
|
|
nullable: true
|
|
type: string
|
|
metadata:
|
|
additionalProperties: {}
|
|
nullable: true
|
|
required:
|
|
- canonical_name
|
|
- id
|
|
- mention_count
|
|
title: EntityListItem
|
|
EntityListResponse:
|
|
description: Response model for entity list endpoint.
|
|
example:
|
|
items:
|
|
- canonical_name: John
|
|
first_seen: 2024-01-15T10:30:00Z
|
|
id: 123e4567-e89b-12d3-a456-426614174000
|
|
last_seen: 2024-02-01T14:00:00Z
|
|
mention_count: 15
|
|
limit: 100
|
|
offset: 0
|
|
total: 150
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/EntityListItem'
|
|
type: array
|
|
total:
|
|
title: Total
|
|
type: integer
|
|
limit:
|
|
title: Limit
|
|
type: integer
|
|
offset:
|
|
title: Offset
|
|
type: integer
|
|
required:
|
|
- items
|
|
- limit
|
|
- offset
|
|
- total
|
|
title: EntityListResponse
|
|
EntityObservationResponse:
|
|
description: An observation about an entity.
|
|
properties:
|
|
text:
|
|
title: Text
|
|
type: string
|
|
mentioned_at:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- text
|
|
title: EntityObservationResponse
|
|
EntityStateResponse:
|
|
description: Current mental model of an entity.
|
|
properties:
|
|
entity_id:
|
|
title: Entity Id
|
|
type: string
|
|
canonical_name:
|
|
title: Canonical Name
|
|
type: string
|
|
observations:
|
|
items:
|
|
$ref: '#/components/schemas/EntityObservationResponse'
|
|
type: array
|
|
required:
|
|
- canonical_name
|
|
- entity_id
|
|
- observations
|
|
title: EntityStateResponse
|
|
FactsIncludeOptions:
|
|
description: Options for including facts (based_on) in reflect results.
|
|
properties: {}
|
|
title: FactsIncludeOptions
|
|
type: object
|
|
FeaturesInfo:
|
|
description: Feature flags indicating which capabilities are enabled.
|
|
properties:
|
|
observations:
|
|
description: Whether observations (auto-consolidation) are enabled
|
|
title: Observations
|
|
type: boolean
|
|
mcp:
|
|
description: Whether MCP (Model Context Protocol) server is enabled
|
|
title: Mcp
|
|
type: boolean
|
|
worker:
|
|
description: Whether the background worker is enabled
|
|
title: Worker
|
|
type: boolean
|
|
bank_config_api:
|
|
description: Whether per-bank configuration API is enabled
|
|
title: Bank Config Api
|
|
type: boolean
|
|
file_upload_api:
|
|
description: Whether file upload/conversion API is enabled
|
|
title: File Upload Api
|
|
type: boolean
|
|
required:
|
|
- bank_config_api
|
|
- file_upload_api
|
|
- mcp
|
|
- observations
|
|
- worker
|
|
title: FeaturesInfo
|
|
FileRetainResponse:
|
|
description: Response model for file upload endpoint.
|
|
example:
|
|
operation_ids:
|
|
- 550e8400-e29b-41d4-a716-446655440000
|
|
- 550e8400-e29b-41d4-a716-446655440001
|
|
- 550e8400-e29b-41d4-a716-446655440002
|
|
properties:
|
|
operation_ids:
|
|
description: "Operation IDs for tracking file conversion operations. Use\
|
|
\ GET /v1/default/banks/{bank_id}/operations to list operations."
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- operation_ids
|
|
title: FileRetainResponse
|
|
GraphDataResponse:
|
|
description: Response model for graph data endpoint.
|
|
example:
|
|
edges:
|
|
- from: "1"
|
|
to: "2"
|
|
type: semantic
|
|
weight: 0.8
|
|
limit: 1000
|
|
nodes:
|
|
- id: "1"
|
|
label: Alice works at Google
|
|
type: world
|
|
- id: "2"
|
|
label: Bob went hiking
|
|
type: world
|
|
table_rows:
|
|
- context: Work info
|
|
date: 2024-01-15 10:30
|
|
entities: "Alice (PERSON), Google (ORGANIZATION)"
|
|
id: abc12345...
|
|
text: Alice works at Google
|
|
total_units: 2
|
|
properties:
|
|
nodes:
|
|
items:
|
|
additionalProperties: {}
|
|
type: array
|
|
edges:
|
|
items:
|
|
additionalProperties: {}
|
|
type: array
|
|
table_rows:
|
|
items:
|
|
additionalProperties: {}
|
|
type: array
|
|
total_units:
|
|
title: Total Units
|
|
type: integer
|
|
limit:
|
|
title: Limit
|
|
type: integer
|
|
required:
|
|
- edges
|
|
- limit
|
|
- nodes
|
|
- table_rows
|
|
- total_units
|
|
title: GraphDataResponse
|
|
HTTPValidationError:
|
|
example:
|
|
detail:
|
|
- msg: msg
|
|
loc:
|
|
- ValidationError_loc_inner
|
|
- ValidationError_loc_inner
|
|
type: type
|
|
- msg: msg
|
|
loc:
|
|
- ValidationError_loc_inner
|
|
- ValidationError_loc_inner
|
|
type: type
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: HTTPValidationError
|
|
IncludeOptions:
|
|
description: Options for including additional data in recall results.
|
|
properties:
|
|
entities:
|
|
$ref: '#/components/schemas/EntityIncludeOptions'
|
|
chunks:
|
|
$ref: '#/components/schemas/ChunkIncludeOptions'
|
|
source_facts:
|
|
$ref: '#/components/schemas/SourceFactsIncludeOptions'
|
|
title: IncludeOptions
|
|
ListDocumentsResponse:
|
|
description: Response model for list documents endpoint.
|
|
example:
|
|
items:
|
|
- bank_id: user123
|
|
content_hash: abc123
|
|
created_at: 2024-01-15T10:30:00Z
|
|
id: session_1
|
|
memory_unit_count: 15
|
|
tags:
|
|
- user_a
|
|
- session_123
|
|
text_length: 5420
|
|
updated_at: 2024-01-15T10:30:00Z
|
|
limit: 100
|
|
offset: 0
|
|
total: 50
|
|
properties:
|
|
items:
|
|
items:
|
|
additionalProperties: {}
|
|
type: array
|
|
total:
|
|
title: Total
|
|
type: integer
|
|
limit:
|
|
title: Limit
|
|
type: integer
|
|
offset:
|
|
title: Offset
|
|
type: integer
|
|
required:
|
|
- items
|
|
- limit
|
|
- offset
|
|
- total
|
|
title: ListDocumentsResponse
|
|
ListMemoryUnitsResponse:
|
|
description: Response model for list memory units endpoint.
|
|
example:
|
|
items:
|
|
- context: Work conversation
|
|
date: 2024-01-15T10:30:00Z
|
|
entities: "Alice (PERSON), Google (ORGANIZATION)"
|
|
id: 550e8400-e29b-41d4-a716-446655440000
|
|
text: Alice works at Google on the AI team
|
|
type: world
|
|
limit: 100
|
|
offset: 0
|
|
total: 150
|
|
properties:
|
|
items:
|
|
items:
|
|
additionalProperties: {}
|
|
type: array
|
|
total:
|
|
title: Total
|
|
type: integer
|
|
limit:
|
|
title: Limit
|
|
type: integer
|
|
offset:
|
|
title: Offset
|
|
type: integer
|
|
required:
|
|
- items
|
|
- limit
|
|
- offset
|
|
- total
|
|
title: ListMemoryUnitsResponse
|
|
ListTagsResponse:
|
|
description: Response model for list tags endpoint.
|
|
example:
|
|
items:
|
|
- count: 42
|
|
tag: user:alice
|
|
- count: 15
|
|
tag: user:bob
|
|
- count: 8
|
|
tag: session:abc123
|
|
limit: 100
|
|
offset: 0
|
|
total: 25
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/TagItem'
|
|
type: array
|
|
total:
|
|
title: Total
|
|
type: integer
|
|
limit:
|
|
title: Limit
|
|
type: integer
|
|
offset:
|
|
title: Offset
|
|
type: integer
|
|
required:
|
|
- items
|
|
- limit
|
|
- offset
|
|
- total
|
|
title: ListTagsResponse
|
|
MemoryItem:
|
|
description: Single memory item for retain.
|
|
example:
|
|
content: Alice mentioned she's working on a new ML model
|
|
context: team meeting
|
|
document_id: meeting_notes_2024_01_15
|
|
entities:
|
|
- text: Alice
|
|
- text: ML model
|
|
type: CONCEPT
|
|
metadata:
|
|
channel: engineering
|
|
source: slack
|
|
tags:
|
|
- user_a
|
|
- user_b
|
|
timestamp: 2024-01-15T10:30:00Z
|
|
properties:
|
|
content:
|
|
title: Content
|
|
type: string
|
|
timestamp:
|
|
$ref: '#/components/schemas/Timestamp'
|
|
context:
|
|
nullable: true
|
|
type: string
|
|
metadata:
|
|
additionalProperties:
|
|
type: string
|
|
nullable: true
|
|
document_id:
|
|
nullable: true
|
|
type: string
|
|
entities:
|
|
items:
|
|
$ref: '#/components/schemas/EntityInput'
|
|
nullable: true
|
|
type: array
|
|
tags:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
observation_scopes:
|
|
$ref: '#/components/schemas/ObservationScopes'
|
|
strategy:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- content
|
|
title: MemoryItem
|
|
MentalModelListResponse:
|
|
description: Response model for listing mental models.
|
|
example:
|
|
items:
|
|
- source_query: source_query
|
|
max_tokens: 0
|
|
bank_id: bank_id
|
|
reflect_response:
|
|
key: ""
|
|
name: name
|
|
created_at: created_at
|
|
id: id
|
|
trigger:
|
|
refresh_after_consolidation: false
|
|
fact_types:
|
|
- world
|
|
- world
|
|
exclude_mental_model_ids:
|
|
- exclude_mental_model_ids
|
|
- exclude_mental_model_ids
|
|
exclude_mental_models: false
|
|
last_refreshed_at: last_refreshed_at
|
|
content: content
|
|
tags:
|
|
- tags
|
|
- tags
|
|
- source_query: source_query
|
|
max_tokens: 0
|
|
bank_id: bank_id
|
|
reflect_response:
|
|
key: ""
|
|
name: name
|
|
created_at: created_at
|
|
id: id
|
|
trigger:
|
|
refresh_after_consolidation: false
|
|
fact_types:
|
|
- world
|
|
- world
|
|
exclude_mental_model_ids:
|
|
- exclude_mental_model_ids
|
|
- exclude_mental_model_ids
|
|
exclude_mental_models: false
|
|
last_refreshed_at: last_refreshed_at
|
|
content: content
|
|
tags:
|
|
- tags
|
|
- tags
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/MentalModelResponse'
|
|
type: array
|
|
required:
|
|
- items
|
|
title: MentalModelListResponse
|
|
MentalModelResponse:
|
|
description: Response model for a mental model (stored reflect response).
|
|
example:
|
|
source_query: source_query
|
|
max_tokens: 0
|
|
bank_id: bank_id
|
|
reflect_response:
|
|
key: ""
|
|
name: name
|
|
created_at: created_at
|
|
id: id
|
|
trigger:
|
|
refresh_after_consolidation: false
|
|
fact_types:
|
|
- world
|
|
- world
|
|
exclude_mental_model_ids:
|
|
- exclude_mental_model_ids
|
|
- exclude_mental_model_ids
|
|
exclude_mental_models: false
|
|
last_refreshed_at: last_refreshed_at
|
|
content: content
|
|
tags:
|
|
- tags
|
|
- tags
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
name:
|
|
title: Name
|
|
type: string
|
|
source_query:
|
|
title: Source Query
|
|
type: string
|
|
content:
|
|
description: The mental model content as well-formatted markdown (auto-generated
|
|
from reflect endpoint)
|
|
title: Content
|
|
type: string
|
|
tags:
|
|
default: []
|
|
items:
|
|
type: string
|
|
type: array
|
|
max_tokens:
|
|
default: 2048
|
|
title: Max Tokens
|
|
type: integer
|
|
trigger:
|
|
$ref: '#/components/schemas/MentalModelTrigger'
|
|
last_refreshed_at:
|
|
nullable: true
|
|
type: string
|
|
created_at:
|
|
nullable: true
|
|
type: string
|
|
reflect_response:
|
|
additionalProperties: {}
|
|
nullable: true
|
|
required:
|
|
- bank_id
|
|
- content
|
|
- id
|
|
- name
|
|
- source_query
|
|
title: MentalModelResponse
|
|
MentalModelTrigger:
|
|
description: Trigger settings for a mental model.
|
|
example:
|
|
refresh_after_consolidation: false
|
|
fact_types:
|
|
- world
|
|
- world
|
|
exclude_mental_model_ids:
|
|
- exclude_mental_model_ids
|
|
- exclude_mental_model_ids
|
|
exclude_mental_models: false
|
|
properties:
|
|
refresh_after_consolidation:
|
|
default: false
|
|
description: "If true, refresh this mental model after observations consolidation\
|
|
\ (real-time mode)"
|
|
title: Refresh After Consolidation
|
|
type: boolean
|
|
fact_types:
|
|
items:
|
|
enum:
|
|
- world
|
|
- experience
|
|
- observation
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
exclude_mental_models:
|
|
default: false
|
|
description: "If true, exclude all mental models from the reflect loop (skip\
|
|
\ search_mental_models tool)."
|
|
title: Exclude Mental Models
|
|
type: boolean
|
|
exclude_mental_model_ids:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
title: MentalModelTrigger
|
|
OperationResponse:
|
|
description: Response model for a single async operation.
|
|
example:
|
|
created_at: 2024-01-15T10:30:00Z
|
|
id: 550e8400-e29b-41d4-a716-446655440000
|
|
items_count: 5
|
|
status: pending
|
|
task_type: retain
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
task_type:
|
|
title: Task Type
|
|
type: string
|
|
items_count:
|
|
title: Items Count
|
|
type: integer
|
|
document_id:
|
|
nullable: true
|
|
type: string
|
|
created_at:
|
|
title: Created At
|
|
type: string
|
|
status:
|
|
title: Status
|
|
type: string
|
|
error_message:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- created_at
|
|
- error_message
|
|
- id
|
|
- items_count
|
|
- status
|
|
- task_type
|
|
title: OperationResponse
|
|
OperationStatusResponse:
|
|
description: Response model for getting a single operation status.
|
|
example:
|
|
completed_at: 2024-01-15T10:31:30Z
|
|
created_at: 2024-01-15T10:30:00Z
|
|
operation_id: 550e8400-e29b-41d4-a716-446655440000
|
|
operation_type: refresh_mental_models
|
|
status: completed
|
|
updated_at: 2024-01-15T10:31:30Z
|
|
properties:
|
|
operation_id:
|
|
title: Operation Id
|
|
type: string
|
|
status:
|
|
enum:
|
|
- pending
|
|
- completed
|
|
- failed
|
|
- not_found
|
|
title: Status
|
|
type: string
|
|
operation_type:
|
|
nullable: true
|
|
type: string
|
|
created_at:
|
|
nullable: true
|
|
type: string
|
|
updated_at:
|
|
nullable: true
|
|
type: string
|
|
completed_at:
|
|
nullable: true
|
|
type: string
|
|
error_message:
|
|
nullable: true
|
|
type: string
|
|
result_metadata:
|
|
additionalProperties: {}
|
|
nullable: true
|
|
child_operations:
|
|
items:
|
|
$ref: '#/components/schemas/ChildOperationStatus'
|
|
nullable: true
|
|
type: array
|
|
required:
|
|
- operation_id
|
|
- status
|
|
title: OperationStatusResponse
|
|
OperationsListResponse:
|
|
description: Response model for list operations endpoint.
|
|
example:
|
|
bank_id: user123
|
|
limit: 20
|
|
offset: 0
|
|
operations:
|
|
- created_at: 2024-01-15T10:30:00Z
|
|
id: 550e8400-e29b-41d4-a716-446655440000
|
|
status: pending
|
|
task_type: retain
|
|
total: 150
|
|
properties:
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
total:
|
|
title: Total
|
|
type: integer
|
|
limit:
|
|
title: Limit
|
|
type: integer
|
|
offset:
|
|
title: Offset
|
|
type: integer
|
|
operations:
|
|
items:
|
|
$ref: '#/components/schemas/OperationResponse'
|
|
type: array
|
|
required:
|
|
- bank_id
|
|
- limit
|
|
- offset
|
|
- operations
|
|
- total
|
|
title: OperationsListResponse
|
|
RecallRequest:
|
|
description: Request model for recall endpoint.
|
|
example:
|
|
budget: mid
|
|
include:
|
|
entities:
|
|
max_tokens: 500
|
|
max_tokens: 4096
|
|
query: What did Alice say about machine learning?
|
|
query_timestamp: 2023-05-30T23:40:00
|
|
tags:
|
|
- user_a
|
|
tags_match: any
|
|
trace: true
|
|
types:
|
|
- world
|
|
- experience
|
|
properties:
|
|
query:
|
|
title: Query
|
|
type: string
|
|
types:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
budget:
|
|
$ref: '#/components/schemas/Budget'
|
|
max_tokens:
|
|
default: 4096
|
|
title: Max Tokens
|
|
type: integer
|
|
trace:
|
|
default: false
|
|
title: Trace
|
|
type: boolean
|
|
query_timestamp:
|
|
nullable: true
|
|
type: string
|
|
include:
|
|
$ref: '#/components/schemas/IncludeOptions'
|
|
tags:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
tags_match:
|
|
default: any
|
|
description: "How to match tags: 'any' (OR, includes untagged), 'all' (AND,\
|
|
\ includes untagged), 'any_strict' (OR, excludes untagged), 'all_strict'\
|
|
\ (AND, excludes untagged)."
|
|
enum:
|
|
- any
|
|
- all
|
|
- any_strict
|
|
- all_strict
|
|
title: Tags Match
|
|
type: string
|
|
tag_groups:
|
|
items:
|
|
$ref: '#/components/schemas/RecallRequest_tag_groups_inner'
|
|
nullable: true
|
|
type: array
|
|
required:
|
|
- query
|
|
title: RecallRequest
|
|
RecallResponse:
|
|
description: Response model for recall endpoints.
|
|
example:
|
|
chunks:
|
|
"456e7890-e12b-34d5-a678-901234567890":
|
|
chunk_index: 0
|
|
id: 456e7890-e12b-34d5-a678-901234567890
|
|
text: Alice works at Google on the AI team. She's been there for 3 years...
|
|
entities:
|
|
Alice:
|
|
canonical_name: Alice
|
|
entity_id: 123e4567-e89b-12d3-a456-426614174001
|
|
observations:
|
|
- mentioned_at: 2024-01-15T10:30:00Z
|
|
text: Alice works at Google on the AI team
|
|
results:
|
|
- chunk_id: 456e7890-e12b-34d5-a678-901234567890
|
|
context: work info
|
|
entities:
|
|
- Alice
|
|
- Google
|
|
id: 123e4567-e89b-12d3-a456-426614174000
|
|
occurred_end: 2024-01-15T10:30:00Z
|
|
occurred_start: 2024-01-15T10:30:00Z
|
|
text: Alice works at Google on the AI team
|
|
type: world
|
|
trace:
|
|
num_results: 1
|
|
query: What did Alice say about machine learning?
|
|
time_seconds: 0.123
|
|
properties:
|
|
results:
|
|
items:
|
|
$ref: '#/components/schemas/RecallResult'
|
|
type: array
|
|
trace:
|
|
additionalProperties: {}
|
|
nullable: true
|
|
entities:
|
|
additionalProperties:
|
|
$ref: '#/components/schemas/EntityStateResponse'
|
|
nullable: true
|
|
chunks:
|
|
additionalProperties:
|
|
$ref: '#/components/schemas/ChunkData'
|
|
nullable: true
|
|
source_facts:
|
|
additionalProperties:
|
|
$ref: '#/components/schemas/RecallResult'
|
|
nullable: true
|
|
required:
|
|
- results
|
|
title: RecallResponse
|
|
RecallResult:
|
|
description: Single recall result item.
|
|
example:
|
|
chunk_id: 456e7890-e12b-34d5-a678-901234567890
|
|
context: work info
|
|
document_id: session_abc123
|
|
entities:
|
|
- Alice
|
|
- Google
|
|
id: 123e4567-e89b-12d3-a456-426614174000
|
|
mentioned_at: 2024-01-15T10:30:00Z
|
|
metadata:
|
|
source: slack
|
|
occurred_end: 2024-01-15T10:30:00Z
|
|
occurred_start: 2024-01-15T10:30:00Z
|
|
tags:
|
|
- user_a
|
|
- user_b
|
|
text: Alice works at Google on the AI team
|
|
type: world
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
text:
|
|
title: Text
|
|
type: string
|
|
type:
|
|
nullable: true
|
|
type: string
|
|
entities:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
context:
|
|
nullable: true
|
|
type: string
|
|
occurred_start:
|
|
nullable: true
|
|
type: string
|
|
occurred_end:
|
|
nullable: true
|
|
type: string
|
|
mentioned_at:
|
|
nullable: true
|
|
type: string
|
|
document_id:
|
|
nullable: true
|
|
type: string
|
|
metadata:
|
|
additionalProperties:
|
|
type: string
|
|
nullable: true
|
|
chunk_id:
|
|
nullable: true
|
|
type: string
|
|
tags:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
source_fact_ids:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
required:
|
|
- id
|
|
- text
|
|
title: RecallResult
|
|
RecoverConsolidationResponse:
|
|
description: Response model for recovering failed consolidation.
|
|
example:
|
|
retried_count: 42
|
|
properties:
|
|
retried_count:
|
|
title: Retried Count
|
|
type: integer
|
|
required:
|
|
- retried_count
|
|
title: RecoverConsolidationResponse
|
|
ReflectBasedOn:
|
|
description: "Evidence the response is based on: memories, mental models, and\
|
|
\ directives."
|
|
properties:
|
|
memories:
|
|
default: []
|
|
description: Memory facts used to generate the response
|
|
items:
|
|
$ref: '#/components/schemas/ReflectFact'
|
|
type: array
|
|
mental_models:
|
|
default: []
|
|
description: Mental models used during reflection
|
|
items:
|
|
$ref: '#/components/schemas/ReflectMentalModel'
|
|
type: array
|
|
directives:
|
|
default: []
|
|
description: Directives applied during reflection
|
|
items:
|
|
$ref: '#/components/schemas/ReflectDirective'
|
|
type: array
|
|
title: ReflectBasedOn
|
|
ReflectDirective:
|
|
description: A directive applied during reflect.
|
|
properties:
|
|
id:
|
|
description: Directive ID
|
|
title: Id
|
|
type: string
|
|
name:
|
|
description: Directive name
|
|
title: Name
|
|
type: string
|
|
content:
|
|
description: Directive content
|
|
title: Content
|
|
type: string
|
|
required:
|
|
- content
|
|
- id
|
|
- name
|
|
title: ReflectDirective
|
|
ReflectFact:
|
|
description: A fact used in think response.
|
|
example:
|
|
context: healthcare discussion
|
|
id: 123e4567-e89b-12d3-a456-426614174000
|
|
occurred_end: 2024-01-15T10:30:00Z
|
|
occurred_start: 2024-01-15T10:30:00Z
|
|
text: AI is used in healthcare
|
|
type: world
|
|
properties:
|
|
id:
|
|
nullable: true
|
|
type: string
|
|
text:
|
|
description: "Fact text. When type='observation', this contains markdown-formatted\
|
|
\ consolidated knowledge"
|
|
title: Text
|
|
type: string
|
|
type:
|
|
nullable: true
|
|
type: string
|
|
context:
|
|
nullable: true
|
|
type: string
|
|
occurred_start:
|
|
nullable: true
|
|
type: string
|
|
occurred_end:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- text
|
|
title: ReflectFact
|
|
ReflectIncludeOptions:
|
|
description: Options for including additional data in reflect results.
|
|
properties:
|
|
facts:
|
|
description: Options for including facts (based_on) in reflect results.
|
|
properties: {}
|
|
title: FactsIncludeOptions
|
|
type: object
|
|
tool_calls:
|
|
$ref: '#/components/schemas/ToolCallsIncludeOptions'
|
|
title: ReflectIncludeOptions
|
|
ReflectLLMCall:
|
|
description: An LLM call made during reflect agent execution.
|
|
properties:
|
|
scope:
|
|
description: "Call scope: agent_1, agent_2, final, etc."
|
|
title: Scope
|
|
type: string
|
|
duration_ms:
|
|
description: Execution time in milliseconds
|
|
title: Duration Ms
|
|
type: integer
|
|
required:
|
|
- duration_ms
|
|
- scope
|
|
title: ReflectLLMCall
|
|
ReflectMentalModel:
|
|
description: A mental model used during reflect.
|
|
properties:
|
|
id:
|
|
description: Mental model ID
|
|
title: Id
|
|
type: string
|
|
text:
|
|
description: Mental model content
|
|
title: Text
|
|
type: string
|
|
context:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- id
|
|
- text
|
|
title: ReflectMentalModel
|
|
ReflectRequest:
|
|
description: Request model for reflect endpoint.
|
|
example:
|
|
budget: low
|
|
include:
|
|
facts: {}
|
|
max_tokens: 4096
|
|
query: What do you think about artificial intelligence?
|
|
response_schema:
|
|
properties:
|
|
summary:
|
|
type: string
|
|
key_points:
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- summary
|
|
- key_points
|
|
type: object
|
|
tags:
|
|
- user_a
|
|
tags_match: any
|
|
properties:
|
|
query:
|
|
title: Query
|
|
type: string
|
|
budget:
|
|
$ref: '#/components/schemas/Budget'
|
|
context:
|
|
nullable: true
|
|
type: string
|
|
max_tokens:
|
|
default: 4096
|
|
description: Maximum tokens for the response
|
|
title: Max Tokens
|
|
type: integer
|
|
include:
|
|
$ref: '#/components/schemas/ReflectIncludeOptions'
|
|
response_schema:
|
|
additionalProperties: {}
|
|
nullable: true
|
|
tags:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
tags_match:
|
|
default: any
|
|
description: "How to match tags: 'any' (OR, includes untagged), 'all' (AND,\
|
|
\ includes untagged), 'any_strict' (OR, excludes untagged), 'all_strict'\
|
|
\ (AND, excludes untagged)."
|
|
enum:
|
|
- any
|
|
- all
|
|
- any_strict
|
|
- all_strict
|
|
title: Tags Match
|
|
type: string
|
|
tag_groups:
|
|
items:
|
|
$ref: '#/components/schemas/RecallRequest_tag_groups_inner'
|
|
nullable: true
|
|
type: array
|
|
fact_types:
|
|
items:
|
|
enum:
|
|
- world
|
|
- experience
|
|
- observation
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
exclude_mental_models:
|
|
default: false
|
|
description: "If true, exclude all mental models from the reflect loop (skip\
|
|
\ search_mental_models tool)."
|
|
title: Exclude Mental Models
|
|
type: boolean
|
|
exclude_mental_model_ids:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
required:
|
|
- query
|
|
title: ReflectRequest
|
|
ReflectResponse:
|
|
description: Response model for think endpoint.
|
|
example:
|
|
based_on:
|
|
memories:
|
|
- id: "123"
|
|
text: AI is used in healthcare
|
|
type: world
|
|
- id: "456"
|
|
text: I discussed AI applications last week
|
|
type: experience
|
|
structured_output:
|
|
key_points:
|
|
- Used in healthcare
|
|
- Discussed recently
|
|
summary: AI is transformative
|
|
text: |-
|
|
## AI Overview
|
|
|
|
Based on my understanding, AI is a **transformative technology**:
|
|
|
|
- Used extensively in healthcare
|
|
- Discussed in recent conversations
|
|
- Continues to evolve rapidly
|
|
trace:
|
|
llm_calls:
|
|
- duration_ms: 1200
|
|
scope: agent_1
|
|
observations:
|
|
- id: obs-1
|
|
name: AI Technology
|
|
subtype: structural
|
|
type: concept
|
|
tool_calls:
|
|
- duration_ms: 150
|
|
input:
|
|
query: AI
|
|
tool: recall
|
|
usage:
|
|
input_tokens: 1500
|
|
output_tokens: 500
|
|
total_tokens: 2000
|
|
properties:
|
|
text:
|
|
description: "The reflect response as well-formatted markdown (headers,\
|
|
\ lists, bold/italic, code blocks, etc.)"
|
|
title: Text
|
|
type: string
|
|
based_on:
|
|
$ref: '#/components/schemas/ReflectBasedOn'
|
|
structured_output:
|
|
additionalProperties: {}
|
|
nullable: true
|
|
usage:
|
|
$ref: '#/components/schemas/TokenUsage'
|
|
trace:
|
|
$ref: '#/components/schemas/ReflectTrace'
|
|
required:
|
|
- text
|
|
title: ReflectResponse
|
|
ReflectToolCall:
|
|
description: A tool call made during reflect agent execution.
|
|
properties:
|
|
tool:
|
|
description: "Tool name: lookup, recall, learn, expand"
|
|
title: Tool
|
|
type: string
|
|
input:
|
|
additionalProperties: {}
|
|
description: Tool input parameters
|
|
title: Input
|
|
output:
|
|
additionalProperties: {}
|
|
nullable: true
|
|
duration_ms:
|
|
description: Execution time in milliseconds
|
|
title: Duration Ms
|
|
type: integer
|
|
iteration:
|
|
default: 0
|
|
description: Iteration number (1-based) when this tool was called
|
|
title: Iteration
|
|
type: integer
|
|
required:
|
|
- duration_ms
|
|
- input
|
|
- tool
|
|
title: ReflectToolCall
|
|
ReflectTrace:
|
|
description: Execution trace of LLM and tool calls during reflection.
|
|
properties:
|
|
tool_calls:
|
|
default: []
|
|
description: Tool calls made during reflection
|
|
items:
|
|
$ref: '#/components/schemas/ReflectToolCall'
|
|
type: array
|
|
llm_calls:
|
|
default: []
|
|
description: LLM calls made during reflection
|
|
items:
|
|
$ref: '#/components/schemas/ReflectLLMCall'
|
|
type: array
|
|
title: ReflectTrace
|
|
RetainRequest:
|
|
description: Request model for retain endpoint.
|
|
example:
|
|
async: false
|
|
items:
|
|
- content: Alice works at Google
|
|
context: work
|
|
document_id: conversation_123
|
|
- content: Bob went hiking yesterday
|
|
document_id: conversation_123
|
|
timestamp: 2024-01-15T10:00:00Z
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/MemoryItem'
|
|
type: array
|
|
async:
|
|
default: false
|
|
description: "If true, process asynchronously in background. If false, wait\
|
|
\ for completion (default: false)"
|
|
title: Async
|
|
type: boolean
|
|
document_tags:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
required:
|
|
- items
|
|
title: RetainRequest
|
|
RetainResponse:
|
|
description: Response model for retain endpoint.
|
|
example:
|
|
async: false
|
|
bank_id: user123
|
|
items_count: 2
|
|
success: true
|
|
usage:
|
|
input_tokens: 500
|
|
output_tokens: 100
|
|
total_tokens: 600
|
|
properties:
|
|
success:
|
|
title: Success
|
|
type: boolean
|
|
bank_id:
|
|
title: Bank Id
|
|
type: string
|
|
items_count:
|
|
title: Items Count
|
|
type: integer
|
|
async:
|
|
description: Whether the operation was processed asynchronously
|
|
title: Async
|
|
type: boolean
|
|
operation_id:
|
|
nullable: true
|
|
type: string
|
|
operation_ids:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
usage:
|
|
$ref: '#/components/schemas/TokenUsage'
|
|
required:
|
|
- async
|
|
- bank_id
|
|
- items_count
|
|
- success
|
|
title: RetainResponse
|
|
RetryOperationResponse:
|
|
description: Response model for retry operation endpoint.
|
|
example:
|
|
message: Operation 550e8400-e29b-41d4-a716-446655440000 queued for retry
|
|
operation_id: 550e8400-e29b-41d4-a716-446655440000
|
|
success: true
|
|
properties:
|
|
success:
|
|
title: Success
|
|
type: boolean
|
|
message:
|
|
title: Message
|
|
type: string
|
|
operation_id:
|
|
title: Operation Id
|
|
type: string
|
|
required:
|
|
- message
|
|
- operation_id
|
|
- success
|
|
title: RetryOperationResponse
|
|
SourceFactsIncludeOptions:
|
|
description: Options for including source facts for observation-type results.
|
|
properties:
|
|
max_tokens:
|
|
default: 4096
|
|
description: Maximum total tokens for source facts across all observations
|
|
(-1 = unlimited)
|
|
title: Max Tokens
|
|
type: integer
|
|
max_tokens_per_observation:
|
|
default: -1
|
|
description: Maximum tokens of source facts per observation (-1 = unlimited)
|
|
title: Max Tokens Per Observation
|
|
type: integer
|
|
title: SourceFactsIncludeOptions
|
|
TagGroupAnd:
|
|
description: "Compound AND group: all child filters must match."
|
|
properties:
|
|
and:
|
|
items:
|
|
$ref: '#/components/schemas/RecallRequest_tag_groups_inner'
|
|
type: array
|
|
required:
|
|
- and
|
|
title: TagGroupAnd
|
|
TagGroupLeaf:
|
|
description: "A leaf tag filter: matches memories by tag list and match mode."
|
|
properties:
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
match:
|
|
default: any_strict
|
|
enum:
|
|
- any
|
|
- all
|
|
- any_strict
|
|
- all_strict
|
|
title: Match
|
|
type: string
|
|
required:
|
|
- tags
|
|
title: TagGroupLeaf
|
|
TagGroupNot:
|
|
description: "Compound NOT group: child filter must NOT match."
|
|
properties:
|
|
not:
|
|
$ref: '#/components/schemas/Not'
|
|
required:
|
|
- not
|
|
title: TagGroupNot
|
|
TagGroupOr:
|
|
description: "Compound OR group: at least one child filter must match."
|
|
properties:
|
|
or:
|
|
items:
|
|
$ref: '#/components/schemas/RecallRequest_tag_groups_inner'
|
|
type: array
|
|
required:
|
|
- or
|
|
title: TagGroupOr
|
|
TagItem:
|
|
description: Single tag with usage count.
|
|
properties:
|
|
tag:
|
|
description: The tag value
|
|
title: Tag
|
|
type: string
|
|
count:
|
|
description: Number of memories with this tag
|
|
title: Count
|
|
type: integer
|
|
required:
|
|
- count
|
|
- tag
|
|
title: TagItem
|
|
TokenUsage:
|
|
description: |-
|
|
Token usage metrics for LLM calls.
|
|
|
|
Tracks input/output tokens for a single request to enable
|
|
per-request cost tracking and monitoring.
|
|
example:
|
|
input_tokens: 1500
|
|
output_tokens: 500
|
|
total_tokens: 2000
|
|
properties:
|
|
input_tokens:
|
|
default: 0
|
|
description: Number of input/prompt tokens consumed
|
|
title: Input Tokens
|
|
type: integer
|
|
output_tokens:
|
|
default: 0
|
|
description: Number of output/completion tokens generated
|
|
title: Output Tokens
|
|
type: integer
|
|
total_tokens:
|
|
default: 0
|
|
description: Total tokens (input + output)
|
|
title: Total Tokens
|
|
type: integer
|
|
title: TokenUsage
|
|
ToolCallsIncludeOptions:
|
|
description: Options for including tool calls in reflect results.
|
|
properties:
|
|
output:
|
|
default: true
|
|
description: Include tool outputs in the trace. Set to false to only include
|
|
inputs (smaller payload).
|
|
title: Output
|
|
type: boolean
|
|
title: ToolCallsIncludeOptions
|
|
UpdateDirectiveRequest:
|
|
description: Request model for updating a directive.
|
|
example:
|
|
is_active: true
|
|
name: name
|
|
priority: 0
|
|
content: content
|
|
tags:
|
|
- tags
|
|
- tags
|
|
properties:
|
|
name:
|
|
nullable: true
|
|
type: string
|
|
content:
|
|
nullable: true
|
|
type: string
|
|
priority:
|
|
nullable: true
|
|
type: integer
|
|
is_active:
|
|
nullable: true
|
|
type: boolean
|
|
tags:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
title: UpdateDirectiveRequest
|
|
UpdateDispositionRequest:
|
|
description: Request model for updating disposition traits.
|
|
example:
|
|
disposition:
|
|
empathy: 3
|
|
literalism: 3
|
|
skepticism: 3
|
|
properties:
|
|
disposition:
|
|
$ref: '#/components/schemas/DispositionTraits'
|
|
required:
|
|
- disposition
|
|
title: UpdateDispositionRequest
|
|
UpdateDocumentRequest:
|
|
description: Request model for updating a document's mutable fields.
|
|
example:
|
|
tags:
|
|
- team-a
|
|
- team-b
|
|
properties:
|
|
tags:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
title: UpdateDocumentRequest
|
|
UpdateDocumentResponse:
|
|
description: Response model for update document endpoint.
|
|
example:
|
|
success: true
|
|
properties:
|
|
success:
|
|
default: true
|
|
title: Success
|
|
type: boolean
|
|
title: UpdateDocumentResponse
|
|
UpdateMentalModelRequest:
|
|
description: Request model for updating a mental model.
|
|
example:
|
|
max_tokens: 4096
|
|
name: Updated Team Communication Preferences
|
|
source_query: How does the team prefer to communicate?
|
|
tags:
|
|
- team
|
|
- communication
|
|
trigger:
|
|
refresh_after_consolidation: true
|
|
properties:
|
|
name:
|
|
nullable: true
|
|
type: string
|
|
source_query:
|
|
nullable: true
|
|
type: string
|
|
max_tokens:
|
|
maximum: 8192.0
|
|
minimum: 256.0
|
|
nullable: true
|
|
type: integer
|
|
tags:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
trigger:
|
|
$ref: '#/components/schemas/MentalModelTrigger'
|
|
title: UpdateMentalModelRequest
|
|
UpdateWebhookRequest:
|
|
description: Request model for updating a webhook. Only provided fields are
|
|
updated.
|
|
example:
|
|
event_types:
|
|
- event_types
|
|
- event_types
|
|
secret: secret
|
|
http_config:
|
|
headers:
|
|
key: headers
|
|
method: POST
|
|
timeout_seconds: 0
|
|
params:
|
|
key: params
|
|
url: url
|
|
enabled: true
|
|
properties:
|
|
url:
|
|
nullable: true
|
|
type: string
|
|
secret:
|
|
nullable: true
|
|
type: string
|
|
event_types:
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
type: array
|
|
enabled:
|
|
nullable: true
|
|
type: boolean
|
|
http_config:
|
|
$ref: '#/components/schemas/WebhookHttpConfig'
|
|
title: UpdateWebhookRequest
|
|
ValidationError:
|
|
example:
|
|
msg: msg
|
|
loc:
|
|
- ValidationError_loc_inner
|
|
- ValidationError_loc_inner
|
|
type: type
|
|
properties:
|
|
loc:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError_loc_inner'
|
|
type: array
|
|
msg:
|
|
title: Message
|
|
type: string
|
|
type:
|
|
title: Error Type
|
|
type: string
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
VersionResponse:
|
|
description: Response model for the version/info endpoint.
|
|
example:
|
|
api_version: 0.4.0
|
|
features:
|
|
bank_config_api: false
|
|
file_upload_api: true
|
|
mcp: true
|
|
observations: false
|
|
worker: true
|
|
properties:
|
|
api_version:
|
|
description: API version string
|
|
title: Api Version
|
|
type: string
|
|
features:
|
|
$ref: '#/components/schemas/FeaturesInfo'
|
|
required:
|
|
- api_version
|
|
- features
|
|
title: VersionResponse
|
|
WebhookDeliveryListResponse:
|
|
description: Response model for listing webhook deliveries.
|
|
example:
|
|
next_cursor: next_cursor
|
|
items:
|
|
- last_response_body: last_response_body
|
|
last_attempt_at: last_attempt_at
|
|
created_at: created_at
|
|
last_response_status: 6
|
|
url: url
|
|
event_type: event_type
|
|
updated_at: updated_at
|
|
webhook_id: webhook_id
|
|
next_retry_at: next_retry_at
|
|
id: id
|
|
last_error: last_error
|
|
status: status
|
|
attempts: 0
|
|
- last_response_body: last_response_body
|
|
last_attempt_at: last_attempt_at
|
|
created_at: created_at
|
|
last_response_status: 6
|
|
url: url
|
|
event_type: event_type
|
|
updated_at: updated_at
|
|
webhook_id: webhook_id
|
|
next_retry_at: next_retry_at
|
|
id: id
|
|
last_error: last_error
|
|
status: status
|
|
attempts: 0
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/WebhookDeliveryResponse'
|
|
type: array
|
|
next_cursor:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- items
|
|
title: WebhookDeliveryListResponse
|
|
WebhookDeliveryResponse:
|
|
description: Response model for a webhook delivery record.
|
|
example:
|
|
last_response_body: last_response_body
|
|
last_attempt_at: last_attempt_at
|
|
created_at: created_at
|
|
last_response_status: 6
|
|
url: url
|
|
event_type: event_type
|
|
updated_at: updated_at
|
|
webhook_id: webhook_id
|
|
next_retry_at: next_retry_at
|
|
id: id
|
|
last_error: last_error
|
|
status: status
|
|
attempts: 0
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
webhook_id:
|
|
nullable: true
|
|
type: string
|
|
url:
|
|
title: Url
|
|
type: string
|
|
event_type:
|
|
title: Event Type
|
|
type: string
|
|
status:
|
|
title: Status
|
|
type: string
|
|
attempts:
|
|
title: Attempts
|
|
type: integer
|
|
next_retry_at:
|
|
nullable: true
|
|
type: string
|
|
last_error:
|
|
nullable: true
|
|
type: string
|
|
last_response_status:
|
|
nullable: true
|
|
type: integer
|
|
last_response_body:
|
|
nullable: true
|
|
type: string
|
|
last_attempt_at:
|
|
nullable: true
|
|
type: string
|
|
created_at:
|
|
nullable: true
|
|
type: string
|
|
updated_at:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- attempts
|
|
- event_type
|
|
- id
|
|
- status
|
|
- url
|
|
- webhook_id
|
|
title: WebhookDeliveryResponse
|
|
WebhookHttpConfig:
|
|
description: HTTP delivery configuration for a webhook.
|
|
example:
|
|
headers:
|
|
key: headers
|
|
method: POST
|
|
timeout_seconds: 0
|
|
params:
|
|
key: params
|
|
properties:
|
|
method:
|
|
default: POST
|
|
description: "HTTP method: GET or POST"
|
|
title: Method
|
|
type: string
|
|
timeout_seconds:
|
|
default: 30
|
|
description: HTTP request timeout in seconds
|
|
title: Timeout Seconds
|
|
type: integer
|
|
headers:
|
|
additionalProperties:
|
|
type: string
|
|
description: Custom HTTP headers
|
|
title: Headers
|
|
params:
|
|
additionalProperties:
|
|
type: string
|
|
description: Custom HTTP query parameters
|
|
title: Params
|
|
title: WebhookHttpConfig
|
|
WebhookListResponse:
|
|
description: Response model for listing webhooks.
|
|
example:
|
|
items:
|
|
- event_types:
|
|
- event_types
|
|
- event_types
|
|
updated_at: updated_at
|
|
bank_id: bank_id
|
|
created_at: created_at
|
|
id: id
|
|
secret: secret
|
|
http_config:
|
|
headers:
|
|
key: headers
|
|
method: POST
|
|
timeout_seconds: 0
|
|
params:
|
|
key: params
|
|
url: url
|
|
enabled: true
|
|
- event_types:
|
|
- event_types
|
|
- event_types
|
|
updated_at: updated_at
|
|
bank_id: bank_id
|
|
created_at: created_at
|
|
id: id
|
|
secret: secret
|
|
http_config:
|
|
headers:
|
|
key: headers
|
|
method: POST
|
|
timeout_seconds: 0
|
|
params:
|
|
key: params
|
|
url: url
|
|
enabled: true
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/WebhookResponse'
|
|
type: array
|
|
required:
|
|
- items
|
|
title: WebhookListResponse
|
|
WebhookResponse:
|
|
description: Response model for a webhook.
|
|
example:
|
|
event_types:
|
|
- event_types
|
|
- event_types
|
|
updated_at: updated_at
|
|
bank_id: bank_id
|
|
created_at: created_at
|
|
id: id
|
|
secret: secret
|
|
http_config:
|
|
headers:
|
|
key: headers
|
|
method: POST
|
|
timeout_seconds: 0
|
|
params:
|
|
key: params
|
|
url: url
|
|
enabled: true
|
|
properties:
|
|
id:
|
|
title: Id
|
|
type: string
|
|
bank_id:
|
|
nullable: true
|
|
type: string
|
|
url:
|
|
title: Url
|
|
type: string
|
|
secret:
|
|
nullable: true
|
|
type: string
|
|
event_types:
|
|
items:
|
|
type: string
|
|
type: array
|
|
enabled:
|
|
title: Enabled
|
|
type: boolean
|
|
http_config:
|
|
$ref: '#/components/schemas/WebhookHttpConfig'
|
|
created_at:
|
|
nullable: true
|
|
type: string
|
|
updated_at:
|
|
nullable: true
|
|
type: string
|
|
required:
|
|
- bank_id
|
|
- enabled
|
|
- event_types
|
|
- id
|
|
- url
|
|
title: WebhookResponse
|
|
Timestamp:
|
|
anyOf:
|
|
- format: date-time
|
|
type: string
|
|
- type: string
|
|
description: "When the content occurred. Accepts an ISO 8601 datetime string\
|
|
\ (e.g. '2024-01-15T10:30:00Z'), null/omitted (defaults to now), or the special\
|
|
\ string 'unset' to explicitly store without any timestamp (use this for timeless\
|
|
\ content such as fictional documents or static reference material)."
|
|
nullable: true
|
|
title: Timestamp
|
|
ObservationScopes:
|
|
anyOf:
|
|
- enum:
|
|
- per_tag
|
|
- combined
|
|
- all_combinations
|
|
type: string
|
|
- items:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: array
|
|
description: "How to scope observations during consolidation. 'per_tag' runs\
|
|
\ one consolidation pass per individual tag, creating separate observations\
|
|
\ for each tag. 'combined' (default) runs a single pass with all tags together.\
|
|
\ A list of tag lists runs one pass per inner list, giving full control over\
|
|
\ which combinations to use."
|
|
nullable: true
|
|
title: ObservationScopes
|
|
RecallRequest_tag_groups_inner:
|
|
anyOf:
|
|
- $ref: '#/components/schemas/TagGroupLeaf'
|
|
- $ref: '#/components/schemas/TagGroupAnd'
|
|
- $ref: '#/components/schemas/TagGroupOr'
|
|
- $ref: '#/components/schemas/TagGroupNot'
|
|
Not:
|
|
anyOf:
|
|
- $ref: '#/components/schemas/TagGroupLeaf'
|
|
- $ref: '#/components/schemas/TagGroupAnd'
|
|
- $ref: '#/components/schemas/TagGroupOr'
|
|
- $ref: '#/components/schemas/TagGroupNot'
|
|
title: Not
|
|
ValidationError_loc_inner:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|