2026-04-16 08:39:53 +08:00
{
"openapi" : "3.0.3" ,
"info" : {
"title" : "Hermes Web UI API" ,
2026-04-29 16:26:24 +08:00
"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." ,
2026-05-04 20:30:04 +08:00
"version" : "0.5.9"
2026-04-16 08:39:53 +08:00
} ,
"servers" : [
2026-05-04 20:30:04 +08:00
{
"url" : "http://localhost:8648" ,
"description" : "Local development"
}
2026-04-16 08:39:53 +08:00
] ,
"tags" : [
2026-05-04 20:30:04 +08:00
{
"name" : "Codex Auth" ,
"description" : "OpenAI Codex OAuth"
2026-04-23 13:12:40 +08:00
} ,
2026-05-04 20:30:04 +08:00
{
"name" : "Config" ,
"description" : "Configuration management"
2026-04-23 13:12:40 +08:00
} ,
2026-05-04 20:30:04 +08:00
{
"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" : "Gateways" ,
"description" : "Gateway process management"
} ,
{
"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"
2026-04-23 13:12:40 +08:00
} ,
2026-05-04 20:30:04 +08:00
{
"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" : {
2026-04-23 13:12:40 +08:00
"/api/auth/change-password" : {
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Auth"
] ,
"summary" : "Create change-password" ,
"description" : "POST /api/auth/change-password" ,
2026-04-23 13:12:40 +08:00
"operationId" : "changePassword" ,
2026-05-04 20:30:04 +08:00
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
"/api/auth/change-username" : {
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Auth"
] ,
"summary" : "Create change-username" ,
"description" : "POST /api/auth/change-username" ,
2026-04-23 13:12:40 +08:00
"operationId" : "changeUsername" ,
2026-05-04 20:30:04 +08:00
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-08 20:46:22 +08:00
"/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"
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/auth/login" : {
"post" : {
"tags" : [
"Auth"
] ,
"summary" : "Create login" ,
"description" : "POST /api/auth/login" ,
"operationId" : "login" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/auth/password" : {
"delete" : {
"tags" : [
"Auth"
] ,
"summary" : "Delete password" ,
"description" : "DELETE /api/auth/password" ,
"operationId" : "removePassword" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
"200" : {
2026-05-04 20:30:04 +08:00
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
2026-04-16 08:39:53 +08:00
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/auth/setup" : {
"post" : {
"tags" : [
"Auth"
] ,
"summary" : "Create setup" ,
"description" : "POST /api/auth/setup" ,
"operationId" : "setupPassword" ,
"security" : [
{
"BearerAuth" : [ ]
}
2026-04-16 08:39:53 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/auth/status" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Auth"
] ,
"summary" : "Get status" ,
"description" : "GET /api/auth/status" ,
"operationId" : "authStatus" ,
"security" : [
{
"BearerAuth" : [ ]
}
2026-04-23 13:12:40 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/cron-history" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Jobs"
] ,
"summary" : "Get cron-history" ,
"description" : "GET /api/cron-history" ,
"operationId" : "listRuns" ,
"security" : [
{
"BearerAuth" : [ ]
}
2026-04-23 13:12:40 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/cron-history/{jobId}/{fileName}" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Jobs"
] ,
"summary" : "Get :fileName" ,
"description" : "GET /api/cron-history/:jobId/:fileName" ,
"operationId" : "readRun" ,
"security" : [
{
"BearerAuth" : [ ]
}
2026-04-23 13:12:40 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/codex/poll/{sessionId}" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Codex Auth"
] ,
"summary" : "Get :sessionId" ,
"description" : "GET /api/hermes/auth/codex/poll/:sessionId" ,
"operationId" : "poll" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/codex/start" : {
2026-04-16 08:39:53 +08:00
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Codex Auth"
] ,
"summary" : "Create start" ,
"description" : "POST /api/hermes/auth/codex/start" ,
"operationId" : "start" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/codex/status" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Codex Auth"
] ,
"summary" : "Get status" ,
"description" : "GET /api/hermes/auth/codex/status" ,
"operationId" : "status" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/copilot/check-token" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Copilot Auth"
] ,
"summary" : "Get check-token" ,
"description" : "GET /api/hermes/auth/copilot/check-token" ,
"operationId" : "checkToken" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/copilot/disable" : {
"post" : {
"tags" : [
"Copilot Auth"
] ,
"summary" : "Create disable" ,
"description" : "POST /api/hermes/auth/copilot/disable" ,
"operationId" : "disable" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/copilot/enable" : {
2026-04-16 08:39:53 +08:00
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Copilot Auth"
] ,
"summary" : "Create enable" ,
"description" : "POST /api/hermes/auth/copilot/enable" ,
"operationId" : "enable" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/copilot/poll/{sessionId}" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Copilot Auth"
] ,
"summary" : "Get :sessionId" ,
"description" : "GET /api/hermes/auth/copilot/poll/:sessionId" ,
"operationId" : "poll" ,
"security" : [
{
"BearerAuth" : [ ]
}
2026-04-23 13:12:40 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/copilot/start" : {
"post" : {
"tags" : [
"Copilot Auth"
] ,
"summary" : "Create start" ,
"description" : "POST /api/hermes/auth/copilot/start" ,
"operationId" : "start" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/nous/poll/{sessionId}" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Nous Auth"
] ,
"summary" : "Get :sessionId" ,
"description" : "GET /api/hermes/auth/nous/poll/:sessionId" ,
"operationId" : "poll" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/nous/start" : {
"post" : {
"tags" : [
"Nous Auth"
] ,
"summary" : "Create start" ,
"description" : "POST /api/hermes/auth/nous/start" ,
"operationId" : "start" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/auth/nous/status" : {
"get" : {
"tags" : [
"Nous Auth"
] ,
"summary" : "Get status" ,
"description" : "GET /api/hermes/auth/nous/status" ,
"operationId" : "status" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/available-models" : {
"get" : {
"tags" : [
"Models"
] ,
"summary" : "Get available-models" ,
"description" : "GET /api/hermes/available-models" ,
"operationId" : "getAvailable" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-04-16 08:39:53 +08:00
"/api/hermes/config" : {
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Config"
] ,
"summary" : "Get config" ,
"description" : "GET /api/hermes/config" ,
2026-04-16 08:39:53 +08:00
"operationId" : "getConfig" ,
2026-05-04 20:30:04 +08:00
"security" : [
{
"BearerAuth" : [ ]
}
2026-04-16 08:39:53 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
} ,
"put" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Config"
] ,
"summary" : "Update config" ,
"description" : "PUT /api/hermes/config" ,
2026-04-16 08:39:53 +08:00
"operationId" : "updateConfig" ,
2026-05-04 20:30:04 +08:00
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
"/api/hermes/config/credentials" : {
"put" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Config"
] ,
"summary" : "Update credentials" ,
"description" : "PUT /api/hermes/config/credentials" ,
"operationId" : "updateCredentials" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/config/model" : {
"put" : {
"tags" : [
"Models"
] ,
"summary" : "Update model" ,
"description" : "PUT /api/hermes/config/model" ,
"operationId" : "setConfigModel" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
"/api/hermes/config/models" : {
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Models"
] ,
"summary" : "Get models" ,
"description" : "GET /api/hermes/config/models" ,
"operationId" : "getConfigModels" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
"/api/hermes/config/providers" : {
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Providers"
] ,
"summary" : "Create providers" ,
"description" : "POST /api/hermes/config/providers" ,
"operationId" : "create" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
"/api/hermes/config/providers/{poolKey}" : {
2026-04-23 13:12:40 +08:00
"put" : {
2026-05-04 20:30:04 +08:00
"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"
}
}
2026-04-23 13:12:40 +08:00
} ,
2026-04-16 08:39:53 +08:00
"delete" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Providers"
] ,
"summary" : "Delete :poolKey" ,
"description" : "DELETE /api/hermes/config/providers/:poolKey" ,
"operationId" : "remove" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/download" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Download"
] ,
"summary" : "Get download" ,
"description" : "GET /api/hermes/download" ,
"operationId" : "getDownload" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/copy" : {
"post" : {
"tags" : [
"Files"
] ,
"summary" : "Create copy" ,
"description" : "POST /api/hermes/files/copy" ,
"operationId" : "createCopy" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/delete" : {
"delete" : {
"tags" : [
"Files"
] ,
"summary" : "Delete delete" ,
"description" : "DELETE /api/hermes/files/delete" ,
"operationId" : "deleteDelete" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/list" : {
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Files"
] ,
"summary" : "Get list" ,
"description" : "GET /api/hermes/files/list" ,
"operationId" : "getList" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/mkdir" : {
"post" : {
"tags" : [
"Files"
] ,
"summary" : "Create mkdir" ,
"description" : "POST /api/hermes/files/mkdir" ,
"operationId" : "createMkdir" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/read" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Files"
] ,
"summary" : "Get read" ,
"description" : "GET /api/hermes/files/read" ,
"operationId" : "getRead" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/rename" : {
"post" : {
"tags" : [
"Files"
] ,
"summary" : "Create rename" ,
"description" : "POST /api/hermes/files/rename" ,
"operationId" : "createRename" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/stat" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Files"
] ,
"summary" : "Get stat" ,
"description" : "GET /api/hermes/files/stat" ,
"operationId" : "getStat" ,
"security" : [
{
"BearerAuth" : [ ]
}
2026-04-16 08:39:53 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/upload" : {
"post" : {
"tags" : [
"Files"
] ,
"summary" : "Create upload" ,
"description" : "POST /api/hermes/files/upload" ,
"operationId" : "createUpload" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/files/write" : {
"put" : {
"tags" : [
"Files"
] ,
"summary" : "Update write" ,
"description" : "PUT /api/hermes/files/write" ,
"operationId" : "updateWrite" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/gateways" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Gateways"
] ,
"summary" : "List gateways" ,
"description" : "GET /api/hermes/gateways" ,
"operationId" : "list" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/gateways/{name}/health" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Gateways"
] ,
"summary" : "Get health" ,
"description" : "GET /api/hermes/gateways/:name/health" ,
"operationId" : "health" ,
"security" : [
{
"BearerAuth" : [ ]
}
2026-04-16 08:39:53 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/gateways/{name}/start" : {
2026-04-16 08:39:53 +08:00
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Gateways"
] ,
"summary" : "Create start" ,
"description" : "POST /api/hermes/gateways/:name/start" ,
"operationId" : "start" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/gateways/{name}/stop" : {
"post" : {
"tags" : [
"Gateways"
] ,
"summary" : "Create stop" ,
"description" : "POST /api/hermes/gateways/:name/stop" ,
"operationId" : "stop" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/group-chat/rooms" : {
2026-04-16 08:39:53 +08:00
"post" : {
2026-05-04 20:30:04 +08:00
"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" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/group-chat/rooms/join/{code}" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Group Chat"
] ,
"summary" : "Get :code" ,
"description" : "GET /api/hermes/group-chat/rooms/join/:code" ,
"operationId" : "getJoin" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/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" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/group-chat/rooms/{roomId}/agents" : {
2026-04-16 08:39:53 +08:00
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Group Chat"
] ,
"summary" : "Create agents" ,
"description" : "POST /api/hermes/group-chat/rooms/:roomId/agents" ,
"operationId" : "createAgents" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
} ,
2026-04-23 13:12:40 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Group Chat"
] ,
"summary" : "Get agents" ,
"description" : "GET /api/hermes/group-chat/rooms/:roomId/agents" ,
"operationId" : "getAgents" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/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" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-15 16:13:51 +08:00
"/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"
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/group-chat/rooms/{roomId}/compress" : {
2026-04-23 13:12:40 +08:00
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Group Chat"
] ,
"summary" : "Create compress" ,
"description" : "POST /api/hermes/group-chat/rooms/:roomId/compress" ,
"operationId" : "createCompress" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/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" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/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" : [ ]
}
] ,
2026-04-23 13:12:40 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/jobs" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"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" : [ ]
}
2026-04-16 08:39:53 +08:00
] ,
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
2026-04-16 08:39:53 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/jobs/{id}" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"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" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/jobs/{id}/pause" : {
"post" : {
"tags" : [
"Jobs"
] ,
"summary" : "Pause pause" ,
"description" : "POST /api/hermes/jobs/:id/pause" ,
"operationId" : "pause" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/jobs/{id}/resume" : {
2026-04-16 08:39:53 +08:00
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Jobs"
] ,
"summary" : "Resume resume" ,
"description" : "POST /api/hermes/jobs/:id/resume" ,
"operationId" : "resume" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/jobs/{id}/run" : {
2026-04-16 08:39:53 +08:00
"post" : {
2026-05-04 20:30:04 +08:00
"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" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
2026-04-16 08:39:53 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/logs/{name}" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Logs"
] ,
"summary" : "Get :name" ,
"description" : "GET /api/hermes/logs/:name" ,
"operationId" : "read" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Not found"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/api/hermes/memory" : {
2026-04-16 08:39:53 +08:00
"get" : {
2026-05-04 20:30:04 +08:00
"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"
}
}
2026-04-16 08:39:53 +08:00
} ,
"post" : {
2026-05-04 20:30:04 +08:00
"tags" : [
"Memory"
] ,
"summary" : "Create memory" ,
"description" : "POST /api/hermes/memory" ,
"operationId" : "save" ,
"security" : [
{
"BearerAuth" : [ ]
}
] ,
2026-04-16 08:39:53 +08:00
"responses" : {
2026-05-04 20:30:04 +08:00
"200" : {
"description" : "Success"
} ,
"400" : {
"$ref" : "#/components/responses/BadRequest"
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
}
}
2026-04-16 08:39:53 +08:00
}
2026-05-04 20:30:04 +08:00
} ,
2026-05-15 16:13:51 +08:00
"/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"
}
}
}
} ,
2026-05-08 11:32:47 +08:00
"/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"
}
}
}
} ,
2026-05-15 16:13:51 +08:00
"/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"
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"/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"
}
}
2026-04-29 16:26:24 +08:00
} ,
2026-05-04 20:30:04 +08:00
"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"
}
}
2026-04-29 16:26:24 +08:00
}
2026-05-04 20:30:04 +08:00
} ,
"/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"
}
}
2026-04-29 16:26:24 +08:00
}
2026-05-04 20:30:04 +08:00
} ,
"/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"
}
}
2026-04-29 16:26:24 +08:00
}
2026-05-04 20:30:04 +08:00
} ,
"/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"
}
}
2026-04-29 16:26:24 +08:00
} ,
2026-05-04 20:30:04 +08:00
"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}/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}/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/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"
}
}
}
} ,
2026-05-08 11:32:47 +08:00
"/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"
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"/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"
}
}
2026-04-29 16:26:24 +08:00
} ,
2026-05-04 20:30:04 +08:00
"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"
}
}
2026-04-29 16:26:24 +08:00
}
2026-05-04 20:30:04 +08:00
} ,
2026-05-08 11:32:47 +08:00
"/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"
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"/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"
}
}
}
} ,
2026-05-15 16:13:51 +08:00
"/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"
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"/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"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/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"
}
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"/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"
}
2026-04-23 13:12:40 +08:00
}
2026-05-04 20:30:04 +08:00
}
} ,
"/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"
}
2026-04-23 13:12:40 +08:00
}
2026-05-04 20:30:04 +08:00
}
} ,
"/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"
}
2026-04-16 08:39:53 +08:00
}
2026-05-04 20:30:04 +08:00
}
} ,
"/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"
2026-04-16 08:39:53 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"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"
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"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"
}
2026-04-16 08:39:53 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
"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"
}
2026-04-23 13:12:40 +08:00
}
2026-05-04 20:30:04 +08:00
}
} ,
"/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"
2026-04-23 13:12:40 +08:00
}
}
} ,
2026-05-04 20:30:04 +08:00
"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"
}
2026-04-23 13:12:40 +08:00
}
2026-05-04 20:30:04 +08:00
}
} ,
"/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"
}
2026-04-23 13:12:40 +08:00
}
2026-05-04 20:30:04 +08:00
}
} ,
"/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"
2026-04-23 13:12:40 +08:00
}
} ,
2026-05-04 20:30:04 +08:00
{
"name" : "token" ,
"in" : "query" ,
"required" : true ,
"description" : "Authentication token" ,
"schema" : {
"type" : "string"
2026-04-16 08:39:53 +08:00
}
}
2026-05-04 20:30:04 +08:00
] ,
"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"
}
2026-04-16 08:39:53 +08:00
}
}
}
}
2026-05-04 20:30:04 +08:00
} ,
"401" : {
"$ref" : "#/components/responses/Unauthorized"
} ,
"404" : {
"description" : "Run not found"
2026-04-16 08:39:53 +08:00
}
}
2026-05-04 20:30:04 +08:00
}
}
} ,
"components" : {
"securitySchemes" : {
"BearerAuth" : {
"type" : "http" ,
"scheme" : "bearer" ,
"bearerFormat" : "API Token"
}
} ,
"schemas" : { } ,
"responses" : {
"Unauthorized" : {
"description" : "Unauthorized - Invalid or missing authentication token" ,
"content" : {
"application/json" : {
"schema" : {
2026-04-16 08:39:53 +08:00
"type" : "object" ,
"properties" : {
2026-05-04 20:30:04 +08:00
"error" : {
"type" : "string" ,
"example" : "Unauthorized"
2026-04-16 08:39:53 +08:00
}
}
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"BadRequest" : {
"description" : "Bad Request - Invalid parameters" ,
"content" : {
"application/json" : {
"schema" : {
2026-04-16 08:39:53 +08:00
"type" : "object" ,
"properties" : {
2026-05-04 20:30:04 +08:00
"error" : {
"type" : "string" ,
"example" : "Invalid request"
}
2026-04-16 08:39:53 +08:00
}
}
}
}
} ,
2026-05-04 20:30:04 +08:00
"NotFound" : {
"description" : "Resource not found" ,
"content" : {
"application/json" : {
"schema" : {
2026-04-16 08:39:53 +08:00
"type" : "object" ,
"properties" : {
2026-05-04 20:30:04 +08:00
"error" : {
"type" : "string" ,
"example" : "Not found"
}
2026-04-16 08:39:53 +08:00
}
}
}
}
}
}
}
2026-05-04 20:30:04 +08:00
}