@buildautomaton/cli 0.1.58 → 0.1.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buildautomaton/cli",
3
- "version": "0.1.58",
3
+ "version": "0.1.59",
4
4
  "description": "CLI for BuildAutomaton: ACP client, WebSocket bridge to backend, and skills (e.g. preview)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,15 +0,0 @@
1
- ALTER TABLE symbol_index_tag ADD COLUMN scope_chain TEXT;
2
-
3
- CREATE TABLE IF NOT EXISTS symbol_index_scope (
4
- parent_id INTEGER NOT NULL,
5
- file_path TEXT NOT NULL,
6
- start_line INTEGER NOT NULL,
7
- start_column INTEGER NOT NULL,
8
- parent_start_line INTEGER,
9
- parent_start_column INTEGER,
10
- PRIMARY KEY (parent_id, file_path, start_line, start_column),
11
- FOREIGN KEY (parent_id) REFERENCES symbol_index_parent_path(id) ON DELETE CASCADE
12
- );
13
-
14
- CREATE INDEX IF NOT EXISTS idx_symbol_index_scope_parent_file
15
- ON symbol_index_scope(parent_id, file_path);
@@ -1,3 +0,0 @@
1
- ALTER TABLE symbol_index_tag ADD COLUMN scope_start_line INTEGER;
2
- ALTER TABLE symbol_index_tag ADD COLUMN scope_start_column INTEGER;
3
- ALTER TABLE symbol_index_tag ADD COLUMN nav_target_path TEXT;
@@ -1,5 +0,0 @@
1
- CREATE INDEX IF NOT EXISTS idx_symbol_index_tag_parent_role
2
- ON symbol_index_tag(parent_id, role);
3
-
4
- CREATE INDEX IF NOT EXISTS idx_symbol_index_tag_parent_role_file_name
5
- ON symbol_index_tag(parent_id, role, file_path, name);
@@ -1,2 +0,0 @@
1
- ALTER TABLE symbol_index_tag ADD COLUMN parent_scope_start_line INTEGER;
2
- ALTER TABLE symbol_index_tag ADD COLUMN parent_scope_start_column INTEGER;
@@ -1,19 +0,0 @@
1
- CREATE TABLE IF NOT EXISTS symbol_index_import (
2
- parent_id INTEGER NOT NULL,
3
- file_path TEXT NOT NULL,
4
- local_name TEXT NOT NULL,
5
- source_name TEXT NOT NULL,
6
- module_specifier TEXT NOT NULL,
7
- source_file_path TEXT,
8
- import_kind TEXT NOT NULL,
9
- start_line INTEGER NOT NULL,
10
- start_column INTEGER NOT NULL,
11
- PRIMARY KEY (parent_id, file_path, local_name, start_line, start_column),
12
- FOREIGN KEY (parent_id) REFERENCES symbol_index_parent_path(id) ON DELETE CASCADE
13
- );
14
-
15
- CREATE INDEX IF NOT EXISTS idx_symbol_index_import_parent_file
16
- ON symbol_index_import(parent_id, file_path);
17
-
18
- CREATE INDEX IF NOT EXISTS idx_symbol_index_import_local_name
19
- ON symbol_index_import(parent_id, file_path, local_name);
@@ -1,2 +0,0 @@
1
- ALTER TABLE symbol_index_tag ADD COLUMN member_parent_scope_start_line INTEGER;
2
- ALTER TABLE symbol_index_tag ADD COLUMN member_parent_scope_start_column INTEGER;
@@ -1,132 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire } from "module"; const require = createRequire(import.meta.url);
3
-
4
-
5
- // src/mcp/stdio-mcp-server.ts
6
- import * as readline from "node:readline";
7
- function runStdioMcpServer(options) {
8
- const rl = readline.createInterface({ input: process.stdin, terminal: false });
9
- rl.on("line", (line) => {
10
- void handleLine(line);
11
- });
12
- async function handleLine(line) {
13
- const trimmed = line.trim();
14
- if (!trimmed) return;
15
- let msg;
16
- try {
17
- msg = JSON.parse(trimmed);
18
- } catch {
19
- return;
20
- }
21
- if (msg.jsonrpc !== "2.0" || typeof msg.method !== "string") return;
22
- const id = msg.id;
23
- const respond = (result) => {
24
- if (id === void 0) return;
25
- process.stdout.write(`${JSON.stringify({ jsonrpc: "2.0", id, result })}
26
- `);
27
- };
28
- const respondError = (message) => {
29
- if (id === void 0) return;
30
- process.stdout.write(
31
- `${JSON.stringify({ jsonrpc: "2.0", id, error: { code: -32603, message } })}
32
- `
33
- );
34
- };
35
- try {
36
- switch (msg.method) {
37
- case "initialize":
38
- respond({
39
- protocolVersion: "2024-11-05",
40
- capabilities: { tools: {} },
41
- serverInfo: { name: options.serverName, version: options.serverVersion }
42
- });
43
- return;
44
- case "notifications/initialized":
45
- return;
46
- case "tools/list":
47
- respond({ tools: options.tools });
48
- return;
49
- case "tools/call": {
50
- const name = typeof msg.params?.name === "string" ? msg.params.name : "";
51
- const args = msg.params?.arguments != null && typeof msg.params.arguments === "object" && !Array.isArray(msg.params.arguments) ? msg.params.arguments : {};
52
- if (!name) {
53
- respondError("Tool name required");
54
- return;
55
- }
56
- const result = await options.callTool(name, args);
57
- respond(result);
58
- return;
59
- }
60
- default:
61
- if (id !== void 0) respondError(`Unknown method: ${msg.method}`);
62
- }
63
- } catch (err) {
64
- respondError(err instanceof Error ? err.message : String(err));
65
- }
66
- }
67
- }
68
-
69
- // src/mcp/fork-history-constants.ts
70
- var FORK_HISTORY_MCP_SERVER_NAME = "buildautomaton-fork-history";
71
- var FORK_HISTORY_TOOL_LIST_TURNS = "list_forked_session_turns";
72
- var FORK_HISTORY_TOOL_GET_TURN_TRANSCRIPT = "get_forked_session_turn_transcript";
73
-
74
- // src/mcp/fork-history-mcp-server.ts
75
- var ipcPort = Number.parseInt(process.env.BA_MCP_IPC_PORT ?? "", 10);
76
- var parentSessionId = (process.env.BA_FORK_PARENT_SESSION_ID ?? "").trim();
77
- async function ipcRequest(body) {
78
- if (!Number.isFinite(ipcPort) || ipcPort <= 0) {
79
- throw new Error("BA_MCP_IPC_PORT is not configured");
80
- }
81
- const res = await fetch(`http://127.0.0.1:${ipcPort}/fork-history`, {
82
- method: "POST",
83
- headers: { "Content-Type": "application/json" },
84
- body: JSON.stringify(body)
85
- });
86
- const json = await res.json();
87
- if (!json.ok) {
88
- throw new Error(json.error ?? "Fork history IPC request failed");
89
- }
90
- return json.data;
91
- }
92
- var tools = [
93
- {
94
- name: FORK_HISTORY_TOOL_LIST_TURNS,
95
- description: "List prompt turns from the parent session this fork continues from. Returns summaries and previews for each turn.",
96
- inputSchema: { type: "object", properties: {}, additionalProperties: false }
97
- },
98
- {
99
- name: FORK_HISTORY_TOOL_GET_TURN_TRANSCRIPT,
100
- description: "Fetch the full transcript for a specific turn from the parent session. Use turnId from list_forked_session_turns.",
101
- inputSchema: {
102
- type: "object",
103
- properties: {
104
- turnId: { type: "string", description: "Turn id from list_forked_session_turns" }
105
- },
106
- required: ["turnId"],
107
- additionalProperties: false
108
- }
109
- }
110
- ];
111
- runStdioMcpServer({
112
- serverName: FORK_HISTORY_MCP_SERVER_NAME,
113
- serverVersion: "0.1.0",
114
- tools,
115
- callTool: async (name, args) => {
116
- if (!parentSessionId) {
117
- throw new Error("This MCP server is only available for forked sessions");
118
- }
119
- if (name === FORK_HISTORY_TOOL_LIST_TURNS) {
120
- const data = await ipcRequest({ parentSessionId, action: "list_turns" });
121
- return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
122
- }
123
- if (name === FORK_HISTORY_TOOL_GET_TURN_TRANSCRIPT) {
124
- const turnId = typeof args.turnId === "string" ? args.turnId.trim() : "";
125
- if (!turnId) throw new Error("turnId is required");
126
- const data = await ipcRequest({ parentSessionId, action: "get_turn_transcript", turnId });
127
- return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
128
- }
129
- throw new Error(`Unknown tool: ${name}`);
130
- }
131
- });
132
- //# sourceMappingURL=fork-history-mcp-server.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/mcp/stdio-mcp-server.ts", "../src/mcp/fork-history-constants.ts", "../src/mcp/fork-history-mcp-server.ts"],
4
- "sourcesContent": ["import * as readline from 'node:readline';\n\nexport type McpToolDef = {\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n};\n\nexport type McpToolHandler = (args: Record<string, unknown>) => Promise<{ content: Array<{ type: 'text'; text: string }> }>;\n\nexport function runStdioMcpServer(options: {\n serverName: string;\n serverVersion: string;\n tools: McpToolDef[];\n callTool: (name: string, args: Record<string, unknown>) => Promise<{ content: Array<{ type: 'text'; text: string }> }>;\n}): void {\n const rl = readline.createInterface({ input: process.stdin, terminal: false });\n rl.on('line', (line) => {\n void handleLine(line);\n });\n\n async function handleLine(line: string): Promise<void> {\n const trimmed = line.trim();\n if (!trimmed) return;\n let msg: { jsonrpc?: string; id?: number | string; method?: string; params?: Record<string, unknown> };\n try {\n msg = JSON.parse(trimmed) as typeof msg;\n } catch {\n return;\n }\n if (msg.jsonrpc !== '2.0' || typeof msg.method !== 'string') return;\n\n const id = msg.id;\n const respond = (result: unknown) => {\n if (id === undefined) return;\n process.stdout.write(`${JSON.stringify({ jsonrpc: '2.0', id, result })}\\n`);\n };\n const respondError = (message: string) => {\n if (id === undefined) return;\n process.stdout.write(\n `${JSON.stringify({ jsonrpc: '2.0', id, error: { code: -32603, message } })}\\n`,\n );\n };\n\n try {\n switch (msg.method) {\n case 'initialize':\n respond({\n protocolVersion: '2024-11-05',\n capabilities: { tools: {} },\n serverInfo: { name: options.serverName, version: options.serverVersion },\n });\n return;\n case 'notifications/initialized':\n return;\n case 'tools/list':\n respond({ tools: options.tools });\n return;\n case 'tools/call': {\n const name = typeof msg.params?.name === 'string' ? msg.params.name : '';\n const args =\n msg.params?.arguments != null &&\n typeof msg.params.arguments === 'object' &&\n !Array.isArray(msg.params.arguments)\n ? (msg.params.arguments as Record<string, unknown>)\n : {};\n if (!name) {\n respondError('Tool name required');\n return;\n }\n const result = await options.callTool(name, args);\n respond(result);\n return;\n }\n default:\n if (id !== undefined) respondError(`Unknown method: ${msg.method}`);\n }\n } catch (err) {\n respondError(err instanceof Error ? err.message : String(err));\n }\n }\n}\n", "/** ACP MCP server name registered for forked sessions (see session/new mcpServers). */\nexport const FORK_HISTORY_MCP_SERVER_NAME = 'buildautomaton-fork-history';\n\nexport const FORK_HISTORY_TOOL_LIST_TURNS = 'list_forked_session_turns';\n\nexport const FORK_HISTORY_TOOL_GET_TURN_TRANSCRIPT = 'get_forked_session_turn_transcript';\n", "#!/usr/bin/env node\n/**\n * Stdio MCP server exposing forked-session parent history tools.\n * Spawned by ACP agents when a session has `parentSessionId`; routes data requests\n * to the CLI bridge via `BA_MCP_IPC_PORT`.\n */\nimport { runStdioMcpServer } from './stdio-mcp-server.js';\nimport {\n FORK_HISTORY_MCP_SERVER_NAME,\n FORK_HISTORY_TOOL_GET_TURN_TRANSCRIPT,\n FORK_HISTORY_TOOL_LIST_TURNS,\n} from './fork-history-constants.js';\n\nconst ipcPort = Number.parseInt(process.env.BA_MCP_IPC_PORT ?? '', 10);\nconst parentSessionId = (process.env.BA_FORK_PARENT_SESSION_ID ?? '').trim();\n\nasync function ipcRequest(body: Record<string, unknown>): Promise<unknown> {\n if (!Number.isFinite(ipcPort) || ipcPort <= 0) {\n throw new Error('BA_MCP_IPC_PORT is not configured');\n }\n const res = await fetch(`http://127.0.0.1:${ipcPort}/fork-history`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(body),\n });\n const json = (await res.json()) as { ok?: boolean; data?: unknown; error?: string };\n if (!json.ok) {\n throw new Error(json.error ?? 'Fork history IPC request failed');\n }\n return json.data;\n}\n\nconst tools = [\n {\n name: FORK_HISTORY_TOOL_LIST_TURNS,\n description:\n 'List prompt turns from the parent session this fork continues from. Returns summaries and previews for each turn.',\n inputSchema: { type: 'object', properties: {}, additionalProperties: false },\n },\n {\n name: FORK_HISTORY_TOOL_GET_TURN_TRANSCRIPT,\n description:\n 'Fetch the full transcript for a specific turn from the parent session. Use turnId from list_forked_session_turns.',\n inputSchema: {\n type: 'object',\n properties: {\n turnId: { type: 'string', description: 'Turn id from list_forked_session_turns' },\n },\n required: ['turnId'],\n additionalProperties: false,\n },\n },\n];\n\nrunStdioMcpServer({\n serverName: FORK_HISTORY_MCP_SERVER_NAME,\n serverVersion: '0.1.0',\n tools,\n callTool: async (name, args) => {\n if (!parentSessionId) {\n throw new Error('This MCP server is only available for forked sessions');\n }\n if (name === FORK_HISTORY_TOOL_LIST_TURNS) {\n const data = await ipcRequest({ parentSessionId, action: 'list_turns' });\n return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };\n }\n if (name === FORK_HISTORY_TOOL_GET_TURN_TRANSCRIPT) {\n const turnId = typeof args.turnId === 'string' ? args.turnId.trim() : '';\n if (!turnId) throw new Error('turnId is required');\n const data = await ipcRequest({ parentSessionId, action: 'get_turn_transcript', turnId });\n return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };\n }\n throw new Error(`Unknown tool: ${name}`);\n },\n});\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,10 +0,0 @@
1
- CREATE TABLE IF NOT EXISTS acp_capability_cache (
2
- workspace_id TEXT NOT NULL,
3
- agent_type TEXT NOT NULL,
4
- agent_id TEXT NOT NULL DEFAULT '',
5
- config_options_json TEXT NOT NULL,
6
- updated_at TEXT NOT NULL,
7
- PRIMARY KEY (workspace_id, agent_type, agent_id)
8
- );
9
-
10
- CREATE INDEX IF NOT EXISTS idx_acp_capability_cache_workspace ON acp_capability_cache(workspace_id);
@@ -1,10 +0,0 @@
1
- CREATE TABLE IF NOT EXISTS agent_capability_cache (
2
- workspace_id TEXT NOT NULL,
3
- agent_type TEXT NOT NULL,
4
- config_options_json TEXT NOT NULL,
5
- content_hash TEXT NOT NULL,
6
- updated_at TEXT NOT NULL,
7
- PRIMARY KEY (workspace_id, agent_type)
8
- );
9
-
10
- CREATE INDEX IF NOT EXISTS idx_agent_capability_cache_workspace ON agent_capability_cache(workspace_id);
@@ -1,17 +0,0 @@
1
- DROP INDEX IF EXISTS idx_file_index_path_cwd;
2
- DROP TABLE IF EXISTS file_index_path;
3
-
4
- CREATE TABLE IF NOT EXISTS file_index_parent_path (
5
- id INTEGER PRIMARY KEY AUTOINCREMENT,
6
- path TEXT NOT NULL UNIQUE,
7
- path_hash TEXT NOT NULL,
8
- updated_at TEXT NOT NULL
9
- );
10
-
11
- CREATE TABLE IF NOT EXISTS file_index_child_path (
12
- parent_id INTEGER NOT NULL,
13
- path TEXT NOT NULL,
14
- PRIMARY KEY (parent_id, path),
15
- FOREIGN KEY (parent_id) REFERENCES file_index_parent_path(id) ON DELETE CASCADE
16
- );
17
- CREATE INDEX IF NOT EXISTS idx_file_index_child_path_parent ON file_index_child_path(parent_id);
@@ -1,14 +0,0 @@
1
- CREATE TABLE IF NOT EXISTS bridge_runtime (
2
- key TEXT PRIMARY KEY NOT NULL,
3
- value TEXT NOT NULL,
4
- updated_at TEXT NOT NULL
5
- );
6
-
7
- CREATE TABLE IF NOT EXISTS mcp_session_bind (
8
- id INTEGER PRIMARY KEY AUTOINCREMENT,
9
- session_id TEXT NOT NULL,
10
- created_at TEXT NOT NULL,
11
- consumed_at TEXT
12
- );
13
-
14
- CREATE INDEX IF NOT EXISTS idx_mcp_session_bind_pending ON mcp_session_bind (consumed_at, id);
@@ -1,23 +0,0 @@
1
- CREATE TABLE IF NOT EXISTS symbol_index_parent_path (
2
- id INTEGER PRIMARY KEY AUTOINCREMENT,
3
- path TEXT NOT NULL UNIQUE,
4
- path_hash TEXT NOT NULL,
5
- updated_at TEXT NOT NULL
6
- );
7
-
8
- CREATE TABLE IF NOT EXISTS symbol_index_tag (
9
- parent_id INTEGER NOT NULL,
10
- file_path TEXT NOT NULL,
11
- name TEXT NOT NULL,
12
- role TEXT NOT NULL,
13
- kind TEXT NOT NULL,
14
- start_line INTEGER NOT NULL,
15
- start_column INTEGER NOT NULL,
16
- end_line INTEGER NOT NULL,
17
- end_column INTEGER NOT NULL,
18
- PRIMARY KEY (parent_id, file_path, start_line, start_column, role, kind, name),
19
- FOREIGN KEY (parent_id) REFERENCES symbol_index_parent_path(id) ON DELETE CASCADE
20
- );
21
-
22
- CREATE INDEX IF NOT EXISTS idx_symbol_index_tag_parent_name ON symbol_index_tag(parent_id, name);
23
- CREATE INDEX IF NOT EXISTS idx_symbol_index_tag_parent_file ON symbol_index_tag(parent_id, file_path);
@@ -1 +0,0 @@
1
- ALTER TABLE symbol_index_parent_path ADD COLUMN index_version INTEGER NOT NULL DEFAULT 1;