@astroanywhere/agent 0.1.46 → 0.1.48

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.
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Minimal MCP server that provides ONLY the `ask_user_question` tool.
4
+ *
5
+ * Used by non-Claude adapters (Codex, OpenCode) to let agents ask the user
6
+ * clarifying questions during task execution. The tool posts to the Astro
7
+ * server's dynamic approval endpoint and blocks until the user answers.
8
+ *
9
+ * Environment variables:
10
+ * ASTRO_SERVER_URL — Astro API base URL (default: http://localhost:3001)
11
+ * ASTRO_EXECUTION_ID — Current execution/task ID (required for routing)
12
+ */
13
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
14
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
15
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
16
+ const serverUrl = process.env.ASTRO_SERVER_URL || 'http://localhost:3001';
17
+ const server = new Server({ name: 'astro-approval', version: '1.0.0' }, { capabilities: { tools: {} } });
18
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
19
+ tools: [
20
+ {
21
+ name: 'ask_user_question',
22
+ description: 'Ask the user a clarifying question before proceeding. ' +
23
+ 'Execution pauses until the user selects one of the provided options. ' +
24
+ 'Use this when multiple approaches are valid and the decision depends on user preference.',
25
+ inputSchema: {
26
+ type: 'object',
27
+ properties: {
28
+ question: {
29
+ type: 'string',
30
+ description: 'The question to ask the user.',
31
+ },
32
+ options: {
33
+ type: 'array',
34
+ items: { type: 'string' },
35
+ description: 'Array of 2-5 option strings the user can choose from.',
36
+ },
37
+ },
38
+ required: ['question', 'options'],
39
+ },
40
+ },
41
+ ],
42
+ }));
43
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
44
+ const { name, arguments: args } = request.params;
45
+ if (name !== 'ask_user_question') {
46
+ return {
47
+ content: [{ type: 'text', text: `Unknown tool: ${name}` }],
48
+ isError: true,
49
+ };
50
+ }
51
+ const { question, options } = args;
52
+ if (!question || typeof question !== 'string') {
53
+ return {
54
+ content: [{ type: 'text', text: 'question must be a non-empty string' }],
55
+ isError: true,
56
+ };
57
+ }
58
+ if (!Array.isArray(options) || options.length < 2 || options.length > 5) {
59
+ return {
60
+ content: [{ type: 'text', text: 'options must be an array of 2-5 strings' }],
61
+ isError: true,
62
+ };
63
+ }
64
+ // Read execution ID at call time — not at init — so the value stays
65
+ // correct even if the MCP server process is reused across tasks.
66
+ const executionId = process.env.ASTRO_EXECUTION_ID || '';
67
+ if (!executionId) {
68
+ return {
69
+ content: [{ type: 'text', text: 'ASTRO_EXECUTION_ID not set — cannot route approval' }],
70
+ isError: true,
71
+ };
72
+ }
73
+ try {
74
+ // 5-minute timeout — approval blocks until the user responds, but guard against
75
+ // a completely unreachable server. Users typically respond within seconds/minutes.
76
+ const abortCtl = new AbortController();
77
+ const timeout = setTimeout(() => abortCtl.abort(), 5 * 60 * 1000);
78
+ let response;
79
+ try {
80
+ response = await fetch(`${serverUrl}/api/dispatch/request-dynamic-approval`, {
81
+ method: 'POST',
82
+ headers: { 'Content-Type': 'application/json' },
83
+ body: JSON.stringify({ executionId, question, options }),
84
+ signal: abortCtl.signal,
85
+ });
86
+ }
87
+ finally {
88
+ clearTimeout(timeout);
89
+ }
90
+ if (!response.ok) {
91
+ const error = await response.json().catch(() => ({ error: 'Unknown error' }));
92
+ return {
93
+ content: [{ type: 'text', text: `Approval request failed: ${error.error || response.status}` }],
94
+ isError: true,
95
+ };
96
+ }
97
+ const result = await response.json();
98
+ return {
99
+ content: [{ type: 'text', text: `User selected: ${result.selectedOption}` }],
100
+ };
101
+ }
102
+ catch (error) {
103
+ return {
104
+ content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
105
+ isError: true,
106
+ };
107
+ }
108
+ });
109
+ // Start
110
+ const transport = new StdioServerTransport();
111
+ await server.connect(transport);
112
+ //# sourceMappingURL=approval-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-server.js","sourceRoot":"","sources":["../../src/mcp/approval-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;AAE1E,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC5C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE;QACL;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EACT,wDAAwD;gBACxD,uEAAuE;gBACvE,0FAA0F;YAC5F,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,uDAAuD;qBACrE;iBACF;gBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;aAClC;SACF;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;YAC1D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAA+C,CAAC;IAE9E,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAC;YACxE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC;YAC5E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,iEAAiE;IACjE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;IACzD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oDAAoD,EAAE,CAAC;YACvF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,gFAAgF;QAChF,mFAAmF;QACnF,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAClE,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,wCAAwC,EAAE;gBAC3E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;gBACxD,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA6B,KAAgC,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3H,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAgC,CAAC;QACnE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;SAC7E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACrG,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ;AACR,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
@@ -81,4 +81,9 @@ export interface ProviderStatus {
81
81
  maxTasks: number;
82
82
  lastError?: string;
83
83
  }
84
+ /**
85
+ * Resolve the path to the approval MCP server script (compiled JS).
86
+ * Used by Codex and OpenCode adapters to spawn the server as a subprocess.
87
+ */
88
+ export declare function getApprovalServerPath(): string;
84
89
  //# sourceMappingURL=base-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/base-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/base-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Base adapter interface for agent providers
3
3
  */
4
+ import { fileURLToPath } from 'node:url';
5
+ import { dirname, join } from 'node:path';
4
6
  /**
5
7
  * Shared summary prompt used by all adapters to generate structured execution summaries.
6
8
  * Sent as a follow-up turn to the same session, so the agent has full context.
@@ -71,4 +73,13 @@ export function parseSummaryResponse(text, logPrefix) {
71
73
  return undefined;
72
74
  }
73
75
  }
76
+ /**
77
+ * Resolve the path to the approval MCP server script (compiled JS).
78
+ * Used by Codex and OpenCode adapters to spawn the server as a subprocess.
79
+ */
80
+ export function getApprovalServerPath() {
81
+ const thisFile = fileURLToPath(import.meta.url);
82
+ // From dist/providers/base-adapter.js → dist/mcp/approval-server.js
83
+ return join(dirname(thisFile), '..', 'mcp', 'approval-server.js');
84
+ }
74
85
  //# sourceMappingURL=base-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../src/providers/base-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2DH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;EAY5B,CAAC;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;QAChB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;QAChB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;QAChB,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC;QACnB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;QACpB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;QACpB,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;QACrB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,SAAiB;IAClE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,0CAA0C,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,wDAAwD;IACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAqB,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,8DAA8D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,4CAA4C,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/F,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../src/providers/base-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA0D1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;EAY5B,CAAC;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;QAChB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;QAChB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;QAChB,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC;QACnB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;QACpB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;QACpB,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;QACrB,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,SAAiB;IAClE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,0CAA0C,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,wDAAwD;IACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAqB,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,8DAA8D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,4CAA4C,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/F,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAUD;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,oEAAoE;IACpE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;AACpE,CAAC"}
@@ -15,7 +15,15 @@ export declare class CodexAdapter implements ProviderAdapter {
15
15
  private configModel;
16
16
  /** Active sessions per task ID for steering/resume */
17
17
  private activeSessions;
18
+ /** Whether the approval MCP server has been registered with Codex */
19
+ private static mcpRegistered;
18
20
  isAvailable(): Promise<boolean>;
21
+ /**
22
+ * Register the approval MCP server with Codex (one-time, idempotent).
23
+ * The server provides only `ask_user_question` for user approval flow.
24
+ * ASTRO_EXECUTION_ID is inherited from the Codex process env at runtime.
25
+ */
26
+ private ensureApprovalMcpRegistered;
19
27
  /**
20
28
  * Read the default model from ~/.codex/config.toml
21
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"codex-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/codex-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAA8E,MAAM,mBAAmB,CAAC;AAgCjL,qBAAa,YAAa,YAAW,eAAe;IAClD,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,IAAI,kBAAkB;IAE/B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAE1C,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAoC;IAEpD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAajB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA6FvF,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAa1C;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3F;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWvF;;;OAGG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsHhE;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAiDzF,QAAQ;IA4MtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB;IA+IxB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAuC7B,gDAAgD;IAChD,OAAO,CAAC,sBAAsB;IAS9B;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IA4BvC,OAAO,CAAC,gBAAgB;CAwBzB"}
1
+ {"version":3,"file":"codex-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/codex-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAqG,MAAM,mBAAmB,CAAC;AAiCxM,qBAAa,YAAa,YAAW,eAAe;IAClD,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,IAAI,kBAAkB;IAE/B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAE1C,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAoC;IAE1D,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAS;IAE/B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAiCnC;;OAEG;IACH,OAAO,CAAC,eAAe;IAajB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA8FvF,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAa1C;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3F;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWvF;;;OAGG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAyHhE;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAiDzF,QAAQ;IA8MtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB;IA+IxB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAuC7B,gDAAgD;IAChD,OAAO,CAAC,sBAAsB;IAS9B;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IA4BvC,OAAO,CAAC,gBAAgB;CAwBzB"}
@@ -3,13 +3,14 @@
3
3
  *
4
4
  * Executes tasks using the Codex CLI
5
5
  */
6
- import { spawn } from 'node:child_process';
6
+ import { spawn, execFileSync } from 'node:child_process';
7
7
  import { existsSync, readFileSync } from 'node:fs';
8
8
  import { join } from 'node:path';
9
9
  import { homedir } from 'node:os';
10
10
  import { writeImagesToDir, cleanupImages } from '../lib/image-utils.js';
11
- import { SUMMARY_PROMPT, SUMMARY_TIMEOUT_MS, parseSummaryResponse, createNoopStream } from './base-adapter.js';
11
+ import { SUMMARY_PROMPT, SUMMARY_TIMEOUT_MS, parseSummaryResponse, createNoopStream, getApprovalServerPath } from './base-adapter.js';
12
12
  import { getProvider } from '../lib/providers.js';
13
+ import { config } from '../lib/config.js';
13
14
  /** Session TTL: 10 minutes */
14
15
  const SESSION_TTL_MS = 10 * 60 * 1000;
15
16
  export class CodexAdapter {
@@ -22,6 +23,8 @@ export class CodexAdapter {
22
23
  configModel = null;
23
24
  /** Active sessions per task ID for steering/resume */
24
25
  activeSessions = new Map();
26
+ /** Whether the approval MCP server has been registered with Codex */
27
+ static mcpRegistered = false;
25
28
  async isAvailable() {
26
29
  const provider = await getProvider('codex');
27
30
  if (provider?.available) {
@@ -31,6 +34,45 @@ export class CodexAdapter {
31
34
  }
32
35
  return false;
33
36
  }
37
+ /**
38
+ * Register the approval MCP server with Codex (one-time, idempotent).
39
+ * The server provides only `ask_user_question` for user approval flow.
40
+ * ASTRO_EXECUTION_ID is inherited from the Codex process env at runtime.
41
+ */
42
+ ensureApprovalMcpRegistered() {
43
+ if (CodexAdapter.mcpRegistered)
44
+ return;
45
+ try {
46
+ // If `codex mcp get` exits 0, the server is already registered.
47
+ // Non-zero exit (thrown as error) means not registered — proceed to add.
48
+ execFileSync(this.codexPath, ['mcp', 'get', 'astro-approval'], {
49
+ encoding: 'utf-8',
50
+ timeout: 5000,
51
+ stdio: ['pipe', 'pipe', 'pipe'],
52
+ });
53
+ CodexAdapter.mcpRegistered = true;
54
+ console.log('[codex] Approval MCP server already registered');
55
+ return;
56
+ }
57
+ catch {
58
+ // Not registered yet — proceed to add
59
+ }
60
+ try {
61
+ const serverPath = getApprovalServerPath();
62
+ const apiUrl = config.getConfig().apiUrl || 'http://localhost:3001';
63
+ // Use execFileSync with array args to prevent shell injection
64
+ execFileSync(this.codexPath, [
65
+ 'mcp', 'add', 'astro-approval',
66
+ '--env', `ASTRO_SERVER_URL=${apiUrl}`,
67
+ '--', 'node', serverPath,
68
+ ], { encoding: 'utf-8', timeout: 10000 });
69
+ CodexAdapter.mcpRegistered = true;
70
+ console.log(`[codex] Registered approval MCP server: node ${serverPath}`);
71
+ }
72
+ catch (err) {
73
+ console.warn('[codex] Failed to register approval MCP server:', err instanceof Error ? err.message : err);
74
+ }
75
+ }
34
76
  /**
35
77
  * Read the default model from ~/.codex/config.toml
36
78
  */
@@ -63,6 +105,7 @@ export class CodexAdapter {
63
105
  }
64
106
  this.activeTasks++;
65
107
  this.cleanupExpiredSessions();
108
+ this.ensureApprovalMcpRegistered();
66
109
  const execState = { turnCount: 0 };
67
110
  const startedAt = new Date().toISOString();
68
111
  try {
@@ -201,7 +244,10 @@ export class CodexAdapter {
201
244
  try {
202
245
  proc = spawn(this.codexPath, args, {
203
246
  cwd: workingDirectory || undefined,
204
- env: process.env,
247
+ env: {
248
+ ...process.env,
249
+ ASTRO_EXECUTION_ID: taskId,
250
+ },
205
251
  stdio: ['pipe', 'pipe', 'pipe'],
206
252
  });
207
253
  }
@@ -389,6 +435,8 @@ export class CodexAdapter {
389
435
  const env = {
390
436
  ...process.env,
391
437
  ...task.environment,
438
+ // Inject execution ID so the approval MCP server can route approvals
439
+ ASTRO_EXECUTION_ID: task.id,
392
440
  };
393
441
  let proc;
394
442
  // Validate working directory exists before spawning.
@@ -1 +1 @@
1
- {"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/providers/codex-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/providers/codex-adapter.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,19 @@ export declare class OpenCodeAdapter implements ProviderAdapter {
59
59
  * Uses `opencode run --session <id> --print --output-format json` with the summary prompt.
60
60
  */
61
61
  generateSummary(taskId: string, workingDirectory?: string): Promise<ExecutionSummary | undefined>;
62
+ /** Tracks opencode.json files we created (not pre-existing) for cleanup */
63
+ private injectedConfigPaths;
64
+ /**
65
+ * Ensure the approval MCP server is configured in the working directory's
66
+ * opencode.json so the agent can call `ask_user_question` during execution.
67
+ * Merges with any existing config; idempotent. Skips if existing file is corrupt.
68
+ */
69
+ private ensureApprovalMcpConfig;
70
+ /**
71
+ * Remove opencode.json files we created (not pre-existing) to avoid polluting
72
+ * the user's working directory / git worktree.
73
+ */
74
+ private cleanupInjectedConfig;
62
75
  private runOpenCode;
63
76
  /**
64
77
  * Shared spawn + stream logic used by both execute and resume paths.
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/opencode-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAA8E,MAAM,mBAAmB,CAAC;AAcjL,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,IAAI,cAAc;IAE3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAAC,CAAwB;IAClD,6EAA6E;IAC7E,OAAO,CAAC,YAAY,CAA6B;IACjD,gEAAgE;IAChE,OAAO,CAAC,iBAAiB,CAAuC;IAChE,uDAAuD;IACvD,OAAO,CAAC,aAAa,CAAC,CAAS;IAEzB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAYjB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA+FvF,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAe1C;;;OAGG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA+ChE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9F;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAYtF,OAAO,CAAC,sBAAsB;IAW9B;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAsDvG,OAAO,CAAC,WAAW;IAoCnB;;OAEG;IACH,OAAO,CAAC,cAAc;IA2GtB;;;;;;;;OAQG;IACH,kFAAkF;IAClF,sBAAsB,CACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,gBAAgB,GACvB,IAAI;IAgCP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,GACvB,IAAI;CAoHR"}
1
+ {"version":3,"file":"opencode-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/opencode-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAqG,MAAM,mBAAmB,CAAC;AAexM,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,IAAI,cAAc;IAE3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAAC,CAAwB;IAClD,6EAA6E;IAC7E,OAAO,CAAC,YAAY,CAA6B;IACjD,gEAAgE;IAChE,OAAO,CAAC,iBAAiB,CAAuC;IAChE,uDAAuD;IACvD,OAAO,CAAC,aAAa,CAAC,CAAS;IAEzB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAYjB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAwGvF,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAe1C;;;OAGG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkDhE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9F;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAYtF,OAAO,CAAC,sBAAsB;IAW9B;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAoDvG,2EAA2E;IAC3E,OAAO,CAAC,mBAAmB,CAAqB;IAEhD;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAyC/B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,WAAW;IAwCnB;;OAEG;IACH,OAAO,CAAC,cAAc;IA2GtB;;;;;;;;OAQG;IACH,kFAAkF;IAClF,sBAAsB,CACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,gBAAgB,GACvB,IAAI;IAgCP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,GACvB,IAAI;CAoHR"}
@@ -10,11 +10,12 @@
10
10
  * system, assistant, tool_result, result
11
11
  */
12
12
  import { spawn } from 'node:child_process';
13
- import { existsSync, readFileSync } from 'node:fs';
13
+ import { existsSync, readFileSync, writeFileSync, unlinkSync } from 'node:fs';
14
14
  import { join } from 'node:path';
15
15
  import { homedir } from 'node:os';
16
- import { SUMMARY_PROMPT, SUMMARY_TIMEOUT_MS, parseSummaryResponse, createNoopStream } from './base-adapter.js';
16
+ import { SUMMARY_PROMPT, SUMMARY_TIMEOUT_MS, parseSummaryResponse, createNoopStream, getApprovalServerPath } from './base-adapter.js';
17
17
  import { getProvider } from '../lib/providers.js';
18
+ import { config } from '../lib/config.js';
18
19
  /** TTL for preserved sessions (10 minutes) */
19
20
  const SESSION_TTL_MS = 10 * 60 * 1000;
20
21
  export class OpenCodeAdapter {
@@ -74,6 +75,10 @@ export class OpenCodeAdapter {
74
75
  const startedAt = new Date().toISOString();
75
76
  try {
76
77
  stream.status('running', 0, 'Starting OpenCode');
78
+ // Ensure approval MCP server is configured in the working directory
79
+ if (task.workingDirectory) {
80
+ this.ensureApprovalMcpConfig(task.workingDirectory);
81
+ }
77
82
  this.lastResultMetrics = undefined;
78
83
  this.lastSessionId = undefined;
79
84
  this.toolIdToName.clear();
@@ -144,6 +149,10 @@ export class OpenCodeAdapter {
144
149
  }
145
150
  finally {
146
151
  this.activeTasks--;
152
+ // Clean up injected opencode.json to avoid polluting the working directory
153
+ if (task.workingDirectory) {
154
+ this.cleanupInjectedConfig(task.workingDirectory);
155
+ }
147
156
  }
148
157
  }
149
158
  async getStatus() {
@@ -183,7 +192,7 @@ export class OpenCodeAdapter {
183
192
  ...(model ? ['--model', model] : []),
184
193
  message,
185
194
  ];
186
- const result = await this.spawnAndStream(args, workingDirectory, stream, signal);
195
+ const result = await this.spawnAndStream(args, workingDirectory, stream, signal, { ASTRO_EXECUTION_ID: taskId });
187
196
  // Update preserved session with new session ID if available
188
197
  if (this.lastSessionId && session) {
189
198
  session.sessionId = this.lastSessionId;
@@ -279,6 +288,68 @@ export class OpenCodeAdapter {
279
288
  clearTimeout(summaryTimeout);
280
289
  }
281
290
  }
291
+ /** Tracks opencode.json files we created (not pre-existing) for cleanup */
292
+ injectedConfigPaths = new Set();
293
+ /**
294
+ * Ensure the approval MCP server is configured in the working directory's
295
+ * opencode.json so the agent can call `ask_user_question` during execution.
296
+ * Merges with any existing config; idempotent. Skips if existing file is corrupt.
297
+ */
298
+ ensureApprovalMcpConfig(workingDirectory) {
299
+ const configPath = join(workingDirectory, 'opencode.json');
300
+ const preExisted = existsSync(configPath);
301
+ let existing = {};
302
+ try {
303
+ if (preExisted) {
304
+ existing = JSON.parse(readFileSync(configPath, 'utf-8'));
305
+ }
306
+ }
307
+ catch {
308
+ // Existing file has invalid JSON — don't overwrite it
309
+ console.warn(`[opencode] Existing ${configPath} has invalid JSON — skipping MCP config injection`);
310
+ return;
311
+ }
312
+ const mcp = (existing.mcp || {});
313
+ if (mcp['astro-approval'])
314
+ return; // Already configured
315
+ const serverPath = getApprovalServerPath();
316
+ const apiUrl = config.getConfig().apiUrl || 'http://localhost:3001';
317
+ mcp['astro-approval'] = {
318
+ type: 'local',
319
+ command: ['node', serverPath],
320
+ environment: {
321
+ ASTRO_SERVER_URL: apiUrl,
322
+ },
323
+ };
324
+ const updated = { ...existing, mcp };
325
+ try {
326
+ writeFileSync(configPath, JSON.stringify(updated, null, 2));
327
+ // Track for cleanup only if we created the file (don't delete user's pre-existing config)
328
+ if (!preExisted) {
329
+ this.injectedConfigPaths.add(configPath);
330
+ }
331
+ console.log(`[opencode] Wrote approval MCP config to ${configPath}`);
332
+ }
333
+ catch (err) {
334
+ console.warn(`[opencode] Failed to write MCP config:`, err instanceof Error ? err.message : err);
335
+ }
336
+ }
337
+ /**
338
+ * Remove opencode.json files we created (not pre-existing) to avoid polluting
339
+ * the user's working directory / git worktree.
340
+ */
341
+ cleanupInjectedConfig(workingDirectory) {
342
+ const configPath = join(workingDirectory, 'opencode.json');
343
+ if (this.injectedConfigPaths.has(configPath)) {
344
+ try {
345
+ unlinkSync(configPath);
346
+ this.injectedConfigPaths.delete(configPath);
347
+ }
348
+ catch {
349
+ // Best-effort cleanup
350
+ }
351
+ }
352
+ }
282
353
  // ─── CLI Execution ────────────────────────────────────────────
283
354
  runOpenCode(task, stream, signal) {
284
355
  const model = task.model || this.configModel;
@@ -299,7 +370,11 @@ export class OpenCodeAdapter {
299
370
  ...(model ? ['--model', model] : []),
300
371
  effectivePrompt,
301
372
  ];
302
- return this.spawnAndStream(args, task.workingDirectory, stream, signal, task.environment, task.timeout);
373
+ return this.spawnAndStream(args, task.workingDirectory, stream, signal, {
374
+ ...task.environment,
375
+ // Inject execution ID so the approval MCP server can route approvals
376
+ ASTRO_EXECUTION_ID: task.id,
377
+ }, task.timeout);
303
378
  }
304
379
  /**
305
380
  * Shared spawn + stream logic used by both execute and resume paths.