@ai-sdk/workflow 2.0.70 → 2.0.71
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/CHANGELOG.md +12 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -19
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/do-generate-step.ts +14 -2
- package/src/do-stream-step.ts +3 -16
- package/src/language-model-prompt-to-model-messages.ts +28 -0
- package/src/model-call-iterator.ts +3 -0
- package/src/model-call.ts +6 -1
- package/src/workflow-agent.ts +14 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ai-sdk/workflow
|
|
2
2
|
|
|
3
|
+
## 2.0.71
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6d6900f: fix(workflow): pass URL-backed inputs through workflow functions before model steps
|
|
8
|
+
|
|
9
|
+
URL-backed image and file inputs are no longer downloaded in the workflow context, where `fetch` is unavailable. Model steps now download unsupported URLs using the resolved model's `supportedUrls`, for both `stream()` and `generate()`.
|
|
10
|
+
|
|
11
|
+
A custom `experimental_download` function now runs inside the model step instead of the workflow context. Mark it with `'use step'` so it can be passed to the step (as with `repairToolCall`).
|
|
12
|
+
|
|
13
|
+
- ai@7.0.139
|
|
14
|
+
|
|
3
15
|
## 2.0.70
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -397,6 +397,7 @@ type WorkflowAgentOptions<TTools extends ToolSet = ToolSet, TRuntimeContext exte
|
|
|
397
397
|
experimental_repairToolCall?: ToolCallRepairFunction$1<TTools>;
|
|
398
398
|
/**
|
|
399
399
|
* Default custom download function to use for URLs.
|
|
400
|
+
* Mark the function with `'use step'` when used in a workflow.
|
|
400
401
|
*
|
|
401
402
|
* Per-stream `experimental_download` values passed to `stream()` override this default.
|
|
402
403
|
*/
|
|
@@ -781,6 +782,7 @@ type WorkflowAgentCallOptions<TTools extends ToolSet = ToolSet, TRuntimeContext
|
|
|
781
782
|
/**
|
|
782
783
|
* Custom download function to use for URLs.
|
|
783
784
|
* By default, files are downloaded if the model does not support the URL for the given media type.
|
|
785
|
+
* Mark the function with `'use step'` when used in a workflow.
|
|
784
786
|
*/
|
|
785
787
|
experimental_download?: DownloadFunction;
|
|
786
788
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["CoreTelemetryOptions","SandboxSession","ToolCallRepairFunction"],"sources":["../src/model-call.ts","../src/types.ts","../src/workflow-agent.ts","../src/to-ui-message-chunk.ts","../src/normalize-ui-message-stream.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["CoreTelemetryOptions","SandboxSession","ToolCallRepairFunction"],"sources":["../src/model-call.ts","../src/types.ts","../src/workflow-agent.ts","../src/to-ui-message-chunk.ts","../src/normalize-ui-message-stream.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -382,6 +382,26 @@ async function buildModelStepResult(raw, toolCalls, finish, providerExecutedTool
|
|
|
382
382
|
};
|
|
383
383
|
}
|
|
384
384
|
//#endregion
|
|
385
|
+
//#region src/language-model-prompt-to-model-messages.ts
|
|
386
|
+
/**
|
|
387
|
+
* Prepares a workflow-side `LanguageModelV4Prompt` for a second, model-aware
|
|
388
|
+
* `convertToLanguageModelPrompt` pass inside a model step.
|
|
389
|
+
*
|
|
390
|
+
* The workflow-side conversion preserves URLs (it cannot download them) and
|
|
391
|
+
* filters out approval responses for tools that are not provider-executed.
|
|
392
|
+
* The remaining approval responses are restored with the `providerExecuted`
|
|
393
|
+
* marker that the second conversion expects.
|
|
394
|
+
*/
|
|
395
|
+
function languageModelPromptToModelMessages(prompt) {
|
|
396
|
+
return prompt.map((message) => message.role !== "tool" ? message : {
|
|
397
|
+
...message,
|
|
398
|
+
content: message.content.map((part) => part.type === "tool-approval-response" ? {
|
|
399
|
+
...part,
|
|
400
|
+
providerExecuted: true
|
|
401
|
+
} : part)
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
//#endregion
|
|
385
405
|
//#region src/serializable-schema.ts
|
|
386
406
|
/**
|
|
387
407
|
* Converts a ToolSet (with Zod/standard schemas and execute functions) to a
|
|
@@ -652,6 +672,16 @@ async function generateModelCall(prompt, modelInit, serializedTools, options, la
|
|
|
652
672
|
if (remaining != null && remaining <= 0) throw new DOMException("The generation deadline expired.", "TimeoutError");
|
|
653
673
|
const abortSignal = remaining == null ? options.abortSignal : AbortSignal.any([...options.abortSignal == null ? [] : [options.abortSignal], AbortSignal.timeout(remaining)]);
|
|
654
674
|
const model = resolveLanguageModel(modelInit);
|
|
675
|
+
const modelPrompt = await convertToLanguageModelPrompt({
|
|
676
|
+
prompt: {
|
|
677
|
+
instructions: void 0,
|
|
678
|
+
messages: languageModelPromptToModelMessages(prompt)
|
|
679
|
+
},
|
|
680
|
+
supportedUrls: await model.supportedUrls,
|
|
681
|
+
download: options.download,
|
|
682
|
+
abortSignal,
|
|
683
|
+
provider: model.provider.split(".")[0]
|
|
684
|
+
});
|
|
655
685
|
const tools = resolveSerializableTools(serializedTools);
|
|
656
686
|
const toolChoice = prepareToolChoice({ toolChoice: options.toolChoice });
|
|
657
687
|
const modelTools = await prepareTools({ tools });
|
|
@@ -680,7 +710,7 @@ async function generateModelCall(prompt, modelInit, serializedTools, options, la
|
|
|
680
710
|
callId: callId ?? "",
|
|
681
711
|
execute: () => model.doGenerate({
|
|
682
712
|
...settings,
|
|
683
|
-
prompt:
|
|
713
|
+
prompt: modelPrompt,
|
|
684
714
|
tools: modelTools,
|
|
685
715
|
toolChoice,
|
|
686
716
|
responseFormat: options.responseFormat,
|
|
@@ -707,7 +737,7 @@ async function generateModelCall(prompt, modelInit, serializedTools, options, la
|
|
|
707
737
|
toolCall,
|
|
708
738
|
tools,
|
|
709
739
|
repairToolCall: options.repairToolCall,
|
|
710
|
-
instructions:
|
|
740
|
+
instructions: modelPrompt.filter((message) => message.role === "system").map((message) => message.content).join("\n") || void 0,
|
|
711
741
|
messages: prompt.filter((message) => message.role !== "system")
|
|
712
742
|
})));
|
|
713
743
|
if ((toolChoice.type === "required" || toolChoice.type === "tool") && !toolCalls.some((call) => toolChoice.type === "required" || call.toolName === toolChoice.toolName)) throw new ToolChoiceViolationError({
|
|
@@ -837,13 +867,7 @@ async function streamModelStep(conversationPrompt, modelInit, writable, serializ
|
|
|
837
867
|
try {
|
|
838
868
|
const { stream } = await retry(() => experimental_streamLanguageModelCall({
|
|
839
869
|
model: modelWithTransforms,
|
|
840
|
-
messages: conversationPrompt
|
|
841
|
-
...message,
|
|
842
|
-
content: message.content.map((part) => part.type === "tool-approval-response" ? {
|
|
843
|
-
...part,
|
|
844
|
-
providerExecuted: true
|
|
845
|
-
} : part)
|
|
846
|
-
}),
|
|
870
|
+
messages: languageModelPromptToModelMessages(conversationPrompt),
|
|
847
871
|
allowSystemInMessages: true,
|
|
848
872
|
tools,
|
|
849
873
|
toolChoice: options?.toolChoice,
|
|
@@ -862,6 +886,7 @@ async function streamModelStep(conversationPrompt, modelInit, writable, serializ
|
|
|
862
886
|
stopSequences: options?.stopSequences,
|
|
863
887
|
seed: options?.seed,
|
|
864
888
|
repairToolCall: options?.repairToolCall,
|
|
889
|
+
download: options?.download,
|
|
865
890
|
...languageModelCallTelemetry
|
|
866
891
|
}));
|
|
867
892
|
return stream;
|
|
@@ -1182,7 +1207,7 @@ function mergePrepareStepGenerationSettings(current, overrides) {
|
|
|
1182
1207
|
...definedOverrides
|
|
1183
1208
|
};
|
|
1184
1209
|
}
|
|
1185
|
-
async function* modelCallIterator({ prompt, mode = "stream", include, initialInstructions, initialMessages = prompt, tools = {}, writable, model, stopConditions, onStepEnd, onStepFinish, onStepStart, onError, prepareStep, generationSettings, toolChoice, runtimeContext, toolsContext, telemetry, includeRawChunks = false, timeoutAt, repairToolCall, responseFormat, experimental_transform, experimental_sandbox: sandbox }) {
|
|
1210
|
+
async function* modelCallIterator({ prompt, mode = "stream", include, initialInstructions, initialMessages = prompt, tools = {}, writable, model, stopConditions, onStepEnd, onStepFinish, onStepStart, onError, prepareStep, generationSettings, toolChoice, runtimeContext, toolsContext, telemetry, includeRawChunks = false, timeoutAt, repairToolCall, download, responseFormat, experimental_transform, experimental_sandbox: sandbox }) {
|
|
1186
1211
|
let conversationPrompt = [...prompt];
|
|
1187
1212
|
let currentModel = model;
|
|
1188
1213
|
let currentGenerationSettings = generationSettings ?? {};
|
|
@@ -1310,6 +1335,7 @@ async function* modelCallIterator({ prompt, mode = "stream", include, initialIns
|
|
|
1310
1335
|
includeRawChunks,
|
|
1311
1336
|
timeoutAt,
|
|
1312
1337
|
repairToolCall,
|
|
1338
|
+
download,
|
|
1313
1339
|
responseFormat,
|
|
1314
1340
|
include,
|
|
1315
1341
|
experimental_transform,
|
|
@@ -1795,7 +1821,7 @@ var WorkflowAgent = class {
|
|
|
1795
1821
|
allowSystemInMessages: this.allowSystemInMessages,
|
|
1796
1822
|
...effectivePrompt != null ? { prompt: effectivePrompt } : { messages: effectiveMessages }
|
|
1797
1823
|
});
|
|
1798
|
-
const
|
|
1824
|
+
const workflowDownload = async (requests) => requests.map(() => null);
|
|
1799
1825
|
const sandbox = options.experimental_sandbox ?? this.experimentalSandbox;
|
|
1800
1826
|
const abortSignalTimeout = isInWorkflow() ? void 0 : options.timeout;
|
|
1801
1827
|
const effectiveAbortSignal = mergeAbortSignals(options.abortSignal ?? effectiveGenerationSettings.abortSignal, abortSignalTimeout);
|
|
@@ -1816,7 +1842,8 @@ var WorkflowAgent = class {
|
|
|
1816
1842
|
effectiveTelemetry,
|
|
1817
1843
|
telemetryDispatcher,
|
|
1818
1844
|
prompt,
|
|
1819
|
-
download,
|
|
1845
|
+
download: effectiveDownloadFromPrepare,
|
|
1846
|
+
workflowDownload,
|
|
1820
1847
|
sandbox,
|
|
1821
1848
|
effectiveAbortSignal,
|
|
1822
1849
|
timeoutAt,
|
|
@@ -1825,7 +1852,7 @@ var WorkflowAgent = class {
|
|
|
1825
1852
|
};
|
|
1826
1853
|
}
|
|
1827
1854
|
async execute(options, mode = "stream") {
|
|
1828
|
-
const { onEnd, effectiveModel, effectiveInstructions, effectiveGenerationSettings, effectiveRuntimeContext, effectiveToolsContext, effectiveToolChoiceFromPrepare, effectiveStopWhenFromPrepare, effectiveActiveToolsFromPrepare, effectiveToolApprovalSecret, effectiveTelemetry, telemetryDispatcher, prompt, download, sandbox, effectiveAbortSignal, timeoutAt, mergedOnToolExecutionStart, mergedOnToolExecutionEnd } = await this.prepareInvocation(options, mode);
|
|
1855
|
+
const { onEnd, effectiveModel, effectiveInstructions, effectiveGenerationSettings, effectiveRuntimeContext, effectiveToolsContext, effectiveToolChoiceFromPrepare, effectiveStopWhenFromPrepare, effectiveActiveToolsFromPrepare, effectiveToolApprovalSecret, effectiveTelemetry, telemetryDispatcher, prompt, download, workflowDownload, sandbox, effectiveAbortSignal, timeoutAt, mergedOnToolExecutionStart, mergedOnToolExecutionEnd } = await this.prepareInvocation(options, mode);
|
|
1829
1856
|
const initialResponseMessages = [];
|
|
1830
1857
|
const abortReason = () => effectiveAbortSignal?.reason === void 0 ? void 0 : { value: effectiveAbortSignal.reason };
|
|
1831
1858
|
const collectedApprovals = collectToolApprovals({ messages: prompt.messages });
|
|
@@ -1867,7 +1894,7 @@ var WorkflowAgent = class {
|
|
|
1867
1894
|
tool,
|
|
1868
1895
|
errorMode: "text",
|
|
1869
1896
|
supportedUrls: {},
|
|
1870
|
-
download
|
|
1897
|
+
download: workflowDownload
|
|
1871
1898
|
})
|
|
1872
1899
|
});
|
|
1873
1900
|
continue;
|
|
@@ -1908,7 +1935,7 @@ var WorkflowAgent = class {
|
|
|
1908
1935
|
tool,
|
|
1909
1936
|
errorMode: "text",
|
|
1910
1937
|
supportedUrls: {},
|
|
1911
|
-
download
|
|
1938
|
+
download: workflowDownload
|
|
1912
1939
|
})
|
|
1913
1940
|
});
|
|
1914
1941
|
continue;
|
|
@@ -1975,7 +2002,7 @@ var WorkflowAgent = class {
|
|
|
1975
2002
|
const modelPrompt = await convertToLanguageModelPrompt({
|
|
1976
2003
|
prompt,
|
|
1977
2004
|
supportedUrls: {},
|
|
1978
|
-
download
|
|
2005
|
+
download: workflowDownload
|
|
1979
2006
|
});
|
|
1980
2007
|
const mergedGenerationSettings = {
|
|
1981
2008
|
...effectiveGenerationSettings,
|
|
@@ -2072,7 +2099,7 @@ var WorkflowAgent = class {
|
|
|
2072
2099
|
const startTime = Date.now();
|
|
2073
2100
|
let result;
|
|
2074
2101
|
try {
|
|
2075
|
-
const execute = () => executeTool(toolCall, tools, messages, resolvedContext, effectiveAbortSignal,
|
|
2102
|
+
const execute = () => executeTool(toolCall, tools, messages, resolvedContext, effectiveAbortSignal, workflowDownload, stepSandbox);
|
|
2076
2103
|
result = telemetryDispatcher.executeTool != null ? await telemetryDispatcher.executeTool({
|
|
2077
2104
|
callId: "workflow-agent",
|
|
2078
2105
|
toolCallId: toolCall.toolCallId,
|
|
@@ -2207,6 +2234,7 @@ var WorkflowAgent = class {
|
|
|
2207
2234
|
includeRawChunks: options.includeRawChunks ?? false,
|
|
2208
2235
|
timeoutAt,
|
|
2209
2236
|
repairToolCall: options.repairToolCall ?? options.experimental_repairToolCall ?? this.repairToolCall,
|
|
2237
|
+
download,
|
|
2210
2238
|
responseFormat: await (options.output ?? this.output)?.responseFormat,
|
|
2211
2239
|
experimental_transform: options.experimental_transform,
|
|
2212
2240
|
experimental_sandbox: sandbox
|
|
@@ -2284,7 +2312,7 @@ var WorkflowAgent = class {
|
|
|
2284
2312
|
const executableResults = await Promise.all(executableToolCalls.map((toolCall) => executeToolWithCallbacks(toolCall, stepTools, iterMessages, toolsContext, currentStepNumber, toolExecutionSandbox)));
|
|
2285
2313
|
const providerResultEntries = await Promise.all(providerToolCallsForResults.filter((call) => !providerApprovalRequests.some((request) => request.toolCall.toolCallId === call.toolCallId)).map(async (toolCall) => ({
|
|
2286
2314
|
toolCall,
|
|
2287
|
-
result: await resolveProviderToolResult(toolCall, capturedProviderToolResults, stepTools,
|
|
2315
|
+
result: await resolveProviderToolResult(toolCall, capturedProviderToolResults, stepTools, workflowDownload)
|
|
2288
2316
|
})));
|
|
2289
2317
|
await Promise.all(providerResultEntries.flatMap(({ toolCall, result }) => result == null ? [] : [recordProviderExecutedToolTelemetry(toolCall, result, iterMessages, currentStepNumber)]));
|
|
2290
2318
|
const providerResults = providerResultEntries.flatMap(({ result }) => result == null ? [] : [result]);
|
|
@@ -2382,7 +2410,7 @@ var WorkflowAgent = class {
|
|
|
2382
2410
|
const clientToolResults = await Promise.all(nonProviderToolCalls.map((toolCall) => executeToolWithCallbacks(toolCall, stepTools, iterMessages, toolsContext, currentStepNumber, toolExecutionSandbox)));
|
|
2383
2411
|
const providerToolResultEntries = await Promise.all(providerToolCallsForResults.map(async (toolCall) => ({
|
|
2384
2412
|
toolCall,
|
|
2385
|
-
result: await resolveProviderToolResult(toolCall, capturedProviderToolResults, stepTools,
|
|
2413
|
+
result: await resolveProviderToolResult(toolCall, capturedProviderToolResults, stepTools, workflowDownload)
|
|
2386
2414
|
})));
|
|
2387
2415
|
await Promise.all(providerToolResultEntries.flatMap(({ toolCall, result }) => result == null ? [] : [recordProviderExecutedToolTelemetry(toolCall, result, iterMessages, currentStepNumber)]));
|
|
2388
2416
|
const providerToolResults = providerToolResultEntries.flatMap(({ result }) => result == null ? [] : [result]);
|