@dbos-inc/vercel-ai 0.4.4 → 0.6.3-preview

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 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.21+ or v5, AI SDK v7+, and a Postgres database for DBOS.
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
 
@@ -84,39 +84,6 @@ durableCalls({
84
84
  });
85
85
  ```
86
86
 
87
- ## Durable Streams
88
-
89
- You can **durably stream** agent or model output so it can be read by an external client or UI.
90
- To do this, configure `durableCalls` or `durableTools`/`durableMCPTools` with a durable stream name:
91
-
92
- ```ts
93
- import { createUIMessageStreamResponse, streamText } from 'ai';
94
- import { durableCalls, durableTools, readDurableStream } from '@dbos-inc/vercel-ai';
95
-
96
- const model = wrapLanguageModel({ model: openai('gpt-5'), middleware: durableCalls({ durableStream: 'ui' }) });
97
- const tools = durableTools(myTools, { durableStream: 'ui' });
98
-
99
- const chatTurn = DBOS.registerWorkflow(async (messages: ModelMessage[]) => {
100
- const result = streamText({ model, messages, tools, stopWhen: stepCountIs(10) });
101
- return await result.text;
102
- }, { name: 'chatTurn' });
103
-
104
- const handle = await DBOS.startWorkflow(chatTurn)(messages);
105
- return createUIMessageStreamResponse({
106
- stream: readDurableStream({ workflowID: handle.workflowID, key: 'ui', messageId }),
107
- });
108
- ```
109
-
110
- You can read from a durable stream using `readDurableStream`, for example to stream it to a UI.
111
- It emits a stream of AI SDK `UIMessageChunk`.
112
- You can also pass a `DBOSClient` into `readDurableStream` to read it from a different process.
113
-
114
- You can write your own data to a stream with `writeDurableStream(key, chunks)`.
115
- Your streams are closed when your workflow finishes; you can also close a stream early using `closeDurableStream`.
116
-
117
- If a workflow is interrupted during a model call, when the workflow recovers, it restarts the model call and streams its output again.
118
- 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.
119
-
120
87
  ## Durable Tools
121
88
 
122
89
  To durably checkpoint your agents' tool calls, wrap them in `durableTools`:
@@ -155,6 +122,73 @@ const tools = durableTools(myTools, {
155
122
 
156
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`.
157
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
+
158
192
  ### Durable MCP Tools
159
193
 
160
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:
@@ -165,9 +199,13 @@ import { durableMCPTools } from '@dbos-inc/vercel-ai';
165
199
 
166
200
  const agent = DBOS.registerWorkflow(async (question: string) => {
167
201
  const mcpClient = await createMCPClient({ transport: { type: 'http', url: MCP_URL } });
168
- const tools = await durableMCPTools(mcpClient);
169
- const result = await generateText({ model, prompt: question, tools, stopWhen: stepCountIs(10) });
170
- return result.text;
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
+ }
171
209
  }, { name: 'mcpAgent' });
172
210
  ```
173
211
 
@@ -219,7 +257,10 @@ const embeddingModel = wrapEmbeddingModel({
219
257
  middleware: durableEmbeddingCalls({ retriesAllowed: true }),
220
258
  });
221
259
 
222
- const { embeddings } = await embedMany({ model: embeddingModel, values: chunks });
260
+ const embedChunks = DBOS.registerWorkflow(async (chunks: string[]) => {
261
+ const { embeddings } = await embedMany({ model: embeddingModel, values: chunks });
262
+ return embeddings;
263
+ }, { name: 'embedChunks' });
223
264
  ```
224
265
 
225
266
  ## Durable Image Models
@@ -232,6 +273,9 @@ import { durableImageCalls } from '@dbos-inc/vercel-ai';
232
273
 
233
274
  const imageModel = wrapImageModel({ model: openai.imageModel('gpt-image-1'), middleware: durableImageCalls() });
234
275
 
235
- const { images } = await generateImage({ model: imageModel, prompt: 'a durable cat' });
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' });
236
280
  ```
237
281
 
@@ -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
- /** Number of records already consumed, from the last `data-dbos-offset` chunk. */
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":"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"}
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,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;CAAE,GACpI;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,UAAU,qBAAqB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,qBAAqB,GAAG,SAAS,CAIjH;AA+CD,wIAAwI;AACxI,qBAAa,iBAAiB;IAShB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAEX,MAAM,EAAE,qBAAqB;IAE1D,IAAI,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI;IAO3C,4IAA4I;IACtI,GAAG,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,2BAA2B,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpG,gJAAgJ;IAC1I,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,KAAK;CAOd;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EACpD,MAAM,GAAE,cAAc,EAAO,GAC5B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvF;AAED,0JAA0J;AAC1J,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1F;AAED,gHAAgH;AAChH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChH,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,SAAS,IAAI,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,IAAI,CAAC,CAAA;KAAE,CAAC;CAC5G;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iGAAiG;IACjG,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0IAA0I;IAC1I,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACtC;AAED,0GAA0G;AAC1G,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,cAAc,CAAC,cAAc,CAAC,CAYnG"}
@@ -112,9 +112,9 @@ class ModelStreamWriter {
112
112
  }
113
113
  }
114
114
  exports.ModelStreamWriter = ModelStreamWriter;
115
- /** Records a tool call's outcome from inside its step. */
116
- function writeToolRecord(key, toolCallId, outcome) {
117
- 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 }) };
118
118
  return dbos_sdk_1.DBOS.writeStream(key, record);
119
119
  }
120
120
  /**
@@ -153,12 +153,15 @@ async function* uiChunks(options) {
153
153
  const client = options.client ?? dbos_sdk_1.DBOS;
154
154
  const state = {
155
155
  offset: options.offset ?? 0,
156
- resumed: (options.offset ?? 0) > 0,
157
156
  openParts: new Map(),
157
+ detachedParts: new Set(),
158
+ toolChunksSent: new Map(),
158
159
  ended: false,
159
160
  };
160
161
  if (state.offset === 0)
161
162
  yield { type: 'start', messageId: options.messageId };
163
+ else
164
+ await restoreOpenCall(client, workflowID, key, state);
162
165
  const emit = (record) => emitRecord(state, record, { sendReasoning, sendSources, onError });
163
166
  // Phase 1: everything already stored, one value per query until an offset is empty; a superseded attempt is skipped whole.
164
167
  const history = [];
@@ -173,13 +176,18 @@ async function* uiChunks(options) {
173
176
  }
174
177
  }
175
178
  const finalAttempt = new Map();
176
- for (const record of history) {
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) => {
177
182
  if (record.kind === 'model' || record.kind === 'model-end')
178
183
  finalAttempt.set(record.step, record.attempt);
179
- }
180
- for (const record of history) {
184
+ if (record.kind === 'tool')
185
+ finalToolRecord.set(toolKey(record), index);
186
+ });
187
+ for (const [index, record] of history.entries()) {
181
188
  const stale = (record.kind === 'model' || record.kind === 'model-end') && finalAttempt.get(record.step) !== record.attempt;
182
- yield* stale ? skipRecord(state) : emit(record);
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);
183
191
  if (state.ended)
184
192
  return;
185
193
  }
@@ -205,6 +213,10 @@ async function* uiChunks(options) {
205
213
  yield { type: 'finish', finishReason: 'error' };
206
214
  }
207
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
+ }
208
220
  function offsetChunk(state) {
209
221
  return { type: 'data-dbos-offset', data: { offset: state.offset }, transient: true };
210
222
  }
@@ -218,17 +230,96 @@ function* closeStep(state) {
218
230
  state.openStep = undefined;
219
231
  state.openAttempt = undefined;
220
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
+ }
221
309
  }
222
310
  // A live re-execution of the open step: end the stale attempt's parts and tell the client which ones to discard.
223
311
  function* supersede(state, attempt) {
224
- for (const [id, kind] of state.openParts)
225
- yield { type: kind === 'text' ? 'text-end' : 'reasoning-end', id };
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
+ }
226
316
  yield {
227
317
  type: 'data-dbos-superseded',
228
318
  data: { attempt: state.openAttempt, parts: [...state.openParts.keys()] },
229
319
  transient: true,
230
320
  };
231
321
  state.openParts.clear();
322
+ state.detachedParts.clear();
232
323
  state.openAttempt = attempt;
233
324
  }
234
325
  function* emitRecord(state, record, filter) {
@@ -237,9 +328,7 @@ function* emitRecord(state, record, filter) {
237
328
  case 'model': {
238
329
  if (state.openStep !== record.step) {
239
330
  yield* closeStep(state);
240
- if (!state.resumed)
241
- yield { type: 'start-step' };
242
- state.resumed = false;
331
+ yield { type: 'start-step' };
243
332
  state.openStep = record.step;
244
333
  state.openAttempt = record.attempt;
245
334
  }
@@ -265,14 +354,28 @@ function* emitRecord(state, record, filter) {
265
354
  case 'model-end':
266
355
  // The stream outlives the call: the workflow may run more calls, so only its end (or closeDurableStream) ends the turn.
267
356
  if (record.attempt === state.openAttempt)
268
- state.finishReason = record.aborted ? 'other' : record.finishReason?.unified;
357
+ state.finishReason = finishReasonOf(record);
269
358
  break;
270
- 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
+ }
271
373
  // Local tool errors are masked like the AI SDK does; provider-executed ones (in model records) pass through verbatim.
272
374
  yield record.errorText !== undefined
273
375
  ? { type: 'tool-output-error', toolCallId: record.toolCallId, errorText: filter.onError(new Error(record.errorText)) }
274
376
  : { type: 'tool-output-available', toolCallId: record.toolCallId, output: record.output };
275
377
  break;
378
+ }
276
379
  case 'ui':
277
380
  yield* record.chunks;
278
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
@@ -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;AAC5D,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"}
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,iCAA4D;AAAnD,qGAAA,YAAY,OAAA;AACrB,mDAQ0B;AAPxB,oHAAA,kBAAkB,OAAA;AAKlB,mHAAA,iBAAiB,OAAA;AACjB,oHAAA,kBAAkB,OAAA;AAEpB,2CAAsE;AAA7D,uGAAA,SAAS,OAAA"}
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"}
@@ -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;
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,iBAAiB,EAAE,QAAQ,EAAE,CAAC;AAMvE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAaD,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,oHAAoH;IACpH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiCD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CA4EnH"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.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;AAMvE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAaD,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,oHAAoH;IACpH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiCD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CAmFnH"}