Files
hermes-web-ui/docs/openapi.json
ekko 634a622934 [codex] fix media skill profile auth and run events (#965)
* fix media skill profile auth and run events

* test bridge run profile context
2026-05-24 12:52:14 +08:00

3449 lines
80 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "Hermes Web UI API",
"description": "BFF server API for Hermes Web UI — chat sessions, scheduled jobs, platform channels, model management, skills, memory, logs, file browser, group chat, and terminal.",
"version": "0.5.9"
},
"servers": [
{
"url": "http://localhost:8648",
"description": "Local development"
}
],
"tags": [
{
"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": "Group Chat",
"description": "Group chat management"
},
{
"name": "Logs",
"description": "Log file access"
},
{
"name": "Memory",
"description": "Agent memory files"
},
{
"name": "Models",
"description": "Model configuration"
},
{
"name": "Nous Auth",
"description": "Nous Research OAuth"
},
{
"name": "Profiles",
"description": "Hermes profile management"
},
{
"name": "Providers",
"description": "Model provider management"
},
{
"name": "Sessions",
"description": "Chat session management"
},
{
"name": "Skills",
"description": "Skill browsing and management"
},
{
"name": "Weixin",
"description": "WeChat QR code login"
},
{
"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": "Proxy",
"description": "Gateway proxy to upstream Hermes API"
},
{
"name": "Terminal",
"description": "WebSocket terminal access"
}
],
"paths": {
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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/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"
}
}
}
},
"/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/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
},
"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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
},
"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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/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"
}
}
}
},
"/api/hermes/{*any}": {
"get": {
"tags": [
"Proxy"
],
"summary": "Proxy to upstream Hermes API",
"description": "Forwards unmatched /api/hermes/* requests to upstream Hermes gateway. Supports all upstream endpoints.",
"operationId": "proxyHermes",
"responses": {
"200": {
"description": "Proxied response from upstream"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"502": {
"description": "Proxy failure"
}
}
},
"post": {
"tags": [
"Proxy"
],
"summary": "Proxy to upstream Hermes API",
"description": "Forwards unmatched /api/hermes/* requests to upstream Hermes gateway. Supports all upstream endpoints.",
"operationId": "proxyHermesPost",
"responses": {
"200": {
"description": "Proxied response from upstream"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"502": {
"description": "Proxy failure"
}
}
},
"put": {
"tags": [
"Proxy"
],
"summary": "Proxy to upstream Hermes API",
"description": "Forwards unmatched /api/hermes/* requests to upstream Hermes gateway. Supports all upstream endpoints.",
"operationId": "proxyHermesPut",
"responses": {
"200": {
"description": "Proxied response from upstream"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"502": {
"description": "Proxy failure"
}
}
},
"delete": {
"tags": [
"Proxy"
],
"summary": "Proxy to upstream Hermes API",
"description": "Forwards unmatched /api/hermes/* requests to upstream Hermes gateway. Supports all upstream endpoints.",
"operationId": "proxyHermesDelete",
"responses": {
"200": {
"description": "Proxied response from upstream"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"502": {
"description": "Proxy failure"
}
}
}
},
"/v1/{*any}": {
"get": {
"tags": [
"Proxy"
],
"summary": "Proxy to upstream Hermes v1 API",
"description": "Forwards /v1/* requests to upstream Hermes gateway. Supports all upstream v1 endpoints.",
"operationId": "proxyV1",
"responses": {
"200": {
"description": "Proxied response from upstream"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"502": {
"description": "Proxy failure"
}
}
},
"post": {
"tags": [
"Proxy"
],
"summary": "Proxy to upstream Hermes v1 API",
"description": "Forwards /v1/* requests to upstream Hermes gateway. Supports all upstream v1 endpoints.",
"operationId": "proxyV1Post",
"responses": {
"200": {
"description": "Proxied response from upstream"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"502": {
"description": "Proxy failure"
}
}
}
},
"/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"
}
}
}
},
"/api/hermes/v1/runs/{runId}/events": {
"get": {
"tags": [
"Chat"
],
"summary": "Server-Sent Events for chat streaming",
"description": "Stream chat events using Server-Sent Events (SSE). Authentication via `?token=` query parameter.",
"operationId": "chatStreamEvents",
"parameters": [
{
"name": "runId",
"in": "path",
"required": true,
"description": "Chat run ID",
"schema": {
"type": "string"
}
},
{
"name": "token",
"in": "query",
"required": true,
"description": "Authentication token",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "SSE stream established",
"content": {
"text/event-stream": {
"schema": {
"type": "object",
"properties": {
"event": {
"type": "string",
"enum": [
"run.created",
"run.queued",
"run.started",
"run.streaming",
"run.completed",
"run.failed"
]
},
"data": {
"type": "object"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"description": "Run not found"
}
}
}
}
},
"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"
}
}
}
}
}
}
}
}
}