@ai-sdk/workflow 1.0.0-canary.82 → 1.0.0-canary.83

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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # @ai-sdk/workflow
2
2
 
3
+ ## 1.0.0-canary.83
4
+
5
+ ### Patch Changes
6
+
7
+ - 19736ee: feat(ai): rename onStepFinish to onStepEnd
8
+ - Updated dependencies [19736ee]
9
+ - Updated dependencies [d66ae02]
10
+ - Updated dependencies [e4182bd]
11
+ - ai@7.0.0-canary.166
12
+
3
13
  ## 1.0.0-canary.82
4
14
 
5
15
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { LanguageModelV4, SharedV4ProviderOptions, LanguageModelV4CallOptions, LanguageModelV4Prompt, LanguageModelV4StreamPart } from '@ai-sdk/provider';
2
2
  import { Context, HasRequiredKey, InferToolSetContext } from '@ai-sdk/provider-utils';
3
- import { ToolSet, LanguageModel, Instructions, ToolChoice, TelemetryOptions as TelemetryOptions$1, StopCondition, ActiveTools, LanguageModelResponseMetadata, LanguageModelUsage, FinishReason, ToolCallRepairFunction, StepResult, GenerateTextOnStepFinishCallback, ModelMessage, Experimental_LanguageModelStreamPart, UIMessage, UIMessageChunk, ChatTransport, PrepareSendMessagesRequest, PrepareReconnectToStreamRequest, ChatRequestOptions } from 'ai';
3
+ import { ToolSet, LanguageModel, Instructions, ToolChoice, TelemetryOptions as TelemetryOptions$1, StopCondition, ActiveTools, LanguageModelResponseMetadata, LanguageModelUsage, FinishReason, ToolCallRepairFunction, StepResult, GenerateTextOnStepEndCallback, ModelMessage, Experimental_LanguageModelStreamPart, UIMessage, UIMessageChunk, ChatTransport, PrepareSendMessagesRequest, PrepareReconnectToStreamRequest, ChatRequestOptions } from 'ai';
4
4
  export { Experimental_LanguageModelStreamPart as ModelCallStreamPart, Output, ToolCallRepairFunction } from 'ai';
5
5
 
6
6
  /**
@@ -16,10 +16,17 @@ type CompatibleLanguageModel = LanguageModelV4;
16
16
 
17
17
  /**
18
18
  * Callback function to be called after each step completes.
19
- * Alias for the AI SDK's GenerateTextOnStepFinishCallback, using
19
+ * Alias for the AI SDK's GenerateTextOnStepEndCallback, using
20
20
  * WorkflowAgent-consistent naming.
21
21
  */
22
- type WorkflowAgentOnStepFinishCallback<TTools extends ToolSet = ToolSet, TRuntimeContext extends Context = Context> = GenerateTextOnStepFinishCallback<TTools, TRuntimeContext>;
22
+ type WorkflowAgentOnStepEndCallback<TTools extends ToolSet = ToolSet, TRuntimeContext extends Context = Context> = GenerateTextOnStepEndCallback<TTools, TRuntimeContext>;
23
+ /**
24
+ * Callback function to be called after each step completes.
25
+ * Deprecated alias for `WorkflowAgentOnStepEndCallback`.
26
+ *
27
+ * @deprecated Use `WorkflowAgentOnStepEndCallback` instead.
28
+ */
29
+ type WorkflowAgentOnStepFinishCallback<TTools extends ToolSet = ToolSet, TRuntimeContext extends Context = Context> = WorkflowAgentOnStepEndCallback<TTools, TRuntimeContext>;
23
30
  /**
24
31
  * Infer the type of the tools of a workflow agent.
25
32
  */
@@ -358,6 +365,12 @@ type WorkflowAgentOptions<TTools extends ToolSet = ToolSet, TRuntimeContext exte
358
365
  /**
359
366
  * Callback function to be called after each step completes.
360
367
  */
368
+ onStepEnd?: WorkflowAgentOnStepEndCallback<TTools, TRuntimeContext>;
369
+ /**
370
+ * Callback function to be called after each step completes.
371
+ *
372
+ * @deprecated Use `onStepEnd` instead.
373
+ */
361
374
  onStepFinish?: WorkflowAgentOnStepFinishCallback<TTools, TRuntimeContext>;
362
375
  /**
363
376
  * Callback that is called when the LLM response and all request tool executions are finished.
@@ -684,6 +697,12 @@ type WorkflowAgentStreamOptions<TTools extends ToolSet = ToolSet, TRuntimeContex
684
697
  /**
685
698
  * Callback function to be called after each step completes.
686
699
  */
700
+ onStepEnd?: WorkflowAgentOnStepEndCallback<TTools, TRuntimeContext>;
701
+ /**
702
+ * Callback function to be called after each step completes.
703
+ *
704
+ * @deprecated Use `onStepEnd` instead.
705
+ */
687
706
  onStepFinish?: WorkflowAgentOnStepFinishCallback<TTools, TRuntimeContext>;
688
707
  /**
689
708
  * Callback that is invoked when an error occurs during streaming.
@@ -878,7 +897,7 @@ declare class WorkflowAgent<TBaseTools extends ToolSet = ToolSet, TRuntimeContex
878
897
  private experimentalRepairToolCall?;
879
898
  private experimentalDownload?;
880
899
  private prepareStep?;
881
- private constructorOnStepFinish?;
900
+ private constructorOnStepEnd?;
882
901
  private constructorOnEnd?;
883
902
  private constructorOnStart?;
884
903
  private constructorOnStepStart?;
@@ -1056,4 +1075,4 @@ declare class WorkflowChatTransport<UI_MESSAGE extends UIMessage> implements Cha
1056
1075
  private onFinish;
1057
1076
  }
1058
1077
 
1059
- export { type CompatibleLanguageModel, type DownloadFunction, type GenerationSettings, type InferWorkflowAgentTools, type InferWorkflowAgentUIMessage, type OutputSpecification, type PrepareCallCallback, type PrepareCallOptions, type PrepareCallResult, type PrepareStepCallback, type PrepareStepInfo, type PrepareStepResult, type ProviderOptions, type ReconnectToStreamOptions, type SendMessagesOptions, type StreamTextTransform, type TelemetryOptions, WorkflowAgent, type WorkflowAgentOnAbortCallback, type WorkflowAgentOnEndCallback, type WorkflowAgentOnErrorCallback, type WorkflowAgentOnFinishCallback, type WorkflowAgentOnStartCallback, type WorkflowAgentOnStepFinishCallback, type WorkflowAgentOnStepStartCallback, type WorkflowAgentOnToolExecutionEndCallback, type WorkflowAgentOnToolExecutionStartCallback, type WorkflowAgentOptions, type WorkflowAgentStreamOptions, type WorkflowAgentStreamResult, WorkflowChatTransport, type WorkflowChatTransportOptions, createModelCallToUIChunkTransform, toUIMessageChunk };
1078
+ export { type CompatibleLanguageModel, type DownloadFunction, type GenerationSettings, type InferWorkflowAgentTools, type InferWorkflowAgentUIMessage, type OutputSpecification, type PrepareCallCallback, type PrepareCallOptions, type PrepareCallResult, type PrepareStepCallback, type PrepareStepInfo, type PrepareStepResult, type ProviderOptions, type ReconnectToStreamOptions, type SendMessagesOptions, type StreamTextTransform, type TelemetryOptions, WorkflowAgent, type WorkflowAgentOnAbortCallback, type WorkflowAgentOnEndCallback, type WorkflowAgentOnErrorCallback, type WorkflowAgentOnFinishCallback, type WorkflowAgentOnStartCallback, type WorkflowAgentOnStepEndCallback, type WorkflowAgentOnStepFinishCallback, type WorkflowAgentOnStepStartCallback, type WorkflowAgentOnToolExecutionEndCallback, type WorkflowAgentOnToolExecutionStartCallback, type WorkflowAgentOptions, type WorkflowAgentStreamOptions, type WorkflowAgentStreamResult, WorkflowChatTransport, type WorkflowChatTransportOptions, createModelCallToUIChunkTransform, toUIMessageChunk };
package/dist/index.mjs CHANGED
@@ -301,6 +301,7 @@ async function* streamTextIterator({
301
301
  writable,
302
302
  model,
303
303
  stopConditions,
304
+ onStepEnd,
304
305
  onStepFinish,
305
306
  onStepStart,
306
307
  onError,
@@ -590,10 +591,11 @@ async function* streamTextIterator({
590
591
  `Unexpected finish reason: ${typeof (finish == null ? void 0 : finish.finishReason) === "object" ? JSON.stringify(finish == null ? void 0 : finish.finishReason) : finish == null ? void 0 : finish.finishReason}`
591
592
  );
592
593
  }
593
- if (onStepFinish) {
594
- await onStepFinish(step);
594
+ const resolvedOnStepEnd = onStepEnd != null ? onStepEnd : onStepFinish;
595
+ if (resolvedOnStepEnd) {
596
+ await resolvedOnStepEnd(step);
595
597
  }
596
- await ((_j = telemetryDispatcher.onStepFinish) == null ? void 0 : _j.call(telemetryDispatcher, normalizeStepForTelemetry(step)));
598
+ await ((_j = telemetryDispatcher.onStepEnd) == null ? void 0 : _j.call(telemetryDispatcher, normalizeStepForTelemetry(step)));
597
599
  } catch (error) {
598
600
  if (onError) {
599
601
  await onError({ error });
@@ -647,7 +649,7 @@ function sanitizeProviderMetadataForToolCall(metadata) {
647
649
  // src/workflow-agent.ts
648
650
  var WorkflowAgent = class {
649
651
  constructor(options) {
650
- var _a, _b;
652
+ var _a, _b, _c;
651
653
  this.id = options.id;
652
654
  this.model = options.model;
653
655
  this.tools = (_a = options.tools) != null ? _a : {};
@@ -662,7 +664,7 @@ var WorkflowAgent = class {
662
664
  this.experimentalRepairToolCall = options.experimental_repairToolCall;
663
665
  this.experimentalDownload = options.experimental_download;
664
666
  this.prepareStep = options.prepareStep;
665
- this.constructorOnStepFinish = options.onStepFinish;
667
+ this.constructorOnStepEnd = (_c = options.onStepEnd) != null ? _c : options.onStepFinish;
666
668
  const { onFinish, onEnd = onFinish } = options;
667
669
  this.constructorOnEnd = onEnd;
668
670
  this.constructorOnStart = options.experimental_onStart;
@@ -689,7 +691,7 @@ var WorkflowAgent = class {
689
691
  throw new Error("Not implemented");
690
692
  }
691
693
  async stream(options) {
692
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N;
694
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O;
693
695
  const { onFinish, onEnd = onFinish } = options;
694
696
  let effectiveModel = this.model;
695
697
  let effectiveInstructions = (_a = options.system) != null ? _a : this.instructions;
@@ -939,9 +941,9 @@ var WorkflowAgent = class {
939
941
  providerOptions: options.providerOptions
940
942
  }
941
943
  };
942
- const mergedOnStepFinish = mergeCallbacks(
943
- this.constructorOnStepFinish,
944
- options.onStepFinish
944
+ const mergedOnStepEnd = mergeCallbacks(
945
+ this.constructorOnStepEnd,
946
+ (_n = options.onStepEnd) != null ? _n : options.onStepFinish
945
947
  );
946
948
  const mergedOnEnd = mergeCallbacks(
947
949
  this.constructorOnEnd,
@@ -964,11 +966,11 @@ var WorkflowAgent = class {
964
966
  options.onToolExecutionEnd
965
967
  );
966
968
  const effectiveToolChoice = effectiveToolChoiceFromPrepare;
967
- const effectiveActiveTools = (_n = options.activeTools) != null ? _n : this.activeTools;
968
- const effectiveTools = effectiveActiveTools && effectiveActiveTools.length > 0 ? (_o = filterActiveTools2({
969
+ const effectiveActiveTools = (_o = options.activeTools) != null ? _o : this.activeTools;
970
+ const effectiveTools = effectiveActiveTools && effectiveActiveTools.length > 0 ? (_p = filterActiveTools2({
969
971
  tools: this.tools,
970
972
  activeTools: effectiveActiveTools
971
- })) != null ? _o : this.tools : this.tools;
973
+ })) != null ? _p : this.tools : this.tools;
972
974
  const effectiveModelInfo = getModelInfo2(effectiveModel);
973
975
  let runtimeContext = effectiveRuntimeContext;
974
976
  let toolsContext = effectiveToolsContext;
@@ -983,7 +985,7 @@ var WorkflowAgent = class {
983
985
  toolsContext
984
986
  });
985
987
  }
986
- await ((_r = telemetryDispatcher.onStart) == null ? void 0 : _r.call(telemetryDispatcher, {
988
+ await ((_s = telemetryDispatcher.onStart) == null ? void 0 : _s.call(telemetryDispatcher, {
987
989
  callId: "workflow-agent",
988
990
  operationId: "ai.workflowAgent.stream",
989
991
  provider: effectiveModelInfo.provider,
@@ -1001,11 +1003,11 @@ var WorkflowAgent = class {
1001
1003
  frequencyPenalty: mergedGenerationSettings.frequencyPenalty,
1002
1004
  stopSequences: mergedGenerationSettings.stopSequences,
1003
1005
  seed: mergedGenerationSettings.seed,
1004
- maxRetries: (_p = mergedGenerationSettings.maxRetries) != null ? _p : 2,
1006
+ maxRetries: (_q = mergedGenerationSettings.maxRetries) != null ? _q : 2,
1005
1007
  timeout: void 0,
1006
1008
  headers: mergedGenerationSettings.headers,
1007
1009
  providerOptions: mergedGenerationSettings.providerOptions,
1008
- output: (_q = options.output) != null ? _q : this.output,
1010
+ output: (_r = options.output) != null ? _r : this.output,
1009
1011
  runtimeContext,
1010
1012
  toolsContext
1011
1013
  }));
@@ -1150,7 +1152,7 @@ var WorkflowAgent = class {
1150
1152
  }
1151
1153
  }));
1152
1154
  };
1153
- if ((_s = mergedGenerationSettings.abortSignal) == null ? void 0 : _s.aborted) {
1155
+ if ((_t = mergedGenerationSettings.abortSignal) == null ? void 0 : _t.aborted) {
1154
1156
  if (options.onAbort) {
1155
1157
  await options.onAbort({ steps });
1156
1158
  }
@@ -1167,19 +1169,19 @@ var WorkflowAgent = class {
1167
1169
  tools: effectiveTools,
1168
1170
  writable: options.writable,
1169
1171
  prompt: modelPrompt,
1170
- stopConditions: (_t = options.stopWhen) != null ? _t : this.stopWhen,
1171
- onStepFinish: mergedOnStepFinish,
1172
+ stopConditions: (_u = options.stopWhen) != null ? _u : this.stopWhen,
1173
+ onStepEnd: mergedOnStepEnd,
1172
1174
  onStepStart: mergedOnStepStart,
1173
1175
  onError: options.onError,
1174
- prepareStep: (_u = options.prepareStep) != null ? _u : this.prepareStep,
1176
+ prepareStep: (_v = options.prepareStep) != null ? _v : this.prepareStep,
1175
1177
  generationSettings: mergedGenerationSettings,
1176
1178
  toolChoice: effectiveToolChoice,
1177
1179
  runtimeContext,
1178
1180
  toolsContext,
1179
1181
  telemetry: effectiveTelemetry,
1180
- includeRawChunks: (_v = options.includeRawChunks) != null ? _v : false,
1181
- repairToolCall: (_w = options.experimental_repairToolCall) != null ? _w : this.experimentalRepairToolCall,
1182
- responseFormat: await ((_y = (_x = options.output) != null ? _x : this.output) == null ? void 0 : _y.responseFormat)
1182
+ includeRawChunks: (_w = options.includeRawChunks) != null ? _w : false,
1183
+ repairToolCall: (_x = options.experimental_repairToolCall) != null ? _x : this.experimentalRepairToolCall,
1184
+ responseFormat: await ((_z = (_y = options.output) != null ? _y : this.output) == null ? void 0 : _z.responseFormat)
1183
1185
  });
1184
1186
  let finalMessages;
1185
1187
  let encounteredError;
@@ -1187,7 +1189,7 @@ var WorkflowAgent = class {
1187
1189
  try {
1188
1190
  let result = await iterator.next();
1189
1191
  while (!result.done) {
1190
- if ((_z = mergedGenerationSettings.abortSignal) == null ? void 0 : _z.aborted) {
1192
+ if ((_A = mergedGenerationSettings.abortSignal) == null ? void 0 : _A.aborted) {
1191
1193
  wasAborted = true;
1192
1194
  if (options.onAbort) {
1193
1195
  await options.onAbort({ steps });
@@ -1314,8 +1316,8 @@ var WorkflowAgent = class {
1314
1316
  await mergedOnEnd({
1315
1317
  steps,
1316
1318
  messages: messages2,
1317
- text: (_A = lastStep == null ? void 0 : lastStep.text) != null ? _A : "",
1318
- finishReason: (_B = lastStep == null ? void 0 : lastStep.finishReason) != null ? _B : "other",
1319
+ text: (_B = lastStep == null ? void 0 : lastStep.text) != null ? _B : "",
1320
+ finishReason: (_C = lastStep == null ? void 0 : lastStep.finishReason) != null ? _C : "other",
1319
1321
  usage: totalUsage,
1320
1322
  totalUsage,
1321
1323
  runtimeContext,
@@ -1327,7 +1329,7 @@ var WorkflowAgent = class {
1327
1329
  const telemetrySteps = steps.map(normalizeStepForTelemetry2);
1328
1330
  const lastStep = telemetrySteps[telemetrySteps.length - 1];
1329
1331
  const totalUsage = aggregateUsage(steps);
1330
- await ((_C = telemetryDispatcher.onEnd) == null ? void 0 : _C.call(telemetryDispatcher, {
1332
+ await ((_D = telemetryDispatcher.onEnd) == null ? void 0 : _D.call(telemetryDispatcher, {
1331
1333
  ...lastStep,
1332
1334
  steps: telemetrySteps,
1333
1335
  usage: totalUsage,
@@ -1352,8 +1354,8 @@ var WorkflowAgent = class {
1352
1354
  }
1353
1355
  }
1354
1356
  if (options.writable) {
1355
- const sendFinish = (_D = options.sendFinish) != null ? _D : true;
1356
- const preventClose = (_E = options.preventClose) != null ? _E : false;
1357
+ const sendFinish = (_E = options.sendFinish) != null ? _E : true;
1358
+ const preventClose = (_F = options.preventClose) != null ? _F : false;
1357
1359
  if (sendFinish || !preventClose) {
1358
1360
  await closeStream(options.writable, preventClose, sendFinish);
1359
1361
  }
@@ -1461,10 +1463,10 @@ var WorkflowAgent = class {
1461
1463
  } else if (options.onError) {
1462
1464
  await options.onError({ error });
1463
1465
  }
1464
- await ((_F = telemetryDispatcher.onError) == null ? void 0 : _F.call(telemetryDispatcher, error));
1466
+ await ((_G = telemetryDispatcher.onError) == null ? void 0 : _G.call(telemetryDispatcher, error));
1465
1467
  }
1466
1468
  const messages = finalMessages != null ? finalMessages : prompt.messages;
1467
- const effectiveOutput = (_G = options.output) != null ? _G : this.output;
1469
+ const effectiveOutput = (_H = options.output) != null ? _H : this.output;
1468
1470
  let experimentalOutput = void 0;
1469
1471
  if (effectiveOutput && steps.length > 0) {
1470
1472
  const lastStep = steps[steps.length - 1];
@@ -1492,8 +1494,8 @@ var WorkflowAgent = class {
1492
1494
  await mergedOnEnd({
1493
1495
  steps,
1494
1496
  messages,
1495
- text: (_H = lastStep == null ? void 0 : lastStep.text) != null ? _H : "",
1496
- finishReason: (_I = lastStep == null ? void 0 : lastStep.finishReason) != null ? _I : "other",
1497
+ text: (_I = lastStep == null ? void 0 : lastStep.text) != null ? _I : "",
1498
+ finishReason: (_J = lastStep == null ? void 0 : lastStep.finishReason) != null ? _J : "other",
1497
1499
  usage: totalUsage,
1498
1500
  totalUsage,
1499
1501
  runtimeContext,
@@ -1505,7 +1507,7 @@ var WorkflowAgent = class {
1505
1507
  const telemetrySteps = steps.map(normalizeStepForTelemetry2);
1506
1508
  const lastStep = telemetrySteps[telemetrySteps.length - 1];
1507
1509
  const totalUsage = aggregateUsage(steps);
1508
- await ((_J = telemetryDispatcher.onEnd) == null ? void 0 : _J.call(telemetryDispatcher, {
1510
+ await ((_K = telemetryDispatcher.onEnd) == null ? void 0 : _K.call(telemetryDispatcher, {
1509
1511
  ...lastStep,
1510
1512
  steps: telemetrySteps,
1511
1513
  usage: totalUsage,
@@ -1514,8 +1516,8 @@ var WorkflowAgent = class {
1514
1516
  }
1515
1517
  if (encounteredError) {
1516
1518
  if (options.writable) {
1517
- const sendFinish = (_K = options.sendFinish) != null ? _K : true;
1518
- const preventClose = (_L = options.preventClose) != null ? _L : false;
1519
+ const sendFinish = (_L = options.sendFinish) != null ? _L : true;
1520
+ const preventClose = (_M = options.preventClose) != null ? _M : false;
1519
1521
  if (sendFinish || !preventClose) {
1520
1522
  await closeStream(options.writable, preventClose, sendFinish);
1521
1523
  }
@@ -1523,8 +1525,8 @@ var WorkflowAgent = class {
1523
1525
  throw encounteredError;
1524
1526
  }
1525
1527
  if (options.writable) {
1526
- const sendFinish = (_M = options.sendFinish) != null ? _M : true;
1527
- const preventClose = (_N = options.preventClose) != null ? _N : false;
1528
+ const sendFinish = (_N = options.sendFinish) != null ? _N : true;
1529
+ const preventClose = (_O = options.preventClose) != null ? _O : false;
1528
1530
  if (sendFinish || !preventClose) {
1529
1531
  await closeStream(options.writable, preventClose, sendFinish);
1530
1532
  }