@tinycloud/courier 0.2.0-beta.31 → 0.2.0-beta.33

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/watch.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { defer } from './defer.js';
2
- import { decodeTime } from 'ulid';
2
+ import { decodeTime, ulid } from 'ulid';
3
3
  import { errInfo, CourierError } from './errors.js';
4
4
  import { k, PREFIX } from './keys.js';
5
- import { isRecord, messageView, taskView } from './a2a.js';
5
+ import { isRecord, messageView, oneLine, taskView } from './a2a.js';
6
6
  import { commitReceipts, selectUndelivered } from './inbox.js';
7
- import { getJson, listAll, putCreate, putMatch, putOverwrite } from './store.js';
7
+ import { del, getJson, listAll, putCreate, putMatch, putOverwrite } from './store.js';
8
8
  /** Spec §8. inform and receipts never wake; a message with no valid intent is delivered but never wakes. */
9
9
  const WAKE_INTENTS = new Set(['request', 'ask', 'answer', 'update']);
10
10
  const TERMINAL_TASK_STATES = new Set([
@@ -12,6 +12,17 @@ const TERMINAL_TASK_STATES = new Set([
12
12
  ]);
13
13
  const WAKEN_MEMORY = 500;
14
14
  const WAKE_RETRY_MS = 60_000;
15
+ /** Delay between starting a re-opened subscription and its catch-up list, so the stream is live first. */
16
+ const RECONNECT_CATCH_UP_MS = 2000;
17
+ /** Adapter runs are capped at 30 min in total (`--wake-timeout`, one deadline across all its calls). This profile's own claim is respected 35 min unless its holder is provably gone; another profile's or machine's, 45. */
18
+ const OWN_CLAIM_LEASE_MS = 35 * 60_000;
19
+ /** Another profile or machine: the same plus a margin for clock skew (`at` is the claimer's own clock). */
20
+ const FOREIGN_CLAIM_LEASE_MS = 45 * 60_000;
21
+ /** A thread another watcher is waking is looked at again after this. */
22
+ const CLAIM_SKIP_MS = 30_000;
23
+ const DAY_MS = 24 * 3600 * 1000;
24
+ /** The subject is peer-controlled text that reaches state, prompts and environments: one line, control characters removed, capped. */
25
+ const MAX_SUBJECT = 200;
15
26
  /** Thread and message ids come from key names the peer controls; they reach prompts and argv, so only ULID-like ids pass. */
16
27
  const SAFE_ID = /^[0-9A-Za-z_-]{1,64}$/;
17
28
  export const WATCH_DEFAULTS = { debounceMs: 30_000, pollMs: 60_000, ticketSeconds: 25 };
@@ -30,6 +41,16 @@ export function sentAtOf(messageId) {
30
41
  return '';
31
42
  }
32
43
  }
44
+ /** Signal 0 only probes: ESRCH = gone, EPERM = alive but not ours. */
45
+ function pidAlive(pid) {
46
+ try {
47
+ process.kill(pid, 0);
48
+ return true;
49
+ }
50
+ catch (error) {
51
+ return error.code === 'EPERM';
52
+ }
53
+ }
33
54
  function sleep(ms, signal) {
34
55
  const { promise, resolve } = defer();
35
56
  if (signal.aborted)
@@ -49,6 +70,15 @@ export class Watcher {
49
70
  state = emptyWatchState();
50
71
  retryAt = new Map();
51
72
  waking = new Set();
73
+ /** Unique to this run: a claim with this id is this process's own. */
74
+ runId = ulid();
75
+ profileId;
76
+ pid;
77
+ isAlive;
78
+ lastClaimPrune = 0;
79
+ /** Set when another watcher is writing this profile's state: this one stops and `run` throws it. */
80
+ fatalError;
81
+ onFatal;
52
82
  /** Etag of me/state/watch.json as this watcher last saw it: null = absent, undefined = unknown (fetch before writing). */
53
83
  stateEtag;
54
84
  taskCache = new Map();
@@ -60,6 +90,9 @@ export class Watcher {
60
90
  this.deps = deps;
61
91
  this.opts = opts;
62
92
  this.now = deps.now ?? Date.now;
93
+ this.profileId = deps.holder?.profileId ?? this.runId;
94
+ this.pid = deps.holder?.pid ?? process.pid;
95
+ this.isAlive = deps.holder?.isAlive ?? pidAlive;
63
96
  }
64
97
  // ---------- state ----------
65
98
  async loadState() {
@@ -92,8 +125,7 @@ export class Watcher {
92
125
  }
93
126
  catch (error) {
94
127
  if (error instanceof CourierError && error.code === 'conflict') {
95
- this.stateEtag = undefined;
96
- throw new CourierError('state-conflict', 'me/state/watch.json changed under this watcher; is a second `watch` running for this profile?');
128
+ throw this.stateConflict('me/state/watch.json was changed by another process; a second `watch` is running for this profile. This watcher is stopping.');
97
129
  }
98
130
  throw error;
99
131
  }
@@ -102,6 +134,103 @@ export class Watcher {
102
134
  this.stateQueue = run.catch(() => undefined);
103
135
  return run;
104
136
  }
137
+ /** Another watcher owns this profile's state. Carrying on would double-wake and overwrite its pending wakes: stop. */
138
+ stateConflict(message) {
139
+ const conflict = new CourierError('state-conflict', message);
140
+ this.fatalError ??= conflict;
141
+ this.onFatal?.();
142
+ return conflict;
143
+ }
144
+ /**
145
+ * One create-only marker per wake (keyed by the first message or approval it carries), so a second watcher that
146
+ * runs while this one's wake is in flight cannot wake the same thing. The marker names its holder
147
+ * (`profile`, `run`, `pid`):
148
+ * - this run's own marker: reuse it;
149
+ * - same profile and machine, holder pid gone or equal to ours (restart, crash, reboot, pid 1 in a container): take it over at once;
150
+ * - same profile and machine, holder pid alive and different: another watcher is running now: skip the thread (the
151
+ * state etag stops the loser when it writes state), unless the claim outlived the own lease (pid reuse);
152
+ * - another profile or machine: skip until the lease (plus clock-skew margin) runs out, then take it over.
153
+ * Returns false when the thread must be skipped this tick. Markers are deleted when the adapter fails.
154
+ */
155
+ async claimWake(peer, threadId, firstId) {
156
+ const { selfKv, log } = this.deps;
157
+ const key = k.wakeClaim(peer, threadId, firstId);
158
+ const claim = { v: 1, profile: this.profileId, run: this.runId, pid: this.pid, at: new Date(this.now()).toISOString() };
159
+ for (let attempt = 0; attempt < 2; attempt++) {
160
+ try {
161
+ await putCreate(selfKv, key, claim);
162
+ return true;
163
+ }
164
+ catch (error) {
165
+ if (!(error instanceof CourierError && error.code === 'conflict'))
166
+ throw error;
167
+ }
168
+ const existing = await getJson(selfKv, key);
169
+ if (!existing)
170
+ continue; // released between our two calls
171
+ const held = existing.value;
172
+ let takeOver;
173
+ if (held.run === this.runId)
174
+ return true;
175
+ const age = typeof held.at === 'string' ? this.now() - Date.parse(held.at) : Infinity;
176
+ if (held.profile === this.profileId) {
177
+ // Same profile, same machine, so the same clock. A pid proves liveness only while it is not reused: a live pid
178
+ // that is not a watcher (pid reuse, another user's process), or this very pid number (pid 1 in a container
179
+ // after a restart), would otherwise stall the thread, so the own-profile lease is the backstop.
180
+ if (typeof held.pid !== 'number')
181
+ takeOver = 'no-pid';
182
+ else if (held.pid === this.pid)
183
+ takeOver = 'same-pid';
184
+ else if (!this.isAlive(held.pid))
185
+ takeOver = 'holder-dead';
186
+ else if (!(age < OWN_CLAIM_LEASE_MS))
187
+ takeOver = 'own-lease-expired';
188
+ }
189
+ else if (!(age < FOREIGN_CLAIM_LEASE_MS)) {
190
+ takeOver = 'lease-expired';
191
+ }
192
+ if (takeOver && existing.etag) {
193
+ try {
194
+ await putMatch(selfKv, key, claim, existing.etag);
195
+ log('claim-taken-over', { peer, threadId, reason: takeOver });
196
+ return true;
197
+ }
198
+ catch (error) {
199
+ if (!(error instanceof CourierError && error.code === 'conflict'))
200
+ throw error;
201
+ }
202
+ }
203
+ break;
204
+ }
205
+ log('claimed-elsewhere', { peer, threadId, messageId: firstId });
206
+ return false;
207
+ }
208
+ /** Drops this run's own claim (best effort): a failed wake must not keep the thread from being woken. */
209
+ async releaseClaim(peer, threadId, firstId) {
210
+ const key = k.wakeClaim(peer, threadId, firstId);
211
+ try {
212
+ const existing = await getJson(this.deps.selfKv, key);
213
+ if (existing?.value.run === this.runId)
214
+ await del(this.deps.selfKv, key);
215
+ }
216
+ catch (error) {
217
+ this.deps.log('sync-error', { source: 'claim-release', ...errInfo(error) });
218
+ }
219
+ }
220
+ /** Claim markers are only needed while a double wake is possible; drop those older than two days. */
221
+ async pruneClaims() {
222
+ try {
223
+ for (const key of await listAll(this.deps.selfKv, k.wakeClaimsPrefix)) {
224
+ const id = /\/([^/]+)\.json$/.exec(key)?.[1];
225
+ const sentAt = id ? Date.parse(sentAtOf(id)) : NaN;
226
+ if (Number.isFinite(sentAt) && this.now() - sentAt > 2 * DAY_MS)
227
+ await del(this.deps.selfKv, key);
228
+ }
229
+ }
230
+ catch (error) {
231
+ this.deps.log('sync-error', { source: 'claims', ...errInfo(error) });
232
+ }
233
+ }
105
234
  // ---------- catch-up and delivery ----------
106
235
  /** Serialises syncs per peer; a request that arrives mid-sync reruns once after it. */
107
236
  async sync(peer, via) {
@@ -164,7 +293,7 @@ export class Watcher {
164
293
  const subjects = new Map();
165
294
  for (const threadId of new Set(delivered.map((d) => d.threadId))) {
166
295
  const meta = await getJson(peerKv, `${PREFIX}/to/${mailbox}/threads/${threadId}/meta.json`).catch(() => undefined);
167
- subjects.set(threadId, isRecord(meta?.value) && typeof meta.value.subject === 'string' ? meta.value.subject : '(no subject)');
296
+ subjects.set(threadId, isRecord(meta?.value) && typeof meta.value.subject === 'string' ? oneLine(meta.value.subject, MAX_SUBJECT) : '(no subject)');
168
297
  }
169
298
  const at = this.now();
170
299
  for (const item of delivered) {
@@ -218,6 +347,8 @@ export class Watcher {
218
347
  async mirrorThreadItem(peer, peerKv, key) {
219
348
  const meta = /\/threads\/([^/]+)\/meta\.json$/.exec(key);
220
349
  if (meta) {
350
+ if (!SAFE_ID.test(meta[1]))
351
+ return;
221
352
  if (this.metaMirrored.has(key))
222
353
  return;
223
354
  const got = await getJson(peerKv, key);
@@ -228,7 +359,7 @@ export class Watcher {
228
359
  return;
229
360
  }
230
361
  const task = /\/threads\/([^/]+)\/task\/([^/]+)\.json$/.exec(key);
231
- if (!task)
362
+ if (!task || !SAFE_ID.test(task[1]) || !SAFE_ID.test(task[2]))
232
363
  return;
233
364
  const cached = this.taskCache.get(key);
234
365
  if (cached?.terminal)
@@ -265,6 +396,8 @@ export class Watcher {
265
396
  // ---------- wake ----------
266
397
  /** Wake every thread whose debounce has elapsed (`force`: all of them now). Threads wake in parallel, one wake per thread at a time. */
267
398
  async tick(force = false) {
399
+ if (this.fatalError)
400
+ return;
268
401
  const at = this.now();
269
402
  const runs = [];
270
403
  for (const [key, pending] of Object.entries(this.state.pending)) {
@@ -283,16 +416,39 @@ export class Watcher {
283
416
  // Messages that land while the wake runs stay pending for the next one, so wake exactly this snapshot.
284
417
  const messages = [...pending.messages];
285
418
  const woken = messages.map((m) => m.messageId);
419
+ const oldestSentAt = messages[0]?.sentAt ?? '';
420
+ // The per-wake claim goes first: a watcher that loses it skips the thread without having written the state, which
421
+ // would otherwise make the watcher that legitimately owns the wake fail its next conditional write. Then the
422
+ // state write: a stale second watcher fails that conditional write and stops before it can wake.
423
+ const claimId = woken[0];
424
+ if (!(await this.claimWake(pending.peer, pending.threadId, claimId))) {
425
+ this.retryAt.set(key, at + CLAIM_SKIP_MS);
426
+ return;
427
+ }
428
+ try {
429
+ await this.mutate(() => { });
430
+ }
431
+ catch (error) {
432
+ await this.releaseClaim(pending.peer, pending.threadId, claimId);
433
+ throw error;
434
+ }
435
+ const startedAt = this.now();
436
+ // `waking` is when the adapter is invoked: the send-to-wake latency. `woke` follows when the adapter returns.
437
+ this.deps.log('waking', {
438
+ peer: pending.peer, threadId: pending.threadId, messageIds: woken,
439
+ oldestSentAt: oldestSentAt || null,
440
+ wakeLatencyMs: oldestSentAt ? startedAt - Date.parse(oldestSentAt) : null,
441
+ });
286
442
  try {
287
443
  await this.deps.wake({ peer: pending.peer, threadId: pending.threadId, subject: pending.subject, messages });
288
444
  }
289
445
  catch (error) {
290
446
  this.retryAt.set(key, at + WAKE_RETRY_MS);
291
447
  this.deps.log('wake-error', { peer: pending.peer, threadId: pending.threadId, ...errInfo(error) });
448
+ // The attempt failed, so the thread is not being woken: release the claim (a restart must not wait for it).
449
+ await this.releaseClaim(pending.peer, pending.threadId, claimId);
292
450
  return;
293
451
  }
294
- this.retryAt.delete(key);
295
- const oldestSentAt = messages[0]?.sentAt ?? '';
296
452
  await this.mutate(() => {
297
453
  const current = this.state.pending[key];
298
454
  if (current) {
@@ -302,10 +458,11 @@ export class Watcher {
302
458
  }
303
459
  this.state.woken = [...this.state.woken, ...woken].slice(-WAKEN_MEMORY);
304
460
  });
461
+ // Only now, with the wake recorded, is the retry hold-off cleared.
462
+ this.retryAt.delete(key);
305
463
  this.deps.log('woke', {
306
464
  peer: pending.peer, threadId: pending.threadId, messageIds: woken,
307
- oldestSentAt: oldestSentAt || null,
308
- wakeLatencyMs: oldestSentAt ? this.now() - Date.parse(oldestSentAt) : null,
465
+ runMs: this.now() - startedAt,
309
466
  });
310
467
  }
311
468
  // ---------- run loop ----------
@@ -313,65 +470,91 @@ export class Watcher {
313
470
  await Promise.all(this.deps.loadPeers().map((peer) => this.sync(peer, via)));
314
471
  await this.syncApprovals(via);
315
472
  }
316
- /** Runs until `signal` aborts. With `once`, does one catch-up and wakes everything immediately. */
317
- async run(signal, options = {}) {
473
+ /**
474
+ * Runs until `signal` aborts. With `once`, does one catch-up and wakes everything immediately. Throws
475
+ * `state-conflict` (after stopping everything) if another watcher is writing this profile's state.
476
+ */
477
+ async run(external, options = {}) {
318
478
  const { log } = this.deps;
319
- await this.loadState();
320
- log('start', { debounceMs: this.opts.debounceMs, pollMs: this.opts.pollMs, ticketSeconds: this.opts.ticketSeconds, once: Boolean(options.once) });
321
- await this.pollOnce('startup');
322
- if (options.once) {
323
- await this.tick(true);
324
- return;
325
- }
479
+ const stop = new AbortController();
480
+ const signal = stop.signal;
481
+ const onExternalAbort = () => stop.abort();
482
+ external.addEventListener('abort', onExternalAbort, { once: true });
483
+ if (external.aborted)
484
+ stop.abort();
485
+ this.onFatal = () => stop.abort();
326
486
  const supervisors = new Map();
327
- const reconcile = () => {
328
- const desired = new Map();
329
- for (const peer of this.deps.loadPeers()) {
330
- if (peer.status !== 'paired' || !peer.inbound || !peer.theirHandleForMe)
331
- continue;
332
- // The id carries the delegation CID: a renewed delegation restarts the subscription.
333
- desired.set(`peer:${peer.handle}:${peer.inbound.cid}`, {
334
- sub: { space: peer.spaceId, service: 'kv', pathPrefix: `${PREFIX}/to/${peer.theirHandleForMe}` },
335
- hooks: () => this.deps.peerHooks(peer),
336
- onEvent: () => void this.sync(peer, 'hook'),
487
+ let ticker;
488
+ try {
489
+ await this.loadState();
490
+ log('start', { debounceMs: this.opts.debounceMs, pollMs: this.opts.pollMs, ticketSeconds: this.opts.ticketSeconds, once: Boolean(options.once) });
491
+ await this.pruneClaims();
492
+ this.lastClaimPrune = this.now();
493
+ const reconcile = () => {
494
+ const desired = new Map();
495
+ for (const peer of this.deps.loadPeers()) {
496
+ if (peer.status !== 'paired' || !peer.inbound || !peer.theirHandleForMe)
497
+ continue;
498
+ // The id carries the delegation CID: a renewed delegation restarts the subscription.
499
+ desired.set(`peer:${peer.handle}:${peer.inbound.cid}`, {
500
+ sub: { space: peer.spaceId, service: 'kv', pathPrefix: `${PREFIX}/to/${peer.theirHandleForMe}` },
501
+ hooks: () => this.deps.peerHooks(peer),
502
+ onEvent: () => void this.sync(peer, 'hook'),
503
+ });
504
+ }
505
+ desired.set('approvals', {
506
+ sub: { space: this.deps.spaceId, service: 'kv', pathPrefix: k.approvalsPrefix },
507
+ hooks: async () => this.deps.selfHooks,
508
+ onEvent: () => void this.syncApprovals('hook'),
337
509
  });
338
- }
339
- desired.set('approvals', {
340
- sub: { space: this.deps.spaceId, service: 'kv', pathPrefix: k.approvalsPrefix },
341
- hooks: async () => this.deps.selfHooks,
342
- onEvent: () => void this.syncApprovals('hook'),
343
- });
344
- for (const [id, controller] of supervisors) {
345
- if (!desired.has(id)) {
346
- controller.abort();
347
- supervisors.delete(id);
510
+ for (const [id, controller] of supervisors) {
511
+ if (!desired.has(id)) {
512
+ controller.abort();
513
+ supervisors.delete(id);
514
+ }
348
515
  }
516
+ for (const [id, source] of desired) {
517
+ if (supervisors.has(id))
518
+ continue;
519
+ const controller = new AbortController();
520
+ supervisors.set(id, controller);
521
+ void this.supervise(id, source.sub, source.hooks, source.onEvent, controller.signal);
522
+ }
523
+ };
524
+ if (options.once) {
525
+ await this.pollOnce('startup');
526
+ await this.tick(true);
349
527
  }
350
- for (const [id, source] of desired) {
351
- if (supervisors.has(id))
352
- continue;
353
- const controller = new AbortController();
354
- supervisors.set(id, controller);
355
- void this.supervise(id, source.sub, source.hooks, source.onEvent, controller.signal);
356
- }
357
- };
358
- reconcile();
359
- const ticker = setInterval(() => void this.tick().catch((e) => log('wake-error', errInfo(e))), 1000);
360
- try {
361
- while (!signal.aborted) {
362
- await sleep(this.opts.pollMs, signal);
363
- if (signal.aborted)
364
- break;
528
+ else {
529
+ // Open the subscriptions first, then catch up: a write between the two is seen by one or the other.
365
530
  reconcile();
366
- await this.pollOnce('poll');
531
+ await sleep(RECONNECT_CATCH_UP_MS, signal);
532
+ if (!signal.aborted)
533
+ await this.pollOnce('startup');
534
+ ticker = setInterval(() => void this.tick().catch((e) => log('wake-error', errInfo(e))), 1000);
535
+ while (!signal.aborted) {
536
+ await sleep(this.opts.pollMs, signal);
537
+ if (signal.aborted)
538
+ break;
539
+ reconcile();
540
+ await this.pollOnce('poll');
541
+ if (this.now() - this.lastClaimPrune > 3600_000) {
542
+ this.lastClaimPrune = this.now();
543
+ await this.pruneClaims();
544
+ }
545
+ }
367
546
  }
368
547
  }
369
548
  finally {
370
549
  clearInterval(ticker);
371
550
  for (const controller of supervisors.values())
372
551
  controller.abort();
552
+ external.removeEventListener('abort', onExternalAbort);
553
+ this.onFatal = undefined;
373
554
  log('stop');
374
555
  }
556
+ if (this.fatalError)
557
+ throw this.fatalError;
375
558
  }
376
559
  /** One hook subscription. A refused ticket (revoked or expired delegation) backs off; the poll covers meanwhile. */
377
560
  async supervise(id, sub, hooks, onEvent, signal) {
@@ -380,10 +563,12 @@ export class Watcher {
380
563
  while (!signal.aborted) {
381
564
  try {
382
565
  this.deps.log('hook-subscribe', { source: id.split(':').slice(0, 2).join(':'), ttlSeconds: this.opts.ticketSeconds });
383
- // Spec §8.2: catch up on every (re)connect, since hooks have no replay. (The SDK's own ticket reopen is
384
- // invisible here; the poll covers those gaps.)
566
+ // Spec §8.2: catch up on every (re)connect, since hooks have no replay. The catch-up runs after the
567
+ // subscription below has been started, so a write in between is seen by one or the other. (The SDK's own
568
+ // ticket reopen is invisible here; the poll covers those gaps.)
385
569
  if (opened)
386
- onEvent();
570
+ void sleep(RECONNECT_CATCH_UP_MS, signal).then(() => { if (!signal.aborted)
571
+ onEvent(); });
387
572
  opened = true;
388
573
  const service = await hooks();
389
574
  for await (const event of service.subscribe([sub], { ttlSeconds: this.opts.ticketSeconds, signal })) {
package/dist/watch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinycloud/courier",
3
- "version": "0.2.0-beta.31",
3
+ "version": "0.2.0-beta.33",
4
4
  "description": "Courier: agent-to-agent threads over TinyCloud (CLI, library and agent skill)",
5
5
  "author": "TinyCloud, Inc.",
6
6
  "type": "module",
@@ -30,7 +30,7 @@
30
30
  "test:live": "tsc -p tsconfig.json && node scripts/happy-path.mjs"
31
31
  },
32
32
  "dependencies": {
33
- "@tinycloud/node-sdk": "3.3.0-beta.33",
33
+ "@tinycloud/node-sdk": "3.3.0-beta.34",
34
34
  "ulid": "^3.0.2"
35
35
  },
36
36
  "devDependencies": {