@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.
- package/dist/commonjs/v3/ai.d.ts +118 -16
- package/dist/commonjs/v3/ai.js +212 -33
- package/dist/commonjs/v3/ai.js.map +1 -1
- package/dist/commonjs/v3/chat-react.d.ts +3 -0
- package/dist/commonjs/v3/chat-react.js +8 -0
- package/dist/commonjs/v3/chat-react.js.map +1 -1
- package/dist/commonjs/v3/chat.d.ts +85 -0
- package/dist/commonjs/v3/chat.js +76 -3
- package/dist/commonjs/v3/chat.js.map +1 -1
- package/dist/commonjs/v3/chat.test.js +325 -72
- package/dist/commonjs/v3/chat.test.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/v3/ai.d.ts +118 -16
- package/dist/esm/v3/ai.js +212 -33
- package/dist/esm/v3/ai.js.map +1 -1
- package/dist/esm/v3/chat-react.d.ts +3 -0
- package/dist/esm/v3/chat-react.js +9 -1
- package/dist/esm/v3/chat-react.js.map +1 -1
- package/dist/esm/v3/chat.d.ts +85 -0
- package/dist/esm/v3/chat.js +76 -3
- package/dist/esm/v3/chat.js.map +1 -1
- package/dist/esm/v3/chat.test.js +325 -72
- package/dist/esm/v3/chat.test.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +2 -2
package/dist/commonjs/v3/ai.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
252
|
-
*
|
|
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
|
-
*
|
|
255
|
-
*
|
|
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
|
};
|
package/dist/commonjs/v3/ai.js
CHANGED
|
@@ -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
|
|
291
|
-
|
|
292
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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;;;
|
|
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"}
|