@truefoundry/trueforge-core 0.0.0 → 0.1.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/agent-session/ITurnResourceResolver.d.ts +69 -0
- package/dist/agent-session/ITurnResourceResolver.d.ts.map +1 -0
- package/dist/agent-session/ITurnResourceResolver.js +19 -0
- package/dist/agent-session/ITurnResourceResolver.js.map +1 -0
- package/dist/agent-session/ITurnResourceResolver.mjs +1 -0
- package/dist/agent-session/ITurnResourceResolver.mjs.map +1 -0
- package/dist/agent-session/SessionHandle.d.ts +81 -0
- package/dist/agent-session/SessionHandle.d.ts.map +1 -0
- package/dist/agent-session/SessionHandle.js +392 -0
- package/dist/agent-session/SessionHandle.js.map +1 -0
- package/dist/agent-session/SessionHandle.mjs +371 -0
- package/dist/agent-session/SessionHandle.mjs.map +1 -0
- package/dist/agent-session/Sessions.d.ts +25 -0
- package/dist/agent-session/Sessions.d.ts.map +1 -0
- package/dist/agent-session/Sessions.js +71 -0
- package/dist/agent-session/Sessions.js.map +1 -0
- package/dist/agent-session/Sessions.mjs +46 -0
- package/dist/agent-session/Sessions.mjs.map +1 -0
- package/dist/agent-session/TurnHandle.d.ts +88 -0
- package/dist/agent-session/TurnHandle.d.ts.map +1 -0
- package/dist/agent-session/TurnHandle.js +490 -0
- package/dist/agent-session/TurnHandle.js.map +1 -0
- package/dist/agent-session/TurnHandle.mjs +469 -0
- package/dist/agent-session/TurnHandle.mjs.map +1 -0
- package/dist/agent-session/TurnResourceResolver.d.ts +154 -0
- package/dist/agent-session/TurnResourceResolver.d.ts.map +1 -0
- package/dist/agent-session/TurnResourceResolver.js +178 -0
- package/dist/agent-session/TurnResourceResolver.js.map +1 -0
- package/dist/agent-session/TurnResourceResolver.mjs +153 -0
- package/dist/agent-session/TurnResourceResolver.mjs.map +1 -0
- package/dist/agent-session/builtinsFromSpec.d.ts +19 -0
- package/dist/agent-session/builtinsFromSpec.d.ts.map +1 -0
- package/dist/agent-session/builtinsFromSpec.js +73 -0
- package/dist/agent-session/builtinsFromSpec.js.map +1 -0
- package/dist/agent-session/builtinsFromSpec.mjs +48 -0
- package/dist/agent-session/builtinsFromSpec.mjs.map +1 -0
- package/dist/agent-session/index.d.ts +29 -0
- package/dist/agent-session/index.d.ts.map +1 -0
- package/dist/agent-session/index.js +117 -0
- package/dist/agent-session/index.js.map +1 -0
- package/dist/agent-session/index.mjs +84 -0
- package/dist/agent-session/index.mjs.map +1 -0
- package/dist/agent-session/models/SessionRecord.d.ts +34 -0
- package/dist/agent-session/models/SessionRecord.d.ts.map +1 -0
- package/dist/agent-session/models/SessionRecord.js +19 -0
- package/dist/agent-session/models/SessionRecord.js.map +1 -0
- package/dist/agent-session/models/SessionRecord.mjs +1 -0
- package/dist/agent-session/models/SessionRecord.mjs.map +1 -0
- package/dist/agent-session/models/TurnRecord.d.ts +37 -0
- package/dist/agent-session/models/TurnRecord.d.ts.map +1 -0
- package/dist/agent-session/models/TurnRecord.js +31 -0
- package/dist/agent-session/models/TurnRecord.js.map +1 -0
- package/dist/agent-session/models/TurnRecord.mjs +6 -0
- package/dist/agent-session/models/TurnRecord.mjs.map +1 -0
- package/dist/agent-session/schemas/agentSpec.d.ts +142 -0
- package/dist/agent-session/schemas/agentSpec.d.ts.map +1 -0
- package/dist/agent-session/schemas/agentSpec.js +170 -0
- package/dist/agent-session/schemas/agentSpec.js.map +1 -0
- package/dist/agent-session/schemas/agentSpec.mjs +154 -0
- package/dist/agent-session/schemas/agentSpec.mjs.map +1 -0
- package/dist/agent-session/schemas/events.d.ts +1037 -0
- package/dist/agent-session/schemas/events.d.ts.map +1 -0
- package/dist/agent-session/schemas/events.js +80 -0
- package/dist/agent-session/schemas/events.js.map +1 -0
- package/dist/agent-session/schemas/events.mjs +69 -0
- package/dist/agent-session/schemas/events.mjs.map +1 -0
- package/dist/agent-session/schemas/pagination.d.ts +9 -0
- package/dist/agent-session/schemas/pagination.d.ts.map +1 -0
- package/dist/agent-session/schemas/pagination.js +36 -0
- package/dist/agent-session/schemas/pagination.js.map +1 -0
- package/dist/agent-session/schemas/pagination.mjs +11 -0
- package/dist/agent-session/schemas/pagination.mjs.map +1 -0
- package/dist/agent-session/schemas/session.d.ts +319 -0
- package/dist/agent-session/schemas/session.d.ts.map +1 -0
- package/dist/agent-session/schemas/session.js +58 -0
- package/dist/agent-session/schemas/session.js.map +1 -0
- package/dist/agent-session/schemas/session.mjs +30 -0
- package/dist/agent-session/schemas/session.mjs.map +1 -0
- package/dist/agent-session/schemas/turn.d.ts +494 -0
- package/dist/agent-session/schemas/turn.d.ts.map +1 -0
- package/dist/agent-session/schemas/turn.js +131 -0
- package/dist/agent-session/schemas/turn.js.map +1 -0
- package/dist/agent-session/schemas/turn.mjs +102 -0
- package/dist/agent-session/schemas/turn.mjs.map +1 -0
- package/dist/agent-session/store/ISessionStore.d.ts +310 -0
- package/dist/agent-session/store/ISessionStore.d.ts.map +1 -0
- package/dist/agent-session/store/ISessionStore.js +19 -0
- package/dist/agent-session/store/ISessionStore.js.map +1 -0
- package/dist/agent-session/store/ISessionStore.mjs +1 -0
- package/dist/agent-session/store/ISessionStore.mjs.map +1 -0
- package/dist/agent-session/store/InMemorySessionStore.d.ts +55 -0
- package/dist/agent-session/store/InMemorySessionStore.d.ts.map +1 -0
- package/dist/agent-session/store/InMemorySessionStore.js +475 -0
- package/dist/agent-session/store/InMemorySessionStore.js.map +1 -0
- package/dist/agent-session/store/InMemorySessionStore.mjs +461 -0
- package/dist/agent-session/store/InMemorySessionStore.mjs.map +1 -0
- package/dist/agent-session/store/OffsetPageToken.d.ts +13 -0
- package/dist/agent-session/store/OffsetPageToken.d.ts.map +1 -0
- package/dist/agent-session/store/OffsetPageToken.js +60 -0
- package/dist/agent-session/store/OffsetPageToken.js.map +1 -0
- package/dist/agent-session/store/OffsetPageToken.mjs +32 -0
- package/dist/agent-session/store/OffsetPageToken.mjs.map +1 -0
- package/dist/agent-session/store/PageToken.d.ts +4 -0
- package/dist/agent-session/store/PageToken.d.ts.map +1 -0
- package/dist/agent-session/store/PageToken.js +45 -0
- package/dist/agent-session/store/PageToken.js.map +1 -0
- package/dist/agent-session/store/PageToken.mjs +19 -0
- package/dist/agent-session/store/PageToken.mjs.map +1 -0
- package/dist/agent-session/store/SessionEventPageToken.d.ts +14 -0
- package/dist/agent-session/store/SessionEventPageToken.d.ts.map +1 -0
- package/dist/agent-session/store/SessionEventPageToken.js +70 -0
- package/dist/agent-session/store/SessionEventPageToken.js.map +1 -0
- package/dist/agent-session/store/SessionEventPageToken.mjs +42 -0
- package/dist/agent-session/store/SessionEventPageToken.mjs.map +1 -0
- package/dist/agent-session/store/SessionListPageToken.d.ts +24 -0
- package/dist/agent-session/store/SessionListPageToken.d.ts.map +1 -0
- package/dist/agent-session/store/SessionListPageToken.js +66 -0
- package/dist/agent-session/store/SessionListPageToken.js.map +1 -0
- package/dist/agent-session/store/SessionListPageToken.mjs +38 -0
- package/dist/agent-session/store/SessionListPageToken.mjs.map +1 -0
- package/dist/agent-session/store/SessionStoreErrors.d.ts +43 -0
- package/dist/agent-session/store/SessionStoreErrors.d.ts.map +1 -0
- package/dist/agent-session/store/SessionStoreErrors.js +126 -0
- package/dist/agent-session/store/SessionStoreErrors.js.map +1 -0
- package/dist/agent-session/store/SessionStoreErrors.mjs +92 -0
- package/dist/agent-session/store/SessionStoreErrors.mjs.map +1 -0
- package/dist/agent-session/store/assertCreateTurnThreadDelta.d.ts +18 -0
- package/dist/agent-session/store/assertCreateTurnThreadDelta.d.ts.map +1 -0
- package/dist/agent-session/store/assertCreateTurnThreadDelta.js +67 -0
- package/dist/agent-session/store/assertCreateTurnThreadDelta.js.map +1 -0
- package/dist/agent-session/store/assertCreateTurnThreadDelta.mjs +42 -0
- package/dist/agent-session/store/assertCreateTurnThreadDelta.mjs.map +1 -0
- package/dist/core/InstructionBuilder.d.ts +71 -0
- package/dist/core/InstructionBuilder.d.ts.map +1 -0
- package/dist/core/InstructionBuilder.js +95 -0
- package/dist/core/InstructionBuilder.js.map +1 -0
- package/dist/core/InstructionBuilder.mjs +69 -0
- package/dist/core/InstructionBuilder.mjs.map +1 -0
- package/dist/core/capabilities/AgentCapability.d.ts +32 -0
- package/dist/core/capabilities/AgentCapability.d.ts.map +1 -0
- package/dist/core/capabilities/AgentCapability.js +19 -0
- package/dist/core/capabilities/AgentCapability.js.map +1 -0
- package/dist/core/capabilities/AgentCapability.mjs +1 -0
- package/dist/core/capabilities/AgentCapability.mjs.map +1 -0
- package/dist/core/capabilities/AgentContextProcessor.d.ts +30 -0
- package/dist/core/capabilities/AgentContextProcessor.d.ts.map +1 -0
- package/dist/core/capabilities/AgentContextProcessor.js +19 -0
- package/dist/core/capabilities/AgentContextProcessor.js.map +1 -0
- package/dist/core/capabilities/AgentContextProcessor.mjs +1 -0
- package/dist/core/capabilities/AgentContextProcessor.mjs.map +1 -0
- package/dist/core/capabilities/ToolResponseProcessor.d.ts +12 -0
- package/dist/core/capabilities/ToolResponseProcessor.d.ts.map +1 -0
- package/dist/core/capabilities/ToolResponseProcessor.js +19 -0
- package/dist/core/capabilities/ToolResponseProcessor.js.map +1 -0
- package/dist/core/capabilities/ToolResponseProcessor.mjs +1 -0
- package/dist/core/capabilities/ToolResponseProcessor.mjs.map +1 -0
- package/dist/core/capabilities/builtins/AskUserQuestion.d.ts +11 -0
- package/dist/core/capabilities/builtins/AskUserQuestion.d.ts.map +1 -0
- package/dist/core/capabilities/builtins/AskUserQuestion.js +90 -0
- package/dist/core/capabilities/builtins/AskUserQuestion.js.map +1 -0
- package/dist/core/capabilities/builtins/AskUserQuestion.mjs +64 -0
- package/dist/core/capabilities/builtins/AskUserQuestion.mjs.map +1 -0
- package/dist/core/capabilities/builtins/ContextCompaction.d.ts +23 -0
- package/dist/core/capabilities/builtins/ContextCompaction.d.ts.map +1 -0
- package/dist/core/capabilities/builtins/ContextCompaction.js +235 -0
- package/dist/core/capabilities/builtins/ContextCompaction.js.map +1 -0
- package/dist/core/capabilities/builtins/ContextCompaction.mjs +208 -0
- package/dist/core/capabilities/builtins/ContextCompaction.mjs.map +1 -0
- package/dist/core/capabilities/builtins/CurrentDateTime.d.ts +17 -0
- package/dist/core/capabilities/builtins/CurrentDateTime.d.ts.map +1 -0
- package/dist/core/capabilities/builtins/CurrentDateTime.js +75 -0
- package/dist/core/capabilities/builtins/CurrentDateTime.js.map +1 -0
- package/dist/core/capabilities/builtins/CurrentDateTime.mjs +47 -0
- package/dist/core/capabilities/builtins/CurrentDateTime.mjs.map +1 -0
- package/dist/core/capabilities/builtins/DynamicSubAgents.d.ts +39 -0
- package/dist/core/capabilities/builtins/DynamicSubAgents.d.ts.map +1 -0
- package/dist/core/capabilities/builtins/DynamicSubAgents.js +176 -0
- package/dist/core/capabilities/builtins/DynamicSubAgents.js.map +1 -0
- package/dist/core/capabilities/builtins/DynamicSubAgents.mjs +134 -0
- package/dist/core/capabilities/builtins/DynamicSubAgents.mjs.map +1 -0
- package/dist/core/capabilities/builtins/LargeToolResponse.d.ts +40 -0
- package/dist/core/capabilities/builtins/LargeToolResponse.d.ts.map +1 -0
- package/dist/core/capabilities/builtins/LargeToolResponse.js +225 -0
- package/dist/core/capabilities/builtins/LargeToolResponse.js.map +1 -0
- package/dist/core/capabilities/builtins/LargeToolResponse.mjs +186 -0
- package/dist/core/capabilities/builtins/LargeToolResponse.mjs.map +1 -0
- package/dist/core/capabilities/builtins/OpenUI.d.ts +31 -0
- package/dist/core/capabilities/builtins/OpenUI.d.ts.map +1 -0
- package/dist/core/capabilities/builtins/OpenUI.js +376 -0
- package/dist/core/capabilities/builtins/OpenUI.js.map +1 -0
- package/dist/core/capabilities/builtins/OpenUI.mjs +326 -0
- package/dist/core/capabilities/builtins/OpenUI.mjs.map +1 -0
- package/dist/core/errors.d.ts +33 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +88 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/errors.mjs +57 -0
- package/dist/core/errors.mjs.map +1 -0
- package/dist/core/events/PassthroughEvents.d.ts +30 -0
- package/dist/core/events/PassthroughEvents.d.ts.map +1 -0
- package/dist/core/events/PassthroughEvents.js +19 -0
- package/dist/core/events/PassthroughEvents.js.map +1 -0
- package/dist/core/events/PassthroughEvents.mjs +1 -0
- package/dist/core/events/PassthroughEvents.mjs.map +1 -0
- package/dist/core/events/schema.d.ts +1103 -0
- package/dist/core/events/schema.d.ts.map +1 -0
- package/dist/core/events/schema.js +337 -0
- package/dist/core/events/schema.js.map +1 -0
- package/dist/core/events/schema.mjs +283 -0
- package/dist/core/events/schema.mjs.map +1 -0
- package/dist/core/index.d.ts +60 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +209 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/index.mjs +144 -0
- package/dist/core/index.mjs.map +1 -0
- package/dist/core/llm/ILLM.d.ts +15 -0
- package/dist/core/llm/ILLM.d.ts.map +1 -0
- package/dist/core/llm/ILLM.js +19 -0
- package/dist/core/llm/ILLM.js.map +1 -0
- package/dist/core/llm/ILLM.mjs +1 -0
- package/dist/core/llm/ILLM.mjs.map +1 -0
- package/dist/core/llm/LLMTypes.d.ts +369 -0
- package/dist/core/llm/LLMTypes.d.ts.map +1 -0
- package/dist/core/llm/LLMTypes.js +170 -0
- package/dist/core/llm/LLMTypes.js.map +1 -0
- package/dist/core/llm/LLMTypes.mjs +133 -0
- package/dist/core/llm/LLMTypes.mjs.map +1 -0
- package/dist/core/llm/VercelAILLM.d.ts +228 -0
- package/dist/core/llm/VercelAILLM.d.ts.map +1 -0
- package/dist/core/llm/VercelAILLM.js +1042 -0
- package/dist/core/llm/VercelAILLM.js.map +1 -0
- package/dist/core/llm/VercelAILLM.mjs +999 -0
- package/dist/core/llm/VercelAILLM.mjs.map +1 -0
- package/dist/core/llm/openaiSchemas.d.ts +190 -0
- package/dist/core/llm/openaiSchemas.d.ts.map +1 -0
- package/dist/core/llm/openaiSchemas.js +144 -0
- package/dist/core/llm/openaiSchemas.js.map +1 -0
- package/dist/core/llm/openaiSchemas.mjs +107 -0
- package/dist/core/llm/openaiSchemas.mjs.map +1 -0
- package/dist/core/llm/responseFormat.d.ts +25 -0
- package/dist/core/llm/responseFormat.d.ts.map +1 -0
- package/dist/core/llm/responseFormat.js +58 -0
- package/dist/core/llm/responseFormat.js.map +1 -0
- package/dist/core/llm/responseFormat.mjs +32 -0
- package/dist/core/llm/responseFormat.mjs.map +1 -0
- package/dist/core/llm/toOpenAIChatMessage.d.ts +11 -0
- package/dist/core/llm/toOpenAIChatMessage.d.ts.map +1 -0
- package/dist/core/llm/toOpenAIChatMessage.js +95 -0
- package/dist/core/llm/toOpenAIChatMessage.js.map +1 -0
- package/dist/core/llm/toOpenAIChatMessage.mjs +70 -0
- package/dist/core/llm/toOpenAIChatMessage.mjs.map +1 -0
- package/dist/core/llm/usage.d.ts +4 -0
- package/dist/core/llm/usage.d.ts.map +1 -0
- package/dist/core/llm/usage.js +52 -0
- package/dist/core/llm/usage.js.map +1 -0
- package/dist/core/llm/usage.mjs +26 -0
- package/dist/core/llm/usage.mjs.map +1 -0
- package/dist/core/mcp/ClientSideTool.d.ts +10 -0
- package/dist/core/mcp/ClientSideTool.d.ts.map +1 -0
- package/dist/core/mcp/ClientSideTool.js +56 -0
- package/dist/core/mcp/ClientSideTool.js.map +1 -0
- package/dist/core/mcp/ClientSideTool.mjs +31 -0
- package/dist/core/mcp/ClientSideTool.mjs.map +1 -0
- package/dist/core/mcp/IMCPServer.d.ts +78 -0
- package/dist/core/mcp/IMCPServer.d.ts.map +1 -0
- package/dist/core/mcp/IMCPServer.js +63 -0
- package/dist/core/mcp/IMCPServer.js.map +1 -0
- package/dist/core/mcp/IMCPServer.mjs +33 -0
- package/dist/core/mcp/IMCPServer.mjs.map +1 -0
- package/dist/core/mcp/LocalToolMCP.d.ts +39 -0
- package/dist/core/mcp/LocalToolMCP.d.ts.map +1 -0
- package/dist/core/mcp/LocalToolMCP.js +121 -0
- package/dist/core/mcp/LocalToolMCP.js.map +1 -0
- package/dist/core/mcp/LocalToolMCP.mjs +98 -0
- package/dist/core/mcp/LocalToolMCP.mjs.map +1 -0
- package/dist/core/mcp/RemoteMCP.d.ts +67 -0
- package/dist/core/mcp/RemoteMCP.d.ts.map +1 -0
- package/dist/core/mcp/RemoteMCP.js +244 -0
- package/dist/core/mcp/RemoteMCP.js.map +1 -0
- package/dist/core/mcp/RemoteMCP.mjs +222 -0
- package/dist/core/mcp/RemoteMCP.mjs.map +1 -0
- package/dist/core/mcp/ToolSelectorPolicy.d.ts +52 -0
- package/dist/core/mcp/ToolSelectorPolicy.d.ts.map +1 -0
- package/dist/core/mcp/ToolSelectorPolicy.js +108 -0
- package/dist/core/mcp/ToolSelectorPolicy.js.map +1 -0
- package/dist/core/mcp/ToolSelectorPolicy.mjs +90 -0
- package/dist/core/mcp/ToolSelectorPolicy.mjs.map +1 -0
- package/dist/core/mcp/ToolSet.d.ts +31 -0
- package/dist/core/mcp/ToolSet.d.ts.map +1 -0
- package/dist/core/mcp/ToolSet.js +119 -0
- package/dist/core/mcp/ToolSet.js.map +1 -0
- package/dist/core/mcp/ToolSet.mjs +98 -0
- package/dist/core/mcp/ToolSet.mjs.map +1 -0
- package/dist/core/mcp/convertMCPServers.d.ts +22 -0
- package/dist/core/mcp/convertMCPServers.d.ts.map +1 -0
- package/dist/core/mcp/convertMCPServers.js +89 -0
- package/dist/core/mcp/convertMCPServers.js.map +1 -0
- package/dist/core/mcp/convertMCPServers.mjs +64 -0
- package/dist/core/mcp/convertMCPServers.mjs.map +1 -0
- package/dist/core/mcp/executeToolCalls.d.ts +31 -0
- package/dist/core/mcp/executeToolCalls.d.ts.map +1 -0
- package/dist/core/mcp/executeToolCalls.js +168 -0
- package/dist/core/mcp/executeToolCalls.js.map +1 -0
- package/dist/core/mcp/executeToolCalls.mjs +149 -0
- package/dist/core/mcp/executeToolCalls.mjs.map +1 -0
- package/dist/core/mcp/pagination.d.ts +11 -0
- package/dist/core/mcp/pagination.d.ts.map +1 -0
- package/dist/core/mcp/pagination.js +49 -0
- package/dist/core/mcp/pagination.js.map +1 -0
- package/dist/core/mcp/pagination.mjs +24 -0
- package/dist/core/mcp/pagination.mjs.map +1 -0
- package/dist/core/mcp/remoteMcpClient.d.ts +36 -0
- package/dist/core/mcp/remoteMcpClient.d.ts.map +1 -0
- package/dist/core/mcp/remoteMcpClient.js +138 -0
- package/dist/core/mcp/remoteMcpClient.js.map +1 -0
- package/dist/core/mcp/remoteMcpClient.mjs +112 -0
- package/dist/core/mcp/remoteMcpClient.mjs.map +1 -0
- package/dist/core/mcp/toolNames.d.ts +6 -0
- package/dist/core/mcp/toolNames.d.ts.map +1 -0
- package/dist/core/mcp/toolNames.js +59 -0
- package/dist/core/mcp/toolNames.js.map +1 -0
- package/dist/core/mcp/toolNames.mjs +33 -0
- package/dist/core/mcp/toolNames.mjs.map +1 -0
- package/dist/core/mcp/toolSelectors.d.ts +28 -0
- package/dist/core/mcp/toolSelectors.d.ts.map +1 -0
- package/dist/core/mcp/toolSelectors.js +113 -0
- package/dist/core/mcp/toolSelectors.js.map +1 -0
- package/dist/core/mcp/toolSelectors.mjs +78 -0
- package/dist/core/mcp/toolSelectors.mjs.map +1 -0
- package/dist/core/runtime/AgentDefinition.d.ts +23 -0
- package/dist/core/runtime/AgentDefinition.d.ts.map +1 -0
- package/dist/core/runtime/AgentDefinition.js +19 -0
- package/dist/core/runtime/AgentDefinition.js.map +1 -0
- package/dist/core/runtime/AgentDefinition.mjs +1 -0
- package/dist/core/runtime/AgentDefinition.mjs.map +1 -0
- package/dist/core/runtime/AgentThread.d.ts +64 -0
- package/dist/core/runtime/AgentThread.d.ts.map +1 -0
- package/dist/core/runtime/AgentThread.js +1065 -0
- package/dist/core/runtime/AgentThread.js.map +1 -0
- package/dist/core/runtime/AgentThread.mjs +1062 -0
- package/dist/core/runtime/AgentThread.mjs.map +1 -0
- package/dist/core/runtime/AgentThread.types.d.ts +123 -0
- package/dist/core/runtime/AgentThread.types.d.ts.map +1 -0
- package/dist/core/runtime/AgentThread.types.js +46 -0
- package/dist/core/runtime/AgentThread.types.js.map +1 -0
- package/dist/core/runtime/AgentThread.types.mjs +20 -0
- package/dist/core/runtime/AgentThread.types.mjs.map +1 -0
- package/dist/core/runtime/AgentThreadOrchestrator.d.ts +35 -0
- package/dist/core/runtime/AgentThreadOrchestrator.d.ts.map +1 -0
- package/dist/core/runtime/AgentThreadOrchestrator.js +433 -0
- package/dist/core/runtime/AgentThreadOrchestrator.js.map +1 -0
- package/dist/core/runtime/AgentThreadOrchestrator.mjs +418 -0
- package/dist/core/runtime/AgentThreadOrchestrator.mjs.map +1 -0
- package/dist/core/runtime/CreateDynamicSubAgentThread.d.ts +11 -0
- package/dist/core/runtime/CreateDynamicSubAgentThread.d.ts.map +1 -0
- package/dist/core/runtime/CreateDynamicSubAgentThread.js +19 -0
- package/dist/core/runtime/CreateDynamicSubAgentThread.js.map +1 -0
- package/dist/core/runtime/CreateDynamicSubAgentThread.mjs +1 -0
- package/dist/core/runtime/CreateDynamicSubAgentThread.mjs.map +1 -0
- package/dist/core/runtime/DeferredTool.d.ts +34 -0
- package/dist/core/runtime/DeferredTool.d.ts.map +1 -0
- package/dist/core/runtime/DeferredTool.js +321 -0
- package/dist/core/runtime/DeferredTool.js.map +1 -0
- package/dist/core/runtime/DeferredTool.mjs +287 -0
- package/dist/core/runtime/DeferredTool.mjs.map +1 -0
- package/dist/core/runtime/OpenToolCallCloser.d.ts +21 -0
- package/dist/core/runtime/OpenToolCallCloser.d.ts.map +1 -0
- package/dist/core/runtime/OpenToolCallCloser.js +92 -0
- package/dist/core/runtime/OpenToolCallCloser.js.map +1 -0
- package/dist/core/runtime/OpenToolCallCloser.mjs +66 -0
- package/dist/core/runtime/OpenToolCallCloser.mjs.map +1 -0
- package/dist/core/runtime/UserInputMessage.d.ts +16 -0
- package/dist/core/runtime/UserInputMessage.d.ts.map +1 -0
- package/dist/core/runtime/UserInputMessage.js +183 -0
- package/dist/core/runtime/UserInputMessage.js.map +1 -0
- package/dist/core/runtime/UserInputMessage.mjs +157 -0
- package/dist/core/runtime/UserInputMessage.mjs.map +1 -0
- package/dist/core/runtime/contextUsage.d.ts +17 -0
- package/dist/core/runtime/contextUsage.d.ts.map +1 -0
- package/dist/core/runtime/contextUsage.js +56 -0
- package/dist/core/runtime/contextUsage.js.map +1 -0
- package/dist/core/runtime/contextUsage.mjs +28 -0
- package/dist/core/runtime/contextUsage.mjs.map +1 -0
- package/dist/core/runtime/contextUtils.d.ts +30 -0
- package/dist/core/runtime/contextUtils.d.ts.map +1 -0
- package/dist/core/runtime/contextUtils.js +198 -0
- package/dist/core/runtime/contextUtils.js.map +1 -0
- package/dist/core/runtime/contextUtils.mjs +148 -0
- package/dist/core/runtime/contextUtils.mjs.map +1 -0
- package/dist/core/runtime/metrics.d.ts +22 -0
- package/dist/core/runtime/metrics.d.ts.map +1 -0
- package/dist/core/runtime/metrics.js +89 -0
- package/dist/core/runtime/metrics.js.map +1 -0
- package/dist/core/runtime/metrics.mjs +61 -0
- package/dist/core/runtime/metrics.mjs.map +1 -0
- package/dist/core/sandbox/Sandbox.d.ts +121 -0
- package/dist/core/sandbox/Sandbox.d.ts.map +1 -0
- package/dist/core/sandbox/Sandbox.js +572 -0
- package/dist/core/sandbox/Sandbox.js.map +1 -0
- package/dist/core/sandbox/Sandbox.mjs +536 -0
- package/dist/core/sandbox/Sandbox.mjs.map +1 -0
- package/dist/core/sandbox/SandboxErrors.d.ts +30 -0
- package/dist/core/sandbox/SandboxErrors.d.ts.map +1 -0
- package/dist/core/sandbox/SandboxErrors.js +102 -0
- package/dist/core/sandbox/SandboxErrors.js.map +1 -0
- package/dist/core/sandbox/SandboxErrors.mjs +71 -0
- package/dist/core/sandbox/SandboxErrors.mjs.map +1 -0
- package/dist/core/sandbox/SandboxNatsBridge.d.ts +33 -0
- package/dist/core/sandbox/SandboxNatsBridge.d.ts.map +1 -0
- package/dist/core/sandbox/SandboxNatsBridge.js +222 -0
- package/dist/core/sandbox/SandboxNatsBridge.js.map +1 -0
- package/dist/core/sandbox/SandboxNatsBridge.mjs +201 -0
- package/dist/core/sandbox/SandboxNatsBridge.mjs.map +1 -0
- package/dist/core/sandbox/constants.d.ts +10 -0
- package/dist/core/sandbox/constants.d.ts.map +1 -0
- package/dist/core/sandbox/constants.js +37 -0
- package/dist/core/sandbox/constants.js.map +1 -0
- package/dist/core/sandbox/constants.mjs +10 -0
- package/dist/core/sandbox/constants.mjs.map +1 -0
- package/dist/core/sandbox/provider/DaytonaProvider.d.ts +80 -0
- package/dist/core/sandbox/provider/DaytonaProvider.d.ts.map +1 -0
- package/dist/core/sandbox/provider/DaytonaProvider.js +346 -0
- package/dist/core/sandbox/provider/DaytonaProvider.js.map +1 -0
- package/dist/core/sandbox/provider/DaytonaProvider.mjs +326 -0
- package/dist/core/sandbox/provider/DaytonaProvider.mjs.map +1 -0
- package/dist/core/sandbox/provider/Provider.d.ts +83 -0
- package/dist/core/sandbox/provider/Provider.d.ts.map +1 -0
- package/dist/core/sandbox/provider/Provider.js +43 -0
- package/dist/core/sandbox/provider/Provider.js.map +1 -0
- package/dist/core/sandbox/provider/Provider.mjs +17 -0
- package/dist/core/sandbox/provider/Provider.mjs.map +1 -0
- package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts +41 -0
- package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts.map +1 -0
- package/dist/core/sandbox/provider/TFYSandboxProvider.js +180 -0
- package/dist/core/sandbox/provider/TFYSandboxProvider.js.map +1 -0
- package/dist/core/sandbox/provider/TFYSandboxProvider.mjs +147 -0
- package/dist/core/sandbox/provider/TFYSandboxProvider.mjs.map +1 -0
- package/dist/core/sandbox/sandboxImage.d.ts +6 -0
- package/dist/core/sandbox/sandboxImage.d.ts.map +1 -0
- package/dist/core/sandbox/sandboxImage.js +31 -0
- package/dist/core/sandbox/sandboxImage.js.map +1 -0
- package/dist/core/sandbox/sandboxImage.mjs +6 -0
- package/dist/core/sandbox/sandboxImage.mjs.map +1 -0
- package/dist/core/sandbox/sandboxScripts.gen.d.ts +5 -0
- package/dist/core/sandbox/sandboxScripts.gen.d.ts.map +1 -0
- package/dist/core/sandbox/sandboxScripts.gen.js +343 -0
- package/dist/core/sandbox/sandboxScripts.gen.js.map +1 -0
- package/dist/core/sandbox/sandboxScripts.gen.mjs +318 -0
- package/dist/core/sandbox/sandboxScripts.gen.mjs.map +1 -0
- package/dist/core/sandbox/skills/ISkillMounter.d.ts +7 -0
- package/dist/core/sandbox/skills/ISkillMounter.d.ts.map +1 -0
- package/dist/core/sandbox/skills/ISkillMounter.js +19 -0
- package/dist/core/sandbox/skills/ISkillMounter.js.map +1 -0
- package/dist/core/sandbox/skills/ISkillMounter.mjs +1 -0
- package/dist/core/sandbox/skills/ISkillMounter.mjs.map +1 -0
- package/dist/core/sandbox/skills/SkillMounter.d.ts +17 -0
- package/dist/core/sandbox/skills/SkillMounter.d.ts.map +1 -0
- package/dist/core/sandbox/skills/SkillMounter.js +73 -0
- package/dist/core/sandbox/skills/SkillMounter.js.map +1 -0
- package/dist/core/sandbox/skills/SkillMounter.mjs +48 -0
- package/dist/core/sandbox/skills/SkillMounter.mjs.map +1 -0
- package/dist/core/sandbox/skills/constants.d.ts +10 -0
- package/dist/core/sandbox/skills/constants.d.ts.map +1 -0
- package/dist/core/sandbox/skills/constants.js +56 -0
- package/dist/core/sandbox/skills/constants.js.map +1 -0
- package/dist/core/sandbox/skills/constants.mjs +28 -0
- package/dist/core/sandbox/skills/constants.mjs.map +1 -0
- package/dist/core/sandbox/skills/index.d.ts +5 -0
- package/dist/core/sandbox/skills/index.d.ts.map +1 -0
- package/dist/core/sandbox/skills/index.js +40 -0
- package/dist/core/sandbox/skills/index.js.map +1 -0
- package/dist/core/sandbox/skills/index.mjs +11 -0
- package/dist/core/sandbox/skills/index.mjs.map +1 -0
- package/dist/core/tracing/AgentTracing.d.ts +38 -0
- package/dist/core/tracing/AgentTracing.d.ts.map +1 -0
- package/dist/core/tracing/AgentTracing.js +19 -0
- package/dist/core/tracing/AgentTracing.js.map +1 -0
- package/dist/core/tracing/AgentTracing.mjs +1 -0
- package/dist/core/tracing/AgentTracing.mjs.map +1 -0
- package/dist/core/tracing/NoopAgentTracing.d.ts +3 -0
- package/dist/core/tracing/NoopAgentTracing.d.ts.map +1 -0
- package/dist/core/tracing/NoopAgentTracing.js +79 -0
- package/dist/core/tracing/NoopAgentTracing.js.map +1 -0
- package/dist/core/tracing/NoopAgentTracing.mjs +54 -0
- package/dist/core/tracing/NoopAgentTracing.mjs.map +1 -0
- package/dist/core/util/abort.d.ts +2 -0
- package/dist/core/util/abort.d.ts.map +1 -0
- package/dist/core/util/abort.js +38 -0
- package/dist/core/util/abort.js.map +1 -0
- package/dist/core/util/abort.mjs +13 -0
- package/dist/core/util/abort.mjs.map +1 -0
- package/dist/core/util/errorLogFields.d.ts +6 -0
- package/dist/core/util/errorLogFields.d.ts.map +1 -0
- package/dist/core/util/errorLogFields.js +36 -0
- package/dist/core/util/errorLogFields.js.map +1 -0
- package/dist/core/util/errorLogFields.mjs +11 -0
- package/dist/core/util/errorLogFields.mjs.map +1 -0
- package/dist/core/util/promiseUtils.d.ts +7 -0
- package/dist/core/util/promiseUtils.d.ts.map +1 -0
- package/dist/core/util/promiseUtils.js +82 -0
- package/dist/core/util/promiseUtils.js.map +1 -0
- package/dist/core/util/promiseUtils.mjs +55 -0
- package/dist/core/util/promiseUtils.mjs.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +8 -0
- package/dist/index.mjs.map +1 -0
- package/dist/package.json +3 -0
- package/dist/request-reply/client.d.ts +21 -0
- package/dist/request-reply/client.d.ts.map +1 -0
- package/dist/request-reply/client.js +92 -0
- package/dist/request-reply/client.js.map +1 -0
- package/dist/request-reply/client.mjs +67 -0
- package/dist/request-reply/client.mjs.map +1 -0
- package/dist/request-reply/errors.d.ts +23 -0
- package/dist/request-reply/errors.d.ts.map +1 -0
- package/dist/request-reply/errors.js +66 -0
- package/dist/request-reply/errors.js.map +1 -0
- package/dist/request-reply/errors.mjs +39 -0
- package/dist/request-reply/errors.mjs.map +1 -0
- package/dist/request-reply/executor.d.ts +70 -0
- package/dist/request-reply/executor.d.ts.map +1 -0
- package/dist/request-reply/executor.js +267 -0
- package/dist/request-reply/executor.js.map +1 -0
- package/dist/request-reply/executor.mjs +232 -0
- package/dist/request-reply/executor.mjs.map +1 -0
- package/dist/request-reply/index.d.ts +16 -0
- package/dist/request-reply/index.d.ts.map +1 -0
- package/dist/request-reply/index.js +47 -0
- package/dist/request-reply/index.js.map +1 -0
- package/dist/request-reply/index.mjs +16 -0
- package/dist/request-reply/index.mjs.map +1 -0
- package/dist/request-reply/router.d.ts +20 -0
- package/dist/request-reply/router.d.ts.map +1 -0
- package/dist/request-reply/router.js +55 -0
- package/dist/request-reply/router.js.map +1 -0
- package/dist/request-reply/router.mjs +30 -0
- package/dist/request-reply/router.mjs.map +1 -0
- package/dist/request-reply/types.d.ts +25 -0
- package/dist/request-reply/types.d.ts.map +1 -0
- package/dist/request-reply/types.js +54 -0
- package/dist/request-reply/types.js.map +1 -0
- package/dist/request-reply/types.mjs +28 -0
- package/dist/request-reply/types.mjs.map +1 -0
- package/dist/request-reply/utils.d.ts +9 -0
- package/dist/request-reply/utils.d.ts.map +1 -0
- package/dist/request-reply/utils.js +51 -0
- package/dist/request-reply/utils.js.map +1 -0
- package/dist/request-reply/utils.mjs +22 -0
- package/dist/request-reply/utils.mjs.map +1 -0
- package/package.json +127 -6
- package/README.md +0 -4
- package/index.js +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/core/mcp/ClientSideTool.ts
|
|
21
|
+
var ClientSideTool_exports = {};
|
|
22
|
+
__export(ClientSideTool_exports, {
|
|
23
|
+
ClientSideTool: () => ClientSideTool
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(ClientSideTool_exports);
|
|
26
|
+
var import_NoopAgentTracing = require("../tracing/NoopAgentTracing.js");
|
|
27
|
+
var import_LocalToolMCP = require("./LocalToolMCP.js");
|
|
28
|
+
var ClientSideTool = class extends import_LocalToolMCP.LocalToolMCP {
|
|
29
|
+
// Public so concrete subclasses (AskUserQuestion, …) remain constructable from
|
|
30
|
+
// factories; abstract class still cannot be instantiated directly.
|
|
31
|
+
constructor() {
|
|
32
|
+
super({ tracing: import_NoopAgentTracing.NOOP_AGENT_TRACING });
|
|
33
|
+
}
|
|
34
|
+
async callTool(params) {
|
|
35
|
+
return {
|
|
36
|
+
clientSideToolRequired: {
|
|
37
|
+
tool_info: await this.toolCallInfo(params)
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
toolCallInfo(params, _resolveUnderlyingTool) {
|
|
42
|
+
void _resolveUnderlyingTool;
|
|
43
|
+
return Promise.resolve({
|
|
44
|
+
type: "truefoundry-system",
|
|
45
|
+
original_tool_name: params.name,
|
|
46
|
+
mcp_server_id: this.mcpServerId,
|
|
47
|
+
mcp_server_name: this.name,
|
|
48
|
+
is_client_side: true
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
ClientSideTool
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=ClientSideTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/mcp/ClientSideTool.ts"],"sourcesContent":["import type { CallToolRequest } from '@modelcontextprotocol/sdk/types.js';\nimport type { InternalToolCallInfo } from '../llm/LLMTypes';\nimport { NOOP_AGENT_TRACING } from '../tracing/NoopAgentTracing';\nimport type { CallToolResponse } from './IMCPServer';\nimport { LocalToolMCP } from './LocalToolMCP';\n\n// NOTE(agent): ClientSideTool is never executed server-side. When the LLM calls a client-side\n// tool, deriveAgentExecutionState() detects `is_client_side: true` on the tool_info and\n// transitions to `user-input-required` before callTool() is ever reached.\n// The callTool() override exists only as a safety net for impossible states.\nexport abstract class ClientSideTool extends LocalToolMCP {\n // Public so concrete subclasses (AskUserQuestion, …) remain constructable from\n // factories; abstract class still cannot be instantiated directly.\n constructor() {\n super({ tracing: NOOP_AGENT_TRACING });\n }\n\n override async callTool(params: CallToolRequest['params']): Promise<CallToolResponse> {\n return {\n clientSideToolRequired: {\n tool_info: await this.toolCallInfo(params),\n },\n };\n }\n\n override toolCallInfo(\n params: CallToolRequest['params'],\n _resolveUnderlyingTool?: boolean,\n ): Promise<InternalToolCallInfo> {\n void _resolveUnderlyingTool;\n return Promise.resolve({\n type: 'truefoundry-system',\n original_tool_name: params.name,\n mcp_server_id: this.mcpServerId,\n mcp_server_name: this.name,\n is_client_side: true,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,8BAAmC;AAEnC,0BAA6B;AAMtB,IAAe,iBAAf,cAAsC,iCAAa;AAAA;AAAA;AAAA,EAGxD,cAAc;AACZ,UAAM,EAAE,SAAS,2CAAmB,CAAC;AAAA,EACvC;AAAA,EAEA,MAAe,SAAS,QAA8D;AACpF,WAAO;AAAA,MACL,wBAAwB;AAAA,QACtB,WAAW,MAAM,KAAK,aAAa,MAAM;AAAA,MAC3C;AAAA,IACF;AAAA,EACF;AAAA,EAES,aACP,QACA,wBAC+B;AAC/B,SAAK;AACL,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM;AAAA,MACN,oBAAoB,OAAO;AAAA,MAC3B,eAAe,KAAK;AAAA,MACpB,iBAAiB,KAAK;AAAA,MACtB,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// src/core/mcp/ClientSideTool.ts
|
|
2
|
+
import { NOOP_AGENT_TRACING } from "../tracing/NoopAgentTracing.mjs";
|
|
3
|
+
import { LocalToolMCP } from "./LocalToolMCP.mjs";
|
|
4
|
+
var ClientSideTool = class extends LocalToolMCP {
|
|
5
|
+
// Public so concrete subclasses (AskUserQuestion, …) remain constructable from
|
|
6
|
+
// factories; abstract class still cannot be instantiated directly.
|
|
7
|
+
constructor() {
|
|
8
|
+
super({ tracing: NOOP_AGENT_TRACING });
|
|
9
|
+
}
|
|
10
|
+
async callTool(params) {
|
|
11
|
+
return {
|
|
12
|
+
clientSideToolRequired: {
|
|
13
|
+
tool_info: await this.toolCallInfo(params)
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
toolCallInfo(params, _resolveUnderlyingTool) {
|
|
18
|
+
void _resolveUnderlyingTool;
|
|
19
|
+
return Promise.resolve({
|
|
20
|
+
type: "truefoundry-system",
|
|
21
|
+
original_tool_name: params.name,
|
|
22
|
+
mcp_server_id: this.mcpServerId,
|
|
23
|
+
mcp_server_name: this.name,
|
|
24
|
+
is_client_side: true
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export {
|
|
29
|
+
ClientSideTool
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=ClientSideTool.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/mcp/ClientSideTool.ts"],"sourcesContent":["import type { CallToolRequest } from '@modelcontextprotocol/sdk/types.js';\nimport type { InternalToolCallInfo } from '../llm/LLMTypes';\nimport { NOOP_AGENT_TRACING } from '../tracing/NoopAgentTracing';\nimport type { CallToolResponse } from './IMCPServer';\nimport { LocalToolMCP } from './LocalToolMCP';\n\n// NOTE(agent): ClientSideTool is never executed server-side. When the LLM calls a client-side\n// tool, deriveAgentExecutionState() detects `is_client_side: true` on the tool_info and\n// transitions to `user-input-required` before callTool() is ever reached.\n// The callTool() override exists only as a safety net for impossible states.\nexport abstract class ClientSideTool extends LocalToolMCP {\n // Public so concrete subclasses (AskUserQuestion, …) remain constructable from\n // factories; abstract class still cannot be instantiated directly.\n constructor() {\n super({ tracing: NOOP_AGENT_TRACING });\n }\n\n override async callTool(params: CallToolRequest['params']): Promise<CallToolResponse> {\n return {\n clientSideToolRequired: {\n tool_info: await this.toolCallInfo(params),\n },\n };\n }\n\n override toolCallInfo(\n params: CallToolRequest['params'],\n _resolveUnderlyingTool?: boolean,\n ): Promise<InternalToolCallInfo> {\n void _resolveUnderlyingTool;\n return Promise.resolve({\n type: 'truefoundry-system',\n original_tool_name: params.name,\n mcp_server_id: this.mcpServerId,\n mcp_server_name: this.name,\n is_client_side: true,\n });\n }\n}\n"],"mappings":";AAEA,SAAS,0BAA0B;AAEnC,SAAS,oBAAoB;AAMtB,IAAe,iBAAf,cAAsC,aAAa;AAAA;AAAA;AAAA,EAGxD,cAAc;AACZ,UAAM,EAAE,SAAS,mBAAmB,CAAC;AAAA,EACvC;AAAA,EAEA,MAAe,SAAS,QAA8D;AACpF,WAAO;AAAA,MACL,wBAAwB;AAAA,QACtB,WAAW,MAAM,KAAK,aAAa,MAAM;AAAA,MAC3C;AAAA,IACF;AAAA,EACF;AAAA,EAES,aACP,QACA,wBAC+B;AAC/B,SAAK;AACL,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM;AAAA,MACN,oBAAoB,OAAO;AAAA,MAC3B,eAAe,KAAK;AAAA,MACpB,iBAAiB,KAAK;AAAA,MACtB,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { CallToolRequest, CallToolResult, ListToolsResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { RegisteredPassthroughEvent } from '../events/PassthroughEvents';
|
|
3
|
+
import type { AgentInfo, ApprovalDecision, MCPServerAuthInfo, MCPServerInitInfo } from '../events/schema';
|
|
4
|
+
import type { InternalToolCallInfo } from '../llm/LLMTypes';
|
|
5
|
+
import type { SandboxInfo } from '../sandbox/Sandbox';
|
|
6
|
+
export interface MCPAuthRequired {
|
|
7
|
+
servers: MCPServerAuthInfo[];
|
|
8
|
+
}
|
|
9
|
+
export type ToolSchema = ListToolsResult['tools'][number];
|
|
10
|
+
export interface AgentToolSchema extends ToolSchema {
|
|
11
|
+
preload: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface AuthRequiredResponse {
|
|
14
|
+
authRequired: MCPAuthRequired;
|
|
15
|
+
}
|
|
16
|
+
export declare function isAuthRequired(response: ListToolsResponse | CallToolResponse): response is AuthRequiredResponse;
|
|
17
|
+
export interface ListToolsResolvedResponse {
|
|
18
|
+
result: {
|
|
19
|
+
tools: AgentToolSchema[];
|
|
20
|
+
};
|
|
21
|
+
wasInitialized: MCPServerInitInfo | undefined;
|
|
22
|
+
}
|
|
23
|
+
export type ListToolsResponse = ListToolsResolvedResponse | AuthRequiredResponse;
|
|
24
|
+
export interface CallToolResolvedResponse {
|
|
25
|
+
result: CallToolResult;
|
|
26
|
+
wasInitialized: MCPServerInitInfo | undefined;
|
|
27
|
+
sandboxCreated?: boolean | undefined;
|
|
28
|
+
sandboxInfo?: SandboxInfo | undefined;
|
|
29
|
+
events?: readonly RegisteredPassthroughEvent[] | undefined;
|
|
30
|
+
}
|
|
31
|
+
export type CallToolResultResponse = CallToolResolvedResponse | AuthRequiredResponse;
|
|
32
|
+
export interface CallToolCreateSubAgentResponse {
|
|
33
|
+
createSubAgent: AgentInfo;
|
|
34
|
+
}
|
|
35
|
+
export interface ApprovalRequiredResponse {
|
|
36
|
+
approvalRequired: {
|
|
37
|
+
tool_info: InternalToolCallInfo;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export declare function isApprovalRequiredResponse(response: CallToolResponse): response is ApprovalRequiredResponse;
|
|
41
|
+
export interface ClientSideToolRequiredResponse {
|
|
42
|
+
clientSideToolRequired: {
|
|
43
|
+
tool_info: InternalToolCallInfo;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export declare function isClientSideToolRequiredResponse(response: CallToolResponse): response is ClientSideToolRequiredResponse;
|
|
47
|
+
export type CallToolResponse = CallToolResultResponse | CallToolCreateSubAgentResponse | ApprovalRequiredResponse | ClientSideToolRequiredResponse;
|
|
48
|
+
export declare function isCallToolResponseCreateSubAgent(response: CallToolResponse): response is CallToolCreateSubAgentResponse;
|
|
49
|
+
export declare function isCallToolResponseResult(response: CallToolResponse): response is CallToolResolvedResponse;
|
|
50
|
+
type CallToolResultMetadata = Omit<CallToolResolvedResponse, 'result'>;
|
|
51
|
+
export declare function toolResultResponse(params: {
|
|
52
|
+
text: string;
|
|
53
|
+
overrides?: Partial<CallToolResultMetadata> | undefined;
|
|
54
|
+
isError?: boolean | undefined;
|
|
55
|
+
}): CallToolResolvedResponse;
|
|
56
|
+
/** Narrow public MCP server contract. Private implementations may expose additional members. */
|
|
57
|
+
export interface IToolSet {
|
|
58
|
+
readonly name: string;
|
|
59
|
+
readonly id: string;
|
|
60
|
+
readonly description?: string | undefined;
|
|
61
|
+
readonly preload: boolean;
|
|
62
|
+
readonly hasPreloadedTools: boolean;
|
|
63
|
+
listTools(): Promise<ListToolsResponse>;
|
|
64
|
+
callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse>;
|
|
65
|
+
toolCallInfo(params: CallToolRequest['params'], resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo>;
|
|
66
|
+
getAllowedToolNamesForSandbox?(): string[] | undefined;
|
|
67
|
+
}
|
|
68
|
+
/** Policy-free tool provider; a {@link ToolSet} wraps it to layer per-agent selector policy on top. */
|
|
69
|
+
export interface ToolSource {
|
|
70
|
+
readonly name: string;
|
|
71
|
+
readonly id: string;
|
|
72
|
+
readonly description?: string | undefined;
|
|
73
|
+
listTools(): Promise<ListToolsResolvedResponse | AuthRequiredResponse>;
|
|
74
|
+
callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse>;
|
|
75
|
+
toolCallInfo(params: CallToolRequest['params'], resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo>;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=IMCPServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMCPServer.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/IMCPServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC3G,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,eAAe,CAAC;CAC/B;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,QAAQ,IAAI,oBAAoB,CAE/G;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE;QAAE,KAAK,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IACrC,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,GAAG,oBAAoB,CAAC;AAEjF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAE9C,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAErC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,SAAS,0BAA0B,EAAE,GAAG,SAAS,CAAC;CAC5D;AAED,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AAErF,MAAM,WAAW,8BAA8B;IAC7C,cAAc,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,EAAE;QAAE,SAAS,EAAE,oBAAoB,CAAA;KAAE,CAAC;CACvD;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,IAAI,wBAAwB,CAE3G;AAED,MAAM,WAAW,8BAA8B;IAC7C,sBAAsB,EAAE;QAAE,SAAS,EAAE,oBAAoB,CAAA;KAAE,CAAC;CAC7D;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,gBAAgB,GACzB,QAAQ,IAAI,8BAA8B,CAE5C;AAED,MAAM,MAAM,gBAAgB,GAC1B,sBAAsB,GAAG,8BAA8B,GAAG,wBAAwB,GAAG,8BAA8B,CAAC;AAEtH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,gBAAgB,GACzB,QAAQ,IAAI,8BAA8B,CAE5C;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,IAAI,wBAAwB,CAEzG;AAED,KAAK,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAIvE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;IACxD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,GAAG,wBAAwB,CAM3B;AAED,gGAAgG;AAChG,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAG1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAI1B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE5G,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAIhH,6BAA6B,CAAC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;CACxD;AAED,uGAAuG;AACvG,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1C,SAAS,IAAI,OAAO,CAAC,yBAAyB,GAAG,oBAAoB,CAAC,CAAC;IAEvE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE5G,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACjH"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/core/mcp/IMCPServer.ts
|
|
21
|
+
var IMCPServer_exports = {};
|
|
22
|
+
__export(IMCPServer_exports, {
|
|
23
|
+
isApprovalRequiredResponse: () => isApprovalRequiredResponse,
|
|
24
|
+
isAuthRequired: () => isAuthRequired,
|
|
25
|
+
isCallToolResponseCreateSubAgent: () => isCallToolResponseCreateSubAgent,
|
|
26
|
+
isCallToolResponseResult: () => isCallToolResponseResult,
|
|
27
|
+
isClientSideToolRequiredResponse: () => isClientSideToolRequiredResponse,
|
|
28
|
+
toolResultResponse: () => toolResultResponse
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(IMCPServer_exports);
|
|
31
|
+
function isAuthRequired(response) {
|
|
32
|
+
return "authRequired" in response;
|
|
33
|
+
}
|
|
34
|
+
function isApprovalRequiredResponse(response) {
|
|
35
|
+
return "approvalRequired" in response;
|
|
36
|
+
}
|
|
37
|
+
function isClientSideToolRequiredResponse(response) {
|
|
38
|
+
return "clientSideToolRequired" in response;
|
|
39
|
+
}
|
|
40
|
+
function isCallToolResponseCreateSubAgent(response) {
|
|
41
|
+
return "createSubAgent" in response;
|
|
42
|
+
}
|
|
43
|
+
function isCallToolResponseResult(response) {
|
|
44
|
+
return "result" in response;
|
|
45
|
+
}
|
|
46
|
+
var EMPTY_METADATA = { wasInitialized: void 0 };
|
|
47
|
+
function toolResultResponse(params) {
|
|
48
|
+
return {
|
|
49
|
+
result: { content: [{ type: "text", text: params.text }], ...params.isError && { isError: true } },
|
|
50
|
+
...EMPTY_METADATA,
|
|
51
|
+
...params.overrides
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
55
|
+
0 && (module.exports = {
|
|
56
|
+
isApprovalRequiredResponse,
|
|
57
|
+
isAuthRequired,
|
|
58
|
+
isCallToolResponseCreateSubAgent,
|
|
59
|
+
isCallToolResponseResult,
|
|
60
|
+
isClientSideToolRequiredResponse,
|
|
61
|
+
toolResultResponse
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=IMCPServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/mcp/IMCPServer.ts"],"sourcesContent":["import type { CallToolRequest, CallToolResult, ListToolsResult } from '@modelcontextprotocol/sdk/types.js';\nimport type { RegisteredPassthroughEvent } from '../events/PassthroughEvents';\nimport type { AgentInfo, ApprovalDecision, MCPServerAuthInfo, MCPServerInitInfo } from '../events/schema';\nimport type { InternalToolCallInfo } from '../llm/LLMTypes';\nimport type { SandboxInfo } from '../sandbox/Sandbox';\n\nexport interface MCPAuthRequired {\n servers: MCPServerAuthInfo[];\n}\n\nexport type ToolSchema = ListToolsResult['tools'][number];\n\nexport interface AgentToolSchema extends ToolSchema {\n preload: boolean;\n}\n\nexport interface AuthRequiredResponse {\n authRequired: MCPAuthRequired;\n}\n\nexport function isAuthRequired(response: ListToolsResponse | CallToolResponse): response is AuthRequiredResponse {\n return 'authRequired' in response;\n}\n\nexport interface ListToolsResolvedResponse {\n result: { tools: AgentToolSchema[] };\n wasInitialized: MCPServerInitInfo | undefined;\n}\n\nexport type ListToolsResponse = ListToolsResolvedResponse | AuthRequiredResponse;\n\nexport interface CallToolResolvedResponse {\n result: CallToolResult;\n wasInitialized: MCPServerInitInfo | undefined;\n // Set to true on the call that created the sandbox; emits `sandbox.created` upstream.\n sandboxCreated?: boolean | undefined;\n // Set on every sandbox-backed call; used for tracing.\n sandboxInfo?: SandboxInfo | undefined;\n events?: readonly RegisteredPassthroughEvent[] | undefined;\n}\n\nexport type CallToolResultResponse = CallToolResolvedResponse | AuthRequiredResponse;\n\nexport interface CallToolCreateSubAgentResponse {\n createSubAgent: AgentInfo;\n}\n\nexport interface ApprovalRequiredResponse {\n approvalRequired: { tool_info: InternalToolCallInfo };\n}\n\nexport function isApprovalRequiredResponse(response: CallToolResponse): response is ApprovalRequiredResponse {\n return 'approvalRequired' in response;\n}\n\nexport interface ClientSideToolRequiredResponse {\n clientSideToolRequired: { tool_info: InternalToolCallInfo };\n}\n\nexport function isClientSideToolRequiredResponse(\n response: CallToolResponse,\n): response is ClientSideToolRequiredResponse {\n return 'clientSideToolRequired' in response;\n}\n\nexport type CallToolResponse =\n CallToolResultResponse | CallToolCreateSubAgentResponse | ApprovalRequiredResponse | ClientSideToolRequiredResponse;\n\nexport function isCallToolResponseCreateSubAgent(\n response: CallToolResponse,\n): response is CallToolCreateSubAgentResponse {\n return 'createSubAgent' in response;\n}\n\nexport function isCallToolResponseResult(response: CallToolResponse): response is CallToolResolvedResponse {\n return 'result' in response;\n}\n\ntype CallToolResultMetadata = Omit<CallToolResolvedResponse, 'result'>;\n\nconst EMPTY_METADATA: CallToolResultMetadata = { wasInitialized: undefined };\n\nexport function toolResultResponse(params: {\n text: string;\n overrides?: Partial<CallToolResultMetadata> | undefined;\n isError?: boolean | undefined;\n}): CallToolResolvedResponse {\n return {\n result: { content: [{ type: 'text', text: params.text }], ...(params.isError && { isError: true }) },\n ...EMPTY_METADATA,\n ...params.overrides,\n };\n}\n\n/** Narrow public MCP server contract. Private implementations may expose additional members. */\nexport interface IToolSet {\n readonly name: string;\n readonly id: string;\n readonly description?: string | undefined;\n\n // True when every exposed tool is eager. DeferredTool uses the inverse.\n readonly preload: boolean;\n\n // Outcome-oriented preflight flag: Tool.ts calls listTools() initially when\n // this is true. It does not expose enable/disable/preload selector policy.\n readonly hasPreloadedTools: boolean;\n\n listTools(): Promise<ListToolsResponse>;\n\n callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse>;\n\n toolCallInfo(params: CallToolRequest['params'], resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo>;\n\n // Existing synchronous Code Mode allow-list. Optional implementations fall\n // back to the current unrestricted envelope; callTool still enforces policy.\n getAllowedToolNamesForSandbox?(): string[] | undefined;\n}\n\n/** Policy-free tool provider; a {@link ToolSet} wraps it to layer per-agent selector policy on top. */\nexport interface ToolSource {\n readonly name: string;\n readonly id: string;\n readonly description?: string | undefined;\n\n listTools(): Promise<ListToolsResolvedResponse | AuthRequiredResponse>;\n\n callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse>;\n\n toolCallInfo(params: CallToolRequest['params'], resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBO,SAAS,eAAe,UAAkF;AAC/G,SAAO,kBAAkB;AAC3B;AA6BO,SAAS,2BAA2B,UAAkE;AAC3G,SAAO,sBAAsB;AAC/B;AAMO,SAAS,iCACd,UAC4C;AAC5C,SAAO,4BAA4B;AACrC;AAKO,SAAS,iCACd,UAC4C;AAC5C,SAAO,oBAAoB;AAC7B;AAEO,SAAS,yBAAyB,UAAkE;AACzG,SAAO,YAAY;AACrB;AAIA,IAAM,iBAAyC,EAAE,gBAAgB,OAAU;AAEpE,SAAS,mBAAmB,QAIN;AAC3B,SAAO;AAAA,IACL,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,KAAK,CAAC,GAAG,GAAI,OAAO,WAAW,EAAE,SAAS,KAAK,EAAG;AAAA,IACnG,GAAG;AAAA,IACH,GAAG,OAAO;AAAA,EACZ;AACF;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// src/core/mcp/IMCPServer.ts
|
|
2
|
+
function isAuthRequired(response) {
|
|
3
|
+
return "authRequired" in response;
|
|
4
|
+
}
|
|
5
|
+
function isApprovalRequiredResponse(response) {
|
|
6
|
+
return "approvalRequired" in response;
|
|
7
|
+
}
|
|
8
|
+
function isClientSideToolRequiredResponse(response) {
|
|
9
|
+
return "clientSideToolRequired" in response;
|
|
10
|
+
}
|
|
11
|
+
function isCallToolResponseCreateSubAgent(response) {
|
|
12
|
+
return "createSubAgent" in response;
|
|
13
|
+
}
|
|
14
|
+
function isCallToolResponseResult(response) {
|
|
15
|
+
return "result" in response;
|
|
16
|
+
}
|
|
17
|
+
var EMPTY_METADATA = { wasInitialized: void 0 };
|
|
18
|
+
function toolResultResponse(params) {
|
|
19
|
+
return {
|
|
20
|
+
result: { content: [{ type: "text", text: params.text }], ...params.isError && { isError: true } },
|
|
21
|
+
...EMPTY_METADATA,
|
|
22
|
+
...params.overrides
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
isApprovalRequiredResponse,
|
|
27
|
+
isAuthRequired,
|
|
28
|
+
isCallToolResponseCreateSubAgent,
|
|
29
|
+
isCallToolResponseResult,
|
|
30
|
+
isClientSideToolRequiredResponse,
|
|
31
|
+
toolResultResponse
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=IMCPServer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/mcp/IMCPServer.ts"],"sourcesContent":["import type { CallToolRequest, CallToolResult, ListToolsResult } from '@modelcontextprotocol/sdk/types.js';\nimport type { RegisteredPassthroughEvent } from '../events/PassthroughEvents';\nimport type { AgentInfo, ApprovalDecision, MCPServerAuthInfo, MCPServerInitInfo } from '../events/schema';\nimport type { InternalToolCallInfo } from '../llm/LLMTypes';\nimport type { SandboxInfo } from '../sandbox/Sandbox';\n\nexport interface MCPAuthRequired {\n servers: MCPServerAuthInfo[];\n}\n\nexport type ToolSchema = ListToolsResult['tools'][number];\n\nexport interface AgentToolSchema extends ToolSchema {\n preload: boolean;\n}\n\nexport interface AuthRequiredResponse {\n authRequired: MCPAuthRequired;\n}\n\nexport function isAuthRequired(response: ListToolsResponse | CallToolResponse): response is AuthRequiredResponse {\n return 'authRequired' in response;\n}\n\nexport interface ListToolsResolvedResponse {\n result: { tools: AgentToolSchema[] };\n wasInitialized: MCPServerInitInfo | undefined;\n}\n\nexport type ListToolsResponse = ListToolsResolvedResponse | AuthRequiredResponse;\n\nexport interface CallToolResolvedResponse {\n result: CallToolResult;\n wasInitialized: MCPServerInitInfo | undefined;\n // Set to true on the call that created the sandbox; emits `sandbox.created` upstream.\n sandboxCreated?: boolean | undefined;\n // Set on every sandbox-backed call; used for tracing.\n sandboxInfo?: SandboxInfo | undefined;\n events?: readonly RegisteredPassthroughEvent[] | undefined;\n}\n\nexport type CallToolResultResponse = CallToolResolvedResponse | AuthRequiredResponse;\n\nexport interface CallToolCreateSubAgentResponse {\n createSubAgent: AgentInfo;\n}\n\nexport interface ApprovalRequiredResponse {\n approvalRequired: { tool_info: InternalToolCallInfo };\n}\n\nexport function isApprovalRequiredResponse(response: CallToolResponse): response is ApprovalRequiredResponse {\n return 'approvalRequired' in response;\n}\n\nexport interface ClientSideToolRequiredResponse {\n clientSideToolRequired: { tool_info: InternalToolCallInfo };\n}\n\nexport function isClientSideToolRequiredResponse(\n response: CallToolResponse,\n): response is ClientSideToolRequiredResponse {\n return 'clientSideToolRequired' in response;\n}\n\nexport type CallToolResponse =\n CallToolResultResponse | CallToolCreateSubAgentResponse | ApprovalRequiredResponse | ClientSideToolRequiredResponse;\n\nexport function isCallToolResponseCreateSubAgent(\n response: CallToolResponse,\n): response is CallToolCreateSubAgentResponse {\n return 'createSubAgent' in response;\n}\n\nexport function isCallToolResponseResult(response: CallToolResponse): response is CallToolResolvedResponse {\n return 'result' in response;\n}\n\ntype CallToolResultMetadata = Omit<CallToolResolvedResponse, 'result'>;\n\nconst EMPTY_METADATA: CallToolResultMetadata = { wasInitialized: undefined };\n\nexport function toolResultResponse(params: {\n text: string;\n overrides?: Partial<CallToolResultMetadata> | undefined;\n isError?: boolean | undefined;\n}): CallToolResolvedResponse {\n return {\n result: { content: [{ type: 'text', text: params.text }], ...(params.isError && { isError: true }) },\n ...EMPTY_METADATA,\n ...params.overrides,\n };\n}\n\n/** Narrow public MCP server contract. Private implementations may expose additional members. */\nexport interface IToolSet {\n readonly name: string;\n readonly id: string;\n readonly description?: string | undefined;\n\n // True when every exposed tool is eager. DeferredTool uses the inverse.\n readonly preload: boolean;\n\n // Outcome-oriented preflight flag: Tool.ts calls listTools() initially when\n // this is true. It does not expose enable/disable/preload selector policy.\n readonly hasPreloadedTools: boolean;\n\n listTools(): Promise<ListToolsResponse>;\n\n callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse>;\n\n toolCallInfo(params: CallToolRequest['params'], resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo>;\n\n // Existing synchronous Code Mode allow-list. Optional implementations fall\n // back to the current unrestricted envelope; callTool still enforces policy.\n getAllowedToolNamesForSandbox?(): string[] | undefined;\n}\n\n/** Policy-free tool provider; a {@link ToolSet} wraps it to layer per-agent selector policy on top. */\nexport interface ToolSource {\n readonly name: string;\n readonly id: string;\n readonly description?: string | undefined;\n\n listTools(): Promise<ListToolsResolvedResponse | AuthRequiredResponse>;\n\n callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse>;\n\n toolCallInfo(params: CallToolRequest['params'], resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo>;\n}\n"],"mappings":";AAoBO,SAAS,eAAe,UAAkF;AAC/G,SAAO,kBAAkB;AAC3B;AA6BO,SAAS,2BAA2B,UAAkE;AAC3G,SAAO,sBAAsB;AAC/B;AAMO,SAAS,iCACd,UAC4C;AAC5C,SAAO,4BAA4B;AACrC;AAKO,SAAS,iCACd,UAC4C;AAC5C,SAAO,oBAAoB;AAC7B;AAEO,SAAS,yBAAyB,UAAkE;AACzG,SAAO,YAAY;AACrB;AAIA,IAAM,iBAAyC,EAAE,gBAAgB,OAAU;AAEpE,SAAS,mBAAmB,QAIN;AAC3B,SAAO;AAAA,IACL,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,KAAK,CAAC,GAAG,GAAI,OAAO,WAAW,EAAE,SAAS,KAAK,EAAG;AAAA,IACnG,GAAG;AAAA,IACH,GAAG,OAAO;AAAA,EACZ;AACF;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { CallToolRequest, ListToolsResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import type { ApprovalDecision } from '../events/schema';
|
|
4
|
+
import type { InternalToolCallInfo } from '../llm/LLMTypes';
|
|
5
|
+
import type { AgentTracing } from '../tracing/AgentTracing';
|
|
6
|
+
import { type CallToolResponse, type IToolSet, type ListToolsResolvedResponse } from './IMCPServer';
|
|
7
|
+
export type ToolDefinition = ListToolsResult['tools'][number] & {
|
|
8
|
+
execute: (raw: unknown, approvalDecision?: ApprovalDecision) => Promise<CallToolResponse>;
|
|
9
|
+
};
|
|
10
|
+
export declare function defineTool<T extends z.ZodType>(config: {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
schema: T;
|
|
14
|
+
handler: (input: z.infer<T>, approvalDecision?: ApprovalDecision) => Promise<CallToolResponse>;
|
|
15
|
+
}): ToolDefinition;
|
|
16
|
+
/**
|
|
17
|
+
* In-process {@link IToolSet} base for local tools: static tool list, allow-all (never filtered or
|
|
18
|
+
* approval-gated), executed in-process within a local trace span. Base for all local/client-side tools.
|
|
19
|
+
*/
|
|
20
|
+
export declare abstract class LocalToolMCP implements IToolSet {
|
|
21
|
+
abstract readonly name: string;
|
|
22
|
+
abstract readonly displayName: string;
|
|
23
|
+
readonly description: string;
|
|
24
|
+
readonly preload: boolean;
|
|
25
|
+
readonly hasPreloadedTools: boolean;
|
|
26
|
+
readonly tracingEnabled: boolean;
|
|
27
|
+
private readonly tracing;
|
|
28
|
+
protected constructor(options: {
|
|
29
|
+
tracing: AgentTracing;
|
|
30
|
+
});
|
|
31
|
+
get id(): string;
|
|
32
|
+
protected get mcpServerId(): string;
|
|
33
|
+
protected abstract getTools(): ToolDefinition[];
|
|
34
|
+
listTools(): Promise<ListToolsResolvedResponse>;
|
|
35
|
+
callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse>;
|
|
36
|
+
toolCallInfo(params: CallToolRequest['params'], _resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo>;
|
|
37
|
+
private executeTool;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=LocalToolMCP.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalToolMCP.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/LocalToolMCP.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,QAAQ,EACb,KAAK,yBAAyB,EAE/B,MAAM,cAAc,CAAC;AAkBtB,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG;IAC9D,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3F,CAAC;AAIF,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC;IAGV,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChG,GAAG,cAAc,CAUjB;AAED;;;GAGG;AACH,8BAAsB,YAAa,YAAW,QAAQ;IACpD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAM;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAQ;IACjC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAQ;IAC3C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAQ;IAExC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,SAAS,aAAa,OAAO,EAAE;QAAE,OAAO,EAAE,YAAY,CAAA;KAAE,EAEvD;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,SAAS,KAAK,WAAW,IAAI,MAAM,CAElC;IAED,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC;IAEhD,SAAS,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAY9C;IAEK,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiBhH;IAID,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAS/G;YAEa,WAAW;CAU1B"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/core/mcp/LocalToolMCP.ts
|
|
21
|
+
var LocalToolMCP_exports = {};
|
|
22
|
+
__export(LocalToolMCP_exports, {
|
|
23
|
+
LocalToolMCP: () => LocalToolMCP,
|
|
24
|
+
defineTool: () => defineTool
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(LocalToolMCP_exports);
|
|
27
|
+
var import_zod = require("zod");
|
|
28
|
+
var import_IMCPServer = require("./IMCPServer.js");
|
|
29
|
+
function withValidatedInput(schema, fn) {
|
|
30
|
+
return async (raw, approvalDecision) => {
|
|
31
|
+
const parsed = schema.safeParse(raw);
|
|
32
|
+
if (!parsed.success) {
|
|
33
|
+
return (0, import_IMCPServer.toolResultResponse)({
|
|
34
|
+
text: JSON.stringify({ error: "Validation failed", details: import_zod.z.treeifyError(parsed.error) }),
|
|
35
|
+
isError: true
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return fn(parsed.data, approvalDecision);
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function defineTool(config) {
|
|
42
|
+
const jsonSchema = config.schema.toJSONSchema({ io: "input" });
|
|
43
|
+
return {
|
|
44
|
+
name: config.name,
|
|
45
|
+
description: config.description,
|
|
46
|
+
inputSchema: jsonSchema,
|
|
47
|
+
execute: withValidatedInput(config.schema, config.handler)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
var LocalToolMCP = class {
|
|
51
|
+
description = "";
|
|
52
|
+
preload = true;
|
|
53
|
+
hasPreloadedTools = true;
|
|
54
|
+
tracingEnabled = true;
|
|
55
|
+
tracing;
|
|
56
|
+
constructor(options) {
|
|
57
|
+
this.tracing = options.tracing;
|
|
58
|
+
}
|
|
59
|
+
get id() {
|
|
60
|
+
return this.mcpServerId;
|
|
61
|
+
}
|
|
62
|
+
get mcpServerId() {
|
|
63
|
+
return this.name;
|
|
64
|
+
}
|
|
65
|
+
listTools() {
|
|
66
|
+
return Promise.resolve({
|
|
67
|
+
result: {
|
|
68
|
+
tools: this.getTools().map((t) => ({
|
|
69
|
+
name: t.name,
|
|
70
|
+
description: t.description,
|
|
71
|
+
inputSchema: t.inputSchema,
|
|
72
|
+
preload: true
|
|
73
|
+
}))
|
|
74
|
+
},
|
|
75
|
+
wasInitialized: void 0
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
async callTool(params, approvalDecision) {
|
|
79
|
+
return this.tracing.withLocalToolSpan(
|
|
80
|
+
{
|
|
81
|
+
displayName: this.displayName,
|
|
82
|
+
toolName: params.name,
|
|
83
|
+
input: JSON.stringify(params.arguments),
|
|
84
|
+
enabled: this.tracingEnabled
|
|
85
|
+
},
|
|
86
|
+
async (span) => {
|
|
87
|
+
const response = await this.executeTool(params, approvalDecision);
|
|
88
|
+
span.setOutput(JSON.stringify(response));
|
|
89
|
+
if ((0, import_IMCPServer.isCallToolResponseResult)(response) && response.sandboxInfo) {
|
|
90
|
+
span.setSandboxId(response.sandboxInfo.sandbox_id);
|
|
91
|
+
}
|
|
92
|
+
return response;
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
// Local tools are not approval gated by default.
|
|
97
|
+
// Second arg kept for IToolSet / DeferredTool compatibility (unused here).
|
|
98
|
+
toolCallInfo(params, _resolveUnderlyingTool) {
|
|
99
|
+
void _resolveUnderlyingTool;
|
|
100
|
+
return Promise.resolve({
|
|
101
|
+
type: "truefoundry-system",
|
|
102
|
+
mcp_server_id: this.mcpServerId,
|
|
103
|
+
mcp_server_name: this.name,
|
|
104
|
+
original_tool_name: params.name,
|
|
105
|
+
is_approval_required: false
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
async executeTool(params, approvalDecision) {
|
|
109
|
+
const tool = this.getTools().find((t) => t.name === params.name);
|
|
110
|
+
if (!tool) {
|
|
111
|
+
return (0, import_IMCPServer.toolResultResponse)({ text: JSON.stringify({ error: `Unknown tool: ${params.name}` }), isError: true });
|
|
112
|
+
}
|
|
113
|
+
return tool.execute(params.arguments, approvalDecision);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
117
|
+
0 && (module.exports = {
|
|
118
|
+
LocalToolMCP,
|
|
119
|
+
defineTool
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=LocalToolMCP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/mcp/LocalToolMCP.ts"],"sourcesContent":["import type { CallToolRequest, ListToolsResult } from '@modelcontextprotocol/sdk/types.js';\nimport { z } from 'zod';\nimport type { ApprovalDecision } from '../events/schema';\nimport type { InternalToolCallInfo } from '../llm/LLMTypes';\nimport type { AgentTracing } from '../tracing/AgentTracing';\nimport {\n type CallToolResponse,\n isCallToolResponseResult,\n type IToolSet,\n type ListToolsResolvedResponse,\n toolResultResponse,\n} from './IMCPServer';\n\nfunction withValidatedInput<T extends z.ZodType>(\n schema: T,\n fn: (input: z.infer<T>, approvalDecision?: ApprovalDecision) => Promise<CallToolResponse>,\n) {\n return async (raw: unknown, approvalDecision?: ApprovalDecision): Promise<CallToolResponse> => {\n const parsed = schema.safeParse(raw);\n if (!parsed.success) {\n return toolResultResponse({\n text: JSON.stringify({ error: 'Validation failed', details: z.treeifyError(parsed.error) }),\n isError: true,\n });\n }\n return fn(parsed.data, approvalDecision);\n };\n}\n\nexport type ToolDefinition = ListToolsResult['tools'][number] & {\n execute: (raw: unknown, approvalDecision?: ApprovalDecision) => Promise<CallToolResponse>;\n};\n\ntype ToolInputSchema = ListToolsResult['tools'][number]['inputSchema'];\n\nexport function defineTool<T extends z.ZodType>(config: {\n name: string;\n description: string;\n schema: T;\n // Handlers may opt into the approvalDecision (forwarded by the agent loop after the\n // user approves an approval-gated tool). Handlers that don't declare it ignore it.\n handler: (input: z.infer<T>, approvalDecision?: ApprovalDecision) => Promise<CallToolResponse>;\n}): ToolDefinition {\n // Advertise the *input* shape: fields with `.default()` are optional to callers\n // (Zod 4's default `io: \"output\"` would mark them required after defaults apply).\n const jsonSchema = config.schema.toJSONSchema({ io: 'input' }) as ToolInputSchema;\n return {\n name: config.name,\n description: config.description,\n inputSchema: jsonSchema,\n execute: withValidatedInput(config.schema, config.handler),\n };\n}\n\n/**\n * In-process {@link IToolSet} base for local tools: static tool list, allow-all (never filtered or\n * approval-gated), executed in-process within a local trace span. Base for all local/client-side tools.\n */\nexport abstract class LocalToolMCP implements IToolSet {\n abstract readonly name: string;\n abstract readonly displayName: string;\n readonly description: string = '';\n readonly preload: boolean = true;\n readonly hasPreloadedTools: boolean = true;\n readonly tracingEnabled: boolean = true;\n\n private readonly tracing: AgentTracing;\n\n protected constructor(options: { tracing: AgentTracing }) {\n this.tracing = options.tracing;\n }\n\n get id(): string {\n return this.mcpServerId;\n }\n\n protected get mcpServerId(): string {\n return this.name;\n }\n\n protected abstract getTools(): ToolDefinition[];\n\n listTools(): Promise<ListToolsResolvedResponse> {\n return Promise.resolve({\n result: {\n tools: this.getTools().map(t => ({\n name: t.name,\n description: t.description,\n inputSchema: t.inputSchema,\n preload: true,\n })),\n },\n wasInitialized: undefined,\n });\n }\n\n async callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse> {\n return this.tracing.withLocalToolSpan(\n {\n displayName: this.displayName,\n toolName: params.name,\n input: JSON.stringify(params.arguments),\n enabled: this.tracingEnabled,\n },\n async span => {\n const response = await this.executeTool(params, approvalDecision);\n span.setOutput(JSON.stringify(response));\n if (isCallToolResponseResult(response) && response.sandboxInfo) {\n span.setSandboxId(response.sandboxInfo.sandbox_id);\n }\n return response;\n },\n );\n }\n\n // Local tools are not approval gated by default.\n // Second arg kept for IToolSet / DeferredTool compatibility (unused here).\n toolCallInfo(params: CallToolRequest['params'], _resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo> {\n void _resolveUnderlyingTool;\n return Promise.resolve({\n type: 'truefoundry-system',\n mcp_server_id: this.mcpServerId,\n mcp_server_name: this.name,\n original_tool_name: params.name,\n is_approval_required: false,\n });\n }\n\n private async executeTool(\n params: CallToolRequest['params'],\n approvalDecision?: ApprovalDecision,\n ): Promise<CallToolResponse> {\n const tool = this.getTools().find(t => t.name === params.name);\n if (!tool) {\n return toolResultResponse({ text: JSON.stringify({ error: `Unknown tool: ${params.name}` }), isError: true });\n }\n return tool.execute(params.arguments, approvalDecision);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAkB;AAIlB,wBAMO;AAEP,SAAS,mBACP,QACA,IACA;AACA,SAAO,OAAO,KAAc,qBAAmE;AAC7F,UAAM,SAAS,OAAO,UAAU,GAAG;AACnC,QAAI,CAAC,OAAO,SAAS;AACnB,iBAAO,sCAAmB;AAAA,QACxB,MAAM,KAAK,UAAU,EAAE,OAAO,qBAAqB,SAAS,aAAE,aAAa,OAAO,KAAK,EAAE,CAAC;AAAA,QAC1F,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,WAAO,GAAG,OAAO,MAAM,gBAAgB;AAAA,EACzC;AACF;AAQO,SAAS,WAAgC,QAO7B;AAGjB,QAAM,aAAa,OAAO,OAAO,aAAa,EAAE,IAAI,QAAQ,CAAC;AAC7D,SAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb,aAAa,OAAO;AAAA,IACpB,aAAa;AAAA,IACb,SAAS,mBAAmB,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC3D;AACF;AAMO,IAAe,eAAf,MAAgD;AAAA,EAG5C,cAAsB;AAAA,EACtB,UAAmB;AAAA,EACnB,oBAA6B;AAAA,EAC7B,iBAA0B;AAAA,EAElB;AAAA,EAEP,YAAY,SAAoC;AACxD,SAAK,UAAU,QAAQ;AAAA,EACzB;AAAA,EAEA,IAAI,KAAa;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAsB;AAClC,WAAO,KAAK;AAAA,EACd;AAAA,EAIA,YAAgD;AAC9C,WAAO,QAAQ,QAAQ;AAAA,MACrB,QAAQ;AAAA,QACN,OAAO,KAAK,SAAS,EAAE,IAAI,QAAM;AAAA,UAC/B,MAAM,EAAE;AAAA,UACR,aAAa,EAAE;AAAA,UACf,aAAa,EAAE;AAAA,UACf,SAAS;AAAA,QACX,EAAE;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,SAAS,QAAmC,kBAAgE;AAChH,WAAO,KAAK,QAAQ;AAAA,MAClB;AAAA,QACE,aAAa,KAAK;AAAA,QAClB,UAAU,OAAO;AAAA,QACjB,OAAO,KAAK,UAAU,OAAO,SAAS;AAAA,QACtC,SAAS,KAAK;AAAA,MAChB;AAAA,MACA,OAAM,SAAQ;AACZ,cAAM,WAAW,MAAM,KAAK,YAAY,QAAQ,gBAAgB;AAChE,aAAK,UAAU,KAAK,UAAU,QAAQ,CAAC;AACvC,gBAAI,4CAAyB,QAAQ,KAAK,SAAS,aAAa;AAC9D,eAAK,aAAa,SAAS,YAAY,UAAU;AAAA,QACnD;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA,EAIA,aAAa,QAAmC,wBAAiE;AAC/G,SAAK;AACL,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM;AAAA,MACN,eAAe,KAAK;AAAA,MACpB,iBAAiB,KAAK;AAAA,MACtB,oBAAoB,OAAO;AAAA,MAC3B,sBAAsB;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,YACZ,QACA,kBAC2B;AAC3B,UAAM,OAAO,KAAK,SAAS,EAAE,KAAK,OAAK,EAAE,SAAS,OAAO,IAAI;AAC7D,QAAI,CAAC,MAAM;AACT,iBAAO,sCAAmB,EAAE,MAAM,KAAK,UAAU,EAAE,OAAO,iBAAiB,OAAO,IAAI,GAAG,CAAC,GAAG,SAAS,KAAK,CAAC;AAAA,IAC9G;AACA,WAAO,KAAK,QAAQ,OAAO,WAAW,gBAAgB;AAAA,EACxD;AACF;","names":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// src/core/mcp/LocalToolMCP.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import {
|
|
4
|
+
isCallToolResponseResult,
|
|
5
|
+
toolResultResponse
|
|
6
|
+
} from "./IMCPServer.mjs";
|
|
7
|
+
function withValidatedInput(schema, fn) {
|
|
8
|
+
return async (raw, approvalDecision) => {
|
|
9
|
+
const parsed = schema.safeParse(raw);
|
|
10
|
+
if (!parsed.success) {
|
|
11
|
+
return toolResultResponse({
|
|
12
|
+
text: JSON.stringify({ error: "Validation failed", details: z.treeifyError(parsed.error) }),
|
|
13
|
+
isError: true
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return fn(parsed.data, approvalDecision);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function defineTool(config) {
|
|
20
|
+
const jsonSchema = config.schema.toJSONSchema({ io: "input" });
|
|
21
|
+
return {
|
|
22
|
+
name: config.name,
|
|
23
|
+
description: config.description,
|
|
24
|
+
inputSchema: jsonSchema,
|
|
25
|
+
execute: withValidatedInput(config.schema, config.handler)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
var LocalToolMCP = class {
|
|
29
|
+
description = "";
|
|
30
|
+
preload = true;
|
|
31
|
+
hasPreloadedTools = true;
|
|
32
|
+
tracingEnabled = true;
|
|
33
|
+
tracing;
|
|
34
|
+
constructor(options) {
|
|
35
|
+
this.tracing = options.tracing;
|
|
36
|
+
}
|
|
37
|
+
get id() {
|
|
38
|
+
return this.mcpServerId;
|
|
39
|
+
}
|
|
40
|
+
get mcpServerId() {
|
|
41
|
+
return this.name;
|
|
42
|
+
}
|
|
43
|
+
listTools() {
|
|
44
|
+
return Promise.resolve({
|
|
45
|
+
result: {
|
|
46
|
+
tools: this.getTools().map((t) => ({
|
|
47
|
+
name: t.name,
|
|
48
|
+
description: t.description,
|
|
49
|
+
inputSchema: t.inputSchema,
|
|
50
|
+
preload: true
|
|
51
|
+
}))
|
|
52
|
+
},
|
|
53
|
+
wasInitialized: void 0
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async callTool(params, approvalDecision) {
|
|
57
|
+
return this.tracing.withLocalToolSpan(
|
|
58
|
+
{
|
|
59
|
+
displayName: this.displayName,
|
|
60
|
+
toolName: params.name,
|
|
61
|
+
input: JSON.stringify(params.arguments),
|
|
62
|
+
enabled: this.tracingEnabled
|
|
63
|
+
},
|
|
64
|
+
async (span) => {
|
|
65
|
+
const response = await this.executeTool(params, approvalDecision);
|
|
66
|
+
span.setOutput(JSON.stringify(response));
|
|
67
|
+
if (isCallToolResponseResult(response) && response.sandboxInfo) {
|
|
68
|
+
span.setSandboxId(response.sandboxInfo.sandbox_id);
|
|
69
|
+
}
|
|
70
|
+
return response;
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
// Local tools are not approval gated by default.
|
|
75
|
+
// Second arg kept for IToolSet / DeferredTool compatibility (unused here).
|
|
76
|
+
toolCallInfo(params, _resolveUnderlyingTool) {
|
|
77
|
+
void _resolveUnderlyingTool;
|
|
78
|
+
return Promise.resolve({
|
|
79
|
+
type: "truefoundry-system",
|
|
80
|
+
mcp_server_id: this.mcpServerId,
|
|
81
|
+
mcp_server_name: this.name,
|
|
82
|
+
original_tool_name: params.name,
|
|
83
|
+
is_approval_required: false
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async executeTool(params, approvalDecision) {
|
|
87
|
+
const tool = this.getTools().find((t) => t.name === params.name);
|
|
88
|
+
if (!tool) {
|
|
89
|
+
return toolResultResponse({ text: JSON.stringify({ error: `Unknown tool: ${params.name}` }), isError: true });
|
|
90
|
+
}
|
|
91
|
+
return tool.execute(params.arguments, approvalDecision);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
export {
|
|
95
|
+
LocalToolMCP,
|
|
96
|
+
defineTool
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=LocalToolMCP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/mcp/LocalToolMCP.ts"],"sourcesContent":["import type { CallToolRequest, ListToolsResult } from '@modelcontextprotocol/sdk/types.js';\nimport { z } from 'zod';\nimport type { ApprovalDecision } from '../events/schema';\nimport type { InternalToolCallInfo } from '../llm/LLMTypes';\nimport type { AgentTracing } from '../tracing/AgentTracing';\nimport {\n type CallToolResponse,\n isCallToolResponseResult,\n type IToolSet,\n type ListToolsResolvedResponse,\n toolResultResponse,\n} from './IMCPServer';\n\nfunction withValidatedInput<T extends z.ZodType>(\n schema: T,\n fn: (input: z.infer<T>, approvalDecision?: ApprovalDecision) => Promise<CallToolResponse>,\n) {\n return async (raw: unknown, approvalDecision?: ApprovalDecision): Promise<CallToolResponse> => {\n const parsed = schema.safeParse(raw);\n if (!parsed.success) {\n return toolResultResponse({\n text: JSON.stringify({ error: 'Validation failed', details: z.treeifyError(parsed.error) }),\n isError: true,\n });\n }\n return fn(parsed.data, approvalDecision);\n };\n}\n\nexport type ToolDefinition = ListToolsResult['tools'][number] & {\n execute: (raw: unknown, approvalDecision?: ApprovalDecision) => Promise<CallToolResponse>;\n};\n\ntype ToolInputSchema = ListToolsResult['tools'][number]['inputSchema'];\n\nexport function defineTool<T extends z.ZodType>(config: {\n name: string;\n description: string;\n schema: T;\n // Handlers may opt into the approvalDecision (forwarded by the agent loop after the\n // user approves an approval-gated tool). Handlers that don't declare it ignore it.\n handler: (input: z.infer<T>, approvalDecision?: ApprovalDecision) => Promise<CallToolResponse>;\n}): ToolDefinition {\n // Advertise the *input* shape: fields with `.default()` are optional to callers\n // (Zod 4's default `io: \"output\"` would mark them required after defaults apply).\n const jsonSchema = config.schema.toJSONSchema({ io: 'input' }) as ToolInputSchema;\n return {\n name: config.name,\n description: config.description,\n inputSchema: jsonSchema,\n execute: withValidatedInput(config.schema, config.handler),\n };\n}\n\n/**\n * In-process {@link IToolSet} base for local tools: static tool list, allow-all (never filtered or\n * approval-gated), executed in-process within a local trace span. Base for all local/client-side tools.\n */\nexport abstract class LocalToolMCP implements IToolSet {\n abstract readonly name: string;\n abstract readonly displayName: string;\n readonly description: string = '';\n readonly preload: boolean = true;\n readonly hasPreloadedTools: boolean = true;\n readonly tracingEnabled: boolean = true;\n\n private readonly tracing: AgentTracing;\n\n protected constructor(options: { tracing: AgentTracing }) {\n this.tracing = options.tracing;\n }\n\n get id(): string {\n return this.mcpServerId;\n }\n\n protected get mcpServerId(): string {\n return this.name;\n }\n\n protected abstract getTools(): ToolDefinition[];\n\n listTools(): Promise<ListToolsResolvedResponse> {\n return Promise.resolve({\n result: {\n tools: this.getTools().map(t => ({\n name: t.name,\n description: t.description,\n inputSchema: t.inputSchema,\n preload: true,\n })),\n },\n wasInitialized: undefined,\n });\n }\n\n async callTool(params: CallToolRequest['params'], approvalDecision?: ApprovalDecision): Promise<CallToolResponse> {\n return this.tracing.withLocalToolSpan(\n {\n displayName: this.displayName,\n toolName: params.name,\n input: JSON.stringify(params.arguments),\n enabled: this.tracingEnabled,\n },\n async span => {\n const response = await this.executeTool(params, approvalDecision);\n span.setOutput(JSON.stringify(response));\n if (isCallToolResponseResult(response) && response.sandboxInfo) {\n span.setSandboxId(response.sandboxInfo.sandbox_id);\n }\n return response;\n },\n );\n }\n\n // Local tools are not approval gated by default.\n // Second arg kept for IToolSet / DeferredTool compatibility (unused here).\n toolCallInfo(params: CallToolRequest['params'], _resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo> {\n void _resolveUnderlyingTool;\n return Promise.resolve({\n type: 'truefoundry-system',\n mcp_server_id: this.mcpServerId,\n mcp_server_name: this.name,\n original_tool_name: params.name,\n is_approval_required: false,\n });\n }\n\n private async executeTool(\n params: CallToolRequest['params'],\n approvalDecision?: ApprovalDecision,\n ): Promise<CallToolResponse> {\n const tool = this.getTools().find(t => t.name === params.name);\n if (!tool) {\n return toolResultResponse({ text: JSON.stringify({ error: `Unknown tool: ${params.name}` }), isError: true });\n }\n return tool.execute(params.arguments, approvalDecision);\n }\n}\n"],"mappings":";AACA,SAAS,SAAS;AAIlB;AAAA,EAEE;AAAA,EAGA;AAAA,OACK;AAEP,SAAS,mBACP,QACA,IACA;AACA,SAAO,OAAO,KAAc,qBAAmE;AAC7F,UAAM,SAAS,OAAO,UAAU,GAAG;AACnC,QAAI,CAAC,OAAO,SAAS;AACnB,aAAO,mBAAmB;AAAA,QACxB,MAAM,KAAK,UAAU,EAAE,OAAO,qBAAqB,SAAS,EAAE,aAAa,OAAO,KAAK,EAAE,CAAC;AAAA,QAC1F,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,WAAO,GAAG,OAAO,MAAM,gBAAgB;AAAA,EACzC;AACF;AAQO,SAAS,WAAgC,QAO7B;AAGjB,QAAM,aAAa,OAAO,OAAO,aAAa,EAAE,IAAI,QAAQ,CAAC;AAC7D,SAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb,aAAa,OAAO;AAAA,IACpB,aAAa;AAAA,IACb,SAAS,mBAAmB,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC3D;AACF;AAMO,IAAe,eAAf,MAAgD;AAAA,EAG5C,cAAsB;AAAA,EACtB,UAAmB;AAAA,EACnB,oBAA6B;AAAA,EAC7B,iBAA0B;AAAA,EAElB;AAAA,EAEP,YAAY,SAAoC;AACxD,SAAK,UAAU,QAAQ;AAAA,EACzB;AAAA,EAEA,IAAI,KAAa;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,cAAsB;AAClC,WAAO,KAAK;AAAA,EACd;AAAA,EAIA,YAAgD;AAC9C,WAAO,QAAQ,QAAQ;AAAA,MACrB,QAAQ;AAAA,QACN,OAAO,KAAK,SAAS,EAAE,IAAI,QAAM;AAAA,UAC/B,MAAM,EAAE;AAAA,UACR,aAAa,EAAE;AAAA,UACf,aAAa,EAAE;AAAA,UACf,SAAS;AAAA,QACX,EAAE;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,SAAS,QAAmC,kBAAgE;AAChH,WAAO,KAAK,QAAQ;AAAA,MAClB;AAAA,QACE,aAAa,KAAK;AAAA,QAClB,UAAU,OAAO;AAAA,QACjB,OAAO,KAAK,UAAU,OAAO,SAAS;AAAA,QACtC,SAAS,KAAK;AAAA,MAChB;AAAA,MACA,OAAM,SAAQ;AACZ,cAAM,WAAW,MAAM,KAAK,YAAY,QAAQ,gBAAgB;AAChE,aAAK,UAAU,KAAK,UAAU,QAAQ,CAAC;AACvC,YAAI,yBAAyB,QAAQ,KAAK,SAAS,aAAa;AAC9D,eAAK,aAAa,SAAS,YAAY,UAAU;AAAA,QACnD;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA,EAIA,aAAa,QAAmC,wBAAiE;AAC/G,SAAK;AACL,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM;AAAA,MACN,eAAe,KAAK;AAAA,MACpB,iBAAiB,KAAK;AAAA,MACtB,oBAAoB,OAAO;AAAA,MAC3B,sBAAsB;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,YACZ,QACA,kBAC2B;AAC3B,UAAM,OAAO,KAAK,SAAS,EAAE,KAAK,OAAK,EAAE,SAAS,OAAO,IAAI;AAC7D,QAAI,CAAC,MAAM;AACT,aAAO,mBAAmB,EAAE,MAAM,KAAK,UAAU,EAAE,OAAO,iBAAiB,OAAO,IAAI,GAAG,CAAC,GAAG,SAAS,KAAK,CAAC;AAAA,IAC9G;AACA,WAAO,KAAK,QAAQ,OAAO,WAAW,gBAAgB;AAAA,EACxD;AACF;","names":[]}
|