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).
8.3 KiB
8.3 KiB
Schema
pending_changes
- id: uuid (pk)
- session_id: uuid (required, fk)
- task_id: uuid (fk)
- file_path: text (required)
- operation: text (required)
- diff: text (required)
- status: text (required)
tasks
- id: uuid (pk)
- project_id: uuid (required, fk)
- parent_task_id: uuid (fk)
- state: text (required)
- input: text (required)
- output_summary: text
- agent: text
- model: text
- execution_path: text
- cost_tokens: integer
- started_at: timestamp(tz)
- ended_at: timestamp(tz)
available_agents
- name: text (pk)
- install_path: text
- version: text
- supports_acp: boolean (required)
- last_probed_at: timestamp(tz)
agent_sessions
- session_id: uuid (required, fk)
- agent: text (required)
- backend: text (required)
- agent_session_id: text (fk)
- server_port: integer
- status: text (required)
- last_active_at: timestamp(tz)
worktrees
- id: uuid (pk)
- session_id: uuid (fk)
- project_id: uuid (fk)
- path: text (required)
- branch: text
- base_commit: text
- slug: text
- status: text (required)
checkpoints
- id: uuid (pk)
- chat_id: uuid (required, fk)
- session_id: uuid (fk)
- worktree_id: uuid (fk)
- message_id: uuid (fk)
claude_session_entries
- id: bigint(auto) (pk)
- project_key: text (required)
- session_id: text (required, fk)
- subpath: text (required)
flow_runs
- id: uuid (pk)
- project_id: uuid (required, fk)
- flow_name: text (required)
- band: text (required)
- model: text (required)
- status: text (required)
- input: jsonb (required)
- report: text
- error: text
flow_steps
- id: uuid (pk)
- run_id: uuid (required, fk)
- step_id: text (required, fk)
- kind: text (required)
- agent: text
- status: text (required)
- task_id: uuid (fk)
- chat_id: uuid (fk)
- input: text
- output: text
- error: text
battles
- id: uuid (pk)
- project_id: uuid (required, fk)
- battle_type: text (required)
- prompt: text (required)
- status: text (required)
- winner_contestant_id: uuid (fk)
- results_path: text
- error: text
contestants
- id: uuid (pk)
- battle_id: uuid (required, fk)
- identity: text (required)
- model: text (required)
- lane: text (required)
- task_id: uuid (fk)
- worktree_id: uuid (fk)
- status: text (required)
- duration_ms: integer
- tokens_per_sec: float8
- cost_tokens: integer
- result_path: text
- error: text
cross_examinations
- id: uuid (pk)
- battle_id: uuid (required, fk)
- identity: text (required)
- model: text (required)
- verdict: text
flow_step_events
- id: uuid (pk)
- run_id: uuid (required, fk)
- step_id: varchar (required, fk)
- event: varchar (required)
- payload: jsonb
plans
- id: uuid (pk)
- project_id: uuid (required, fk)
- title: text (required)
- description: text
- status: text (required)
- flow_run_id: uuid (fk)
- progress_pct: integer (required)
- items_total: integer (required)
- 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)
- path: text (required)
- added_at: timestamp(tz) (required)
- last_session_id: uuid (fk)
sessions
- id: uuid (pk)
- project_id: uuid (required, fk)
- name: text (required)
- model: text (required)
- system_prompt: text (required)
messages
- id: uuid (pk)
- session_id: uuid (required, fk)
- role: text (required)
- content: text (required)
- status: text (required)
- last_seq: integer (required)
- cache_tokens: integer
- reasoning_tokens: integer
message_parts
- id: uuid (pk)
- message_id: uuid (required, fk)
- sequence: integer (required)
- kind: text (required)
- payload: jsonb (required)
settings
- value: jsonb (required)
chats
- id: uuid (pk)
- session_id: uuid (required, fk)
- name: text
- status: text (required)
tool_traces
- id: uuid (pk)
- session_id: uuid (required, fk)
- chat_id: uuid (required, fk)
- message_id: uuid (fk)
- turn_number: integer (required)
- tool_name: text (required)
- tool_input: jsonb (required)
- tool_output: text
- started_at: timestamp(tz) (required)
- finished_at: timestamp(tz)
- latency_ms: integer
- tokens_used: integer
- cache_tokens: integer
- reasoning_tokens: integer
- error: text
- outcome: text
tool_trace_states
- id: uuid (pk)
- session_id: uuid (required, fk)
- chat_id: uuid (required, fk)
- message_id: uuid (fk)
- turn_number: integer (required)
- tool_name: text (required)
- tool_input: jsonb (required)
- started_at: timestamp(tz) (required)
agent_snapshots
- id: uuid (pk)
- session_id: uuid (required, fk)
- chat_id: uuid (required, fk)
- model: text (required)
- agent: text
- mode: text
- 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