@trigger.dev/sdk 4.5.6 → 4.5.8

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 (50) 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 +258 -42
  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/auth.d.ts +7 -3
  9. package/dist/commonjs/v3/auth.js +68 -13
  10. package/dist/commonjs/v3/auth.js.map +1 -1
  11. package/dist/commonjs/v3/auth.test.d.ts +1 -0
  12. package/dist/commonjs/v3/auth.test.js +149 -0
  13. package/dist/commonjs/v3/auth.test.js.map +1 -0
  14. package/dist/commonjs/v3/createStartSessionAction.test.js +33 -0
  15. package/dist/commonjs/v3/createStartSessionAction.test.js.map +1 -1
  16. package/dist/commonjs/v3/index.js +17 -7
  17. package/dist/commonjs/v3/index.js.map +1 -1
  18. package/dist/commonjs/v3/runs.d.ts +15 -15
  19. package/dist/commonjs/v3/skill.js +17 -7
  20. package/dist/commonjs/v3/skill.js.map +1 -1
  21. package/dist/commonjs/v3/test/test-session-handle.js +20 -8
  22. package/dist/commonjs/v3/test/test-session-handle.js.map +1 -1
  23. package/dist/commonjs/v3/triggerClient.js +17 -7
  24. package/dist/commonjs/v3/triggerClient.js.map +1 -1
  25. package/dist/commonjs/v3/triggerClient.types.test.js +17 -7
  26. package/dist/commonjs/v3/triggerClient.types.test.js.map +1 -1
  27. package/dist/commonjs/version.js +1 -1
  28. package/dist/esm/v3/ai.d.ts +49 -8
  29. package/dist/esm/v3/ai.js +259 -43
  30. package/dist/esm/v3/ai.js.map +1 -1
  31. package/dist/esm/v3/aiAutoTelemetry.js +3 -3
  32. package/dist/esm/v3/aiAutoTelemetry.js.map +1 -1
  33. package/dist/esm/v3/auth.d.ts +7 -3
  34. package/dist/esm/v3/auth.js +69 -14
  35. package/dist/esm/v3/auth.js.map +1 -1
  36. package/dist/esm/v3/auth.test.d.ts +1 -0
  37. package/dist/esm/v3/auth.test.js +147 -0
  38. package/dist/esm/v3/auth.test.js.map +1 -0
  39. package/dist/esm/v3/createStartSessionAction.test.js +33 -0
  40. package/dist/esm/v3/createStartSessionAction.test.js.map +1 -1
  41. package/dist/esm/v3/test/test-session-handle.js +20 -8
  42. package/dist/esm/v3/test/test-session-handle.js.map +1 -1
  43. package/dist/esm/version.js +1 -1
  44. package/docs/ai-chat/changelog.mdx +2 -2
  45. package/docs/ai-chat/compaction.mdx +2 -2
  46. package/docs/ai-chat/custom-agents.mdx +15 -20
  47. package/docs/ai-chat/fast-starts.mdx +2 -2
  48. package/docs/ai-chat/pending-messages.mdx +6 -2
  49. package/docs/ai-chat/reference.mdx +2 -2
  50. 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"}
@@ -81,7 +81,9 @@ export type PublicTokenPermissions = {
81
81
  };
82
82
  export type CreatePublicTokenOptions = {
83
83
  /**
84
- * A collection of permission scopes to be granted to the token.
84
+ * A collection of permission scopes to be granted to the token. This remains
85
+ * optional for root API key compatibility; additional API keys require at
86
+ * least one scope.
85
87
  *
86
88
  * @example
87
89
  *
@@ -95,7 +97,8 @@ export type CreatePublicTokenOptions = {
95
97
  */
96
98
  scopes?: PublicTokenPermissions;
97
99
  /**
98
- * The expiration time for the token. This can be a number representing the time in milliseconds, a `Date` object, or a string.
100
+ * The expiration time for the token: a duration string, a `Date`, or a Unix
101
+ * timestamp in **seconds**.
99
102
  *
100
103
  * @example
101
104
  *
@@ -155,7 +158,8 @@ declare function createPublicToken(options?: CreatePublicTokenOptions): Promise<
155
158
  declare function withPublicToken(options: CreatePublicTokenOptions, fn: () => Promise<void>): Promise<void>;
156
159
  export type CreateTriggerTokenOptions = {
157
160
  /**
158
- * The expiration time for the token. This can be a number representing the time in milliseconds, a `Date` object, or a string.
161
+ * The expiration time for the token: a duration string, a `Date`, or a Unix
162
+ * timestamp in **seconds**.
159
163
  *
160
164
  * @example
161
165
  *
@@ -1,4 +1,4 @@
1
- import { apiClientManager, generateJWT as internal_generateJWT, } from "@trigger.dev/core/v3";
1
+ import { apiClientManager, generateJWT as internal_generateJWT, isAdditionalApiKey, } from "@trigger.dev/core/v3";
2
2
  import "@trigger.dev/core/v3/sdk-scope-storage";
3
3
  /**
4
4
  * Register the global API client configuration. Alternatively, you can set the `TRIGGER_SECRET_KEY` and `TRIGGER_API_URL` environment variables.
@@ -30,6 +30,26 @@ export const auth = {
30
30
  withTriggerPublicToken,
31
31
  withBatchTriggerPublicToken,
32
32
  };
33
+ // A `Date` becomes Unix seconds; duration strings and numbers pass through. A
34
+ // bare number is already Unix seconds, matching how the local signing path
35
+ // reads it, so both key types treat the option the same.
36
+ function serverExpirationTime(expirationTime) {
37
+ return expirationTime instanceof Date
38
+ ? Math.floor(expirationTime.getTime() / 1000)
39
+ : expirationTime;
40
+ }
41
+ async function createServerPublicToken(apiClient, body) {
42
+ try {
43
+ const result = await apiClient.createPublicToken(body);
44
+ return result.token;
45
+ }
46
+ catch (error) {
47
+ if (error !== null && typeof error === "object" && "status" in error && error.status === 404) {
48
+ throw new Error("This additional API key cannot self-sign public tokens, and the server does not support public-token minting. Upgrade the server or use the root API key.");
49
+ }
50
+ throw error;
51
+ }
52
+ }
33
53
  /**
34
54
  * Creates a public token using the provided options.
35
55
  *
@@ -54,13 +74,28 @@ export const auth = {
54
74
  * ```
55
75
  */
56
76
  async function createPublicToken(options) {
77
+ const scopes = options?.scopes ? flattenScopes(options.scopes) : [];
57
78
  const apiClient = apiClientManager.clientOrThrow();
79
+ if (isAdditionalApiKey(apiClient.accessToken)) {
80
+ // Additional keys cannot self-sign, and the server rejects empty scope
81
+ // lists because they cannot authorize anything. Keep the legacy root-key
82
+ // behaviour unchanged while failing clearly for this new credential type.
83
+ if (scopes.length === 0) {
84
+ throw new Error("auth.createPublicToken() requires at least one scope when using an additional API key. " +
85
+ 'For example: auth.createPublicToken({ scopes: { read: { runs: ["run_1234"] } } })');
86
+ }
87
+ return createServerPublicToken(apiClient, {
88
+ scopes,
89
+ expirationTime: serverExpirationTime(options?.expirationTime),
90
+ realtime: options?.realtime,
91
+ });
92
+ }
58
93
  const claims = await apiClient.generateJWTClaims();
59
94
  return await internal_generateJWT({
60
95
  secretKey: apiClient.accessToken,
61
96
  payload: {
62
97
  ...claims,
63
- scopes: options?.scopes ? flattenScopes(options.scopes) : undefined,
98
+ scopes: options?.scopes ? scopes : undefined,
64
99
  realtime: options?.realtime,
65
100
  },
66
101
  expirationTime: options?.expirationTime,
@@ -110,18 +145,28 @@ async function withPublicToken(options, fn) {
110
145
  */
111
146
  async function createTriggerPublicToken(task, options) {
112
147
  const apiClient = apiClientManager.clientOrThrow();
148
+ const scopes = flattenScopes({
149
+ trigger: {
150
+ tasks: task,
151
+ },
152
+ });
153
+ const oneTimeUse = typeof options?.multipleUse === "boolean" ? !options.multipleUse : true;
154
+ if (isAdditionalApiKey(apiClient.accessToken)) {
155
+ return createServerPublicToken(apiClient, {
156
+ scopes,
157
+ expirationTime: serverExpirationTime(options?.expirationTime),
158
+ oneTimeUse,
159
+ realtime: options?.realtime,
160
+ });
161
+ }
113
162
  const claims = await apiClient.generateJWTClaims();
114
163
  return await internal_generateJWT({
115
164
  secretKey: apiClient.accessToken,
116
165
  payload: {
117
166
  ...claims,
118
- otu: typeof options?.multipleUse === "boolean" ? !options.multipleUse : true,
167
+ otu: oneTimeUse,
119
168
  realtime: options?.realtime,
120
- scopes: flattenScopes({
121
- trigger: {
122
- tasks: task,
123
- },
124
- }),
169
+ scopes,
125
170
  },
126
171
  expirationTime: options?.expirationTime,
127
172
  });
@@ -170,18 +215,28 @@ async function withTriggerPublicToken(task, options = {}, fn) {
170
215
  */
171
216
  async function createBatchTriggerPublicToken(task, options) {
172
217
  const apiClient = apiClientManager.clientOrThrow();
218
+ const scopes = flattenScopes({
219
+ batchTrigger: {
220
+ tasks: task,
221
+ },
222
+ });
223
+ const oneTimeUse = typeof options?.multipleUse === "boolean" ? !options.multipleUse : true;
224
+ if (isAdditionalApiKey(apiClient.accessToken)) {
225
+ return createServerPublicToken(apiClient, {
226
+ scopes,
227
+ expirationTime: serverExpirationTime(options?.expirationTime),
228
+ oneTimeUse,
229
+ realtime: options?.realtime,
230
+ });
231
+ }
173
232
  const claims = await apiClient.generateJWTClaims();
174
233
  return await internal_generateJWT({
175
234
  secretKey: apiClient.accessToken,
176
235
  payload: {
177
236
  ...claims,
178
- otu: typeof options?.multipleUse === "boolean" ? !options.multipleUse : true,
237
+ otu: oneTimeUse,
179
238
  realtime: options?.realtime,
180
- scopes: flattenScopes({
181
- batchTrigger: {
182
- tasks: task,
183
- },
184
- }),
239
+ scopes,
185
240
  },
186
241
  expirationTime: options?.expirationTime,
187
242
  });
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/v3/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/v3/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,gBAAgB,EAChB,WAAW,IAAI,oBAAoB,EACnC,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,wCAAwC,CAAC;AAEhD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,SAAS,CAAC,OAA+B;IACvD,gBAAgB,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,SAAS;IACT,iBAAiB;IACjB,wBAAwB;IACxB,6BAA6B;IAC7B,QAAQ;IACR,eAAe;IACf,sBAAsB;IACtB,2BAA2B;CAC5B,CAAC;AAiHF,8EAA8E;AAC9E,2EAA2E;AAC3E,yDAAyD;AACzD,SAAS,oBAAoB,CAC3B,cAAkD;IAElD,OAAO,cAAc,YAAY,IAAI;QACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;QAC7C,CAAC,CAAC,cAAc,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,SAAoB,EACpB,IAAkC;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CACb,2JAA2J,CAC5J,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,KAAK,UAAU,iBAAiB,CAAC,OAAkC;IACjE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;IAEnD,IAAI,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,yFAAyF;gBACvF,mFAAmF,CACtF,CAAC;QACJ,CAAC;QAED,OAAO,uBAAuB,CAAC,SAAS,EAAE;YACxC,MAAM;YACN,cAAc,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC;YAC7D,QAAQ,EAAE,OAAO,EAAE,QAAQ;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAEnD,OAAO,MAAM,oBAAoB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC,WAAW;QAChC,OAAO,EAAE;YACP,GAAG,MAAM;YACT,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC5C,QAAQ,EAAE,OAAO,EAAE,QAAQ;SAC5B;QACD,cAAc,EAAE,OAAO,EAAE,cAAc;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,OAAiC,EAAE,EAAuB;IACvF,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,KAAK,UAAU,wBAAwB,CACrC,IAAuB,EACvB,OAAmC;IAEnC,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,OAAO,EAAE;YACP,KAAK,EAAE,IAAI;SACZ;KACF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,OAAO,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3F,IAAI,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,OAAO,uBAAuB,CAAC,SAAS,EAAE;YACxC,MAAM;YACN,cAAc,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC;YAC7D,UAAU;YACV,QAAQ,EAAE,OAAO,EAAE,QAAQ;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAEnD,OAAO,MAAM,oBAAoB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC,WAAW;QAChC,OAAO,EAAE;YACP,GAAG,MAAM;YACT,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,MAAM;SACP;QACD,cAAc,EAAE,OAAO,EAAE,cAAc;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,sBAAsB,CACnC,IAAuB,EACvB,UAAqC,EAAE,EACvC,EAAuB;IAEvB,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE5D,MAAM,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,KAAK,UAAU,6BAA6B,CAC1C,IAAuB,EACvB,OAAmC;IAEnC,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,YAAY,EAAE;YACZ,KAAK,EAAE,IAAI;SACZ;KACF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,OAAO,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3F,IAAI,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,OAAO,uBAAuB,CAAC,SAAS,EAAE;YACxC,MAAM;YACN,cAAc,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC;YAC7D,UAAU;YACV,QAAQ,EAAE,OAAO,EAAE,QAAQ;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAEnD,OAAO,MAAM,oBAAoB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC,WAAW;QAChC,OAAO,EAAE;YACP,GAAG,MAAM;YACT,GAAG,EAAE,UAAU;YACf,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,MAAM;SACP;QACD,cAAc,EAAE,OAAO,EAAE,cAAc;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,2BAA2B,CACxC,IAAuB,EACvB,UAAqC,EAAE,EACvC,EAAuB;IAEvB,MAAM,KAAK,GAAG,MAAM,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEjE,MAAM,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,QAAQ,CACrB,MAA8B,EAC9B,EAAK;IAEL,OAAO,gBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,aAAa,CAAC,WAAmC;IACxD,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/D,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,EAAE,CAAC;gBAClD,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;wBAC7D,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACrC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC;oBAC9D,CAAC;yBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;wBAC/C,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,147 @@
1
+ import { createServer } from "node:http";
2
+ import { apiClientManager } from "@trigger.dev/core/v3";
3
+ import { validateJWT } from "@trigger.dev/core/v3/jwt";
4
+ import { afterEach, beforeEach, describe, expect, it } from "vitest";
5
+ import { auth } from "./auth.js";
6
+ describe("public token API key routing", () => {
7
+ let server;
8
+ let baseUrl;
9
+ let requests;
10
+ let publicTokenStatus;
11
+ beforeEach(async () => {
12
+ requests = [];
13
+ publicTokenStatus = 200;
14
+ server = createServer((request, response) => {
15
+ void handleRequest(request, response, requests, () => publicTokenStatus);
16
+ });
17
+ await new Promise((resolve) => {
18
+ server.listen(0, "127.0.0.1", () => {
19
+ const address = server.address();
20
+ baseUrl = `http://127.0.0.1:${address.port}`;
21
+ resolve();
22
+ });
23
+ });
24
+ });
25
+ afterEach(async () => {
26
+ await new Promise((resolve) => server.close(() => resolve()));
27
+ });
28
+ it("uses server minting for additional keys", async () => {
29
+ const key = "tr_prod_sk_0123456789abcdefghijklmn";
30
+ const token = await apiClientManager.runWithConfig({ baseURL: baseUrl, accessToken: key }, () => auth.createPublicToken({
31
+ scopes: { read: { runs: ["run_123"] } },
32
+ expirationTime: new Date("2030-01-01T00:00:00.000Z"),
33
+ realtime: { skipColumns: ["payload"] },
34
+ }));
35
+ expect(token).toBe("server-minted-token");
36
+ expect(requests).toEqual([
37
+ {
38
+ method: "POST",
39
+ url: "/api/v1/auth/public-tokens",
40
+ authorization: `Bearer ${key}`,
41
+ body: {
42
+ scopes: ["read:runs:run_123"],
43
+ expirationTime: 1893456000,
44
+ realtime: { skipColumns: ["payload"] },
45
+ },
46
+ },
47
+ ]);
48
+ });
49
+ it("server-mints trigger tokens with one-time-use semantics", async () => {
50
+ const key = "tr_dev_sk_0123456789abcdefghijklmn";
51
+ await apiClientManager.runWithConfig({ baseURL: baseUrl, accessToken: key }, () => auth.createTriggerPublicToken(["task-one", "task-two"], { multipleUse: true }));
52
+ expect(requests[0]?.body).toEqual({
53
+ scopes: ["trigger:tasks:task-one", "trigger:tasks:task-two"],
54
+ oneTimeUse: false,
55
+ });
56
+ });
57
+ it("server-mints batch trigger tokens for additional keys", async () => {
58
+ const key = "tr_stg_sk_0123456789abcdefghijklmn";
59
+ await apiClientManager.runWithConfig({ baseURL: baseUrl, accessToken: key }, () => auth.createBatchTriggerPublicToken("batch-task", {
60
+ expirationTime: "2h",
61
+ multipleUse: false,
62
+ realtime: { skipColumns: ["payload"] },
63
+ }));
64
+ expect(requests).toEqual([
65
+ {
66
+ method: "POST",
67
+ url: "/api/v1/auth/public-tokens",
68
+ authorization: `Bearer ${key}`,
69
+ body: {
70
+ scopes: ["batchTrigger:tasks:batch-task"],
71
+ expirationTime: "2h",
72
+ oneTimeUse: true,
73
+ realtime: { skipColumns: ["payload"] },
74
+ },
75
+ },
76
+ ]);
77
+ });
78
+ it("keeps root key self-minting unchanged", async () => {
79
+ const key = "tr_prod_0123456789abcdefghijklmn";
80
+ const token = await apiClientManager.runWithConfig({ baseURL: baseUrl, accessToken: key }, () => auth.createPublicToken({ scopes: { read: { runs: true } } }));
81
+ expect(requests.map((request) => request.url)).toEqual(["/api/v1/auth/jwt/claims"]);
82
+ const validation = await validateJWT(token, key);
83
+ expect(validation.ok).toBe(true);
84
+ if (!validation.ok)
85
+ return;
86
+ expect(validation.payload).toMatchObject({
87
+ sub: "env_test",
88
+ pub: true,
89
+ scopes: ["read:runs"],
90
+ });
91
+ });
92
+ it.each([
93
+ ["no options at all", undefined],
94
+ ["an empty scopes object", {}],
95
+ ["a scope group with nothing selected", { read: {} }],
96
+ ])("keeps root-key behavior unchanged for %s", async (_label, scopes) => {
97
+ const key = "tr_prod_0123456789abcdefghijklmn";
98
+ const token = await apiClientManager.runWithConfig({ baseURL: baseUrl, accessToken: key }, () => auth.createPublicToken(scopes === undefined ? undefined : { scopes }));
99
+ expect(requests.map((request) => request.url)).toEqual(["/api/v1/auth/jwt/claims"]);
100
+ const validation = await validateJWT(token, key);
101
+ expect(validation.ok).toBe(true);
102
+ });
103
+ it.each([
104
+ ["no options at all", undefined],
105
+ ["an empty scopes object", {}],
106
+ ["a scope group with nothing selected", { read: {} }],
107
+ ])("rejects %s clearly for additional keys", async (_label, scopes) => {
108
+ const key = "tr_prod_sk_0123456789abcdefghijklmn";
109
+ const promise = apiClientManager.runWithConfig({ baseURL: baseUrl, accessToken: key }, () => auth.createPublicToken(scopes === undefined ? undefined : { scopes }));
110
+ await expect(promise).rejects.toThrow("requires at least one scope when using an additional API key");
111
+ expect(requests).toEqual([]);
112
+ });
113
+ it("explains how to recover when the server lacks the mint endpoint", async () => {
114
+ publicTokenStatus = 404;
115
+ const promise = apiClientManager.runWithConfig({
116
+ baseURL: baseUrl,
117
+ accessToken: "tr_prod_sk_0123456789abcdefghijklmn",
118
+ }, () => auth.createPublicToken({ scopes: { read: { runs: true } } }));
119
+ await expect(promise).rejects.toThrow("Upgrade the server or use the root API key");
120
+ });
121
+ });
122
+ async function handleRequest(request, response, requests, publicTokenStatus) {
123
+ const chunks = [];
124
+ for await (const chunk of request) {
125
+ chunks.push(Buffer.from(chunk));
126
+ }
127
+ const rawBody = Buffer.concat(chunks).toString();
128
+ requests.push({
129
+ method: request.method ?? "",
130
+ url: request.url ?? "",
131
+ authorization: request.headers.authorization,
132
+ body: rawBody ? JSON.parse(rawBody) : undefined,
133
+ });
134
+ if (request.url === "/api/v1/auth/jwt/claims") {
135
+ return json(response, { sub: "env_test", pub: true });
136
+ }
137
+ if (request.url === "/api/v1/auth/public-tokens") {
138
+ const status = publicTokenStatus();
139
+ return json(response, status === 200 ? { token: "server-minted-token" } : { error: "Not found" }, status);
140
+ }
141
+ return json(response, { error: "Not found" }, 404);
142
+ }
143
+ function json(response, body, status = 200) {
144
+ response.writeHead(status, { "content-type": "application/json" });
145
+ response.end(JSON.stringify(body));
146
+ }
147
+ //# sourceMappingURL=auth.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../src/v3/auth.test.ts"],"names":[],"mappings":"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"}
@@ -107,6 +107,39 @@ describe("chat.createStartSessionAction — runtime", () => {
107
107
  expect(lastStartBody?.triggerConfig.region).toBe("us-east-1");
108
108
  expect(lastStartBody?.triggerConfig.lockToVersion).toBe("20260101.1");
109
109
  });
110
+ it("server-mints override tokens for additional API keys", async () => {
111
+ const requests = [];
112
+ const start = chat.createStartSessionAction("fake-chat", {
113
+ apiClient: {
114
+ baseURL: "https://example.invalid",
115
+ accessToken: "tr_prod_sk_0123456789abcdefghijklmn",
116
+ },
117
+ tokenTTL: "30m",
118
+ fetch: async (url, init, context) => {
119
+ requests.push({
120
+ url,
121
+ body: typeof init.body === "string" ? JSON.parse(init.body) : undefined,
122
+ });
123
+ if (context.endpoint === "sessions") {
124
+ return Response.json({
125
+ id: "session_fixture",
126
+ runId: "run_fixture",
127
+ publicAccessToken: "session-token",
128
+ });
129
+ }
130
+ return Response.json({ token: "server-minted-token" });
131
+ },
132
+ });
133
+ const result = await start({ chatId: "chat-additional-key" });
134
+ expect(result.publicAccessToken).toBe("server-minted-token");
135
+ expect(requests[1]).toEqual({
136
+ url: "https://example.invalid/api/v1/auth/public-tokens",
137
+ body: {
138
+ scopes: ["read:sessions:chat-additional-key", "write:sessions:chat-additional-key"],
139
+ expirationTime: "30m",
140
+ },
141
+ });
142
+ });
110
143
  it("keeps session-level metadata distinct from per-turn clientData", async () => {
111
144
  installStartFixture();
112
145
  const start = chat.createStartSessionAction("fake-chat");
@@ -1 +1 @@
1
- {"version":3,"file":"createStartSessionAction.test.js","sourceRoot":"","sources":["../../../src/v3/createStartSessionAction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createStartSessionAction.test.js","sourceRoot":"","sources":["../../../src/v3/createStartSessionAction.test.ts"],"names":[],"mappings":"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"}
@@ -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":"AAMA,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE1F;;;;;;;;;;;;GAYG;AACH,MAAM,uBAAwB,SAAQ,mBAAmB;IAGpC;IAFnB,YACE,SAAiB,EACA,cAA6C;QAE9D,KAAK,CAAC,SAAS,CAAC,CAAC;QAFA,mBAAc,GAAd,cAAc,CAA+B;IAGhE,CAAC;IAED,iEAAiE;IACjE,mEAAmE;IACnE,kEAAkE;IAClE,IAAI;QACF,OAAO,IAAI,sBAAsB,CAC/B,CAAC,OAAqD,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,gEAAgE;gBAChE,+DAA+D;gBAC/D,sDAAsD;gBACtD,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,OAAO,CAAC;oBACN,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,IAAI,KAAK,CAAC,2CAA2C,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAaD,SAAS,MAAM,CAAC,KAA0B,EAAE,KAAc;IACxD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,MAA4C,EAC5C,KAA0B;IAE1B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,OAAO;YACjB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IAG7C;IAFnB,YACE,SAAiB,EACA,KAA0B;QAE3C,KAAK,CAAC,SAAS,CAAC,CAAC;QAFA,UAAK,GAAL,KAAK,CAAqB;IAG7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAI,KAAQ,EAAE,QAAmC;QAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CACF,KAA2C,EAC3C,QAAmC;QAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,IAAI,WAAwB,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACzC,WAAW,GAAG,OAAO,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClD,IAAI,CAAC;wBAAE,OAAO;oBACd,UAAU,CAAC,IAAI,CAAC,CAAM,CAAC,CAAC;oBACxB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC;oBACH,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACd,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,cAAc,CAAI;YACzC,KAAK,CAAC,KAAK,CAAC,UAAU;gBACpB,MAAM,IAAI,CAAC;gBACX,KAAK,MAAM,KAAK,IAAI,UAAU;oBAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1D,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAsB,EAAE,CAAC;QAE1C,OAAO;YACL,IAAI,MAAM;gBACR,OAAO,YAAsC,CAAC;YAChD,CAAC;YACD,iBAAiB,EAAE,KAAK,IAAI,EAAE;gBAC5B,MAAM,IAAI,CAAC;gBACX,OAAO,WAAW,CAAC;YACrB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAI,OAA+B;QACvC,IAAI,UAA+C,CAAC;QACpD,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,cAAc,CAAI;YACnC,KAAK,CAAC,CAAC;gBACL,UAAU,GAAG,CAAC,CAAC;YACjB,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,CAAC,IAAO,EAAE,EAAE;YAC9B,IAAI,CAAC;gBACH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC7B,KAAK,CAAC,IAAI;oBACR,WAAW,CAAC,IAAI,CAAC,CAAC;oBAClB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACtB,CAAC;gBACD,KAAK,CAAC,SAAS;oBACb,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QAED,MAAM,IAAI,GAAkB,CAAC,KAAK,IAAI,EAAE;YACtC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC;gBACH,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAsB,EAAE,CAAC;QAE1C,OAAO;YACL,IAAI,MAAM;gBACR,OAAO,MAAgC,CAAC;YAC1C,CAAC;YACD,iBAAiB,EAAE,KAAK,IAAI,EAAE;gBAC5B,MAAM,IAAI,CAAC;gBACX,OAAO,WAAW,CAAC;YACrB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,QAAqC;QACjD,MAAM,IAAI,KAAK,CACb,oFAAoF;YAClF,+DAA+D,CAClE,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,YAAuD;QAEvD,MAAM,SAAS,GAA4B,EAAE,IAAI,EAAE,WAAW,OAAO,EAAE,EAAE,CAAC;QAC1E,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;gBACzC,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBACnC,SAAS,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,eAAuB;QAClC,8CAA8C;IAChD,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,KAA0B,EAC1B,iBAAgD,GAAG,EAAE,CAAC,SAAS;IAE/D,OAAO,IAAI,aAAa,CAAC,SAAS,EAAE;QAClC,EAAE,EAAE,IAAI,uBAAuB,CAAC,SAAS,EAAE,cAAc,CAAC;QAC1D,GAAG,EAAE,IAAI,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC;KACpD,CAAC,CAAC;AACL,CAAC"}
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.8";
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;