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

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.
@@ -1,4 +1,4 @@
1
- import { AnyTask, Task, type inferSchemaIn, type TaskIdentifier, type TaskOptions, type TaskSchema, type TaskWithSchema } from "@trigger.dev/core/v3";
1
+ import { AnyTask, Task, type inferSchemaIn, type inferSchemaOut, type TaskIdentifier, type TaskOptions, type TaskSchema, type TaskWithSchema } from "@trigger.dev/core/v3";
2
2
  import type { ModelMessage, UIMessage } from "ai";
3
3
  import { Tool, ToolCallOptions } from "ai";
4
4
  import { CHAT_MESSAGES_STREAM_ID, CHAT_STOP_STREAM_ID } from "./chat-constants.js";
@@ -56,7 +56,7 @@ export { CHAT_MESSAGES_STREAM_ID, CHAT_STOP_STREAM_ID };
56
56
  * The backend accumulates the full conversation history across turns, so the frontend
57
57
  * only needs to send new messages after the first turn.
58
58
  */
59
- export type ChatTaskPayload = {
59
+ export type ChatTaskPayload<TClientData = unknown> = {
60
60
  /** Model-ready messages — pass directly to `streamText({ messages })`. */
61
61
  messages: ModelMessage[];
62
62
  /** The unique identifier for the chat session */
@@ -70,7 +70,7 @@ export type ChatTaskPayload = {
70
70
  /** The ID of the message to regenerate (only for `"regenerate-message"`) */
71
71
  messageId?: string;
72
72
  /** Custom data from the frontend (passed via `metadata` on `sendMessage()` or the transport). */
73
- clientData?: unknown;
73
+ clientData?: TClientData;
74
74
  };
75
75
  /**
76
76
  * Abort signals provided to the `chatTask` run function.
@@ -87,7 +87,7 @@ export type ChatTaskSignals = {
87
87
  * The full payload passed to a `chatTask` run function.
88
88
  * Extends `ChatTaskPayload` (the wire payload) with abort signals.
89
89
  */
90
- export type ChatTaskRunPayload = ChatTaskPayload & ChatTaskSignals;
90
+ export type ChatTaskRunPayload<TClientData = unknown> = ChatTaskPayload<TClientData> & ChatTaskSignals;
91
91
  /**
92
92
  * Options for `pipeChat`.
93
93
  */
@@ -170,18 +170,41 @@ declare function pipeChat(source: UIMessageStreamable | AsyncIterable<unknown> |
170
170
  /**
171
171
  * Event passed to the `onChatStart` callback.
172
172
  */
173
- export type ChatStartEvent = {
173
+ export type ChatStartEvent<TClientData = unknown> = {
174
174
  /** The unique identifier for the chat session. */
175
175
  chatId: string;
176
176
  /** The initial model-ready messages for this conversation. */
177
177
  messages: ModelMessage[];
178
178
  /** Custom data from the frontend (passed via `metadata` on `sendMessage()` or the transport). */
179
- clientData: unknown;
179
+ clientData: TClientData;
180
+ /** The Trigger.dev run ID for this conversation. */
181
+ runId: string;
182
+ /** A scoped access token for this chat run. Persist this for frontend reconnection. */
183
+ chatAccessToken: string;
184
+ };
185
+ /**
186
+ * Event passed to the `onTurnStart` callback.
187
+ */
188
+ export type TurnStartEvent<TClientData = unknown> = {
189
+ /** The unique identifier for the chat session. */
190
+ chatId: string;
191
+ /** The accumulated model-ready messages (all turns so far, including new user message). */
192
+ messages: ModelMessage[];
193
+ /** The accumulated UI messages (all turns so far, including new user message). */
194
+ uiMessages: UIMessage[];
195
+ /** The turn number (0-indexed). */
196
+ turn: number;
197
+ /** The Trigger.dev run ID for this conversation. */
198
+ runId: string;
199
+ /** A scoped access token for this chat run. */
200
+ chatAccessToken: string;
201
+ /** Custom data from the frontend. */
202
+ clientData?: TClientData;
180
203
  };
181
204
  /**
182
205
  * Event passed to the `onTurnComplete` callback.
183
206
  */
184
- export type TurnCompleteEvent = {
207
+ export type TurnCompleteEvent<TClientData = unknown> = {
185
208
  /** The unique identifier for the chat session. */
186
209
  chatId: string;
187
210
  /** The full accumulated conversation in model format (all turns so far). */
@@ -205,8 +228,35 @@ export type TurnCompleteEvent = {
205
228
  responseMessage: UIMessage | undefined;
206
229
  /** The turn number (0-indexed). */
207
230
  turn: number;
231
+ /** The Trigger.dev run ID for this conversation. */
232
+ runId: string;
233
+ /** A fresh scoped access token for this chat run (renewed each turn). Persist this for frontend reconnection. */
234
+ chatAccessToken: string;
235
+ /** The last event ID from the stream writer. Use this with `resume: true` to avoid replaying events after refresh. */
236
+ lastEventId?: string;
237
+ /** Custom data from the frontend. */
238
+ clientData?: TClientData;
208
239
  };
209
- export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIdentifier, ChatTaskWirePayload, unknown>, "run"> & {
240
+ export type ChatTaskOptions<TIdentifier extends string, TClientDataSchema extends TaskSchema | undefined = undefined> = Omit<TaskOptions<TIdentifier, ChatTaskWirePayload, unknown>, "run"> & {
241
+ /**
242
+ * Schema for validating `clientData` from the frontend.
243
+ * Accepts Zod, ArkType, Valibot, or any supported schema library.
244
+ * When provided, `clientData` is parsed and typed in all hooks and `run`.
245
+ *
246
+ * @example
247
+ * ```ts
248
+ * import { z } from "zod";
249
+ *
250
+ * chat.task({
251
+ * id: "my-chat",
252
+ * clientDataSchema: z.object({ model: z.string().optional(), userId: z.string() }),
253
+ * run: async ({ messages, clientData, signal }) => {
254
+ * // clientData is typed as { model?: string; userId: string }
255
+ * },
256
+ * });
257
+ * ```
258
+ */
259
+ clientDataSchema?: TClientDataSchema;
210
260
  /**
211
261
  * The run function for the chat task.
212
262
  *
@@ -216,7 +266,7 @@ export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIden
216
266
  * **Auto-piping:** If this function returns a value with `.toUIMessageStream()`,
217
267
  * the stream is automatically piped to the frontend.
218
268
  */
219
- run: (payload: ChatTaskRunPayload) => Promise<unknown>;
269
+ run: (payload: ChatTaskRunPayload<inferSchemaOut<TClientDataSchema>>) => Promise<unknown>;
220
270
  /**
221
271
  * Called on the first turn (turn 0) of a new run, before the `run` function executes.
222
272
  *
@@ -229,7 +279,22 @@ export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIden
229
279
  * }
230
280
  * ```
231
281
  */
232
- onChatStart?: (event: ChatStartEvent) => Promise<void> | void;
282
+ onChatStart?: (event: ChatStartEvent<inferSchemaOut<TClientDataSchema>>) => Promise<void> | void;
283
+ /**
284
+ * Called at the start of every turn, after message accumulation and `onChatStart` (turn 0),
285
+ * but before the `run` function executes.
286
+ *
287
+ * Use this to persist messages before streaming begins, so a mid-stream page refresh
288
+ * still shows the user's message.
289
+ *
290
+ * @example
291
+ * ```ts
292
+ * onTurnStart: async ({ chatId, uiMessages }) => {
293
+ * await db.chat.update({ where: { id: chatId }, data: { messages: uiMessages } });
294
+ * }
295
+ * ```
296
+ */
297
+ onTurnStart?: (event: TurnStartEvent<inferSchemaOut<TClientDataSchema>>) => Promise<void> | void;
233
298
  /**
234
299
  * Called after each turn completes (after the response is captured, before waiting
235
300
  * for the next message). Also fires on the final turn.
@@ -243,7 +308,7 @@ export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIden
243
308
  * }
244
309
  * ```
245
310
  */
246
- onTurnComplete?: (event: TurnCompleteEvent) => Promise<void> | void;
311
+ onTurnComplete?: (event: TurnCompleteEvent<inferSchemaOut<TClientDataSchema>>) => Promise<void> | void;
247
312
  /**
248
313
  * Maximum number of conversational turns (message round-trips) a single run
249
314
  * will handle before ending. After this many turns the run completes
@@ -270,6 +335,16 @@ export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIden
270
335
  * @default 30
271
336
  */
272
337
  warmTimeoutInSeconds?: number;
338
+ /**
339
+ * How long the `chatAccessToken` (scoped to this run) remains valid.
340
+ * A fresh token is minted after each turn, so this only needs to cover
341
+ * the gap between turns.
342
+ *
343
+ * Accepts a duration string (e.g. `"1h"`, `"30m"`, `"2h"`).
344
+ *
345
+ * @default "1h"
346
+ */
347
+ chatAccessTokenTTL?: string;
273
348
  };
274
349
  /**
275
350
  * Creates a Trigger.dev task pre-configured for AI SDK chat.
@@ -298,7 +373,7 @@ export type ChatTaskOptions<TIdentifier extends string> = Omit<TaskOptions<TIden
298
373
  * });
299
374
  * ```
300
375
  */
301
- declare function chatTask<TIdentifier extends string>(options: ChatTaskOptions<TIdentifier>): Task<TIdentifier, ChatTaskWirePayload, unknown>;
376
+ declare function chatTask<TIdentifier extends string, TClientDataSchema extends TaskSchema | undefined = undefined>(options: ChatTaskOptions<TIdentifier, TClientDataSchema>): Task<TIdentifier, ChatTaskWirePayload<UIMessage, inferSchemaIn<TClientDataSchema>>, unknown>;
302
377
  /**
303
378
  * Override the turn timeout for subsequent turns in the current run.
304
379
  *
@@ -351,6 +426,20 @@ declare function setTurnTimeoutInSeconds(seconds: number): void;
351
426
  * ```
352
427
  */
353
428
  declare function setWarmTimeoutInSeconds(seconds: number): void;
429
+ /**
430
+ * Extracts the client data (metadata) type from a chat task.
431
+ * Use this to type the `metadata` option on the transport.
432
+ *
433
+ * @example
434
+ * ```ts
435
+ * import type { InferChatClientData } from "@trigger.dev/sdk/ai";
436
+ * import type { myChat } from "@/trigger/chat";
437
+ *
438
+ * type MyClientData = InferChatClientData<typeof myChat>;
439
+ * // { model?: string; userId: string }
440
+ * ```
441
+ */
442
+ export type InferChatClientData<TTask extends AnyTask> = TTask extends Task<string, ChatTaskWirePayload<any, infer TMetadata>, any> ? TMetadata : unknown;
354
443
  export declare const chat: {
355
444
  /** Create a chat task. See {@link chatTask}. */
356
445
  task: typeof chatTask;
package/dist/esm/v3/ai.js CHANGED
@@ -1,7 +1,8 @@
1
- import { accessoryAttributes, isSchemaZodEsque, SemanticInternalAttributes, } from "@trigger.dev/core/v3";
2
- import { convertToModelMessages, dynamicTool, jsonSchema, zodSchema } from "ai";
1
+ import { accessoryAttributes, getSchemaParseFn, isSchemaZodEsque, SemanticInternalAttributes, taskContext, } from "@trigger.dev/core/v3";
2
+ import { convertToModelMessages, dynamicTool, generateId as generateMessageId, jsonSchema, zodSchema } from "ai";
3
3
  import { trace } from "@opentelemetry/api";
4
4
  import { auth } from "./auth.js";
5
+ import { locals } from "./locals.js";
5
6
  import { metadata } from "./metadata.js";
6
7
  import { streams } from "./streams.js";
7
8
  import { createTask } from "./shared.js";
@@ -74,7 +75,7 @@ export const ai = {
74
75
  * ```
75
76
  */
76
77
  function createChatAccessToken(taskId) {
77
- return auth.createTriggerPublicToken(taskId, { multipleUse: true });
78
+ return auth.createTriggerPublicToken(taskId, { expirationTime: "24h" });
78
79
  }
79
80
  // ---------------------------------------------------------------------------
80
81
  // Chat transport helpers — backend side
@@ -91,12 +92,11 @@ export { CHAT_MESSAGES_STREAM_ID, CHAT_STOP_STREAM_ID };
91
92
  const messagesInput = streams.input({ id: CHAT_MESSAGES_STREAM_ID });
92
93
  const stopInput = streams.input({ id: CHAT_STOP_STREAM_ID });
93
94
  /**
94
- * Tracks how many times `pipeChat` has been called in the current `chatTask` run.
95
- * Used to prevent double-piping when a user both calls `pipeChat()` manually
96
- * and returns a streamable from their `run` function.
95
+ * Run-scoped pipe counter. Stored in locals so concurrent runs in the
96
+ * same worker don't share state.
97
97
  * @internal
98
98
  */
99
- let _chatPipeCount = 0;
99
+ const chatPipeCountKey = locals.create("chat.pipeCount");
100
100
  function isUIMessageStreamable(value) {
101
101
  return (typeof value === "object" &&
102
102
  value !== null &&
@@ -149,7 +149,7 @@ function isReadableStream(value) {
149
149
  * ```
150
150
  */
151
151
  async function pipeChat(source, options) {
152
- _chatPipeCount++;
152
+ locals.set(chatPipeCountKey, (locals.get(chatPipeCountKey) ?? 0) + 1);
153
153
  const streamKey = options?.streamKey ?? CHAT_STREAM_KEY;
154
154
  let stream;
155
155
  if (isUIMessageStreamable(source)) {
@@ -203,7 +203,10 @@ async function pipeChat(source, options) {
203
203
  * ```
204
204
  */
205
205
  function chatTask(options) {
206
- const { run: userRun, onChatStart, onTurnComplete, maxTurns = 100, turnTimeout = "1h", warmTimeoutInSeconds = 30, ...restOptions } = options;
206
+ const { run: userRun, clientDataSchema, onChatStart, onTurnStart, onTurnComplete, maxTurns = 100, turnTimeout = "1h", warmTimeoutInSeconds = 30, chatAccessTokenTTL = "1h", ...restOptions } = options;
207
+ const parseClientData = clientDataSchema
208
+ ? getSchemaParseFn(clientDataSchema)
209
+ : undefined;
207
210
  return createTask({
208
211
  ...restOptions,
209
212
  run: async (payload, { signal: runSignal }) => {
@@ -231,6 +234,9 @@ function chatTask(options) {
231
234
  for (let turn = 0; turn < maxTurns; turn++) {
232
235
  // Extract turn-level context before entering the span
233
236
  const { metadata: wireMetadata, messages: uiMessages, ...restWire } = currentWirePayload;
237
+ const clientData = (parseClientData
238
+ ? await parseClientData(wireMetadata)
239
+ : wireMetadata);
234
240
  const lastUserMessage = extractLastUserMessageText(uiMessages);
235
241
  const turnAttributes = {
236
242
  "turn.number": turn + 1,
@@ -256,7 +262,7 @@ function chatTask(options) {
256
262
  typeof wireMetadata === "string" ? wireMetadata : JSON.stringify(wireMetadata);
257
263
  }
258
264
  const turnResult = await tracer.startActiveSpan(`chat turn ${turn + 1}`, async () => {
259
- _chatPipeCount = 0;
265
+ locals.set(chatPipeCountKey, 0);
260
266
  // Per-turn stop controller (reset each turn)
261
267
  const stopController = new AbortController();
262
268
  currentStopController = stopController;
@@ -302,13 +308,53 @@ function chatTask(options) {
302
308
  turnNewModelMessages.push(...incomingModelMessages);
303
309
  turnNewUIMessages.push(...uiMessages);
304
310
  }
311
+ // Mint a scoped public access token once per turn, reused for
312
+ // onChatStart, onTurnStart, onTurnComplete, and the turn-complete chunk.
313
+ const currentRunId = taskContext.ctx?.run.id ?? "";
314
+ let turnAccessToken = "";
315
+ if (currentRunId) {
316
+ try {
317
+ turnAccessToken = await auth.createPublicToken({
318
+ scopes: {
319
+ read: { runs: currentRunId },
320
+ write: { inputStreams: currentRunId },
321
+ },
322
+ expirationTime: chatAccessTokenTTL,
323
+ });
324
+ }
325
+ catch {
326
+ // Token creation failed
327
+ }
328
+ }
305
329
  // Fire onChatStart on the first turn
306
330
  if (turn === 0 && onChatStart) {
307
331
  await tracer.startActiveSpan("onChatStart()", async () => {
308
332
  await onChatStart({
309
333
  chatId: currentWirePayload.chatId,
310
334
  messages: accumulatedMessages,
311
- clientData: wireMetadata,
335
+ clientData,
336
+ runId: currentRunId,
337
+ chatAccessToken: turnAccessToken,
338
+ });
339
+ }, {
340
+ attributes: {
341
+ [SemanticInternalAttributes.STYLE_ICON]: "task-hook-onStart",
342
+ [SemanticInternalAttributes.COLLAPSED]: true,
343
+ },
344
+ });
345
+ }
346
+ // Fire onTurnStart before running user code — persist messages
347
+ // so a mid-stream page refresh still shows the user's message.
348
+ if (onTurnStart) {
349
+ await tracer.startActiveSpan("onTurnStart()", async () => {
350
+ await onTurnStart({
351
+ chatId: currentWirePayload.chatId,
352
+ messages: accumulatedMessages,
353
+ uiMessages: accumulatedUIMessages,
354
+ turn,
355
+ runId: currentRunId,
356
+ chatAccessToken: turnAccessToken,
357
+ clientData,
312
358
  });
313
359
  }, {
314
360
  attributes: {
@@ -323,7 +369,7 @@ function chatTask(options) {
323
369
  const result = await userRun({
324
370
  ...restWire,
325
371
  messages: accumulatedMessages,
326
- clientData: wireMetadata,
372
+ clientData,
327
373
  signal: combinedSignal,
328
374
  cancelSignal,
329
375
  stopSignal,
@@ -331,7 +377,7 @@ function chatTask(options) {
331
377
  // Auto-pipe if the run function returned a StreamTextResult or similar,
332
378
  // but only if pipeChat() wasn't already called manually during this turn.
333
379
  // We call toUIMessageStream ourselves to attach onFinish for response capture.
334
- if (_chatPipeCount === 0 && isUIMessageStreamable(result)) {
380
+ if ((locals.get(chatPipeCountKey) ?? 0) === 0 && isUIMessageStreamable(result)) {
335
381
  const uiStream = result.toUIMessageStream({
336
382
  onFinish: ({ responseMessage }) => {
337
383
  capturedResponseMessage = responseMessage;
@@ -359,6 +405,12 @@ function chatTask(options) {
359
405
  // The onFinish callback fires even on abort/stop, so partial responses
360
406
  // from stopped generation are captured correctly.
361
407
  if (capturedResponseMessage) {
408
+ // Ensure the response message has an ID (the stream's onFinish
409
+ // may produce a message with an empty ID since IDs are normally
410
+ // assigned by the frontend's useChat).
411
+ if (!capturedResponseMessage.id) {
412
+ capturedResponseMessage = { ...capturedResponseMessage, id: generateMessageId() };
413
+ }
362
414
  accumulatedUIMessages.push(capturedResponseMessage);
363
415
  turnNewUIMessages.push(capturedResponseMessage);
364
416
  try {
@@ -378,6 +430,9 @@ function chatTask(options) {
378
430
  // accumulation (e.g. via a `chat.addMessages()` helper).
379
431
  if (runSignal.aborted)
380
432
  return "exit";
433
+ // Write turn-complete control chunk so frontend closes its stream.
434
+ // Capture the lastEventId from the stream writer for resume support.
435
+ const turnCompleteResult = await writeTurnCompleteChunk(currentWirePayload.chatId, turnAccessToken);
381
436
  // Fire onTurnComplete after response capture
382
437
  if (onTurnComplete) {
383
438
  await tracer.startActiveSpan("onTurnComplete()", async () => {
@@ -389,6 +444,10 @@ function chatTask(options) {
389
444
  newUIMessages: turnNewUIMessages,
390
445
  responseMessage: capturedResponseMessage,
391
446
  turn,
447
+ runId: currentRunId,
448
+ chatAccessToken: turnAccessToken,
449
+ lastEventId: turnCompleteResult.lastEventId,
450
+ clientData,
392
451
  });
393
452
  }, {
394
453
  attributes: {
@@ -397,8 +456,6 @@ function chatTask(options) {
397
456
  },
398
457
  });
399
458
  }
400
- // Write turn-complete control chunk so frontend closes its stream
401
- await writeTurnCompleteChunk(currentWirePayload.chatId);
402
459
  // If messages arrived during streaming, use the first one immediately
403
460
  if (pendingMessages.length > 0) {
404
461
  currentWirePayload = pendingMessages[0];
@@ -548,15 +605,18 @@ export const chat = {
548
605
  * The frontend transport intercepts this to close the ReadableStream for the current turn.
549
606
  * @internal
550
607
  */
551
- async function writeTurnCompleteChunk(chatId) {
608
+ async function writeTurnCompleteChunk(chatId, publicAccessToken) {
552
609
  const { waitUntilComplete } = streams.writer(CHAT_STREAM_KEY, {
553
610
  spanName: "turn complete",
554
611
  collapsed: true,
555
612
  execute: ({ write }) => {
556
- write({ type: "__trigger_turn_complete" });
613
+ write({
614
+ type: "__trigger_turn_complete",
615
+ ...(publicAccessToken ? { publicAccessToken } : {}),
616
+ });
557
617
  },
558
618
  });
559
- await waitUntilComplete();
619
+ return await waitUntilComplete();
560
620
  }
561
621
  /**
562
622
  * Extracts the text content of the last user message from a UIMessage array.
@@ -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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"}
@@ -1,5 +1,6 @@
1
1
  import { TriggerChatTransport, type TriggerChatTransportOptions } from "./chat.js";
2
2
  import type { AnyTask, TaskIdentifier } from "@trigger.dev/core/v3";
3
+ import type { InferChatClientData } from "./ai.js";
3
4
  /**
4
5
  * Options for `useTriggerChatTransport`, with a type-safe `task` field.
5
6
  *
@@ -8,7 +9,7 @@ import type { AnyTask, TaskIdentifier } from "@trigger.dev/core/v3";
8
9
  * useTriggerChatTransport<typeof myTask>({ task: "my-task", ... })
9
10
  * ```
10
11
  */
11
- export type UseTriggerChatTransportOptions<TTask extends AnyTask = AnyTask> = Omit<TriggerChatTransportOptions, "task"> & {
12
+ export type UseTriggerChatTransportOptions<TTask extends AnyTask = AnyTask> = Omit<TriggerChatTransportOptions<InferChatClientData<TTask>>, "task"> & {
12
13
  /** The task ID. Strongly typed when a task type parameter is provided. */
13
14
  task: TaskIdentifier<TTask>;
14
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"chat-react.js","sourceRoot":"","sources":["../../../src/v3/chat-react.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,oBAAoB,GAErB,MAAM,WAAW,CAAC;AAmBnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAA8C;IAE9C,MAAM,GAAG,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IACtD,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,mEAAmE;IACnE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,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"}
1
+ {"version":3,"file":"chat-react.js","sourceRoot":"","sources":["../../../src/v3/chat-react.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,oBAAoB,GAErB,MAAM,WAAW,CAAC;AAoBnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAA8C;IAE9C,MAAM,GAAG,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IACtD,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,mEAAmE;IACnE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,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"}
@@ -25,7 +25,7 @@ import type { ChatTransport, UIMessage, UIMessageChunk, ChatRequestOptions } fro
25
25
  /**
26
26
  * Options for creating a TriggerChatTransport.
27
27
  */
28
- export type TriggerChatTransportOptions = {
28
+ export type TriggerChatTransportOptions<TClientData = unknown> = {
29
29
  /**
30
30
  * The Trigger.dev task ID to trigger for chat completions.
31
31
  * This task should be defined using `chatTask()` from `@trigger.dev/sdk/ai`,
@@ -68,22 +68,22 @@ export type TriggerChatTransportOptions = {
68
68
  */
69
69
  streamTimeoutSeconds?: number;
70
70
  /**
71
- * Default metadata included in every request payload.
71
+ * Default client data included in every request payload.
72
72
  * Merged with per-call `metadata` from `sendMessage()` — per-call values
73
73
  * take precedence over transport-level defaults.
74
74
  *
75
- * Useful for data that should accompany every message, like a user ID.
75
+ * When the task uses `clientDataSchema`, this is typed to match the schema.
76
76
  *
77
77
  * @example
78
78
  * ```ts
79
79
  * new TriggerChatTransport({
80
80
  * task: "my-chat",
81
81
  * accessToken,
82
- * metadata: { userId: currentUser.id },
82
+ * clientData: { userId: currentUser.id },
83
83
  * });
84
84
  * ```
85
85
  */
86
- metadata?: Record<string, unknown>;
86
+ clientData?: TClientData extends Record<string, unknown> ? TClientData : Record<string, unknown>;
87
87
  /**
88
88
  * Restore active chat sessions from external storage (e.g. localStorage).
89
89
  *
@@ -138,6 +138,36 @@ export type TriggerChatTransportOptions = {
138
138
  publicAccessToken: string;
139
139
  lastEventId?: string;
140
140
  } | null) => void;
141
+ /**
142
+ * Options forwarded to the Trigger.dev API when starting a new run.
143
+ * Only applies to the first message — subsequent messages reuse the same run.
144
+ *
145
+ * A `chat:{chatId}` tag is automatically added to every run.
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * new TriggerChatTransport({
150
+ * task: "my-chat",
151
+ * accessToken,
152
+ * triggerOptions: {
153
+ * tags: ["user:123"],
154
+ * queue: "chat-queue",
155
+ * },
156
+ * });
157
+ * ```
158
+ */
159
+ triggerOptions?: {
160
+ /** Additional tags for the run. A `chat:{chatId}` tag is always added automatically. */
161
+ tags?: string[];
162
+ /** Queue name for the run. */
163
+ queue?: string;
164
+ /** Maximum retry attempts. */
165
+ maxAttempts?: number;
166
+ /** Machine preset for the run. */
167
+ machine?: "micro" | "small-1x" | "small-2x" | "medium-1x" | "medium-2x" | "large-1x" | "large-2x";
168
+ /** Priority (lower = higher priority). */
169
+ priority?: number;
170
+ };
141
171
  };
142
172
  /**
143
173
  * A custom AI SDK `ChatTransport` that runs chat completions as durable Trigger.dev tasks.
@@ -175,8 +205,10 @@ export declare class TriggerChatTransport implements ChatTransport<UIMessage> {
175
205
  private readonly extraHeaders;
176
206
  private readonly streamTimeoutSeconds;
177
207
  private readonly defaultMetadata;
208
+ private readonly triggerOptions;
178
209
  private _onSessionChange;
179
210
  private sessions;
211
+ private activeStreams;
180
212
  constructor(options: TriggerChatTransportOptions);
181
213
  sendMessages: (options: {
182
214
  trigger: "submit-message" | "regenerate-message";