@ai-sdk/workflow 1.0.0-beta.23 → 1.0.0-beta.26
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 +37 -0
- package/dist/index.d.mts +27 -11
- package/dist/index.mjs +51 -48
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/do-stream-step.ts +1 -1
- package/src/index.ts +2 -2
- package/src/stream-text-iterator.ts +3 -3
- package/src/test/agent-e2e-workflows.ts +8 -8
- package/src/workflow-agent.ts +56 -36
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/workflow",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.26",
|
|
4
4
|
"description": "WorkflowAgent for building AI agents with AI SDK",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"ajv": "^8.18.0",
|
|
30
30
|
"@ai-sdk/provider": "4.0.0-beta.12",
|
|
31
|
-
"@ai-sdk/provider-utils": "5.0.0-beta.
|
|
32
|
-
"ai": "7.0.0-beta.
|
|
31
|
+
"@ai-sdk/provider-utils": "5.0.0-beta.26",
|
|
32
|
+
"ai": "7.0.0-beta.111"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "20.17.24",
|
package/src/do-stream-step.ts
CHANGED
|
@@ -54,7 +54,7 @@ export interface DoStreamStepOptions {
|
|
|
54
54
|
providerOptions?: ProviderOptions;
|
|
55
55
|
toolChoice?: ToolChoice<ToolSet>;
|
|
56
56
|
includeRawChunks?: boolean;
|
|
57
|
-
|
|
57
|
+
telemetry?: TelemetryOptions;
|
|
58
58
|
repairToolCall?: ToolCallRepairFunction<ToolSet>;
|
|
59
59
|
responseFormat?: LanguageModelV4CallOptions['responseFormat'];
|
|
60
60
|
}
|
package/src/index.ts
CHANGED
|
@@ -26,8 +26,8 @@ export {
|
|
|
26
26
|
type ToolCallRepairFunction,
|
|
27
27
|
type WorkflowAgentOnStartCallback,
|
|
28
28
|
type WorkflowAgentOnStepStartCallback,
|
|
29
|
-
type
|
|
30
|
-
type
|
|
29
|
+
type WorkflowAgentOnToolExecutionStartCallback,
|
|
30
|
+
type WorkflowAgentOnToolExecutionEndCallback,
|
|
31
31
|
} from './workflow-agent.js';
|
|
32
32
|
|
|
33
33
|
export {
|
|
@@ -63,7 +63,7 @@ export async function* streamTextIterator({
|
|
|
63
63
|
generationSettings,
|
|
64
64
|
toolChoice,
|
|
65
65
|
experimental_context,
|
|
66
|
-
|
|
66
|
+
telemetry,
|
|
67
67
|
includeRawChunks = false,
|
|
68
68
|
repairToolCall,
|
|
69
69
|
responseFormat,
|
|
@@ -80,7 +80,7 @@ export async function* streamTextIterator({
|
|
|
80
80
|
generationSettings?: GenerationSettings;
|
|
81
81
|
toolChoice?: ToolChoice<ToolSet>;
|
|
82
82
|
experimental_context?: unknown;
|
|
83
|
-
|
|
83
|
+
telemetry?: TelemetryOptions;
|
|
84
84
|
includeRawChunks?: boolean;
|
|
85
85
|
repairToolCall?: ToolCallRepairFunction<ToolSet>;
|
|
86
86
|
responseFormat?: LanguageModelV4CallOptions['responseFormat'];
|
|
@@ -261,7 +261,7 @@ export async function* streamTextIterator({
|
|
|
261
261
|
...currentGenerationSettings,
|
|
262
262
|
toolChoice: currentToolChoice,
|
|
263
263
|
includeRawChunks,
|
|
264
|
-
|
|
264
|
+
telemetry,
|
|
265
265
|
repairToolCall,
|
|
266
266
|
responseFormat,
|
|
267
267
|
},
|
|
@@ -334,10 +334,10 @@ export async function agentOnStepStartE2e() {
|
|
|
334
334
|
}
|
|
335
335
|
|
|
336
336
|
// ============================================================================
|
|
337
|
-
// GAP tests —
|
|
337
|
+
// GAP tests — experimental_onToolExecutionStart
|
|
338
338
|
// ============================================================================
|
|
339
339
|
|
|
340
|
-
export async function
|
|
340
|
+
export async function agentonToolExecutionStartE2e() {
|
|
341
341
|
'use workflow';
|
|
342
342
|
const calls: string[] = [];
|
|
343
343
|
const agent = new WorkflowAgent({
|
|
@@ -356,14 +356,14 @@ export async function agentOnToolCallStartE2e() {
|
|
|
356
356
|
execute: echoStep,
|
|
357
357
|
},
|
|
358
358
|
},
|
|
359
|
-
|
|
359
|
+
experimental_onToolExecutionStart: async () => {
|
|
360
360
|
calls.push('constructor');
|
|
361
361
|
},
|
|
362
362
|
} as any);
|
|
363
363
|
await agent.stream({
|
|
364
364
|
messages: [{ role: 'user', content: 'test' }],
|
|
365
365
|
writable: getWritable(),
|
|
366
|
-
|
|
366
|
+
experimental_onToolExecutionStart: async () => {
|
|
367
367
|
calls.push('method');
|
|
368
368
|
},
|
|
369
369
|
} as any);
|
|
@@ -371,10 +371,10 @@ export async function agentOnToolCallStartE2e() {
|
|
|
371
371
|
}
|
|
372
372
|
|
|
373
373
|
// ============================================================================
|
|
374
|
-
// GAP tests —
|
|
374
|
+
// GAP tests — experimental_onToolExecutionEnd
|
|
375
375
|
// ============================================================================
|
|
376
376
|
|
|
377
|
-
export async function
|
|
377
|
+
export async function agentonToolExecutionEndE2e() {
|
|
378
378
|
'use workflow';
|
|
379
379
|
const calls: string[] = [];
|
|
380
380
|
let capturedEvent: any = null;
|
|
@@ -394,14 +394,14 @@ export async function agentOnToolCallFinishE2e() {
|
|
|
394
394
|
execute: addNumbers,
|
|
395
395
|
},
|
|
396
396
|
},
|
|
397
|
-
|
|
397
|
+
experimental_onToolExecutionEnd: async () => {
|
|
398
398
|
calls.push('constructor');
|
|
399
399
|
},
|
|
400
400
|
} as any);
|
|
401
401
|
await agent.stream({
|
|
402
402
|
messages: [{ role: 'user', content: 'test' }],
|
|
403
403
|
writable: getWritable(),
|
|
404
|
-
|
|
404
|
+
experimental_onToolExecutionEnd: async (event: any) => {
|
|
405
405
|
calls.push('method');
|
|
406
406
|
capturedEvent = {
|
|
407
407
|
toolName: event?.toolCall?.toolName,
|
package/src/workflow-agent.ts
CHANGED
|
@@ -7,10 +7,11 @@ import type {
|
|
|
7
7
|
SharedV4ProviderOptions,
|
|
8
8
|
} from '@ai-sdk/provider';
|
|
9
9
|
import {
|
|
10
|
-
type Experimental_LanguageModelStreamPart as ModelCallStreamPart,
|
|
11
10
|
type FinishReason,
|
|
11
|
+
LanguageModel,
|
|
12
12
|
type LanguageModelResponseMetadata,
|
|
13
13
|
type LanguageModelUsage,
|
|
14
|
+
type Experimental_LanguageModelStreamPart as ModelCallStreamPart,
|
|
14
15
|
type ModelMessage,
|
|
15
16
|
Output,
|
|
16
17
|
type StepResult,
|
|
@@ -21,7 +22,6 @@ import {
|
|
|
21
22
|
type ToolChoice,
|
|
22
23
|
type ToolSet,
|
|
23
24
|
type UIMessage,
|
|
24
|
-
LanguageModel,
|
|
25
25
|
experimental_filterActiveTools as filterActiveTools,
|
|
26
26
|
} from 'ai';
|
|
27
27
|
import {
|
|
@@ -31,7 +31,6 @@ import {
|
|
|
31
31
|
standardizePrompt,
|
|
32
32
|
} from 'ai/internal';
|
|
33
33
|
import { streamTextIterator } from './stream-text-iterator.js';
|
|
34
|
-
import type { CompatibleLanguageModel } from './types.js';
|
|
35
34
|
|
|
36
35
|
// Re-export for consumers
|
|
37
36
|
export type { CompatibleLanguageModel } from './types.js';
|
|
@@ -340,6 +339,10 @@ export interface PrepareCallOptions<
|
|
|
340
339
|
tools: TTools;
|
|
341
340
|
instructions?: string | SystemModelMessage | Array<SystemModelMessage>;
|
|
342
341
|
toolChoice?: ToolChoice<TTools>;
|
|
342
|
+
telemetry?: TelemetryOptions;
|
|
343
|
+
/**
|
|
344
|
+
* @deprecated Use `telemetry` instead. This alias will be removed in a future major release.
|
|
345
|
+
*/
|
|
343
346
|
experimental_telemetry?: TelemetryOptions;
|
|
344
347
|
experimental_context?: unknown;
|
|
345
348
|
messages: ModelMessage[];
|
|
@@ -406,7 +409,14 @@ export interface WorkflowAgentOptions<
|
|
|
406
409
|
toolChoice?: ToolChoice<TTools>;
|
|
407
410
|
|
|
408
411
|
/**
|
|
409
|
-
* Optional telemetry configuration
|
|
412
|
+
* Optional telemetry configuration.
|
|
413
|
+
*/
|
|
414
|
+
telemetry?: TelemetryOptions;
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Optional telemetry configuration.
|
|
418
|
+
*
|
|
419
|
+
* @deprecated Use `telemetry` instead. This alias will be removed in a future major release.
|
|
410
420
|
*/
|
|
411
421
|
experimental_telemetry?: TelemetryOptions;
|
|
412
422
|
|
|
@@ -491,12 +501,12 @@ export interface WorkflowAgentOptions<
|
|
|
491
501
|
/**
|
|
492
502
|
* Callback called before a tool's execute function runs.
|
|
493
503
|
*/
|
|
494
|
-
|
|
504
|
+
experimental_onToolExecutionStart?: WorkflowAgentOnToolExecutionStartCallback;
|
|
495
505
|
|
|
496
506
|
/**
|
|
497
507
|
* Callback called after a tool execution completes.
|
|
498
508
|
*/
|
|
499
|
-
|
|
509
|
+
experimental_onToolExecutionEnd?: WorkflowAgentOnToolExecutionEndCallback;
|
|
500
510
|
|
|
501
511
|
/**
|
|
502
512
|
* Prepare the parameters for the stream call.
|
|
@@ -596,7 +606,7 @@ export type WorkflowAgentOnStepStartCallback<TTools extends ToolSet = ToolSet> =
|
|
|
596
606
|
/**
|
|
597
607
|
* Callback that is called before a tool's execute function runs.
|
|
598
608
|
*/
|
|
599
|
-
export type
|
|
609
|
+
export type WorkflowAgentOnToolExecutionStartCallback = (event: {
|
|
600
610
|
/** The tool call being executed */
|
|
601
611
|
readonly toolCall: ToolCall;
|
|
602
612
|
/** The current step number (0-based) */
|
|
@@ -608,7 +618,7 @@ export type WorkflowAgentOnToolCallStartCallback = (event: {
|
|
|
608
618
|
* Uses a discriminated union pattern: check `success` to determine
|
|
609
619
|
* whether `output` or `error` is available.
|
|
610
620
|
*/
|
|
611
|
-
export type
|
|
621
|
+
export type WorkflowAgentOnToolExecutionEndCallback = (
|
|
612
622
|
event:
|
|
613
623
|
| {
|
|
614
624
|
/** The tool call that was executed */
|
|
@@ -728,7 +738,14 @@ export type WorkflowAgentStreamOptions<
|
|
|
728
738
|
activeTools?: Array<keyof NoInfer<TTools>>;
|
|
729
739
|
|
|
730
740
|
/**
|
|
731
|
-
* Optional telemetry configuration
|
|
741
|
+
* Optional telemetry configuration.
|
|
742
|
+
*/
|
|
743
|
+
telemetry?: TelemetryOptions;
|
|
744
|
+
|
|
745
|
+
/**
|
|
746
|
+
* Optional telemetry configuration.
|
|
747
|
+
*
|
|
748
|
+
* @deprecated Use `telemetry` instead. This alias will be removed in a future major release.
|
|
732
749
|
*/
|
|
733
750
|
experimental_telemetry?: TelemetryOptions;
|
|
734
751
|
|
|
@@ -827,12 +844,12 @@ export type WorkflowAgentStreamOptions<
|
|
|
827
844
|
/**
|
|
828
845
|
* Callback called before a tool's execute function runs.
|
|
829
846
|
*/
|
|
830
|
-
|
|
847
|
+
experimental_onToolExecutionStart?: WorkflowAgentOnToolExecutionStartCallback;
|
|
831
848
|
|
|
832
849
|
/**
|
|
833
850
|
* Callback called after a tool execution completes.
|
|
834
851
|
*/
|
|
835
|
-
|
|
852
|
+
experimental_onToolExecutionEnd?: WorkflowAgentOnToolExecutionEndCallback;
|
|
836
853
|
|
|
837
854
|
/**
|
|
838
855
|
* Callback function called before each step in the agent loop.
|
|
@@ -1013,8 +1030,8 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1013
1030
|
private constructorOnFinish?: WorkflowAgentOnFinishCallback<ToolSet>;
|
|
1014
1031
|
private constructorOnStart?: WorkflowAgentOnStartCallback;
|
|
1015
1032
|
private constructorOnStepStart?: WorkflowAgentOnStepStartCallback;
|
|
1016
|
-
private
|
|
1017
|
-
private
|
|
1033
|
+
private constructorOnToolExecutionStart?: WorkflowAgentOnToolExecutionStartCallback;
|
|
1034
|
+
private constructorOnToolExecutionEnd?: WorkflowAgentOnToolExecutionEndCallback;
|
|
1018
1035
|
private prepareCall?: PrepareCallCallback<TBaseTools>;
|
|
1019
1036
|
|
|
1020
1037
|
constructor(options: WorkflowAgentOptions<TBaseTools>) {
|
|
@@ -1024,7 +1041,7 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1024
1041
|
// `instructions` takes precedence over deprecated `system`
|
|
1025
1042
|
this.instructions = options.instructions ?? options.system;
|
|
1026
1043
|
this.toolChoice = options.toolChoice;
|
|
1027
|
-
this.telemetry = options.experimental_telemetry;
|
|
1044
|
+
this.telemetry = options.telemetry ?? options.experimental_telemetry;
|
|
1028
1045
|
this.experimentalContext = options.experimental_context;
|
|
1029
1046
|
this.stopWhen = options.stopWhen;
|
|
1030
1047
|
this.activeTools = options.activeTools;
|
|
@@ -1036,8 +1053,10 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1036
1053
|
this.constructorOnFinish = options.onFinish;
|
|
1037
1054
|
this.constructorOnStart = options.experimental_onStart;
|
|
1038
1055
|
this.constructorOnStepStart = options.experimental_onStepStart;
|
|
1039
|
-
this.
|
|
1040
|
-
|
|
1056
|
+
this.constructorOnToolExecutionStart =
|
|
1057
|
+
options.experimental_onToolExecutionStart;
|
|
1058
|
+
this.constructorOnToolExecutionEnd =
|
|
1059
|
+
options.experimental_onToolExecutionEnd;
|
|
1041
1060
|
this.prepareCall = options.prepareCall;
|
|
1042
1061
|
|
|
1043
1062
|
// Extract generation settings
|
|
@@ -1079,7 +1098,7 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1079
1098
|
options.experimental_context ?? this.experimentalContext;
|
|
1080
1099
|
let effectiveToolChoiceFromPrepare = options.toolChoice ?? this.toolChoice;
|
|
1081
1100
|
let effectiveTelemetryFromPrepare =
|
|
1082
|
-
options.experimental_telemetry ?? this.telemetry;
|
|
1101
|
+
options.telemetry ?? options.experimental_telemetry ?? this.telemetry;
|
|
1083
1102
|
|
|
1084
1103
|
// Resolve messages for prepareCall: use messages directly, or convert prompt
|
|
1085
1104
|
const resolvedMessagesForPrepareCall: ModelMessage[] =
|
|
@@ -1095,6 +1114,7 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1095
1114
|
tools: this.tools,
|
|
1096
1115
|
instructions: effectiveInstructions,
|
|
1097
1116
|
toolChoice: effectiveToolChoiceFromPrepare as ToolChoice<TBaseTools>,
|
|
1117
|
+
telemetry: effectiveTelemetryFromPrepare,
|
|
1098
1118
|
experimental_telemetry: effectiveTelemetryFromPrepare,
|
|
1099
1119
|
experimental_context: effectiveExperimentalContext,
|
|
1100
1120
|
messages: resolvedMessagesForPrepareCall,
|
|
@@ -1113,7 +1133,9 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1113
1133
|
if (prepared.toolChoice !== undefined)
|
|
1114
1134
|
effectiveToolChoiceFromPrepare =
|
|
1115
1135
|
prepared.toolChoice as ToolChoice<TBaseTools>;
|
|
1116
|
-
if (prepared.
|
|
1136
|
+
if (prepared.telemetry !== undefined)
|
|
1137
|
+
effectiveTelemetryFromPrepare = prepared.telemetry;
|
|
1138
|
+
else if (prepared.experimental_telemetry !== undefined)
|
|
1117
1139
|
effectiveTelemetryFromPrepare = prepared.experimental_telemetry;
|
|
1118
1140
|
if (prepared.maxOutputTokens !== undefined)
|
|
1119
1141
|
effectiveGenerationSettings.maxOutputTokens = prepared.maxOutputTokens;
|
|
@@ -1276,9 +1298,7 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1276
1298
|
|
|
1277
1299
|
const effectiveAbortSignal = mergeAbortSignals(
|
|
1278
1300
|
options.abortSignal ?? effectiveGenerationSettings.abortSignal,
|
|
1279
|
-
options.timeout
|
|
1280
|
-
? AbortSignal.timeout(options.timeout)
|
|
1281
|
-
: undefined,
|
|
1301
|
+
options.timeout,
|
|
1282
1302
|
);
|
|
1283
1303
|
|
|
1284
1304
|
// Merge generation settings: constructor defaults < prepareCall < stream options
|
|
@@ -1335,13 +1355,13 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1335
1355
|
this.constructorOnStepStart,
|
|
1336
1356
|
options.experimental_onStepStart,
|
|
1337
1357
|
);
|
|
1338
|
-
const
|
|
1339
|
-
this.
|
|
1340
|
-
options.
|
|
1358
|
+
const mergedOnToolExecutionStart = mergeCallbacks(
|
|
1359
|
+
this.constructorOnToolExecutionStart,
|
|
1360
|
+
options.experimental_onToolExecutionStart,
|
|
1341
1361
|
);
|
|
1342
|
-
const
|
|
1343
|
-
this.
|
|
1344
|
-
options.
|
|
1362
|
+
const mergedOnToolExecutionEnd = mergeCallbacks(
|
|
1363
|
+
this.constructorOnToolExecutionEnd,
|
|
1364
|
+
options.experimental_onToolExecutionEnd,
|
|
1345
1365
|
);
|
|
1346
1366
|
|
|
1347
1367
|
// Determine effective tool choice
|
|
@@ -1377,7 +1397,7 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1377
1397
|
});
|
|
1378
1398
|
}
|
|
1379
1399
|
|
|
1380
|
-
// Helper to wrap executeTool with
|
|
1400
|
+
// Helper to wrap executeTool with onToolExecutionStart/onToolExecutionEnd callbacks
|
|
1381
1401
|
const executeToolWithCallbacks = async (
|
|
1382
1402
|
toolCall: { toolCallId: string; toolName: string; input: unknown },
|
|
1383
1403
|
tools: ToolSet,
|
|
@@ -1392,8 +1412,8 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1392
1412
|
input: toolCall.input,
|
|
1393
1413
|
};
|
|
1394
1414
|
|
|
1395
|
-
if (
|
|
1396
|
-
await
|
|
1415
|
+
if (mergedOnToolExecutionStart) {
|
|
1416
|
+
await mergedOnToolExecutionStart({
|
|
1397
1417
|
toolCall: toolCallEvent,
|
|
1398
1418
|
stepNumber: currentStepNumber,
|
|
1399
1419
|
});
|
|
@@ -1405,8 +1425,8 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1405
1425
|
result = await executeTool(toolCall, tools, messages, context);
|
|
1406
1426
|
} catch (err) {
|
|
1407
1427
|
const durationMs = Date.now() - startTime;
|
|
1408
|
-
if (
|
|
1409
|
-
await
|
|
1428
|
+
if (mergedOnToolExecutionEnd) {
|
|
1429
|
+
await mergedOnToolExecutionEnd({
|
|
1410
1430
|
toolCall: toolCallEvent,
|
|
1411
1431
|
stepNumber: currentStepNumber,
|
|
1412
1432
|
durationMs,
|
|
@@ -1418,14 +1438,14 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1418
1438
|
}
|
|
1419
1439
|
|
|
1420
1440
|
const durationMs = Date.now() - startTime;
|
|
1421
|
-
if (
|
|
1441
|
+
if (mergedOnToolExecutionEnd) {
|
|
1422
1442
|
const isError =
|
|
1423
1443
|
result.output &&
|
|
1424
1444
|
'type' in result.output &&
|
|
1425
1445
|
(result.output.type === 'error-text' ||
|
|
1426
1446
|
result.output.type === 'error-json');
|
|
1427
1447
|
if (isError) {
|
|
1428
|
-
await
|
|
1448
|
+
await mergedOnToolExecutionEnd({
|
|
1429
1449
|
toolCall: toolCallEvent,
|
|
1430
1450
|
stepNumber: currentStepNumber,
|
|
1431
1451
|
durationMs,
|
|
@@ -1433,7 +1453,7 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1433
1453
|
error: 'value' in result.output ? result.output.value : undefined,
|
|
1434
1454
|
});
|
|
1435
1455
|
} else {
|
|
1436
|
-
await
|
|
1456
|
+
await mergedOnToolExecutionEnd({
|
|
1437
1457
|
toolCall: toolCallEvent,
|
|
1438
1458
|
stepNumber: currentStepNumber,
|
|
1439
1459
|
durationMs,
|
|
@@ -1478,7 +1498,7 @@ export class WorkflowAgent<TBaseTools extends ToolSet = ToolSet> {
|
|
|
1478
1498
|
generationSettings: mergedGenerationSettings,
|
|
1479
1499
|
toolChoice: effectiveToolChoice as ToolChoice<ToolSet>,
|
|
1480
1500
|
experimental_context: experimentalContext,
|
|
1481
|
-
|
|
1501
|
+
telemetry: effectiveTelemetry,
|
|
1482
1502
|
includeRawChunks: options.includeRawChunks ?? false,
|
|
1483
1503
|
repairToolCall: (options.experimental_repairToolCall ??
|
|
1484
1504
|
this.experimentalRepairToolCall) as
|