@songsid/agend 2.1.7-beta.3 → 2.1.7-beta.4

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 (43) hide show
  1. package/dist/agent-endpoint.d.ts +2 -0
  2. package/dist/agent-endpoint.js +47 -5
  3. package/dist/agent-endpoint.js.map +1 -1
  4. package/dist/backend/codex.d.ts +18 -0
  5. package/dist/backend/codex.js +68 -3
  6. package/dist/backend/codex.js.map +1 -1
  7. package/dist/backend/types.d.ts +9 -0
  8. package/dist/backend/types.js.map +1 -1
  9. package/dist/channel/mcp-operation-response.d.ts +3 -0
  10. package/dist/channel/mcp-operation-response.js +21 -0
  11. package/dist/channel/mcp-operation-response.js.map +1 -0
  12. package/dist/channel/mcp-operation-response.test.d.ts +1 -0
  13. package/dist/channel/mcp-operation-response.test.js +23 -0
  14. package/dist/channel/mcp-operation-response.test.js.map +1 -0
  15. package/dist/channel/mcp-server.js +20 -5
  16. package/dist/channel/mcp-server.js.map +1 -1
  17. package/dist/daemon.d.ts +23 -0
  18. package/dist/daemon.js +248 -24
  19. package/dist/daemon.js.map +1 -1
  20. package/dist/delivery-outbox.d.ts +90 -0
  21. package/dist/delivery-outbox.js +562 -0
  22. package/dist/delivery-outbox.js.map +1 -0
  23. package/dist/delivery-outbox.test.d.ts +1 -0
  24. package/dist/delivery-outbox.test.js +343 -0
  25. package/dist/delivery-outbox.test.js.map +1 -0
  26. package/dist/fleet-manager.d.ts +38 -1
  27. package/dist/fleet-manager.js +302 -36
  28. package/dist/fleet-manager.js.map +1 -1
  29. package/dist/instance-lifecycle.d.ts +5 -0
  30. package/dist/instance-lifecycle.js +38 -0
  31. package/dist/instance-lifecycle.js.map +1 -1
  32. package/dist/instructions.js +2 -0
  33. package/dist/instructions.js.map +1 -1
  34. package/dist/outbound-handlers.d.ts +22 -1
  35. package/dist/outbound-handlers.js +81 -7
  36. package/dist/outbound-handlers.js.map +1 -1
  37. package/dist/remote-credential-check.d.ts +39 -0
  38. package/dist/remote-credential-check.js +81 -0
  39. package/dist/remote-credential-check.js.map +1 -0
  40. package/dist/usage/providers.d.ts +11 -6
  41. package/dist/usage/providers.js +17 -10
  42. package/dist/usage/providers.js.map +1 -1
  43. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-outbox.js","sourceRoot":"","sources":["../src/delivery-outbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,343 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { mkdtempSync, rmSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { tmpdir } from "node:os";
5
+ import { spawn } from "node:child_process";
6
+ import { createInterface } from "node:readline";
7
+ import { once } from "node:events";
8
+ import { pathToFileURL } from "node:url";
9
+ import { DeliveryOutbox, DURABLE_DELIVERY_ABORT_BACKOFF_MS, DURABLE_DELIVERY_MAX_AGE_MS, DURABLE_DELIVERY_MAX_ATTEMPTS } from "./delivery-outbox.js";
10
+ const roots = [];
11
+ function tempDb() {
12
+ const root = mkdtempSync(join(tmpdir(), "agend-outbox-test-"));
13
+ roots.push(root);
14
+ return join(root, "delivery-outbox.db");
15
+ }
16
+ function input(overrides = {}) {
17
+ const id = overrides.operationId ?? "op-1";
18
+ const target = overrides.targetInstance ?? "worker";
19
+ return {
20
+ operationId: id,
21
+ sourceKey: `mcp:source:${id}:${target}:fleet_inbound`,
22
+ sourceInstance: "source",
23
+ sourceDaemonBootId: "source-boot-1",
24
+ targetInstance: target,
25
+ kind: "fleet_inbound",
26
+ correlationId: "same-correlation",
27
+ payload: { type: "fleet_inbound", content: "hello", meta: {} },
28
+ ...overrides,
29
+ };
30
+ }
31
+ afterEach(() => {
32
+ vi.useRealTimers();
33
+ for (const root of roots.splice(0))
34
+ rmSync(root, { recursive: true, force: true });
35
+ });
36
+ describe("DeliveryOutbox", () => {
37
+ it("commits admission before returning and makes an operation retry idempotent", () => {
38
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
39
+ const first = outbox.admit(input());
40
+ const retry = outbox.admit(input());
41
+ expect(first.inserted).toBe(true);
42
+ expect(retry.inserted).toBe(false);
43
+ expect(retry.delivery.deliveryId).toBe(first.delivery.deliveryId);
44
+ expect(retry.delivery.state).toBe("queued");
45
+ outbox.close();
46
+ });
47
+ it("recovers a pre-begin dispatch after SIGKILL when target stays stopped, then expires it visibly", async () => {
48
+ const dbPath = tempDb();
49
+ const storeUrl = pathToFileURL(join(process.cwd(), "src/delivery-outbox.ts")).href;
50
+ const managerUrl = pathToFileURL(join(process.cwd(), "src/fleet-manager.ts")).href;
51
+ const daemonUrl = pathToFileURL(join(process.cwd(), "src/daemon.ts")).href;
52
+ const script = [
53
+ `import { FleetManager } from ${JSON.stringify(managerUrl)};`,
54
+ `import { DeliveryOutbox } from ${JSON.stringify(storeUrl)};`,
55
+ `import { Daemon } from ${JSON.stringify(daemonUrl)};`,
56
+ `import { mkdirSync, writeFileSync } from "node:fs";`,
57
+ `import pino from "pino";`,
58
+ `const manager = new FleetManager(${JSON.stringify(dirname(dbPath))});`,
59
+ `const outbox = new DeliveryOutbox(${JSON.stringify(dbPath)}, manager.managerBootId);`,
60
+ `manager.deliveryOutbox = outbox;`,
61
+ `manager.shuttingDown = true;`,
62
+ `const logger = pino({ level: "silent" });`,
63
+ `const makeDaemon = name => new Daemon(name, { working_directory: "/tmp", log_level: "error" }, ${JSON.stringify(dirname(dbPath))} + "/instances/" + name, false, undefined, undefined, logger);`,
64
+ `const source = makeDaemon("source");`,
65
+ `const target = makeDaemon("worker");`,
66
+ `source.setDeliveryOutboxPort(outbox); target.setDeliveryOutboxPort(outbox);`,
67
+ `manager.lifecycle.daemons.set("source", source); manager.lifecycle.daemons.set("worker", target);`,
68
+ `const accepted = manager.admitDurableDelivery({ operationId: "op-1", sourceDaemonBootId: source.bootId, sourceInstance: "source", targetInstance: "worker", kind: "fleet_inbound", correlationId: "same-correlation", payload: { type: "fleet_inbound", content: "hello", meta: {} } });`,
69
+ `const claimed = outbox.claimNext(manager.managerBootId, name => manager.lifecycle.daemons.get(name)?.bootId ?? null, new Set());`,
70
+ `const targetDaemon = manager.lifecycle.daemons.get("worker");`,
71
+ `const instanceDir = ${JSON.stringify(dirname(dbPath))} + "/instances/worker";`,
72
+ `mkdirSync(instanceDir, { recursive: true }); writeFileSync(instanceDir + "/window-id", "@worker");`,
73
+ `targetDaemon.tmux = { capturePane: async () => "❯", pasteBuffer: async () => true, sendSpecialKey: async () => true, getLastPasteError: () => undefined, isLastPasteFailureRecoverable: () => true };`,
74
+ `targetDaemon.controlClient = {};`,
75
+ `targetDaemon.paneReadinessForDelivery = async () => "busy";`,
76
+ `targetDaemon.probeBlockingDialog = async () => ({ state: "clear" });`,
77
+ `targetDaemon.hasPositiveDeliveryInput = async () => false;`,
78
+ `targetDaemon.waitForPaneReadyForDelivery = async () => { process.stdout.write("dispatch-waiting\\n"); return new Promise(() => {}); };`,
79
+ `targetDaemon.pushChannelMessage("hello", { delivery_id: accepted.deliveryId, delivery_attempt: String(claimed.attemptNo), from_instance: "source", correlation_id: "same-correlation", user: "instance:source", user_id: "instance:source", message_id: "message-crash-before-begin", chat_id: "", thread_id: "", ts: new Date().toISOString() });`,
80
+ `setInterval(() => {}, 1000);`,
81
+ ].join("\n");
82
+ const child = spawn(process.execPath, ["--import", "tsx", "--input-type=module", "-e", script], {
83
+ cwd: process.cwd(),
84
+ stdio: ["ignore", "pipe", "pipe"],
85
+ });
86
+ let childStderr = "";
87
+ child.stderr.setEncoding("utf8").on("data", chunk => { childStderr += chunk; });
88
+ const lines = createInterface({ input: child.stdout });
89
+ const committed = new Promise((resolve, reject) => {
90
+ const timer = setTimeout(() => {
91
+ child.kill("SIGKILL");
92
+ reject(new Error(`writer child did not reach the pre-begin wait: ${childStderr}`));
93
+ }, 8_000);
94
+ lines.once("line", line => {
95
+ clearTimeout(timer);
96
+ if (line === "dispatch-waiting")
97
+ resolve();
98
+ else
99
+ reject(new Error(`unexpected child output: ${line}`));
100
+ });
101
+ child.once("error", err => {
102
+ clearTimeout(timer);
103
+ reject(err);
104
+ });
105
+ });
106
+ await committed;
107
+ child.kill("SIGKILL");
108
+ await once(child, "exit");
109
+ lines.close();
110
+ const replacementManager = new (await import("./fleet-manager.js")).FleetManager(dirname(dbPath));
111
+ replacementManager.shuttingDown = true;
112
+ // Exercise FleetManager's production startup wiring: it opens the durable
113
+ // store and runs recoverForBoot itself before any target Daemon is started.
114
+ replacementManager.ensureDeliveryOutbox();
115
+ const restarted = replacementManager.deliveryOutbox;
116
+ const { Daemon } = await import("./daemon.js");
117
+ const pinoModule = await import("pino");
118
+ const logger = pinoModule.default({ level: "silent" });
119
+ const makeDaemon = (name) => new Daemon(name, { working_directory: "/tmp", log_level: "error", restart_policy: { max_retries: 10, backoff: "exponential", reset_after: 300 }, context_guardian: { max_age_hours: 4, grace_period_ms: 600000 } }, join(dirname(dbPath), "instances", name), false, undefined, undefined, logger);
120
+ const sourceDaemon = makeDaemon("source");
121
+ sourceDaemon.setDeliveryOutboxPort(restarted);
122
+ replacementManager.lifecycle.daemons.set("source", sourceDaemon);
123
+ replacementManager.onDaemonReady("source", sourceDaemon.bootId);
124
+ const pendingAfterRecovery = restarted.listPending();
125
+ expect(pendingAfterRecovery).toMatchObject([
126
+ { operationId: "op-1", targetInstance: "worker", state: "queued", payload: { content: "hello" } },
127
+ { operationId: expect.stringContaining("notice:"), targetInstance: "source", state: "queued" },
128
+ ]);
129
+ expect(replacementManager.lifecycle.daemons.has("worker")).toBe(false);
130
+ expect(restarted.getUnansweredAccepted("source", sourceDaemon.bootId)).toHaveLength(1);
131
+ const queuedDelivery = pendingAfterRecovery.find(row => row.operationId === "op-1");
132
+ const createdAt = restarted.db.prepare("SELECT created_at FROM deliveries WHERE delivery_id=?").get(queuedDelivery.deliveryId).created_at;
133
+ expect(restarted.expireStale(Date.parse(createdAt) + DURABLE_DELIVERY_MAX_AGE_MS + 1)).toBe(1);
134
+ expect(restarted.get(queuedDelivery.deliveryId)).toMatchObject({ state: "failed" });
135
+ const failureNotice = restarted.db.prepare("SELECT state,target_instance,payload_json FROM deliveries WHERE kind='delivery_outcome_notice' AND operation_id=?").get(`notice:op-1:${queuedDelivery.deliveryId}`);
136
+ expect(failureNotice?.state).toBe("queued");
137
+ expect(failureNotice?.target_instance).toBe("source");
138
+ expect(JSON.parse(failureNotice.payload_json).content).toContain("state=failed");
139
+ restarted.close();
140
+ });
141
+ it("marks an in-flight paste uncertain after whole-process SIGKILL and persists one sender notice", async () => {
142
+ const dbPath = tempDb();
143
+ const storeUrl = pathToFileURL(join(process.cwd(), "src/delivery-outbox.ts")).href;
144
+ const managerUrl = pathToFileURL(join(process.cwd(), "src/fleet-manager.ts")).href;
145
+ const daemonUrl = pathToFileURL(join(process.cwd(), "src/daemon.ts")).href;
146
+ const script = [
147
+ `import { FleetManager } from ${JSON.stringify(managerUrl)};`,
148
+ `import { DeliveryOutbox } from ${JSON.stringify(storeUrl)};`,
149
+ `import { Daemon } from ${JSON.stringify(daemonUrl)};`,
150
+ `import { mkdirSync, writeFileSync } from "node:fs";`,
151
+ `import pino from "pino";`,
152
+ `const root = ${JSON.stringify(dirname(dbPath))};`,
153
+ `const manager = new FleetManager(root);`,
154
+ `const outbox = new DeliveryOutbox(${JSON.stringify(dbPath)}, manager.managerBootId);`,
155
+ `manager.deliveryOutbox = outbox; manager.shuttingDown = true;`,
156
+ `const logger = pino({ level: "silent" });`,
157
+ `const makeDaemon = name => new Daemon(name, { working_directory: "/tmp", log_level: "error" }, root + "/instances/" + name, false, undefined, undefined, logger);`,
158
+ `const source = makeDaemon("source"); const target = makeDaemon("worker");`,
159
+ `source.setDeliveryOutboxPort(outbox); target.setDeliveryOutboxPort(outbox);`,
160
+ `manager.lifecycle.daemons.set("source", source); manager.lifecycle.daemons.set("worker", target);`,
161
+ `const accepted = manager.admitDurableDelivery({ operationId: "op-paste-crash", sourceDaemonBootId: source.bootId, sourceInstance: "source", targetInstance: "worker", kind: "fleet_inbound", correlationId: "corr-paste-crash", payload: { type: "fleet_inbound", content: "hello", meta: {} } });`,
162
+ `const claimed = outbox.claimNext(manager.managerBootId, name => manager.lifecycle.daemons.get(name)?.bootId ?? null, new Set());`,
163
+ `const instanceDir = root + "/instances/worker"; mkdirSync(instanceDir, { recursive: true }); writeFileSync(instanceDir + "/window-id", "@worker");`,
164
+ `target.tmux = { capturePane: async () => "❯", pasteBuffer: async () => { process.stdout.write("pane-paste-started\\n"); return new Promise(() => {}); }, sendSpecialKey: async () => true, getLastPasteError: () => undefined, isLastPasteFailureRecoverable: () => true };`,
165
+ `target.pushChannelMessage("hello", { delivery_id: accepted.deliveryId, delivery_attempt: String(claimed.attemptNo), from_instance: "source", correlation_id: "corr-paste-crash", user: "instance:source", user_id: "instance:source", message_id: "message-paste-crash", chat_id: "", thread_id: "", ts: new Date().toISOString() });`,
166
+ `setInterval(() => {}, 1000);`,
167
+ ].join("\n");
168
+ const child = spawn(process.execPath, ["--import", "tsx", "--input-type=module", "-e", script], {
169
+ cwd: process.cwd(),
170
+ stdio: ["ignore", "pipe", "pipe"],
171
+ });
172
+ const lines = createInterface({ input: child.stdout });
173
+ const pasted = new Promise((resolve, reject) => {
174
+ const timer = setTimeout(() => reject(new Error("child did not reach the pane paste")), 10_000);
175
+ lines.once("line", line => {
176
+ clearTimeout(timer);
177
+ if (line === "pane-paste-started")
178
+ resolve();
179
+ else
180
+ reject(new Error(`unexpected child output: ${line}`));
181
+ });
182
+ child.once("error", err => {
183
+ clearTimeout(timer);
184
+ reject(err);
185
+ });
186
+ });
187
+ await pasted;
188
+ child.kill("SIGKILL");
189
+ await once(child, "exit");
190
+ lines.close();
191
+ const replacementManager = new (await import("./fleet-manager.js")).FleetManager(dirname(dbPath));
192
+ replacementManager.shuttingDown = true;
193
+ replacementManager.ensureDeliveryOutbox();
194
+ const restarted = replacementManager.deliveryOutbox;
195
+ const { Daemon } = await import("./daemon.js");
196
+ const pinoModule = await import("pino");
197
+ const logger = pinoModule.default({ level: "silent" });
198
+ const makeDaemon = (name) => new Daemon(name, { working_directory: "/tmp", log_level: "error", restart_policy: { max_retries: 10, backoff: "exponential", reset_after: 300 }, context_guardian: { max_age_hours: 4, grace_period_ms: 600000 } }, join(dirname(dbPath), "instances", name), false, undefined, undefined, logger);
199
+ const sourceDaemon = makeDaemon("source");
200
+ sourceDaemon.setDeliveryOutboxPort(restarted);
201
+ replacementManager.lifecycle.daemons.set("source", sourceDaemon);
202
+ replacementManager.onDaemonReady("source", sourceDaemon.bootId);
203
+ const row = restarted.getByOperation("source", "op-paste-crash")[0];
204
+ const notices = restarted.listPending().filter(item => item.kind === "delivery_outcome_notice");
205
+ expect(row).toMatchObject({ state: "uncertain", targetInstance: "worker" });
206
+ expect(notices).toHaveLength(1);
207
+ expect(notices[0]?.payload.content).toContain("state=uncertain");
208
+ expect(notices[0]?.payload.content).toContain("Do not resend");
209
+ restarted.close();
210
+ });
211
+ it("fences begin by attempt and target generation; abort safely returns work to retry", () => {
212
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
213
+ const row = outbox.admit(input()).delivery;
214
+ const claimed = outbox.claimNext("manager-1", () => "target-boot-1", new Set());
215
+ expect(outbox.begin(row.deliveryId, "old-target", claimed.attemptNo)).toBe("stale");
216
+ expect(outbox.begin(row.deliveryId, "target-boot-1", claimed.attemptNo)).toBe("begun");
217
+ expect(outbox.begin(row.deliveryId, "target-boot-1", claimed.attemptNo)).toBe("duplicate");
218
+ expect(outbox.begin(row.deliveryId, "target-boot-1", claimed.attemptNo + 1)).toBe("stale");
219
+ expect(outbox.abort(row.deliveryId, "target-boot-1", claimed.attemptNo, "pane lock recheck")).toBe(true);
220
+ expect(outbox.abort(row.deliveryId, "target-boot-1", claimed.attemptNo, "retry duplicate")).toBe(true);
221
+ expect(outbox.get(row.deliveryId)?.state).toBe("retry_wait");
222
+ expect(Date.parse(outbox.get(row.deliveryId).nextAttemptAt)).toBeGreaterThanOrEqual(Date.now() + DURABLE_DELIVERY_ABORT_BACKOFF_MS - 100);
223
+ outbox.close();
224
+ });
225
+ it("keeps FIFO per target across retry backoff while allowing another target to progress", () => {
226
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
227
+ const first = outbox.admit(input({ operationId: "op-1", sourceKey: "one", targetInstance: "worker-a" })).delivery;
228
+ const second = outbox.admit(input({ operationId: "op-2", sourceKey: "two", targetInstance: "worker-a" })).delivery;
229
+ const independent = outbox.admit(input({ operationId: "op-3", sourceKey: "three", targetInstance: "worker-b" })).delivery;
230
+ const claimed = outbox.claimNext("manager-1", target => `boot-${target}`, new Set());
231
+ expect(claimed.deliveryId).toBe(first.deliveryId);
232
+ expect(outbox.retryBeforeBegin(first.deliveryId, claimed.targetDaemonBootId, claimed.attemptNo, "temporarily unavailable", 60_000)).toBe(true);
233
+ const next = outbox.claimNext("manager-1", target => `boot-${target}`, new Set());
234
+ expect(next?.deliveryId).toBe(independent.deliveryId);
235
+ expect(outbox.get(second.deliveryId)?.state).toBe("queued");
236
+ outbox.close();
237
+ });
238
+ it("recovers unsubmitted leases and fences old target generations", () => {
239
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
240
+ const queued = outbox.admit(input({ operationId: "queued", sourceKey: "queued" })).delivery;
241
+ const claimed = outbox.claimNext("manager-1", () => "target-boot-1", new Set());
242
+ expect(outbox.recoverForBoot("manager-2").queued).toBe(1);
243
+ expect(outbox.get(queued.deliveryId)?.state).toBe("queued");
244
+ const afterBoot = outbox.claimNext("manager-2", () => "target-boot-2", new Set());
245
+ expect(outbox.begin(afterBoot.deliveryId, "target-boot-1", afterBoot.attemptNo)).toBe("stale");
246
+ expect(outbox.begin(afterBoot.deliveryId, "target-boot-2", afterBoot.attemptNo)).toBe("begun");
247
+ expect(outbox.recoverTargetGeneration("worker", "target-boot-3").uncertain).toBe(1);
248
+ expect(outbox.get(claimed.deliveryId)?.state).toBe("uncertain");
249
+ outbox.close();
250
+ });
251
+ it("tracks the MCP response boundary and deduplicates post-restart notices", () => {
252
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
253
+ const parent = outbox.admit(input()).delivery;
254
+ expect(outbox.getUnansweredAccepted("source", "source-boot-2")).toHaveLength(1);
255
+ expect(outbox.markResponseDelivered("source", "op-1")).toBe(1);
256
+ expect(outbox.getUnansweredAccepted("source", "source-boot-2")).toHaveLength(0);
257
+ const unanswered = outbox.admit(input({
258
+ operationId: "op-2",
259
+ sourceKey: "mcp:source:op-2:worker:fleet_inbound",
260
+ })).delivery;
261
+ const notice = outbox.admitPostRestartOutcomeNotice(unanswered, "source-boot-2");
262
+ const duplicate = outbox.admitPostRestartOutcomeNotice(unanswered, "source-boot-2");
263
+ expect(notice?.payload.content).toContain("Do not resend this operation");
264
+ expect(duplicate?.deliveryId).toBe(notice?.deliveryId);
265
+ const broadcastSibling = outbox.admit(input({
266
+ operationId: "op-2",
267
+ sourceKey: "mcp:source:op-2:worker-2::broadcast",
268
+ targetInstance: "worker-2",
269
+ kind: "broadcast",
270
+ })).delivery;
271
+ const siblingNotice = outbox.admitPostRestartOutcomeNotice(broadcastSibling, "source-boot-2");
272
+ expect(siblingNotice?.deliveryId).not.toBe(notice?.deliveryId);
273
+ expect(outbox.get(parent.deliveryId)?.responseDeliveredAt).not.toBeNull();
274
+ outbox.close();
275
+ });
276
+ it("turns a target-unavailable row into a visible terminal failure at its TTL", () => {
277
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
278
+ const row = outbox.admit(input()).delivery;
279
+ expect(outbox.claimNext("manager-1", () => null, new Set())).toBeUndefined();
280
+ const expired = outbox.expireStale(Date.now() + DURABLE_DELIVERY_MAX_AGE_MS + 1);
281
+ expect(expired).toBe(1);
282
+ expect(outbox.get(row.deliveryId)).toMatchObject({ state: "failed", lastError: "delivery TTL expired before target became available" });
283
+ expect(outbox.listPending()).toEqual(expect.arrayContaining([
284
+ expect.objectContaining({ kind: "delivery_outcome_notice", targetInstance: "source", state: "queued" }),
285
+ ]));
286
+ outbox.close();
287
+ });
288
+ it("does not spend submission attempts on repeated pre-begin readiness deferrals", () => {
289
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
290
+ const row = outbox.admit(input()).delivery;
291
+ for (let attempt = 1; attempt <= DURABLE_DELIVERY_MAX_ATTEMPTS + 1; attempt++) {
292
+ const claimed = outbox.claimNext("manager-1", () => "target-boot-1", new Set());
293
+ expect(claimed.attemptNo).toBe(attempt);
294
+ expect(outbox.retryBeforeBegin(row.deliveryId, "target-boot-1", attempt, "readiness timeout", 0)).toBe(true);
295
+ }
296
+ expect(outbox.get(row.deliveryId)?.state).toBe("retry_wait");
297
+ expect(outbox.get(row.deliveryId)?.lastError).toBe("readiness timeout");
298
+ expect(outbox.listPending().filter(item => item.kind === "delivery_outcome_notice")).toHaveLength(0);
299
+ outbox.close();
300
+ });
301
+ it("bounds actual pane submission attempts and atomically queues one notice", () => {
302
+ vi.useFakeTimers();
303
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
304
+ const row = outbox.admit(input()).delivery;
305
+ for (let attempt = 1; attempt <= DURABLE_DELIVERY_MAX_ATTEMPTS; attempt++) {
306
+ const claimed = outbox.claimNext("manager-1", () => "target-boot-1", new Set());
307
+ expect(claimed.attemptNo).toBe(attempt);
308
+ expect(outbox.begin(row.deliveryId, "target-boot-1", attempt)).toBe("begun");
309
+ expect(outbox.abort(row.deliveryId, "target-boot-1", attempt, "pane confirmed no write")).toBe(true);
310
+ vi.advanceTimersByTime(DURABLE_DELIVERY_ABORT_BACKOFF_MS + 1);
311
+ }
312
+ const exhausted = outbox.claimNext("manager-1", () => "target-boot-1", new Set());
313
+ expect(exhausted.attemptNo).toBe(DURABLE_DELIVERY_MAX_ATTEMPTS + 1);
314
+ expect(outbox.begin(row.deliveryId, "target-boot-1", exhausted.attemptNo)).toBe("stale");
315
+ expect(outbox.get(row.deliveryId)?.state).toBe("failed");
316
+ expect(outbox.listPending().filter(item => item.kind === "delivery_outcome_notice")).toHaveLength(1);
317
+ outbox.close();
318
+ });
319
+ it("atomically notices uncertain submissions and never recursively notices a failed notice", () => {
320
+ vi.useFakeTimers();
321
+ const outbox = new DeliveryOutbox(tempDb(), "manager-1");
322
+ const row = outbox.admit(input()).delivery;
323
+ const claimed = outbox.claimNext("manager-1", () => "target-boot-1", new Set());
324
+ expect(outbox.begin(row.deliveryId, "target-boot-1", claimed.attemptNo)).toBe("begun");
325
+ expect(outbox.complete(row.deliveryId, "target-boot-1", claimed.attemptNo, "uncertain", "pane outcome unknown")).toBe(true);
326
+ const notice = outbox.listPending().find(item => item.kind === "delivery_outcome_notice");
327
+ expect(notice.payload.content).toContain("state=uncertain");
328
+ expect(notice.payload.content).toContain("Do not resend");
329
+ for (let attempt = 1; attempt <= DURABLE_DELIVERY_MAX_ATTEMPTS; attempt++) {
330
+ const noticeClaim = outbox.claimNext("manager-1", () => "source-boot-1", new Set());
331
+ expect(noticeClaim.deliveryId).toBe(notice.deliveryId);
332
+ expect(outbox.begin(notice.deliveryId, "source-boot-1", attempt)).toBe("begun");
333
+ expect(outbox.abort(notice.deliveryId, "source-boot-1", attempt, "source unavailable")).toBe(true);
334
+ vi.advanceTimersByTime(DURABLE_DELIVERY_ABORT_BACKOFF_MS + 1);
335
+ }
336
+ const finalClaim = outbox.claimNext("manager-1", () => "source-boot-1", new Set());
337
+ expect(outbox.begin(notice.deliveryId, "source-boot-1", finalClaim.attemptNo)).toBe("stale");
338
+ expect(outbox.get(notice.deliveryId)?.state).toBe("failed");
339
+ expect(outbox.listPending().filter(item => item.kind === "delivery_outcome_notice")).toHaveLength(0);
340
+ outbox.close();
341
+ });
342
+ });
343
+ //# sourceMappingURL=delivery-outbox.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-outbox.test.js","sourceRoot":"","sources":["../src/delivery-outbox.test.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ import { InstanceLifecycle, type LifecycleContext } from "./instance-lifecycle.j
16
16
  import { type ArchiverContext } from "./topic-archiver.js";
17
17
  import { type StatuslineWatcherContext } from "./statusline-watcher.js";
18
18
  import { type OutboundContext } from "./outbound-handlers.js";
19
+ import { DeliveryOutbox } from "./delivery-outbox.js";
20
+ export declare const DURABLE_DELIVERY_LANE_ALERT_MS: number;
19
21
  import { type RawConfigPatch } from "./settings-api.js";
20
22
  import { type AgentEndpointContext } from "./agent-endpoint.js";
21
23
  import { ClassicChannelManager } from "./classic-channel-manager.js";
@@ -112,6 +114,14 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
112
114
  readonly spawnGate: SpawnGate;
113
115
  /** Fleet-level backend reachability memory (fed by pty_error / startup panes). */
114
116
  readonly backendOutage: BackendOutageTracker;
117
+ /** Stable for this FleetManager OS-process lifetime; Daemon objects have their own boot IDs. */
118
+ readonly managerBootId: `${string}-${string}-${string}-${string}-${string}`;
119
+ deliveryOutbox: DeliveryOutbox | null;
120
+ private deliveryOutboxRecovered;
121
+ private deliveryPumpScheduled;
122
+ private deliveryPumpRunning;
123
+ private deliveryPumpTimer;
124
+ private readonly activeDurableTargets;
115
125
  /** Live view of lifecycle.daemons — used throughout; not deprecated. */
116
126
  get daemons(): Map<string, import("./daemon.js").Daemon>;
117
127
  fleetConfig: FleetConfig | null;
@@ -330,6 +340,30 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
330
340
  private viewToken;
331
341
  private healthServerListening;
332
342
  constructor(dataDir: string);
343
+ private ensureDeliveryOutbox;
344
+ /** Synchronous SQLite admission; the caller may acknowledge only after this returns. */
345
+ admitDurableDelivery(input: {
346
+ operationId: string;
347
+ sourceDaemonBootId?: string;
348
+ sourceInstance: string;
349
+ targetInstance: string;
350
+ targetSession?: string;
351
+ kind: string;
352
+ correlationId: string;
353
+ payload: Record<string, unknown>;
354
+ }): {
355
+ deliveryId: string;
356
+ state: string;
357
+ duplicate: boolean;
358
+ };
359
+ getDaemonBootId(instanceName: string): string | undefined;
360
+ markDurableResponseDelivered(sourceInstance: string, operationId: string): void;
361
+ /** Called after a replacement Daemon object is installed in lifecycle.daemons. */
362
+ onDaemonReady(name: string, daemonBootId: string): void;
363
+ private scheduleDeliveryOutboxPump;
364
+ private runDeliveryOutboxPump;
365
+ private dispatchDurableDelivery;
366
+ private waitForDurableLaneRelease;
333
367
  private spawnConcurrency;
334
368
  /** Wire the one fleet-wide storm into notification and recovery surfaces. */
335
369
  private bindStormWindowEvents;
@@ -535,7 +569,7 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
535
569
  /** Whether this target already has an ordinary non-user delivery in its FIFO. */
536
570
  hasPendingIdleGatedDelivery(instanceName: string): boolean;
537
571
  /** Single delivery facade: wake paused CLIs and serialize non-user work behind idle. */
538
- deliverToInstance(instanceName: string, payload: Record<string, unknown>, options?: DeliveryOptions): Promise<void>;
572
+ deliverToInstance(instanceName: string, payload: Record<string, unknown>, options?: DeliveryOptions): Promise<boolean | void>;
539
573
  /** Fleet admin is an explicit config allowlist entry, not merely an open/paired user. */
540
574
  isFleetAdmin(userId: string, adapterId?: string): boolean;
541
575
  changeInstancePauseState(name: string, action: "pause" | "wake"): Promise<"paused" | "awake" | "not_idle">;
@@ -653,6 +687,7 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
653
687
  restartSingleInstance(name: string, opts?: {
654
688
  freshStart?: boolean;
655
689
  }): Promise<void>;
690
+ isInstanceRestarting(name: string): boolean;
656
691
  private doRestartSingleInstance;
657
692
  /**
658
693
  * Mark an instance so its next daemon start skips session resume. Written AFTER
@@ -1030,6 +1065,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
1030
1065
  * the chain drains, so idle messages hold no memory.
1031
1066
  */
1032
1067
  private deliveryStatusChains;
1068
+ /** #725: in-flight CLI env probes, keyed by backend name. Coalesces concurrent /model requests. */
1069
+ private pendingCliEnvProbes;
1033
1070
  reactMessageStatus(instanceName: string, chatId: string, messageId: string, emoji: string, threadId?: string): void;
1034
1071
  /**
1035
1072
  * Apply a terminal delivery verdict. Telegram maps ✅ to 👀 and ❌ to 👎 in