@mastra/ai-sdk 1.4.2 → 1.4.3-alpha.0

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
@@ -12905,6 +12905,7 @@ function ensureAgentRunState(bufferedSteps, runId) {
12905
12905
  sources: [],
12906
12906
  files: [],
12907
12907
  toolCalls: [],
12908
+ pendingToolCalls: [],
12908
12909
  toolResults: [],
12909
12910
  request: {},
12910
12911
  response: {
@@ -12920,6 +12921,44 @@ function ensureAgentRunState(bufferedSteps, runId) {
12920
12921
  }
12921
12922
  return bufferedSteps.get(runId);
12922
12923
  }
12924
+ function upsertPendingToolCall(pendingToolCalls = [], toolCallId, updates) {
12925
+ const existingIndex = pendingToolCalls.findIndex((call) => call.toolCallId === toolCallId);
12926
+ if (existingIndex === -1) {
12927
+ return [
12928
+ ...pendingToolCalls,
12929
+ {
12930
+ toolCallId,
12931
+ toolName: updates.toolName || "",
12932
+ argsText: updates.argsText || "",
12933
+ state: updates.state || "input-streaming",
12934
+ ...updates.providerExecuted != null ? { providerExecuted: updates.providerExecuted } : {},
12935
+ ...updates.providerMetadata != null ? { providerMetadata: updates.providerMetadata } : {},
12936
+ ...updates.dynamic != null ? { dynamic: updates.dynamic } : {}
12937
+ }
12938
+ ];
12939
+ }
12940
+ return pendingToolCalls.map((call, index) => {
12941
+ if (index !== existingIndex) return call;
12942
+ return {
12943
+ ...call,
12944
+ ...updates,
12945
+ toolName: updates.toolName || call.toolName,
12946
+ argsText: updates.argsText ?? call.argsText
12947
+ };
12948
+ });
12949
+ }
12950
+ function appendPendingToolCallArgs(pendingToolCalls = [], payload) {
12951
+ const existing = pendingToolCalls.find((call) => call.toolCallId === payload.toolCallId);
12952
+ return upsertPendingToolCall(pendingToolCalls, payload.toolCallId, {
12953
+ toolName: payload.toolName || existing?.toolName || "",
12954
+ argsText: `${existing?.argsText || ""}${payload.argsTextDelta || ""}`,
12955
+ state: "input-streaming",
12956
+ providerMetadata: payload.providerMetadata ?? existing?.providerMetadata
12957
+ });
12958
+ }
12959
+ function removePendingToolCall(pendingToolCalls = [], toolCallId) {
12960
+ return pendingToolCalls.filter((call) => call.toolCallId !== toolCallId);
12961
+ }
12923
12962
  function transformAgent(payload, bufferedSteps) {
12924
12963
  let hasChanged = false;
12925
12964
  switch (payload.type) {
@@ -12935,6 +12974,7 @@ function transformAgent(payload, bufferedSteps) {
12935
12974
  sources: [],
12936
12975
  files: [],
12937
12976
  toolCalls: [],
12977
+ pendingToolCalls: [],
12938
12978
  toolResults: [],
12939
12979
  request: {},
12940
12980
  response: {
@@ -12949,6 +12989,50 @@ function transformAgent(payload, bufferedSteps) {
12949
12989
  });
12950
12990
  hasChanged = true;
12951
12991
  break;
12992
+ case "tool-call-input-streaming-start": {
12993
+ const toolInputStartRun = ensureAgentRunState(bufferedSteps, payload.runId);
12994
+ const existing = toolInputStartRun.pendingToolCalls?.find(
12995
+ (call) => call.toolCallId === payload.payload.toolCallId
12996
+ );
12997
+ bufferedSteps.set(payload.runId, {
12998
+ ...toolInputStartRun,
12999
+ pendingToolCalls: upsertPendingToolCall(toolInputStartRun.pendingToolCalls, payload.payload.toolCallId, {
13000
+ toolName: payload.payload.toolName,
13001
+ argsText: existing?.argsText ?? "",
13002
+ state: "input-streaming",
13003
+ providerExecuted: payload.payload.providerExecuted,
13004
+ providerMetadata: payload.payload.providerMetadata,
13005
+ dynamic: payload.payload.dynamic
13006
+ })
13007
+ });
13008
+ hasChanged = true;
13009
+ break;
13010
+ }
13011
+ case "tool-call-delta": {
13012
+ const toolCallDeltaRun = ensureAgentRunState(bufferedSteps, payload.runId);
13013
+ bufferedSteps.set(payload.runId, {
13014
+ ...toolCallDeltaRun,
13015
+ pendingToolCalls: appendPendingToolCallArgs(toolCallDeltaRun.pendingToolCalls, payload.payload)
13016
+ });
13017
+ hasChanged = true;
13018
+ break;
13019
+ }
13020
+ case "tool-call-input-streaming-end": {
13021
+ const toolInputEndRun = ensureAgentRunState(bufferedSteps, payload.runId);
13022
+ const existing = toolInputEndRun.pendingToolCalls?.find(
13023
+ (call) => call.toolCallId === payload.payload.toolCallId
13024
+ );
13025
+ bufferedSteps.set(payload.runId, {
13026
+ ...toolInputEndRun,
13027
+ pendingToolCalls: upsertPendingToolCall(toolInputEndRun.pendingToolCalls, payload.payload.toolCallId, {
13028
+ toolName: existing?.toolName || "",
13029
+ state: "input-available",
13030
+ providerMetadata: payload.payload.providerMetadata ?? existing?.providerMetadata
13031
+ })
13032
+ });
13033
+ hasChanged = true;
13034
+ break;
13035
+ }
12952
13036
  case "finish":
12953
13037
  bufferedSteps.set(payload.runId, {
12954
13038
  ...bufferedSteps.get(payload.runId),
@@ -12997,6 +13081,10 @@ function transformAgent(payload, bufferedSteps) {
12997
13081
  case "tool-call":
12998
13082
  bufferedSteps.set(payload.runId, {
12999
13083
  ...bufferedSteps.get(payload.runId),
13084
+ pendingToolCalls: removePendingToolCall(
13085
+ bufferedSteps.get(payload.runId).pendingToolCalls,
13086
+ payload.payload.toolCallId
13087
+ ),
13000
13088
  toolCalls: [...bufferedSteps.get(payload.runId).toolCalls, payload.payload]
13001
13089
  });
13002
13090
  hasChanged = true;
@@ -13005,6 +13093,7 @@ function transformAgent(payload, bufferedSteps) {
13005
13093
  const toolResultRun = ensureAgentRunState(bufferedSteps, payload.runId);
13006
13094
  bufferedSteps.set(payload.runId, {
13007
13095
  ...toolResultRun,
13096
+ pendingToolCalls: removePendingToolCall(toolResultRun.pendingToolCalls, payload.payload.toolCallId),
13008
13097
  toolResults: [...toolResultRun.toolResults, payload.payload]
13009
13098
  });
13010
13099
  hasChanged = true;
@@ -13035,6 +13124,7 @@ function transformAgent(payload, bufferedSteps) {
13035
13124
  ...stepRunWithoutSteps,
13036
13125
  text: stepText,
13037
13126
  reasoning: stepReasoning,
13127
+ pendingToolCalls: [],
13038
13128
  stepType: stepRun.steps.length === 0 ? "initial" : "tool-result",
13039
13129
  reasoningText: stepReasoning.join(""),
13040
13130
  staticToolCalls: stepRun.toolCalls.filter(
@@ -13066,6 +13156,7 @@ function transformAgent(payload, bufferedSteps) {
13066
13156
  sources: [],
13067
13157
  files: [],
13068
13158
  toolCalls: [],
13159
+ pendingToolCalls: [],
13069
13160
  toolResults: [],
13070
13161
  usage: payload.payload.output.usage,
13071
13162
  warnings: payload.payload.stepResult.warnings || [],