borgmcp 0.9.31 → 0.9.33

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.
Files changed (64) hide show
  1. package/dist/assimilate-cmd.d.ts +19 -1
  2. package/dist/assimilate-cmd.d.ts.map +1 -1
  3. package/dist/assimilate-cmd.js +80 -12
  4. package/dist/assimilate-cmd.js.map +1 -1
  5. package/dist/assimilate-deps.d.ts.map +1 -1
  6. package/dist/assimilate-deps.js +30 -3
  7. package/dist/assimilate-deps.js.map +1 -1
  8. package/dist/claude.js +145 -17
  9. package/dist/claude.js.map +1 -1
  10. package/dist/cli-platform.d.ts +22 -0
  11. package/dist/cli-platform.d.ts.map +1 -0
  12. package/dist/cli-platform.js +94 -0
  13. package/dist/cli-platform.js.map +1 -0
  14. package/dist/codex-app-server.d.ts +35 -0
  15. package/dist/codex-app-server.d.ts.map +1 -0
  16. package/dist/codex-app-server.js +228 -0
  17. package/dist/codex-app-server.js.map +1 -0
  18. package/dist/codex-app-wake.d.ts +17 -0
  19. package/dist/codex-app-wake.d.ts.map +1 -0
  20. package/dist/codex-app-wake.js +78 -0
  21. package/dist/codex-app-wake.js.map +1 -0
  22. package/dist/codex-remote.d.ts +13 -0
  23. package/dist/codex-remote.d.ts.map +1 -0
  24. package/dist/codex-remote.js +56 -0
  25. package/dist/codex-remote.js.map +1 -0
  26. package/dist/config-utils.d.ts +5 -0
  27. package/dist/config-utils.d.ts.map +1 -1
  28. package/dist/config-utils.js +104 -0
  29. package/dist/config-utils.js.map +1 -1
  30. package/dist/cubes.d.ts +10 -0
  31. package/dist/cubes.d.ts.map +1 -1
  32. package/dist/cubes.js +101 -0
  33. package/dist/cubes.js.map +1 -1
  34. package/dist/inbox-monitor.js +0 -0
  35. package/dist/index.js +25 -17
  36. package/dist/index.js.map +1 -1
  37. package/dist/log-audit.js +25 -1
  38. package/dist/log-audit.js.map +1 -1
  39. package/dist/log-stream.d.ts +15 -5
  40. package/dist/log-stream.d.ts.map +1 -1
  41. package/dist/log-stream.js +113 -8
  42. package/dist/log-stream.js.map +1 -1
  43. package/dist/parse-assimilate-args.d.ts.map +1 -1
  44. package/dist/parse-assimilate-args.js +16 -1
  45. package/dist/parse-assimilate-args.js.map +1 -1
  46. package/dist/regen-format.d.ts +1 -0
  47. package/dist/regen-format.d.ts.map +1 -1
  48. package/dist/regen-format.js +10 -4
  49. package/dist/regen-format.js.map +1 -1
  50. package/dist/regen.js +0 -0
  51. package/dist/setup.js +50 -64
  52. package/dist/setup.js.map +1 -1
  53. package/dist/stream-owner.d.ts +39 -0
  54. package/dist/stream-owner.d.ts.map +1 -0
  55. package/dist/stream-owner.js +202 -0
  56. package/dist/stream-owner.js.map +1 -0
  57. package/dist/stream-status.d.ts.map +1 -1
  58. package/dist/stream-status.js +17 -2
  59. package/dist/stream-status.js.map +1 -1
  60. package/dist/templates.d.ts +8 -8
  61. package/dist/templates.d.ts.map +1 -1
  62. package/dist/templates.js +107 -338
  63. package/dist/templates.js.map +1 -1
  64. package/package.json +2 -1
@@ -1,4 +1,5 @@
1
1
  import type { Role } from './role-resolver.js';
2
+ import type { BorgCli } from './cubes.js';
2
3
  export interface AssimilateFlags {
3
4
  worktree?: string;
4
5
  template?: string;
@@ -6,6 +7,7 @@ export interface AssimilateFlags {
6
7
  cubeName?: string;
7
8
  here?: boolean;
8
9
  yes?: boolean;
10
+ cli?: BorgCli;
9
11
  }
10
12
  export interface AssimilateArgs {
11
13
  role: string | undefined;
@@ -44,7 +46,7 @@ export interface AssimilateDeps {
44
46
  pathExists: (p: string) => boolean;
45
47
  cwd: () => string;
46
48
  chdir: (p: string) => void;
47
- exec: (cmd: string, args: string[], cwd: string) => Promise<number>;
49
+ exec: (cmd: string, args: string[], cwd: string, env?: Record<string, string>) => Promise<number>;
48
50
  stderr: (line: string) => void;
49
51
  stdout: (line: string) => void;
50
52
  prompt: (message: string) => Promise<string>;
@@ -79,6 +81,22 @@ export interface AssimilateDeps {
79
81
  }>>;
80
82
  getInboxPath: (cubeId: string, droneId: string) => string;
81
83
  probeMcpReady: () => Promise<boolean>;
84
+ resolveCli: (explicit?: BorgCli) => Promise<BorgCli>;
85
+ prepareCodexRemoteLaunch: () => Promise<{
86
+ args: string[];
87
+ env: Record<string, string>;
88
+ warning?: string;
89
+ }>;
90
+ setCodexWakeTarget: (cubeId: string, droneId: string, target: {
91
+ threadId: string;
92
+ socketPath: string;
93
+ }) => Promise<void>;
94
+ findLoadedCodexThread: (options: {
95
+ socketPath: string;
96
+ cwd: string;
97
+ previewIncludes: string;
98
+ updatedAfter: number;
99
+ }) => Promise<string | null>;
82
100
  }
83
101
  export declare function runAssimilate(args: AssimilateArgs, deps: AssimilateDeps): Promise<number>;
84
102
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"assimilate-cmd.d.ts","sourceRoot":"","sources":["../src/assimilate-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assimilate-cmd.d.ts","sourceRoot":"","sources":["../src/assimilate-cmd.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { dirname, basename, join } from 'node:path';
2
+ import { randomUUID } from 'node:crypto';
2
3
  import { roleSlug, matchRoleByName, pickDefaultRole } from './role-resolver.js';
3
4
  import { deriveCubeName, parseGitRemote, sanitizeRemoteUrl } from './cube-name.js';
4
5
  import { validateName } from './name-validator.js';
5
6
  import { renderAssimilationWelcome } from './assimilate-welcome.js';
6
7
  import { shellEscape } from './shell-escape.js';
8
+ import { withCodexCwdArg } from './codex-remote.js';
7
9
  export async function runAssimilate(args, deps) {
8
10
  // ----- Input validation (before any subprocess work) -----
9
11
  if (args.role !== undefined) {
@@ -268,8 +270,8 @@ export async function runAssimilate(args, deps) {
268
270
  }
269
271
  return 1;
270
272
  }
271
- // ----- Step 8: Launch Claude Code -----
272
- // Mirrors the kickoff invocation from claude.ts (no-args path): Claude
273
+ // ----- Step 8: Launch selected agent CLI -----
274
+ // Mirrors the kickoff invocation from claude.ts (no-args path): the agent
273
275
  // picks up the newly-persisted ActiveCube via the MCP stdio server on
274
276
  // startup. The kickoff prompt re-enters /loop borg:regen so the new
275
277
  // drone bootstraps into the cube cleanly. The monitor clause (CR-PE-F1)
@@ -285,7 +287,8 @@ export async function runAssimilate(args, deps) {
285
287
  // itself is cube-agnostic so non-default templates render identically.
286
288
  const useColor = deps.isTTY() && !process.env.NO_COLOR && !process.env.CI;
287
289
  deps.stdout(renderAssimilationWelcome(resolvedRole.name, cubeDetail.name, useColor));
288
- const claudeCwd = deps.cwd(); // post-chdir if step 3 spawned a worktree
290
+ const cli = await deps.resolveCli(args.flags.cli);
291
+ const agentCwd = deps.cwd(); // post-chdir if step 3 spawned a worktree
289
292
  // BUG-5 / v0.9.3: probe MCP readiness before launching claude so
290
293
  // the launched session sees tools at startup. Non-blocking: probe
291
294
  // failure surfaces a stderr warning but the launch proceeds (the
@@ -294,16 +297,23 @@ export async function runAssimilate(args, deps) {
294
297
  const mcpReady = await deps.probeMcpReady();
295
298
  if (!mcpReady) {
296
299
  deps.stderr(`warning: borg-mcp readiness probe did not complete within the timeout; ` +
297
- `launching claude anyway — the kickoff prompt's ToolSearch fallback ` +
300
+ `launching ${cli} anyway — the kickoff prompt's ToolSearch fallback ` +
298
301
  `will recover if the MCP server takes longer to start.\n`);
299
302
  }
300
303
  const inboxPath = deps.getInboxPath(result.cube_id, result.drone_id);
301
- const monitorClause = `If you haven't yet, arm a persistent Monitor running the command ` +
302
- `\`borg-inbox-monitor ${inboxPath}\` ` +
303
- `so each event's task-notification title summarizes the new cube log entry ` +
304
- `(drone label, role, and first ~80 chars of the message body) — letting you ` +
305
- `triage events without reading the full body. `;
306
- const kickoff = `/loop Call borg:regen and follow the playbook in its response. ` +
304
+ const codexWakeNonce = cli === 'codex' ? `borg-wake-${randomUUID()}` : null;
305
+ const codexNonceClause = codexWakeNonce
306
+ ? `Wake target nonce: ${codexWakeNonce}. `
307
+ : '';
308
+ const monitorClause = cli === 'claude'
309
+ ? `If you haven't yet, arm a persistent Monitor running the command ` +
310
+ `\`borg-inbox-monitor ${inboxPath}\` ` +
311
+ `so each event's task-notification title summarizes the new cube log entry ` +
312
+ `(drone label, role, and first ~80 chars of the message body) — letting you ` +
313
+ `triage events without reading the full body. `
314
+ : `Codex Borg wakeups use remote-control when available; if no wake arrives, run borg:regen manually when returning to the session. `;
315
+ const kickoff = `${cli === 'claude' ? '/loop ' : ''}Call borg:regen and follow the playbook in its response. ` +
316
+ codexNonceClause +
307
317
  `Note: at session start the borg MCP server is still spinning up in ` +
308
318
  `parallel — if a system reminder claims "MCP server disconnected" or ` +
309
319
  `the borg: tools are not yet registered, do NOT bail. Recover via ` +
@@ -319,8 +329,33 @@ export async function runAssimilate(args, deps) {
319
329
  `reassign / suspect-systemic) when any row is overdue. Append the ` +
320
330
  `awaited signal when you do post Standing (\`Standing for X\`, never ` +
321
331
  `bare). ` +
322
- `Use a 30-minute (1800s) fallback heartbeat for ScheduleWakeup.`;
323
- const exitCode = await deps.exec('claude', [kickoff], claudeCwd);
332
+ (cli === 'claude'
333
+ ? `Use a 30-minute (1800s) fallback heartbeat for ScheduleWakeup.`
334
+ : `Codex Borg wakeups use remote-control when available; if no wake arrives, run borg:regen manually when returning to the session.`);
335
+ let launchArgs = [kickoff];
336
+ let launchEnv;
337
+ let codexSocketPath = null;
338
+ if (cli === 'codex') {
339
+ const remote = await deps.prepareCodexRemoteLaunch();
340
+ if (remote.warning)
341
+ deps.stderr(`warning: ${remote.warning}\n`);
342
+ launchArgs = [...remote.args, ...withCodexCwdArg(launchArgs, agentCwd)];
343
+ launchEnv = Object.keys(remote.env).length > 0 ? remote.env : undefined;
344
+ codexSocketPath = socketPathFromRemoteArgs(remote.args);
345
+ }
346
+ const exitPromise = deps.exec(cli, launchArgs, agentCwd, launchEnv);
347
+ if (cli === 'codex' && codexSocketPath && codexWakeNonce) {
348
+ void recordCodexWakeTarget({
349
+ deps,
350
+ cubeId: result.cube_id,
351
+ droneId: result.drone_id,
352
+ socketPath: codexSocketPath,
353
+ cwd: agentCwd,
354
+ previewNeedle: codexWakeNonce,
355
+ launchedAtSeconds: Math.floor(Date.now() / 1000),
356
+ });
357
+ }
358
+ const exitCode = await exitPromise;
324
359
  // Sprint 18: when a sibling worktree was spawned, the user's shell
325
360
  // returns to their original cwd after Claude exits (process.chdir
326
361
  // doesn't propagate to the parent). Emit a stderr hint so they know
@@ -359,6 +394,39 @@ function worktreeRegistered(deps, projectRoot, candidate) {
359
394
  return false;
360
395
  return res.stdout.split('\n').some((line) => line === `worktree ${candidate}`);
361
396
  }
397
+ function socketPathFromRemoteArgs(args) {
398
+ const index = args.indexOf('--remote');
399
+ if (index < 0)
400
+ return null;
401
+ const value = args[index + 1];
402
+ if (!value?.startsWith('unix://'))
403
+ return null;
404
+ return value.slice('unix://'.length);
405
+ }
406
+ async function recordCodexWakeTarget(options) {
407
+ try {
408
+ const deadline = Date.now() + 15_000;
409
+ while (Date.now() < deadline) {
410
+ const threadId = await options.deps.findLoadedCodexThread({
411
+ socketPath: options.socketPath,
412
+ cwd: options.cwd,
413
+ previewIncludes: options.previewNeedle,
414
+ updatedAfter: options.launchedAtSeconds - 5,
415
+ });
416
+ if (threadId) {
417
+ await options.deps.setCodexWakeTarget(options.cubeId, options.droneId, {
418
+ threadId,
419
+ socketPath: options.socketPath,
420
+ });
421
+ return;
422
+ }
423
+ await new Promise((resolve) => setTimeout(resolve, 500));
424
+ }
425
+ }
426
+ catch {
427
+ // Best-effort mapping: launch still succeeds and manual regen remains available.
428
+ }
429
+ }
362
430
  /**
363
431
  * Sprint 19 (gh#184): suggest the closest cube-role name for a misspelled
364
432
  * CLI role argument. Levenshtein distance ≤2 against the cube's role
@@ -1 +1 @@
1
- {"version":3,"file":"assimilate-cmd.js","sourceRoot":"","sources":["../src/assimilate-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assimilate-cmd.js","sourceRoot":"","sources":["../src/assimilate-cmd.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assimilate-deps.d.ts","sourceRoot":"","sources":["../src/assimilate-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAmB1D,wBAAgB,0BAA0B,IAAI,cAAc,CAoJ3D"}
1
+ {"version":3,"file":"assimilate-deps.d.ts","sourceRoot":"","sources":["../src/assimilate-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAuB1D,wBAAgB,0BAA0B,IAAI,cAAc,CA8K3D"}
@@ -12,9 +12,12 @@ import { existsSync } from 'node:fs';
12
12
  import { hostname as osHostname } from 'node:os';
13
13
  import { createInterface } from 'node:readline/promises';
14
14
  import { API_URL, getValidToken, listCubes as remoteListCubes, getCube as remoteGetCube, createCube as remoteCreateCube, assimilate as remoteAssimilate, listTemplates as remoteListTemplates, } from './remote-client.js';
15
- import { findProjectRoot as cubesFindProjectRoot, getActiveCube as cubesGetActive, setActiveCube as cubesSetActive, inboxPathForDrone, } from './cubes.js';
15
+ import { findProjectRoot as cubesFindProjectRoot, getActiveCube as cubesGetActive, setActiveCube as cubesSetActive, inboxPathForDrone, setCodexWakeTarget, } from './cubes.js';
16
16
  import { authenticateWithGoogle } from './auth.js';
17
17
  import { setTerminalTitle as setTitle } from './terminal-title.js';
18
+ import { defaultCliChoiceDeps, resolveCliChoice } from './cli-platform.js';
19
+ import { prepareCodexRemoteLaunch } from './codex-remote.js';
20
+ import { findLoadedCodexThread } from './codex-app-server.js';
18
21
  export function buildDefaultAssimilateDeps() {
19
22
  return {
20
23
  runSync: (cmd, args, cwd) => {
@@ -28,8 +31,13 @@ export function buildDefaultAssimilateDeps() {
28
31
  pathExists: (p) => existsSync(p),
29
32
  cwd: () => process.cwd(),
30
33
  chdir: (p) => process.chdir(p),
31
- exec: (cmd, args, cwd) => new Promise((resolveExit, rejectExit) => {
32
- const child = spawnChild(cmd, args, { cwd, stdio: 'inherit', shell: false });
34
+ exec: (cmd, args, cwd, env) => new Promise((resolveExit, rejectExit) => {
35
+ const child = spawnChild(cmd, args, {
36
+ cwd,
37
+ stdio: 'inherit',
38
+ shell: false,
39
+ env: env ? { ...process.env, ...env } : process.env,
40
+ });
33
41
  child.on('error', rejectExit);
34
42
  child.on('exit', (code) => resolveExit(code ?? 0));
35
43
  }),
@@ -152,6 +160,25 @@ export function buildDefaultAssimilateDeps() {
152
160
  settle(false);
153
161
  }
154
162
  }),
163
+ resolveCli: (explicit) => resolveCliChoice(explicit, defaultCliChoiceDeps(async (message) => {
164
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
165
+ try {
166
+ return await rl.question(message);
167
+ }
168
+ finally {
169
+ rl.close();
170
+ }
171
+ }, () => process.stdin.isTTY === true)),
172
+ prepareCodexRemoteLaunch: async () => prepareCodexRemoteLaunch((cmd, args) => {
173
+ const r = spawnSync(cmd, args, { encoding: 'utf-8' });
174
+ return {
175
+ status: r.status,
176
+ stdout: r.stdout ?? '',
177
+ stderr: r.stderr ?? '',
178
+ };
179
+ }),
180
+ setCodexWakeTarget,
181
+ findLoadedCodexThread,
155
182
  };
156
183
  }
157
184
  //# sourceMappingURL=assimilate-deps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assimilate-deps.js","sourceRoot":"","sources":["../src/assimilate-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assimilate-deps.js","sourceRoot":"","sources":["../src/assimilate-deps.ts"],"names":[],"mappings":"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"}
package/dist/claude.js CHANGED
@@ -15,10 +15,12 @@
15
15
  * borg sync → Advance the current worktree across the 5
16
16
  * lifecycle states (see sync.ts, gh#33)
17
17
  */
18
- import { spawn } from 'child_process';
18
+ import { spawn, spawnSync } from 'child_process';
19
+ import { randomUUID } from 'node:crypto';
19
20
  import { basename } from 'node:path';
21
+ import { createInterface } from 'node:readline/promises';
20
22
  import chalk from 'chalk';
21
- import { getActiveCube, inboxPathForDrone } from './cubes.js';
23
+ import { getActiveCube, inboxPathForDrone, setCodexWakeTarget } from './cubes.js';
22
24
  import { handleVersionFlag, getPackageVersion } from './version.js';
23
25
  import { runSpawn } from './spawn.js';
24
26
  import { parseSyncArgs, runSync } from './sync.js';
@@ -28,6 +30,10 @@ import { buildDefaultAssimilateDeps } from './assimilate-deps.js';
28
30
  import { setTerminalTitle } from './terminal-title.js';
29
31
  import { initConsolePrefix, consolePrefix } from './console-prefix.js';
30
32
  import { fetchLatestBorgmcpVersion, compareVersionsForStaleness } from './stale-version-check.js';
33
+ import { defaultCliChoiceDeps, detectCliAvailability, parseCliFlag, resolveCliChoice } from './cli-platform.js';
34
+ import { prepareCodexRemoteLaunch, withCodexCwdArg } from './codex-remote.js';
35
+ import { findLoadedCodexThread } from './codex-app-server.js';
36
+ import { addCodexMcpServer, addCodexSessionStartHook, addCodexUserPromptSubmitHook, addMcpServer, addSessionStartHook, addUserPromptSubmitHook, isCodexMcpServerConfigured, isMcpServerConfigured, } from './config-utils.js';
31
37
  async function main() {
32
38
  // Honor `--version` / `-v` before any other work.
33
39
  handleVersionFlag();
@@ -62,9 +68,9 @@ async function main() {
62
68
  ` borg setup Set up OAuth + register MCP server\n` +
63
69
  ` borg assimilate [role] Join a cube (creates one if needed)\n` +
64
70
  ` borg assimilate --worktree <name> Spawn a sibling worktree drone\n` +
71
+ ` borg --cli claude|codex Choose agent CLI for this project\n` +
65
72
  ` borg --version Show installed version\n\n` +
66
- `All other arguments are passed through to Claude Code.\n` +
67
- `For Claude Code help: claude --help\n`);
73
+ `All other arguments are passed through to the selected agent CLI.\n`);
68
74
  process.exit(0);
69
75
  }
70
76
  // Re-route subcommands.
@@ -96,8 +102,24 @@ async function main() {
96
102
  const code = await runSync();
97
103
  process.exit(code);
98
104
  }
105
+ const parsedCli = parseCliFlag(process.argv.slice(2));
106
+ if (parsedCli.error) {
107
+ process.stderr.write(chalk.red(`${consolePrefix()}◼ ${parsedCli.error}\n`));
108
+ process.exit(1);
109
+ }
110
+ const prompt = async (message) => {
111
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
112
+ try {
113
+ return await rl.question(message);
114
+ }
115
+ finally {
116
+ rl.close();
117
+ }
118
+ };
119
+ const cli = await resolveCliChoice(parsedCli.cli, defaultCliChoiceDeps(prompt, () => process.stdin.isTTY === true));
120
+ ensureDetectedCliConfigured();
99
121
  // Forward any user-supplied flags (e.g. --resume <id>, --cwd, etc.) to
100
- // claude unchanged.
122
+ // the selected agent CLI unchanged.
101
123
  //
102
124
  // The kickoff prompt goes at the end as the positional user-message
103
125
  // argument so the SessionStart hook + drone playbook get a turn to
@@ -109,7 +131,7 @@ async function main() {
109
131
  // cube (the MCP client appends a line to that file in real time via
110
132
  // the long-poll poller). A 30-min ScheduleWakeup heartbeat acts as a
111
133
  // safety net so the loop never goes silent.
112
- const passthroughArgs = process.argv.slice(2);
134
+ const passthroughArgs = parsedCli.rest;
113
135
  // Only include the Monitor instruction if this project is already
114
136
  // assimilated to a cube — without one we don't know which inbox file
115
137
  // to watch, and arming a Monitor on a not-yet-relevant path produces
@@ -121,14 +143,19 @@ async function main() {
121
143
  // when stdout isn't a TTY (piped invocation, CI). Claude Code does
122
144
  // not set its own title, so this persists for the session.
123
145
  setTerminalTitle(active ? { label: active.droneLabel, cubeName: active.name } : null, basename(process.cwd()));
124
- const monitorClause = active
146
+ const monitorClause = active && cli === 'claude'
125
147
  ? `If you haven't yet, arm a persistent Monitor running the command ` +
126
148
  `\`borg-inbox-monitor ${inboxPathForDrone(active.cubeId, active.droneId)}\` ` +
127
149
  `so each event's task-notification title summarizes the new cube log entry ` +
128
150
  `(drone label, role, and first ~80 chars of the message body) — letting you ` +
129
151
  `triage events without reading the full body. `
130
152
  : '';
131
- const kickoff = `/loop Call borg:regen and follow the playbook in its response. ` +
153
+ const codexWakeNonce = cli === 'codex' ? `borg-wake-${randomUUID()}` : null;
154
+ const codexNonceClause = codexWakeNonce
155
+ ? `Wake target nonce: ${codexWakeNonce}. `
156
+ : '';
157
+ const kickoff = `${cli === 'claude' ? '/loop ' : ''}Call borg:regen and follow the playbook in its response. ` +
158
+ codexNonceClause +
132
159
  `Note: at session start the borg MCP server is still spinning up in ` +
133
160
  `parallel — if a system reminder claims "MCP server disconnected" or ` +
134
161
  `the borg: tools are not yet registered, do NOT bail. Recover via ` +
@@ -144,32 +171,133 @@ async function main() {
144
171
  `reassign / suspect-systemic) when any row is overdue. Append the ` +
145
172
  `awaited signal when you do post Standing (\`Standing for X\`, never ` +
146
173
  `bare). ` +
147
- `Use a 30-minute (1800s) fallback heartbeat for ScheduleWakeup.`;
174
+ (cli === 'claude'
175
+ ? `Use a 30-minute (1800s) fallback heartbeat for ScheduleWakeup.`
176
+ : `Codex Borg wakeups use remote-control when available; if no wake arrives, run borg:regen manually when returning to the session.`);
148
177
  // Surface the stale-version warning before launching Claude Code so
149
178
  // the operator sees it inline rather than buried in MCP-server stderr.
150
179
  // 2s ceiling: if the registry check hasn't returned by now, skip
151
180
  // silently — Claude Code launch shouldn't wait on a network check.
152
181
  await Promise.race([staleCheckPromise, new Promise((r) => setTimeout(r, 2000))]);
153
- console.error(`${consolePrefix()}${chalk.blue('◼ Launching Claude Code…')}`);
154
- const claudeProcess = spawn('claude', [...passthroughArgs, kickoff], {
182
+ let launchArgs = [...passthroughArgs, kickoff];
183
+ let launchEnv = process.env;
184
+ let codexSocketPath = null;
185
+ if (cli === 'codex' && !passthroughArgs.includes('--remote')) {
186
+ const remote = prepareCodexRemoteLaunch((cmd, args) => {
187
+ const r = spawnSync(cmd, args, { encoding: 'utf-8' });
188
+ return { status: r.status, stdout: r.stdout ?? '', stderr: r.stderr ?? '' };
189
+ });
190
+ if (remote.warning) {
191
+ console.error(`${consolePrefix()}${chalk.yellow(`warning: ${remote.warning}`)}`);
192
+ }
193
+ launchArgs = [...remote.args, ...withCodexCwdArg(launchArgs, process.cwd())];
194
+ launchEnv = { ...process.env, ...remote.env };
195
+ codexSocketPath = socketPathFromRemoteArgs(remote.args);
196
+ }
197
+ console.error(`${consolePrefix()}${chalk.blue(`◼ Launching ${cli === 'claude' ? 'Claude Code' : 'Codex'}…`)}`);
198
+ const agentProcess = spawn(cli, launchArgs, {
155
199
  stdio: 'inherit',
156
200
  shell: false,
201
+ env: launchEnv,
157
202
  });
158
- claudeProcess.on('error', (err) => {
203
+ if (cli === 'codex' && active && codexSocketPath) {
204
+ void recordCodexWakeTarget({
205
+ active,
206
+ socketPath: codexSocketPath,
207
+ passthroughArgs,
208
+ previewNeedle: codexWakeNonce ?? kickoff.slice(0, 120),
209
+ cwd: process.cwd(),
210
+ launchedAtSeconds: Math.floor(Date.now() / 1000),
211
+ });
212
+ }
213
+ agentProcess.on('error', (err) => {
159
214
  if (err.code === 'ENOENT') {
160
- console.error(`${consolePrefix()}${chalk.red('\n◼ Failed to launch Claude Code')}`);
161
- console.error(`${consolePrefix()}${chalk.gray('Make sure Claude Code is installed:')}`);
162
- console.error(`${consolePrefix()}${chalk.gray(' https://claude.ai/download\n')}`);
215
+ console.error(`${consolePrefix()}${chalk.red(`\n◼ Failed to launch ${cli}`)}`);
216
+ console.error(`${consolePrefix()}${chalk.gray(`Make sure ${cli} is installed.\n`)}`);
163
217
  }
164
218
  else {
165
- console.error(`${consolePrefix()}${chalk.red(`\n◼ Failed to launch Claude Code: ${err.message}\n`)}`);
219
+ console.error(`${consolePrefix()}${chalk.red(`\n◼ Failed to launch ${cli}: ${err.message}\n`)}`);
166
220
  }
167
221
  process.exit(1);
168
222
  });
169
- claudeProcess.on('exit', (code) => {
223
+ agentProcess.on('exit', (code) => {
170
224
  process.exit(code ?? 0);
171
225
  });
172
226
  }
227
+ function socketPathFromRemoteArgs(args) {
228
+ const index = args.indexOf('--remote');
229
+ if (index < 0)
230
+ return null;
231
+ const value = args[index + 1];
232
+ if (!value?.startsWith('unix://'))
233
+ return null;
234
+ return value.slice('unix://'.length);
235
+ }
236
+ function threadIdFromPassthroughArgs(args) {
237
+ if (args[0] === 'resume' && args[1] && !args[1].startsWith('-'))
238
+ return args[1];
239
+ const resumeIndex = args.indexOf('--resume');
240
+ if (resumeIndex >= 0 && args[resumeIndex + 1])
241
+ return args[resumeIndex + 1];
242
+ return null;
243
+ }
244
+ async function recordCodexWakeTarget(options) {
245
+ try {
246
+ const explicitThreadId = threadIdFromPassthroughArgs(options.passthroughArgs);
247
+ if (explicitThreadId) {
248
+ await setCodexWakeTarget(options.active.cubeId, options.active.droneId, {
249
+ threadId: explicitThreadId,
250
+ socketPath: options.socketPath,
251
+ });
252
+ return;
253
+ }
254
+ const deadline = Date.now() + 15_000;
255
+ while (Date.now() < deadline) {
256
+ const threadId = await findLoadedCodexThread({
257
+ socketPath: options.socketPath,
258
+ cwd: options.cwd,
259
+ previewIncludes: options.previewNeedle,
260
+ updatedAfter: options.launchedAtSeconds - 5,
261
+ });
262
+ if (threadId) {
263
+ await setCodexWakeTarget(options.active.cubeId, options.active.droneId, {
264
+ threadId,
265
+ socketPath: options.socketPath,
266
+ });
267
+ return;
268
+ }
269
+ await new Promise((resolve) => setTimeout(resolve, 500));
270
+ }
271
+ }
272
+ catch {
273
+ // Best-effort mapping: the kickoff prompt still tells the user how to recover manually.
274
+ }
275
+ }
276
+ function ensureDetectedCliConfigured() {
277
+ const found = detectCliAvailability();
278
+ if (found.claude) {
279
+ try {
280
+ if (!isMcpServerConfigured())
281
+ addMcpServer();
282
+ addSessionStartHook();
283
+ addUserPromptSubmitHook();
284
+ }
285
+ catch (err) {
286
+ console.error(`${consolePrefix()}${chalk.yellow(`warning: Claude Code integration check failed: ${err?.message ?? err}`)}`);
287
+ }
288
+ }
289
+ if (found.codex) {
290
+ try {
291
+ if (!isCodexMcpServerConfigured())
292
+ addCodexMcpServer();
293
+ addCodexSessionStartHook();
294
+ addCodexUserPromptSubmitHook();
295
+ }
296
+ catch (err) {
297
+ console.error(`${consolePrefix()}${chalk.yellow(`warning: Codex integration check failed: ${err?.message ?? err}`)}`);
298
+ }
299
+ }
300
+ }
173
301
  main().catch((error) => {
174
302
  console.error(`${consolePrefix()}${chalk.red(`\n◼ Error: ${error.message}\n`)}`);
175
303
  process.exit(1);