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.mjs CHANGED
@@ -1104,7 +1104,7 @@ import {
1104
1104
  } from "@ai-sdk/provider-utils";
1105
1105
 
1106
1106
  // src/version.ts
1107
- var VERSION = true ? "6.0.95" : "0.0.0-test";
1107
+ var VERSION = true ? "6.0.97" : "0.0.0-test";
1108
1108
 
1109
1109
  // src/util/download/download.ts
1110
1110
  var download = async ({
@@ -2680,6 +2680,16 @@ async function executeToolCall({
2680
2680
  if ((tool2 == null ? void 0 : tool2.execute) == null) {
2681
2681
  return void 0;
2682
2682
  }
2683
+ const baseCallbackEvent = {
2684
+ stepNumber,
2685
+ model,
2686
+ toolCall,
2687
+ messages,
2688
+ abortSignal,
2689
+ functionId: telemetry == null ? void 0 : telemetry.functionId,
2690
+ metadata: telemetry == null ? void 0 : telemetry.metadata,
2691
+ experimental_context
2692
+ };
2683
2693
  return recordSpan({
2684
2694
  name: "ai.toolCall",
2685
2695
  attributes: selectTelemetryAttributes({
@@ -2700,16 +2710,7 @@ async function executeToolCall({
2700
2710
  fn: async (span) => {
2701
2711
  let output;
2702
2712
  try {
2703
- await (onToolCallStart == null ? void 0 : onToolCallStart({
2704
- stepNumber,
2705
- model,
2706
- toolCall,
2707
- messages,
2708
- abortSignal,
2709
- functionId: telemetry == null ? void 0 : telemetry.functionId,
2710
- metadata: telemetry == null ? void 0 : telemetry.metadata,
2711
- experimental_context
2712
- }));
2713
+ await (onToolCallStart == null ? void 0 : onToolCallStart(baseCallbackEvent));
2713
2714
  } catch (_ignored) {
2714
2715
  }
2715
2716
  const startTime = now();
@@ -2740,17 +2741,10 @@ async function executeToolCall({
2740
2741
  const durationMs2 = now() - startTime;
2741
2742
  try {
2742
2743
  await (onToolCallFinish == null ? void 0 : onToolCallFinish({
2743
- stepNumber,
2744
- model,
2745
- toolCall,
2746
- messages,
2747
- abortSignal,
2744
+ ...baseCallbackEvent,
2748
2745
  success: false,
2749
2746
  error,
2750
- durationMs: durationMs2,
2751
- functionId: telemetry == null ? void 0 : telemetry.functionId,
2752
- metadata: telemetry == null ? void 0 : telemetry.metadata,
2753
- experimental_context
2747
+ durationMs: durationMs2
2754
2748
  }));
2755
2749
  } catch (_ignored) {
2756
2750
  }
@@ -2768,17 +2762,10 @@ async function executeToolCall({
2768
2762
  const durationMs = now() - startTime;
2769
2763
  try {
2770
2764
  await (onToolCallFinish == null ? void 0 : onToolCallFinish({
2771
- stepNumber,
2772
- model,
2773
- toolCall,
2774
- messages,
2775
- abortSignal,
2765
+ ...baseCallbackEvent,
2776
2766
  success: true,
2777
2767
  output,
2778
- durationMs,
2779
- functionId: telemetry == null ? void 0 : telemetry.functionId,
2780
- metadata: telemetry == null ? void 0 : telemetry.metadata,
2781
- experimental_context
2768
+ durationMs
2782
2769
  }));
2783
2770
  } catch (_ignored) {
2784
2771
  }
@@ -3995,6 +3982,7 @@ async function generateText({
3995
3982
  headers: headersWithUserAgent,
3996
3983
  settings: { ...callSettings, maxRetries }
3997
3984
  });
3985
+ const modelInfo = { provider: model.provider, modelId: model.modelId };
3998
3986
  const initialPrompt = await standardizePrompt({
3999
3987
  system,
4000
3988
  prompt,
@@ -4002,7 +3990,7 @@ async function generateText({
4002
3990
  });
4003
3991
  try {
4004
3992
  await (onStart == null ? void 0 : onStart({
4005
- model: { provider: model.provider, modelId: model.modelId },
3993
+ model: modelInfo,
4006
3994
  system,
4007
3995
  prompt,
4008
3996
  messages,
@@ -4073,7 +4061,7 @@ async function generateText({
4073
4061
  abortSignal: mergedAbortSignal,
4074
4062
  experimental_context,
4075
4063
  stepNumber: 0,
4076
- model: { provider: model.provider, modelId: model.modelId },
4064
+ model: modelInfo,
4077
4065
  onToolCallStart,
4078
4066
  onToolCallFinish
4079
4067
  });
@@ -4155,6 +4143,10 @@ async function generateText({
4155
4143
  const stepModel = resolveLanguageModel(
4156
4144
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
4157
4145
  );
4146
+ const stepModelInfo = {
4147
+ provider: stepModel.provider,
4148
+ modelId: stepModel.modelId
4149
+ };
4158
4150
  const promptMessages = await convertToLanguageModelPrompt({
4159
4151
  prompt: {
4160
4152
  system: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,
@@ -4179,10 +4171,7 @@ async function generateText({
4179
4171
  try {
4180
4172
  await (onStepStart == null ? void 0 : onStepStart({
4181
4173
  stepNumber: steps.length,
4182
- model: {
4183
- provider: stepModel.provider,
4184
- modelId: stepModel.modelId
4185
- },
4174
+ model: stepModelInfo,
4186
4175
  system: stepSystem,
4187
4176
  messages: stepMessages,
4188
4177
  tools,
@@ -4377,10 +4366,7 @@ async function generateText({
4377
4366
  abortSignal: mergedAbortSignal,
4378
4367
  experimental_context,
4379
4368
  stepNumber: steps.length,
4380
- model: {
4381
- provider: stepModel.provider,
4382
- modelId: stepModel.modelId
4383
- },
4369
+ model: stepModelInfo,
4384
4370
  onToolCallStart,
4385
4371
  onToolCallFinish
4386
4372
  })
@@ -4430,10 +4416,7 @@ async function generateText({
4430
4416
  const stepNumber = steps.length;
4431
4417
  const currentStepResult = new DefaultStepResult({
4432
4418
  stepNumber,
4433
- model: {
4434
- provider: stepModel.provider,
4435
- modelId: stepModel.modelId
4436
- },
4419
+ model: stepModelInfo,
4437
4420
  functionId: telemetry == null ? void 0 : telemetry.functionId,
4438
4421
  metadata: telemetry == null ? void 0 : telemetry.metadata,
4439
4422
  experimental_context,
@@ -4448,8 +4431,8 @@ async function generateText({
4448
4431
  });
4449
4432
  logWarnings({
4450
4433
  warnings: (_m = currentModelResponse.warnings) != null ? _m : [],
4451
- provider: stepModel.provider,
4452
- model: stepModel.modelId
4434
+ provider: stepModelInfo.provider,
4435
+ model: stepModelInfo.modelId
4453
4436
  });
4454
4437
  steps.push(currentStepResult);
4455
4438
  await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
@@ -5986,7 +5969,11 @@ function runToolsTransformation({
5986
5969
  abortSignal,
5987
5970
  repairToolCall,
5988
5971
  experimental_context,
5989
- generateId: generateId2
5972
+ generateId: generateId2,
5973
+ stepNumber,
5974
+ model,
5975
+ onToolCallStart,
5976
+ onToolCallFinish
5990
5977
  }) {
5991
5978
  let toolResultsStreamController = null;
5992
5979
  const toolResultsStream = new ReadableStream({
@@ -6128,6 +6115,10 @@ function runToolsTransformation({
6128
6115
  messages,
6129
6116
  abortSignal,
6130
6117
  experimental_context,
6118
+ stepNumber,
6119
+ model,
6120
+ onToolCallStart,
6121
+ onToolCallFinish,
6131
6122
  onPreliminaryToolResult: (result) => {
6132
6123
  toolResultsStreamController.enqueue(result);
6133
6124
  }
@@ -6246,6 +6237,10 @@ function streamText({
6246
6237
  onFinish,
6247
6238
  onAbort,
6248
6239
  onStepFinish,
6240
+ experimental_onStart: onStart,
6241
+ experimental_onStepStart: onStepStart,
6242
+ experimental_onToolCallStart: onToolCallStart,
6243
+ experimental_onToolCallFinish: onToolCallFinish,
6249
6244
  experimental_context,
6250
6245
  experimental_include: include,
6251
6246
  _internal: { now: now2 = now, generateId: generateId2 = originalGenerateId2 } = {},
@@ -6285,11 +6280,18 @@ function streamText({
6285
6280
  providerOptions,
6286
6281
  prepareStep,
6287
6282
  includeRawChunks,
6283
+ timeout,
6284
+ stopWhen,
6285
+ originalAbortSignal: abortSignal,
6288
6286
  onChunk,
6289
6287
  onError,
6290
6288
  onFinish,
6291
6289
  onAbort,
6292
6290
  onStepFinish,
6291
+ onStart,
6292
+ onStepStart,
6293
+ onToolCallStart,
6294
+ onToolCallFinish,
6293
6295
  now: now2,
6294
6296
  generateId: generateId2,
6295
6297
  experimental_context,
@@ -6386,11 +6388,18 @@ var DefaultStreamTextResult = class {
6386
6388
  includeRawChunks,
6387
6389
  now: now2,
6388
6390
  generateId: generateId2,
6391
+ timeout,
6392
+ stopWhen,
6393
+ originalAbortSignal,
6389
6394
  onChunk,
6390
6395
  onError,
6391
6396
  onFinish,
6392
6397
  onAbort,
6393
6398
  onStepFinish,
6399
+ onStart,
6400
+ onStepStart,
6401
+ onToolCallStart,
6402
+ onToolCallFinish,
6394
6403
  experimental_context,
6395
6404
  download: download2,
6396
6405
  include
@@ -6534,12 +6543,8 @@ var DefaultStreamTextResult = class {
6534
6543
  });
6535
6544
  const currentStepResult = new DefaultStepResult({
6536
6545
  stepNumber: recordedSteps.length,
6537
- model: {
6538
- provider: model.provider,
6539
- modelId: model.modelId
6540
- },
6541
- functionId: telemetry == null ? void 0 : telemetry.functionId,
6542
- metadata: telemetry == null ? void 0 : telemetry.metadata,
6546
+ model: modelInfo,
6547
+ ...callbackTelemetryProps,
6543
6548
  experimental_context,
6544
6549
  content: recordedContent,
6545
6550
  finishReason: part.finishReason,
@@ -6556,8 +6561,8 @@ var DefaultStreamTextResult = class {
6556
6561
  await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
6557
6562
  logWarnings({
6558
6563
  warnings: recordedWarnings,
6559
- provider: model.provider,
6560
- model: model.modelId
6564
+ provider: modelInfo.provider,
6565
+ model: modelInfo.modelId
6561
6566
  });
6562
6567
  recordedSteps.push(currentStepResult);
6563
6568
  recordedResponseMessages.push(...stepMessages);
@@ -6716,6 +6721,11 @@ var DefaultStreamTextResult = class {
6716
6721
  settings: { ...callSettings, maxRetries }
6717
6722
  });
6718
6723
  const self = this;
6724
+ const modelInfo = { provider: model.provider, modelId: model.modelId };
6725
+ const callbackTelemetryProps = {
6726
+ functionId: telemetry == null ? void 0 : telemetry.functionId,
6727
+ metadata: telemetry == null ? void 0 : telemetry.metadata
6728
+ };
6719
6729
  recordSpan({
6720
6730
  name: "ai.streamText",
6721
6731
  attributes: selectTelemetryAttributes({
@@ -6738,6 +6748,36 @@ var DefaultStreamTextResult = class {
6738
6748
  prompt,
6739
6749
  messages
6740
6750
  });
6751
+ try {
6752
+ await (onStart == null ? void 0 : onStart({
6753
+ model: modelInfo,
6754
+ system,
6755
+ prompt,
6756
+ messages,
6757
+ tools,
6758
+ toolChoice,
6759
+ activeTools,
6760
+ maxOutputTokens: callSettings.maxOutputTokens,
6761
+ temperature: callSettings.temperature,
6762
+ topP: callSettings.topP,
6763
+ topK: callSettings.topK,
6764
+ presencePenalty: callSettings.presencePenalty,
6765
+ frequencyPenalty: callSettings.frequencyPenalty,
6766
+ stopSequences: callSettings.stopSequences,
6767
+ seed: callSettings.seed,
6768
+ maxRetries,
6769
+ timeout,
6770
+ headers,
6771
+ providerOptions,
6772
+ stopWhen,
6773
+ output,
6774
+ abortSignal: originalAbortSignal,
6775
+ include,
6776
+ ...callbackTelemetryProps,
6777
+ experimental_context
6778
+ }));
6779
+ } catch (_ignored) {
6780
+ }
6741
6781
  const initialMessages = initialPrompt.messages;
6742
6782
  const initialResponseMessages = [];
6743
6783
  const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
@@ -6784,6 +6824,10 @@ var DefaultStreamTextResult = class {
6784
6824
  messages: initialMessages,
6785
6825
  abortSignal,
6786
6826
  experimental_context,
6827
+ stepNumber: recordedSteps.length,
6828
+ model: modelInfo,
6829
+ onToolCallStart,
6830
+ onToolCallFinish,
6787
6831
  onPreliminaryToolResult: (result2) => {
6788
6832
  toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue(result2);
6789
6833
  }
@@ -6850,7 +6894,7 @@ var DefaultStreamTextResult = class {
6850
6894
  responseMessages,
6851
6895
  usage
6852
6896
  }) {
6853
- var _a21, _b, _c, _d, _e, _f, _g;
6897
+ var _a21, _b, _c, _d, _e, _f, _g, _h, _i;
6854
6898
  const includeRawChunks2 = self.includeRawChunks;
6855
6899
  const stepTimeoutId = stepTimeoutMs != null ? setTimeout(() => stepAbortController.abort(), stepTimeoutMs) : void 0;
6856
6900
  let chunkTimeoutId = void 0;
@@ -6889,6 +6933,10 @@ var DefaultStreamTextResult = class {
6889
6933
  const stepModel = resolveLanguageModel(
6890
6934
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
6891
6935
  );
6936
+ const stepModelInfo = {
6937
+ provider: stepModel.provider,
6938
+ modelId: stepModel.modelId
6939
+ };
6892
6940
  const promptMessages = await convertToLanguageModelPrompt({
6893
6941
  prompt: {
6894
6942
  system: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,
@@ -6897,16 +6945,41 @@ var DefaultStreamTextResult = class {
6897
6945
  supportedUrls: await stepModel.supportedUrls,
6898
6946
  download: download2
6899
6947
  });
6948
+ const stepActiveTools = (_d = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _d : activeTools;
6900
6949
  const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
6901
6950
  tools,
6902
- toolChoice: (_d = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _d : toolChoice,
6903
- activeTools: (_e = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _e : activeTools
6951
+ toolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,
6952
+ activeTools: stepActiveTools
6904
6953
  });
6905
6954
  experimental_context = (_f = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _f : experimental_context;
6955
+ const stepMessages = (_g = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _g : stepInputMessages;
6956
+ const stepSystem = (_h = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _h : initialPrompt.system;
6906
6957
  const stepProviderOptions = mergeObjects(
6907
6958
  providerOptions,
6908
6959
  prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
6909
6960
  );
6961
+ try {
6962
+ await (onStepStart == null ? void 0 : onStepStart({
6963
+ stepNumber: recordedSteps.length,
6964
+ model: stepModelInfo,
6965
+ system: stepSystem,
6966
+ messages: stepMessages,
6967
+ tools,
6968
+ toolChoice: stepToolChoice,
6969
+ activeTools: stepActiveTools,
6970
+ steps: [...recordedSteps],
6971
+ providerOptions: stepProviderOptions,
6972
+ timeout,
6973
+ headers,
6974
+ stopWhen,
6975
+ output,
6976
+ abortSignal: originalAbortSignal,
6977
+ include,
6978
+ ...callbackTelemetryProps,
6979
+ experimental_context
6980
+ }));
6981
+ } catch (_ignored) {
6982
+ }
6910
6983
  const {
6911
6984
  result: { stream: stream2, response, request },
6912
6985
  doStreamSpan,
@@ -6978,9 +7051,13 @@ var DefaultStreamTextResult = class {
6978
7051
  repairToolCall,
6979
7052
  abortSignal,
6980
7053
  experimental_context,
6981
- generateId: generateId2
7054
+ generateId: generateId2,
7055
+ stepNumber: recordedSteps.length,
7056
+ model: stepModelInfo,
7057
+ onToolCallStart,
7058
+ onToolCallFinish
6982
7059
  });
6983
- const stepRequest = ((_g = include == null ? void 0 : include.requestBody) != null ? _g : true) ? request != null ? request : {} : { ...request, body: void 0 };
7060
+ const stepRequest = ((_i = include == null ? void 0 : include.requestBody) != null ? _i : true) ? request != null ? request : {} : { ...request, body: void 0 };
6984
7061
  const stepToolCalls = [];
6985
7062
  const stepToolOutputs = [];
6986
7063
  let warnings;
@@ -6993,7 +7070,7 @@ var DefaultStreamTextResult = class {
6993
7070
  let stepResponse = {
6994
7071
  id: generateId2(),
6995
7072
  timestamp: /* @__PURE__ */ new Date(),
6996
- modelId: model.modelId
7073
+ modelId: modelInfo.modelId
6997
7074
  };
6998
7075
  let activeText = "";
6999
7076
  self.addStream(
@@ -7832,9 +7909,17 @@ var ToolLoopAgent = class {
7832
7909
  }
7833
7910
  async prepareCall(options) {
7834
7911
  var _a21, _b, _c, _d;
7835
- const { onStepFinish: _settingsOnStepFinish, ...settingsWithoutCallback } = this.settings;
7912
+ const {
7913
+ experimental_onStart: _settingsOnStart,
7914
+ experimental_onStepStart: _settingsOnStepStart,
7915
+ experimental_onToolCallStart: _settingsOnToolCallStart,
7916
+ experimental_onToolCallFinish: _settingsOnToolCallFinish,
7917
+ onStepFinish: _settingsOnStepFinish,
7918
+ onFinish: _settingsOnFinish,
7919
+ ...settingsWithoutCallbacks
7920
+ } = this.settings;
7836
7921
  const baseCallArgs = {
7837
- ...settingsWithoutCallback,
7922
+ ...settingsWithoutCallbacks,
7838
7923
  stopWhen: (_a21 = this.settings.stopWhen) != null ? _a21 : stepCountIs(20),
7839
7924
  ...options
7840
7925
  };
@@ -7849,15 +7934,14 @@ var ToolLoopAgent = class {
7849
7934
  ...{ system: instructions, messages, prompt }
7850
7935
  };
7851
7936
  }
7852
- mergeOnStepFinishCallbacks(methodCallback) {
7853
- const constructorCallback = this.settings.onStepFinish;
7854
- if (methodCallback && constructorCallback) {
7855
- return async (stepResult) => {
7856
- await constructorCallback(stepResult);
7857
- await methodCallback(stepResult);
7937
+ mergeCallbacks(settingsCallback, methodCallback) {
7938
+ if (methodCallback && settingsCallback) {
7939
+ return async (event) => {
7940
+ await settingsCallback(event);
7941
+ await methodCallback(event);
7858
7942
  };
7859
7943
  }
7860
- return methodCallback != null ? methodCallback : constructorCallback;
7944
+ return methodCallback != null ? methodCallback : settingsCallback;
7861
7945
  }
7862
7946
  /**
7863
7947
  * Generates an output from the agent (non-streaming).
@@ -7865,14 +7949,39 @@ var ToolLoopAgent = class {
7865
7949
  async generate({
7866
7950
  abortSignal,
7867
7951
  timeout,
7952
+ experimental_onStart,
7953
+ experimental_onStepStart,
7954
+ experimental_onToolCallStart,
7955
+ experimental_onToolCallFinish,
7868
7956
  onStepFinish,
7957
+ onFinish,
7869
7958
  ...options
7870
7959
  }) {
7871
7960
  return generateText({
7872
7961
  ...await this.prepareCall(options),
7873
7962
  abortSignal,
7874
7963
  timeout,
7875
- onStepFinish: this.mergeOnStepFinishCallbacks(onStepFinish)
7964
+ experimental_onStart: this.mergeCallbacks(
7965
+ this.settings.experimental_onStart,
7966
+ experimental_onStart
7967
+ ),
7968
+ experimental_onStepStart: this.mergeCallbacks(
7969
+ this.settings.experimental_onStepStart,
7970
+ experimental_onStepStart
7971
+ ),
7972
+ experimental_onToolCallStart: this.mergeCallbacks(
7973
+ this.settings.experimental_onToolCallStart,
7974
+ experimental_onToolCallStart
7975
+ ),
7976
+ experimental_onToolCallFinish: this.mergeCallbacks(
7977
+ this.settings.experimental_onToolCallFinish,
7978
+ experimental_onToolCallFinish
7979
+ ),
7980
+ onStepFinish: this.mergeCallbacks(
7981
+ this.settings.onStepFinish,
7982
+ onStepFinish
7983
+ ),
7984
+ onFinish: this.mergeCallbacks(this.settings.onFinish, onFinish)
7876
7985
  });
7877
7986
  }
7878
7987
  /**
@@ -7882,7 +7991,12 @@ var ToolLoopAgent = class {
7882
7991
  abortSignal,
7883
7992
  timeout,
7884
7993
  experimental_transform,
7994
+ experimental_onStart,
7995
+ experimental_onStepStart,
7996
+ experimental_onToolCallStart,
7997
+ experimental_onToolCallFinish,
7885
7998
  onStepFinish,
7999
+ onFinish,
7886
8000
  ...options
7887
8001
  }) {
7888
8002
  return streamText({
@@ -7890,7 +8004,27 @@ var ToolLoopAgent = class {
7890
8004
  abortSignal,
7891
8005
  timeout,
7892
8006
  experimental_transform,
7893
- onStepFinish: this.mergeOnStepFinishCallbacks(onStepFinish)
8007
+ experimental_onStart: this.mergeCallbacks(
8008
+ this.settings.experimental_onStart,
8009
+ experimental_onStart
8010
+ ),
8011
+ experimental_onStepStart: this.mergeCallbacks(
8012
+ this.settings.experimental_onStepStart,
8013
+ experimental_onStepStart
8014
+ ),
8015
+ experimental_onToolCallStart: this.mergeCallbacks(
8016
+ this.settings.experimental_onToolCallStart,
8017
+ experimental_onToolCallStart
8018
+ ),
8019
+ experimental_onToolCallFinish: this.mergeCallbacks(
8020
+ this.settings.experimental_onToolCallFinish,
8021
+ experimental_onToolCallFinish
8022
+ ),
8023
+ onStepFinish: this.mergeCallbacks(
8024
+ this.settings.onStepFinish,
8025
+ onStepFinish
8026
+ ),
8027
+ onFinish: this.mergeCallbacks(this.settings.onFinish, onFinish)
7894
8028
  });
7895
8029
  }
7896
8030
  };