agents
Version:
A home for your AI agents
57 lines (56 loc) • 2.1 kB
JavaScript
//#region src/mcp/client-invoker.ts
function isLegacyResultSchema(value) {
return typeof value?.parse === "function";
}
function normalizeCallToolArguments(schemaOrOptions, options) {
return isLegacyResultSchema(schemaOrOptions) ? {
schema: schemaOrOptions,
options
} : { options: schemaOrOptions ?? options };
}
/**
* Invoke SDK v2 while preserving the deprecated v1 result-schema overload.
* The v2 request funnel still owns decoding and automatic MRTR.
*/
function callV2Tool(client, params, schemaOrOptions, options) {
const normalized = normalizeCallToolArguments(schemaOrOptions, options);
if (normalized.schema) return client.request({
method: "tools/call",
params
}, normalized.schema, normalized.options);
return client.callTool(params, normalized.options);
}
/**
* Bind the original methods before decorators such as x402 replace them. All
* generation-specific calling conventions stay behind this small interface.
*/
function bindMcpClient(client) {
if ("getProtocolEra" in client && typeof client.getProtocolEra === "function") {
const v2Client = client;
const listTools = v2Client.listTools.bind(v2Client);
const callTool = v2Client.callTool.bind(v2Client);
return {
listTools: (params, options) => listTools(params, options),
callTool: (params, schemaOrOptions, options) => {
const normalized = normalizeCallToolArguments(schemaOrOptions, options);
return normalized.schema ? v2Client.request({
method: "tools/call",
params
}, normalized.schema, normalized.options) : callTool(params, normalized.options);
}
};
}
const legacy = client;
const listTools = legacy.listTools.bind(legacy);
const callTool = legacy.callTool.bind(legacy);
return {
listTools: (params, options) => listTools(params, options),
callTool: (params, schemaOrOptions, options) => {
const normalized = normalizeCallToolArguments(schemaOrOptions, options);
return callTool(params, normalized.schema, normalized.options);
}
};
}
//#endregion
export { callV2Tool as n, bindMcpClient as t };
//# sourceMappingURL=client-invoker-VNZ7X0nn.js.map