@stratusagent/gateway 0.14.8 → 0.14.9

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 (40) hide show
  1. package/dist/agent-source.d.ts +10 -0
  2. package/dist/agent-source.d.ts.map +1 -0
  3. package/dist/agent-source.js +7 -0
  4. package/dist/agent-source.js.map +1 -0
  5. package/dist/approvals.d.ts +38 -0
  6. package/dist/approvals.d.ts.map +1 -0
  7. package/dist/approvals.js +330 -0
  8. package/dist/approvals.js.map +1 -0
  9. package/dist/credential-requests.d.ts +24 -0
  10. package/dist/credential-requests.d.ts.map +1 -0
  11. package/dist/credential-requests.js +452 -0
  12. package/dist/credential-requests.js.map +1 -0
  13. package/dist/dispatch.d.ts +34 -0
  14. package/dist/dispatch.d.ts.map +1 -0
  15. package/dist/dispatch.js +461 -0
  16. package/dist/dispatch.js.map +1 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +368 -2443
  19. package/dist/index.js.map +1 -1
  20. package/dist/merge-batch.d.ts +60 -0
  21. package/dist/merge-batch.d.ts.map +1 -0
  22. package/dist/merge-batch.js +59 -0
  23. package/dist/merge-batch.js.map +1 -0
  24. package/dist/recovery.d.ts +49 -0
  25. package/dist/recovery.d.ts.map +1 -0
  26. package/dist/recovery.js +487 -0
  27. package/dist/recovery.js.map +1 -0
  28. package/dist/steering.d.ts +24 -0
  29. package/dist/steering.d.ts.map +1 -0
  30. package/dist/steering.js +108 -0
  31. package/dist/steering.js.map +1 -0
  32. package/dist/sub-agents.d.ts +20 -0
  33. package/dist/sub-agents.d.ts.map +1 -0
  34. package/dist/sub-agents.js +263 -0
  35. package/dist/sub-agents.js.map +1 -0
  36. package/dist/turn-dispatch.d.ts +34 -0
  37. package/dist/turn-dispatch.d.ts.map +1 -0
  38. package/dist/turn-dispatch.js +179 -0
  39. package/dist/turn-dispatch.js.map +1 -0
  40. package/package.json +7 -7
@@ -0,0 +1,461 @@
1
+ /*
2
+ * The gateway's `dispatch`: the shutdown and intake checks, repeated
3
+ * idempotency keys, merging messages that arrive while a session is busy,
4
+ * and the per-session chain every turn runs on. Moved out of
5
+ * `createGateway` in index.ts as is: the statement is unchanged, inside a
6
+ * factory that takes what it closed over there, and `createGateway` calls
7
+ * it where it was. The edits: `stopping`, `intakeState` and `heldState` are
8
+ * `let`s reassigned later, so they are read through `isStopping()`,
9
+ * `getIntakeState()` and `isHeld()`.
10
+ */
11
+ import { abortErrorFor, leastTrusted, MAX_IDEMPOTENCY_KEY_LENGTH, SENDER_TRUST_METADATA_KEY, senderTrustOf, workItemState, } from '@stratusagent/core';
12
+ import { allAborted, fitsReplayBudget, joinableSignal, MERGED_SEPARATOR, MERGED_TEXT_BUDGET_CHARS, } from "./merge-batch.js";
13
+ import { isScheduleSessionId, SCHEDULE_SESSION_ID_PREFIX } from "./schedules.js";
14
+ import { DEFAULT_PAUSED_MESSAGE, HELD_MESSAGE, IntakePausedError } from "./lifecycle.js";
15
+ import { crossIdentityError, CrossIdentityError, RESERVED_SESSION_METADATA_KEYS, reservedSessionMetadataKey, } from "./session-keys.js";
16
+ export const createDispatch = ({ store, sessionChains, queuedWork, waitingDispatches, isStopping, getIntakeState, isHeld, refusal, activeTurns, liveWorkItems, openBatches, settleOrphanedItem, onSessionChain, dispatchInternal, settleRepeat, takeSteered, }) => {
17
+ const dispatch = async (input) => {
18
+ if (isStopping()) {
19
+ throw refusal();
20
+ }
21
+ // The reserved namespace is the scheduler's alone. A caller that could
22
+ // name a firing's session id — derivable from `GET /schedules` — would
23
+ // otherwise queue a turn of its own behind the firing (single-flight)
24
+ // and run inside the grant, using `message.send` to the schedule's
25
+ // approved destination without its own approval. Refused here, at the
26
+ // one door every external dispatch comes through.
27
+ if (isScheduleSessionId(input.sessionId)) {
28
+ throw new Error(`Session ids beginning with "${SCHEDULE_SESSION_ID_PREFIX}" are reserved for scheduled firings and cannot be dispatched externally.`);
29
+ }
30
+ // The daemon's own bookkeeping keys, by the same logic as the reserved
31
+ // id namespace above: what the runner, the scheduler, and delegation
32
+ // record about a session must be something only they can have written.
33
+ const reserved = reservedSessionMetadataKey(input.metadata);
34
+ if (reserved !== undefined) {
35
+ throw new Error(`Session metadata key "${reserved}" is reserved for the daemon's own records and cannot be supplied by a dispatch. Reserved keys: ${RESERVED_SESSION_METADATA_KEYS.join(', ')}.`);
36
+ }
37
+ const { turnId, idempotencyKey } = input;
38
+ if (idempotencyKey !== undefined && (idempotencyKey.length === 0 || idempotencyKey.length > MAX_IDEMPOTENCY_KEY_LENGTH)) {
39
+ throw new Error(`An idempotency key is 1 to ${MAX_IDEMPOTENCY_KEY_LENGTH} characters; this one is ${idempotencyKey.length}.`);
40
+ }
41
+ // A repeat of a dispatch still queued or running is that dispatch: it
42
+ // resolves with it rather than queueing behind it, which would let
43
+ // another caller's turn land in between and then find a finished item.
44
+ // Attached only when it names no other agent than the live dispatch
45
+ // did; otherwise it queues, and `settleRepeat` refuses it there.
46
+ const live = idempotencyKey !== undefined ? liveWorkItems.get(input.sessionId)?.get(idempotencyKey) : undefined;
47
+ // A claim naming an agent other than this delivery does, that the chain
48
+ // has not yet confirmed — this delivery naming nobody, or someone else.
49
+ // The claim may be refused for who it named, and then the item is still
50
+ // unowned: inheriting the refusal would drop a valid message, and
51
+ // queueing behind it would leave this delivery to find the turn that a
52
+ // later valid delivery runs `finished`, and answer it twice. So it
53
+ // waits for the claim to settle and decides then: a claim that stood
54
+ // is repeated, by a delivery naming its owner or nobody, and refuses
55
+ // anyone else; a claim that left the item unowned is dispatched again,
56
+ // where the first delivery to get there runs it and the rest attach.
57
+ if (live !== undefined && !live.confirmed && live.agentId !== undefined && input.agentId !== live.agentId) {
58
+ const claim = live.turn;
59
+ const claimedBy = input.agentId;
60
+ const repeatOf = (owner) => {
61
+ if (claimedBy !== undefined && claimedBy !== owner) {
62
+ throw crossIdentityError(input.sessionId, owner, claimedBy);
63
+ }
64
+ input.onRepeat?.('live');
65
+ };
66
+ return claim.then((session) => {
67
+ repeatOf(session.agent.id);
68
+ return session;
69
+ }, async (error) => {
70
+ // Refused for who it named, or failed before its keyed message was
71
+ // ever written (an agent gone, a provider it could not build): the
72
+ // item is still unowned, and there is no turn to have repeated.
73
+ const stored = error instanceof CrossIdentityError || idempotencyKey === undefined ? undefined : await store.get(input.sessionId);
74
+ const owned = stored !== undefined && idempotencyKey !== undefined && workItemState(stored, idempotencyKey) !== undefined;
75
+ if (owned) {
76
+ repeatOf(stored.agent.id);
77
+ throw error;
78
+ }
79
+ // Its own cleanup runs a tick later; the dispatch below must not
80
+ // find the dead claim still standing and wait on it again.
81
+ const items = liveWorkItems.get(input.sessionId);
82
+ if (idempotencyKey !== undefined && items?.get(idempotencyKey)?.turn === claim) {
83
+ items.delete(idempotencyKey);
84
+ if (items.size === 0) {
85
+ liveWorkItems.delete(input.sessionId);
86
+ }
87
+ }
88
+ return dispatch(input);
89
+ });
90
+ }
91
+ if (live !== undefined && (input.agentId === undefined || input.agentId === live.agentId)) {
92
+ input.onRepeat?.('live');
93
+ return live.turn;
94
+ }
95
+ // The one door every external dispatch comes through, so a pause holds
96
+ // for every channel at once. Work already accepted is not behind this
97
+ // check: a turn running, a redelivery of a message whose turn is live
98
+ // (answered above), a message queued behind it, a delegation or
99
+ // an approval resuming a parked turn all go on.
100
+ if (getIntakeState().paused) {
101
+ throw new IntakePausedError(getIntakeState().message ?? DEFAULT_PAUSED_MESSAGE);
102
+ }
103
+ if (isHeld()) {
104
+ throw new IntakePausedError(HELD_MESSAGE);
105
+ }
106
+ // The live dispatch named no agent, so whose session it is is known
107
+ // only once its turn resolves. Queueing instead would make this a
108
+ // `finished` repeat of a turn the live caller is still rendering — two
109
+ // answers — so it attaches, and is held to the agent it named then:
110
+ // told it repeated only if that agent owns the session, refused if not.
111
+ const claimed = input.agentId;
112
+ if (live !== undefined && live.agentId === undefined && claimed !== undefined) {
113
+ const shared = live.turn;
114
+ // Whichever way the turn ends: a failed one is still that agent's,
115
+ // its owner read from the store, and a repeat of it is still told so
116
+ // — or refused, rather than handed another agent's error.
117
+ const attach = async () => {
118
+ let outcome;
119
+ try {
120
+ outcome = { session: await shared };
121
+ }
122
+ catch (error) {
123
+ outcome = { error };
124
+ }
125
+ const owner = 'session' in outcome ? outcome.session.agent.id : (await store.get(input.sessionId))?.agent.id;
126
+ if (owner !== undefined && owner !== claimed) {
127
+ throw crossIdentityError(input.sessionId, owner, claimed);
128
+ }
129
+ // No owner means the dispatch failed before its session was ever
130
+ // written: there is no turn to have repeated, only its error.
131
+ if (owner !== undefined) {
132
+ input.onRepeat?.('live');
133
+ }
134
+ if ('error' in outcome) {
135
+ throw outcome.error;
136
+ }
137
+ return outcome.session;
138
+ };
139
+ return attach();
140
+ }
141
+ // Merged turns (card 423): an opted-in message behind a running turn
142
+ // joins the batch already waiting, if there is one for the same agent.
143
+ const mergeable = input.onAbsorbed !== undefined && input.addressed !== false;
144
+ const open = openBatches.get(input.sessionId);
145
+ if (mergeable &&
146
+ open !== undefined &&
147
+ open.agentId === input.agentId &&
148
+ fitsReplayBudget([...open.images, ...(input.images ?? [])]) &&
149
+ open.chars + MERGED_SEPARATOR.length + input.userMessage.length <= MERGED_TEXT_BUDGET_CHARS) {
150
+ open.images.push(...(input.images ?? []));
151
+ open.chars += MERGED_SEPARATOR.length + input.userMessage.length;
152
+ waitingDispatches.set(input.sessionId, (waitingDispatches.get(input.sessionId) ?? 0) + 1);
153
+ const joined = new Promise((resolve, reject) => {
154
+ open.absorbed.push({ input, resolve, reject });
155
+ });
156
+ if (idempotencyKey !== undefined) {
157
+ // Provisional, like a queued dispatch's: a redelivery while it waits
158
+ // attaches here; the merged turn confirms it once it owns the key.
159
+ const items = liveWorkItems.get(input.sessionId) ?? new Map();
160
+ if (!items.has(idempotencyKey)) {
161
+ items.set(idempotencyKey, { turn: joined, agentId: input.agentId, confirmed: false, addressed: true });
162
+ liveWorkItems.set(input.sessionId, items);
163
+ }
164
+ void joined.catch(() => { }).finally(() => {
165
+ const current = liveWorkItems.get(input.sessionId);
166
+ if (current?.get(idempotencyKey)?.turn === joined) {
167
+ current.delete(idempotencyKey);
168
+ if (current.size === 0) {
169
+ liveWorkItems.delete(input.sessionId);
170
+ }
171
+ }
172
+ });
173
+ }
174
+ return joined;
175
+ }
176
+ // It cannot join (or its images or text would overflow the batch's
177
+ // budget), so the open batch takes no more: a message arriving
178
+ // after this one must not be answered ahead of it.
179
+ if (open !== undefined) {
180
+ openBatches.delete(input.sessionId);
181
+ }
182
+ // Otherwise it leads a new batch, if it is waiting behind a turn at all:
183
+ // a message to an idle session runs at once, alone.
184
+ const batch = mergeable && sessionChains.has(input.sessionId)
185
+ ? {
186
+ agentId: input.agentId,
187
+ // Settled through `settleLeader`, read when called: it is assigned below.
188
+ leader: { input, resolve: (session) => settleLeader({ session }), reject: (error) => settleLeader({ error }) },
189
+ firstInLine: (queuedWork.get(input.sessionId) ?? 0) === 0,
190
+ absorbed: [],
191
+ steered: false,
192
+ images: [...(input.images ?? [])],
193
+ chars: input.userMessage.length,
194
+ }
195
+ : undefined;
196
+ if (batch !== undefined) {
197
+ openBatches.set(input.sessionId, batch);
198
+ }
199
+ // Reads `turn` only once it is assigned: the registration below runs
200
+ // after it, and the chain's work runs in a later tick (`.then`).
201
+ const claimLiveItem = (key, confirmed) => {
202
+ const items = liveWorkItems.get(input.sessionId) ?? new Map();
203
+ items.set(key, { turn, agentId: input.agentId, confirmed, addressed: input.addressed !== false });
204
+ liveWorkItems.set(input.sessionId, items);
205
+ };
206
+ /**
207
+ * This dispatch's turn with the messages it absorbed (card 423). Each
208
+ * part is judged on its own first, as it would have been alone: one
209
+ * cancelled while it waited is refused, one that repeats a turn the
210
+ * session already holds is that turn. What is left runs as one turn.
211
+ */
212
+ const runMerged = async (absorbed) => {
213
+ const parts = [{ input }, ...absorbed.map((joiner) => ({ input: joiner.input, joiner }))];
214
+ let leader;
215
+ const settle = (part, outcome) => {
216
+ if (part.joiner === undefined) {
217
+ // Settled the moment it is known, not when the chain moves on: a
218
+ // leader cancelled or repeated while it waited must leave its
219
+ // caller's queue before the turn it handed over starts rendering.
220
+ leader = outcome;
221
+ settleLeader(outcome);
222
+ }
223
+ else if ('session' in outcome) {
224
+ part.joiner.resolve(outcome.session);
225
+ }
226
+ else {
227
+ part.joiner.reject(outcome.error);
228
+ }
229
+ };
230
+ const runnable = [];
231
+ for (const part of parts) {
232
+ const own = part.input;
233
+ if (own.signal?.aborted) {
234
+ settle(part, { error: abortErrorFor(own.signal) });
235
+ continue;
236
+ }
237
+ if (own.idempotencyKey !== undefined) {
238
+ try {
239
+ const repeated = await settleRepeat(input.sessionId, own.idempotencyKey, own.agentId, own.turnId, own.onRepeat);
240
+ if (repeated !== undefined) {
241
+ settle(part, { session: repeated });
242
+ continue;
243
+ }
244
+ }
245
+ catch (error) {
246
+ settle(part, { error });
247
+ continue;
248
+ }
249
+ }
250
+ runnable.push(part);
251
+ }
252
+ const head = runnable[0];
253
+ if (head === undefined) {
254
+ return finish(leader);
255
+ }
256
+ // Every runnable key now belongs to this turn.
257
+ const keys = runnable.flatMap((part) => (part.input.idempotencyKey !== undefined ? [part.input.idempotencyKey] : []));
258
+ const items = liveWorkItems.get(input.sessionId);
259
+ for (const key of keys) {
260
+ const item = items?.get(key);
261
+ if (item !== undefined) {
262
+ item.confirmed = true;
263
+ }
264
+ }
265
+ // The turn runs at the least trusted sender in it: everyone's words
266
+ // are in its one message.
267
+ const labelled = runnable.some((part) => part.input.metadata !== undefined && SENDER_TRUST_METADATA_KEY in part.input.metadata);
268
+ const lowest = leastTrusted(...runnable.map((part) => senderTrustOf(part.input.metadata)));
269
+ const newest = runnable[runnable.length - 1].input;
270
+ const metadata = labelled ? { ...newest.metadata, [SENDER_TRUST_METADATA_KEY]: lowest } : newest.metadata;
271
+ const images = runnable.flatMap((part) => part.input.images ?? []);
272
+ const signals = runnable.map((part) => part.input.signal);
273
+ // Cancelled only when every caller in it is: one caller giving up
274
+ // must not take the others' answer with it.
275
+ const signal = signals.every((candidate) => candidate !== undefined)
276
+ ? allAborted(signals)
277
+ : undefined;
278
+ const [primaryKey, ...absorbedKeys] = keys;
279
+ const merged = {
280
+ sessionId: input.sessionId,
281
+ ...(head.input.agentId !== undefined ? { agentId: head.input.agentId } : {}),
282
+ userMessage: runnable.map((part) => part.input.userMessage).join(MERGED_SEPARATOR),
283
+ ...(images.length > 0 ? { images } : {}),
284
+ ...(runnable.every((part) => part.input.replyOptional === true) ? { replyOptional: true } : {}),
285
+ ...(head.input.earlier !== undefined ? { earlier: head.input.earlier } : {}),
286
+ ...(metadata !== undefined ? { metadata } : {}),
287
+ ...(signal !== undefined ? { signal } : {}),
288
+ ...(head.input.turnId !== undefined ? { turnId: head.input.turnId } : {}),
289
+ ...(primaryKey !== undefined ? { idempotencyKey: primaryKey } : {}),
290
+ };
291
+ await settleOrphanedItem(input.sessionId);
292
+ let outcome;
293
+ if (merged.turnId !== undefined) {
294
+ activeTurns.set(input.sessionId, merged.turnId);
295
+ }
296
+ try {
297
+ outcome = { session: await runSteerable(merged, absorbedKeys) };
298
+ }
299
+ catch (error) {
300
+ outcome = { error };
301
+ }
302
+ finally {
303
+ if (merged.turnId !== undefined) {
304
+ activeTurns.delete(input.sessionId);
305
+ }
306
+ }
307
+ for (const part of runnable) {
308
+ if (part !== head) {
309
+ part.input.onAbsorbed?.();
310
+ }
311
+ settle(part, outcome);
312
+ }
313
+ return finish(leader);
314
+ };
315
+ const finish = (outcome) => {
316
+ if (outcome === undefined) {
317
+ throw new Error('A merged turn settled without an outcome for its leader.');
318
+ }
319
+ if ('error' in outcome) {
320
+ throw outcome.error;
321
+ }
322
+ return outcome.session;
323
+ };
324
+ // What this caller is handed. It follows the chain's work, except that a
325
+ // batch leader settles it early (`settle` in `runMerged`).
326
+ let settleLeader = () => { };
327
+ const turn = new Promise((resolve, reject) => {
328
+ settleLeader = (outcome) => ('error' in outcome ? reject(outcome.error) : resolve(outcome.session));
329
+ });
330
+ waitingDispatches.set(input.sessionId, (waitingDispatches.get(input.sessionId) ?? 0) + 1);
331
+ /**
332
+ * Runs this dispatch's turn, handing it whatever queues behind it at
333
+ * each tool step (`takeSteered`), then settles every dispatch it took
334
+ * with the turn's outcome — the outcome they joined. Only for a caller
335
+ * that opted into merged turns: it is the one that renders an answer
336
+ * covering messages other than its own.
337
+ */
338
+ const runSteerable = async (turnInput, absorbedKeys = []) => {
339
+ const steered = [];
340
+ // Cancelled only when every caller in it is, as a merged turn is, the
341
+ // ones steered in later included: one caller giving up must not take
342
+ // the others' answer with it. A turn with a caller who cannot cancel
343
+ // has no signal to join.
344
+ const joint = turnInput.signal !== undefined ? joinableSignal([turnInput.signal]) : undefined;
345
+ // Admitted on the turn's own signal, not only the callers' joint one:
346
+ // the watchdog, `abortTurns` and a restart's window stop the turn
347
+ // without touching its callers, and a batch taken into a turn stopped
348
+ // while the store was read would share its failure instead of running
349
+ // next (card 959). The turn's signal follows the joint one, so this
350
+ // covers every caller giving up too.
351
+ const steer = mergeable
352
+ ? (turnSignal) => takeSteered(input.sessionId, input.agentId, steered, (parts) => {
353
+ if (turnSignal.aborted) {
354
+ return false;
355
+ }
356
+ for (const part of parts) {
357
+ joint?.join(part.input.signal);
358
+ }
359
+ return true;
360
+ })
361
+ : undefined;
362
+ const running = joint !== undefined ? { ...turnInput, signal: joint.signal } : turnInput;
363
+ let outcome;
364
+ try {
365
+ outcome = { session: await dispatchInternal(running, absorbedKeys, undefined, steer) };
366
+ }
367
+ catch (error) {
368
+ outcome = { error };
369
+ }
370
+ for (const part of steered) {
371
+ part.input.onAbsorbed?.();
372
+ if ('session' in outcome) {
373
+ part.resolve(outcome.session);
374
+ }
375
+ else {
376
+ part.reject(outcome.error);
377
+ }
378
+ }
379
+ if ('error' in outcome) {
380
+ throw outcome.error;
381
+ }
382
+ return outcome.session;
383
+ };
384
+ const chained = onSessionChain(input.sessionId, async () => {
385
+ // Steered into the turn that ran ahead of it, which has answered and
386
+ // settled everyone in the batch already — this caller included.
387
+ if (batch?.steered === true) {
388
+ return turn;
389
+ }
390
+ // The batch closes here: anything arriving from now on waits behind
391
+ // this turn and leads the next one.
392
+ if (batch !== undefined && openBatches.get(input.sessionId) === batch) {
393
+ openBatches.delete(input.sessionId);
394
+ }
395
+ const absorbed = batch?.absorbed ?? [];
396
+ // No longer waiting once it reaches the head of the chain — nor is
397
+ // anything it absorbed.
398
+ const left = (waitingDispatches.get(input.sessionId) ?? 1) - 1 - absorbed.length;
399
+ if (left > 0) {
400
+ waitingDispatches.set(input.sessionId, left);
401
+ }
402
+ else {
403
+ waitingDispatches.delete(input.sessionId);
404
+ }
405
+ if (absorbed.length > 0) {
406
+ return runMerged(absorbed);
407
+ }
408
+ // Before `activeTurns` is touched: a repeat that runs nothing must
409
+ // not claim the session's turn id, even for the instant it takes.
410
+ const repeated = idempotencyKey !== undefined ? await settleRepeat(input.sessionId, idempotencyKey, input.agentId, turnId, input.onRepeat) : undefined;
411
+ if (repeated !== undefined) {
412
+ return repeated;
413
+ }
414
+ // Past the identity check with a key the session has not seen, so this
415
+ // dispatch owns the item: it becomes the live entry even if a claimant
416
+ // that was then refused registered first, or a repeat arriving while
417
+ // this turn runs would find nothing to attach to, queue, and read the
418
+ // turn as finished — a second answer beside this caller's.
419
+ if (idempotencyKey !== undefined) {
420
+ claimLiveItem(idempotencyKey, true);
421
+ }
422
+ await settleOrphanedItem(input.sessionId);
423
+ if (turnId === undefined) {
424
+ return runSteerable(input);
425
+ }
426
+ activeTurns.set(input.sessionId, turnId);
427
+ try {
428
+ return await runSteerable(input);
429
+ }
430
+ finally {
431
+ // Unconditional, and safe to be: the chain guarantees no other turn
432
+ // for this session ran between the set above and here, so this can
433
+ // only ever be clearing its own entry.
434
+ activeTurns.delete(input.sessionId);
435
+ }
436
+ }, () => batch?.steered === true);
437
+ // A second settle (a leader already settled early) is a no-op.
438
+ chained.then((session) => settleLeader({ session }), (error) => settleLeader({ error }));
439
+ if (idempotencyKey !== undefined) {
440
+ // A repeat that queued instead of attaching — it named another agent,
441
+ // and is about to be refused — must not displace the turn it repeats.
442
+ // The first registration is provisional; the chain confirms it
443
+ // (`claimLiveItem` above) once the dispatch is known to own the item.
444
+ if (liveWorkItems.get(input.sessionId)?.has(idempotencyKey) !== true) {
445
+ claimLiveItem(idempotencyKey, false);
446
+ }
447
+ void turn.catch(() => { }).finally(() => {
448
+ const current = liveWorkItems.get(input.sessionId);
449
+ if (current?.get(idempotencyKey)?.turn === turn) {
450
+ current.delete(idempotencyKey);
451
+ if (current.size === 0) {
452
+ liveWorkItems.delete(input.sessionId);
453
+ }
454
+ }
455
+ });
456
+ }
457
+ return turn;
458
+ };
459
+ return { dispatch };
460
+ };
461
+ //# sourceMappingURL=dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}