feat(server): inference state-graph + supervisor, memory tools, MCP client, schema, routes
- Add state-graph.ts: typed state machine for inference lifecycle - Add supervisor.ts: agent supervisor pattern for multi-agent coordination - Add export-formatter.ts: structured export formatting - Add manage_memory.ts: memory CRUD tool for agent persistence - Add get_wiki_article.ts: codecontext wiki article retrieval - Extend memory/index.ts: 3-tier memory (context/daily/core) - Extend MCP client: mcp-config.ts env-var substitution - Update schema.sql: agent_sessions, tasks, pending_changes extensions - Update API types: MessageMetadata, ErrorReason, AgentSessionConfig - Update routes: chats, messages, sessions — column renames and agent_session_id - Update inference: error handler, payload builder, stream phase, turn orchestrator
This commit is contained in:
@@ -234,6 +234,7 @@ ALTER TABLE sessions ADD COLUMN IF NOT EXISTS workspace_panes JSONB NOT NULL DEF
|
||||
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS status TEXT NOT NULL DEFAULT 'open';
|
||||
|
||||
-- v1.2: chats table
|
||||
-- per-chat-model-switching v2.x: ALTER below adds the model override column.
|
||||
CREATE TABLE IF NOT EXISTS chats (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
session_id UUID NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
|
||||
@@ -244,6 +245,9 @@ CREATE TABLE IF NOT EXISTS chats (
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_chats_session_status ON chats (session_id, status, updated_at DESC);
|
||||
|
||||
-- v2.7.x: per-chat model override. NULL = inherit from session.model.
|
||||
ALTER TABLE chats ADD COLUMN IF NOT EXISTS model TEXT;
|
||||
|
||||
-- v1.2: messages.chat_id + messages.kind
|
||||
ALTER TABLE messages ADD COLUMN IF NOT EXISTS chat_id UUID REFERENCES chats(id) ON DELETE CASCADE;
|
||||
ALTER TABLE messages ADD COLUMN IF NOT EXISTS kind TEXT NOT NULL DEFAULT 'message';
|
||||
@@ -320,6 +324,9 @@ BEGIN
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- per-chat-model-switching: per-chat model override. NULL = inherit from session model.
|
||||
ALTER TABLE chats ADD COLUMN IF NOT EXISTS model TEXT;
|
||||
|
||||
-- v1.x-batch9: per-session agent reference. Agent definitions are not stored in
|
||||
-- the DB; they live in builtins (services/agents.ts) and a per-project AGENTS.md.
|
||||
-- agent_id is the slugified agent name. NULL means "use BooCode defaults".
|
||||
@@ -355,6 +362,11 @@ INSERT INTO settings (key, value) VALUES ('theme_mode', '"dark"') ON CONFLICT (k
|
||||
ALTER TABLE projects ADD COLUMN IF NOT EXISTS default_system_prompt TEXT NOT NULL DEFAULT '';
|
||||
ALTER TABLE projects ADD COLUMN IF NOT EXISTS default_web_search_enabled BOOLEAN NOT NULL DEFAULT false;
|
||||
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS web_search_enabled BOOLEAN;
|
||||
|
||||
-- v[state-graph]: optional declarative state-graph engine flag. Default OFF
|
||||
-- (existing procedural while loop). When ON, runAssistantTurn routes
|
||||
-- through runGraph in state-graph.ts for node-based execution.
|
||||
ALTER TABLE sessions ADD COLUMN IF NOT EXISTS state_graph_enabled BOOLEAN NOT NULL DEFAULT FALSE;
|
||||
ALTER TABLE sessions DROP COLUMN IF EXISTS tags;
|
||||
|
||||
-- v1.11: anchored rolling compaction.
|
||||
|
||||
Reference in New Issue
Block a user