{ "openapi": "3.0.3", "info": { "title": "Hermes Studio API", "description": "Hermes Studio API — chat sessions, scheduled jobs, platform channels, model management, skills, memory, logs, file browser, group chat, and terminal.", "version": "0.6.26" }, "servers": [ { "url": "http://localhost:8648", "description": "Local development" } ], "tags": [ { "name": "Anthropic Auth", "description": "Anthropic OAuth" }, { "name": "Chat Run", "description": "Chat run HTTP and Socket.IO bridge operations" }, { "name": "Codex Auth", "description": "OpenAI Codex OAuth" }, { "name": "Config", "description": "Configuration management" }, { "name": "Copilot Auth", "description": "GitHub Copilot OAuth" }, { "name": "Jobs", "description": "Scheduled job management" }, { "name": "Download", "description": "File download" }, { "name": "Files", "description": "Hermes file browser" }, { "name": "Gemini Auth", "description": "Google Gemini OAuth" }, { "name": "Group Chat", "description": "Group chat management" }, { "name": "Journey", "description": "Hermes Agent learning journey graph" }, { "name": "Kanban", "description": "Kanban board and task management" }, { "name": "Logs", "description": "Log file access" }, { "name": "MCP", "description": "MCP server and tool management" }, { "name": "Media", "description": "Media generation endpoints" }, { "name": "Memory", "description": "Agent memory files" }, { "name": "Models", "description": "Model configuration" }, { "name": "Nous Auth", "description": "Nous Research OAuth" }, { "name": "Performance", "description": "Runtime performance monitoring" }, { "name": "Plugins", "description": "Plugin browsing and management" }, { "name": "Profiles", "description": "Hermes profile management" }, { "name": "Providers", "description": "Model provider management" }, { "name": "Runtime Versions", "description": "Runtime and Web UI version management" }, { "name": "Sessions", "description": "Chat session management" }, { "name": "Skills", "description": "Skill browsing and management" }, { "name": "STT", "description": "Speech-to-text transcription and settings" }, { "name": "TTS", "description": "Text-to-speech generation and settings" }, { "name": "Weixin", "description": "WeChat QR code login" }, { "name": "Write Gate", "description": "Hermes Agent write approval review" }, { "name": "xAI Auth", "description": "xAI OAuth" }, { "name": "Health", "description": "Health check" }, { "name": "Update", "description": "Self-update management" }, { "name": "Upload", "description": "File upload" }, { "name": "Webhook", "description": "Incoming webhooks" }, { "name": "Auth", "description": "Authentication management" }, { "name": "Devices", "description": "Device pairing and LAN peer operations" }, { "name": "Coding Agents", "description": "Coding agent installation, config, and runs" }, { "name": "API Docs", "description": "OpenAPI route catalog" }, { "name": "Terminal", "description": "WebSocket terminal access" } ], "paths": { "/api/auth/avatar": { "get": { "tags": [ "Auth" ], "summary": "Get avatar", "description": "GET /api/auth/avatar", "operationId": "getMyAvatar", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "put": { "tags": [ "Auth" ], "summary": "Update avatar", "description": "PUT /api/auth/avatar", "operationId": "updateMyAvatar", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "avatar": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/auth/change-password": { "post": { "tags": [ "Auth" ], "summary": "Create change-password", "description": "POST /api/auth/change-password", "operationId": "changePassword", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "currentPassword": { "type": "string" }, "newPassword": { "type": "string" } }, "required": [ "currentPassword", "newPassword" ] } } } } } }, "/api/auth/change-username": { "post": { "tags": [ "Auth" ], "summary": "Create change-username", "description": "POST /api/auth/change-username", "operationId": "changeUsername", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "currentPassword": { "type": "string" }, "newUsername": { "type": "string" } }, "required": [ "currentPassword", "newUsername" ] } } } } } }, "/api/auth/locked-ips": { "get": { "tags": [ "Auth" ], "summary": "Get locked-ips", "description": "GET /api/auth/locked-ips", "operationId": "listLockedIps", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "delete": { "tags": [ "Auth" ], "summary": "Delete locked-ips", "description": "DELETE /api/auth/locked-ips", "operationId": "unlockIpHandler", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "ip", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/auth/login": { "post": { "tags": [ "Auth" ], "summary": "Create login", "description": "POST /api/auth/login", "operationId": "login", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "password": { "type": "string" }, "username": { "type": "string" } }, "required": [ "password", "username" ] } } } } } }, "/api/auth/mcu-login": { "post": { "tags": [ "Auth" ], "summary": "Create mcu-login", "description": "POST /api/auth/mcu-login", "operationId": "microcontrollerLogin", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "account": { "type": "string" }, "device_code": { "type": "string" }, "id": { "type": "string" }, "password": { "type": "string" }, "relayMode": { "type": "string" }, "remote": { "type": "boolean" }, "token": { "type": "string" }, "url": { "type": "string" } }, "required": [ "account", "id", "password", "token" ] } } } } } }, "/api/auth/me": { "get": { "tags": [ "Auth" ], "summary": "Get me", "description": "GET /api/auth/me", "operationId": "currentUser", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/auth/password": { "delete": { "tags": [ "Auth" ], "summary": "Delete password", "description": "DELETE /api/auth/password", "operationId": "removePassword", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/auth/setup": { "post": { "tags": [ "Auth" ], "summary": "Create setup", "description": "POST /api/auth/setup", "operationId": "setupPassword", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/auth/status": { "get": { "tags": [ "Auth" ], "summary": "Get status", "description": "GET /api/auth/status", "operationId": "authStatus", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/auth/users": { "get": { "tags": [ "Auth" ], "summary": "Get users", "description": "GET /api/auth/users", "operationId": "listManagedUsers", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "post": { "tags": [ "Auth" ], "summary": "Create users", "description": "POST /api/auth/users", "operationId": "createManagedUser", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "defaultProfile": { "nullable": true, "type": "string" }, "password": { "type": "string" }, "profiles": { "type": "object", "additionalProperties": true }, "role": { "type": "object", "additionalProperties": true }, "status": { "type": "object", "additionalProperties": true }, "username": { "type": "string" } } } } } } } }, "/api/auth/users/{id}": { "put": { "tags": [ "Auth" ], "summary": "Update :id", "description": "PUT /api/auth/users/:id", "operationId": "updateManagedUser", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "defaultProfile": { "nullable": true, "type": "string" }, "password": { "type": "string" }, "profiles": { "type": "object", "additionalProperties": true }, "role": { "type": "object", "additionalProperties": true }, "status": { "type": "object", "additionalProperties": true }, "username": { "type": "string" } } } } } } }, "delete": { "tags": [ "Auth" ], "summary": "Delete :id", "description": "DELETE /api/auth/users/:id", "operationId": "deleteManagedUser", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/chat-run/runs": { "post": { "tags": [ "Chat Run" ], "summary": "Run chat and wait for completion", "description": "Starts a Hermes Studio chat run through the chat-run transport and waits for a terminal result. Use this from HTTP/MCP callers that cannot consume Socket.IO streams.", "operationId": "runChatOnce", "security": [ { "BearerAuth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "input" ], "properties": { "input": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "object", "additionalProperties": true } } ], "description": "User message text or content blocks." }, "session_id": { "type": "string", "description": "Optional session id. Omit this to create a new session automatically. Provide an existing session id to continue that session." }, "profile": { "type": "string", "description": "Hermes Studio profile name. Defaults to the authenticated request profile or default." }, "provider": { "type": "string", "description": "Model provider key to use for this run, for example openai, anthropic, deepseek, or a configured custom provider key." }, "model": { "type": "string", "description": "Model id to use for this run, for example gpt-5.1 or deepseek-v4-pro." }, "model_groups": { "type": "array", "description": "Optional provider/model fallback groups.", "items": { "type": "object", "required": [ "provider", "models" ], "properties": { "provider": { "type": "string" }, "models": { "type": "array", "items": { "type": "string" } } } } }, "source": { "type": "string", "enum": [ "cli", "coding_agent", "global_agent" ], "description": "Run backend source. Use cli for Hermes bridge runs, coding_agent for Claude Code/Codex, or global_agent for global-agent sessions. Omit source for normal Hermes chat runs; do not use the legacy api_server source." }, "session_source": { "type": "string", "enum": [ "global_agent" ], "description": "Marks a coding-agent or bridge session as launched from the global agent." }, "instructions": { "type": "string", "description": "Optional extra run instructions appended after the system prompt." }, "workspace": { "type": "string", "nullable": true, "description": "Optional current working directory for the run." }, "reasoning_effort": { "type": "string", "description": "Optional per-run reasoning effort override." }, "coding_agent_id": { "type": "string", "enum": [ "claude-code", "codex" ], "description": "Coding agent id when source is coding_agent." }, "agent_id": { "type": "string", "enum": [ "claude-code", "codex" ], "description": "Alias for coding_agent_id." }, "mode": { "type": "string", "enum": [ "scoped", "global" ], "description": "Coding-agent launch mode." }, "baseUrl": { "type": "string", "description": "Optional provider base URL for coding-agent runs." }, "apiKey": { "type": "string", "description": "Optional provider API key for coding-agent runs." }, "apiMode": { "type": "string", "enum": [ "chat_completions", "codex_responses", "anthropic_messages" ], "description": "Optional provider wire API mode for coding-agent runs." }, "timeout_ms": { "type": "integer", "minimum": 1, "maximum": 1800000, "default": 300000, "description": "Maximum time to wait for run.completed or run.failed." }, "include_events": { "type": "boolean", "default": false, "description": "Include recorded run events in the HTTP response." } }, "additionalProperties": true } } } }, "responses": { "200": { "description": "Run completed", "content": { "application/json": { "schema": { "type": "object", "properties": { "ok": { "type": "boolean", "example": true }, "status": { "type": "string", "example": "completed" }, "session_id": { "type": "string" }, "run_id": { "type": "string" }, "output": { "type": "string" }, "reasoning": { "type": "string" }, "events": { "type": "array", "items": { "type": "object", "additionalProperties": true } } } } } } }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "409": { "description": "Run requires approval or clarification" }, "500": { "description": "Run failed" }, "504": { "description": "Run timed out" } } } }, "/api/coding-agents": { "get": { "tags": [ "Coding Agents" ], "summary": "Get coding-agents", "description": "GET /api/coding-agents", "operationId": "status", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/coding-agents/runs/{sessionId}": { "delete": { "tags": [ "Coding Agents" ], "summary": "Delete :sessionId", "description": "DELETE /api/coding-agents/runs/:sessionId", "operationId": "stopRun", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "sessionId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/coding-agents/runs/{sessionId}/input": { "post": { "tags": [ "Coding Agents" ], "summary": "Create input", "description": "POST /api/coding-agents/runs/:sessionId/input", "operationId": "sendRunInput", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "sessionId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "input": { "type": "string" } } } } } } } }, "/api/coding-agents/{id}": { "delete": { "tags": [ "Coding Agents" ], "summary": "Delete :id", "description": "DELETE /api/coding-agents/:id", "operationId": "remove", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/coding-agents/{id}/config-files/{key}": { "get": { "tags": [ "Coding Agents" ], "summary": "Get :key", "description": "GET /api/coding-agents/:id/config-files/:key", "operationId": "readConfigFile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string" } } ] }, "put": { "tags": [ "Coding Agents" ], "summary": "Update :key", "description": "PUT /api/coding-agents/:id/config-files/:key", "operationId": "writeConfigFile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "content": { "type": "string" } } } } } } } }, "/api/coding-agents/{id}/install": { "post": { "tags": [ "Coding Agents" ], "summary": "Create install", "description": "POST /api/coding-agents/:id/install", "operationId": "install", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/coding-agents/{id}/launch/native": { "post": { "tags": [ "Coding Agents" ], "summary": "Create native", "description": "POST /api/coding-agents/:id/launch/native", "operationId": "nativeLaunch", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "apiKey": { "type": "string" }, "apiMode": { "type": "object", "additionalProperties": true }, "baseUrl": { "type": "string" }, "mode": { "type": "object", "additionalProperties": true }, "model": { "type": "string" }, "profile": { "type": "string" }, "provider": { "type": "string" } } } } } } } }, "/api/coding-agents/{id}/launch/prepare": { "post": { "tags": [ "Coding Agents" ], "summary": "Create prepare", "description": "POST /api/coding-agents/:id/launch/prepare", "operationId": "prepareLaunch", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "apiKey": { "type": "string" }, "apiMode": { "type": "object", "additionalProperties": true }, "baseUrl": { "type": "string" }, "mode": { "type": "object", "additionalProperties": true }, "model": { "type": "string" }, "profile": { "type": "string" }, "provider": { "type": "string" } } } } } } } }, "/api/coding-agents/{id}/runs": { "post": { "tags": [ "Coding Agents" ], "summary": "Create runs", "description": "POST /api/coding-agents/:id/runs", "operationId": "startRun", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "apiKey": { "type": "string" }, "apiMode": { "type": "object", "additionalProperties": true }, "baseUrl": { "type": "string" }, "mode": { "type": "object", "additionalProperties": true }, "model": { "type": "string" }, "profile": { "type": "string" }, "provider": { "type": "string" }, "sessionId": { "type": "string" } } } } } } } }, "/api/cron-history": { "get": { "tags": [ "Jobs" ], "summary": "Get cron-history", "description": "GET /api/cron-history", "operationId": "listRuns", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "jobId", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/cron-history/{jobId}/{fileName}": { "get": { "tags": [ "Jobs" ], "summary": "Get :fileName", "description": "GET /api/cron-history/:jobId/:fileName", "operationId": "readRun", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "fileName", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices": { "get": { "tags": [ "Devices" ], "summary": "Get devices", "description": "GET /api/devices", "operationId": "listDevices", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/devices/link-info": { "get": { "tags": [ "Devices" ], "summary": "Get link-info", "description": "GET /api/devices/link-info", "operationId": "deviceLinkInfoController", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/devices/link-request": { "post": { "tags": [ "Devices" ], "summary": "Create link-request", "description": "POST /api/devices/link-request", "operationId": "requestDeviceLinkController", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "nonce": { "type": "string" }, "signature": { "type": "string" } } } } } } } }, "/api/devices/link-status": { "post": { "tags": [ "Devices" ], "summary": "Create link-status", "description": "POST /api/devices/link-status", "operationId": "requestDeviceLinkStatusController", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "device_id": { "type": "string" }, "device_public_key": { "type": "string" }, "nonce": { "type": "string" }, "signature": { "type": "string" } } } } } } } }, "/api/devices/manual-request": { "post": { "tags": [ "Devices" ], "summary": "Create manual-request", "description": "POST /api/devices/manual-request", "operationId": "requestManualDevicePairing", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "url": { "type": "string" } } } } } } } }, "/api/devices/pairing-link": { "get": { "tags": [ "Devices" ], "summary": "Get pairing-link", "description": "GET /api/devices/pairing-link", "operationId": "getDevicePairingLink", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/devices/peer-connections": { "get": { "tags": [ "Devices" ], "summary": "Get peer-connections", "description": "GET /api/devices/peer-connections", "operationId": "listPeerConnections", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/devices/peer-connections/{connectionId}/disconnect": { "post": { "tags": [ "Devices" ], "summary": "Create disconnect", "description": "POST /api/devices/peer-connections/:connectionId/disconnect", "operationId": "disconnectPeerDevice", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/peer-connections/{connectionId}/download": { "post": { "tags": [ "Devices" ], "summary": "Create download", "description": "POST /api/devices/peer-connections/:connectionId/download", "operationId": "downloadPeerFile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } } }, "/api/devices/peer-connections/{connectionId}/exec": { "post": { "tags": [ "Devices" ], "summary": "Create exec", "description": "POST /api/devices/peer-connections/:connectionId/exec", "operationId": "execPeerCommand", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "args": { "type": "string" }, "cwd": { "type": "string" } } } } } } } }, "/api/devices/peer-connections/{connectionId}/terminal": { "post": { "tags": [ "Devices" ], "summary": "Create terminal", "description": "POST /api/devices/peer-connections/:connectionId/terminal", "operationId": "createPeerTerminal", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "shell": { "type": "string" } } } } } } } }, "/api/devices/peer-connections/{connectionId}/terminal/{terminalId}/close": { "post": { "tags": [ "Devices" ], "summary": "Create close", "description": "POST /api/devices/peer-connections/:connectionId/terminal/:terminalId/close", "operationId": "closePeerTerminal", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "terminalId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/peer-connections/{connectionId}/terminal/{terminalId}/input": { "post": { "tags": [ "Devices" ], "summary": "Create input", "description": "POST /api/devices/peer-connections/:connectionId/terminal/:terminalId/input", "operationId": "writePeerTerminal", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "terminalId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } } }, "/api/devices/peer-connections/{connectionId}/terminal/{terminalId}/read": { "get": { "tags": [ "Devices" ], "summary": "Get read", "description": "GET /api/devices/peer-connections/:connectionId/terminal/:terminalId/read", "operationId": "readPeerTerminal", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "terminalId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/peer-connections/{connectionId}/terminal/{terminalId}/resize": { "post": { "tags": [ "Devices" ], "summary": "Create resize", "description": "POST /api/devices/peer-connections/:connectionId/terminal/:terminalId/resize", "operationId": "resizePeerTerminal", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "terminalId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } } }, "/api/devices/peer-connections/{connectionId}/terminals": { "get": { "tags": [ "Devices" ], "summary": "Get terminals", "description": "GET /api/devices/peer-connections/:connectionId/terminals", "operationId": "listPeerTerminals", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/peer-connections/{connectionId}/upload": { "post": { "tags": [ "Devices" ], "summary": "Create upload", "description": "POST /api/devices/peer-connections/:connectionId/upload", "operationId": "uploadPeerFile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "connectionId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } } }, "/api/devices/scan": { "post": { "tags": [ "Devices" ], "summary": "Create scan", "description": "POST /api/devices/scan", "operationId": "scanDevices", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/devices/{id}/approve": { "post": { "tags": [ "Devices" ], "summary": "Create approve", "description": "POST /api/devices/:id/approve", "operationId": "approveDevice", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/{id}/block": { "post": { "tags": [ "Devices" ], "summary": "Create block", "description": "POST /api/devices/:id/block", "operationId": "blockDevice", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/{id}/connect": { "post": { "tags": [ "Devices" ], "summary": "Create connect", "description": "POST /api/devices/:id/connect", "operationId": "connectPeerDevice", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/{id}/reject": { "post": { "tags": [ "Devices" ], "summary": "Create reject", "description": "POST /api/devices/:id/reject", "operationId": "rejectDevice", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/{id}/request": { "post": { "tags": [ "Devices" ], "summary": "Create request", "description": "POST /api/devices/:id/request", "operationId": "requestDevicePairing", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "pairing_code": { "type": "string" } } } } } } } }, "/api/devices/{id}/request-history": { "delete": { "tags": [ "Devices" ], "summary": "Delete request-history", "description": "DELETE /api/devices/:id/request-history", "operationId": "deleteDeviceRequestHistory", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/devices/{id}/unblock": { "post": { "tags": [ "Devices" ], "summary": "Create unblock", "description": "POST /api/devices/:id/unblock", "operationId": "unblockDevice", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/auth/anthropic/start": { "post": { "tags": [ "Anthropic Auth" ], "summary": "Create start", "description": "POST /api/hermes/auth/anthropic/start", "operationId": "start", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/auth/anthropic/status": { "get": { "tags": [ "Anthropic Auth" ], "summary": "Get status", "description": "GET /api/hermes/auth/anthropic/status", "operationId": "status", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/auth/anthropic/submit/{sessionId}": { "post": { "tags": [ "Anthropic Auth" ], "summary": "Create :sessionId", "description": "POST /api/hermes/auth/anthropic/submit/:sessionId", "operationId": "submit", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "sessionId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "string" } }, "required": [ "code" ] } } } } } }, "/api/hermes/auth/codex/poll/{sessionId}": { "get": { "tags": [ "Codex Auth" ], "summary": "Get :sessionId", "description": "GET /api/hermes/auth/codex/poll/:sessionId", "operationId": "poll", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "sessionId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/auth/codex/start": { "post": { "tags": [ "Codex Auth" ], "summary": "Create start", "description": "POST /api/hermes/auth/codex/start", "operationId": "start", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/auth/codex/status": { "get": { "tags": [ "Codex Auth" ], "summary": "Get status", "description": "GET /api/hermes/auth/codex/status", "operationId": "status", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/auth/copilot/check-token": { "get": { "tags": [ "Copilot Auth" ], "summary": "Get check-token", "description": "GET /api/hermes/auth/copilot/check-token", "operationId": "checkToken", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/auth/copilot/disable": { "post": { "tags": [ "Copilot Auth" ], "summary": "Create disable", "description": "POST /api/hermes/auth/copilot/disable", "operationId": "disable", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/auth/copilot/enable": { "post": { "tags": [ "Copilot Auth" ], "summary": "Create enable", "description": "POST /api/hermes/auth/copilot/enable", "operationId": "enable", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/auth/copilot/poll/{sessionId}": { "get": { "tags": [ "Copilot Auth" ], "summary": "Get :sessionId", "description": "GET /api/hermes/auth/copilot/poll/:sessionId", "operationId": "poll", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "sessionId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/auth/copilot/start": { "post": { "tags": [ "Copilot Auth" ], "summary": "Create start", "description": "POST /api/hermes/auth/copilot/start", "operationId": "start", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/auth/gemini/poll/{sessionId}": { "get": { "tags": [ "Gemini Auth" ], "summary": "Get :sessionId", "description": "GET /api/hermes/auth/gemini/poll/:sessionId", "operationId": "poll", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "sessionId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/auth/gemini/start": { "post": { "tags": [ "Gemini Auth" ], "summary": "Create start", "description": "POST /api/hermes/auth/gemini/start", "operationId": "start", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/auth/gemini/status": { "get": { "tags": [ "Gemini Auth" ], "summary": "Get status", "description": "GET /api/hermes/auth/gemini/status", "operationId": "status", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/auth/nous/poll/{sessionId}": { "get": { "tags": [ "Nous Auth" ], "summary": "Get :sessionId", "description": "GET /api/hermes/auth/nous/poll/:sessionId", "operationId": "poll", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "sessionId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/auth/nous/start": { "post": { "tags": [ "Nous Auth" ], "summary": "Create start", "description": "POST /api/hermes/auth/nous/start", "operationId": "start", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/auth/nous/status": { "get": { "tags": [ "Nous Auth" ], "summary": "Get status", "description": "GET /api/hermes/auth/nous/status", "operationId": "status", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/auth/xai/poll/{sessionId}": { "get": { "tags": [ "xAI Auth" ], "summary": "Get :sessionId", "description": "GET /api/hermes/auth/xai/poll/:sessionId", "operationId": "poll", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "sessionId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/auth/xai/start": { "post": { "tags": [ "xAI Auth" ], "summary": "Create start", "description": "POST /api/hermes/auth/xai/start", "operationId": "start", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/auth/xai/status": { "get": { "tags": [ "xAI Auth" ], "summary": "Get status", "description": "GET /api/hermes/auth/xai/status", "operationId": "status", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/available-models": { "get": { "tags": [ "Models" ], "summary": "Get available-models", "description": "GET /api/hermes/available-models", "operationId": "getAvailable", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/config": { "get": { "tags": [ "Config" ], "summary": "Get config", "description": "GET /api/hermes/config", "operationId": "getConfig", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "section", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "sections", "in": "query", "required": false, "schema": { "type": "string" } } ] }, "put": { "tags": [ "Config" ], "summary": "Update config", "description": "PUT /api/hermes/config", "operationId": "updateConfig", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "restart": { "type": "boolean" }, "section": { "type": "string" }, "values": { "type": "object", "additionalProperties": true } }, "required": [ "section", "values" ] } } } } } }, "/api/hermes/config/auxiliary-models": { "get": { "tags": [ "Config" ], "summary": "Get auxiliary-models", "description": "GET /api/hermes/config/auxiliary-models", "operationId": "getAuxiliaryModels", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "put": { "tags": [ "Config" ], "summary": "Update auxiliary-models", "description": "PUT /api/hermes/config/auxiliary-models", "operationId": "updateAuxiliaryModels", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "auxiliary": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/config/credentials": { "put": { "tags": [ "Config" ], "summary": "Update credentials", "description": "PUT /api/hermes/config/credentials", "operationId": "updateCredentials", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "platform": { "type": "string" }, "values": { "type": "object", "additionalProperties": true } }, "required": [ "platform", "values" ] } } } } } }, "/api/hermes/config/moa": { "get": { "tags": [ "Config" ], "summary": "Get moa", "description": "GET /api/hermes/config/moa", "operationId": "getMoaConfig", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "put": { "tags": [ "Config" ], "summary": "Update moa", "description": "PUT /api/hermes/config/moa", "operationId": "updateMoaConfig", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "moa": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/config/model": { "put": { "tags": [ "Models" ], "summary": "Update model", "description": "PUT /api/hermes/config/model", "operationId": "setConfigModel", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "default": { "type": "string" }, "provider": { "type": "string" } }, "required": [ "default" ] } } } } } }, "/api/hermes/config/models": { "get": { "tags": [ "Models" ], "summary": "Get models", "description": "GET /api/hermes/config/models", "operationId": "getConfigModels", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/config/providers": { "post": { "tags": [ "Providers" ], "summary": "Create providers", "description": "POST /api/hermes/config/providers", "operationId": "create", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "api_key": { "type": "string" }, "api_mode": { "type": "string" }, "base_url": { "type": "string" }, "context_length": { "type": "number" }, "model": { "type": "string" }, "name": { "type": "string" }, "providerKey": { "nullable": true, "type": "string" } }, "required": [ "api_key", "base_url", "model", "name" ] } } } } } }, "/api/hermes/config/providers/{poolKey}": { "put": { "tags": [ "Providers" ], "summary": "Update :poolKey", "description": "PUT /api/hermes/config/providers/:poolKey", "operationId": "update", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "poolKey", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "api_key": { "type": "string" }, "api_mode": { "type": "string" }, "base_url": { "type": "string" }, "model": { "type": "string" }, "name": { "type": "string" } } } } } } }, "delete": { "tags": [ "Providers" ], "summary": "Delete :poolKey", "description": "DELETE /api/hermes/config/providers/:poolKey", "operationId": "remove", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "poolKey", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "providerKey", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "string" ] } }, { "name": "source", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "providers", "custom_providers" ] } } ] } }, "/api/hermes/custom-model": { "put": { "tags": [ "Models" ], "summary": "Update custom-model", "description": "PUT /api/hermes/custom-model", "operationId": "addCustomModel", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } }, "delete": { "tags": [ "Models" ], "summary": "Delete custom-model", "description": "DELETE /api/hermes/custom-model", "operationId": "removeCustomModel", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "provider", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/download": { "get": { "tags": [ "Download" ], "summary": "Get download", "description": "GET /api/hermes/download", "operationId": "getDownload", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "name", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/files/copy": { "post": { "tags": [ "Files" ], "summary": "Create copy", "description": "POST /api/hermes/files/copy", "operationId": "createCopy", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "destPath": { "type": "string" }, "srcPath": { "type": "string" } }, "required": [ "destPath", "srcPath" ] } } } } } }, "/api/hermes/files/delete": { "delete": { "tags": [ "Files" ], "summary": "Delete delete", "description": "DELETE /api/hermes/files/delete", "operationId": "deleteDelete", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/files/list": { "get": { "tags": [ "Files" ], "summary": "Get list", "description": "GET /api/hermes/files/list", "operationId": "getList", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "path", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/files/mkdir": { "post": { "tags": [ "Files" ], "summary": "Create mkdir", "description": "POST /api/hermes/files/mkdir", "operationId": "createMkdir", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "path": { "type": "string" } }, "required": [ "path" ] } } } } } }, "/api/hermes/files/read": { "get": { "tags": [ "Files" ], "summary": "Get read", "description": "GET /api/hermes/files/read", "operationId": "getRead", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "path", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/files/rename": { "post": { "tags": [ "Files" ], "summary": "Create rename", "description": "POST /api/hermes/files/rename", "operationId": "createRename", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "newPath": { "type": "string" }, "oldPath": { "type": "string" } }, "required": [ "newPath", "oldPath" ] } } } } } }, "/api/hermes/files/stat": { "get": { "tags": [ "Files" ], "summary": "Get stat", "description": "GET /api/hermes/files/stat", "operationId": "getStat", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "path", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/files/upload": { "post": { "tags": [ "Files" ], "summary": "Create upload", "description": "POST /api/hermes/files/upload", "operationId": "createUpload", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "path", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/files/write": { "put": { "tags": [ "Files" ], "summary": "Update write", "description": "PUT /api/hermes/files/write", "operationId": "updateWrite", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "content": { "type": "string" }, "path": { "type": "string" } }, "required": [ "path" ] } } } } } }, "/api/hermes/group-chat/rooms": { "post": { "tags": [ "Group Chat" ], "summary": "Create rooms", "description": "POST /api/hermes/group-chat/rooms", "operationId": "createRooms", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "agents": { "type": "boolean" }, "compression": { "type": "number" }, "inviteCode": { "type": "string" }, "name": { "type": "string" }, "workspace": { "type": "string" } }, "required": [ "inviteCode", "name" ] } } } } }, "get": { "tags": [ "Group Chat" ], "summary": "Get rooms", "description": "GET /api/hermes/group-chat/rooms", "operationId": "getRooms", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/group-chat/rooms/join/{code}": { "get": { "tags": [ "Group Chat" ], "summary": "Get :code", "description": "GET /api/hermes/group-chat/rooms/join/:code", "operationId": "getJoin", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "code", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/group-chat/rooms/{roomId}": { "get": { "tags": [ "Group Chat" ], "summary": "Get :roomId", "description": "GET /api/hermes/group-chat/rooms/:roomId", "operationId": "getRooms", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer" } } ] }, "delete": { "tags": [ "Group Chat" ], "summary": "Delete :roomId", "description": "DELETE /api/hermes/group-chat/rooms/:roomId", "operationId": "deleteRooms", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/group-chat/rooms/{roomId}/agents": { "post": { "tags": [ "Group Chat" ], "summary": "Create agents", "description": "POST /api/hermes/group-chat/rooms/:roomId/agents", "operationId": "createAgents", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string" }, "invited": { "type": "boolean" }, "name": { "type": "string" }, "profile": { "type": "string" } }, "required": [ "profile" ] } } } } }, "get": { "tags": [ "Group Chat" ], "summary": "Get agents", "description": "GET /api/hermes/group-chat/rooms/:roomId/agents", "operationId": "getAgents", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/group-chat/rooms/{roomId}/agents/{agentId}": { "delete": { "tags": [ "Group Chat" ], "summary": "Delete :agentId", "description": "DELETE /api/hermes/group-chat/rooms/:roomId/agents/:agentId", "operationId": "deleteAgents", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "agentId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/group-chat/rooms/{roomId}/clear-context": { "post": { "tags": [ "Group Chat" ], "summary": "Create clear-context", "description": "POST /api/hermes/group-chat/rooms/:roomId/clear-context", "operationId": "createClear-context", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/group-chat/rooms/{roomId}/clone": { "post": { "tags": [ "Group Chat" ], "summary": "Create clone", "description": "POST /api/hermes/group-chat/rooms/:roomId/clone", "operationId": "createClone", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "inviteCode": { "type": "string" }, "name": { "type": "string" } } } } } } } }, "/api/hermes/group-chat/rooms/{roomId}/compress": { "post": { "tags": [ "Group Chat" ], "summary": "Create compress", "description": "POST /api/hermes/group-chat/rooms/:roomId/compress", "operationId": "createCompress", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/group-chat/rooms/{roomId}/config": { "put": { "tags": [ "Group Chat" ], "summary": "Update config", "description": "PUT /api/hermes/group-chat/rooms/:roomId/config", "operationId": "updateConfig", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "maxHistoryTokens": { "type": "number" }, "tailMessageCount": { "type": "number" }, "triggerTokens": { "type": "number" } } } } } } } }, "/api/hermes/group-chat/rooms/{roomId}/invite-code": { "put": { "tags": [ "Group Chat" ], "summary": "Update invite-code", "description": "PUT /api/hermes/group-chat/rooms/:roomId/invite-code", "operationId": "updateInvite-code", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "inviteCode": { "type": "string" } }, "required": [ "inviteCode" ] } } } } } }, "/api/hermes/group-chat/rooms/{roomId}/workspace": { "put": { "tags": [ "Group Chat" ], "summary": "Update workspace", "description": "PUT /api/hermes/group-chat/rooms/:roomId/workspace", "operationId": "updateWorkspace", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "description": "Forbidden - Workspace folder is not allowed" }, "404": { "$ref": "#/components/responses/NotFound" } }, "parameters": [ { "name": "roomId", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "workspace": { "type": "string" } }, "required": [ "workspace" ] } } } } } }, "/api/hermes/jobs": { "get": { "tags": [ "Jobs" ], "summary": "List jobs", "description": "GET /api/hermes/jobs", "operationId": "list", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "include_disabled", "in": "query", "required": false, "schema": { "type": "boolean" } } ] }, "post": { "tags": [ "Jobs" ], "summary": "Create jobs", "description": "POST /api/hermes/jobs", "operationId": "create", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/jobs/{id}": { "get": { "tags": [ "Jobs" ], "summary": "Get :id", "description": "GET /api/hermes/jobs/:id", "operationId": "get", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] }, "patch": { "tags": [ "Jobs" ], "summary": "Update :id", "description": "PATCH /api/hermes/jobs/:id", "operationId": "update", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] }, "delete": { "tags": [ "Jobs" ], "summary": "Delete :id", "description": "DELETE /api/hermes/jobs/:id", "operationId": "remove", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/jobs/{id}/pause": { "post": { "tags": [ "Jobs" ], "summary": "Pause pause", "description": "POST /api/hermes/jobs/:id/pause", "operationId": "pause", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/jobs/{id}/resume": { "post": { "tags": [ "Jobs" ], "summary": "Resume resume", "description": "POST /api/hermes/jobs/:id/resume", "operationId": "resume", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/jobs/{id}/run": { "post": { "tags": [ "Jobs" ], "summary": "Run run", "description": "POST /api/hermes/jobs/:id/run", "operationId": "run", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/journey": { "get": { "tags": [ "Journey" ], "summary": "Get journey", "description": "GET /api/hermes/journey", "operationId": "graph", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/kanban": { "get": { "tags": [ "Kanban" ], "summary": "List kanban", "description": "GET /api/hermes/kanban", "operationId": "list", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "assignee", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "includeArchived", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "name": "status", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "tenant", "in": "query", "required": false, "schema": { "type": "string" } } ] }, "post": { "tags": [ "Kanban" ], "summary": "Create kanban", "description": "POST /api/hermes/kanban", "operationId": "create", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "assignee": { "type": "string" }, "body": { "type": "string" }, "branch": { "type": "string" }, "goalMaxTurns": { "type": "integer" }, "goalMode": { "type": "boolean" }, "maxRetries": { "type": "integer" }, "maxRuntime": { "type": "string" }, "priority": { "type": "integer" }, "skills": { "type": "array", "items": { "type": "string" } }, "tenant": { "type": "string" }, "title": { "type": "string" }, "triage": { "type": "boolean" }, "workspace": { "type": "string" } }, "required": [ "title" ] } } } } } }, "/api/hermes/kanban/artifact": { "get": { "tags": [ "Kanban" ], "summary": "Get artifact", "description": "GET /api/hermes/kanban/artifact", "operationId": "readArtifact", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "path", "in": "query", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/assignees": { "get": { "tags": [ "Kanban" ], "summary": "Get assignees", "description": "GET /api/hermes/kanban/assignees", "operationId": "assignees", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/boards": { "get": { "tags": [ "Kanban" ], "summary": "Get boards", "description": "GET /api/hermes/kanban/boards", "operationId": "listBoards", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "includeArchived", "in": "query", "required": false, "schema": { "type": "boolean" } } ] }, "post": { "tags": [ "Kanban" ], "summary": "Create boards", "description": "POST /api/hermes/kanban/boards", "operationId": "createBoard", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "color": { "type": "string" }, "description": { "type": "string" }, "icon": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "switchCurrent": { "type": "boolean" } }, "required": [ "slug" ] } } } } } }, "/api/hermes/kanban/boards/{slug}": { "delete": { "tags": [ "Kanban" ], "summary": "Delete :slug", "description": "DELETE /api/hermes/kanban/boards/:slug", "operationId": "archiveBoard", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "slug", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/capabilities": { "get": { "tags": [ "Kanban" ], "summary": "Get capabilities", "description": "GET /api/hermes/kanban/capabilities", "operationId": "capabilities", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/kanban/complete": { "post": { "tags": [ "Kanban" ], "summary": "Create complete", "description": "POST /api/hermes/kanban/complete", "operationId": "complete", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "summary": { "type": "string" }, "task_ids": { "type": "array", "items": { "type": "string" } } }, "required": [ "task_ids" ] } } } } } }, "/api/hermes/kanban/diagnostics": { "get": { "tags": [ "Kanban" ], "summary": "Get diagnostics", "description": "GET /api/hermes/kanban/diagnostics", "operationId": "diagnostics", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "severity", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "warning", "error", "critical" ] } }, { "name": "task", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/dispatch": { "post": { "tags": [ "Kanban" ], "summary": "Create dispatch", "description": "POST /api/hermes/kanban/dispatch", "operationId": "dispatch", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "dryRun": { "type": "boolean" }, "failureLimit": { "type": "integer" }, "max": { "type": "integer" } } } } } } } }, "/api/hermes/kanban/links": { "post": { "tags": [ "Kanban" ], "summary": "Create links", "description": "POST /api/hermes/kanban/links", "operationId": "linkTasks", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "child_id": { "type": "string" }, "parent_id": { "type": "string" } }, "required": [ "child_id", "parent_id" ] } } } } }, "delete": { "tags": [ "Kanban" ], "summary": "Delete links", "description": "DELETE /api/hermes/kanban/links", "operationId": "unlinkTasks", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "child_id", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "parent_id", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/search-sessions": { "get": { "tags": [ "Kanban" ], "summary": "Get search-sessions", "description": "GET /api/hermes/kanban/search-sessions", "operationId": "searchSessions", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "profile", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "q", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "task_id", "in": "query", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/stats": { "get": { "tags": [ "Kanban" ], "summary": "Get stats", "description": "GET /api/hermes/kanban/stats", "operationId": "stats", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/tasks/bulk": { "post": { "tags": [ "Kanban" ], "summary": "Create bulk", "description": "POST /api/hermes/kanban/tasks/bulk", "operationId": "bulkUpdateTasks", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "archive": { "type": "boolean" }, "assignee": { "type": "string" }, "ids": { "type": "array", "items": { "type": "string" } }, "reason": { "type": "string" }, "status": { "type": "string" }, "summary": { "type": "string" } }, "required": [ "ids" ] } } } } } }, "/api/hermes/kanban/unblock": { "post": { "tags": [ "Kanban" ], "summary": "Create unblock", "description": "POST /api/hermes/kanban/unblock", "operationId": "unblock", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "task_ids": { "type": "array", "items": { "type": "string" } } }, "required": [ "task_ids" ] } } } } } }, "/api/hermes/kanban/{id}": { "get": { "tags": [ "Kanban" ], "summary": "Get :id", "description": "GET /api/hermes/kanban/:id", "operationId": "get", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/{id}/assign": { "post": { "tags": [ "Kanban" ], "summary": "Create assign", "description": "POST /api/hermes/kanban/:id/assign", "operationId": "assign", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "profile": { "type": "string" } }, "required": [ "profile" ] } } } } } }, "/api/hermes/kanban/{id}/block": { "post": { "tags": [ "Kanban" ], "summary": "Create block", "description": "POST /api/hermes/kanban/:id/block", "operationId": "block", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "reason": { "type": "string" } }, "required": [ "reason" ] } } } } } }, "/api/hermes/kanban/{id}/comments": { "post": { "tags": [ "Kanban" ], "summary": "Create comments", "description": "POST /api/hermes/kanban/:id/comments", "operationId": "addComment", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "author": { "type": "string" }, "body": { "type": "string" } }, "required": [ "body" ] } } } } } }, "/api/hermes/kanban/{id}/log": { "get": { "tags": [ "Kanban" ], "summary": "Get log", "description": "GET /api/hermes/kanban/:id/log", "operationId": "taskLog", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "tail", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/kanban/{id}/reassign": { "post": { "tags": [ "Kanban" ], "summary": "Create reassign", "description": "POST /api/hermes/kanban/:id/reassign", "operationId": "reassign", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "profile": { "type": "string" }, "reason": { "type": "string" }, "reclaim": { "type": "boolean" } }, "required": [ "profile" ] } } } } } }, "/api/hermes/kanban/{id}/reclaim": { "post": { "tags": [ "Kanban" ], "summary": "Create reclaim", "description": "POST /api/hermes/kanban/:id/reclaim", "operationId": "reclaim", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "reason": { "type": "string" } } } } } } } }, "/api/hermes/kanban/{id}/specify": { "post": { "tags": [ "Kanban" ], "summary": "Create specify", "description": "POST /api/hermes/kanban/:id/specify", "operationId": "specify", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "board", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "author": { "type": "string" } } } } } } } }, "/api/hermes/logs": { "get": { "tags": [ "Logs" ], "summary": "List logs", "description": "GET /api/hermes/logs", "operationId": "list", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/logs/{name}": { "get": { "tags": [ "Logs" ], "summary": "Get :name", "description": "GET /api/hermes/logs/:name", "operationId": "read", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "level", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "lines", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "session", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "since", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/mcp/reload": { "post": { "tags": [ "MCP" ], "summary": "Create reload", "description": "POST /api/hermes/mcp/reload", "operationId": "reloadMcp", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "server", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/mcp/servers": { "get": { "tags": [ "MCP" ], "summary": "Get servers", "description": "GET /api/hermes/mcp/servers", "operationId": "listServers", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "post": { "tags": [ "MCP" ], "summary": "Create servers", "description": "POST /api/hermes/mcp/servers", "operationId": "addServer", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } } }, "/api/hermes/mcp/servers/{name}": { "patch": { "tags": [ "MCP" ], "summary": "Update :name", "description": "PATCH /api/hermes/mcp/servers/:name", "operationId": "updateServer", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } }, "delete": { "tags": [ "MCP" ], "summary": "Delete :name", "description": "DELETE /api/hermes/mcp/servers/:name", "operationId": "removeServer", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/mcp/servers/{name}/test": { "post": { "tags": [ "MCP" ], "summary": "Create test", "description": "POST /api/hermes/mcp/servers/:name/test", "operationId": "testServer", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/mcp/tools": { "get": { "tags": [ "MCP" ], "summary": "Get tools", "description": "GET /api/hermes/mcp/tools", "operationId": "listTools", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "raw", "in": "query", "required": false, "schema": { "type": "boolean", "enum": [ "1", "true" ] } }, { "name": "server", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/mcu/audio/{file}": { "get": { "tags": [ "TTS" ], "summary": "Get :file", "description": "GET /api/hermes/mcu/audio/:file", "operationId": "mcuAudio", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "file", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/mcu/voice-turn": { "post": { "tags": [ "STT" ], "summary": "Create voice-turn", "description": "POST /api/hermes/mcu/voice-turn", "operationId": "mcuVoiceTurn", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/media/apikey-image-generate": { "post": { "tags": [ "Media" ], "summary": "Create apikey-image-generate", "description": "POST /api/hermes/media/apikey-image-generate", "operationId": "apiKeyImageGenerate", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "mode": { "type": "string" }, "output_path": { "type": "string" } } } } } } } }, "/api/hermes/media/grok-image-to-video": { "post": { "tags": [ "Media" ], "summary": "Create grok-image-to-video", "description": "POST /api/hermes/media/grok-image-to-video", "operationId": "grokImageToVideo", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "duration": { "type": "string" }, "output_path": { "type": "string" }, "prompt": { "type": "string" }, "timeout_ms": { "type": "string" } }, "required": [ "prompt" ] } } } } } }, "/api/hermes/memory": { "get": { "tags": [ "Memory" ], "summary": "Get memory", "description": "GET /api/hermes/memory", "operationId": "get", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "post": { "tags": [ "Memory" ], "summary": "Create memory", "description": "POST /api/hermes/memory", "operationId": "save", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "content": { "type": "string" }, "section": { "type": "string" } }, "required": [ "content", "section" ] } } } } } }, "/api/hermes/model-alias": { "put": { "tags": [ "Models" ], "summary": "Update model-alias", "description": "PUT /api/hermes/model-alias", "operationId": "setModelAlias", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "alias": { "type": "string" }, "model": { "type": "string" }, "provider": { "type": "string" } } } } } } } }, "/api/hermes/model-context": { "get": { "tags": [ "Models" ], "summary": "Get model-context", "description": "GET /api/hermes/model-context", "operationId": "getModelContext", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "provider", "in": "query", "required": false, "schema": { "type": "string" } } ] }, "put": { "tags": [ "Models" ], "summary": "Update model-context", "description": "PUT /api/hermes/model-context", "operationId": "updateModelContext", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "provider", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "context_limit": { "type": "number" }, "model": { "type": "string" }, "provider": { "type": "string" } }, "required": [ "context_limit" ] } } } } } }, "/api/hermes/model-context/{provider}/{model}": { "get": { "tags": [ "Models" ], "summary": "Get :model", "description": "GET /api/hermes/model-context/:provider/:model", "operationId": "getModelContext", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "model", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "model", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "provider", "in": "query", "required": false, "schema": { "type": "string" } } ] }, "put": { "tags": [ "Models" ], "summary": "Update :model", "description": "PUT /api/hermes/model-context/:provider/:model", "operationId": "updateModelContext", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "model", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "model", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "provider", "in": "query", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "context_limit": { "type": "number" }, "model": { "type": "string" }, "provider": { "type": "string" } }, "required": [ "context_limit" ] } } } } } }, "/api/hermes/model-visibility": { "put": { "tags": [ "Models" ], "summary": "Update model-visibility", "description": "PUT /api/hermes/model-visibility", "operationId": "setModelVisibility", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "mode": { "type": "string" }, "models": { "type": "array", "items": { "type": "string" } }, "provider": { "type": "string" } } } } } } } }, "/api/hermes/openapi.json": { "get": { "tags": [ "API Docs" ], "summary": "Get openapi.json", "description": "GET /api/hermes/openapi.json", "operationId": "openapi", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/performance/runtime": { "get": { "tags": [ "Performance" ], "summary": "Get runtime", "description": "GET /api/hermes/performance/runtime", "operationId": "runtime", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/plugins": { "get": { "tags": [ "Plugins" ], "summary": "List plugins", "description": "GET /api/hermes/plugins", "operationId": "list", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/plugins/{key}/disable": { "post": { "tags": [ "Plugins" ], "summary": "Create disable", "description": "POST /api/hermes/plugins/:key/disable", "operationId": "disable", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "key", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/plugins/{key}/enable": { "post": { "tags": [ "Plugins" ], "summary": "Create enable", "description": "POST /api/hermes/plugins/:key/enable", "operationId": "enable", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "key", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/profiles": { "get": { "tags": [ "Profiles" ], "summary": "List profiles", "description": "GET /api/hermes/profiles", "operationId": "list", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "post": { "tags": [ "Profiles" ], "summary": "Create profiles", "description": "POST /api/hermes/profiles", "operationId": "create", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "clone": { "type": "boolean" }, "name": { "type": "string" } }, "required": [ "name" ] } } } } } }, "/api/hermes/profiles/active": { "put": { "tags": [ "Profiles" ], "summary": "Update active", "description": "PUT /api/hermes/profiles/active", "operationId": "switchProfile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" } }, "required": [ "name" ] } } } } } }, "/api/hermes/profiles/import": { "post": { "tags": [ "Profiles" ], "summary": "Create import", "description": "POST /api/hermes/profiles/import", "operationId": "importProfile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/profiles/runtime-statuses": { "get": { "tags": [ "Profiles" ], "summary": "Get runtime-statuses", "description": "GET /api/hermes/profiles/runtime-statuses", "operationId": "runtimeStatuses", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "refresh", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/profiles/{name}": { "get": { "tags": [ "Profiles" ], "summary": "Get :name", "description": "GET /api/hermes/profiles/:name", "operationId": "get", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] }, "delete": { "tags": [ "Profiles" ], "summary": "Delete :name", "description": "DELETE /api/hermes/profiles/:name", "operationId": "remove", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/profiles/{name}/avatar": { "put": { "tags": [ "Profiles" ], "summary": "Update avatar", "description": "PUT /api/hermes/profiles/:name/avatar", "operationId": "updateAvatar", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "dataUrl": { "type": "string" }, "seed": { "type": "string" }, "type": { "type": "string" } } } } } } }, "delete": { "tags": [ "Profiles" ], "summary": "Delete avatar", "description": "DELETE /api/hermes/profiles/:name/avatar", "operationId": "deleteAvatar", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/profiles/{name}/export": { "post": { "tags": [ "Profiles" ], "summary": "Create export", "description": "POST /api/hermes/profiles/:name/export", "operationId": "exportProfile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/profiles/{name}/gateway/restart": { "post": { "tags": [ "Profiles" ], "summary": "Create restart", "description": "POST /api/hermes/profiles/:name/gateway/restart", "operationId": "restartGatewayForProfile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/profiles/{name}/rename": { "post": { "tags": [ "Profiles" ], "summary": "Rename rename", "description": "POST /api/hermes/profiles/:name/rename", "operationId": "rename", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "new_name": { "type": "string" } }, "required": [ "new_name" ] } } } } } }, "/api/hermes/profiles/{name}/restart": { "post": { "tags": [ "Profiles" ], "summary": "Create restart", "description": "POST /api/hermes/profiles/:name/restart", "operationId": "restartProfileRuntime", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/profiles/{name}/runtime-status": { "get": { "tags": [ "Profiles" ], "summary": "Get runtime-status", "description": "GET /api/hermes/profiles/:name/runtime-status", "operationId": "runtimeStatus", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/provider-models": { "post": { "tags": [ "Models" ], "summary": "Create provider-models", "description": "POST /api/hermes/provider-models", "operationId": "fetchProviderModelList", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "api_key": { "type": "string" }, "base_url": { "type": "string" }, "freeOnly": { "type": "boolean" }, "label": { "type": "string" }, "provider": { "type": "string" }, "update_cache": { "type": "boolean" } } } } } } } }, "/api/hermes/provider-models/cache/refresh": { "post": { "tags": [ "Models" ], "summary": "Create refresh", "description": "POST /api/hermes/provider-models/cache/refresh", "operationId": "refreshProviderModelCatalogCache", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/runtime-versions": { "get": { "tags": [ "Runtime Versions" ], "summary": "Get runtime-versions", "description": "GET /api/hermes/runtime-versions", "operationId": "status", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/runtime-versions/active-runtime": { "post": { "tags": [ "Runtime Versions" ], "summary": "Create active-runtime", "description": "POST /api/hermes/runtime-versions/active-runtime", "operationId": "activateRuntime", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/runtime-versions/active-webui": { "post": { "tags": [ "Runtime Versions" ], "summary": "Create active-webui", "description": "POST /api/hermes/runtime-versions/active-webui", "operationId": "activateWebUi", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/runtime-versions/jobs": { "get": { "tags": [ "Runtime Versions" ], "summary": "Get jobs", "description": "GET /api/hermes/runtime-versions/jobs", "operationId": "jobs", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/runtime-versions/jobs/{id}": { "get": { "tags": [ "Runtime Versions" ], "summary": "Get :id", "description": "GET /api/hermes/runtime-versions/jobs/:id", "operationId": "job", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/runtime-versions/runtime/download": { "post": { "tags": [ "Runtime Versions" ], "summary": "Create download", "description": "POST /api/hermes/runtime-versions/runtime/download", "operationId": "downloadRuntime", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "source": { "type": "object", "additionalProperties": true }, "version": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/runtime-versions/runtime/{version}": { "delete": { "tags": [ "Runtime Versions" ], "summary": "Delete :version", "description": "DELETE /api/hermes/runtime-versions/runtime/:version", "operationId": "deleteRuntime", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "version", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/runtime-versions/webui/download": { "post": { "tags": [ "Runtime Versions" ], "summary": "Create download", "description": "POST /api/hermes/runtime-versions/webui/download", "operationId": "downloadWebUi", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "source": { "type": "object", "additionalProperties": true }, "version": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/runtime-versions/webui/{version}": { "delete": { "tags": [ "Runtime Versions" ], "summary": "Delete :version", "description": "DELETE /api/hermes/runtime-versions/webui/:version", "operationId": "deleteWebUi", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "version", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/search/sessions": { "get": { "tags": [ "Sessions" ], "summary": "Search sessions", "description": "GET /api/hermes/search/sessions", "operationId": "search", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "q", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "string" ] } }, { "name": "source", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions": { "get": { "tags": [ "Sessions" ], "summary": "List sessions", "description": "GET /api/hermes/sessions", "operationId": "list", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "source", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/batch-delete": { "post": { "tags": [ "Sessions" ], "summary": "Create batch-delete", "description": "POST /api/hermes/sessions/batch-delete", "operationId": "batchRemove", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "ids": { "type": "array", "items": { "type": "string" } }, "sessions": { "type": "string" } }, "required": [ "ids" ] } } } } } }, "/api/hermes/sessions/context-length": { "get": { "tags": [ "Sessions" ], "summary": "Get context-length", "description": "GET /api/hermes/sessions/context-length", "operationId": "contextLength", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "string" ] } }, { "name": "provider", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "string" ] } } ] } }, "/api/hermes/sessions/conversations": { "get": { "tags": [ "Sessions" ], "summary": "Get conversations", "description": "GET /api/hermes/sessions/conversations", "operationId": "listConversations", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "source", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/conversations/{id}/messages": { "get": { "tags": [ "Sessions" ], "summary": "Get messages", "description": "GET /api/hermes/sessions/conversations/:id/messages", "operationId": "getConversationMessages", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "humanOnly", "in": "query", "required": false, "schema": { "type": "boolean", "enum": [ "0" ] } } ] } }, "/api/hermes/sessions/conversations/{id}/messages/paginated": { "get": { "tags": [ "Sessions" ], "summary": "Get paginated", "description": "GET /api/hermes/sessions/conversations/:id/messages/paginated", "operationId": "getConversationMessagesPaginated", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer" } } ] } }, "/api/hermes/sessions/count": { "get": { "tags": [ "Sessions" ], "summary": "Get count", "description": "GET /api/hermes/sessions/count", "operationId": "count", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "source", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/hermes": { "get": { "tags": [ "Sessions" ], "summary": "Get hermes", "description": "GET /api/hermes/sessions/hermes", "operationId": "listHermesSessions", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/sessions/hermes/{id}": { "get": { "tags": [ "Sessions" ], "summary": "Get :id", "description": "GET /api/hermes/sessions/hermes/:id", "operationId": "getHermesSession", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/hermes/{id}/import": { "post": { "tags": [ "Sessions" ], "summary": "Create import", "description": "POST /api/hermes/sessions/hermes/:id/import", "operationId": "importHermesSession", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/search": { "get": { "tags": [ "Sessions" ], "summary": "Search search", "description": "GET /api/hermes/sessions/search", "operationId": "search", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "q", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "string" ] } }, { "name": "source", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/usage": { "get": { "tags": [ "Sessions" ], "summary": "Get usage", "description": "GET /api/hermes/sessions/usage", "operationId": "usageBatch", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/{id}": { "get": { "tags": [ "Sessions" ], "summary": "Get :id", "description": "GET /api/hermes/sessions/:id", "operationId": "get", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Delete :id", "description": "DELETE /api/hermes/sessions/:id", "operationId": "remove", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/{id}/archive": { "post": { "tags": [ "Sessions" ], "summary": "Create archive", "description": "POST /api/hermes/sessions/:id/archive", "operationId": "archive", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/{id}/context": { "get": { "tags": [ "Sessions" ], "summary": "Get context", "description": "GET /api/hermes/sessions/:id/context", "operationId": "getContext", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/{id}/export": { "get": { "tags": [ "Sessions" ], "summary": "Get export", "description": "GET /api/hermes/sessions/:id/export", "operationId": "exportSession", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "ext", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "json", "txt" ] } }, { "name": "mode", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "compressed" ] } } ] } }, "/api/hermes/sessions/{id}/model": { "post": { "tags": [ "Sessions" ], "summary": "Create model", "description": "POST /api/hermes/sessions/:id/model", "operationId": "setModel", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "api_mode": { "type": "string", "enum": [ "chat_completions", "codex_responses", "anthropic_messages" ] }, "apiMode": { "type": "string", "enum": [ "chat_completions", "codex_responses", "anthropic_messages" ] }, "model": { "type": "string" }, "provider": { "type": "string" } }, "required": [ "model" ] } } } } } }, "/api/hermes/sessions/{id}/rename": { "post": { "tags": [ "Sessions" ], "summary": "Rename rename", "description": "POST /api/hermes/sessions/:id/rename", "operationId": "rename", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" } }, "required": [ "title" ] } } } } } }, "/api/hermes/sessions/{id}/unarchive": { "post": { "tags": [ "Sessions" ], "summary": "Create unarchive", "description": "POST /api/hermes/sessions/:id/unarchive", "operationId": "unarchive", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/{id}/usage": { "get": { "tags": [ "Sessions" ], "summary": "Get usage", "description": "GET /api/hermes/sessions/:id/usage", "operationId": "usageSingle", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/{id}/workspace": { "post": { "tags": [ "Sessions" ], "summary": "Create workspace", "description": "POST /api/hermes/sessions/:id/workspace", "operationId": "setWorkspace", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "workspace": { "type": "string" } } } } } } } }, "/api/hermes/sessions/{id}/workspace-file/read": { "get": { "tags": [ "Sessions" ], "summary": "Get read", "description": "GET /api/hermes/sessions/:id/workspace-file/read", "operationId": "readWorkspaceFile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/{id}/workspace-file/write": { "put": { "tags": [ "Sessions" ], "summary": "Update write", "description": "PUT /api/hermes/sessions/:id/workspace-file/write", "operationId": "writeWorkspaceFile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "content": { "type": "object", "additionalProperties": true }, "path": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/sessions/{id}/workspace-run-changes": { "get": { "tags": [ "Sessions" ], "summary": "Get workspace-run-changes", "description": "GET /api/hermes/sessions/:id/workspace-run-changes", "operationId": "listWorkspaceRunChanges", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/sessions/{id}/workspace-run-changes/{changeId}/files/{fileId}": { "get": { "tags": [ "Sessions" ], "summary": "Get :fileId", "description": "GET /api/hermes/sessions/:id/workspace-run-changes/:changeId/files/:fileId", "operationId": "getWorkspaceRunChangeFile", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "changeId", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/hermes/skills": { "get": { "tags": [ "Skills" ], "summary": "List skills", "description": "GET /api/hermes/skills", "operationId": "list", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/skills/external-dirs": { "get": { "tags": [ "Skills" ], "summary": "Get external-dirs", "description": "GET /api/hermes/skills/external-dirs", "operationId": "listExternalDirs", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } }, "put": { "tags": [ "Skills" ], "summary": "Update external-dirs", "description": "PUT /api/hermes/skills/external-dirs", "operationId": "updateExternalDirs", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } } }, "/api/hermes/skills/import": { "post": { "tags": [ "Skills" ], "summary": "Create import", "description": "POST /api/hermes/skills/import", "operationId": "importSkill", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/skills/pin": { "put": { "tags": [ "Skills" ], "summary": "Update pin", "description": "PUT /api/hermes/skills/pin", "operationId": "pin_", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "pinned": { "type": "boolean" } }, "required": [ "name" ] } } } } } }, "/api/hermes/skills/toggle": { "put": { "tags": [ "Skills" ], "summary": "Update toggle", "description": "PUT /api/hermes/skills/toggle", "operationId": "toggle", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "name": { "type": "string" } }, "required": [ "name" ] } } } } } }, "/api/hermes/skills/usage/stats": { "get": { "tags": [ "Skills" ], "summary": "Get stats", "description": "GET /api/hermes/skills/usage/stats", "operationId": "usageStats", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer" } } ] } }, "/api/hermes/skills/{category}/{skill}": { "put": { "tags": [ "Skills" ], "summary": "Update :skill", "description": "PUT /api/hermes/skills/:category/:skill", "operationId": "updateSkill", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "category", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "skill", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "content": { "type": "object", "additionalProperties": true } } } } } } }, "delete": { "tags": [ "Skills" ], "summary": "Delete :skill", "description": "DELETE /api/hermes/skills/:category/:skill", "operationId": "deleteSkill", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "category", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "skill", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/skills/{category}/{skill}/files": { "get": { "tags": [ "Skills" ], "summary": "Get files", "description": "GET /api/hermes/skills/:category/:skill/files", "operationId": "listFiles", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "category", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "skill", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/skills/{path}": { "get": { "tags": [ "Skills" ], "summary": "Get skills by *path", "description": "GET /api/hermes/skills/{*path}", "operationId": "readFile_", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/stt/profile-status": { "get": { "tags": [ "STT" ], "summary": "Get profile-status", "description": "GET /api/hermes/stt/profile-status", "operationId": "profileStatus", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/stt/profile-status/missing-audio": { "get": { "tags": [ "STT" ], "summary": "Get missing-audio", "description": "GET /api/hermes/stt/profile-status/missing-audio", "operationId": "missingProfileAudio", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/stt/settings": { "get": { "tags": [ "STT" ], "summary": "Get settings", "description": "GET /api/hermes/stt/settings", "operationId": "listSettings", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/stt/settings/active": { "put": { "tags": [ "STT" ], "summary": "Update active", "description": "PUT /api/hermes/stt/settings/active", "operationId": "saveActiveProvider", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "provider": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/stt/settings/{provider}": { "put": { "tags": [ "STT" ], "summary": "Update :provider", "description": "PUT /api/hermes/stt/settings/:provider", "operationId": "saveSettings", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "activeProvider": { "type": "object", "additionalProperties": true }, "secrets": { "type": "object", "additionalProperties": true }, "settings": { "type": "object", "additionalProperties": true } } } } } } }, "delete": { "tags": [ "STT" ], "summary": "Delete :provider", "description": "DELETE /api/hermes/stt/settings/:provider", "operationId": "deleteProvider", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/stt/settings/{provider}/base-url-preset": { "delete": { "tags": [ "STT" ], "summary": "Delete base-url-preset", "description": "DELETE /api/hermes/stt/settings/:provider/base-url-preset", "operationId": "deleteBaseUrlPreset", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "url", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "string" ] } } ] } }, "/api/hermes/stt/settings/{provider}/secret/{secretName}": { "delete": { "tags": [ "STT" ], "summary": "Delete :secretName", "description": "DELETE /api/hermes/stt/settings/:provider/secret/:secretName", "operationId": "deleteSecret", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "secretName", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/stt/transcribe": { "post": { "tags": [ "STT" ], "summary": "Create transcribe", "description": "POST /api/hermes/stt/transcribe", "operationId": "transcribe", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/tts": { "post": { "tags": [ "TTS" ], "summary": "Create tts", "description": "POST /api/hermes/tts", "operationId": "generate", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "lang": { "type": "string" }, "text": { "type": "string" } }, "required": [ "text" ] } } } } } }, "/api/hermes/tts/settings": { "get": { "tags": [ "TTS" ], "summary": "Get settings", "description": "GET /api/hermes/tts/settings", "operationId": "listSettings", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/tts/settings/active": { "put": { "tags": [ "TTS" ], "summary": "Update active", "description": "PUT /api/hermes/tts/settings/active", "operationId": "saveActiveProvider", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "provider": { "type": "object", "additionalProperties": true } } } } } } } }, "/api/hermes/tts/settings/{provider}": { "put": { "tags": [ "TTS" ], "summary": "Update :provider", "description": "PUT /api/hermes/tts/settings/:provider", "operationId": "saveSettings", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "activeProvider": { "type": "object", "additionalProperties": true }, "secrets": { "type": "object", "additionalProperties": true }, "settings": { "type": "object", "additionalProperties": true } } } } } } }, "delete": { "tags": [ "TTS" ], "summary": "Delete :provider", "description": "DELETE /api/hermes/tts/settings/:provider", "operationId": "deleteProvider", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/tts/settings/{provider}/base-url-preset": { "delete": { "tags": [ "TTS" ], "summary": "Delete base-url-preset", "description": "DELETE /api/hermes/tts/settings/:provider/base-url-preset", "operationId": "deleteBaseUrlPreset", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "url", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "string" ] } } ] } }, "/api/hermes/tts/settings/{provider}/secret/{secretName}": { "delete": { "tags": [ "TTS" ], "summary": "Delete :secretName", "description": "DELETE /api/hermes/tts/settings/:provider/secret/:secretName", "operationId": "deleteSecret", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "secretName", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/tts/synthesize": { "post": { "tags": [ "TTS" ], "summary": "Create synthesize", "description": "POST /api/hermes/tts/synthesize", "operationId": "synthesize", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "options": { "type": "object", "additionalProperties": true }, "provider": { "type": "string" }, "text": { "type": "string" } }, "required": [ "text" ] } } } } } }, "/api/hermes/update": { "post": { "tags": [ "Update" ], "summary": "Create update", "description": "POST /api/hermes/update", "operationId": "handleUpdate", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/update/preview": { "get": { "tags": [ "Update" ], "summary": "Get preview", "description": "GET /api/hermes/update/preview", "operationId": "previewStatus", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/update/preview/install": { "post": { "tags": [ "Update" ], "summary": "Create install", "description": "POST /api/hermes/update/preview/install", "operationId": "installPreview", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/update/preview/prepare": { "post": { "tags": [ "Update" ], "summary": "Create prepare", "description": "POST /api/hermes/update/preview/prepare", "operationId": "preparePreview", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "tag": { "type": "string" } } } } } } } }, "/api/hermes/update/preview/start": { "post": { "tags": [ "Update" ], "summary": "Create start", "description": "POST /api/hermes/update/preview/start", "operationId": "startPreview", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "tag": { "type": "string" } } } } } } } }, "/api/hermes/update/preview/stop": { "post": { "tags": [ "Update" ], "summary": "Create stop", "description": "POST /api/hermes/update/preview/stop", "operationId": "stopPreview", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/update/preview/tags": { "get": { "tags": [ "Update" ], "summary": "Get tags", "description": "GET /api/hermes/update/preview/tags", "operationId": "previewTags", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/usage/stats": { "get": { "tags": [ "Sessions" ], "summary": "Get stats", "description": "GET /api/hermes/usage/stats", "operationId": "usageStats", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer" } } ] } }, "/api/hermes/weixin/qrcode": { "get": { "tags": [ "Weixin" ], "summary": "Get qrcode", "description": "GET /api/hermes/weixin/qrcode", "operationId": "getQrcode", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/weixin/qrcode/status": { "get": { "tags": [ "Weixin" ], "summary": "Get status", "description": "GET /api/hermes/weixin/qrcode/status", "operationId": "pollStatus", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "qrcode", "in": "query", "required": false, "schema": { "type": "string" } } ] } }, "/api/hermes/weixin/save": { "post": { "tags": [ "Weixin" ], "summary": "Create save", "description": "POST /api/hermes/weixin/save", "operationId": "save", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "account_id": { "type": "string" }, "base_url": { "type": "string" }, "token": { "type": "string" } }, "required": [ "account_id", "token" ] } } } } } }, "/api/hermes/workspace/folders": { "get": { "tags": [ "Sessions" ], "summary": "Get folders", "description": "GET /api/hermes/workspace/folders", "operationId": "listWorkspaceFolders", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "path", "in": "query", "required": false, "schema": { "type": "string" } } ] }, "post": { "tags": [ "Sessions" ], "summary": "Create folders", "description": "POST /api/hermes/workspace/folders", "operationId": "createWorkspaceFolder", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "parentPath": { "type": "string" } } } } } } }, "delete": { "tags": [ "Sessions" ], "summary": "Delete folders", "description": "DELETE /api/hermes/workspace/folders", "operationId": "deleteWorkspaceFolder", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/api/hermes/workspace/folders/rename": { "post": { "tags": [ "Sessions" ], "summary": "Create rename", "description": "POST /api/hermes/workspace/folders/rename", "operationId": "renameWorkspaceFolder", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "path": { "type": "string" } }, "required": [ "path" ] } } } } } }, "/api/hermes/write-gate/pending": { "get": { "tags": [ "Write Gate" ], "summary": "List pending", "description": "GET /api/hermes/write-gate/pending", "operationId": "list", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/hermes/write-gate/pending/{subsystem}/{id}/approve": { "post": { "tags": [ "Write Gate" ], "summary": "Create approve", "description": "POST /api/hermes/write-gate/pending/:subsystem/:id/approve", "operationId": "approve", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "subsystem", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/write-gate/pending/{subsystem}/{id}/diff": { "get": { "tags": [ "Write Gate" ], "summary": "Get diff", "description": "GET /api/hermes/write-gate/pending/:subsystem/:id/diff", "operationId": "diff", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } }, "parameters": [ { "name": "subsystem", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/hermes/write-gate/pending/{subsystem}/{id}/reject": { "post": { "tags": [ "Write Gate" ], "summary": "Create reject", "description": "POST /api/hermes/write-gate/pending/:subsystem/:id/reject", "operationId": "reject", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "parameters": [ { "name": "subsystem", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/openapi.json": { "get": { "tags": [ "API Docs" ], "summary": "Get openapi.json", "description": "GET /api/openapi.json", "operationId": "openapi", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/api/tts/proxy/audio/speech": { "post": { "tags": [ "TTS" ], "summary": "Create speech", "description": "POST /api/tts/proxy/audio/speech", "operationId": "openaiProxy", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "input": { "type": "string" }, "model": { "type": "string" }, "pitch": { "type": "string" }, "rate": { "type": "string" }, "speed": { "type": "number" }, "voice": { "type": "string" } }, "required": [ "input" ] } } } } } }, "/api/voice/providers/probe": { "post": { "tags": [ "TTS" ], "summary": "Create probe", "description": "POST /api/voice/providers/probe", "operationId": "probeProvider", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": {}, "additionalProperties": true } } } } } }, "/health": { "get": { "tags": [ "Health" ], "summary": "Get health", "description": "GET /health", "operationId": "healthCheck", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "description": "Not found" } } } }, "/upload": { "post": { "tags": [ "Upload" ], "summary": "Create upload", "description": "POST /upload", "operationId": "handleUpload", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } }, "/webhook": { "post": { "tags": [ "Webhook" ], "summary": "Create webhook", "description": "POST /webhook", "operationId": "handleWebhook", "security": [ { "BearerAuth": [] } ], "responses": { "200": { "description": "Success" }, "400": { "$ref": "#/components/responses/BadRequest" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "event": { "type": "string" } } } } } } } }, "/api/hermes/terminal": { "get": { "tags": [ "Terminal" ], "summary": "WebSocket terminal connection", "description": "Establish a WebSocket connection for interactive terminal access. Uses the `ws` or `wss` protocol with `?token=` for authentication.", "operationId": "terminalWebSocket", "responses": { "101": { "description": "Switching Protocols - WebSocket connection established" }, "401": { "$ref": "#/components/responses/Unauthorized" } } } } }, "components": { "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "API Token" } }, "schemas": {}, "responses": { "Unauthorized": { "description": "Unauthorized - Invalid or missing authentication token", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "example": "Unauthorized" } } } } } }, "BadRequest": { "description": "Bad Request - Invalid parameters", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "example": "Invalid request" } } } } } }, "NotFound": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "example": "Not found" } } } } } } } } }