@trigger.dev/core 4.5.12 → 4.5.13

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 (127) hide show
  1. package/dist/commonjs/v3/apiClient/runStream.d.ts +3 -0
  2. package/dist/commonjs/v3/apiClient/runStream.js +1 -0
  3. package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
  4. package/dist/commonjs/v3/apiClient/runStream.test.js +1 -0
  5. package/dist/commonjs/v3/apiClient/runStream.test.js.map +1 -1
  6. package/dist/commonjs/v3/isomorphic/friendlyId.d.ts +64 -1
  7. package/dist/commonjs/v3/isomorphic/friendlyId.js +179 -12
  8. package/dist/commonjs/v3/isomorphic/friendlyId.js.map +1 -1
  9. package/dist/commonjs/v3/isomorphic/friendlyId.test.js +283 -1
  10. package/dist/commonjs/v3/isomorphic/friendlyId.test.js.map +1 -1
  11. package/dist/commonjs/v3/isomorphic/index.d.ts +1 -0
  12. package/dist/commonjs/v3/isomorphic/index.js +1 -0
  13. package/dist/commonjs/v3/isomorphic/index.js.map +1 -1
  14. package/dist/commonjs/v3/isomorphic/runOpsResidency.d.ts +21 -7
  15. package/dist/commonjs/v3/isomorphic/runOpsResidency.js +23 -7
  16. package/dist/commonjs/v3/isomorphic/runOpsResidency.js.map +1 -1
  17. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js +85 -2
  18. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js.map +1 -1
  19. package/dist/commonjs/v3/isomorphic/waitpointMint.d.ts +9 -0
  20. package/dist/commonjs/v3/isomorphic/waitpointMint.js +22 -0
  21. package/dist/commonjs/v3/isomorphic/waitpointMint.js.map +1 -0
  22. package/dist/commonjs/v3/isomorphic/waitpointMint.test.d.ts +1 -0
  23. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js +97 -0
  24. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js.map +1 -0
  25. package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +54 -54
  26. package/dist/commonjs/v3/schemas/api.d.ts +45 -3
  27. package/dist/commonjs/v3/schemas/api.js +18 -5
  28. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  29. package/dist/commonjs/v3/session-streams-api.d.ts +1 -0
  30. package/dist/commonjs/v3/session-streams-api.js +1 -0
  31. package/dist/commonjs/v3/session-streams-api.js.map +1 -1
  32. package/dist/commonjs/v3/sessionStreams/index.d.ts +9 -1
  33. package/dist/commonjs/v3/sessionStreams/index.js +38 -0
  34. package/dist/commonjs/v3/sessionStreams/index.js.map +1 -1
  35. package/dist/commonjs/v3/sessionStreams/manager.d.ts +27 -2
  36. package/dist/commonjs/v3/sessionStreams/manager.js +202 -108
  37. package/dist/commonjs/v3/sessionStreams/manager.js.map +1 -1
  38. package/dist/commonjs/v3/sessionStreams/manager.test.js +253 -0
  39. package/dist/commonjs/v3/sessionStreams/manager.test.js.map +1 -1
  40. package/dist/commonjs/v3/sessionStreams/noopManager.d.ts +9 -1
  41. package/dist/commonjs/v3/sessionStreams/noopManager.js +18 -0
  42. package/dist/commonjs/v3/sessionStreams/noopManager.js.map +1 -1
  43. package/dist/commonjs/v3/sessionStreams/router.d.ts +241 -0
  44. package/dist/commonjs/v3/sessionStreams/router.js +402 -0
  45. package/dist/commonjs/v3/sessionStreams/router.js.map +1 -0
  46. package/dist/commonjs/v3/sessionStreams/router.test.d.ts +1 -0
  47. package/dist/commonjs/v3/sessionStreams/router.test.js +463 -0
  48. package/dist/commonjs/v3/sessionStreams/router.test.js.map +1 -0
  49. package/dist/commonjs/v3/sessionStreams/types.d.ts +42 -6
  50. package/dist/commonjs/v3/sessionStreams/wireProtocol.d.ts +11 -0
  51. package/dist/commonjs/v3/sessionStreams/wireProtocol.js +12 -1
  52. package/dist/commonjs/v3/sessionStreams/wireProtocol.js.map +1 -1
  53. package/dist/commonjs/v3/test/mock-task-context.d.ts +4 -1
  54. package/dist/commonjs/v3/test/mock-task-context.js +2 -2
  55. package/dist/commonjs/v3/test/mock-task-context.js.map +1 -1
  56. package/dist/commonjs/v3/test/session-waitpoint-backend.js +17 -3
  57. package/dist/commonjs/v3/test/session-waitpoint-backend.js.map +1 -1
  58. package/dist/commonjs/v3/test/test-session-stream-manager.d.ts +13 -2
  59. package/dist/commonjs/v3/test/test-session-stream-manager.js +173 -67
  60. package/dist/commonjs/v3/test/test-session-stream-manager.js.map +1 -1
  61. package/dist/commonjs/v3/utils/globals.js +5 -1
  62. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  63. package/dist/commonjs/version.js +1 -1
  64. package/dist/esm/v3/apiClient/runStream.d.ts +3 -0
  65. package/dist/esm/v3/apiClient/runStream.js +1 -0
  66. package/dist/esm/v3/apiClient/runStream.js.map +1 -1
  67. package/dist/esm/v3/apiClient/runStream.test.js +1 -0
  68. package/dist/esm/v3/apiClient/runStream.test.js.map +1 -1
  69. package/dist/esm/v3/isomorphic/friendlyId.d.ts +64 -1
  70. package/dist/esm/v3/isomorphic/friendlyId.js +170 -11
  71. package/dist/esm/v3/isomorphic/friendlyId.js.map +1 -1
  72. package/dist/esm/v3/isomorphic/friendlyId.test.js +284 -2
  73. package/dist/esm/v3/isomorphic/friendlyId.test.js.map +1 -1
  74. package/dist/esm/v3/isomorphic/index.d.ts +1 -0
  75. package/dist/esm/v3/isomorphic/index.js +1 -0
  76. package/dist/esm/v3/isomorphic/index.js.map +1 -1
  77. package/dist/esm/v3/isomorphic/runOpsResidency.d.ts +21 -7
  78. package/dist/esm/v3/isomorphic/runOpsResidency.js +23 -8
  79. package/dist/esm/v3/isomorphic/runOpsResidency.js.map +1 -1
  80. package/dist/esm/v3/isomorphic/runOpsResidency.test.js +87 -4
  81. package/dist/esm/v3/isomorphic/runOpsResidency.test.js.map +1 -1
  82. package/dist/esm/v3/isomorphic/waitpointMint.d.ts +9 -0
  83. package/dist/esm/v3/isomorphic/waitpointMint.js +18 -0
  84. package/dist/esm/v3/isomorphic/waitpointMint.js.map +1 -0
  85. package/dist/esm/v3/isomorphic/waitpointMint.test.d.ts +1 -0
  86. package/dist/esm/v3/isomorphic/waitpointMint.test.js +95 -0
  87. package/dist/esm/v3/isomorphic/waitpointMint.test.js.map +1 -0
  88. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +54 -54
  89. package/dist/esm/v3/schemas/api.d.ts +45 -3
  90. package/dist/esm/v3/schemas/api.js +15 -2
  91. package/dist/esm/v3/schemas/api.js.map +1 -1
  92. package/dist/esm/v3/session-streams-api.d.ts +1 -0
  93. package/dist/esm/v3/session-streams-api.js +1 -0
  94. package/dist/esm/v3/session-streams-api.js.map +1 -1
  95. package/dist/esm/v3/sessionStreams/index.d.ts +9 -1
  96. package/dist/esm/v3/sessionStreams/index.js +38 -0
  97. package/dist/esm/v3/sessionStreams/index.js.map +1 -1
  98. package/dist/esm/v3/sessionStreams/manager.d.ts +27 -2
  99. package/dist/esm/v3/sessionStreams/manager.js +202 -108
  100. package/dist/esm/v3/sessionStreams/manager.js.map +1 -1
  101. package/dist/esm/v3/sessionStreams/manager.test.js +253 -0
  102. package/dist/esm/v3/sessionStreams/manager.test.js.map +1 -1
  103. package/dist/esm/v3/sessionStreams/noopManager.d.ts +9 -1
  104. package/dist/esm/v3/sessionStreams/noopManager.js +18 -0
  105. package/dist/esm/v3/sessionStreams/noopManager.js.map +1 -1
  106. package/dist/esm/v3/sessionStreams/router.d.ts +241 -0
  107. package/dist/esm/v3/sessionStreams/router.js +398 -0
  108. package/dist/esm/v3/sessionStreams/router.js.map +1 -0
  109. package/dist/esm/v3/sessionStreams/router.test.d.ts +1 -0
  110. package/dist/esm/v3/sessionStreams/router.test.js +461 -0
  111. package/dist/esm/v3/sessionStreams/router.test.js.map +1 -0
  112. package/dist/esm/v3/sessionStreams/types.d.ts +42 -6
  113. package/dist/esm/v3/sessionStreams/wireProtocol.d.ts +11 -0
  114. package/dist/esm/v3/sessionStreams/wireProtocol.js +11 -0
  115. package/dist/esm/v3/sessionStreams/wireProtocol.js.map +1 -1
  116. package/dist/esm/v3/test/mock-task-context.d.ts +4 -1
  117. package/dist/esm/v3/test/mock-task-context.js +2 -2
  118. package/dist/esm/v3/test/mock-task-context.js.map +1 -1
  119. package/dist/esm/v3/test/session-waitpoint-backend.js +17 -3
  120. package/dist/esm/v3/test/session-waitpoint-backend.js.map +1 -1
  121. package/dist/esm/v3/test/test-session-stream-manager.d.ts +13 -2
  122. package/dist/esm/v3/test/test-session-stream-manager.js +173 -67
  123. package/dist/esm/v3/test/test-session-stream-manager.js.map +1 -1
  124. package/dist/esm/v3/utils/globals.js +5 -1
  125. package/dist/esm/v3/utils/globals.js.map +1 -1
  126. package/dist/esm/version.js +1 -1
  127. package/package.json +1 -1
@@ -18,18 +18,6 @@ export class StandardSessionStreamManager {
18
18
  handlers = new Map();
19
19
  onceWaiters = new Map();
20
20
  buffer = new Map();
21
- // Parallel to `buffer`: the SSE seq_num of each buffered record. Same
22
- // length and order as `buffer[key]`. Used so that when `once()` shifts
23
- // a buffered record into a waiter, the cursor (`lastDispatchedSeqNums`)
24
- // can advance to that record's seq. Kept as a separate map so the
25
- // existing `peek()` shape (returns `unknown`) stays unchanged.
26
- //
27
- // Entries are `number | undefined` so the array stays length-locked
28
- // with `buffer` even if a record arrives without a parseable seq —
29
- // shifting `undefined` is just a no-op for the cursor advance, but
30
- // the slot still gets consumed. Drifting lengths would map seq_nums
31
- // to the wrong records on subsequent shifts.
32
- bufferSeqNums = new Map();
33
21
  tails = new Map();
34
22
  // Per-stream lower-bound timestamp filter. When set, records whose
35
23
  // SSE timestamp is <= the bound are dropped before dispatch — used by
@@ -45,14 +33,16 @@ export class StandardSessionStreamManager {
45
33
  // that's already being delivered out-of-band via the waitpoint.
46
34
  explicitlyDisconnected = new Set();
47
35
  seqNums = new Map();
48
- // Highest seq_num that has been *consumed* (delivered to a once()
49
- // waiter or shifted off the buffer into a once() caller) on a channel.
36
+ // Sequence numbers for records that were delivered but not consumed.
37
+ // Kept separately from `buffer` so the committed cursor can be calculated
38
+ // without depending on buffer traversal.
39
+ unconsumedSeqNums = new Map();
40
+ // High-water mark of seq_nums that have been *consumed* (delivered to a
41
+ // once() waiter or shifted off the buffer into a once() caller) on a channel.
50
42
  // Distinct from `seqNums`, which advances whenever any record is
51
43
  // received from SSE — even ones still sitting in the local buffer.
52
- // The committed-consume cursor is what gets persisted on the
53
- // turn-complete control record's `session-in-event-id` header so the
54
- // next worker boot can resume `.in` from this point without
55
- // re-delivering already-handled user messages.
44
+ // `lastDispatchedSeqNum()` clamps this behind any unconsumed barrier before
45
+ // it is persisted on a turn-complete control record.
56
46
  lastDispatchedSeqNums = new Map();
57
47
  // Reconnect attempt counter per key. Drives the exponential backoff
58
48
  // applied by `#ensureTailConnected`'s `.finally` so a persistent
@@ -67,6 +57,16 @@ export class StandardSessionStreamManager {
67
57
  this.debug = debug;
68
58
  }
69
59
  on(sessionId, io, handler) {
60
+ return this.#register(sessionId, io, { kind: "data", fn: handler });
61
+ }
62
+ /**
63
+ * Register a handler that receives the full record, including its sequence
64
+ * number. Same consume semantics as {@link on}: returning `true` consumes.
65
+ */
66
+ onRecord(sessionId, io, handler) {
67
+ return this.#register(sessionId, io, { kind: "record", fn: handler });
68
+ }
69
+ #register(sessionId, io, handler) {
70
70
  const key = keyFor(sessionId, io);
71
71
  let handlerSet = this.handlers.get(key);
72
72
  if (!handlerSet) {
@@ -91,31 +91,23 @@ export class StandardSessionStreamManager {
91
91
  // duplicating turns.
92
92
  const buffered = this.buffer.get(key);
93
93
  if (buffered && buffered.length > 0) {
94
- const seqList = this.bufferSeqNums.get(key) ?? [];
95
94
  const keptRecords = [];
96
- // Kept in lock-step with `keptRecords` — drifting lengths would map
97
- // seq_nums to the wrong records on subsequent shifts.
98
- const keptSeqNums = [];
99
- for (let i = 0; i < buffered.length; i++) {
100
- const consumed = this.#invokeHandler(handler, buffered[i]);
95
+ for (const record of buffered) {
96
+ const consumed = this.#invokeHandler(handler, record);
101
97
  if (consumed) {
102
- const s = seqList[i];
103
- if (s !== undefined)
104
- this.#advanceLastDispatched(key, s);
98
+ this.#advanceLastDispatched(key, record.seqNum);
105
99
  }
106
100
  else {
107
- keptRecords.push(buffered[i]);
108
- keptSeqNums.push(seqList[i]);
101
+ keptRecords.push(record);
109
102
  }
110
103
  }
111
104
  if (keptRecords.length > 0) {
112
105
  this.buffer.set(key, keptRecords);
113
- this.bufferSeqNums.set(key, keptSeqNums);
114
106
  }
115
107
  else {
116
108
  this.buffer.delete(key);
117
- this.bufferSeqNums.delete(key);
118
109
  }
110
+ this.#drainOnceWaitersFromBuffer(key);
119
111
  }
120
112
  return {
121
113
  off: () => {
@@ -127,27 +119,39 @@ export class StandardSessionStreamManager {
127
119
  };
128
120
  }
129
121
  once(sessionId, io, options) {
122
+ const recordPromise = this.onceRecord(sessionId, io, options);
123
+ return new InputStreamOncePromise((resolve, reject) => {
124
+ recordPromise.then((result) => {
125
+ resolve(result.ok ? { ok: true, output: result.output.data } : result);
126
+ }, reject);
127
+ });
128
+ }
129
+ onceRecord(sessionId, io, options) {
130
+ return this.#onceRecord(sessionId, io, undefined, options);
131
+ }
132
+ onceRecordWhere(sessionId, io, predicate, options) {
133
+ return this.#onceRecord(sessionId, io, predicate, options);
134
+ }
135
+ #onceRecord(sessionId, io, predicate, options) {
130
136
  const key = keyFor(sessionId, io);
137
+ if (options?.timeoutMs === 0) {
138
+ const record = this.#takeBufferedRecord(key, predicate);
139
+ return new InputStreamOncePromise((resolve) => {
140
+ resolve(record
141
+ ? { ok: true, output: record }
142
+ : { ok: false, error: new InputStreamTimeoutError(key, 0) });
143
+ });
144
+ }
131
145
  this.explicitlyDisconnected.delete(key);
132
146
  this.#ensureTailConnected(sessionId, io);
133
- const buffered = this.buffer.get(key);
134
- if (buffered && buffered.length > 0) {
135
- const data = buffered.shift();
136
- const seqList = this.bufferSeqNums.get(key);
137
- const shiftedSeqNum = seqList?.shift();
138
- if (buffered.length === 0) {
139
- this.buffer.delete(key);
140
- this.bufferSeqNums.delete(key);
141
- }
142
- if (shiftedSeqNum !== undefined) {
143
- this.#advanceLastDispatched(key, shiftedSeqNum);
144
- }
147
+ const record = this.#takeBufferedRecord(key, predicate);
148
+ if (record) {
145
149
  return new InputStreamOncePromise((resolve) => {
146
- resolve({ ok: true, output: data });
150
+ resolve({ ok: true, output: record });
147
151
  });
148
152
  }
149
153
  return new InputStreamOncePromise((resolve, reject) => {
150
- const waiter = { resolve, reject };
154
+ const waiter = { resolve, reject, predicate };
151
155
  if (options?.signal) {
152
156
  if (options.signal.aborted) {
153
157
  reject(new Error("Aborted"));
@@ -180,11 +184,26 @@ export class StandardSessionStreamManager {
180
184
  waiters.push(waiter);
181
185
  });
182
186
  }
187
+ #takeBufferedRecord(key, predicate) {
188
+ const buffered = this.buffer.get(key);
189
+ if (!buffered || buffered.length === 0)
190
+ return undefined;
191
+ const record = buffered[0];
192
+ if (predicate && !predicate(record))
193
+ return undefined;
194
+ buffered.shift();
195
+ if (buffered.length === 0) {
196
+ this.buffer.delete(key);
197
+ }
198
+ this.#advanceLastDispatched(key, record.seqNum);
199
+ this.#drainOnceWaitersFromBuffer(key);
200
+ return record;
201
+ }
183
202
  peek(sessionId, io) {
184
- const buffered = this.buffer.get(keyFor(sessionId, io));
185
- if (buffered && buffered.length > 0)
186
- return buffered[0];
187
- return undefined;
203
+ return this.peekRecord(sessionId, io)?.data;
204
+ }
205
+ peekRecord(sessionId, io) {
206
+ return this.buffer.get(keyFor(sessionId, io))?.[0];
188
207
  }
189
208
  lastSeqNum(sessionId, io) {
190
209
  return this.seqNums.get(keyFor(sessionId, io));
@@ -196,18 +215,65 @@ export class StandardSessionStreamManager {
196
215
  this.seqNums.set(key, seqNum);
197
216
  }
198
217
  }
218
+ consumeRecord(sessionId, io, seqNum) {
219
+ const key = keyFor(sessionId, io);
220
+ const buffered = this.buffer.get(key);
221
+ const index = buffered?.findIndex((record) => record.seqNum === seqNum) ?? -1;
222
+ if (buffered && index !== -1) {
223
+ buffered.splice(index, 1);
224
+ if (buffered.length === 0) {
225
+ this.buffer.delete(key);
226
+ }
227
+ }
228
+ this.#advanceLastDispatched(key, seqNum);
229
+ this.#drainOnceWaitersFromBuffer(key);
230
+ }
199
231
  lastDispatchedSeqNum(sessionId, io) {
200
- return this.lastDispatchedSeqNums.get(keyFor(sessionId, io));
232
+ const key = keyFor(sessionId, io);
233
+ const highWatermark = this.lastDispatchedSeqNums.get(key);
234
+ if (highWatermark === undefined)
235
+ return undefined;
236
+ const unconsumedSeqNums = this.unconsumedSeqNums.get(key);
237
+ if (!unconsumedSeqNums || unconsumedSeqNums.size === 0)
238
+ return highWatermark;
239
+ let earliestUnconsumedSeqNum = Infinity;
240
+ for (const seqNum of unconsumedSeqNums) {
241
+ earliestUnconsumedSeqNum = Math.min(earliestUnconsumedSeqNum, seqNum);
242
+ }
243
+ const safeCursor = Math.min(highWatermark, earliestUnconsumedSeqNum - 1);
244
+ return safeCursor >= 0 ? safeCursor : undefined;
201
245
  }
202
246
  setLastDispatchedSeqNum(sessionId, io, seqNum) {
247
+ if (!Number.isFinite(seqNum))
248
+ return;
203
249
  this.#advanceLastDispatched(keyFor(sessionId, io), seqNum);
204
250
  }
205
251
  #advanceLastDispatched(key, seqNum) {
252
+ this.#removeUnconsumedRecord(key, seqNum);
253
+ if (!Number.isFinite(seqNum))
254
+ return;
206
255
  const current = this.lastDispatchedSeqNums.get(key);
207
256
  if (current === undefined || seqNum > current) {
208
257
  this.lastDispatchedSeqNums.set(key, seqNum);
209
258
  }
210
259
  }
260
+ #markUnconsumedRecord(key, seqNum) {
261
+ if (!Number.isFinite(seqNum))
262
+ return;
263
+ let unconsumedSeqNums = this.unconsumedSeqNums.get(key);
264
+ if (!unconsumedSeqNums) {
265
+ unconsumedSeqNums = new Set();
266
+ this.unconsumedSeqNums.set(key, unconsumedSeqNums);
267
+ }
268
+ unconsumedSeqNums.add(seqNum);
269
+ }
270
+ #removeUnconsumedRecord(key, seqNum) {
271
+ const unconsumedSeqNums = this.unconsumedSeqNums.get(key);
272
+ unconsumedSeqNums?.delete(seqNum);
273
+ if (unconsumedSeqNums?.size === 0) {
274
+ this.unconsumedSeqNums.delete(key);
275
+ }
276
+ }
211
277
  setMinTimestamp(sessionId, io, minTimestamp) {
212
278
  const key = keyFor(sessionId, io);
213
279
  if (minTimestamp === undefined) {
@@ -221,16 +287,12 @@ export class StandardSessionStreamManager {
221
287
  const key = keyFor(sessionId, io);
222
288
  const buffered = this.buffer.get(key);
223
289
  if (buffered && buffered.length > 0) {
224
- buffered.shift();
225
- const seqList = this.bufferSeqNums.get(key);
226
- const shiftedSeqNum = seqList?.shift();
290
+ const record = buffered.shift();
227
291
  if (buffered.length === 0) {
228
292
  this.buffer.delete(key);
229
- this.bufferSeqNums.delete(key);
230
- }
231
- if (shiftedSeqNum !== undefined) {
232
- this.#advanceLastDispatched(key, shiftedSeqNum);
233
293
  }
294
+ this.#advanceLastDispatched(key, record.seqNum);
295
+ this.#drainOnceWaitersFromBuffer(key);
234
296
  return true;
235
297
  }
236
298
  return false;
@@ -238,7 +300,6 @@ export class StandardSessionStreamManager {
238
300
  disconnectStream(sessionId, io) {
239
301
  const key = keyFor(sessionId, io);
240
302
  const tail = this.tails.get(key);
241
- const _bufferedSize = this.buffer.get(key)?.length ?? 0;
242
303
  // Mark as explicitly disconnected BEFORE we abort, so the tail's
243
304
  // `.finally` reconnect path sees the flag when it runs (which can be
244
305
  // synchronous in the AbortError catch). Cleared on the next explicit
@@ -248,13 +309,23 @@ export class StandardSessionStreamManager {
248
309
  tail.abortController.abort();
249
310
  this.tails.delete(key);
250
311
  }
251
- this.buffer.delete(key);
252
- this.bufferSeqNums.delete(key);
253
312
  // Reset the backoff counter so a future re-attach starts fresh —
254
313
  // an explicit disconnect is a deliberate teardown, not evidence of
255
314
  // a broken backend.
256
315
  this.reconnectAttempts.delete(key);
257
316
  }
317
+ /**
318
+ * Re-open a channel that `disconnectStream` closed, without registering a
319
+ * new consumer. A single long-lived reader (the session channel router) has
320
+ * to be able to bring its own tail back after a suspend, and re-attaching
321
+ * its handler just to clear the suppression flag would replay the buffer at
322
+ * it.
323
+ */
324
+ reconnectStream(sessionId, io) {
325
+ const key = keyFor(sessionId, io);
326
+ this.explicitlyDisconnected.delete(key);
327
+ this.#ensureTailConnected(sessionId, io);
328
+ }
258
329
  clearHandlers() {
259
330
  this.handlers.clear();
260
331
  for (const [key, tail] of this.tails) {
@@ -284,6 +355,7 @@ export class StandardSessionStreamManager {
284
355
  this.disconnect();
285
356
  this.seqNums.clear();
286
357
  this.lastDispatchedSeqNums.clear();
358
+ this.unconsumedSeqNums.clear();
287
359
  this.minTimestamps.clear();
288
360
  this.handlers.clear();
289
361
  this.reconnectAttempts.clear();
@@ -299,7 +371,6 @@ export class StandardSessionStreamManager {
299
371
  }
300
372
  this.onceWaiters.clear();
301
373
  this.buffer.clear();
302
- this.bufferSeqNums.clear();
303
374
  }
304
375
  #ensureTailConnected(sessionId, io) {
305
376
  const key = keyFor(sessionId, io);
@@ -315,15 +386,10 @@ export class StandardSessionStreamManager {
315
386
  .finally(() => {
316
387
  this.tails.delete(key);
317
388
  // If the tail was torn down explicitly via `disconnectStream`,
318
- // honor that the caller (typically `session.in.wait()`) is
319
- // suspending the run and expects no records to be buffered or
320
- // delivered until a fresh `on()` / `once()` re-attaches. Without
321
- // this guard a run-level persistent handler (e.g. `chat.agent`'s
322
- // `stopInput.on(...)`) would auto-reconnect during the suspend
323
- // window, the resurrected tail would receive the same record the
324
- // waitpoint just delivered, and that record would land in the
325
- // buffer where the next turn's `messagesInput.on(...)` drains it
326
- // and runs a duplicate turn.
389
+ // honor that until a fresh `on()` / `once()` re-attaches. Existing
390
+ // buffered records stay available across the suspension, but a
391
+ // run-level handler must not reconnect and receive another copy of
392
+ // the record being delivered through the waitpoint.
327
393
  if (this.explicitlyDisconnected.has(key)) {
328
394
  return;
329
395
  }
@@ -375,9 +441,9 @@ export class StandardSessionStreamManager {
375
441
  if (signal.aborted)
376
442
  return;
377
443
  const seqNum = parseInt(part.id, 10);
378
- if (Number.isFinite(seqNum)) {
379
- this.seqNums.set(key, seqNum);
380
- }
444
+ if (!Number.isFinite(seqNum))
445
+ return;
446
+ this.seqNums.set(key, seqNum);
381
447
  // Trigger control records (turn-complete, upgrade-required)
382
448
  // are dispatched out-of-band via `onControl` — they're not
383
449
  // consumer-facing data. Skip the data dispatch path.
@@ -400,7 +466,11 @@ export class StandardSessionStreamManager {
400
466
  // keep as string
401
467
  }
402
468
  }
403
- this.#dispatch(key, data, Number.isFinite(seqNum) ? seqNum : undefined);
469
+ this.#dispatch(key, {
470
+ id: part.recordId ?? part.id,
471
+ seqNum,
472
+ data,
473
+ });
404
474
  },
405
475
  onComplete: () => {
406
476
  if (this.debug) {
@@ -426,28 +496,19 @@ export class StandardSessionStreamManager {
426
496
  throw error;
427
497
  }
428
498
  }
429
- #dispatch(key, data, seqNum) {
499
+ #dispatch(key, record) {
430
500
  // Any record flowing through = healthy connection; reset the backoff
431
501
  // counter so the next disconnect starts fresh.
432
502
  this.reconnectAttempts.delete(key);
433
- const waiters = this.onceWaiters.get(key);
434
- if (waiters && waiters.length > 0) {
435
- const waiter = waiters.shift();
436
- if (waiters.length === 0)
437
- this.onceWaiters.delete(key);
438
- if (waiter.timeoutHandle)
439
- clearTimeout(waiter.timeoutHandle);
440
- if (waiter.signal && waiter.abortHandler) {
441
- waiter.signal.removeEventListener("abort", waiter.abortHandler);
442
- }
503
+ const existingBuffer = this.buffer.get(key);
504
+ const waiter = existingBuffer && existingBuffer.length > 0 ? undefined : this.#takeOnceWaiter(key, record);
505
+ if (waiter) {
443
506
  // Record was consumed directly by a waiter — advance the
444
507
  // committed-consume cursor immediately. Buffered-then-shifted
445
508
  // records advance the cursor in `once()` / `shiftBuffer()`.
446
- if (seqNum !== undefined) {
447
- this.#advanceLastDispatched(key, seqNum);
448
- }
449
- waiter.resolve({ ok: true, output: data });
450
- this.#invokeHandlers(key, data);
509
+ this.#advanceLastDispatched(key, record.seqNum);
510
+ waiter.resolve({ ok: true, output: record });
511
+ this.#invokeHandlers(key, record);
451
512
  return;
452
513
  }
453
514
  // Persistent handlers get a copy of the chunk. A handler that
@@ -458,11 +519,9 @@ export class StandardSessionStreamManager {
458
519
  // second turn. Records no handler consumed (e.g. a message arriving
459
520
  // while only the stop facade is attached during preload) are buffered
460
521
  // so a subsequent `once()` can still pick them up.
461
- const consumed = this.#invokeHandlers(key, data);
522
+ const consumed = this.#invokeHandlers(key, record);
462
523
  if (consumed) {
463
- if (seqNum !== undefined) {
464
- this.#advanceLastDispatched(key, seqNum);
465
- }
524
+ this.#advanceLastDispatched(key, record.seqNum);
466
525
  return;
467
526
  }
468
527
  let buffered = this.buffer.get(key);
@@ -470,35 +529,70 @@ export class StandardSessionStreamManager {
470
529
  buffered = [];
471
530
  this.buffer.set(key, buffered);
472
531
  }
473
- buffered.push(data);
474
- let bufferedSeqs = this.bufferSeqNums.get(key);
475
- if (!bufferedSeqs) {
476
- bufferedSeqs = [];
477
- this.bufferSeqNums.set(key, bufferedSeqs);
532
+ buffered.push(record);
533
+ this.#markUnconsumedRecord(key, record.seqNum);
534
+ this.#drainOnceWaitersFromBuffer(key);
535
+ }
536
+ #takeOnceWaiter(key, record) {
537
+ const waiters = this.onceWaiters.get(key);
538
+ if (!waiters)
539
+ return undefined;
540
+ const index = waiters.findIndex((waiter) => {
541
+ if (!waiter.predicate)
542
+ return true;
543
+ try {
544
+ return waiter.predicate(record);
545
+ }
546
+ catch (error) {
547
+ if (this.debug) {
548
+ console.error("[SessionStreamManager] Record predicate error:", error);
549
+ }
550
+ return false;
551
+ }
552
+ });
553
+ if (index === -1)
554
+ return undefined;
555
+ const [waiter] = waiters.splice(index, 1);
556
+ if (waiters.length === 0)
557
+ this.onceWaiters.delete(key);
558
+ if (waiter.timeoutHandle)
559
+ clearTimeout(waiter.timeoutHandle);
560
+ if (waiter.signal && waiter.abortHandler) {
561
+ waiter.signal.removeEventListener("abort", waiter.abortHandler);
562
+ }
563
+ return waiter;
564
+ }
565
+ #drainOnceWaitersFromBuffer(key) {
566
+ const buffered = this.buffer.get(key);
567
+ while (buffered && buffered.length > 0) {
568
+ const record = buffered[0];
569
+ const waiter = this.#takeOnceWaiter(key, record);
570
+ if (!waiter)
571
+ return;
572
+ buffered.shift();
573
+ if (buffered.length === 0)
574
+ this.buffer.delete(key);
575
+ this.#advanceLastDispatched(key, record.seqNum);
576
+ waiter.resolve({ ok: true, output: record });
478
577
  }
479
- // Always push, even when `seqNum` is undefined (e.g. NaN from a
480
- // malformed `part.id`). Skipping the push here would drift the two
481
- // arrays apart and misattribute seq_nums to records on the next
482
- // shift.
483
- bufferedSeqs.push(seqNum);
484
578
  }
485
579
  /** Returns true when any handler consumed the record. All handlers are invoked regardless. */
486
- #invokeHandlers(key, data) {
580
+ #invokeHandlers(key, record) {
487
581
  const handlers = this.handlers.get(key);
488
582
  if (!handlers)
489
583
  return false;
490
584
  let consumed = false;
491
585
  for (const handler of handlers) {
492
- if (this.#invokeHandler(handler, data)) {
586
+ if (this.#invokeHandler(handler, record)) {
493
587
  consumed = true;
494
588
  }
495
589
  }
496
590
  return consumed;
497
591
  }
498
592
  /** Returns true when the handler synchronously consumed the record (returned `true`). */
499
- #invokeHandler(handler, data) {
593
+ #invokeHandler(handler, record) {
500
594
  try {
501
- const result = handler(data);
595
+ const result = handler.kind === "record" ? handler.fn(record) : handler.fn(record.data);
502
596
  if (result === true)
503
597
  return true;
504
598
  if (result && typeof result === "object" && "catch" in result) {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/sessionStreams/manager.ts"],"names":[],"mappings":"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"}