sdlc-agent-4-enterprise-server 1.45.0 → 1.46.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.
Files changed (59) hide show
  1. package/dist/engine/parsers/languages/cpp.js +1 -1
  2. package/dist/engine/parsers/languages/cpp.js.map +1 -1
  3. package/dist/engine/parsers/languages/jsp-parser.js +2 -2
  4. package/dist/engine/parsers/languages/jsp-parser.js.map +1 -1
  5. package/dist/modules/orchestration/McpClientManager.d.ts +7 -17
  6. package/dist/modules/orchestration/McpClientManager.js +39 -190
  7. package/dist/modules/orchestration/McpClientManager.js.map +1 -1
  8. package/dist/modules/orchestration/McpServerConfigLoader.d.ts +20 -0
  9. package/dist/modules/orchestration/McpServerConfigLoader.js +66 -0
  10. package/dist/modules/orchestration/McpServerConfigLoader.js.map +1 -0
  11. package/dist/modules/orchestration/ProxiedToolRegistry.d.ts +25 -0
  12. package/dist/modules/orchestration/ProxiedToolRegistry.js +55 -0
  13. package/dist/modules/orchestration/ProxiedToolRegistry.js.map +1 -0
  14. package/dist/modules/orchestration/health/HealthCoordinator.d.ts +42 -0
  15. package/dist/modules/orchestration/health/HealthCoordinator.js +112 -0
  16. package/dist/modules/orchestration/health/HealthCoordinator.js.map +1 -0
  17. package/dist/modules/orchestration/health/ReconnectManager.js +0 -1
  18. package/dist/modules/orchestration/health/ReconnectManager.js.map +1 -1
  19. package/dist/modules/packages/model/PackageConfig.d.ts +10 -0
  20. package/dist/modules/packages/model/PackageConfig.js +10 -0
  21. package/dist/modules/packages/model/PackageConfig.js.map +1 -0
  22. package/dist/modules/packages/repository/PackageConfigRepository.d.ts +13 -0
  23. package/dist/modules/packages/repository/PackageConfigRepository.js +20 -0
  24. package/dist/modules/packages/repository/PackageConfigRepository.js.map +1 -0
  25. package/dist/modules/packages/routes/packages.d.ts +2 -0
  26. package/dist/modules/packages/routes/packages.js +37 -0
  27. package/dist/modules/packages/routes/packages.js.map +1 -0
  28. package/dist/modules/packages/service/PackageService.d.ts +9 -0
  29. package/dist/modules/packages/service/PackageService.js +23 -0
  30. package/dist/modules/packages/service/PackageService.js.map +1 -0
  31. package/dist/modules/sandbox/tools/command-builders.d.ts +14 -0
  32. package/dist/modules/sandbox/tools/command-builders.js +109 -0
  33. package/dist/modules/sandbox/tools/command-builders.js.map +1 -0
  34. package/dist/modules/sandbox/tools/tool-handlers.d.ts +1 -0
  35. package/dist/modules/sandbox/tools/tool-handlers.js +2 -103
  36. package/dist/modules/sandbox/tools/tool-handlers.js.map +1 -1
  37. package/dist/server/routes/api.js +3 -0
  38. package/dist/server/routes/api.js.map +1 -1
  39. package/eslint.config.js +20 -5
  40. package/package.json +1 -1
  41. package/src/engine/parsers/languages/cpp.ts +1 -1
  42. package/src/engine/parsers/languages/jsp-parser.js +2 -2
  43. package/src/modules/orchestration/McpClientManager.ts +39 -177
  44. package/src/modules/orchestration/McpServerConfigLoader.ts +78 -0
  45. package/src/modules/orchestration/ProxiedToolRegistry.ts +60 -0
  46. package/src/modules/orchestration/health/HealthCoordinator.ts +131 -0
  47. package/src/modules/orchestration/health/ReconnectManager.ts +1 -1
  48. package/src/modules/packages/__tests__/PackageService.property.test.ts +22 -0
  49. package/src/modules/packages/__tests__/PackageService.test.ts +26 -0
  50. package/src/modules/packages/__tests__/packages.integration.test.ts +28 -0
  51. package/src/modules/packages/model/PackageConfig.ts +20 -0
  52. package/src/modules/packages/repository/PackageConfigRepository.ts +29 -0
  53. package/src/modules/packages/routes/packages.ts +42 -0
  54. package/src/modules/packages/service/PackageService.ts +24 -0
  55. package/src/modules/pega/__tests__/PegaSymbolSync.test.ts +2 -1
  56. package/src/modules/sandbox/tools/command-builders.ts +123 -0
  57. package/src/modules/sandbox/tools/tool-handlers.ts +11 -115
  58. package/src/server/routes/api.ts +4 -0
  59. package/vitest.config.ts +18 -1
@@ -8,7 +8,7 @@ export const CPP_PATTERNS = [
8
8
  { regex: /^\s*(?:template\s*<[^>]*>\s*)?class\s+(\w+)/m, kind: 'class', nameGroup: 1 },
9
9
  { regex: /^\s*namespace\s+(\w+)/m, kind: 'namespace', nameGroup: 1 },
10
10
  { regex: /^\s*struct\s+(\w+)/m, kind: 'struct', nameGroup: 1 },
11
- { regex: /^\s*(?!if|for|while|switch|return|catch|do|else|delete|new|sizeof|throw|using|template|try|lock|assert)\w[\w:<>\*&~]*\s+(\w+)\s*\(/m, kind: 'function', nameGroup: 1 },
11
+ { regex: /^\s*(?!if|for|while|switch|return|catch|do|else|delete|new|sizeof|throw|using|template|try|lock|assert)\w[\w:<>&*~]*\s+(\w+)\s*\(/m, kind: 'function', nameGroup: 1 },
12
12
  { regex: /^\s*enum\s+(?:\w+\s+)?(\w+)/m, kind: 'enum', nameGroup: 1 },
13
13
  { regex: /^\s*using\s+(\w+)\s*=/m, kind: 'type', nameGroup: 1 },
14
14
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../../src/engine/parsers/languages/cpp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,EAAE,KAAK,EAAE,8CAA8C,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE;IACtF,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE;IACpE,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;IAC9D,EAAE,KAAK,EAAE,qIAAqI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;IAChL,EAAE,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;IACrE,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;CAChE,CAAC"}
1
+ {"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../../src/engine/parsers/languages/cpp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,EAAE,KAAK,EAAE,8CAA8C,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE;IACtF,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE;IACpE,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;IAC9D,EAAE,KAAK,EAAE,oIAAoI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;IAC/K,EAAE,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;IACrE,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;CAChE,CAAC"}
@@ -64,7 +64,7 @@ export default class JspParser extends GenericTreeSitterParser {
64
64
  walk(node.child(i));
65
65
  }
66
66
  }
67
- catch { }
67
+ catch { /* ignore: snippet extraction is best-effort */ }
68
68
  };
69
69
  walk(root);
70
70
  const javaCode = javaSnippets.join('\n');
@@ -83,7 +83,7 @@ export default class JspParser extends GenericTreeSitterParser {
83
83
  signature: ''
84
84
  });
85
85
  }
86
- const methodRegex = /(public|private|protected)?\s*(static)?\s*[\w<>\[\]]+\s+([A-Za-z_]\w*)\s*\([^)]*\)\s*\{/g;
86
+ const methodRegex = /(public|private|protected)?\s*(static)?\s*[\w<>[\]]+\s+([A-Za-z_]\w*)\s*\([^)]*\)\s*\{/g;
87
87
  while ((m = methodRegex.exec(javaCode)) !== null) {
88
88
  symbols.push({
89
89
  name: m[3],
@@ -1 +1 @@
1
- {"version":3,"file":"jsp-parser.js","sourceRoot":"","sources":["../../../../src/engine/parsers/languages/jsp-parser.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsp-parser.js","sourceRoot":"","sources":["../../../../src/engine/parsers/languages/jsp-parser.js"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * McpClientManager — Facade for child MCP server management with health monitoring.
3
- * SA4E-37: Added health check, auto-reconnect, and connection state tracking.
3
+ * SA4E-37: health check, auto-reconnect, connection state tracking.
4
+ * SA4E-223: config discovery (McpServerConfigLoader), tool registry
5
+ * (ProxiedToolRegistry) and health wiring (HealthCoordinator) extracted
6
+ * to keep this file <= 200 lines.
4
7
  */
5
8
  import type { Logger } from 'pino';
6
9
  import type { ToolDefinition } from '../../types/tool.js';
@@ -8,20 +11,14 @@ import type { ServerConfig } from './McpConfigService.js';
8
11
  import type { HealthCheckConfig, ServerStatusEntry, ServerStateChangeCallback, Unsubscribe } from './types/health.js';
9
12
  export declare class McpClientManager {
10
13
  private clients;
11
- private toolsToServer;
12
- private proxiedTools;
13
14
  private serverConfigs;
14
- /** Tool names provided locally by the orchestrator/registry — child servers must never shadow these. */
15
- private reservedToolNames;
16
15
  private logger;
17
- private healthConfig;
18
16
  private stateTracker;
19
- private healthMonitor;
20
- private reconnectManager;
17
+ private toolRegistry;
18
+ private configLoader;
19
+ private health;
21
20
  constructor(logger: Logger);
22
21
  initializeAll(): Promise<void>;
23
- private normalizeTransportType;
24
- private loadDbServers;
25
22
  getProxiedTools(): ToolDefinition[];
26
23
  getServersStatus(): ServerStatusEntry[];
27
24
  /**
@@ -42,12 +39,5 @@ export declare class McpClientManager {
42
39
  setHealthCheckConfig(config: Partial<HealthCheckConfig>): void;
43
40
  isServerConnected(name: string): boolean;
44
41
  getServerToolCount(name: string): number;
45
- private getConnectedClients;
46
- private handlePingFailed;
47
- private handleReconnectSuccess;
48
- private handleReconnectFailed;
49
- private handleMaxRetriesExhausted;
50
42
  private registerServerTools;
51
- private clearServerTools;
52
- private getErrorMsg;
53
43
  }
@@ -1,106 +1,52 @@
1
1
  /**
2
2
  * McpClientManager — Facade for child MCP server management with health monitoring.
3
- * SA4E-37: Added health check, auto-reconnect, and connection state tracking.
3
+ * SA4E-37: health check, auto-reconnect, connection state tracking.
4
+ * SA4E-223: config discovery (McpServerConfigLoader), tool registry
5
+ * (ProxiedToolRegistry) and health wiring (HealthCoordinator) extracted
6
+ * to keep this file <= 200 lines.
4
7
  */
5
- import * as fs from 'fs';
6
- import * as path from 'path';
7
8
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
8
- import { McpServerConfigRepository } from './McpServerConfigRepository.js';
9
- import { PRODUCTION_HEALTH_CONFIG } from './types/health.js';
10
9
  import { ConnectionStateTracker } from './health/ConnectionStateTracker.js';
11
- import { HealthMonitor } from './health/HealthMonitor.js';
12
- import { ReconnectManager } from './health/ReconnectManager.js';
10
+ import { HealthCoordinator } from './health/HealthCoordinator.js';
13
11
  import { createTransport } from './health/TransportFactory.js';
12
+ import { McpServerConfigLoader } from './McpServerConfigLoader.js';
13
+ import { ProxiedToolRegistry } from './ProxiedToolRegistry.js';
14
14
  export class McpClientManager {
15
15
  clients = new Map();
16
- toolsToServer = new Map();
17
- proxiedTools = [];
18
16
  serverConfigs = new Map();
19
- /** Tool names provided locally by the orchestrator/registry — child servers must never shadow these. */
20
- reservedToolNames = new Set();
21
17
  logger;
22
- healthConfig;
23
18
  stateTracker;
24
- healthMonitor;
25
- reconnectManager;
19
+ toolRegistry;
20
+ configLoader;
21
+ health;
26
22
  constructor(logger) {
27
23
  this.logger = logger.child({ component: 'McpClientManager' });
28
- this.healthConfig = { ...PRODUCTION_HEALTH_CONFIG };
29
24
  this.stateTracker = new ConnectionStateTracker(logger);
30
- this.healthMonitor = new HealthMonitor(logger, {
31
- getConnectedServers: () => this.getConnectedClients(),
32
- onPingSuccess: (name) => this.stateTracker.recordPingSuccess(name),
33
- onPingFailed: (name, error) => this.handlePingFailed(name, error),
34
- }, this.healthConfig);
35
- this.reconnectManager = new ReconnectManager(logger, this.healthConfig, {
36
- onReconnectSuccess: (name, client) => this.handleReconnectSuccess(name, client),
37
- onReconnectFailed: (name, attempt, err) => this.handleReconnectFailed(name, attempt, err),
38
- onMaxRetriesExhausted: (name) => this.handleMaxRetriesExhausted(name),
25
+ this.toolRegistry = new ProxiedToolRegistry(logger);
26
+ this.configLoader = new McpServerConfigLoader(logger);
27
+ this.health = new HealthCoordinator({
28
+ logger,
29
+ stateTracker: this.stateTracker,
30
+ clients: this.clients,
31
+ serverConfigs: this.serverConfigs,
32
+ toolRegistry: this.toolRegistry,
39
33
  });
40
34
  }
41
35
  async initializeAll() {
42
- const workspace = process.env.CODE_INTEL_WORKSPACE || process.cwd();
43
- const dataDir = process.env.CODE_INTEL_DATA_DIR || '.code-intel';
44
- const configPath = path.resolve(workspace, dataDir, 'orchestration.json');
45
- if (fs.existsSync(configPath)) {
36
+ const servers = await this.configLoader.loadAll();
37
+ for (const { name, config } of servers) {
46
38
  try {
47
- const raw = fs.readFileSync(configPath, 'utf-8');
48
- const config = JSON.parse(raw);
49
- const servers = Object.entries(config.mcpServers || {});
50
- this.logger.info({ count: servers.length, source: 'file' }, 'Connecting child MCP servers from orchestration.json');
51
- for (const [name, serverConfig] of servers) {
52
- try {
53
- await this.connectServer(name, serverConfig);
54
- }
55
- catch (err) {
56
- this.logger.error({ err, server: name }, 'Failed to connect child server (will retry via health monitor)');
57
- if (!this.stateTracker.getState(name))
58
- this.stateTracker.register(name);
59
- this.serverConfigs.set(name, serverConfig);
60
- }
61
- }
39
+ await this.connectServer(name, config);
62
40
  }
63
41
  catch (err) {
64
- this.logger.error({ err, configPath }, 'Failed to read orchestration.json');
42
+ this.logger.error({ err, server: name }, 'Failed to connect child server (will retry via health monitor)');
43
+ if (!this.stateTracker.getState(name))
44
+ this.stateTracker.register(name);
45
+ this.serverConfigs.set(name, config);
65
46
  }
66
47
  }
67
- else {
68
- this.logger.info({ configPath }, 'No orchestration.json found, skipping child servers');
69
- }
70
- await this.loadDbServers();
71
- }
72
- normalizeTransportType(config) {
73
- const type = config.type || config.transportType;
74
- if (type === 'streamable-http') {
75
- return { ...config, type: 'httpStream', transportType: 'httpStream' };
76
- }
77
- return config;
78
48
  }
79
- async loadDbServers() {
80
- try {
81
- const servers = await McpServerConfigRepository.listEnabledServers();
82
- this.logger.info({ count: servers.length, source: 'db' }, 'Connecting child MCP servers from DB');
83
- for (const cfg of servers) {
84
- const name = cfg.name;
85
- if (name === 'code-intelligence' || name === 'code-intel')
86
- continue;
87
- try {
88
- const normalized = this.normalizeTransportType(cfg);
89
- await this.connectServer(name, normalized);
90
- }
91
- catch (err) {
92
- this.logger.error({ err, server: name }, 'Failed to connect DB server (will retry via health monitor)');
93
- if (!this.stateTracker.getState(name))
94
- this.stateTracker.register(name);
95
- this.serverConfigs.set(name, cfg);
96
- }
97
- }
98
- }
99
- catch (err) {
100
- this.logger.warn({ err }, 'Failed to load DB servers, continuing startup');
101
- }
102
- }
103
- getProxiedTools() { return this.proxiedTools; }
49
+ getProxiedTools() { return this.toolRegistry.getProxiedTools(); }
104
50
  getServersStatus() {
105
51
  return this.stateTracker.getAllStatuses((name) => this.getServerToolCount(name));
106
52
  }
@@ -109,15 +55,15 @@ export class McpClientManager {
109
55
  * Any child server attempting to register a tool with one of these names will be skipped,
110
56
  * preventing it from shadowing the locally-provided (correct) handler. SA4E-218.
111
57
  */
112
- setReservedToolNames(names) { this.reservedToolNames = names; }
113
- ownsTool(toolName) { return this.toolsToServer.has(toolName); }
58
+ setReservedToolNames(names) { this.toolRegistry.setReservedToolNames(names); }
59
+ ownsTool(toolName) { return this.toolRegistry.ownsTool(toolName); }
114
60
  async executeTool(toolName, args) {
115
- const serverName = this.toolsToServer.get(toolName);
61
+ const serverName = this.toolRegistry.getOwningServer(toolName);
116
62
  if (!serverName)
117
63
  throw new Error(`Tool ${toolName} is not managed by any child server`);
118
64
  const state = this.stateTracker.getState(serverName);
119
65
  if (state !== 'connected')
120
- throw new Error(this.getErrorMsg(serverName, state));
66
+ throw new Error(this.health.getErrorMsg(serverName, state));
121
67
  const client = this.clients.get(serverName);
122
68
  if (!client)
123
69
  throw new Error(`Client for server ${serverName} is disconnected`);
@@ -128,7 +74,6 @@ export class McpClientManager {
128
74
  async connectServer(name, config) {
129
75
  if (config.disabled || name === 'code-intelligence')
130
76
  return;
131
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
132
77
  const transport = createTransport(name, config);
133
78
  const client = new Client({ name: 'code-intel-orchestrator', version: '1.0.0' }, { capabilities: {} });
134
79
  await Promise.race([
@@ -144,7 +89,7 @@ export class McpClientManager {
144
89
  this.logger.info({ name, tools: this.getServerToolCount(name) }, 'Server connected');
145
90
  }
146
91
  async disconnectServer(name) {
147
- this.reconnectManager.cancelReconnect(name);
92
+ this.health.cancelReconnect(name);
148
93
  const client = this.clients.get(name);
149
94
  if (client) {
150
95
  try {
@@ -155,7 +100,7 @@ export class McpClientManager {
155
100
  }
156
101
  this.clients.delete(name);
157
102
  }
158
- this.clearServerTools(name);
103
+ this.toolRegistry.clearServerTools(name);
159
104
  this.stateTracker.transition(name, 'disconnected');
160
105
  this.serverConfigs.delete(name);
161
106
  }
@@ -170,8 +115,8 @@ export class McpClientManager {
170
115
  }
171
116
  }
172
117
  }
173
- startHealthMonitor() { this.healthMonitor.start(); }
174
- stopHealthMonitor() { this.healthMonitor.stop(); }
118
+ startHealthMonitor() { this.health.start(); }
119
+ stopHealthMonitor() { this.health.stop(); }
175
120
  async reconnectServer(name) {
176
121
  const state = this.stateTracker.getState(name);
177
122
  if (state === undefined)
@@ -185,115 +130,19 @@ export class McpClientManager {
185
130
  const config = this.serverConfigs.get(name);
186
131
  if (!config)
187
132
  throw new Error(`Server config not found for '${name}'`);
188
- this.reconnectManager.scheduleReconnect(name, config, 1);
133
+ this.health.scheduleReconnect(name, config, 1);
189
134
  }
190
135
  onServerStateChange(cb) {
191
136
  return this.stateTracker.onStateChange(cb);
192
137
  }
193
- setHealthCheckConfig(config) {
194
- this.healthConfig = { ...this.healthConfig, ...config };
195
- this.healthMonitor.updateConfig(this.healthConfig);
196
- this.reconnectManager.updateConfig(this.healthConfig);
197
- }
138
+ setHealthCheckConfig(config) { this.health.updateConfig(config); }
198
139
  isServerConnected(name) {
199
140
  return this.clients.has(name) && this.stateTracker.getState(name) === 'connected';
200
141
  }
201
- getServerToolCount(name) {
202
- let count = 0;
203
- for (const [, sn] of this.toolsToServer.entries()) {
204
- if (sn === name)
205
- count++;
206
- }
207
- return count;
208
- }
142
+ getServerToolCount(name) { return this.toolRegistry.getToolCount(name); }
209
143
  // --- Private ---
210
- getConnectedClients() {
211
- const connected = new Map();
212
- for (const [name, client] of this.clients.entries()) {
213
- if (this.stateTracker.getState(name) === 'connected')
214
- connected.set(name, client);
215
- }
216
- return connected;
217
- }
218
- handlePingFailed(name, error) {
219
- this.stateTracker.recordPingFailure(name, error);
220
- if (!this.stateTracker.isThresholdBreached(name, this.healthConfig.failureThreshold))
221
- return;
222
- this.stateTracker.transition(name, 'unhealthy', error);
223
- this.stateTracker.transition(name, 'reconnecting');
224
- const config = this.serverConfigs.get(name);
225
- if (!config)
226
- return;
227
- const entry = this.stateTracker.getEntry(name);
228
- if (!entry)
229
- return;
230
- entry.reconnectAttempts = 1;
231
- const next = this.reconnectManager.scheduleReconnect(name, config, 1);
232
- if (next)
233
- entry.nextRetryAt = next;
234
- }
235
- handleReconnectSuccess(name, client) {
236
- this.clients.set(name, client);
237
- this.clearServerTools(name);
238
- void this.registerServerTools(name, client).then(() => {
239
- this.stateTracker.resetReconnectState(name);
240
- this.stateTracker.transition(name, 'connected');
241
- this.logger.info({ server: name }, 'Reconnected successfully');
242
- });
243
- }
244
- handleReconnectFailed(name, attempt, error) {
245
- const entry = this.stateTracker.getEntry(name);
246
- if (!entry)
247
- return;
248
- entry.reconnectAttempts = attempt + 1;
249
- entry.lastError = error;
250
- const config = this.serverConfigs.get(name);
251
- if (!config)
252
- return;
253
- const next = this.reconnectManager.scheduleReconnect(name, config, attempt + 1);
254
- if (next)
255
- entry.nextRetryAt = next;
256
- }
257
- handleMaxRetriesExhausted(name) {
258
- this.stateTracker.transition(name, 'failed');
259
- this.logger.error({ server: name, attempts: this.healthConfig.maxRetries }, 'Max retries exhausted');
260
- }
261
- async registerServerTools(name, client) {
262
- const toolsResult = await client.listTools();
263
- for (const tool of toolsResult.tools ?? []) {
264
- // SA4E-218: never allow a child server to shadow a locally-provided (reserved) tool.
265
- if (this.reservedToolNames.has(tool.name)) {
266
- this.logger.warn({ tool: tool.name, server: name }, 'Skipping child tool registration: name conflicts with a locally-provided (reserved) tool — preventing shadowing');
267
- continue;
268
- }
269
- this.toolsToServer.set(tool.name, name);
270
- this.proxiedTools.push({
271
- name: tool.name, description: tool.description ?? '',
272
- category: name, inputSchema: tool.inputSchema,
273
- });
274
- }
275
- }
276
- clearServerTools(name) {
277
- const names = [];
278
- for (const [tn, sn] of this.toolsToServer.entries()) {
279
- if (sn === name)
280
- names.push(tn);
281
- }
282
- for (const tn of names)
283
- this.toolsToServer.delete(tn);
284
- this.proxiedTools = this.proxiedTools.filter((t) => !names.includes(t.name));
285
- }
286
- getErrorMsg(name, state) {
287
- const max = this.healthConfig.maxRetries;
288
- if (state === 'reconnecting') {
289
- const a = this.stateTracker.getEntry(name)?.reconnectAttempts ?? 0;
290
- return `Server '${name}' is currently reconnecting (attempt ${a}/${max}). Tool call rejected.`;
291
- }
292
- if (state === 'failed')
293
- return `Server '${name}' has failed after ${max} reconnect attempts. Manual reconnection required.`;
294
- if (state === 'unhealthy')
295
- return `Server '${name}' is unhealthy. Reconnection will be attempted shortly.`;
296
- return `Server '${name}' is not connected (state: ${state}).`;
144
+ registerServerTools(name, client) {
145
+ return this.toolRegistry.registerServerTools(name, client);
297
146
  }
298
147
  }
299
148
  //# sourceMappingURL=McpClientManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpClientManager.js","sourceRoot":"","sources":["../../../src/modules/orchestration/McpClientManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpClientManager.js","sourceRoot":"","sources":["../../../src/modules/orchestration/McpClientManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;IACzC,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IACrD,MAAM,CAAS;IACf,YAAY,CAAyB;IACrC,YAAY,CAAsB;IAClC,YAAY,CAAwB;IACpC,MAAM,CAAoB;IAElC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,CAAC;YAClC,MAAM;YACN,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAClD,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,gEAAgE,CAAC,CAAC;gBAC3G,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,KAAuB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAEnF,gBAAgB;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,KAAkB,IAAU,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjG,QAAQ,CAAC,QAAgB,IAAa,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpF,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAa;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,qCAAqC,CAAC,CAAC;QAExF,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,KAAK,KAAK,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,kBAAkB,CAAC,CAAC;QAEhF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,yCAAyC,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAA+B,EAAE,CAAC,CAAC;QACrG,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,MAAoB;QACpD,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,KAAK,mBAAmB;YAAE,OAAO;QAE5D,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAQ,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACvG,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACzB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SACxF,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACjC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,uCAAuC,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,sBAAsB,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,KAAW,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnD,iBAAiB,KAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEjD,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,KAAK,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/F,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,cAAc;YAAE,OAAO;QAC9D,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,GAAG,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,mBAAmB,CAAC,EAA6B;QAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,oBAAoB,CAAC,MAAkC,IAAU,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEpG,iBAAiB,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;IACpF,CAAC;IAED,kBAAkB,CAAC,IAAY,IAAY,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzF,kBAAkB;IAEV,mBAAmB,CAAC,IAAY,EAAE,MAAc;QACtD,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * McpServerConfigLoader — discovers child MCP server configs from orchestration.json and the DB.
3
+ * Extracted from McpClientManager (SA4E-223 line-count gate, <= 200 lines/file).
4
+ */
5
+ import type { Logger } from 'pino';
6
+ import type { ServerConfig } from './McpConfigService.js';
7
+ export interface DiscoveredServer {
8
+ name: string;
9
+ config: ServerConfig;
10
+ }
11
+ export declare class McpServerConfigLoader {
12
+ private logger;
13
+ constructor(logger: Logger);
14
+ /** Returns all enabled child servers, file-based entries first, then DB entries. */
15
+ loadAll(): Promise<DiscoveredServer[]>;
16
+ /** Normalize legacy 'streamable-http' transport type to the current 'httpStream' value. */
17
+ private normalizeTransportType;
18
+ private loadFileServers;
19
+ private loadDbServers;
20
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * McpServerConfigLoader — discovers child MCP server configs from orchestration.json and the DB.
3
+ * Extracted from McpClientManager (SA4E-223 line-count gate, <= 200 lines/file).
4
+ */
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+ import { McpServerConfigRepository } from './McpServerConfigRepository.js';
8
+ export class McpServerConfigLoader {
9
+ logger;
10
+ constructor(logger) {
11
+ this.logger = logger.child({ component: 'McpServerConfigLoader' });
12
+ }
13
+ /** Returns all enabled child servers, file-based entries first, then DB entries. */
14
+ async loadAll() {
15
+ const [fromFile, fromDb] = await Promise.all([this.loadFileServers(), this.loadDbServers()]);
16
+ return [...fromFile, ...fromDb];
17
+ }
18
+ /** Normalize legacy 'streamable-http' transport type to the current 'httpStream' value. */
19
+ normalizeTransportType(config) {
20
+ const type = config.type || config.transportType;
21
+ if (type === 'streamable-http') {
22
+ return { ...config, type: 'httpStream', transportType: 'httpStream' };
23
+ }
24
+ return config;
25
+ }
26
+ async loadFileServers() {
27
+ const servers = [];
28
+ const workspace = process.env.CODE_INTEL_WORKSPACE || process.cwd();
29
+ const dataDir = process.env.CODE_INTEL_DATA_DIR || '.code-intel';
30
+ const configPath = path.resolve(workspace, dataDir, 'orchestration.json');
31
+ if (!fs.existsSync(configPath)) {
32
+ this.logger.info({ configPath }, 'No orchestration.json found, skipping child servers');
33
+ return servers;
34
+ }
35
+ try {
36
+ const raw = fs.readFileSync(configPath, 'utf-8');
37
+ const config = JSON.parse(raw);
38
+ const entries = Object.entries(config.mcpServers || {});
39
+ this.logger.info({ count: entries.length, source: 'file' }, 'Discovered child MCP servers from orchestration.json');
40
+ for (const [name, serverConfig] of entries) {
41
+ servers.push({ name, config: this.normalizeTransportType(serverConfig) });
42
+ }
43
+ }
44
+ catch (err) {
45
+ this.logger.error({ err, configPath }, 'Failed to read orchestration.json');
46
+ }
47
+ return servers;
48
+ }
49
+ async loadDbServers() {
50
+ const servers = [];
51
+ try {
52
+ const dbConfigs = await McpServerConfigRepository.listEnabledServers();
53
+ this.logger.info({ count: dbConfigs.length, source: 'db' }, 'Discovered child MCP servers from DB');
54
+ for (const cfg of dbConfigs) {
55
+ if (cfg.name === 'code-intelligence' || cfg.name === 'code-intel')
56
+ continue;
57
+ servers.push({ name: cfg.name, config: this.normalizeTransportType(cfg) });
58
+ }
59
+ }
60
+ catch (err) {
61
+ this.logger.warn({ err }, 'Failed to load DB servers, continuing startup');
62
+ }
63
+ return servers;
64
+ }
65
+ }
66
+ //# sourceMappingURL=McpServerConfigLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpServerConfigLoader.js","sourceRoot":"","sources":["../../../src/modules/orchestration/McpServerConfigLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * ProxiedToolRegistry — tracks tools proxied from child MCP servers.
3
+ * SA4E-218: reserved (locally-provided) tool names are never shadowed by child servers.
4
+ * Extracted from McpClientManager (SA4E-223 line-count gate, <= 200 lines/file).
5
+ */
6
+ import type { Logger } from 'pino';
7
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
8
+ import type { ToolDefinition } from '../../types/tool.js';
9
+ export declare class ProxiedToolRegistry {
10
+ private toolsToServer;
11
+ private proxiedTools;
12
+ /** Tool names provided locally by the orchestrator/registry — child servers must never shadow these. */
13
+ private reservedToolNames;
14
+ private logger;
15
+ constructor(logger: Logger);
16
+ /** Reserve a set of tool names that are provided locally by the orchestrator/registry. */
17
+ setReservedToolNames(names: Set<string>): void;
18
+ ownsTool(toolName: string): boolean;
19
+ /** Returns the child server name owning a tool, or undefined if not proxied. */
20
+ getOwningServer(toolName: string): string | undefined;
21
+ getProxiedTools(): ToolDefinition[];
22
+ getToolCount(serverName: string): number;
23
+ registerServerTools(name: string, client: Client): Promise<void>;
24
+ clearServerTools(name: string): void;
25
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * ProxiedToolRegistry — tracks tools proxied from child MCP servers.
3
+ * SA4E-218: reserved (locally-provided) tool names are never shadowed by child servers.
4
+ * Extracted from McpClientManager (SA4E-223 line-count gate, <= 200 lines/file).
5
+ */
6
+ export class ProxiedToolRegistry {
7
+ toolsToServer = new Map();
8
+ proxiedTools = [];
9
+ /** Tool names provided locally by the orchestrator/registry — child servers must never shadow these. */
10
+ reservedToolNames = new Set();
11
+ logger;
12
+ constructor(logger) {
13
+ this.logger = logger.child({ component: 'ProxiedToolRegistry' });
14
+ }
15
+ /** Reserve a set of tool names that are provided locally by the orchestrator/registry. */
16
+ setReservedToolNames(names) { this.reservedToolNames = names; }
17
+ ownsTool(toolName) { return this.toolsToServer.has(toolName); }
18
+ /** Returns the child server name owning a tool, or undefined if not proxied. */
19
+ getOwningServer(toolName) { return this.toolsToServer.get(toolName); }
20
+ getProxiedTools() { return this.proxiedTools; }
21
+ getToolCount(serverName) {
22
+ let count = 0;
23
+ for (const [, sn] of this.toolsToServer.entries()) {
24
+ if (sn === serverName)
25
+ count++;
26
+ }
27
+ return count;
28
+ }
29
+ async registerServerTools(name, client) {
30
+ const toolsResult = await client.listTools();
31
+ for (const tool of toolsResult.tools ?? []) {
32
+ // SA4E-218: never allow a child server to shadow a locally-provided (reserved) tool.
33
+ if (this.reservedToolNames.has(tool.name)) {
34
+ this.logger.warn({ tool: tool.name, server: name }, 'Skipping child tool registration: name conflicts with a locally-provided (reserved) tool — preventing shadowing');
35
+ continue;
36
+ }
37
+ this.toolsToServer.set(tool.name, name);
38
+ this.proxiedTools.push({
39
+ name: tool.name, description: tool.description ?? '',
40
+ category: name, inputSchema: tool.inputSchema,
41
+ });
42
+ }
43
+ }
44
+ clearServerTools(name) {
45
+ const names = [];
46
+ for (const [tn, sn] of this.toolsToServer.entries()) {
47
+ if (sn === name)
48
+ names.push(tn);
49
+ }
50
+ for (const tn of names)
51
+ this.toolsToServer.delete(tn);
52
+ this.proxiedTools = this.proxiedTools.filter((t) => !names.includes(t.name));
53
+ }
54
+ }
55
+ //# sourceMappingURL=ProxiedToolRegistry.js.map