{ "swagger": "2.0", "info": { "title": "Memoh API", "contact": {}, "version": "1.0.0" }, "paths": { "/auth/login": { "post": { "description": "Validate user credentials and issue a JWT", "tags": [ "auth" ], "summary": "Login", "parameters": [ { "description": "Login request", "name": "payload", "in": "body", "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" } } } } }, "/chat": { "post": { "description": "Send a chat message and get a response. The system will automatically select an appropriate chat model from the database.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "chat" ], "summary": "Chat with AI", "parameters": [ { "description": "Chat request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/chat.ChatRequest" } } ], "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" } } } } }, "/chat/stream": { "post": { "description": "Send a chat message and get a streaming response. The system will automatically select an appropriate chat model from the database.", "consumes": [ "application/json" ], "produces": [ "text/event-stream" ], "tags": [ "chat" ], "summary": "Stream chat with AI", "parameters": [ { "description": "Chat request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/chat.ChatRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } } } } }, "/embeddings": { "post": { "description": "Create text or multimodal embeddings", "tags": [ "embeddings" ], "summary": "Create embeddings", "parameters": [ { "description": "Embeddings request", "name": "payload", "in": "body", "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" } } } } }, "/history": { "get": { "description": "List history records for current user", "tags": [ "history" ], "summary": "List history records", "parameters": [ { "type": "integer", "description": "Limit", "name": "limit", "in": "query" } ], "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" } } } }, "post": { "description": "Create a history record for current user", "tags": [ "history" ], "summary": "Create history record", "parameters": [ { "description": "History payload", "name": "payload", "in": "body", "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" } } } }, "delete": { "description": "Delete all history records for current user", "tags": [ "history" ], "summary": "Delete all history records", "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } } } } }, "/history/{id}": { "get": { "description": "Get a history record by ID (must belong to current user)", "tags": [ "history" ], "summary": "Get history record", "parameters": [ { "type": "string", "description": "History ID", "name": "id", "in": "path", "required": true } ], "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" } } } }, "delete": { "description": "Delete a history record by ID (must belong to current user)", "tags": [ "history" ], "summary": "Delete history record", "parameters": [ { "type": "string", "description": "History ID", "name": "id", "in": "path", "required": true } ], "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" } } } } }, "/mcp/containers": { "post": { "tags": [ "containerd" ], "summary": "Create and start MCP container", "parameters": [ { "description": "Create container payload", "name": "payload", "in": "body", "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" } } } } }, "/mcp/containers/{id}": { "delete": { "tags": [ "containerd" ], "summary": "Delete MCP container", "parameters": [ { "type": "string", "description": "Container ID", "name": "id", "in": "path", "required": true } ], "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" } } } } }, "/mcp/snapshots": { "post": { "tags": [ "containerd" ], "summary": "Create container snapshot", "parameters": [ { "description": "Create snapshot payload", "name": "payload", "in": "body", "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" } } } } }, "/memory/add": { "post": { "description": "Add memory for a user via memory", "tags": [ "memory" ], "summary": "Add memory", "parameters": [ { "description": "Add request", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/memory.AddRequest" } } ], "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" } } } } }, "/memory/embed": { "post": { "description": "Embed text or multimodal input and upsert into memory store", "tags": [ "memory" ], "summary": "Embed and upsert memory", "parameters": [ { "description": "Embed upsert request", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/memory.EmbedUpsertRequest" } } ], "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" } } } } }, "/memory/memories": { "get": { "description": "List memories for a user via memory", "tags": [ "memory" ], "summary": "List memories", "parameters": [ { "type": "string", "description": "User ID", "name": "user_id", "in": "query" }, { "type": "string", "description": "Agent ID", "name": "agent_id", "in": "query" }, { "type": "string", "description": "Run ID", "name": "run_id", "in": "query" }, { "type": "integer", "description": "Limit", "name": "limit", "in": "query" } ], "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" } } } }, "delete": { "description": "Delete all memories for a user via memory", "tags": [ "memory" ], "summary": "Delete memories", "parameters": [ { "description": "Delete all request", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/memory.DeleteAllRequest" } } ], "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" } } } } }, "/memory/memories/{memoryId}": { "get": { "description": "Get a memory by ID via memory", "tags": [ "memory" ], "summary": "Get memory", "parameters": [ { "type": "string", "description": "Memory ID", "name": "memoryId", "in": "path", "required": true } ], "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" } } } }, "delete": { "description": "Delete a memory by ID via memory", "tags": [ "memory" ], "summary": "Delete memory", "parameters": [ { "type": "string", "description": "Memory ID", "name": "memoryId", "in": "path", "required": true } ], "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" } } } } }, "/memory/search": { "post": { "description": "Search memories for a user via memory", "tags": [ "memory" ], "summary": "Search memories", "parameters": [ { "description": "Search request", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/memory.SearchRequest" } } ], "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" } } } } }, "/memory/update": { "post": { "description": "Update a memory by ID via memory", "tags": [ "memory" ], "summary": "Update memory", "parameters": [ { "description": "Update request", "name": "payload", "in": "body", "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" } } } } }, "/models": { "get": { "description": "Get a list of all configured models, optionally filtered by type or client type", "tags": [ "models" ], "summary": "List all models", "parameters": [ { "type": "string", "description": "Model type (chat, embedding)", "name": "type", "in": "query" }, { "type": "string", "description": "Client type (openai, anthropic, google)", "name": "client_type", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/models.GetResponse" } } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } } } }, "post": { "description": "Create a new model configuration", "tags": [ "models" ], "summary": "Create a new model", "parameters": [ { "description": "Model configuration", "name": "payload", "in": "body", "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" } } } } }, "/models/count": { "get": { "description": "Get the total count of models, optionally filtered by type", "tags": [ "models" ], "summary": "Get model count", "parameters": [ { "type": "string", "description": "Model type (chat, embedding)", "name": "type", "in": "query" } ], "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" } } } } }, "/models/enable-as/{enableAs}": { "get": { "description": "Get the model that is enabled for a specific purpose (chat, memory, embedding)", "tags": [ "models" ], "summary": "Get model by enable_as", "parameters": [ { "type": "string", "description": "Enable as value (chat, memory, embedding)", "name": "enableAs", "in": "path", "required": true } ], "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" } } } } }, "/models/model/{modelId}": { "get": { "description": "Get a model configuration by its model_id field (e.g., gpt-4)", "tags": [ "models" ], "summary": "Get model by model ID", "parameters": [ { "type": "string", "description": "Model ID (e.g., gpt-4)", "name": "modelId", "in": "path", "required": true } ], "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" } } } }, "put": { "description": "Update a model configuration by its model_id field (e.g., gpt-4)", "tags": [ "models" ], "summary": "Update model by model ID", "parameters": [ { "type": "string", "description": "Model ID (e.g., gpt-4)", "name": "modelId", "in": "path", "required": true }, { "description": "Updated model configuration", "name": "payload", "in": "body", "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" } } } }, "delete": { "description": "Delete a model configuration by its model_id field (e.g., gpt-4)", "tags": [ "models" ], "summary": "Delete model by model ID", "parameters": [ { "type": "string", "description": "Model ID (e.g., gpt-4)", "name": "modelId", "in": "path", "required": true } ], "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" } } } } }, "/models/{id}": { "get": { "description": "Get a model configuration by its internal UUID", "tags": [ "models" ], "summary": "Get model by internal ID", "parameters": [ { "type": "string", "description": "Model internal ID (UUID)", "name": "id", "in": "path", "required": true } ], "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" } } } }, "put": { "description": "Update a model configuration by its internal UUID", "tags": [ "models" ], "summary": "Update model by internal ID", "parameters": [ { "type": "string", "description": "Model internal ID (UUID)", "name": "id", "in": "path", "required": true }, { "description": "Updated model configuration", "name": "payload", "in": "body", "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" } } } }, "delete": { "description": "Delete a model configuration by its internal UUID", "tags": [ "models" ], "summary": "Delete model by internal ID", "parameters": [ { "type": "string", "description": "Model internal ID (UUID)", "name": "id", "in": "path", "required": true } ], "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" } } } } }, "/providers": { "get": { "description": "Get a list of all configured LLM providers, optionally filtered by client type", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "providers" ], "summary": "List all LLM providers", "parameters": [ { "type": "string", "description": "Client type filter (openai, anthropic, google, ollama)", "name": "client_type", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/providers.GetResponse" } } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } } } }, "post": { "description": "Create a new LLM provider configuration", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "providers" ], "summary": "Create a new LLM provider", "parameters": [ { "description": "Provider configuration", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/providers.CreateRequest" } } ], "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" } } } } }, "/providers/count": { "get": { "description": "Get the total count of providers, optionally filtered by client type", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "providers" ], "summary": "Count providers", "parameters": [ { "type": "string", "description": "Client type filter (openai, anthropic, google, ollama)", "name": "client_type", "in": "query" } ], "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" } } } } }, "/providers/name/{name}": { "get": { "description": "Get a provider configuration by its name", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "providers" ], "summary": "Get provider by name", "parameters": [ { "type": "string", "description": "Provider name", "name": "name", "in": "path", "required": true } ], "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" } } } } }, "/providers/{id}": { "get": { "description": "Get a provider configuration by its ID", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "providers" ], "summary": "Get provider by ID", "parameters": [ { "type": "string", "description": "Provider ID (UUID)", "name": "id", "in": "path", "required": true } ], "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" } } } }, "put": { "description": "Update an existing provider configuration", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "providers" ], "summary": "Update provider", "parameters": [ { "type": "string", "description": "Provider ID (UUID)", "name": "id", "in": "path", "required": true }, { "description": "Updated provider configuration", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/providers.UpdateRequest" } } ], "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" } } } }, "delete": { "description": "Delete a provider configuration", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "providers" ], "summary": "Delete provider", "parameters": [ { "type": "string", "description": "Provider ID (UUID)", "name": "id", "in": "path", "required": true } ], "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" } } } } }, "/schedule": { "get": { "description": "List schedules for current user", "tags": [ "schedule" ], "summary": "List schedules", "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" } } } }, "post": { "description": "Create a schedule for current user", "tags": [ "schedule" ], "summary": "Create schedule", "parameters": [ { "description": "Schedule payload", "name": "payload", "in": "body", "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" } } } } }, "/schedule/{id}": { "get": { "description": "Get a schedule by ID", "tags": [ "schedule" ], "summary": "Get schedule", "parameters": [ { "type": "string", "description": "Schedule ID", "name": "id", "in": "path", "required": true } ], "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" } } } }, "put": { "description": "Update a schedule by ID", "tags": [ "schedule" ], "summary": "Update schedule", "parameters": [ { "type": "string", "description": "Schedule ID", "name": "id", "in": "path", "required": true }, { "description": "Schedule payload", "name": "payload", "in": "body", "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" } } } }, "delete": { "description": "Delete a schedule by ID", "tags": [ "schedule" ], "summary": "Delete schedule", "parameters": [ { "type": "string", "description": "Schedule ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } } } } }, "/settings": { "get": { "description": "Get agent settings for current user", "tags": [ "settings" ], "summary": "Get user settings", "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" } } } }, "put": { "description": "Update or create agent settings for current user", "tags": [ "settings" ], "summary": "Update user settings", "parameters": [ { "description": "Settings payload", "name": "payload", "in": "body", "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" } } } }, "post": { "description": "Update or create agent settings for current user", "tags": [ "settings" ], "summary": "Update user settings", "parameters": [ { "description": "Settings payload", "name": "payload", "in": "body", "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" } } } }, "delete": { "description": "Remove agent settings for current user", "tags": [ "settings" ], "summary": "Delete user settings", "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ErrorResponse" } } } } }, "/subagents": { "get": { "description": "List subagents for current user", "tags": [ "subagent" ], "summary": "List subagents", "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" } } } }, "post": { "description": "Create a subagent for current user", "tags": [ "subagent" ], "summary": "Create subagent", "parameters": [ { "description": "Subagent payload", "name": "payload", "in": "body", "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" } } } } }, "/subagents/{id}": { "get": { "description": "Get a subagent by ID", "tags": [ "subagent" ], "summary": "Get subagent", "parameters": [ { "type": "string", "description": "Subagent ID", "name": "id", "in": "path", "required": true } ], "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" } } } }, "put": { "description": "Update a subagent by ID", "tags": [ "subagent" ], "summary": "Update subagent", "parameters": [ { "type": "string", "description": "Subagent ID", "name": "id", "in": "path", "required": true }, { "description": "Subagent payload", "name": "payload", "in": "body", "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" } } } }, "delete": { "description": "Delete a subagent by ID", "tags": [ "subagent" ], "summary": "Delete subagent", "parameters": [ { "type": "string", "description": "Subagent ID", "name": "id", "in": "path", "required": true } ], "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" } } } } }, "/subagents/{id}/context": { "get": { "description": "Get a subagent's message context", "tags": [ "subagent" ], "summary": "Get subagent context", "parameters": [ { "type": "string", "description": "Subagent ID", "name": "id", "in": "path", "required": true } ], "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" } } } }, "put": { "description": "Update a subagent's message context", "tags": [ "subagent" ], "summary": "Update subagent context", "parameters": [ { "type": "string", "description": "Subagent ID", "name": "id", "in": "path", "required": true }, { "description": "Context payload", "name": "payload", "in": "body", "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" } } } } }, "/subagents/{id}/skills": { "get": { "description": "Get a subagent's skills", "tags": [ "subagent" ], "summary": "Get subagent skills", "parameters": [ { "type": "string", "description": "Subagent ID", "name": "id", "in": "path", "required": true } ], "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" } } } }, "put": { "description": "Replace a subagent's skills", "tags": [ "subagent" ], "summary": "Update subagent skills", "parameters": [ { "type": "string", "description": "Subagent ID", "name": "id", "in": "path", "required": true }, { "description": "Skills payload", "name": "payload", "in": "body", "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" } } } }, "post": { "description": "Add skills to a subagent", "tags": [ "subagent" ], "summary": "Add subagent skills", "parameters": [ { "type": "string", "description": "Subagent ID", "name": "id", "in": "path", "required": true }, { "description": "Skills payload", "name": "payload", "in": "body", "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" } } } } } }, "definitions": { "chat.ChatRequest": { "type": "object", "properties": { "current_platform": { "type": "string" }, "language": { "type": "string" }, "locale": { "type": "string" }, "max_context_load_time": { "type": "integer" }, "max_steps": { "type": "integer" }, "messages": { "type": "array", "items": { "$ref": "#/definitions/chat.GatewayMessage" } }, "model": { "type": "string" }, "platforms": { "type": "array", "items": { "type": "string" } }, "provider": { "type": "string" }, "query": { "type": "string" } } }, "chat.ChatResponse": { "type": "object", "properties": { "messages": { "type": "array", "items": { "$ref": "#/definitions/chat.GatewayMessage" } }, "model": { "type": "string" }, "provider": { "type": "string" } } }, "chat.GatewayMessage": { "type": "object", "additionalProperties": true }, "handlers.CreateContainerRequest": { "type": "object", "properties": { "container_id": { "type": "string" }, "image": { "type": "string" }, "snapshotter": { "type": "string" } } }, "handlers.CreateContainerResponse": { "type": "object", "properties": { "container_id": { "type": "string" }, "image": { "type": "string" }, "snapshotter": { "type": "string" }, "started": { "type": "boolean" } } }, "handlers.CreateSnapshotRequest": { "type": "object", "properties": { "container_id": { "type": "string" }, "snapshot_name": { "type": "string" } } }, "handlers.CreateSnapshotResponse": { "type": "object", "properties": { "container_id": { "type": "string" }, "snapshot_name": { "type": "string" }, "snapshotter": { "type": "string" } } }, "handlers.EmbeddingsInput": { "type": "object", "properties": { "image_url": { "type": "string" }, "text": { "type": "string" }, "video_url": { "type": "string" } } }, "handlers.EmbeddingsRequest": { "type": "object", "properties": { "dimensions": { "type": "integer" }, "input": { "$ref": "#/definitions/handlers.EmbeddingsInput" }, "model": { "type": "string" }, "provider": { "type": "string" }, "type": { "type": "string" } } }, "handlers.EmbeddingsResponse": { "type": "object", "properties": { "dimensions": { "type": "integer" }, "embedding": { "type": "array", "items": { "type": "number" } }, "message": { "type": "string" }, "model": { "type": "string" }, "provider": { "type": "string" }, "type": { "type": "string" }, "usage": { "$ref": "#/definitions/handlers.EmbeddingsUsage" } } }, "handlers.EmbeddingsUsage": { "type": "object", "properties": { "image_tokens": { "type": "integer" }, "input_tokens": { "type": "integer" }, "video_tokens": { "type": "integer" } } }, "handlers.ErrorResponse": { "type": "object", "properties": { "message": { "type": "string" } } }, "handlers.LoginRequest": { "type": "object", "properties": { "password": { "type": "string" }, "username": { "type": "string" } } }, "handlers.LoginResponse": { "type": "object", "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" } } }, "history.CreateRequest": { "type": "object", "properties": { "messages": { "type": "array", "items": { "type": "object", "additionalProperties": true } } } }, "history.ListResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/history.Record" } } } }, "history.Record": { "type": "object", "properties": { "id": { "type": "string" }, "messages": { "type": "array", "items": { "type": "object", "additionalProperties": true } }, "timestamp": { "type": "string" }, "user_id": { "type": "string" } } }, "memory.AddRequest": { "type": "object", "properties": { "agent_id": { "type": "string" }, "filters": { "type": "object", "additionalProperties": true }, "infer": { "type": "boolean" }, "message": { "type": "string" }, "messages": { "type": "array", "items": { "$ref": "#/definitions/memory.Message" } }, "metadata": { "type": "object", "additionalProperties": true }, "run_id": { "type": "string" }, "user_id": { "type": "string" } } }, "memory.DeleteAllRequest": { "type": "object", "properties": { "agent_id": { "type": "string" }, "run_id": { "type": "string" }, "user_id": { "type": "string" } } }, "memory.DeleteResponse": { "type": "object", "properties": { "message": { "type": "string" } } }, "memory.EmbedInput": { "type": "object", "properties": { "image_url": { "type": "string" }, "text": { "type": "string" }, "video_url": { "type": "string" } } }, "memory.EmbedUpsertRequest": { "type": "object", "properties": { "agent_id": { "type": "string" }, "filters": { "type": "object", "additionalProperties": true }, "input": { "$ref": "#/definitions/memory.EmbedInput" }, "metadata": { "type": "object", "additionalProperties": true }, "model": { "type": "string" }, "provider": { "type": "string" }, "run_id": { "type": "string" }, "source": { "type": "string" }, "type": { "type": "string" }, "user_id": { "type": "string" } } }, "memory.EmbedUpsertResponse": { "type": "object", "properties": { "dimensions": { "type": "integer" }, "item": { "$ref": "#/definitions/memory.MemoryItem" }, "model": { "type": "string" }, "provider": { "type": "string" } } }, "memory.MemoryItem": { "type": "object", "properties": { "agentId": { "type": "string" }, "createdAt": { "type": "string" }, "hash": { "type": "string" }, "id": { "type": "string" }, "memory": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": true }, "runId": { "type": "string" }, "score": { "type": "number" }, "updatedAt": { "type": "string" }, "userId": { "type": "string" } } }, "memory.Message": { "type": "object", "properties": { "content": { "type": "string" }, "role": { "type": "string" } } }, "memory.SearchRequest": { "type": "object", "properties": { "agent_id": { "type": "string" }, "filters": { "type": "object", "additionalProperties": true }, "limit": { "type": "integer" }, "query": { "type": "string" }, "run_id": { "type": "string" }, "sources": { "type": "array", "items": { "type": "string" } }, "user_id": { "type": "string" } } }, "memory.SearchResponse": { "type": "object", "properties": { "relations": { "type": "array", "items": {} }, "results": { "type": "array", "items": { "$ref": "#/definitions/memory.MemoryItem" } } } }, "memory.UpdateRequest": { "type": "object", "properties": { "memory": { "type": "string" }, "memory_id": { "type": "string" } } }, "models.AddRequest": { "type": "object", "properties": { "dimensions": { "type": "integer" }, "enable_as": { "$ref": "#/definitions/models.EnableAs" }, "is_multimodal": { "type": "boolean" }, "llm_provider_id": { "type": "string" }, "model_id": { "type": "string" }, "name": { "type": "string" }, "type": { "$ref": "#/definitions/models.ModelType" } } }, "models.AddResponse": { "type": "object", "properties": { "id": { "type": "string" }, "model_id": { "type": "string" } } }, "models.CountResponse": { "type": "object", "properties": { "count": { "type": "integer" } } }, "models.EnableAs": { "type": "string", "enum": [ "chat", "memory", "embedding" ], "x-enum-varnames": [ "EnableAsChat", "EnableAsMemory", "EnableAsEmbedding" ] }, "models.GetResponse": { "type": "object", "properties": { "dimensions": { "type": "integer" }, "enable_as": { "$ref": "#/definitions/models.EnableAs" }, "is_multimodal": { "type": "boolean" }, "llm_provider_id": { "type": "string" }, "model_id": { "type": "string" }, "name": { "type": "string" }, "type": { "$ref": "#/definitions/models.ModelType" } } }, "models.ModelType": { "type": "string", "enum": [ "chat", "embedding" ], "x-enum-varnames": [ "ModelTypeChat", "ModelTypeEmbedding" ] }, "models.UpdateRequest": { "type": "object", "properties": { "dimensions": { "type": "integer" }, "enable_as": { "$ref": "#/definitions/models.EnableAs" }, "is_multimodal": { "type": "boolean" }, "llm_provider_id": { "type": "string" }, "model_id": { "type": "string" }, "name": { "type": "string" }, "type": { "$ref": "#/definitions/models.ModelType" } } }, "providers.ClientType": { "type": "string", "enum": [ "openai", "openai-compat", "anthropic", "google", "ollama" ], "x-enum-varnames": [ "ClientTypeOpenAI", "ClientTypeOpenAICompat", "ClientTypeAnthropic", "ClientTypeGoogle", "ClientTypeOllama" ] }, "providers.CountResponse": { "type": "object", "properties": { "count": { "type": "integer" } } }, "providers.CreateRequest": { "type": "object", "required": [ "base_url", "client_type", "name" ], "properties": { "api_key": { "type": "string" }, "base_url": { "type": "string" }, "client_type": { "$ref": "#/definitions/providers.ClientType" }, "metadata": { "type": "object", "additionalProperties": true }, "name": { "type": "string" } } }, "providers.GetResponse": { "type": "object", "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": { "type": "object", "additionalProperties": true }, "name": { "type": "string" }, "updated_at": { "type": "string" } } }, "providers.UpdateRequest": { "type": "object", "properties": { "api_key": { "type": "string" }, "base_url": { "type": "string" }, "client_type": { "$ref": "#/definitions/providers.ClientType" }, "metadata": { "type": "object", "additionalProperties": true }, "name": { "type": "string" } } }, "schedule.CreateRequest": { "type": "object", "properties": { "command": { "type": "string" }, "description": { "type": "string" }, "enabled": { "type": "boolean" }, "max_calls": { "type": "integer" }, "name": { "type": "string" }, "pattern": { "type": "string" } } }, "schedule.ListResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/schedule.Schedule" } } } }, "schedule.Schedule": { "type": "object", "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" } } }, "schedule.UpdateRequest": { "type": "object", "properties": { "command": { "type": "string" }, "description": { "type": "string" }, "enabled": { "type": "boolean" }, "max_calls": { "type": "integer" }, "name": { "type": "string" }, "pattern": { "type": "string" } } }, "settings.Settings": { "type": "object", "properties": { "language": { "type": "string" }, "max_context_load_time": { "type": "integer" } } }, "settings.UpsertRequest": { "type": "object", "properties": { "language": { "type": "string" }, "max_context_load_time": { "type": "integer" } } }, "subagent.AddSkillsRequest": { "type": "object", "properties": { "skills": { "type": "array", "items": { "type": "string" } } } }, "subagent.ContextResponse": { "type": "object", "properties": { "messages": { "type": "array", "items": { "type": "object", "additionalProperties": true } } } }, "subagent.CreateRequest": { "type": "object", "properties": { "description": { "type": "string" }, "messages": { "type": "array", "items": { "type": "object", "additionalProperties": true } }, "metadata": { "type": "object", "additionalProperties": true }, "name": { "type": "string" }, "skills": { "type": "array", "items": { "type": "string" } } } }, "subagent.ListResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/subagent.Subagent" } } } }, "subagent.SkillsResponse": { "type": "object", "properties": { "skills": { "type": "array", "items": { "type": "string" } } } }, "subagent.Subagent": { "type": "object", "properties": { "created_at": { "type": "string" }, "deleted": { "type": "boolean" }, "deleted_at": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "messages": { "type": "array", "items": { "type": "object", "additionalProperties": true } }, "metadata": { "type": "object", "additionalProperties": true }, "name": { "type": "string" }, "skills": { "type": "array", "items": { "type": "string" } }, "updated_at": { "type": "string" }, "user_id": { "type": "string" } } }, "subagent.UpdateContextRequest": { "type": "object", "properties": { "messages": { "type": "array", "items": { "type": "object", "additionalProperties": true } } } }, "subagent.UpdateRequest": { "type": "object", "properties": { "description": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": true }, "name": { "type": "string" } } }, "subagent.UpdateSkillsRequest": { "type": "object", "properties": { "skills": { "type": "array", "items": { "type": "string" } } } } } }