@namzu/sdk 3.1.0 → 3.3.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/CHANGELOG.md +221 -0
- package/dist/advisory/__tests__/consultation-context.test.d.ts +2 -0
- package/dist/advisory/__tests__/consultation-context.test.d.ts.map +1 -0
- package/dist/advisory/__tests__/consultation-context.test.js +124 -0
- package/dist/advisory/__tests__/consultation-context.test.js.map +1 -0
- package/dist/advisory/context.d.ts +25 -0
- package/dist/advisory/context.d.ts.map +1 -1
- package/dist/advisory/context.js +18 -0
- package/dist/advisory/context.js.map +1 -1
- package/dist/advisory/executor.d.ts.map +1 -1
- package/dist/advisory/executor.js +25 -3
- package/dist/advisory/executor.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +6 -0
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/__tests__/supervisor-hands-down-hitl.test.d.ts +2 -0
- package/dist/agents/__tests__/supervisor-hands-down-hitl.test.d.ts.map +1 -0
- package/dist/agents/__tests__/supervisor-hands-down-hitl.test.js +112 -0
- package/dist/agents/__tests__/supervisor-hands-down-hitl.test.js.map +1 -0
- package/dist/compaction/__tests__/context-reducer.test.d.ts +2 -0
- package/dist/compaction/__tests__/context-reducer.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/context-reducer.test.js +197 -0
- package/dist/compaction/__tests__/context-reducer.test.js.map +1 -0
- package/dist/compaction/factory.d.ts +7 -0
- package/dist/compaction/factory.d.ts.map +1 -1
- package/dist/compaction/factory.js +7 -0
- package/dist/compaction/factory.js.map +1 -1
- package/dist/compaction/index.d.ts +2 -0
- package/dist/compaction/index.d.ts.map +1 -1
- package/dist/compaction/index.js +1 -0
- package/dist/compaction/index.js.map +1 -1
- package/dist/compaction/interface.d.ts +13 -0
- package/dist/compaction/interface.d.ts.map +1 -1
- package/dist/compaction/managers/null.d.ts +3 -0
- package/dist/compaction/managers/null.d.ts.map +1 -1
- package/dist/compaction/managers/null.js +3 -0
- package/dist/compaction/managers/null.js.map +1 -1
- package/dist/compaction/managers/slidingWindow.d.ts +6 -0
- package/dist/compaction/managers/slidingWindow.d.ts.map +1 -1
- package/dist/compaction/managers/slidingWindow.js +6 -0
- package/dist/compaction/managers/slidingWindow.js.map +1 -1
- package/dist/compaction/managers/structured.d.ts +10 -0
- package/dist/compaction/managers/structured.d.ts.map +1 -1
- package/dist/compaction/managers/structured.js +10 -0
- package/dist/compaction/managers/structured.js.map +1 -1
- package/dist/compaction/reducer.d.ts +86 -0
- package/dist/compaction/reducer.d.ts.map +1 -0
- package/dist/compaction/reducer.js +77 -0
- package/dist/compaction/reducer.js.map +1 -0
- package/dist/connector/builtins/__tests__/oauth2-auth.test.d.ts +2 -0
- package/dist/connector/builtins/__tests__/oauth2-auth.test.d.ts.map +1 -0
- package/dist/connector/builtins/__tests__/oauth2-auth.test.js +54 -0
- package/dist/connector/builtins/__tests__/oauth2-auth.test.js.map +1 -0
- package/dist/connector/builtins/http.d.ts.map +1 -1
- package/dist/connector/builtins/http.js +24 -2
- package/dist/connector/builtins/http.js.map +1 -1
- package/dist/connector/builtins/http.test.js +18 -2
- package/dist/connector/builtins/http.test.js.map +1 -1
- package/dist/connector/index.d.ts +3 -2
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +2 -1
- package/dist/connector/index.js.map +1 -1
- package/dist/connector/mcp/__tests__/prompt-as-tool.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/prompt-as-tool.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/prompt-as-tool.test.js +122 -0
- package/dist/connector/mcp/__tests__/prompt-as-tool.test.js.map +1 -0
- package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.js +214 -0
- package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.js.map +1 -0
- package/dist/connector/mcp/client.d.ts +52 -1
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +86 -0
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/discovery.d.ts +27 -2
- package/dist/connector/mcp/discovery.d.ts.map +1 -1
- package/dist/connector/mcp/discovery.js +58 -5
- package/dist/connector/mcp/discovery.js.map +1 -1
- package/dist/connector/mcp/index.d.ts +4 -3
- package/dist/connector/mcp/index.d.ts.map +1 -1
- package/dist/connector/mcp/index.js +3 -2
- package/dist/connector/mcp/index.js.map +1 -1
- package/dist/connector/mcp/policy.d.ts +17 -0
- package/dist/connector/mcp/policy.d.ts.map +1 -1
- package/dist/connector/mcp/policy.js +18 -7
- package/dist/connector/mcp/policy.js.map +1 -1
- package/dist/connector/mcp/prompt-adapter.d.ts +39 -0
- package/dist/connector/mcp/prompt-adapter.d.ts.map +1 -0
- package/dist/connector/mcp/prompt-adapter.js +113 -0
- package/dist/connector/mcp/prompt-adapter.js.map +1 -0
- package/dist/connector/mcp/server.d.ts +42 -1
- package/dist/connector/mcp/server.d.ts.map +1 -1
- package/dist/connector/mcp/server.js +77 -4
- package/dist/connector/mcp/server.js.map +1 -1
- package/dist/manager/agent/__tests__/depth-limit-authority.test.d.ts +2 -0
- package/dist/manager/agent/__tests__/depth-limit-authority.test.d.ts.map +1 -0
- package/dist/manager/agent/__tests__/depth-limit-authority.test.js +58 -0
- package/dist/manager/agent/__tests__/depth-limit-authority.test.js.map +1 -0
- package/dist/manager/agent/__tests__/hitl-across-spawn.test.d.ts +2 -0
- package/dist/manager/agent/__tests__/hitl-across-spawn.test.d.ts.map +1 -0
- package/dist/manager/agent/__tests__/hitl-across-spawn.test.js +226 -0
- package/dist/manager/agent/__tests__/hitl-across-spawn.test.js.map +1 -0
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +13 -0
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/plugin/__tests__/discovery-scopes.test.d.ts +2 -0
- package/dist/plugin/__tests__/discovery-scopes.test.d.ts.map +1 -0
- package/dist/plugin/__tests__/discovery-scopes.test.js +97 -0
- package/dist/plugin/__tests__/discovery-scopes.test.js.map +1 -0
- package/dist/plugin/__tests__/enable-contributions.test.js +5 -1
- package/dist/plugin/__tests__/enable-contributions.test.js.map +1 -1
- package/dist/plugin/__tests__/mcp-admission.test.d.ts +2 -0
- package/dist/plugin/__tests__/mcp-admission.test.d.ts.map +1 -0
- package/dist/plugin/__tests__/mcp-admission.test.js +227 -0
- package/dist/plugin/__tests__/mcp-admission.test.js.map +1 -0
- package/dist/plugin/lifecycle.d.ts +41 -0
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +39 -1
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/loader.d.ts +39 -3
- package/dist/plugin/loader.d.ts.map +1 -1
- package/dist/plugin/loader.js +37 -4
- package/dist/plugin/loader.js.map +1 -1
- package/dist/public-runtime.d.ts +4 -2
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +5 -2
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-types.d.ts +2 -2
- package/dist/public-types.d.ts.map +1 -1
- package/dist/rag/__tests__/namespace-isolation.test.d.ts +2 -0
- package/dist/rag/__tests__/namespace-isolation.test.d.ts.map +1 -0
- package/dist/rag/__tests__/namespace-isolation.test.js +80 -0
- package/dist/rag/__tests__/namespace-isolation.test.js.map +1 -0
- package/dist/rag/ingestion.d.ts.map +1 -1
- package/dist/rag/ingestion.js +1 -0
- package/dist/rag/ingestion.js.map +1 -1
- package/dist/rag/retriever.d.ts.map +1 -1
- package/dist/rag/retriever.js +2 -0
- package/dist/rag/retriever.js.map +1 -1
- package/dist/rag/vector-store.d.ts.map +1 -1
- package/dist/rag/vector-store.js +6 -0
- package/dist/rag/vector-store.js.map +1 -1
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +113 -109
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/runtime/query/__tests__/per-step-skills.test.d.ts +10 -0
- package/dist/runtime/query/__tests__/per-step-skills.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/per-step-skills.test.js +122 -0
- package/dist/runtime/query/__tests__/per-step-skills.test.js.map +1 -0
- package/dist/runtime/query/__tests__/per-step-tool-choice.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/per-step-tool-choice.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/per-step-tool-choice.test.js +153 -0
- package/dist/runtime/query/__tests__/per-step-tool-choice.test.js.map +1 -0
- package/dist/runtime/query/__tests__/resume-run.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/resume-run.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/resume-run.test.js +211 -0
- package/dist/runtime/query/__tests__/resume-run.test.js.map +1 -0
- package/dist/runtime/query/index.d.ts +10 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +26 -0
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +50 -33
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction-model-routing.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/compaction-model-routing.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction-model-routing.test.js +96 -0
- package/dist/runtime/query/iteration/phases/compaction-model-routing.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +95 -5
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.js +180 -0
- package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/context.d.ts +9 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/resume-run.d.ts +70 -0
- package/dist/runtime/query/resume-run.d.ts.map +1 -0
- package/dist/runtime/query/resume-run.js +46 -0
- package/dist/runtime/query/resume-run.js.map +1 -0
- package/dist/telemetry/__tests__/model-call-span.test.d.ts +2 -0
- package/dist/telemetry/__tests__/model-call-span.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/model-call-span.test.js +152 -0
- package/dist/telemetry/__tests__/model-call-span.test.js.map +1 -0
- package/dist/telemetry/__tests__/span-closure.test.d.ts +2 -0
- package/dist/telemetry/__tests__/span-closure.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/span-closure.test.js +124 -0
- package/dist/telemetry/__tests__/span-closure.test.js.map +1 -0
- package/dist/tools/advisory/index.js +1 -1
- package/dist/tools/advisory/index.js.map +1 -1
- package/dist/tools/coordinator/__tests__/plan-dependencies.test.d.ts +2 -0
- package/dist/tools/coordinator/__tests__/plan-dependencies.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/plan-dependencies.test.js +126 -0
- package/dist/tools/coordinator/__tests__/plan-dependencies.test.js.map +1 -0
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +13 -1
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/plan-dependencies.d.ts +43 -0
- package/dist/tools/coordinator/plan-dependencies.d.ts.map +1 -0
- package/dist/tools/coordinator/plan-dependencies.js +148 -0
- package/dist/tools/coordinator/plan-dependencies.js.map +1 -0
- package/dist/types/agent/base.d.ts +26 -0
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/supervisor.d.ts +15 -0
- package/dist/types/agent/supervisor.d.ts.map +1 -1
- package/dist/types/agent/task.d.ts +17 -0
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/agent/task.js.map +1 -1
- package/dist/types/connector/core.d.ts +34 -0
- package/dist/types/connector/core.d.ts.map +1 -1
- package/dist/types/connector/definition.d.ts +10 -0
- package/dist/types/connector/definition.d.ts.map +1 -1
- package/dist/types/connector/mcp.d.ts +13 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/rag/retrieval.d.ts +16 -0
- package/dist/types/rag/retrieval.d.ts.map +1 -1
- package/dist/types/rag/storage.d.ts +9 -0
- package/dist/types/rag/storage.d.ts.map +1 -1
- package/dist/types/rag/vector.d.ts +11 -0
- package/dist/types/rag/vector.d.ts.map +1 -1
- package/dist/types/router/task-router.d.ts +19 -0
- package/dist/types/router/task-router.d.ts.map +1 -1
- package/dist/types/run/prepare-step.d.ts +56 -3
- package/dist/types/run/prepare-step.d.ts.map +1 -1
- package/dist/types/toolset/index.d.ts +22 -0
- package/dist/types/toolset/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/advisory/__tests__/consultation-context.test.ts +191 -0
- package/src/advisory/context.ts +32 -0
- package/src/advisory/executor.ts +30 -3
- package/src/agents/SupervisorAgent.ts +6 -0
- package/src/agents/__tests__/supervisor-hands-down-hitl.test.ts +131 -0
- package/src/compaction/__tests__/context-reducer.test.ts +239 -0
- package/src/compaction/factory.ts +7 -0
- package/src/compaction/index.ts +8 -0
- package/src/compaction/interface.ts +13 -0
- package/src/compaction/managers/null.ts +3 -0
- package/src/compaction/managers/slidingWindow.ts +6 -0
- package/src/compaction/managers/structured.ts +10 -0
- package/src/compaction/reducer.ts +154 -0
- package/src/connector/builtins/__tests__/oauth2-auth.test.ts +73 -0
- package/src/connector/builtins/http.test.ts +28 -2
- package/src/connector/builtins/http.ts +26 -2
- package/src/connector/index.ts +7 -2
- package/src/connector/mcp/__tests__/prompt-as-tool.test.ts +157 -0
- package/src/connector/mcp/__tests__/prompts-and-lifecycle.test.ts +286 -0
- package/src/connector/mcp/client.ts +95 -0
- package/src/connector/mcp/discovery.ts +67 -5
- package/src/connector/mcp/index.ts +8 -3
- package/src/connector/mcp/policy.ts +23 -8
- package/src/connector/mcp/prompt-adapter.ts +139 -0
- package/src/connector/mcp/server.ts +101 -3
- package/src/manager/agent/__tests__/depth-limit-authority.test.ts +74 -0
- package/src/manager/agent/__tests__/hitl-across-spawn.test.ts +273 -0
- package/src/manager/agent/lifecycle.ts +12 -0
- package/src/plugin/__tests__/discovery-scopes.test.ts +133 -0
- package/src/plugin/__tests__/enable-contributions.test.ts +5 -1
- package/src/plugin/__tests__/mcp-admission.test.ts +286 -0
- package/src/plugin/lifecycle.ts +68 -1
- package/src/plugin/loader.ts +57 -3
- package/src/public-runtime.ts +10 -0
- package/src/public-types.ts +5 -0
- package/src/rag/__tests__/namespace-isolation.test.ts +109 -0
- package/src/rag/ingestion.ts +1 -0
- package/src/rag/retriever.ts +2 -0
- package/src/rag/vector-store.ts +5 -0
- package/src/registry/tool/execute.ts +123 -119
- package/src/runtime/query/__tests__/per-step-skills.test.ts +154 -0
- package/src/runtime/query/__tests__/per-step-tool-choice.test.ts +180 -0
- package/src/runtime/query/__tests__/resume-run.test.ts +262 -0
- package/src/runtime/query/index.ts +39 -0
- package/src/runtime/query/iteration/index.ts +55 -34
- package/src/runtime/query/iteration/phases/compaction-model-routing.test.ts +125 -0
- package/src/runtime/query/iteration/phases/compaction.ts +106 -5
- package/src/runtime/query/iteration/phases/context-reducer-dispatch.test.ts +238 -0
- package/src/runtime/query/iteration/phases/context.ts +11 -0
- package/src/runtime/query/resume-run.ts +93 -0
- package/src/telemetry/__tests__/model-call-span.test.ts +195 -0
- package/src/telemetry/__tests__/span-closure.test.ts +153 -0
- package/src/tools/advisory/index.ts +1 -1
- package/src/tools/coordinator/__tests__/plan-dependencies.test.ts +186 -0
- package/src/tools/coordinator/index.ts +14 -1
- package/src/tools/coordinator/plan-dependencies.ts +175 -0
- package/src/types/agent/base.ts +27 -0
- package/src/types/agent/supervisor.ts +15 -0
- package/src/types/agent/task.ts +18 -0
- package/src/types/connector/core.ts +34 -0
- package/src/types/connector/definition.ts +10 -0
- package/src/types/connector/mcp.ts +14 -0
- package/src/types/rag/retrieval.ts +16 -0
- package/src/types/rag/storage.ts +9 -0
- package/src/types/rag/vector.ts +11 -0
- package/src/types/router/task-router.ts +19 -0
- package/src/types/run/prepare-step.ts +58 -3
- package/src/types/toolset/index.ts +22 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-as-tool.test.js","sourceRoot":"","sources":["../../../../src/connector/mcp/__tests__/prompt-as-tool.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts-and-lifecycle.test.d.ts","sourceRoot":"","sources":["../../../../src/connector/mcp/__tests__/prompts-and-lifecycle.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { JSON_RPC_METHOD_NOT_FOUND } from '../../../constants/mcp/index.js';
|
|
3
|
+
import { MCPClient } from '../client.js';
|
|
4
|
+
import { MCPServer } from '../server.js';
|
|
5
|
+
/**
|
|
6
|
+
* The half of MCP that is not tools.
|
|
7
|
+
*
|
|
8
|
+
* `MCPPromptDefinition` and `MCPPromptArgument` were declared when the types
|
|
9
|
+
* were written; no client method ever asked for a prompt and no server branch
|
|
10
|
+
* ever served one. `MCPLifecycleEvent` and `MCPEventListener` were declared
|
|
11
|
+
* beside them and nothing ever emitted one, so a host could learn that a
|
|
12
|
+
* server had died only by noticing calls had started failing.
|
|
13
|
+
*/
|
|
14
|
+
function fakeTransport() {
|
|
15
|
+
const sent = [];
|
|
16
|
+
let onMessage;
|
|
17
|
+
const transport = {
|
|
18
|
+
connect: async () => undefined,
|
|
19
|
+
close: async () => undefined,
|
|
20
|
+
send: async (m) => {
|
|
21
|
+
sent.push(m);
|
|
22
|
+
},
|
|
23
|
+
onMessage: (h) => {
|
|
24
|
+
onMessage = h;
|
|
25
|
+
},
|
|
26
|
+
onClose: () => undefined,
|
|
27
|
+
onError: () => undefined,
|
|
28
|
+
};
|
|
29
|
+
return { transport, sent, deliver: (m) => onMessage?.(m) };
|
|
30
|
+
}
|
|
31
|
+
const toolProvider = {
|
|
32
|
+
listTools: () => [],
|
|
33
|
+
callTool: async () => ({ content: [{ type: 'text', text: 'ok' }] }),
|
|
34
|
+
};
|
|
35
|
+
function promptProvider(over = {}) {
|
|
36
|
+
const prompts = [
|
|
37
|
+
{
|
|
38
|
+
name: 'summarize',
|
|
39
|
+
description: 'Summarize a file',
|
|
40
|
+
arguments: [
|
|
41
|
+
{ name: 'path', required: true },
|
|
42
|
+
{ name: 'style', required: false },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
const messages = [
|
|
47
|
+
{ role: 'user', content: { type: 'text', text: 'summarize it' } },
|
|
48
|
+
];
|
|
49
|
+
return {
|
|
50
|
+
listPrompts: () => prompts,
|
|
51
|
+
getPrompt: async () => ({ description: 'Summarize a file', messages }),
|
|
52
|
+
...over,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async function ask(t, method, params = {}) {
|
|
56
|
+
t.deliver({ jsonrpc: '2.0', id: 1, method, params });
|
|
57
|
+
await new Promise((r) => setTimeout(r, 0));
|
|
58
|
+
return t.sent.at(-1);
|
|
59
|
+
}
|
|
60
|
+
describe('a server serves the prompts it publishes', () => {
|
|
61
|
+
it('lists them', async () => {
|
|
62
|
+
const t = fakeTransport();
|
|
63
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
|
|
64
|
+
await server.start(t.transport);
|
|
65
|
+
const reply = await ask(t, 'prompts/list');
|
|
66
|
+
expect(reply.result.prompts[0]?.name).toBe('summarize');
|
|
67
|
+
});
|
|
68
|
+
it('returns the messages the server composed', async () => {
|
|
69
|
+
const t = fakeTransport();
|
|
70
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
|
|
71
|
+
await server.start(t.transport);
|
|
72
|
+
const reply = await ask(t, 'prompts/get', {
|
|
73
|
+
name: 'summarize',
|
|
74
|
+
arguments: { path: 'a.ts' },
|
|
75
|
+
});
|
|
76
|
+
expect(reply.result.messages[0]?.content).toEqual({
|
|
77
|
+
type: 'text',
|
|
78
|
+
text: 'summarize it',
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
it('advertises the capability only when something is behind it', async () => {
|
|
82
|
+
const withPrompts = fakeTransport();
|
|
83
|
+
const without = fakeTransport();
|
|
84
|
+
const a = new MCPServer({ name: 'a' }, toolProvider, undefined, promptProvider());
|
|
85
|
+
const b = new MCPServer({ name: 'b' }, toolProvider);
|
|
86
|
+
await a.start(withPrompts.transport);
|
|
87
|
+
await b.start(without.transport);
|
|
88
|
+
const withCap = await ask(withPrompts, 'initialize');
|
|
89
|
+
const withoutCap = await ask(without, 'initialize');
|
|
90
|
+
// A capability advertised without a provider is a promise the next
|
|
91
|
+
// call breaks.
|
|
92
|
+
expect(withCap.result.capabilities.prompts).toBeDefined();
|
|
93
|
+
expect(withoutCap.result.capabilities.prompts).toBeUndefined();
|
|
94
|
+
});
|
|
95
|
+
it('refuses a required argument the caller omitted', async () => {
|
|
96
|
+
const t = fakeTransport();
|
|
97
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
|
|
98
|
+
await server.start(t.transport);
|
|
99
|
+
const reply = await ask(t, 'prompts/get', { name: 'summarize', arguments: {} });
|
|
100
|
+
// Checked from the declaration, so every provider does not have to
|
|
101
|
+
// re-implement it or forget to.
|
|
102
|
+
expect(reply.error?.message).toContain('path');
|
|
103
|
+
});
|
|
104
|
+
it('accepts an optional argument being absent', async () => {
|
|
105
|
+
const t = fakeTransport();
|
|
106
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
|
|
107
|
+
await server.start(t.transport);
|
|
108
|
+
const reply = await ask(t, 'prompts/get', {
|
|
109
|
+
name: 'summarize',
|
|
110
|
+
arguments: { path: 'a.ts' },
|
|
111
|
+
});
|
|
112
|
+
expect(reply.error).toBeUndefined();
|
|
113
|
+
});
|
|
114
|
+
it('refuses a prompt it does not publish', async () => {
|
|
115
|
+
const t = fakeTransport();
|
|
116
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider());
|
|
117
|
+
await server.start(t.transport);
|
|
118
|
+
const reply = await ask(t, 'prompts/get', { name: 'nonexistent' });
|
|
119
|
+
expect(reply.error?.message).toContain('nonexistent');
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
describe('"none" and "not here" are different answers', () => {
|
|
123
|
+
it('says method-not-found for prompts when there is no provider', async () => {
|
|
124
|
+
const t = fakeTransport();
|
|
125
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider);
|
|
126
|
+
await server.start(t.transport);
|
|
127
|
+
const reply = await ask(t, 'prompts/list');
|
|
128
|
+
expect(reply.error?.code).toBe(JSON_RPC_METHOD_NOT_FOUND);
|
|
129
|
+
});
|
|
130
|
+
it('says method-not-found for resources when there is no provider', async () => {
|
|
131
|
+
const t = fakeTransport();
|
|
132
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider);
|
|
133
|
+
await server.start(t.transport);
|
|
134
|
+
const reply = await ask(t, 'resources/list');
|
|
135
|
+
// This used to answer `{ resources: [] }` for a capability
|
|
136
|
+
// `initialize` never advertised — telling a client "none" where the
|
|
137
|
+
// truth is "not here". The two send a client in opposite directions.
|
|
138
|
+
expect(reply.error?.code).toBe(JSON_RPC_METHOD_NOT_FOUND);
|
|
139
|
+
});
|
|
140
|
+
it('uses the protocol code for an unknown method, not a generic failure', async () => {
|
|
141
|
+
const t = fakeTransport();
|
|
142
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider);
|
|
143
|
+
await server.start(t.transport);
|
|
144
|
+
const reply = await ask(t, 'completely/unknown');
|
|
145
|
+
expect(reply.error?.code).toBe(JSON_RPC_METHOD_NOT_FOUND);
|
|
146
|
+
});
|
|
147
|
+
it('still reports a provider failure as an internal error', async () => {
|
|
148
|
+
const t = fakeTransport();
|
|
149
|
+
const server = new MCPServer({ name: 'srv' }, toolProvider, undefined, promptProvider({
|
|
150
|
+
listPrompts: () => {
|
|
151
|
+
throw new Error('provider exploded');
|
|
152
|
+
},
|
|
153
|
+
}));
|
|
154
|
+
await server.start(t.transport);
|
|
155
|
+
const reply = await ask(t, 'prompts/list');
|
|
156
|
+
// A broken provider is not the same as an unimplemented method, and
|
|
157
|
+
// collapsing the two would tell a client to stop asking for something
|
|
158
|
+
// that works tomorrow.
|
|
159
|
+
expect(reply.error?.code).toBe(-32603);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
describe('a client says out loud what it already knew', () => {
|
|
163
|
+
function failingClient() {
|
|
164
|
+
// `connect` failing is the simplest path that actually emits. A
|
|
165
|
+
// never-connected client's `disconnect` returns early and emits
|
|
166
|
+
// nothing — an easy way to write a test that proves nothing, which is
|
|
167
|
+
// what the first version of these did.
|
|
168
|
+
return new MCPClient({
|
|
169
|
+
serverName: 'srv',
|
|
170
|
+
transport: { type: 'stdio', command: 'definitely-not-a-real-binary-xyz', args: [] },
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Covered here: the transport-error emitter. `connect`'s own catch emits
|
|
175
|
+
* the same event and is NOT pinned — a spawn failure surfaces through the
|
|
176
|
+
* transport first, so the catch is the second line of defence rather than
|
|
177
|
+
* the path this reaches. Reaching it needs a connection that opens and
|
|
178
|
+
* then fails negotiation, which this fake cannot stage; said rather than
|
|
179
|
+
* left for a mutation run to discover.
|
|
180
|
+
*/
|
|
181
|
+
it('reports a failure to whoever is listening', async () => {
|
|
182
|
+
const client = failingClient();
|
|
183
|
+
const seen = [];
|
|
184
|
+
client.onLifecycle((e) => seen.push(e.type));
|
|
185
|
+
await client.connect().catch(() => undefined);
|
|
186
|
+
expect(seen).toContain('mcp_client_error');
|
|
187
|
+
});
|
|
188
|
+
it('stops reporting once the listener unsubscribes', async () => {
|
|
189
|
+
const client = failingClient();
|
|
190
|
+
const seen = vi.fn();
|
|
191
|
+
const off = client.onLifecycle(seen);
|
|
192
|
+
off();
|
|
193
|
+
await client.connect().catch(() => undefined);
|
|
194
|
+
// `onNotification` returns nothing, so a listener registered there
|
|
195
|
+
// cannot be removed and keeps a disposed host object alive for as
|
|
196
|
+
// long as the client. This is that bug not repeated.
|
|
197
|
+
expect(seen).not.toHaveBeenCalled();
|
|
198
|
+
});
|
|
199
|
+
it('leaves other listeners working when one throws', async () => {
|
|
200
|
+
const client = failingClient();
|
|
201
|
+
const survivor = vi.fn();
|
|
202
|
+
client.onLifecycle(() => {
|
|
203
|
+
throw new Error('observer bug');
|
|
204
|
+
});
|
|
205
|
+
client.onLifecycle(survivor);
|
|
206
|
+
await client.connect().catch(() => undefined);
|
|
207
|
+
// These fire from inside transport callbacks and from `connect`'s
|
|
208
|
+
// failure path, so an escaping exception would surface as a connection
|
|
209
|
+
// error — blaming the server for a bug in the host's own observer, and
|
|
210
|
+
// silencing every listener registered after the broken one.
|
|
211
|
+
expect(survivor).toHaveBeenCalled();
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
//# sourceMappingURL=prompts-and-lifecycle.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts-and-lifecycle.test.js","sourceRoot":"","sources":["../../../../src/connector/mcp/__tests__/prompts-and-lifecycle.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAO3E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC;;;;;;;;GAQG;AAEH,SAAS,aAAa;IAKrB,MAAM,IAAI,GAAwB,EAAE,CAAA;IACpC,IAAI,SAAuD,CAAA;IAC3D,MAAM,SAAS,GAAiB;QAC/B,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QAC9B,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QAC5B,IAAI,EAAE,KAAK,EAAE,CAAoB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,CAAC;QACD,SAAS,EAAE,CAAC,CAAiC,EAAE,EAAE;YAChD,SAAS,GAAG,CAAC,CAAA;QACd,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;QACxB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;KACG,CAAA;IAC5B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,MAAM,YAAY,GAA0B;IAC3C,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;IACnB,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;CACnE,CAAA;AAED,SAAS,cAAc,CAAC,OAAyC,EAAE;IAClE,MAAM,OAAO,GAA0B;QACtC;YACC,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,kBAAkB;YAC/B,SAAS,EAAE;gBACV,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;aAClC;SACD;KACD,CAAA;IACD,MAAM,QAAQ,GAAuB;QACpC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;KACjE,CAAA;IACD,OAAO;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO;QAC1B,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;QACtE,GAAG,IAAI;KACP,CAAA;AACF,CAAC;AAED,KAAK,UAAU,GAAG,CACjB,CAAmC,EACnC,MAAc,EACd,SAAkC,EAAE;IAEpC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAuB,CAAC,CAAA;IACzE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAGlB,CAAA;AACF,CAAC;AAED,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAE1C,MAAM,CAAE,KAAK,CAAC,MAA6C,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE;YACzC,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAA;QAEF,MAAM,CAAE,KAAK,CAAC,MAA2C,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;YACvF,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;SACpB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,WAAW,GAAG,aAAa,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;QAC/B,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACjF,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;QACpD,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACpC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEhC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAEnD,mEAAmE;QACnE,eAAe;QACf,MAAM,CACJ,OAAO,CAAC,MAAoD,CAAC,YAAY,CAAC,OAAO,CAClF,CAAC,WAAW,EAAE,CAAA;QACf,MAAM,CACJ,UAAU,CAAC,MAAoD,CAAC,YAAY,CAAC,OAAO,CACrF,CAAC,aAAa,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;QAE/E,mEAAmE;QACnE,gCAAgC;QAChC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE;YACzC,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;QACxF,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;QAElE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC5D,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAA;QAC3D,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAE1C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAA;QAC3D,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;QAE5C,2DAA2D;QAC3D,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAA;QAC3D,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAA;QAEhD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,CAAC,GAAG,aAAa,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,YAAY,EACZ,SAAS,EACT,cAAc,CAAC;YACd,WAAW,EAAE,GAAG,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YACrC,CAAC;SACD,CAAC,CACF,CAAA;QACD,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAE1C,oEAAoE;QACpE,sEAAsE;QACtE,uBAAuB;QACvB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC5D,SAAS,aAAa;QACrB,gEAAgE;QAChE,gEAAgE;QAChE,sEAAsE;QACtE,uCAAuC;QACvC,OAAO,IAAI,SAAS,CAAC;YACpB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAkC,EAAE,IAAI,EAAE,EAAE,EAAE;SACnF,CAAC,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;QAC9B,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAE5C,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAE7C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;QAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACpC,GAAG,EAAE,CAAA;QACL,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAE7C,mEAAmE;QACnE,kEAAkE;QAClE,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;QAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QACxB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAE5B,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAE7C,kEAAkE;QAClE,uEAAuE;QACvE,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MCPClientConfig, MCPClientState, MCPContentBlock, MCPInitializeResult, MCPResource, MCPResourceTemplate, MCPToolDefinition, MCPToolResult } from '../../types/connector/index.js';
|
|
1
|
+
import type { MCPClientConfig, MCPClientState, MCPContentBlock, MCPEventListener, MCPInitializeResult, MCPPromptDefinition, MCPPromptMessage, MCPResource, MCPResourceTemplate, MCPToolDefinition, MCPToolResult } from '../../types/connector/index.js';
|
|
2
2
|
import type { MCPClientId } from '../../types/ids/index.js';
|
|
3
3
|
export declare class MCPClient {
|
|
4
4
|
readonly id: MCPClientId;
|
|
@@ -11,6 +11,7 @@ export declare class MCPClient {
|
|
|
11
11
|
private pendingRequests;
|
|
12
12
|
private nextRequestId;
|
|
13
13
|
private notificationHandlers;
|
|
14
|
+
private lifecycleListeners;
|
|
14
15
|
private log;
|
|
15
16
|
private readonly config;
|
|
16
17
|
constructor(config: MCPClientConfig);
|
|
@@ -22,6 +23,33 @@ export declare class MCPClient {
|
|
|
22
23
|
callTool(name: string, args?: Record<string, unknown>): Promise<MCPToolResult>;
|
|
23
24
|
listResources(): Promise<MCPResource[]>;
|
|
24
25
|
readResource(uri: string): Promise<MCPContentBlock[]>;
|
|
26
|
+
/**
|
|
27
|
+
* The prompts a server publishes.
|
|
28
|
+
*
|
|
29
|
+
* A prompt is the server's own wording for a task it knows how to set
|
|
30
|
+
* up — the half of MCP that is not tools. `MCPPromptDefinition` and
|
|
31
|
+
* `MCPPromptArgument` were declared when the types were written and no
|
|
32
|
+
* method ever asked for one, so a server offering prompts had them
|
|
33
|
+
* silently ignored.
|
|
34
|
+
*
|
|
35
|
+
* Paged through the same reader as every other list, which is the point
|
|
36
|
+
* of it being generic: a server that pages its prompts does not get
|
|
37
|
+
* silently truncated to page one the way the tool list once was.
|
|
38
|
+
*/
|
|
39
|
+
listPrompts(): Promise<MCPPromptDefinition[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Fetch one prompt, with its arguments filled in.
|
|
42
|
+
*
|
|
43
|
+
* Returns the messages the SERVER composed. They are data to be shown to
|
|
44
|
+
* a model, never instructions to this client: a prompt arriving from a
|
|
45
|
+
* remote server is exactly the untrusted-content case, and treating its
|
|
46
|
+
* text as direction would let a server steer the agent by publishing a
|
|
47
|
+
* prompt nobody asked to run.
|
|
48
|
+
*/
|
|
49
|
+
getPrompt(name: string, args?: Record<string, string>): Promise<{
|
|
50
|
+
description?: string;
|
|
51
|
+
messages: MCPPromptMessage[];
|
|
52
|
+
}>;
|
|
25
53
|
listResourceTemplates(): Promise<MCPResourceTemplate[]>;
|
|
26
54
|
/**
|
|
27
55
|
* Read a paged list to the end.
|
|
@@ -42,6 +70,29 @@ export declare class MCPClient {
|
|
|
42
70
|
*/
|
|
43
71
|
private listAllPages;
|
|
44
72
|
onNotification(handler: (method: string, params?: Record<string, unknown>) => void): void;
|
|
73
|
+
/**
|
|
74
|
+
* Watch this client come up, go down, or fail.
|
|
75
|
+
*
|
|
76
|
+
* `MCPLifecycleEvent` and `MCPEventListener` were declared with the rest
|
|
77
|
+
* of the MCP types and nothing ever emitted one, so a host could observe
|
|
78
|
+
* a server dying only by noticing that calls had started failing. The
|
|
79
|
+
* four transitions below already existed and already mutated `status`;
|
|
80
|
+
* this adds no state, it just says out loud what the client already
|
|
81
|
+
* knew.
|
|
82
|
+
*
|
|
83
|
+
* Returns an unsubscribe. `onNotification` above does not, which is the
|
|
84
|
+
* bug this avoids repeating: a listener that cannot be removed keeps a
|
|
85
|
+
* disposed host object alive for as long as the client lives.
|
|
86
|
+
*/
|
|
87
|
+
onLifecycle(listener: MCPEventListener): () => void;
|
|
88
|
+
/**
|
|
89
|
+
* A listener that throws must not take the transport down with it.
|
|
90
|
+
*
|
|
91
|
+
* These fire from inside transport callbacks and from the failure path
|
|
92
|
+
* of `connect`, so an exception here would surface as a connection
|
|
93
|
+
* error — blaming the server for a bug in the host's own observer.
|
|
94
|
+
*/
|
|
95
|
+
private emitLifecycle;
|
|
45
96
|
private createTransport;
|
|
46
97
|
/**
|
|
47
98
|
* Send a JSON-RPC request and wait for its reply, bounded by a timer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,cAAc,EAEd,eAAe,EACf,mBAAmB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,cAAc,EAEd,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EAGnB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,EAGb,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAqB3D,qBAAa,SAAS;IACrB,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAA;IACxB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,UAAU,CAAC,CAAoC;IACvD,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,eAAe,CAMpB;IACH,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,oBAAoB,CACzB;IACH,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,eAAe;IAO7B,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAyEvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,cAAc;IAYpB,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAKzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAS9E,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKvC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQ3D;;;;;;;;;;;;OAYG;IACG,WAAW,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAKnD;;;;;;;;OAQG;IACG,SAAS,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAY5D,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAK7D;;;;;;;;;;;;;;;;OAgBG;YACW,YAAY;IAwB1B,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIzF;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAQnD;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;IAcvB;;;;;;;;;;;OAWG;YACW,OAAO;IA4CrB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;YAaV,MAAM;IASpB,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,gBAAgB;CAOxB"}
|
|
@@ -20,6 +20,7 @@ export class MCPClient {
|
|
|
20
20
|
pendingRequests = new Map();
|
|
21
21
|
nextRequestId = 1;
|
|
22
22
|
notificationHandlers = [];
|
|
23
|
+
lifecycleListeners = [];
|
|
23
24
|
log;
|
|
24
25
|
config;
|
|
25
26
|
constructor(config) {
|
|
@@ -38,12 +39,14 @@ export class MCPClient {
|
|
|
38
39
|
this.transport.onClose(() => {
|
|
39
40
|
this.status = 'disconnected';
|
|
40
41
|
this.log.info('MCP transport closed');
|
|
42
|
+
this.emitLifecycle({ type: 'mcp_client_disconnected', clientId: this.id });
|
|
41
43
|
this.rejectAllPending(`MCP transport to "${this.config.serverName}" closed`);
|
|
42
44
|
});
|
|
43
45
|
this.transport.onError((err) => {
|
|
44
46
|
this.status = 'error';
|
|
45
47
|
this.error = err.message;
|
|
46
48
|
this.log.error('MCP transport error', { error: err.message });
|
|
49
|
+
this.emitLifecycle({ type: 'mcp_client_error', clientId: this.id, error: err.message });
|
|
47
50
|
this.rejectAllPending(`MCP transport to "${this.config.serverName}" failed: ${err.message}`);
|
|
48
51
|
});
|
|
49
52
|
await this.transport.connect();
|
|
@@ -72,6 +75,11 @@ export class MCPClient {
|
|
|
72
75
|
await this.notify('notifications/initialized', {});
|
|
73
76
|
this.status = 'connected';
|
|
74
77
|
this.connectedAt = Date.now();
|
|
78
|
+
this.emitLifecycle({
|
|
79
|
+
type: 'mcp_client_connected',
|
|
80
|
+
clientId: this.id,
|
|
81
|
+
serverName: this.config.serverName,
|
|
82
|
+
});
|
|
75
83
|
this.log.info(`Connected to MCP server: ${result.serverInfo.name}`);
|
|
76
84
|
return result;
|
|
77
85
|
}
|
|
@@ -79,6 +87,7 @@ export class MCPClient {
|
|
|
79
87
|
this.status = 'error';
|
|
80
88
|
this.error = toErrorMessage(err);
|
|
81
89
|
this.log.error('MCP connection failed', { error: this.error });
|
|
90
|
+
this.emitLifecycle({ type: 'mcp_client_error', clientId: this.id, error: this.error });
|
|
82
91
|
throw err;
|
|
83
92
|
}
|
|
84
93
|
}
|
|
@@ -90,6 +99,7 @@ export class MCPClient {
|
|
|
90
99
|
this.status = 'disconnected';
|
|
91
100
|
this.connectedAt = undefined;
|
|
92
101
|
this.log.info('MCP client disconnected');
|
|
102
|
+
this.emitLifecycle({ type: 'mcp_client_disconnected', clientId: this.id });
|
|
93
103
|
}
|
|
94
104
|
isConnected() {
|
|
95
105
|
return this.status === 'connected';
|
|
@@ -126,6 +136,43 @@ export class MCPClient {
|
|
|
126
136
|
const result = (await this.request('resources/read', { uri }));
|
|
127
137
|
return result.contents;
|
|
128
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* The prompts a server publishes.
|
|
141
|
+
*
|
|
142
|
+
* A prompt is the server's own wording for a task it knows how to set
|
|
143
|
+
* up — the half of MCP that is not tools. `MCPPromptDefinition` and
|
|
144
|
+
* `MCPPromptArgument` were declared when the types were written and no
|
|
145
|
+
* method ever asked for one, so a server offering prompts had them
|
|
146
|
+
* silently ignored.
|
|
147
|
+
*
|
|
148
|
+
* Paged through the same reader as every other list, which is the point
|
|
149
|
+
* of it being generic: a server that pages its prompts does not get
|
|
150
|
+
* silently truncated to page one the way the tool list once was.
|
|
151
|
+
*/
|
|
152
|
+
async listPrompts() {
|
|
153
|
+
this.requireConnected();
|
|
154
|
+
return await this.listAllPages('prompts/list', 'prompts');
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Fetch one prompt, with its arguments filled in.
|
|
158
|
+
*
|
|
159
|
+
* Returns the messages the SERVER composed. They are data to be shown to
|
|
160
|
+
* a model, never instructions to this client: a prompt arriving from a
|
|
161
|
+
* remote server is exactly the untrusted-content case, and treating its
|
|
162
|
+
* text as direction would let a server steer the agent by publishing a
|
|
163
|
+
* prompt nobody asked to run.
|
|
164
|
+
*/
|
|
165
|
+
async getPrompt(name, args) {
|
|
166
|
+
this.requireConnected();
|
|
167
|
+
const result = (await this.request('prompts/get', {
|
|
168
|
+
name,
|
|
169
|
+
arguments: args ?? {},
|
|
170
|
+
}));
|
|
171
|
+
return {
|
|
172
|
+
...(result.description !== undefined ? { description: result.description } : {}),
|
|
173
|
+
messages: result.messages ?? [],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
129
176
|
async listResourceTemplates() {
|
|
130
177
|
this.requireConnected();
|
|
131
178
|
return await this.listAllPages('resources/templates/list', 'resourceTemplates');
|
|
@@ -167,6 +214,45 @@ export class MCPClient {
|
|
|
167
214
|
onNotification(handler) {
|
|
168
215
|
this.notificationHandlers.push(handler);
|
|
169
216
|
}
|
|
217
|
+
/**
|
|
218
|
+
* Watch this client come up, go down, or fail.
|
|
219
|
+
*
|
|
220
|
+
* `MCPLifecycleEvent` and `MCPEventListener` were declared with the rest
|
|
221
|
+
* of the MCP types and nothing ever emitted one, so a host could observe
|
|
222
|
+
* a server dying only by noticing that calls had started failing. The
|
|
223
|
+
* four transitions below already existed and already mutated `status`;
|
|
224
|
+
* this adds no state, it just says out loud what the client already
|
|
225
|
+
* knew.
|
|
226
|
+
*
|
|
227
|
+
* Returns an unsubscribe. `onNotification` above does not, which is the
|
|
228
|
+
* bug this avoids repeating: a listener that cannot be removed keeps a
|
|
229
|
+
* disposed host object alive for as long as the client lives.
|
|
230
|
+
*/
|
|
231
|
+
onLifecycle(listener) {
|
|
232
|
+
this.lifecycleListeners.push(listener);
|
|
233
|
+
return () => {
|
|
234
|
+
const index = this.lifecycleListeners.indexOf(listener);
|
|
235
|
+
if (index >= 0)
|
|
236
|
+
this.lifecycleListeners.splice(index, 1);
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* A listener that throws must not take the transport down with it.
|
|
241
|
+
*
|
|
242
|
+
* These fire from inside transport callbacks and from the failure path
|
|
243
|
+
* of `connect`, so an exception here would surface as a connection
|
|
244
|
+
* error — blaming the server for a bug in the host's own observer.
|
|
245
|
+
*/
|
|
246
|
+
emitLifecycle(event) {
|
|
247
|
+
for (const listener of this.lifecycleListeners) {
|
|
248
|
+
try {
|
|
249
|
+
listener(event);
|
|
250
|
+
}
|
|
251
|
+
catch (err) {
|
|
252
|
+
this.log.warn('MCP lifecycle listener threw', { error: toErrorMessage(err) });
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
170
256
|
createTransport(config) {
|
|
171
257
|
switch (config.type) {
|
|
172
258
|
case 'stdio':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/connector/mcp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MCPDiscoveredTool } from '../../types/connector/index.js';
|
|
1
|
+
import type { MCPDiscoveredTool, MCPPromptDefinition } from '../../types/connector/index.js';
|
|
2
2
|
import type { ToolDefinition } from '../../types/tool/index.js';
|
|
3
3
|
import { type Logger } from '../../utils/logger.js';
|
|
4
4
|
import type { MCPClient } from './client.js';
|
|
@@ -32,13 +32,38 @@ export declare class MCPToolDiscovery {
|
|
|
32
32
|
private clients;
|
|
33
33
|
private log;
|
|
34
34
|
private options;
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Last admitted tool set per SERVER, for drift detection.
|
|
37
|
+
*
|
|
38
|
+
* Keyed by server name rather than client id, and the difference is the
|
|
39
|
+
* whole point. A client id is minted per connection, so on the path a
|
|
40
|
+
* real MCP server actually takes — a plugin enabling, connecting, and
|
|
41
|
+
* being disabled again — every discovery was the first one that id had
|
|
42
|
+
* ever seen, and drift could not fire however many times the server
|
|
43
|
+
* changed underneath. The threat is a server that advertises something
|
|
44
|
+
* benign when a host approves it and something else afterwards, which is
|
|
45
|
+
* a property of the SERVER across connections.
|
|
46
|
+
*/
|
|
36
47
|
private lastSeen;
|
|
37
48
|
constructor(clients: MCPClient[], options?: MCPToolDiscoveryOptions);
|
|
38
49
|
addClient(client: MCPClient): void;
|
|
39
50
|
removeClient(clientId: string): void;
|
|
40
51
|
discoverAll(): Promise<MCPDiscoveredTool[]>;
|
|
41
52
|
discoverFrom(client: MCPClient): Promise<MCPDiscoveredTool[]>;
|
|
53
|
+
/**
|
|
54
|
+
* The prompts a server publishes, through the same admission gate its
|
|
55
|
+
* tools go through.
|
|
56
|
+
*
|
|
57
|
+
* A server publishing a prompt is the same trust question as one
|
|
58
|
+
* publishing a tool: the remote side must not decide what enters the
|
|
59
|
+
* agent's registry. Policy is matched on the prompt's own name, as the
|
|
60
|
+
* server reports it, before any namespacing.
|
|
61
|
+
*
|
|
62
|
+
* A server that does not implement prompts answers method-not-found;
|
|
63
|
+
* that is an ordinary answer, not a failure, so it yields none rather
|
|
64
|
+
* than taking discovery down.
|
|
65
|
+
*/
|
|
66
|
+
discoverPromptsFrom(client: MCPClient): Promise<MCPPromptDefinition[]>;
|
|
42
67
|
toToolDefinitions(): Promise<ToolDefinition[]>;
|
|
43
68
|
private detectDrift;
|
|
44
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,mBAAmB,EAEnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,uBAAuB,CAAA;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,aAAa,EAKlB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,uBAAuB;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IAC3D;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,KAAK,IAAI,CAAA;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,OAAO,CAAyB;IACxC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,CAAyC;gBAE7C,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,uBAA4B;IAMvE,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIlC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS9B,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAuB3C,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA4BnE;;;;;;;;;;;;OAYG;IACG,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA6BtE,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAWpD,OAAO,CAAC,WAAW;CAiBnB"}
|