mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
2543 lines
64 KiB
YAML
2543 lines
64 KiB
YAML
definitions:
|
|
chat.AgentSkill:
|
|
properties:
|
|
content:
|
|
type: string
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
chat.ChatRequest:
|
|
properties:
|
|
current_platform:
|
|
type: string
|
|
language:
|
|
type: string
|
|
locale:
|
|
type: string
|
|
max_context_load_time:
|
|
type: integer
|
|
max_steps:
|
|
type: integer
|
|
messages:
|
|
items:
|
|
$ref: '#/definitions/chat.GatewayMessage'
|
|
type: array
|
|
model:
|
|
type: string
|
|
platforms:
|
|
items:
|
|
type: string
|
|
type: array
|
|
provider:
|
|
type: string
|
|
query:
|
|
type: string
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/chat.AgentSkill'
|
|
type: array
|
|
use_skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
chat.ChatResponse:
|
|
properties:
|
|
messages:
|
|
items:
|
|
$ref: '#/definitions/chat.GatewayMessage'
|
|
type: array
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
chat.GatewayMessage:
|
|
additionalProperties: true
|
|
type: object
|
|
handlers.ContainerInfo:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
id:
|
|
type: string
|
|
image:
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
snapshot_key:
|
|
type: string
|
|
snapshotter:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.CreateContainerRequest:
|
|
properties:
|
|
container_id:
|
|
type: string
|
|
image:
|
|
type: string
|
|
snapshotter:
|
|
type: string
|
|
type: object
|
|
handlers.CreateContainerResponse:
|
|
properties:
|
|
container_id:
|
|
type: string
|
|
image:
|
|
type: string
|
|
snapshotter:
|
|
type: string
|
|
started:
|
|
type: boolean
|
|
type: object
|
|
handlers.CreateSnapshotRequest:
|
|
properties:
|
|
container_id:
|
|
type: string
|
|
snapshot_name:
|
|
type: string
|
|
type: object
|
|
handlers.CreateSnapshotResponse:
|
|
properties:
|
|
container_id:
|
|
type: string
|
|
snapshot_name:
|
|
type: string
|
|
snapshotter:
|
|
type: string
|
|
type: object
|
|
handlers.EmbeddingsInput:
|
|
properties:
|
|
image_url:
|
|
type: string
|
|
text:
|
|
type: string
|
|
video_url:
|
|
type: string
|
|
type: object
|
|
handlers.EmbeddingsRequest:
|
|
properties:
|
|
dimensions:
|
|
type: integer
|
|
input:
|
|
$ref: '#/definitions/handlers.EmbeddingsInput'
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
handlers.EmbeddingsResponse:
|
|
properties:
|
|
dimensions:
|
|
type: integer
|
|
embedding:
|
|
items:
|
|
type: number
|
|
type: array
|
|
message:
|
|
type: string
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
type:
|
|
type: string
|
|
usage:
|
|
$ref: '#/definitions/handlers.EmbeddingsUsage'
|
|
type: object
|
|
handlers.EmbeddingsUsage:
|
|
properties:
|
|
image_tokens:
|
|
type: integer
|
|
input_tokens:
|
|
type: integer
|
|
video_tokens:
|
|
type: integer
|
|
type: object
|
|
handlers.EnableModelRequest:
|
|
properties:
|
|
as:
|
|
type: string
|
|
model_id:
|
|
type: string
|
|
type: object
|
|
handlers.ErrorResponse:
|
|
properties:
|
|
message:
|
|
type: string
|
|
type: object
|
|
handlers.ListContainersResponse:
|
|
properties:
|
|
containers:
|
|
items:
|
|
$ref: '#/definitions/handlers.ContainerInfo'
|
|
type: array
|
|
type: object
|
|
handlers.ListSnapshotsResponse:
|
|
properties:
|
|
snapshots:
|
|
items:
|
|
$ref: '#/definitions/handlers.SnapshotInfo'
|
|
type: array
|
|
snapshotter:
|
|
type: string
|
|
type: object
|
|
handlers.LoginRequest:
|
|
properties:
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
handlers.LoginResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
expires_at:
|
|
type: string
|
|
role:
|
|
type: string
|
|
token_type:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
handlers.SkillItem:
|
|
properties:
|
|
content:
|
|
type: string
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
handlers.SkillsDeleteRequest:
|
|
properties:
|
|
names:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
handlers.SkillsResponse:
|
|
properties:
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/handlers.SkillItem'
|
|
type: array
|
|
type: object
|
|
handlers.SkillsUpsertRequest:
|
|
properties:
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/handlers.SkillItem'
|
|
type: array
|
|
type: object
|
|
handlers.SnapshotInfo:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
snapshotter:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.memoryAddPayload:
|
|
properties:
|
|
agent_id:
|
|
type: string
|
|
filters:
|
|
additionalProperties: true
|
|
type: object
|
|
infer:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
messages:
|
|
items:
|
|
$ref: '#/definitions/memory.Message'
|
|
type: array
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
run_id:
|
|
type: string
|
|
type: object
|
|
handlers.memoryDeleteAllPayload:
|
|
properties:
|
|
agent_id:
|
|
type: string
|
|
run_id:
|
|
type: string
|
|
type: object
|
|
handlers.memoryEmbedUpsertPayload:
|
|
properties:
|
|
agent_id:
|
|
type: string
|
|
filters:
|
|
additionalProperties: true
|
|
type: object
|
|
input:
|
|
$ref: '#/definitions/memory.EmbedInput'
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
run_id:
|
|
type: string
|
|
source:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
handlers.memorySearchPayload:
|
|
properties:
|
|
agent_id:
|
|
type: string
|
|
filters:
|
|
additionalProperties: true
|
|
type: object
|
|
limit:
|
|
type: integer
|
|
query:
|
|
type: string
|
|
run_id:
|
|
type: string
|
|
sources:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
handlers.skillsOpResponse:
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
type: object
|
|
history.CreateRequest:
|
|
properties:
|
|
messages:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
history.ListResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/history.Record'
|
|
type: array
|
|
type: object
|
|
history.Record:
|
|
properties:
|
|
id:
|
|
type: string
|
|
messages:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
timestamp:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
type: object
|
|
memory.DeleteResponse:
|
|
properties:
|
|
message:
|
|
type: string
|
|
type: object
|
|
memory.EmbedInput:
|
|
properties:
|
|
image_url:
|
|
type: string
|
|
text:
|
|
type: string
|
|
video_url:
|
|
type: string
|
|
type: object
|
|
memory.EmbedUpsertResponse:
|
|
properties:
|
|
dimensions:
|
|
type: integer
|
|
item:
|
|
$ref: '#/definitions/memory.MemoryItem'
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
type: object
|
|
memory.MemoryItem:
|
|
properties:
|
|
agentId:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
id:
|
|
type: string
|
|
memory:
|
|
type: string
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
runId:
|
|
type: string
|
|
score:
|
|
type: number
|
|
updatedAt:
|
|
type: string
|
|
userId:
|
|
type: string
|
|
type: object
|
|
memory.Message:
|
|
properties:
|
|
content:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type: object
|
|
memory.SearchResponse:
|
|
properties:
|
|
relations:
|
|
items: {}
|
|
type: array
|
|
results:
|
|
items:
|
|
$ref: '#/definitions/memory.MemoryItem'
|
|
type: array
|
|
type: object
|
|
memory.UpdateRequest:
|
|
properties:
|
|
memory:
|
|
type: string
|
|
memory_id:
|
|
type: string
|
|
type: object
|
|
models.AddRequest:
|
|
properties:
|
|
dimensions:
|
|
type: integer
|
|
is_multimodal:
|
|
type: boolean
|
|
llm_provider_id:
|
|
type: string
|
|
model_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/models.ModelType'
|
|
type: object
|
|
models.AddResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
model_id:
|
|
type: string
|
|
type: object
|
|
models.CountResponse:
|
|
properties:
|
|
count:
|
|
type: integer
|
|
type: object
|
|
models.GetResponse:
|
|
properties:
|
|
dimensions:
|
|
type: integer
|
|
is_multimodal:
|
|
type: boolean
|
|
llm_provider_id:
|
|
type: string
|
|
model_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/models.ModelType'
|
|
type: object
|
|
models.ModelType:
|
|
enum:
|
|
- chat
|
|
- embedding
|
|
type: string
|
|
x-enum-varnames:
|
|
- ModelTypeChat
|
|
- ModelTypeEmbedding
|
|
models.UpdateRequest:
|
|
properties:
|
|
dimensions:
|
|
type: integer
|
|
is_multimodal:
|
|
type: boolean
|
|
llm_provider_id:
|
|
type: string
|
|
model_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/models.ModelType'
|
|
type: object
|
|
providers.ClientType:
|
|
enum:
|
|
- openai
|
|
- openai-compat
|
|
- anthropic
|
|
- google
|
|
- ollama
|
|
type: string
|
|
x-enum-varnames:
|
|
- ClientTypeOpenAI
|
|
- ClientTypeOpenAICompat
|
|
- ClientTypeAnthropic
|
|
- ClientTypeGoogle
|
|
- ClientTypeOllama
|
|
providers.CountResponse:
|
|
properties:
|
|
count:
|
|
type: integer
|
|
type: object
|
|
providers.CreateRequest:
|
|
properties:
|
|
api_key:
|
|
type: string
|
|
base_url:
|
|
type: string
|
|
client_type:
|
|
$ref: '#/definitions/providers.ClientType'
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
name:
|
|
type: string
|
|
required:
|
|
- base_url
|
|
- client_type
|
|
- name
|
|
type: object
|
|
providers.GetResponse:
|
|
properties:
|
|
api_key:
|
|
description: masked in response
|
|
type: string
|
|
base_url:
|
|
type: string
|
|
client_type:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
id:
|
|
type: string
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
name:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
providers.UpdateRequest:
|
|
properties:
|
|
api_key:
|
|
type: string
|
|
base_url:
|
|
type: string
|
|
client_type:
|
|
$ref: '#/definitions/providers.ClientType'
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
name:
|
|
type: string
|
|
type: object
|
|
schedule.CreateRequest:
|
|
properties:
|
|
command:
|
|
type: string
|
|
description:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
max_calls:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
type: object
|
|
schedule.ListResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/schedule.Schedule'
|
|
type: array
|
|
type: object
|
|
schedule.Schedule:
|
|
properties:
|
|
command:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
current_calls:
|
|
type: integer
|
|
description:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
id:
|
|
type: string
|
|
max_calls:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
type: object
|
|
schedule.UpdateRequest:
|
|
properties:
|
|
command:
|
|
type: string
|
|
description:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
max_calls:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
type: object
|
|
settings.Settings:
|
|
properties:
|
|
chat_model_id:
|
|
type: string
|
|
embedding_model_id:
|
|
type: string
|
|
language:
|
|
type: string
|
|
max_context_load_time:
|
|
type: integer
|
|
memory_model_id:
|
|
type: string
|
|
type: object
|
|
settings.UpsertRequest:
|
|
properties:
|
|
chat_model_id:
|
|
type: string
|
|
embedding_model_id:
|
|
type: string
|
|
language:
|
|
type: string
|
|
max_context_load_time:
|
|
type: integer
|
|
memory_model_id:
|
|
type: string
|
|
type: object
|
|
subagent.AddSkillsRequest:
|
|
properties:
|
|
skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
subagent.ContextResponse:
|
|
properties:
|
|
messages:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
type: object
|
|
subagent.CreateRequest:
|
|
properties:
|
|
description:
|
|
type: string
|
|
messages:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
name:
|
|
type: string
|
|
skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
subagent.ListResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/subagent.Subagent'
|
|
type: array
|
|
type: object
|
|
subagent.SkillsResponse:
|
|
properties:
|
|
skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
subagent.Subagent:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
deleted:
|
|
type: boolean
|
|
deleted_at:
|
|
type: string
|
|
description:
|
|
type: string
|
|
id:
|
|
type: string
|
|
messages:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
name:
|
|
type: string
|
|
skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
updated_at:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
type: object
|
|
subagent.UpdateContextRequest:
|
|
properties:
|
|
messages:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
type: object
|
|
subagent.UpdateRequest:
|
|
properties:
|
|
description:
|
|
type: string
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
name:
|
|
type: string
|
|
type: object
|
|
subagent.UpdateSkillsRequest:
|
|
properties:
|
|
skills:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
info:
|
|
contact: {}
|
|
title: Memoh API
|
|
version: 1.0.0
|
|
paths:
|
|
/auth/login:
|
|
post:
|
|
description: Validate user credentials and issue a JWT
|
|
parameters:
|
|
- description: Login request
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.LoginRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.LoginResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Login
|
|
tags:
|
|
- auth
|
|
/chat:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Send a chat message and get a response. The system will automatically
|
|
select an appropriate chat model from the database.
|
|
parameters:
|
|
- description: Chat request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/chat.ChatRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/chat.ChatResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Chat with AI
|
|
tags:
|
|
- chat
|
|
/chat/stream:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Send a chat message and get a streaming response. The system will
|
|
automatically select an appropriate chat model from the database.
|
|
parameters:
|
|
- description: Chat request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/chat.ChatRequest'
|
|
produces:
|
|
- text/event-stream
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
format: int32
|
|
type: integer
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Stream chat with AI
|
|
tags:
|
|
- chat
|
|
/embeddings:
|
|
post:
|
|
description: Create text or multimodal embeddings
|
|
parameters:
|
|
- description: Embeddings request
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.EmbeddingsRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.EmbeddingsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"501":
|
|
description: Not Implemented
|
|
schema:
|
|
$ref: '#/definitions/handlers.EmbeddingsResponse'
|
|
summary: Create embeddings
|
|
tags:
|
|
- embeddings
|
|
/history:
|
|
delete:
|
|
description: Delete all history records for current user
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete all history records
|
|
tags:
|
|
- history
|
|
get:
|
|
description: List history records for current user
|
|
parameters:
|
|
- description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/history.ListResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List history records
|
|
tags:
|
|
- history
|
|
post:
|
|
description: Create a history record for current user
|
|
parameters:
|
|
- description: History payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/history.CreateRequest'
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/history.Record'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Create history record
|
|
tags:
|
|
- history
|
|
/history/{id}:
|
|
delete:
|
|
description: Delete a history record by ID (must belong to current user)
|
|
parameters:
|
|
- description: History ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete history record
|
|
tags:
|
|
- history
|
|
get:
|
|
description: Get a history record by ID (must belong to current user)
|
|
parameters:
|
|
- description: History ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/history.Record'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get history record
|
|
tags:
|
|
- history
|
|
/mcp/containers:
|
|
get:
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.ListContainersResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List containers
|
|
tags:
|
|
- containerd
|
|
post:
|
|
parameters:
|
|
- description: Create container payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateContainerRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateContainerResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Create and start MCP container
|
|
tags:
|
|
- containerd
|
|
/mcp/containers/{id}:
|
|
delete:
|
|
parameters:
|
|
- description: Container ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete MCP container
|
|
tags:
|
|
- containerd
|
|
/mcp/fs/{id}:
|
|
post:
|
|
description: |-
|
|
Forwards MCP JSON-RPC requests to the MCP server inside the container.
|
|
Required:
|
|
- container task is running
|
|
- container has data mount (default /data) bound to <data_root>/users/<user_id>
|
|
- container image contains the "mcp" binary
|
|
Auth: Bearer JWT is used to determine user_id (sub or user_id).
|
|
Paths must be relative (no leading slash) and must not contain "..".
|
|
|
|
Example: tools/list
|
|
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
|
|
|
|
Example: tools/call (fs.read)
|
|
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"fs.read","arguments":{"path":"notes.txt"}}}
|
|
parameters:
|
|
- description: Bearer <token>
|
|
in: header
|
|
name: Authorization
|
|
required: true
|
|
type: string
|
|
- description: Container ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: JSON-RPC request
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"200":
|
|
description: 'JSON-RPC response: {jsonrpc,id,result|error}'
|
|
schema:
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: MCP filesystem tools (JSON-RPC)
|
|
tags:
|
|
- containerd
|
|
/mcp/skills:
|
|
delete:
|
|
parameters:
|
|
- description: Delete skills payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.SkillsDeleteRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.skillsOpResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete skills from container
|
|
tags:
|
|
- containerd
|
|
get:
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.SkillsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List skills from container
|
|
tags:
|
|
- containerd
|
|
post:
|
|
parameters:
|
|
- description: Skills payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.SkillsUpsertRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.skillsOpResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Upload skills into container
|
|
tags:
|
|
- containerd
|
|
/mcp/snapshots:
|
|
get:
|
|
parameters:
|
|
- description: Snapshotter name
|
|
in: query
|
|
name: snapshotter
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.ListSnapshotsResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List snapshots
|
|
tags:
|
|
- containerd
|
|
post:
|
|
parameters:
|
|
- description: Create snapshot payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateSnapshotRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateSnapshotResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Create container snapshot
|
|
tags:
|
|
- containerd
|
|
/memory/add:
|
|
post:
|
|
description: 'Add memory for a user via memory. Auth: Bearer JWT determines
|
|
user_id (sub or user_id).'
|
|
parameters:
|
|
- description: Add request
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.memoryAddPayload'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/memory.SearchResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Add memory
|
|
tags:
|
|
- memory
|
|
/memory/embed:
|
|
post:
|
|
description: 'Embed text or multimodal input and upsert into memory store. Auth:
|
|
Bearer JWT determines user_id (sub or user_id).'
|
|
parameters:
|
|
- description: Embed upsert request
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.memoryEmbedUpsertPayload'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/memory.EmbedUpsertResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Embed and upsert memory
|
|
tags:
|
|
- memory
|
|
/memory/memories:
|
|
delete:
|
|
description: 'Delete all memories for a user via memory. Auth: Bearer JWT determines
|
|
user_id (sub or user_id).'
|
|
parameters:
|
|
- description: Delete all request
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.memoryDeleteAllPayload'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/memory.DeleteResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete memories
|
|
tags:
|
|
- memory
|
|
get:
|
|
description: 'List memories for a user via memory. Auth: Bearer JWT determines
|
|
user_id (sub or user_id).'
|
|
parameters:
|
|
- description: Agent ID
|
|
in: query
|
|
name: agent_id
|
|
type: string
|
|
- description: Run ID
|
|
in: query
|
|
name: run_id
|
|
type: string
|
|
- description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/memory.SearchResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List memories
|
|
tags:
|
|
- memory
|
|
/memory/memories/{memoryId}:
|
|
delete:
|
|
description: 'Delete a memory by ID via memory. Auth: Bearer JWT determines
|
|
user_id (sub or user_id).'
|
|
parameters:
|
|
- description: Memory ID
|
|
in: path
|
|
name: memoryId
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/memory.DeleteResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete memory
|
|
tags:
|
|
- memory
|
|
get:
|
|
description: 'Get a memory by ID via memory. Auth: Bearer JWT determines user_id
|
|
(sub or user_id).'
|
|
parameters:
|
|
- description: Memory ID
|
|
in: path
|
|
name: memoryId
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/memory.MemoryItem'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get memory
|
|
tags:
|
|
- memory
|
|
/memory/search:
|
|
post:
|
|
description: 'Search memories for a user via memory. Auth: Bearer JWT determines
|
|
user_id (sub or user_id).'
|
|
parameters:
|
|
- description: Search request
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.memorySearchPayload'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/memory.SearchResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Search memories
|
|
tags:
|
|
- memory
|
|
/memory/update:
|
|
post:
|
|
description: 'Update a memory by ID via memory. Auth: Bearer JWT determines
|
|
user_id (sub or user_id).'
|
|
parameters:
|
|
- description: Update request
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/memory.UpdateRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/memory.MemoryItem'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update memory
|
|
tags:
|
|
- memory
|
|
/models:
|
|
get:
|
|
description: Get a list of all configured models, optionally filtered by type
|
|
or client type
|
|
parameters:
|
|
- description: Model type (chat, embedding)
|
|
in: query
|
|
name: type
|
|
type: string
|
|
- description: Client type (openai, anthropic, google)
|
|
in: query
|
|
name: client_type
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.GetResponse'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List all models
|
|
tags:
|
|
- models
|
|
post:
|
|
description: Create a new model configuration
|
|
parameters:
|
|
- description: Model configuration
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.AddRequest'
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/models.AddResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Create a new model
|
|
tags:
|
|
- models
|
|
/models/{id}:
|
|
delete:
|
|
description: Delete a model configuration by its internal UUID
|
|
parameters:
|
|
- description: Model internal ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete model by internal ID
|
|
tags:
|
|
- models
|
|
get:
|
|
description: Get a model configuration by its internal UUID
|
|
parameters:
|
|
- description: Model internal ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.GetResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get model by internal ID
|
|
tags:
|
|
- models
|
|
put:
|
|
description: Update a model configuration by its internal UUID
|
|
parameters:
|
|
- description: Model internal ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Updated model configuration
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UpdateRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.GetResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update model by internal ID
|
|
tags:
|
|
- models
|
|
/models/count:
|
|
get:
|
|
description: Get the total count of models, optionally filtered by type
|
|
parameters:
|
|
- description: Model type (chat, embedding)
|
|
in: query
|
|
name: type
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.CountResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get model count
|
|
tags:
|
|
- models
|
|
/models/enable:
|
|
post:
|
|
description: Update the current user's settings to use the selected model
|
|
parameters:
|
|
- description: Enable model payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.EnableModelRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/settings.Settings'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Enable model for chat/memory/embedding
|
|
tags:
|
|
- models
|
|
/models/model/{modelId}:
|
|
delete:
|
|
description: Delete a model configuration by its model_id field (e.g., gpt-4)
|
|
parameters:
|
|
- description: Model ID (e.g., gpt-4)
|
|
in: path
|
|
name: modelId
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete model by model ID
|
|
tags:
|
|
- models
|
|
get:
|
|
description: Get a model configuration by its model_id field (e.g., gpt-4)
|
|
parameters:
|
|
- description: Model ID (e.g., gpt-4)
|
|
in: path
|
|
name: modelId
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.GetResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get model by model ID
|
|
tags:
|
|
- models
|
|
put:
|
|
description: Update a model configuration by its model_id field (e.g., gpt-4)
|
|
parameters:
|
|
- description: Model ID (e.g., gpt-4)
|
|
in: path
|
|
name: modelId
|
|
required: true
|
|
type: string
|
|
- description: Updated model configuration
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UpdateRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.GetResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update model by model ID
|
|
tags:
|
|
- models
|
|
/providers:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a list of all configured LLM providers, optionally filtered
|
|
by client type
|
|
parameters:
|
|
- description: Client type filter (openai, anthropic, google, ollama)
|
|
in: query
|
|
name: client_type
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/providers.GetResponse'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List all LLM providers
|
|
tags:
|
|
- providers
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a new LLM provider configuration
|
|
parameters:
|
|
- description: Provider configuration
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/providers.CreateRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/providers.GetResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Create a new LLM provider
|
|
tags:
|
|
- providers
|
|
/providers/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete a provider configuration
|
|
parameters:
|
|
- description: Provider ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete provider
|
|
tags:
|
|
- providers
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a provider configuration by its ID
|
|
parameters:
|
|
- description: Provider ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/providers.GetResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get provider by ID
|
|
tags:
|
|
- providers
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update an existing provider configuration
|
|
parameters:
|
|
- description: Provider ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Updated provider configuration
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/providers.UpdateRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/providers.GetResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update provider
|
|
tags:
|
|
- providers
|
|
/providers/{id}/models:
|
|
get:
|
|
description: Get models for a provider by id, optionally filtered by type
|
|
parameters:
|
|
- description: Provider ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Model type (chat, embedding)
|
|
in: query
|
|
name: type
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.GetResponse'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List provider models
|
|
tags:
|
|
- providers
|
|
/providers/count:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get the total count of providers, optionally filtered by client
|
|
type
|
|
parameters:
|
|
- description: Client type filter (openai, anthropic, google, ollama)
|
|
in: query
|
|
name: client_type
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/providers.CountResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Count providers
|
|
tags:
|
|
- providers
|
|
/providers/name/{name}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a provider configuration by its name
|
|
parameters:
|
|
- description: Provider name
|
|
in: path
|
|
name: name
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/providers.GetResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get provider by name
|
|
tags:
|
|
- providers
|
|
/schedule:
|
|
get:
|
|
description: List schedules for current user
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schedule.ListResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List schedules
|
|
tags:
|
|
- schedule
|
|
post:
|
|
description: Create a schedule for current user
|
|
parameters:
|
|
- description: Schedule payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schedule.CreateRequest'
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/schedule.Schedule'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Create schedule
|
|
tags:
|
|
- schedule
|
|
/schedule/{id}:
|
|
delete:
|
|
description: Delete a schedule by ID
|
|
parameters:
|
|
- description: Schedule ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete schedule
|
|
tags:
|
|
- schedule
|
|
get:
|
|
description: Get a schedule by ID
|
|
parameters:
|
|
- description: Schedule ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schedule.Schedule'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get schedule
|
|
tags:
|
|
- schedule
|
|
put:
|
|
description: Update a schedule by ID
|
|
parameters:
|
|
- description: Schedule ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Schedule payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schedule.UpdateRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/schedule.Schedule'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update schedule
|
|
tags:
|
|
- schedule
|
|
/settings:
|
|
delete:
|
|
description: Remove agent settings for current user
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete user settings
|
|
tags:
|
|
- settings
|
|
get:
|
|
description: Get agent settings for current user
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/settings.Settings'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get user settings
|
|
tags:
|
|
- settings
|
|
post:
|
|
description: Update or create agent settings for current user
|
|
parameters:
|
|
- description: Settings payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/settings.UpsertRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/settings.Settings'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update user settings
|
|
tags:
|
|
- settings
|
|
put:
|
|
description: Update or create agent settings for current user
|
|
parameters:
|
|
- description: Settings payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/settings.UpsertRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/settings.Settings'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update user settings
|
|
tags:
|
|
- settings
|
|
/subagents:
|
|
get:
|
|
description: List subagents for current user
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/subagent.ListResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: List subagents
|
|
tags:
|
|
- subagent
|
|
post:
|
|
description: Create a subagent for current user
|
|
parameters:
|
|
- description: Subagent payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/subagent.CreateRequest'
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/subagent.Subagent'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Create subagent
|
|
tags:
|
|
- subagent
|
|
/subagents/{id}:
|
|
delete:
|
|
description: Delete a subagent by ID
|
|
parameters:
|
|
- description: Subagent ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Delete subagent
|
|
tags:
|
|
- subagent
|
|
get:
|
|
description: Get a subagent by ID
|
|
parameters:
|
|
- description: Subagent ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/subagent.Subagent'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get subagent
|
|
tags:
|
|
- subagent
|
|
put:
|
|
description: Update a subagent by ID
|
|
parameters:
|
|
- description: Subagent ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Subagent payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/subagent.UpdateRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/subagent.Subagent'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update subagent
|
|
tags:
|
|
- subagent
|
|
/subagents/{id}/context:
|
|
get:
|
|
description: Get a subagent's message context
|
|
parameters:
|
|
- description: Subagent ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/subagent.ContextResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get subagent context
|
|
tags:
|
|
- subagent
|
|
put:
|
|
description: Update a subagent's message context
|
|
parameters:
|
|
- description: Subagent ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Context payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/subagent.UpdateContextRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/subagent.ContextResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update subagent context
|
|
tags:
|
|
- subagent
|
|
/subagents/{id}/skills:
|
|
get:
|
|
description: Get a subagent's skills
|
|
parameters:
|
|
- description: Subagent ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/subagent.SkillsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Get subagent skills
|
|
tags:
|
|
- subagent
|
|
post:
|
|
description: Add skills to a subagent
|
|
parameters:
|
|
- description: Subagent ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Skills payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/subagent.AddSkillsRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/subagent.SkillsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Add subagent skills
|
|
tags:
|
|
- subagent
|
|
put:
|
|
description: Replace a subagent's skills
|
|
parameters:
|
|
- description: Subagent ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Skills payload
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/subagent.UpdateSkillsRequest'
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/subagent.SkillsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/handlers.ErrorResponse'
|
|
summary: Update subagent skills
|
|
tags:
|
|
- subagent
|
|
swagger: "2.0"
|