@1mcp/agent 0.35.0-beta.2 → 0.35.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/build/admin/assets/{admin-console-CbHHoqLr.js → admin-console-BOl7XR0p.js} +2 -2
- package/build/admin/assets/{admin-console-C5_zD_qW.css → admin-console-Bbil6BQU.css} +1 -1
- package/build/admin/index.html +2 -2
- package/build/auth/oauthAuthorizationFlow.d.ts +2 -2
- package/build/auth/oauthAuthorizationFlow.d.ts.map +1 -1
- package/build/auth/oauthAuthorizationFlow.js +1 -1
- package/build/auth/oauthAuthorizationFlow.js.map +1 -1
- package/build/auth/sdkOAuthServerProvider.d.ts +4 -3
- package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -1
- package/build/auth/sdkOAuthServerProvider.js +132 -17
- package/build/auth/sdkOAuthServerProvider.js.map +1 -1
- package/build/auth/sessionTypes.d.ts +40 -5
- package/build/auth/sessionTypes.d.ts.map +1 -1
- package/build/auth/sessionTypes.js +33 -1
- package/build/auth/sessionTypes.js.map +1 -1
- package/build/auth/storage/fileStorageService.d.ts +18 -1
- package/build/auth/storage/fileStorageService.d.ts.map +1 -1
- package/build/auth/storage/fileStorageService.js +253 -3
- package/build/auth/storage/fileStorageService.js.map +1 -1
- package/build/auth/storage/oauthStorageService.d.ts +4 -1
- package/build/auth/storage/oauthStorageService.d.ts.map +1 -1
- package/build/auth/storage/oauthStorageService.js +8 -1
- package/build/auth/storage/oauthStorageService.js.map +1 -1
- package/build/auth/storage/refreshTokenFamilyRepository.d.ts +36 -0
- package/build/auth/storage/refreshTokenFamilyRepository.d.ts.map +1 -0
- package/build/auth/storage/refreshTokenFamilyRepository.js +167 -0
- package/build/auth/storage/refreshTokenFamilyRepository.js.map +1 -0
- package/build/auth/storage/sessionRepository.d.ts +14 -1
- package/build/auth/storage/sessionRepository.d.ts.map +1 -1
- package/build/auth/storage/sessionRepository.js +32 -9
- package/build/auth/storage/sessionRepository.js.map +1 -1
- package/build/commands/inspect/inspect.d.ts.map +1 -1
- package/build/commands/inspect/inspect.js +2 -9
- package/build/commands/inspect/inspect.js.map +1 -1
- package/build/commands/inspect/inspectUtils.d.ts +4 -0
- package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
- package/build/commands/inspect/inspectUtils.js +12 -0
- package/build/commands/inspect/inspectUtils.js.map +1 -1
- package/build/commands/instructions/instructionsUtils.d.ts +2 -0
- package/build/commands/instructions/instructionsUtils.d.ts.map +1 -1
- package/build/commands/instructions/instructionsUtils.js +7 -3
- package/build/commands/instructions/instructionsUtils.js.map +1 -1
- package/build/commands/run/run.d.ts.map +1 -1
- package/build/commands/run/run.js +86 -7
- package/build/commands/run/run.js.map +1 -1
- package/build/commands/serve/asyncLoadingOptions.d.ts +30 -0
- package/build/commands/serve/asyncLoadingOptions.d.ts.map +1 -0
- package/build/commands/serve/asyncLoadingOptions.js +34 -0
- package/build/commands/serve/asyncLoadingOptions.js.map +1 -0
- package/build/commands/serve/index.d.ts +4 -1
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +14 -15
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serve.d.ts +2 -1
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +17 -8
- package/build/commands/serve/serve.js.map +1 -1
- package/build/commands/serve/serveBackground.d.ts.map +1 -1
- package/build/commands/serve/serveBackground.js +1 -0
- package/build/commands/serve/serveBackground.js.map +1 -1
- package/build/commands/shared/apiClient.d.ts +1 -1
- package/build/commands/shared/apiClient.d.ts.map +1 -1
- package/build/commands/shared/apiClient.js +2 -2
- package/build/commands/shared/apiClient.js.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.d.ts +3 -1
- package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.js +14 -4
- package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
- package/build/commands/shared/commandRunner.d.ts +1 -0
- package/build/commands/shared/commandRunner.d.ts.map +1 -1
- package/build/commands/shared/commandRunner.js +10 -2
- package/build/commands/shared/commandRunner.js.map +1 -1
- package/build/commands/shared/filterSelectionQuery.d.ts +8 -0
- package/build/commands/shared/filterSelectionQuery.d.ts.map +1 -0
- package/build/commands/shared/filterSelectionQuery.js +12 -0
- package/build/commands/shared/filterSelectionQuery.js.map +1 -0
- package/build/commands/shared/inspectApiSchemas.d.ts +83 -0
- package/build/commands/shared/inspectApiSchemas.d.ts.map +1 -0
- package/build/commands/shared/inspectApiSchemas.js +40 -0
- package/build/commands/shared/inspectApiSchemas.js.map +1 -0
- package/build/commands/shared/serveTargetResolver.d.ts.map +1 -1
- package/build/commands/shared/serveTargetResolver.js +19 -8
- package/build/commands/shared/serveTargetResolver.js.map +1 -1
- package/build/commands/wait/index.d.ts +3 -0
- package/build/commands/wait/index.d.ts.map +1 -0
- package/build/commands/wait/index.js +20 -0
- package/build/commands/wait/index.js.map +1 -0
- package/build/commands/wait/wait.d.ts +39 -0
- package/build/commands/wait/wait.d.ts.map +1 -0
- package/build/commands/wait/wait.js +161 -0
- package/build/commands/wait/wait.js.map +1 -0
- package/build/config/configLoader.d.ts.map +1 -1
- package/build/config/configLoader.js +12 -0
- package/build/config/configLoader.js.map +1 -1
- package/build/constants/auth.d.ts +10 -1
- package/build/constants/auth.d.ts.map +1 -1
- package/build/constants/auth.js +11 -1
- package/build/constants/auth.js.map +1 -1
- package/build/constants/mcp.d.ts +7 -1
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +9 -1
- package/build/constants/mcp.js.map +1 -1
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +10 -9
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/core/capabilities/capabilityCatalog.d.ts +6 -5
- package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/capabilityCatalog.js +36 -23
- package/build/core/capabilities/capabilityCatalog.js.map +1 -1
- package/build/core/capabilities/capabilityVisibility.d.ts +12 -0
- package/build/core/capabilities/capabilityVisibility.d.ts.map +1 -0
- package/build/core/capabilities/capabilityVisibility.js +13 -0
- package/build/core/capabilities/capabilityVisibility.js.map +1 -0
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts +2 -1
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -1
- package/build/core/capabilities/internalCapabilitiesProvider.js +2 -2
- package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +5 -23
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.js +25 -44
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/metaToolProvider.d.ts +6 -21
- package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
- package/build/core/capabilities/metaToolProvider.js +18 -70
- package/build/core/capabilities/metaToolProvider.js.map +1 -1
- package/build/core/capabilities/toolRegistry.d.ts +5 -1
- package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
- package/build/core/capabilities/toolRegistry.js +11 -3
- package/build/core/capabilities/toolRegistry.js.map +1 -1
- package/build/core/client/clientManager.d.ts +9 -0
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +82 -0
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/client/recreateHttpTransportOptions.d.ts +14 -0
- package/build/core/client/recreateHttpTransportOptions.d.ts.map +1 -0
- package/build/core/client/recreateHttpTransportOptions.js +2 -0
- package/build/core/client/recreateHttpTransportOptions.js.map +1 -0
- package/build/core/client/transportRecreator.d.ts +8 -1
- package/build/core/client/transportRecreator.d.ts.map +1 -1
- package/build/core/client/transportRecreator.js +11 -2
- package/build/core/client/transportRecreator.js.map +1 -1
- package/build/core/instructions/templateTypes.d.ts +2 -2
- package/build/core/instructions/templateTypes.d.ts.map +1 -1
- package/build/core/protocol/requestHandlerUtils.d.ts +3 -0
- package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
- package/build/core/protocol/requestHandlerUtils.js +23 -7
- package/build/core/protocol/requestHandlerUtils.js.map +1 -1
- package/build/core/protocol/toolRequestHandlers.d.ts.map +1 -1
- package/build/core/protocol/toolRequestHandlers.js +13 -13
- package/build/core/protocol/toolRequestHandlers.js.map +1 -1
- package/build/core/runtime/runtimeIdentityService.d.ts +1 -0
- package/build/core/runtime/runtimeIdentityService.d.ts.map +1 -1
- package/build/core/runtime/runtimeIdentityService.js +4 -1
- package/build/core/runtime/runtimeIdentityService.js.map +1 -1
- package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
- package/build/core/server/clientInstanceFactory.js +12 -3
- package/build/core/server/clientInstanceFactory.js.map +1 -1
- package/build/core/server/connectionManager.d.ts +0 -6
- package/build/core/server/connectionManager.d.ts.map +1 -1
- package/build/core/server/connectionManager.js +0 -39
- package/build/core/server/connectionManager.js.map +1 -1
- package/build/core/server/connectionResolver.d.ts.map +1 -1
- package/build/core/server/connectionResolver.js +35 -1
- package/build/core/server/connectionResolver.js.map +1 -1
- package/build/core/types/transport.d.ts +2 -0
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +18 -5
- package/build/core/types/transport.js.map +1 -1
- package/build/domains/backend-logs/backendLogBroker.d.ts +47 -0
- package/build/domains/backend-logs/backendLogBroker.d.ts.map +1 -0
- package/build/domains/backend-logs/backendLogBroker.js +249 -0
- package/build/domains/backend-logs/backendLogBroker.js.map +1 -0
- package/build/domains/backend-logs/backendLogProjection.d.ts +9 -0
- package/build/domains/backend-logs/backendLogProjection.d.ts.map +1 -0
- package/build/domains/backend-logs/backendLogProjection.js +40 -0
- package/build/domains/backend-logs/backendLogProjection.js.map +1 -0
- package/build/domains/backend-logs/backendLogRuntime.d.ts +4 -0
- package/build/domains/backend-logs/backendLogRuntime.d.ts.map +1 -0
- package/build/domains/backend-logs/backendLogRuntime.js +11 -0
- package/build/domains/backend-logs/backendLogRuntime.js.map +1 -0
- package/build/domains/backend-logs/backendLogSanitizer.d.ts +2 -0
- package/build/domains/backend-logs/backendLogSanitizer.d.ts.map +1 -0
- package/build/domains/backend-logs/backendLogSanitizer.js +30 -0
- package/build/domains/backend-logs/backendLogSanitizer.js.map +1 -0
- package/build/domains/backend-logs/backendLogSource.d.ts +8 -0
- package/build/domains/backend-logs/backendLogSource.d.ts.map +1 -0
- package/build/domains/backend-logs/backendLogSource.js +22 -0
- package/build/domains/backend-logs/backendLogSource.js.map +1 -0
- package/build/domains/backend-logs/backendLogTypes.d.ts +49 -0
- package/build/domains/backend-logs/backendLogTypes.d.ts.map +1 -0
- package/build/domains/backend-logs/backendLogTypes.js +2 -0
- package/build/domains/backend-logs/backendLogTypes.js.map +1 -0
- package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts +8 -1
- package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts.map +1 -1
- package/build/domains/runtime-targets/runtimeIdentityVerification.js +62 -3
- package/build/domains/runtime-targets/runtimeIdentityVerification.js.map +1 -1
- package/build/domains/runtime-targets/runtimeProbe.d.ts +34 -0
- package/build/domains/runtime-targets/runtimeProbe.d.ts.map +1 -0
- package/build/domains/runtime-targets/runtimeProbe.js +71 -0
- package/build/domains/runtime-targets/runtimeProbe.js.map +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -0
- package/build/index.js.map +1 -1
- package/build/transport/http/routes/adminRoutes.d.ts +2 -0
- package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/adminRoutes.js +159 -17
- package/build/transport/http/routes/adminRoutes.js.map +1 -1
- package/build/transport/http/routes/inspectHelpers.d.ts +11 -4
- package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
- package/build/transport/http/routes/inspectHelpers.js +21 -2
- package/build/transport/http/routes/inspectHelpers.js.map +1 -1
- package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/inspectRoutes.js +55 -4
- package/build/transport/http/routes/inspectRoutes.js.map +1 -1
- package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/toolRoutes.js +37 -29
- package/build/transport/http/routes/toolRoutes.js.map +1 -1
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +3 -1
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/managedStdioStderr.d.ts +17 -1
- package/build/transport/managedStdioStderr.d.ts.map +1 -1
- package/build/transport/managedStdioStderr.js +129 -5
- package/build/transport/managedStdioStderr.js.map +1 -1
- package/build/transport/managedStdioStderrOptions.d.ts +2 -0
- package/build/transport/managedStdioStderrOptions.d.ts.map +1 -1
- package/build/transport/restartableStdioTransport.js +1 -1
- package/build/transport/restartableStdioTransport.js.map +1 -1
- package/build/transport/transportFactory.d.ts +6 -2
- package/build/transport/transportFactory.d.ts.map +1 -1
- package/build/transport/transportFactory.js +43 -15
- package/build/transport/transportFactory.js.map +1 -1
- package/build/types/serverStatus.d.ts +3 -0
- package/build/types/serverStatus.d.ts.map +1 -0
- package/build/types/serverStatus.js +13 -0
- package/build/types/serverStatus.js.map +1 -0
- package/build/utils/validation/urlDetection.d.ts +12 -9
- package/build/utils/validation/urlDetection.d.ts.map +1 -1
- package/build/utils/validation/urlDetection.js +233 -31
- package/build/utils/validation/urlDetection.js.map +1 -1
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityCatalog.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAEvG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"capabilityCatalog.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ConnectionResolver } from '../../core/server/connectionResolver.js';
|
|
2
2
|
import { getDisabledToolError, isToolDisabled } from '../../core/server/disabledTools.js';
|
|
3
|
+
import { ClientStatus } from '../../core/types/index.js';
|
|
3
4
|
import logger from '../../logger/logger.js';
|
|
5
|
+
import { getCapabilityVisibleServerNames } from './capabilityVisibility.js';
|
|
4
6
|
import { ToolRegistry } from './toolRegistry.js';
|
|
5
7
|
const NEVER_REFRESH = {
|
|
6
8
|
intent: 'never',
|
|
@@ -15,14 +17,14 @@ export class CapabilityCatalog {
|
|
|
15
17
|
this.deps = deps;
|
|
16
18
|
this.connectionResolver = new ConnectionResolver(deps.outboundConnections, deps.templateHashProvider);
|
|
17
19
|
}
|
|
18
|
-
async listVisibleTools(options = {},
|
|
20
|
+
async listVisibleTools(options = {}, visibility, queryOptions = {}) {
|
|
19
21
|
const refresh = await this.resolveRefreshFacts(queryOptions.refreshIntent ?? 'never', 'list');
|
|
20
|
-
const registry = this.visibleToolRegistry(
|
|
22
|
+
const registry = this.visibleToolRegistry(visibility);
|
|
21
23
|
const result = registry.listTools(options);
|
|
22
24
|
const tools = result.tools;
|
|
23
25
|
const servers = Array.from(new Set(tools.map((tool) => tool.server))).sort();
|
|
24
26
|
const routes = tools
|
|
25
|
-
.map((tool) => this.resolveRoute(tool
|
|
27
|
+
.map((tool) => this.resolveRoute(tool, visibility))
|
|
26
28
|
.filter((route) => route !== undefined);
|
|
27
29
|
return {
|
|
28
30
|
...result,
|
|
@@ -32,9 +34,9 @@ export class CapabilityCatalog {
|
|
|
32
34
|
refresh,
|
|
33
35
|
};
|
|
34
36
|
}
|
|
35
|
-
async describeVisibleTool(args,
|
|
37
|
+
async describeVisibleTool(args, visibility, queryOptions = {}) {
|
|
36
38
|
const refresh = await this.resolveRefreshFacts(queryOptions.refreshIntent ?? 'never', 'describe');
|
|
37
|
-
const access = this.resolveVisibleToolAccess(args,
|
|
39
|
+
const access = this.resolveVisibleToolAccess(args, visibility);
|
|
38
40
|
if (access.error) {
|
|
39
41
|
return { schema: {}, error: access.error, refresh };
|
|
40
42
|
}
|
|
@@ -69,9 +71,9 @@ export class CapabilityCatalog {
|
|
|
69
71
|
};
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
|
-
async invokeVisibleTool(args,
|
|
74
|
+
async invokeVisibleTool(args, visibility, queryOptions = {}) {
|
|
73
75
|
const refresh = await this.resolveRefreshFacts(queryOptions.refreshIntent ?? 'never', 'invoke');
|
|
74
|
-
const access = this.resolveVisibleToolAccess(args,
|
|
76
|
+
const access = this.resolveVisibleToolAccess(args, visibility);
|
|
75
77
|
if (access.error) {
|
|
76
78
|
return {
|
|
77
79
|
result: {},
|
|
@@ -151,11 +153,12 @@ export class CapabilityCatalog {
|
|
|
151
153
|
shouldNotifyListChanged: result?.shouldNotifyListChanged ?? false,
|
|
152
154
|
};
|
|
153
155
|
}
|
|
154
|
-
visibleToolRegistry(
|
|
156
|
+
visibleToolRegistry(visibility) {
|
|
155
157
|
let registry = this.deps.getToolRegistry();
|
|
156
|
-
const
|
|
157
|
-
if (
|
|
158
|
-
|
|
158
|
+
const effectiveVisibility = visibility ?? this.deps.defaultVisibility;
|
|
159
|
+
if (effectiveVisibility !== undefined) {
|
|
160
|
+
const connectedCandidates = new Map(Array.from(effectiveVisibility.serverCandidates).filter(([connectionKey]) => this.deps.outboundConnections.get(connectionKey)?.status === ClientStatus.Connected));
|
|
161
|
+
registry = registry.filterByServerCandidates(connectedCandidates);
|
|
159
162
|
}
|
|
160
163
|
if (typeof registry.getAllTools !== 'function') {
|
|
161
164
|
return registry;
|
|
@@ -171,10 +174,11 @@ export class CapabilityCatalog {
|
|
|
171
174
|
inputSchema: tool.inputSchema ?? { type: 'object' },
|
|
172
175
|
},
|
|
173
176
|
server: tool.server,
|
|
177
|
+
connectionKey: tool.connectionKey,
|
|
174
178
|
tags: tool.tags,
|
|
175
179
|
})));
|
|
176
180
|
}
|
|
177
|
-
resolveVisibleToolAccess(args,
|
|
181
|
+
resolveVisibleToolAccess(args, visibility) {
|
|
178
182
|
if (!args.server || !args.toolName) {
|
|
179
183
|
return {
|
|
180
184
|
error: {
|
|
@@ -183,7 +187,7 @@ export class CapabilityCatalog {
|
|
|
183
187
|
},
|
|
184
188
|
};
|
|
185
189
|
}
|
|
186
|
-
const visibleRegistry = this.visibleToolRegistry(
|
|
190
|
+
const visibleRegistry = this.visibleToolRegistry(visibility);
|
|
187
191
|
if (typeof visibleRegistry.getTool !== 'function') {
|
|
188
192
|
return {
|
|
189
193
|
error: {
|
|
@@ -194,7 +198,7 @@ export class CapabilityCatalog {
|
|
|
194
198
|
}
|
|
195
199
|
const tool = visibleRegistry.getTool(args.server, args.toolName);
|
|
196
200
|
if (!tool) {
|
|
197
|
-
const disabledError = this.isServerVisible(args.server,
|
|
201
|
+
const disabledError = this.isServerVisible(args.server, visibility)
|
|
198
202
|
? getDisabledToolError(this.deps.getServerConfigs(), args.server, args.toolName)
|
|
199
203
|
: undefined;
|
|
200
204
|
return {
|
|
@@ -204,7 +208,7 @@ export class CapabilityCatalog {
|
|
|
204
208
|
},
|
|
205
209
|
};
|
|
206
210
|
}
|
|
207
|
-
const route = this.resolveRoute(
|
|
211
|
+
const route = this.resolveRoute(tool, visibility);
|
|
208
212
|
if (!route) {
|
|
209
213
|
return {
|
|
210
214
|
error: {
|
|
@@ -215,19 +219,28 @@ export class CapabilityCatalog {
|
|
|
215
219
|
}
|
|
216
220
|
return { route, tool };
|
|
217
221
|
}
|
|
218
|
-
isServerVisible(server,
|
|
219
|
-
const
|
|
220
|
-
return
|
|
222
|
+
isServerVisible(server, visibility) {
|
|
223
|
+
const effectiveVisibility = visibility ?? this.deps.defaultVisibility;
|
|
224
|
+
return effectiveVisibility === undefined || getCapabilityVisibleServerNames(effectiveVisibility).has(server);
|
|
221
225
|
}
|
|
222
|
-
resolveRoute(
|
|
223
|
-
const
|
|
224
|
-
|
|
226
|
+
resolveRoute(tool, visibility) {
|
|
227
|
+
const registryConnectionKey = tool.connectionKey ?? tool.server;
|
|
228
|
+
if (this.deps.outboundConnections.has(registryConnectionKey)) {
|
|
229
|
+
return {
|
|
230
|
+
server: tool.server,
|
|
231
|
+
toolName: tool.name,
|
|
232
|
+
connectionKey: registryConnectionKey,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
const sessionId = visibility?.sessionId ?? this.deps.defaultVisibility?.sessionId;
|
|
236
|
+
const sessionResult = sessionId ? this.connectionResolver.resolveWithKey(tool.server, sessionId) : undefined;
|
|
237
|
+
const result = sessionResult ?? (!sessionId ? this.connectionResolver.findByServerName(tool.server) : undefined);
|
|
225
238
|
if (!result) {
|
|
226
239
|
return undefined;
|
|
227
240
|
}
|
|
228
241
|
return {
|
|
229
|
-
server,
|
|
230
|
-
toolName,
|
|
242
|
+
server: tool.server,
|
|
243
|
+
toolName: tool.name,
|
|
231
244
|
connectionKey: result.key,
|
|
232
245
|
};
|
|
233
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityCatalog.js","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityCatalog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAA6B,MAAM,wCAAwC,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilityCatalog.js","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request-scoped capability visibility after session, tag, and preset filtering.
|
|
3
|
+
* Connection keys retain template identity; server names remain the public API.
|
|
4
|
+
*/
|
|
5
|
+
export interface CapabilityVisibility {
|
|
6
|
+
readonly sessionId?: string;
|
|
7
|
+
readonly serverCandidates: ReadonlyMap<string, string>;
|
|
8
|
+
}
|
|
9
|
+
export declare function createCapabilityVisibility(serverCandidates: Iterable<readonly [string, string]>, sessionId?: string): CapabilityVisibility;
|
|
10
|
+
export declare function capabilityVisibilityFromServerNames(serverNames: Iterable<string>): CapabilityVisibility;
|
|
11
|
+
export declare function getCapabilityVisibleServerNames(visibility: CapabilityVisibility): Set<string>;
|
|
12
|
+
//# sourceMappingURL=capabilityVisibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilityVisibility.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityVisibility.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxD;AAED,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACrD,SAAS,CAAC,EAAE,MAAM,GACjB,oBAAoB,CAKtB;AAED,wBAAgB,mCAAmC,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAEvG;AAED,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,CAE7F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function createCapabilityVisibility(serverCandidates, sessionId) {
|
|
2
|
+
return {
|
|
3
|
+
sessionId,
|
|
4
|
+
serverCandidates: new Map(serverCandidates),
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export function capabilityVisibilityFromServerNames(serverNames) {
|
|
8
|
+
return createCapabilityVisibility(Array.from(serverNames, (serverName) => [serverName, serverName]));
|
|
9
|
+
}
|
|
10
|
+
export function getCapabilityVisibleServerNames(visibility) {
|
|
11
|
+
return new Set(visibility.serverCandidates.values());
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=capabilityVisibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilityVisibility.js","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityVisibility.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,0BAA0B,CACxC,gBAAqD,EACrD,SAAkB;IAElB,OAAO;QACL,SAAS;QACT,gBAAgB,EAAE,IAAI,GAAG,CAAC,gBAAgB,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,WAA6B;IAC/E,OAAO,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,CAAU,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,UAAgC;IAC9E,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { EventEmitter } from 'events';
|
|
8
8
|
import { Prompt, Resource, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
9
|
+
import type { CapabilityVisibility } from '../../core/capabilities/capabilityVisibility.js';
|
|
9
10
|
import { LazyLoadingOrchestrator } from '../../core/capabilities/lazyLoadingOrchestrator.js';
|
|
10
11
|
/**
|
|
11
12
|
* Internal capabilities provider that serves internal management tools
|
|
@@ -36,7 +37,7 @@ export declare class InternalCapabilitiesProvider extends EventEmitter {
|
|
|
36
37
|
/**
|
|
37
38
|
* Execute an internal tool
|
|
38
39
|
*/
|
|
39
|
-
executeTool(toolName: string, args: unknown,
|
|
40
|
+
executeTool(toolName: string, args: unknown, visibility?: CapabilityVisibility): Promise<unknown>;
|
|
40
41
|
/**
|
|
41
42
|
* Cleanup resources
|
|
42
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalCapabilitiesProvider.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/internalCapabilitiesProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"internalCapabilitiesProvider.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/internalCapabilitiesProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AA0B3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AA8E5F;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,YAAY;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2C;IAClE,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,uBAAuB,CAAC,CAA0B;IAE1D,OAAO;IAMP;;OAEG;WACW,WAAW,IAAI,4BAA4B;IAOzD;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxC;;OAEG;IACI,0BAA0B,CAAC,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAI9E;;OAEG;IACI,iBAAiB,IAAI,IAAI,EAAE;IA+FlC;;OAEG;IACU,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyG9G;;OAEG;IACI,OAAO,IAAI,IAAI;IAMf,qBAAqB,IAAI,QAAQ,EAAE;IAUnC,mBAAmB,IAAI,MAAM,EAAE;CASvC"}
|
|
@@ -177,7 +177,7 @@ export class InternalCapabilitiesProvider extends EventEmitter {
|
|
|
177
177
|
/**
|
|
178
178
|
* Execute an internal tool
|
|
179
179
|
*/
|
|
180
|
-
async executeTool(toolName, args,
|
|
180
|
+
async executeTool(toolName, args, visibility) {
|
|
181
181
|
if (!this.isInitialized) {
|
|
182
182
|
throw new Error('Internal capabilities provider not initialized');
|
|
183
183
|
}
|
|
@@ -190,7 +190,7 @@ export class InternalCapabilitiesProvider extends EventEmitter {
|
|
|
190
190
|
if (!this.lazyLoadingOrchestrator) {
|
|
191
191
|
throw new Error('Lazy loading not available');
|
|
192
192
|
}
|
|
193
|
-
const result = await this.lazyLoadingOrchestrator.callMetaTool(toolName, args,
|
|
193
|
+
const result = await this.lazyLoadingOrchestrator.callMetaTool(toolName, args, visibility);
|
|
194
194
|
// Check for error field in structured result
|
|
195
195
|
if (typeof result === 'object' && result !== null && 'error' in result && result.error) {
|
|
196
196
|
const errorResult = result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalCapabilitiesProvider.js","sourceRoot":"","sources":["../../../src/core/capabilities/internalCapabilitiesProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"internalCapabilitiesProvider.js","sourceRoot":"","sources":["../../../src/core/capabilities/internalCapabilitiesProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { TemplateHashProvider } from '../../core/server/connectionResolver.js';
|
|
|
4
4
|
import { OutboundConnections } from '../../core/types/index.js';
|
|
5
5
|
import { AsyncLoadingOrchestrator } from './asyncLoadingOrchestrator.js';
|
|
6
6
|
import { AggregatedCapabilities, CapabilityAggregator } from './capabilityAggregator.js';
|
|
7
|
+
import { type CapabilityVisibility } from './capabilityVisibility.js';
|
|
7
8
|
import { SchemaCache } from './schemaCache.js';
|
|
8
9
|
import { ToolRegistry } from './toolRegistry.js';
|
|
9
10
|
/**
|
|
@@ -50,7 +51,6 @@ export declare class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
50
51
|
private capabilityAggregator;
|
|
51
52
|
private isInitialized;
|
|
52
53
|
private asyncOrchestrator?;
|
|
53
|
-
private sessionAllowedServers;
|
|
54
54
|
private connectionResolver;
|
|
55
55
|
constructor(outboundConnections: OutboundConnections, config: AgentConfigManager, asyncOrchestrator?: AsyncLoadingOrchestrator, templateHashProvider?: TemplateHashProvider);
|
|
56
56
|
/**
|
|
@@ -83,27 +83,10 @@ export declare class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
83
83
|
/**
|
|
84
84
|
* Get aggregated capabilities for a filtered set of servers
|
|
85
85
|
*
|
|
86
|
-
*
|
|
87
|
-
* - callMetaTool() to filter tool listings via MetaToolProvider
|
|
88
|
-
*
|
|
89
|
-
* The filter persists for the session and can be cleared by calling clearSessionFilter().
|
|
90
|
-
*
|
|
91
|
-
* @param filteredServerNames - Set of server names to include in capabilities
|
|
92
|
-
* @param sessionId - Optional session ID to associate the filter with
|
|
86
|
+
* @param visibility - Request-scoped capability visibility
|
|
93
87
|
* @returns Aggregated capabilities filtered to only include specified servers
|
|
94
88
|
*/
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Clear the session-specific filter
|
|
98
|
-
* @param sessionId - Optional session ID whose filter should be cleared
|
|
99
|
-
*/
|
|
100
|
-
clearSessionFilter(sessionId?: string): void;
|
|
101
|
-
/**
|
|
102
|
-
* Get the allowed servers for a specific session
|
|
103
|
-
* @param sessionId - Optional session ID
|
|
104
|
-
* @returns Set of allowed server names, or undefined if no filter is set
|
|
105
|
-
*/
|
|
106
|
-
getSessionAllowedServers(sessionId?: string): Set<string> | undefined;
|
|
89
|
+
getCapabilitiesForVisibility(visibility: CapabilityVisibility): Promise<AggregatedCapabilities>;
|
|
107
90
|
/**
|
|
108
91
|
* Handle listChanged notifications based on lazy loading state
|
|
109
92
|
*/
|
|
@@ -128,10 +111,9 @@ export declare class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
128
111
|
* Call a meta-tool if in meta-tool mode
|
|
129
112
|
* @param name - Meta-tool name
|
|
130
113
|
* @param args - Meta-tool arguments
|
|
131
|
-
* @param
|
|
132
|
-
* @param allowedServers - Optional explicit allowed servers set (takes precedence over session filter)
|
|
114
|
+
* @param visibility - Request-scoped Filter Selection and Server Candidate Set
|
|
133
115
|
*/
|
|
134
|
-
callMetaTool(name: string, args: unknown,
|
|
116
|
+
callMetaTool(name: string, args: unknown, visibility?: CapabilityVisibility): Promise<unknown>;
|
|
135
117
|
/**
|
|
136
118
|
* Check if a tool call is a meta-tool
|
|
137
119
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazyLoadingOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/lazyLoadingOrchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAsB,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAElG,OAAO,EAAgB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"lazyLoadingOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/lazyLoadingOrchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,10 @@ import { ConnectionResolver } from '../../core/server/connectionResolver.js';
|
|
|
5
5
|
import { filterDisabledTools } from '../../core/server/disabledTools.js';
|
|
6
6
|
import { ClientStatus } from '../../core/types/index.js';
|
|
7
7
|
import logger, { debugIf, errorIf } from '../../logger/logger.js';
|
|
8
|
+
import { getRequestTimeout } from '../../utils/core/timeoutUtils.js';
|
|
8
9
|
import { AsyncLoadingOrchestratorEvent } from './asyncLoadingOrchestratorEvent.js';
|
|
9
10
|
import { CapabilityAggregator } from './capabilityAggregator.js';
|
|
11
|
+
import { getCapabilityVisibleServerNames } from './capabilityVisibility.js';
|
|
10
12
|
import { MetaToolProvider } from './metaToolProvider.js';
|
|
11
13
|
import { SchemaCache } from './schemaCache.js';
|
|
12
14
|
import { ToolRegistry } from './toolRegistry.js';
|
|
@@ -38,8 +40,6 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
38
40
|
capabilityAggregator;
|
|
39
41
|
isInitialized = false;
|
|
40
42
|
asyncOrchestrator;
|
|
41
|
-
// Session-specific filters for allowed servers (keyed by sessionId)
|
|
42
|
-
sessionAllowedServers = new Map();
|
|
43
43
|
connectionResolver;
|
|
44
44
|
constructor(outboundConnections, config, asyncOrchestrator, templateHashProvider) {
|
|
45
45
|
super();
|
|
@@ -111,8 +111,7 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
111
111
|
*/
|
|
112
112
|
async buildToolRegistry() {
|
|
113
113
|
// Build tools map for registry by fetching tools directly from each connection
|
|
114
|
-
const
|
|
115
|
-
const serverTags = new Map();
|
|
114
|
+
const registryTools = [];
|
|
116
115
|
const failedServers = [];
|
|
117
116
|
const serverConfigs = McpConfigManager.getInstance().getTransportConfig();
|
|
118
117
|
for (const [serverName, connection] of this.outboundConnections.entries()) {
|
|
@@ -121,7 +120,9 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
121
120
|
}
|
|
122
121
|
try {
|
|
123
122
|
// Get tools directly from this server's client
|
|
124
|
-
const toolsResult = await connection.client.listTools(
|
|
123
|
+
const toolsResult = await connection.client.listTools(undefined, {
|
|
124
|
+
timeout: getRequestTimeout(connection.transport),
|
|
125
|
+
});
|
|
125
126
|
const effectiveServerName = connection.name || serverName;
|
|
126
127
|
const serverTools = filterDisabledTools(toolsResult.tools || [], serverConfigs, effectiveServerName);
|
|
127
128
|
if (serverTools.length > 0) {
|
|
@@ -129,10 +130,13 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
129
130
|
// Map keys for template servers include hash suffix (e.g., "template-server:abc123")
|
|
130
131
|
// but connection.name is the clean name (e.g., "template-server")
|
|
131
132
|
// This ensures tool registry uses consistent server names
|
|
132
|
-
toolsMap.set(effectiveServerName, serverTools);
|
|
133
|
-
// Get tags from transport
|
|
134
133
|
const tags = connection.transport.tags || [];
|
|
135
|
-
|
|
134
|
+
registryTools.push(...serverTools.map((tool) => ({
|
|
135
|
+
tool,
|
|
136
|
+
server: effectiveServerName,
|
|
137
|
+
connectionKey: serverName,
|
|
138
|
+
tags,
|
|
139
|
+
})));
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
catch (error) {
|
|
@@ -154,7 +158,7 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
154
158
|
}));
|
|
155
159
|
}
|
|
156
160
|
}
|
|
157
|
-
this.toolRegistry = ToolRegistry.
|
|
161
|
+
this.toolRegistry = ToolRegistry.fromToolsWithServer(registryTools);
|
|
158
162
|
}
|
|
159
163
|
/**
|
|
160
164
|
* Preload tools based on configuration patterns
|
|
@@ -218,7 +222,9 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
218
222
|
throw new Error(`Server not connected: ${server}`);
|
|
219
223
|
}
|
|
220
224
|
// Get the tool from server's listTools
|
|
221
|
-
const toolsResult = await result.connection.client.listTools(
|
|
225
|
+
const toolsResult = await result.connection.client.listTools(undefined, {
|
|
226
|
+
timeout: getRequestTimeout(result.connection.transport),
|
|
227
|
+
});
|
|
222
228
|
const tool = toolsResult.tools.find((t) => t.name === toolName);
|
|
223
229
|
if (!tool) {
|
|
224
230
|
throw new Error(`Tool not found: ${server}:${toolName}`);
|
|
@@ -263,18 +269,10 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
263
269
|
/**
|
|
264
270
|
* Get aggregated capabilities for a filtered set of servers
|
|
265
271
|
*
|
|
266
|
-
*
|
|
267
|
-
* - callMetaTool() to filter tool listings via MetaToolProvider
|
|
268
|
-
*
|
|
269
|
-
* The filter persists for the session and can be cleared by calling clearSessionFilter().
|
|
270
|
-
*
|
|
271
|
-
* @param filteredServerNames - Set of server names to include in capabilities
|
|
272
|
-
* @param sessionId - Optional session ID to associate the filter with
|
|
272
|
+
* @param visibility - Request-scoped capability visibility
|
|
273
273
|
* @returns Aggregated capabilities filtered to only include specified servers
|
|
274
274
|
*/
|
|
275
|
-
async
|
|
276
|
-
// Store the session-specific filter
|
|
277
|
-
this.sessionAllowedServers.set(sessionId, filteredServerNames);
|
|
275
|
+
async getCapabilitiesForVisibility(visibility) {
|
|
278
276
|
// Get the base capabilities
|
|
279
277
|
const lazyConfig = this.config.get('lazyLoading');
|
|
280
278
|
const baseCapabilities = this.capabilityAggregator.getCurrentCapabilities();
|
|
@@ -285,6 +283,7 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
285
283
|
// Meta-tools are always included (they're gateway tools)
|
|
286
284
|
// The filter will be applied when tools are listed via meta-tools
|
|
287
285
|
const metaTools = this.metaToolProvider?.getMetaTools() || [];
|
|
286
|
+
const visibleServerNames = getCapabilityVisibleServerNames(visibility);
|
|
288
287
|
// Filter resources to only include those from filtered servers
|
|
289
288
|
const filteredResources = baseCapabilities.resources.filter((resource) => {
|
|
290
289
|
const resourceName = resource.name;
|
|
@@ -292,7 +291,7 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
292
291
|
// Extract server name from resource URI
|
|
293
292
|
const parts = resourceName.split(MCP_URI_SEPARATOR);
|
|
294
293
|
const serverName = parts[0];
|
|
295
|
-
return
|
|
294
|
+
return visibleServerNames.has(serverName);
|
|
296
295
|
});
|
|
297
296
|
// Filter prompts to only include those from filtered servers
|
|
298
297
|
const filteredPrompts = baseCapabilities.prompts.filter((prompt) => {
|
|
@@ -300,10 +299,10 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
300
299
|
// Prompts are namespaced with server prefix (e.g., "server_1mcp_prompt")
|
|
301
300
|
const parts = promptName.split(MCP_URI_SEPARATOR);
|
|
302
301
|
const serverName = parts[0];
|
|
303
|
-
return
|
|
302
|
+
return visibleServerNames.has(serverName);
|
|
304
303
|
});
|
|
305
304
|
// Filter ready servers
|
|
306
|
-
const filteredReadyServers = baseCapabilities.readyServers.filter((serverName) =>
|
|
305
|
+
const filteredReadyServers = baseCapabilities.readyServers.filter((serverName) => visibleServerNames.has(serverName));
|
|
307
306
|
return {
|
|
308
307
|
tools: metaTools,
|
|
309
308
|
resources: filteredResources,
|
|
@@ -312,21 +311,6 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
312
311
|
timestamp: new Date(),
|
|
313
312
|
};
|
|
314
313
|
}
|
|
315
|
-
/**
|
|
316
|
-
* Clear the session-specific filter
|
|
317
|
-
* @param sessionId - Optional session ID whose filter should be cleared
|
|
318
|
-
*/
|
|
319
|
-
clearSessionFilter(sessionId) {
|
|
320
|
-
this.sessionAllowedServers.delete(sessionId);
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* Get the allowed servers for a specific session
|
|
324
|
-
* @param sessionId - Optional session ID
|
|
325
|
-
* @returns Set of allowed server names, or undefined if no filter is set
|
|
326
|
-
*/
|
|
327
|
-
getSessionAllowedServers(sessionId) {
|
|
328
|
-
return this.sessionAllowedServers.get(sessionId);
|
|
329
|
-
}
|
|
330
314
|
/**
|
|
331
315
|
* Handle listChanged notifications based on lazy loading state
|
|
332
316
|
*/
|
|
@@ -410,16 +394,13 @@ export class LazyLoadingOrchestrator extends EventEmitter {
|
|
|
410
394
|
* Call a meta-tool if in meta-tool mode
|
|
411
395
|
* @param name - Meta-tool name
|
|
412
396
|
* @param args - Meta-tool arguments
|
|
413
|
-
* @param
|
|
414
|
-
* @param allowedServers - Optional explicit allowed servers set (takes precedence over session filter)
|
|
397
|
+
* @param visibility - Request-scoped Filter Selection and Server Candidate Set
|
|
415
398
|
*/
|
|
416
|
-
async callMetaTool(name, args,
|
|
399
|
+
async callMetaTool(name, args, visibility) {
|
|
417
400
|
if (!this.metaToolProvider) {
|
|
418
401
|
throw new Error('Meta-tool provider not initialized');
|
|
419
402
|
}
|
|
420
|
-
|
|
421
|
-
const effectiveAllowedServers = allowedServers !== undefined ? allowedServers : this.sessionAllowedServers.get(sessionId);
|
|
422
|
-
return this.metaToolProvider.callMetaTool(name, args, sessionId, effectiveAllowedServers);
|
|
403
|
+
return this.metaToolProvider.callMetaTool(name, args, visibility);
|
|
423
404
|
}
|
|
424
405
|
/**
|
|
425
406
|
* Check if a tool call is a meta-tool
|