@dbos-inc/vercel-ai 0.3.7 → 0.5.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 +84 -39
- package/dist/durable-stream.d.ts +7 -3
- package/dist/durable-stream.d.ts.map +1 -1
- package/dist/durable-stream.js +133 -23
- package/dist/durable-stream.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +9 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +26 -0
- package/dist/internal.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +16 -6
- package/dist/mcp.js.map +1 -1
- package/dist/middleware.d.ts +5 -0
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +47 -17
- package/dist/middleware.js.map +1 -1
- package/dist/tools.d.ts +5 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +123 -18
- package/dist/tools.js.map +1 -1
- package/package.json +3 -3
- package/src/durable-stream.ts +139 -25
- package/src/index.ts +1 -1
- package/src/internal.ts +25 -0
- package/src/mcp.ts +14 -7
- package/src/middleware.ts +53 -21
- package/src/tools.ts +137 -19
package/README.md
CHANGED
|
@@ -42,7 +42,7 @@ console.log(await researchAgent('Why did the agent cross the road?'));
|
|
|
42
42
|
npm install @dbos-inc/vercel-ai @dbos-inc/dbos-sdk ai
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
Requires DBOS v4.
|
|
45
|
+
Requires DBOS v4.27+ or v5, AI SDK v7+, and a Postgres database for DBOS.
|
|
46
46
|
|
|
47
47
|
## Durable Model Calls
|
|
48
48
|
|
|
@@ -80,42 +80,10 @@ durableCalls({
|
|
|
80
80
|
shouldRetry?: (error: unknown) => boolean; // default: skip provider-declared non-retryable errors and aborts
|
|
81
81
|
timeoutMS?: number; // per-attempt timeout
|
|
82
82
|
durableStream?: string; // stream each call's output to this durable stream
|
|
83
|
+
include?: { requestBody?: boolean; responseBody?: boolean }; // checkpoint raw provider bodies; match generateText's `include` (default: false)
|
|
83
84
|
});
|
|
84
85
|
```
|
|
85
86
|
|
|
86
|
-
## Durable Streams
|
|
87
|
-
|
|
88
|
-
You can **durably stream** agent or model output so it can be read by an external client or UI.
|
|
89
|
-
To do this, configure `durableCalls` or `durableTools`/`durableMCPTools` with a durable stream name:
|
|
90
|
-
|
|
91
|
-
```ts
|
|
92
|
-
import { createUIMessageStreamResponse, streamText } from 'ai';
|
|
93
|
-
import { durableCalls, durableTools, readDurableStream } from '@dbos-inc/vercel-ai';
|
|
94
|
-
|
|
95
|
-
const model = wrapLanguageModel({ model: openai('gpt-5'), middleware: durableCalls({ durableStream: 'ui' }) });
|
|
96
|
-
const tools = durableTools(myTools, { durableStream: 'ui' });
|
|
97
|
-
|
|
98
|
-
const chatTurn = DBOS.registerWorkflow(async (messages: ModelMessage[]) => {
|
|
99
|
-
const result = streamText({ model, messages, tools, stopWhen: stepCountIs(10) });
|
|
100
|
-
return await result.text;
|
|
101
|
-
}, { name: 'chatTurn' });
|
|
102
|
-
|
|
103
|
-
const handle = await DBOS.startWorkflow(chatTurn)(messages);
|
|
104
|
-
return createUIMessageStreamResponse({
|
|
105
|
-
stream: readDurableStream({ workflowID: handle.workflowID, key: 'ui', messageId }),
|
|
106
|
-
});
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
You can read from a durable stream using `readDurableStream`, for example to stream it to a UI.
|
|
110
|
-
It emits a stream of AI SDK `UIMessageChunk`.
|
|
111
|
-
You can also pass a `DBOSClient` into `readDurableStream` to read it from a different process.
|
|
112
|
-
|
|
113
|
-
You can write your own data to a stream with `writeDurableStream(key, chunks)`.
|
|
114
|
-
Your streams are closed when your workflow finishes; you can also close a stream early using `closeDurableStream`.
|
|
115
|
-
|
|
116
|
-
If a workflow is interrupted during a model call, when the workflow recovers, it restarts the model call and streams its output again.
|
|
117
|
-
Readers that connect afterwards see the model's output once; live readers receive a transient `data-dbos-superseded` chunk indicating the model call has been restarted.
|
|
118
|
-
|
|
119
87
|
## Durable Tools
|
|
120
88
|
|
|
121
89
|
To durably checkpoint your agents' tool calls, wrap them in `durableTools`:
|
|
@@ -154,6 +122,73 @@ const tools = durableTools(myTools, {
|
|
|
154
122
|
|
|
155
123
|
When using durable tools, to ensure the ordering of parallel tool calls is consistent during recovery, do not await I/O in callbacks that run before a tool executes, such as `onToolExecutionStart`.
|
|
156
124
|
|
|
125
|
+
## Durable Streams
|
|
126
|
+
|
|
127
|
+
You can **durably stream** agent or model output so it can be read by an external client or UI.
|
|
128
|
+
To do this, configure `durableCalls` or `durableTools`/`durableMCPTools` with a durable stream name:
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
import { createUIMessageStreamResponse, streamText } from 'ai';
|
|
132
|
+
import { durableCalls, durableTools, readDurableStream } from '@dbos-inc/vercel-ai';
|
|
133
|
+
|
|
134
|
+
const model = wrapLanguageModel({ model: openai('gpt-5'), middleware: durableCalls({ durableStream: 'ui' }) });
|
|
135
|
+
const tools = durableTools(myTools, { durableStream: 'ui' });
|
|
136
|
+
|
|
137
|
+
const chatTurn = DBOS.registerWorkflow(async (messages: ModelMessage[]) => {
|
|
138
|
+
const result = streamText({ model, messages, tools, stopWhen: stepCountIs(10) });
|
|
139
|
+
return await result.text;
|
|
140
|
+
}, { name: 'chatTurn' });
|
|
141
|
+
|
|
142
|
+
export async function POST(req: Request) {
|
|
143
|
+
const { messages, messageId } = (await req.json()) as { messages: ModelMessage[]; messageId: string };
|
|
144
|
+
const handle = await DBOS.startWorkflow(chatTurn)(messages);
|
|
145
|
+
return createUIMessageStreamResponse({
|
|
146
|
+
stream: readDurableStream({ workflowID: handle.workflowID, key: 'ui', messageId }),
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
You can read from a durable stream using `readDurableStream`, for example to stream it to a UI.
|
|
152
|
+
It emits a stream of AI SDK `UIMessageChunk`.
|
|
153
|
+
You can also pass a `DBOSClient` into `readDurableStream` to read it from a different process.
|
|
154
|
+
|
|
155
|
+
You can write your own data to a stream with `writeDurableStream(key, chunks)`.
|
|
156
|
+
Tools can also write chunks with `toolWriter()`, which returns a `UIMessageStreamWriter` bound to the current tool call.
|
|
157
|
+
Chunks from a tool call are written when the tool call succeeds (`transient: true` data parts are written live instead).
|
|
158
|
+
To also include them in the response message your workflow builds, pass your `createUIMessageStream` writer to `durableTools`:
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
import { consumeStream, createUIMessageStream, streamText } from 'ai';
|
|
162
|
+
import { durableTools, toolWriter } from '@dbos-inc/vercel-ai';
|
|
163
|
+
|
|
164
|
+
const search = tool({
|
|
165
|
+
inputSchema: z.object({ q: z.string() }),
|
|
166
|
+
execute: async ({ q }) => {
|
|
167
|
+
const writer = toolWriter();
|
|
168
|
+
writer.write({ type: 'data-progress', data: { pct: 50 }, transient: true });
|
|
169
|
+
writer.write({ type: 'source-url', sourceId: 's1', url: 'https://example.com' });
|
|
170
|
+
return runSearch(q);
|
|
171
|
+
},
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
const chatTurn = DBOS.registerWorkflow(async (messages: ModelMessage[]) => {
|
|
175
|
+
const stream = createUIMessageStream({
|
|
176
|
+
execute: ({ writer }) => {
|
|
177
|
+
const tools = durableTools({ search }, { durableStream: 'ui', writer });
|
|
178
|
+
writer.merge(streamText({ model, messages, tools, stopWhen: stepCountIs(10) }).toUIMessageStream());
|
|
179
|
+
},
|
|
180
|
+
onFinish: ({ responseMessage }) => saveMessage(responseMessage),
|
|
181
|
+
});
|
|
182
|
+
await consumeStream({ stream });
|
|
183
|
+
}, { name: 'chatTurn' });
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Your streams are closed when your workflow finishes; you can also close a stream early using `closeDurableStream`.
|
|
187
|
+
|
|
188
|
+
If a workflow is interrupted during a model call, when the workflow recovers, it restarts the model call and streams its output again.
|
|
189
|
+
Readers that connect afterwards see the model's output once; live readers, including readers resumed from an `offset`, receive a transient `data-dbos-superseded` chunk indicating the model call has been restarted.
|
|
190
|
+
Likewise, if a tool call is re-executed and writes different chunks, readers that connect afterwards see only the re-execution's chunks; live readers receive a transient `data-dbos-tool-superseded` chunk naming the `toolCallId` whose earlier chunks to discard.
|
|
191
|
+
|
|
157
192
|
### Durable MCP Tools
|
|
158
193
|
|
|
159
194
|
`durableMCPTools` wraps an [MCP](https://modelcontextprotocol.io/) client (for example, from [`@ai-sdk/mcp`](https://www.npmjs.com/package/@ai-sdk/mcp)) so both the tool listing and every tool call run as durable steps:
|
|
@@ -164,9 +199,13 @@ import { durableMCPTools } from '@dbos-inc/vercel-ai';
|
|
|
164
199
|
|
|
165
200
|
const agent = DBOS.registerWorkflow(async (question: string) => {
|
|
166
201
|
const mcpClient = await createMCPClient({ transport: { type: 'http', url: MCP_URL } });
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
202
|
+
try {
|
|
203
|
+
const tools = await durableMCPTools(mcpClient);
|
|
204
|
+
const result = await generateText({ model, prompt: question, tools, stopWhen: stepCountIs(10) });
|
|
205
|
+
return result.text;
|
|
206
|
+
} finally {
|
|
207
|
+
await mcpClient.close();
|
|
208
|
+
}
|
|
170
209
|
}, { name: 'mcpAgent' });
|
|
171
210
|
```
|
|
172
211
|
|
|
@@ -218,7 +257,10 @@ const embeddingModel = wrapEmbeddingModel({
|
|
|
218
257
|
middleware: durableEmbeddingCalls({ retriesAllowed: true }),
|
|
219
258
|
});
|
|
220
259
|
|
|
221
|
-
const
|
|
260
|
+
const embedChunks = DBOS.registerWorkflow(async (chunks: string[]) => {
|
|
261
|
+
const { embeddings } = await embedMany({ model: embeddingModel, values: chunks });
|
|
262
|
+
return embeddings;
|
|
263
|
+
}, { name: 'embedChunks' });
|
|
222
264
|
```
|
|
223
265
|
|
|
224
266
|
## Durable Image Models
|
|
@@ -231,6 +273,9 @@ import { durableImageCalls } from '@dbos-inc/vercel-ai';
|
|
|
231
273
|
|
|
232
274
|
const imageModel = wrapImageModel({ model: openai.imageModel('gpt-image-1'), middleware: durableImageCalls() });
|
|
233
275
|
|
|
234
|
-
const
|
|
276
|
+
const drawImage = DBOS.registerWorkflow(async (prompt: string) => {
|
|
277
|
+
const { images } = await generateImage({ model: imageModel, prompt });
|
|
278
|
+
return images.map((image) => image.base64);
|
|
279
|
+
}, { name: 'drawImage' });
|
|
235
280
|
```
|
|
236
281
|
|
package/dist/durable-stream.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export type DurableStreamRecord = {
|
|
|
25
25
|
toolCallId: string;
|
|
26
26
|
output?: unknown;
|
|
27
27
|
errorText?: string;
|
|
28
|
+
chunks?: UIMessageChunk[];
|
|
28
29
|
} | {
|
|
29
30
|
kind: 'ui';
|
|
30
31
|
step?: number;
|
|
@@ -62,12 +63,12 @@ export declare class ModelStreamWriter {
|
|
|
62
63
|
private flush;
|
|
63
64
|
private write;
|
|
64
65
|
}
|
|
65
|
-
/** Records a tool call's outcome from inside its step. */
|
|
66
|
+
/** Records a tool call's outcome, with the message chunks it wrote, from inside its step. */
|
|
66
67
|
export declare function writeToolRecord(key: string, toolCallId: string, outcome: {
|
|
67
68
|
output: unknown;
|
|
68
69
|
} | {
|
|
69
70
|
errorText: string;
|
|
70
|
-
}): Promise<void>;
|
|
71
|
+
}, chunks?: UIMessageChunk[]): Promise<void>;
|
|
71
72
|
/**
|
|
72
73
|
* Appends UI message chunks to a durable stream. From a step the write is cheap and at-least-once, so give data parts
|
|
73
74
|
* stable ids; from workflow code it is a checkpointed step, so the number of calls must be deterministic.
|
|
@@ -95,7 +96,10 @@ export interface ReadDurableStreamOptions {
|
|
|
95
96
|
key: string;
|
|
96
97
|
/** Id for the `start` chunk; omitted on a resume (`offset` > 0). */
|
|
97
98
|
messageId?: string;
|
|
98
|
-
/**
|
|
99
|
+
/**
|
|
100
|
+
* Number of records already consumed, from the last `data-dbos-offset` chunk. A resume from mid-text can't be applied
|
|
101
|
+
* to a partial message by the AI SDK (it has no record of the open part); to rebuild a message, read from 0 instead.
|
|
102
|
+
*/
|
|
99
103
|
offset?: number;
|
|
100
104
|
/** Defaults to `DBOS`; pass a `DBOSClient` to read from a process that has not launched DBOS. */
|
|
101
105
|
client?: DurableStreamSource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-stream.d.ts","sourceRoot":"","sources":["../src/durable-stream.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC,OAAO,iBAAiB,EAAE,QAAQ,EAAE,CAAC;AAC9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC,OAAO,iBAAiB,EAAE,QAAQ,EAAE,CAAC;AAEpI,+GAA+G;AAC/G,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9G,mFAAmF;AACnF,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,yBAAyB,EAAE,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,GAChH;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"durable-stream.d.ts","sourceRoot":"","sources":["../src/durable-stream.ts"],"names":[],"mappings":"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"}
|
package/dist/durable-stream.js
CHANGED
|
@@ -17,17 +17,24 @@ function resolveDurableStream(options) {
|
|
|
17
17
|
function stepInfo() {
|
|
18
18
|
return { step: dbos_sdk_1.DBOS.stepID ?? -1, attempt: dbos_sdk_1.DBOS.stepStatus?.currentAttempt ?? 1 };
|
|
19
19
|
}
|
|
20
|
-
//
|
|
20
|
+
// Only the parts toUIChunk renders; anything else would be written and never read.
|
|
21
21
|
function isContentPart(part) {
|
|
22
22
|
switch (part.type) {
|
|
23
|
-
case '
|
|
24
|
-
case '
|
|
25
|
-
case '
|
|
26
|
-
case '
|
|
27
|
-
case '
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
case 'text-start':
|
|
24
|
+
case 'text-delta':
|
|
25
|
+
case 'text-end':
|
|
26
|
+
case 'reasoning-start':
|
|
27
|
+
case 'reasoning-delta':
|
|
28
|
+
case 'reasoning-end':
|
|
29
|
+
case 'tool-input-start':
|
|
30
|
+
case 'tool-input-delta':
|
|
31
|
+
case 'tool-call':
|
|
32
|
+
case 'tool-result':
|
|
33
|
+
case 'source':
|
|
34
|
+
case 'file':
|
|
30
35
|
return true;
|
|
36
|
+
default:
|
|
37
|
+
return false;
|
|
31
38
|
}
|
|
32
39
|
}
|
|
33
40
|
// Bytes become base64 so a file part stays compact in Postgres.
|
|
@@ -105,9 +112,9 @@ class ModelStreamWriter {
|
|
|
105
112
|
}
|
|
106
113
|
}
|
|
107
114
|
exports.ModelStreamWriter = ModelStreamWriter;
|
|
108
|
-
/** Records a tool call's outcome from inside its step. */
|
|
109
|
-
function writeToolRecord(key, toolCallId, outcome) {
|
|
110
|
-
const record = { kind: 'tool', ...stepInfo(), toolCallId, ...outcome };
|
|
115
|
+
/** Records a tool call's outcome, with the message chunks it wrote, from inside its step. */
|
|
116
|
+
function writeToolRecord(key, toolCallId, outcome, chunks = []) {
|
|
117
|
+
const record = { kind: 'tool', ...stepInfo(), toolCallId, ...outcome, ...(chunks.length > 0 && { chunks }) };
|
|
111
118
|
return dbos_sdk_1.DBOS.writeStream(key, record);
|
|
112
119
|
}
|
|
113
120
|
/**
|
|
@@ -146,12 +153,15 @@ async function* uiChunks(options) {
|
|
|
146
153
|
const client = options.client ?? dbos_sdk_1.DBOS;
|
|
147
154
|
const state = {
|
|
148
155
|
offset: options.offset ?? 0,
|
|
149
|
-
resumed: (options.offset ?? 0) > 0,
|
|
150
156
|
openParts: new Map(),
|
|
157
|
+
detachedParts: new Set(),
|
|
158
|
+
toolChunksSent: new Map(),
|
|
151
159
|
ended: false,
|
|
152
160
|
};
|
|
153
161
|
if (state.offset === 0)
|
|
154
162
|
yield { type: 'start', messageId: options.messageId };
|
|
163
|
+
else
|
|
164
|
+
await restoreOpenCall(client, workflowID, key, state);
|
|
155
165
|
const emit = (record) => emitRecord(state, record, { sendReasoning, sendSources, onError });
|
|
156
166
|
// Phase 1: everything already stored, one value per query until an offset is empty; a superseded attempt is skipped whole.
|
|
157
167
|
const history = [];
|
|
@@ -166,13 +176,18 @@ async function* uiChunks(options) {
|
|
|
166
176
|
}
|
|
167
177
|
}
|
|
168
178
|
const finalAttempt = new Map();
|
|
169
|
-
|
|
179
|
+
// A re-executed tool call writes another record; the last one matches its checkpoint, so only its chunks (if any) are shown.
|
|
180
|
+
const finalToolRecord = new Map();
|
|
181
|
+
history.forEach((record, index) => {
|
|
170
182
|
if (record.kind === 'model' || record.kind === 'model-end')
|
|
171
183
|
finalAttempt.set(record.step, record.attempt);
|
|
172
|
-
|
|
173
|
-
|
|
184
|
+
if (record.kind === 'tool')
|
|
185
|
+
finalToolRecord.set(toolKey(record), index);
|
|
186
|
+
});
|
|
187
|
+
for (const [index, record] of history.entries()) {
|
|
174
188
|
const stale = (record.kind === 'model' || record.kind === 'model-end') && finalAttempt.get(record.step) !== record.attempt;
|
|
175
|
-
|
|
189
|
+
const staleChunks = record.kind === 'tool' && record.chunks !== undefined && finalToolRecord.get(toolKey(record)) !== index;
|
|
190
|
+
yield* stale ? skipRecord(state) : emit(staleChunks ? { ...record, chunks: undefined } : record);
|
|
176
191
|
if (state.ended)
|
|
177
192
|
return;
|
|
178
193
|
}
|
|
@@ -198,6 +213,10 @@ async function* uiChunks(options) {
|
|
|
198
213
|
yield { type: 'finish', finishReason: 'error' };
|
|
199
214
|
}
|
|
200
215
|
}
|
|
216
|
+
// A step's function id survives re-execution, and with it tell apart calls that reuse a provider's tool call id.
|
|
217
|
+
function toolKey(record) {
|
|
218
|
+
return `${record.step}:${record.toolCallId}`;
|
|
219
|
+
}
|
|
201
220
|
function offsetChunk(state) {
|
|
202
221
|
return { type: 'data-dbos-offset', data: { offset: state.offset }, transient: true };
|
|
203
222
|
}
|
|
@@ -211,17 +230,96 @@ function* closeStep(state) {
|
|
|
211
230
|
state.openStep = undefined;
|
|
212
231
|
state.openAttempt = undefined;
|
|
213
232
|
state.openParts.clear();
|
|
233
|
+
state.detachedParts.clear();
|
|
234
|
+
}
|
|
235
|
+
// Records outside the open model call a resume reads past before giving up; a reconnect mid-call finds it at once.
|
|
236
|
+
const RESTORE_SCAN_LIMIT = 100;
|
|
237
|
+
/**
|
|
238
|
+
* On resume, rebuild the model call that was open at `offset` by reading back to its start, so the reader continues
|
|
239
|
+
* exactly as an uninterrupted one would: a re-executed attempt is superseded, and step boundaries fall in the same place.
|
|
240
|
+
* Past RESTORE_SCAN_LIMIT unrelated records it gives up, and the resumed stream only lacks that step's `finish-step`.
|
|
241
|
+
*/
|
|
242
|
+
async function restoreOpenCall(client, workflowID, key, state) {
|
|
243
|
+
let step;
|
|
244
|
+
let attempt;
|
|
245
|
+
// Set once an earlier step's record is reached: the open call is fully read, and only a finish reason is still wanted.
|
|
246
|
+
let callRead = false;
|
|
247
|
+
let budget = RESTORE_SCAN_LIMIT;
|
|
248
|
+
const ended = new Set();
|
|
249
|
+
for (let index = state.offset - 1; index >= 0; index--) {
|
|
250
|
+
let record;
|
|
251
|
+
try {
|
|
252
|
+
record = await client.readStreamOffset(workflowID, key, index, { timeoutSeconds: 0 });
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
// A real offset never passes the stored records, so a gap means there is nothing to restore.
|
|
256
|
+
if (dbos_sdk_1.Error.isStreamTimeoutError(error))
|
|
257
|
+
break;
|
|
258
|
+
throw error;
|
|
259
|
+
}
|
|
260
|
+
if (record.kind === 'end')
|
|
261
|
+
break;
|
|
262
|
+
const model = record.kind === 'model' || record.kind === 'model-end' ? record : undefined;
|
|
263
|
+
if (model && step === undefined) {
|
|
264
|
+
step = model.step;
|
|
265
|
+
attempt = model.attempt;
|
|
266
|
+
}
|
|
267
|
+
if (model && !callRead && model.step === step) {
|
|
268
|
+
if (model.attempt === attempt)
|
|
269
|
+
restorePart(state, ended, model);
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
if (model)
|
|
273
|
+
callRead = true;
|
|
274
|
+
// As in an uninterrupted read, the finish reason carries over from the latest earlier call that ended.
|
|
275
|
+
if (callRead && (state.finishReason !== undefined || model?.kind === 'model-end')) {
|
|
276
|
+
if (model?.kind === 'model-end')
|
|
277
|
+
state.finishReason ??= finishReasonOf(model);
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
if (--budget === 0)
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
if (step === undefined)
|
|
284
|
+
return;
|
|
285
|
+
state.openStep = step;
|
|
286
|
+
state.openAttempt = attempt;
|
|
287
|
+
}
|
|
288
|
+
function finishReasonOf(record) {
|
|
289
|
+
return record.aborted ? 'other' : record.finishReason?.unified;
|
|
290
|
+
}
|
|
291
|
+
// One record of the open call, read backward: a part is open if its start comes before (i.e. is read after) any end.
|
|
292
|
+
function restorePart(state, ended, record) {
|
|
293
|
+
if (record.kind === 'model-end') {
|
|
294
|
+
state.finishReason ??= finishReasonOf(record);
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
for (const part of [...record.parts].reverse()) {
|
|
298
|
+
const kind = part.type === 'text-start' || part.type === 'text-end' ? 'text' : part.type === 'reasoning-start' || part.type === 'reasoning-end' ? 'reasoning' : undefined;
|
|
299
|
+
if (kind === undefined || !('id' in part))
|
|
300
|
+
continue;
|
|
301
|
+
const id = `${record.attempt}:${part.id}`;
|
|
302
|
+
if (part.type.endsWith('-end'))
|
|
303
|
+
ended.add(id);
|
|
304
|
+
else if (!ended.has(id)) {
|
|
305
|
+
state.openParts.set(id, kind);
|
|
306
|
+
state.detachedParts.add(id);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
214
309
|
}
|
|
215
310
|
// A live re-execution of the open step: end the stale attempt's parts and tell the client which ones to discard.
|
|
216
311
|
function* supersede(state, attempt) {
|
|
217
|
-
for (const [id, kind] of state.openParts)
|
|
218
|
-
|
|
312
|
+
for (const [id, kind] of state.openParts) {
|
|
313
|
+
if (!state.detachedParts.has(id))
|
|
314
|
+
yield { type: kind === 'text' ? 'text-end' : 'reasoning-end', id };
|
|
315
|
+
}
|
|
219
316
|
yield {
|
|
220
317
|
type: 'data-dbos-superseded',
|
|
221
318
|
data: { attempt: state.openAttempt, parts: [...state.openParts.keys()] },
|
|
222
319
|
transient: true,
|
|
223
320
|
};
|
|
224
321
|
state.openParts.clear();
|
|
322
|
+
state.detachedParts.clear();
|
|
225
323
|
state.openAttempt = attempt;
|
|
226
324
|
}
|
|
227
325
|
function* emitRecord(state, record, filter) {
|
|
@@ -230,9 +328,7 @@ function* emitRecord(state, record, filter) {
|
|
|
230
328
|
case 'model': {
|
|
231
329
|
if (state.openStep !== record.step) {
|
|
232
330
|
yield* closeStep(state);
|
|
233
|
-
|
|
234
|
-
yield { type: 'start-step' };
|
|
235
|
-
state.resumed = false;
|
|
331
|
+
yield { type: 'start-step' };
|
|
236
332
|
state.openStep = record.step;
|
|
237
333
|
state.openAttempt = record.attempt;
|
|
238
334
|
}
|
|
@@ -258,14 +354,28 @@ function* emitRecord(state, record, filter) {
|
|
|
258
354
|
case 'model-end':
|
|
259
355
|
// The stream outlives the call: the workflow may run more calls, so only its end (or closeDurableStream) ends the turn.
|
|
260
356
|
if (record.attempt === state.openAttempt)
|
|
261
|
-
state.finishReason = record
|
|
357
|
+
state.finishReason = finishReasonOf(record);
|
|
262
358
|
break;
|
|
263
|
-
case 'tool':
|
|
359
|
+
case 'tool': {
|
|
360
|
+
const key = toolKey(record);
|
|
361
|
+
const chunks = record.chunks ?? [];
|
|
362
|
+
const sent = state.toolChunksSent.get(key);
|
|
363
|
+
// A live re-execution that wrote the same chunks changes nothing; different ones (or none) replace what the client has.
|
|
364
|
+
if (chunks.length > 0 || sent !== undefined) {
|
|
365
|
+
const digest = (0, node_crypto_1.createHash)('sha256').update(JSON.stringify(chunks)).digest('base64');
|
|
366
|
+
if (sent !== digest) {
|
|
367
|
+
if (sent !== undefined)
|
|
368
|
+
yield { type: 'data-dbos-tool-superseded', data: { toolCallId: record.toolCallId }, transient: true };
|
|
369
|
+
state.toolChunksSent.set(key, digest);
|
|
370
|
+
yield* chunks;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
264
373
|
// Local tool errors are masked like the AI SDK does; provider-executed ones (in model records) pass through verbatim.
|
|
265
374
|
yield record.errorText !== undefined
|
|
266
375
|
? { type: 'tool-output-error', toolCallId: record.toolCallId, errorText: filter.onError(new Error(record.errorText)) }
|
|
267
376
|
: { type: 'tool-output-available', toolCallId: record.toolCallId, output: record.output };
|
|
268
377
|
break;
|
|
378
|
+
}
|
|
269
379
|
case 'ui':
|
|
270
380
|
yield* record.chunks;
|
|
271
381
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-stream.js","sourceRoot":"","sources":["../src/durable-stream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"durable-stream.js","sourceRoot":"","sources":["../src/durable-stream.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { durableCalls, DurableCallsOptions, durableEmbeddingCalls, durableImageCalls } from './middleware';
|
|
2
2
|
export { durableMCPTools, DurableMCPToolsOptions, MCPClientLike } from './mcp';
|
|
3
|
-
export { durableTools, DurableToolsOptions } from './tools';
|
|
3
|
+
export { durableTools, DurableToolsOptions, toolWriter } from './tools';
|
|
4
4
|
export { closeDurableStream, DurableStreamOptions, DurableStreamRecord, DurableStreamSource, ReadDurableStreamOptions, readDurableStream, writeDurableStream, } from './durable-stream';
|
|
5
5
|
export { agentTool, AgentTool, AgentToolOptions } from './agent-tool';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.agentTool = exports.writeDurableStream = exports.readDurableStream = exports.closeDurableStream = exports.durableTools = exports.durableMCPTools = exports.durableImageCalls = exports.durableEmbeddingCalls = exports.durableCalls = void 0;
|
|
3
|
+
exports.agentTool = exports.writeDurableStream = exports.readDurableStream = exports.closeDurableStream = exports.toolWriter = exports.durableTools = exports.durableMCPTools = exports.durableImageCalls = exports.durableEmbeddingCalls = exports.durableCalls = void 0;
|
|
4
4
|
var middleware_1 = require("./middleware");
|
|
5
5
|
Object.defineProperty(exports, "durableCalls", { enumerable: true, get: function () { return middleware_1.durableCalls; } });
|
|
6
6
|
Object.defineProperty(exports, "durableEmbeddingCalls", { enumerable: true, get: function () { return middleware_1.durableEmbeddingCalls; } });
|
|
@@ -9,6 +9,7 @@ var mcp_1 = require("./mcp");
|
|
|
9
9
|
Object.defineProperty(exports, "durableMCPTools", { enumerable: true, get: function () { return mcp_1.durableMCPTools; } });
|
|
10
10
|
var tools_1 = require("./tools");
|
|
11
11
|
Object.defineProperty(exports, "durableTools", { enumerable: true, get: function () { return tools_1.durableTools; } });
|
|
12
|
+
Object.defineProperty(exports, "toolWriter", { enumerable: true, get: function () { return tools_1.toolWriter; } });
|
|
12
13
|
var durable_stream_1 = require("./durable-stream");
|
|
13
14
|
Object.defineProperty(exports, "closeDurableStream", { enumerable: true, get: function () { return durable_stream_1.closeDurableStream; } });
|
|
14
15
|
Object.defineProperty(exports, "readDurableStream", { enumerable: true, get: function () { return durable_stream_1.readDurableStream; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA2G;AAAlG,0GAAA,YAAY,OAAA;AAAuB,mHAAA,qBAAqB,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AACpF,6BAA+E;AAAtE,sGAAA,eAAe,OAAA;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA2G;AAAlG,0GAAA,YAAY,OAAA;AAAuB,mHAAA,qBAAqB,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AACpF,6BAA+E;AAAtE,sGAAA,eAAe,OAAA;AACxB,iCAAwE;AAA/D,qGAAA,YAAY,OAAA;AAAuB,mGAAA,UAAU,OAAA;AACtD,mDAQ0B;AAPxB,oHAAA,kBAAkB,OAAA;AAKlB,mHAAA,iBAAiB,OAAA;AACjB,oHAAA,kBAAkB,OAAA;AAEpB,2CAAsE;AAA7D,uGAAA,SAAS,OAAA"}
|
package/dist/internal.d.ts
CHANGED
|
@@ -2,6 +2,15 @@ import { StepConfig } from '@dbos-inc/dbos-sdk';
|
|
|
2
2
|
export declare function isInWorkflowFunction(): boolean;
|
|
3
3
|
export declare function assertNotInTransaction(operation: string): void;
|
|
4
4
|
export declare function runDurableStep<T>(name: string, fn: () => Promise<T>, config: StepConfig): Promise<T>;
|
|
5
|
+
export declare function stepCancelSignal(): AbortSignal | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* DBOS discards a timed-out attempt's result, so a stream record of it would contradict the checkpoint. Returns the
|
|
8
|
+
* outcome to record instead: the timeout when the step ends with it, `null` when a retry follows, `undefined` if not timed out.
|
|
9
|
+
*/
|
|
10
|
+
export declare function timedOutOutcome(shouldRetry: StepConfig['shouldRetry']): Promise<{
|
|
11
|
+
errorText: string;
|
|
12
|
+
} | null | undefined>;
|
|
13
|
+
export declare function anySignal(...signals: (AbortSignal | undefined)[]): AbortSignal | undefined;
|
|
5
14
|
export declare function isAsyncIterable(value: unknown): value is AsyncIterable<unknown>;
|
|
6
15
|
export declare function restoreAISDKErrorIdentity(error: unknown): unknown;
|
|
7
16
|
export declare function withErrorClassification(options: StepConfig): StepConfig;
|
package/dist/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAI9D;AAGD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAOpG;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,CAE/E;AA2BD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAejE;AAKD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAMvE"}
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAI9D;AAGD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAOpG;AAGD,wBAAgB,gBAAgB,IAAI,WAAW,GAAG,SAAS,CAE1D;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAAC,CAQ/H;AAGD,wBAAgB,SAAS,CAAC,GAAG,OAAO,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,WAAW,GAAG,SAAS,CAG1F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,CAE/E;AA2BD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAejE;AAKD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAMvE"}
|
package/dist/internal.js
CHANGED
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isInWorkflowFunction = isInWorkflowFunction;
|
|
4
4
|
exports.assertNotInTransaction = assertNotInTransaction;
|
|
5
5
|
exports.runDurableStep = runDurableStep;
|
|
6
|
+
exports.stepCancelSignal = stepCancelSignal;
|
|
7
|
+
exports.timedOutOutcome = timedOutOutcome;
|
|
8
|
+
exports.anySignal = anySignal;
|
|
6
9
|
exports.isAsyncIterable = isAsyncIterable;
|
|
7
10
|
exports.restoreAISDKErrorIdentity = restoreAISDKErrorIdentity;
|
|
8
11
|
exports.withErrorClassification = withErrorClassification;
|
|
@@ -26,6 +29,29 @@ function runDurableStep(name, fn, config) {
|
|
|
26
29
|
throw restoreAISDKErrorIdentity(error);
|
|
27
30
|
});
|
|
28
31
|
}
|
|
32
|
+
// DBOS 5.1+ fires stepStatus.cancelSignal when the step's workflow is cancelled; older versions have none.
|
|
33
|
+
function stepCancelSignal() {
|
|
34
|
+
return dbos_sdk_1.DBOS.stepStatus?.cancelSignal;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* DBOS discards a timed-out attempt's result, so a stream record of it would contradict the checkpoint. Returns the
|
|
38
|
+
* outcome to record instead: the timeout when the step ends with it, `null` when a retry follows, `undefined` if not timed out.
|
|
39
|
+
*/
|
|
40
|
+
async function timedOutOutcome(shouldRetry) {
|
|
41
|
+
const status = dbos_sdk_1.DBOS.stepStatus;
|
|
42
|
+
if (status?.timeoutSignal?.aborted !== true)
|
|
43
|
+
return undefined;
|
|
44
|
+
const reason = status.timeoutSignal.reason;
|
|
45
|
+
const lastAttempt = status.currentAttempt === undefined || status.currentAttempt >= (status.maxAttempts ?? 1);
|
|
46
|
+
// DBOS asks the step's shouldRetry about this same error (the signal's reason) before retrying; a throw ends the step.
|
|
47
|
+
const retried = !lastAttempt && (await Promise.resolve(shouldRetry ? shouldRetry(reason) : true).catch(() => false));
|
|
48
|
+
return retried ? null : { errorText: reason instanceof Error ? reason.message : 'The step timed out.' };
|
|
49
|
+
}
|
|
50
|
+
// Fires when any given signal does; a lone signal is returned as-is.
|
|
51
|
+
function anySignal(...signals) {
|
|
52
|
+
const defined = signals.filter((s) => s !== undefined);
|
|
53
|
+
return defined.length <= 1 ? defined[0] : AbortSignal.any(defined);
|
|
54
|
+
}
|
|
29
55
|
function isAsyncIterable(value) {
|
|
30
56
|
return typeof value?.[Symbol.asyncIterator] === 'function';
|
|
31
57
|
}
|