@trigger.dev/sdk 4.5.0-rc.1 → 4.5.0-rc.2
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-shared.d.ts +70 -0
- package/dist/commonjs/v3/ai-shared.js +144 -0
- package/dist/commonjs/v3/ai-shared.js.map +1 -1
- package/dist/commonjs/v3/ai.d.ts +21 -5
- package/dist/commonjs/v3/ai.js +153 -17
- package/dist/commonjs/v3/ai.js.map +1 -1
- package/dist/commonjs/v3/auth.d.ts +1 -0
- package/dist/commonjs/v3/auth.js +1 -0
- package/dist/commonjs/v3/auth.js.map +1 -1
- package/dist/commonjs/v3/chat-client.js +8 -3
- package/dist/commonjs/v3/chat-client.js.map +1 -1
- package/dist/commonjs/v3/chat.js +10 -2
- package/dist/commonjs/v3/chat.js.map +1 -1
- package/dist/commonjs/v3/index.d.ts +1 -0
- package/dist/commonjs/v3/index.js +3 -1
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/shared.js +13 -7
- package/dist/commonjs/v3/shared.js.map +1 -1
- package/dist/commonjs/v3/triggerClient.d.ts +45 -0
- package/dist/commonjs/v3/triggerClient.js +104 -0
- package/dist/commonjs/v3/triggerClient.js.map +1 -0
- package/dist/commonjs/v3/triggerClient.test.d.ts +1 -0
- package/dist/commonjs/v3/triggerClient.test.js +226 -0
- package/dist/commonjs/v3/triggerClient.test.js.map +1 -0
- package/dist/commonjs/v3/triggerClient.types.test.d.ts +1 -0
- package/dist/commonjs/v3/triggerClient.types.test.js +113 -0
- package/dist/commonjs/v3/triggerClient.types.test.js.map +1 -0
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/v3/ai-shared.d.ts +70 -0
- package/dist/esm/v3/ai-shared.js +142 -0
- package/dist/esm/v3/ai-shared.js.map +1 -1
- package/dist/esm/v3/ai.d.ts +21 -5
- package/dist/esm/v3/ai.js +152 -17
- package/dist/esm/v3/ai.js.map +1 -1
- package/dist/esm/v3/auth.d.ts +1 -0
- package/dist/esm/v3/auth.js +1 -0
- package/dist/esm/v3/auth.js.map +1 -1
- package/dist/esm/v3/chat-client.js +8 -3
- package/dist/esm/v3/chat-client.js.map +1 -1
- package/dist/esm/v3/chat.js +10 -2
- package/dist/esm/v3/chat.js.map +1 -1
- package/dist/esm/v3/index.d.ts +1 -0
- package/dist/esm/v3/index.js +1 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/shared.js +14 -8
- package/dist/esm/v3/shared.js.map +1 -1
- package/dist/esm/v3/triggerClient.d.ts +45 -0
- package/dist/esm/v3/triggerClient.js +77 -0
- package/dist/esm/v3/triggerClient.js.map +1 -0
- package/dist/esm/v3/triggerClient.test.d.ts +1 -0
- package/dist/esm/v3/triggerClient.test.js +224 -0
- package/dist/esm/v3/triggerClient.test.js.map +1 -0
- package/dist/esm/v3/triggerClient.types.test.d.ts +1 -0
- package/dist/esm/v3/triggerClient.types.test.js +88 -0
- package/dist/esm/v3/triggerClient.types.test.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const v3_1 = require("@trigger.dev/core/v3");
|
|
5
|
+
const auth_js_1 = require("./auth.js");
|
|
6
|
+
const runs_js_1 = require("./runs.js");
|
|
7
|
+
const triggerClient_js_1 = require("./triggerClient.js");
|
|
8
|
+
function installFetchSpy() {
|
|
9
|
+
const captured = [];
|
|
10
|
+
const originalFetch = globalThis.fetch;
|
|
11
|
+
globalThis.fetch = (async (input, init) => {
|
|
12
|
+
const url = typeof input === "string" ? input : input?.url ?? String(input);
|
|
13
|
+
const headers = new Headers(init?.headers);
|
|
14
|
+
captured.push({
|
|
15
|
+
url,
|
|
16
|
+
authorization: headers.get("authorization") ?? undefined,
|
|
17
|
+
branch: headers.get("x-trigger-branch") ?? undefined,
|
|
18
|
+
});
|
|
19
|
+
// Return a fake successful response shaped like an empty run retrieval.
|
|
20
|
+
return new Response(JSON.stringify({}), {
|
|
21
|
+
status: 200,
|
|
22
|
+
headers: { "content-type": "application/json" },
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
captured,
|
|
27
|
+
restore: () => {
|
|
28
|
+
globalThis.fetch = originalFetch;
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
(0, vitest_1.describe)("TriggerClient", () => {
|
|
33
|
+
let fetchSpy;
|
|
34
|
+
(0, vitest_1.beforeEach)(() => {
|
|
35
|
+
v3_1.apiClientManager.disable();
|
|
36
|
+
fetchSpy = installFetchSpy();
|
|
37
|
+
});
|
|
38
|
+
(0, vitest_1.afterEach)(() => {
|
|
39
|
+
fetchSpy.restore();
|
|
40
|
+
v3_1.apiClientManager.disable();
|
|
41
|
+
v3_1.taskContext.disable();
|
|
42
|
+
vitest_1.vi.unstubAllEnvs();
|
|
43
|
+
});
|
|
44
|
+
(0, vitest_1.it)("throws on first API call when no accessToken is configured anywhere", () => {
|
|
45
|
+
const client = new triggerClient_js_1.TriggerClient();
|
|
46
|
+
(0, vitest_1.expect)(() => client.runs.list({ limit: 1 })).toThrow(/TRIGGER_SECRET_KEY/);
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.it)("falls back to env vars when constructor config is empty", async () => {
|
|
49
|
+
vitest_1.vi.stubEnv("TRIGGER_SECRET_KEY", "tr_dev_env_token");
|
|
50
|
+
vitest_1.vi.stubEnv("TRIGGER_PREVIEW_BRANCH", "env-branch");
|
|
51
|
+
const client = new triggerClient_js_1.TriggerClient();
|
|
52
|
+
await client.runs.retrieve("run_abc").catch(() => undefined);
|
|
53
|
+
(0, vitest_1.expect)(fetchSpy.captured).toHaveLength(1);
|
|
54
|
+
(0, vitest_1.expect)(fetchSpy.captured[0].authorization).toBe("Bearer tr_dev_env_token");
|
|
55
|
+
(0, vitest_1.expect)(fetchSpy.captured[0].branch).toBe("env-branch");
|
|
56
|
+
});
|
|
57
|
+
(0, vitest_1.it)("uses the instance accessToken and previewBranch on outgoing requests", async () => {
|
|
58
|
+
const client = new triggerClient_js_1.TriggerClient({
|
|
59
|
+
accessToken: "tr_preview_instance_token",
|
|
60
|
+
previewBranch: "signup-flow",
|
|
61
|
+
});
|
|
62
|
+
await client.runs.retrieve("run_abc").catch(() => undefined);
|
|
63
|
+
(0, vitest_1.expect)(fetchSpy.captured).toHaveLength(1);
|
|
64
|
+
const req = fetchSpy.captured[0];
|
|
65
|
+
(0, vitest_1.expect)(req.authorization).toBe("Bearer tr_preview_instance_token");
|
|
66
|
+
(0, vitest_1.expect)(req.branch).toBe("signup-flow");
|
|
67
|
+
});
|
|
68
|
+
(0, vitest_1.it)("fills missing fields from env, but explicit constructor values still win", async () => {
|
|
69
|
+
vitest_1.vi.stubEnv("TRIGGER_SECRET_KEY", "tr_env_token");
|
|
70
|
+
vitest_1.vi.stubEnv("TRIGGER_PREVIEW_BRANCH", "env-branch");
|
|
71
|
+
vitest_1.vi.stubEnv("TRIGGER_API_URL", "https://env.example.com");
|
|
72
|
+
const explicit = new triggerClient_js_1.TriggerClient({
|
|
73
|
+
accessToken: "tr_explicit",
|
|
74
|
+
previewBranch: "explicit-branch",
|
|
75
|
+
});
|
|
76
|
+
const fromEnv = new triggerClient_js_1.TriggerClient();
|
|
77
|
+
await Promise.all([
|
|
78
|
+
explicit.runs.retrieve("run_a").catch(() => undefined),
|
|
79
|
+
fromEnv.runs.retrieve("run_b").catch(() => undefined),
|
|
80
|
+
]);
|
|
81
|
+
const byRun = Object.fromEntries(fetchSpy.captured.map((r) => [r.url.split("/runs/")[1]?.split(/[/?]/)[0], r]));
|
|
82
|
+
(0, vitest_1.expect)(byRun["run_a"].authorization).toBe("Bearer tr_explicit");
|
|
83
|
+
(0, vitest_1.expect)(byRun["run_a"].branch).toBe("explicit-branch");
|
|
84
|
+
(0, vitest_1.expect)(byRun["run_b"].authorization).toBe("Bearer tr_env_token");
|
|
85
|
+
(0, vitest_1.expect)(byRun["run_b"].branch).toBe("env-branch");
|
|
86
|
+
(0, vitest_1.expect)(byRun["run_a"].url.startsWith("https://env.example.com/")).toBe(true);
|
|
87
|
+
});
|
|
88
|
+
(0, vitest_1.it)("does not leak instance config to the global apiClientManager", async () => {
|
|
89
|
+
(0, auth_js_1.configure)({ accessToken: "tr_dev_global_token" });
|
|
90
|
+
const client = new triggerClient_js_1.TriggerClient({
|
|
91
|
+
accessToken: "tr_preview_instance_token",
|
|
92
|
+
previewBranch: "signup-flow",
|
|
93
|
+
});
|
|
94
|
+
await client.runs.retrieve("run_instance").catch(() => undefined);
|
|
95
|
+
await runs_js_1.runs.retrieve("run_global").catch(() => undefined);
|
|
96
|
+
(0, vitest_1.expect)(fetchSpy.captured).toHaveLength(2);
|
|
97
|
+
(0, vitest_1.expect)(fetchSpy.captured[0].authorization).toBe("Bearer tr_preview_instance_token");
|
|
98
|
+
(0, vitest_1.expect)(fetchSpy.captured[0].branch).toBe("signup-flow");
|
|
99
|
+
(0, vitest_1.expect)(fetchSpy.captured[1].authorization).toBe("Bearer tr_dev_global_token");
|
|
100
|
+
(0, vitest_1.expect)(fetchSpy.captured[1].branch).toBeUndefined();
|
|
101
|
+
});
|
|
102
|
+
(0, vitest_1.it)("keeps two concurrent instances isolated from each other", async () => {
|
|
103
|
+
const prod = new triggerClient_js_1.TriggerClient({ accessToken: "tr_prod_key" });
|
|
104
|
+
const preview = new triggerClient_js_1.TriggerClient({
|
|
105
|
+
accessToken: "tr_preview_key",
|
|
106
|
+
previewBranch: "feature-x",
|
|
107
|
+
});
|
|
108
|
+
await Promise.all([
|
|
109
|
+
prod.runs.retrieve("run_a").catch(() => undefined),
|
|
110
|
+
preview.runs.retrieve("run_b").catch(() => undefined),
|
|
111
|
+
prod.runs.retrieve("run_c").catch(() => undefined),
|
|
112
|
+
preview.runs.retrieve("run_d").catch(() => undefined),
|
|
113
|
+
]);
|
|
114
|
+
(0, vitest_1.expect)(fetchSpy.captured).toHaveLength(4);
|
|
115
|
+
const byPath = Object.fromEntries(fetchSpy.captured.map((r) => [r.url.split("/runs/")[1]?.split(/[/?]/)[0], r]));
|
|
116
|
+
(0, vitest_1.expect)(byPath["run_a"].authorization).toBe("Bearer tr_prod_key");
|
|
117
|
+
(0, vitest_1.expect)(byPath["run_a"].branch).toBeUndefined();
|
|
118
|
+
(0, vitest_1.expect)(byPath["run_c"].authorization).toBe("Bearer tr_prod_key");
|
|
119
|
+
(0, vitest_1.expect)(byPath["run_c"].branch).toBeUndefined();
|
|
120
|
+
(0, vitest_1.expect)(byPath["run_b"].authorization).toBe("Bearer tr_preview_key");
|
|
121
|
+
(0, vitest_1.expect)(byPath["run_b"].branch).toBe("feature-x");
|
|
122
|
+
(0, vitest_1.expect)(byPath["run_d"].authorization).toBe("Bearer tr_preview_key");
|
|
123
|
+
(0, vitest_1.expect)(byPath["run_d"].branch).toBe("feature-x");
|
|
124
|
+
});
|
|
125
|
+
(0, vitest_1.it)("masks taskContext.ctx inside an isolated scope (default)", () => {
|
|
126
|
+
const fakeCtx = {
|
|
127
|
+
run: { id: "run_parent", isTest: true },
|
|
128
|
+
project: { ref: "proj_xyz" },
|
|
129
|
+
environment: { slug: "preview" },
|
|
130
|
+
};
|
|
131
|
+
v3_1.taskContext.setGlobalTaskContext({ ctx: fakeCtx });
|
|
132
|
+
(0, vitest_1.expect)(v3_1.taskContext.ctx).toBe(fakeCtx);
|
|
133
|
+
const observed = v3_1.sdkScope.withScope({ apiClientConfig: { accessToken: "x" }, inheritContext: false }, () => v3_1.taskContext.ctx);
|
|
134
|
+
(0, vitest_1.expect)(observed).toBeUndefined();
|
|
135
|
+
});
|
|
136
|
+
(0, vitest_1.it)("exposes taskContext.ctx inside a scope when inheritContext is true", () => {
|
|
137
|
+
const fakeCtx = {
|
|
138
|
+
run: { id: "run_parent", isTest: true },
|
|
139
|
+
project: { ref: "proj_xyz" },
|
|
140
|
+
environment: { slug: "preview" },
|
|
141
|
+
};
|
|
142
|
+
v3_1.taskContext.setGlobalTaskContext({ ctx: fakeCtx });
|
|
143
|
+
const observed = v3_1.sdkScope.withScope({ apiClientConfig: { accessToken: "x" }, inheritContext: true }, () => v3_1.taskContext.ctx);
|
|
144
|
+
(0, vitest_1.expect)(observed).toBe(fakeCtx);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
(0, vitest_1.describe)("configure()", () => {
|
|
148
|
+
(0, vitest_1.beforeEach)(() => {
|
|
149
|
+
v3_1.apiClientManager.disable();
|
|
150
|
+
});
|
|
151
|
+
(0, vitest_1.afterEach)(() => {
|
|
152
|
+
v3_1.apiClientManager.disable();
|
|
153
|
+
});
|
|
154
|
+
(0, vitest_1.it)("overrides previously-set configuration on a second call", async () => {
|
|
155
|
+
(0, auth_js_1.configure)({ accessToken: "tr_first" });
|
|
156
|
+
(0, vitest_1.expect)(v3_1.apiClientManager.accessToken).toBe("tr_first");
|
|
157
|
+
(0, auth_js_1.configure)({ accessToken: "tr_second", previewBranch: "branch-b" });
|
|
158
|
+
(0, vitest_1.expect)(v3_1.apiClientManager.accessToken).toBe("tr_second");
|
|
159
|
+
(0, vitest_1.expect)(v3_1.apiClientManager.branchName).toBe("branch-b");
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
(0, vitest_1.describe)("auth.withAuth", () => {
|
|
163
|
+
(0, vitest_1.beforeEach)(() => {
|
|
164
|
+
v3_1.apiClientManager.disable();
|
|
165
|
+
});
|
|
166
|
+
(0, vitest_1.afterEach)(() => {
|
|
167
|
+
v3_1.apiClientManager.disable();
|
|
168
|
+
});
|
|
169
|
+
(0, vitest_1.it)("inherits TRIGGER_SECRET_KEY from env when called with a partial config", async () => {
|
|
170
|
+
vitest_1.vi.stubEnv("TRIGGER_SECRET_KEY", "tr_dev_env_token");
|
|
171
|
+
let observed;
|
|
172
|
+
await auth_js_1.auth.withAuth({ baseURL: "https://override.example.com" }, async () => {
|
|
173
|
+
observed = v3_1.apiClientManager.accessToken;
|
|
174
|
+
});
|
|
175
|
+
// The scoped `inheritContext: true` path falls back to TRIGGER_SECRET_KEY
|
|
176
|
+
// so callers can override only baseURL without re-passing the token.
|
|
177
|
+
(0, vitest_1.expect)(observed).toBe("tr_dev_env_token");
|
|
178
|
+
// baseURL override still applies.
|
|
179
|
+
(0, vitest_1.expect)(await auth_js_1.auth.withAuth({ baseURL: "https://override.example.com" }, async () => v3_1.apiClientManager.baseURL)).toBe("https://override.example.com");
|
|
180
|
+
});
|
|
181
|
+
(0, vitest_1.it)("composes nested withAuth: outer-scope fields flow into the inner scope", async () => {
|
|
182
|
+
vitest_1.vi.stubEnv("TRIGGER_SECRET_KEY", "tr_env_token");
|
|
183
|
+
let observedBaseURL;
|
|
184
|
+
let observedAuth;
|
|
185
|
+
await auth_js_1.auth.withAuth({ baseURL: "https://outer.example.com" }, async () => {
|
|
186
|
+
await auth_js_1.auth.withAuth({ accessToken: "tr_inner_token" }, async () => {
|
|
187
|
+
observedBaseURL = v3_1.apiClientManager.baseURL;
|
|
188
|
+
observedAuth = v3_1.apiClientManager.accessToken;
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
(0, vitest_1.expect)(observedBaseURL).toBe("https://outer.example.com");
|
|
192
|
+
(0, vitest_1.expect)(observedAuth).toBe("tr_inner_token");
|
|
193
|
+
});
|
|
194
|
+
(0, vitest_1.it)("does not stomp on a parallel withAuth call with a different config", async () => {
|
|
195
|
+
(0, auth_js_1.configure)({ accessToken: "tr_global" });
|
|
196
|
+
const tokenA = "tr_concurrent_a";
|
|
197
|
+
const tokenB = "tr_concurrent_b";
|
|
198
|
+
const settle = {
|
|
199
|
+
resolveA: () => { },
|
|
200
|
+
resolveB: () => { },
|
|
201
|
+
};
|
|
202
|
+
const gateA = new Promise((r) => (settle.resolveA = r));
|
|
203
|
+
const gateB = new Promise((r) => (settle.resolveB = r));
|
|
204
|
+
const runA = auth_js_1.auth.withAuth({ accessToken: tokenA }, async () => {
|
|
205
|
+
// Suspend mid-scope so the parallel B scope opens while A is still pending.
|
|
206
|
+
await gateA;
|
|
207
|
+
return v3_1.apiClientManager.accessToken;
|
|
208
|
+
});
|
|
209
|
+
const runB = auth_js_1.auth.withAuth({ accessToken: tokenB }, async () => {
|
|
210
|
+
// Open B's scope first, then unblock A. If withAuth used the old
|
|
211
|
+
// mutate-and-restore pattern, A would observe tokenB or B's
|
|
212
|
+
// .finally would restore the wrong "original".
|
|
213
|
+
const seenInB = v3_1.apiClientManager.accessToken;
|
|
214
|
+
settle.resolveA();
|
|
215
|
+
await gateB;
|
|
216
|
+
return seenInB;
|
|
217
|
+
});
|
|
218
|
+
settle.resolveB(); // let B finish after A reads
|
|
219
|
+
const [seenInA, seenInB] = await Promise.all([runA, runB]);
|
|
220
|
+
(0, vitest_1.expect)(seenInA).toBe(tokenA);
|
|
221
|
+
(0, vitest_1.expect)(seenInB).toBe(tokenB);
|
|
222
|
+
// Global remains unchanged after both scopes exit.
|
|
223
|
+
(0, vitest_1.expect)(v3_1.apiClientManager.accessToken).toBe("tr_global");
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
//# sourceMappingURL=triggerClient.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggerClient.test.js","sourceRoot":"","sources":["../../../src/v3/triggerClient.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const vitest_1 = require("vitest");
|
|
27
|
+
const batch_js_1 = require("./batch.js");
|
|
28
|
+
const schedules = __importStar(require("./schedules/index.js"));
|
|
29
|
+
const prompts = __importStar(require("./prompts.js"));
|
|
30
|
+
const auth_js_1 = require("./auth.js");
|
|
31
|
+
const triggerClient_js_1 = require("./triggerClient.js");
|
|
32
|
+
const client = new triggerClient_js_1.TriggerClient({ accessToken: "tr_x" });
|
|
33
|
+
(0, vitest_1.describe)("TriggerClient surface — type-level guarantees", () => {
|
|
34
|
+
(0, vitest_1.it)("preserves generic inference on tasks.trigger<typeof t>", () => {
|
|
35
|
+
(0, vitest_1.expectTypeOf)().resolves.toHaveProperty("id");
|
|
36
|
+
(0, vitest_1.expectTypeOf)().resolves.toHaveProperty("taskIdentifier");
|
|
37
|
+
});
|
|
38
|
+
(0, vitest_1.it)("preserves return type on runs.retrieve (no double-wrap)", () => {
|
|
39
|
+
// bindToScope wraps the impl as () => sdkScope.withScope(...). If the
|
|
40
|
+
// wrapper were typed loosely it could surface as Promise<ApiPromise<...>>.
|
|
41
|
+
// We want the original ApiPromise<...> to flow through unchanged.
|
|
42
|
+
const handle = client.runs.retrieve("run_x");
|
|
43
|
+
(0, vitest_1.expectTypeOf)(handle).toEqualTypeOf();
|
|
44
|
+
// And it should be assignable to a plain Promise (since ApiPromise extends Promise).
|
|
45
|
+
(0, vitest_1.expectTypeOf)(handle).toMatchTypeOf();
|
|
46
|
+
});
|
|
47
|
+
(0, vitest_1.it)("preserves envvars.list overloads (projectRef+slug form AND zero-arg form)", () => {
|
|
48
|
+
// Two-arg form
|
|
49
|
+
(0, vitest_1.expectTypeOf)(client.envvars.list).toBeCallableWith("proj_1234", "dev");
|
|
50
|
+
// Zero-arg form (uses task context — still typeable at the call site)
|
|
51
|
+
(0, vitest_1.expectTypeOf)(client.envvars.list).toBeCallableWith();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
(0, vitest_1.describe)("TriggerClient surface — curated subsets", () => {
|
|
55
|
+
(0, vitest_1.it)("instance.tasks drops inside-task-only and definition-time helpers", () => {
|
|
56
|
+
(0, vitest_1.expectTypeOf)().toEqualTypeOf();
|
|
57
|
+
// @ts-expect-error — triggerAndWait is not on the instance surface.
|
|
58
|
+
client.tasks.triggerAndWait;
|
|
59
|
+
// @ts-expect-error — batchTriggerAndWait is not on the instance surface.
|
|
60
|
+
client.tasks.batchTriggerAndWait;
|
|
61
|
+
// @ts-expect-error — triggerAndSubscribe requires a task context; not on the instance surface.
|
|
62
|
+
client.tasks.triggerAndSubscribe;
|
|
63
|
+
// @ts-expect-error — hooks like onStart are task-definition-time, not on the client.
|
|
64
|
+
client.tasks.onStart;
|
|
65
|
+
});
|
|
66
|
+
(0, vitest_1.it)("instance.batch drops the *AndWait variants that depend on the runtime", () => {
|
|
67
|
+
(0, vitest_1.expectTypeOf)().toEqualTypeOf();
|
|
68
|
+
// @ts-expect-error
|
|
69
|
+
client.batch.triggerAndWait;
|
|
70
|
+
// @ts-expect-error
|
|
71
|
+
client.batch.triggerByTaskAndWait;
|
|
72
|
+
// The module-level export still has them — sanity check we didn't change that.
|
|
73
|
+
(0, vitest_1.expectTypeOf)(batch_js_1.batch).toHaveProperty("triggerAndWait");
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.it)("instance.schedules drops `task` definition helper and `timezones` stateless helper", () => {
|
|
76
|
+
(0, vitest_1.expectTypeOf)().toEqualTypeOf();
|
|
77
|
+
// @ts-expect-error
|
|
78
|
+
client.schedules.task;
|
|
79
|
+
// @ts-expect-error
|
|
80
|
+
client.schedules.timezones;
|
|
81
|
+
// Module-level export still has them.
|
|
82
|
+
(0, vitest_1.expectTypeOf)(schedules).toHaveProperty("task");
|
|
83
|
+
(0, vitest_1.expectTypeOf)(schedules).toHaveProperty("timezones");
|
|
84
|
+
});
|
|
85
|
+
(0, vitest_1.it)("instance.prompts drops `define`", () => {
|
|
86
|
+
// @ts-expect-error
|
|
87
|
+
client.prompts.define;
|
|
88
|
+
// Module-level export still has it.
|
|
89
|
+
(0, vitest_1.expectTypeOf)(prompts).toHaveProperty("define");
|
|
90
|
+
});
|
|
91
|
+
(0, vitest_1.it)("instance.auth is the public-token subset only (no configure/withAuth)", () => {
|
|
92
|
+
(0, vitest_1.expectTypeOf)().toEqualTypeOf();
|
|
93
|
+
// @ts-expect-error — configure is global-only, not on the instance.
|
|
94
|
+
client.auth.configure;
|
|
95
|
+
// @ts-expect-error — withAuth is global-only.
|
|
96
|
+
client.auth.withAuth;
|
|
97
|
+
// Module-level export still has them.
|
|
98
|
+
(0, vitest_1.expectTypeOf)(auth_js_1.auth).toHaveProperty("configure");
|
|
99
|
+
(0, vitest_1.expectTypeOf)(auth_js_1.auth).toHaveProperty("withAuth");
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
(0, vitest_1.describe)("TriggerClient surface — namespaces match their module sources", () => {
|
|
103
|
+
// These are the load-bearing assertions for the bindToScope cast. If the
|
|
104
|
+
// `as unknown as Pick<T, K>` ever drops or widens the underlying signatures,
|
|
105
|
+
// these break.
|
|
106
|
+
(0, vitest_1.it)("client.runs is structurally `typeof runs`", () => {
|
|
107
|
+
(0, vitest_1.expectTypeOf)(client.runs).toEqualTypeOf();
|
|
108
|
+
});
|
|
109
|
+
(0, vitest_1.it)("client.envvars is structurally `typeof envvars`", () => {
|
|
110
|
+
(0, vitest_1.expectTypeOf)(client.envvars).toEqualTypeOf();
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=triggerClient.types.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggerClient.types.test.js","sourceRoot":"","sources":["../../../src/v3/triggerClient.types.test.ts"],"names":[],"mappings":"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"}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -171,3 +171,73 @@ export type InferChatClientData<TTask extends AnyTask> = TTask extends Task<stri
|
|
|
171
171
|
* ```
|
|
172
172
|
*/
|
|
173
173
|
export type InferChatUIMessage<TTask extends AnyTask> = TTask extends Task<string, ChatTaskWirePayload<infer TUIM extends UIMessage, any>, any> ? TUIM : UIMessage;
|
|
174
|
+
/**
|
|
175
|
+
* Upsert an incoming wire message into the customer's DB-backed chain
|
|
176
|
+
* inside a `hydrateMessages` hook. Returns `true` iff the chain was
|
|
177
|
+
* mutated (the caller should persist).
|
|
178
|
+
*
|
|
179
|
+
* Handles the three cases that matter:
|
|
180
|
+
*
|
|
181
|
+
* - **Non-submit-message trigger** (`regenerate-message` / `action`,
|
|
182
|
+
* or `submit-message` with no incoming): no-op. Returns `false`.
|
|
183
|
+
* - **Incoming id already in `stored`** (HITL `addToolOutput` /
|
|
184
|
+
* `addToolApproveResponse` continuation — the wire carries the
|
|
185
|
+
* existing assistant's id with a slim resolution payload): no-op.
|
|
186
|
+
* The runtime's per-turn merge overlays the new tool-state advance
|
|
187
|
+
* onto the existing entry; pushing again would duplicate the row
|
|
188
|
+
* in the chain you return, and the duplicate slim copy would hit
|
|
189
|
+
* `toModelMessages` with no `input`. Returns `false`.
|
|
190
|
+
* - **Incoming id not in `stored`** (typically a fresh user message
|
|
191
|
+
* on a new turn): push. Returns `true`.
|
|
192
|
+
*
|
|
193
|
+
* Mutates `stored` in place. The caller persists `stored`, not the
|
|
194
|
+
* return value.
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```ts
|
|
198
|
+
* import { chat, upsertIncomingMessage } from "@trigger.dev/sdk/ai";
|
|
199
|
+
*
|
|
200
|
+
* chat.agent({
|
|
201
|
+
* hydrateMessages: async ({ chatId, trigger, incomingMessages }) => {
|
|
202
|
+
* const record = await db.chat.findUnique({ where: { id: chatId } });
|
|
203
|
+
* const stored = record?.messages ?? [];
|
|
204
|
+
* if (upsertIncomingMessage(stored, { trigger, incomingMessages })) {
|
|
205
|
+
* await db.chat.update({ where: { id: chatId }, data: { messages: stored } });
|
|
206
|
+
* }
|
|
207
|
+
* return stored;
|
|
208
|
+
* },
|
|
209
|
+
* });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
export declare function upsertIncomingMessage<TMsg extends UIMessage = UIMessage>(stored: TMsg[], event: {
|
|
213
|
+
trigger: "submit-message" | "regenerate-message" | "action";
|
|
214
|
+
incomingMessages: TMsg[];
|
|
215
|
+
}): boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Slim an outgoing assistant message before it ships on `submit-message`.
|
|
218
|
+
*
|
|
219
|
+
* When the client calls `addToolOutput(...)` to resolve a HITL tool (or
|
|
220
|
+
* `addToolApproveResponse(...)` to approve/deny one), the AI SDK turns
|
|
221
|
+
* it into a `submit-message` whose `messages.at(-1)` is the existing
|
|
222
|
+
* assistant message with the new state stitched onto a single tool
|
|
223
|
+
* part. On a reasoning-heavy multi-step turn, that full assistant
|
|
224
|
+
* message can be 600 KB – 1 MB (encrypted reasoning blobs, reasoning
|
|
225
|
+
* text, full tool `input` JSON, prior tool outputs) — well over the
|
|
226
|
+
* `.in/append` cap.
|
|
227
|
+
*
|
|
228
|
+
* The agent runtime only consumes the wire-advanced fields of those
|
|
229
|
+
* tool parts (state + output / errorText / approval). Everything else
|
|
230
|
+
* (text, reasoning, tool `input`) is rebuilt server-side from the
|
|
231
|
+
* durable snapshot or `hydrateMessages`. So we drop everything but
|
|
232
|
+
* the advanced tool parts here, and reduce those to just the fields
|
|
233
|
+
* the server overlays.
|
|
234
|
+
*
|
|
235
|
+
* The slim only fires when the assistant message carries at least one
|
|
236
|
+
* wire-advanceable tool part. Plain assistant resends (no resolved /
|
|
237
|
+
* approval-responded tool) and non-assistant messages pass through
|
|
238
|
+
* untouched.
|
|
239
|
+
*
|
|
240
|
+
* Pairs with the per-turn merge on the agent side
|
|
241
|
+
* (`mergeIncomingIntoHydrated` in `ai.ts`).
|
|
242
|
+
*/
|
|
243
|
+
export declare function slimSubmitMessageForWire<TMsg extends UIMessage | undefined>(message: TMsg): TMsg;
|
package/dist/esm/v3/ai-shared.js
CHANGED
|
@@ -19,4 +19,146 @@
|
|
|
19
19
|
* injects when a follow-up message arrives mid-turn.
|
|
20
20
|
*/
|
|
21
21
|
export const PENDING_MESSAGE_INJECTED_TYPE = "data-pending-message-injected";
|
|
22
|
+
/**
|
|
23
|
+
* Upsert an incoming wire message into the customer's DB-backed chain
|
|
24
|
+
* inside a `hydrateMessages` hook. Returns `true` iff the chain was
|
|
25
|
+
* mutated (the caller should persist).
|
|
26
|
+
*
|
|
27
|
+
* Handles the three cases that matter:
|
|
28
|
+
*
|
|
29
|
+
* - **Non-submit-message trigger** (`regenerate-message` / `action`,
|
|
30
|
+
* or `submit-message` with no incoming): no-op. Returns `false`.
|
|
31
|
+
* - **Incoming id already in `stored`** (HITL `addToolOutput` /
|
|
32
|
+
* `addToolApproveResponse` continuation — the wire carries the
|
|
33
|
+
* existing assistant's id with a slim resolution payload): no-op.
|
|
34
|
+
* The runtime's per-turn merge overlays the new tool-state advance
|
|
35
|
+
* onto the existing entry; pushing again would duplicate the row
|
|
36
|
+
* in the chain you return, and the duplicate slim copy would hit
|
|
37
|
+
* `toModelMessages` with no `input`. Returns `false`.
|
|
38
|
+
* - **Incoming id not in `stored`** (typically a fresh user message
|
|
39
|
+
* on a new turn): push. Returns `true`.
|
|
40
|
+
*
|
|
41
|
+
* Mutates `stored` in place. The caller persists `stored`, not the
|
|
42
|
+
* return value.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { chat, upsertIncomingMessage } from "@trigger.dev/sdk/ai";
|
|
47
|
+
*
|
|
48
|
+
* chat.agent({
|
|
49
|
+
* hydrateMessages: async ({ chatId, trigger, incomingMessages }) => {
|
|
50
|
+
* const record = await db.chat.findUnique({ where: { id: chatId } });
|
|
51
|
+
* const stored = record?.messages ?? [];
|
|
52
|
+
* if (upsertIncomingMessage(stored, { trigger, incomingMessages })) {
|
|
53
|
+
* await db.chat.update({ where: { id: chatId }, data: { messages: stored } });
|
|
54
|
+
* }
|
|
55
|
+
* return stored;
|
|
56
|
+
* },
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export function upsertIncomingMessage(stored, event) {
|
|
61
|
+
if (event.trigger !== "submit-message")
|
|
62
|
+
return false;
|
|
63
|
+
if (event.incomingMessages.length === 0)
|
|
64
|
+
return false;
|
|
65
|
+
const newMsg = event.incomingMessages[event.incomingMessages.length - 1];
|
|
66
|
+
if (!newMsg)
|
|
67
|
+
return false;
|
|
68
|
+
if (newMsg.id) {
|
|
69
|
+
const existingIdx = stored.findIndex((m) => m.id === newMsg.id);
|
|
70
|
+
if (existingIdx !== -1)
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
stored.push(newMsg);
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Tool-part states that the client advances and ships back over the wire.
|
|
78
|
+
* Covers HITL `addToolOutput` (output-available / output-error) and the
|
|
79
|
+
* approval flow (approval-responded / output-denied). `input-streaming` /
|
|
80
|
+
* `input-available` / `approval-requested` are server-emitted only — if
|
|
81
|
+
* we see them on the wire we treat them as no-ops and skip the slim/merge.
|
|
82
|
+
*/
|
|
83
|
+
function isWireAdvanceableToolState(state) {
|
|
84
|
+
return (state === "output-available" ||
|
|
85
|
+
state === "output-error" ||
|
|
86
|
+
state === "approval-responded" ||
|
|
87
|
+
state === "output-denied");
|
|
88
|
+
}
|
|
89
|
+
/** Whether a tool-UI part is a static (`tool-${name}`) or dynamic tool. */
|
|
90
|
+
function isToolPartType(type) {
|
|
91
|
+
return typeof type === "string" && (type.startsWith("tool-") || type === "dynamic-tool");
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Slim an outgoing assistant message before it ships on `submit-message`.
|
|
95
|
+
*
|
|
96
|
+
* When the client calls `addToolOutput(...)` to resolve a HITL tool (or
|
|
97
|
+
* `addToolApproveResponse(...)` to approve/deny one), the AI SDK turns
|
|
98
|
+
* it into a `submit-message` whose `messages.at(-1)` is the existing
|
|
99
|
+
* assistant message with the new state stitched onto a single tool
|
|
100
|
+
* part. On a reasoning-heavy multi-step turn, that full assistant
|
|
101
|
+
* message can be 600 KB – 1 MB (encrypted reasoning blobs, reasoning
|
|
102
|
+
* text, full tool `input` JSON, prior tool outputs) — well over the
|
|
103
|
+
* `.in/append` cap.
|
|
104
|
+
*
|
|
105
|
+
* The agent runtime only consumes the wire-advanced fields of those
|
|
106
|
+
* tool parts (state + output / errorText / approval). Everything else
|
|
107
|
+
* (text, reasoning, tool `input`) is rebuilt server-side from the
|
|
108
|
+
* durable snapshot or `hydrateMessages`. So we drop everything but
|
|
109
|
+
* the advanced tool parts here, and reduce those to just the fields
|
|
110
|
+
* the server overlays.
|
|
111
|
+
*
|
|
112
|
+
* The slim only fires when the assistant message carries at least one
|
|
113
|
+
* wire-advanceable tool part. Plain assistant resends (no resolved /
|
|
114
|
+
* approval-responded tool) and non-assistant messages pass through
|
|
115
|
+
* untouched.
|
|
116
|
+
*
|
|
117
|
+
* Pairs with the per-turn merge on the agent side
|
|
118
|
+
* (`mergeIncomingIntoHydrated` in `ai.ts`).
|
|
119
|
+
*/
|
|
120
|
+
export function slimSubmitMessageForWire(message) {
|
|
121
|
+
if (!message)
|
|
122
|
+
return message;
|
|
123
|
+
if (message.role !== "assistant")
|
|
124
|
+
return message;
|
|
125
|
+
const parts = (message.parts ?? []);
|
|
126
|
+
const advancedToolParts = parts.filter((p) => p &&
|
|
127
|
+
typeof p === "object" &&
|
|
128
|
+
isToolPartType(p.type) &&
|
|
129
|
+
isWireAdvanceableToolState(p.state));
|
|
130
|
+
if (advancedToolParts.length === 0)
|
|
131
|
+
return message;
|
|
132
|
+
const slimParts = advancedToolParts.map((p) => {
|
|
133
|
+
const base = {
|
|
134
|
+
type: p.type,
|
|
135
|
+
toolCallId: p.toolCallId,
|
|
136
|
+
state: p.state,
|
|
137
|
+
};
|
|
138
|
+
if (p.type === "dynamic-tool" && typeof p.toolName === "string") {
|
|
139
|
+
base.toolName = p.toolName;
|
|
140
|
+
}
|
|
141
|
+
if (p.state === "output-available") {
|
|
142
|
+
base.output = p.output;
|
|
143
|
+
if (p.approval !== undefined)
|
|
144
|
+
base.approval = p.approval;
|
|
145
|
+
}
|
|
146
|
+
else if (p.state === "output-error") {
|
|
147
|
+
if (p.errorText !== undefined)
|
|
148
|
+
base.errorText = p.errorText;
|
|
149
|
+
if (p.approval !== undefined)
|
|
150
|
+
base.approval = p.approval;
|
|
151
|
+
}
|
|
152
|
+
else if (p.state === "approval-responded" || p.state === "output-denied") {
|
|
153
|
+
if (p.approval !== undefined)
|
|
154
|
+
base.approval = p.approval;
|
|
155
|
+
}
|
|
156
|
+
return base;
|
|
157
|
+
});
|
|
158
|
+
return {
|
|
159
|
+
id: message.id,
|
|
160
|
+
role: message.role,
|
|
161
|
+
parts: slimParts,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
22
164
|
//# sourceMappingURL=ai-shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-shared.js","sourceRoot":"","sources":["../../../src/v3/ai-shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,+BAAwC,CAAC"}
|
|
1
|
+
{"version":3,"file":"ai-shared.js","sourceRoot":"","sources":["../../../src/v3/ai-shared.ts"],"names":[],"mappings":"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"}
|