@truefoundry/trueforge-core 0.1.0-rc.0 → 0.1.1
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/README.md +27 -0
- package/dist/agent-session/TurnResourceResolver.d.ts.map +1 -1
- package/dist/agent-session/TurnResourceResolver.js +6 -2
- package/dist/agent-session/TurnResourceResolver.js.map +1 -1
- package/dist/agent-session/TurnResourceResolver.mjs +6 -2
- package/dist/agent-session/TurnResourceResolver.mjs.map +1 -1
- package/dist/agent-session/schemas/turn.d.ts.map +1 -1
- package/dist/agent-session/schemas/turn.js +3 -1
- package/dist/agent-session/schemas/turn.js.map +1 -1
- package/dist/agent-session/schemas/turn.mjs +3 -1
- package/dist/agent-session/schemas/turn.mjs.map +1 -1
- package/dist/agent-session/store/InMemorySessionStore.d.ts.map +1 -1
- package/dist/agent-session/store/InMemorySessionStore.js +24 -8
- package/dist/agent-session/store/InMemorySessionStore.js.map +1 -1
- package/dist/agent-session/store/InMemorySessionStore.mjs +24 -8
- package/dist/agent-session/store/InMemorySessionStore.mjs.map +1 -1
- package/dist/agent-session/store/OffsetPageToken.d.ts.map +1 -1
- package/dist/agent-session/store/OffsetPageToken.js +3 -1
- package/dist/agent-session/store/OffsetPageToken.js.map +1 -1
- package/dist/agent-session/store/OffsetPageToken.mjs +3 -1
- package/dist/agent-session/store/OffsetPageToken.mjs.map +1 -1
- package/dist/agent-session/store/SessionListPageToken.d.ts.map +1 -1
- package/dist/agent-session/store/SessionListPageToken.js +3 -1
- package/dist/agent-session/store/SessionListPageToken.js.map +1 -1
- package/dist/agent-session/store/SessionListPageToken.mjs +3 -1
- package/dist/agent-session/store/SessionListPageToken.mjs.map +1 -1
- package/dist/core/InstructionBuilder.d.ts.map +1 -1
- package/dist/core/InstructionBuilder.js +12 -4
- package/dist/core/InstructionBuilder.js.map +1 -1
- package/dist/core/InstructionBuilder.mjs +12 -4
- package/dist/core/InstructionBuilder.mjs.map +1 -1
- package/dist/core/capabilities/builtins/AskUserQuestion.d.ts.map +1 -1
- package/dist/core/capabilities/builtins/AskUserQuestion.js +5 -0
- package/dist/core/capabilities/builtins/AskUserQuestion.js.map +1 -1
- package/dist/core/capabilities/builtins/AskUserQuestion.mjs +5 -0
- package/dist/core/capabilities/builtins/AskUserQuestion.mjs.map +1 -1
- package/dist/core/capabilities/builtins/LargeToolResponse.d.ts.map +1 -1
- package/dist/core/capabilities/builtins/LargeToolResponse.js +6 -2
- package/dist/core/capabilities/builtins/LargeToolResponse.js.map +1 -1
- package/dist/core/capabilities/builtins/LargeToolResponse.mjs +6 -2
- package/dist/core/capabilities/builtins/LargeToolResponse.mjs.map +1 -1
- package/dist/core/index.d.ts +9 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +25 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +24 -2
- package/dist/core/index.mjs.map +1 -1
- package/dist/core/llm/VercelAILLM.d.ts +1 -0
- package/dist/core/llm/VercelAILLM.d.ts.map +1 -1
- package/dist/core/llm/VercelAILLM.js +13 -14
- package/dist/core/llm/VercelAILLM.js.map +1 -1
- package/dist/core/llm/VercelAILLM.mjs +13 -15
- package/dist/core/llm/VercelAILLM.mjs.map +1 -1
- package/dist/core/mcp/RemoteMCP.d.ts.map +1 -1
- package/dist/core/mcp/RemoteMCP.js +15 -5
- package/dist/core/mcp/RemoteMCP.js.map +1 -1
- package/dist/core/mcp/RemoteMCP.mjs +15 -5
- package/dist/core/mcp/RemoteMCP.mjs.map +1 -1
- package/dist/core/mcp/ToolSelectorPolicy.d.ts.map +1 -1
- package/dist/core/mcp/ToolSelectorPolicy.js +3 -1
- package/dist/core/mcp/ToolSelectorPolicy.js.map +1 -1
- package/dist/core/mcp/ToolSelectorPolicy.mjs +3 -1
- package/dist/core/mcp/ToolSelectorPolicy.mjs.map +1 -1
- package/dist/core/mcp/ToolSet.d.ts.map +1 -1
- package/dist/core/mcp/ToolSet.js +9 -3
- package/dist/core/mcp/ToolSet.js.map +1 -1
- package/dist/core/mcp/ToolSet.mjs +9 -3
- package/dist/core/mcp/ToolSet.mjs.map +1 -1
- package/dist/core/mcp/convertMCPServers.d.ts.map +1 -1
- package/dist/core/mcp/convertMCPServers.js +6 -2
- package/dist/core/mcp/convertMCPServers.js.map +1 -1
- package/dist/core/mcp/convertMCPServers.mjs +6 -2
- package/dist/core/mcp/convertMCPServers.mjs.map +1 -1
- package/dist/core/mcp/remoteMcpClient.d.ts.map +1 -1
- package/dist/core/mcp/remoteMcpClient.js +21 -7
- package/dist/core/mcp/remoteMcpClient.js.map +1 -1
- package/dist/core/mcp/remoteMcpClient.mjs +21 -7
- package/dist/core/mcp/remoteMcpClient.mjs.map +1 -1
- package/dist/core/mcp/toolSelectors.d.ts.map +1 -1
- package/dist/core/mcp/toolSelectors.js +18 -6
- package/dist/core/mcp/toolSelectors.js.map +1 -1
- package/dist/core/mcp/toolSelectors.mjs +18 -6
- package/dist/core/mcp/toolSelectors.mjs.map +1 -1
- package/dist/core/runtime/AgentThread.d.ts.map +1 -1
- package/dist/core/runtime/AgentThread.js +45 -15
- package/dist/core/runtime/AgentThread.js.map +1 -1
- package/dist/core/runtime/AgentThread.mjs +45 -15
- package/dist/core/runtime/AgentThread.mjs.map +1 -1
- package/dist/core/runtime/AgentThreadOrchestrator.d.ts.map +1 -1
- package/dist/core/runtime/AgentThreadOrchestrator.js +27 -9
- package/dist/core/runtime/AgentThreadOrchestrator.js.map +1 -1
- package/dist/core/runtime/AgentThreadOrchestrator.mjs +27 -9
- package/dist/core/runtime/AgentThreadOrchestrator.mjs.map +1 -1
- package/dist/core/runtime/DeferredTool.d.ts.map +1 -1
- package/dist/core/runtime/DeferredTool.js +15 -5
- package/dist/core/runtime/DeferredTool.js.map +1 -1
- package/dist/core/runtime/DeferredTool.mjs +15 -5
- package/dist/core/runtime/DeferredTool.mjs.map +1 -1
- package/dist/core/runtime/contextUtils.d.ts.map +1 -1
- package/dist/core/runtime/contextUtils.js +3 -1
- package/dist/core/runtime/contextUtils.js.map +1 -1
- package/dist/core/runtime/contextUtils.mjs +3 -1
- package/dist/core/runtime/contextUtils.mjs.map +1 -1
- package/dist/core/sandbox/Sandbox.d.ts +7 -9
- package/dist/core/sandbox/Sandbox.d.ts.map +1 -1
- package/dist/core/sandbox/Sandbox.js +55 -63
- package/dist/core/sandbox/Sandbox.js.map +1 -1
- package/dist/core/sandbox/Sandbox.mjs +56 -64
- package/dist/core/sandbox/Sandbox.mjs.map +1 -1
- package/dist/core/sandbox/codeMode/CodeModeDispatcher.d.ts +29 -0
- package/dist/core/sandbox/codeMode/CodeModeDispatcher.d.ts.map +1 -0
- package/dist/core/sandbox/codeMode/CodeModeDispatcher.js +134 -0
- package/dist/core/sandbox/codeMode/CodeModeDispatcher.js.map +1 -0
- package/dist/core/sandbox/codeMode/CodeModeDispatcher.mjs +113 -0
- package/dist/core/sandbox/codeMode/CodeModeDispatcher.mjs.map +1 -0
- package/dist/core/sandbox/codeMode/CodeModeTransport.d.ts +21 -0
- package/dist/core/sandbox/codeMode/CodeModeTransport.d.ts.map +1 -0
- package/dist/core/sandbox/codeMode/CodeModeTransport.js +19 -0
- package/dist/core/sandbox/codeMode/CodeModeTransport.js.map +1 -0
- package/dist/core/sandbox/codeMode/CodeModeTransport.mjs +1 -0
- package/dist/core/sandbox/codeMode/CodeModeTransport.mjs.map +1 -0
- package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.d.ts +34 -0
- package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.d.ts.map +1 -0
- package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.js +193 -0
- package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.js.map +1 -0
- package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.mjs +168 -0
- package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.mjs.map +1 -0
- package/dist/core/sandbox/codeMode/types.d.ts +34 -0
- package/dist/core/sandbox/codeMode/types.d.ts.map +1 -0
- package/dist/core/sandbox/codeMode/types.js +59 -0
- package/dist/core/sandbox/codeMode/types.js.map +1 -0
- package/dist/core/sandbox/codeMode/types.mjs +32 -0
- package/dist/core/sandbox/codeMode/types.mjs.map +1 -0
- package/dist/core/sandbox/provider/DaytonaProvider.d.ts +19 -1
- package/dist/core/sandbox/provider/DaytonaProvider.d.ts.map +1 -1
- package/dist/core/sandbox/provider/DaytonaProvider.js +96 -23
- package/dist/core/sandbox/provider/DaytonaProvider.js.map +1 -1
- package/dist/core/sandbox/provider/DaytonaProvider.mjs +96 -23
- package/dist/core/sandbox/provider/DaytonaProvider.mjs.map +1 -1
- package/dist/core/sandbox/provider/Provider.d.ts +4 -3
- package/dist/core/sandbox/provider/Provider.d.ts.map +1 -1
- package/dist/core/sandbox/provider/Provider.js.map +1 -1
- package/dist/core/sandbox/provider/Provider.mjs.map +1 -1
- package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts +2 -1
- package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts.map +1 -1
- package/dist/core/sandbox/provider/TFYSandboxProvider.js +20 -6
- package/dist/core/sandbox/provider/TFYSandboxProvider.js.map +1 -1
- package/dist/core/sandbox/provider/TFYSandboxProvider.mjs +20 -6
- package/dist/core/sandbox/provider/TFYSandboxProvider.mjs.map +1 -1
- package/dist/core/sandbox/sandboxImage.d.ts +1 -1
- package/dist/core/sandbox/sandboxImage.d.ts.map +1 -1
- package/dist/core/sandbox/sandboxImage.js +1 -1
- package/dist/core/sandbox/sandboxImage.js.map +1 -1
- package/dist/core/sandbox/sandboxImage.mjs +1 -1
- package/dist/core/sandbox/sandboxImage.mjs.map +1 -1
- package/dist/core/sandbox/sandboxScripts.gen.d.ts +1 -1
- package/dist/core/sandbox/sandboxScripts.gen.d.ts.map +1 -1
- package/dist/core/sandbox/sandboxScripts.gen.js +8 -8
- package/dist/core/sandbox/sandboxScripts.gen.js.map +1 -1
- package/dist/core/sandbox/sandboxScripts.gen.mjs +8 -8
- package/dist/core/sandbox/sandboxScripts.gen.mjs.map +1 -1
- package/dist/core/sandbox/skills/SkillMounter.d.ts.map +1 -1
- package/dist/core/sandbox/skills/SkillMounter.js +3 -1
- package/dist/core/sandbox/skills/SkillMounter.js.map +1 -1
- package/dist/core/sandbox/skills/SkillMounter.mjs +3 -1
- package/dist/core/sandbox/skills/SkillMounter.mjs.map +1 -1
- package/dist/core/util/abort.d.ts.map +1 -1
- package/dist/core/util/abort.js +3 -1
- package/dist/core/util/abort.js.map +1 -1
- package/dist/core/util/abort.mjs +3 -1
- package/dist/core/util/abort.mjs.map +1 -1
- package/dist/core/util/errorLogFields.d.ts +5 -0
- package/dist/core/util/errorLogFields.d.ts.map +1 -1
- package/dist/core/util/errorLogFields.js +38 -2
- package/dist/core/util/errorLogFields.js.map +1 -1
- package/dist/core/util/errorLogFields.mjs +37 -2
- package/dist/core/util/errorLogFields.mjs.map +1 -1
- package/package.json +10 -6
- package/dist/core/sandbox/SandboxNatsBridge.d.ts +0 -33
- package/dist/core/sandbox/SandboxNatsBridge.d.ts.map +0 -1
- package/dist/core/sandbox/SandboxNatsBridge.js +0 -222
- package/dist/core/sandbox/SandboxNatsBridge.js.map +0 -1
- package/dist/core/sandbox/SandboxNatsBridge.mjs +0 -201
- package/dist/core/sandbox/SandboxNatsBridge.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LargeToolResponse.d.ts","sourceRoot":"","sources":["../../../../src/core/capabilities/builtins/LargeToolResponse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGnG,eAAO,MAAM,uCAAuC,OAAO,CAAC;AAC5D,eAAO,MAAM,kCAAkC,QAAQ,CAAC;AACxD,eAAO,MAAM,oCAAoC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"LargeToolResponse.d.ts","sourceRoot":"","sources":["../../../../src/core/capabilities/builtins/LargeToolResponse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGnG,eAAO,MAAM,uCAAuC,OAAO,CAAC;AAC5D,eAAO,MAAM,kCAAkC,QAAQ,CAAC;AACxD,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAgCxD,qBAAa,0BAA2B,YAAW,qBAAqB;IACtE,OAAO,CAAC,uBAAuB,CAAU;IACzC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YAAY,KAAK,EAAE;QACjB,uBAAuB,EAAE,OAAO,CAAC;QACjC,wBAAwB,EAAE,MAAM,CAAC;QACjC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,yBAAyB,EAAE,MAAM,CAAC;QAClC,MAAM,EAAE,MAAM,CAAC;KAChB,EAWA;IAED,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,WAAW;YA4BL,iCAAiC;YA2BjC,mBAAmB;IAO3B,OAAO,CACX,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAC/C,OAAO,CAAC,2BAA2B,CAAC,CA8BtC;CACF;AAED,MAAM,WAAW,yBAAyB;IACxC,wBAAwB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,uBAAuB,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,eAAe,CAYlB"}
|
|
@@ -47,11 +47,15 @@ var DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD = 1e4;
|
|
|
47
47
|
var DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS = 100;
|
|
48
48
|
var FAILURE_MESSAGE_TRUNCATION_LENGTH = 500;
|
|
49
49
|
function categorize(result, sandbox) {
|
|
50
|
-
if (result.failure)
|
|
50
|
+
if (result.failure) {
|
|
51
|
+
return "failure";
|
|
52
|
+
}
|
|
51
53
|
if (!result.info) {
|
|
52
54
|
throw new Error(`Unreachable`);
|
|
53
55
|
}
|
|
54
|
-
if (sandbox && result.info.toolSet === sandbox)
|
|
56
|
+
if (sandbox && result.info.toolSet === sandbox) {
|
|
57
|
+
return "sandbox";
|
|
58
|
+
}
|
|
55
59
|
return "mcp";
|
|
56
60
|
}
|
|
57
61
|
function createContentPreview(content, previewChars) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/capabilities/builtins/LargeToolResponse.ts"],"sourcesContent":["import dedent from 'dedent';\nimport type { Logger } from 'winston';\nimport { estimateTokensForString } from '../../llm/usage';\nimport type { ToolCallResult } from '../../mcp/executeToolCalls';\nimport type { Sandbox, SandboxInfo } from '../../sandbox/Sandbox';\nimport { createSandboxLargeToolResponseGuidance, SANDBOX_SCHEMA_INFER_TAG } from '../../sandbox/Sandbox';\nimport { extractErrorLogFields } from '../../util/errorLogFields';\nimport type { AgentCapability } from '../AgentCapability';\nimport type { AgentThreadExecutionContext } from '../AgentContextProcessor';\nimport type { ToolResponseProcessor, ToolResponseProcessorResult } from '../ToolResponseProcessor';\nimport { createDynamicSubAgentLargeToolResponseGuidance } from './DynamicSubAgents';\n\nexport const DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD = 6000;\nexport const DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD = 10000;\nexport const DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS = 100;\nconst FAILURE_MESSAGE_TRUNCATION_LENGTH = 500;\n\ntype ResultCategory = 'failure' | 'sandbox' | 'mcp';\n\ninterface ToolResultWithInfo {\n toolCallResult: ToolCallResult;\n originalContent: string;\n originalTokens: number;\n category: ResultCategory;\n}\n\nfunction categorize(result: ToolCallResult, sandbox: Sandbox | undefined): ResultCategory {\n if (result.failure) return 'failure';\n if (!result.info) {\n throw new Error(`Unreachable`);\n }\n if (sandbox && result.info.toolSet === sandbox) return 'sandbox';\n return 'mcp';\n}\n\nfunction createContentPreview(content: string, previewChars: number): string {\n if (content.length <= previewChars * 2) {\n return content;\n }\n return `${content.slice(0, previewChars)}\\n...\\n${content.slice(-previewChars)}`;\n}\n\nexport class LargeToolResponseProcessor implements ToolResponseProcessor {\n private dynamicSubAgentsPresent: boolean;\n private individualTokenThreshold: number;\n private totalTokenThreshold: number;\n private previewNumberOfCharacters: number;\n private readonly logger: Logger;\n\n constructor(param: {\n dynamicSubAgentsPresent: boolean;\n individualTokenThreshold: number;\n totalTokenThreshold: number;\n previewNumberOfCharacters: number;\n logger: Logger;\n }) {\n if (param.individualTokenThreshold > param.totalTokenThreshold) {\n throw new Error(\n `individualTokenThreshold (${String(param.individualTokenThreshold)}) must be <= totalTokenThreshold (${String(param.totalTokenThreshold)})`,\n );\n }\n this.dynamicSubAgentsPresent = param.dynamicSubAgentsPresent;\n this.individualTokenThreshold = param.individualTokenThreshold;\n this.totalTokenThreshold = param.totalTokenThreshold;\n this.previewNumberOfCharacters = param.previewNumberOfCharacters;\n this.logger = param.logger.child({ module: 'LargeToolResponse' });\n }\n\n private createLargeToolResponseGuidance(sandbox: Sandbox | undefined): string {\n const steps = ['Check if some parameter can be passed in order to reduce the output size.'];\n\n if (sandbox) {\n steps.push(createSandboxLargeToolResponseGuidance());\n }\n\n if (this.dynamicSubAgentsPresent) {\n steps.push(createDynamicSubAgentLargeToolResponseGuidance());\n }\n\n return `Content too big. To handle a large tool call the Agent can do the following:\\n${steps\n .map((step, index) => `${String(index + 1)}. ${step}`)\n .join('\\n')}`;\n }\n\n private createFileDumpMessage(params: { filePath: string; preview: string }): string {\n const { filePath, preview } = params;\n const steps: string[] = [\n dedent`Use sandbox to read parts of the file or extract data.\n Use ${SANDBOX_SCHEMA_INFER_TAG} to undertand the schema.`,\n ];\n\n if (this.dynamicSubAgentsPresent) {\n steps.push(\n `${createDynamicSubAgentLargeToolResponseGuidance()} The Agent must pass file path to sub-agent also.`,\n );\n }\n\n const guidance = `The Agent can do the following to handle it:\\n${steps\n .map((step, index) => `${String(index + 1)}. ${step}`)\n .join('\\n')}`;\n\n return `Content too large. Result saved to: ${filePath}.\\n\\n${guidance}\\n\\nPreview (first and last ${String(this.previewNumberOfCharacters)} chars):\\n${preview}`;\n }\n\n private buildResultsWithInfo(results: ToolCallResult[], sandbox: Sandbox | undefined): ToolResultWithInfo[] {\n return results.map(toolCallResult => ({\n toolCallResult,\n originalContent: toolCallResult.message.content,\n originalTokens: estimateTokensForString(toolCallResult.message.content),\n category: categorize(toolCallResult, sandbox),\n }));\n }\n\n private blockResult(\n entry: ToolResultWithInfo,\n pendingSandboxDumps: ToolResultWithInfo[],\n sandbox: Sandbox | undefined,\n ): number {\n const preview = createContentPreview(entry.originalContent, this.previewNumberOfCharacters);\n\n let newContent: string;\n switch (entry.category) {\n case 'failure':\n newContent = entry.originalContent.slice(0, FAILURE_MESSAGE_TRUNCATION_LENGTH);\n break;\n case 'sandbox':\n newContent = `Content too big. The Agent should write to a file if required and use grep and sed.\\n\\nPreview:\\n${preview}`;\n break;\n case 'mcp':\n newContent = `${this.createLargeToolResponseGuidance(sandbox)}\\n\\nPreview (first and last ${String(this.previewNumberOfCharacters)} chars):\\n${preview}`;\n if (sandbox) {\n pendingSandboxDumps.push(entry);\n }\n break;\n }\n\n entry.toolCallResult.message.content = newContent;\n entry.toolCallResult.isStructuredContent = false;\n return Math.max(0, entry.originalTokens - estimateTokensForString(newContent));\n }\n\n private async uploadToSandboxAndPrependFilePath(\n entry: ToolResultWithInfo,\n index: number,\n sandbox: Sandbox,\n ): Promise<SandboxInfo | undefined> {\n if (!entry.toolCallResult.info) {\n throw new Error(`Unreachable`);\n }\n const sanitizedName = entry.toolCallResult.info.originalToolName.replace(/[^a-zA-Z0-9_-]/g, '_').slice(0, 40);\n const epoch = Date.now();\n const fileName = `${sanitizedName}_${String(index)}_${String(epoch)}.txt`;\n try {\n const stored = await sandbox.writeArtifact({\n fileName,\n content: Buffer.from(entry.originalContent),\n sourceTool: entry.toolCallResult.info,\n });\n const preview = createContentPreview(entry.originalContent, this.previewNumberOfCharacters);\n entry.toolCallResult.message.content = this.createFileDumpMessage({ filePath: stored.filePath, preview });\n entry.toolCallResult.isStructuredContent = false;\n return stored.sandboxCreated;\n } catch (error) {\n this.logger.error('Failed to upload to sandbox', extractErrorLogFields(error));\n return undefined;\n }\n }\n\n private async executeSandboxDumps(entries: ToolResultWithInfo[], sandbox: Sandbox): Promise<SandboxInfo | undefined> {\n const results = await Promise.all(\n entries.map((entry, index) => this.uploadToSandboxAndPrependFilePath(entry, index, sandbox)),\n );\n return results.find(r => r !== undefined);\n }\n\n async process(\n results: ToolCallResult[],\n execution: Readonly<AgentThreadExecutionContext>,\n ): Promise<ToolResponseProcessorResult> {\n const sandbox = execution.sandbox;\n const resultsWithInfo = this.buildResultsWithInfo(results, sandbox);\n let runningTotal = resultsWithInfo.reduce((sum, e) => sum + e.originalTokens, 0);\n\n if (runningTotal < this.individualTokenThreshold) {\n return {};\n }\n\n const pendingSandboxDumps: ToolResultWithInfo[] = [];\n\n const unblocked: ToolResultWithInfo[] = [];\n for (const entry of resultsWithInfo) {\n if (entry.originalTokens >= this.individualTokenThreshold) {\n runningTotal -= this.blockResult(entry, pendingSandboxDumps, sandbox);\n } else {\n unblocked.push(entry);\n }\n }\n\n const sortedUnblocked = [...unblocked].sort((a, b) => b.originalTokens - a.originalTokens);\n for (const entry of sortedUnblocked) {\n if (runningTotal < this.totalTokenThreshold) {\n break;\n }\n runningTotal -= this.blockResult(entry, pendingSandboxDumps, sandbox);\n }\n\n const sandboxCreated = sandbox ? await this.executeSandboxDumps(pendingSandboxDumps, sandbox) : undefined;\n return sandboxCreated !== undefined ? { sandboxCreated } : {};\n }\n}\n\nexport interface LargeToolResponseSettings {\n individualTokenThreshold?: number | undefined;\n totalTokenThreshold?: number | undefined;\n previewNumberOfCharacters?: number | undefined;\n}\n\nexport function largeToolResponse(options: {\n dynamicSubAgentsPresent: boolean;\n settings?: LargeToolResponseSettings | undefined;\n logger: Logger;\n}): AgentCapability {\n return {\n toolResponseProcessors: [\n new LargeToolResponseProcessor({\n dynamicSubAgentsPresent: options.dynamicSubAgentsPresent,\n individualTokenThreshold: options.settings?.individualTokenThreshold ?? DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n totalTokenThreshold: options.settings?.totalTokenThreshold ?? DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n previewNumberOfCharacters: options.settings?.previewNumberOfCharacters ?? DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n logger: options.logger,\n }),\n ],\n };\n}\n"],"mappings":"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","names":["dedent"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/capabilities/builtins/LargeToolResponse.ts"],"sourcesContent":["import dedent from 'dedent';\nimport type { Logger } from 'winston';\nimport { estimateTokensForString } from '../../llm/usage';\nimport type { ToolCallResult } from '../../mcp/executeToolCalls';\nimport type { Sandbox, SandboxInfo } from '../../sandbox/Sandbox';\nimport { createSandboxLargeToolResponseGuidance, SANDBOX_SCHEMA_INFER_TAG } from '../../sandbox/Sandbox';\nimport { extractErrorLogFields } from '../../util/errorLogFields';\nimport type { AgentCapability } from '../AgentCapability';\nimport type { AgentThreadExecutionContext } from '../AgentContextProcessor';\nimport type { ToolResponseProcessor, ToolResponseProcessorResult } from '../ToolResponseProcessor';\nimport { createDynamicSubAgentLargeToolResponseGuidance } from './DynamicSubAgents';\n\nexport const DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD = 6000;\nexport const DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD = 10000;\nexport const DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS = 100;\nconst FAILURE_MESSAGE_TRUNCATION_LENGTH = 500;\n\ntype ResultCategory = 'failure' | 'sandbox' | 'mcp';\n\ninterface ToolResultWithInfo {\n toolCallResult: ToolCallResult;\n originalContent: string;\n originalTokens: number;\n category: ResultCategory;\n}\n\nfunction categorize(result: ToolCallResult, sandbox: Sandbox | undefined): ResultCategory {\n if (result.failure) {\n return 'failure';\n }\n if (!result.info) {\n throw new Error(`Unreachable`);\n }\n if (sandbox && result.info.toolSet === sandbox) {\n return 'sandbox';\n }\n return 'mcp';\n}\n\nfunction createContentPreview(content: string, previewChars: number): string {\n if (content.length <= previewChars * 2) {\n return content;\n }\n return `${content.slice(0, previewChars)}\\n...\\n${content.slice(-previewChars)}`;\n}\n\nexport class LargeToolResponseProcessor implements ToolResponseProcessor {\n private dynamicSubAgentsPresent: boolean;\n private individualTokenThreshold: number;\n private totalTokenThreshold: number;\n private previewNumberOfCharacters: number;\n private readonly logger: Logger;\n\n constructor(param: {\n dynamicSubAgentsPresent: boolean;\n individualTokenThreshold: number;\n totalTokenThreshold: number;\n previewNumberOfCharacters: number;\n logger: Logger;\n }) {\n if (param.individualTokenThreshold > param.totalTokenThreshold) {\n throw new Error(\n `individualTokenThreshold (${String(param.individualTokenThreshold)}) must be <= totalTokenThreshold (${String(param.totalTokenThreshold)})`,\n );\n }\n this.dynamicSubAgentsPresent = param.dynamicSubAgentsPresent;\n this.individualTokenThreshold = param.individualTokenThreshold;\n this.totalTokenThreshold = param.totalTokenThreshold;\n this.previewNumberOfCharacters = param.previewNumberOfCharacters;\n this.logger = param.logger.child({ module: 'LargeToolResponse' });\n }\n\n private createLargeToolResponseGuidance(sandbox: Sandbox | undefined): string {\n const steps = ['Check if some parameter can be passed in order to reduce the output size.'];\n\n if (sandbox) {\n steps.push(createSandboxLargeToolResponseGuidance());\n }\n\n if (this.dynamicSubAgentsPresent) {\n steps.push(createDynamicSubAgentLargeToolResponseGuidance());\n }\n\n return `Content too big. To handle a large tool call the Agent can do the following:\\n${steps\n .map((step, index) => `${String(index + 1)}. ${step}`)\n .join('\\n')}`;\n }\n\n private createFileDumpMessage(params: { filePath: string; preview: string }): string {\n const { filePath, preview } = params;\n const steps: string[] = [\n dedent`Use sandbox to read parts of the file or extract data.\n Use ${SANDBOX_SCHEMA_INFER_TAG} to undertand the schema.`,\n ];\n\n if (this.dynamicSubAgentsPresent) {\n steps.push(\n `${createDynamicSubAgentLargeToolResponseGuidance()} The Agent must pass file path to sub-agent also.`,\n );\n }\n\n const guidance = `The Agent can do the following to handle it:\\n${steps\n .map((step, index) => `${String(index + 1)}. ${step}`)\n .join('\\n')}`;\n\n return `Content too large. Result saved to: ${filePath}.\\n\\n${guidance}\\n\\nPreview (first and last ${String(this.previewNumberOfCharacters)} chars):\\n${preview}`;\n }\n\n private buildResultsWithInfo(results: ToolCallResult[], sandbox: Sandbox | undefined): ToolResultWithInfo[] {\n return results.map(toolCallResult => ({\n toolCallResult,\n originalContent: toolCallResult.message.content,\n originalTokens: estimateTokensForString(toolCallResult.message.content),\n category: categorize(toolCallResult, sandbox),\n }));\n }\n\n private blockResult(\n entry: ToolResultWithInfo,\n pendingSandboxDumps: ToolResultWithInfo[],\n sandbox: Sandbox | undefined,\n ): number {\n const preview = createContentPreview(entry.originalContent, this.previewNumberOfCharacters);\n\n let newContent: string;\n switch (entry.category) {\n case 'failure':\n newContent = entry.originalContent.slice(0, FAILURE_MESSAGE_TRUNCATION_LENGTH);\n break;\n case 'sandbox':\n newContent = `Content too big. The Agent should write to a file if required and use grep and sed.\\n\\nPreview:\\n${preview}`;\n break;\n case 'mcp':\n newContent = `${this.createLargeToolResponseGuidance(sandbox)}\\n\\nPreview (first and last ${String(this.previewNumberOfCharacters)} chars):\\n${preview}`;\n if (sandbox) {\n pendingSandboxDumps.push(entry);\n }\n break;\n }\n\n entry.toolCallResult.message.content = newContent;\n entry.toolCallResult.isStructuredContent = false;\n return Math.max(0, entry.originalTokens - estimateTokensForString(newContent));\n }\n\n private async uploadToSandboxAndPrependFilePath(\n entry: ToolResultWithInfo,\n index: number,\n sandbox: Sandbox,\n ): Promise<SandboxInfo | undefined> {\n if (!entry.toolCallResult.info) {\n throw new Error(`Unreachable`);\n }\n const sanitizedName = entry.toolCallResult.info.originalToolName.replace(/[^a-zA-Z0-9_-]/g, '_').slice(0, 40);\n const epoch = Date.now();\n const fileName = `${sanitizedName}_${String(index)}_${String(epoch)}.txt`;\n try {\n const stored = await sandbox.writeArtifact({\n fileName,\n content: Buffer.from(entry.originalContent),\n sourceTool: entry.toolCallResult.info,\n });\n const preview = createContentPreview(entry.originalContent, this.previewNumberOfCharacters);\n entry.toolCallResult.message.content = this.createFileDumpMessage({ filePath: stored.filePath, preview });\n entry.toolCallResult.isStructuredContent = false;\n return stored.sandboxCreated;\n } catch (error) {\n this.logger.error('Failed to upload to sandbox', extractErrorLogFields(error));\n return undefined;\n }\n }\n\n private async executeSandboxDumps(entries: ToolResultWithInfo[], sandbox: Sandbox): Promise<SandboxInfo | undefined> {\n const results = await Promise.all(\n entries.map((entry, index) => this.uploadToSandboxAndPrependFilePath(entry, index, sandbox)),\n );\n return results.find(r => r !== undefined);\n }\n\n async process(\n results: ToolCallResult[],\n execution: Readonly<AgentThreadExecutionContext>,\n ): Promise<ToolResponseProcessorResult> {\n const sandbox = execution.sandbox;\n const resultsWithInfo = this.buildResultsWithInfo(results, sandbox);\n let runningTotal = resultsWithInfo.reduce((sum, e) => sum + e.originalTokens, 0);\n\n if (runningTotal < this.individualTokenThreshold) {\n return {};\n }\n\n const pendingSandboxDumps: ToolResultWithInfo[] = [];\n\n const unblocked: ToolResultWithInfo[] = [];\n for (const entry of resultsWithInfo) {\n if (entry.originalTokens >= this.individualTokenThreshold) {\n runningTotal -= this.blockResult(entry, pendingSandboxDumps, sandbox);\n } else {\n unblocked.push(entry);\n }\n }\n\n const sortedUnblocked = [...unblocked].sort((a, b) => b.originalTokens - a.originalTokens);\n for (const entry of sortedUnblocked) {\n if (runningTotal < this.totalTokenThreshold) {\n break;\n }\n runningTotal -= this.blockResult(entry, pendingSandboxDumps, sandbox);\n }\n\n const sandboxCreated = sandbox ? await this.executeSandboxDumps(pendingSandboxDumps, sandbox) : undefined;\n return sandboxCreated !== undefined ? { sandboxCreated } : {};\n }\n}\n\nexport interface LargeToolResponseSettings {\n individualTokenThreshold?: number | undefined;\n totalTokenThreshold?: number | undefined;\n previewNumberOfCharacters?: number | undefined;\n}\n\nexport function largeToolResponse(options: {\n dynamicSubAgentsPresent: boolean;\n settings?: LargeToolResponseSettings | undefined;\n logger: Logger;\n}): AgentCapability {\n return {\n toolResponseProcessors: [\n new LargeToolResponseProcessor({\n dynamicSubAgentsPresent: options.dynamicSubAgentsPresent,\n individualTokenThreshold: options.settings?.individualTokenThreshold ?? DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n totalTokenThreshold: options.settings?.totalTokenThreshold ?? DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n previewNumberOfCharacters: options.settings?.previewNumberOfCharacters ?? DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n logger: options.logger,\n }),\n ],\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AAEnB,mBAAwC;AAGxC,qBAAiF;AACjF,4BAAsC;AAItC,8BAA+D;AAExD,IAAM,0CAA0C;AAChD,IAAM,qCAAqC;AAC3C,IAAM,uCAAuC;AACpD,IAAM,oCAAoC;AAW1C,SAAS,WAAW,QAAwB,SAA8C;AACxF,MAAI,OAAO,SAAS;AAClB,WAAO;AAAA,EACT;AACA,MAAI,CAAC,OAAO,MAAM;AAChB,UAAM,IAAI,MAAM,aAAa;AAAA,EAC/B;AACA,MAAI,WAAW,OAAO,KAAK,YAAY,SAAS;AAC9C,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,qBAAqB,SAAiB,cAA8B;AAC3E,MAAI,QAAQ,UAAU,eAAe,GAAG;AACtC,WAAO;AAAA,EACT;AACA,SAAO,GAAG,QAAQ,MAAM,GAAG,YAAY,CAAC;AAAA;AAAA,EAAU,QAAQ,MAAM,CAAC,YAAY,CAAC;AAChF;AAEO,IAAM,6BAAN,MAAkE;AAAA,EAC/D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACS;AAAA,EAEjB,YAAY,OAMT;AACD,QAAI,MAAM,2BAA2B,MAAM,qBAAqB;AAC9D,YAAM,IAAI;AAAA,QACR,6BAA6B,OAAO,MAAM,wBAAwB,CAAC,qCAAqC,OAAO,MAAM,mBAAmB,CAAC;AAAA,MAC3I;AAAA,IACF;AACA,SAAK,0BAA0B,MAAM;AACrC,SAAK,2BAA2B,MAAM;AACtC,SAAK,sBAAsB,MAAM;AACjC,SAAK,4BAA4B,MAAM;AACvC,SAAK,SAAS,MAAM,OAAO,MAAM,EAAE,QAAQ,oBAAoB,CAAC;AAAA,EAClE;AAAA,EAEQ,gCAAgC,SAAsC;AAC5E,UAAM,QAAQ,CAAC,2EAA2E;AAE1F,QAAI,SAAS;AACX,YAAM,SAAK,uDAAuC,CAAC;AAAA,IACrD;AAEA,QAAI,KAAK,yBAAyB;AAChC,YAAM,SAAK,wEAA+C,CAAC;AAAA,IAC7D;AAEA,WAAO;AAAA,EAAiF,MACrF,IAAI,CAAC,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,EACpD,KAAK,IAAI,CAAC;AAAA,EACf;AAAA,EAEQ,sBAAsB,QAAuD;AACnF,UAAM,EAAE,UAAU,QAAQ,IAAI;AAC9B,UAAM,QAAkB;AAAA,MACtB,cAAAA;AAAA,YACM,uCAAwB;AAAA,IAChC;AAEA,QAAI,KAAK,yBAAyB;AAChC,YAAM;AAAA,QACJ,OAAG,wEAA+C,CAAC;AAAA,MACrD;AAAA,IACF;AAEA,UAAM,WAAW;AAAA,EAAiD,MAC/D,IAAI,CAAC,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,EACpD,KAAK,IAAI,CAAC;AAEb,WAAO,uCAAuC,QAAQ;AAAA;AAAA,EAAQ,QAAQ;AAAA;AAAA,0BAA+B,OAAO,KAAK,yBAAyB,CAAC;AAAA,EAAa,OAAO;AAAA,EACjK;AAAA,EAEQ,qBAAqB,SAA2B,SAAoD;AAC1G,WAAO,QAAQ,IAAI,qBAAmB;AAAA,MACpC;AAAA,MACA,iBAAiB,eAAe,QAAQ;AAAA,MACxC,oBAAgB,sCAAwB,eAAe,QAAQ,OAAO;AAAA,MACtE,UAAU,WAAW,gBAAgB,OAAO;AAAA,IAC9C,EAAE;AAAA,EACJ;AAAA,EAEQ,YACN,OACA,qBACA,SACQ;AACR,UAAM,UAAU,qBAAqB,MAAM,iBAAiB,KAAK,yBAAyB;AAE1F,QAAI;AACJ,YAAQ,MAAM,UAAU;AAAA,MACtB,KAAK;AACH,qBAAa,MAAM,gBAAgB,MAAM,GAAG,iCAAiC;AAC7E;AAAA,MACF,KAAK;AACH,qBAAa;AAAA;AAAA;AAAA,EAAoG,OAAO;AACxH;AAAA,MACF,KAAK;AACH,qBAAa,GAAG,KAAK,gCAAgC,OAAO,CAAC;AAAA;AAAA,0BAA+B,OAAO,KAAK,yBAAyB,CAAC;AAAA,EAAa,OAAO;AACtJ,YAAI,SAAS;AACX,8BAAoB,KAAK,KAAK;AAAA,QAChC;AACA;AAAA,IACJ;AAEA,UAAM,eAAe,QAAQ,UAAU;AACvC,UAAM,eAAe,sBAAsB;AAC3C,WAAO,KAAK,IAAI,GAAG,MAAM,qBAAiB,sCAAwB,UAAU,CAAC;AAAA,EAC/E;AAAA,EAEA,MAAc,kCACZ,OACA,OACA,SACkC;AAClC,QAAI,CAAC,MAAM,eAAe,MAAM;AAC9B,YAAM,IAAI,MAAM,aAAa;AAAA,IAC/B;AACA,UAAM,gBAAgB,MAAM,eAAe,KAAK,iBAAiB,QAAQ,mBAAmB,GAAG,EAAE,MAAM,GAAG,EAAE;AAC5G,UAAM,QAAQ,KAAK,IAAI;AACvB,UAAM,WAAW,GAAG,aAAa,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC;AACnE,QAAI;AACF,YAAM,SAAS,MAAM,QAAQ,cAAc;AAAA,QACzC;AAAA,QACA,SAAS,OAAO,KAAK,MAAM,eAAe;AAAA,QAC1C,YAAY,MAAM,eAAe;AAAA,MACnC,CAAC;AACD,YAAM,UAAU,qBAAqB,MAAM,iBAAiB,KAAK,yBAAyB;AAC1F,YAAM,eAAe,QAAQ,UAAU,KAAK,sBAAsB,EAAE,UAAU,OAAO,UAAU,QAAQ,CAAC;AACxG,YAAM,eAAe,sBAAsB;AAC3C,aAAO,OAAO;AAAA,IAChB,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,mCAA+B,6CAAsB,KAAK,CAAC;AAC7E,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAc,oBAAoB,SAA+B,SAAoD;AACnH,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC5B,QAAQ,IAAI,CAAC,OAAO,UAAU,KAAK,kCAAkC,OAAO,OAAO,OAAO,CAAC;AAAA,IAC7F;AACA,WAAO,QAAQ,KAAK,OAAK,MAAM,MAAS;AAAA,EAC1C;AAAA,EAEA,MAAM,QACJ,SACA,WACsC;AACtC,UAAM,UAAU,UAAU;AAC1B,UAAM,kBAAkB,KAAK,qBAAqB,SAAS,OAAO;AAClE,QAAI,eAAe,gBAAgB,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,gBAAgB,CAAC;AAE/E,QAAI,eAAe,KAAK,0BAA0B;AAChD,aAAO,CAAC;AAAA,IACV;AAEA,UAAM,sBAA4C,CAAC;AAEnD,UAAM,YAAkC,CAAC;AACzC,eAAW,SAAS,iBAAiB;AACnC,UAAI,MAAM,kBAAkB,KAAK,0BAA0B;AACzD,wBAAgB,KAAK,YAAY,OAAO,qBAAqB,OAAO;AAAA,MACtE,OAAO;AACL,kBAAU,KAAK,KAAK;AAAA,MACtB;AAAA,IACF;AAEA,UAAM,kBAAkB,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,iBAAiB,EAAE,cAAc;AACzF,eAAW,SAAS,iBAAiB;AACnC,UAAI,eAAe,KAAK,qBAAqB;AAC3C;AAAA,MACF;AACA,sBAAgB,KAAK,YAAY,OAAO,qBAAqB,OAAO;AAAA,IACtE;AAEA,UAAM,iBAAiB,UAAU,MAAM,KAAK,oBAAoB,qBAAqB,OAAO,IAAI;AAChG,WAAO,mBAAmB,SAAY,EAAE,eAAe,IAAI,CAAC;AAAA,EAC9D;AACF;AAQO,SAAS,kBAAkB,SAId;AAClB,SAAO;AAAA,IACL,wBAAwB;AAAA,MACtB,IAAI,2BAA2B;AAAA,QAC7B,yBAAyB,QAAQ;AAAA,QACjC,0BAA0B,QAAQ,UAAU,4BAA4B;AAAA,QACxE,qBAAqB,QAAQ,UAAU,uBAAuB;AAAA,QAC9D,2BAA2B,QAAQ,UAAU,6BAA6B;AAAA,QAC1E,QAAQ,QAAQ;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":["dedent"]}
|
|
@@ -9,11 +9,15 @@ var DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD = 1e4;
|
|
|
9
9
|
var DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS = 100;
|
|
10
10
|
var FAILURE_MESSAGE_TRUNCATION_LENGTH = 500;
|
|
11
11
|
function categorize(result, sandbox) {
|
|
12
|
-
if (result.failure)
|
|
12
|
+
if (result.failure) {
|
|
13
|
+
return "failure";
|
|
14
|
+
}
|
|
13
15
|
if (!result.info) {
|
|
14
16
|
throw new Error(`Unreachable`);
|
|
15
17
|
}
|
|
16
|
-
if (sandbox && result.info.toolSet === sandbox)
|
|
18
|
+
if (sandbox && result.info.toolSet === sandbox) {
|
|
19
|
+
return "sandbox";
|
|
20
|
+
}
|
|
17
21
|
return "mcp";
|
|
18
22
|
}
|
|
19
23
|
function createContentPreview(content, previewChars) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/capabilities/builtins/LargeToolResponse.ts"],"sourcesContent":["import dedent from 'dedent';\nimport type { Logger } from 'winston';\nimport { estimateTokensForString } from '../../llm/usage';\nimport type { ToolCallResult } from '../../mcp/executeToolCalls';\nimport type { Sandbox, SandboxInfo } from '../../sandbox/Sandbox';\nimport { createSandboxLargeToolResponseGuidance, SANDBOX_SCHEMA_INFER_TAG } from '../../sandbox/Sandbox';\nimport { extractErrorLogFields } from '../../util/errorLogFields';\nimport type { AgentCapability } from '../AgentCapability';\nimport type { AgentThreadExecutionContext } from '../AgentContextProcessor';\nimport type { ToolResponseProcessor, ToolResponseProcessorResult } from '../ToolResponseProcessor';\nimport { createDynamicSubAgentLargeToolResponseGuidance } from './DynamicSubAgents';\n\nexport const DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD = 6000;\nexport const DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD = 10000;\nexport const DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS = 100;\nconst FAILURE_MESSAGE_TRUNCATION_LENGTH = 500;\n\ntype ResultCategory = 'failure' | 'sandbox' | 'mcp';\n\ninterface ToolResultWithInfo {\n toolCallResult: ToolCallResult;\n originalContent: string;\n originalTokens: number;\n category: ResultCategory;\n}\n\nfunction categorize(result: ToolCallResult, sandbox: Sandbox | undefined): ResultCategory {\n if (result.failure) return 'failure';\n if (!result.info) {\n throw new Error(`Unreachable`);\n }\n if (sandbox && result.info.toolSet === sandbox) return 'sandbox';\n return 'mcp';\n}\n\nfunction createContentPreview(content: string, previewChars: number): string {\n if (content.length <= previewChars * 2) {\n return content;\n }\n return `${content.slice(0, previewChars)}\\n...\\n${content.slice(-previewChars)}`;\n}\n\nexport class LargeToolResponseProcessor implements ToolResponseProcessor {\n private dynamicSubAgentsPresent: boolean;\n private individualTokenThreshold: number;\n private totalTokenThreshold: number;\n private previewNumberOfCharacters: number;\n private readonly logger: Logger;\n\n constructor(param: {\n dynamicSubAgentsPresent: boolean;\n individualTokenThreshold: number;\n totalTokenThreshold: number;\n previewNumberOfCharacters: number;\n logger: Logger;\n }) {\n if (param.individualTokenThreshold > param.totalTokenThreshold) {\n throw new Error(\n `individualTokenThreshold (${String(param.individualTokenThreshold)}) must be <= totalTokenThreshold (${String(param.totalTokenThreshold)})`,\n );\n }\n this.dynamicSubAgentsPresent = param.dynamicSubAgentsPresent;\n this.individualTokenThreshold = param.individualTokenThreshold;\n this.totalTokenThreshold = param.totalTokenThreshold;\n this.previewNumberOfCharacters = param.previewNumberOfCharacters;\n this.logger = param.logger.child({ module: 'LargeToolResponse' });\n }\n\n private createLargeToolResponseGuidance(sandbox: Sandbox | undefined): string {\n const steps = ['Check if some parameter can be passed in order to reduce the output size.'];\n\n if (sandbox) {\n steps.push(createSandboxLargeToolResponseGuidance());\n }\n\n if (this.dynamicSubAgentsPresent) {\n steps.push(createDynamicSubAgentLargeToolResponseGuidance());\n }\n\n return `Content too big. To handle a large tool call the Agent can do the following:\\n${steps\n .map((step, index) => `${String(index + 1)}. ${step}`)\n .join('\\n')}`;\n }\n\n private createFileDumpMessage(params: { filePath: string; preview: string }): string {\n const { filePath, preview } = params;\n const steps: string[] = [\n dedent`Use sandbox to read parts of the file or extract data.\n Use ${SANDBOX_SCHEMA_INFER_TAG} to undertand the schema.`,\n ];\n\n if (this.dynamicSubAgentsPresent) {\n steps.push(\n `${createDynamicSubAgentLargeToolResponseGuidance()} The Agent must pass file path to sub-agent also.`,\n );\n }\n\n const guidance = `The Agent can do the following to handle it:\\n${steps\n .map((step, index) => `${String(index + 1)}. ${step}`)\n .join('\\n')}`;\n\n return `Content too large. Result saved to: ${filePath}.\\n\\n${guidance}\\n\\nPreview (first and last ${String(this.previewNumberOfCharacters)} chars):\\n${preview}`;\n }\n\n private buildResultsWithInfo(results: ToolCallResult[], sandbox: Sandbox | undefined): ToolResultWithInfo[] {\n return results.map(toolCallResult => ({\n toolCallResult,\n originalContent: toolCallResult.message.content,\n originalTokens: estimateTokensForString(toolCallResult.message.content),\n category: categorize(toolCallResult, sandbox),\n }));\n }\n\n private blockResult(\n entry: ToolResultWithInfo,\n pendingSandboxDumps: ToolResultWithInfo[],\n sandbox: Sandbox | undefined,\n ): number {\n const preview = createContentPreview(entry.originalContent, this.previewNumberOfCharacters);\n\n let newContent: string;\n switch (entry.category) {\n case 'failure':\n newContent = entry.originalContent.slice(0, FAILURE_MESSAGE_TRUNCATION_LENGTH);\n break;\n case 'sandbox':\n newContent = `Content too big. The Agent should write to a file if required and use grep and sed.\\n\\nPreview:\\n${preview}`;\n break;\n case 'mcp':\n newContent = `${this.createLargeToolResponseGuidance(sandbox)}\\n\\nPreview (first and last ${String(this.previewNumberOfCharacters)} chars):\\n${preview}`;\n if (sandbox) {\n pendingSandboxDumps.push(entry);\n }\n break;\n }\n\n entry.toolCallResult.message.content = newContent;\n entry.toolCallResult.isStructuredContent = false;\n return Math.max(0, entry.originalTokens - estimateTokensForString(newContent));\n }\n\n private async uploadToSandboxAndPrependFilePath(\n entry: ToolResultWithInfo,\n index: number,\n sandbox: Sandbox,\n ): Promise<SandboxInfo | undefined> {\n if (!entry.toolCallResult.info) {\n throw new Error(`Unreachable`);\n }\n const sanitizedName = entry.toolCallResult.info.originalToolName.replace(/[^a-zA-Z0-9_-]/g, '_').slice(0, 40);\n const epoch = Date.now();\n const fileName = `${sanitizedName}_${String(index)}_${String(epoch)}.txt`;\n try {\n const stored = await sandbox.writeArtifact({\n fileName,\n content: Buffer.from(entry.originalContent),\n sourceTool: entry.toolCallResult.info,\n });\n const preview = createContentPreview(entry.originalContent, this.previewNumberOfCharacters);\n entry.toolCallResult.message.content = this.createFileDumpMessage({ filePath: stored.filePath, preview });\n entry.toolCallResult.isStructuredContent = false;\n return stored.sandboxCreated;\n } catch (error) {\n this.logger.error('Failed to upload to sandbox', extractErrorLogFields(error));\n return undefined;\n }\n }\n\n private async executeSandboxDumps(entries: ToolResultWithInfo[], sandbox: Sandbox): Promise<SandboxInfo | undefined> {\n const results = await Promise.all(\n entries.map((entry, index) => this.uploadToSandboxAndPrependFilePath(entry, index, sandbox)),\n );\n return results.find(r => r !== undefined);\n }\n\n async process(\n results: ToolCallResult[],\n execution: Readonly<AgentThreadExecutionContext>,\n ): Promise<ToolResponseProcessorResult> {\n const sandbox = execution.sandbox;\n const resultsWithInfo = this.buildResultsWithInfo(results, sandbox);\n let runningTotal = resultsWithInfo.reduce((sum, e) => sum + e.originalTokens, 0);\n\n if (runningTotal < this.individualTokenThreshold) {\n return {};\n }\n\n const pendingSandboxDumps: ToolResultWithInfo[] = [];\n\n const unblocked: ToolResultWithInfo[] = [];\n for (const entry of resultsWithInfo) {\n if (entry.originalTokens >= this.individualTokenThreshold) {\n runningTotal -= this.blockResult(entry, pendingSandboxDumps, sandbox);\n } else {\n unblocked.push(entry);\n }\n }\n\n const sortedUnblocked = [...unblocked].sort((a, b) => b.originalTokens - a.originalTokens);\n for (const entry of sortedUnblocked) {\n if (runningTotal < this.totalTokenThreshold) {\n break;\n }\n runningTotal -= this.blockResult(entry, pendingSandboxDumps, sandbox);\n }\n\n const sandboxCreated = sandbox ? await this.executeSandboxDumps(pendingSandboxDumps, sandbox) : undefined;\n return sandboxCreated !== undefined ? { sandboxCreated } : {};\n }\n}\n\nexport interface LargeToolResponseSettings {\n individualTokenThreshold?: number | undefined;\n totalTokenThreshold?: number | undefined;\n previewNumberOfCharacters?: number | undefined;\n}\n\nexport function largeToolResponse(options: {\n dynamicSubAgentsPresent: boolean;\n settings?: LargeToolResponseSettings | undefined;\n logger: Logger;\n}): AgentCapability {\n return {\n toolResponseProcessors: [\n new LargeToolResponseProcessor({\n dynamicSubAgentsPresent: options.dynamicSubAgentsPresent,\n individualTokenThreshold: options.settings?.individualTokenThreshold ?? DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n totalTokenThreshold: options.settings?.totalTokenThreshold ?? DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n previewNumberOfCharacters: options.settings?.previewNumberOfCharacters ?? DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n logger: options.logger,\n }),\n ],\n };\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/capabilities/builtins/LargeToolResponse.ts"],"sourcesContent":["import dedent from 'dedent';\nimport type { Logger } from 'winston';\nimport { estimateTokensForString } from '../../llm/usage';\nimport type { ToolCallResult } from '../../mcp/executeToolCalls';\nimport type { Sandbox, SandboxInfo } from '../../sandbox/Sandbox';\nimport { createSandboxLargeToolResponseGuidance, SANDBOX_SCHEMA_INFER_TAG } from '../../sandbox/Sandbox';\nimport { extractErrorLogFields } from '../../util/errorLogFields';\nimport type { AgentCapability } from '../AgentCapability';\nimport type { AgentThreadExecutionContext } from '../AgentContextProcessor';\nimport type { ToolResponseProcessor, ToolResponseProcessorResult } from '../ToolResponseProcessor';\nimport { createDynamicSubAgentLargeToolResponseGuidance } from './DynamicSubAgents';\n\nexport const DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD = 6000;\nexport const DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD = 10000;\nexport const DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS = 100;\nconst FAILURE_MESSAGE_TRUNCATION_LENGTH = 500;\n\ntype ResultCategory = 'failure' | 'sandbox' | 'mcp';\n\ninterface ToolResultWithInfo {\n toolCallResult: ToolCallResult;\n originalContent: string;\n originalTokens: number;\n category: ResultCategory;\n}\n\nfunction categorize(result: ToolCallResult, sandbox: Sandbox | undefined): ResultCategory {\n if (result.failure) {\n return 'failure';\n }\n if (!result.info) {\n throw new Error(`Unreachable`);\n }\n if (sandbox && result.info.toolSet === sandbox) {\n return 'sandbox';\n }\n return 'mcp';\n}\n\nfunction createContentPreview(content: string, previewChars: number): string {\n if (content.length <= previewChars * 2) {\n return content;\n }\n return `${content.slice(0, previewChars)}\\n...\\n${content.slice(-previewChars)}`;\n}\n\nexport class LargeToolResponseProcessor implements ToolResponseProcessor {\n private dynamicSubAgentsPresent: boolean;\n private individualTokenThreshold: number;\n private totalTokenThreshold: number;\n private previewNumberOfCharacters: number;\n private readonly logger: Logger;\n\n constructor(param: {\n dynamicSubAgentsPresent: boolean;\n individualTokenThreshold: number;\n totalTokenThreshold: number;\n previewNumberOfCharacters: number;\n logger: Logger;\n }) {\n if (param.individualTokenThreshold > param.totalTokenThreshold) {\n throw new Error(\n `individualTokenThreshold (${String(param.individualTokenThreshold)}) must be <= totalTokenThreshold (${String(param.totalTokenThreshold)})`,\n );\n }\n this.dynamicSubAgentsPresent = param.dynamicSubAgentsPresent;\n this.individualTokenThreshold = param.individualTokenThreshold;\n this.totalTokenThreshold = param.totalTokenThreshold;\n this.previewNumberOfCharacters = param.previewNumberOfCharacters;\n this.logger = param.logger.child({ module: 'LargeToolResponse' });\n }\n\n private createLargeToolResponseGuidance(sandbox: Sandbox | undefined): string {\n const steps = ['Check if some parameter can be passed in order to reduce the output size.'];\n\n if (sandbox) {\n steps.push(createSandboxLargeToolResponseGuidance());\n }\n\n if (this.dynamicSubAgentsPresent) {\n steps.push(createDynamicSubAgentLargeToolResponseGuidance());\n }\n\n return `Content too big. To handle a large tool call the Agent can do the following:\\n${steps\n .map((step, index) => `${String(index + 1)}. ${step}`)\n .join('\\n')}`;\n }\n\n private createFileDumpMessage(params: { filePath: string; preview: string }): string {\n const { filePath, preview } = params;\n const steps: string[] = [\n dedent`Use sandbox to read parts of the file or extract data.\n Use ${SANDBOX_SCHEMA_INFER_TAG} to undertand the schema.`,\n ];\n\n if (this.dynamicSubAgentsPresent) {\n steps.push(\n `${createDynamicSubAgentLargeToolResponseGuidance()} The Agent must pass file path to sub-agent also.`,\n );\n }\n\n const guidance = `The Agent can do the following to handle it:\\n${steps\n .map((step, index) => `${String(index + 1)}. ${step}`)\n .join('\\n')}`;\n\n return `Content too large. Result saved to: ${filePath}.\\n\\n${guidance}\\n\\nPreview (first and last ${String(this.previewNumberOfCharacters)} chars):\\n${preview}`;\n }\n\n private buildResultsWithInfo(results: ToolCallResult[], sandbox: Sandbox | undefined): ToolResultWithInfo[] {\n return results.map(toolCallResult => ({\n toolCallResult,\n originalContent: toolCallResult.message.content,\n originalTokens: estimateTokensForString(toolCallResult.message.content),\n category: categorize(toolCallResult, sandbox),\n }));\n }\n\n private blockResult(\n entry: ToolResultWithInfo,\n pendingSandboxDumps: ToolResultWithInfo[],\n sandbox: Sandbox | undefined,\n ): number {\n const preview = createContentPreview(entry.originalContent, this.previewNumberOfCharacters);\n\n let newContent: string;\n switch (entry.category) {\n case 'failure':\n newContent = entry.originalContent.slice(0, FAILURE_MESSAGE_TRUNCATION_LENGTH);\n break;\n case 'sandbox':\n newContent = `Content too big. The Agent should write to a file if required and use grep and sed.\\n\\nPreview:\\n${preview}`;\n break;\n case 'mcp':\n newContent = `${this.createLargeToolResponseGuidance(sandbox)}\\n\\nPreview (first and last ${String(this.previewNumberOfCharacters)} chars):\\n${preview}`;\n if (sandbox) {\n pendingSandboxDumps.push(entry);\n }\n break;\n }\n\n entry.toolCallResult.message.content = newContent;\n entry.toolCallResult.isStructuredContent = false;\n return Math.max(0, entry.originalTokens - estimateTokensForString(newContent));\n }\n\n private async uploadToSandboxAndPrependFilePath(\n entry: ToolResultWithInfo,\n index: number,\n sandbox: Sandbox,\n ): Promise<SandboxInfo | undefined> {\n if (!entry.toolCallResult.info) {\n throw new Error(`Unreachable`);\n }\n const sanitizedName = entry.toolCallResult.info.originalToolName.replace(/[^a-zA-Z0-9_-]/g, '_').slice(0, 40);\n const epoch = Date.now();\n const fileName = `${sanitizedName}_${String(index)}_${String(epoch)}.txt`;\n try {\n const stored = await sandbox.writeArtifact({\n fileName,\n content: Buffer.from(entry.originalContent),\n sourceTool: entry.toolCallResult.info,\n });\n const preview = createContentPreview(entry.originalContent, this.previewNumberOfCharacters);\n entry.toolCallResult.message.content = this.createFileDumpMessage({ filePath: stored.filePath, preview });\n entry.toolCallResult.isStructuredContent = false;\n return stored.sandboxCreated;\n } catch (error) {\n this.logger.error('Failed to upload to sandbox', extractErrorLogFields(error));\n return undefined;\n }\n }\n\n private async executeSandboxDumps(entries: ToolResultWithInfo[], sandbox: Sandbox): Promise<SandboxInfo | undefined> {\n const results = await Promise.all(\n entries.map((entry, index) => this.uploadToSandboxAndPrependFilePath(entry, index, sandbox)),\n );\n return results.find(r => r !== undefined);\n }\n\n async process(\n results: ToolCallResult[],\n execution: Readonly<AgentThreadExecutionContext>,\n ): Promise<ToolResponseProcessorResult> {\n const sandbox = execution.sandbox;\n const resultsWithInfo = this.buildResultsWithInfo(results, sandbox);\n let runningTotal = resultsWithInfo.reduce((sum, e) => sum + e.originalTokens, 0);\n\n if (runningTotal < this.individualTokenThreshold) {\n return {};\n }\n\n const pendingSandboxDumps: ToolResultWithInfo[] = [];\n\n const unblocked: ToolResultWithInfo[] = [];\n for (const entry of resultsWithInfo) {\n if (entry.originalTokens >= this.individualTokenThreshold) {\n runningTotal -= this.blockResult(entry, pendingSandboxDumps, sandbox);\n } else {\n unblocked.push(entry);\n }\n }\n\n const sortedUnblocked = [...unblocked].sort((a, b) => b.originalTokens - a.originalTokens);\n for (const entry of sortedUnblocked) {\n if (runningTotal < this.totalTokenThreshold) {\n break;\n }\n runningTotal -= this.blockResult(entry, pendingSandboxDumps, sandbox);\n }\n\n const sandboxCreated = sandbox ? await this.executeSandboxDumps(pendingSandboxDumps, sandbox) : undefined;\n return sandboxCreated !== undefined ? { sandboxCreated } : {};\n }\n}\n\nexport interface LargeToolResponseSettings {\n individualTokenThreshold?: number | undefined;\n totalTokenThreshold?: number | undefined;\n previewNumberOfCharacters?: number | undefined;\n}\n\nexport function largeToolResponse(options: {\n dynamicSubAgentsPresent: boolean;\n settings?: LargeToolResponseSettings | undefined;\n logger: Logger;\n}): AgentCapability {\n return {\n toolResponseProcessors: [\n new LargeToolResponseProcessor({\n dynamicSubAgentsPresent: options.dynamicSubAgentsPresent,\n individualTokenThreshold: options.settings?.individualTokenThreshold ?? DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n totalTokenThreshold: options.settings?.totalTokenThreshold ?? DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n previewNumberOfCharacters: options.settings?.previewNumberOfCharacters ?? DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n logger: options.logger,\n }),\n ],\n };\n}\n"],"mappings":"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","names":[]}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -44,15 +44,21 @@ export { AgentThreadMetricsSchema } from './runtime/metrics';
|
|
|
44
44
|
export type { AgentThreadMetrics } from './runtime/metrics';
|
|
45
45
|
export type { AgentExecutionTrace, AgentLocalToolTrace, AgentRemoteMcpToolTrace, AgentTracing, } from './tracing/AgentTracing';
|
|
46
46
|
export { AgentHarnessError, McpConnectionError, McpDcrConfigurationError } from './errors';
|
|
47
|
-
export { extractErrorLogFields } from './util/errorLogFields';
|
|
47
|
+
export { describeUnknownError, extractErrorLogFields } from './util/errorLogFields';
|
|
48
48
|
export { PromiseTimeoutError, withTimeout } from './util/promiseUtils';
|
|
49
|
+
export { CodeModeDispatcher } from './sandbox/codeMode/CodeModeDispatcher';
|
|
50
|
+
export type { CodeModeLogger } from './sandbox/codeMode/CodeModeDispatcher';
|
|
51
|
+
export type { CodeModeTransport } from './sandbox/codeMode/CodeModeTransport';
|
|
52
|
+
export { CodeModeErrorSourceSchema, CodeModeReplySchema, CodeModeRequestSchema } from './sandbox/codeMode/types';
|
|
53
|
+
export type { CodeModeErrorSource, CodeModeReply, CodeModeRequest } from './sandbox/codeMode/types';
|
|
49
54
|
export { DaytonaSandboxProvider } from './sandbox/provider/DaytonaProvider';
|
|
50
55
|
export type { DaytonaSandboxProviderOptions } from './sandbox/provider/DaytonaProvider';
|
|
51
|
-
export
|
|
56
|
+
export { ensureExecSuccess, shellEscape } from './sandbox/provider/Provider';
|
|
57
|
+
export type { ExecErrorResult, ExecResult, ExecSuccessResult, SandboxBuild, SandboxBuildMetadata, SandboxBuildStatus, SandboxExecParams, SandboxInit, SandboxProvider, } from './sandbox/provider/Provider';
|
|
52
58
|
export { TFYSandboxProvider } from './sandbox/provider/TFYSandboxProvider';
|
|
53
59
|
export { SKILL_DOWNLOAD_TIMEOUT_SECONDS, Sandbox, buildWriteAndRunScriptCommand } from './sandbox/Sandbox';
|
|
54
60
|
export type { SandboxInfo } from './sandbox/Sandbox';
|
|
55
|
-
export { SandboxError, validateNoPathTraversal, validateSandboxOwnedByTenant } from './sandbox/SandboxErrors';
|
|
61
|
+
export { SandboxError, SandboxFileNotFoundError, SandboxFileTooLargeError, SandboxNotAvailableError, SandboxPathIsDirectoryError, validateNoPathTraversal, validateSandboxOwnedByTenant, } from './sandbox/SandboxErrors';
|
|
56
62
|
export { SANDBOX_IMAGE_URI } from './sandbox/sandboxImage';
|
|
57
63
|
export { InstructionBuilder } from './InstructionBuilder';
|
|
58
64
|
export { SKILLS_PREAMBLE, SkillMounter, getSkillPath, renderSkillPromptBody } from './sandbox/skills';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.js
CHANGED
|
@@ -27,6 +27,10 @@ __export(core_exports, {
|
|
|
27
27
|
AgentThreadMetricsSchema: () => import_metrics.AgentThreadMetricsSchema,
|
|
28
28
|
AgentThreadOrchestrator: () => import_AgentThreadOrchestrator.AgentThreadOrchestrator,
|
|
29
29
|
ClientSideTool: () => import_ClientSideTool.ClientSideTool,
|
|
30
|
+
CodeModeDispatcher: () => import_CodeModeDispatcher.CodeModeDispatcher,
|
|
31
|
+
CodeModeErrorSourceSchema: () => import_types.CodeModeErrorSourceSchema,
|
|
32
|
+
CodeModeReplySchema: () => import_types.CodeModeReplySchema,
|
|
33
|
+
CodeModeRequestSchema: () => import_types.CodeModeRequestSchema,
|
|
30
34
|
CompletionUsageSchema: () => import_LLMTypes.CompletionUsageSchema,
|
|
31
35
|
DEFAULT_CONTEXT_COMPACTION_THRESHOLD_TOKENS: () => import_ContextCompaction.DEFAULT_CONTEXT_COMPACTION_THRESHOLD_TOKENS,
|
|
32
36
|
DEFAULT_DISABLE_TOOLS: () => import_toolSelectors.DEFAULT_DISABLE_TOOLS,
|
|
@@ -60,6 +64,10 @@ __export(core_exports, {
|
|
|
60
64
|
Sandbox: () => import_Sandbox.Sandbox,
|
|
61
65
|
SandboxCreatedEventSchema: () => import_schema.SandboxCreatedEventSchema,
|
|
62
66
|
SandboxError: () => import_SandboxErrors.SandboxError,
|
|
67
|
+
SandboxFileNotFoundError: () => import_SandboxErrors.SandboxFileNotFoundError,
|
|
68
|
+
SandboxFileTooLargeError: () => import_SandboxErrors.SandboxFileTooLargeError,
|
|
69
|
+
SandboxNotAvailableError: () => import_SandboxErrors.SandboxNotAvailableError,
|
|
70
|
+
SandboxPathIsDirectoryError: () => import_SandboxErrors.SandboxPathIsDirectoryError,
|
|
63
71
|
SkillMounter: () => import_skills.SkillMounter,
|
|
64
72
|
TFYSandboxProvider: () => import_TFYSandboxProvider.TFYSandboxProvider,
|
|
65
73
|
TOOLS_SELECTOR_TAGS: () => import_toolSelectors.TOOLS_SELECTOR_TAGS,
|
|
@@ -79,7 +87,9 @@ __export(core_exports, {
|
|
|
79
87
|
contextCompaction: () => import_ContextCompaction.contextCompaction,
|
|
80
88
|
currentDateTime: () => import_CurrentDateTime.currentDateTime,
|
|
81
89
|
defineTool: () => import_LocalToolMCP.defineTool,
|
|
90
|
+
describeUnknownError: () => import_errorLogFields.describeUnknownError,
|
|
82
91
|
dynamicSubAgents: () => import_DynamicSubAgents.dynamicSubAgents,
|
|
92
|
+
ensureExecSuccess: () => import_Provider.ensureExecSuccess,
|
|
83
93
|
extractErrorLogFields: () => import_errorLogFields.extractErrorLogFields,
|
|
84
94
|
getSkillPath: () => import_skills.getSkillPath,
|
|
85
95
|
isAgentInputUserMessage: () => import_UserInputMessage.isAgentInputUserMessage,
|
|
@@ -90,6 +100,7 @@ __export(core_exports, {
|
|
|
90
100
|
newEventId: () => import_schema.newEventId,
|
|
91
101
|
openUI: () => import_OpenUI.openUI,
|
|
92
102
|
renderSkillPromptBody: () => import_skills.renderSkillPromptBody,
|
|
103
|
+
shellEscape: () => import_Provider.shellEscape,
|
|
93
104
|
toOpenAIResponseFormat: () => import_responseFormat.toOpenAIResponseFormat,
|
|
94
105
|
toolResultResponse: () => import_IMCPServer.toolResultResponse,
|
|
95
106
|
validateNoPathTraversal: () => import_SandboxErrors.validateNoPathTraversal,
|
|
@@ -121,7 +132,10 @@ var import_metrics = require("./runtime/metrics.js");
|
|
|
121
132
|
var import_errors = require("./errors.js");
|
|
122
133
|
var import_errorLogFields = require("./util/errorLogFields.js");
|
|
123
134
|
var import_promiseUtils = require("./util/promiseUtils.js");
|
|
135
|
+
var import_CodeModeDispatcher = require("./sandbox/codeMode/CodeModeDispatcher.js");
|
|
136
|
+
var import_types = require("./sandbox/codeMode/types.js");
|
|
124
137
|
var import_DaytonaProvider = require("./sandbox/provider/DaytonaProvider.js");
|
|
138
|
+
var import_Provider = require("./sandbox/provider/Provider.js");
|
|
125
139
|
var import_TFYSandboxProvider = require("./sandbox/provider/TFYSandboxProvider.js");
|
|
126
140
|
var import_Sandbox = require("./sandbox/Sandbox.js");
|
|
127
141
|
var import_SandboxErrors = require("./sandbox/SandboxErrors.js");
|
|
@@ -137,6 +151,10 @@ var import_skills = require("./sandbox/skills/index.js");
|
|
|
137
151
|
AgentThreadMetricsSchema,
|
|
138
152
|
AgentThreadOrchestrator,
|
|
139
153
|
ClientSideTool,
|
|
154
|
+
CodeModeDispatcher,
|
|
155
|
+
CodeModeErrorSourceSchema,
|
|
156
|
+
CodeModeReplySchema,
|
|
157
|
+
CodeModeRequestSchema,
|
|
140
158
|
CompletionUsageSchema,
|
|
141
159
|
DEFAULT_CONTEXT_COMPACTION_THRESHOLD_TOKENS,
|
|
142
160
|
DEFAULT_DISABLE_TOOLS,
|
|
@@ -170,6 +188,10 @@ var import_skills = require("./sandbox/skills/index.js");
|
|
|
170
188
|
Sandbox,
|
|
171
189
|
SandboxCreatedEventSchema,
|
|
172
190
|
SandboxError,
|
|
191
|
+
SandboxFileNotFoundError,
|
|
192
|
+
SandboxFileTooLargeError,
|
|
193
|
+
SandboxNotAvailableError,
|
|
194
|
+
SandboxPathIsDirectoryError,
|
|
173
195
|
SkillMounter,
|
|
174
196
|
TFYSandboxProvider,
|
|
175
197
|
TOOLS_SELECTOR_TAGS,
|
|
@@ -189,7 +211,9 @@ var import_skills = require("./sandbox/skills/index.js");
|
|
|
189
211
|
contextCompaction,
|
|
190
212
|
currentDateTime,
|
|
191
213
|
defineTool,
|
|
214
|
+
describeUnknownError,
|
|
192
215
|
dynamicSubAgents,
|
|
216
|
+
ensureExecSuccess,
|
|
193
217
|
extractErrorLogFields,
|
|
194
218
|
getSkillPath,
|
|
195
219
|
isAgentInputUserMessage,
|
|
@@ -200,6 +224,7 @@ var import_skills = require("./sandbox/skills/index.js");
|
|
|
200
224
|
newEventId,
|
|
201
225
|
openUI,
|
|
202
226
|
renderSkillPromptBody,
|
|
227
|
+
shellEscape,
|
|
203
228
|
toOpenAIResponseFormat,
|
|
204
229
|
toolResultResponse,
|
|
205
230
|
validateNoPathTraversal,
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/index.ts"],"sourcesContent":["/**\n * Public agent execution harness.\n * Intentional consumer-facing exports only (production API).\n */\n\n// Runtime\nexport type { AgentDefinition, ModelParams } from './runtime/AgentDefinition';\nexport { AgentThread } from './runtime/AgentThread';\nexport type {\n AgentInfo,\n AgentParent,\n AgentSendInput,\n AgentThreadAppendContext,\n AgentThreadCreateSubAgent,\n AgentThreadEvent,\n AgentThreadExecutionEvent,\n AgentThreadExecutionResult,\n SubAgentCompletionMarker,\n} from './runtime/AgentThread.types';\nexport { AgentThreadOrchestrator } from './runtime/AgentThreadOrchestrator';\nexport type { CreateDynamicSubAgentThread } from './runtime/CreateDynamicSubAgentThread';\nexport { isAgentInputUserMessage, isEmptyMessageContent, isFileContentPart } from './runtime/UserInputMessage';\nexport type { AgentInputUserMessage } from './runtime/UserInputMessage';\n\n// Capability contracts\nexport type { AgentCapability, CapabilityState, JsonValue } from './capabilities/AgentCapability';\nexport type {\n AgentContextProcessorOutput,\n AgentThreadExecutionContext,\n PostToolCallAgentContextProcessor,\n PreLLMEphemeralAgentContextProcessor,\n} from './capabilities/AgentContextProcessor';\n\n// Built-in factories\nexport { askUserQuestion } from './capabilities/builtins/AskUserQuestion';\nexport {\n DEFAULT_CONTEXT_COMPACTION_THRESHOLD_TOKENS,\n contextCompaction,\n} from './capabilities/builtins/ContextCompaction';\nexport { currentDateTime } from './capabilities/builtins/CurrentDateTime';\nexport { SUB_AGENT_IDENTITY, dynamicSubAgents } from './capabilities/builtins/DynamicSubAgents';\nexport {\n DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n largeToolResponse,\n} from './capabilities/builtins/LargeToolResponse';\nexport { openUI } from './capabilities/builtins/OpenUI';\n\n// MCP contracts\nexport type { ApprovalDecision } from './events/schema';\nexport { ClientSideTool } from './mcp/ClientSideTool';\nexport { isAuthRequired, toolResultResponse } from './mcp/IMCPServer';\nexport type {\n AgentToolSchema,\n AuthRequiredResponse,\n CallToolResponse,\n IToolSet,\n ListToolsResponse,\n MCPAuthRequired,\n ToolSource,\n} from './mcp/IMCPServer';\nexport { LocalToolMCP, defineTool } from './mcp/LocalToolMCP';\nexport type { ToolDefinition } from './mcp/LocalToolMCP';\n\n// Remote MCP server, split into a shared, policy-free connection (`RemoteMCP`) and a per-agent policy\n// wrapper (`ToolSet`). `RemoteMCP` connects itself from a `url` + `headers`; the networking helpers\n// live in the harness-internal `remoteMcpClient` module.\nexport { RemoteMCP } from './mcp/RemoteMCP';\nexport type { RemoteMcpHeaders, ResolveHeadersResult } from './mcp/RemoteMCP';\nexport type { RemoteMcpConnection, RemoteMcpTransportType } from './mcp/remoteMcpClient';\nexport type { ToolSelectorConfig } from './mcp/ToolSelectorPolicy';\nexport {\n DEFAULT_DISABLE_TOOLS,\n DEFAULT_ENABLE_TOOLS,\n DEFAULT_PRELOAD_TOOLS,\n DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS,\n REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS,\n TOOLS_SELECTOR_TAGS,\n} from './mcp/toolSelectors';\nexport { ToolSet } from './mcp/ToolSet';\n\n// LLM contracts\nexport type { AgentMetadata, ILLM, LLMCreateParams, LLMCreateParamsStreaming } from './llm/ILLM';\nexport { ResponseFormatSchema, toOpenAIResponseFormat } from './llm/responseFormat';\nexport type { ResponseFormat } from './llm/responseFormat';\nexport { SUPPORTED_REASONING_EFFORTS, VERCEL_AI_PROVIDER_NAMES, VercelAILLM } from './llm/VercelAILLM';\nexport type { VercelAILLMConfig, VercelAIProviderConfig, VercelAIProviderName } from './llm/VercelAILLM';\n\n// Event contracts\nexport {\n ActionRequiredEventSchema,\n AgentInputUserMessageSchema,\n EventIdSchema,\n EventType,\n MCPAuthRequiredEventSchema,\n MCPInitializeEventSchema,\n ModelMessageDeltaEventSchema,\n ModelMessageEventSchema,\n SandboxCreatedEventSchema,\n ThreadCreatedEventSchema,\n ThreadDoneEventSchema,\n ThreadOverwriteContextEventSchema,\n ToolApprovalRequiredEventSchema,\n ToolResponseEventSchema,\n ToolResponseRequiredEventSchema,\n UserToolApprovalMessageSchema,\n UserToolResponseMessageSchema,\n newEventId,\n} from './events/schema';\nexport type {\n AgentOutputEvent,\n MCPAuthRequiredEvent,\n MCPServerAuthInfo,\n MCPServerInitInfo,\n ThreadDoneEvent,\n ThreadOverwriteContextEvent,\n} from './events/schema';\nexport { CompletionUsageSchema } from './llm/LLMTypes';\nexport type { CompletionUsage } from './llm/LLMTypes';\nexport { InternalEventType } from './runtime/AgentThread.types';\nexport type { AgentThreadSendBatch, ContextMessage } from './runtime/AgentThread.types';\nexport { AgentThreadMetricsSchema } from './runtime/metrics';\nexport type { AgentThreadMetrics } from './runtime/metrics';\n\n// Tracing\nexport type {\n AgentExecutionTrace,\n AgentLocalToolTrace,\n AgentRemoteMcpToolTrace,\n AgentTracing,\n} from './tracing/AgentTracing';\n\n// Errors / utils\nexport { AgentHarnessError, McpConnectionError, McpDcrConfigurationError } from './errors';\nexport { extractErrorLogFields } from './util/errorLogFields';\nexport { PromiseTimeoutError, withTimeout } from './util/promiseUtils';\n\n// Sandbox (concrete implementation; provider details exported for composition)\nexport { DaytonaSandboxProvider } from './sandbox/provider/DaytonaProvider';\nexport type { DaytonaSandboxProviderOptions } from './sandbox/provider/DaytonaProvider';\nexport type {\n SandboxBuild,\n SandboxBuildMetadata,\n SandboxBuildStatus,\n SandboxExecParams,\n SandboxInit,\n SandboxProvider,\n} from './sandbox/provider/Provider';\nexport { TFYSandboxProvider } from './sandbox/provider/TFYSandboxProvider';\nexport { SKILL_DOWNLOAD_TIMEOUT_SECONDS, Sandbox, buildWriteAndRunScriptCommand } from './sandbox/Sandbox';\nexport type { SandboxInfo } from './sandbox/Sandbox';\nexport {
|
|
1
|
+
{"version":3,"sources":["../../src/core/index.ts"],"sourcesContent":["/**\n * Public agent execution harness.\n * Intentional consumer-facing exports only (production API).\n */\n\n// Runtime\nexport type { AgentDefinition, ModelParams } from './runtime/AgentDefinition';\nexport { AgentThread } from './runtime/AgentThread';\nexport type {\n AgentInfo,\n AgentParent,\n AgentSendInput,\n AgentThreadAppendContext,\n AgentThreadCreateSubAgent,\n AgentThreadEvent,\n AgentThreadExecutionEvent,\n AgentThreadExecutionResult,\n SubAgentCompletionMarker,\n} from './runtime/AgentThread.types';\nexport { AgentThreadOrchestrator } from './runtime/AgentThreadOrchestrator';\nexport type { CreateDynamicSubAgentThread } from './runtime/CreateDynamicSubAgentThread';\nexport { isAgentInputUserMessage, isEmptyMessageContent, isFileContentPart } from './runtime/UserInputMessage';\nexport type { AgentInputUserMessage } from './runtime/UserInputMessage';\n\n// Capability contracts\nexport type { AgentCapability, CapabilityState, JsonValue } from './capabilities/AgentCapability';\nexport type {\n AgentContextProcessorOutput,\n AgentThreadExecutionContext,\n PostToolCallAgentContextProcessor,\n PreLLMEphemeralAgentContextProcessor,\n} from './capabilities/AgentContextProcessor';\n\n// Built-in factories\nexport { askUserQuestion } from './capabilities/builtins/AskUserQuestion';\nexport {\n DEFAULT_CONTEXT_COMPACTION_THRESHOLD_TOKENS,\n contextCompaction,\n} from './capabilities/builtins/ContextCompaction';\nexport { currentDateTime } from './capabilities/builtins/CurrentDateTime';\nexport { SUB_AGENT_IDENTITY, dynamicSubAgents } from './capabilities/builtins/DynamicSubAgents';\nexport {\n DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n largeToolResponse,\n} from './capabilities/builtins/LargeToolResponse';\nexport { openUI } from './capabilities/builtins/OpenUI';\n\n// MCP contracts\nexport type { ApprovalDecision } from './events/schema';\nexport { ClientSideTool } from './mcp/ClientSideTool';\nexport { isAuthRequired, toolResultResponse } from './mcp/IMCPServer';\nexport type {\n AgentToolSchema,\n AuthRequiredResponse,\n CallToolResponse,\n IToolSet,\n ListToolsResponse,\n MCPAuthRequired,\n ToolSource,\n} from './mcp/IMCPServer';\nexport { LocalToolMCP, defineTool } from './mcp/LocalToolMCP';\nexport type { ToolDefinition } from './mcp/LocalToolMCP';\n\n// Remote MCP server, split into a shared, policy-free connection (`RemoteMCP`) and a per-agent policy\n// wrapper (`ToolSet`). `RemoteMCP` connects itself from a `url` + `headers`; the networking helpers\n// live in the harness-internal `remoteMcpClient` module.\nexport { RemoteMCP } from './mcp/RemoteMCP';\nexport type { RemoteMcpHeaders, ResolveHeadersResult } from './mcp/RemoteMCP';\nexport type { RemoteMcpConnection, RemoteMcpTransportType } from './mcp/remoteMcpClient';\nexport type { ToolSelectorConfig } from './mcp/ToolSelectorPolicy';\nexport {\n DEFAULT_DISABLE_TOOLS,\n DEFAULT_ENABLE_TOOLS,\n DEFAULT_PRELOAD_TOOLS,\n DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS,\n REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS,\n TOOLS_SELECTOR_TAGS,\n} from './mcp/toolSelectors';\nexport { ToolSet } from './mcp/ToolSet';\n\n// LLM contracts\nexport type { AgentMetadata, ILLM, LLMCreateParams, LLMCreateParamsStreaming } from './llm/ILLM';\nexport { ResponseFormatSchema, toOpenAIResponseFormat } from './llm/responseFormat';\nexport type { ResponseFormat } from './llm/responseFormat';\nexport { SUPPORTED_REASONING_EFFORTS, VERCEL_AI_PROVIDER_NAMES, VercelAILLM } from './llm/VercelAILLM';\nexport type { VercelAILLMConfig, VercelAIProviderConfig, VercelAIProviderName } from './llm/VercelAILLM';\n\n// Event contracts\nexport {\n ActionRequiredEventSchema,\n AgentInputUserMessageSchema,\n EventIdSchema,\n EventType,\n MCPAuthRequiredEventSchema,\n MCPInitializeEventSchema,\n ModelMessageDeltaEventSchema,\n ModelMessageEventSchema,\n SandboxCreatedEventSchema,\n ThreadCreatedEventSchema,\n ThreadDoneEventSchema,\n ThreadOverwriteContextEventSchema,\n ToolApprovalRequiredEventSchema,\n ToolResponseEventSchema,\n ToolResponseRequiredEventSchema,\n UserToolApprovalMessageSchema,\n UserToolResponseMessageSchema,\n newEventId,\n} from './events/schema';\nexport type {\n AgentOutputEvent,\n MCPAuthRequiredEvent,\n MCPServerAuthInfo,\n MCPServerInitInfo,\n ThreadDoneEvent,\n ThreadOverwriteContextEvent,\n} from './events/schema';\nexport { CompletionUsageSchema } from './llm/LLMTypes';\nexport type { CompletionUsage } from './llm/LLMTypes';\nexport { InternalEventType } from './runtime/AgentThread.types';\nexport type { AgentThreadSendBatch, ContextMessage } from './runtime/AgentThread.types';\nexport { AgentThreadMetricsSchema } from './runtime/metrics';\nexport type { AgentThreadMetrics } from './runtime/metrics';\n\n// Tracing\nexport type {\n AgentExecutionTrace,\n AgentLocalToolTrace,\n AgentRemoteMcpToolTrace,\n AgentTracing,\n} from './tracing/AgentTracing';\n\n// Errors / utils\nexport { AgentHarnessError, McpConnectionError, McpDcrConfigurationError } from './errors';\nexport { describeUnknownError, extractErrorLogFields } from './util/errorLogFields';\nexport { PromiseTimeoutError, withTimeout } from './util/promiseUtils';\n\n// Sandbox (concrete implementation; provider details exported for composition)\nexport { CodeModeDispatcher } from './sandbox/codeMode/CodeModeDispatcher';\nexport type { CodeModeLogger } from './sandbox/codeMode/CodeModeDispatcher';\nexport type { CodeModeTransport } from './sandbox/codeMode/CodeModeTransport';\nexport { CodeModeErrorSourceSchema, CodeModeReplySchema, CodeModeRequestSchema } from './sandbox/codeMode/types';\nexport type { CodeModeErrorSource, CodeModeReply, CodeModeRequest } from './sandbox/codeMode/types';\nexport { DaytonaSandboxProvider } from './sandbox/provider/DaytonaProvider';\nexport type { DaytonaSandboxProviderOptions } from './sandbox/provider/DaytonaProvider';\nexport { ensureExecSuccess, shellEscape } from './sandbox/provider/Provider';\nexport type {\n ExecErrorResult,\n ExecResult,\n ExecSuccessResult,\n SandboxBuild,\n SandboxBuildMetadata,\n SandboxBuildStatus,\n SandboxExecParams,\n SandboxInit,\n SandboxProvider,\n} from './sandbox/provider/Provider';\nexport { TFYSandboxProvider } from './sandbox/provider/TFYSandboxProvider';\nexport { SKILL_DOWNLOAD_TIMEOUT_SECONDS, Sandbox, buildWriteAndRunScriptCommand } from './sandbox/Sandbox';\nexport type { SandboxInfo } from './sandbox/Sandbox';\nexport {\n SandboxError,\n SandboxFileNotFoundError,\n SandboxFileTooLargeError,\n SandboxNotAvailableError,\n SandboxPathIsDirectoryError,\n validateNoPathTraversal,\n validateSandboxOwnedByTenant,\n} from './sandbox/SandboxErrors';\nexport { SANDBOX_IMAGE_URI } from './sandbox/sandboxImage';\n\n// Skills: the ISkillMounter seam lets hosts plug in their own skill sources\nexport { InstructionBuilder } from './InstructionBuilder';\nexport { SKILLS_PREAMBLE, SkillMounter, getSkillPath, renderSkillPromptBody } from './sandbox/skills';\nexport type { GitSkill, ISkillMounter } from './sandbox/skills';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,yBAA4B;AAY5B,qCAAwC;AAExC,8BAAkF;AAalF,6BAAgC;AAChC,+BAGO;AACP,6BAAgC;AAChC,8BAAqD;AACrD,+BAKO;AACP,oBAAuB;AAIvB,4BAA+B;AAC/B,wBAAmD;AAUnD,0BAAyC;AAMzC,uBAA0B;AAI1B,2BAOO;AACP,qBAAwB;AAIxB,4BAA6D;AAE7D,yBAAmF;AAInF,oBAmBO;AASP,sBAAsC;AAEtC,IAAAA,sBAAkC;AAElC,qBAAyC;AAYzC,oBAAgF;AAChF,4BAA4D;AAC5D,0BAAiD;AAGjD,gCAAmC;AAGnC,mBAAsF;AAEtF,6BAAuC;AAEvC,sBAA+C;AAY/C,gCAAmC;AACnC,qBAAuF;AAEvF,2BAQO;AACP,0BAAkC;AAGlC,gCAAmC;AACnC,oBAAmF;","names":["import_AgentThread"]}
|
package/dist/core/index.mjs
CHANGED
|
@@ -55,12 +55,23 @@ import { CompletionUsageSchema } from "./llm/LLMTypes.mjs";
|
|
|
55
55
|
import { InternalEventType } from "./runtime/AgentThread.types.mjs";
|
|
56
56
|
import { AgentThreadMetricsSchema } from "./runtime/metrics.mjs";
|
|
57
57
|
import { AgentHarnessError, McpConnectionError, McpDcrConfigurationError } from "./errors.mjs";
|
|
58
|
-
import { extractErrorLogFields } from "./util/errorLogFields.mjs";
|
|
58
|
+
import { describeUnknownError, extractErrorLogFields } from "./util/errorLogFields.mjs";
|
|
59
59
|
import { PromiseTimeoutError, withTimeout } from "./util/promiseUtils.mjs";
|
|
60
|
+
import { CodeModeDispatcher } from "./sandbox/codeMode/CodeModeDispatcher.mjs";
|
|
61
|
+
import { CodeModeErrorSourceSchema, CodeModeReplySchema, CodeModeRequestSchema } from "./sandbox/codeMode/types.mjs";
|
|
60
62
|
import { DaytonaSandboxProvider } from "./sandbox/provider/DaytonaProvider.mjs";
|
|
63
|
+
import { ensureExecSuccess, shellEscape } from "./sandbox/provider/Provider.mjs";
|
|
61
64
|
import { TFYSandboxProvider } from "./sandbox/provider/TFYSandboxProvider.mjs";
|
|
62
65
|
import { SKILL_DOWNLOAD_TIMEOUT_SECONDS, Sandbox, buildWriteAndRunScriptCommand } from "./sandbox/Sandbox.mjs";
|
|
63
|
-
import {
|
|
66
|
+
import {
|
|
67
|
+
SandboxError,
|
|
68
|
+
SandboxFileNotFoundError,
|
|
69
|
+
SandboxFileTooLargeError,
|
|
70
|
+
SandboxNotAvailableError,
|
|
71
|
+
SandboxPathIsDirectoryError,
|
|
72
|
+
validateNoPathTraversal,
|
|
73
|
+
validateSandboxOwnedByTenant
|
|
74
|
+
} from "./sandbox/SandboxErrors.mjs";
|
|
64
75
|
import { SANDBOX_IMAGE_URI } from "./sandbox/sandboxImage.mjs";
|
|
65
76
|
import { InstructionBuilder } from "./InstructionBuilder.mjs";
|
|
66
77
|
import { SKILLS_PREAMBLE, SkillMounter, getSkillPath, renderSkillPromptBody } from "./sandbox/skills/index.mjs";
|
|
@@ -72,6 +83,10 @@ export {
|
|
|
72
83
|
AgentThreadMetricsSchema,
|
|
73
84
|
AgentThreadOrchestrator,
|
|
74
85
|
ClientSideTool,
|
|
86
|
+
CodeModeDispatcher,
|
|
87
|
+
CodeModeErrorSourceSchema,
|
|
88
|
+
CodeModeReplySchema,
|
|
89
|
+
CodeModeRequestSchema,
|
|
75
90
|
CompletionUsageSchema,
|
|
76
91
|
DEFAULT_CONTEXT_COMPACTION_THRESHOLD_TOKENS,
|
|
77
92
|
DEFAULT_DISABLE_TOOLS,
|
|
@@ -105,6 +120,10 @@ export {
|
|
|
105
120
|
Sandbox,
|
|
106
121
|
SandboxCreatedEventSchema,
|
|
107
122
|
SandboxError,
|
|
123
|
+
SandboxFileNotFoundError,
|
|
124
|
+
SandboxFileTooLargeError,
|
|
125
|
+
SandboxNotAvailableError,
|
|
126
|
+
SandboxPathIsDirectoryError,
|
|
108
127
|
SkillMounter,
|
|
109
128
|
TFYSandboxProvider,
|
|
110
129
|
TOOLS_SELECTOR_TAGS,
|
|
@@ -124,7 +143,9 @@ export {
|
|
|
124
143
|
contextCompaction,
|
|
125
144
|
currentDateTime,
|
|
126
145
|
defineTool,
|
|
146
|
+
describeUnknownError,
|
|
127
147
|
dynamicSubAgents,
|
|
148
|
+
ensureExecSuccess,
|
|
128
149
|
extractErrorLogFields,
|
|
129
150
|
getSkillPath,
|
|
130
151
|
isAgentInputUserMessage,
|
|
@@ -135,6 +156,7 @@ export {
|
|
|
135
156
|
newEventId,
|
|
136
157
|
openUI,
|
|
137
158
|
renderSkillPromptBody,
|
|
159
|
+
shellEscape,
|
|
138
160
|
toOpenAIResponseFormat,
|
|
139
161
|
toolResultResponse,
|
|
140
162
|
validateNoPathTraversal,
|
package/dist/core/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/index.ts"],"sourcesContent":["/**\n * Public agent execution harness.\n * Intentional consumer-facing exports only (production API).\n */\n\n// Runtime\nexport type { AgentDefinition, ModelParams } from './runtime/AgentDefinition';\nexport { AgentThread } from './runtime/AgentThread';\nexport type {\n AgentInfo,\n AgentParent,\n AgentSendInput,\n AgentThreadAppendContext,\n AgentThreadCreateSubAgent,\n AgentThreadEvent,\n AgentThreadExecutionEvent,\n AgentThreadExecutionResult,\n SubAgentCompletionMarker,\n} from './runtime/AgentThread.types';\nexport { AgentThreadOrchestrator } from './runtime/AgentThreadOrchestrator';\nexport type { CreateDynamicSubAgentThread } from './runtime/CreateDynamicSubAgentThread';\nexport { isAgentInputUserMessage, isEmptyMessageContent, isFileContentPart } from './runtime/UserInputMessage';\nexport type { AgentInputUserMessage } from './runtime/UserInputMessage';\n\n// Capability contracts\nexport type { AgentCapability, CapabilityState, JsonValue } from './capabilities/AgentCapability';\nexport type {\n AgentContextProcessorOutput,\n AgentThreadExecutionContext,\n PostToolCallAgentContextProcessor,\n PreLLMEphemeralAgentContextProcessor,\n} from './capabilities/AgentContextProcessor';\n\n// Built-in factories\nexport { askUserQuestion } from './capabilities/builtins/AskUserQuestion';\nexport {\n DEFAULT_CONTEXT_COMPACTION_THRESHOLD_TOKENS,\n contextCompaction,\n} from './capabilities/builtins/ContextCompaction';\nexport { currentDateTime } from './capabilities/builtins/CurrentDateTime';\nexport { SUB_AGENT_IDENTITY, dynamicSubAgents } from './capabilities/builtins/DynamicSubAgents';\nexport {\n DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n largeToolResponse,\n} from './capabilities/builtins/LargeToolResponse';\nexport { openUI } from './capabilities/builtins/OpenUI';\n\n// MCP contracts\nexport type { ApprovalDecision } from './events/schema';\nexport { ClientSideTool } from './mcp/ClientSideTool';\nexport { isAuthRequired, toolResultResponse } from './mcp/IMCPServer';\nexport type {\n AgentToolSchema,\n AuthRequiredResponse,\n CallToolResponse,\n IToolSet,\n ListToolsResponse,\n MCPAuthRequired,\n ToolSource,\n} from './mcp/IMCPServer';\nexport { LocalToolMCP, defineTool } from './mcp/LocalToolMCP';\nexport type { ToolDefinition } from './mcp/LocalToolMCP';\n\n// Remote MCP server, split into a shared, policy-free connection (`RemoteMCP`) and a per-agent policy\n// wrapper (`ToolSet`). `RemoteMCP` connects itself from a `url` + `headers`; the networking helpers\n// live in the harness-internal `remoteMcpClient` module.\nexport { RemoteMCP } from './mcp/RemoteMCP';\nexport type { RemoteMcpHeaders, ResolveHeadersResult } from './mcp/RemoteMCP';\nexport type { RemoteMcpConnection, RemoteMcpTransportType } from './mcp/remoteMcpClient';\nexport type { ToolSelectorConfig } from './mcp/ToolSelectorPolicy';\nexport {\n DEFAULT_DISABLE_TOOLS,\n DEFAULT_ENABLE_TOOLS,\n DEFAULT_PRELOAD_TOOLS,\n DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS,\n REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS,\n TOOLS_SELECTOR_TAGS,\n} from './mcp/toolSelectors';\nexport { ToolSet } from './mcp/ToolSet';\n\n// LLM contracts\nexport type { AgentMetadata, ILLM, LLMCreateParams, LLMCreateParamsStreaming } from './llm/ILLM';\nexport { ResponseFormatSchema, toOpenAIResponseFormat } from './llm/responseFormat';\nexport type { ResponseFormat } from './llm/responseFormat';\nexport { SUPPORTED_REASONING_EFFORTS, VERCEL_AI_PROVIDER_NAMES, VercelAILLM } from './llm/VercelAILLM';\nexport type { VercelAILLMConfig, VercelAIProviderConfig, VercelAIProviderName } from './llm/VercelAILLM';\n\n// Event contracts\nexport {\n ActionRequiredEventSchema,\n AgentInputUserMessageSchema,\n EventIdSchema,\n EventType,\n MCPAuthRequiredEventSchema,\n MCPInitializeEventSchema,\n ModelMessageDeltaEventSchema,\n ModelMessageEventSchema,\n SandboxCreatedEventSchema,\n ThreadCreatedEventSchema,\n ThreadDoneEventSchema,\n ThreadOverwriteContextEventSchema,\n ToolApprovalRequiredEventSchema,\n ToolResponseEventSchema,\n ToolResponseRequiredEventSchema,\n UserToolApprovalMessageSchema,\n UserToolResponseMessageSchema,\n newEventId,\n} from './events/schema';\nexport type {\n AgentOutputEvent,\n MCPAuthRequiredEvent,\n MCPServerAuthInfo,\n MCPServerInitInfo,\n ThreadDoneEvent,\n ThreadOverwriteContextEvent,\n} from './events/schema';\nexport { CompletionUsageSchema } from './llm/LLMTypes';\nexport type { CompletionUsage } from './llm/LLMTypes';\nexport { InternalEventType } from './runtime/AgentThread.types';\nexport type { AgentThreadSendBatch, ContextMessage } from './runtime/AgentThread.types';\nexport { AgentThreadMetricsSchema } from './runtime/metrics';\nexport type { AgentThreadMetrics } from './runtime/metrics';\n\n// Tracing\nexport type {\n AgentExecutionTrace,\n AgentLocalToolTrace,\n AgentRemoteMcpToolTrace,\n AgentTracing,\n} from './tracing/AgentTracing';\n\n// Errors / utils\nexport { AgentHarnessError, McpConnectionError, McpDcrConfigurationError } from './errors';\nexport { extractErrorLogFields } from './util/errorLogFields';\nexport { PromiseTimeoutError, withTimeout } from './util/promiseUtils';\n\n// Sandbox (concrete implementation; provider details exported for composition)\nexport { DaytonaSandboxProvider } from './sandbox/provider/DaytonaProvider';\nexport type { DaytonaSandboxProviderOptions } from './sandbox/provider/DaytonaProvider';\nexport type {\n SandboxBuild,\n SandboxBuildMetadata,\n SandboxBuildStatus,\n SandboxExecParams,\n SandboxInit,\n SandboxProvider,\n} from './sandbox/provider/Provider';\nexport { TFYSandboxProvider } from './sandbox/provider/TFYSandboxProvider';\nexport { SKILL_DOWNLOAD_TIMEOUT_SECONDS, Sandbox, buildWriteAndRunScriptCommand } from './sandbox/Sandbox';\nexport type { SandboxInfo } from './sandbox/Sandbox';\nexport {
|
|
1
|
+
{"version":3,"sources":["../../src/core/index.ts"],"sourcesContent":["/**\n * Public agent execution harness.\n * Intentional consumer-facing exports only (production API).\n */\n\n// Runtime\nexport type { AgentDefinition, ModelParams } from './runtime/AgentDefinition';\nexport { AgentThread } from './runtime/AgentThread';\nexport type {\n AgentInfo,\n AgentParent,\n AgentSendInput,\n AgentThreadAppendContext,\n AgentThreadCreateSubAgent,\n AgentThreadEvent,\n AgentThreadExecutionEvent,\n AgentThreadExecutionResult,\n SubAgentCompletionMarker,\n} from './runtime/AgentThread.types';\nexport { AgentThreadOrchestrator } from './runtime/AgentThreadOrchestrator';\nexport type { CreateDynamicSubAgentThread } from './runtime/CreateDynamicSubAgentThread';\nexport { isAgentInputUserMessage, isEmptyMessageContent, isFileContentPart } from './runtime/UserInputMessage';\nexport type { AgentInputUserMessage } from './runtime/UserInputMessage';\n\n// Capability contracts\nexport type { AgentCapability, CapabilityState, JsonValue } from './capabilities/AgentCapability';\nexport type {\n AgentContextProcessorOutput,\n AgentThreadExecutionContext,\n PostToolCallAgentContextProcessor,\n PreLLMEphemeralAgentContextProcessor,\n} from './capabilities/AgentContextProcessor';\n\n// Built-in factories\nexport { askUserQuestion } from './capabilities/builtins/AskUserQuestion';\nexport {\n DEFAULT_CONTEXT_COMPACTION_THRESHOLD_TOKENS,\n contextCompaction,\n} from './capabilities/builtins/ContextCompaction';\nexport { currentDateTime } from './capabilities/builtins/CurrentDateTime';\nexport { SUB_AGENT_IDENTITY, dynamicSubAgents } from './capabilities/builtins/DynamicSubAgents';\nexport {\n DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n largeToolResponse,\n} from './capabilities/builtins/LargeToolResponse';\nexport { openUI } from './capabilities/builtins/OpenUI';\n\n// MCP contracts\nexport type { ApprovalDecision } from './events/schema';\nexport { ClientSideTool } from './mcp/ClientSideTool';\nexport { isAuthRequired, toolResultResponse } from './mcp/IMCPServer';\nexport type {\n AgentToolSchema,\n AuthRequiredResponse,\n CallToolResponse,\n IToolSet,\n ListToolsResponse,\n MCPAuthRequired,\n ToolSource,\n} from './mcp/IMCPServer';\nexport { LocalToolMCP, defineTool } from './mcp/LocalToolMCP';\nexport type { ToolDefinition } from './mcp/LocalToolMCP';\n\n// Remote MCP server, split into a shared, policy-free connection (`RemoteMCP`) and a per-agent policy\n// wrapper (`ToolSet`). `RemoteMCP` connects itself from a `url` + `headers`; the networking helpers\n// live in the harness-internal `remoteMcpClient` module.\nexport { RemoteMCP } from './mcp/RemoteMCP';\nexport type { RemoteMcpHeaders, ResolveHeadersResult } from './mcp/RemoteMCP';\nexport type { RemoteMcpConnection, RemoteMcpTransportType } from './mcp/remoteMcpClient';\nexport type { ToolSelectorConfig } from './mcp/ToolSelectorPolicy';\nexport {\n DEFAULT_DISABLE_TOOLS,\n DEFAULT_ENABLE_TOOLS,\n DEFAULT_PRELOAD_TOOLS,\n DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS,\n REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS,\n TOOLS_SELECTOR_TAGS,\n} from './mcp/toolSelectors';\nexport { ToolSet } from './mcp/ToolSet';\n\n// LLM contracts\nexport type { AgentMetadata, ILLM, LLMCreateParams, LLMCreateParamsStreaming } from './llm/ILLM';\nexport { ResponseFormatSchema, toOpenAIResponseFormat } from './llm/responseFormat';\nexport type { ResponseFormat } from './llm/responseFormat';\nexport { SUPPORTED_REASONING_EFFORTS, VERCEL_AI_PROVIDER_NAMES, VercelAILLM } from './llm/VercelAILLM';\nexport type { VercelAILLMConfig, VercelAIProviderConfig, VercelAIProviderName } from './llm/VercelAILLM';\n\n// Event contracts\nexport {\n ActionRequiredEventSchema,\n AgentInputUserMessageSchema,\n EventIdSchema,\n EventType,\n MCPAuthRequiredEventSchema,\n MCPInitializeEventSchema,\n ModelMessageDeltaEventSchema,\n ModelMessageEventSchema,\n SandboxCreatedEventSchema,\n ThreadCreatedEventSchema,\n ThreadDoneEventSchema,\n ThreadOverwriteContextEventSchema,\n ToolApprovalRequiredEventSchema,\n ToolResponseEventSchema,\n ToolResponseRequiredEventSchema,\n UserToolApprovalMessageSchema,\n UserToolResponseMessageSchema,\n newEventId,\n} from './events/schema';\nexport type {\n AgentOutputEvent,\n MCPAuthRequiredEvent,\n MCPServerAuthInfo,\n MCPServerInitInfo,\n ThreadDoneEvent,\n ThreadOverwriteContextEvent,\n} from './events/schema';\nexport { CompletionUsageSchema } from './llm/LLMTypes';\nexport type { CompletionUsage } from './llm/LLMTypes';\nexport { InternalEventType } from './runtime/AgentThread.types';\nexport type { AgentThreadSendBatch, ContextMessage } from './runtime/AgentThread.types';\nexport { AgentThreadMetricsSchema } from './runtime/metrics';\nexport type { AgentThreadMetrics } from './runtime/metrics';\n\n// Tracing\nexport type {\n AgentExecutionTrace,\n AgentLocalToolTrace,\n AgentRemoteMcpToolTrace,\n AgentTracing,\n} from './tracing/AgentTracing';\n\n// Errors / utils\nexport { AgentHarnessError, McpConnectionError, McpDcrConfigurationError } from './errors';\nexport { describeUnknownError, extractErrorLogFields } from './util/errorLogFields';\nexport { PromiseTimeoutError, withTimeout } from './util/promiseUtils';\n\n// Sandbox (concrete implementation; provider details exported for composition)\nexport { CodeModeDispatcher } from './sandbox/codeMode/CodeModeDispatcher';\nexport type { CodeModeLogger } from './sandbox/codeMode/CodeModeDispatcher';\nexport type { CodeModeTransport } from './sandbox/codeMode/CodeModeTransport';\nexport { CodeModeErrorSourceSchema, CodeModeReplySchema, CodeModeRequestSchema } from './sandbox/codeMode/types';\nexport type { CodeModeErrorSource, CodeModeReply, CodeModeRequest } from './sandbox/codeMode/types';\nexport { DaytonaSandboxProvider } from './sandbox/provider/DaytonaProvider';\nexport type { DaytonaSandboxProviderOptions } from './sandbox/provider/DaytonaProvider';\nexport { ensureExecSuccess, shellEscape } from './sandbox/provider/Provider';\nexport type {\n ExecErrorResult,\n ExecResult,\n ExecSuccessResult,\n SandboxBuild,\n SandboxBuildMetadata,\n SandboxBuildStatus,\n SandboxExecParams,\n SandboxInit,\n SandboxProvider,\n} from './sandbox/provider/Provider';\nexport { TFYSandboxProvider } from './sandbox/provider/TFYSandboxProvider';\nexport { SKILL_DOWNLOAD_TIMEOUT_SECONDS, Sandbox, buildWriteAndRunScriptCommand } from './sandbox/Sandbox';\nexport type { SandboxInfo } from './sandbox/Sandbox';\nexport {\n SandboxError,\n SandboxFileNotFoundError,\n SandboxFileTooLargeError,\n SandboxNotAvailableError,\n SandboxPathIsDirectoryError,\n validateNoPathTraversal,\n validateSandboxOwnedByTenant,\n} from './sandbox/SandboxErrors';\nexport { SANDBOX_IMAGE_URI } from './sandbox/sandboxImage';\n\n// Skills: the ISkillMounter seam lets hosts plug in their own skill sources\nexport { InstructionBuilder } from './InstructionBuilder';\nexport { SKILLS_PREAMBLE, SkillMounter, getSkillPath, renderSkillPromptBody } from './sandbox/skills';\nexport type { GitSkill, ISkillMounter } from './sandbox/skills';\n"],"mappings":";AAOA,SAAS,mBAAmB;AAY5B,SAAS,+BAA+B;AAExC,SAAS,yBAAyB,uBAAuB,yBAAyB;AAalF,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,uBAAuB;AAChC,SAAS,oBAAoB,wBAAwB;AACrD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AAIvB,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB,0BAA0B;AAUnD,SAAS,cAAc,kBAAkB;AAMzC,SAAS,iBAAiB;AAI1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,eAAe;AAIxB,SAAS,sBAAsB,8BAA8B;AAE7D,SAAS,6BAA6B,0BAA0B,mBAAmB;AAInF;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAS,6BAA6B;AAEtC,SAAS,yBAAyB;AAElC,SAAS,gCAAgC;AAYzC,SAAS,mBAAmB,oBAAoB,gCAAgC;AAChF,SAAS,sBAAsB,6BAA6B;AAC5D,SAAS,qBAAqB,mBAAmB;AAGjD,SAAS,0BAA0B;AAGnC,SAAS,2BAA2B,qBAAqB,6BAA6B;AAEtF,SAAS,8BAA8B;AAEvC,SAAS,mBAAmB,mBAAmB;AAY/C,SAAS,0BAA0B;AACnC,SAAS,gCAAgC,SAAS,qCAAqC;AAEvF;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,yBAAyB;AAGlC,SAAS,0BAA0B;AACnC,SAAS,iBAAiB,cAAc,cAAc,6BAA6B;","names":[]}
|
|
@@ -195,6 +195,7 @@ export declare function normalizeUsage(usage: {
|
|
|
195
195
|
* `APICallError`) — plain objects would otherwise stringify to "[object Object]".
|
|
196
196
|
*/
|
|
197
197
|
export declare function describeStreamError(raw: unknown): string;
|
|
198
|
+
export declare function toStreamError(raw: unknown): Error;
|
|
198
199
|
export declare function mapFinishReason(reason: FinishReason): RawAssistantMessageWithUsage['finish_reason'];
|
|
199
200
|
/**
|
|
200
201
|
* Where the SDK reports what it changed about our request: an effort a model cannot honour and so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VercelAILLM.d.ts","sourceRoot":"","sources":["../../../src/core/llm/VercelAILLM.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VercelAILLM.d.ts","sourceRoot":"","sources":["../../../src/core/llm/VercelAILLM.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ __export(VercelAILLM_exports, {
|
|
|
39
39
|
toAssistantModelMessage: () => toAssistantModelMessage,
|
|
40
40
|
toFilePart: () => toFilePart,
|
|
41
41
|
toReasoningLevel: () => toReasoningLevel,
|
|
42
|
+
toStreamError: () => toStreamError,
|
|
42
43
|
toStructuredOutputSpec: () => toStructuredOutputSpec,
|
|
43
44
|
toUserContent: () => toUserContent
|
|
44
45
|
});
|
|
@@ -370,7 +371,9 @@ function parseMimeFromDataUri(uri) {
|
|
|
370
371
|
}
|
|
371
372
|
function toFilePart(file) {
|
|
372
373
|
const { file_data, filename } = file;
|
|
373
|
-
if (!file_data)
|
|
374
|
+
if (!file_data) {
|
|
375
|
+
return void 0;
|
|
376
|
+
}
|
|
374
377
|
const mediaType = parseMimeFromDataUri(file_data) ?? "application/octet-stream";
|
|
375
378
|
return {
|
|
376
379
|
type: "file",
|
|
@@ -632,18 +635,13 @@ function describeStreamError(raw) {
|
|
|
632
635
|
}
|
|
633
636
|
return raw.message;
|
|
634
637
|
}
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
return message;
|
|
641
|
-
}
|
|
642
|
-
try {
|
|
643
|
-
return JSON.stringify(raw);
|
|
644
|
-
} catch {
|
|
645
|
-
return `unserialisable provider error (${Object.keys(raw).join(", ")})`;
|
|
638
|
+
return (0, import_errorLogFields.describeUnknownError)(raw);
|
|
639
|
+
}
|
|
640
|
+
function toStreamError(raw) {
|
|
641
|
+
if (raw instanceof Error) {
|
|
642
|
+
return raw;
|
|
646
643
|
}
|
|
644
|
+
return new Error(describeStreamError(raw), { cause: raw });
|
|
647
645
|
}
|
|
648
646
|
function mapFinishReason(reason) {
|
|
649
647
|
switch (reason) {
|
|
@@ -973,7 +971,7 @@ var VercelAILLM = class {
|
|
|
973
971
|
} else {
|
|
974
972
|
this.logger.error("Error creating streaming chat completion", (0, import_errorLogFields.extractErrorLogFields)(error));
|
|
975
973
|
}
|
|
976
|
-
throw error;
|
|
974
|
+
throw toStreamError(error);
|
|
977
975
|
}
|
|
978
976
|
void streamResult.warnings.then(
|
|
979
977
|
(warnings) => {
|
|
@@ -1003,7 +1001,7 @@ var VercelAILLM = class {
|
|
|
1003
1001
|
} else {
|
|
1004
1002
|
this.logger.error("Error reading LLM stream", (0, import_errorLogFields.extractErrorLogFields)(error));
|
|
1005
1003
|
}
|
|
1006
|
-
throw error;
|
|
1004
|
+
throw toStreamError(error);
|
|
1007
1005
|
}
|
|
1008
1006
|
}
|
|
1009
1007
|
async createNonStream(body) {
|
|
@@ -1036,6 +1034,7 @@ var VercelAILLM = class {
|
|
|
1036
1034
|
toAssistantModelMessage,
|
|
1037
1035
|
toFilePart,
|
|
1038
1036
|
toReasoningLevel,
|
|
1037
|
+
toStreamError,
|
|
1039
1038
|
toStructuredOutputSpec,
|
|
1040
1039
|
toUserContent
|
|
1041
1040
|
});
|