@adonis-agora/agent 0.89.2 → 0.90.0

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 (87) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/providers/agent_provider.d.ts.map +1 -1
  3. package/dist/providers/agent_provider.js +2 -1
  4. package/dist/providers/agent_provider.js.map +1 -1
  5. package/dist/src/a2ui/adapter.d.ts.map +1 -1
  6. package/dist/src/a2ui/adapter.js +2 -1
  7. package/dist/src/a2ui/adapter.js.map +1 -1
  8. package/dist/src/ag-ui/adapter.d.ts.map +1 -1
  9. package/dist/src/ag-ui/adapter.js +5 -1
  10. package/dist/src/ag-ui/adapter.js.map +1 -1
  11. package/dist/src/agent-service.d.ts +2 -0
  12. package/dist/src/agent-service.d.ts.map +1 -1
  13. package/dist/src/agent-service.js +8 -3
  14. package/dist/src/agent-service.js.map +1 -1
  15. package/dist/src/coalesced-writes.d.ts +51 -0
  16. package/dist/src/coalesced-writes.d.ts.map +1 -0
  17. package/dist/src/coalesced-writes.js +182 -0
  18. package/dist/src/coalesced-writes.js.map +1 -0
  19. package/dist/src/guardrails/detectors/custom.d.ts.map +1 -1
  20. package/dist/src/guardrails/detectors/custom.js +20 -3
  21. package/dist/src/guardrails/detectors/custom.js.map +1 -1
  22. package/dist/src/in-process-sink.d.ts +10 -0
  23. package/dist/src/in-process-sink.d.ts.map +1 -1
  24. package/dist/src/in-process-sink.js +66 -7
  25. package/dist/src/in-process-sink.js.map +1 -1
  26. package/dist/src/index.d.ts +2 -2
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/index.js +2 -2
  29. package/dist/src/index.js.map +1 -1
  30. package/dist/src/interruptible.d.ts +22 -0
  31. package/dist/src/interruptible.d.ts.map +1 -0
  32. package/dist/src/interruptible.js +102 -0
  33. package/dist/src/interruptible.js.map +1 -0
  34. package/dist/src/lucid-token-stream-sink.d.ts +12 -15
  35. package/dist/src/lucid-token-stream-sink.d.ts.map +1 -1
  36. package/dist/src/lucid-token-stream-sink.js +63 -121
  37. package/dist/src/lucid-token-stream-sink.js.map +1 -1
  38. package/dist/src/processors.d.ts +3 -1
  39. package/dist/src/processors.d.ts.map +1 -1
  40. package/dist/src/processors.js +10 -2
  41. package/dist/src/processors.js.map +1 -1
  42. package/dist/src/react/core/use-agent-chat.d.ts.map +1 -1
  43. package/dist/src/react/core/use-agent-chat.js +5 -0
  44. package/dist/src/react/core/use-agent-chat.js.map +1 -1
  45. package/dist/src/redis-stream-client.d.ts +7 -0
  46. package/dist/src/redis-stream-client.d.ts.map +1 -1
  47. package/dist/src/redis-token-stream-sink.d.ts +16 -2
  48. package/dist/src/redis-token-stream-sink.d.ts.map +1 -1
  49. package/dist/src/redis-token-stream-sink.js +114 -21
  50. package/dist/src/redis-token-stream-sink.js.map +1 -1
  51. package/dist/src/spi/agent-store.d.ts +6 -0
  52. package/dist/src/spi/agent-store.d.ts.map +1 -1
  53. package/dist/src/spi/agent-store.js.map +1 -1
  54. package/dist/src/spi/governance-queries.d.ts +6 -0
  55. package/dist/src/spi/governance-queries.d.ts.map +1 -1
  56. package/dist/src/spi/token-stream-sink.d.ts +5 -1
  57. package/dist/src/spi/token-stream-sink.d.ts.map +1 -1
  58. package/dist/src/spi/token-stream-sink.js.map +1 -1
  59. package/dist/src/stores/factory.d.ts.map +1 -1
  60. package/dist/src/stores/factory.js +11 -0
  61. package/dist/src/stores/factory.js.map +1 -1
  62. package/dist/src/stores/lucid-governance-queries.d.ts +29 -14
  63. package/dist/src/stores/lucid-governance-queries.d.ts.map +1 -1
  64. package/dist/src/stores/lucid-governance-queries.js +184 -158
  65. package/dist/src/stores/lucid-governance-queries.js.map +1 -1
  66. package/dist/src/stores/lucid-schema.d.ts +8 -1
  67. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  68. package/dist/src/stores/lucid-schema.js +24 -3
  69. package/dist/src/stores/lucid-schema.js.map +1 -1
  70. package/dist/src/stores/lucid.d.ts +1 -0
  71. package/dist/src/stores/lucid.d.ts.map +1 -1
  72. package/dist/src/stores/lucid.js +21 -24
  73. package/dist/src/stores/lucid.js.map +1 -1
  74. package/dist/src/telescope/agent-governance-providers.d.ts +4 -6
  75. package/dist/src/telescope/agent-governance-providers.d.ts.map +1 -1
  76. package/dist/src/telescope/agent-governance-providers.js +10 -10
  77. package/dist/src/telescope/agent-governance-providers.js.map +1 -1
  78. package/dist/src/testing/in-memory-governance-queries.d.ts +3 -0
  79. package/dist/src/testing/in-memory-governance-queries.d.ts.map +1 -1
  80. package/dist/src/testing/in-memory-governance-queries.js +8 -4
  81. package/dist/src/testing/in-memory-governance-queries.js.map +1 -1
  82. package/dist/src/testing/in-memory-store.d.ts +1 -0
  83. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  84. package/dist/src/testing/in-memory-store.js +3 -0
  85. package/dist/src/testing/in-memory-store.js.map +1 -1
  86. package/package.json +11 -11
  87. package/skills/agent-setup/SKILL.md +2 -2
@@ -1,3 +1,5 @@
1
+ import { CoalescedWrites } from './coalesced-writes.js';
2
+ import { interruptible, sleepUnlessAborted } from './interruptible.js';
1
3
  import { AGENT_TABLES, ensureStreamFrameTable, rowsOf } from './stores/lucid-schema.js';
2
4
  import { portableSql } from './stores/sql-dialect.js';
3
5
  /** Default TTL (seconds) for a run's rows: 1h past its last write, the same window the Redis sink keeps. */
@@ -8,7 +10,7 @@ const DEFAULT_POLL_INTERVAL_MS = 250;
8
10
  const DEFAULT_IDLE_POLL_INTERVAL_MS = 1000;
9
11
  /** How long a run has to write nothing before its subscribers slow down to the idle interval. */
10
12
  const IDLE_AFTER_MS = 5000;
11
- /** Default window (ms) consecutive `text` frames are gathered over before they are written as one row. */
13
+ /** Default window (ms) consecutive deltas are gathered over before they are written as one row. */
12
14
  const DEFAULT_FLUSH_MS = 50;
13
15
  /** Rows read per query, so a long run's replay is paged rather than loaded whole. */
14
16
  const READ_PAGE = 500;
@@ -48,7 +50,6 @@ function isUniqueViolation(error) {
48
50
  return true;
49
51
  return e.errno === 1062 || e.number === 2627;
50
52
  }
51
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
52
53
  /**
53
54
  * A multi-replica {@link TokenStreamSink} over the app's SQL database (through `@adonisjs/lucid`) —
54
55
  * for a deployment with several replicas and NO Redis. The replica running the model turn appends
@@ -61,8 +62,9 @@ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
61
62
  *
62
63
  * - **Delivery is polled.** There is no publish to wake a subscriber, so a frame waits up to
63
64
  * `pollIntervalMs` (250 ms) before a browser sees it.
64
- * - **Text is coalesced on the way in.** Consecutive `text` frames written within `flushMs`
65
- * (50 ms) are stored as ONE `text` frame holding their concatenation. The stored rows are the
65
+ * - **Deltas are coalesced on the way in.** Consecutive `text` frames written within `flushMs`
66
+ * (50 ms) are stored as ONE `text` frame holding their concatenation, and so are consecutive
67
+ * reasoning deltas, and consecutive argument deltas of one tool call. The stored rows are the
66
68
  * run's stream: every subscriber, on every replica, reads the same rows in the same order, so
67
69
  * the SSE event ids `AgentSseEncoder` counts from them — and an `after` cursor — stay exact. They
68
70
  * are NOT the ids the in-process sink would have produced for the same run (it numbers every
@@ -74,6 +76,10 @@ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
74
76
  * retry exists for a parent whose delegated children (each forwarding into its stream, possibly
75
77
  * from another replica) write at once. Nothing depends on ordering across runs.
76
78
  *
79
+ * A subscriber notices when the rows it has read are gone: it ends when the run has none left
80
+ * (purged past its TTL, or `close()`d), and starts over from the first row when the run's numbering
81
+ * restarted under it (a run parked past its TTL that then wrote again).
82
+ *
77
83
  * Text a writer is still gathering lives in the process for at most `flushMs`; a process that dies
78
84
  * in that window loses it from the LIVE stream (the persisted message is unaffected).
79
85
  *
@@ -88,7 +94,7 @@ export class LucidTokenStreamSink {
88
94
  ttlSeconds;
89
95
  autoPurge;
90
96
  autoCreateTables;
91
- writes = new Map();
97
+ writes;
92
98
  provisioned;
93
99
  lastAutoPurge = 0;
94
100
  constructor(db, options = {}) {
@@ -105,6 +111,7 @@ export class LucidTokenStreamSink {
105
111
  this.ttlSeconds = options.ttlSeconds ?? DEFAULT_TTL_SECONDS;
106
112
  this.autoPurge = options.autoPurge ?? true;
107
113
  this.autoCreateTables = options.autoCreateTables ?? true;
114
+ this.writes = new CoalescedWrites(this.flushMs, (runId, frame) => this.append(runId, frame === null ? null : JSON.stringify(frame)));
108
115
  }
109
116
  /**
110
117
  * Create the frame table if it is missing. The agent provider calls this once as the app starts;
@@ -121,61 +128,6 @@ export class LucidTokenStreamSink {
121
128
  }
122
129
  return this.provisioned;
123
130
  }
124
- runWrites(runId) {
125
- let state = this.writes.get(runId);
126
- if (state === undefined) {
127
- state = {
128
- text: null,
129
- timer: undefined,
130
- tail: Promise.resolve(),
131
- pending: 0,
132
- failure: undefined,
133
- };
134
- this.writes.set(runId, state);
135
- }
136
- return state;
137
- }
138
- /** Forget a run's write state once nothing is gathered, queued or left to report. */
139
- release(runId, state) {
140
- if (state.pending === 0 &&
141
- state.text === null &&
142
- state.failure === undefined &&
143
- this.writes.get(runId) === state) {
144
- this.writes.delete(runId);
145
- }
146
- }
147
- /** Queue `work` behind every write already queued for the run, so rows land in call order. */
148
- enqueue(runId, state, work) {
149
- state.pending += 1;
150
- const next = state.tail.then(work);
151
- state.tail = next
152
- .then(() => undefined, () => undefined)
153
- .then(() => {
154
- state.pending -= 1;
155
- this.release(runId, state);
156
- });
157
- return next;
158
- }
159
- /** Queue the gathered text (if any) as one `text` row. */
160
- flushText(runId, state) {
161
- if (state.timer !== undefined) {
162
- clearTimeout(state.timer);
163
- state.timer = undefined;
164
- }
165
- if (state.text === null)
166
- return Promise.resolve();
167
- const frame = { t: 'text', v: state.text };
168
- state.text = null;
169
- return this.enqueue(runId, state, () => this.append(runId, JSON.stringify(frame)));
170
- }
171
- /** Raise, once, a gathered write that failed with nobody awaiting it. */
172
- raiseFailure(state) {
173
- const failure = state.failure;
174
- if (failure !== undefined) {
175
- state.failure = undefined;
176
- throw failure.error;
177
- }
178
- }
179
131
  /** Append one row to the run — a frame, or the end marker (`null`). */
180
132
  async append(runId, frame) {
181
133
  await this.ensureSchema();
@@ -200,60 +152,51 @@ export class LucidTokenStreamSink {
200
152
  */
201
153
  open(runId) {
202
154
  return {
203
- write: async (frame) => {
204
- const state = this.runWrites(runId);
205
- this.raiseFailure(state);
206
- if (frame.t === 'text' && this.flushMs > 0) {
207
- state.text = (state.text ?? '') + frame.v;
208
- // Counted from the FIRST gathered token, not the last: a steady stream still reaches the
209
- // table every `flushMs`, instead of being held for as long as the model keeps talking.
210
- if (state.timer === undefined) {
211
- state.timer = setTimeout(() => {
212
- state.timer = undefined;
213
- this.flushText(runId, state).catch((error) => {
214
- state.failure = { error };
215
- });
216
- }, this.flushMs);
217
- }
218
- return;
219
- }
220
- const flushed = this.flushText(runId, state);
221
- const appended = this.enqueue(runId, state, () => this.append(runId, JSON.stringify(frame)));
222
- await Promise.all([flushed, appended]);
223
- },
224
- flush: async () => {
225
- const state = this.runWrites(runId);
226
- const flushed = this.flushText(runId, state);
227
- await Promise.all([flushed, state.tail]);
228
- this.raiseFailure(state);
229
- this.release(runId, state);
230
- },
155
+ write: (frame) => this.writes.write(runId, frame),
156
+ flush: () => this.writes.flush(runId),
231
157
  end: async () => {
232
- const state = this.runWrites(runId);
233
- const flushed = this.flushText(runId, state);
234
- const ended = this.enqueue(runId, state, () => this.append(runId, null));
235
- await Promise.all([flushed, ended]);
236
- this.raiseFailure(state);
237
- this.release(runId, state);
158
+ await this.writes.end(runId);
238
159
  this.purgeInBackground();
239
160
  },
240
161
  };
241
162
  }
242
- async *subscribe(runId) {
163
+ subscribe(runId) {
164
+ return interruptible((signal) => this.follow(runId, signal));
165
+ }
166
+ async *follow(runId, signal) {
243
167
  await this.ensureSchema();
168
+ // The last row read, by number and by write time. It is read again with every page, so its
169
+ // absence is seen: a run whose rows went has nothing left to follow, and a number held by a
170
+ // row written at another time belongs to a run that started numbering over.
244
171
  let cursor = 0;
172
+ let cursorAt = 0;
245
173
  let quietSince = Date.now();
246
- while (true) {
174
+ while (!signal.aborted) {
247
175
  const rows = await this.db
248
176
  .from(this.table)
249
177
  .where('run_id', runId)
250
- .where('seq', '>', cursor)
178
+ .where('seq', '>=', cursor)
251
179
  .orderBy('seq', 'asc')
252
- .limit(READ_PAGE)
253
- .select('seq', 'frame');
180
+ .limit(cursor > 0 ? READ_PAGE + 1 : READ_PAGE)
181
+ .select('seq', 'frame', 'created_at');
182
+ let fresh = rows;
183
+ if (cursor > 0) {
184
+ const head = rows[0];
185
+ if (head === undefined ||
186
+ toInt(head.seq) !== cursor ||
187
+ toInt(head.created_at) !== cursorAt) {
188
+ if (!(await this.has(runId)))
189
+ return;
190
+ cursor = 0;
191
+ cursorAt = 0;
192
+ continue;
193
+ }
194
+ fresh = rows.slice(1);
195
+ }
254
196
  let ended = false;
255
- for (const row of rows) {
197
+ for (const row of fresh) {
256
198
  cursor = toInt(row.seq);
199
+ cursorAt = toInt(row.created_at);
257
200
  if (row.frame === null || row.frame === undefined) {
258
201
  ended = true;
259
202
  continue;
@@ -263,13 +206,13 @@ export class LucidTokenStreamSink {
263
206
  if (ended) {
264
207
  return;
265
208
  }
266
- if (rows.length > 0) {
209
+ if (fresh.length > 0) {
267
210
  quietSince = Date.now();
268
211
  // A full page means there may be more already written: read on without waiting.
269
- if (rows.length >= READ_PAGE)
212
+ if (fresh.length >= READ_PAGE)
270
213
  continue;
271
214
  }
272
- await sleep(Date.now() - quietSince >= IDLE_AFTER_MS ? this.idlePollIntervalMs : this.pollIntervalMs);
215
+ await sleepUnlessAborted(Date.now() - quietSince >= IDLE_AFTER_MS ? this.idlePollIntervalMs : this.pollIntervalMs, signal);
273
216
  }
274
217
  }
275
218
  async has(runId) {
@@ -277,16 +220,7 @@ export class LucidTokenStreamSink {
277
220
  return (await this.db.from(this.table).where('run_id', runId).first()) !== null;
278
221
  }
279
222
  async close(runId) {
280
- const state = this.writes.get(runId);
281
- if (state !== undefined) {
282
- if (state.timer !== undefined)
283
- clearTimeout(state.timer);
284
- state.timer = undefined;
285
- state.text = null;
286
- state.failure = undefined;
287
- await state.tail;
288
- this.writes.delete(runId);
289
- }
223
+ await this.writes.discard(runId);
290
224
  await this.ensureSchema();
291
225
  await this.db.from(this.table).where('run_id', runId).delete();
292
226
  }
@@ -304,14 +238,22 @@ export class LucidTokenStreamSink {
304
238
  return 0;
305
239
  await this.ensureSchema();
306
240
  const cutoff = now - this.ttlSeconds * 1000;
307
- // Two steps rather than one `DELETE … WHERE run_id IN (SELECT … FROM the same table)`, which
308
- // MySQL refuses. A run that writes between the two was idle for the whole TTL a moment ago.
309
- const lapsed = rowsOf(await this.db.rawQuery(portableSql(this.db, `SELECT "run_id" AS run_id FROM "${this.table}" GROUP BY "run_id" HAVING MAX("created_at") < ?`), [cutoff])).map((row) => String(row.run_id));
310
- for (let index = 0; index < lapsed.length; index += PURGE_CHUNK) {
311
- await this.db
312
- .from(this.table)
313
- .whereIn('run_id', lapsed.slice(index, index + PURGE_CHUNK))
314
- .delete();
241
+ // A run has lapsed when it has a row older than the cutoff and none newer. Both halves read an
242
+ // index — `created_at` for the old rows, the primary key for a candidate's newer ones — so a
243
+ // purge costs what has aged out rather than a scan of the table. Separate statements rather
244
+ // than one `DELETE … WHERE run_id IN (SELECT … FROM the same table)`, which MySQL refuses; a
245
+ // run that writes in between was idle for the whole TTL a moment ago.
246
+ const candidates = rowsOf(await this.db.rawQuery(portableSql(this.db, `SELECT DISTINCT "run_id" AS run_id FROM "${this.table}" WHERE "created_at" < ?`), [cutoff])).map((row) => String(row.run_id));
247
+ const lapsed = [];
248
+ for (let index = 0; index < candidates.length; index += PURGE_CHUNK) {
249
+ const chunk = candidates.slice(index, index + PURGE_CHUNK);
250
+ const live = new Set(rowsOf(await this.db.rawQuery(portableSql(this.db, `SELECT DISTINCT "run_id" AS run_id FROM "${this.table}" ` +
251
+ `WHERE "run_id" IN (${chunk.map(() => '?').join(', ')}) AND "created_at" >= ?`), [...chunk, cutoff])).map((row) => String(row.run_id)));
252
+ const gone = chunk.filter((run) => !live.has(run));
253
+ if (gone.length === 0)
254
+ continue;
255
+ await this.db.from(this.table).whereIn('run_id', gone).delete();
256
+ lapsed.push(...gone);
315
257
  }
316
258
  return lapsed.length;
317
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lucid-token-stream-sink.js","sourceRoot":"","sources":["../../src/lucid-token-stream-sink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucid-token-stream-sink.js","sourceRoot":"","sources":["../../src/lucid-token-stream-sink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,4GAA4G;AAC5G,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,6EAA6E;AAC7E,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC,8FAA8F;AAC9F,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C,iGAAiG;AACjG,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,mGAAmG;AACnG,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,qFAAqF;AACrF,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,kFAAkF;AAClF,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,yFAAyF;AACzF,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC,gGAAgG;AAChG,MAAM,eAAe,GAAG,CAAC,CAAC;AA2C1B,SAAS,KAAK,CAAC,KAAc;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,CAAC,GAAG,KAAqE,CAAC;IAChF,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IACjE,+FAA+F;IAC/F,gGAAgG;IAChG,+BAA+B;IAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,oBAAoB;IAaZ,EAAE;IAZJ,KAAK,CAAS;IACd,cAAc,CAAS;IACvB,kBAAkB,CAAS;IAC3B,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,SAAS,CAAU;IACnB,gBAAgB,CAAU;IAC1B,MAAM,CAAkB;IACjC,WAAW,CAA4B;IACvC,aAAa,GAAG,CAAC,CAAC;IAE1B,YACmB,EAAqB,EACtC,OAAO,GAAgC,EAAE;kBADxB,EAAE;QAGnB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,YAAY,CAAC;QAC7D,4FAA4F;QAC5F,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,6BAA6B,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC,CAAC;QACtF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAChC,IAAI,CAAC,cAAc,EACnB,OAAO,CAAC,kBAAkB,IAAI,6BAA6B,CAC5D,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAClE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7E,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,uEAAuE;IAC/D,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,KAAoB;QACtD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,sFAAsF;gBACtF,uEAAuE;gBACvE,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACpB,WAAW,CACT,IAAI,CAAC,EAAE,EACP,gBAAgB,IAAI,CAAC,KAAK,6CAA6C;oBACrE,qDAAqD,IAAI,CAAC,KAAK,sBAAsB,CACxF,EACD,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAClC,CAAC;gBACF,OAAO;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,eAAe,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAa;QAChB,OAAO;YACL,KAAK,EAAE,CAAC,KAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;YAC9D,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACrC,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,KAAK,CAAC,CAAC,MAAM,CAAC,KAAa,EAAE,MAAmB;QACtD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,2FAA2F;QAC3F,4FAA4F;QAC5F,4EAA4E;QAC5E,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE;iBACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;iBAChB,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;iBACtB,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;iBAC1B,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;iBACrB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;iBAC7C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,IACE,IAAI,KAAK,SAAS;oBAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM;oBAC1B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,EACnC,CAAC;oBACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAAE,OAAO;oBACrC,MAAM,GAAG,CAAC,CAAC;oBACX,QAAQ,GAAG,CAAC,CAAC;oBACb,SAAS;gBACX,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjC,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAClD,KAAK,GAAG,IAAI,CAAC;oBACb,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAgB,CAAC;YACrD,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxB,gFAAgF;gBAChF,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS;oBAAE,SAAS;YAC1C,CAAC;YACD,MAAM,kBAAkB,CACtB,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EACxF,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa;QACvB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAAC,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE;QACzC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5C,+FAA+F;QAC/F,6FAA6F;QAC7F,4FAA4F;QAC5F,6FAA6F;QAC7F,sEAAsE;QACtE,MAAM,UAAU,GAAG,MAAM,CACvB,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACpB,WAAW,CACT,IAAI,CAAC,EAAE,EACP,4CAA4C,IAAI,CAAC,KAAK,0BAA0B,CACjF,EACD,CAAC,MAAM,CAAC,CACT,CACF,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,WAAW,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,MAAM,CACJ,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACpB,WAAW,CACT,IAAI,CAAC,EAAE,EACP,4CAA4C,IAAI,CAAC,KAAK,IAAI;gBACxD,sBAAsB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CACjF,EACD,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,CACnB,CACF,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACnC,CAAC;YACF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,+FAA+F;IACvF,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC;YAAE,OAAO;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,mBAAmB;YAAE,OAAO;QAC3D,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAChC,4FAA4F;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -102,7 +102,9 @@ export interface IncrementalGate {
102
102
  * The chain runs over the whole PREFIX accumulated so far rather than over each new frame, so a
103
103
  * processor always sees well-formed text and never has to reassemble a pattern split across frames —
104
104
  * which is what makes {@link import('./spi/processors.js').IncrementalGating}'s promise a claim
105
- * about prefixes. It runs once per streamed text frame.
105
+ * about prefixes. It runs once at least half of `lookbackChars` new characters have arrived since its
106
+ * last run, so a long answer costs a bounded number of passes per window rather than one per token;
107
+ * the whole-answer pass releases whatever text is still held when the model call ends.
106
108
  *
107
109
  * Only an EXTENSION of what the reader already has is ever written: a chain whose output stops
108
110
  * agreeing with its earlier output has broken its promise, and the loop's whole-answer pass reports
@@ -1 +1 @@
1
- {"version":3,"file":"processors.d.ts","sourceRoot":"","sources":["../../src/processors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,iDAAiD;IACjD,MAAM,IAAI,WAAW,EAAE,CAAC;CACzB;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAW/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,WAAW,EAAE,CAkBhB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,GAAG,EAAE,gBAAgB,CAAC;CACvB,GAAG,OAAO,CAAC,eAAe,CAAC,CAU3B;AAED,qGAAqG;AACrG,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kGAAkG;AAClG,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,gBAAgB,CAAC;CACvB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkB5B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,cAAc,CAO5F;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAWlF;AAED,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,MAAM,EAAE,UAAU,CAAC;IACnB,4FAA4F;IAC5F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,gEAAgE;IAChE,QAAQ,IAAI,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,IAAI,aAAa,GAAG,SAAS,CAAC;CACxC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,GAAG,EAAE,gBAAgB,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;CACpB,GAAG,eAAe,CAsElB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE;IAC7B,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAYT"}
1
+ {"version":3,"file":"processors.d.ts","sourceRoot":"","sources":["../../src/processors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,iDAAiD;IACjD,MAAM,IAAI,WAAW,EAAE,CAAC;CACzB;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAW/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,WAAW,EAAE,CAkBhB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,GAAG,EAAE,gBAAgB,CAAC;CACvB,GAAG,OAAO,CAAC,eAAe,CAAC,CAU3B;AAED,qGAAqG;AACrG,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kGAAkG;AAClG,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,gBAAgB,CAAC;CACvB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkB5B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,cAAc,CAO5F;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAWlF;AAED,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,MAAM,EAAE,UAAU,CAAC;IACnB,4FAA4F;IAC5F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,gEAAgE;IAChE,QAAQ,IAAI,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,IAAI,aAAa,GAAG,SAAS,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,GAAG,EAAE,gBAAgB,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;CACpB,GAAG,eAAe,CA4ElB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE;IAC7B,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAYT"}
@@ -118,7 +118,9 @@ export function resolveGateLookback(processors) {
118
118
  * The chain runs over the whole PREFIX accumulated so far rather than over each new frame, so a
119
119
  * processor always sees well-formed text and never has to reassemble a pattern split across frames —
120
120
  * which is what makes {@link import('./spi/processors.js').IncrementalGating}'s promise a claim
121
- * about prefixes. It runs once per streamed text frame.
121
+ * about prefixes. It runs once at least half of `lookbackChars` new characters have arrived since its
122
+ * last run, so a long answer costs a bounded number of passes per window rather than one per token;
123
+ * the whole-answer pass releases whatever text is still held when the model call ends.
122
124
  *
123
125
  * Only an EXTENSION of what the reader already has is ever written: a chain whose output stops
124
126
  * agreeing with its earlier output has broken its promise, and the loop's whole-answer pass reports
@@ -129,7 +131,12 @@ export function resolveGateLookback(processors) {
129
131
  */
130
132
  export function createIncrementalGate(args) {
131
133
  const { processors, ctx, lookbackChars, writer } = args;
134
+ // How much new text the chain waits for between two runs. Every run re-reads the whole prefix, so
135
+ // running it per frame costs the square of the answer's length; half the window still releases
136
+ // text well before the held-back tail fills, and the whole-answer pass writes whatever is left.
137
+ const advanceEvery = Math.max(1, Math.floor(lookbackChars / 2));
132
138
  let raw = '';
139
+ let ruledOn = 0;
133
140
  let released = '';
134
141
  let rejection;
135
142
  /** A prefix the chain could not rule on. Text stops flowing; the whole-answer pass decides. */
@@ -141,6 +148,7 @@ export function createIncrementalGate(args) {
141
148
  if (raw.length === 0) {
142
149
  return;
143
150
  }
151
+ ruledOn = raw.length;
144
152
  let settled;
145
153
  try {
146
154
  settled = await runOutputProcessors({
@@ -176,7 +184,7 @@ export function createIncrementalGate(args) {
176
184
  }
177
185
  if (frame.t === 'text') {
178
186
  raw += frame.v;
179
- if (!stalled) {
187
+ if (!stalled && raw.length - ruledOn >= advanceEvery) {
180
188
  await advance();
181
189
  }
182
190
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"processors.js","sourceRoot":"","sources":["../../src/processors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,kCAAkC,EAOlC,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAiB7B,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,OAAO;QACL,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;SACd;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM;KACrB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAGlC;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC9B,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtC,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAIxC;IACC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAgBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAIzC;IACC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACvB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,OAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACpF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAaD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAsC;IAC1E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC;QACzE,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAsC;IACxE,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACxC,QAAQ,GAAG,IAAI,CAAC,GAAG,CACjB,QAAQ,EACR,SAAS,CAAC,WAAW,CAAC,aAAa,IAAI,kCAAkC,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAcD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAKrC;IACC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,SAAoC,CAAC;IACzC,+FAA+F;IAC/F,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,iGAAiG;IACjG,6DAA6D;IAC7D,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAE7C,KAAK,UAAU,OAAO;QACpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,OAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,mBAAmB,CAAC;gBAClC,UAAU;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;gBACpC,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,4FAA4F;YAC5F,qFAAqF;YACrF,OAAO,GAAG,IAAI,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,6FAA6F;QAC7F,+FAA+F;QAC/F,sCAAsC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;QAC1F,IAAI,SAAS,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3E,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/C,QAAQ,GAAG,SAAS,CAAC;QACrB,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,KAAkB;QACtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACvB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;SACd;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK;QACpB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ;QACxB,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,IAIxB;IACC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EACzD,IAAI,KAAK,CACP,+CAA+C,QAAQ,CAAC,MAAM,oMAAoM,CACnQ,CACF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"processors.js","sourceRoot":"","sources":["../../src/processors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-agent-chat.d.ts","sourceRoot":"","sources":["../../../../src/react/core/use-agent-chat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE7D,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAGV,UAAU,EAEV,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,aAAa,EAA4B,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAa,MAAM,yBAAyB,CAAC;AAIxF,OAAO,KAAK,EACV,SAAS,EAET,gBAAgB,EAChB,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,UAAU,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAOvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,wBAAwB,EAE9B,MAAM,qCAAqC,CAAC;AAE7C,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IACxE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACrC,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mGAAmG;IACnG,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAClD;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC5E,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtD,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAA;KAAE,KAAK,IAAI,CAAC;IACpF;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACjD,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,4FAA4F;IAC5F,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC7C;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uFAAuF;IACvF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,0GAA0G;IAC1G,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,qFAAqF;IACrF,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;;;;OAIG;IACH,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AA+ED,8CAA8C;AAC9C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,wFAAwF;AACxF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,6EAA6E;IAC7E,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC;;;;;;OAMG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAQD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAChE,OAAO,GAAE,mBAAmB,CAAC,CAAC,CAAM;;;;;;;;;;;IAgpClC,wEAAwE;;4BA/mB5D,UAAU;;;;;;;;;;;;;;;;;;gFAAgB,CAAC,CAAC,CAAC,YAC7B,UAAU;;;;;;;;;;;;;;;;;;gFAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,KACzD,OAAO,CAAC,IAAI,CAAC;IAgnBhB,6EAA6E;2BAhlBpE,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC;kDAyJF,iBAAiB;IA0bhD,iEAAiE;;;IAGjE;;;;OAIG;4BAl3B8B,OAAO,CAAC,IAAI,CAAC;;IAq3B9C,uEAAuE;;IAEvE,0CAA0C;;IAE1C,2CAA2C;;IAE3C;;;;;OAKG;;IAEH;;;OAGG;uBA3mCC,MAAM,GAAG,SAAS;IA6mCtB,8FAA8F;;IAE9F,0EAA0E;;IAE1E,gEAAgE;;IAEhE;;;OAGG;;IAEH,6EAA6E;;IAE7E;;;OAGG;;IAEH,6EAA6E;;IAE7E,2FAA2F;;kBAhaxD,OAAO,CAAC,IAAI,CAAC;qDA+BF,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC;kDA6B9B,WAAW,KAAG,OAAO,CAAC,IAAI,CAAC;2CA6BlC,WAAW,KAAG,OAAO,CAAC,IAAI,CAAC;gCAcpC,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC;0BAY3C,OAAO,CAAC,kBAAkB,CAAC,KAAG,IAAI;qCAuCzC,kBAAkB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,aAAa,CAAC;4CActC,kBAAkB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC;6BAWrE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAQ,OAAO,CAAC,IAAI,CAAC;EAyPlE;AAED,wEAAwE;AACxE,qBAAa,iBAAkB,SAAQ,KAAK;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU;IAAtC,YAAqB,KAAK,EAAE,UAAU,EAGrC;CACF"}
1
+ {"version":3,"file":"use-agent-chat.d.ts","sourceRoot":"","sources":["../../../../src/react/core/use-agent-chat.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ import { storedThreadToUiMessages, } from './stored-thread-to-ui-messages.js';
16
16
  import { notifyThreads } from './threads/threads-events.js';
17
17
  import { useChatTranscript, } from './transcript/use-chat-transcript.js';
18
18
  const EMPTY_QUEUE = { items: [], paused: null };
19
+ /** The most often a streaming answer re-renders the chat (ms): 20 frames a second. */
20
+ const STREAM_RENDER_THROTTLE_MS = 50;
19
21
  let localQueueSequence = 0;
20
22
  /** The user message a queued message becomes once its turn starts. */
21
23
  function queuedUserMessage(turn) {
@@ -255,6 +257,9 @@ export function useAgentChat(options = {}) {
255
257
  const chat = useChat({
256
258
  transport,
257
259
  id: chatId,
260
+ // A model streams a token at a time; publishing each one re-renders the chat and rebuilds its
261
+ // transcript per token. `experimental_throttle` is the spelling every `@ai-sdk/react` 4.x reads.
262
+ experimental_throttle: STREAM_RENDER_THROTTLE_MS,
258
263
  resume: options.resumeRunId !== undefined,
259
264
  ...(options.initialMessages !== undefined ? { messages: options.initialMessages } : {}),
260
265
  onData: (part) => {