@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.
- package/dist/commonjs/v3/agentSkillsRuntime.js +17 -7
- package/dist/commonjs/v3/agentSkillsRuntime.js.map +1 -1
- package/dist/commonjs/v3/ai.d.ts +49 -8
- package/dist/commonjs/v3/ai.js +258 -42
- package/dist/commonjs/v3/ai.js.map +1 -1
- package/dist/commonjs/v3/aiAutoTelemetry.js +3 -3
- package/dist/commonjs/v3/aiAutoTelemetry.js.map +1 -1
- package/dist/commonjs/v3/auth.d.ts +7 -3
- package/dist/commonjs/v3/auth.js +68 -13
- package/dist/commonjs/v3/auth.js.map +1 -1
- package/dist/commonjs/v3/auth.test.d.ts +1 -0
- package/dist/commonjs/v3/auth.test.js +149 -0
- package/dist/commonjs/v3/auth.test.js.map +1 -0
- package/dist/commonjs/v3/createStartSessionAction.test.js +33 -0
- package/dist/commonjs/v3/createStartSessionAction.test.js.map +1 -1
- package/dist/commonjs/v3/index.js +17 -7
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/runs.d.ts +15 -15
- package/dist/commonjs/v3/skill.js +17 -7
- package/dist/commonjs/v3/skill.js.map +1 -1
- package/dist/commonjs/v3/test/test-session-handle.js +20 -8
- package/dist/commonjs/v3/test/test-session-handle.js.map +1 -1
- package/dist/commonjs/v3/triggerClient.js +17 -7
- package/dist/commonjs/v3/triggerClient.js.map +1 -1
- package/dist/commonjs/v3/triggerClient.types.test.js +17 -7
- package/dist/commonjs/v3/triggerClient.types.test.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/v3/ai.d.ts +49 -8
- package/dist/esm/v3/ai.js +259 -43
- package/dist/esm/v3/ai.js.map +1 -1
- package/dist/esm/v3/aiAutoTelemetry.js +3 -3
- package/dist/esm/v3/aiAutoTelemetry.js.map +1 -1
- package/dist/esm/v3/auth.d.ts +7 -3
- package/dist/esm/v3/auth.js +69 -14
- package/dist/esm/v3/auth.js.map +1 -1
- package/dist/esm/v3/auth.test.d.ts +1 -0
- package/dist/esm/v3/auth.test.js +147 -0
- package/dist/esm/v3/auth.test.js.map +1 -0
- package/dist/esm/v3/createStartSessionAction.test.js +33 -0
- package/dist/esm/v3/createStartSessionAction.test.js.map +1 -1
- package/dist/esm/v3/test/test-session-handle.js +20 -8
- package/dist/esm/v3/test/test-session-handle.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/docs/ai-chat/changelog.mdx +2 -2
- package/docs/ai-chat/compaction.mdx +2 -2
- package/docs/ai-chat/custom-agents.mdx +15 -20
- package/docs/ai-chat/fast-starts.mdx +2 -2
- package/docs/ai-chat/pending-messages.mdx +6 -2
- package/docs/ai-chat/reference.mdx +2 -2
- 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
|
|
44
|
-
// resolution; resolves at runtime only when
|
|
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,
|
|
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"}
|
package/dist/esm/v3/auth.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
*
|
package/dist/esm/v3/auth.js
CHANGED
|
@@ -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 ?
|
|
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:
|
|
167
|
+
otu: oneTimeUse,
|
|
119
168
|
realtime: options?.realtime,
|
|
120
|
-
scopes
|
|
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:
|
|
237
|
+
otu: oneTimeUse,
|
|
179
238
|
realtime: options?.realtime,
|
|
180
|
-
scopes
|
|
181
|
-
batchTrigger: {
|
|
182
|
-
tasks: task,
|
|
183
|
-
},
|
|
184
|
-
}),
|
|
239
|
+
scopes,
|
|
185
240
|
},
|
|
186
241
|
expirationTime: options?.expirationTime,
|
|
187
242
|
});
|
package/dist/esm/v3/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/v3/auth.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/v3/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
122
|
+
reader?.releaseLock();
|
|
115
123
|
}
|
|
116
124
|
catch {
|
|
117
125
|
// ignore
|
|
118
126
|
}
|
|
119
127
|
resolveDone();
|
|
120
128
|
}
|
|
121
|
-
})()
|
|
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
|
-
|
|
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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"}
|
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "4.5.
|
|
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
|
|
58
|
+
const { message } = await chat.pipeAndCapture(result, {
|
|
59
59
|
originalMessages: conversation.uiMessages,
|
|
60
60
|
});
|
|
61
|
-
if (
|
|
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
|
|
369
|
-
if (
|
|
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;
|