@juspay/neurolink 7.13.0 → 7.14.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.
Files changed (132) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +89 -25
  3. package/dist/agent/directTools.d.ts +3 -3
  4. package/dist/agent/directTools.js +1 -1
  5. package/dist/cli/commands/mcp.js +67 -207
  6. package/dist/cli/factories/commandFactory.js +7 -1
  7. package/dist/cli/utils/interactiveSetup.js +1 -1
  8. package/dist/config/conversationMemoryConfig.js +2 -1
  9. package/dist/context/ContextManager.js +15 -4
  10. package/dist/context/config.js +5 -1
  11. package/dist/context/utils.js +1 -1
  12. package/dist/core/baseProvider.d.ts +11 -30
  13. package/dist/core/baseProvider.js +268 -42
  14. package/dist/core/conversationMemoryManager.js +3 -2
  15. package/dist/core/dynamicModels.d.ts +14 -14
  16. package/dist/core/dynamicModels.js +1 -1
  17. package/dist/core/evaluation.js +1 -1
  18. package/dist/core/factory.js +1 -1
  19. package/dist/factories/providerFactory.js +5 -11
  20. package/dist/factories/providerRegistry.js +2 -2
  21. package/dist/index.d.ts +5 -4
  22. package/dist/index.js +1 -1
  23. package/dist/lib/agent/directTools.js +1 -1
  24. package/dist/lib/config/conversationMemoryConfig.js +2 -1
  25. package/dist/lib/context/ContextManager.js +15 -4
  26. package/dist/lib/context/config.js +5 -1
  27. package/dist/lib/context/utils.js +1 -1
  28. package/dist/lib/core/baseProvider.d.ts +11 -30
  29. package/dist/lib/core/baseProvider.js +268 -42
  30. package/dist/lib/core/conversationMemoryManager.js +3 -2
  31. package/dist/lib/core/dynamicModels.js +1 -1
  32. package/dist/lib/core/evaluation.js +1 -1
  33. package/dist/lib/core/factory.js +1 -1
  34. package/dist/lib/factories/providerFactory.js +5 -11
  35. package/dist/lib/factories/providerRegistry.js +2 -2
  36. package/dist/lib/index.d.ts +5 -4
  37. package/dist/lib/index.js +1 -1
  38. package/dist/lib/mcp/externalServerManager.d.ts +148 -0
  39. package/dist/lib/mcp/externalServerManager.js +1038 -0
  40. package/dist/lib/mcp/mcpCircuitBreaker.d.ts +184 -0
  41. package/dist/lib/mcp/mcpCircuitBreaker.js +338 -0
  42. package/dist/lib/mcp/mcpClientFactory.d.ts +105 -0
  43. package/dist/lib/mcp/mcpClientFactory.js +421 -0
  44. package/dist/lib/mcp/toolDiscoveryService.d.ts +193 -0
  45. package/dist/lib/mcp/toolDiscoveryService.js +646 -0
  46. package/dist/lib/mcp/toolRegistry.d.ts +15 -11
  47. package/dist/lib/mcp/toolRegistry.js +118 -55
  48. package/dist/lib/models/modelResolver.js +1 -1
  49. package/dist/lib/neurolink.d.ts +139 -43
  50. package/dist/lib/neurolink.js +604 -174
  51. package/dist/lib/providers/googleVertex.d.ts +7 -1
  52. package/dist/lib/providers/googleVertex.js +34 -7
  53. package/dist/lib/providers/huggingFace.js +1 -1
  54. package/dist/lib/providers/mistral.js +3 -3
  55. package/dist/lib/providers/ollama.js +1 -1
  56. package/dist/lib/providers/openAI.d.ts +3 -2
  57. package/dist/lib/providers/openAI.js +2 -2
  58. package/dist/lib/providers/openaiCompatible.d.ts +1 -1
  59. package/dist/lib/providers/openaiCompatible.js +2 -2
  60. package/dist/lib/providers/sagemaker/config.js +1 -1
  61. package/dist/lib/sdk/toolRegistration.d.ts +4 -13
  62. package/dist/lib/sdk/toolRegistration.js +19 -66
  63. package/dist/lib/types/cli.d.ts +0 -1
  64. package/dist/lib/types/cli.js +0 -1
  65. package/dist/lib/types/common.d.ts +1 -2
  66. package/dist/lib/types/common.js +0 -1
  67. package/dist/lib/types/contextTypes.d.ts +1 -1
  68. package/dist/lib/types/contextTypes.js +3 -3
  69. package/dist/lib/types/externalMcp.d.ts +288 -0
  70. package/dist/lib/types/externalMcp.js +7 -0
  71. package/dist/lib/types/generateTypes.d.ts +0 -1
  72. package/dist/lib/types/index.d.ts +2 -2
  73. package/dist/lib/types/index.js +0 -1
  74. package/dist/lib/types/mcpTypes.d.ts +53 -99
  75. package/dist/lib/types/providers.d.ts +0 -1
  76. package/dist/lib/types/providers.js +0 -1
  77. package/dist/lib/types/tools.d.ts +2 -2
  78. package/dist/lib/types/tools.js +2 -2
  79. package/dist/lib/utils/factoryProcessing.js +1 -1
  80. package/dist/lib/utils/mcpDefaults.d.ts +54 -0
  81. package/dist/lib/utils/mcpDefaults.js +125 -0
  82. package/dist/lib/utils/providerConfig.d.ts +1 -1
  83. package/dist/lib/utils/providerConfig.js +2 -2
  84. package/dist/lib/utils/providerHealth.js +6 -6
  85. package/dist/mcp/externalServerManager.d.ts +148 -0
  86. package/dist/mcp/externalServerManager.js +1038 -0
  87. package/dist/mcp/mcpCircuitBreaker.d.ts +184 -0
  88. package/dist/mcp/mcpCircuitBreaker.js +338 -0
  89. package/dist/mcp/mcpClientFactory.d.ts +105 -0
  90. package/dist/mcp/mcpClientFactory.js +421 -0
  91. package/dist/mcp/toolDiscoveryService.d.ts +193 -0
  92. package/dist/mcp/toolDiscoveryService.js +646 -0
  93. package/dist/mcp/toolRegistry.d.ts +15 -11
  94. package/dist/mcp/toolRegistry.js +118 -55
  95. package/dist/models/modelResolver.js +1 -1
  96. package/dist/neurolink.d.ts +139 -43
  97. package/dist/neurolink.js +604 -174
  98. package/dist/providers/googleVertex.d.ts +7 -1
  99. package/dist/providers/googleVertex.js +34 -7
  100. package/dist/providers/huggingFace.js +1 -1
  101. package/dist/providers/mistral.js +3 -3
  102. package/dist/providers/ollama.js +1 -1
  103. package/dist/providers/openAI.d.ts +3 -2
  104. package/dist/providers/openAI.js +2 -2
  105. package/dist/providers/openaiCompatible.d.ts +1 -1
  106. package/dist/providers/openaiCompatible.js +2 -2
  107. package/dist/providers/sagemaker/config.js +1 -1
  108. package/dist/sdk/toolRegistration.d.ts +4 -13
  109. package/dist/sdk/toolRegistration.js +19 -66
  110. package/dist/types/cli.d.ts +0 -1
  111. package/dist/types/cli.js +0 -1
  112. package/dist/types/common.d.ts +1 -2
  113. package/dist/types/common.js +0 -1
  114. package/dist/types/contextTypes.d.ts +1 -1
  115. package/dist/types/contextTypes.js +3 -3
  116. package/dist/types/externalMcp.d.ts +288 -0
  117. package/dist/types/externalMcp.js +7 -0
  118. package/dist/types/generateTypes.d.ts +0 -1
  119. package/dist/types/index.d.ts +2 -2
  120. package/dist/types/index.js +0 -1
  121. package/dist/types/mcpTypes.d.ts +53 -99
  122. package/dist/types/providers.d.ts +0 -1
  123. package/dist/types/providers.js +0 -1
  124. package/dist/types/tools.d.ts +2 -2
  125. package/dist/types/tools.js +2 -2
  126. package/dist/utils/factoryProcessing.js +1 -1
  127. package/dist/utils/mcpDefaults.d.ts +54 -0
  128. package/dist/utils/mcpDefaults.js +125 -0
  129. package/dist/utils/providerConfig.d.ts +1 -1
  130. package/dist/utils/providerConfig.js +2 -2
  131. package/dist/utils/providerHealth.js +6 -6
  132. package/package.json +1 -1
@@ -0,0 +1,148 @@
1
+ /**
2
+ * External MCP Server Manager
3
+ * Handles lifecycle management of external MCP servers including:
4
+ * - Process spawning and management
5
+ * - Health monitoring and automatic restart
6
+ * - Connection management and cleanup
7
+ * - Tool discovery and registration
8
+ */
9
+ import { EventEmitter } from "events";
10
+ import { ToolDiscoveryService } from "./toolDiscoveryService.js";
11
+ import type { ExternalMCPServerInstance, ExternalMCPServerHealth, ExternalMCPConfigValidation, ExternalMCPOperationResult, ExternalMCPManagerConfig, ExternalMCPToolInfo } from "../types/externalMcp.js";
12
+ import type { MCPServerInfo } from "../types/mcpTypes.js";
13
+ import type { JsonObject } from "../types/common.js";
14
+ export declare class ExternalServerManager extends EventEmitter {
15
+ private servers;
16
+ private config;
17
+ private isShuttingDown;
18
+ private toolDiscovery;
19
+ private enableMainRegistryIntegration;
20
+ constructor(config?: ExternalMCPManagerConfig, options?: {
21
+ enableMainRegistryIntegration?: boolean;
22
+ });
23
+ /**
24
+ * Load MCP server configurations from .mcp-config.json file
25
+ * Automatically registers servers found in the configuration
26
+ * @param configPath Optional path to config file (defaults to .mcp-config.json in cwd)
27
+ * @returns Promise resolving to number of servers loaded
28
+ */
29
+ loadMCPConfiguration(configPath?: string): Promise<{
30
+ serversLoaded: number;
31
+ errors: string[];
32
+ }>;
33
+ /**
34
+ * Validate external MCP server configuration
35
+ */
36
+ validateConfig(config: MCPServerInfo): ExternalMCPConfigValidation;
37
+ /**
38
+ * Convert MCPServerInfo format (keeping for backward compatibility)
39
+ * Helper function for transitioning to zero-conversion architecture
40
+ */
41
+ private convertConfigToMCPServerInfo;
42
+ /**
43
+ * Add a new external MCP server - Backward compatibility overload
44
+ */
45
+ addServer(serverId: string, config: MCPServerInfo): Promise<ExternalMCPOperationResult<ExternalMCPServerInstance>>;
46
+ /**
47
+ * Add a new external MCP server - Updated to accept MCPServerInfo
48
+ */
49
+ addServer(serverId: string, serverInfo: MCPServerInfo): Promise<ExternalMCPOperationResult<ExternalMCPServerInstance>>;
50
+ /**
51
+ * Remove an external MCP server
52
+ */
53
+ removeServer(serverId: string): Promise<ExternalMCPOperationResult<void>>;
54
+ /**
55
+ * Start an external MCP server
56
+ */
57
+ private startServer;
58
+ /**
59
+ * Stop an external MCP server
60
+ */
61
+ private stopServer;
62
+ /**
63
+ * Update server status and emit events
64
+ */
65
+ private updateServerStatus;
66
+ /**
67
+ * Handle server errors
68
+ */
69
+ private handleServerError;
70
+ /**
71
+ * Handle server disconnection
72
+ */
73
+ private handleServerDisconnection;
74
+ /**
75
+ * Schedule server restart with exponential backoff
76
+ */
77
+ private scheduleRestart;
78
+ /**
79
+ * Start health monitoring for a server
80
+ */
81
+ private startHealthMonitoring;
82
+ /**
83
+ * Perform health check on a server
84
+ */
85
+ private performHealthCheck;
86
+ /**
87
+ * Get server instance - converted to ExternalMCPServerInstance for compatibility
88
+ */
89
+ getServer(serverId: string): ExternalMCPServerInstance | undefined;
90
+ /**
91
+ * Get all servers - converted to ExternalMCPServerInstance for compatibility
92
+ */
93
+ getAllServers(): Map<string, ExternalMCPServerInstance>;
94
+ /**
95
+ * List servers as MCPServerInfo - ZERO conversion needed
96
+ */
97
+ listServers(): MCPServerInfo[];
98
+ /**
99
+ * Get server statuses
100
+ */
101
+ getServerStatuses(): ExternalMCPServerHealth[];
102
+ /**
103
+ * Shutdown all servers
104
+ */
105
+ shutdown(): Promise<void>;
106
+ /**
107
+ * Get manager statistics
108
+ */
109
+ getStatistics(): {
110
+ totalServers: number;
111
+ connectedServers: number;
112
+ failedServers: number;
113
+ totalTools: number;
114
+ totalConnections: number;
115
+ totalErrors: number;
116
+ };
117
+ /**
118
+ * Discover tools from a server
119
+ */
120
+ private discoverServerTools;
121
+ /**
122
+ * Register server tools with main tool registry for unified access
123
+ * This enables external MCP tools to be accessed via the main toolRegistry.executeTool()
124
+ */
125
+ private registerServerToolsWithMainRegistry;
126
+ /**
127
+ * Unregister server tools from main tool registry
128
+ */
129
+ private unregisterServerToolsFromMainRegistry;
130
+ /**
131
+ * Execute a tool on a specific server
132
+ */
133
+ executeTool(serverId: string, toolName: string, parameters: JsonObject, options?: {
134
+ timeout?: number;
135
+ }): Promise<unknown>;
136
+ /**
137
+ * Get all tools from all servers
138
+ */
139
+ getAllTools(): ExternalMCPToolInfo[];
140
+ /**
141
+ * Get tools for a specific server
142
+ */
143
+ getServerTools(serverId: string): ExternalMCPToolInfo[];
144
+ /**
145
+ * Get tool discovery service
146
+ */
147
+ getToolDiscovery(): ToolDiscoveryService;
148
+ }