@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 +83 -39
- package/dist/durable-stream.d.ts +7 -3
- package/dist/durable-stream.d.ts.map +1 -1
- package/dist/durable-stream.js +118 -15
- 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.map +1 -1
- package/dist/middleware.js +30 -10
- 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 +6 -4
- package/src/durable-stream.ts +124 -17
- package/src/index.ts +1 -1
- package/src/internal.ts +25 -0
- package/src/mcp.ts +14 -7
- package/src/middleware.ts +31 -11
- 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
|
|
|
@@ -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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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":";;;AAsBA,oDAIC;AAoGD,0CAGC;AAMD,gDAIC;AAGD,gDAIC;AA2BD,8CAYC;AAzLD,6CAAyC;AACzC,iDAA6E;AAqB7E,SAAgB,oBAAoB,CAAC,OAAyC;IAC5E,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACxE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;AACvH,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,EAAE,IAAI,EAAE,eAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,eAAI,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CAAC,IAA+B;IACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB,CAAC;QACvB,KAAK,eAAe,CAAC;QACrB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,UAAU,CAAC,IAA+B;IACjD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,UAAU,EAAE,CAAC;QAC9F,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IACnG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yHAAyH;AACzH,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,MAA2B;IACpE,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,eAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC;AAED,wIAAwI;AACxI,MAAa,iBAAiB;IASC;IARrB,OAAO,GAAgC,EAAE,CAAC;IAC1C,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACzC,OAAO,CAAU;IACjB,KAAK,CAA4C;IACxC,IAAI,GAAG,eAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC1C,+GAA+G;IAC9F,OAAO,GAAG,IAAA,wBAAU,GAAE,CAAC;IAExC,YAA6B,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAE9D,IAAI,CAAC,IAA+B;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;YAC9D,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAClF,CAAC;IAED,4IAA4I;IAC5I,KAAK,CAAC,GAAG,CAAC,OAA0E;QAClF,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACtF,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC;IACrD,CAAC;IAED,gJAAgJ;IAChJ,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAEO,KAAK;QACX,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,iHAAiH;IACzG,KAAK,CAAC,MAA2B;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;aACpB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aAC9F,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;CACF;AAjDD,8CAiDC;AAED,0DAA0D;AAC1D,SAAgB,eAAe,CAAC,GAAW,EAAE,UAAkB,EAAE,OAAoD;IACnH,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC;IAC5F,OAAO,eAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,GAAW,EAAE,MAAwB;IACtE,MAAM,MAAM,GAAG,eAAI,CAAC,UAAU,CAAC;IAC/B,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;IAClH,OAAO,eAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,0JAA0J;AACnJ,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,YAAY,GAAG,MAAM;IACzE,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAClE,MAAM,eAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,eAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AA0BD,0GAA0G;AAC1G,SAAgB,iBAAiB,CAAC,OAAiC;IACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,IAAI,cAAc,CAAiB;QACxC,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,IAAI;gBAAE,UAAU,CAAC,KAAK,EAAE,CAAC;;gBACxB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,MAAM;YACV,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAiC;IACxD,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,EAAE,WAAW,GAAG,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC,oBAAoB,EAAE,GAAG,OAAO,CAAC;IACrH,MAAM,MAAM,GAAwB,OAAO,CAAC,MAAM,IAAI,eAAI,CAAC;IAC3D,MAAM,KAAK,GAAgB;QACzB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC;QAC3B,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAClC,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,KAAK,EAAE,KAAK;KACb,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;IAC9E,MAAM,IAAI,GAAG,CAAC,MAA2B,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IAEjH,2HAA2H;IAC3H,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,SAAS,CAAC;QACR,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAsB,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1I,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,gBAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACzD,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;YAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5G,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC;QAC3H,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO;IAC1B,CAAC;IAED,0FAA0F;IAC1F,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,MAAM,CAAC,UAAU,CAAsB,UAAU,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC7G,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO;IAC1B,CAAC;IAED,4HAA4H;IAC5H,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC;IAC/E,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,MAAM,KAAK,uBAAY,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,uBAAY,CAAC,OAAO,IAAI,MAAM,KAAK,uBAAY,CAAC,OAAO,IAAI,MAAM,KAAK,uBAAY,CAAC,QAAQ,EAAE,CAAC;QAC1I,uGAAuG;QACvG,MAAM,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,YAA8B,EAAE,CAAC;IACvI,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC;QAC7E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,EAAE,CAAC;QACrH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAaD,SAAS,WAAW,CAAC,KAAkB;IACrC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAoB,CAAC;AACzG,CAAC;AAED,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAkB;IACrC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAClB,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAkB;IACpC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAChE,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,iHAAiH;AACjH,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAkB,EAAE,OAAe;IACrD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS;QAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC;IAC7G,MAAM;QACJ,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE;QACxE,SAAS,EAAE,IAAI;KACE,CAAC;IACpB,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,QAAQ,CAAC,CAAC,UAAU,CAClB,KAAkB,EAClB,MAA2B,EAC3B,MAA6F;IAE7F,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAClB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,OAAO;oBAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;gBACjD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtB,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC7B,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;YACrC,CAAC;iBAAM,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;gBAChD,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;oBAAE,SAAS;gBAC1E,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAAE,SAAS;gBAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACrB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;oBAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACvJ,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;oBAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClG,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,WAAW;YACd,wHAAwH;YACxH,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,WAAW;gBAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC;YACvH,MAAM;QACR,KAAK,MAAM;YACT,sHAAsH;YACtH,MAAM,MAAM,CAAC,SAAS,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;gBACtH,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5F,MAAM;QACR,KAAK,IAAI;YACP,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACrB,MAAM;QACR,KAAK,KAAK;YACR,+DAA+D;YAC/D,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;YACzB,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,YAA8B,EAAE,CAAC;YAC9E,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,OAAO;IACX,CAAC;IACD,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAID,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,qIAAqI;AACrI,SAAS,SAAS,CAAC,IAA+B,EAAE,OAAe;IACjE,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7E,KAAK,YAAY;YACf,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChG,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3E,KAAK,iBAAiB;YACpB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClF,KAAK,iBAAiB;YACpB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrG,KAAK,eAAe;YAClB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChF,KAAK,kBAAkB;YACrB,OAAO;gBACL,IAAI,EAAE,kBAAkB;gBACxB,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACvF,KAAK,WAAW;YACd,OAAO;gBACL,IAAI,EAAE,sBAAsB;gBAC5B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,OAAO;gBACjB,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACnJ,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxK,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,UAAU,KAAK,KAAK;gBAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBACtH,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrK,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACjK,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnI,CAAC;QACD;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
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
|
}
|
package/dist/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":";;AAEA,oDAGC;AAED,wDAIC;AAGD,wCAOC;AAED,0CAEC;AA2BD,8DAeC;AAKD,0DAMC;
|
|
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,
|
|
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"}
|