veryfront 0.1.847 → 0.1.849

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.
Files changed (76) hide show
  1. package/esm/deno.js +1 -1
  2. package/esm/extensions/ext-llm-google/src/google-stream.d.ts.map +1 -1
  3. package/esm/extensions/ext-llm-google/src/google-stream.js +2 -0
  4. package/esm/extensions/ext-llm-openai/src/openai-chat-stream.d.ts.map +1 -1
  5. package/esm/extensions/ext-llm-openai/src/openai-chat-stream.js +3 -0
  6. package/esm/extensions/ext-llm-openai/src/openai-provider.d.ts.map +1 -1
  7. package/esm/extensions/ext-llm-openai/src/openai-provider.js +3 -0
  8. package/esm/extensions/ext-llm-openai/src/openai-responses-stream.d.ts +1 -0
  9. package/esm/extensions/ext-llm-openai/src/openai-responses-stream.d.ts.map +1 -1
  10. package/esm/extensions/ext-llm-openai/src/openai-responses-stream.js +3 -0
  11. package/esm/src/agent/ag-ui/browser-encoder.d.ts +5 -0
  12. package/esm/src/agent/ag-ui/browser-encoder.d.ts.map +1 -1
  13. package/esm/src/agent/ag-ui/browser-encoder.js +42 -0
  14. package/esm/src/agent/ag-ui/browser-finalize-tracker.d.ts.map +1 -1
  15. package/esm/src/agent/ag-ui/browser-finalize-tracker.js +15 -0
  16. package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.d.ts +1 -1
  17. package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.d.ts.map +1 -1
  18. package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.js +20 -0
  19. package/esm/src/agent/hosted/agent-run-lifecycle.d.ts +3 -0
  20. package/esm/src/agent/hosted/agent-run-lifecycle.d.ts.map +1 -1
  21. package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts +2 -0
  22. package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts.map +1 -1
  23. package/esm/src/agent/hosted/chat-runtime-tool-assembly.js +11 -1
  24. package/esm/src/agent/hosted/lifecycle.d.ts +3 -0
  25. package/esm/src/agent/hosted/lifecycle.d.ts.map +1 -1
  26. package/esm/src/agent/hosted/runtime-state-resolver.d.ts +1 -0
  27. package/esm/src/agent/hosted/runtime-state-resolver.d.ts.map +1 -1
  28. package/esm/src/agent/hosted/runtime-state-resolver.js +4 -0
  29. package/esm/src/agent/hosted/trace-attributes.d.ts +3 -0
  30. package/esm/src/agent/hosted/trace-attributes.d.ts.map +1 -1
  31. package/esm/src/agent/hosted/trace-attributes.js +10 -2
  32. package/esm/src/agent/runtime/agent-runtime-step.d.ts.map +1 -1
  33. package/esm/src/agent/runtime/agent-runtime-step.js +2 -0
  34. package/esm/src/agent/runtime/chat-stream-handler.d.ts +13 -0
  35. package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
  36. package/esm/src/agent/runtime/chat-stream-handler.js +50 -1
  37. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  38. package/esm/src/agent/runtime/index.js +88 -3
  39. package/esm/src/agent/runtime/input-utils.d.ts +8 -0
  40. package/esm/src/agent/runtime/input-utils.d.ts.map +1 -1
  41. package/esm/src/agent/runtime/input-utils.js +13 -0
  42. package/esm/src/agent/runtime/runtime-tool-types.d.ts +9 -0
  43. package/esm/src/agent/runtime/runtime-tool-types.d.ts.map +1 -1
  44. package/esm/src/agent/runtime/skill-policy-enforcement.d.ts +4 -0
  45. package/esm/src/agent/runtime/skill-policy-enforcement.d.ts.map +1 -1
  46. package/esm/src/agent/runtime/skill-policy-enforcement.js +34 -2
  47. package/esm/src/agent/runtime/tool-result-continuation.d.ts +1 -1
  48. package/esm/src/agent/runtime/tool-result-continuation.d.ts.map +1 -1
  49. package/esm/src/agent/runtime/tool-result-continuation.js +1 -1
  50. package/esm/src/agent/schemas/agent.schema.d.ts +4 -0
  51. package/esm/src/agent/schemas/agent.schema.d.ts.map +1 -1
  52. package/esm/src/agent/schemas/agent.schema.js +4 -0
  53. package/esm/src/channels/invoke.d.ts +8 -0
  54. package/esm/src/channels/invoke.d.ts.map +1 -1
  55. package/esm/src/channels/invoke.js +16 -0
  56. package/esm/src/chat/ag-ui.d.ts +4 -0
  57. package/esm/src/chat/ag-ui.d.ts.map +1 -1
  58. package/esm/src/chat/ag-ui.js +2 -0
  59. package/esm/src/chat/chat-ui-message-helpers.d.ts.map +1 -1
  60. package/esm/src/chat/chat-ui-message-helpers.js +26 -6
  61. package/esm/src/chat/protocol.d.ts +2 -0
  62. package/esm/src/chat/protocol.d.ts.map +1 -1
  63. package/esm/src/chat/types.d.ts +6 -0
  64. package/esm/src/chat/types.d.ts.map +1 -1
  65. package/esm/src/chat/types.js +2 -0
  66. package/esm/src/provider/runtime-loader/provider-usage.d.ts +1 -0
  67. package/esm/src/provider/runtime-loader/provider-usage.d.ts.map +1 -1
  68. package/esm/src/provider/runtime-loader/provider-usage.js +10 -0
  69. package/esm/src/rendering/renderer.d.ts +9 -0
  70. package/esm/src/rendering/renderer.d.ts.map +1 -1
  71. package/esm/src/rendering/renderer.js +201 -1
  72. package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
  73. package/esm/src/runtime/runtime-bridge.js +46 -0
  74. package/esm/src/utils/version-constant.d.ts +1 -1
  75. package/esm/src/utils/version-constant.js +1 -1
  76. package/package.json +1 -1
@@ -180,6 +180,7 @@ export function createStreamState() {
180
180
  finishReason: null,
181
181
  toolCalls: new Map(),
182
182
  toolResults: [],
183
+ suppressedToolCalls: [],
183
184
  usage: { promptTokens: 0, completionTokens: 0, totalTokens: 0 },
184
185
  };
185
186
  }
@@ -202,6 +203,18 @@ export function processStream(result, state, controller, encoder, textPartId, ca
202
203
  let shouldStopForCommittedLocalToolCall = false;
203
204
  let hasActiveLocalToolInput = false;
204
205
  const providerExecutedToolNames = new Set(callbacks?.providerExecutedToolNames ?? []);
206
+ const availableToolNames = callbacks?.availableToolNames
207
+ ? new Set(callbacks.availableToolNames)
208
+ : null;
209
+ const suppressedToolCallIds = new Set();
210
+ const isUnavailableTool = (toolName) => availableToolNames !== null && !availableToolNames.has(toolName);
211
+ const suppressToolCall = (toolCallId, toolName) => {
212
+ if (!toolCallId || suppressedToolCallIds.has(toolCallId)) {
213
+ return;
214
+ }
215
+ suppressedToolCallIds.add(toolCallId);
216
+ state.suppressedToolCalls.push({ id: toolCallId, name: toolName });
217
+ };
205
218
  const resolveProviderExecuted = (toolName, providerExecuted) => providerExecuted ?? (providerExecutedToolNames.has(toolName) ? true : undefined);
206
219
  const normalizeReasoningId = (part) => typeof part.id === "string" && part.id.length > 0 ? part.id : "reasoning";
207
220
  const openTextSegment = () => {
@@ -467,6 +480,11 @@ export function processStream(result, state, controller, encoder, textPartId, ca
467
480
  closeReasoningSegment();
468
481
  shouldStopForCommittedLocalToolCall = false;
469
482
  const toolId = typedPart.id;
483
+ if (isUnavailableTool(typedPart.toolName)) {
484
+ suppressToolCall(toolId, typedPart.toolName);
485
+ hasActiveLocalToolInput = false;
486
+ break;
487
+ }
470
488
  const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
471
489
  hasActiveLocalToolInput = providerExecuted !== true;
472
490
  state.toolCalls.set(toolId, {
@@ -484,6 +502,8 @@ export function processStream(result, state, controller, encoder, textPartId, ca
484
502
  case "tool-input-delta": {
485
503
  closeReasoningSegment();
486
504
  const toolId = typedPart.id;
505
+ if (suppressedToolCallIds.has(toolId))
506
+ break;
487
507
  const tc = state.toolCalls.get(toolId);
488
508
  if (!tc)
489
509
  break;
@@ -496,6 +516,10 @@ export function processStream(result, state, controller, encoder, textPartId, ca
496
516
  closeTextSegment();
497
517
  closeReasoningSegment();
498
518
  const toolId = typedPart.id;
519
+ if (suppressedToolCallIds.has(toolId)) {
520
+ hasActiveLocalToolInput = false;
521
+ break;
522
+ }
499
523
  const tc = state.toolCalls.get(toolId);
500
524
  if (!tc)
501
525
  break;
@@ -526,6 +550,11 @@ export function processStream(result, state, controller, encoder, textPartId, ca
526
550
  if (!toolId) {
527
551
  break;
528
552
  }
553
+ if (isUnavailableTool(typedPart.toolName)) {
554
+ suppressToolCall(toolId, typedPart.toolName);
555
+ hasActiveLocalToolInput = false;
556
+ break;
557
+ }
529
558
  const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
530
559
  hasActiveLocalToolInput = false;
531
560
  const inputStr = normalizeToolInputString(typedPart.input);
@@ -562,6 +591,11 @@ export function processStream(result, state, controller, encoder, textPartId, ca
562
591
  closeReasoningSegment();
563
592
  // tool-call fires when the full tool call is available
564
593
  const toolId = typedPart.toolCallId;
594
+ if (isUnavailableTool(typedPart.toolName)) {
595
+ suppressToolCall(toolId, typedPart.toolName);
596
+ hasActiveLocalToolInput = false;
597
+ break;
598
+ }
565
599
  const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
566
600
  hasActiveLocalToolInput = false;
567
601
  const inputStr = normalizeToolInputString(typedPart.input);
@@ -601,6 +635,11 @@ export function processStream(result, state, controller, encoder, textPartId, ca
601
635
  case "tool-result": {
602
636
  closeTextSegment();
603
637
  closeReasoningSegment();
638
+ if (suppressedToolCallIds.has(typedPart.toolCallId) ||
639
+ isUnavailableTool(typedPart.toolName)) {
640
+ suppressToolCall(typedPart.toolCallId, typedPart.toolName);
641
+ break;
642
+ }
604
643
  const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
605
644
  ensureToolLifecycle({
606
645
  toolCallId: typedPart.toolCallId,
@@ -701,10 +740,20 @@ export function processStream(result, state, controller, encoder, textPartId, ca
701
740
  if (typedPart.totalUsage) {
702
741
  const input = typedPart.totalUsage.inputTokens ?? 0;
703
742
  const output = typedPart.totalUsage.outputTokens ?? 0;
743
+ const cacheReadInputTokens = typedPart.totalUsage.cacheReadInputTokens;
744
+ const cacheCreationInputTokens = typedPart.totalUsage.cacheCreationInputTokens;
745
+ const cachedInputTokens = typedPart.totalUsage.cachedInputTokens ??
746
+ cacheReadInputTokens;
704
747
  state.usage = {
705
748
  promptTokens: input,
706
749
  completionTokens: output,
707
- totalTokens: input + output,
750
+ totalTokens: typedPart.totalUsage.totalTokens ?? input + output,
751
+ ...(cachedInputTokens !== undefined ? { cachedInputTokens } : {}),
752
+ ...(cacheCreationInputTokens !== undefined ? { cacheCreationInputTokens } : {}),
753
+ ...(cacheReadInputTokens !== undefined ? { cacheReadInputTokens } : {}),
754
+ ...(typedPart.totalUsage.reasoningTokens !== undefined
755
+ ? { reasoningTokens: typedPart.totalUsage.reasoningTokens }
756
+ : {}),
708
757
  };
709
758
  callbacks?.onUsage?.(state.usage);
710
759
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ import { tryGetCacheKeyContext } from "../../cache/cache-key-builder.js";
27
27
  import { isLocalModelRuntime } from "../../provider/runtime-inspection.js";
28
28
  import { generateText, streamText } from "../../runtime/runtime-bridge.js";
29
29
  import { captureStreamedToolCallInput, collectFinalStreamToolResults, collectGeneratedToolResults, createToolErrorMessage, createToolResultMessage, getProviderExecutedToolNames, getToolResultError, isRecoverablePlaceholderToolCall, isStreamedToolCallIncomplete, materializeStreamedToolCall, shouldContinueAfterStreamStep, } from "./tool-result-continuation.js";
30
- import { enforceSkillPolicy, extractSkillId, extractSkillPolicy, hasSubmittedFormInputResult, hydrateActiveSkillStateFromMessages, LOAD_SKILL_TOOL_ID, removeFormInputAfterSubmission, } from "./skill-policy-enforcement.js";
30
+ import { enforceSkillPolicy, extractSkillId, extractSkillPolicy, FORM_INPUT_TOOL_ID, hasSubmittedFormInputResult, hydrateActiveSkillStateFromMessages, LOAD_SKILL_TOOL_ID, removeFormInputAfterSubmission, SUBMITTED_FORM_INPUT_CONTEXT_KEY, } from "./skill-policy-enforcement.js";
31
31
  import { getRuntimeAllowedRemoteTools, getRuntimeForwardedIntegrationToolDefs, getRuntimeProviderTools, } from "./runtime-tool-config.js";
32
32
  import { prepareAgentRuntimeStep } from "./agent-runtime-step.js";
33
33
  import { buildStreamedAssistantMessage } from "./streamed-assistant-message.js";
@@ -51,6 +51,33 @@ import { supportsTemperatureParameter } from "./model-capabilities.js";
51
51
  import { applySkillDelegationOverridesToToolInput, extractSkillDelegationOverrides, } from "./skill-delegation-overrides.js";
52
52
  import { resolveAgentModelTransport } from "./model-transport.js";
53
53
  const logger = serverLogger.component("agent");
54
+ function parseToolResultJson(result) {
55
+ try {
56
+ return JSON.parse(result);
57
+ }
58
+ catch {
59
+ return null;
60
+ }
61
+ }
62
+ function containsSubmittedFormInputExecutionResult(result, depth = 0) {
63
+ const normalized = typeof result === "string" ? parseToolResultJson(result) : result;
64
+ if (!normalized || typeof normalized !== "object" || depth > 3) {
65
+ return false;
66
+ }
67
+ if (normalized.submitted === true) {
68
+ return true;
69
+ }
70
+ return Object.values(normalized).some((value) => containsSubmittedFormInputExecutionResult(value, depth + 1));
71
+ }
72
+ function isSubmittedFormInputExecutionResult(toolName, result) {
73
+ return toolName === FORM_INPUT_TOOL_ID && containsSubmittedFormInputExecutionResult(result);
74
+ }
75
+ function markSubmittedFormInputRuntimeContext(runtimeContext) {
76
+ return {
77
+ ...(runtimeContext ?? {}),
78
+ [SUBMITTED_FORM_INPUT_CONTEXT_KEY]: true,
79
+ };
80
+ }
54
81
  function isAbortError(error, abortSignal) {
55
82
  if (abortSignal?.aborted && error === abortSignal.reason) {
56
83
  return true;
@@ -358,7 +385,12 @@ export class AgentRuntime {
358
385
  accumulateUsage(totalUsage, {
359
386
  promptTokens: input,
360
387
  completionTokens: output,
361
- totalTokens: input + output,
388
+ totalTokens: response.usage.totalTokens ?? input + output,
389
+ cachedInputTokens: response.usage.cachedInputTokens ??
390
+ response.usage.cacheReadInputTokens,
391
+ cacheCreationInputTokens: response.usage.cacheCreationInputTokens,
392
+ cacheReadInputTokens: response.usage.cacheReadInputTokens,
393
+ reasoningTokens: response.usage.reasoningTokens,
362
394
  });
363
395
  }
364
396
  const assistantParts = [];
@@ -542,6 +574,7 @@ export class AgentRuntime {
542
574
  const remoteToolSources = getRuntimeRemoteToolSources(this.config);
543
575
  let currentSystemPrompt = systemPrompt;
544
576
  let currentRuntimeContext = runtimeContext;
577
+ let toolsDisabledForFinalResponse = false;
545
578
  for (let step = 0; step < maxSteps; step++) {
546
579
  throwIfAborted(abortSignal);
547
580
  sendSSE(controller, encoder, { type: "step-start" });
@@ -566,11 +599,12 @@ export class AgentRuntime {
566
599
  currentSystemPrompt = preparedStep.systemPrompt;
567
600
  currentRuntimeContext = preparedStep.runtimeContext;
568
601
  const toolContext = preparedStep.toolContext;
569
- const tools = preparedStep.tools;
602
+ const tools = toolsDisabledForFinalResponse ? [] : preparedStep.tools;
570
603
  const runtimeTools = convertToolsToRuntimeTools(tools, {
571
604
  model: effectiveModel,
572
605
  providerTools,
573
606
  });
607
+ const runtimeToolNames = Object.keys(runtimeTools ?? {});
574
608
  const temperature = this.resolveTemperature(temperatureModelString ?? effectiveModel);
575
609
  const result = streamText({
576
610
  model: languageModel,
@@ -589,6 +623,7 @@ export class AgentRuntime {
589
623
  onChunk: callbacks?.onChunk,
590
624
  onUsage: (usage) => accumulateUsage(totalUsage, usage),
591
625
  providerExecutedToolNames: getProviderExecutedToolNames(runtimeTools),
626
+ availableToolNames: runtimeToolNames,
592
627
  }, abortSignal);
593
628
  throwIfAborted(abortSignal);
594
629
  finalFinishReason = state.finishReason ?? finalFinishReason;
@@ -638,6 +673,20 @@ export class AgentRuntime {
638
673
  latestAssistantText = getTextFromParts(assistantMessage.parts);
639
674
  currentMessages.push(assistantMessage);
640
675
  await this.memory.add(assistantMessage);
676
+ if (state.suppressedToolCalls.length > 0) {
677
+ const unavailableNames = [
678
+ ...new Set(state.suppressedToolCalls.map((toolCall) => toolCall.name)),
679
+ ];
680
+ currentMessages.push({
681
+ id: `runtime_note_${Date.now()}_${step}`,
682
+ role: "system",
683
+ parts: [{
684
+ type: "text",
685
+ text: `Runtime recovery: ignored unavailable tool call(s): ${unavailableNames.join(", ")}. Continue using only currently available tools: ${runtimeToolNames.join(", ")}.`,
686
+ }],
687
+ timestamp: Date.now(),
688
+ });
689
+ }
641
690
  const finalToolResults = collectFinalStreamToolResults(state);
642
691
  const persistToolResult = async (toolResult) => {
643
692
  if (currentStepToolResults.has(toolResult.toolCallId)) {
@@ -706,6 +755,21 @@ export class AgentRuntime {
706
755
  ? undefined
707
756
  : stringifyToolError(matchingResult.error);
708
757
  toolCalls.push(toolCall);
758
+ if (matchingResult.error === undefined) {
759
+ if (tc.name === LOAD_SKILL_TOOL_ID) {
760
+ activeSkillId = extractSkillId(matchingResult.output);
761
+ activeSkillPolicy = extractSkillPolicy(matchingResult.output);
762
+ activeSkillDelegationOverrides = extractSkillDelegationOverrides(matchingResult.output);
763
+ mustLoadSkillFirst = false;
764
+ }
765
+ activeSkillPolicy = removeFormInputAfterSubmission(tc.name, matchingResult.output, activeSkillId, activeSkillPolicy);
766
+ if (isSubmittedFormInputExecutionResult(tc.name, matchingResult.output)) {
767
+ currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
768
+ }
769
+ if (tc.name === "create_agent") {
770
+ toolsDisabledForFinalResponse = true;
771
+ }
772
+ }
709
773
  continue;
710
774
  }
711
775
  if (persistedResult) {
@@ -714,6 +778,21 @@ export class AgentRuntime {
714
778
  toolCall.result = persistedResult.result;
715
779
  toolCall.error = persistedError;
716
780
  toolCalls.push(toolCall);
781
+ if (persistedError === undefined) {
782
+ if (tc.name === LOAD_SKILL_TOOL_ID) {
783
+ activeSkillId = extractSkillId(persistedResult.result);
784
+ activeSkillPolicy = extractSkillPolicy(persistedResult.result);
785
+ activeSkillDelegationOverrides = extractSkillDelegationOverrides(persistedResult.result);
786
+ mustLoadSkillFirst = false;
787
+ }
788
+ activeSkillPolicy = removeFormInputAfterSubmission(tc.name, persistedResult.result, activeSkillId, activeSkillPolicy);
789
+ if (isSubmittedFormInputExecutionResult(tc.name, persistedResult.result)) {
790
+ currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
791
+ }
792
+ if (tc.name === "create_agent") {
793
+ toolsDisabledForFinalResponse = true;
794
+ }
795
+ }
717
796
  continue;
718
797
  }
719
798
  if (tc.providerExecuted === true) {
@@ -777,6 +856,12 @@ export class AgentRuntime {
777
856
  mustLoadSkillFirst = false;
778
857
  }
779
858
  activeSkillPolicy = removeFormInputAfterSubmission(tc.name, result, activeSkillId, activeSkillPolicy);
859
+ if (isSubmittedFormInputExecutionResult(tc.name, result)) {
860
+ currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
861
+ }
862
+ if (tc.name === "create_agent") {
863
+ toolsDisabledForFinalResponse = true;
864
+ }
780
865
  const dynamic = isDynamicTool(tc.name);
781
866
  sendSSE(controller, encoder, {
782
867
  type: "tool-output-available",
@@ -4,10 +4,18 @@ export declare function accumulateUsage(total: {
4
4
  promptTokens: number;
5
5
  completionTokens: number;
6
6
  totalTokens: number;
7
+ cachedInputTokens?: number;
8
+ cacheCreationInputTokens?: number;
9
+ cacheReadInputTokens?: number;
10
+ reasoningTokens?: number;
7
11
  }, usage: {
8
12
  promptTokens?: number;
9
13
  completionTokens?: number;
10
14
  totalTokens?: number;
15
+ cachedInputTokens?: number;
16
+ cacheCreationInputTokens?: number;
17
+ cacheReadInputTokens?: number;
18
+ reasoningTokens?: number;
11
19
  }): void;
12
20
  export declare function getMaxSteps(configuredMaxSteps: number | undefined, edgeMaxSteps: number | undefined, platformLimit: number, defaultMaxSteps?: number): number;
13
21
  //# sourceMappingURL=input-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-utils.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/input-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAyBnE;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC9E,KAAK,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAChF,IAAI,CAIN;AAED,wBAAgB,WAAW,CACzB,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,EACrB,eAAe,GAAE,MAAW,GAC3B,MAAM,CAGR"}
1
+ {"version":3,"file":"input-utils.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/input-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAyBnE;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE;IACL,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,KAAK,EAAE;IACL,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,IAAI,CAiBN;AAED,wBAAgB,WAAW,CACzB,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,EACrB,eAAe,GAAE,MAAW,GAC3B,MAAM,CAGR"}
@@ -26,6 +26,19 @@ export function accumulateUsage(total, usage) {
26
26
  total.promptTokens += usage.promptTokens ?? 0;
27
27
  total.completionTokens += usage.completionTokens ?? 0;
28
28
  total.totalTokens += usage.totalTokens ?? 0;
29
+ if (typeof usage.cachedInputTokens === "number") {
30
+ total.cachedInputTokens = (total.cachedInputTokens ?? 0) + usage.cachedInputTokens;
31
+ }
32
+ if (typeof usage.cacheCreationInputTokens === "number") {
33
+ total.cacheCreationInputTokens = (total.cacheCreationInputTokens ?? 0) +
34
+ usage.cacheCreationInputTokens;
35
+ }
36
+ if (typeof usage.cacheReadInputTokens === "number") {
37
+ total.cacheReadInputTokens = (total.cacheReadInputTokens ?? 0) + usage.cacheReadInputTokens;
38
+ }
39
+ if (typeof usage.reasoningTokens === "number") {
40
+ total.reasoningTokens = (total.reasoningTokens ?? 0) + usage.reasoningTokens;
41
+ }
29
42
  }
30
43
  export function getMaxSteps(configuredMaxSteps, edgeMaxSteps, platformLimit, defaultMaxSteps = 20) {
31
44
  const effectiveMaxSteps = edgeMaxSteps ?? configuredMaxSteps ?? defaultMaxSteps;
@@ -22,6 +22,10 @@ export interface RuntimeGenerateUsage {
22
22
  inputTokens?: number;
23
23
  outputTokens?: number;
24
24
  totalTokens?: number;
25
+ cacheCreationInputTokens?: number;
26
+ cacheReadInputTokens?: number;
27
+ cachedInputTokens?: number;
28
+ reasoningTokens?: number;
25
29
  }
26
30
  export interface RuntimeGenerateTextResult {
27
31
  text: string;
@@ -125,6 +129,11 @@ export type RuntimeStreamPart = {
125
129
  totalUsage?: {
126
130
  inputTokens?: number;
127
131
  outputTokens?: number;
132
+ totalTokens?: number;
133
+ cacheCreationInputTokens?: number;
134
+ cacheReadInputTokens?: number;
135
+ cachedInputTokens?: number;
136
+ reasoningTokens?: number;
128
137
  } | null;
129
138
  } | {
130
139
  type: "error";
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-tool-types.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/runtime-tool-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-tool-types.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/runtime-tool-types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import type { Message } from "../types.js";
2
+ import type { ToolDefinition } from "../../tool/index.js";
2
3
  import { type SkillDelegationOverrides } from "./skill-delegation-overrides.js";
3
4
  export declare const LOAD_SKILL_TOOL_ID = "load_skill";
4
5
  export declare const FORM_INPUT_TOOL_ID = "form_input";
6
+ export declare const INVOKE_AGENT_TOOL_ID = "invoke_agent";
7
+ export declare const SUBMITTED_FORM_INPUT_CONTEXT_KEY = "hasSubmittedFormInputResult";
5
8
  export declare function hydrateActiveSkillStateFromMessages(messages: readonly Message[]): {
6
9
  activeSkillId: string | undefined;
7
10
  activeSkillPolicy: string[] | undefined;
@@ -10,6 +13,7 @@ export declare function hydrateActiveSkillStateFromMessages(messages: readonly M
10
13
  export declare function extractSkillId(result: unknown): string | undefined;
11
14
  export declare function extractSkillPolicy(result: unknown): string[] | undefined;
12
15
  export declare function hasSubmittedFormInputResult(messages: readonly Message[]): boolean;
16
+ export declare function filterToolsAfterSubmittedFormInput(tools: readonly ToolDefinition[], messages: readonly Message[], runtimeContext?: Record<string, unknown>): ToolDefinition[];
13
17
  export declare function removeFormInputAfterSubmission(toolName: string, result: unknown, activeSkillId: string | undefined, activeSkillPolicy: string[] | undefined): string[] | undefined;
14
18
  export declare function narrowPolicyAfterSubmittedForm(activeSkillId: string | undefined, activeSkillPolicy: string[] | undefined): string[] | undefined;
15
19
  export type SkillPolicyResult = {
@@ -1 +1 @@
1
- {"version":3,"file":"skill-policy-enforcement.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/skill-policy-enforcement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO3C,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAIzC,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAO/C,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B;IACD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,8BAA8B,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACtE,CAeA;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAyBxE;AAOD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAQjF;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,MAAM,EAAE,GAAG,SAAS,CAStB;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,MAAM,EAAE,GAAG,SAAS,CAoCtB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,EACvC,kBAAkB,EAAE,OAAO,EAC3B,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAsBnB"}
1
+ {"version":3,"file":"skill-policy-enforcement.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/skill-policy-enforcement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAO1D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAIzC,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AACnD,eAAO,MAAM,gCAAgC,gCAAgC,CAAC;AAa9E,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B;IACD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,8BAA8B,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACtE,CAeA;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAyBxE;AA2BD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAQjF;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,cAAc,EAAE,CAQlB;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,MAAM,EAAE,GAAG,SAAS,CAStB;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,MAAM,EAAE,GAAG,SAAS,CAoCtB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,EACvC,kBAAkB,EAAE,OAAO,EAC3B,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAsBnB"}
@@ -5,6 +5,13 @@ import { extractSkillDelegationOverrides, } from "./skill-delegation-overrides.j
5
5
  const logger = serverLogger.component("agent");
6
6
  export const LOAD_SKILL_TOOL_ID = "load_skill";
7
7
  export const FORM_INPUT_TOOL_ID = "form_input";
8
+ export const INVOKE_AGENT_TOOL_ID = "invoke_agent";
9
+ export const SUBMITTED_FORM_INPUT_CONTEXT_KEY = "hasSubmittedFormInputResult";
10
+ const POST_SUBMITTED_FORM_INPUT_BLOCKED_TOOL_IDS = new Set([
11
+ FORM_INPUT_TOOL_ID,
12
+ LOAD_SKILL_TOOL_ID,
13
+ INVOKE_AGENT_TOOL_ID,
14
+ ]);
8
15
  function getSkillActivationRequiredError(toolName) {
9
16
  return `Tool "${toolName}" cannot run before load_skill succeeds in the same step. ` +
10
17
  `Call "${LOAD_SKILL_TOOL_ID}" first to establish the active skill context.`;
@@ -50,15 +57,40 @@ export function extractSkillPolicy(result) {
50
57
  return [];
51
58
  }
52
59
  }
60
+ function parseToolResultJson(result) {
61
+ try {
62
+ return JSON.parse(result);
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ }
68
+ function containsSubmittedFormInputResult(result, depth = 0) {
69
+ const normalized = typeof result === "string" ? parseToolResultJson(result) : result;
70
+ if (!normalized || typeof normalized !== "object" || depth > 3) {
71
+ return false;
72
+ }
73
+ if (normalized.submitted === true) {
74
+ return true;
75
+ }
76
+ return Object.values(normalized).some((value) => containsSubmittedFormInputResult(value, depth + 1));
77
+ }
53
78
  function isSubmittedFormInputResult(result) {
54
- return Boolean(result) && typeof result === "object" &&
55
- result.submitted === true;
79
+ return containsSubmittedFormInputResult(result);
56
80
  }
57
81
  export function hasSubmittedFormInputResult(messages) {
58
82
  return messages.some((message) => message.parts.some((part) => isToolResultPart(part) &&
59
83
  part.toolName === FORM_INPUT_TOOL_ID &&
60
84
  isSubmittedFormInputResult(part.result)));
61
85
  }
86
+ export function filterToolsAfterSubmittedFormInput(tools, messages, runtimeContext) {
87
+ const hasSubmittedFormInput = hasSubmittedFormInputResult(messages) ||
88
+ runtimeContext?.[SUBMITTED_FORM_INPUT_CONTEXT_KEY] === true;
89
+ if (!hasSubmittedFormInput) {
90
+ return [...tools];
91
+ }
92
+ return tools.filter((tool) => !POST_SUBMITTED_FORM_INPUT_BLOCKED_TOOL_IDS.has(tool.name));
93
+ }
62
94
  export function removeFormInputAfterSubmission(toolName, result, activeSkillId, activeSkillPolicy) {
63
95
  if (toolName !== FORM_INPUT_TOOL_ID || !isSubmittedFormInputResult(result) ||
64
96
  activeSkillPolicy === undefined) {
@@ -8,7 +8,7 @@ export declare function getProviderExecutedToolNames(runtimeTools: RuntimeToolSe
8
8
  export declare function collectFinalStreamToolResults(state: Pick<ChatStreamState, "toolResults">): Map<string, StreamingToolResult>;
9
9
  export declare function collectPersistedToolResults(messages: Message[]): Map<string, ToolResultPart>;
10
10
  export declare function collectGeneratedToolResults(toolResults: RuntimeGenerateToolResult[] | undefined): Map<string, RuntimeGenerateToolResult>;
11
- export declare function shouldContinueAfterStreamStep(state: Pick<ChatStreamState, "accumulatedText" | "finishReason" | "toolCalls" | "toolResults">): boolean;
11
+ export declare function shouldContinueAfterStreamStep(state: Pick<ChatStreamState, "accumulatedText" | "finishReason" | "toolCalls" | "toolResults"> & Partial<Pick<ChatStreamState, "suppressedToolCalls">>): boolean;
12
12
  export declare function captureStreamedToolCallInput(toolCall: Pick<StreamingToolCall, "arguments">): {
13
13
  args: Record<string, unknown>;
14
14
  inputText?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-result-continuation.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/tool-result-continuation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMtE;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,gBAAgB,UAAQ,GACvB,OAAO,CAeT;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAcT;AAED,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,EAAE,CAiB/F;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAC1C,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAYlC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,OAAO,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAkB7B;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,yBAAyB,EAAE,GAAG,SAAS,GACnD,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAQxC;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,cAAc,GAAG,WAAW,GAAG,aAAa,CAAC,GAC7F,OAAO,CAqET;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAC7C;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAOA;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAClD,OAAO,CAET;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,WAAW,CAAC,GAChE,OAAO,CAMT;AAED,MAAM,MAAM,+BAA+B,GACvC;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACzD;IACA,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEJ,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,iBAAiB,GACpB,+BAA+B,CAoCjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,cAAc,CAE1E"}
1
+ {"version":3,"file":"tool-result-continuation.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/tool-result-continuation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMtE;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,gBAAgB,UAAQ,GACvB,OAAO,CAeT;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAcT;AAED,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,EAAE,CAiB/F;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAC1C,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAYlC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,OAAO,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAkB7B;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,yBAAyB,EAAE,GAAG,SAAS,GACnD,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAQxC;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EACD,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,cAAc,GAAG,WAAW,GAAG,aAAa,CAAC,GACvF,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,GACxD,OAAO,CAqET;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAC7C;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAOA;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAClD,OAAO,CAET;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,WAAW,CAAC,GAChE,OAAO,CAMT;AAED,MAAM,MAAM,+BAA+B,GACvC;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACzD;IACA,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEJ,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,iBAAiB,GACpB,+BAA+B,CAoCjC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,cAAc,CAE1E"}
@@ -86,7 +86,7 @@ export function collectGeneratedToolResults(toolResults) {
86
86
  }
87
87
  export function shouldContinueAfterStreamStep(state) {
88
88
  if (!state.toolCalls.size) {
89
- return false;
89
+ return state.finishReason === "tool-calls" && Boolean(state.suppressedToolCalls?.length);
90
90
  }
91
91
  const streamedToolCalls = Array.from(state.toolCalls.values());
92
92
  const hasIncompleteToolCall = streamedToolCalls.some(isStreamedToolCallIncomplete);
@@ -229,6 +229,10 @@ export declare const getAgentResponseSchema: () => import("../../internal-agents
229
229
  promptTokens: import("../../internal-agents/schema.js").Schema<number>;
230
230
  completionTokens: import("../../internal-agents/schema.js").Schema<number>;
231
231
  totalTokens: import("../../internal-agents/schema.js").Schema<number>;
232
+ cachedInputTokens: import("../../internal-agents/schema.js").Schema<number | undefined>;
233
+ cacheCreationInputTokens: import("../../internal-agents/schema.js").Schema<number | undefined>;
234
+ cacheReadInputTokens: import("../../internal-agents/schema.js").Schema<number | undefined>;
235
+ reasoningTokens: import("../../internal-agents/schema.js").Schema<number | undefined>;
232
236
  }> | undefined>;
233
237
  metadata: import("../../internal-agents/schema.js").Schema<Record<string, unknown> | undefined>;
234
238
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/schemas/agent.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/schemas/agent.schema.ts"],"names":[],"mappings":"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"}
@@ -122,6 +122,10 @@ export const getAgentResponseSchema = defineSchema((v) => v.object({
122
122
  promptTokens: v.number().int().nonnegative(),
123
123
  completionTokens: v.number().int().nonnegative(),
124
124
  totalTokens: v.number().int().nonnegative(),
125
+ cachedInputTokens: v.number().int().nonnegative().optional(),
126
+ cacheCreationInputTokens: v.number().int().nonnegative().optional(),
127
+ cacheReadInputTokens: v.number().int().nonnegative().optional(),
128
+ reasoningTokens: v.number().int().nonnegative().optional(),
125
129
  })
126
130
  .optional(),
127
131
  metadata: v.record(v.string(), v.unknown()).optional(),
@@ -188,6 +188,10 @@ export declare const getChannelInvokeResponseSchema: () => import("../internal-a
188
188
  inputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
189
189
  outputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
190
190
  totalTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
191
+ cachedInputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
192
+ cacheCreationInputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
193
+ cacheReadInputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
194
+ reasoningTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
191
195
  }> | undefined>;
192
196
  error: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
193
197
  code: import("../internal-agents/schema.js").Schema<string>;
@@ -223,6 +227,10 @@ export declare const ChannelInvokeResponseSchema: import("../internal-agents/sch
223
227
  inputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
224
228
  outputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
225
229
  totalTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
230
+ cachedInputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
231
+ cacheCreationInputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
232
+ cacheReadInputTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
233
+ reasoningTokens: import("../internal-agents/schema.js").Schema<number | undefined>;
226
234
  }> | undefined>;
227
235
  error: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
228
236
  code: import("../internal-agents/schema.js").Schema<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/src/channels/invoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/src/channels/invoke.ts"],"names":[],"mappings":"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"}
@@ -118,6 +118,10 @@ export const getChannelInvokeResponseSchema = defineSchema((v) => v.object({
118
118
  inputTokens: v.number().int().nonnegative().optional(),
119
119
  outputTokens: v.number().int().nonnegative().optional(),
120
120
  totalTokens: v.number().int().nonnegative().optional(),
121
+ cachedInputTokens: v.number().int().nonnegative().optional(),
122
+ cacheCreationInputTokens: v.number().int().nonnegative().optional(),
123
+ cacheReadInputTokens: v.number().int().nonnegative().optional(),
124
+ reasoningTokens: v.number().int().nonnegative().optional(),
121
125
  }).optional(),
122
126
  error: v.object({
123
127
  code: v.enum(["provider_error", "internal_error"]),
@@ -346,6 +350,18 @@ export async function executeChannelInvoke(payload, ctx, deps) {
346
350
  inputTokens: result.usage.promptTokens,
347
351
  outputTokens: result.usage.completionTokens,
348
352
  totalTokens: result.usage.totalTokens,
353
+ ...(typeof result.usage.cachedInputTokens === "number"
354
+ ? { cachedInputTokens: result.usage.cachedInputTokens }
355
+ : {}),
356
+ ...(typeof result.usage.cacheCreationInputTokens === "number"
357
+ ? { cacheCreationInputTokens: result.usage.cacheCreationInputTokens }
358
+ : {}),
359
+ ...(typeof result.usage.cacheReadInputTokens === "number"
360
+ ? { cacheReadInputTokens: result.usage.cacheReadInputTokens }
361
+ : {}),
362
+ ...(typeof result.usage.reasoningTokens === "number"
363
+ ? { reasoningTokens: result.usage.reasoningTokens }
364
+ : {}),
349
365
  }
350
366
  : undefined,
351
367
  });