chore: snapshot working tree - pty_exited notifications + in-flight inference WIP

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).
This commit is contained in:
2026-06-14 12:48:47 +00:00
parent 0ed506f1da
commit b18de2a331
204 changed files with 25344 additions and 867 deletions

View File

@@ -1,11 +1,11 @@
# boocode — AI Context Map
> **Stack:** fastify, go-net-http | none | react | typescript
> **Microservices:** @boocode/contracts, @boocode/ion, @boocode/booterm, @boocode/coder, @boocode/server, @boocode/web, codecontext, @boocode/conductor
> **Stack:** fastify | none | react | typescript
> **Microservices:** @boocode/contracts, @boocode/ion, @boocode/booterm, @boocode/coder, @boocode/control, @boocode/server, @boocode/web, @boocode/conductor
> 147 routes (9 inferred) + 9 ws | 23 models | 92 components | 288 lib files | 42 env vars | 16 middleware
> 182 routes (11 inferred) + 11 ws | 40 models | 107 components | 316 lib files | 57 env vars | 16 middleware
> **Token savings:** this file is ~0 tokens. Without it, AI exploration would cost ~0 tokens. **Saves ~0 tokens per conversation.**
> **Last scanned:** 2026-06-08 04:10 — re-run after significant changes
> **Last scanned:** 2026-06-13 12:48 — re-run after significant changes
---
@@ -17,14 +17,13 @@
- **`/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
### fastify
- `GET` `/api/term/health` params()
- `GET` `/api/term/sessions/:sid/panes/:pid/search` params(sid, pid) [auth]
- `GET` `/api/term/sessions` params() [auth]
@@ -76,6 +75,45 @@
- `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]
@@ -95,8 +133,13 @@
- `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]
@@ -137,21 +180,6 @@
- `GET` `/api/chats/:id/traces` params(id) [db]
- `GET` `/api/ws/sessions/:id` params(id) [auth, db]
### go-net-http
- `GET` `/health` params() [queue]
- `POST` `/v1/get_codebase_overview` params() [queue]
- `POST` `/v1/get_file_analysis` params() [queue]
- `POST` `/v1/get_symbol_info` params() [queue]
- `POST` `/v1/search_symbols` params() [queue]
- `POST` `/v1/get_dependencies` params() [queue]
- `POST` `/v1/watch_changes` params() [queue]
- `POST` `/v1/get_semantic_neighborhoods` params() [queue]
- `POST` `/v1/get_framework_analysis` params() [queue]
- `POST` `/v1/get_symbol_details` params() [queue]
- `POST` `/v1/get_call_graph` params() [queue]
- `POST` `/v1/get_blast_radius` params() [queue]
## WebSocket Events
- `WS` `message``apps/booterm/src/ws/attach.ts`
@@ -161,6 +189,8 @@
- `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`
@@ -305,6 +335,173 @@
- items_completed: integer (required)
- metadata: jsonb
### control_hosts
- provider_id: text (pk, fk)
- ssh_host: text
- ssh_user: text
- ssh_key_path: text
- config_path: text
- restart_cmd: text
- os: text
- gpu_label: text
- enabled: boolean (required)
### control_requests
- id: bigint(auto) (pk)
- provider_id: text (required, fk)
- swap_entry_id: integer (required, fk)
- ts: timestamp(tz) (required)
- model: text
- req_path: text
- status_code: integer
- duration_ms: integer
- cache_tokens: integer
- input_tokens: integer
- output_tokens: integer
- prompt_tps: real
- gen_tps: real
- has_capture: boolean (required)
- capture: jsonb
### control_perf_samples
- provider_id: text (required, fk)
- ts: timestamp(tz) (required)
- gpu: jsonb
- sys: jsonb
### control_perf_rollup_5m
- provider_id: text (required, fk)
- bucket: timestamp(tz) (required)
- gpu_agg: jsonb
- sys_agg: jsonb
### control_model_events
- provider_id: text (required, fk)
- model: text (required)
- state: text (required)
- ts: timestamp(tz) (required)
- detail: jsonb
### bench_suites
- id: text (pk)
- name: text (required)
- provider_id: text (required, fk)
- model: text (required)
- repetitions: integer (required)
- metadata: jsonb
### bench_runs
- id: text (pk)
- suite_id: text (required, fk)
- job_type: text (required)
- status: text (required)
- started_at: timestamp(tz)
- finished_at: timestamp(tz)
- total_samples: integer (required)
- completed_samples: integer (required)
- concurrent_foreign_requests: integer (required)
- temperature: real
- top_p: real
- aggregate: jsonb
- regression_flag: text
- error: text
### bench_samples
- id: bigint(auto) (pk)
- run_id: text (required, fk)
- prompt_tokens: integer (required)
- gen_tokens: integer (required)
- concurrency: integer (required)
- repetition: integer (required)
- ttft_ms: real
- total_ms: real
- prompt_tps: real
- gen_tps: real
- cache_n: integer
- error: text
### bench_baselines
- provider_id: text (required, fk)
- model: text (required)
- aggregate: jsonb (required)
- run_id: text (required, fk)
### eval_suites
- id: text (pk)
- name: text (required)
- kind: text (required)
- version: integer (required)
- tasks: jsonb (required)
- judge_model: text
- judge_model_version: text
- metadata: jsonb
### eval_runs
- id: text (pk)
- suite_id: text (required, fk)
- job_type: text (required)
- provider_id: text (required, fk)
- model: text (required)
- quant: text
- status: text (required)
- judge_model: text
- judge_model_version: text
- started_at: timestamp(tz)
- finished_at: timestamp(tz)
- total_tasks: integer (required)
- completed_tasks: integer (required)
- aggregate: jsonb
- error: text
### eval_results
- id: bigint(auto) (pk)
- run_id: text (required, fk)
- task_id: text (required, fk)
- task_index: integer (required)
- score: real
- max_score: real
- rationale: text
- sandbox_exit_code: integer
- sandbox_stderr: text
- sandbox_stdout: text
- execution_ms: integer
- error: text
### control_reports
- id: text (pk)
- kind: text (required)
- interval: text (required)
- period_start: timestamp(tz) (required)
- period_end: timestamp(tz) (required)
- markdown: text (required)
- stats: jsonb
### control_schedule_meta
- name: text (pk)
- interval: text (required)
- enabled: boolean (required)
- last_run_at: timestamp(tz)
### route_policies
- id: text (pk)
- name: text (required)
- virtual_model: text (required)
- candidates: jsonb (required)
- fallback: text
- enabled: boolean (required)
### route_dispatch_log
- id: bigint(auto) (pk)
- ts: timestamp(tz) (required)
- virtual_model: text (required)
- chosen_provider_id: text (fk)
- chosen_model: text
- candidates_tried: jsonb
- status: text (required)
- source: text
- error: text
- duration_ms: integer
### projects
- id: uuid (pk)
- name: text (required)
@@ -384,6 +581,15 @@
- messages: jsonb (required)
- tool_states: jsonb (required)
### memory_entries
- id: uuid (pk)
- project_id: uuid (required, fk)
- topic: text (required)
- title: text (required)
- content: text (required)
- date: date
- mood: text
---
# Components
@@ -448,6 +654,19 @@
- **Workspace** — props: sessionId, projectId, agentId, onAgentChange, panesHook, chatsHook, session, project, onAddPane — `apps/web/src/components/Workspace.tsx`
- **AddProviderModal** — props: open, onOpenChange, onAdded — `apps/web/src/components/coder/AddProviderModal.tsx`
- **ProvidersSettings** — `apps/web/src/components/coder/ProvidersSettings.tsx`
- **ActivityTab** — props: requests, providerIds, onOpenCapture — `apps/web/src/components/control/ActivityTab.tsx`
- **BenchTab** — props: providerIds — `apps/web/src/components/control/BenchTab.tsx`
- **CaptureDrawer** — props: requestId, providerId, onClose — `apps/web/src/components/control/CaptureDrawer.tsx`
- **EvalsTab** — props: providerIds — `apps/web/src/components/control/EvalsTab.tsx`
- **FleetTab** — props: hosts, gpuMap — `apps/web/src/components/control/FleetTab.tsx`
- **HostCard** — props: host, gpuData — `apps/web/src/components/control/HostCard.tsx`
- **HostConfigEditor** — props: providerId, onClose — `apps/web/src/components/control/HostConfigEditor.tsx`
- **LogsTab** — props: logs, providerIds — `apps/web/src/components/control/LogsTab.tsx`
- **PerfChart** — props: series, timestamps, height — `apps/web/src/components/control/PerfChart.tsx`
- **PlaygroundTab** — props: providerIds — `apps/web/src/components/control/PlaygroundTab.tsx`
- **ReportsTab** — `apps/web/src/components/control/ReportsTab.tsx`
- **TtlRing** — props: deadline, size — `apps/web/src/components/control/TtlRing.tsx`
- **VramGauge** — props: used, total, size — `apps/web/src/components/control/VramGauge.tsx`
- **MatrixRain** — props: enabled, density, speed, opacity — `apps/web/src/components/fx/MatrixRain.tsx`
- **NeonField** — props: enabled, opacity, speed — `apps/web/src/components/fx/NeonField.tsx`
- **ThemeFx** — `apps/web/src/components/fx/ThemeFx.tsx`
@@ -470,10 +689,12 @@
- **FloatingMenu** — props: x, y, hasSelection, chatInputs, onCopy, onPaste, onSelectAll, onSearch, onSendToChat, onDismiss — `apps/web/src/components/panes/terminal/FloatingMenu.tsx`
- **SearchBar** — props: searchRef, theme, onClose — `apps/web/src/components/panes/terminal/SearchBar.tsx`
- **TerminalHotkeyBar** — props: ctrlArmed, onSendBytes, onArmCtrl, onFit — `apps/web/src/components/panes/terminal/TerminalHotkeyBar.tsx`
- **ControlProvider** — `apps/web/src/hooks/useControlStream.tsx`
- **RightRailDrawerProvider** — `apps/web/src/hooks/useRightRailDrawer.tsx`
- **SidebarDrawerProvider** — `apps/web/src/hooks/useSidebarDrawer.tsx`
- **PATH_REGEX** — `apps/web/src/lib/linkify-paths.tsx`
- **Analytics** — `apps/web/src/pages/Analytics.tsx`
- **Control** — `apps/web/src/pages/Control.tsx`
- **Home** — `apps/web/src/pages/Home.tsx`
- **Memory** — `apps/web/src/pages/Memory.tsx`
- **Project** — `apps/web/src/pages/Project.tsx`
@@ -600,8 +821,8 @@
- function sanitizeSlug: (s) => string
- function buildBattleSlug: (battleId, battleType, createdAt) => string
- _...7 more_
- `apps/coder/src/services/arena-model-call.ts` — function arenaModelCall: (opts, 'LLAMA_SWAP_URL'>;
model) => Promise<string>
- `apps/coder/src/services/arena-local-models.ts` — function createLocalModelSet: (log) => LocalModelSetHandle, interface LocalModelSetHandle
- `apps/coder/src/services/arena-model-call.ts` — function resolveModelEndpoint: (model) => void, function arenaModelCall: (opts) => Promise<string>
- `apps/coder/src/services/arena-runner.ts`
- function createBattleRunner: (deps) => BattleRunner
- interface ContestantSpec
@@ -779,6 +1000,11 @@
- interface LineRef
- `apps/coder/src/services/hashline/xxhash32.ts` — function hashXxh32: (input, seed) => number
- `apps/coder/src/services/host-exec.ts` — function hostExec: (command, opts?) => Promise<HostExecResult>, interface HostExecResult
- `apps/coder/src/services/llama-providers.ts`
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
- function getLlamaProviders: () => LlamaProvidersFile
- function parseModelRef: (ref) => ParsedModelRef
- `apps/coder/src/services/local-gateway.ts` — function resolveGatewayModel: (model) => void, function registerLocalGatewayRoutes: (app) => void
- `apps/coder/src/services/lsp/client.ts` — class LspClient
- `apps/coder/src/services/lsp/config.ts` — function getServerConfig: (filePath) => LspServerConfig | null, interface LspServerConfig
- `apps/coder/src/services/lsp/operations.ts`
@@ -831,6 +1057,11 @@
- function reclaimPort: (port) => void
- function waitForPortRelease: (port, timeoutMs) => Promise<boolean>
- function freePort: () => Promise<number>
- `apps/coder/src/services/opencode-config-sync.ts`
- function buildBoocodeLocalProviderConfig: (gatewayUrl) => Promise<OpencodeProviderConfig>
- function syncOpencodeConfig: (gatewayUrl, log, msg) => void
- interface OpencodeProviderConfig
- interface OpencodeConfig
- `apps/coder/src/services/orphan-worktree-reaper.ts`
- function reapOrphanWorktrees: (sql, log, graceMs, now) => void
- function createOrphanWorktreeReaper: (deps) => void
@@ -859,6 +1090,11 @@
- function waitForElicitationResponse: (taskId, sessionId, provider, modeId, params, timeoutMs) => Promise<CreateElicitationResponse>
- function cancelPendingPermission: (taskId) => void
- _...3 more_
- `apps/coder/src/services/pi-config-sync.ts`
- function buildPiProviderEntry: (gatewayUrl, existing?) => Promise<PiProviderConfig>
- function syncPiConfig: (gatewayUrl, log, msg) => void
- interface PiProviderConfig
- interface PiModelsConfig
- `apps/coder/src/services/plan-store.ts`
- function createPlan: (sql, opts) => Promise<Plan>
- function getPlan: (sql, planId) => Promise<Plan | null>
@@ -891,11 +1127,11 @@
- `apps/coder/src/services/provider-snapshot.ts`
- function fetchDeepSeekModels: (config) => Promise<ProviderModel[]>
- function fetchLlamaSwapModels: (config) => Promise<ProviderModel[]>
- function fetchRegistryModels: (defaultModel?) => Promise<ProviderModel[]>
- function prefixLlamaSwapModels: (models) => ProviderModel[]
- function prefixBoocodeLocalModels: (models) => ProviderModel[]
- function mergeModels: (...lists) => ProviderModel[]
- function getProviderSnapshot: (sql, config, cwd?, force) => Promise<ProviderSnapshotEntry[]>
- function clearProviderSnapshotCache: () => void
- _...2 more_
- _...4 more_
- `apps/coder/src/services/pty-dispatch.ts`
- function dispatchViaPty: (opts) => Promise<DispatchResult>
- interface DispatchResult
@@ -939,6 +1175,125 @@
- function isSecretPath: (filePath) => boolean
- function resolveWritePath: (projectRoot, filePath) => string
- class WriteGuardError
- `apps/control/src/config.ts` — function loadConfig: () => Config, type Config
- `apps/control/src/db.ts`
- function getSql: (config) => Sql
- function waitForTable: (sql, tableName, timeoutMs) => Promise<void>
- function applySchema: (sql) => Promise<void>
- function pingDb: (sql) => Promise<boolean>
- function closeDb: () => Promise<void>
- type Sql
- `apps/control/src/index.ts`
- function createDeltaEmitter: () => DeltaEmitter
- function handleLlamaSweepEvent: (fleet, sql, config, providerId, emitter, event, logRelay) => Promise<void>
- type DeltaCallback
- type DeltaEmitter
- `apps/control/src/services/action-queue.ts`
- class ActionQueue
- interface QueuedAction
- interface ActionQueueEntry
- interface ActionQueueState
- interface ActionQueueDeps
- type ActionType
- `apps/control/src/services/bench-engine.ts`
- function parseLlamaTimings: (chunk) => BenchTimings | null
- function runSingleBenchRequest: (baseUrl, model, promptTokens, genTokens, repetition, temperature, topP) => Promise<BenchSample>
- function runBenchSuite: (params, sql, emitter, seq, onProgress) => void
- function computeRegressionFlag: (current, baselineJson) => 'baseline' | 'regression' | 'improvement' | null
- function computeAggregates: (samples) => BenchAggregate
- interface BenchSuite
- _...5 more_
- `apps/control/src/services/capture-fetch.ts`
- function fetchCapture: (baseUrl, providerId, swapEntryId) => Promise<CaptureFetchResult>
- function parseCapture: (raw, unknown>, providerId, swapEntryId) => CaptureData
- function persistCapture: (sql, capture) => Promise<void>
- interface CaptureData
- interface CaptureFetchResult
- `apps/control/src/services/eval-suites.ts`
- function loadEvalSuitesFromData: () => EvalSuiteData[]
- function seedEvalSuites: (sql) => Promise<void>
- function listEvalSuites: (sql) => Promise<EvalSuiteRow[]>
- function getEvalSuite: (sql, id) => Promise<EvalSuiteRow | null>
- function upsertEvalSuite: (sql, id, name, kind, tasks, judgeModel, metadata?, unknown>) => Promise<string>
- function createEvalRun: (sql, suiteId, providerId, model, quant, judgeModel, judgeModelVersion, totalTasks) => Promise<string>
- _...9 more_
- `apps/control/src/services/fleet-connector.ts`
- function addJitter: (delayMs) => number
- function reconnectDecision: (failures, policy) => ReconnectDecision
- function parseSseLine: (line) => LlamaSweepSSEEvent | null
- function startFleetConnector: (providerId, baseUrl, deps) => AbortController
- function runFleetConnector: (providerId, baseUrl, abort, deps) => Promise<void>
- interface ReconnectPolicy
- _...8 more_
- `apps/control/src/services/fleet-state.ts`
- function createFleetState: () => FleetState
- function ensureHostState: (fleet, providerId) => HostState
- function stampLastSeen: (state) => void
- function incrementSeq: (state) => number
- interface HostConfig
- interface FleetState
- _...3 more_
- `apps/control/src/services/gateway.ts`
- function isGatewayVirtualModel: (id) => boolean
- function parseVirtualModel: (modelId) => string
- function orderCandidates: (virtualModel, policy, scores) => string[]
- function resolveCandidates: (sql, fleet, modelId) => Promise<ResolvedCandidates>
- function splitComposite: (compositeId) => void
- interface RoutePolicyRow
- _...3 more_
- `apps/control/src/services/host-access.ts` — function acquireHostAccess: (providerId, purpose) => Promise<HostGrant>, interface HostGrant
- `apps/control/src/services/jsonb.ts`
- function jsonbStringArray: (value) => string[]
- function jsonbArray: (value) => unknown[]
- function jsonbNumberArray: (value) => number[]
- function jsonbObject: (value) => Record<string, unknown> | null
- `apps/control/src/services/judge-runner.ts`
- function runJudgeEval: (params, sql, emitter, seq, logger) => void
- interface JudgeEvalParams
- interface JudgeProgress
- interface JudgeResult
- `apps/control/src/services/llama-providers.ts`
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
- function getLlamaProviders: () => LlamaProvidersFile
- function resolveProviderBaseUrl: (providerId) => string | null
- `apps/control/src/services/log-relay.ts` — class LogRelay, interface LogLine
- `apps/control/src/services/reconcile.ts` — function detectGap: (oldestReconcileTs, newestPersistedTs) => boolean
- `apps/control/src/services/reports.ts`
- function gatherReportStats: (sql, interval, now) => Promise<ReportStats>
- function renderReportMarkdown: (stats) => string
- function generateReport: (sql, interval, now) => void
- function isReportDue: (lastRunAt, interval, now) => boolean
- function runReportSchedulerTick: (sql, now) => void
- interface ReportStats
- _...1 more_
- `apps/control/src/services/retention.ts`
- function buildRetentionConfig: (cfg) => RetentionConfig
- function runRollup: (sql, providerId, hours) => Promise<void>
- function pruneRawSamples: (sql, providerId, hours) => Promise<void>
- function pruneActivity: (sql, hours) => Promise<void>
- function pruneModelEvents: (sql, hours) => Promise<void>
- function trimCapture: (captureJson, sizeKB) => string | null
- _...2 more_
- `apps/control/src/services/routing-scores.ts`
- function assignBadges: (scores) => void
- function computeRoutingScores: (sql, fleet) => Promise<ModelScore[]>
- interface ModelScore
- type BadgeKind
- const BADGE_LABELS: Record<BadgeKind, string>
- `apps/control/src/services/sandbox-runner.ts`
- function runCodeEval: (params, sql, emitter, seq, onProgress) => void
- interface SandboxEvalParams
- interface SandboxProgress
- interface SandboxResult
- interface SandboxContainer
- `apps/control/src/services/ssh-config.ts`
- function validateLlamaConfig: (yamlText, schema) => ValidationResult
- function computeDiff: (oldText, newText) => string
- function backupFilename: (configPath, now) => string
- function readRemoteConfig: (target, configPath, exec) => Promise<string>
- function applyRemoteConfig: (opts) => Promise<ApplyResult>
- function healthWait: (baseUrl, fetcher, attempts, delayMs) => Promise<boolean>
- _...7 more_
- `apps/server/src/config.ts` — function loadConfig: () => Config, type Config
- `apps/server/src/db.ts`
- function getSql: (config) => Sql
@@ -1086,11 +1441,6 @@
- function finalizeStreamedRow: (ctx, opts) => void
- function finalizeEmpty: (ctx, args) => Promise<void>
- function finalizeCompletion: (ctx, args, result, startedAt, session) => Promise<void>
- `apps/server/src/services/inference/llama-args-validator.ts`
- function validateExtraArgs: (args?) => string[]
- function isManagedFlag: (flag) => boolean
- function stripShadowingFlags: (args, opts?) => string[]
- interface StripOptions
- `apps/server/src/services/inference/loop-detectors.ts`
- function detectContentRepeat: (messages) => LoopDetectionResult
- function detectToolLoop: (toolNames) => LoopDetectionResult
@@ -1121,12 +1471,12 @@
- interface OpenAiMessage
- `apps/server/src/services/inference/provider.ts`
- function isDeepSeekModel: (modelId) => boolean
- function resolveRoute: (agent, config?, modelId?) => RoutingInfo
- function upstreamModel: (config, modelId, agent?) => LanguageModel
- function isGatewayVirtualModel: (wireModelId) => boolean
- function resolveModelProvider: (modelId, config) => ResolvedModel
- function resolveRoute: (agent, config?, modelId?) => void
- function upstreamModel: (config, modelId, agent?, source?) => LanguageModel
- function resolveModelEndpoint: (config, modelId) => void
- function resetDeepSeekProvider: () => void
- interface RoutingInfo
- _...1 more_
- _...4 more_
- `apps/server/src/services/inference/prune.ts`
- function selectPruneTargets: (partsNewestFirst, tailStartCreatedAt) => void
- function prune: (args) => Promise<PruneResult>
@@ -1194,6 +1544,10 @@
- function runInference: (ctx, sessionId, chatId, assistantMessageId, signal?) => Promise<void>
- function runInferenceWithModel: (ctx, sessionId, chatId, assistantMessageId, modelOverride, compareGroupId, signal?) => Promise<void>
- function createInferenceRunner: (ctx, 'publishUser'>, publishUserFn, frame) => void
- `apps/server/src/services/llama-providers.ts`
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
- function getLlamaProviders: () => LlamaProvidersFile
- function parseModelRef: (ref) => ParsedModelRef
- `apps/server/src/services/mcp-client.ts`
- function initialize: (entries, logger) => Promise<void>
- function callTool: (prefixedName, args, unknown>) => Promise<unknown>
@@ -1415,6 +1769,7 @@
- `apps/web/src/hooks/useProjectGit.ts` — function useProjectGit: (projectId) => GitMeta | null
- `apps/web/src/hooks/useProviderSnapshot.ts` — function refreshProviderSnapshot: (cwd?) => Promise<ProviderSnapshotEntry[]>, function useProviderSnapshot: (cwd?) => ProviderSnapshotEntry[] | null
- `apps/web/src/hooks/usePullToRefresh.ts` — function usePullToRefresh: (onRefresh) => void
- `apps/web/src/hooks/useReducedMotion.ts` — function useReducedMotion: () => boolean
- `apps/web/src/hooks/useSessionChats.ts`
- function useSessionChats: (sessionId, opts) => UseSessionChatsResult
- interface UseSessionChatsOpts
@@ -1532,6 +1887,14 @@
- function waitForEvent: (threadManager, threadId, eventType, timeoutMs) => Promise<LaceEvent>
- function waitForEventCount: (threadManager, threadId, eventType, count, timeoutMs) => Promise<LaceEvent[]>
- function waitForEventMatch: (threadManager, threadId, predicate) => void
- `packages/contracts/src/llama-providers.ts`
- function parseModelRef: (ref, defaultProvider) => ParsedModelRef
- function formatModelRef: (providerId, wireModelId) => string
- interface ParsedModelRef
- type LlamaProvider
- type LlamaProvidersFile
- const LlamaProviderSchema
- _...1 more_
- `packages/ion/src/cli/commands/abandon.ts` — function abandonCommand: (args, options) => Promise<void>
- `packages/ion/src/cli/commands/approve.ts` — function approveCommand: (args, options) => Promise<void>
- `packages/ion/src/cli/commands/cleanup.ts` — function cleanupCommand: (args, options) => Promise<void>
@@ -1639,6 +2002,7 @@
- `BOOCODE_TRUNCATION_DIR` **required** — apps/server/src/services/__tests__/truncate.test.ts
- `BOOCODER_DEV_URL` **required** — apps/web/vite.config.ts
- `BOOCODER_URL` **required** — apps/coder/src/cli.ts
- `BOOCONTROL_URL` **required** — apps/server/src/index.ts
- `BOOTERM_DEV_URL` **required** — apps/web/vite.config.ts
- `BOOTERM_SSH_HOST` **required** — apps/booterm/src/pty/manager.ts
- `BOOTERM_SSH_USER` **required** — apps/booterm/src/pty/manager.ts
@@ -1648,38 +2012,53 @@
- `BRAINSTORM_OWNER_PID` **required** — data/skills/superpowers/brainstorming/scripts/server.cjs
- `BRAINSTORM_PORT` **required** — data/skills/superpowers/brainstorming/scripts/server.cjs
- `BRAINSTORM_URL_HOST` **required** — data/skills/superpowers/brainstorming/scripts/server.cjs
- `CODECONTEXT_CHILD` **required** — codecontext/shim.go
- `CAPTURE_BUDGET_MB` (has default) — apps/control/.env.example
- `CAPTURE_SIZE_KB` (has default) — apps/control/.env.example
- `CONDUCTOR_MODEL` **required** — conductor/src/dispatch.ts
- `CONDUCTOR_OPENCODE_BIN` **required** — conductor/src/dispatch.ts
- `CONDUCTOR_TIMEOUT_MS` **required** — conductor/src/dispatch.ts
- `CONTAINER_GUIDANCE_FILE` **required** — apps/server/src/services/__tests__/system-prompt.test.ts
- `CONTEXT7_API_KEY` (has default) — .env
- `DATABASE_URL` (has default) — .env.example
- `DATABASE_URL` (has default) — apps/control/.env.example
- `DEEPSEEK_API_KEY` (has default) — .env
- `DEEPSEEK_BASE_URL` (has default) — .env
- `DEFAULT_MODEL` (has default) — .env.example
- `DEV_REMOTE_USER` **required** — apps/web/vite.config.ts
- `EMBEDDING_MODEL_PATH` **required** — apps/server/src/services/memory/embeddings.ts
- `EVAL_JUDGE_MODEL` **required** — apps/control/src/services/judge-runner.ts
- `GITEA_BASE_URL` (has default) — .env
- `GITEA_SSH_HOST` (has default) — .env
- `GITEA_TOKEN` (has default) — .env
- `GITEA_USER` (has default) — .env
- `LLAMA_SWAP_URL` (has default) — .env.example
- `HOST` (has default) — apps/control/.env.example
- `LLAMA_PROVIDERS_PATH` (has default) — apps/control/.env.example
- `LLAMA_SWAP_URL` (has default) — apps/control/.env.example
- `LOG_LEVEL` (has default) — apps/control/.env.example
- `MCP_TEST_MISSING` **required** — apps/server/src/services/__tests__/mcp-config.test.ts
- `MCP_TEST_SECRET` **required** — apps/server/src/services/__tests__/mcp-config.test.ts
- `MEMORY_SEARCH` **required** — apps/server/src/services/memory/recall.ts
- `NODE_ENV` (has default) — .env.example
- `PORT` (has default) — .env.example
- `NODE_ENV` (has default) — apps/control/.env.example
- `PORT` (has default) — apps/control/.env.example
- `POSTGRES_PASSWORD` (has default) — .env.example
- `PROJECT_ROOT_WHITELIST` (has default) — .env.example
- `RETENTION_RAW_HOURS` (has default) — apps/control/.env.example
- `RETENTION_ROLLUP_DAYS` (has default) — apps/control/.env.example
- `SANDBOX_CONCURRENCY` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_CPU` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_IMAGE` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_MEMORY` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_PIDS` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_TIMEOUT_MS` **required** — apps/control/src/services/sandbox-runner.ts
- `SEARXNG_URL` (has default) — .env.example
- `SKILLS_ROOT` **required** — apps/server/src/services/skills.ts
- `VITEST` **required** — apps/control/src/index.ts
- `WEB_DIST_PATH` **required** — apps/server/src/index.ts
## Config Files
- `.env.example`
- `Dockerfile`
- `apps/control/.env.example`
- `apps/web/vite.config.ts`
- `docker-compose.yml`
@@ -1720,38 +2099,38 @@
## Most Imported Files (change these carefully)
- `apps/coder/src/db.ts` — imported by **44** files
- `apps/server/src/db.ts` — imported by **34** files
- `apps/server/src/types/api.ts` — imported by **34** files
- `apps/server/src/db.ts` — imported by **32** files
- `packages/ion/src/cli/utils.ts` — imported by **24** files
- `apps/control/src/db.ts` — imported by **22** files
- `apps/coder/src/services/tools/types.ts` — imported by **18** files
- `apps/coder/src/conductor/types.ts` — imported by **16** files
- `apps/control/src/services/fleet-state.ts` — imported by **15** files
- `apps/server/src/services/tools.ts` — imported by **15** files
- `apps/coder/src/services/agent-backend.ts` — imported by **14** files
- `apps/coder/src/services/acp-tool-snapshot.ts` — imported by **14** files
- `apps/control/src/index.ts` — imported by **14** files
- `apps/server/src/config.ts` — imported by **14** files
- `apps/coder/src/services/provider-config-registry.ts` — imported by **13** files
- `conductor/src/types.ts` — imported by **13** files
- `apps/coder/src/services/provider-config-registry.ts` — imported by **12** files
- `apps/coder/src/config.ts` — imported by **11** files
- `apps/coder/src/services/provider-types.ts` — imported by **11** files
- `apps/coder/src/services/provider-types.ts` — imported by **12** files
- `apps/coder/src/config.ts` — imported by **10** files
- `apps/coder/src/services/llama-providers.ts` — imported by **10** files
- `apps/server/src/services/broker.ts` — imported by **10** files
- `apps/server/src/services/agents.ts` — imported by **10** files
- `apps/server/src/services/path_guard.ts` — imported by **10** files
- `apps/coder/src/services/pending_changes.ts` — imported by **9** files
- `apps/server/src/services/inference/payload.ts` — imported by **9** files
- `apps/server/src/services/inference/dcp/messages.ts` — imported by **9** files
## Import Map (who imports what)
- `apps/coder/src/db.ts``apps/coder/src/index.ts`, `apps/coder/src/routes/__tests__/agent-sessions.routes.test.ts`, `apps/coder/src/routes/__tests__/chat-resolve.test.ts`, `apps/coder/src/routes/__tests__/providers.routes.test.ts`, `apps/coder/src/routes/agent-sessions.ts` +39 more
- `apps/server/src/db.ts``apps/server/src/index.ts`, `apps/server/src/routes/__tests__/settings-favorites.test.ts`, `apps/server/src/routes/agents.ts`, `apps/server/src/routes/analytics.ts`, `apps/server/src/routes/artifacts.ts` +29 more
- `apps/server/src/types/api.ts``apps/server/src/routes/chats.ts`, `apps/server/src/routes/messages.ts`, `apps/server/src/routes/models.ts`, `apps/server/src/routes/projects.ts`, `apps/server/src/routes/sessions.ts` +29 more
- `apps/server/src/db.ts``apps/server/src/index.ts`, `apps/server/src/routes/agents.ts`, `apps/server/src/routes/analytics.ts`, `apps/server/src/routes/artifacts.ts`, `apps/server/src/routes/chats.ts` +27 more
- `packages/ion/src/cli/utils.ts``packages/ion/src/cli/commands/abandon.ts`, `packages/ion/src/cli/commands/abandon.ts`, `packages/ion/src/cli/commands/approve.ts`, `packages/ion/src/cli/commands/approve.ts`, `packages/ion/src/cli/commands/cleanup.ts` +19 more
- `apps/control/src/db.ts``apps/control/src/index.ts`, `apps/control/src/routes/bench.ts`, `apps/control/src/routes/captures.ts`, `apps/control/src/routes/evals.ts`, `apps/control/src/routes/gateway.ts` +17 more
- `apps/coder/src/services/tools/types.ts``apps/coder/src/routes/messages.ts`, `apps/coder/src/services/dispatcher.ts`, `apps/coder/src/services/tools/adapter.ts`, `apps/coder/src/services/tools/apply_pending.ts`, `apps/coder/src/services/tools/check_task_status.ts` +13 more
- `apps/coder/src/conductor/types.ts``apps/coder/src/conductor/flows/_util.ts`, `apps/coder/src/conductor/flows/architectural-analysis.ts`, `apps/coder/src/conductor/flows/authoring.ts`, `apps/coder/src/conductor/flows/code-review.ts`, `apps/coder/src/conductor/flows/discovery.ts` +11 more
- `apps/control/src/services/fleet-state.ts``apps/control/src/index.ts`, `apps/control/src/index.ts`, `apps/control/src/routes/actions.ts`, `apps/control/src/routes/bench.ts`, `apps/control/src/routes/evals.ts` +10 more
- `apps/server/src/services/tools.ts``apps/server/src/index.ts`, `apps/server/src/services/__tests__/agent-allowlist.test.ts`, `apps/server/src/services/agents.ts`, `apps/server/src/services/inference/stream-phase-adapter.ts`, `apps/server/src/services/inference/stream-phase.ts` +10 more
- `apps/coder/src/services/agent-backend.ts``apps/coder/src/routes/lifecycle.ts`, `apps/coder/src/services/__tests__/stream-json-parser.test.ts`, `apps/coder/src/services/acp-event-map.ts`, `apps/coder/src/services/agent-pool.ts`, `apps/coder/src/services/backends/__tests__/claude-sdk-map.test.ts` +9 more
- `apps/coder/src/services/acp-tool-snapshot.ts``apps/coder/src/services/__tests__/acp-event-map.test.ts`, `apps/coder/src/services/__tests__/frame-emitter.test.ts`, `apps/coder/src/services/__tests__/stream-json-parser.test.ts`, `apps/coder/src/services/acp-dispatch.ts`, `apps/coder/src/services/acp-event-map.ts` +9 more
- `apps/server/src/config.ts``apps/server/src/db.ts`, `apps/server/src/index.ts`, `apps/server/src/routes/chats.ts`, `apps/server/src/routes/messages.ts`, `apps/server/src/routes/models.ts` +9 more
---

View File

@@ -60,6 +60,19 @@
- **Workspace** — props: sessionId, projectId, agentId, onAgentChange, panesHook, chatsHook, session, project, onAddPane — `apps/web/src/components/Workspace.tsx`
- **AddProviderModal** — props: open, onOpenChange, onAdded — `apps/web/src/components/coder/AddProviderModal.tsx`
- **ProvidersSettings** — `apps/web/src/components/coder/ProvidersSettings.tsx`
- **ActivityTab** — props: requests, providerIds, onOpenCapture — `apps/web/src/components/control/ActivityTab.tsx`
- **BenchTab** — props: providerIds — `apps/web/src/components/control/BenchTab.tsx`
- **CaptureDrawer** — props: requestId, providerId, onClose — `apps/web/src/components/control/CaptureDrawer.tsx`
- **EvalsTab** — props: providerIds — `apps/web/src/components/control/EvalsTab.tsx`
- **FleetTab** — props: hosts, gpuMap — `apps/web/src/components/control/FleetTab.tsx`
- **HostCard** — props: host, gpuData — `apps/web/src/components/control/HostCard.tsx`
- **HostConfigEditor** — props: providerId, onClose — `apps/web/src/components/control/HostConfigEditor.tsx`
- **LogsTab** — props: logs, providerIds — `apps/web/src/components/control/LogsTab.tsx`
- **PerfChart** — props: series, timestamps, height — `apps/web/src/components/control/PerfChart.tsx`
- **PlaygroundTab** — props: providerIds — `apps/web/src/components/control/PlaygroundTab.tsx`
- **ReportsTab** — `apps/web/src/components/control/ReportsTab.tsx`
- **TtlRing** — props: deadline, size — `apps/web/src/components/control/TtlRing.tsx`
- **VramGauge** — props: used, total, size — `apps/web/src/components/control/VramGauge.tsx`
- **MatrixRain** — props: enabled, density, speed, opacity — `apps/web/src/components/fx/MatrixRain.tsx`
- **NeonField** — props: enabled, opacity, speed — `apps/web/src/components/fx/NeonField.tsx`
- **ThemeFx** — `apps/web/src/components/fx/ThemeFx.tsx`
@@ -82,10 +95,12 @@
- **FloatingMenu** — props: x, y, hasSelection, chatInputs, onCopy, onPaste, onSelectAll, onSearch, onSendToChat, onDismiss — `apps/web/src/components/panes/terminal/FloatingMenu.tsx`
- **SearchBar** — props: searchRef, theme, onClose — `apps/web/src/components/panes/terminal/SearchBar.tsx`
- **TerminalHotkeyBar** — props: ctrlArmed, onSendBytes, onArmCtrl, onFit — `apps/web/src/components/panes/terminal/TerminalHotkeyBar.tsx`
- **ControlProvider** — `apps/web/src/hooks/useControlStream.tsx`
- **RightRailDrawerProvider** — `apps/web/src/hooks/useRightRailDrawer.tsx`
- **SidebarDrawerProvider** — `apps/web/src/hooks/useSidebarDrawer.tsx`
- **PATH_REGEX** — `apps/web/src/lib/linkify-paths.tsx`
- **Analytics** — `apps/web/src/pages/Analytics.tsx`
- **Control** — `apps/web/src/pages/Control.tsx`
- **Home** — `apps/web/src/pages/Home.tsx`
- **Memory** — `apps/web/src/pages/Memory.tsx`
- **Project** — `apps/web/src/pages/Project.tsx`

View File

@@ -8,6 +8,7 @@
- `BOOCODE_TRUNCATION_DIR` **required** — apps/server/src/services/__tests__/truncate.test.ts
- `BOOCODER_DEV_URL` **required** — apps/web/vite.config.ts
- `BOOCODER_URL` **required** — apps/coder/src/cli.ts
- `BOOCONTROL_URL` **required** — apps/server/src/index.ts
- `BOOTERM_DEV_URL` **required** — apps/web/vite.config.ts
- `BOOTERM_SSH_HOST` **required** — apps/booterm/src/pty/manager.ts
- `BOOTERM_SSH_USER` **required** — apps/booterm/src/pty/manager.ts
@@ -17,38 +18,53 @@
- `BRAINSTORM_OWNER_PID` **required** — data/skills/superpowers/brainstorming/scripts/server.cjs
- `BRAINSTORM_PORT` **required** — data/skills/superpowers/brainstorming/scripts/server.cjs
- `BRAINSTORM_URL_HOST` **required** — data/skills/superpowers/brainstorming/scripts/server.cjs
- `CODECONTEXT_CHILD` **required** — codecontext/shim.go
- `CAPTURE_BUDGET_MB` (has default) — apps/control/.env.example
- `CAPTURE_SIZE_KB` (has default) — apps/control/.env.example
- `CONDUCTOR_MODEL` **required** — conductor/src/dispatch.ts
- `CONDUCTOR_OPENCODE_BIN` **required** — conductor/src/dispatch.ts
- `CONDUCTOR_TIMEOUT_MS` **required** — conductor/src/dispatch.ts
- `CONTAINER_GUIDANCE_FILE` **required** — apps/server/src/services/__tests__/system-prompt.test.ts
- `CONTEXT7_API_KEY` (has default) — .env
- `DATABASE_URL` (has default) — .env.example
- `DATABASE_URL` (has default) — apps/control/.env.example
- `DEEPSEEK_API_KEY` (has default) — .env
- `DEEPSEEK_BASE_URL` (has default) — .env
- `DEFAULT_MODEL` (has default) — .env.example
- `DEV_REMOTE_USER` **required** — apps/web/vite.config.ts
- `EMBEDDING_MODEL_PATH` **required** — apps/server/src/services/memory/embeddings.ts
- `EVAL_JUDGE_MODEL` **required** — apps/control/src/services/judge-runner.ts
- `GITEA_BASE_URL` (has default) — .env
- `GITEA_SSH_HOST` (has default) — .env
- `GITEA_TOKEN` (has default) — .env
- `GITEA_USER` (has default) — .env
- `LLAMA_SWAP_URL` (has default) — .env.example
- `HOST` (has default) — apps/control/.env.example
- `LLAMA_PROVIDERS_PATH` (has default) — apps/control/.env.example
- `LLAMA_SWAP_URL` (has default) — apps/control/.env.example
- `LOG_LEVEL` (has default) — apps/control/.env.example
- `MCP_TEST_MISSING` **required** — apps/server/src/services/__tests__/mcp-config.test.ts
- `MCP_TEST_SECRET` **required** — apps/server/src/services/__tests__/mcp-config.test.ts
- `MEMORY_SEARCH` **required** — apps/server/src/services/memory/recall.ts
- `NODE_ENV` (has default) — .env.example
- `PORT` (has default) — .env.example
- `NODE_ENV` (has default) — apps/control/.env.example
- `PORT` (has default) — apps/control/.env.example
- `POSTGRES_PASSWORD` (has default) — .env.example
- `PROJECT_ROOT_WHITELIST` (has default) — .env.example
- `RETENTION_RAW_HOURS` (has default) — apps/control/.env.example
- `RETENTION_ROLLUP_DAYS` (has default) — apps/control/.env.example
- `SANDBOX_CONCURRENCY` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_CPU` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_IMAGE` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_MEMORY` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_PIDS` **required** — apps/control/src/services/sandbox-runner.ts
- `SANDBOX_TIMEOUT_MS` **required** — apps/control/src/services/sandbox-runner.ts
- `SEARXNG_URL` (has default) — .env.example
- `SKILLS_ROOT` **required** — apps/server/src/services/skills.ts
- `VITEST` **required** — apps/control/src/index.ts
- `WEB_DIST_PATH` **required** — apps/server/src/index.ts
## Config Files
- `.env.example`
- `Dockerfile`
- `apps/control/.env.example`
- `apps/web/vite.config.ts`
- `docker-compose.yml`

View File

@@ -3,35 +3,35 @@
## Most Imported Files (change these carefully)
- `apps/coder/src/db.ts` — imported by **44** files
- `apps/server/src/db.ts` — imported by **34** files
- `apps/server/src/types/api.ts` — imported by **34** files
- `apps/server/src/db.ts` — imported by **32** files
- `packages/ion/src/cli/utils.ts` — imported by **24** files
- `apps/control/src/db.ts` — imported by **22** files
- `apps/coder/src/services/tools/types.ts` — imported by **18** files
- `apps/coder/src/conductor/types.ts` — imported by **16** files
- `apps/control/src/services/fleet-state.ts` — imported by **15** files
- `apps/server/src/services/tools.ts` — imported by **15** files
- `apps/coder/src/services/agent-backend.ts` — imported by **14** files
- `apps/coder/src/services/acp-tool-snapshot.ts` — imported by **14** files
- `apps/control/src/index.ts` — imported by **14** files
- `apps/server/src/config.ts` — imported by **14** files
- `apps/coder/src/services/provider-config-registry.ts` — imported by **13** files
- `conductor/src/types.ts` — imported by **13** files
- `apps/coder/src/services/provider-config-registry.ts` — imported by **12** files
- `apps/coder/src/config.ts` — imported by **11** files
- `apps/coder/src/services/provider-types.ts` — imported by **11** files
- `apps/coder/src/services/provider-types.ts` — imported by **12** files
- `apps/coder/src/config.ts` — imported by **10** files
- `apps/coder/src/services/llama-providers.ts` — imported by **10** files
- `apps/server/src/services/broker.ts` — imported by **10** files
- `apps/server/src/services/agents.ts` — imported by **10** files
- `apps/server/src/services/path_guard.ts` — imported by **10** files
- `apps/coder/src/services/pending_changes.ts` — imported by **9** files
- `apps/server/src/services/inference/payload.ts` — imported by **9** files
- `apps/server/src/services/inference/dcp/messages.ts` — imported by **9** files
## Import Map (who imports what)
- `apps/coder/src/db.ts``apps/coder/src/index.ts`, `apps/coder/src/routes/__tests__/agent-sessions.routes.test.ts`, `apps/coder/src/routes/__tests__/chat-resolve.test.ts`, `apps/coder/src/routes/__tests__/providers.routes.test.ts`, `apps/coder/src/routes/agent-sessions.ts` +39 more
- `apps/server/src/db.ts``apps/server/src/index.ts`, `apps/server/src/routes/__tests__/settings-favorites.test.ts`, `apps/server/src/routes/agents.ts`, `apps/server/src/routes/analytics.ts`, `apps/server/src/routes/artifacts.ts` +29 more
- `apps/server/src/types/api.ts``apps/server/src/routes/chats.ts`, `apps/server/src/routes/messages.ts`, `apps/server/src/routes/models.ts`, `apps/server/src/routes/projects.ts`, `apps/server/src/routes/sessions.ts` +29 more
- `apps/server/src/db.ts``apps/server/src/index.ts`, `apps/server/src/routes/agents.ts`, `apps/server/src/routes/analytics.ts`, `apps/server/src/routes/artifacts.ts`, `apps/server/src/routes/chats.ts` +27 more
- `packages/ion/src/cli/utils.ts``packages/ion/src/cli/commands/abandon.ts`, `packages/ion/src/cli/commands/abandon.ts`, `packages/ion/src/cli/commands/approve.ts`, `packages/ion/src/cli/commands/approve.ts`, `packages/ion/src/cli/commands/cleanup.ts` +19 more
- `apps/control/src/db.ts``apps/control/src/index.ts`, `apps/control/src/routes/bench.ts`, `apps/control/src/routes/captures.ts`, `apps/control/src/routes/evals.ts`, `apps/control/src/routes/gateway.ts` +17 more
- `apps/coder/src/services/tools/types.ts``apps/coder/src/routes/messages.ts`, `apps/coder/src/services/dispatcher.ts`, `apps/coder/src/services/tools/adapter.ts`, `apps/coder/src/services/tools/apply_pending.ts`, `apps/coder/src/services/tools/check_task_status.ts` +13 more
- `apps/coder/src/conductor/types.ts``apps/coder/src/conductor/flows/_util.ts`, `apps/coder/src/conductor/flows/architectural-analysis.ts`, `apps/coder/src/conductor/flows/authoring.ts`, `apps/coder/src/conductor/flows/code-review.ts`, `apps/coder/src/conductor/flows/discovery.ts` +11 more
- `apps/control/src/services/fleet-state.ts``apps/control/src/index.ts`, `apps/control/src/index.ts`, `apps/control/src/routes/actions.ts`, `apps/control/src/routes/bench.ts`, `apps/control/src/routes/evals.ts` +10 more
- `apps/server/src/services/tools.ts``apps/server/src/index.ts`, `apps/server/src/services/__tests__/agent-allowlist.test.ts`, `apps/server/src/services/agents.ts`, `apps/server/src/services/inference/stream-phase-adapter.ts`, `apps/server/src/services/inference/stream-phase.ts` +10 more
- `apps/coder/src/services/agent-backend.ts``apps/coder/src/routes/lifecycle.ts`, `apps/coder/src/services/__tests__/stream-json-parser.test.ts`, `apps/coder/src/services/acp-event-map.ts`, `apps/coder/src/services/agent-pool.ts`, `apps/coder/src/services/backends/__tests__/claude-sdk-map.test.ts` +9 more
- `apps/coder/src/services/acp-tool-snapshot.ts``apps/coder/src/services/__tests__/acp-event-map.test.ts`, `apps/coder/src/services/__tests__/frame-emitter.test.ts`, `apps/coder/src/services/__tests__/stream-json-parser.test.ts`, `apps/coder/src/services/acp-dispatch.ts`, `apps/coder/src/services/acp-event-map.ts` +9 more
- `apps/server/src/config.ts``apps/server/src/db.ts`, `apps/server/src/index.ts`, `apps/server/src/routes/chats.ts`, `apps/server/src/routes/messages.ts`, `apps/server/src/routes/models.ts` +9 more

View File

@@ -115,8 +115,8 @@
- function sanitizeSlug: (s) => string
- function buildBattleSlug: (battleId, battleType, createdAt) => string
- _...7 more_
- `apps/coder/src/services/arena-model-call.ts` — function arenaModelCall: (opts, 'LLAMA_SWAP_URL'>;
model) => Promise<string>
- `apps/coder/src/services/arena-local-models.ts` — function createLocalModelSet: (log) => LocalModelSetHandle, interface LocalModelSetHandle
- `apps/coder/src/services/arena-model-call.ts` — function resolveModelEndpoint: (model) => void, function arenaModelCall: (opts) => Promise<string>
- `apps/coder/src/services/arena-runner.ts`
- function createBattleRunner: (deps) => BattleRunner
- interface ContestantSpec
@@ -294,6 +294,11 @@
- interface LineRef
- `apps/coder/src/services/hashline/xxhash32.ts` — function hashXxh32: (input, seed) => number
- `apps/coder/src/services/host-exec.ts` — function hostExec: (command, opts?) => Promise<HostExecResult>, interface HostExecResult
- `apps/coder/src/services/llama-providers.ts`
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
- function getLlamaProviders: () => LlamaProvidersFile
- function parseModelRef: (ref) => ParsedModelRef
- `apps/coder/src/services/local-gateway.ts` — function resolveGatewayModel: (model) => void, function registerLocalGatewayRoutes: (app) => void
- `apps/coder/src/services/lsp/client.ts` — class LspClient
- `apps/coder/src/services/lsp/config.ts` — function getServerConfig: (filePath) => LspServerConfig | null, interface LspServerConfig
- `apps/coder/src/services/lsp/operations.ts`
@@ -346,6 +351,11 @@
- function reclaimPort: (port) => void
- function waitForPortRelease: (port, timeoutMs) => Promise<boolean>
- function freePort: () => Promise<number>
- `apps/coder/src/services/opencode-config-sync.ts`
- function buildBoocodeLocalProviderConfig: (gatewayUrl) => Promise<OpencodeProviderConfig>
- function syncOpencodeConfig: (gatewayUrl, log, msg) => void
- interface OpencodeProviderConfig
- interface OpencodeConfig
- `apps/coder/src/services/orphan-worktree-reaper.ts`
- function reapOrphanWorktrees: (sql, log, graceMs, now) => void
- function createOrphanWorktreeReaper: (deps) => void
@@ -374,6 +384,11 @@
- function waitForElicitationResponse: (taskId, sessionId, provider, modeId, params, timeoutMs) => Promise<CreateElicitationResponse>
- function cancelPendingPermission: (taskId) => void
- _...3 more_
- `apps/coder/src/services/pi-config-sync.ts`
- function buildPiProviderEntry: (gatewayUrl, existing?) => Promise<PiProviderConfig>
- function syncPiConfig: (gatewayUrl, log, msg) => void
- interface PiProviderConfig
- interface PiModelsConfig
- `apps/coder/src/services/plan-store.ts`
- function createPlan: (sql, opts) => Promise<Plan>
- function getPlan: (sql, planId) => Promise<Plan | null>
@@ -406,11 +421,11 @@
- `apps/coder/src/services/provider-snapshot.ts`
- function fetchDeepSeekModels: (config) => Promise<ProviderModel[]>
- function fetchLlamaSwapModels: (config) => Promise<ProviderModel[]>
- function fetchRegistryModels: (defaultModel?) => Promise<ProviderModel[]>
- function prefixLlamaSwapModels: (models) => ProviderModel[]
- function prefixBoocodeLocalModels: (models) => ProviderModel[]
- function mergeModels: (...lists) => ProviderModel[]
- function getProviderSnapshot: (sql, config, cwd?, force) => Promise<ProviderSnapshotEntry[]>
- function clearProviderSnapshotCache: () => void
- _...2 more_
- _...4 more_
- `apps/coder/src/services/pty-dispatch.ts`
- function dispatchViaPty: (opts) => Promise<DispatchResult>
- interface DispatchResult
@@ -454,6 +469,125 @@
- function isSecretPath: (filePath) => boolean
- function resolveWritePath: (projectRoot, filePath) => string
- class WriteGuardError
- `apps/control/src/config.ts` — function loadConfig: () => Config, type Config
- `apps/control/src/db.ts`
- function getSql: (config) => Sql
- function waitForTable: (sql, tableName, timeoutMs) => Promise<void>
- function applySchema: (sql) => Promise<void>
- function pingDb: (sql) => Promise<boolean>
- function closeDb: () => Promise<void>
- type Sql
- `apps/control/src/index.ts`
- function createDeltaEmitter: () => DeltaEmitter
- function handleLlamaSweepEvent: (fleet, sql, config, providerId, emitter, event, logRelay) => Promise<void>
- type DeltaCallback
- type DeltaEmitter
- `apps/control/src/services/action-queue.ts`
- class ActionQueue
- interface QueuedAction
- interface ActionQueueEntry
- interface ActionQueueState
- interface ActionQueueDeps
- type ActionType
- `apps/control/src/services/bench-engine.ts`
- function parseLlamaTimings: (chunk) => BenchTimings | null
- function runSingleBenchRequest: (baseUrl, model, promptTokens, genTokens, repetition, temperature, topP) => Promise<BenchSample>
- function runBenchSuite: (params, sql, emitter, seq, onProgress) => void
- function computeRegressionFlag: (current, baselineJson) => 'baseline' | 'regression' | 'improvement' | null
- function computeAggregates: (samples) => BenchAggregate
- interface BenchSuite
- _...5 more_
- `apps/control/src/services/capture-fetch.ts`
- function fetchCapture: (baseUrl, providerId, swapEntryId) => Promise<CaptureFetchResult>
- function parseCapture: (raw, unknown>, providerId, swapEntryId) => CaptureData
- function persistCapture: (sql, capture) => Promise<void>
- interface CaptureData
- interface CaptureFetchResult
- `apps/control/src/services/eval-suites.ts`
- function loadEvalSuitesFromData: () => EvalSuiteData[]
- function seedEvalSuites: (sql) => Promise<void>
- function listEvalSuites: (sql) => Promise<EvalSuiteRow[]>
- function getEvalSuite: (sql, id) => Promise<EvalSuiteRow | null>
- function upsertEvalSuite: (sql, id, name, kind, tasks, judgeModel, metadata?, unknown>) => Promise<string>
- function createEvalRun: (sql, suiteId, providerId, model, quant, judgeModel, judgeModelVersion, totalTasks) => Promise<string>
- _...9 more_
- `apps/control/src/services/fleet-connector.ts`
- function addJitter: (delayMs) => number
- function reconnectDecision: (failures, policy) => ReconnectDecision
- function parseSseLine: (line) => LlamaSweepSSEEvent | null
- function startFleetConnector: (providerId, baseUrl, deps) => AbortController
- function runFleetConnector: (providerId, baseUrl, abort, deps) => Promise<void>
- interface ReconnectPolicy
- _...8 more_
- `apps/control/src/services/fleet-state.ts`
- function createFleetState: () => FleetState
- function ensureHostState: (fleet, providerId) => HostState
- function stampLastSeen: (state) => void
- function incrementSeq: (state) => number
- interface HostConfig
- interface FleetState
- _...3 more_
- `apps/control/src/services/gateway.ts`
- function isGatewayVirtualModel: (id) => boolean
- function parseVirtualModel: (modelId) => string
- function orderCandidates: (virtualModel, policy, scores) => string[]
- function resolveCandidates: (sql, fleet, modelId) => Promise<ResolvedCandidates>
- function splitComposite: (compositeId) => void
- interface RoutePolicyRow
- _...3 more_
- `apps/control/src/services/host-access.ts` — function acquireHostAccess: (providerId, purpose) => Promise<HostGrant>, interface HostGrant
- `apps/control/src/services/jsonb.ts`
- function jsonbStringArray: (value) => string[]
- function jsonbArray: (value) => unknown[]
- function jsonbNumberArray: (value) => number[]
- function jsonbObject: (value) => Record<string, unknown> | null
- `apps/control/src/services/judge-runner.ts`
- function runJudgeEval: (params, sql, emitter, seq, logger) => void
- interface JudgeEvalParams
- interface JudgeProgress
- interface JudgeResult
- `apps/control/src/services/llama-providers.ts`
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
- function getLlamaProviders: () => LlamaProvidersFile
- function resolveProviderBaseUrl: (providerId) => string | null
- `apps/control/src/services/log-relay.ts` — class LogRelay, interface LogLine
- `apps/control/src/services/reconcile.ts` — function detectGap: (oldestReconcileTs, newestPersistedTs) => boolean
- `apps/control/src/services/reports.ts`
- function gatherReportStats: (sql, interval, now) => Promise<ReportStats>
- function renderReportMarkdown: (stats) => string
- function generateReport: (sql, interval, now) => void
- function isReportDue: (lastRunAt, interval, now) => boolean
- function runReportSchedulerTick: (sql, now) => void
- interface ReportStats
- _...1 more_
- `apps/control/src/services/retention.ts`
- function buildRetentionConfig: (cfg) => RetentionConfig
- function runRollup: (sql, providerId, hours) => Promise<void>
- function pruneRawSamples: (sql, providerId, hours) => Promise<void>
- function pruneActivity: (sql, hours) => Promise<void>
- function pruneModelEvents: (sql, hours) => Promise<void>
- function trimCapture: (captureJson, sizeKB) => string | null
- _...2 more_
- `apps/control/src/services/routing-scores.ts`
- function assignBadges: (scores) => void
- function computeRoutingScores: (sql, fleet) => Promise<ModelScore[]>
- interface ModelScore
- type BadgeKind
- const BADGE_LABELS: Record<BadgeKind, string>
- `apps/control/src/services/sandbox-runner.ts`
- function runCodeEval: (params, sql, emitter, seq, onProgress) => void
- interface SandboxEvalParams
- interface SandboxProgress
- interface SandboxResult
- interface SandboxContainer
- `apps/control/src/services/ssh-config.ts`
- function validateLlamaConfig: (yamlText, schema) => ValidationResult
- function computeDiff: (oldText, newText) => string
- function backupFilename: (configPath, now) => string
- function readRemoteConfig: (target, configPath, exec) => Promise<string>
- function applyRemoteConfig: (opts) => Promise<ApplyResult>
- function healthWait: (baseUrl, fetcher, attempts, delayMs) => Promise<boolean>
- _...7 more_
- `apps/server/src/config.ts` — function loadConfig: () => Config, type Config
- `apps/server/src/db.ts`
- function getSql: (config) => Sql
@@ -601,11 +735,6 @@
- function finalizeStreamedRow: (ctx, opts) => void
- function finalizeEmpty: (ctx, args) => Promise<void>
- function finalizeCompletion: (ctx, args, result, startedAt, session) => Promise<void>
- `apps/server/src/services/inference/llama-args-validator.ts`
- function validateExtraArgs: (args?) => string[]
- function isManagedFlag: (flag) => boolean
- function stripShadowingFlags: (args, opts?) => string[]
- interface StripOptions
- `apps/server/src/services/inference/loop-detectors.ts`
- function detectContentRepeat: (messages) => LoopDetectionResult
- function detectToolLoop: (toolNames) => LoopDetectionResult
@@ -636,12 +765,12 @@
- interface OpenAiMessage
- `apps/server/src/services/inference/provider.ts`
- function isDeepSeekModel: (modelId) => boolean
- function resolveRoute: (agent, config?, modelId?) => RoutingInfo
- function upstreamModel: (config, modelId, agent?) => LanguageModel
- function isGatewayVirtualModel: (wireModelId) => boolean
- function resolveModelProvider: (modelId, config) => ResolvedModel
- function resolveRoute: (agent, config?, modelId?) => void
- function upstreamModel: (config, modelId, agent?, source?) => LanguageModel
- function resolveModelEndpoint: (config, modelId) => void
- function resetDeepSeekProvider: () => void
- interface RoutingInfo
- _...1 more_
- _...4 more_
- `apps/server/src/services/inference/prune.ts`
- function selectPruneTargets: (partsNewestFirst, tailStartCreatedAt) => void
- function prune: (args) => Promise<PruneResult>
@@ -709,6 +838,10 @@
- function runInference: (ctx, sessionId, chatId, assistantMessageId, signal?) => Promise<void>
- function runInferenceWithModel: (ctx, sessionId, chatId, assistantMessageId, modelOverride, compareGroupId, signal?) => Promise<void>
- function createInferenceRunner: (ctx, 'publishUser'>, publishUserFn, frame) => void
- `apps/server/src/services/llama-providers.ts`
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
- function getLlamaProviders: () => LlamaProvidersFile
- function parseModelRef: (ref) => ParsedModelRef
- `apps/server/src/services/mcp-client.ts`
- function initialize: (entries, logger) => Promise<void>
- function callTool: (prefixedName, args, unknown>) => Promise<unknown>
@@ -930,6 +1063,7 @@
- `apps/web/src/hooks/useProjectGit.ts` — function useProjectGit: (projectId) => GitMeta | null
- `apps/web/src/hooks/useProviderSnapshot.ts` — function refreshProviderSnapshot: (cwd?) => Promise<ProviderSnapshotEntry[]>, function useProviderSnapshot: (cwd?) => ProviderSnapshotEntry[] | null
- `apps/web/src/hooks/usePullToRefresh.ts` — function usePullToRefresh: (onRefresh) => void
- `apps/web/src/hooks/useReducedMotion.ts` — function useReducedMotion: () => boolean
- `apps/web/src/hooks/useSessionChats.ts`
- function useSessionChats: (sessionId, opts) => UseSessionChatsResult
- interface UseSessionChatsOpts
@@ -1047,6 +1181,14 @@
- function waitForEvent: (threadManager, threadId, eventType, timeoutMs) => Promise<LaceEvent>
- function waitForEventCount: (threadManager, threadId, eventType, count, timeoutMs) => Promise<LaceEvent[]>
- function waitForEventMatch: (threadManager, threadId, predicate) => void
- `packages/contracts/src/llama-providers.ts`
- function parseModelRef: (ref, defaultProvider) => ParsedModelRef
- function formatModelRef: (providerId, wireModelId) => string
- interface ParsedModelRef
- type LlamaProvider
- type LlamaProvidersFile
- const LlamaProviderSchema
- _...1 more_
- `packages/ion/src/cli/commands/abandon.ts` — function abandonCommand: (args, options) => Promise<void>
- `packages/ion/src/cli/commands/approve.ts` — function approveCommand: (args, options) => Promise<void>
- `packages/ion/src/cli/commands/cleanup.ts` — function cleanupCommand: (args, options) => Promise<void>

View File

@@ -6,14 +6,13 @@
- **`/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
### fastify
- `GET` `/api/term/health` params()
- `GET` `/api/term/sessions/:sid/panes/:pid/search` params(sid, pid) [auth]
- `GET` `/api/term/sessions` params() [auth]
@@ -65,6 +64,45 @@
- `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]
@@ -84,8 +122,13 @@
- `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]
@@ -126,21 +169,6 @@
- `GET` `/api/chats/:id/traces` params(id) [db]
- `GET` `/api/ws/sessions/:id` params(id) [auth, db]
### go-net-http
- `GET` `/health` params() [queue]
- `POST` `/v1/get_codebase_overview` params() [queue]
- `POST` `/v1/get_file_analysis` params() [queue]
- `POST` `/v1/get_symbol_info` params() [queue]
- `POST` `/v1/search_symbols` params() [queue]
- `POST` `/v1/get_dependencies` params() [queue]
- `POST` `/v1/watch_changes` params() [queue]
- `POST` `/v1/get_semantic_neighborhoods` params() [queue]
- `POST` `/v1/get_framework_analysis` params() [queue]
- `POST` `/v1/get_symbol_details` params() [queue]
- `POST` `/v1/get_call_graph` params() [queue]
- `POST` `/v1/get_blast_radius` params() [queue]
## WebSocket Events
- `WS` `message``apps/booterm/src/ws/attach.ts`
@@ -150,5 +178,7 @@
- `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`

View File

@@ -137,6 +137,173 @@
- items_completed: integer (required)
- metadata: jsonb
### control_hosts
- provider_id: text (pk, fk)
- ssh_host: text
- ssh_user: text
- ssh_key_path: text
- config_path: text
- restart_cmd: text
- os: text
- gpu_label: text
- enabled: boolean (required)
### control_requests
- id: bigint(auto) (pk)
- provider_id: text (required, fk)
- swap_entry_id: integer (required, fk)
- ts: timestamp(tz) (required)
- model: text
- req_path: text
- status_code: integer
- duration_ms: integer
- cache_tokens: integer
- input_tokens: integer
- output_tokens: integer
- prompt_tps: real
- gen_tps: real
- has_capture: boolean (required)
- capture: jsonb
### control_perf_samples
- provider_id: text (required, fk)
- ts: timestamp(tz) (required)
- gpu: jsonb
- sys: jsonb
### control_perf_rollup_5m
- provider_id: text (required, fk)
- bucket: timestamp(tz) (required)
- gpu_agg: jsonb
- sys_agg: jsonb
### control_model_events
- provider_id: text (required, fk)
- model: text (required)
- state: text (required)
- ts: timestamp(tz) (required)
- detail: jsonb
### bench_suites
- id: text (pk)
- name: text (required)
- provider_id: text (required, fk)
- model: text (required)
- repetitions: integer (required)
- metadata: jsonb
### bench_runs
- id: text (pk)
- suite_id: text (required, fk)
- job_type: text (required)
- status: text (required)
- started_at: timestamp(tz)
- finished_at: timestamp(tz)
- total_samples: integer (required)
- completed_samples: integer (required)
- concurrent_foreign_requests: integer (required)
- temperature: real
- top_p: real
- aggregate: jsonb
- regression_flag: text
- error: text
### bench_samples
- id: bigint(auto) (pk)
- run_id: text (required, fk)
- prompt_tokens: integer (required)
- gen_tokens: integer (required)
- concurrency: integer (required)
- repetition: integer (required)
- ttft_ms: real
- total_ms: real
- prompt_tps: real
- gen_tps: real
- cache_n: integer
- error: text
### bench_baselines
- provider_id: text (required, fk)
- model: text (required)
- aggregate: jsonb (required)
- run_id: text (required, fk)
### eval_suites
- id: text (pk)
- name: text (required)
- kind: text (required)
- version: integer (required)
- tasks: jsonb (required)
- judge_model: text
- judge_model_version: text
- metadata: jsonb
### eval_runs
- id: text (pk)
- suite_id: text (required, fk)
- job_type: text (required)
- provider_id: text (required, fk)
- model: text (required)
- quant: text
- status: text (required)
- judge_model: text
- judge_model_version: text
- started_at: timestamp(tz)
- finished_at: timestamp(tz)
- total_tasks: integer (required)
- completed_tasks: integer (required)
- aggregate: jsonb
- error: text
### eval_results
- id: bigint(auto) (pk)
- run_id: text (required, fk)
- task_id: text (required, fk)
- task_index: integer (required)
- score: real
- max_score: real
- rationale: text
- sandbox_exit_code: integer
- sandbox_stderr: text
- sandbox_stdout: text
- execution_ms: integer
- error: text
### control_reports
- id: text (pk)
- kind: text (required)
- interval: text (required)
- period_start: timestamp(tz) (required)
- period_end: timestamp(tz) (required)
- markdown: text (required)
- stats: jsonb
### control_schedule_meta
- name: text (pk)
- interval: text (required)
- enabled: boolean (required)
- last_run_at: timestamp(tz)
### route_policies
- id: text (pk)
- name: text (required)
- virtual_model: text (required)
- candidates: jsonb (required)
- fallback: text
- enabled: boolean (required)
### route_dispatch_log
- id: bigint(auto) (pk)
- ts: timestamp(tz) (required)
- virtual_model: text (required)
- chosen_provider_id: text (fk)
- chosen_model: text
- candidates_tried: jsonb
- status: text (required)
- source: text
- error: text
- duration_ms: integer
### projects
- id: uuid (pk)
- name: text (required)
@@ -215,3 +382,12 @@
- turn_number: integer (required)
- messages: jsonb (required)
- tool_states: jsonb (required)
### memory_entries
- id: uuid (pk)
- project_id: uuid (required, fk)
- topic: text (required)
- title: text (required)
- content: text (required)
- date: date
- mood: text