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.
- package/esm/deno.js +1 -1
- package/esm/extensions/ext-llm-google/src/google-stream.d.ts.map +1 -1
- package/esm/extensions/ext-llm-google/src/google-stream.js +2 -0
- package/esm/extensions/ext-llm-openai/src/openai-chat-stream.d.ts.map +1 -1
- package/esm/extensions/ext-llm-openai/src/openai-chat-stream.js +3 -0
- package/esm/extensions/ext-llm-openai/src/openai-provider.d.ts.map +1 -1
- package/esm/extensions/ext-llm-openai/src/openai-provider.js +3 -0
- package/esm/extensions/ext-llm-openai/src/openai-responses-stream.d.ts +1 -0
- package/esm/extensions/ext-llm-openai/src/openai-responses-stream.d.ts.map +1 -1
- package/esm/extensions/ext-llm-openai/src/openai-responses-stream.js +3 -0
- package/esm/src/agent/ag-ui/browser-encoder.d.ts +5 -0
- package/esm/src/agent/ag-ui/browser-encoder.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/browser-encoder.js +42 -0
- package/esm/src/agent/ag-ui/browser-finalize-tracker.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/browser-finalize-tracker.js +15 -0
- package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.d.ts +1 -1
- package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.js +20 -0
- package/esm/src/agent/hosted/agent-run-lifecycle.d.ts +3 -0
- package/esm/src/agent/hosted/agent-run-lifecycle.d.ts.map +1 -1
- package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts +2 -0
- package/esm/src/agent/hosted/chat-runtime-tool-assembly.d.ts.map +1 -1
- package/esm/src/agent/hosted/chat-runtime-tool-assembly.js +11 -1
- package/esm/src/agent/hosted/lifecycle.d.ts +3 -0
- package/esm/src/agent/hosted/lifecycle.d.ts.map +1 -1
- package/esm/src/agent/hosted/runtime-state-resolver.d.ts +1 -0
- package/esm/src/agent/hosted/runtime-state-resolver.d.ts.map +1 -1
- package/esm/src/agent/hosted/runtime-state-resolver.js +4 -0
- package/esm/src/agent/hosted/trace-attributes.d.ts +3 -0
- package/esm/src/agent/hosted/trace-attributes.d.ts.map +1 -1
- package/esm/src/agent/hosted/trace-attributes.js +10 -2
- package/esm/src/agent/runtime/agent-runtime-step.d.ts.map +1 -1
- package/esm/src/agent/runtime/agent-runtime-step.js +2 -0
- package/esm/src/agent/runtime/chat-stream-handler.d.ts +13 -0
- package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
- package/esm/src/agent/runtime/chat-stream-handler.js +50 -1
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +88 -3
- package/esm/src/agent/runtime/input-utils.d.ts +8 -0
- package/esm/src/agent/runtime/input-utils.d.ts.map +1 -1
- package/esm/src/agent/runtime/input-utils.js +13 -0
- package/esm/src/agent/runtime/runtime-tool-types.d.ts +9 -0
- package/esm/src/agent/runtime/runtime-tool-types.d.ts.map +1 -1
- package/esm/src/agent/runtime/skill-policy-enforcement.d.ts +4 -0
- package/esm/src/agent/runtime/skill-policy-enforcement.d.ts.map +1 -1
- package/esm/src/agent/runtime/skill-policy-enforcement.js +34 -2
- package/esm/src/agent/runtime/tool-result-continuation.d.ts +1 -1
- package/esm/src/agent/runtime/tool-result-continuation.d.ts.map +1 -1
- package/esm/src/agent/runtime/tool-result-continuation.js +1 -1
- package/esm/src/agent/schemas/agent.schema.d.ts +4 -0
- package/esm/src/agent/schemas/agent.schema.d.ts.map +1 -1
- package/esm/src/agent/schemas/agent.schema.js +4 -0
- package/esm/src/channels/invoke.d.ts +8 -0
- package/esm/src/channels/invoke.d.ts.map +1 -1
- package/esm/src/channels/invoke.js +16 -0
- package/esm/src/chat/ag-ui.d.ts +4 -0
- package/esm/src/chat/ag-ui.d.ts.map +1 -1
- package/esm/src/chat/ag-ui.js +2 -0
- package/esm/src/chat/chat-ui-message-helpers.d.ts.map +1 -1
- package/esm/src/chat/chat-ui-message-helpers.js +26 -6
- package/esm/src/chat/protocol.d.ts +2 -0
- package/esm/src/chat/protocol.d.ts.map +1 -1
- package/esm/src/chat/types.d.ts +6 -0
- package/esm/src/chat/types.d.ts.map +1 -1
- package/esm/src/chat/types.js +2 -0
- package/esm/src/provider/runtime-loader/provider-usage.d.ts +1 -0
- package/esm/src/provider/runtime-loader/provider-usage.d.ts.map +1 -1
- package/esm/src/provider/runtime-loader/provider-usage.js +10 -0
- package/esm/src/rendering/renderer.d.ts +9 -0
- package/esm/src/rendering/renderer.d.ts.map +1 -1
- package/esm/src/rendering/renderer.js +201 -1
- package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
- package/esm/src/runtime/runtime-bridge.js +46 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- 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":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,aAAa,EAGlB,KAAK,OAAO,EAGZ,KAAK,QAAQ,EAGd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
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;
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAE/F,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
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;
|
|
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
|
|
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,
|
|
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
|
|
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":"AACA,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,kCAAkC,CAAC;AAErF,eAAO,MAAM,sBAAsB,qGAElC,CAAC;AAEF,eAAO,MAAM,oBAAoB,sIAWhC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;GASjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;GAO/B,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;GASzC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;GAS1C,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;GAKjC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;GAQnC,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,yCAAyC;;;;;CAM5C,CAAC;AAYX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BhC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQ5B,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;GAMnC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;GAW7B,CAAC;AAEF,eAAO,MAAM,sBAAsB
|
|
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":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,IAAI,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,EAAqB,KAAK,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAqDvF,iDAAiD;AACjD,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAoC,CAAC;AAC/E,6CAA6C;AAC7C,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA4C,CAAC;AAEpF,qDAAqD;AACrD,eAAO,MAAM,iCAAiC;;;;GAM7C,CAAC;AACF,iDAAiD;AACjD,eAAO,MAAM,8BAA8B;;;;GAAgD,CAAC;AAE5F,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB;;;;;GAOrC,CAAC;AACF,wCAAwC;AACxC,eAAO,MAAM,sBAAsB;;;;;GAAwC,CAAC;AAE5E,sDAAsD;AACtD,eAAO,MAAM,kCAAkC;;;;;;;GAI9C,CAAC;AACF,kDAAkD;AAClD,eAAO,MAAM,+BAA+B;;;;;;;GAAiD,CAAC;AAgD9F,gDAAgD;AAChD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;GAQxC,CAAC;AACF,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;GAA2C,CAAC;AAElF,kDAAkD;AAClD,eAAO,MAAM,8BAA8B
|
|
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
|
});
|