borgmcp 5.1.2 → 5.3.0
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/dist/agent-runtime.d.ts +2 -4
- package/dist/agent-runtime.d.ts.map +1 -1
- package/dist/agent-runtime.js +3 -5
- package/dist/agent-runtime.js.map +1 -1
- package/dist/assimilate-cmd.d.ts +1 -11
- package/dist/assimilate-cmd.d.ts.map +1 -1
- package/dist/assimilate-cmd.js +37 -48
- package/dist/assimilate-cmd.js.map +1 -1
- package/dist/assimilate-deps.d.ts.map +1 -1
- package/dist/assimilate-deps.js +1 -4
- package/dist/assimilate-deps.js.map +1 -1
- package/dist/claude.d.ts.map +1 -1
- package/dist/claude.js +36 -77
- package/dist/claude.js.map +1 -1
- package/dist/codex-app-server.d.ts +4 -6
- package/dist/codex-app-server.d.ts.map +1 -1
- package/dist/codex-app-server.js +4 -25
- package/dist/codex-app-server.js.map +1 -1
- package/dist/codex-app-wake.d.ts +8 -10
- package/dist/codex-app-wake.d.ts.map +1 -1
- package/dist/codex-app-wake.js +49 -66
- package/dist/codex-app-wake.js.map +1 -1
- package/dist/codex-launch.d.ts +15 -24
- package/dist/codex-launch.d.ts.map +1 -1
- package/dist/codex-launch.js +29 -55
- package/dist/codex-launch.js.map +1 -1
- package/dist/codex-remote.d.ts +15 -8
- package/dist/codex-remote.d.ts.map +1 -1
- package/dist/codex-remote.js +71 -70
- package/dist/codex-remote.js.map +1 -1
- package/dist/codex-wake-resolve.d.ts +12 -31
- package/dist/codex-wake-resolve.d.ts.map +1 -1
- package/dist/codex-wake-resolve.js +21 -38
- package/dist/codex-wake-resolve.js.map +1 -1
- package/dist/config-utils.js +2 -2
- package/dist/config-utils.js.map +1 -1
- package/dist/cubes.d.ts +0 -17
- package/dist/cubes.d.ts.map +1 -1
- package/dist/cubes.js +0 -81
- package/dist/cubes.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/log-stream.d.ts.map +1 -1
- package/dist/log-stream.js +4 -1
- package/dist/log-stream.js.map +1 -1
- package/dist/regen-format.d.ts +3 -1
- package/dist/regen-format.d.ts.map +1 -1
- package/dist/regen-format.js +24 -4
- package/dist/regen-format.js.map +1 -1
- package/dist/remote-client.d.ts +4 -3
- package/dist/remote-client.d.ts.map +1 -1
- package/dist/remote-client.js +9 -3
- package/dist/remote-client.js.map +1 -1
- package/docs/RELEASING.md +2 -2
- package/package.json +2 -2
- package/src/agent-runtime.ts +3 -5
- package/src/assimilate-cmd.ts +35 -58
- package/src/assimilate-deps.ts +0 -4
- package/src/claude.ts +34 -81
- package/src/codex-app-server.ts +8 -25
- package/src/codex-app-wake.ts +46 -73
- package/src/codex-launch.ts +43 -76
- package/src/codex-remote.ts +90 -82
- package/src/codex-wake-resolve.ts +26 -47
- package/src/config-utils.ts +2 -2
- package/src/cubes.ts +2 -100
- package/src/index.ts +3 -1
- package/src/log-stream.ts +4 -1
- package/src/regen-format.ts +28 -6
- package/src/remote-client.ts +14 -6
package/dist/codex-remote.js
CHANGED
|
@@ -8,7 +8,7 @@ import { codexAppServerSocketConfigArgs } from './codex-wake-resolve.js';
|
|
|
8
8
|
import { BORG_AGENT_KIND_ENV, BORG_CODEX_REMOTE_WAKE_ENV, codexAgentKindConfigArgs, codexRemoteWakeConfigArgs, codexStateRootConfigArgs, } from './agent-runtime.js';
|
|
9
9
|
import { borgConfigRoot } from './private-root.js';
|
|
10
10
|
export const DEFAULT_CODEX_REMOTE_DIR = join(borgConfigRoot(), 'codex-remote');
|
|
11
|
-
const DEFAULT_CODEX_REMOTE_READY_TIMEOUT_MS =
|
|
11
|
+
const DEFAULT_CODEX_REMOTE_READY_TIMEOUT_MS = 60_000;
|
|
12
12
|
const MAX_CODEX_APP_SERVER_STDERR_CHARS = 16_384;
|
|
13
13
|
/**
|
|
14
14
|
* Keep app-server failure details useful without copying credentials or local
|
|
@@ -173,8 +173,8 @@ function pruneStaleSockets(runtimeDir, isAlive) {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
function
|
|
177
|
-
return {
|
|
176
|
+
function refuse(reason, stderr = '') {
|
|
177
|
+
return { ready: false, reason, stderr: sanitizeCodexDiagnostic(stderr).trim() };
|
|
178
178
|
}
|
|
179
179
|
function formatExitReason(diagnostics) {
|
|
180
180
|
if (diagnostics.error)
|
|
@@ -185,21 +185,17 @@ function formatExitReason(diagnostics) {
|
|
|
185
185
|
return `signal ${diagnostics.signal}`;
|
|
186
186
|
return 'unknown exit status';
|
|
187
187
|
}
|
|
188
|
-
function formatStderr(stderr) {
|
|
189
|
-
const trimmed = sanitizeCodexDiagnostic(stderr).trim();
|
|
190
|
-
return trimmed ? ` Stderr: ${trimmed}` : '';
|
|
191
|
-
}
|
|
192
188
|
/**
|
|
193
189
|
* Start a borg-owned per-launch Codex app-server, probe it for readiness, and
|
|
194
|
-
* return the `--remote` launch args + an owned handle
|
|
195
|
-
*
|
|
196
|
-
* TUI exit.
|
|
190
|
+
* return the `--remote` launch args + an owned handle, or a typed refusal after
|
|
191
|
+
* one retry. The caller MUST call `result.server.cleanup()` on TUI exit.
|
|
197
192
|
*/
|
|
198
193
|
export async function prepareCodexRemoteLaunch(deps) {
|
|
199
194
|
const runtimeDir = deps.runtimeDir ?? DEFAULT_CODEX_REMOTE_DIR;
|
|
200
195
|
const isAlive = deps.isAlive ?? defaultIsAlive;
|
|
201
196
|
const readyTimeoutMs = deps.readyTimeoutMs ?? DEFAULT_CODEX_REMOTE_READY_TIMEOUT_MS;
|
|
202
197
|
const pollIntervalMs = deps.pollIntervalMs ?? 250;
|
|
198
|
+
const now = deps.now ?? Date.now;
|
|
203
199
|
// 1. 0700 owned dir + prune crashed prior sockets (concurrent-safe via pid liveness).
|
|
204
200
|
try {
|
|
205
201
|
mkdirSync(runtimeDir, { recursive: true, mode: 0o700 });
|
|
@@ -207,80 +203,85 @@ export async function prepareCodexRemoteLaunch(deps) {
|
|
|
207
203
|
pruneStaleSockets(runtimeDir, isAlive);
|
|
208
204
|
}
|
|
209
205
|
catch (err) {
|
|
210
|
-
return
|
|
211
|
-
}
|
|
212
|
-
// 2. unique, non-predictable socket path inside the owned dir.
|
|
213
|
-
const id = (deps.socketId ?? (() => randomBytes(16).toString('hex')))();
|
|
214
|
-
const socketPath = join(runtimeDir, `${id}.sock`);
|
|
215
|
-
const pidPath = join(runtimeDir, `${id}.pid`);
|
|
216
|
-
// 3. spawn the long-lived app-server.
|
|
217
|
-
let child;
|
|
218
|
-
try {
|
|
219
|
-
child = deps.spawnAppServer(socketPath);
|
|
220
|
-
}
|
|
221
|
-
catch (err) {
|
|
222
|
-
safeRm(socketPath);
|
|
223
|
-
return failLoud(`Codex remote-wake disabled: could not start \`codex app-server\` (${sanitizeCodexDiagnostic(String(err?.message ?? err))}) — ` +
|
|
224
|
-
`confirm the Codex executable is installed and available on PATH. ` +
|
|
225
|
-
`Remote wake is unavailable for this session; run borg_regen manually to catch up.`);
|
|
206
|
+
return refuse(`could not prepare the Codex app-server runtime directory (${sanitizeCodexDiagnostic(String(err?.message ?? err))})`);
|
|
226
207
|
}
|
|
227
|
-
|
|
208
|
+
let lastRefusal = refuse('the Codex app-server did not become ready');
|
|
209
|
+
for (let launchAttempt = 0; launchAttempt < 2; launchAttempt += 1) {
|
|
210
|
+
// Each retry owns a fresh, non-predictable socket and pidfile.
|
|
211
|
+
const id = (deps.socketId ?? (() => randomBytes(16).toString('hex')))();
|
|
212
|
+
const socketPath = join(runtimeDir, `${id}.sock`);
|
|
213
|
+
const pidPath = join(runtimeDir, `${id}.pid`);
|
|
214
|
+
let child;
|
|
228
215
|
try {
|
|
229
|
-
|
|
216
|
+
child = deps.spawnAppServer(socketPath);
|
|
230
217
|
}
|
|
231
|
-
catch {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
try {
|
|
237
|
-
child.kill();
|
|
238
|
-
}
|
|
239
|
-
catch {
|
|
240
|
-
// best-effort
|
|
241
|
-
}
|
|
242
|
-
safeRm(socketPath);
|
|
243
|
-
safeRm(pidPath);
|
|
244
|
-
};
|
|
245
|
-
// 4. readiness via a real protocol round-trip — bounded attempts (no clock dep).
|
|
246
|
-
const attempts = Math.max(1, Math.ceil(readyTimeoutMs / pollIntervalMs));
|
|
247
|
-
let ready = false;
|
|
248
|
-
let exitDiagnostics;
|
|
249
|
-
for (let i = 0; i < attempts && !ready; i++) {
|
|
250
|
-
try {
|
|
251
|
-
ready = await deps.probeReady(socketPath);
|
|
218
|
+
catch (err) {
|
|
219
|
+
safeRm(socketPath);
|
|
220
|
+
safeRm(pidPath);
|
|
221
|
+
lastRefusal = refuse(`could not start \`codex app-server\` (${sanitizeCodexDiagnostic(String(err?.message ?? err))}); confirm the Codex executable is installed and available on PATH`);
|
|
222
|
+
continue;
|
|
252
223
|
}
|
|
253
|
-
|
|
254
|
-
|
|
224
|
+
if (child.pid != null) {
|
|
225
|
+
try {
|
|
226
|
+
writeFileSync(pidPath, String(child.pid));
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
// pidfile is only for stale-prune; launch still proceeds.
|
|
230
|
+
}
|
|
255
231
|
}
|
|
256
|
-
|
|
232
|
+
const cleanup = () => {
|
|
233
|
+
try {
|
|
234
|
+
child.kill();
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
// best-effort
|
|
238
|
+
}
|
|
239
|
+
safeRm(socketPath);
|
|
240
|
+
safeRm(pidPath);
|
|
241
|
+
};
|
|
242
|
+
// Readiness is bounded by elapsed wall time, so slow protocol probes count
|
|
243
|
+
// against the same cold-start budget as the poll sleeps.
|
|
244
|
+
const startedAt = now();
|
|
245
|
+
let ready = false;
|
|
246
|
+
let exitDiagnostics;
|
|
247
|
+
for (;;) {
|
|
248
|
+
try {
|
|
249
|
+
ready = await deps.probeReady(socketPath);
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
ready = false;
|
|
253
|
+
}
|
|
254
|
+
if (ready)
|
|
255
|
+
break;
|
|
257
256
|
const diagnostics = child.diagnostics?.();
|
|
258
257
|
if (diagnostics?.exited) {
|
|
259
258
|
exitDiagnostics = diagnostics;
|
|
260
259
|
break;
|
|
261
260
|
}
|
|
261
|
+
const remainingMs = readyTimeoutMs - (now() - startedAt);
|
|
262
|
+
if (remainingMs <= 0)
|
|
263
|
+
break;
|
|
264
|
+
await deps.sleep(Math.min(pollIntervalMs, remainingMs));
|
|
262
265
|
}
|
|
263
|
-
if (!ready && i < attempts - 1)
|
|
264
|
-
await deps.sleep(pollIntervalMs);
|
|
265
|
-
}
|
|
266
|
-
if (!ready) {
|
|
267
266
|
const diagnostics = exitDiagnostics ?? child.diagnostics?.();
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
267
|
+
if (!ready) {
|
|
268
|
+
cleanup();
|
|
269
|
+
if (diagnostics?.exited) {
|
|
270
|
+
lastRefusal = refuse(`\`codex app-server\` exited before becoming ready (${formatExitReason(diagnostics)})`, diagnostics.stderr);
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
lastRefusal = refuse(`\`codex app-server\` remained running but did not become ready within ${readyTimeoutMs}ms`, diagnostics?.stderr ?? '');
|
|
274
|
+
}
|
|
275
|
+
continue;
|
|
273
276
|
}
|
|
274
|
-
return
|
|
275
|
-
|
|
276
|
-
|
|
277
|
+
return {
|
|
278
|
+
ready: true,
|
|
279
|
+
args: ['--remote', `unix://${socketPath}`],
|
|
280
|
+
env: { [BORG_CODEX_REMOTE_WAKE_ENV]: '1' },
|
|
281
|
+
server: { pid: child.pid, socketPath, cleanup },
|
|
282
|
+
};
|
|
277
283
|
}
|
|
278
|
-
|
|
279
|
-
return {
|
|
280
|
-
args: ['--remote', `unix://${socketPath}`],
|
|
281
|
-
env: { [BORG_CODEX_REMOTE_WAKE_ENV]: '1' },
|
|
282
|
-
server: { pid: child.pid, socketPath, cleanup },
|
|
283
|
-
};
|
|
284
|
+
return lastRefusal;
|
|
284
285
|
}
|
|
285
286
|
/**
|
|
286
287
|
* Production deps for prepareCodexRemoteLaunch — spawn the real `codex
|
package/dist/codex-remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-remote.js","sourceRoot":"","sources":["../src/codex-remote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex-remote.js","sourceRoot":"","sources":["../src/codex-remote.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* gh#855 — pure helpers for FRESH codex wake-target re-resolution.
|
|
3
3
|
*
|
|
4
|
-
* Root cause of codex deaf-when-idle:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* authoritative about its OWN live app-server socket — the socket is injected
|
|
4
|
+
* Root cause of codex deaf-when-idle: stale thread selection could leave the
|
|
5
|
+
* drone permanently deaf. The waking borg-mcp child is authoritative about its
|
|
6
|
+
* OWN live app-server socket — the socket is injected
|
|
8
7
|
* into the child's pinned env at spawn (codex-remote.ts, via the #851 `-c
|
|
9
8
|
* mcp_servers.borg.env.X` channel) — and re-resolves the loaded thread FRESH on
|
|
10
9
|
* every wake (loadedThreadIds is a re-runnable RPC).
|
|
@@ -13,7 +12,7 @@
|
|
|
13
12
|
*/
|
|
14
13
|
/** Pinned-env var carrying THIS drone's live app-server socket (set at spawn). */
|
|
15
14
|
export declare const BORG_CODEX_APP_SERVER_SOCKET_ENV = "BORG_CODEX_APP_SERVER_SOCKET";
|
|
16
|
-
/** The live app-server socket for this borg-mcp child
|
|
15
|
+
/** The live app-server socket for this borg-mcp child. */
|
|
17
16
|
export declare function codexAppServerSocketFromEnv(env?: NodeJS.ProcessEnv): string | null;
|
|
18
17
|
/**
|
|
19
18
|
* The per-launch codex config override that pins THIS app-server's live socket
|
|
@@ -28,44 +27,26 @@ export interface CodexThreadInfo {
|
|
|
28
27
|
id: string;
|
|
29
28
|
cwd?: string;
|
|
30
29
|
updatedAt?: number;
|
|
30
|
+
source?: unknown;
|
|
31
|
+
ephemeral?: boolean;
|
|
32
|
+
threadSource?: string;
|
|
33
|
+
preview?: string;
|
|
34
|
+
turns?: unknown[];
|
|
31
35
|
}
|
|
36
|
+
export declare function isCodexSubagentSource(source: unknown): boolean;
|
|
32
37
|
/**
|
|
33
38
|
* Pick the loaded thread to wake on the live socket. Each borg-owned app-server
|
|
34
39
|
* is fresh-per-launch / single-session, so the common case is exactly one loaded
|
|
35
40
|
* thread. When more than one is loaded, prefer the thread whose cwd matches this
|
|
36
41
|
* drone's working directory (sibling worktrees have distinct cwds), then the
|
|
37
|
-
* newest by updatedAt
|
|
42
|
+
* newest by updatedAt, without preferring an empty thread over one with turns.
|
|
43
|
+
* System, ephemeral and subagent threads are never candidates. No loaded thread → null (no wake
|
|
38
44
|
* this cycle; the next wake retries, so a transient empty list never causes
|
|
39
45
|
* permanent deafness).
|
|
40
46
|
*/
|
|
41
47
|
export declare function pickFreshThread(threads: CodexThreadInfo[], opts: {
|
|
42
48
|
cwd: string;
|
|
43
49
|
}): string | null;
|
|
44
|
-
/**
|
|
45
|
-
* Pure prune: drop wake-target entries whose app-server socket is positively
|
|
46
|
-
* dead (liveness === false), so the file self-heals. Keeps alive (true) and
|
|
47
|
-
* indeterminate (null) entries — false-deaf-avoidance, mirroring
|
|
48
|
-
* checkCodexBridgeHealthy's tri-state. Returns the surviving map + whether
|
|
49
|
-
* anything changed (so the caller writes only on change).
|
|
50
|
-
*/
|
|
51
|
-
export declare function pruneDeadWakeTargets<T extends {
|
|
52
|
-
socketPath: string;
|
|
53
|
-
}>(targets: Record<string, T>, socketLiveness: (socketPath: string) => boolean | null): {
|
|
54
|
-
targets: Record<string, T>;
|
|
55
|
-
changed: boolean;
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* Whether the freshly-resolved target differs from what's already recorded —
|
|
59
|
-
* so the self-healing cache write happens only on change (no file thrash on a
|
|
60
|
-
* busy cube re-resolving the same socket+thread every wake).
|
|
61
|
-
*/
|
|
62
|
-
export declare function wakeTargetChanged(existing: {
|
|
63
|
-
socketPath: string;
|
|
64
|
-
threadId: string;
|
|
65
|
-
} | null, fresh: {
|
|
66
|
-
socketPath: string;
|
|
67
|
-
threadId: string;
|
|
68
|
-
}): boolean;
|
|
69
50
|
/** Base backoff for the first retry of a dropped/deferred wake. */
|
|
70
51
|
export declare const WAKE_RETRY_BASE_MS = 5000;
|
|
71
52
|
/** Backoff ceiling — a wedged thread is retried at most this often. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-wake-resolve.d.ts","sourceRoot":"","sources":["../src/codex-wake-resolve.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codex-wake-resolve.d.ts","sourceRoot":"","sources":["../src/codex-wake-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,iCAAiC,CAAC;AAE/E,0DAA0D;AAC1D,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAG/F;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3E;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAG9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAgBhG;AAID,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AACxC,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAc,CAAC;AACjD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAIvE;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,MAAM,EACX,QAAQ,SAAwB,GAC/B,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAGT"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* gh#855 — pure helpers for FRESH codex wake-target re-resolution.
|
|
3
3
|
*
|
|
4
|
-
* Root cause of codex deaf-when-idle:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* authoritative about its OWN live app-server socket — the socket is injected
|
|
4
|
+
* Root cause of codex deaf-when-idle: stale thread selection could leave the
|
|
5
|
+
* drone permanently deaf. The waking borg-mcp child is authoritative about its
|
|
6
|
+
* OWN live app-server socket — the socket is injected
|
|
8
7
|
* into the child's pinned env at spawn (codex-remote.ts, via the #851 `-c
|
|
9
8
|
* mcp_servers.borg.env.X` channel) — and re-resolves the loaded thread FRESH on
|
|
10
9
|
* every wake (loadedThreadIds is a re-runnable RPC).
|
|
@@ -13,7 +12,7 @@
|
|
|
13
12
|
*/
|
|
14
13
|
/** Pinned-env var carrying THIS drone's live app-server socket (set at spawn). */
|
|
15
14
|
export const BORG_CODEX_APP_SERVER_SOCKET_ENV = 'BORG_CODEX_APP_SERVER_SOCKET';
|
|
16
|
-
/** The live app-server socket for this borg-mcp child
|
|
15
|
+
/** The live app-server socket for this borg-mcp child. */
|
|
17
16
|
export function codexAppServerSocketFromEnv(env = process.env) {
|
|
18
17
|
const v = env[BORG_CODEX_APP_SERVER_SOCKET_ENV];
|
|
19
18
|
return v && v.length > 0 ? v : null;
|
|
@@ -29,22 +28,33 @@ export function codexAppServerSocketFromEnv(env = process.env) {
|
|
|
29
28
|
export function codexAppServerSocketConfigArgs(socketPath) {
|
|
30
29
|
return ['-c', `mcp_servers.borg.env.${BORG_CODEX_APP_SERVER_SOCKET_ENV}="${socketPath}"`];
|
|
31
30
|
}
|
|
31
|
+
export function isCodexSubagentSource(source) {
|
|
32
|
+
if (!source || typeof source !== 'object' || Array.isArray(source))
|
|
33
|
+
return false;
|
|
34
|
+
return 'subagent' in source || 'subAgent' in source;
|
|
35
|
+
}
|
|
32
36
|
/**
|
|
33
37
|
* Pick the loaded thread to wake on the live socket. Each borg-owned app-server
|
|
34
38
|
* is fresh-per-launch / single-session, so the common case is exactly one loaded
|
|
35
39
|
* thread. When more than one is loaded, prefer the thread whose cwd matches this
|
|
36
40
|
* drone's working directory (sibling worktrees have distinct cwds), then the
|
|
37
|
-
* newest by updatedAt
|
|
41
|
+
* newest by updatedAt, without preferring an empty thread over one with turns.
|
|
42
|
+
* System, ephemeral and subagent threads are never candidates. No loaded thread → null (no wake
|
|
38
43
|
* this cycle; the next wake retries, so a transient empty list never causes
|
|
39
44
|
* permanent deafness).
|
|
40
45
|
*/
|
|
41
46
|
export function pickFreshThread(threads, opts) {
|
|
42
|
-
|
|
47
|
+
const rootThreads = threads.filter((thread) => !isCodexSubagentSource(thread.source) && thread.ephemeral !== true &&
|
|
48
|
+
(thread.threadSource === undefined || thread.threadSource === 'user'));
|
|
49
|
+
if (rootThreads.length === 0)
|
|
43
50
|
return null;
|
|
44
|
-
if (
|
|
45
|
-
return
|
|
46
|
-
const cwdMatches =
|
|
47
|
-
|
|
51
|
+
if (rootThreads.length === 1)
|
|
52
|
+
return rootThreads[0].id;
|
|
53
|
+
const cwdMatches = rootThreads.filter((t) => t.cwd === opts.cwd);
|
|
54
|
+
let pool = cwdMatches.length > 0 ? cwdMatches : rootThreads;
|
|
55
|
+
if (pool.some((thread) => (thread.turns?.length ?? 0) > 0)) {
|
|
56
|
+
pool = pool.filter((thread) => (thread.turns?.length ?? 0) > 0 || !!thread.preview);
|
|
57
|
+
}
|
|
48
58
|
let best = pool[0];
|
|
49
59
|
for (const t of pool) {
|
|
50
60
|
if ((t.updatedAt ?? 0) > (best.updatedAt ?? 0))
|
|
@@ -52,33 +62,6 @@ export function pickFreshThread(threads, opts) {
|
|
|
52
62
|
}
|
|
53
63
|
return best.id;
|
|
54
64
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Pure prune: drop wake-target entries whose app-server socket is positively
|
|
57
|
-
* dead (liveness === false), so the file self-heals. Keeps alive (true) and
|
|
58
|
-
* indeterminate (null) entries — false-deaf-avoidance, mirroring
|
|
59
|
-
* checkCodexBridgeHealthy's tri-state. Returns the surviving map + whether
|
|
60
|
-
* anything changed (so the caller writes only on change).
|
|
61
|
-
*/
|
|
62
|
-
export function pruneDeadWakeTargets(targets, socketLiveness) {
|
|
63
|
-
const out = {};
|
|
64
|
-
let changed = false;
|
|
65
|
-
for (const [key, t] of Object.entries(targets)) {
|
|
66
|
-
if (socketLiveness(t.socketPath) === false) {
|
|
67
|
-
changed = true;
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
out[key] = t;
|
|
71
|
-
}
|
|
72
|
-
return { targets: out, changed };
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Whether the freshly-resolved target differs from what's already recorded —
|
|
76
|
-
* so the self-healing cache write happens only on change (no file thrash on a
|
|
77
|
-
* busy cube re-resolving the same socket+thread every wake).
|
|
78
|
-
*/
|
|
79
|
-
export function wakeTargetChanged(existing, fresh) {
|
|
80
|
-
return (!existing || existing.socketPath !== fresh.socketPath || existing.threadId !== fresh.threadId);
|
|
81
|
-
}
|
|
82
65
|
// ─── gh#857 Phase 2: durable retry + heartbeat (pure helpers) ───────────────
|
|
83
66
|
/** Base backoff for the first retry of a dropped/deferred wake. */
|
|
84
67
|
export const WAKE_RETRY_BASE_MS = 5_000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-wake-resolve.js","sourceRoot":"","sources":["../src/codex-wake-resolve.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codex-wake-resolve.js","sourceRoot":"","sources":["../src/codex-wake-resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/config-utils.js
CHANGED
|
@@ -1224,8 +1224,8 @@ export function addCodexMcpServer() {
|
|
|
1224
1224
|
// Codex MCP config when the operator has explicitly set it.
|
|
1225
1225
|
const apiUrl = process.env.BORG_API_URL;
|
|
1226
1226
|
// Identity is durable configuration; remote wake is a per-launch
|
|
1227
|
-
// transport capability
|
|
1228
|
-
//
|
|
1227
|
+
// transport capability pinned by the Borg-owned app-server. Do not persist
|
|
1228
|
+
// that transport marker in the user's static Codex configuration.
|
|
1229
1229
|
const apiUrlEnvArg = apiUrl ? ` --env BORG_API_URL=${shellQuote(apiUrl)}` : '';
|
|
1230
1230
|
const stateRoot = process.env[BORG_STATE_ROOT_ENV];
|
|
1231
1231
|
const stateRootEnvArg = stateRoot
|