@trigger.dev/sdk 0.0.0-prerelease-20260304181730 → 0.0.0-prerelease-20260305142821

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.
@@ -51,14 +51,14 @@ export { CHAT_MESSAGES_STREAM_ID, CHAT_STOP_STREAM_ID };
51
51
  *
52
52
  * - `messages` contains model-ready messages (converted via `convertToModelMessages`) —
53
53
  * pass these directly to `streamText`.
54
- * - `uiMessages` contains the raw `UIMessage[]` from the frontend.
55
54
  * - `clientData` contains custom data from the frontend (the `metadata` field from `sendMessage()`).
55
+ *
56
+ * The backend accumulates the full conversation history across turns, so the frontend
57
+ * only needs to send new messages after the first turn.
56
58
  */
57
59
  export type ChatTaskPayload = {
58
60
  /** Model-ready messages — pass directly to `streamText({ messages })`. */
59
61
  messages: ModelMessage[];
60
- /** Raw UI messages from the frontend. */
61
- uiMessages: UIMessage[];
62
62
  /** The unique identifier for the chat session */
63
63
  chatId: string;
64
64
  /**
@@ -167,6 +167,45 @@ declare function pipeChat(source: UIMessageStreamable | AsyncIterable<unknown> |
167
167
  * emits a control chunk and suspends via `messagesInput.wait()`. The frontend
168
168
  * transport resumes the same run by sending the next message via input streams.
169
169
  */
170
+ /**
171
+ * Event passed to the `onChatStart` callback.
172
+ */
173
+ export type ChatStartEvent = {
174
+ /** The unique identifier for the chat session. */
175
+ chatId: string;
176
+ /** The initial model-ready messages for this conversation. */
177
+ messages: ModelMessage[];
178
+ /** Custom data from the frontend (passed via `metadata` on `sendMessage()` or the transport). */
179
+ clientData: unknown;
180
+ };
181
+ /**
182
+ * Event passed to the `onTurnComplete` callback.
183
+ */
184
+ export type TurnCompleteEvent = {
185
+ /** The unique identifier for the chat session. */
186
+ chatId: string;
187
+ /** The full accumulated conversation in model format (all turns so far). */
188
+ messages: ModelMessage[];
189
+ /**
190
+ * The full accumulated conversation in UI format (all turns so far).
191
+ * This is the format expected by `useChat` — store this for persistence.
192
+ */
193
+ uiMessages: UIMessage[];
194
+ /**
195
+ * Only the new model messages from this turn (user message(s) + assistant response).
196
+ * Useful for appending to an existing conversation record.
197
+ */
198
+ newMessages: ModelMessage[];
199
+ /**
200
+ * Only the new UI messages from this turn (user message(s) + assistant response).
201
+ * Useful for inserting individual message records instead of overwriting the full history.
202
+ */
203
+ newUIMessages: UIMessage[];
204
+ /** The assistant's response for this turn (undefined if `pipeChat` was used manually). */
205
+ responseMessage: UIMessage | undefined;
206
+ /** The turn number (0-indexed). */
207
+ turn: number;
208
+ };
170
209
  export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIdentifier, ChatTaskWirePayload, unknown>, "run"> & {
171
210
  /**
172
211
  * The run function for the chat task.
@@ -178,6 +217,33 @@ export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIden
178
217
  * the stream is automatically piped to the frontend.
179
218
  */
180
219
  run: (payload: ChatTaskRunPayload) => Promise<unknown>;
220
+ /**
221
+ * Called on the first turn (turn 0) of a new run, before the `run` function executes.
222
+ *
223
+ * Use this to create the chat record in your database when a new conversation starts.
224
+ *
225
+ * @example
226
+ * ```ts
227
+ * onChatStart: async ({ chatId, messages, clientData }) => {
228
+ * await db.chat.create({ data: { id: chatId, userId: clientData.userId } });
229
+ * }
230
+ * ```
231
+ */
232
+ onChatStart?: (event: ChatStartEvent) => Promise<void> | void;
233
+ /**
234
+ * Called after each turn completes (after the response is captured, before waiting
235
+ * for the next message). Also fires on the final turn.
236
+ *
237
+ * Use this to persist the conversation to your database after each assistant response.
238
+ *
239
+ * @example
240
+ * ```ts
241
+ * onTurnComplete: async ({ chatId, messages }) => {
242
+ * await db.chat.update({ where: { id: chatId }, data: { messages } });
243
+ * }
244
+ * ```
245
+ */
246
+ onTurnComplete?: (event: TurnCompleteEvent) => Promise<void> | void;
181
247
  /**
182
248
  * Maximum number of conversational turns (message round-trips) a single run
183
249
  * will handle before ending. After this many turns the run completes
@@ -234,27 +300,57 @@ export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIden
234
300
  */
235
301
  declare function chatTask<TIdentifier extends string>(options: ChatTaskOptions<TIdentifier>): Task<TIdentifier, ChatTaskWirePayload, unknown>;
236
302
  /**
237
- * Namespace for AI SDK chat integration.
303
+ * Override the turn timeout for subsequent turns in the current run.
304
+ *
305
+ * The turn timeout controls how long the run stays suspended (freeing compute)
306
+ * waiting for the next user message. When it expires, the run completes
307
+ * gracefully and the next message starts a fresh run.
308
+ *
309
+ * Call from inside a `chatTask` run function to adjust based on context.
310
+ *
311
+ * @param duration - A duration string (e.g. `"5m"`, `"1h"`, `"30s"`)
238
312
  *
239
313
  * @example
240
314
  * ```ts
241
- * import { chat } from "@trigger.dev/sdk/ai";
315
+ * run: async ({ messages, signal }) => {
316
+ * chat.setTurnTimeout("2h");
317
+ * return streamText({ model, messages, abortSignal: signal });
318
+ * }
319
+ * ```
320
+ */
321
+ declare function setTurnTimeout(duration: string): void;
322
+ /**
323
+ * Override the turn timeout in seconds for subsequent turns in the current run.
242
324
  *
243
- * // Define a chat task
244
- * export const myChat = chat.task({
245
- * id: "my-chat",
246
- * run: async ({ messages, signal }) => {
247
- * return streamText({ model, messages, abortSignal: signal });
248
- * },
249
- * });
325
+ * @param seconds - Number of seconds to wait for the next message before ending the run
250
326
  *
251
- * // Pipe a stream manually (from inside a task)
252
- * await chat.pipe(streamTextResult);
327
+ * @example
328
+ * ```ts
329
+ * run: async ({ messages, signal }) => {
330
+ * chat.setTurnTimeoutInSeconds(3600); // 1 hour
331
+ * return streamText({ model, messages, abortSignal: signal });
332
+ * }
333
+ * ```
334
+ */
335
+ declare function setTurnTimeoutInSeconds(seconds: number): void;
336
+ /**
337
+ * Override the warm timeout for subsequent turns in the current run.
338
+ *
339
+ * The warm timeout controls how long the run stays active (using compute)
340
+ * after each turn, waiting for the next message. During this window,
341
+ * responses are instant. After it expires, the run suspends.
342
+ *
343
+ * @param seconds - Number of seconds to stay warm (0 to suspend immediately)
253
344
  *
254
- * // Create an access token (from a server action)
255
- * const token = await chat.createAccessToken("my-chat");
345
+ * @example
346
+ * ```ts
347
+ * run: async ({ messages, signal }) => {
348
+ * chat.setWarmTimeoutInSeconds(60);
349
+ * return streamText({ model, messages, abortSignal: signal });
350
+ * }
256
351
  * ```
257
352
  */
353
+ declare function setWarmTimeoutInSeconds(seconds: number): void;
258
354
  export declare const chat: {
259
355
  /** Create a chat task. See {@link chatTask}. */
260
356
  task: typeof chatTask;
@@ -262,4 +358,10 @@ export declare const chat: {
262
358
  pipe: typeof pipeChat;
263
359
  /** Create a public access token for a chat task. See {@link createChatAccessToken}. */
264
360
  createAccessToken: typeof createChatAccessToken;
361
+ /** Override the turn timeout at runtime (duration string). See {@link setTurnTimeout}. */
362
+ setTurnTimeout: typeof setTurnTimeout;
363
+ /** Override the turn timeout at runtime (seconds). See {@link setTurnTimeoutInSeconds}. */
364
+ setTurnTimeoutInSeconds: typeof setTurnTimeoutInSeconds;
365
+ /** Override the warm timeout at runtime. See {@link setWarmTimeoutInSeconds}. */
366
+ setWarmTimeoutInSeconds: typeof setWarmTimeoutInSeconds;
265
367
  };
@@ -93,28 +93,6 @@ exports.CHAT_STREAM_KEY = chat_constants_js_1.CHAT_STREAM_KEY;
93
93
  // Input streams for bidirectional chat communication
94
94
  const messagesInput = streams_js_1.streams.input({ id: chat_constants_js_1.CHAT_MESSAGES_STREAM_ID });
95
95
  const stopInput = streams_js_1.streams.input({ id: chat_constants_js_1.CHAT_STOP_STREAM_ID });
96
- /**
97
- * Strips provider-specific IDs from message parts so that partial/stopped
98
- * assistant responses don't cause 404s when sent back to the provider
99
- * (e.g. OpenAI Responses API message IDs).
100
- * @internal
101
- */
102
- function sanitizeMessages(messages) {
103
- return messages.map((msg) => {
104
- if (msg.role !== "assistant" || !msg.parts)
105
- return msg;
106
- return {
107
- ...msg,
108
- parts: msg.parts.map((part) => {
109
- // Strip provider-specific metadata (e.g. OpenAI Responses API itemId)
110
- // and streaming state from assistant message parts. These cause 404s
111
- // when partial/stopped responses are sent back to the provider.
112
- const { providerMetadata, state, id, ...rest } = part;
113
- return rest;
114
- }),
115
- };
116
- });
117
- }
118
96
  /**
119
97
  * Tracks how many times `pipeChat` has been called in the current `chatTask` run.
120
98
  * Used to prevent double-piping when a user both calls `pipeChat()` manually
@@ -228,7 +206,7 @@ async function pipeChat(source, options) {
228
206
  * ```
229
207
  */
230
208
  function chatTask(options) {
231
- const { run: userRun, maxTurns = 100, turnTimeout = "1h", warmTimeoutInSeconds = 30, ...restOptions } = options;
209
+ const { run: userRun, onChatStart, onTurnComplete, maxTurns = 100, turnTimeout = "1h", warmTimeoutInSeconds = 30, ...restOptions } = options;
232
210
  return (0, shared_js_1.createTask)({
233
211
  ...restOptions,
234
212
  run: async (payload, { signal: runSignal }) => {
@@ -238,6 +216,13 @@ function chatTask(options) {
238
216
  activeSpan.setAttribute("gen_ai.conversation.id", payload.chatId);
239
217
  }
240
218
  let currentWirePayload = payload;
219
+ // Accumulated model messages across turns. Turn 1 initialises from the
220
+ // full history the frontend sends; subsequent turns append only the new
221
+ // user message(s) and the captured assistant response.
222
+ let accumulatedMessages = [];
223
+ // Accumulated UI messages for persistence. Mirrors the model accumulator
224
+ // but in frontend-friendly UIMessage format (with parts, id, etc.).
225
+ let accumulatedUIMessages = [];
241
226
  // Mutable reference to the current turn's stop controller so the
242
227
  // stop input stream listener (registered once) can abort the right turn.
243
228
  let currentStopController;
@@ -287,23 +272,75 @@ function chatTask(options) {
287
272
  const msgSub = messagesInput.on((msg) => {
288
273
  pendingMessages.push(msg);
289
274
  });
290
- // Convert wire payload to user-facing payload
291
- const sanitized = sanitizeMessages(uiMessages);
292
- const modelMessages = await (0, ai_1.convertToModelMessages)(sanitized);
275
+ // Convert the incoming UIMessages to model messages and update the accumulator.
276
+ // Turn 1: full history from the frontend → replaces the accumulator.
277
+ // Turn 2+: only the new message(s) → appended to the accumulator.
278
+ const incomingModelMessages = await (0, ai_1.convertToModelMessages)(uiMessages);
279
+ // Track new messages for this turn (user input + assistant response).
280
+ const turnNewModelMessages = [];
281
+ const turnNewUIMessages = [];
282
+ if (turn === 0) {
283
+ accumulatedMessages = incomingModelMessages;
284
+ accumulatedUIMessages = [...uiMessages];
285
+ // On first turn, the "new" messages are just the last user message
286
+ // (the rest is history). We'll add the response after streaming.
287
+ if (uiMessages.length > 0) {
288
+ turnNewUIMessages.push(uiMessages[uiMessages.length - 1]);
289
+ const lastModel = incomingModelMessages[incomingModelMessages.length - 1];
290
+ if (lastModel)
291
+ turnNewModelMessages.push(lastModel);
292
+ }
293
+ }
294
+ else if (currentWirePayload.trigger === "regenerate-message") {
295
+ // Regenerate: frontend sent full history with last assistant message
296
+ // removed. Reset the accumulator to match.
297
+ accumulatedMessages = incomingModelMessages;
298
+ accumulatedUIMessages = [...uiMessages];
299
+ // No new user messages for regenerate — just the response (added below)
300
+ }
301
+ else {
302
+ // Submit: frontend sent only the new user message(s). Append to accumulator.
303
+ accumulatedMessages.push(...incomingModelMessages);
304
+ accumulatedUIMessages.push(...uiMessages);
305
+ turnNewModelMessages.push(...incomingModelMessages);
306
+ turnNewUIMessages.push(...uiMessages);
307
+ }
308
+ // Fire onChatStart on the first turn
309
+ if (turn === 0 && onChatStart) {
310
+ await tracer_js_1.tracer.startActiveSpan("onChatStart()", async () => {
311
+ await onChatStart({
312
+ chatId: currentWirePayload.chatId,
313
+ messages: accumulatedMessages,
314
+ clientData: wireMetadata,
315
+ });
316
+ }, {
317
+ attributes: {
318
+ [v3_1.SemanticInternalAttributes.STYLE_ICON]: "task-hook-onStart",
319
+ [v3_1.SemanticInternalAttributes.COLLAPSED]: true,
320
+ },
321
+ });
322
+ }
323
+ // Captured by the onFinish callback below — works even on abort/stop.
324
+ let capturedResponseMessage;
293
325
  try {
294
326
  const result = await userRun({
295
327
  ...restWire,
296
- messages: modelMessages,
297
- uiMessages: sanitized,
328
+ messages: accumulatedMessages,
298
329
  clientData: wireMetadata,
299
330
  signal: combinedSignal,
300
331
  cancelSignal,
301
332
  stopSignal,
302
333
  });
303
334
  // Auto-pipe if the run function returned a StreamTextResult or similar,
304
- // but only if pipeChat() wasn't already called manually during this turn
335
+ // but only if pipeChat() wasn't already called manually during this turn.
336
+ // We call toUIMessageStream ourselves to attach onFinish for response capture.
305
337
  if (_chatPipeCount === 0 && isUIMessageStreamable(result)) {
306
- await pipeChat(result, { signal: combinedSignal, spanName: "stream response" });
338
+ const uiStream = result.toUIMessageStream({
339
+ onFinish: ({ responseMessage }) => {
340
+ capturedResponseMessage = responseMessage;
341
+ },
342
+ });
343
+ await pipeChat(uiStream, { signal: combinedSignal, spanName: "stream response" });
307
344
  }
308
345
  }
309
346
  catch (error) {
@@ -321,8 +358,48 @@ function chatTask(options) {
321
358
  finally {
322
359
  msgSub.off();
323
360
  }
361
+ // Append the assistant's response (partial or complete) to the accumulator.
362
+ // The onFinish callback fires even on abort/stop, so partial responses
363
+ // from stopped generation are captured correctly.
364
+ if (capturedResponseMessage) {
365
+ accumulatedUIMessages.push(capturedResponseMessage);
366
+ turnNewUIMessages.push(capturedResponseMessage);
367
+ try {
368
+ const responseModelMessages = await (0, ai_1.convertToModelMessages)([
369
+ stripProviderMetadata(capturedResponseMessage),
370
+ ]);
371
+ accumulatedMessages.push(...responseModelMessages);
372
+ turnNewModelMessages.push(...responseModelMessages);
373
+ }
374
+ catch {
375
+ // Conversion failed — skip accumulation for this turn
376
+ }
377
+ }
378
+ // TODO: When the user calls `pipeChat` manually instead of returning a
379
+ // StreamTextResult, we don't have access to onFinish. A future iteration
380
+ // should let manual-mode users report back response messages for
381
+ // accumulation (e.g. via a `chat.addMessages()` helper).
324
382
  if (runSignal.aborted)
325
383
  return "exit";
384
+ // Fire onTurnComplete after response capture
385
+ if (onTurnComplete) {
386
+ await tracer_js_1.tracer.startActiveSpan("onTurnComplete()", async () => {
387
+ await onTurnComplete({
388
+ chatId: currentWirePayload.chatId,
389
+ messages: accumulatedMessages,
390
+ uiMessages: accumulatedUIMessages,
391
+ newMessages: turnNewModelMessages,
392
+ newUIMessages: turnNewUIMessages,
393
+ responseMessage: capturedResponseMessage,
394
+ turn,
395
+ });
396
+ }, {
397
+ attributes: {
398
+ [v3_1.SemanticInternalAttributes.STYLE_ICON]: "task-hook-onComplete",
399
+ [v3_1.SemanticInternalAttributes.COLLAPSED]: true,
400
+ },
401
+ });
402
+ }
326
403
  // Write turn-complete control chunk so frontend closes its stream
327
404
  await writeTurnCompleteChunk(currentWirePayload.chatId);
328
405
  // If messages arrived during streaming, use the first one immediately
@@ -332,9 +409,10 @@ function chatTask(options) {
332
409
  }
333
410
  // Phase 1: Keep the run warm for quick response to the next message.
334
411
  // The run stays active (using compute) during this window.
335
- if (warmTimeoutInSeconds > 0) {
412
+ const effectiveWarmTimeout = metadata_js_1.metadata.get(WARM_TIMEOUT_METADATA_KEY) ?? warmTimeoutInSeconds;
413
+ if (effectiveWarmTimeout > 0) {
336
414
  const warm = await messagesInput.once({
337
- timeoutMs: warmTimeoutInSeconds * 1000,
415
+ timeoutMs: effectiveWarmTimeout * 1000,
338
416
  spanName: "waiting (warm)",
339
417
  });
340
418
  if (warm.ok) {
@@ -344,8 +422,9 @@ function chatTask(options) {
344
422
  }
345
423
  }
346
424
  // Phase 2: Suspend the task (frees compute) until the next message arrives
425
+ const effectiveTurnTimeout = metadata_js_1.metadata.get(TURN_TIMEOUT_METADATA_KEY) ?? turnTimeout;
347
426
  const next = await messagesInput.wait({
348
- timeout: turnTimeout,
427
+ timeout: effectiveTurnTimeout,
349
428
  spanName: "waiting (suspended)",
350
429
  });
351
430
  if (!next.ok) {
@@ -390,6 +469,69 @@ function chatTask(options) {
390
469
  * const token = await chat.createAccessToken("my-chat");
391
470
  * ```
392
471
  */
472
+ // ---------------------------------------------------------------------------
473
+ // Runtime configuration helpers
474
+ // ---------------------------------------------------------------------------
475
+ const TURN_TIMEOUT_METADATA_KEY = "chat.turnTimeout";
476
+ const WARM_TIMEOUT_METADATA_KEY = "chat.warmTimeout";
477
+ /**
478
+ * Override the turn timeout for subsequent turns in the current run.
479
+ *
480
+ * The turn timeout controls how long the run stays suspended (freeing compute)
481
+ * waiting for the next user message. When it expires, the run completes
482
+ * gracefully and the next message starts a fresh run.
483
+ *
484
+ * Call from inside a `chatTask` run function to adjust based on context.
485
+ *
486
+ * @param duration - A duration string (e.g. `"5m"`, `"1h"`, `"30s"`)
487
+ *
488
+ * @example
489
+ * ```ts
490
+ * run: async ({ messages, signal }) => {
491
+ * chat.setTurnTimeout("2h");
492
+ * return streamText({ model, messages, abortSignal: signal });
493
+ * }
494
+ * ```
495
+ */
496
+ function setTurnTimeout(duration) {
497
+ metadata_js_1.metadata.set(TURN_TIMEOUT_METADATA_KEY, duration);
498
+ }
499
+ /**
500
+ * Override the turn timeout in seconds for subsequent turns in the current run.
501
+ *
502
+ * @param seconds - Number of seconds to wait for the next message before ending the run
503
+ *
504
+ * @example
505
+ * ```ts
506
+ * run: async ({ messages, signal }) => {
507
+ * chat.setTurnTimeoutInSeconds(3600); // 1 hour
508
+ * return streamText({ model, messages, abortSignal: signal });
509
+ * }
510
+ * ```
511
+ */
512
+ function setTurnTimeoutInSeconds(seconds) {
513
+ metadata_js_1.metadata.set(TURN_TIMEOUT_METADATA_KEY, `${seconds}s`);
514
+ }
515
+ /**
516
+ * Override the warm timeout for subsequent turns in the current run.
517
+ *
518
+ * The warm timeout controls how long the run stays active (using compute)
519
+ * after each turn, waiting for the next message. During this window,
520
+ * responses are instant. After it expires, the run suspends.
521
+ *
522
+ * @param seconds - Number of seconds to stay warm (0 to suspend immediately)
523
+ *
524
+ * @example
525
+ * ```ts
526
+ * run: async ({ messages, signal }) => {
527
+ * chat.setWarmTimeoutInSeconds(60);
528
+ * return streamText({ model, messages, abortSignal: signal });
529
+ * }
530
+ * ```
531
+ */
532
+ function setWarmTimeoutInSeconds(seconds) {
533
+ metadata_js_1.metadata.set(WARM_TIMEOUT_METADATA_KEY, seconds);
534
+ }
393
535
  exports.chat = {
394
536
  /** Create a chat task. See {@link chatTask}. */
395
537
  task: chatTask,
@@ -397,6 +539,12 @@ exports.chat = {
397
539
  pipe: pipeChat,
398
540
  /** Create a public access token for a chat task. See {@link createChatAccessToken}. */
399
541
  createAccessToken: createChatAccessToken,
542
+ /** Override the turn timeout at runtime (duration string). See {@link setTurnTimeout}. */
543
+ setTurnTimeout,
544
+ /** Override the turn timeout at runtime (seconds). See {@link setTurnTimeoutInSeconds}. */
545
+ setTurnTimeoutInSeconds,
546
+ /** Override the warm timeout at runtime. See {@link setWarmTimeoutInSeconds}. */
547
+ setWarmTimeoutInSeconds,
400
548
  };
401
549
  /**
402
550
  * Writes a turn-complete control chunk to the chat output stream.
@@ -436,4 +584,35 @@ function extractLastUserMessageText(messages) {
436
584
  }
437
585
  return undefined;
438
586
  }
587
+ /**
588
+ * Strips ephemeral OpenAI Responses API `itemId` from a UIMessage's parts.
589
+ *
590
+ * The OpenAI Responses provider attaches `itemId` to message parts via
591
+ * `providerMetadata.openai.itemId`. These IDs are ephemeral — sending them
592
+ * back in a subsequent `streamText` call causes 404s because the provider
593
+ * can't find the referenced item (especially for stopped/partial responses).
594
+ *
595
+ * @internal
596
+ */
597
+ function stripProviderMetadata(message) {
598
+ if (!message.parts)
599
+ return message;
600
+ return {
601
+ ...message,
602
+ parts: message.parts.map((part) => {
603
+ const openai = part.providerMetadata?.openai;
604
+ if (!openai?.itemId)
605
+ return part;
606
+ const { itemId, ...restOpenai } = openai;
607
+ const { openai: _, ...restProviders } = part.providerMetadata;
608
+ return {
609
+ ...part,
610
+ providerMetadata: {
611
+ ...restProviders,
612
+ ...(Object.keys(restOpenai).length > 0 ? { openai: restOpenai } : {}),
613
+ },
614
+ };
615
+ }),
616
+ };
617
+ }
439
618
  //# sourceMappingURL=ai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../src/v3/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../src/v3/ai.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,9 @@ export type UseTriggerChatTransportOptions<TTask extends AnyTask = AnyTask> = Om
23
23
  * For dynamic access tokens, pass a function — it will be called on each
24
24
  * request without needing to recreate the transport.
25
25
  *
26
+ * The `onSessionChange` callback is kept in a ref so the transport always
27
+ * calls the latest version without needing to be recreated.
28
+ *
26
29
  * @example
27
30
  * ```tsx
28
31
  * import { useChat } from "@ai-sdk/react";
@@ -37,6 +37,9 @@ const chat_js_1 = require("./chat.js");
37
37
  * For dynamic access tokens, pass a function — it will be called on each
38
38
  * request without needing to recreate the transport.
39
39
  *
40
+ * The `onSessionChange` callback is kept in a ref so the transport always
41
+ * calls the latest version without needing to be recreated.
42
+ *
40
43
  * @example
41
44
  * ```tsx
42
45
  * import { useChat } from "@ai-sdk/react";
@@ -58,6 +61,11 @@ function useTriggerChatTransport(options) {
58
61
  if (ref.current === null) {
59
62
  ref.current = new chat_js_1.TriggerChatTransport(options);
60
63
  }
64
+ // Keep onSessionChange up to date without recreating the transport
65
+ const { onSessionChange } = options;
66
+ (0, react_1.useEffect)(() => {
67
+ ref.current?.setOnSessionChange(onSessionChange);
68
+ }, [onSessionChange]);
61
69
  return ref.current;
62
70
  }
63
71
  //# sourceMappingURL=chat-react.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-react.js","sourceRoot":"","sources":["../../../src/v3/chat-react.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AA2Eb,0DAQC;AAjFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,iCAA+B;AAC/B,uCAGmB;AAmBnB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,uBAAuB,CACrC,OAA8C;IAE9C,MAAM,GAAG,GAAG,IAAA,cAAM,EAA8B,IAAI,CAAC,CAAC;IACtD,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,GAAG,IAAI,8BAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"chat-react.js","sourceRoot":"","sources":["../../../src/v3/chat-react.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AA8Eb,0DAeC;AA3FD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,iCAA0C;AAC1C,uCAGmB;AAmBnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,uBAAuB,CACrC,OAA8C;IAE9C,MAAM,GAAG,GAAG,IAAA,cAAM,EAA8B,IAAI,CAAC,CAAC;IACtD,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,GAAG,IAAI,8BAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,mEAAmE;IACnE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IACpC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC"}