@juspay/neurolink 6.1.0 → 6.2.1
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 +16 -6
- package/dist/agent/direct-tools.js +6 -5
- package/dist/cli/commands/config.d.ts +13 -13
- package/dist/cli/index.js +3 -9
- package/dist/config/configManager.js +11 -10
- package/dist/core/analytics.d.ts +11 -1
- package/dist/core/analytics.js +2 -2
- package/dist/core/base-provider.js +4 -18
- package/dist/core/dynamic-models.d.ts +8 -8
- package/dist/core/factory.js +3 -11
- package/dist/index.d.ts +2 -4
- package/dist/index.js +2 -11
- package/dist/lib/agent/direct-tools.js +6 -5
- package/dist/lib/config/configManager.js +11 -10
- package/dist/lib/core/analytics.d.ts +11 -1
- package/dist/lib/core/analytics.js +2 -2
- package/dist/lib/core/base-provider.js +4 -18
- package/dist/lib/core/dynamic-models.d.ts +8 -8
- package/dist/lib/core/factory.js +3 -11
- package/dist/lib/index.d.ts +2 -4
- package/dist/lib/index.js +2 -11
- package/dist/lib/mcp/factory.d.ts +1 -1
- package/dist/lib/mcp/index.d.ts +9 -21
- package/dist/lib/mcp/index.js +16 -57
- package/dist/lib/mcp/registry.js +1 -1
- package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.js +2 -1
- package/dist/lib/mcp/tool-registry.js +1 -1
- package/dist/lib/neurolink.d.ts +1 -9
- package/dist/lib/neurolink.js +22 -71
- package/dist/lib/providers/amazon-bedrock.js +5 -16
- package/dist/lib/providers/anthropic-baseprovider.js +3 -21
- package/dist/lib/providers/anthropic.js +4 -7
- package/dist/lib/providers/azure-openai.js +6 -3
- package/dist/lib/providers/google-vertex.js +5 -9
- package/dist/lib/providers/huggingFace.js +5 -10
- package/dist/lib/providers/mistral.js +5 -8
- package/dist/lib/providers/openAI.js +4 -7
- package/dist/lib/telemetry/index.js +2 -1
- package/dist/lib/utils/logger.d.ts +62 -2
- package/dist/lib/utils/logger.js +174 -9
- package/dist/lib/utils/providerConfig.d.ts +117 -0
- package/dist/lib/utils/providerConfig.js +353 -0
- package/dist/lib/utils/providerUtils.d.ts +2 -1
- package/dist/lib/utils/providerUtils.js +53 -36
- package/dist/lib/utils/timeout.d.ts +72 -1
- package/dist/lib/utils/timeout.js +203 -2
- package/dist/mcp/factory.d.ts +1 -1
- package/dist/mcp/index.d.ts +9 -21
- package/dist/mcp/index.js +16 -57
- package/dist/mcp/registry.js +1 -1
- package/dist/mcp/servers/ai-providers/ai-analysis-tools.js +2 -1
- package/dist/mcp/tool-registry.js +1 -1
- package/dist/neurolink.d.ts +1 -9
- package/dist/neurolink.js +22 -71
- package/dist/providers/amazon-bedrock.js +5 -16
- package/dist/providers/anthropic-baseprovider.js +3 -21
- package/dist/providers/anthropic.js +4 -7
- package/dist/providers/azure-openai.js +6 -3
- package/dist/providers/google-vertex.js +5 -9
- package/dist/providers/huggingFace.js +5 -10
- package/dist/providers/mistral.js +5 -8
- package/dist/providers/openAI.js +4 -7
- package/dist/telemetry/index.js +2 -1
- package/dist/utils/logger.d.ts +62 -2
- package/dist/utils/logger.js +174 -9
- package/dist/utils/providerConfig.d.ts +117 -0
- package/dist/utils/providerConfig.js +353 -0
- package/dist/utils/providerUtils.d.ts +2 -1
- package/dist/utils/providerUtils.js +53 -36
- package/dist/utils/timeout.d.ts +72 -1
- package/dist/utils/timeout.js +203 -2
- package/package.json +1 -1
- package/dist/chat/client-utils.d.ts +0 -95
- package/dist/chat/client-utils.js +0 -315
- package/dist/chat/index.d.ts +0 -24
- package/dist/chat/index.js +0 -33
- package/dist/chat/session-storage.d.ts +0 -77
- package/dist/chat/session-storage.js +0 -233
- package/dist/chat/session.d.ts +0 -96
- package/dist/chat/session.js +0 -257
- package/dist/chat/sse-handler.d.ts +0 -49
- package/dist/chat/sse-handler.js +0 -259
- package/dist/chat/types.d.ts +0 -74
- package/dist/chat/types.js +0 -5
- package/dist/chat/websocket-chat-handler.d.ts +0 -37
- package/dist/chat/websocket-chat-handler.js +0 -262
- package/dist/cli/commands/mcp.d.ts +0 -20
- package/dist/cli/commands/mcp.js +0 -1272
- package/dist/core/defaults.d.ts +0 -19
- package/dist/core/defaults.js +0 -29
- package/dist/core/evaluation-config.d.ts +0 -29
- package/dist/core/evaluation-config.js +0 -144
- package/dist/factories/compatibility-factory.d.ts +0 -35
- package/dist/factories/compatibility-factory.js +0 -71
- package/dist/factories/provider-generate-factory.d.ts +0 -20
- package/dist/factories/provider-generate-factory.js +0 -93
- package/dist/lib/chat/client-utils.d.ts +0 -95
- package/dist/lib/chat/client-utils.js +0 -315
- package/dist/lib/chat/index.d.ts +0 -24
- package/dist/lib/chat/index.js +0 -33
- package/dist/lib/chat/session-storage.d.ts +0 -77
- package/dist/lib/chat/session-storage.js +0 -233
- package/dist/lib/chat/session.d.ts +0 -96
- package/dist/lib/chat/session.js +0 -257
- package/dist/lib/chat/sse-handler.d.ts +0 -49
- package/dist/lib/chat/sse-handler.js +0 -259
- package/dist/lib/chat/types.d.ts +0 -74
- package/dist/lib/chat/types.js +0 -5
- package/dist/lib/chat/websocket-chat-handler.d.ts +0 -37
- package/dist/lib/chat/websocket-chat-handler.js +0 -262
- package/dist/lib/core/defaults.d.ts +0 -19
- package/dist/lib/core/defaults.js +0 -29
- package/dist/lib/core/evaluation-config.d.ts +0 -29
- package/dist/lib/core/evaluation-config.js +0 -144
- package/dist/lib/factories/compatibility-factory.d.ts +0 -35
- package/dist/lib/factories/compatibility-factory.js +0 -71
- package/dist/lib/factories/provider-generate-factory.d.ts +0 -20
- package/dist/lib/factories/provider-generate-factory.js +0 -93
- package/dist/lib/mcp/adapters/plugin-bridge.d.ts +0 -40
- package/dist/lib/mcp/adapters/plugin-bridge.js +0 -89
- package/dist/lib/mcp/auto-discovery.d.ts +0 -62
- package/dist/lib/mcp/auto-discovery.js +0 -149
- package/dist/lib/mcp/client.d.ts +0 -68
- package/dist/lib/mcp/client.js +0 -248
- package/dist/lib/mcp/config.d.ts +0 -31
- package/dist/lib/mcp/config.js +0 -99
- package/dist/lib/mcp/context-manager.d.ts +0 -171
- package/dist/lib/mcp/context-manager.js +0 -362
- package/dist/lib/mcp/contracts/mcp-contract.d.ts +0 -169
- package/dist/lib/mcp/contracts/mcp-contract.js +0 -58
- package/dist/lib/mcp/core/plugin-manager.d.ts +0 -46
- package/dist/lib/mcp/core/plugin-manager.js +0 -110
- package/dist/lib/mcp/demo/plugin-demo.d.ts +0 -20
- package/dist/lib/mcp/demo/plugin-demo.js +0 -118
- package/dist/lib/mcp/dynamic-chain-executor.d.ts +0 -225
- package/dist/lib/mcp/dynamic-chain-executor.js +0 -489
- package/dist/lib/mcp/dynamic-orchestrator.d.ts +0 -115
- package/dist/lib/mcp/dynamic-orchestrator.js +0 -351
- package/dist/lib/mcp/ecosystem.d.ts +0 -75
- package/dist/lib/mcp/ecosystem.js +0 -161
- package/dist/lib/mcp/error-manager.d.ts +0 -254
- package/dist/lib/mcp/error-manager.js +0 -501
- package/dist/lib/mcp/error-recovery.d.ts +0 -159
- package/dist/lib/mcp/error-recovery.js +0 -405
- package/dist/lib/mcp/external-client.d.ts +0 -88
- package/dist/lib/mcp/external-client.js +0 -331
- package/dist/lib/mcp/external-manager.d.ts +0 -112
- package/dist/lib/mcp/external-manager.js +0 -308
- package/dist/lib/mcp/function-calling.d.ts +0 -65
- package/dist/lib/mcp/function-calling.js +0 -642
- package/dist/lib/mcp/health-monitor.d.ts +0 -257
- package/dist/lib/mcp/health-monitor.js +0 -630
- package/dist/lib/mcp/initialize-tools.d.ts +0 -29
- package/dist/lib/mcp/initialize-tools.js +0 -261
- package/dist/lib/mcp/initialize.d.ts +0 -18
- package/dist/lib/mcp/initialize.js +0 -62
- package/dist/lib/mcp/logging.d.ts +0 -38
- package/dist/lib/mcp/logging.js +0 -100
- package/dist/lib/mcp/manager.d.ts +0 -68
- package/dist/lib/mcp/manager.js +0 -176
- package/dist/lib/mcp/neurolink-mcp-client.d.ts +0 -97
- package/dist/lib/mcp/neurolink-mcp-client.js +0 -462
- package/dist/lib/mcp/orchestrator.d.ts +0 -302
- package/dist/lib/mcp/orchestrator.js +0 -703
- package/dist/lib/mcp/plugin-manager.d.ts +0 -98
- package/dist/lib/mcp/plugin-manager.js +0 -296
- package/dist/lib/mcp/plugins/core/filesystem-mcp.d.ts +0 -36
- package/dist/lib/mcp/plugins/core/filesystem-mcp.js +0 -142
- package/dist/lib/mcp/plugins/filesystem-mcp.d.ts +0 -37
- package/dist/lib/mcp/plugins/filesystem-mcp.js +0 -54
- package/dist/lib/mcp/security-manager.d.ts +0 -87
- package/dist/lib/mcp/security-manager.js +0 -344
- package/dist/lib/mcp/semaphore-manager.d.ts +0 -137
- package/dist/lib/mcp/semaphore-manager.js +0 -329
- package/dist/lib/mcp/session-manager.d.ts +0 -187
- package/dist/lib/mcp/session-manager.js +0 -400
- package/dist/lib/mcp/session-persistence.d.ts +0 -93
- package/dist/lib/mcp/session-persistence.js +0 -301
- package/dist/lib/mcp/tool-integration.d.ts +0 -58
- package/dist/lib/mcp/tool-integration.js +0 -203
- package/dist/lib/mcp/transport-manager.d.ts +0 -154
- package/dist/lib/mcp/transport-manager.js +0 -334
- package/dist/lib/mcp/unified-mcp.d.ts +0 -133
- package/dist/lib/mcp/unified-mcp.js +0 -251
- package/dist/lib/mcp/unified-registry.d.ts +0 -165
- package/dist/lib/mcp/unified-registry.js +0 -538
- package/dist/lib/providers/analytics-helper.d.ts +0 -38
- package/dist/lib/providers/analytics-helper.js +0 -216
- package/dist/lib/providers/function-calling-provider.d.ts +0 -142
- package/dist/lib/providers/function-calling-provider.js +0 -630
- package/dist/lib/providers/mcp-provider.d.ts +0 -75
- package/dist/lib/providers/mcp-provider.js +0 -283
- package/dist/lib/providers/timeout-wrapper.d.ts +0 -40
- package/dist/lib/providers/timeout-wrapper.js +0 -100
- package/dist/lib/sdk/tool-extension.d.ts +0 -181
- package/dist/lib/sdk/tool-extension.js +0 -284
- package/dist/lib/services/streaming/streaming-manager.d.ts +0 -29
- package/dist/lib/services/streaming/streaming-manager.js +0 -245
- package/dist/lib/services/types.d.ts +0 -156
- package/dist/lib/services/types.js +0 -2
- package/dist/lib/services/websocket/websocket-server.d.ts +0 -34
- package/dist/lib/services/websocket/websocket-server.js +0 -305
- package/dist/lib/utils/provider-validation.d.ts +0 -36
- package/dist/lib/utils/provider-validation.js +0 -625
- package/dist/lib/utils/providerUtils-fixed.d.ts +0 -8
- package/dist/lib/utils/providerUtils-fixed.js +0 -94
- package/dist/lib/utils/streaming-utils.d.ts +0 -79
- package/dist/lib/utils/streaming-utils.js +0 -198
- package/dist/lib/utils/timeout-manager.d.ts +0 -75
- package/dist/lib/utils/timeout-manager.js +0 -244
- package/dist/mcp/adapters/plugin-bridge.d.ts +0 -40
- package/dist/mcp/adapters/plugin-bridge.js +0 -89
- package/dist/mcp/auto-discovery.d.ts +0 -62
- package/dist/mcp/auto-discovery.js +0 -149
- package/dist/mcp/client.d.ts +0 -68
- package/dist/mcp/client.js +0 -248
- package/dist/mcp/config.d.ts +0 -31
- package/dist/mcp/config.js +0 -99
- package/dist/mcp/context-manager.d.ts +0 -171
- package/dist/mcp/context-manager.js +0 -362
- package/dist/mcp/contracts/mcp-contract.d.ts +0 -169
- package/dist/mcp/contracts/mcp-contract.js +0 -58
- package/dist/mcp/core/plugin-manager.d.ts +0 -46
- package/dist/mcp/core/plugin-manager.js +0 -110
- package/dist/mcp/demo/plugin-demo.d.ts +0 -20
- package/dist/mcp/demo/plugin-demo.js +0 -118
- package/dist/mcp/dynamic-chain-executor.d.ts +0 -225
- package/dist/mcp/dynamic-chain-executor.js +0 -489
- package/dist/mcp/dynamic-orchestrator.d.ts +0 -115
- package/dist/mcp/dynamic-orchestrator.js +0 -351
- package/dist/mcp/ecosystem.d.ts +0 -75
- package/dist/mcp/ecosystem.js +0 -162
- package/dist/mcp/error-manager.d.ts +0 -254
- package/dist/mcp/error-manager.js +0 -501
- package/dist/mcp/error-recovery.d.ts +0 -159
- package/dist/mcp/error-recovery.js +0 -405
- package/dist/mcp/external-client.d.ts +0 -88
- package/dist/mcp/external-client.js +0 -331
- package/dist/mcp/external-manager.d.ts +0 -112
- package/dist/mcp/external-manager.js +0 -308
- package/dist/mcp/function-calling.d.ts +0 -65
- package/dist/mcp/function-calling.js +0 -642
- package/dist/mcp/health-monitor.d.ts +0 -257
- package/dist/mcp/health-monitor.js +0 -630
- package/dist/mcp/initialize-tools.d.ts +0 -29
- package/dist/mcp/initialize-tools.js +0 -262
- package/dist/mcp/initialize.d.ts +0 -18
- package/dist/mcp/initialize.js +0 -62
- package/dist/mcp/logging.d.ts +0 -38
- package/dist/mcp/logging.js +0 -100
- package/dist/mcp/manager.d.ts +0 -68
- package/dist/mcp/manager.js +0 -176
- package/dist/mcp/neurolink-mcp-client.d.ts +0 -97
- package/dist/mcp/neurolink-mcp-client.js +0 -462
- package/dist/mcp/orchestrator.d.ts +0 -302
- package/dist/mcp/orchestrator.js +0 -703
- package/dist/mcp/plugin-manager.d.ts +0 -98
- package/dist/mcp/plugin-manager.js +0 -297
- package/dist/mcp/plugins/core/filesystem-mcp.d.ts +0 -36
- package/dist/mcp/plugins/core/filesystem-mcp.js +0 -142
- package/dist/mcp/plugins/core/neurolink-mcp.json +0 -17
- package/dist/mcp/plugins/filesystem-mcp.d.ts +0 -37
- package/dist/mcp/plugins/filesystem-mcp.js +0 -54
- package/dist/mcp/security-manager.d.ts +0 -87
- package/dist/mcp/security-manager.js +0 -344
- package/dist/mcp/semaphore-manager.d.ts +0 -137
- package/dist/mcp/semaphore-manager.js +0 -329
- package/dist/mcp/session-manager.d.ts +0 -187
- package/dist/mcp/session-manager.js +0 -400
- package/dist/mcp/session-persistence.d.ts +0 -93
- package/dist/mcp/session-persistence.js +0 -302
- package/dist/mcp/tool-integration.d.ts +0 -58
- package/dist/mcp/tool-integration.js +0 -203
- package/dist/mcp/transport-manager.d.ts +0 -154
- package/dist/mcp/transport-manager.js +0 -335
- package/dist/mcp/unified-mcp.d.ts +0 -133
- package/dist/mcp/unified-mcp.js +0 -251
- package/dist/mcp/unified-registry.d.ts +0 -165
- package/dist/mcp/unified-registry.js +0 -539
- package/dist/providers/analytics-helper.d.ts +0 -38
- package/dist/providers/analytics-helper.js +0 -216
- package/dist/providers/function-calling-provider.d.ts +0 -142
- package/dist/providers/function-calling-provider.js +0 -630
- package/dist/providers/mcp-provider.d.ts +0 -75
- package/dist/providers/mcp-provider.js +0 -283
- package/dist/providers/timeout-wrapper.d.ts +0 -40
- package/dist/providers/timeout-wrapper.js +0 -100
- package/dist/sdk/tool-extension.d.ts +0 -181
- package/dist/sdk/tool-extension.js +0 -284
- package/dist/services/streaming/streaming-manager.d.ts +0 -29
- package/dist/services/streaming/streaming-manager.js +0 -245
- package/dist/services/types.d.ts +0 -156
- package/dist/services/types.js +0 -2
- package/dist/services/websocket/websocket-server.d.ts +0 -34
- package/dist/services/websocket/websocket-server.js +0 -306
- package/dist/utils/provider-validation.d.ts +0 -36
- package/dist/utils/provider-validation.js +0 -625
- package/dist/utils/providerUtils-fixed.d.ts +0 -8
- package/dist/utils/providerUtils-fixed.js +0 -94
- package/dist/utils/streaming-utils.d.ts +0 -79
- package/dist/utils/streaming-utils.js +0 -198
- package/dist/utils/timeout-manager.d.ts +0 -75
- package/dist/utils/timeout-manager.js +0 -244
package/dist/mcp/unified-mcp.js
DELETED
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NeuroLink Unified MCP System
|
|
3
|
-
* Combines internal MCP servers with external MCP server integration
|
|
4
|
-
* Single initialization point for the complete MCP ecosystem
|
|
5
|
-
*/
|
|
6
|
-
import { MCPToolRegistry } from "./tool-registry.js";
|
|
7
|
-
import { ExternalMCPManager } from "./external-manager.js";
|
|
8
|
-
import { aiCoreServer } from "./servers/ai-providers/ai-core-server.js";
|
|
9
|
-
import { mcpLogger as logger } from "./logging.js";
|
|
10
|
-
/**
|
|
11
|
-
* Unified MCP System
|
|
12
|
-
* Central hub for managing both internal and external MCP servers
|
|
13
|
-
*/
|
|
14
|
-
export class UnifiedMCPSystem {
|
|
15
|
-
registry;
|
|
16
|
-
externalManager;
|
|
17
|
-
internalServers = [];
|
|
18
|
-
isInitialized = false;
|
|
19
|
-
options;
|
|
20
|
-
constructor(options = {}) {
|
|
21
|
-
this.options = {
|
|
22
|
-
configPath: ".mcp-config.json",
|
|
23
|
-
enableExternalServers: true,
|
|
24
|
-
enableInternalServers: true,
|
|
25
|
-
autoInitialize: false,
|
|
26
|
-
registry: new MCPToolRegistry(),
|
|
27
|
-
...options,
|
|
28
|
-
};
|
|
29
|
-
this.registry = this.options.registry;
|
|
30
|
-
this.externalManager = new ExternalMCPManager(this.options.configPath, this.registry);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Initialize the unified MCP system
|
|
34
|
-
*/
|
|
35
|
-
async initialize() {
|
|
36
|
-
if (this.isInitialized) {
|
|
37
|
-
logger.debug("[Unified MCP] Already initialized");
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
try {
|
|
41
|
-
logger.info("[Unified MCP] Initializing unified MCP system...");
|
|
42
|
-
const startTime = Date.now();
|
|
43
|
-
// Initialize internal servers first
|
|
44
|
-
if (this.options.enableInternalServers) {
|
|
45
|
-
await this.initializeInternalServers();
|
|
46
|
-
}
|
|
47
|
-
// Initialize external servers
|
|
48
|
-
if (this.options.enableExternalServers) {
|
|
49
|
-
await this.initializeExternalServers();
|
|
50
|
-
}
|
|
51
|
-
this.isInitialized = true;
|
|
52
|
-
const initTime = Date.now() - startTime;
|
|
53
|
-
const status = this.getStatus();
|
|
54
|
-
const currentStatus = await this.getStatus();
|
|
55
|
-
logger.info(`[Unified MCP] Initialization complete in ${initTime}ms`, {
|
|
56
|
-
totalTools: currentStatus.totalTools,
|
|
57
|
-
internalServers: currentStatus.internalServers.count,
|
|
58
|
-
externalServers: currentStatus.externalServers.connected,
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
logger.error("[Unified MCP] Initialization failed:", error);
|
|
63
|
-
throw error;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Initialize internal MCP servers
|
|
68
|
-
*/
|
|
69
|
-
async initializeInternalServers() {
|
|
70
|
-
try {
|
|
71
|
-
logger.info("[Unified MCP] Initializing internal servers...");
|
|
72
|
-
// Register AI Core Server (with 10 tools)
|
|
73
|
-
await this.registry.registerServer("ai-core", aiCoreServer);
|
|
74
|
-
this.internalServers.push(aiCoreServer);
|
|
75
|
-
// TODO: Add other internal servers here as they are created
|
|
76
|
-
// await this.registry.registerServer(utilityServer);
|
|
77
|
-
// this.internalServers.push(utilityServer);
|
|
78
|
-
const totalInternalTools = this.internalServers.reduce((sum, server) => sum + Object.keys(server.tools).length, 0);
|
|
79
|
-
logger.info(`[Unified MCP] Registered ${this.internalServers.length} internal servers with ${totalInternalTools} tools`);
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
logger.error("[Unified MCP] Failed to initialize internal servers:", error);
|
|
83
|
-
throw error;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Initialize external MCP servers
|
|
88
|
-
*/
|
|
89
|
-
async initializeExternalServers() {
|
|
90
|
-
try {
|
|
91
|
-
logger.info("[Unified MCP] Initializing external servers...");
|
|
92
|
-
await this.externalManager.initialize();
|
|
93
|
-
const connectedServers = this.externalManager.getConnectedServers();
|
|
94
|
-
const totalExternalTools = connectedServers.reduce((sum, server) => sum + server.toolCount, 0);
|
|
95
|
-
logger.info(`[Unified MCP] Connected to ${connectedServers.length} external servers with ${totalExternalTools} tools`);
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
logger.warn("[Unified MCP] External server initialization failed (continuing without external servers):", error);
|
|
99
|
-
// Don't throw here - external servers are optional
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Execute a tool from any registered server
|
|
104
|
-
*/
|
|
105
|
-
async executeTool(toolName, params, context) {
|
|
106
|
-
if (!this.isInitialized) {
|
|
107
|
-
throw new Error("Unified MCP system not initialized. Call initialize() first.");
|
|
108
|
-
}
|
|
109
|
-
return this.registry.executeTool(toolName, params, context);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* List all available tools
|
|
113
|
-
*/
|
|
114
|
-
listTools(criteria) {
|
|
115
|
-
return this.registry.listTools();
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Get tool information
|
|
119
|
-
*/
|
|
120
|
-
getToolInfo(toolName) {
|
|
121
|
-
return this.registry.getToolInfo(toolName);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Get registry instance
|
|
125
|
-
*/
|
|
126
|
-
getRegistry() {
|
|
127
|
-
return this.registry;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Get external manager instance
|
|
131
|
-
*/
|
|
132
|
-
getExternalManager() {
|
|
133
|
-
return this.externalManager;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Get comprehensive status
|
|
137
|
-
*/
|
|
138
|
-
async getStatus() {
|
|
139
|
-
const registryStats = await this.registry.getStats();
|
|
140
|
-
const externalStatus = this.externalManager.getStatus();
|
|
141
|
-
const internalToolCount = this.internalServers.reduce((sum, server) => sum + Object.keys(server.tools).length, 0);
|
|
142
|
-
// Calculate total tools from registry
|
|
143
|
-
const registryToolCount = this.registry.getToolCount
|
|
144
|
-
? this.registry.getToolCount()
|
|
145
|
-
: 0;
|
|
146
|
-
const totalTools = internalToolCount + externalStatus.totalTools + registryToolCount;
|
|
147
|
-
return {
|
|
148
|
-
isInitialized: this.isInitialized,
|
|
149
|
-
internalServers: {
|
|
150
|
-
count: this.internalServers.length,
|
|
151
|
-
tools: internalToolCount,
|
|
152
|
-
},
|
|
153
|
-
externalServers: {
|
|
154
|
-
configured: externalStatus.totalServers,
|
|
155
|
-
connected: externalStatus.connected,
|
|
156
|
-
tools: externalStatus.totalTools,
|
|
157
|
-
},
|
|
158
|
-
totalTools,
|
|
159
|
-
registryStats,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Refresh external connections
|
|
164
|
-
*/
|
|
165
|
-
async refreshExternalServers() {
|
|
166
|
-
if (!this.options.enableExternalServers) {
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
logger.info("[Unified MCP] Refreshing external servers...");
|
|
170
|
-
await this.externalManager.refresh();
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Shutdown the unified MCP system
|
|
174
|
-
*/
|
|
175
|
-
async shutdown() {
|
|
176
|
-
if (!this.isInitialized) {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
logger.info("[Unified MCP] Shutting down unified MCP system...");
|
|
180
|
-
try {
|
|
181
|
-
// Disconnect external servers
|
|
182
|
-
await this.externalManager.disconnectAll();
|
|
183
|
-
// Clear registry
|
|
184
|
-
this.registry.clear();
|
|
185
|
-
// Clear internal servers
|
|
186
|
-
this.internalServers = [];
|
|
187
|
-
this.isInitialized = false;
|
|
188
|
-
logger.info("[Unified MCP] Shutdown complete");
|
|
189
|
-
}
|
|
190
|
-
catch (error) {
|
|
191
|
-
logger.error("[Unified MCP] Shutdown failed:", error);
|
|
192
|
-
throw error;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Check if system is initialized
|
|
197
|
-
*/
|
|
198
|
-
isSystemInitialized() {
|
|
199
|
-
return this.isInitialized;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Default unified MCP system instance
|
|
204
|
-
*/
|
|
205
|
-
export const defaultUnifiedMCP = new UnifiedMCPSystem({
|
|
206
|
-
autoInitialize: false,
|
|
207
|
-
});
|
|
208
|
-
/**
|
|
209
|
-
* Initialize the default unified MCP system
|
|
210
|
-
*/
|
|
211
|
-
export async function initializeMCP(options) {
|
|
212
|
-
if (options) {
|
|
213
|
-
const customSystem = new UnifiedMCPSystem(options);
|
|
214
|
-
await customSystem.initialize();
|
|
215
|
-
return customSystem;
|
|
216
|
-
}
|
|
217
|
-
if (!defaultUnifiedMCP.isSystemInitialized()) {
|
|
218
|
-
await defaultUnifiedMCP.initialize();
|
|
219
|
-
}
|
|
220
|
-
return defaultUnifiedMCP;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Get the default unified MCP system
|
|
224
|
-
*/
|
|
225
|
-
export function getMCPSystem() {
|
|
226
|
-
return defaultUnifiedMCP;
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Execute a tool using the default system
|
|
230
|
-
*/
|
|
231
|
-
export async function executeMCPTool(toolName, params, context) {
|
|
232
|
-
return defaultUnifiedMCP.executeTool(toolName, params, context);
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* List all available MCP tools
|
|
236
|
-
*/
|
|
237
|
-
export function listMCPTools(criteria) {
|
|
238
|
-
return defaultUnifiedMCP.listTools(criteria);
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Get MCP tool information
|
|
242
|
-
*/
|
|
243
|
-
export function getMCPToolInfo(toolName) {
|
|
244
|
-
return defaultUnifiedMCP.getToolInfo(toolName);
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Get unified MCP system status
|
|
248
|
-
*/
|
|
249
|
-
export async function getMCPStatus() {
|
|
250
|
-
return await defaultUnifiedMCP.getStatus();
|
|
251
|
-
}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified MCP Registry - Combines Multiple Registration Sources
|
|
3
|
-
*/
|
|
4
|
-
import type { DiscoveredMCP, ExecutionContext } from "./contracts/mcp-contract.js";
|
|
5
|
-
import type { JsonValue } from "../types/common.js";
|
|
6
|
-
import type { DiscoveryOptions } from "./auto-discovery.js";
|
|
7
|
-
interface MCPServerConfig {
|
|
8
|
-
name: string;
|
|
9
|
-
id?: string;
|
|
10
|
-
command: string;
|
|
11
|
-
args?: string[];
|
|
12
|
-
env?: Record<string, string>;
|
|
13
|
-
transport?: string;
|
|
14
|
-
[key: string]: JsonValue | undefined;
|
|
15
|
-
}
|
|
16
|
-
import { MCPToolRegistry, type ToolInfo } from "./tool-registry.js";
|
|
17
|
-
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
18
|
-
import { ErrorManager } from "./error-manager.js";
|
|
19
|
-
/**
|
|
20
|
-
* Unified registry combining multiple sources
|
|
21
|
-
*/
|
|
22
|
-
export declare class UnifiedMCPRegistry extends MCPToolRegistry {
|
|
23
|
-
private errorManager;
|
|
24
|
-
private autoDiscoveryEnabled;
|
|
25
|
-
private autoDiscoveredServers;
|
|
26
|
-
private manualServers;
|
|
27
|
-
private availableServers;
|
|
28
|
-
private transportManager;
|
|
29
|
-
private activeConnections;
|
|
30
|
-
constructor(errorManager?: ErrorManager);
|
|
31
|
-
/**
|
|
32
|
-
* Initialize with auto-discovery and manual config
|
|
33
|
-
*/
|
|
34
|
-
initialize(options?: DiscoveryOptions): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Load servers from .mcp-config.json
|
|
37
|
-
*/
|
|
38
|
-
private loadManualConfig;
|
|
39
|
-
/**
|
|
40
|
-
* Connect to manually configured servers
|
|
41
|
-
*/
|
|
42
|
-
private connectManualServers;
|
|
43
|
-
/**
|
|
44
|
-
* Enable or disable auto-discovery
|
|
45
|
-
*/
|
|
46
|
-
setAutoDiscovery(enabled: boolean): void;
|
|
47
|
-
/**
|
|
48
|
-
* Refresh discovery
|
|
49
|
-
*/
|
|
50
|
-
refresh(options?: DiscoveryOptions): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* Get total server count
|
|
53
|
-
*/
|
|
54
|
-
getTotalServerCount(): number;
|
|
55
|
-
/**
|
|
56
|
-
* Get available server count
|
|
57
|
-
*/
|
|
58
|
-
getAvailableServerCount(): number;
|
|
59
|
-
/**
|
|
60
|
-
* Get auto-discovered servers
|
|
61
|
-
*/
|
|
62
|
-
getAutoDiscoveredServers(): DiscoveredMCP[];
|
|
63
|
-
/**
|
|
64
|
-
* Get manual servers
|
|
65
|
-
*/
|
|
66
|
-
getManualServers(): Map<string, MCPServerConfig>;
|
|
67
|
-
/**
|
|
68
|
-
* List all tools from all registered plugins
|
|
69
|
-
*/
|
|
70
|
-
listAllTools(): Promise<ToolInfo[]>;
|
|
71
|
-
/**
|
|
72
|
-
* Execute a tool through the registry with fallback to direct MCP execution
|
|
73
|
-
*/
|
|
74
|
-
executeTool<T = unknown>(toolName: string, args?: unknown, context?: ExecutionContext): Promise<T>;
|
|
75
|
-
/**
|
|
76
|
-
* Execute tool via direct MCP server connection (fallback)
|
|
77
|
-
*/
|
|
78
|
-
private executeToolViaMCPServer;
|
|
79
|
-
/**
|
|
80
|
-
* Lazily activate a server by ID
|
|
81
|
-
*/
|
|
82
|
-
lazyActivateServer(serverId: string): Promise<boolean>;
|
|
83
|
-
/**
|
|
84
|
-
* Register a manual server
|
|
85
|
-
*/
|
|
86
|
-
registerManualServer(id: string, server: MCPServerConfig): void;
|
|
87
|
-
/**
|
|
88
|
-
* Get registry statistics (override parent method)
|
|
89
|
-
*/
|
|
90
|
-
getStats(): {
|
|
91
|
-
totalServers: number;
|
|
92
|
-
totalTools: number;
|
|
93
|
-
serversByCategory: Record<string, number>;
|
|
94
|
-
toolsByCategory: Record<string, number>;
|
|
95
|
-
executionStats: Record<string, {
|
|
96
|
-
count: number;
|
|
97
|
-
averageTime: number;
|
|
98
|
-
totalTime: number;
|
|
99
|
-
}>;
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Get detailed registry statistics
|
|
103
|
-
*/
|
|
104
|
-
getDetailedStats(): Promise<{
|
|
105
|
-
total: number;
|
|
106
|
-
bySource: Record<string, number>;
|
|
107
|
-
byType: Record<string, number>;
|
|
108
|
-
manual?: {
|
|
109
|
-
servers: number;
|
|
110
|
-
};
|
|
111
|
-
auto?: {
|
|
112
|
-
servers: number;
|
|
113
|
-
};
|
|
114
|
-
tools?: number;
|
|
115
|
-
}>;
|
|
116
|
-
/**
|
|
117
|
-
* Add external MCP server programmatically
|
|
118
|
-
*
|
|
119
|
-
* @param serverId - Unique server identifier
|
|
120
|
-
* @param config - Server configuration (stdio, sse, or http)
|
|
121
|
-
*/
|
|
122
|
-
addExternalServer(serverId: string, config: {
|
|
123
|
-
type: "stdio" | "sse" | "http";
|
|
124
|
-
command?: string;
|
|
125
|
-
args?: string[];
|
|
126
|
-
env?: Record<string, string>;
|
|
127
|
-
cwd?: string;
|
|
128
|
-
url?: string;
|
|
129
|
-
headers?: Record<string, string>;
|
|
130
|
-
timeout?: number;
|
|
131
|
-
}): Promise<void>;
|
|
132
|
-
/**
|
|
133
|
-
* Get active connection for a server
|
|
134
|
-
*/
|
|
135
|
-
getConnection(serverId: string): Client | undefined;
|
|
136
|
-
/**
|
|
137
|
-
* Check if server is actively connected
|
|
138
|
-
*/
|
|
139
|
-
isConnected(serverId: string): boolean;
|
|
140
|
-
/**
|
|
141
|
-
* Clear all registries and active connections (synchronous, preserves base API contract)
|
|
142
|
-
*/
|
|
143
|
-
/**
|
|
144
|
-
* Clear registries without closing connections (internal use)
|
|
145
|
-
*/
|
|
146
|
-
private clearRegistriesOnly;
|
|
147
|
-
/**
|
|
148
|
-
* Clear all registries and initiate async connection cleanup
|
|
149
|
-
*/
|
|
150
|
-
clear(): void;
|
|
151
|
-
/**
|
|
152
|
-
* Clear all registries and close active connections asynchronously
|
|
153
|
-
*/
|
|
154
|
-
clearAsync(): Promise<void>;
|
|
155
|
-
/**
|
|
156
|
-
* Convert unknown arguments to JsonValue for CLI compatibility
|
|
157
|
-
* Attempts to serialize complex types to JSON-safe format
|
|
158
|
-
*/
|
|
159
|
-
private toJsonValue;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Default unified registry instance
|
|
163
|
-
*/
|
|
164
|
-
export declare const unifiedRegistry: UnifiedMCPRegistry;
|
|
165
|
-
export {};
|