borgmcp 2.5.0 → 2.6.1

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 (87) hide show
  1. package/README.md +12 -7
  2. package/dist/assimilate-cmd.d.ts +1 -0
  3. package/dist/assimilate-cmd.d.ts.map +1 -1
  4. package/dist/assimilate-cmd.js +58 -30
  5. package/dist/assimilate-cmd.js.map +1 -1
  6. package/dist/assimilate-deps.d.ts.map +1 -1
  7. package/dist/assimilate-deps.js +2 -0
  8. package/dist/assimilate-deps.js.map +1 -1
  9. package/dist/claude.js +9 -3
  10. package/dist/claude.js.map +1 -1
  11. package/dist/cli-help.d.ts +1 -1
  12. package/dist/cli-help.d.ts.map +1 -1
  13. package/dist/cli-help.js +7 -4
  14. package/dist/cli-help.js.map +1 -1
  15. package/dist/codex-launch.d.ts +2 -2
  16. package/dist/codex-launch.d.ts.map +1 -1
  17. package/dist/codex-launch.js +7 -7
  18. package/dist/codex-launch.js.map +1 -1
  19. package/dist/first-run-server.d.ts +31 -0
  20. package/dist/first-run-server.d.ts.map +1 -0
  21. package/dist/first-run-server.js +117 -0
  22. package/dist/first-run-server.js.map +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +25 -27
  25. package/dist/index.js.map +1 -1
  26. package/dist/log-stream.d.ts +4 -8
  27. package/dist/log-stream.d.ts.map +1 -1
  28. package/dist/log-stream.js +22 -15
  29. package/dist/log-stream.js.map +1 -1
  30. package/dist/opencode-drone.d.ts +11 -5
  31. package/dist/opencode-drone.d.ts.map +1 -1
  32. package/dist/opencode-drone.js +236 -48
  33. package/dist/opencode-drone.js.map +1 -1
  34. package/dist/opencode-wake-copy.d.ts +2 -0
  35. package/dist/opencode-wake-copy.d.ts.map +1 -0
  36. package/dist/opencode-wake-copy.js +8 -0
  37. package/dist/opencode-wake-copy.js.map +1 -0
  38. package/dist/regen-format.d.ts +4 -6
  39. package/dist/regen-format.d.ts.map +1 -1
  40. package/dist/regen-format.js +10 -14
  41. package/dist/regen-format.js.map +1 -1
  42. package/dist/repository-cube-init.d.ts +2 -0
  43. package/dist/repository-cube-init.d.ts.map +1 -1
  44. package/dist/repository-cube-init.js +14 -3
  45. package/dist/repository-cube-init.js.map +1 -1
  46. package/dist/server-facade.d.ts +2 -0
  47. package/dist/server-facade.d.ts.map +1 -1
  48. package/dist/server-facade.js +25 -3
  49. package/dist/server-facade.js.map +1 -1
  50. package/dist/setup.js +10 -0
  51. package/dist/setup.js.map +1 -1
  52. package/dist/stream-status.d.ts +9 -8
  53. package/dist/stream-status.d.ts.map +1 -1
  54. package/dist/stream-status.js +68 -18
  55. package/dist/stream-status.js.map +1 -1
  56. package/dist/tool-manifest.js +2 -2
  57. package/dist/tool-manifest.js.map +1 -1
  58. package/dist/update-cmd.d.ts +11 -1
  59. package/dist/update-cmd.d.ts.map +1 -1
  60. package/dist/update-cmd.js +68 -4
  61. package/dist/update-cmd.js.map +1 -1
  62. package/dist/wake-path-health.d.ts +27 -0
  63. package/dist/wake-path-health.d.ts.map +1 -0
  64. package/dist/wake-path-health.js +51 -0
  65. package/dist/wake-path-health.js.map +1 -0
  66. package/docs/EXTRACTION_PROVENANCE.md +3 -3
  67. package/docs/LOCAL_SERVER.md +12 -3
  68. package/docs/RELEASING.md +11 -1
  69. package/package.json +1 -1
  70. package/src/assimilate-cmd.ts +66 -27
  71. package/src/assimilate-deps.ts +9 -0
  72. package/src/claude.ts +10 -3
  73. package/src/cli-help.ts +7 -4
  74. package/src/codex-launch.ts +7 -7
  75. package/src/first-run-server.ts +178 -0
  76. package/src/index.ts +24 -28
  77. package/src/log-stream.ts +36 -25
  78. package/src/opencode-drone.ts +283 -47
  79. package/src/opencode-wake-copy.ts +8 -0
  80. package/src/regen-format.ts +10 -16
  81. package/src/repository-cube-init.ts +16 -3
  82. package/src/server-facade.ts +34 -3
  83. package/src/setup.ts +11 -0
  84. package/src/stream-status.ts +86 -22
  85. package/src/tool-manifest.ts +2 -2
  86. package/src/update-cmd.ts +88 -5
  87. package/src/wake-path-health.ts +85 -0
@@ -4,6 +4,7 @@ interface ConnectDeps {
4
4
  droneLabel: string;
5
5
  cubeName: string;
6
6
  }
7
+ export type OpenCodeDeliveryState = 'queued' | 'delivered-unconfirmed' | 'retried' | 'failed';
7
8
  export interface OpenCodeLaunchKickoff {
8
9
  prompt: string;
9
10
  nonce: string;
@@ -23,17 +24,22 @@ export declare function connectOpenCodeDrone(deps: ConnectDeps): Promise<void>;
23
24
  */
24
25
  export declare function injectInitialKickoff(launch: OpenCodeLaunchKickoff): Promise<boolean>;
25
26
  /**
26
- * Inject a silent context entry (noReply) into our session.
27
- * Falls through silently caller falls back to inbox write.
27
+ * Queue one durable inbox entry for delivery into the bound OpenCode session.
28
+ * The durable inbox text identifies the OpenCode-generated user message, so
29
+ * retries and replay can confirm an earlier ambiguous submission without
30
+ * supplying an ordering-breaking caller message ID or running it twice.
28
31
  */
29
- export declare function injectOpenCodeEntry(text: string): Promise<boolean>;
32
+ export declare function injectOpenCodeEntry(text: string, entryId?: string, allowSubmit?: boolean): Promise<boolean>;
30
33
  export declare function probeOpenCodeDroneArmed(): Promise<boolean | null>;
31
34
  export declare function disconnectOpenCodeDrone(): void;
32
- export declare function getOpenCodeConnectionState(): {
35
+ export interface OpenCodeConnectionState {
33
36
  connected: boolean;
34
37
  sessionId: string | null;
35
38
  totalEntriesInjected: number;
36
- };
39
+ totalEntriesRetried: number;
40
+ deliveryStates: Record<OpenCodeDeliveryState, number>;
41
+ }
42
+ export declare function getOpenCodeConnectionState(): OpenCodeConnectionState;
37
43
  export declare function computeOpenCodePort(droneId: string, base?: number): number;
38
44
  /** Test-only cleanup for module state and the local cross-process binding. */
39
45
  export declare function __resetOpenCodeDroneForTests(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-drone.d.ts","sourceRoot":"","sources":["../src/opencode-drone.ts"],"names":[],"mappings":"AAyBA,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiCD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAOD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAqB,GAC3B,qBAAqB,CAKvB;AAID,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3E;AAkSD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkC1F;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiCxE;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAcvE;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAgB,0BAA0B,IAAI;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAMA;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAc,GAAG,MAAM,CAQjF;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,IAAI,IAAI,CAUnD"}
1
+ {"version":3,"file":"opencode-drone.d.ts","sourceRoot":"","sources":["../src/opencode-drone.ts"],"names":[],"mappings":"AAgCA,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAuBD,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,uBAAuB,GACvB,SAAS,GACT,QAAQ,CAAC;AA2Bb,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAOD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAqB,GAC3B,qBAAqB,CAKvB;AAcD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3E;AAubD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkC1F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAwD,EACjE,WAAW,GAAE,OAAc,GAC1B,OAAO,CAAC,OAAO,CAAC,CAoDlB;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAavE;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;CACvD;AAED,wBAAgB,0BAA0B,IAAI,uBAAuB,CAiBpE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAc,GAAG,MAAM,CAQjF;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,IAAI,IAAI,CAWnD"}
@@ -11,6 +11,8 @@ function log(msg) {
11
11
  catch { }
12
12
  }
13
13
  let state = null;
14
+ const OPEN_CODE_DELIVERY_RETRY_DELAYS_MS = [0, 250, 1_000, 3_000];
15
+ const OPEN_CODE_DELIVERY_HISTORY_LIMIT = 256;
14
16
  // This is correlation metadata, intentionally not an instruction to the
15
17
  // launched agent. A markdown comment keeps it benign in the user-visible
16
18
  // kickoff while preserving it in OpenCode's stored message text.
@@ -28,7 +30,18 @@ export function createOpenCodeLaunchKickoff(kickoff, nonce = randomUUID()) {
28
30
  };
29
31
  }
30
32
  const bindingPathsForTests = new Set();
33
+ function abandonOpenCodeDeliveries(current) {
34
+ if (!current)
35
+ return;
36
+ current.connected = false;
37
+ for (const delivery of current.activeDeliveries.values()) {
38
+ delivery.resolve(false);
39
+ }
40
+ current.activeDeliveries.clear();
41
+ current.deliveryQueue.length = 0;
42
+ }
31
43
  export async function connectOpenCodeDrone(deps) {
44
+ abandonOpenCodeDeliveries(state);
32
45
  state = {
33
46
  serverUrl: deps.serverUrl,
34
47
  sessionId: null,
@@ -39,6 +52,13 @@ export async function connectOpenCodeDrone(deps) {
39
52
  cubeName: deps.cubeName,
40
53
  connected: true,
41
54
  totalEntriesInjected: 0,
55
+ totalEntriesRetried: 0,
56
+ deliveryQueue: [],
57
+ activeDeliveries: new Map(),
58
+ deliveredEntries: new Map(),
59
+ unconfirmedEntries: new Map(),
60
+ failedEntries: new Map(),
61
+ processingDeliveries: false,
42
62
  };
43
63
  log(`connected url=${deps.serverUrl} dir=${deps.directory}`);
44
64
  }
@@ -88,15 +108,12 @@ async function listSessions() {
88
108
  return JSON.parse(body);
89
109
  }
90
110
  async function getSession(id) {
91
- try {
92
- const { status, body } = await rawGet(`/session/${id}`);
93
- if (status !== 200)
94
- return null;
95
- return JSON.parse(body);
96
- }
97
- catch {
111
+ const { status, body } = await rawGet(`/session/${id}`);
112
+ if (status === 404)
98
113
  return null;
99
- }
114
+ if (status !== 200)
115
+ throw new Error(`OpenCode session request failed (${status})`);
116
+ return JSON.parse(body);
100
117
  }
101
118
  async function listSessionMessages(id) {
102
119
  const { status, body } = await rawGet(`/session/${id}/message`);
@@ -104,9 +121,21 @@ async function listSessionMessages(id) {
104
121
  throw new Error(`OpenCode session messages request failed (${status})`);
105
122
  return JSON.parse(body);
106
123
  }
124
+ async function findInjectedMessage(sessionId, text) {
125
+ const messages = await listSessionMessages(sessionId);
126
+ for (let index = messages.length - 1; index >= 0; index--) {
127
+ const message = messages[index];
128
+ if (message?.info?.role !== 'user' || typeof message.info.id !== 'string')
129
+ continue;
130
+ if (message.parts?.some((part) => part.type === 'text' && part.text === text)) {
131
+ return message.info.id;
132
+ }
133
+ }
134
+ return null;
135
+ }
107
136
  async function promptSession(id, bodyObj) {
108
137
  const { status } = await rawPost(`/session/${id}/prompt_async`, bodyObj);
109
- return status === 200 || status === 204;
138
+ return status;
110
139
  }
111
140
  // ---------------------------------------------------------------------------
112
141
  // Persist the launch-selected session for the separately spawned MCP child.
@@ -294,12 +323,142 @@ async function resolveInjectionSession() {
294
323
  }
295
324
  return bound;
296
325
  }
297
- async function rebindAfterFailure(knownRootSessionIds) {
298
- const replacement = await findUnseenTopLevelSession(knownRootSessionIds);
299
- if (!replacement)
300
- return null;
301
- saveBinding(replacement.session, replacement.knownRootSessionIds);
302
- return replacement.session;
326
+ function rememberBounded(entries, entryId, text) {
327
+ entries.delete(entryId);
328
+ entries.set(entryId, text);
329
+ while (entries.size > OPEN_CODE_DELIVERY_HISTORY_LIMIT) {
330
+ const oldest = entries.keys().next().value;
331
+ if (typeof oldest !== 'string')
332
+ break;
333
+ entries.delete(oldest);
334
+ }
335
+ }
336
+ function waitForDeliveryRetry(attempt) {
337
+ const delay = OPEN_CODE_DELIVERY_RETRY_DELAYS_MS[attempt] ?? 0;
338
+ return delay > 0
339
+ ? new Promise((resolve) => setTimeout(resolve, delay))
340
+ : Promise.resolve();
341
+ }
342
+ async function deliverOpenCodeEntry(owner, delivery) {
343
+ let target = null;
344
+ // Before the one allowed POST, retries are safe: no submission has happened.
345
+ // OpenCode must generate the message ID: its run loop treats IDs as
346
+ // lexicographically ordered, so arbitrary caller IDs can persist without
347
+ // ever becoming the active user turn. The unique inbox text correlates the
348
+ // generated message across confirmation and process-replay instead.
349
+ for (let attempt = 0; attempt < OPEN_CODE_DELIVERY_RETRY_DELAYS_MS.length; attempt++) {
350
+ if (state !== owner || !owner.connected)
351
+ return 'failed';
352
+ if (attempt > 0) {
353
+ delivery.state = 'retried';
354
+ owner.totalEntriesRetried++;
355
+ await waitForDeliveryRetry(attempt);
356
+ if (state !== owner || !owner.connected)
357
+ return 'failed';
358
+ }
359
+ if (!target) {
360
+ try {
361
+ target = await resolveInjectionSession();
362
+ }
363
+ catch (err) {
364
+ log(`entry ${delivery.entryId} target unavailable: ${err}`);
365
+ continue;
366
+ }
367
+ if (!target)
368
+ return 'failed';
369
+ }
370
+ try {
371
+ if (await findInjectedMessage(target.id, delivery.text)) {
372
+ return 'delivered';
373
+ }
374
+ }
375
+ catch (err) {
376
+ log(`entry ${delivery.entryId} confirmation unavailable: ${err}`);
377
+ continue;
378
+ }
379
+ if (!delivery.allowSubmit) {
380
+ continue;
381
+ }
382
+ // prompt_async is not idempotent. Submit at most once, then only poll for
383
+ // the exact text. A transport failure is ambiguous and follows the same
384
+ // confirmation-only path.
385
+ let status = null;
386
+ try {
387
+ status = await promptSession(target.id, {
388
+ parts: [{ type: 'text', text: delivery.text }],
389
+ });
390
+ }
391
+ catch (err) {
392
+ log(`entry ${delivery.entryId} submission outcome unavailable: ${err}`);
393
+ }
394
+ delivery.state = 'delivered-unconfirmed';
395
+ if (status !== null && status !== 200 && status !== 204) {
396
+ if (status === 404)
397
+ clearBinding();
398
+ return 'failed';
399
+ }
400
+ for (let confirmationAttempt = 0; confirmationAttempt < OPEN_CODE_DELIVERY_RETRY_DELAYS_MS.length; confirmationAttempt++) {
401
+ if (confirmationAttempt > 0) {
402
+ delivery.state = 'retried';
403
+ owner.totalEntriesRetried++;
404
+ await waitForDeliveryRetry(confirmationAttempt);
405
+ if (state !== owner || !owner.connected)
406
+ return 'delivered-unconfirmed';
407
+ delivery.state = 'delivered-unconfirmed';
408
+ }
409
+ try {
410
+ if (await findInjectedMessage(target.id, delivery.text)) {
411
+ return 'delivered';
412
+ }
413
+ }
414
+ catch (err) {
415
+ log(`entry ${delivery.entryId} post-acceptance confirmation unavailable: ${err}`);
416
+ }
417
+ }
418
+ return 'delivered-unconfirmed';
419
+ }
420
+ // A replay begins from a durable inbox record but cannot know whether the
421
+ // prior process stopped before or after submission. Missing confirmation
422
+ // therefore remains unknown, not a definite delivery failure.
423
+ return delivery.allowSubmit ? 'failed' : 'delivered-unconfirmed';
424
+ }
425
+ async function processOpenCodeDeliveries(owner) {
426
+ if (owner.processingDeliveries)
427
+ return;
428
+ owner.processingDeliveries = true;
429
+ try {
430
+ while (state === owner && owner.deliveryQueue.length > 0) {
431
+ const delivery = owner.deliveryQueue.shift();
432
+ let outcome = 'failed';
433
+ try {
434
+ outcome = await deliverOpenCodeEntry(owner, delivery);
435
+ }
436
+ catch (err) {
437
+ log(`entry ${delivery.entryId} delivery error: ${err}`);
438
+ }
439
+ owner.activeDeliveries.delete(delivery.entryId);
440
+ if (outcome === 'delivered') {
441
+ owner.unconfirmedEntries.delete(delivery.entryId);
442
+ owner.failedEntries.delete(delivery.entryId);
443
+ rememberBounded(owner.deliveredEntries, delivery.entryId, delivery.text);
444
+ owner.totalEntriesInjected++;
445
+ delivery.resolve(true);
446
+ }
447
+ else if (outcome === 'delivered-unconfirmed') {
448
+ owner.failedEntries.delete(delivery.entryId);
449
+ rememberBounded(owner.unconfirmedEntries, delivery.entryId, delivery.text);
450
+ delivery.resolve(false);
451
+ }
452
+ else {
453
+ owner.unconfirmedEntries.delete(delivery.entryId);
454
+ rememberBounded(owner.failedEntries, delivery.entryId, delivery.text);
455
+ delivery.resolve(false);
456
+ }
457
+ }
458
+ }
459
+ finally {
460
+ owner.processingDeliveries = false;
461
+ }
303
462
  }
304
463
  // ---------------------------------------------------------------------------
305
464
  // Public API
@@ -347,43 +506,60 @@ export async function injectInitialKickoff(launch) {
347
506
  }
348
507
  }
349
508
  /**
350
- * Inject a silent context entry (noReply) into our session.
351
- * Falls through silently caller falls back to inbox write.
509
+ * Queue one durable inbox entry for delivery into the bound OpenCode session.
510
+ * The durable inbox text identifies the OpenCode-generated user message, so
511
+ * retries and replay can confirm an earlier ambiguous submission without
512
+ * supplying an ordering-breaking caller message ID or running it twice.
352
513
  */
353
- export async function injectOpenCodeEntry(text) {
354
- if (!state?.connected)
355
- return false;
356
- try {
357
- const target = await resolveInjectionSession();
358
- if (!target)
359
- return false;
360
- const body = {
361
- parts: [{ type: 'text', text }],
362
- };
363
- if (await promptSession(target.id, body)) {
364
- state.totalEntriesInjected++;
365
- return true;
514
+ export function injectOpenCodeEntry(text, entryId = createHash('sha256').update(text).digest('hex'), allowSubmit = true) {
515
+ const owner = state;
516
+ if (!owner?.connected)
517
+ return Promise.resolve(false);
518
+ const deliveredText = owner.deliveredEntries.get(entryId);
519
+ if (deliveredText !== undefined) {
520
+ if (deliveredText !== text) {
521
+ log(`entry ${entryId} replay text mismatch`);
522
+ rememberBounded(owner.failedEntries, entryId, text);
523
+ return Promise.resolve(false);
366
524
  }
367
- // A failed prompt means the cached target is no longer trustworthy. Clear
368
- // it before considering only a newer root created by `/new`; never fall
369
- // through to a child or arbitrary newest session.
370
- const knownRootSessionIds = [...state.knownRootSessionIds];
371
- clearBinding();
372
- const replacement = await rebindAfterFailure(knownRootSessionIds);
373
- if (!replacement)
374
- return false;
375
- if (await promptSession(replacement.id, body)) {
376
- state.totalEntriesInjected++;
377
- return true;
525
+ return Promise.resolve(true);
526
+ }
527
+ const unconfirmedText = owner.unconfirmedEntries.get(entryId);
528
+ if (unconfirmedText !== undefined) {
529
+ if (unconfirmedText !== text) {
530
+ log(`entry ${entryId} unconfirmed replay text mismatch`);
531
+ rememberBounded(owner.failedEntries, entryId, text);
532
+ return Promise.resolve(false);
378
533
  }
379
- clearBinding();
380
- return false;
534
+ return Promise.resolve(false);
381
535
  }
382
- catch (err) {
383
- log(`entry error: ${err}`);
384
- clearBinding();
385
- return false;
536
+ const active = owner.activeDeliveries.get(entryId);
537
+ if (active) {
538
+ if (active.text !== text) {
539
+ log(`entry ${entryId} active text mismatch`);
540
+ rememberBounded(owner.failedEntries, entryId, text);
541
+ return Promise.resolve(false);
542
+ }
543
+ return active.promise;
386
544
  }
545
+ let resolveDelivery;
546
+ const promise = new Promise((resolve) => {
547
+ resolveDelivery = resolve;
548
+ });
549
+ const delivery = {
550
+ entryId,
551
+ text,
552
+ allowSubmit,
553
+ state: 'queued',
554
+ resolve: resolveDelivery,
555
+ promise,
556
+ };
557
+ owner.unconfirmedEntries.delete(entryId);
558
+ owner.failedEntries.delete(entryId);
559
+ owner.activeDeliveries.set(entryId, delivery);
560
+ owner.deliveryQueue.push(delivery);
561
+ void processOpenCodeDeliveries(owner);
562
+ return promise;
387
563
  }
388
564
  export async function probeOpenCodeDroneArmed() {
389
565
  if (!state?.connected)
@@ -399,18 +575,29 @@ export async function probeOpenCodeDroneArmed() {
399
575
  return false;
400
576
  }
401
577
  catch {
402
- clearBinding();
403
578
  return false;
404
579
  }
405
580
  }
406
581
  export function disconnectOpenCodeDrone() {
582
+ abandonOpenCodeDeliveries(state);
407
583
  state = null;
408
584
  }
409
585
  export function getOpenCodeConnectionState() {
586
+ const deliveryStates = {
587
+ queued: 0,
588
+ 'delivered-unconfirmed': state?.unconfirmedEntries.size ?? 0,
589
+ retried: 0,
590
+ failed: state?.failedEntries.size ?? 0,
591
+ };
592
+ for (const delivery of state?.activeDeliveries.values() ?? []) {
593
+ deliveryStates[delivery.state]++;
594
+ }
410
595
  return {
411
596
  connected: state?.connected ?? false,
412
597
  sessionId: state?.sessionId ?? null,
413
598
  totalEntriesInjected: state?.totalEntriesInjected ?? 0,
599
+ totalEntriesRetried: state?.totalEntriesRetried ?? 0,
600
+ deliveryStates,
414
601
  };
415
602
  }
416
603
  export function computeOpenCodePort(droneId, base = 14096) {
@@ -424,6 +611,7 @@ export function computeOpenCodePort(droneId, base = 14096) {
424
611
  }
425
612
  /** Test-only cleanup for module state and the local cross-process binding. */
426
613
  export function __resetOpenCodeDroneForTests() {
614
+ abandonOpenCodeDeliveries(state);
427
615
  state = null;
428
616
  for (const path of bindingPathsForTests) {
429
617
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-drone.js","sourceRoot":"","sources":["../src/opencode-drone.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-drone.js","sourceRoot":"","sources":["../src/opencode-drone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const OPENCODE_WAKE_PATH_GUIDANCE: string;
2
+ //# sourceMappingURL=opencode-wake-copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-wake-copy.d.ts","sourceRoot":"","sources":["../src/opencode-wake-copy.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QAOJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const OPENCODE_WAKE_PATH_GUIDANCE = 'OpenCode wakes through HTTP entry injection into its session through the local HTTP API. ' +
2
+ 'Borg writes each entry to the durable inbox before one injection attempt and ' +
3
+ 'confirms delivery by the unique persisted entry text; no inbox Monitor or secondary wake loop is used. ' +
4
+ 'If injection is rejected or cannot be ' +
5
+ 'confirmed, the durable entry remains available and `borg_stream-status` reports ' +
6
+ 'it as failed or delivered-unconfirmed; run `borg_read-log unread_only=true` and ' +
7
+ 'drain the unread log to recover.';
8
+ //# sourceMappingURL=opencode-wake-copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-wake-copy.js","sourceRoot":"","sources":["../src/opencode-wake-copy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GACtC,2FAA2F;IAC3F,+EAA+E;IAC/E,yGAAyG;IACzG,wCAAwC;IACxC,kFAAkF;IAClF,kFAAkF;IAClF,kCAAkC,CAAC"}
@@ -12,9 +12,8 @@
12
12
  * one of `startup` / `resume` / `clear` / `compact`. The `borg-regen`
13
13
  * SessionStart hook uses this to detect a `/clear` re-orientation, which is
14
14
  * the FIRST time the hook is the SOLE orientation path (the launch kickoff
15
- * prompt is gone) AND the moment Claude Code clears the session-scoped
16
- * `/loop` + `ScheduleWakeup` — so the re-injected orientation must instruct
17
- * an operational re-arm.
15
+ * prompt is gone), so the re-injected orientation must instruct an operational
16
+ * Monitor re-arm.
18
17
  *
19
18
  * Best-effort + total: empty input (manual / TTY run with no stdin),
20
19
  * malformed JSON, a missing `source`, or a non-string `source` all return
@@ -34,9 +33,8 @@ export type AgentKind = 'claude' | 'codex' | 'opencode';
34
33
  *
35
34
  * Agent-branched on the existing env-agnostic signal (BORG_SESSION-style
36
35
  * `isCodexRemoteWakeEnabled`), NOT on a mutable server-recorded field:
37
- * - claude: arm the inbox-file tail Monitor + engage `/loop` + maintain one
38
- * adaptive `ScheduleWakeup` recovery deadline (long while the Monitor is
39
- * healthy or indeterminate; short only while explicitly broken).
36
+ * - claude: arm the inbox-file tail Monitor, drain unread entries on every
37
+ * wake, and re-arm the Monitor if it exits or is missing.
40
38
  * - codex: Borg's activity stream reaches the app-server remote-control inbox
41
39
  * channel; each wake is followed by an unread-log drain. Manual full regen
42
40
  * + drain is a degraded fallback when remote control is unavailable.
@@ -1 +1 @@
1
- {"version":3,"file":"regen-format.d.ts","sourceRoot":"","sources":["../src/regen-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"regen-format.d.ts","sourceRoot":"","sources":["../src/regen-format.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { formatDroneAddressToken } from 'borgmcp-shared/drone-address';
11
11
  import { RUNTIME_METADATA_ADVISORY, renderRuntimeMetadataLines, } from './roster-render.js';
12
12
  import { shellEscape } from './shell-escape.js';
13
13
  import { resolveInboxMonitorPath } from './self-path.js';
14
+ import { OPENCODE_WAKE_PATH_GUIDANCE } from './opencode-wake-copy.js';
14
15
  /**
15
16
  * Extract the SessionStart `source` from a Claude Code hook payload (gh#926).
16
17
  *
@@ -18,9 +19,8 @@ import { resolveInboxMonitorPath } from './self-path.js';
18
19
  * one of `startup` / `resume` / `clear` / `compact`. The `borg-regen`
19
20
  * SessionStart hook uses this to detect a `/clear` re-orientation, which is
20
21
  * the FIRST time the hook is the SOLE orientation path (the launch kickoff
21
- * prompt is gone) AND the moment Claude Code clears the session-scoped
22
- * `/loop` + `ScheduleWakeup` — so the re-injected orientation must instruct
23
- * an operational re-arm.
22
+ * prompt is gone), so the re-injected orientation must instruct an operational
23
+ * Monitor re-arm.
24
24
  *
25
25
  * Best-effort + total: empty input (manual / TTY run with no stdin),
26
26
  * malformed JSON, a missing `source`, or a non-string `source` all return
@@ -49,9 +49,8 @@ export function parseHookSource(raw) {
49
49
  *
50
50
  * Agent-branched on the existing env-agnostic signal (BORG_SESSION-style
51
51
  * `isCodexRemoteWakeEnabled`), NOT on a mutable server-recorded field:
52
- * - claude: arm the inbox-file tail Monitor + engage `/loop` + maintain one
53
- * adaptive `ScheduleWakeup` recovery deadline (long while the Monitor is
54
- * healthy or indeterminate; short only while explicitly broken).
52
+ * - claude: arm the inbox-file tail Monitor, drain unread entries on every
53
+ * wake, and re-arm the Monitor if it exits or is missing.
55
54
  * - codex: Borg's activity stream reaches the app-server remote-control inbox
56
55
  * channel; each wake is followed by an unread-log drain. Manual full regen
57
56
  * + drain is a degraded fallback when remote control is unavailable.
@@ -71,9 +70,7 @@ export function wakePathArming(agentKind, inboxPath, monitorStateRoot) {
71
70
  ].join(' ');
72
71
  }
73
72
  if (agentKind === 'opencode') {
74
- return ('Wake path: OpenCode wakes via SDK-driven entry injection into the TUI session — ' +
75
- 'there is no tail-Monitor or `/loop` heartbeat to arm. Cube posts are delivered ' +
76
- 'directly into your active session. Use \`borg_regen\` at any time for fresh context.');
73
+ return OPENCODE_WAKE_PATH_GUIDANCE;
77
74
  }
78
75
  // gh#client#18: use absolute path to THIS installation's borg-inbox-monitor
79
76
  // so the orientation command always resolves to the same version as the
@@ -85,9 +82,8 @@ export function wakePathArming(agentKind, inboxPath, monitorStateRoot) {
85
82
  return [
86
83
  'Arm your wake path before working:',
87
84
  `1. **Inbox Monitor** (wake path) — run a persistent Monitor on \`${monitorCommand}\` so cube posts wake you in real time.`,
88
- '2. **Engage `/loop`** (self-paced) so you keep waking to triage the cube.',
89
- '3. **Adaptive recovery** — set ONE `ScheduleWakeup`: [9000, 12600]s (3h ±30m) when Monitor healthy/indeterminate; [720, 1080]s (15m ±3m) when broken. Re-arm Monitor; retry short until healthy. A real Monitor wake resets, not stacks.',
90
- '4. **Recovery tick** — drain `borg_read-log unread_only=true`. If empty, check wake status, set deadline, resume prior work. No full-regen or liveness post on empty; safety probes may still wake.',
85
+ '2. **On every wake** — drain `borg_read-log unread_only=true`. If empty, resume prior work without a full regen or liveness post; safety probes may still wake.',
86
+ '3. **Monitor recovery** — if the Monitor exits or is missing, re-arm it when the exit notification wakes you.',
91
87
  ].join('\n');
92
88
  }
93
89
  /**
@@ -137,8 +133,8 @@ export function formatLeanOrientation(args) {
137
133
  ? '\n_(`/clear` cleared your conversation; Codex remote-control wake remains active. Follow the required Codex wake path below.)_\n'
138
134
  : agentKind === 'claude'
139
135
  ? [
140
- '\n_(`/clear` cleared Claude\'s `/loop` and recovery deadline — re-arm them now.)_',
141
- '_Quiet-clear fallback: if a later turn follows silence, inspect `borg_stream-status` + `borg_roster`; call `borg_regen mode="full"`, drain `borg_read-log unread_only=true`, then re-arm Monitor, `/loop`, and the recovery deadline._\n',
136
+ '\n_(`/clear` cleared Claude\'s conversation — re-arm the inbox Monitor now.)_',
137
+ '_Quiet-clear fallback: if a later turn follows silence, inspect `borg_stream-status` + `borg_roster`; call `borg_regen mode="full"`, drain `borg_read-log unread_only=true`, then re-arm the Monitor._\n',
142
138
  ].join('\n')
143
139
  : ''
144
140
  : '';