@dbos-inc/vercel-ai 0.2.5 → 0.4.4
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/README.md +111 -87
- package/dist/agent-tool.d.ts +42 -0
- package/dist/agent-tool.d.ts.map +1 -0
- package/dist/agent-tool.js +92 -0
- package/dist/agent-tool.js.map +1 -0
- package/dist/durable-stream.d.ts +112 -0
- package/dist/durable-stream.d.ts.map +1 -0
- package/dist/durable-stream.js +351 -0
- package/dist/durable-stream.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +15 -0
- package/dist/internal.js.map +1 -1
- package/dist/mcp.d.ts +2 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +27 -26
- package/dist/mcp.js.map +1 -1
- package/dist/middleware.d.ts +11 -1
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +110 -67
- package/dist/middleware.js.map +1 -1
- package/dist/tools.d.ts +15 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +78 -0
- package/dist/tools.js.map +1 -0
- package/package.json +1 -1
- package/src/agent-tool.ts +122 -0
- package/src/durable-stream.ts +395 -0
- package/src/index.ts +12 -1
- package/src/internal.ts +14 -0
- package/src/mcp.ts +28 -25
- package/src/middleware.ts +123 -75
- package/src/tools.ts +86 -0
package/dist/middleware.js
CHANGED
|
@@ -6,19 +6,18 @@ exports.durableImageCalls = durableImageCalls;
|
|
|
6
6
|
const node_crypto_1 = require("node:crypto");
|
|
7
7
|
const dbos_sdk_1 = require("@dbos-inc/dbos-sdk");
|
|
8
8
|
const internal_1 = require("./internal");
|
|
9
|
+
const durable_stream_1 = require("./durable-stream");
|
|
9
10
|
// In-flight durable model calls per workflow; concurrent calls have a nondeterministic DBOS step order on replay, so we reject them.
|
|
10
11
|
const inflightModelCalls = new Map();
|
|
11
|
-
//
|
|
12
|
-
const
|
|
13
|
-
function enterDurableModelCall(
|
|
12
|
+
// A stream call whose consumer detached (abort/cancel) but whose step is still settling; the next call in that workflow waits for it.
|
|
13
|
+
const settlingModelCalls = new Map();
|
|
14
|
+
async function enterDurableModelCall() {
|
|
14
15
|
const workflowID = dbos_sdk_1.DBOS.workflowID;
|
|
16
|
+
// Sequence after a detached call's checkpoint, so steps are always recorded in the order they were started.
|
|
17
|
+
await settlingModelCalls.get(workflowID);
|
|
15
18
|
const inflight = inflightModelCalls.get(workflowID) ?? 0;
|
|
16
19
|
if (inflight > 0) {
|
|
17
|
-
|
|
18
|
-
const remedy = operation === 'embed'
|
|
19
|
-
? 'pass maxParallelCalls: 1 to embedMany, or run each call in its own child workflow with DBOS.startWorkflow'
|
|
20
|
-
: 'run each call in its own child workflow with DBOS.startWorkflow';
|
|
21
|
-
throw new Error(`Concurrent durable model calls in workflow "${workflowID}" are not supported because their step order is nondeterministic on replay; ${remedy}.`);
|
|
20
|
+
throw new Error(`Concurrent durable model calls in workflow "${workflowID}" are not supported because their step order is nondeterministic on replay; run each call in its own child workflow with DBOS.startWorkflow.`);
|
|
22
21
|
}
|
|
23
22
|
inflightModelCalls.set(workflowID, inflight + 1);
|
|
24
23
|
return workflowID;
|
|
@@ -34,32 +33,33 @@ function exitDurableModelCall(workflowID) {
|
|
|
34
33
|
}
|
|
35
34
|
/** AI SDK language-model middleware that runs each model call as a durable, checkpointed DBOS step (replayed on recovery); outside a workflow it calls the model directly. */
|
|
36
35
|
function durableCalls(options = {}) {
|
|
37
|
-
const
|
|
36
|
+
const { durableStream, include, ...stepOptions } = options;
|
|
37
|
+
const stepConfig = (0, internal_1.withErrorClassification)(stepOptions);
|
|
38
|
+
const streamConfig = (0, durable_stream_1.resolveDurableStream)(durableStream);
|
|
38
39
|
return {
|
|
39
40
|
specificationVersion: 'v4',
|
|
40
|
-
|
|
41
|
-
// the truncated output would be checkpointed as the step's permanent result and replayed on recovery as the whole
|
|
42
|
-
// answer. Withhold the signal from the provider so the call records a complete result; keep it here for the guard.
|
|
43
|
-
// Generate is left alone: an aborted doGenerate rejects (nothing partial to record), and the AI SDK's tool loop
|
|
44
|
-
// relies on that rejection to stop — stripping it there would let the loop keep calling the model after an abort.
|
|
45
|
-
transformParams: async ({ params, type }) => {
|
|
46
|
-
if (type !== 'stream' || !(0, internal_1.isInWorkflowFunction)() || !params.abortSignal) {
|
|
47
|
-
return params;
|
|
48
|
-
}
|
|
49
|
-
const { abortSignal, ...rest } = params;
|
|
50
|
-
detachedAbortSignals.set(rest, abortSignal);
|
|
51
|
-
return rest;
|
|
52
|
-
},
|
|
53
|
-
wrapGenerate: async ({ doGenerate, model }) => {
|
|
41
|
+
wrapGenerate: async ({ doGenerate, params, model }) => {
|
|
54
42
|
(0, internal_1.assertNotInTransaction)('generate');
|
|
55
43
|
if (!(0, internal_1.isInWorkflowFunction)()) {
|
|
56
44
|
return await doGenerate();
|
|
57
45
|
}
|
|
58
|
-
const workflowID = enterDurableModelCall(
|
|
46
|
+
const workflowID = await enterDurableModelCall();
|
|
59
47
|
try {
|
|
60
|
-
return await dbos_sdk_1.DBOS.runStep(async () =>
|
|
48
|
+
return await dbos_sdk_1.DBOS.runStep(async () => {
|
|
49
|
+
const result = ensureResponseMetadata(encodeBinaryContent(omitBodies(await doGenerate(), include)));
|
|
50
|
+
// A non-streaming call writes its whole output at once, so the stream holds every call the loop makes, not only streamed ones.
|
|
51
|
+
if (streamConfig) {
|
|
52
|
+
const streamWriter = new durable_stream_1.ModelStreamWriter(streamConfig);
|
|
53
|
+
for (const part of replayParts(result))
|
|
54
|
+
streamWriter.push(part);
|
|
55
|
+
await streamWriter.end({ finishReason: result.finishReason });
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}, {
|
|
61
59
|
...stepConfig,
|
|
62
60
|
name: stepConfig.name ?? stepName(model, 'generate'),
|
|
61
|
+
// An aborted call is never retried, whatever the provider's rejection looks like.
|
|
62
|
+
shouldRetry: async (error) => params.abortSignal?.aborted !== true && (await stepConfig.shouldRetry(error)),
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
65
|
catch (error) {
|
|
@@ -75,38 +75,37 @@ function durableCalls(options = {}) {
|
|
|
75
75
|
if (!(0, internal_1.isInWorkflowFunction)()) {
|
|
76
76
|
return await doStream();
|
|
77
77
|
}
|
|
78
|
-
const workflowID = enterDurableModelCall(
|
|
79
|
-
// The
|
|
80
|
-
const abortSignal =
|
|
81
|
-
// An aborted consumer is done with this call, like a cancelled one: post-abort failures must checkpoint as a (partial) success, or replay would fail where the live run ended gracefully.
|
|
78
|
+
const workflowID = await enterDurableModelCall();
|
|
79
|
+
// The caller's abortSignal merged with the AI SDK's timeouts; an abort stops the provider call and is recorded as the step's outcome.
|
|
80
|
+
const abortSignal = params.abortSignal;
|
|
82
81
|
const aborted = () => abortSignal?.aborted === true;
|
|
83
|
-
// Free the concurrency guard as soon as the consumer detaches (abort/cancel), not only when the step
|
|
84
|
-
// settles: this call's step is already sequenced, so a sequential follow-up in the same workflow is
|
|
85
|
-
// deterministic on replay and must not be rejected as concurrent while this step drains in the background.
|
|
86
|
-
let guardReleased = false;
|
|
87
|
-
const releaseGuard = () => {
|
|
88
|
-
if (guardReleased)
|
|
89
|
-
return;
|
|
90
|
-
guardReleased = true;
|
|
91
|
-
abortSignal?.removeEventListener('abort', releaseGuard);
|
|
92
|
-
exitDurableModelCall(workflowID);
|
|
93
|
-
};
|
|
94
|
-
abortSignal?.addEventListener('abort', releaseGuard, { once: true });
|
|
95
82
|
let executed = false;
|
|
96
83
|
let cancelled = false;
|
|
97
84
|
let emittedLive = false;
|
|
85
|
+
let released = false;
|
|
98
86
|
let controller;
|
|
99
87
|
let step;
|
|
88
|
+
let settled;
|
|
89
|
+
// A detached consumer (abort/cancel) may issue a sequential follow-up while this step still settles: make that call wait for this checkpoint instead of refusing it as concurrent.
|
|
90
|
+
const detach = () => {
|
|
91
|
+
abortSignal?.removeEventListener('abort', detach);
|
|
92
|
+
if (!released)
|
|
93
|
+
settlingModelCalls.set(workflowID, settled);
|
|
94
|
+
};
|
|
95
|
+
abortSignal?.addEventListener('abort', detach, { once: true });
|
|
100
96
|
const stream = new ReadableStream({
|
|
101
97
|
start(c) {
|
|
102
98
|
controller = c;
|
|
103
99
|
},
|
|
104
|
-
// Await the step so
|
|
100
|
+
// Await the step so a direct cancel blocks until the checkpoint; through the AI SDK's pipeline a consumer's early exit returns sooner, hence the rule to drain or abort instead.
|
|
105
101
|
async cancel() {
|
|
106
102
|
cancelled = true;
|
|
107
|
-
|
|
103
|
+
detach();
|
|
108
104
|
// Post-cancel failures normally checkpoint as a success; anything else (e.g. a failed checkpoint write) is only visible here.
|
|
109
|
-
await step.catch((error) =>
|
|
105
|
+
await step.catch((error) => {
|
|
106
|
+
if (!aborted())
|
|
107
|
+
dbos_sdk_1.DBOS.logger.warn(`Durable model call step failed after consumer cancel: ${String(error)}`);
|
|
108
|
+
});
|
|
110
109
|
},
|
|
111
110
|
});
|
|
112
111
|
const emit = (part) => {
|
|
@@ -117,10 +116,10 @@ function durableCalls(options = {}) {
|
|
|
117
116
|
emittedLive = true;
|
|
118
117
|
}
|
|
119
118
|
};
|
|
120
|
-
// Once any output part has streamed live, a retry would re-stream from scratch and duplicate output
|
|
119
|
+
// Once any output part has streamed live, a retry would re-stream from scratch and duplicate output; an aborted call is never retried.
|
|
121
120
|
const streamStepConfig = {
|
|
122
121
|
...stepConfig,
|
|
123
|
-
shouldRetry: async (error) => !emittedLive && (stepConfig.shouldRetry ? await stepConfig.shouldRetry(error) : true),
|
|
122
|
+
shouldRetry: async (error) => !emittedLive && !aborted() && (stepConfig.shouldRetry ? await stepConfig.shouldRetry(error) : true),
|
|
124
123
|
};
|
|
125
124
|
try {
|
|
126
125
|
step = dbos_sdk_1.DBOS.runStep(async () => {
|
|
@@ -128,24 +127,25 @@ function durableCalls(options = {}) {
|
|
|
128
127
|
const accumulator = new StreamAccumulator();
|
|
129
128
|
// A timed-out attempt is abandoned by DBOS (its outcome is discarded) but keeps running; stop it so it can't emit alongside a retry.
|
|
130
129
|
const timeoutSignal = dbos_sdk_1.DBOS.stepStatus?.timeoutSignal;
|
|
131
|
-
let streamResult;
|
|
132
130
|
let reader;
|
|
133
131
|
let sawFinish = false;
|
|
134
132
|
const abandon = () => void reader?.cancel().catch(() => { });
|
|
135
133
|
timeoutSignal?.addEventListener('abort', abandon, { once: true });
|
|
136
|
-
// A consumer abort
|
|
134
|
+
// A consumer abort tears the provider call down too; the attempt is then recorded as aborted below.
|
|
135
|
+
abortSignal?.addEventListener('abort', abandon, { once: true });
|
|
136
|
+
// Step-scope stream writes: cheap, replay-safe, and never duplicated since a retry is refused once content has streamed.
|
|
137
|
+
const streamWriter = streamConfig ? new durable_stream_1.ModelStreamWriter(streamConfig) : undefined;
|
|
137
138
|
try {
|
|
138
|
-
|
|
139
|
-
reader = streamResult.stream.getReader();
|
|
139
|
+
reader = (await doStream()).stream.getReader();
|
|
140
140
|
for (;;) {
|
|
141
141
|
const { done, value: part } = await reader.read();
|
|
142
142
|
if (timeoutSignal?.aborted)
|
|
143
143
|
throw (timeoutSignal.reason ?? new Error('step attempt timed out'));
|
|
144
|
-
if (done)
|
|
144
|
+
if (done || aborted())
|
|
145
145
|
break;
|
|
146
146
|
if (part.type === 'error') {
|
|
147
|
-
// A cancelled
|
|
148
|
-
if (cancelled
|
|
147
|
+
// A cancelled consumer abandoned this call; don't let a late failure become the step outcome, or replay would fail where the live run succeeded.
|
|
148
|
+
if (cancelled)
|
|
149
149
|
break;
|
|
150
150
|
throw toStepError(part.error);
|
|
151
151
|
}
|
|
@@ -154,6 +154,7 @@ function durableCalls(options = {}) {
|
|
|
154
154
|
sawFinish = true;
|
|
155
155
|
else
|
|
156
156
|
emit(part);
|
|
157
|
+
streamWriter?.push(part);
|
|
157
158
|
accumulator.add(part);
|
|
158
159
|
}
|
|
159
160
|
// No terminal part and no output: fail (retryably) like the AI SDK's NoOutputGeneratedError, instead of checkpointing a permanent empty success.
|
|
@@ -162,34 +163,53 @@ function durableCalls(options = {}) {
|
|
|
162
163
|
}
|
|
163
164
|
}
|
|
164
165
|
catch (error) {
|
|
165
|
-
// Same rule for stream-level failures (doStream or a read rejecting) after a cancel
|
|
166
|
-
if (!cancelled && !aborted())
|
|
166
|
+
// Same rule for stream-level failures (doStream or a read rejecting) after a cancel; after an abort, the abort is the outcome.
|
|
167
|
+
if (!cancelled && !aborted()) {
|
|
168
|
+
await streamWriter?.abandon();
|
|
167
169
|
throw error;
|
|
170
|
+
}
|
|
168
171
|
}
|
|
169
172
|
finally {
|
|
170
173
|
timeoutSignal?.removeEventListener('abort', abandon);
|
|
174
|
+
abortSignal?.removeEventListener('abort', abandon);
|
|
171
175
|
// Tear down the provider stream on early exits (error part, post-cancel break); a no-op after a clean drain.
|
|
172
176
|
void reader?.cancel().catch(() => { });
|
|
173
177
|
}
|
|
178
|
+
// Record the abort as the step's failure; replay rethrows it, so the workflow must catch aborts it means to survive.
|
|
179
|
+
if (aborted()) {
|
|
180
|
+
await streamWriter?.end({ aborted: true });
|
|
181
|
+
throw toAbortError(abortSignal.reason);
|
|
182
|
+
}
|
|
174
183
|
// Give the response a durable id/timestamp when the provider sent none, and emit it live (before the
|
|
175
184
|
// withheld 'finish') so the SDK sees the same values live and on replay instead of a fresh fallback.
|
|
176
185
|
// Skip the live emit for a timed-out (abandoned) attempt so it can't interleave with its retry.
|
|
177
186
|
const responseMetadataPart = accumulator.fillResponseMetadata((0, node_crypto_1.randomUUID)(), new Date());
|
|
178
187
|
if (responseMetadataPart && !timeoutSignal?.aborted)
|
|
179
188
|
emit(responseMetadataPart);
|
|
180
|
-
|
|
189
|
+
const recorded = encodeBinaryContent(accumulator.result());
|
|
190
|
+
// Every stream write lands before the checkpoint, so a reader that sees the next step has seen all of this one.
|
|
191
|
+
await streamWriter?.end({ finishReason: recorded.finishReason });
|
|
192
|
+
return recorded;
|
|
181
193
|
}, { ...streamStepConfig, name: stepConfig.name ?? stepName(model, 'stream') });
|
|
182
194
|
}
|
|
183
195
|
catch (error) {
|
|
184
196
|
// runStep can throw synchronously (e.g. a shutdown race); don't leak the guard entry.
|
|
185
|
-
|
|
197
|
+
abortSignal?.removeEventListener('abort', detach);
|
|
198
|
+
exitDurableModelCall(workflowID);
|
|
186
199
|
throw error;
|
|
187
200
|
}
|
|
201
|
+
// Hold the guard until the step has settled, so the next call in this workflow always starts after this checkpoint.
|
|
202
|
+
settled = step.then(() => undefined, () => undefined).then(() => {
|
|
203
|
+
released = true;
|
|
204
|
+
abortSignal?.removeEventListener('abort', detach);
|
|
205
|
+
exitDurableModelCall(workflowID);
|
|
206
|
+
if (settlingModelCalls.get(workflowID) === settled)
|
|
207
|
+
settlingModelCalls.delete(workflowID);
|
|
208
|
+
});
|
|
188
209
|
// Drive the returned stream from the settled step: a live run emits only the withheld 'finish' (deltas already
|
|
189
210
|
// streamed); a recovered run synthesizes the whole stream from the checkpoint. Either way consumers finish
|
|
190
211
|
// only after the result is durable.
|
|
191
|
-
void step
|
|
192
|
-
.then((recorded) => {
|
|
212
|
+
void step.then((recorded) => {
|
|
193
213
|
if (cancelled)
|
|
194
214
|
return;
|
|
195
215
|
if (executed) {
|
|
@@ -206,10 +226,11 @@ function durableCalls(options = {}) {
|
|
|
206
226
|
}
|
|
207
227
|
controller.close();
|
|
208
228
|
}, (error) => {
|
|
209
|
-
if (
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
.
|
|
229
|
+
if (cancelled)
|
|
230
|
+
return;
|
|
231
|
+
// Live abort: surface the signal's own reason so the AI SDK takes its abort path; a replayed abort is an ordinary error.
|
|
232
|
+
controller.error(executed && aborted() ? (abortSignal?.reason ?? error) : (0, internal_1.restoreAISDKErrorIdentity)(error));
|
|
233
|
+
});
|
|
213
234
|
return { stream };
|
|
214
235
|
},
|
|
215
236
|
};
|
|
@@ -219,12 +240,16 @@ function durableEmbeddingCalls(options = {}) {
|
|
|
219
240
|
const stepConfig = (0, internal_1.withErrorClassification)(options);
|
|
220
241
|
return {
|
|
221
242
|
specificationVersion: 'v4',
|
|
243
|
+
// embedMany awaits this per call: inside a workflow the batches run sequentially (deterministic step order on replay); elsewhere the model's own answer stands.
|
|
244
|
+
overrideSupportsParallelCalls: ({ model }) => ({
|
|
245
|
+
then: (onfulfilled, onrejected) => Promise.resolve((0, internal_1.isInWorkflowFunction)() ? false : model.supportsParallelCalls).then(onfulfilled, onrejected),
|
|
246
|
+
}),
|
|
222
247
|
wrapEmbed: async ({ doEmbed, model }) => {
|
|
223
248
|
(0, internal_1.assertNotInTransaction)('embed');
|
|
224
249
|
if (!(0, internal_1.isInWorkflowFunction)()) {
|
|
225
250
|
return await doEmbed();
|
|
226
251
|
}
|
|
227
|
-
const workflowID = enterDurableModelCall(
|
|
252
|
+
const workflowID = await enterDurableModelCall();
|
|
228
253
|
try {
|
|
229
254
|
return await dbos_sdk_1.DBOS.runStep(async () => doEmbed(), {
|
|
230
255
|
...stepConfig,
|
|
@@ -266,6 +291,12 @@ function durableImageCalls(options = {}) {
|
|
|
266
291
|
},
|
|
267
292
|
};
|
|
268
293
|
}
|
|
294
|
+
// The abort reason as a recordable Error (an AbortSignal's reason may be any value); the name is what the AI SDK's abort checks read.
|
|
295
|
+
function toAbortError(reason) {
|
|
296
|
+
if (reason instanceof Error)
|
|
297
|
+
return reason;
|
|
298
|
+
return Object.assign(new Error(String(reason)), { name: 'AbortError' });
|
|
299
|
+
}
|
|
269
300
|
/** Convert generated image bytes (Uint8Array) to base64 (spec-allowed) to keep checkpoints compact. */
|
|
270
301
|
function encodeImageResult(result) {
|
|
271
302
|
const images = result.images;
|
|
@@ -312,6 +343,18 @@ function ensureResponseMetadata(result) {
|
|
|
312
343
|
response: { ...response, id: response?.id ?? (0, node_crypto_1.randomUUID)(), timestamp: response?.timestamp ?? new Date() },
|
|
313
344
|
};
|
|
314
345
|
}
|
|
346
|
+
// generateText discards the raw bodies unless `include` asks for them, and the request body repeats the whole prompt.
|
|
347
|
+
function omitBodies(result, include) {
|
|
348
|
+
const dropRequest = !include?.requestBody && result.request?.body !== undefined;
|
|
349
|
+
const dropResponse = !include?.responseBody && result.response?.body !== undefined;
|
|
350
|
+
if (!dropRequest && !dropResponse)
|
|
351
|
+
return result;
|
|
352
|
+
return {
|
|
353
|
+
...result,
|
|
354
|
+
request: dropRequest ? { ...result.request, body: undefined } : result.request,
|
|
355
|
+
response: dropResponse ? { ...result.response, body: undefined } : result.response,
|
|
356
|
+
};
|
|
357
|
+
}
|
|
315
358
|
/** Convert generated-file bytes (Uint8Array) to base64 (spec-allowed) to keep checkpoints compact. */
|
|
316
359
|
function encodeBinaryContent(result) {
|
|
317
360
|
const content = result.content.map(encodeBinaryPart);
|
|
@@ -450,15 +493,15 @@ class StreamAccumulator {
|
|
|
450
493
|
}
|
|
451
494
|
return block;
|
|
452
495
|
}
|
|
453
|
-
|
|
496
|
+
// Omits the provider's request/response (wrapStream returns only the stream): the request body repeats the whole prompt.
|
|
497
|
+
result() {
|
|
454
498
|
return {
|
|
455
499
|
content: this.content,
|
|
456
500
|
finishReason: this.finishReason,
|
|
457
501
|
usage: this.usage,
|
|
458
502
|
warnings: this.warnings,
|
|
459
503
|
providerMetadata: this.providerMetadata,
|
|
460
|
-
|
|
461
|
-
response: this.responseMetadata ? { ...this.responseMetadata, ...response } : response,
|
|
504
|
+
response: this.responseMetadata,
|
|
462
505
|
};
|
|
463
506
|
}
|
|
464
507
|
}
|
package/dist/middleware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { StepConfig } from '@dbos-inc/dbos-sdk';
|
|
2
|
+
import type { ToolSet } from 'ai' with { 'resolution-mode': 'import' };
|
|
3
|
+
export interface DurableToolsOptions extends StepConfig {
|
|
4
|
+
/** Per-tool step config overriding the defaults; `false` leaves that tool non-durable. */
|
|
5
|
+
tools?: Record<string, StepConfig | false>;
|
|
6
|
+
/** Write each tool call's output (or error) to this durable stream from inside its step. */
|
|
7
|
+
durableStream?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Wraps each tool's `execute` so that, inside a workflow, every tool call runs as a durable DBOS step named
|
|
11
|
+
* `<tool>.<toolCallId>` and replays from its checkpoint on recovery; outside a workflow tools run unchanged.
|
|
12
|
+
* Retries are off by default (the AI SDK never retries tools); opt in per tool with `retriesAllowed`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function durableTools<TOOLS extends ToolSet>(tools: TOOLS, options?: DurableToolsOptions): TOOLS;
|
|
15
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,iBAAiB,EAAE,QAAQ,EAAE,CAAC;AAKvE,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;IAC3C,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,mBAAwB,GAAG,KAAK,CA4D1G"}
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.durableTools = durableTools;
|
|
4
|
+
const dbos_sdk_1 = require("@dbos-inc/dbos-sdk");
|
|
5
|
+
const internal_1 = require("./internal");
|
|
6
|
+
const agent_tool_1 = require("./agent-tool");
|
|
7
|
+
const durable_stream_1 = require("./durable-stream");
|
|
8
|
+
/**
|
|
9
|
+
* Wraps each tool's `execute` so that, inside a workflow, every tool call runs as a durable DBOS step named
|
|
10
|
+
* `<tool>.<toolCallId>` and replays from its checkpoint on recovery; outside a workflow tools run unchanged.
|
|
11
|
+
* Retries are off by default (the AI SDK never retries tools); opt in per tool with `retriesAllowed`.
|
|
12
|
+
*/
|
|
13
|
+
function durableTools(tools, options = {}) {
|
|
14
|
+
const { tools: perTool, durableStream, ...defaults } = options;
|
|
15
|
+
const durable = {};
|
|
16
|
+
for (const [name, definition] of Object.entries(tools)) {
|
|
17
|
+
const override = perTool?.[name];
|
|
18
|
+
// An agent tool is a child workflow, not a step: leave it unwrapped, binding this durable stream to it.
|
|
19
|
+
const bindAgentTool = definition[agent_tool_1.AGENT_TOOL];
|
|
20
|
+
if (bindAgentTool) {
|
|
21
|
+
durable[name] = durableStream ? bindAgentTool(durableStream) : definition;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (typeof definition.execute !== 'function' || override === false) {
|
|
25
|
+
durable[name] = definition;
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const execute = definition.execute;
|
|
29
|
+
const merged = { ...defaults, ...override };
|
|
30
|
+
// Default classification (aborts and provider-declared non-retryable errors are terminal), but retries stay opt-in.
|
|
31
|
+
const stepConfig = { ...(0, internal_1.withErrorClassification)(merged), retriesAllowed: merged.retriesAllowed ?? false };
|
|
32
|
+
const prefix = stepConfig.name ?? name;
|
|
33
|
+
durable[name] = {
|
|
34
|
+
...definition,
|
|
35
|
+
execute: (input, execOptions) => {
|
|
36
|
+
(0, internal_1.assertNotInTransaction)(name);
|
|
37
|
+
if (!(0, internal_1.isInWorkflowFunction)())
|
|
38
|
+
return execute(input, execOptions);
|
|
39
|
+
const signal = execOptions.abortSignal;
|
|
40
|
+
// An aborted call is done whatever the failure looks like; a retry would re-run a cancelled side effect.
|
|
41
|
+
const callConfig = {
|
|
42
|
+
...stepConfig,
|
|
43
|
+
shouldRetry: async (error) => !signal?.aborted && (await stepConfig.shouldRetry(error)),
|
|
44
|
+
};
|
|
45
|
+
// The tool call id comes from the checkpointed model result, so a reordered parallel step fails replay instead of swapping results.
|
|
46
|
+
return (0, internal_1.runDurableStep)(`${prefix}.${execOptions.toolCallId}`, async () => {
|
|
47
|
+
// A timed-out attempt is abandoned by DBOS but keeps running; forward its signal so the tool stops too.
|
|
48
|
+
const timeoutSignal = dbos_sdk_1.DBOS.stepStatus?.timeoutSignal;
|
|
49
|
+
const abortSignal = timeoutSignal && signal ? AbortSignal.any([signal, timeoutSignal]) : (timeoutSignal ?? signal);
|
|
50
|
+
let output;
|
|
51
|
+
try {
|
|
52
|
+
output = await execute(input, abortSignal === signal ? execOptions : { ...execOptions, abortSignal });
|
|
53
|
+
// A streaming execute can't checkpoint mid-flight; drain it and record the final value (the last yield).
|
|
54
|
+
if ((0, internal_1.isAsyncIterable)(output)) {
|
|
55
|
+
let last;
|
|
56
|
+
for await (last of output)
|
|
57
|
+
;
|
|
58
|
+
output = last;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
if (durableStream)
|
|
63
|
+
await (0, durable_stream_1.writeToolRecord)(durableStream, execOptions.toolCallId, { errorText: errorMessage(error) });
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
if (durableStream)
|
|
67
|
+
await (0, durable_stream_1.writeToolRecord)(durableStream, execOptions.toolCallId, { output });
|
|
68
|
+
return output;
|
|
69
|
+
}, callConfig);
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return durable;
|
|
74
|
+
}
|
|
75
|
+
function errorMessage(error) {
|
|
76
|
+
return error instanceof Error ? error.message : String(error);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|