borgmcp 0.9.31 → 0.9.34

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 +148 -19
  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 +11 -5
  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 +3 -2
@@ -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();
@@ -56,15 +62,16 @@ async function main() {
56
62
  // Intercept --help / -h before handing off to Claude.
57
63
  if (process.argv[2] === '--help' || process.argv[2] === '-h') {
58
64
  const version = getPackageVersion();
59
- process.stdout.write(`borgmcp ${version} — coordinate your Claude Code sessions\n\n` +
65
+ process.stdout.write(`borgmcp ${version} — coordinate AI coding agents in shared cubes\n` +
66
+ ` works with Claude Code and Codex\n\n` +
60
67
  `Usage:\n` +
61
- ` borg Launch Claude Code with cube context\n` +
68
+ ` borg Launch your agent CLI with cube context\n` +
62
69
  ` borg setup Set up OAuth + register MCP server\n` +
63
70
  ` borg assimilate [role] Join a cube (creates one if needed)\n` +
64
71
  ` borg assimilate --worktree <name> Spawn a sibling worktree drone\n` +
72
+ ` borg --cli claude|codex Choose agent CLI for this project\n` +
65
73
  ` 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`);
74
+ `All other arguments are passed through to the selected agent CLI.\n`);
68
75
  process.exit(0);
69
76
  }
70
77
  // Re-route subcommands.
@@ -96,8 +103,24 @@ async function main() {
96
103
  const code = await runSync();
97
104
  process.exit(code);
98
105
  }
106
+ const parsedCli = parseCliFlag(process.argv.slice(2));
107
+ if (parsedCli.error) {
108
+ process.stderr.write(chalk.red(`${consolePrefix()}◼ ${parsedCli.error}\n`));
109
+ process.exit(1);
110
+ }
111
+ const prompt = async (message) => {
112
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
113
+ try {
114
+ return await rl.question(message);
115
+ }
116
+ finally {
117
+ rl.close();
118
+ }
119
+ };
120
+ const cli = await resolveCliChoice(parsedCli.cli, defaultCliChoiceDeps(prompt, () => process.stdin.isTTY === true));
121
+ ensureDetectedCliConfigured();
99
122
  // Forward any user-supplied flags (e.g. --resume <id>, --cwd, etc.) to
100
- // claude unchanged.
123
+ // the selected agent CLI unchanged.
101
124
  //
102
125
  // The kickoff prompt goes at the end as the positional user-message
103
126
  // argument so the SessionStart hook + drone playbook get a turn to
@@ -109,7 +132,7 @@ async function main() {
109
132
  // cube (the MCP client appends a line to that file in real time via
110
133
  // the long-poll poller). A 30-min ScheduleWakeup heartbeat acts as a
111
134
  // safety net so the loop never goes silent.
112
- const passthroughArgs = process.argv.slice(2);
135
+ const passthroughArgs = parsedCli.rest;
113
136
  // Only include the Monitor instruction if this project is already
114
137
  // assimilated to a cube — without one we don't know which inbox file
115
138
  // to watch, and arming a Monitor on a not-yet-relevant path produces
@@ -121,14 +144,19 @@ async function main() {
121
144
  // when stdout isn't a TTY (piped invocation, CI). Claude Code does
122
145
  // not set its own title, so this persists for the session.
123
146
  setTerminalTitle(active ? { label: active.droneLabel, cubeName: active.name } : null, basename(process.cwd()));
124
- const monitorClause = active
147
+ const monitorClause = active && cli === 'claude'
125
148
  ? `If you haven't yet, arm a persistent Monitor running the command ` +
126
149
  `\`borg-inbox-monitor ${inboxPathForDrone(active.cubeId, active.droneId)}\` ` +
127
150
  `so each event's task-notification title summarizes the new cube log entry ` +
128
151
  `(drone label, role, and first ~80 chars of the message body) — letting you ` +
129
152
  `triage events without reading the full body. `
130
153
  : '';
131
- const kickoff = `/loop Call borg:regen and follow the playbook in its response. ` +
154
+ const codexWakeNonce = cli === 'codex' ? `borg-wake-${randomUUID()}` : null;
155
+ const codexNonceClause = codexWakeNonce
156
+ ? `Wake target nonce: ${codexWakeNonce}. `
157
+ : '';
158
+ const kickoff = `${cli === 'claude' ? '/loop ' : ''}Call borg:regen and follow the playbook in its response. ` +
159
+ codexNonceClause +
132
160
  `Note: at session start the borg MCP server is still spinning up in ` +
133
161
  `parallel — if a system reminder claims "MCP server disconnected" or ` +
134
162
  `the borg: tools are not yet registered, do NOT bail. Recover via ` +
@@ -144,32 +172,133 @@ async function main() {
144
172
  `reassign / suspect-systemic) when any row is overdue. Append the ` +
145
173
  `awaited signal when you do post Standing (\`Standing for X\`, never ` +
146
174
  `bare). ` +
147
- `Use a 30-minute (1800s) fallback heartbeat for ScheduleWakeup.`;
175
+ (cli === 'claude'
176
+ ? `Use a 30-minute (1800s) fallback heartbeat for ScheduleWakeup.`
177
+ : `Codex Borg wakeups use remote-control when available; if no wake arrives, run borg:regen manually when returning to the session.`);
148
178
  // Surface the stale-version warning before launching Claude Code so
149
179
  // the operator sees it inline rather than buried in MCP-server stderr.
150
180
  // 2s ceiling: if the registry check hasn't returned by now, skip
151
181
  // silently — Claude Code launch shouldn't wait on a network check.
152
182
  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], {
183
+ let launchArgs = [...passthroughArgs, kickoff];
184
+ let launchEnv = process.env;
185
+ let codexSocketPath = null;
186
+ if (cli === 'codex' && !passthroughArgs.includes('--remote')) {
187
+ const remote = prepareCodexRemoteLaunch((cmd, args) => {
188
+ const r = spawnSync(cmd, args, { encoding: 'utf-8' });
189
+ return { status: r.status, stdout: r.stdout ?? '', stderr: r.stderr ?? '' };
190
+ });
191
+ if (remote.warning) {
192
+ console.error(`${consolePrefix()}${chalk.yellow(`warning: ${remote.warning}`)}`);
193
+ }
194
+ launchArgs = [...remote.args, ...withCodexCwdArg(launchArgs, process.cwd())];
195
+ launchEnv = { ...process.env, ...remote.env };
196
+ codexSocketPath = socketPathFromRemoteArgs(remote.args);
197
+ }
198
+ console.error(`${consolePrefix()}${chalk.blue(`◼ Launching ${cli === 'claude' ? 'Claude Code' : 'Codex'}…`)}`);
199
+ const agentProcess = spawn(cli, launchArgs, {
155
200
  stdio: 'inherit',
156
201
  shell: false,
202
+ env: launchEnv,
157
203
  });
158
- claudeProcess.on('error', (err) => {
204
+ if (cli === 'codex' && active && codexSocketPath) {
205
+ void recordCodexWakeTarget({
206
+ active,
207
+ socketPath: codexSocketPath,
208
+ passthroughArgs,
209
+ previewNeedle: codexWakeNonce ?? kickoff.slice(0, 120),
210
+ cwd: process.cwd(),
211
+ launchedAtSeconds: Math.floor(Date.now() / 1000),
212
+ });
213
+ }
214
+ agentProcess.on('error', (err) => {
159
215
  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')}`);
216
+ console.error(`${consolePrefix()}${chalk.red(`\n◼ Failed to launch ${cli}`)}`);
217
+ console.error(`${consolePrefix()}${chalk.gray(`Make sure ${cli} is installed.\n`)}`);
163
218
  }
164
219
  else {
165
- console.error(`${consolePrefix()}${chalk.red(`\n◼ Failed to launch Claude Code: ${err.message}\n`)}`);
220
+ console.error(`${consolePrefix()}${chalk.red(`\n◼ Failed to launch ${cli}: ${err.message}\n`)}`);
166
221
  }
167
222
  process.exit(1);
168
223
  });
169
- claudeProcess.on('exit', (code) => {
224
+ agentProcess.on('exit', (code) => {
170
225
  process.exit(code ?? 0);
171
226
  });
172
227
  }
228
+ function socketPathFromRemoteArgs(args) {
229
+ const index = args.indexOf('--remote');
230
+ if (index < 0)
231
+ return null;
232
+ const value = args[index + 1];
233
+ if (!value?.startsWith('unix://'))
234
+ return null;
235
+ return value.slice('unix://'.length);
236
+ }
237
+ function threadIdFromPassthroughArgs(args) {
238
+ if (args[0] === 'resume' && args[1] && !args[1].startsWith('-'))
239
+ return args[1];
240
+ const resumeIndex = args.indexOf('--resume');
241
+ if (resumeIndex >= 0 && args[resumeIndex + 1])
242
+ return args[resumeIndex + 1];
243
+ return null;
244
+ }
245
+ async function recordCodexWakeTarget(options) {
246
+ try {
247
+ const explicitThreadId = threadIdFromPassthroughArgs(options.passthroughArgs);
248
+ if (explicitThreadId) {
249
+ await setCodexWakeTarget(options.active.cubeId, options.active.droneId, {
250
+ threadId: explicitThreadId,
251
+ socketPath: options.socketPath,
252
+ });
253
+ return;
254
+ }
255
+ const deadline = Date.now() + 15_000;
256
+ while (Date.now() < deadline) {
257
+ const threadId = await findLoadedCodexThread({
258
+ socketPath: options.socketPath,
259
+ cwd: options.cwd,
260
+ previewIncludes: options.previewNeedle,
261
+ updatedAfter: options.launchedAtSeconds - 5,
262
+ });
263
+ if (threadId) {
264
+ await setCodexWakeTarget(options.active.cubeId, options.active.droneId, {
265
+ threadId,
266
+ socketPath: options.socketPath,
267
+ });
268
+ return;
269
+ }
270
+ await new Promise((resolve) => setTimeout(resolve, 500));
271
+ }
272
+ }
273
+ catch {
274
+ // Best-effort mapping: the kickoff prompt still tells the user how to recover manually.
275
+ }
276
+ }
277
+ function ensureDetectedCliConfigured() {
278
+ const found = detectCliAvailability();
279
+ if (found.claude) {
280
+ try {
281
+ if (!isMcpServerConfigured())
282
+ addMcpServer();
283
+ addSessionStartHook();
284
+ addUserPromptSubmitHook();
285
+ }
286
+ catch (err) {
287
+ console.error(`${consolePrefix()}${chalk.yellow(`warning: Claude Code integration check failed: ${err?.message ?? err}`)}`);
288
+ }
289
+ }
290
+ if (found.codex) {
291
+ try {
292
+ if (!isCodexMcpServerConfigured())
293
+ addCodexMcpServer();
294
+ addCodexSessionStartHook();
295
+ addCodexUserPromptSubmitHook();
296
+ }
297
+ catch (err) {
298
+ console.error(`${consolePrefix()}${chalk.yellow(`warning: Codex integration check failed: ${err?.message ?? err}`)}`);
299
+ }
300
+ }
301
+ }
173
302
  main().catch((error) => {
174
303
  console.error(`${consolePrefix()}${chalk.red(`\n◼ Error: ${error.message}\n`)}`);
175
304
  process.exit(1);