{"openapi":"3.0.3","info":{"title":"SVVI Console Agent API","version":"0.2.0","description":"Generic agent control plane (Cursor, Codex, Claude, or any HTTP+Bearer client). Proxies SVVI FastAPI /v1. Mutating routes require a scoped agent API key. MCP: POST /mcp."},"servers":[{"url":"https://console.srv1825737.hstgr.cloud"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"CONSOLE_AGENT_API_KEYS entry or human token"}}},"paths":{"/api/health":{"get":{"summary":"Console health","security":[],"responses":{"200":{"description":"ok"}}}},"/.well-known/agent-tools.json":{"get":{"summary":"Machine-readable tool catalog for any agent","security":[],"responses":{"200":{"description":"ok"}}}},"/mcp":{"post":{"summary":"Console-owned Streamable HTTP MCP (JSON-RPC)","operationId":"console_mcp","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"JSON-RPC result"},"401":{"description":"missing/invalid key on tools/call"}}}},"/api/me":{"get":{"operationId":"console_me","summary":"Validate bearer (human or agent) without calling upstream SVVI.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}},"/api/health+/api/me+/api/agent/status":{"get":{"operationId":"console_pulse","summary":"One-shot health pulse: console_health + console_me + svvi_agent_status (agent status may be degraded if upstream times out). Prefer this for /svvi-console:health.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}},"/api/agent/status":{"get":{"operationId":"svvi_agent_status","summary":"Upstream agent-worker heartbeat + optional VPS Claude session + active run.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}},"/api/agent/runs":{"get":{"operationId":"list_agent_runs","summary":"List v5 agent-runs (query: kind, status, limit, offset).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}},"post":{"operationId":"enqueue_agent_run","summary":"Enqueue organize | prompt1 | prompt2 | notion_publish. Body: {kind, days?} (default days=15). Requires agent API key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["organize","prompt1","prompt2","notion_publish"]},"days":{"type":"integer","minimum":1,"maximum":365,"default":15}}}}}},"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}},"/api/corpus/stats":{"get":{"operationId":"corpus_stats","summary":"Corpus file counts / pulse from SVVI /v1.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}},"/api/corpus/dashboard":{"get":{"operationId":"corpus_dashboard","summary":"Dashboard payload (platforms, recent docs).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}},"/api/results":{"get":{"operationId":"list_results","summary":"Findings / Prompt result metadata entry points.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}},"/api/jobs":{"get":{"operationId":"list_jobs","summary":"Legacy schedule jobs status (not drained by agent-worker).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}},"/api/schedules":{"get":{"operationId":"list_schedules","summary":"Fetch/prompt schedules.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"upstream JSON"},"202":{"description":"accepted (enqueue)"},"401":{"description":"missing/invalid key"}}}}}}