@trigger.dev/sdk 4.5.6 → 4.5.7

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 (34) hide show
  1. package/dist/commonjs/v3/agentSkillsRuntime.js +17 -7
  2. package/dist/commonjs/v3/agentSkillsRuntime.js.map +1 -1
  3. package/dist/commonjs/v3/ai.d.ts +49 -8
  4. package/dist/commonjs/v3/ai.js +151 -27
  5. package/dist/commonjs/v3/ai.js.map +1 -1
  6. package/dist/commonjs/v3/aiAutoTelemetry.js +3 -3
  7. package/dist/commonjs/v3/aiAutoTelemetry.js.map +1 -1
  8. package/dist/commonjs/v3/index.js +17 -7
  9. package/dist/commonjs/v3/index.js.map +1 -1
  10. package/dist/commonjs/v3/runs.d.ts +10 -10
  11. package/dist/commonjs/v3/skill.js +17 -7
  12. package/dist/commonjs/v3/skill.js.map +1 -1
  13. package/dist/commonjs/v3/test/test-session-handle.js +20 -8
  14. package/dist/commonjs/v3/test/test-session-handle.js.map +1 -1
  15. package/dist/commonjs/v3/triggerClient.js +17 -7
  16. package/dist/commonjs/v3/triggerClient.js.map +1 -1
  17. package/dist/commonjs/v3/triggerClient.types.test.js +17 -7
  18. package/dist/commonjs/v3/triggerClient.types.test.js.map +1 -1
  19. package/dist/commonjs/version.js +1 -1
  20. package/dist/esm/v3/ai.d.ts +49 -8
  21. package/dist/esm/v3/ai.js +151 -27
  22. package/dist/esm/v3/ai.js.map +1 -1
  23. package/dist/esm/v3/aiAutoTelemetry.js +3 -3
  24. package/dist/esm/v3/aiAutoTelemetry.js.map +1 -1
  25. package/dist/esm/v3/test/test-session-handle.js +20 -8
  26. package/dist/esm/v3/test/test-session-handle.js.map +1 -1
  27. package/dist/esm/version.js +1 -1
  28. package/docs/ai-chat/changelog.mdx +2 -2
  29. package/docs/ai-chat/compaction.mdx +2 -2
  30. package/docs/ai-chat/custom-agents.mdx +15 -20
  31. package/docs/ai-chat/fast-starts.mdx +2 -2
  32. package/docs/ai-chat/pending-messages.mdx +6 -2
  33. package/docs/ai-chat/reference.mdx +2 -2
  34. package/package.json +3 -3
@@ -40,10 +40,10 @@ async function register() {
40
40
  if (typeof aiMod.registerTelemetry !== "function") {
41
41
  return; // v5 / v6 — `ai` core emits spans itself, nothing to wire.
42
42
  }
43
- // Computed specifier keeps the optional peer out of static bundler
44
- // resolution; resolves at runtime only when the customer installed it.
43
+ // Computed specifier + @vite-ignore keep the optional peer out of static
44
+ // bundler resolution; resolves at runtime only when installed.
45
45
  const otelSpecifier = ["@ai-sdk", "otel"].join("/");
46
- const otelMod = await import(otelSpecifier).catch(() => null);
46
+ const otelMod = await import(/* @vite-ignore */ otelSpecifier).catch(() => null);
47
47
  if (typeof otelMod?.OpenTelemetry !== "function") {
48
48
  return; // optional peer not installed
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aiAutoTelemetry.js","sourceRoot":"","sources":["../../../src/v3/aiAutoTelemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,IAAI,YAAY,GAAyB,IAAI,CAAC;AAE9C,yFAAyF;AACzF,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,IAAI,CAAC;QACH,IAAI,sBAAsB,EAAE,EAAE,CAAC;YAC7B,OAAO,CAAC,iDAAiD;QAC3D,CAAC;QACD,MAAM,KAAK,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAClD,OAAO,CAAC,2DAA2D;QACrE,CAAC;QACD,mEAAmE;QACnE,uEAAuE;QACvE,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,OAAO,GAAQ,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,OAAO,OAAO,EAAE,aAAa,KAAK,UAAU,EAAE,CAAC;YACjD,OAAO,CAAC,8BAA8B;QACxC,CAAC;QACD,IAAI,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,8DAA8D;QACxE,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,WAAW,EAAE,CAAC;IAC1E,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,aAAkB;IACjD,MAAM,YAAY,GAAI,UAAkB,CAAC,6BAA6B,CAAC;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,WAAgB,EAAE,EAAE,CACnB,CAAC,OAAO,aAAa,KAAK,UAAU,IAAI,WAAW,YAAY,aAAa,CAAC;QAC7E,WAAW,EAAE,WAAW,EAAE,IAAI,KAAK,eAAe,CACrD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"aiAutoTelemetry.js","sourceRoot":"","sources":["../../../src/v3/aiAutoTelemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,IAAI,YAAY,GAAyB,IAAI,CAAC;AAE9C,yFAAyF;AACzF,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,IAAI,CAAC;QACH,IAAI,sBAAsB,EAAE,EAAE,CAAC;YAC7B,OAAO,CAAC,iDAAiD;QAC3D,CAAC;QACD,MAAM,KAAK,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAClD,OAAO,CAAC,2DAA2D;QACrE,CAAC;QACD,yEAAyE;QACzE,+DAA+D;QAC/D,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,OAAO,GAAQ,MAAM,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtF,IAAI,OAAO,OAAO,EAAE,aAAa,KAAK,UAAU,EAAE,CAAC;YACjD,OAAO,CAAC,8BAA8B;QACxC,CAAC;QACD,IAAI,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,8DAA8D;QACxE,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,WAAW,EAAE,CAAC;IAC1E,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,aAAkB;IACjD,MAAM,YAAY,GAAI,UAAkB,CAAC,6BAA6B,CAAC;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,WAAgB,EAAE,EAAE,CACnB,CAAC,OAAO,aAAa,KAAK,UAAU,IAAI,WAAW,YAAY,aAAa,CAAC;QAC7E,WAAW,EAAE,WAAW,EAAE,IAAI,KAAK,eAAe,CACrD,CAAC;AACJ,CAAC"}
@@ -93,34 +93,40 @@ export class TestSessionOutputChannel extends SessionOutputChannel {
93
93
  pipe(value, _options) {
94
94
  const state = this.state;
95
95
  const readChunks = [];
96
+ let pipeError;
96
97
  let resolveDone;
97
98
  const done = new Promise((resolve) => {
98
99
  resolveDone = resolve;
99
100
  });
100
101
  (async () => {
101
- const readable = ensureReadableStream(value);
102
- const reader = readable.getReader();
102
+ let reader;
103
103
  try {
104
+ const readable = ensureReadableStream(value);
105
+ reader = readable.getReader();
104
106
  while (true) {
105
107
  const { done: d, value: v } = await reader.read();
106
108
  if (d)
107
- return;
109
+ break;
108
110
  readChunks.push(v);
109
111
  notify(state, v);
110
112
  }
111
113
  }
114
+ catch (err) {
115
+ // Mirror production: a source-stream error (or a throw from stream
116
+ // setup) rejects waitUntilComplete instead of being silently
117
+ // swallowed, so callers (e.g. chat.pipeAndCapture) can observe it.
118
+ pipeError = err;
119
+ }
112
120
  finally {
113
121
  try {
114
- reader.releaseLock();
122
+ reader?.releaseLock();
115
123
  }
116
124
  catch {
117
125
  // ignore
118
126
  }
119
127
  resolveDone();
120
128
  }
121
- })().catch(() => {
122
- resolveDone();
123
- });
129
+ })();
124
130
  const replayStream = new ReadableStream({
125
131
  async start(controller) {
126
132
  await done;
@@ -136,6 +142,8 @@ export class TestSessionOutputChannel extends SessionOutputChannel {
136
142
  },
137
143
  waitUntilComplete: async () => {
138
144
  await done;
145
+ if (pipeError)
146
+ throw pipeError;
139
147
  return emptyResult;
140
148
  },
141
149
  };
@@ -219,7 +227,11 @@ export class TestSessionOutputChannel extends SessionOutputChannel {
219
227
  }
220
228
  }
221
229
  notify(this.state, synthetic);
222
- return {};
230
+ // Project a synthetic monotonic seq_num as the ack's `lastEventId`,
231
+ // mirroring what S2 returns in production (there it's the control
232
+ // record's seq_num). Using the running `.out` record count lets
233
+ // `chat.writeTurnComplete()` surface a real resume cursor in tests.
234
+ return { lastEventId: String(this.state.chunks.length) };
223
235
  }
224
236
  /**
225
237
  * No-op in the mock harness. Production trims keep `session.out` bounded;
@@ -1 +1 @@
1
- {"version":3,"file":"test-session-handle.js","sourceRoot":"","sources":["../../../../src/v3/test/test-session-handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-session-handle.js","sourceRoot":"","sources":["../../../../src/v3/test/test-session-handle.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const VERSION = "4.5.6";
1
+ export const VERSION = "4.5.7";
2
2
  //# sourceMappingURL=version.js.map
@@ -55,10 +55,10 @@ if (isFinal) {
55
55
  const result = streamText({ model, messages: conversation.modelMessages, tools });
56
56
  // Pass originalMessages so the handed-over tool round merges into the
57
57
  // step-1 assistant instead of starting a new message.
58
- const response = await chat.pipeAndCapture(result, {
58
+ const { message } = await chat.pipeAndCapture(result, {
59
59
  originalMessages: conversation.uiMessages,
60
60
  });
61
- if (response) await conversation.addResponse(response);
61
+ if (message) await conversation.addResponse(message);
62
62
  }
63
63
  ```
64
64
 
@@ -365,8 +365,8 @@ for (let turn = 0; turn < 100; turn++) {
365
365
  stopWhen: stepCountIs(15),
366
366
  });
367
367
 
368
- const response = await chat.pipeAndCapture(result);
369
- if (response) await conversation.addResponse(response);
368
+ const { message } = await chat.pipeAndCapture(result);
369
+ if (message) await conversation.addResponse(message);
370
370
 
371
371
  // Outer-loop compaction
372
372
  const usage = await result.totalUsage;
@@ -160,11 +160,11 @@ for await (const turn of session) {
160
160
  });
161
161
 
162
162
  // Manual: pipe and capture separately
163
- const response = await chat.pipeAndCapture(result, { signal: turn.signal });
163
+ const { message } = await chat.pipeAndCapture(result, { signal: turn.signal });
164
164
 
165
- if (response) {
165
+ if (message) {
166
166
  // Custom processing before accumulating
167
- await turn.addResponse(response);
167
+ await turn.addResponse(message);
168
168
  }
169
169
 
170
170
  // Custom persistence, analytics, etc.
@@ -215,8 +215,8 @@ For full control, skip `createSession` and compose the primitives directly:
215
215
  | ------------------------------- | -------------------------------------------------------------------------------------------- |
216
216
  | `chat.messages` | Input stream for incoming messages — use `.waitWithIdleTimeout()` to wait for the next turn |
217
217
  | `chat.createStopSignal()` | Create a managed stop signal wired to the stop input stream |
218
- | `chat.pipeAndCapture(result)` | Pipe a `StreamTextResult` to the chat stream and capture the response |
219
- | `chat.writeTurnComplete()` | Signal the frontend that the current turn is complete |
218
+ | `chat.pipeAndCapture(result)` | Pipe a stream and capture the response; returns `{ message, status, error }` |
219
+ | `chat.writeTurnComplete()` | Signal turn complete; returns `{ lastEventId, sessionInEventId }` resume cursors |
220
220
  | `chat.MessageAccumulator` | Accumulates conversation messages across turns |
221
221
  | `chat.pipe(stream)` | Pipe a stream to the frontend (no response capture) |
222
222
  | `chat.cleanupAbortedParts(msg)` | Clean up incomplete parts from a stopped response |
@@ -285,21 +285,16 @@ export const myChat = chat.customAgent({
285
285
  stopWhen: stepCountIs(15),
286
286
  });
287
287
 
288
- let response;
289
- try {
290
- response = await chat.pipeAndCapture(result, { signal: combinedSignal });
291
- } catch (error) {
292
- if (error instanceof Error && error.name === "AbortError") {
293
- if (runSignal.aborted) break;
294
- // Stop — fall through to accumulate partial
295
- } else {
296
- throw error;
297
- }
298
- }
288
+ const { message, status, error } = await chat.pipeAndCapture(result, {
289
+ signal: combinedSignal,
290
+ });
291
+ // pipeAndCapture never throws: a user stop returns status "aborted" with
292
+ // the partial message, and a failure returns status "error" with `error`.
293
+ if (status === "error") throw error;
299
294
 
300
- if (response) {
295
+ if (message) {
301
296
  const cleaned =
302
- stop.signal.aborted && !runSignal.aborted ? chat.cleanupAbortedParts(response) : response;
297
+ stop.signal.aborted && !runSignal.aborted ? chat.cleanupAbortedParts(message) : message;
303
298
  await conversation.addResponse(cleaned);
304
299
  }
305
300
 
@@ -346,8 +341,8 @@ const messages = await conversation.addIncoming(
346
341
  );
347
342
 
348
343
  // After piping, add the response
349
- const response = await chat.pipeAndCapture(result);
350
- if (response) await conversation.addResponse(response);
344
+ const { message } = await chat.pipeAndCapture(result);
345
+ if (message) await conversation.addResponse(message);
351
346
 
352
347
  // Access accumulated messages for persistence
353
348
  conversation.uiMessages; // UIMessage[]
@@ -589,10 +589,10 @@ if (turn === 0 && payload.trigger === "handover-prepare") {
589
589
  messages: conversation.modelMessages,
590
590
  stopWhen: stepCountIs(10),
591
591
  });
592
- const response = await chat.pipeAndCapture(result, {
592
+ const { message } = await chat.pipeAndCapture(result, {
593
593
  originalMessages: conversation.uiMessages,
594
594
  });
595
- if (response) await conversation.addResponse(response);
595
+ if (message) await conversation.addResponse(message);
596
596
  }
597
597
  await chat.writeTurnComplete(); // on isFinal the warm partial is already the response
598
598
  return;
@@ -179,10 +179,14 @@ for (let turn = 0; turn < 100; turn++) {
179
179
  stopWhen: stepCountIs(15),
180
180
  });
181
181
 
182
- const response = await chat.pipeAndCapture(result);
182
+ const { message, status, error } = await chat.pipeAndCapture(result);
183
183
  sub.off();
184
184
 
185
- if (response) await conversation.addResponse(response);
185
+ // Keep any partial output, then branch on the outcome: pipeAndCapture no
186
+ // longer throws, so rethrow a real failure and don't complete a failed turn.
187
+ if (message) await conversation.addResponse(message);
188
+ if (status === "error") throw error;
189
+
186
190
  await chat.writeTurnComplete();
187
191
  }
188
192
  ```
@@ -503,8 +503,8 @@ All methods available on the `chat` object from `@trigger.dev/sdk/ai`.
503
503
  | `chat.agent(options)` | Create a chat agent |
504
504
  | `chat.createSession(payload, options)` | Create an async iterator for chat turns |
505
505
  | `chat.pipe(source, options?)` | Pipe a stream to the frontend (from anywhere inside a task) |
506
- | `chat.pipeAndCapture(source, options?)` | Pipe and capture the response `UIMessage` |
507
- | `chat.writeTurnComplete(options?)` | Signal the frontend that the current turn is complete |
506
+ | `chat.pipeAndCapture(source, options?)` | Pipe and capture the response; returns `{ message, status, error }` |
507
+ | `chat.writeTurnComplete(options?)` | Signal turn complete; returns `{ lastEventId, sessionInEventId }` resume cursors |
508
508
  | `chat.createStopSignal()` | Create a managed stop signal wired to the stop input stream |
509
509
  | `chat.messages` | Input stream for incoming messages — use `.waitWithIdleTimeout()` |
510
510
  | `chat.local<T>({ id })` | Create a per-run typed local (see [`chat.local`](/ai-chat/chat-local)) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trigger.dev/sdk",
3
- "version": "4.5.6",
3
+ "version": "4.5.7",
4
4
  "description": "trigger.dev Node.JS SDK",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -66,7 +66,7 @@
66
66
  "dependencies": {
67
67
  "@opentelemetry/api": "1.9.1",
68
68
  "@opentelemetry/semantic-conventions": "1.41.1",
69
- "@trigger.dev/core": "4.5.6",
69
+ "@trigger.dev/core": "4.5.7",
70
70
  "chalk": "^5.2.0",
71
71
  "cronstrue": "^2.21.0",
72
72
  "debug": "^4.3.4",
@@ -78,7 +78,7 @@
78
78
  },
79
79
  "devDependencies": {
80
80
  "@ai-sdk/provider": "3.0.8",
81
- "@arethetypeswrong/cli": "^0.15.4",
81
+ "@arethetypeswrong/cli": "^0.18.5",
82
82
  "@types/debug": "^4.1.7",
83
83
  "@types/react": "^19.2.14",
84
84
  "@types/slug": "^5.0.3",