ai 6.0.95 → 6.0.97

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/dist/index.js CHANGED
@@ -1211,7 +1211,7 @@ var import_provider_utils3 = require("@ai-sdk/provider-utils");
1211
1211
  var import_provider_utils4 = require("@ai-sdk/provider-utils");
1212
1212
 
1213
1213
  // src/version.ts
1214
- var VERSION = true ? "6.0.95" : "0.0.0-test";
1214
+ var VERSION = true ? "6.0.97" : "0.0.0-test";
1215
1215
 
1216
1216
  // src/util/download/download.ts
1217
1217
  var download = async ({
@@ -2779,6 +2779,16 @@ async function executeToolCall({
2779
2779
  if ((tool2 == null ? void 0 : tool2.execute) == null) {
2780
2780
  return void 0;
2781
2781
  }
2782
+ const baseCallbackEvent = {
2783
+ stepNumber,
2784
+ model,
2785
+ toolCall,
2786
+ messages,
2787
+ abortSignal,
2788
+ functionId: telemetry == null ? void 0 : telemetry.functionId,
2789
+ metadata: telemetry == null ? void 0 : telemetry.metadata,
2790
+ experimental_context
2791
+ };
2782
2792
  return recordSpan({
2783
2793
  name: "ai.toolCall",
2784
2794
  attributes: selectTelemetryAttributes({
@@ -2799,16 +2809,7 @@ async function executeToolCall({
2799
2809
  fn: async (span) => {
2800
2810
  let output;
2801
2811
  try {
2802
- await (onToolCallStart == null ? void 0 : onToolCallStart({
2803
- stepNumber,
2804
- model,
2805
- toolCall,
2806
- messages,
2807
- abortSignal,
2808
- functionId: telemetry == null ? void 0 : telemetry.functionId,
2809
- metadata: telemetry == null ? void 0 : telemetry.metadata,
2810
- experimental_context
2811
- }));
2812
+ await (onToolCallStart == null ? void 0 : onToolCallStart(baseCallbackEvent));
2812
2813
  } catch (_ignored) {
2813
2814
  }
2814
2815
  const startTime = now();
@@ -2839,17 +2840,10 @@ async function executeToolCall({
2839
2840
  const durationMs2 = now() - startTime;
2840
2841
  try {
2841
2842
  await (onToolCallFinish == null ? void 0 : onToolCallFinish({
2842
- stepNumber,
2843
- model,
2844
- toolCall,
2845
- messages,
2846
- abortSignal,
2843
+ ...baseCallbackEvent,
2847
2844
  success: false,
2848
2845
  error,
2849
- durationMs: durationMs2,
2850
- functionId: telemetry == null ? void 0 : telemetry.functionId,
2851
- metadata: telemetry == null ? void 0 : telemetry.metadata,
2852
- experimental_context
2846
+ durationMs: durationMs2
2853
2847
  }));
2854
2848
  } catch (_ignored) {
2855
2849
  }
@@ -2867,17 +2861,10 @@ async function executeToolCall({
2867
2861
  const durationMs = now() - startTime;
2868
2862
  try {
2869
2863
  await (onToolCallFinish == null ? void 0 : onToolCallFinish({
2870
- stepNumber,
2871
- model,
2872
- toolCall,
2873
- messages,
2874
- abortSignal,
2864
+ ...baseCallbackEvent,
2875
2865
  success: true,
2876
2866
  output,
2877
- durationMs,
2878
- functionId: telemetry == null ? void 0 : telemetry.functionId,
2879
- metadata: telemetry == null ? void 0 : telemetry.metadata,
2880
- experimental_context
2867
+ durationMs
2881
2868
  }));
2882
2869
  } catch (_ignored) {
2883
2870
  }
@@ -4080,6 +4067,7 @@ async function generateText({
4080
4067
  headers: headersWithUserAgent,
4081
4068
  settings: { ...callSettings, maxRetries }
4082
4069
  });
4070
+ const modelInfo = { provider: model.provider, modelId: model.modelId };
4083
4071
  const initialPrompt = await standardizePrompt({
4084
4072
  system,
4085
4073
  prompt,
@@ -4087,7 +4075,7 @@ async function generateText({
4087
4075
  });
4088
4076
  try {
4089
4077
  await (onStart == null ? void 0 : onStart({
4090
- model: { provider: model.provider, modelId: model.modelId },
4078
+ model: modelInfo,
4091
4079
  system,
4092
4080
  prompt,
4093
4081
  messages,
@@ -4158,7 +4146,7 @@ async function generateText({
4158
4146
  abortSignal: mergedAbortSignal,
4159
4147
  experimental_context,
4160
4148
  stepNumber: 0,
4161
- model: { provider: model.provider, modelId: model.modelId },
4149
+ model: modelInfo,
4162
4150
  onToolCallStart,
4163
4151
  onToolCallFinish
4164
4152
  });
@@ -4240,6 +4228,10 @@ async function generateText({
4240
4228
  const stepModel = resolveLanguageModel(
4241
4229
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
4242
4230
  );
4231
+ const stepModelInfo = {
4232
+ provider: stepModel.provider,
4233
+ modelId: stepModel.modelId
4234
+ };
4243
4235
  const promptMessages = await convertToLanguageModelPrompt({
4244
4236
  prompt: {
4245
4237
  system: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,
@@ -4264,10 +4256,7 @@ async function generateText({
4264
4256
  try {
4265
4257
  await (onStepStart == null ? void 0 : onStepStart({
4266
4258
  stepNumber: steps.length,
4267
- model: {
4268
- provider: stepModel.provider,
4269
- modelId: stepModel.modelId
4270
- },
4259
+ model: stepModelInfo,
4271
4260
  system: stepSystem,
4272
4261
  messages: stepMessages,
4273
4262
  tools,
@@ -4462,10 +4451,7 @@ async function generateText({
4462
4451
  abortSignal: mergedAbortSignal,
4463
4452
  experimental_context,
4464
4453
  stepNumber: steps.length,
4465
- model: {
4466
- provider: stepModel.provider,
4467
- modelId: stepModel.modelId
4468
- },
4454
+ model: stepModelInfo,
4469
4455
  onToolCallStart,
4470
4456
  onToolCallFinish
4471
4457
  })
@@ -4515,10 +4501,7 @@ async function generateText({
4515
4501
  const stepNumber = steps.length;
4516
4502
  const currentStepResult = new DefaultStepResult({
4517
4503
  stepNumber,
4518
- model: {
4519
- provider: stepModel.provider,
4520
- modelId: stepModel.modelId
4521
- },
4504
+ model: stepModelInfo,
4522
4505
  functionId: telemetry == null ? void 0 : telemetry.functionId,
4523
4506
  metadata: telemetry == null ? void 0 : telemetry.metadata,
4524
4507
  experimental_context,
@@ -4533,8 +4516,8 @@ async function generateText({
4533
4516
  });
4534
4517
  logWarnings({
4535
4518
  warnings: (_m = currentModelResponse.warnings) != null ? _m : [],
4536
- provider: stepModel.provider,
4537
- model: stepModel.modelId
4519
+ provider: stepModelInfo.provider,
4520
+ model: stepModelInfo.modelId
4538
4521
  });
4539
4522
  steps.push(currentStepResult);
4540
4523
  await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
@@ -6062,7 +6045,11 @@ function runToolsTransformation({
6062
6045
  abortSignal,
6063
6046
  repairToolCall,
6064
6047
  experimental_context,
6065
- generateId: generateId2
6048
+ generateId: generateId2,
6049
+ stepNumber,
6050
+ model,
6051
+ onToolCallStart,
6052
+ onToolCallFinish
6066
6053
  }) {
6067
6054
  let toolResultsStreamController = null;
6068
6055
  const toolResultsStream = new ReadableStream({
@@ -6204,6 +6191,10 @@ function runToolsTransformation({
6204
6191
  messages,
6205
6192
  abortSignal,
6206
6193
  experimental_context,
6194
+ stepNumber,
6195
+ model,
6196
+ onToolCallStart,
6197
+ onToolCallFinish,
6207
6198
  onPreliminaryToolResult: (result) => {
6208
6199
  toolResultsStreamController.enqueue(result);
6209
6200
  }
@@ -6322,6 +6313,10 @@ function streamText({
6322
6313
  onFinish,
6323
6314
  onAbort,
6324
6315
  onStepFinish,
6316
+ experimental_onStart: onStart,
6317
+ experimental_onStepStart: onStepStart,
6318
+ experimental_onToolCallStart: onToolCallStart,
6319
+ experimental_onToolCallFinish: onToolCallFinish,
6325
6320
  experimental_context,
6326
6321
  experimental_include: include,
6327
6322
  _internal: { now: now2 = now, generateId: generateId2 = originalGenerateId2 } = {},
@@ -6361,11 +6356,18 @@ function streamText({
6361
6356
  providerOptions,
6362
6357
  prepareStep,
6363
6358
  includeRawChunks,
6359
+ timeout,
6360
+ stopWhen,
6361
+ originalAbortSignal: abortSignal,
6364
6362
  onChunk,
6365
6363
  onError,
6366
6364
  onFinish,
6367
6365
  onAbort,
6368
6366
  onStepFinish,
6367
+ onStart,
6368
+ onStepStart,
6369
+ onToolCallStart,
6370
+ onToolCallFinish,
6369
6371
  now: now2,
6370
6372
  generateId: generateId2,
6371
6373
  experimental_context,
@@ -6462,11 +6464,18 @@ var DefaultStreamTextResult = class {
6462
6464
  includeRawChunks,
6463
6465
  now: now2,
6464
6466
  generateId: generateId2,
6467
+ timeout,
6468
+ stopWhen,
6469
+ originalAbortSignal,
6465
6470
  onChunk,
6466
6471
  onError,
6467
6472
  onFinish,
6468
6473
  onAbort,
6469
6474
  onStepFinish,
6475
+ onStart,
6476
+ onStepStart,
6477
+ onToolCallStart,
6478
+ onToolCallFinish,
6470
6479
  experimental_context,
6471
6480
  download: download2,
6472
6481
  include
@@ -6610,12 +6619,8 @@ var DefaultStreamTextResult = class {
6610
6619
  });
6611
6620
  const currentStepResult = new DefaultStepResult({
6612
6621
  stepNumber: recordedSteps.length,
6613
- model: {
6614
- provider: model.provider,
6615
- modelId: model.modelId
6616
- },
6617
- functionId: telemetry == null ? void 0 : telemetry.functionId,
6618
- metadata: telemetry == null ? void 0 : telemetry.metadata,
6622
+ model: modelInfo,
6623
+ ...callbackTelemetryProps,
6619
6624
  experimental_context,
6620
6625
  content: recordedContent,
6621
6626
  finishReason: part.finishReason,
@@ -6632,8 +6637,8 @@ var DefaultStreamTextResult = class {
6632
6637
  await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
6633
6638
  logWarnings({
6634
6639
  warnings: recordedWarnings,
6635
- provider: model.provider,
6636
- model: model.modelId
6640
+ provider: modelInfo.provider,
6641
+ model: modelInfo.modelId
6637
6642
  });
6638
6643
  recordedSteps.push(currentStepResult);
6639
6644
  recordedResponseMessages.push(...stepMessages);
@@ -6792,6 +6797,11 @@ var DefaultStreamTextResult = class {
6792
6797
  settings: { ...callSettings, maxRetries }
6793
6798
  });
6794
6799
  const self = this;
6800
+ const modelInfo = { provider: model.provider, modelId: model.modelId };
6801
+ const callbackTelemetryProps = {
6802
+ functionId: telemetry == null ? void 0 : telemetry.functionId,
6803
+ metadata: telemetry == null ? void 0 : telemetry.metadata
6804
+ };
6795
6805
  recordSpan({
6796
6806
  name: "ai.streamText",
6797
6807
  attributes: selectTelemetryAttributes({
@@ -6814,6 +6824,36 @@ var DefaultStreamTextResult = class {
6814
6824
  prompt,
6815
6825
  messages
6816
6826
  });
6827
+ try {
6828
+ await (onStart == null ? void 0 : onStart({
6829
+ model: modelInfo,
6830
+ system,
6831
+ prompt,
6832
+ messages,
6833
+ tools,
6834
+ toolChoice,
6835
+ activeTools,
6836
+ maxOutputTokens: callSettings.maxOutputTokens,
6837
+ temperature: callSettings.temperature,
6838
+ topP: callSettings.topP,
6839
+ topK: callSettings.topK,
6840
+ presencePenalty: callSettings.presencePenalty,
6841
+ frequencyPenalty: callSettings.frequencyPenalty,
6842
+ stopSequences: callSettings.stopSequences,
6843
+ seed: callSettings.seed,
6844
+ maxRetries,
6845
+ timeout,
6846
+ headers,
6847
+ providerOptions,
6848
+ stopWhen,
6849
+ output,
6850
+ abortSignal: originalAbortSignal,
6851
+ include,
6852
+ ...callbackTelemetryProps,
6853
+ experimental_context
6854
+ }));
6855
+ } catch (_ignored) {
6856
+ }
6817
6857
  const initialMessages = initialPrompt.messages;
6818
6858
  const initialResponseMessages = [];
6819
6859
  const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
@@ -6860,6 +6900,10 @@ var DefaultStreamTextResult = class {
6860
6900
  messages: initialMessages,
6861
6901
  abortSignal,
6862
6902
  experimental_context,
6903
+ stepNumber: recordedSteps.length,
6904
+ model: modelInfo,
6905
+ onToolCallStart,
6906
+ onToolCallFinish,
6863
6907
  onPreliminaryToolResult: (result2) => {
6864
6908
  toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue(result2);
6865
6909
  }
@@ -6926,7 +6970,7 @@ var DefaultStreamTextResult = class {
6926
6970
  responseMessages,
6927
6971
  usage
6928
6972
  }) {
6929
- var _a21, _b, _c, _d, _e, _f, _g;
6973
+ var _a21, _b, _c, _d, _e, _f, _g, _h, _i;
6930
6974
  const includeRawChunks2 = self.includeRawChunks;
6931
6975
  const stepTimeoutId = stepTimeoutMs != null ? setTimeout(() => stepAbortController.abort(), stepTimeoutMs) : void 0;
6932
6976
  let chunkTimeoutId = void 0;
@@ -6965,6 +7009,10 @@ var DefaultStreamTextResult = class {
6965
7009
  const stepModel = resolveLanguageModel(
6966
7010
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
6967
7011
  );
7012
+ const stepModelInfo = {
7013
+ provider: stepModel.provider,
7014
+ modelId: stepModel.modelId
7015
+ };
6968
7016
  const promptMessages = await convertToLanguageModelPrompt({
6969
7017
  prompt: {
6970
7018
  system: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,
@@ -6973,16 +7021,41 @@ var DefaultStreamTextResult = class {
6973
7021
  supportedUrls: await stepModel.supportedUrls,
6974
7022
  download: download2
6975
7023
  });
7024
+ const stepActiveTools = (_d = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _d : activeTools;
6976
7025
  const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
6977
7026
  tools,
6978
- toolChoice: (_d = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _d : toolChoice,
6979
- activeTools: (_e = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _e : activeTools
7027
+ toolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,
7028
+ activeTools: stepActiveTools
6980
7029
  });
6981
7030
  experimental_context = (_f = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _f : experimental_context;
7031
+ const stepMessages = (_g = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _g : stepInputMessages;
7032
+ const stepSystem = (_h = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _h : initialPrompt.system;
6982
7033
  const stepProviderOptions = mergeObjects(
6983
7034
  providerOptions,
6984
7035
  prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
6985
7036
  );
7037
+ try {
7038
+ await (onStepStart == null ? void 0 : onStepStart({
7039
+ stepNumber: recordedSteps.length,
7040
+ model: stepModelInfo,
7041
+ system: stepSystem,
7042
+ messages: stepMessages,
7043
+ tools,
7044
+ toolChoice: stepToolChoice,
7045
+ activeTools: stepActiveTools,
7046
+ steps: [...recordedSteps],
7047
+ providerOptions: stepProviderOptions,
7048
+ timeout,
7049
+ headers,
7050
+ stopWhen,
7051
+ output,
7052
+ abortSignal: originalAbortSignal,
7053
+ include,
7054
+ ...callbackTelemetryProps,
7055
+ experimental_context
7056
+ }));
7057
+ } catch (_ignored) {
7058
+ }
6986
7059
  const {
6987
7060
  result: { stream: stream2, response, request },
6988
7061
  doStreamSpan,
@@ -7054,9 +7127,13 @@ var DefaultStreamTextResult = class {
7054
7127
  repairToolCall,
7055
7128
  abortSignal,
7056
7129
  experimental_context,
7057
- generateId: generateId2
7130
+ generateId: generateId2,
7131
+ stepNumber: recordedSteps.length,
7132
+ model: stepModelInfo,
7133
+ onToolCallStart,
7134
+ onToolCallFinish
7058
7135
  });
7059
- const stepRequest = ((_g = include == null ? void 0 : include.requestBody) != null ? _g : true) ? request != null ? request : {} : { ...request, body: void 0 };
7136
+ const stepRequest = ((_i = include == null ? void 0 : include.requestBody) != null ? _i : true) ? request != null ? request : {} : { ...request, body: void 0 };
7060
7137
  const stepToolCalls = [];
7061
7138
  const stepToolOutputs = [];
7062
7139
  let warnings;
@@ -7069,7 +7146,7 @@ var DefaultStreamTextResult = class {
7069
7146
  let stepResponse = {
7070
7147
  id: generateId2(),
7071
7148
  timestamp: /* @__PURE__ */ new Date(),
7072
- modelId: model.modelId
7149
+ modelId: modelInfo.modelId
7073
7150
  };
7074
7151
  let activeText = "";
7075
7152
  self.addStream(
@@ -7908,9 +7985,17 @@ var ToolLoopAgent = class {
7908
7985
  }
7909
7986
  async prepareCall(options) {
7910
7987
  var _a21, _b, _c, _d;
7911
- const { onStepFinish: _settingsOnStepFinish, ...settingsWithoutCallback } = this.settings;
7988
+ const {
7989
+ experimental_onStart: _settingsOnStart,
7990
+ experimental_onStepStart: _settingsOnStepStart,
7991
+ experimental_onToolCallStart: _settingsOnToolCallStart,
7992
+ experimental_onToolCallFinish: _settingsOnToolCallFinish,
7993
+ onStepFinish: _settingsOnStepFinish,
7994
+ onFinish: _settingsOnFinish,
7995
+ ...settingsWithoutCallbacks
7996
+ } = this.settings;
7912
7997
  const baseCallArgs = {
7913
- ...settingsWithoutCallback,
7998
+ ...settingsWithoutCallbacks,
7914
7999
  stopWhen: (_a21 = this.settings.stopWhen) != null ? _a21 : stepCountIs(20),
7915
8000
  ...options
7916
8001
  };
@@ -7925,15 +8010,14 @@ var ToolLoopAgent = class {
7925
8010
  ...{ system: instructions, messages, prompt }
7926
8011
  };
7927
8012
  }
7928
- mergeOnStepFinishCallbacks(methodCallback) {
7929
- const constructorCallback = this.settings.onStepFinish;
7930
- if (methodCallback && constructorCallback) {
7931
- return async (stepResult) => {
7932
- await constructorCallback(stepResult);
7933
- await methodCallback(stepResult);
8013
+ mergeCallbacks(settingsCallback, methodCallback) {
8014
+ if (methodCallback && settingsCallback) {
8015
+ return async (event) => {
8016
+ await settingsCallback(event);
8017
+ await methodCallback(event);
7934
8018
  };
7935
8019
  }
7936
- return methodCallback != null ? methodCallback : constructorCallback;
8020
+ return methodCallback != null ? methodCallback : settingsCallback;
7937
8021
  }
7938
8022
  /**
7939
8023
  * Generates an output from the agent (non-streaming).
@@ -7941,14 +8025,39 @@ var ToolLoopAgent = class {
7941
8025
  async generate({
7942
8026
  abortSignal,
7943
8027
  timeout,
8028
+ experimental_onStart,
8029
+ experimental_onStepStart,
8030
+ experimental_onToolCallStart,
8031
+ experimental_onToolCallFinish,
7944
8032
  onStepFinish,
8033
+ onFinish,
7945
8034
  ...options
7946
8035
  }) {
7947
8036
  return generateText({
7948
8037
  ...await this.prepareCall(options),
7949
8038
  abortSignal,
7950
8039
  timeout,
7951
- onStepFinish: this.mergeOnStepFinishCallbacks(onStepFinish)
8040
+ experimental_onStart: this.mergeCallbacks(
8041
+ this.settings.experimental_onStart,
8042
+ experimental_onStart
8043
+ ),
8044
+ experimental_onStepStart: this.mergeCallbacks(
8045
+ this.settings.experimental_onStepStart,
8046
+ experimental_onStepStart
8047
+ ),
8048
+ experimental_onToolCallStart: this.mergeCallbacks(
8049
+ this.settings.experimental_onToolCallStart,
8050
+ experimental_onToolCallStart
8051
+ ),
8052
+ experimental_onToolCallFinish: this.mergeCallbacks(
8053
+ this.settings.experimental_onToolCallFinish,
8054
+ experimental_onToolCallFinish
8055
+ ),
8056
+ onStepFinish: this.mergeCallbacks(
8057
+ this.settings.onStepFinish,
8058
+ onStepFinish
8059
+ ),
8060
+ onFinish: this.mergeCallbacks(this.settings.onFinish, onFinish)
7952
8061
  });
7953
8062
  }
7954
8063
  /**
@@ -7958,7 +8067,12 @@ var ToolLoopAgent = class {
7958
8067
  abortSignal,
7959
8068
  timeout,
7960
8069
  experimental_transform,
8070
+ experimental_onStart,
8071
+ experimental_onStepStart,
8072
+ experimental_onToolCallStart,
8073
+ experimental_onToolCallFinish,
7961
8074
  onStepFinish,
8075
+ onFinish,
7962
8076
  ...options
7963
8077
  }) {
7964
8078
  return streamText({
@@ -7966,7 +8080,27 @@ var ToolLoopAgent = class {
7966
8080
  abortSignal,
7967
8081
  timeout,
7968
8082
  experimental_transform,
7969
- onStepFinish: this.mergeOnStepFinishCallbacks(onStepFinish)
8083
+ experimental_onStart: this.mergeCallbacks(
8084
+ this.settings.experimental_onStart,
8085
+ experimental_onStart
8086
+ ),
8087
+ experimental_onStepStart: this.mergeCallbacks(
8088
+ this.settings.experimental_onStepStart,
8089
+ experimental_onStepStart
8090
+ ),
8091
+ experimental_onToolCallStart: this.mergeCallbacks(
8092
+ this.settings.experimental_onToolCallStart,
8093
+ experimental_onToolCallStart
8094
+ ),
8095
+ experimental_onToolCallFinish: this.mergeCallbacks(
8096
+ this.settings.experimental_onToolCallFinish,
8097
+ experimental_onToolCallFinish
8098
+ ),
8099
+ onStepFinish: this.mergeCallbacks(
8100
+ this.settings.onStepFinish,
8101
+ onStepFinish
8102
+ ),
8103
+ onFinish: this.mergeCallbacks(this.settings.onFinish, onFinish)
7970
8104
  });
7971
8105
  }
7972
8106
  };