feat(booterm): structured pty_exited WS notifications. Plan-validated, impl-validated, code-reviewed green (contracts build clean, contracts test 29/29, booterm + web typecheck clean). wip: in-progress inference/provider refactor (agents.ts, provider.ts, new llama-providers.ts, removed llama-args-validator), plus arena, dispatcher, compaction, schema changes. openspec: pty-exit-notifications complete; x-agent-flags planned (not yet implemented).
185 lines
10 KiB
Markdown
185 lines
10 KiB
Markdown
# Routes
|
|
|
|
## CRUD Resources
|
|
|
|
- **`/api/battles`** GET | POST | GET/:id → Battle
|
|
- **`/api/plans`** GET | POST | GET/:id | PATCH/:id → Plan
|
|
- **`/api/runs`** GET | POST | GET/:id → Run
|
|
- **`/api/tasks`** GET | POST | GET/:id → Task
|
|
- **`/api/policies`** GET | POST | GET/:id | DELETE/:id → Policie
|
|
- **`/api/chats/:id/messages`** GET | POST | GET/:id | DELETE/:id → Message
|
|
- **`/api/projects`** GET | POST | GET/:id | PATCH/:id | DELETE/:id → Project
|
|
- **`/api/sessions`** GET/:id | PATCH/:id | DELETE/:id → Session
|
|
|
|
## Other Routes
|
|
|
|
- `GET` `/api/term/health` params()
|
|
- `GET` `/api/term/sessions/:sid/panes/:pid/search` params(sid, pid) [auth]
|
|
- `GET` `/api/term/sessions` params() [auth]
|
|
- `POST` `/api/term/sessions/:sid/panes/:pid/start` params(sid, pid) [auth]
|
|
- `POST` `/api/term/sessions/:sid/panes/:pid/kill` params(sid, pid) [auth]
|
|
- `GET` `/ws/term/sessions/:sid/panes/:pid` params(sid, pid) [auth]
|
|
- `GET` `/api/health` params() [auth, db, queue, ai]
|
|
- `GET` `/api/sessions/:sessionId/agent-sessions` params(sessionId) [auth, db]
|
|
- `GET` `/api/analytics/summary` params() [auth, db]
|
|
- `GET` `/api/analytics/sessions` params() [auth, db]
|
|
- `GET` `/api/analytics/token-breakdown` params() [auth, db]
|
|
- `POST` `/api/battles/generate-prompt` params() [auth, db]
|
|
- `POST` `/api/battles/:id/stop` params(id) [auth, db]
|
|
- `GET` `/api/battles/:id/analysis` params(id) [auth, db]
|
|
- `POST` `/api/battles/:id/analyze` params(id) [auth, db]
|
|
- `PATCH` `/api/battles/:id/winner` params(id) [auth, db]
|
|
- `GET` `/api/battles/:id/contestants/:cid/diff` params(id, cid) [auth, db]
|
|
- `POST` `/api/battles/:id/cross-examine` params(id) [auth, db]
|
|
- `GET` `/api/sessions/:sessionId/checkpoints` params(sessionId) [auth, db]
|
|
- `POST` `/api/sessions/:sessionId/checkpoints/:checkpointId/restore` params(sessionId, checkpointId) [auth, db]
|
|
- `GET` `/api/inbox` params() [auth, db]
|
|
- `POST` `/api/inbox/:id/retry` params(id) [auth, db]
|
|
- `POST` `/api/chats/:chatId/close` params(chatId) [auth, db]
|
|
- `POST` `/api/sessions/:sessionId/close` params(sessionId) [auth, db]
|
|
- `GET` `/api/sessions/:sessionId/messages` params(sessionId) [auth, db, queue]
|
|
- `POST` `/api/sessions/:sessionId/messages` params(sessionId) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/answer_user_input` params(id) [auth, db, queue]
|
|
- `POST` `/api/sessions/:sessionId/stop` params(sessionId) [auth, db, queue]
|
|
- `GET` `/api/sessions/:sessionId/pending` params(sessionId) [auth, db, queue]
|
|
- `POST` `/api/sessions/:sessionId/pending/create` params(sessionId) [auth, db, queue]
|
|
- `POST` `/api/sessions/:sessionId/pending/apply` params(sessionId) [auth, db, queue]
|
|
- `POST` `/api/pending/:id/apply` params(id) [auth, db, queue]
|
|
- `POST` `/api/pending/:id/reject` params(id) [auth, db, queue]
|
|
- `POST` `/api/pending/:id/rewind` params(id) [auth, db, queue]
|
|
- `GET` `/api/plans/active` params() [db]
|
|
- `GET` `/api/providers/snapshot` params() [db, cache]
|
|
- `GET` `/api/providers/config` params() [db, cache]
|
|
- `PATCH` `/api/providers/config` params() [db, cache]
|
|
- `POST` `/api/providers/refresh` params() [db, cache]
|
|
- `GET` `/api/providers/:id/diagnostic` params(id) [db, cache]
|
|
- `POST` `/api/runs/:id/cancel` params(id) [auth, db]
|
|
- `POST` `/api/sessions/:sessionId/skill_invoke` params(sessionId) [auth, db, queue]
|
|
- `GET` `/api/stats/costs` params() [auth, db]
|
|
- `POST` `/api/tasks/:id/cancel` params(id) [auth, db, cache, ai]
|
|
- `GET` `/api/tasks/:id/permission` params(id) [auth, db, cache, ai]
|
|
- `POST` `/api/tasks/:id/permission` params(id) [auth, db, cache, ai]
|
|
- `GET` `/api/tasks/:id/commands` params(id) [auth, db, cache, ai]
|
|
- `GET` `/api/sessions/:sessionId/worktree-risk` params(sessionId) [auth, db]
|
|
- `POST` `/api/sessions/:sessionId/worktree-stash` params(sessionId) [auth, db]
|
|
- `GET` `/api/ws/sessions/:sessionId` params(sessionId) [auth, db]
|
|
- `GET` `/api/ws/user` params() [auth, db]
|
|
- `POST` `/v1/chat/completions` params() [auth, ai]
|
|
- `GET` `/v1/models` params() [auth, ai]
|
|
- `POST` `/api/action/submit` params() [queue]
|
|
- `GET` `/api/action/queue/:providerId` params(providerId) [queue]
|
|
- `POST` `/api/bench/suite` params() [auth, db, cache, queue]
|
|
- `GET` `/api/bench/suites` params() [auth, db, cache, queue]
|
|
- `GET` `/api/bench/suites/:id` params(id) [auth, db, cache, queue]
|
|
- `POST` `/api/bench/run` params() [auth, db, cache, queue]
|
|
- `GET` `/api/bench/runs` params() [auth, db, cache, queue]
|
|
- `GET` `/api/bench/runs/:id` params(id) [auth, db, cache, queue]
|
|
- `GET` `/api/bench/baselines` params() [auth, db, cache, queue]
|
|
- `GET` `/api/capture/:providerId/:swapEntryId` params(providerId, swapEntryId) [db]
|
|
- `POST` `/api/eval/suite` params() [db, queue]
|
|
- `GET` `/api/eval/suites` params() [db, queue]
|
|
- `GET` `/api/eval/suites/:id` params(id) [db, queue]
|
|
- `POST` `/api/eval/seed` params() [db, queue]
|
|
- `POST` `/api/eval/run` params() [db, queue]
|
|
- `GET` `/api/eval/runs` params() [db, queue]
|
|
- `GET` `/api/eval/runs/:id` params(id) [db, queue]
|
|
- `GET` `/api/eval/leaderboard` params() [db, queue]
|
|
- `GET` `/upstream/:model/props` params(model) [db, cache, ai]
|
|
- `GET` `/api/playground/models` params() [auth, cache]
|
|
- `POST` `/api/playground/chat` params() [auth, cache]
|
|
- `POST` `/api/playground/chat-ab` params() [auth, cache]
|
|
- `GET` `/api/policies/virtual-models` params() [auth, db]
|
|
- `GET` `/api/policies/dispatch-log` params() [auth, db]
|
|
- `GET` `/api/reports` params() [db]
|
|
- `GET` `/api/reports/:id` params(id) [db]
|
|
- `POST` `/api/reports/generate` params() [db]
|
|
- `GET` `/api/reports/schedule` params() [db]
|
|
- `POST` `/api/reports/schedule` params() [db]
|
|
- `GET` `/api/routing/scores` params() [db]
|
|
- `GET` `/api/hosts` params() [db]
|
|
- `PATCH` `/api/hosts/:id` params(id) [db]
|
|
- `GET` `/api/hosts/:id/config` params(id) [db]
|
|
- `POST` `/api/hosts/:id/config/validate` params(id) [db]
|
|
- `POST` `/api/hosts/:id/config/diff` params(id) [db]
|
|
- `POST` `/api/hosts/:id/config/apply` params(id) [db]
|
|
- `GET` `/api/ws/control` params()
|
|
- `GET` `/api/projects/:id/agents` params(id) [db, cache]
|
|
- `GET` `/api/analytics/context` params() [auth, db]
|
|
- `POST` `/api/chats/:id/messages/:msg_id/artifacts/download` params(id, msg_id) [auth, db]
|
|
- `GET` `/api/chats/:id/messages/:msg_id/html_artifact` params(id, msg_id) [auth, db]
|
|
- `GET` `/api/projects/:project_id/artifacts/:filename` params(project_id, filename) [auth, db]
|
|
- `GET` `/api/sessions/:id/chats` params(id) [auth, db, queue]
|
|
- `POST` `/api/sessions/:id/chats` params(id) [auth, db, queue]
|
|
- `PATCH` `/api/chats/:id` params(id) [auth, db, queue]
|
|
- `POST` `/api/sessions/:id/chats/archive-all` params(id) [auth, db, queue]
|
|
- `GET` `/api/sessions/:id/chats/open-count` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/archive` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/unarchive` params(id) [auth, db, queue]
|
|
- `DELETE` `/api/chats/:id` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/fork` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/discard_stale` params(id) [auth, db, queue]
|
|
- `GET` `/api/chats/:id/export` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/compare` params(id) [auth, db, queue]
|
|
- `GET` `/api/coder/ws/sessions/:sessionId` params(sessionId) [auth]
|
|
- `ALL` `/api/coder/*` params() [auth]
|
|
- `GET` `/api/control/ws` params() [auth, ai]
|
|
- `ALL` `/api/control/*` params() [auth, ai]
|
|
- `GET` `/api/settings/inference` params() [cache]
|
|
- `PATCH` `/api/settings/inference` params() [cache]
|
|
- `GET` `/api/memory` params() [db]
|
|
- `GET` `/api/memory/daily` params() [db]
|
|
- `GET` `/api/memory/dreams` params() [db]
|
|
- `GET` `/api/sessions/:id/messages` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/messages/:message_id/regenerate` params(id, message_id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/compact` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/stop` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/continue` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/force_send` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/grant_read_access` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/mcp-approve` params(id) [auth, db, queue]
|
|
- `POST` `/api/chats/:id/messages/:message_id/feedback` params(id, message_id) [auth, db, queue]
|
|
- `GET` `/api/models` params() [auth]
|
|
- `POST` `/api/projects/create` params() [auth, db]
|
|
- `POST` `/api/projects/:id/archive` params(id) [auth, db]
|
|
- `POST` `/api/projects/:id/unarchive` params(id) [auth, db]
|
|
- `GET` `/api/projects/available` params() [auth, db]
|
|
- `GET` `/api/projects/:id/list_dir` params(id) [auth, db]
|
|
- `GET` `/api/projects/:id/view_file` params(id) [auth, db]
|
|
- `GET` `/api/projects/:id/git` params(id) [auth, db]
|
|
- `GET` `/api/projects/:id/git/diff` params(id) [auth, db]
|
|
- `POST` `/api/projects/:id/git/stage` params(id) [auth, db]
|
|
- `POST` `/api/projects/:id/git/unstage` params(id) [auth, db]
|
|
- `POST` `/api/projects/:id/git/commit` params(id) [auth, db]
|
|
- `POST` `/api/projects/:id/git/discard` params(id) [auth, db]
|
|
- `POST` `/api/projects/:id/write_file` params(id) [auth, db]
|
|
- `GET` `/api/projects/:id/files` params(id) [auth, db]
|
|
- `GET` `/api/projects/:id/sessions` params(id) [auth, db]
|
|
- `POST` `/api/projects/:id/sessions` params(id) [auth, db]
|
|
- `PATCH` `/api/sessions/:id/workspace` params(id) [auth, db]
|
|
- `POST` `/api/projects/:id/sessions/archive-all` params(id) [auth, db]
|
|
- `GET` `/api/projects/:id/sessions/open-count` params(id) [auth, db]
|
|
- `POST` `/api/sessions/:id/archive` params(id) [auth, db]
|
|
- `POST` `/api/sessions/:id/unarchive` params(id) [auth, db]
|
|
- `GET` `/api/settings` params() [db]
|
|
- `PATCH` `/api/settings` params() [db]
|
|
- `GET` `/api/sidebar` params() [auth, db]
|
|
- `GET` `/api/skills` params() [auth, db, queue]
|
|
- `POST` `/api/chats/:id/skill_invoke` params(id) [auth, db, queue]
|
|
- `GET` `/api/tools/cost_stats` params() [auth, db]
|
|
- `GET` `/api/chats/:id/traces` params(id) [db]
|
|
- `GET` `/api/ws/sessions/:id` params(id) [auth, db]
|
|
|
|
## WebSocket Events
|
|
|
|
- `WS` `message` — `apps/booterm/src/ws/attach.ts`
|
|
- `WS` `close` — `apps/booterm/src/ws/attach.ts`
|
|
- `WS` `message` — `apps/coder/src/cli.ts`
|
|
- `WS` `error` — `apps/coder/src/cli.ts`
|
|
- `WS` `close` — `apps/coder/src/cli.ts`
|
|
- `WS` `close` — `apps/coder/src/routes/ws.ts`
|
|
- `WS` `error` — `apps/coder/src/routes/ws.ts`
|
|
- `WS` `close` — `apps/control/src/routes/ws.ts`
|
|
- `WS` `error` — `apps/control/src/routes/ws.ts`
|
|
- `WS` `close` — `apps/server/src/routes/ws.ts`
|
|
- `WS` `error` — `apps/server/src/routes/ws.ts`
|