instar 1.3.385 → 1.3.387

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 (41) hide show
  1. package/README.md +1 -0
  2. package/dist/commands/server.d.ts.map +1 -1
  3. package/dist/commands/server.js +92 -1
  4. package/dist/commands/server.js.map +1 -1
  5. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  6. package/dist/core/PostUpdateMigrator.js +16 -0
  7. package/dist/core/PostUpdateMigrator.js.map +1 -1
  8. package/dist/core/types.d.ts +10 -0
  9. package/dist/core/types.d.ts.map +1 -1
  10. package/dist/core/types.js.map +1 -1
  11. package/dist/monitoring/A2ARedeliverySentinel.d.ts +82 -0
  12. package/dist/monitoring/A2ARedeliverySentinel.d.ts.map +1 -0
  13. package/dist/monitoring/A2ARedeliverySentinel.js +143 -0
  14. package/dist/monitoring/A2ARedeliverySentinel.js.map +1 -0
  15. package/dist/scaffold/templates.d.ts.map +1 -1
  16. package/dist/scaffold/templates.js +7 -0
  17. package/dist/scaffold/templates.js.map +1 -1
  18. package/dist/server/AgentServer.d.ts +2 -0
  19. package/dist/server/AgentServer.d.ts.map +1 -1
  20. package/dist/server/AgentServer.js +20 -0
  21. package/dist/server/AgentServer.js.map +1 -1
  22. package/dist/server/routes.d.ts +3 -0
  23. package/dist/server/routes.d.ts.map +1 -1
  24. package/dist/server/routes.js +81 -0
  25. package/dist/server/routes.js.map +1 -1
  26. package/dist/threadline/A2ADeliveryTracker.d.ts +151 -0
  27. package/dist/threadline/A2ADeliveryTracker.d.ts.map +1 -0
  28. package/dist/threadline/A2ADeliveryTracker.js +315 -0
  29. package/dist/threadline/A2ADeliveryTracker.js.map +1 -0
  30. package/dist/threadline/ListenerSessionManager.d.ts +15 -0
  31. package/dist/threadline/ListenerSessionManager.d.ts.map +1 -1
  32. package/dist/threadline/ListenerSessionManager.js +41 -0
  33. package/dist/threadline/ListenerSessionManager.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/data/builtin-manifest.json +64 -64
  36. package/src/scaffold/templates.ts +7 -0
  37. package/upgrades/1.3.386.md +58 -0
  38. package/upgrades/1.3.387.md +25 -0
  39. package/upgrades/side-effects/a2a-durable-delivery.md +165 -0
  40. package/upgrades/side-effects/a2a-redelivery-escalation.md +112 -0
  41. package/upgrades/1.3.385.md +0 -43
@@ -0,0 +1,151 @@
1
+ /**
2
+ * A2ADeliveryTracker — the "communications never just die out" guarantee for
3
+ * agent-to-agent (Threadline / file-relay) messaging.
4
+ *
5
+ * The problem this closes (operator directive, 2026-06-06): every A2A hop was
6
+ * fire-and-forget. A `threadline_send` that returns `delivered:true` only means
7
+ * the TRANSPORT accepted it — it says nothing about whether the peer ever
8
+ * PROCESSED it. And there was no record on the SENDER side of "this message is
9
+ * still waiting for the peer to acknowledge it", so a peer going dark was
10
+ * invisible until a human noticed silence (Dawn's check-in sat 10h unread; my
11
+ * hosting kickoff was accepted by the relay but never seen).
12
+ *
13
+ * This is the durable spine of the fix:
14
+ * - recordSent() — every outbound A2A message is written here BEFORE/with
15
+ * the transport attempt (lifecycle starts 'awaiting-ack').
16
+ * - recordAck() — a peer's PROCESSED-ack (not transport-ack) flips it to
17
+ * 'acked'. This is the real delivered signal.
18
+ * - recordInboundFrom — every accepted inbound message bumps the peer's
19
+ * liveness clock (last time we heard FROM them).
20
+ * - findOverdue() — awaiting-ack rows past a TTL: the redelivery +
21
+ * escalation sentinel's work-list (PR2 layers on this).
22
+ * - peerHealth() — "is my channel to <peer> alive?" as a lookup, not a
23
+ * guess: last sent, last acked, last heard-from, how many
24
+ * messages are stuck awaiting ack, and a stale flag.
25
+ *
26
+ * Substrate is SQLite (the proven MessageProcessingLedger / PendingRelayStore /
27
+ * CommitmentTracker path) — NOT a new ad-hoc JSON file and NOT a git-synced
28
+ * blob. Schema self-initializes on first access (no PostUpdateMigrator step).
29
+ * Per-agent-id isolation. Read-only at the HTTP layer (observability) — it never
30
+ * gates a send.
31
+ */
32
+ /** Outbound delivery lifecycle. */
33
+ export type A2ADeliveryState = 'awaiting-ack' | 'acked' | 'escalated' | 'failed';
34
+ export interface A2ADeliveryEntry {
35
+ messageId: string;
36
+ peerFp: string;
37
+ peerName: string | null;
38
+ threadId: string | null;
39
+ subject: string | null;
40
+ transport: string | null;
41
+ state: A2ADeliveryState;
42
+ sentAt: string;
43
+ ackedAt: string | null;
44
+ attempts: number;
45
+ lastAttemptAt: string | null;
46
+ nextRetryAt: string | null;
47
+ escalatedAt: string | null;
48
+ }
49
+ export interface PeerHealth {
50
+ peerFp: string;
51
+ peerName: string | null;
52
+ /** Last outbound message we sent to this peer (any state). */
53
+ lastSentAt: string | null;
54
+ /** Last time a message we sent was PROCESSED-acked by the peer. */
55
+ lastAckedAt: string | null;
56
+ /** Last time we ACCEPTED an inbound message from this peer. */
57
+ lastInboundAt: string | null;
58
+ /** Outbound messages still awaiting the peer's ack. */
59
+ pendingCount: number;
60
+ /** Age (ms) of the OLDEST awaiting-ack message; null when none pending. */
61
+ oldestPendingAgeMs: number | null;
62
+ /** Messages that exhausted retries and were escalated. */
63
+ escalatedCount: number;
64
+ /**
65
+ * True when the channel looks unhealthy: a message has been awaiting ack
66
+ * longer than `staleAfterMs`. This is the "is my channel to Dawn alive?"
67
+ * signal — silence made visible.
68
+ */
69
+ stale: boolean;
70
+ }
71
+ export declare function resolveA2ADeliveryPath(stateDir: string, agentId: string): string;
72
+ /** Default: a message awaiting ack longer than this marks the channel stale. */
73
+ export declare const DEFAULT_STALE_AFTER_MS: number;
74
+ export declare class A2ADeliveryTracker {
75
+ private readonly db;
76
+ readonly path: string;
77
+ private unregister;
78
+ private constructor();
79
+ static open(agentId: string, stateDir: string): A2ADeliveryTracker;
80
+ /** Open an in-memory tracker (tests). */
81
+ static openMemory(): A2ADeliveryTracker;
82
+ /**
83
+ * Record an outbound A2A message. Lifecycle starts 'awaiting-ack'. Idempotent
84
+ * on messageId (INSERT OR IGNORE) so a retry of the SAME message never
85
+ * double-inserts — and never resurrects a row already acked/failed.
86
+ */
87
+ recordSent(opts: {
88
+ messageId: string;
89
+ peerFp: string;
90
+ peerName?: string | null;
91
+ threadId?: string | null;
92
+ subject?: string | null;
93
+ transport?: string | null;
94
+ sentAt?: string;
95
+ }): void;
96
+ /**
97
+ * Record a peer's PROCESSED-ack for a specific outbound message — the real
98
+ * "delivered" signal. Flips 'awaiting-ack'/'escalated' → 'acked'. Idempotent;
99
+ * never downgrades an already-acked row. Returns true if a row was flipped.
100
+ */
101
+ recordAck(messageId: string, ackedAt?: string): boolean;
102
+ /**
103
+ * Implicit ack: a reply ON A THREAD is proof the peer processed our prior send
104
+ * on that thread. Acks the OLDEST awaiting message on the thread. Returns the
105
+ * messageId acked, or null.
106
+ *
107
+ * Keyed on threadId ALONE — deliberately NOT on peer fingerprint. The inbound
108
+ * sender identity differs by transport (a cross-machine relay carries the
109
+ * peer's FINGERPRINT in from.agent; a same-machine local delivery carries the
110
+ * peer's NAME), while the threadId is consistent on both sides of a
111
+ * conversation. Keying on the thread makes the ack robust to that asymmetry —
112
+ * the bug a same-model test suite missed but cross-perspective review caught:
113
+ * outbound rows are keyed by fingerprint, so a name-keyed ack never matched and
114
+ * the implicit ack never fired in production.
115
+ *
116
+ * Count-conservative, not per-message truth: if N messages await on the thread
117
+ * and one reply arrives, only the OLDEST flips to acked (the reply may actually
118
+ * be answering the newest, but acking the oldest never OVER-acks — the genuinely
119
+ * unanswered tail stays pending and can still go stale/escalate).
120
+ */
121
+ recordAckByThread(threadId: string, ackedAt?: string): string | null;
122
+ /** Bump a peer's inbound-liveness clock — call when we ACCEPT a message from them. */
123
+ recordInboundFrom(peerFp: string, peerName: string | null, at?: string): void;
124
+ /** Outbound messages still awaiting the peer's ack (optionally for one peer). */
125
+ pending(peerFp?: string): A2ADeliveryEntry[];
126
+ /**
127
+ * awaiting-ack messages whose last attempt is older than ttlMs — the
128
+ * redelivery/escalation work-list. Sorted oldest-first.
129
+ */
130
+ findOverdue(ttlMs: number, nowMs?: number): A2ADeliveryEntry[];
131
+ /** Record a redelivery attempt: bump attempts, stamp lastAttempt + nextRetry. */
132
+ markAttempt(messageId: string, nextRetryAt?: string, at?: string): void;
133
+ /** Mark a message escalated (retries exhausted, peer dark — operator notified). */
134
+ markEscalated(messageId: string, at?: string): void;
135
+ /** Mark a message permanently failed (no further retries/escalation). */
136
+ markFailed(messageId: string): void;
137
+ /** Single entry by messageId. */
138
+ get(messageId: string): A2ADeliveryEntry | null;
139
+ /** "Is my channel to <peer> alive?" — composed from outbound + inbound records. */
140
+ peerHealth(peerFp: string, opts?: {
141
+ nowMs?: number;
142
+ staleAfterMs?: number;
143
+ }): PeerHealth;
144
+ /** Health for every peer we've sent to or heard from. */
145
+ allPeerHealth(opts?: {
146
+ nowMs?: number;
147
+ staleAfterMs?: number;
148
+ }): PeerHealth[];
149
+ close(): void;
150
+ }
151
+ //# sourceMappingURL=A2ADeliveryTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2ADeliveryTracker.d.ts","sourceRoot":"","sources":["../../src/threadline/A2ADeliveryTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,315 @@
1
+ /**
2
+ * A2ADeliveryTracker — the "communications never just die out" guarantee for
3
+ * agent-to-agent (Threadline / file-relay) messaging.
4
+ *
5
+ * The problem this closes (operator directive, 2026-06-06): every A2A hop was
6
+ * fire-and-forget. A `threadline_send` that returns `delivered:true` only means
7
+ * the TRANSPORT accepted it — it says nothing about whether the peer ever
8
+ * PROCESSED it. And there was no record on the SENDER side of "this message is
9
+ * still waiting for the peer to acknowledge it", so a peer going dark was
10
+ * invisible until a human noticed silence (Dawn's check-in sat 10h unread; my
11
+ * hosting kickoff was accepted by the relay but never seen).
12
+ *
13
+ * This is the durable spine of the fix:
14
+ * - recordSent() — every outbound A2A message is written here BEFORE/with
15
+ * the transport attempt (lifecycle starts 'awaiting-ack').
16
+ * - recordAck() — a peer's PROCESSED-ack (not transport-ack) flips it to
17
+ * 'acked'. This is the real delivered signal.
18
+ * - recordInboundFrom — every accepted inbound message bumps the peer's
19
+ * liveness clock (last time we heard FROM them).
20
+ * - findOverdue() — awaiting-ack rows past a TTL: the redelivery +
21
+ * escalation sentinel's work-list (PR2 layers on this).
22
+ * - peerHealth() — "is my channel to <peer> alive?" as a lookup, not a
23
+ * guess: last sent, last acked, last heard-from, how many
24
+ * messages are stuck awaiting ack, and a stale flag.
25
+ *
26
+ * Substrate is SQLite (the proven MessageProcessingLedger / PendingRelayStore /
27
+ * CommitmentTracker path) — NOT a new ad-hoc JSON file and NOT a git-synced
28
+ * blob. Schema self-initializes on first access (no PostUpdateMigrator step).
29
+ * Per-agent-id isolation. Read-only at the HTTP layer (observability) — it never
30
+ * gates a send.
31
+ */
32
+ import Database from 'better-sqlite3';
33
+ import { registerSqliteHandle } from '../core/SqliteRegistry.js';
34
+ import fs from 'node:fs';
35
+ import path from 'node:path';
36
+ const SCHEMA = `
37
+ CREATE TABLE IF NOT EXISTS a2a_delivery (
38
+ message_id TEXT PRIMARY KEY,
39
+ peer_fp TEXT NOT NULL,
40
+ peer_name TEXT,
41
+ thread_id TEXT,
42
+ subject TEXT,
43
+ transport TEXT,
44
+ state TEXT NOT NULL,
45
+ sent_at TEXT NOT NULL,
46
+ acked_at TEXT,
47
+ attempts INTEGER NOT NULL DEFAULT 1,
48
+ last_attempt_at TEXT,
49
+ next_retry_at TEXT,
50
+ escalated_at TEXT
51
+ );
52
+ CREATE INDEX IF NOT EXISTS idx_a2a_delivery_peer ON a2a_delivery(peer_fp);
53
+ CREATE INDEX IF NOT EXISTS idx_a2a_delivery_state ON a2a_delivery(state);
54
+ CREATE TABLE IF NOT EXISTS a2a_peer_inbound (
55
+ peer_fp TEXT PRIMARY KEY,
56
+ peer_name TEXT,
57
+ last_accepted_at TEXT NOT NULL,
58
+ accept_count INTEGER NOT NULL DEFAULT 0
59
+ );
60
+ `;
61
+ export function resolveA2ADeliveryPath(stateDir, agentId) {
62
+ const safe = agentId.replace(/[^A-Za-z0-9._-]/g, '_') || 'default';
63
+ return path.join(stateDir, 'state', `a2a-delivery.${safe}.sqlite`);
64
+ }
65
+ /** Default: a message awaiting ack longer than this marks the channel stale. */
66
+ export const DEFAULT_STALE_AFTER_MS = 6 * 60 * 60 * 1000; // 6h — matches the ACK-discipline window proposed to Dawn.
67
+ function rowToEntry(r) {
68
+ return {
69
+ messageId: r.message_id,
70
+ peerFp: r.peer_fp,
71
+ peerName: r.peer_name ?? null,
72
+ threadId: r.thread_id ?? null,
73
+ subject: r.subject ?? null,
74
+ transport: r.transport ?? null,
75
+ state: r.state,
76
+ sentAt: r.sent_at,
77
+ ackedAt: r.acked_at ?? null,
78
+ attempts: r.attempts ?? 1,
79
+ lastAttemptAt: r.last_attempt_at ?? null,
80
+ nextRetryAt: r.next_retry_at ?? null,
81
+ escalatedAt: r.escalated_at ?? null,
82
+ };
83
+ }
84
+ export class A2ADeliveryTracker {
85
+ db;
86
+ path;
87
+ unregister;
88
+ constructor(db, dbPath) {
89
+ this.db = db;
90
+ this.path = dbPath;
91
+ // Capture the unregister fn so close() honors the SqliteRegistry contract
92
+ // (unregister before closing) — otherwise openMemory() leaks a process-global
93
+ // registry entry per test and closeAllSqlite() calls a stale handle.
94
+ this.unregister = registerSqliteHandle(() => { try {
95
+ this.db?.close();
96
+ }
97
+ catch { /* already closed */ } });
98
+ }
99
+ static open(agentId, stateDir) {
100
+ const dbPath = resolveA2ADeliveryPath(stateDir, agentId);
101
+ fs.mkdirSync(path.dirname(dbPath), { recursive: true });
102
+ const db = new Database(dbPath);
103
+ try {
104
+ fs.chmodSync(dbPath, 0o600);
105
+ }
106
+ catch { /* best-effort */ }
107
+ db.pragma('journal_mode = WAL');
108
+ db.pragma('synchronous = NORMAL');
109
+ db.pragma('busy_timeout = 5000');
110
+ db.exec(SCHEMA);
111
+ return new A2ADeliveryTracker(db, dbPath);
112
+ }
113
+ /** Open an in-memory tracker (tests). */
114
+ static openMemory() {
115
+ const db = new Database(':memory:');
116
+ db.pragma('busy_timeout = 5000');
117
+ db.exec(SCHEMA);
118
+ return new A2ADeliveryTracker(db, ':memory:');
119
+ }
120
+ /**
121
+ * Record an outbound A2A message. Lifecycle starts 'awaiting-ack'. Idempotent
122
+ * on messageId (INSERT OR IGNORE) so a retry of the SAME message never
123
+ * double-inserts — and never resurrects a row already acked/failed.
124
+ */
125
+ recordSent(opts) {
126
+ if (!opts.messageId || !opts.peerFp)
127
+ return;
128
+ const now = opts.sentAt ?? new Date().toISOString();
129
+ const info = this.db
130
+ .prepare(`INSERT OR IGNORE INTO a2a_delivery
131
+ (message_id, peer_fp, peer_name, thread_id, subject, transport, state, sent_at, attempts, last_attempt_at)
132
+ VALUES (?, ?, ?, ?, ?, ?, 'awaiting-ack', ?, 1, ?)`)
133
+ .run(opts.messageId, opts.peerFp, opts.peerName ?? null, opts.threadId ?? null, opts.subject ?? null, opts.transport ?? null, now, now);
134
+ // Collision visibility: INSERT OR IGNORE makes recordSent idempotent on a
135
+ // RE-SEND of the same messageId, but message ids on the plaintext/local
136
+ // transports are `msg-<ms>-<4char>` (a weak space). If the insert was ignored
137
+ // AND the existing row is a genuinely DIFFERENT message (different peer/thread),
138
+ // that's a silent-drop of THIS send's lifecycle — exactly what this component
139
+ // exists to prevent. Surface it loudly rather than swallow it.
140
+ if (info.changes === 0) {
141
+ const existing = this.get(opts.messageId);
142
+ if (existing && (existing.peerFp !== opts.peerFp || (opts.threadId && existing.threadId !== opts.threadId))) {
143
+ console.warn(`[A2ADeliveryTracker] messageId collision: ${opts.messageId} already tracked for peer ${existing.peerFp.slice(0, 12)} thread ${existing.threadId ?? 'none'}, ` +
144
+ `but a NEW send targets peer ${opts.peerFp.slice(0, 12)} thread ${opts.threadId ?? 'none'} — the new send is NOT tracked (weak id source). Fix the id generator to crypto.randomUUID().`);
145
+ }
146
+ }
147
+ }
148
+ /**
149
+ * Record a peer's PROCESSED-ack for a specific outbound message — the real
150
+ * "delivered" signal. Flips 'awaiting-ack'/'escalated' → 'acked'. Idempotent;
151
+ * never downgrades an already-acked row. Returns true if a row was flipped.
152
+ */
153
+ recordAck(messageId, ackedAt) {
154
+ if (!messageId)
155
+ return false;
156
+ const info = this.db
157
+ .prepare(`UPDATE a2a_delivery
158
+ SET state = 'acked', acked_at = ?
159
+ WHERE message_id = ? AND state IN ('awaiting-ack','escalated')`)
160
+ .run(ackedAt ?? new Date().toISOString(), messageId);
161
+ return info.changes > 0;
162
+ }
163
+ /**
164
+ * Implicit ack: a reply ON A THREAD is proof the peer processed our prior send
165
+ * on that thread. Acks the OLDEST awaiting message on the thread. Returns the
166
+ * messageId acked, or null.
167
+ *
168
+ * Keyed on threadId ALONE — deliberately NOT on peer fingerprint. The inbound
169
+ * sender identity differs by transport (a cross-machine relay carries the
170
+ * peer's FINGERPRINT in from.agent; a same-machine local delivery carries the
171
+ * peer's NAME), while the threadId is consistent on both sides of a
172
+ * conversation. Keying on the thread makes the ack robust to that asymmetry —
173
+ * the bug a same-model test suite missed but cross-perspective review caught:
174
+ * outbound rows are keyed by fingerprint, so a name-keyed ack never matched and
175
+ * the implicit ack never fired in production.
176
+ *
177
+ * Count-conservative, not per-message truth: if N messages await on the thread
178
+ * and one reply arrives, only the OLDEST flips to acked (the reply may actually
179
+ * be answering the newest, but acking the oldest never OVER-acks — the genuinely
180
+ * unanswered tail stays pending and can still go stale/escalate).
181
+ */
182
+ recordAckByThread(threadId, ackedAt) {
183
+ if (!threadId)
184
+ return null;
185
+ const row = this.db
186
+ .prepare(`SELECT message_id FROM a2a_delivery
187
+ WHERE thread_id = ? AND state IN ('awaiting-ack','escalated')
188
+ ORDER BY sent_at ASC LIMIT 1`)
189
+ .get(threadId);
190
+ if (!row)
191
+ return null;
192
+ return this.recordAck(row.message_id, ackedAt) ? row.message_id : null;
193
+ }
194
+ /** Bump a peer's inbound-liveness clock — call when we ACCEPT a message from them. */
195
+ recordInboundFrom(peerFp, peerName, at) {
196
+ if (!peerFp)
197
+ return;
198
+ const now = at ?? new Date().toISOString();
199
+ this.db
200
+ .prepare(`INSERT INTO a2a_peer_inbound (peer_fp, peer_name, last_accepted_at, accept_count)
201
+ VALUES (?, ?, ?, 1)
202
+ ON CONFLICT(peer_fp) DO UPDATE SET
203
+ last_accepted_at = excluded.last_accepted_at,
204
+ peer_name = COALESCE(excluded.peer_name, a2a_peer_inbound.peer_name),
205
+ accept_count = a2a_peer_inbound.accept_count + 1`)
206
+ .run(peerFp, peerName ?? null, now);
207
+ }
208
+ /** Outbound messages still awaiting the peer's ack (optionally for one peer). */
209
+ pending(peerFp) {
210
+ const rows = peerFp
211
+ ? this.db.prepare(`SELECT * FROM a2a_delivery WHERE state = 'awaiting-ack' AND peer_fp = ? ORDER BY sent_at ASC`).all(peerFp)
212
+ : this.db.prepare(`SELECT * FROM a2a_delivery WHERE state = 'awaiting-ack' ORDER BY sent_at ASC`).all();
213
+ return rows.map(rowToEntry);
214
+ }
215
+ /**
216
+ * awaiting-ack messages whose last attempt is older than ttlMs — the
217
+ * redelivery/escalation work-list. Sorted oldest-first.
218
+ */
219
+ findOverdue(ttlMs, nowMs = Date.now()) {
220
+ const rows = this.db
221
+ .prepare(`SELECT * FROM a2a_delivery WHERE state = 'awaiting-ack' ORDER BY sent_at ASC`)
222
+ .all();
223
+ return rows
224
+ .map(rowToEntry)
225
+ .filter((e) => {
226
+ const ref = e.lastAttemptAt || e.sentAt;
227
+ const refMs = Date.parse(ref);
228
+ return !Number.isNaN(refMs) && nowMs - refMs > ttlMs;
229
+ });
230
+ }
231
+ /** Record a redelivery attempt: bump attempts, stamp lastAttempt + nextRetry. */
232
+ markAttempt(messageId, nextRetryAt, at) {
233
+ this.db
234
+ .prepare(`UPDATE a2a_delivery
235
+ SET attempts = attempts + 1, last_attempt_at = ?, next_retry_at = ?
236
+ WHERE message_id = ? AND state = 'awaiting-ack'`)
237
+ .run(at ?? new Date().toISOString(), nextRetryAt ?? null, messageId);
238
+ }
239
+ /** Mark a message escalated (retries exhausted, peer dark — operator notified). */
240
+ markEscalated(messageId, at) {
241
+ this.db
242
+ .prepare(`UPDATE a2a_delivery SET state = 'escalated', escalated_at = ?
243
+ WHERE message_id = ? AND state = 'awaiting-ack'`)
244
+ .run(at ?? new Date().toISOString(), messageId);
245
+ }
246
+ /** Mark a message permanently failed (no further retries/escalation). */
247
+ markFailed(messageId) {
248
+ this.db
249
+ .prepare(`UPDATE a2a_delivery SET state = 'failed' WHERE message_id = ? AND state IN ('awaiting-ack','escalated')`)
250
+ .run(messageId);
251
+ }
252
+ /** Single entry by messageId. */
253
+ get(messageId) {
254
+ const r = this.db.prepare(`SELECT * FROM a2a_delivery WHERE message_id = ?`).get(messageId);
255
+ return r ? rowToEntry(r) : null;
256
+ }
257
+ /** "Is my channel to <peer> alive?" — composed from outbound + inbound records. */
258
+ peerHealth(peerFp, opts = {}) {
259
+ const nowMs = opts.nowMs ?? Date.now();
260
+ const staleAfterMs = opts.staleAfterMs ?? DEFAULT_STALE_AFTER_MS;
261
+ const lastSent = this.db
262
+ .prepare(`SELECT sent_at, peer_name FROM a2a_delivery WHERE peer_fp = ? ORDER BY sent_at DESC LIMIT 1`)
263
+ .get(peerFp);
264
+ const lastAcked = this.db
265
+ .prepare(`SELECT acked_at FROM a2a_delivery WHERE peer_fp = ? AND acked_at IS NOT NULL ORDER BY acked_at DESC LIMIT 1`)
266
+ .get(peerFp);
267
+ const inbound = this.db
268
+ .prepare(`SELECT last_accepted_at, peer_name FROM a2a_peer_inbound WHERE peer_fp = ?`)
269
+ .get(peerFp);
270
+ const pendingRows = this.db
271
+ .prepare(`SELECT sent_at, last_attempt_at FROM a2a_delivery WHERE peer_fp = ? AND state = 'awaiting-ack' ORDER BY sent_at ASC`)
272
+ .all(peerFp);
273
+ const escalatedCount = this.db
274
+ .prepare(`SELECT COUNT(*) AS n FROM a2a_delivery WHERE peer_fp = ? AND state = 'escalated'`)
275
+ .get(peerFp).n;
276
+ let oldestPendingAgeMs = null;
277
+ if (pendingRows.length > 0) {
278
+ const oldestMs = Date.parse(pendingRows[0].sent_at);
279
+ if (!Number.isNaN(oldestMs))
280
+ oldestPendingAgeMs = Math.max(0, nowMs - oldestMs);
281
+ }
282
+ const stale = oldestPendingAgeMs !== null && oldestPendingAgeMs > staleAfterMs;
283
+ return {
284
+ peerFp,
285
+ peerName: lastSent?.peer_name ?? inbound?.peer_name ?? null,
286
+ lastSentAt: lastSent?.sent_at ?? null,
287
+ lastAckedAt: lastAcked?.acked_at ?? null,
288
+ lastInboundAt: inbound?.last_accepted_at ?? null,
289
+ pendingCount: pendingRows.length,
290
+ oldestPendingAgeMs,
291
+ escalatedCount,
292
+ stale,
293
+ };
294
+ }
295
+ /** Health for every peer we've sent to or heard from. */
296
+ allPeerHealth(opts = {}) {
297
+ const fps = new Set();
298
+ for (const r of this.db.prepare(`SELECT DISTINCT peer_fp FROM a2a_delivery`).all())
299
+ fps.add(r.peer_fp);
300
+ for (const r of this.db.prepare(`SELECT DISTINCT peer_fp FROM a2a_peer_inbound`).all())
301
+ fps.add(r.peer_fp);
302
+ return [...fps].map((fp) => this.peerHealth(fp, opts));
303
+ }
304
+ close() {
305
+ try {
306
+ this.unregister?.();
307
+ }
308
+ catch { /* best-effort */ }
309
+ try {
310
+ this.db.close();
311
+ }
312
+ catch { /* already closed */ }
313
+ }
314
+ }
315
+ //# sourceMappingURL=A2ADeliveryTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2ADeliveryTracker.js","sourceRoot":"","sources":["../../src/threadline/A2ADeliveryTracker.ts"],"names":[],"mappings":"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"}
@@ -133,6 +133,21 @@ export declare class ListenerSessionManager {
133
133
  recipientName: string;
134
134
  outcome?: string;
135
135
  };
136
+ /**
137
+ * Look up a previously-sent outbound message's body+target by its messageId,
138
+ * scanning the canonical outbox (most-recent first). Used by the A2A redelivery
139
+ * sentinel (A2A-DURABLE-DELIVERY-SPEC §4) to re-send a message that went
140
+ * unacknowledged — the delivery tracker stores only id/peer/thread, not the
141
+ * body, so the body is recovered here. Returns null if not found (→ the
142
+ * sentinel escalates instead of fabricating a re-send).
143
+ */
144
+ readCanonicalOutboxEntry(messageId: string): {
145
+ id: string;
146
+ to: string;
147
+ recipientName?: string;
148
+ threadId?: string;
149
+ text: string;
150
+ } | null;
136
151
  /**
137
152
  * Write a message to the inbox file.
138
153
  * Called by the server process when a message is routed to the warm listener.
@@ -1 +1 @@
1
- {"version":3,"file":"ListenerSessionManager.d.ts","sourceRoot":"","sources":["../../src/threadline/ListenerSessionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListenerSessionManager.d.ts","sourceRoot":"","sources":["../../src/threadline/ListenerSessionManager.ts"],"names":[],"mappings":"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"}
@@ -142,6 +142,47 @@ export class ListenerSessionManager {
142
142
  fs.appendFileSync(outboxPath, JSON.stringify(fullEntry) + '\n', { mode: 0o600 });
143
143
  return fullEntry;
144
144
  }
145
+ /**
146
+ * Look up a previously-sent outbound message's body+target by its messageId,
147
+ * scanning the canonical outbox (most-recent first). Used by the A2A redelivery
148
+ * sentinel (A2A-DURABLE-DELIVERY-SPEC §4) to re-send a message that went
149
+ * unacknowledged — the delivery tracker stores only id/peer/thread, not the
150
+ * body, so the body is recovered here. Returns null if not found (→ the
151
+ * sentinel escalates instead of fabricating a re-send).
152
+ */
153
+ readCanonicalOutboxEntry(messageId) {
154
+ if (!messageId)
155
+ return null;
156
+ const outboxPath = this.canonicalOutboxPath;
157
+ let raw;
158
+ try {
159
+ raw = fs.readFileSync(outboxPath, 'utf-8');
160
+ }
161
+ catch {
162
+ // @silent-fallback-ok: no outbox file yet (or unreadable) → null; the
163
+ // redelivery sentinel then escalates rather than fabricating a re-send.
164
+ return null;
165
+ }
166
+ const lines = raw.split('\n');
167
+ // Scan newest-first so the latest send for an id wins.
168
+ for (let i = lines.length - 1; i >= 0; i--) {
169
+ const line = lines[i].trim();
170
+ if (!line)
171
+ continue;
172
+ try {
173
+ const e = JSON.parse(line);
174
+ if (e.id === messageId && typeof e.text === 'string' && typeof e.to === 'string') {
175
+ return { id: e.id, to: e.to, recipientName: e.recipientName, threadId: e.threadId, text: e.text };
176
+ }
177
+ }
178
+ catch {
179
+ // @silent-fallback-ok: a malformed/partial JSONL line is skipped — never
180
+ // aborts the scan; a real entry on another line still resolves.
181
+ continue;
182
+ }
183
+ }
184
+ return null;
185
+ }
145
186
  /**
146
187
  * Write a message to the inbox file.
147
188
  * Called by the server process when a message is routed to the warm listener.
@@ -1 +1 @@
1
- {"version":3,"file":"ListenerSessionManager.js","sourceRoot":"","sources":["../../src/threadline/ListenerSessionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListenerSessionManager.js","sourceRoot":"","sources":["../../src/threadline/ListenerSessionManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.385",
3
+ "version": "1.3.387",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",