definitions: 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 type: object chat.ChatResponse: properties: messages: items: $ref: '#/definitions/chat.GatewayMessage' type: array model: type: string provider: type: string type: object chat.GatewayMessage: additionalProperties: true 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.ErrorResponse: properties: message: 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 history.CreateRequest: properties: messages: items: additionalProperties: true type: object 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 timestamp: type: string user_id: type: string type: object memory.AddRequest: 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 user_id: type: string type: object memory.DeleteAllRequest: properties: agent_id: type: string run_id: 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.EmbedUpsertRequest: 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 user_id: 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.SearchRequest: 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 user_id: 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 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' type: object models.AddResponse: properties: id: type: string model_id: type: string type: object models.CountResponse: properties: count: type: integer type: object models.EnableAs: enum: - chat - memory - embedding type: string x-enum-varnames: - EnableAsChat - EnableAsMemory - EnableAsEmbedding models.GetResponse: 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' type: object models.ModelType: enum: - chat - embedding type: string x-enum-varnames: - ModelTypeChat - ModelTypeEmbedding models.UpdateRequest: 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' 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: language: type: string max_context_load_time: type: integer type: object settings.UpsertRequest: properties: language: type: string max_context_load_time: type: integer 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: 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/snapshots: 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 parameters: - description: Add request in: body name: payload 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' summary: Add memory tags: - memory /memory/embed: post: description: Embed text or multimodal input and upsert into memory store parameters: - description: Embed upsert request in: body name: payload 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' summary: Embed and upsert memory tags: - memory /memory/memories: delete: description: Delete all memories for a user via memory parameters: - description: Delete all request in: body name: payload 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' summary: Delete memories tags: - memory get: description: List memories for a user via memory parameters: - description: User ID in: query name: user_id type: string - 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 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 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 parameters: - description: Search request in: body name: payload 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' summary: Search memories tags: - memory /memory/update: post: description: Update a memory by ID via memory 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-as/{enableAs}: get: description: Get the model that is enabled for a specific purpose (chat, memory, embedding) parameters: - description: Enable as value (chat, memory, embedding) in: path name: enableAs 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 enable_as 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/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"