agentfootprint 12.0.1 → 12.2.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/AGENTS.md +1 -1
- package/CAPABILITIES.md +3 -0
- package/ai-instructions/claude-code/SKILL.md +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js +113 -7
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/session.js +21 -21
- package/dist/adapters/mcp/agentcoreRuntime/session.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/transport.js +79 -5
- package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/core/Agent.js +6 -0
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +4 -0
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +8 -0
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +23 -4
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +112 -6
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.d.ts +20 -6
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.js +21 -21
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +81 -7
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/esm/core/Agent.js +6 -0
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.js +4 -0
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.d.ts +12 -0
- package/dist/esm/core/slots/buildToolsSlot.js +8 -0
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +41 -0
- package/dist/esm/events/registry.d.ts +3 -1
- package/dist/esm/events/registry.js +2 -0
- package/dist/esm/events/registry.js.map +1 -1
- package/dist/esm/identity/types.d.ts +7 -3
- package/dist/esm/identity/types.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/boundedJson.d.ts +14 -7
- package/dist/esm/lib/boundedJson.js +14 -7
- package/dist/esm/lib/boundedJson.js.map +1 -1
- package/dist/esm/mcp/callChecks.d.ts +160 -0
- package/dist/esm/mcp/callChecks.js +237 -0
- package/dist/esm/mcp/callChecks.js.map +1 -0
- package/dist/esm/mcp/callLifetime.js +5 -2
- package/dist/esm/mcp/callLifetime.js.map +1 -1
- package/dist/esm/mcp/clientPort.d.ts +78 -0
- package/dist/esm/mcp/clientPort.js +33 -0
- package/dist/esm/mcp/clientPort.js.map +1 -0
- package/dist/esm/mcp/gatewayTransport.js +13 -3
- package/dist/esm/mcp/gatewayTransport.js.map +1 -1
- package/dist/esm/mcp/index.d.ts +11 -1
- package/dist/esm/mcp/index.js +15 -0
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/listingGenerations.d.ts +54 -0
- package/dist/esm/mcp/listingGenerations.js +75 -0
- package/dist/esm/mcp/listingGenerations.js.map +1 -0
- package/dist/esm/mcp/mcpClient.d.ts +18 -1
- package/dist/esm/mcp/mcpClient.js +302 -57
- package/dist/esm/mcp/mcpClient.js.map +1 -1
- package/dist/esm/mcp/mockMcpClient.js +13 -0
- package/dist/esm/mcp/mockMcpClient.js.map +1 -1
- package/dist/esm/mcp/pool/boundTool.d.ts +58 -0
- package/dist/esm/mcp/pool/boundTool.js +218 -0
- package/dist/esm/mcp/pool/boundTool.js.map +1 -0
- package/dist/esm/mcp/pool/clientSet.d.ts +73 -0
- package/dist/esm/mcp/pool/clientSet.js +152 -0
- package/dist/esm/mcp/pool/clientSet.js.map +1 -0
- package/dist/esm/mcp/pool/definitions.d.ts +103 -0
- package/dist/esm/mcp/pool/definitions.js +168 -0
- package/dist/esm/mcp/pool/definitions.js.map +1 -0
- package/dist/esm/mcp/pool/errors.d.ts +76 -0
- package/dist/esm/mcp/pool/errors.js +91 -0
- package/dist/esm/mcp/pool/errors.js.map +1 -0
- package/dist/esm/mcp/pool/identityKey.d.ts +57 -0
- package/dist/esm/mcp/pool/identityKey.js +94 -0
- package/dist/esm/mcp/pool/identityKey.js.map +1 -0
- package/dist/esm/mcp/pool/lease.d.ts +36 -0
- package/dist/esm/mcp/pool/lease.js +51 -0
- package/dist/esm/mcp/pool/lease.js.map +1 -0
- package/dist/esm/mcp/pool/listTools.d.ts +33 -0
- package/dist/esm/mcp/pool/listTools.js +146 -0
- package/dist/esm/mcp/pool/listTools.js.map +1 -0
- package/dist/esm/mcp/pool/mcpClientPool.d.ts +121 -0
- package/dist/esm/mcp/pool/mcpClientPool.js +151 -0
- package/dist/esm/mcp/pool/mcpClientPool.js.map +1 -0
- package/dist/esm/mcp/pool/options.d.ts +183 -0
- package/dist/esm/mcp/pool/options.js +119 -0
- package/dist/esm/mcp/pool/options.js.map +1 -0
- package/dist/esm/mcp/pool/plan.d.ts +77 -0
- package/dist/esm/mcp/pool/plan.js +134 -0
- package/dist/esm/mcp/pool/plan.js.map +1 -0
- package/dist/esm/mcp/pool/pool.d.ts +307 -0
- package/dist/esm/mcp/pool/pool.js +1071 -0
- package/dist/esm/mcp/pool/pool.js.map +1 -0
- package/dist/esm/mcp/pool/pooledClient.d.ts +93 -0
- package/dist/esm/mcp/pool/pooledClient.js +90 -0
- package/dist/esm/mcp/pool/pooledClient.js.map +1 -0
- package/dist/esm/mcp/pool/record.d.ts +80 -0
- package/dist/esm/mcp/pool/record.js +75 -0
- package/dist/esm/mcp/pool/record.js.map +1 -0
- package/dist/esm/mcp/pool/sessionEnded.d.ts +24 -0
- package/dist/esm/mcp/pool/sessionEnded.js +31 -0
- package/dist/esm/mcp/pool/sessionEnded.js.map +1 -0
- package/dist/esm/mcp/pool/work.d.ts +116 -0
- package/dist/esm/mcp/pool/work.js +213 -0
- package/dist/esm/mcp/pool/work.js.map +1 -0
- package/dist/esm/mcp/requestGuard.d.ts +70 -0
- package/dist/esm/mcp/requestGuard.js +98 -0
- package/dist/esm/mcp/requestGuard.js.map +1 -0
- package/dist/esm/mcp/requestLedger.d.ts +35 -1
- package/dist/esm/mcp/requestLedger.js +76 -3
- package/dist/esm/mcp/requestLedger.js.map +1 -1
- package/dist/esm/mcp/seriesEvidence.d.ts +10 -6
- package/dist/esm/mcp/seriesEvidence.js +16 -7
- package/dist/esm/mcp/seriesEvidence.js.map +1 -1
- package/dist/esm/mcp/terminate.d.ts +94 -0
- package/dist/esm/mcp/terminate.js +184 -0
- package/dist/esm/mcp/terminate.js.map +1 -0
- package/dist/esm/mcp/throttleRetry.js +71 -7
- package/dist/esm/mcp/throttleRetry.js.map +1 -1
- package/dist/esm/mcp/toolList.d.ts +90 -0
- package/dist/esm/mcp/toolList.js +123 -0
- package/dist/esm/mcp/toolList.js.map +1 -0
- package/dist/esm/mcp/types.d.ts +197 -3
- package/dist/esm/redaction/knownStrings.js +34 -0
- package/dist/esm/redaction/knownStrings.js.map +1 -1
- package/dist/esm/tool-providers/index.d.ts +2 -2
- package/dist/esm/tool-providers/index.js +15 -1
- package/dist/esm/tool-providers/index.js.map +1 -1
- package/dist/esm/tools/mcpClientUse.d.ts +59 -0
- package/dist/esm/tools/mcpClientUse.js +216 -0
- package/dist/esm/tools/mcpClientUse.js.map +1 -0
- package/dist/esm/tools/toolProvider.d.ts +16 -0
- package/dist/esm/tools/toolSessions.d.ts +41 -0
- package/dist/esm/tools/toolSessions.js +41 -1
- package/dist/esm/tools/toolSessions.js.map +1 -1
- package/dist/events/registry.js +2 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/identity/types.js.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/boundedJson.js +14 -7
- package/dist/lib/boundedJson.js.map +1 -1
- package/dist/mcp/callChecks.js +247 -0
- package/dist/mcp/callChecks.js.map +1 -0
- package/dist/mcp/callLifetime.js +5 -2
- package/dist/mcp/callLifetime.js.map +1 -1
- package/dist/mcp/clientPort.js +38 -0
- package/dist/mcp/clientPort.js.map +1 -0
- package/dist/mcp/gatewayTransport.js +13 -3
- package/dist/mcp/gatewayTransport.js.map +1 -1
- package/dist/mcp/index.js +25 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/listingGenerations.js +80 -0
- package/dist/mcp/listingGenerations.js.map +1 -0
- package/dist/mcp/mcpClient.js +306 -59
- package/dist/mcp/mcpClient.js.map +1 -1
- package/dist/mcp/mockMcpClient.js +13 -0
- package/dist/mcp/mockMcpClient.js.map +1 -1
- package/dist/mcp/pool/boundTool.js +223 -0
- package/dist/mcp/pool/boundTool.js.map +1 -0
- package/dist/mcp/pool/clientSet.js +157 -0
- package/dist/mcp/pool/clientSet.js.map +1 -0
- package/dist/mcp/pool/definitions.js +174 -0
- package/dist/mcp/pool/definitions.js.map +1 -0
- package/dist/mcp/pool/errors.js +96 -0
- package/dist/mcp/pool/errors.js.map +1 -0
- package/dist/mcp/pool/identityKey.js +99 -0
- package/dist/mcp/pool/identityKey.js.map +1 -0
- package/dist/mcp/pool/lease.js +55 -0
- package/dist/mcp/pool/lease.js.map +1 -0
- package/dist/mcp/pool/listTools.js +150 -0
- package/dist/mcp/pool/listTools.js.map +1 -0
- package/dist/mcp/pool/mcpClientPool.js +155 -0
- package/dist/mcp/pool/mcpClientPool.js.map +1 -0
- package/dist/mcp/pool/options.js +123 -0
- package/dist/mcp/pool/options.js.map +1 -0
- package/dist/mcp/pool/plan.js +140 -0
- package/dist/mcp/pool/plan.js.map +1 -0
- package/dist/mcp/pool/pool.js +1075 -0
- package/dist/mcp/pool/pool.js.map +1 -0
- package/dist/mcp/pool/pooledClient.js +94 -0
- package/dist/mcp/pool/pooledClient.js.map +1 -0
- package/dist/mcp/pool/record.js +80 -0
- package/dist/mcp/pool/record.js.map +1 -0
- package/dist/mcp/pool/sessionEnded.js +35 -0
- package/dist/mcp/pool/sessionEnded.js.map +1 -0
- package/dist/mcp/pool/work.js +219 -0
- package/dist/mcp/pool/work.js.map +1 -0
- package/dist/mcp/requestGuard.js +106 -0
- package/dist/mcp/requestGuard.js.map +1 -0
- package/dist/mcp/requestLedger.js +76 -3
- package/dist/mcp/requestLedger.js.map +1 -1
- package/dist/mcp/seriesEvidence.js +16 -7
- package/dist/mcp/seriesEvidence.js.map +1 -1
- package/dist/mcp/terminate.js +193 -0
- package/dist/mcp/terminate.js.map +1 -0
- package/dist/mcp/throttleRetry.js +71 -7
- package/dist/mcp/throttleRetry.js.map +1 -1
- package/dist/mcp/toolList.js +128 -0
- package/dist/mcp/toolList.js.map +1 -0
- package/dist/redaction/knownStrings.js +34 -0
- package/dist/redaction/knownStrings.js.map +1 -1
- package/dist/tool-providers/index.js +20 -1
- package/dist/tool-providers/index.js.map +1 -1
- package/dist/tools/mcpClientUse.js +225 -0
- package/dist/tools/mcpClientUse.js.map +1 -0
- package/dist/tools/toolSessions.js +44 -1
- package/dist/tools/toolSessions.js.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +23 -4
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts +20 -6
- package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts +12 -0
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +41 -0
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/events/registry.d.ts +3 -1
- package/dist/types/events/registry.d.ts.map +1 -1
- package/dist/types/identity/types.d.ts +7 -3
- package/dist/types/identity/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/boundedJson.d.ts +14 -7
- package/dist/types/lib/boundedJson.d.ts.map +1 -1
- package/dist/types/mcp/callChecks.d.ts +161 -0
- package/dist/types/mcp/callChecks.d.ts.map +1 -0
- package/dist/types/mcp/callLifetime.d.ts.map +1 -1
- package/dist/types/mcp/clientPort.d.ts +79 -0
- package/dist/types/mcp/clientPort.d.ts.map +1 -0
- package/dist/types/mcp/gatewayTransport.d.ts.map +1 -1
- package/dist/types/mcp/index.d.ts +11 -1
- package/dist/types/mcp/index.d.ts.map +1 -1
- package/dist/types/mcp/listingGenerations.d.ts +55 -0
- package/dist/types/mcp/listingGenerations.d.ts.map +1 -0
- package/dist/types/mcp/mcpClient.d.ts +18 -1
- package/dist/types/mcp/mcpClient.d.ts.map +1 -1
- package/dist/types/mcp/mockMcpClient.d.ts.map +1 -1
- package/dist/types/mcp/pool/boundTool.d.ts +59 -0
- package/dist/types/mcp/pool/boundTool.d.ts.map +1 -0
- package/dist/types/mcp/pool/clientSet.d.ts +74 -0
- package/dist/types/mcp/pool/clientSet.d.ts.map +1 -0
- package/dist/types/mcp/pool/definitions.d.ts +104 -0
- package/dist/types/mcp/pool/definitions.d.ts.map +1 -0
- package/dist/types/mcp/pool/errors.d.ts +77 -0
- package/dist/types/mcp/pool/errors.d.ts.map +1 -0
- package/dist/types/mcp/pool/identityKey.d.ts +58 -0
- package/dist/types/mcp/pool/identityKey.d.ts.map +1 -0
- package/dist/types/mcp/pool/lease.d.ts +37 -0
- package/dist/types/mcp/pool/lease.d.ts.map +1 -0
- package/dist/types/mcp/pool/listTools.d.ts +34 -0
- package/dist/types/mcp/pool/listTools.d.ts.map +1 -0
- package/dist/types/mcp/pool/mcpClientPool.d.ts +122 -0
- package/dist/types/mcp/pool/mcpClientPool.d.ts.map +1 -0
- package/dist/types/mcp/pool/options.d.ts +184 -0
- package/dist/types/mcp/pool/options.d.ts.map +1 -0
- package/dist/types/mcp/pool/plan.d.ts +78 -0
- package/dist/types/mcp/pool/plan.d.ts.map +1 -0
- package/dist/types/mcp/pool/pool.d.ts +308 -0
- package/dist/types/mcp/pool/pool.d.ts.map +1 -0
- package/dist/types/mcp/pool/pooledClient.d.ts +94 -0
- package/dist/types/mcp/pool/pooledClient.d.ts.map +1 -0
- package/dist/types/mcp/pool/record.d.ts +81 -0
- package/dist/types/mcp/pool/record.d.ts.map +1 -0
- package/dist/types/mcp/pool/sessionEnded.d.ts +25 -0
- package/dist/types/mcp/pool/sessionEnded.d.ts.map +1 -0
- package/dist/types/mcp/pool/work.d.ts +117 -0
- package/dist/types/mcp/pool/work.d.ts.map +1 -0
- package/dist/types/mcp/requestGuard.d.ts +71 -0
- package/dist/types/mcp/requestGuard.d.ts.map +1 -0
- package/dist/types/mcp/requestLedger.d.ts +35 -1
- package/dist/types/mcp/requestLedger.d.ts.map +1 -1
- package/dist/types/mcp/seriesEvidence.d.ts +10 -6
- package/dist/types/mcp/seriesEvidence.d.ts.map +1 -1
- package/dist/types/mcp/terminate.d.ts +95 -0
- package/dist/types/mcp/terminate.d.ts.map +1 -0
- package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
- package/dist/types/mcp/toolList.d.ts +91 -0
- package/dist/types/mcp/toolList.d.ts.map +1 -0
- package/dist/types/mcp/types.d.ts +197 -3
- package/dist/types/mcp/types.d.ts.map +1 -1
- package/dist/types/redaction/knownStrings.d.ts.map +1 -1
- package/dist/types/tool-providers/index.d.ts +2 -2
- package/dist/types/tool-providers/index.d.ts.map +1 -1
- package/dist/types/tools/mcpClientUse.d.ts +60 -0
- package/dist/types/tools/mcpClientUse.d.ts.map +1 -0
- package/dist/types/tools/toolProvider.d.ts +16 -0
- package/dist/types/tools/toolProvider.d.ts.map +1 -1
- package/dist/types/tools/toolSessions.d.ts +41 -0
- package/dist/types/tools/toolSessions.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/mcp/mcpClient.js
CHANGED
|
@@ -44,10 +44,13 @@
|
|
|
44
44
|
* inject `_client` and skip the import path entirely.
|
|
45
45
|
*/
|
|
46
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
exports.mcpClient = void 0;
|
|
47
|
+
exports.mcpToolShape = exports.openPooledClient = exports.mcpClient = void 0;
|
|
48
48
|
const footprintjs_1 = require("footprintjs");
|
|
49
49
|
const toolExtras_js_1 = require("./toolExtras.js");
|
|
50
50
|
const toolResult_js_1 = require("./toolResult.js");
|
|
51
|
+
const toolList_js_1 = require("./toolList.js");
|
|
52
|
+
const listingGenerations_js_1 = require("./listingGenerations.js");
|
|
53
|
+
const callChecks_js_1 = require("./callChecks.js");
|
|
51
54
|
const gatewayTransport_js_1 = require("./gatewayTransport.js");
|
|
52
55
|
const throttleRetry_js_1 = require("./throttleRetry.js");
|
|
53
56
|
const requestLedger_js_1 = require("./requestLedger.js");
|
|
@@ -58,6 +61,8 @@ const connectionRefusals_js_1 = require("./connectionRefusals.js");
|
|
|
58
61
|
const sdkLoadFailure_js_1 = require("./sdkLoadFailure.js");
|
|
59
62
|
const transportUrl_js_1 = require("./transportUrl.js");
|
|
60
63
|
const lazyRequire_js_1 = require("../lib/lazyRequire.js");
|
|
64
|
+
const clientPort_js_1 = require("./clientPort.js");
|
|
65
|
+
const terminate_js_1 = require("./terminate.js");
|
|
61
66
|
// Version-less identity. The MCP `clientInfo` field is informational
|
|
62
67
|
// (server logs it); a hardcoded number drifts every release. Consumers
|
|
63
68
|
// who care about wire-level identity pass `clientInfo` explicitly.
|
|
@@ -88,6 +93,20 @@ const DEFAULT_CLIENT_INFO = {
|
|
|
88
93
|
* transport fails to connect.
|
|
89
94
|
*/
|
|
90
95
|
async function mcpClient(opts) {
|
|
96
|
+
return (await connectClient(opts)).client;
|
|
97
|
+
}
|
|
98
|
+
exports.mcpClient = mcpClient;
|
|
99
|
+
/**
|
|
100
|
+
* @internal The MCP client pool's way to open a client (`mcp/pool/`): an
|
|
101
|
+
* ordinary `mcpClient` — the same discovery, checks, ledger and retry series —
|
|
102
|
+
* plus what only a pool asks for (`clientPort.ts`), and the port back.
|
|
103
|
+
*/
|
|
104
|
+
async function openPooledClient(opts, seam) {
|
|
105
|
+
return connectClient(opts, seam);
|
|
106
|
+
}
|
|
107
|
+
exports.openPooledClient = openPooledClient;
|
|
108
|
+
/** The one construction path behind `mcpClient` and the pool's opener. */
|
|
109
|
+
async function connectClient(opts, seam) {
|
|
91
110
|
const name = opts.name ?? 'mcp';
|
|
92
111
|
const resultMode = (0, toolResult_js_1.resultModeOf)(opts.resultMode, name);
|
|
93
112
|
// Before anything connects: an option that names a behaviour which cannot
|
|
@@ -97,27 +116,63 @@ async function mcpClient(opts) {
|
|
|
97
116
|
// checked once, here, before anything connects (`replay.ts`).
|
|
98
117
|
const replay = (0, replay_js_1.replayDeclarationOf)(opts.replay, `mcpClient[${name}]`);
|
|
99
118
|
const strict = replay.policy === 'app-authorized';
|
|
100
|
-
|
|
119
|
+
// The validator a tool's own output checks use (`callChecks.ts`), refused by
|
|
120
|
+
// name now when it is not one.
|
|
121
|
+
const validator = (0, callChecks_js_1.validatorOption)(opts.jsonSchemaValidator, `mcpClient[${name}]`);
|
|
122
|
+
const { connection, ledger, kit, ending } = await openConnection(opts, replay, name, validator, seam);
|
|
101
123
|
const unlisted = new Set();
|
|
102
124
|
// Tool cache so consumers calling `.tools()` more than once don't
|
|
103
125
|
// hammer the server. `.refresh()` invalidates it.
|
|
104
126
|
let cache = null;
|
|
105
127
|
let closed = false;
|
|
128
|
+
// The one ending this client gets (`terminate.ts`): `terminate()` asks for it
|
|
129
|
+
// once, and every later call answers the same outcome.
|
|
130
|
+
let ended;
|
|
106
131
|
const ensureOpen = (op) => {
|
|
107
132
|
if (closed) {
|
|
108
133
|
throw new Error(`mcpClient[${name}].${op}() called after close(). Construct a new client to reconnect.`);
|
|
109
134
|
}
|
|
110
135
|
};
|
|
111
|
-
const
|
|
112
|
-
//
|
|
113
|
-
// the
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
136
|
+
const listWith = async (signal) => {
|
|
137
|
+
// Every page of the server's list (`toolList.ts`). `signal` rides each
|
|
138
|
+
// page in the SDK's trailing options argument, never in the params — see
|
|
139
|
+
// `wrapMcpTool`.
|
|
140
|
+
// Each page request is counted in this connection's listings, whatever it
|
|
141
|
+
// settles to (`listingGenerations.ts`).
|
|
142
|
+
const listing = await (0, toolList_js_1.listEveryPage)(connection, signal, kit.listings);
|
|
143
|
+
// A list that did not end cannot say which entries name nothing.
|
|
144
|
+
if (listing.incomplete === undefined)
|
|
145
|
+
noteUnlisted(replay, listing.tools, name, unlisted);
|
|
146
|
+
// Every tool carries the checks of the list it came from (`callChecks.ts`):
|
|
147
|
+
// the SDK's `Client` holds them only while a one-page list's answer is its
|
|
148
|
+
// latest, and only then are they left to it.
|
|
149
|
+
const tools = listing.tools.map((t) => wrapMcpTool(name, connection, t, opts.signal, resultMode, ledger, strict, (0, callChecks_js_1.checksFor)(t, kit, listing.generation)));
|
|
150
|
+
// Never a list cut short: what was listed travels on the refusal instead.
|
|
151
|
+
if (listing.incomplete !== undefined) {
|
|
152
|
+
throw new toolList_js_1.McpToolListIncompleteError(listing.incomplete, name, listing.pages, tools);
|
|
153
|
+
}
|
|
154
|
+
return { tools, listed: listing.tools };
|
|
119
155
|
};
|
|
120
|
-
|
|
156
|
+
const buildTools = async () => (await listWith(opts.signal)).tools;
|
|
157
|
+
const closeLocally = async () => {
|
|
158
|
+
try {
|
|
159
|
+
await connection.close();
|
|
160
|
+
}
|
|
161
|
+
finally {
|
|
162
|
+
// Nothing this connection sent is awaited any more, however it closed.
|
|
163
|
+
ledger?.close();
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
// The remote session ended, then the local side — at most once.
|
|
167
|
+
const end = () => {
|
|
168
|
+
if (ended !== undefined)
|
|
169
|
+
return ended;
|
|
170
|
+
closed = true;
|
|
171
|
+
cache = null;
|
|
172
|
+
ended = ending(closeLocally);
|
|
173
|
+
return ended;
|
|
174
|
+
};
|
|
175
|
+
const client = {
|
|
121
176
|
name,
|
|
122
177
|
async tools() {
|
|
123
178
|
ensureOpen('tools');
|
|
@@ -135,17 +190,38 @@ async function mcpClient(opts) {
|
|
|
135
190
|
return;
|
|
136
191
|
closed = true;
|
|
137
192
|
cache = null;
|
|
138
|
-
|
|
139
|
-
await connection.close();
|
|
140
|
-
}
|
|
141
|
-
finally {
|
|
142
|
-
// Nothing this connection sent is awaited any more, however it closed.
|
|
143
|
-
ledger?.close();
|
|
144
|
-
}
|
|
193
|
+
await closeLocally();
|
|
145
194
|
},
|
|
195
|
+
async terminate() {
|
|
196
|
+
if (ended !== undefined)
|
|
197
|
+
return ended.outcome;
|
|
198
|
+
ensureOpen('terminate');
|
|
199
|
+
return end().outcome;
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
const port = {
|
|
203
|
+
async listing(signal) {
|
|
204
|
+
ensureOpen('tools');
|
|
205
|
+
const listing = await listWith(signal);
|
|
206
|
+
cache = listing.tools;
|
|
207
|
+
return listing;
|
|
208
|
+
},
|
|
209
|
+
bind: (listed) =>
|
|
210
|
+
// No listing generation: this connection's SDK holds no checks for a
|
|
211
|
+
// definition it did not list, so the tool always runs its own.
|
|
212
|
+
wrapMcpTool(name, connection, listed, opts.signal, resultMode, ledger, strict, (0, callChecks_js_1.checksFor)(listed, kit, undefined)),
|
|
213
|
+
end,
|
|
146
214
|
};
|
|
215
|
+
return { client, port };
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* An ending that sends nothing: the local close, and the outcome that says why
|
|
219
|
+
* — answered by the teardown deadline even when the close hangs, the close
|
|
220
|
+
* itself reported apart (`terminate.ts` · `endLocally`).
|
|
221
|
+
*/
|
|
222
|
+
function endingWithout(remote) {
|
|
223
|
+
return (close) => (0, terminate_js_1.endLocally)(remote, close);
|
|
147
224
|
}
|
|
148
|
-
exports.mcpClient = mcpClient;
|
|
149
225
|
/**
|
|
150
226
|
* The one funnel every arm passes through, in precedence order: a connection
|
|
151
227
|
* you handed over, the internal test seam, then the library building one.
|
|
@@ -155,31 +231,114 @@ exports.mcpClient = mcpClient;
|
|
|
155
231
|
* A call with neither `connection` nor `sdk` reaches `resolveClient` with two
|
|
156
232
|
* `undefined` arguments and takes the identical path it always took.
|
|
157
233
|
*/
|
|
158
|
-
async function openConnection(opts, replay, name) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
234
|
+
async function openConnection(opts, replay, name, validator, seam) {
|
|
235
|
+
// A client built elsewhere: the library loads nothing, so only the caller's
|
|
236
|
+
// validator can check a tool's output itself, and errors take the SDK's shape.
|
|
237
|
+
// Its list requests are counted per client: every mcpClient over it shares one
|
|
238
|
+
// count, as they share the SDK's one set of checks (`listingGenerations.ts`).
|
|
239
|
+
// The library did not build its transport, so it cannot end the session.
|
|
240
|
+
if (opts.connection !== undefined) {
|
|
241
|
+
const kit = (0, callChecks_js_1.callCheckKit)(name, (0, listingGenerations_js_1.listingsOf)(opts.connection), validator);
|
|
242
|
+
return { connection: opts.connection, kit, ending: endingWithout('unavailable') };
|
|
243
|
+
}
|
|
244
|
+
if (opts._client !== undefined) {
|
|
245
|
+
return {
|
|
246
|
+
connection: opts._client,
|
|
247
|
+
kit: (0, callChecks_js_1.callCheckKit)(name, (0, listingGenerations_js_1.listingsOf)(opts._client), validator),
|
|
248
|
+
ending: endingWithout('unavailable'),
|
|
249
|
+
};
|
|
250
|
+
}
|
|
163
251
|
// `refuseConflictingOptions` has already refused the case where this is
|
|
164
252
|
// absent, so the assertion documents that guarantee rather than assuming it.
|
|
165
253
|
const transport = opts.transport;
|
|
166
|
-
return resolveClient(transport, opts.clientInfo, opts.signal, opts.retryOnThrottle, opts.sdk, replay, name);
|
|
254
|
+
return resolveClient(transport, opts.clientInfo, opts.signal, opts.retryOnThrottle, opts.sdk, replay, name, validator, seam);
|
|
167
255
|
}
|
|
168
256
|
// ─── SDK construction (lazy require, unless the caller supplied it) ─
|
|
169
|
-
async function resolveClient(transport, clientInfo, signal, retryOnThrottle, sdk, replay, name = 'mcp') {
|
|
257
|
+
async function resolveClient(transport, clientInfo, signal, retryOnThrottle, sdk, replay, name = 'mcp', validator, seam) {
|
|
170
258
|
if (sdk !== undefined)
|
|
171
259
|
assertSdk(sdk, transport.transport);
|
|
172
260
|
const mod = sdk ?? loadClientModule();
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
261
|
+
// A caller's validator is the client's too, so one validator checks every
|
|
262
|
+
// page; without one, the options are exactly what they always were. A pooled
|
|
263
|
+
// client hears the server's tools-changed notice with the SDK's automatic
|
|
264
|
+
// refresh OFF: the notice only makes the pool list again, through this
|
|
265
|
+
// client's own discovery, which counts every listing (`listingGenerations.ts`).
|
|
266
|
+
const options = validator === undefined
|
|
267
|
+
? { capabilities: {} }
|
|
268
|
+
: { capabilities: {}, jsonSchemaValidator: validator };
|
|
269
|
+
if (seam !== undefined) {
|
|
270
|
+
options.listChanged = {
|
|
271
|
+
tools: { autoRefresh: false, debounceMs: 0, onChanged: () => seam.onToolsChanged() },
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
const client = new mod.Client(clientInfo ?? DEFAULT_CLIENT_INFO, options);
|
|
275
|
+
const built = await buildTransport(transport, retryOnThrottle, sdk, replay, name, seam);
|
|
276
|
+
// With the SDK loaded here, so is what a tool's own checks run with: its
|
|
277
|
+
// default validator and its own error class. With `sdk`, the loader is never
|
|
278
|
+
// touched (`callChecks.ts`).
|
|
279
|
+
const kit = sdk === undefined
|
|
280
|
+
? (0, callChecks_js_1.callCheckKit)(name, (0, listingGenerations_js_1.listingsOf)(client), validator, loadCheckModules(validator))
|
|
281
|
+
: (0, callChecks_js_1.callCheckKit)(name, (0, listingGenerations_js_1.listingsOf)(client), validator);
|
|
177
282
|
// Same rule as callTool: options ride beside the transport, never inside it.
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
283
|
+
// A pooled client connects under the pool's own signal and open deadline;
|
|
284
|
+
// its lifetime signal (`signal`) rides every later request.
|
|
285
|
+
const connectSignal = seam?.connectSignal ?? signal;
|
|
286
|
+
try {
|
|
287
|
+
if (connectSignal)
|
|
288
|
+
await client.connect(built.transport, { signal: connectSignal });
|
|
289
|
+
else
|
|
290
|
+
await client.connect(built.transport);
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
// A pooled open that failed may still have opened a session on the server:
|
|
294
|
+
// the pool can end it once the open's work has settled (`clientPort.ts`).
|
|
295
|
+
if (seam !== undefined) {
|
|
296
|
+
const transport = built.transport;
|
|
297
|
+
(0, clientPort_js_1.rememberHalfOpen)(error, {
|
|
298
|
+
hasSession: () => transport?.sessionId !== undefined,
|
|
299
|
+
end: () => built.ending(async () => {
|
|
300
|
+
try {
|
|
301
|
+
await client.close();
|
|
302
|
+
}
|
|
303
|
+
finally {
|
|
304
|
+
built.ledger?.close();
|
|
305
|
+
}
|
|
306
|
+
}),
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
throw error;
|
|
310
|
+
}
|
|
311
|
+
return {
|
|
312
|
+
connection: client,
|
|
313
|
+
kit,
|
|
314
|
+
...(built.ledger !== undefined && { ledger: built.ledger }),
|
|
315
|
+
ending: built.ending,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* What the SDK's `Client` checks a tool's call with, loaded with the SDK on the
|
|
320
|
+
* Node loader path (the bundling law: when the client is built, never at a
|
|
321
|
+
* later tool call): its own `McpError`, and — unless the caller gave a
|
|
322
|
+
* validator — its default validator, `AjvJsonSchemaValidator`. Both modules are
|
|
323
|
+
* the ones `client/index.js` already loaded. An SDK without one of them (older
|
|
324
|
+
* than its public validator subpath) leaves that slot empty: errors then take
|
|
325
|
+
* the SDK's shape, and an output no validator here can check is never returned.
|
|
326
|
+
*/
|
|
327
|
+
function loadCheckModules(validator) {
|
|
328
|
+
const McpError = loadOptional(() => (0, lazyRequire_js_1.lazyRequire)('@modelcontextprotocol/sdk/types.js'))?.McpError;
|
|
329
|
+
const Validator = validator === undefined
|
|
330
|
+
? loadOptional(() => (0, lazyRequire_js_1.lazyRequire)('@modelcontextprotocol/sdk/validation/ajv'))?.AjvJsonSchemaValidator
|
|
331
|
+
: undefined;
|
|
332
|
+
return { McpError, Validator };
|
|
333
|
+
}
|
|
334
|
+
/** A module this SDK may not have: `undefined` when it cannot be loaded. */
|
|
335
|
+
function loadOptional(load) {
|
|
336
|
+
try {
|
|
337
|
+
return load();
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
return undefined;
|
|
341
|
+
}
|
|
183
342
|
}
|
|
184
343
|
/**
|
|
185
344
|
* An injected `sdk` is checked before anything is built, so a wrong import (a
|
|
@@ -223,7 +382,7 @@ function loadClientModule() {
|
|
|
223
382
|
}));
|
|
224
383
|
}
|
|
225
384
|
}
|
|
226
|
-
async function buildTransport(t, retryOnThrottle, sdk, replay, name = 'mcp') {
|
|
385
|
+
async function buildTransport(t, retryOnThrottle, sdk, replay, name = 'mcp', seam) {
|
|
227
386
|
if (t.transport === 'stdio') {
|
|
228
387
|
// Deliberately NOT served by `sdk`: stdio spawns a subprocess, so it can
|
|
229
388
|
// never run in a browser, and `client/stdio.js` is the SDK's one client
|
|
@@ -244,14 +403,23 @@ async function buildTransport(t, retryOnThrottle, sdk, replay, name = 'mcp') {
|
|
|
244
403
|
}));
|
|
245
404
|
}
|
|
246
405
|
// No fetch, so no retry series: a stdio call has no attempts to file.
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
406
|
+
// stdio has no session id to end: its ending is the local close.
|
|
407
|
+
const stdio = new stdioMod.StdioClientTransport({
|
|
408
|
+
command: t.command,
|
|
409
|
+
args: t.args ? [...t.args] : [],
|
|
410
|
+
...(t.env && { env: { ...t.env } }),
|
|
411
|
+
...(t.cwd !== undefined && { cwd: t.cwd }),
|
|
412
|
+
});
|
|
413
|
+
if (seam === undefined)
|
|
414
|
+
return { transport: stdio, ending: endingWithout('no-session') };
|
|
415
|
+
// A pooled client's sends are watched, so the pool's gate is asked at
|
|
416
|
+
// `send()` — on stdio, which writes without waiting, the last boundary.
|
|
417
|
+
const ledger = new requestLedger_js_1.RequestLedger({
|
|
418
|
+
server: name,
|
|
419
|
+
strict: replay?.policy === 'app-authorized',
|
|
420
|
+
guardFor: seam.guardFor,
|
|
421
|
+
});
|
|
422
|
+
return watchedForPool(stdio, ledger, endingWithout('no-session'), name);
|
|
255
423
|
}
|
|
256
424
|
// http + gateway transports both ride Streamable HTTP. They differ only in
|
|
257
425
|
// WHEN the auth headers are decided: `http` fixes them at construction,
|
|
@@ -284,7 +452,16 @@ async function buildTransport(t, retryOnThrottle, sdk, replay, name = 'mcp') {
|
|
|
284
452
|
const ledger = new requestLedger_js_1.RequestLedger({
|
|
285
453
|
server: name,
|
|
286
454
|
strict: replay?.policy === 'app-authorized',
|
|
455
|
+
...(seam !== undefined && { guardFor: seam.guardFor }),
|
|
287
456
|
});
|
|
457
|
+
// The pass-through fetch every transport the library builds carries: it
|
|
458
|
+
// changes no request, and reads a `DELETE`'s answer for `terminate()`
|
|
459
|
+
// (`terminate.ts`), because the SDK treats a 405 as success. A pooled client's
|
|
460
|
+
// requests also cross the pool's gate here, before anything else of ours.
|
|
461
|
+
const watch = new terminate_js_1.DeleteWatch();
|
|
462
|
+
const outermost = (inner) => watch.fetch(seam === undefined
|
|
463
|
+
? inner
|
|
464
|
+
: seam.wrapFetch(inner ?? platformFetch, (body) => guardOfCall(ledger, body)));
|
|
288
465
|
if (t.transport === 'gateway') {
|
|
289
466
|
// The consumer's own `fetch` (9.32.0) goes UNDERNEATH the vending, not
|
|
290
467
|
// beside it: `createVendingFetch` resolves the credential, applies it to
|
|
@@ -295,9 +472,11 @@ async function buildTransport(t, retryOnThrottle, sdk, replay, name = 'mcp') {
|
|
|
295
472
|
// the seam existed.
|
|
296
473
|
const gatewayFetch = retried((0, gatewayTransport_js_1.createVendingFetch)(t, t.fetch));
|
|
297
474
|
const ledgered = gatewayFetch && (0, throttleRetry_js_1.ledgeredFetch)(gatewayFetch, ledger, replay);
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
475
|
+
const sdkTransport = new httpMod.StreamableHTTPClientTransport((0, transportUrl_js_1.transportUrl)(t.url, 'mcpClient'), { fetch: outermost(ledgered ?? gatewayFetch) });
|
|
476
|
+
if (seam !== undefined) {
|
|
477
|
+
return watchedForPool(sdkTransport, ledger, sessionEnding(sdkTransport, watch), name);
|
|
478
|
+
}
|
|
479
|
+
return watched(sdkTransport, ledgered !== undefined ? ledger : undefined, sessionEnding(sdkTransport, watch));
|
|
301
480
|
}
|
|
302
481
|
// Both options ride the SAME SDK transport, and both are forwarded when both
|
|
303
482
|
// are given. The SDK folds `requestInit.headers` into the `init.headers` it
|
|
@@ -305,23 +484,60 @@ async function buildTransport(t, retryOnThrottle, sdk, replay, name = 'mcp') {
|
|
|
305
484
|
// final word over the bytes — see `McpHttpTransport.fetch`.
|
|
306
485
|
const httpFetch = retried(t.fetch);
|
|
307
486
|
const ledgered = httpFetch && (0, throttleRetry_js_1.ledgeredFetch)(httpFetch, ledger, replay);
|
|
308
|
-
const
|
|
309
|
-
return watched(new httpMod.StreamableHTTPClientTransport((0, transportUrl_js_1.transportUrl)(t.url, 'mcpClient'), {
|
|
487
|
+
const sdkTransport = new httpMod.StreamableHTTPClientTransport((0, transportUrl_js_1.transportUrl)(t.url, 'mcpClient'), {
|
|
310
488
|
...(t.headers && { requestInit: { headers: { ...t.headers } } }),
|
|
311
|
-
|
|
312
|
-
})
|
|
489
|
+
fetch: outermost(ledgered ?? httpFetch),
|
|
490
|
+
});
|
|
491
|
+
if (seam !== undefined) {
|
|
492
|
+
return watchedForPool(sdkTransport, ledger, sessionEnding(sdkTransport, watch), name);
|
|
493
|
+
}
|
|
494
|
+
return watched(sdkTransport, ledgered !== undefined ? ledger : undefined, sessionEnding(sdkTransport, watch));
|
|
495
|
+
}
|
|
496
|
+
/** The guard of the pooled tool call `body` belongs to, by its ledger claim. */
|
|
497
|
+
function guardOfCall(ledger, body) {
|
|
498
|
+
return ledger.claim(body)?.guard;
|
|
499
|
+
}
|
|
500
|
+
/** How an SDK Streamable HTTP transport's session ends: its own `terminateSession()`. */
|
|
501
|
+
function sessionEnding(transport, watch) {
|
|
502
|
+
const terminable = transport;
|
|
503
|
+
if (typeof terminable?.terminateSession !== 'function')
|
|
504
|
+
return endingWithout('unavailable');
|
|
505
|
+
return (close) => (0, terminate_js_1.endSession)(terminable, watch, close);
|
|
313
506
|
}
|
|
314
507
|
/**
|
|
315
508
|
* `transport` with its sends watched by `ledger` — the SAME object, its own
|
|
316
509
|
* `send` installed in place. As it is, with no ledger, when there is none or it
|
|
317
510
|
* cannot be watched: then no call expects its attempts filed.
|
|
318
511
|
*/
|
|
319
|
-
function watched(transport, ledger) {
|
|
512
|
+
function watched(transport, ledger, ending) {
|
|
320
513
|
if (ledger === undefined || transport === null || typeof transport !== 'object') {
|
|
321
|
-
return { transport };
|
|
514
|
+
return { transport, ending };
|
|
515
|
+
}
|
|
516
|
+
return ledger.watch(transport) === undefined
|
|
517
|
+
? { transport, ending }
|
|
518
|
+
: { transport, ledger, ending };
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* A pooled client's transport, its sends watched — REQUIRED. The pool checks
|
|
522
|
+
* every request against its binding at the watched `send` (on stdio the last
|
|
523
|
+
* boundary there is) and ties each tool call to its guard there, so a
|
|
524
|
+
* transport whose `send` cannot be watched is refused before anything is
|
|
525
|
+
* built on it or sent: the pool's guarantee needs the watch, whatever the
|
|
526
|
+
* replay policy. A standalone client never comes here (`watched`).
|
|
527
|
+
*
|
|
528
|
+
* @throws when the transport has no `send` to watch or refuses the property
|
|
529
|
+
*/
|
|
530
|
+
function watchedForPool(transport, ledger, ending, name) {
|
|
531
|
+
const built = watched(transport, ledger, ending);
|
|
532
|
+
if (built.ledger === undefined) {
|
|
533
|
+
throw new Error(`mcpClient[${name}]: the MCP client pool checks every request at its transport's \`send\` ` +
|
|
534
|
+
"before it is sent, and this transport's `send` cannot be watched (it is missing, or a " +
|
|
535
|
+
'property that cannot be redefined), so the pooled client is not opened. Nothing was sent.');
|
|
322
536
|
}
|
|
323
|
-
return
|
|
537
|
+
return built;
|
|
324
538
|
}
|
|
539
|
+
/** The platform's fetch, looked up at call time so a later polyfill still wins. */
|
|
540
|
+
const platformFetch = (input, init) => globalThis.fetch(input, init);
|
|
325
541
|
/** The Node loader path for Streamable HTTP — reached only with no `sdk`. */
|
|
326
542
|
function loadHttpModule(transport) {
|
|
327
543
|
try {
|
|
@@ -358,8 +574,13 @@ function noteUnlisted(replay, listed, server, noted) {
|
|
|
358
574
|
}
|
|
359
575
|
}
|
|
360
576
|
// ─── Tool wrapping ─────────────────────────────────────────────────
|
|
361
|
-
|
|
362
|
-
|
|
577
|
+
/**
|
|
578
|
+
* @internal What a listed MCP tool looks like as a `Tool`, less its `execute`:
|
|
579
|
+
* its schema, its provenance and the declarations its `_meta` carries. The ONE
|
|
580
|
+
* shape both an `mcpClient` tool and an MCP client pool's bound tool take.
|
|
581
|
+
*/
|
|
582
|
+
function mcpToolShape(serverName, mcp) {
|
|
583
|
+
return {
|
|
363
584
|
schema: {
|
|
364
585
|
name: mcp.name,
|
|
365
586
|
description: mcp.description ?? `MCP tool: ${mcp.name}`,
|
|
@@ -380,6 +601,12 @@ function wrapMcpTool(serverName, connection, mcp, signal, resultMode, ledger, st
|
|
|
380
601
|
tool: mcp.name,
|
|
381
602
|
inputSchema: mcp.inputSchema,
|
|
382
603
|
}),
|
|
604
|
+
};
|
|
605
|
+
}
|
|
606
|
+
exports.mcpToolShape = mcpToolShape;
|
|
607
|
+
function wrapMcpTool(serverName, connection, mcp, signal, resultMode, ledger, strict = false, checks) {
|
|
608
|
+
const tool = {
|
|
609
|
+
...mcpToolShape(serverName, mcp),
|
|
383
610
|
execute: async (args, ctx) => {
|
|
384
611
|
// The agent passes args as `unknown` per Tool contract. MCP
|
|
385
612
|
// expects a JSON object — non-object inputs become `{}` rather
|
|
@@ -420,12 +647,32 @@ function wrapMcpTool(serverName, connection, mcp, signal, resultMode, ledger, st
|
|
|
420
647
|
if (unavailable !== undefined) {
|
|
421
648
|
throw new replayUnavailable_js_1.McpReplayUnavailableError(unavailable, serverName, mcp.name);
|
|
422
649
|
}
|
|
650
|
+
// Whose checks this call runs under, decided before anything is sent
|
|
651
|
+
// (`callChecks.ts`): the SDK's `Client` holds them while this tool's
|
|
652
|
+
// one-page list is still its latest answer and no list request is out;
|
|
653
|
+
// otherwise the tool's own checks run. An output they cannot check is
|
|
654
|
+
// refused here, unsent.
|
|
655
|
+
const own = checks !== undefined && !checks.heldBySdk();
|
|
656
|
+
if (own && (0, callChecks_js_1.outputUnchecked)(checks)) {
|
|
657
|
+
throw new callChecks_js_1.McpOutputUncheckedError(serverName, mcp.name, false);
|
|
658
|
+
}
|
|
423
659
|
const call = (0, callLifetime_js_1.openCall)(params, ctx, signal, ledger, serverName);
|
|
424
660
|
let verdict = 'failed';
|
|
425
661
|
try {
|
|
426
|
-
const
|
|
427
|
-
?
|
|
428
|
-
:
|
|
662
|
+
const send = () => call.signal
|
|
663
|
+
? connection.callTool(call.params, undefined, { signal: call.signal })
|
|
664
|
+
: connection.callTool(call.params);
|
|
665
|
+
// The tool's own checks run where the SDK's `callTool` runs them, so a
|
|
666
|
+
// call fails as it would with the SDK holding them: the task refusal
|
|
667
|
+
// before sending, the output checks once the answer is in.
|
|
668
|
+
if (own)
|
|
669
|
+
(0, callChecks_js_1.refuseRequiredTask)(checks);
|
|
670
|
+
const result = await send();
|
|
671
|
+
// A list request that went out while the call was out may have replaced
|
|
672
|
+
// the SDK's checks before it read the answer, so the tool's own checks
|
|
673
|
+
// read it too.
|
|
674
|
+
if (checks !== undefined && (own || !checks.heldBySdk()))
|
|
675
|
+
(0, callChecks_js_1.checkOutput)(checks, result);
|
|
429
676
|
verdict = (0, toolResult_js_1.isToolError)(result) ? 'tool-error' : 'completed';
|
|
430
677
|
return (0, toolResult_js_1.readToolResult)(result, mcp.name, serverName, resultMode);
|
|
431
678
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../src/mcp/mcpClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../src/mcp/mcpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
33
|
exports.mockMcpClient = void 0;
|
|
34
34
|
const toolExtras_js_1 = require("./toolExtras.js");
|
|
35
|
+
const terminate_js_1 = require("./terminate.js");
|
|
35
36
|
const toolResult_js_1 = require("./toolResult.js");
|
|
36
37
|
/**
|
|
37
38
|
* Build an in-memory `McpClient`. Useful when you want to develop
|
|
@@ -45,6 +46,7 @@ function mockMcpClient(options) {
|
|
|
45
46
|
const toolMap = new Map(options.tools.map((t) => [t.name, t]));
|
|
46
47
|
let cache = null;
|
|
47
48
|
let closed = false;
|
|
49
|
+
let ended;
|
|
48
50
|
const ensureOpen = (op) => {
|
|
49
51
|
if (closed) {
|
|
50
52
|
throw new Error(`mockMcpClient[${name}].${op}() called after close(). Construct a new client to reuse.`);
|
|
@@ -70,6 +72,17 @@ function mockMcpClient(options) {
|
|
|
70
72
|
closed = true;
|
|
71
73
|
cache = null;
|
|
72
74
|
},
|
|
75
|
+
// In memory, no session id is ever issued: nothing remote to end, so the
|
|
76
|
+
// ending is resolved, and the client is closed (`terminate.ts`).
|
|
77
|
+
async terminate() {
|
|
78
|
+
if (ended !== undefined)
|
|
79
|
+
return ended;
|
|
80
|
+
ensureOpen('terminate');
|
|
81
|
+
closed = true;
|
|
82
|
+
cache = null;
|
|
83
|
+
ended = (0, terminate_js_1.outcomeWithout)('no-session');
|
|
84
|
+
return ended;
|
|
85
|
+
},
|
|
73
86
|
};
|
|
74
87
|
}
|
|
75
88
|
exports.mockMcpClient = mockMcpClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockMcpClient.js","sourceRoot":"","sources":["../../src/mcp/mockMcpClient.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;AAGH,mDAA6D;
|
|
1
|
+
{"version":3,"file":"mockMcpClient.js","sourceRoot":"","sources":["../../src/mcp/mockMcpClient.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;AAGH,mDAA6D;AAO7D,iDAAgD;AAChD,mDAA+D;AAqE/D;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,OAA6B;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IACxC,MAAM,UAAU,GAAG,IAAA,4BAAY,EAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAsB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpF,IAAI,KAAK,GAA2B,IAAI,CAAC;IACzC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAsC,CAAC;IAE3C,MAAM,UAAU,GAAG,CAAC,EAAU,EAAQ,EAAE;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,KAAK,EAAE,2DAA2D,CACxF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAoB,EAAE,CACvC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3E,OAAO;QACL,IAAI;QACJ,KAAK,CAAC,KAAK;YACT,UAAU,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK;gBAAE,KAAK,GAAG,UAAU,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,OAAO;YACX,UAAU,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,GAAG,UAAU,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QACD,yEAAyE;QACzE,iEAAiE;QACjE,KAAK,CAAC,SAAS;YACb,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACtC,UAAU,CAAC,WAAW,CAAC,CAAC;YACxB,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,GAAG,IAAI,CAAC;YACb,KAAK,GAAG,IAAA,6BAAc,EAAC,YAAY,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAhDD,sCAgDC;AAED,SAAS,YAAY,CACnB,UAAkB,EAClB,OAAyC,EACzC,GAAgB,EAChB,UAAuD;IAEvD,MAAM,IAAI,GAAS;QACjB,MAAM,EAAE;YACN,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,kBAAkB,GAAG,CAAC,IAAI,EAAE;YAC5D,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,yDAAyD;QACzD,MAAM,EAAE,UAAU;QAClB,uEAAuE;QACvE,yEAAyE;QACzE,6DAA6D;QAC7D,GAAG,IAAA,8BAAc,EAAC,GAAG,CAAC,KAAK,EAAE;YAC3B,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,OAAO,GACX,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC/D,CAAC,CAAE,IAAgC;gBACnC,CAAC,CAAC,EAAE,CAAC;YACT,yFAAyF;YACzF,MAAM,OAAO,GACX,GAAG,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,IAAA,0BAAU,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,+DAA+D;YAC/D,6DAA6D;YAC7D,8BAA8B;YAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC3E,OAAO,IAAA,8BAAc,EACnB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EACnF,GAAG,CAAC,IAAI,EACR,UAAU,EACV,UAAU,CACX,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,IAAI,cAAc,UAAU,aAAa,GAAG,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;KACF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
|