@juspay/neurolink 6.0.0 → 6.2.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 (283) hide show
  1. package/CHANGELOG.md +14 -3
  2. package/dist/cli/commands/config.d.ts +13 -13
  3. package/dist/cli/index.js +3 -9
  4. package/dist/core/analytics.d.ts +11 -1
  5. package/dist/core/analytics.js +2 -2
  6. package/dist/core/base-provider.js +4 -18
  7. package/dist/core/dynamic-models.d.ts +8 -8
  8. package/dist/core/factory.js +3 -11
  9. package/dist/index.d.ts +2 -4
  10. package/dist/index.js +2 -11
  11. package/dist/lib/core/analytics.d.ts +11 -1
  12. package/dist/lib/core/analytics.js +2 -2
  13. package/dist/lib/core/base-provider.js +4 -18
  14. package/dist/lib/core/dynamic-models.d.ts +8 -8
  15. package/dist/lib/core/factory.js +3 -11
  16. package/dist/lib/index.d.ts +2 -4
  17. package/dist/lib/index.js +2 -11
  18. package/dist/lib/mcp/factory.d.ts +1 -1
  19. package/dist/lib/mcp/index.d.ts +7 -19
  20. package/dist/lib/mcp/index.js +15 -56
  21. package/dist/lib/neurolink.d.ts +1 -9
  22. package/dist/lib/neurolink.js +21 -70
  23. package/dist/lib/providers/amazon-bedrock.js +5 -16
  24. package/dist/lib/providers/anthropic-baseprovider.js +3 -21
  25. package/dist/lib/providers/anthropic.js +4 -7
  26. package/dist/lib/providers/azure-openai.js +4 -2
  27. package/dist/lib/providers/google-vertex.js +5 -9
  28. package/dist/lib/providers/huggingFace.js +5 -10
  29. package/dist/lib/providers/mistral.js +5 -8
  30. package/dist/lib/providers/openAI.js +4 -7
  31. package/dist/lib/utils/providerConfig.d.ts +117 -0
  32. package/dist/lib/utils/providerConfig.js +353 -0
  33. package/dist/lib/utils/providerUtils.d.ts +2 -1
  34. package/dist/lib/utils/providerUtils.js +53 -36
  35. package/dist/lib/utils/timeout.d.ts +72 -1
  36. package/dist/lib/utils/timeout.js +203 -2
  37. package/dist/mcp/factory.d.ts +1 -1
  38. package/dist/mcp/index.d.ts +7 -19
  39. package/dist/mcp/index.js +15 -56
  40. package/dist/neurolink.d.ts +1 -9
  41. package/dist/neurolink.js +21 -70
  42. package/dist/providers/amazon-bedrock.js +5 -16
  43. package/dist/providers/anthropic-baseprovider.js +3 -21
  44. package/dist/providers/anthropic.js +4 -7
  45. package/dist/providers/azure-openai.js +4 -2
  46. package/dist/providers/google-vertex.js +5 -9
  47. package/dist/providers/huggingFace.js +5 -10
  48. package/dist/providers/mistral.js +5 -8
  49. package/dist/providers/openAI.js +4 -7
  50. package/dist/utils/providerConfig.d.ts +117 -0
  51. package/dist/utils/providerConfig.js +353 -0
  52. package/dist/utils/providerUtils.d.ts +2 -1
  53. package/dist/utils/providerUtils.js +53 -36
  54. package/dist/utils/timeout.d.ts +72 -1
  55. package/dist/utils/timeout.js +203 -2
  56. package/package.json +2 -1
  57. package/dist/chat/client-utils.d.ts +0 -95
  58. package/dist/chat/client-utils.js +0 -315
  59. package/dist/chat/index.d.ts +0 -24
  60. package/dist/chat/index.js +0 -33
  61. package/dist/chat/session-storage.d.ts +0 -77
  62. package/dist/chat/session-storage.js +0 -233
  63. package/dist/chat/session.d.ts +0 -96
  64. package/dist/chat/session.js +0 -257
  65. package/dist/chat/sse-handler.d.ts +0 -49
  66. package/dist/chat/sse-handler.js +0 -259
  67. package/dist/chat/types.d.ts +0 -74
  68. package/dist/chat/types.js +0 -5
  69. package/dist/chat/websocket-chat-handler.d.ts +0 -37
  70. package/dist/chat/websocket-chat-handler.js +0 -262
  71. package/dist/cli/commands/mcp.d.ts +0 -20
  72. package/dist/cli/commands/mcp.js +0 -1272
  73. package/dist/core/defaults.d.ts +0 -19
  74. package/dist/core/defaults.js +0 -29
  75. package/dist/core/evaluation-config.d.ts +0 -29
  76. package/dist/core/evaluation-config.js +0 -144
  77. package/dist/factories/compatibility-factory.d.ts +0 -35
  78. package/dist/factories/compatibility-factory.js +0 -71
  79. package/dist/factories/provider-generate-factory.d.ts +0 -20
  80. package/dist/factories/provider-generate-factory.js +0 -93
  81. package/dist/lib/chat/client-utils.d.ts +0 -95
  82. package/dist/lib/chat/client-utils.js +0 -315
  83. package/dist/lib/chat/index.d.ts +0 -24
  84. package/dist/lib/chat/index.js +0 -33
  85. package/dist/lib/chat/session-storage.d.ts +0 -77
  86. package/dist/lib/chat/session-storage.js +0 -233
  87. package/dist/lib/chat/session.d.ts +0 -96
  88. package/dist/lib/chat/session.js +0 -257
  89. package/dist/lib/chat/sse-handler.d.ts +0 -49
  90. package/dist/lib/chat/sse-handler.js +0 -259
  91. package/dist/lib/chat/types.d.ts +0 -74
  92. package/dist/lib/chat/types.js +0 -5
  93. package/dist/lib/chat/websocket-chat-handler.d.ts +0 -37
  94. package/dist/lib/chat/websocket-chat-handler.js +0 -262
  95. package/dist/lib/core/defaults.d.ts +0 -19
  96. package/dist/lib/core/defaults.js +0 -29
  97. package/dist/lib/core/evaluation-config.d.ts +0 -29
  98. package/dist/lib/core/evaluation-config.js +0 -144
  99. package/dist/lib/factories/compatibility-factory.d.ts +0 -35
  100. package/dist/lib/factories/compatibility-factory.js +0 -71
  101. package/dist/lib/factories/provider-generate-factory.d.ts +0 -20
  102. package/dist/lib/factories/provider-generate-factory.js +0 -93
  103. package/dist/lib/mcp/adapters/plugin-bridge.d.ts +0 -40
  104. package/dist/lib/mcp/adapters/plugin-bridge.js +0 -89
  105. package/dist/lib/mcp/auto-discovery.d.ts +0 -62
  106. package/dist/lib/mcp/auto-discovery.js +0 -149
  107. package/dist/lib/mcp/client.d.ts +0 -68
  108. package/dist/lib/mcp/client.js +0 -248
  109. package/dist/lib/mcp/config.d.ts +0 -31
  110. package/dist/lib/mcp/config.js +0 -99
  111. package/dist/lib/mcp/context-manager.d.ts +0 -171
  112. package/dist/lib/mcp/context-manager.js +0 -362
  113. package/dist/lib/mcp/contracts/mcp-contract.d.ts +0 -169
  114. package/dist/lib/mcp/contracts/mcp-contract.js +0 -58
  115. package/dist/lib/mcp/core/plugin-manager.d.ts +0 -46
  116. package/dist/lib/mcp/core/plugin-manager.js +0 -110
  117. package/dist/lib/mcp/demo/plugin-demo.d.ts +0 -20
  118. package/dist/lib/mcp/demo/plugin-demo.js +0 -118
  119. package/dist/lib/mcp/dynamic-chain-executor.d.ts +0 -225
  120. package/dist/lib/mcp/dynamic-chain-executor.js +0 -489
  121. package/dist/lib/mcp/dynamic-orchestrator.d.ts +0 -115
  122. package/dist/lib/mcp/dynamic-orchestrator.js +0 -351
  123. package/dist/lib/mcp/ecosystem.d.ts +0 -75
  124. package/dist/lib/mcp/ecosystem.js +0 -161
  125. package/dist/lib/mcp/error-manager.d.ts +0 -254
  126. package/dist/lib/mcp/error-manager.js +0 -501
  127. package/dist/lib/mcp/error-recovery.d.ts +0 -159
  128. package/dist/lib/mcp/error-recovery.js +0 -405
  129. package/dist/lib/mcp/external-client.d.ts +0 -88
  130. package/dist/lib/mcp/external-client.js +0 -331
  131. package/dist/lib/mcp/external-manager.d.ts +0 -112
  132. package/dist/lib/mcp/external-manager.js +0 -308
  133. package/dist/lib/mcp/function-calling.d.ts +0 -65
  134. package/dist/lib/mcp/function-calling.js +0 -642
  135. package/dist/lib/mcp/health-monitor.d.ts +0 -257
  136. package/dist/lib/mcp/health-monitor.js +0 -630
  137. package/dist/lib/mcp/initialize-tools.d.ts +0 -29
  138. package/dist/lib/mcp/initialize-tools.js +0 -261
  139. package/dist/lib/mcp/initialize.d.ts +0 -18
  140. package/dist/lib/mcp/initialize.js +0 -62
  141. package/dist/lib/mcp/manager.d.ts +0 -68
  142. package/dist/lib/mcp/manager.js +0 -176
  143. package/dist/lib/mcp/neurolink-mcp-client.d.ts +0 -97
  144. package/dist/lib/mcp/neurolink-mcp-client.js +0 -462
  145. package/dist/lib/mcp/orchestrator.d.ts +0 -302
  146. package/dist/lib/mcp/orchestrator.js +0 -703
  147. package/dist/lib/mcp/plugin-manager.d.ts +0 -98
  148. package/dist/lib/mcp/plugin-manager.js +0 -296
  149. package/dist/lib/mcp/plugins/core/filesystem-mcp.d.ts +0 -36
  150. package/dist/lib/mcp/plugins/core/filesystem-mcp.js +0 -142
  151. package/dist/lib/mcp/plugins/filesystem-mcp.d.ts +0 -37
  152. package/dist/lib/mcp/plugins/filesystem-mcp.js +0 -54
  153. package/dist/lib/mcp/security-manager.d.ts +0 -87
  154. package/dist/lib/mcp/security-manager.js +0 -344
  155. package/dist/lib/mcp/semaphore-manager.d.ts +0 -137
  156. package/dist/lib/mcp/semaphore-manager.js +0 -329
  157. package/dist/lib/mcp/session-manager.d.ts +0 -187
  158. package/dist/lib/mcp/session-manager.js +0 -400
  159. package/dist/lib/mcp/session-persistence.d.ts +0 -93
  160. package/dist/lib/mcp/session-persistence.js +0 -301
  161. package/dist/lib/mcp/tool-integration.d.ts +0 -58
  162. package/dist/lib/mcp/tool-integration.js +0 -203
  163. package/dist/lib/mcp/transport-manager.d.ts +0 -154
  164. package/dist/lib/mcp/transport-manager.js +0 -334
  165. package/dist/lib/mcp/unified-mcp.d.ts +0 -133
  166. package/dist/lib/mcp/unified-mcp.js +0 -251
  167. package/dist/lib/mcp/unified-registry.d.ts +0 -165
  168. package/dist/lib/mcp/unified-registry.js +0 -538
  169. package/dist/lib/providers/analytics-helper.d.ts +0 -38
  170. package/dist/lib/providers/analytics-helper.js +0 -216
  171. package/dist/lib/providers/function-calling-provider.d.ts +0 -142
  172. package/dist/lib/providers/function-calling-provider.js +0 -630
  173. package/dist/lib/providers/mcp-provider.d.ts +0 -75
  174. package/dist/lib/providers/mcp-provider.js +0 -283
  175. package/dist/lib/providers/timeout-wrapper.d.ts +0 -40
  176. package/dist/lib/providers/timeout-wrapper.js +0 -100
  177. package/dist/lib/sdk/tool-extension.d.ts +0 -181
  178. package/dist/lib/sdk/tool-extension.js +0 -284
  179. package/dist/lib/services/streaming/streaming-manager.d.ts +0 -29
  180. package/dist/lib/services/streaming/streaming-manager.js +0 -245
  181. package/dist/lib/services/types.d.ts +0 -156
  182. package/dist/lib/services/types.js +0 -2
  183. package/dist/lib/services/websocket/websocket-server.d.ts +0 -34
  184. package/dist/lib/services/websocket/websocket-server.js +0 -305
  185. package/dist/lib/utils/provider-validation.d.ts +0 -36
  186. package/dist/lib/utils/provider-validation.js +0 -625
  187. package/dist/lib/utils/providerUtils-fixed.d.ts +0 -8
  188. package/dist/lib/utils/providerUtils-fixed.js +0 -94
  189. package/dist/lib/utils/streaming-utils.d.ts +0 -79
  190. package/dist/lib/utils/streaming-utils.js +0 -198
  191. package/dist/lib/utils/timeout-manager.d.ts +0 -75
  192. package/dist/lib/utils/timeout-manager.js +0 -244
  193. package/dist/mcp/adapters/plugin-bridge.d.ts +0 -40
  194. package/dist/mcp/adapters/plugin-bridge.js +0 -89
  195. package/dist/mcp/auto-discovery.d.ts +0 -62
  196. package/dist/mcp/auto-discovery.js +0 -149
  197. package/dist/mcp/client.d.ts +0 -68
  198. package/dist/mcp/client.js +0 -248
  199. package/dist/mcp/config.d.ts +0 -31
  200. package/dist/mcp/config.js +0 -99
  201. package/dist/mcp/context-manager.d.ts +0 -171
  202. package/dist/mcp/context-manager.js +0 -362
  203. package/dist/mcp/contracts/mcp-contract.d.ts +0 -169
  204. package/dist/mcp/contracts/mcp-contract.js +0 -58
  205. package/dist/mcp/core/plugin-manager.d.ts +0 -46
  206. package/dist/mcp/core/plugin-manager.js +0 -110
  207. package/dist/mcp/demo/plugin-demo.d.ts +0 -20
  208. package/dist/mcp/demo/plugin-demo.js +0 -118
  209. package/dist/mcp/dynamic-chain-executor.d.ts +0 -225
  210. package/dist/mcp/dynamic-chain-executor.js +0 -489
  211. package/dist/mcp/dynamic-orchestrator.d.ts +0 -115
  212. package/dist/mcp/dynamic-orchestrator.js +0 -351
  213. package/dist/mcp/ecosystem.d.ts +0 -75
  214. package/dist/mcp/ecosystem.js +0 -162
  215. package/dist/mcp/error-manager.d.ts +0 -254
  216. package/dist/mcp/error-manager.js +0 -501
  217. package/dist/mcp/error-recovery.d.ts +0 -159
  218. package/dist/mcp/error-recovery.js +0 -405
  219. package/dist/mcp/external-client.d.ts +0 -88
  220. package/dist/mcp/external-client.js +0 -331
  221. package/dist/mcp/external-manager.d.ts +0 -112
  222. package/dist/mcp/external-manager.js +0 -308
  223. package/dist/mcp/function-calling.d.ts +0 -65
  224. package/dist/mcp/function-calling.js +0 -642
  225. package/dist/mcp/health-monitor.d.ts +0 -257
  226. package/dist/mcp/health-monitor.js +0 -630
  227. package/dist/mcp/initialize-tools.d.ts +0 -29
  228. package/dist/mcp/initialize-tools.js +0 -262
  229. package/dist/mcp/initialize.d.ts +0 -18
  230. package/dist/mcp/initialize.js +0 -62
  231. package/dist/mcp/manager.d.ts +0 -68
  232. package/dist/mcp/manager.js +0 -176
  233. package/dist/mcp/neurolink-mcp-client.d.ts +0 -97
  234. package/dist/mcp/neurolink-mcp-client.js +0 -462
  235. package/dist/mcp/orchestrator.d.ts +0 -302
  236. package/dist/mcp/orchestrator.js +0 -703
  237. package/dist/mcp/plugin-manager.d.ts +0 -98
  238. package/dist/mcp/plugin-manager.js +0 -297
  239. package/dist/mcp/plugins/core/filesystem-mcp.d.ts +0 -36
  240. package/dist/mcp/plugins/core/filesystem-mcp.js +0 -142
  241. package/dist/mcp/plugins/core/neurolink-mcp.json +0 -17
  242. package/dist/mcp/plugins/filesystem-mcp.d.ts +0 -37
  243. package/dist/mcp/plugins/filesystem-mcp.js +0 -54
  244. package/dist/mcp/security-manager.d.ts +0 -87
  245. package/dist/mcp/security-manager.js +0 -344
  246. package/dist/mcp/semaphore-manager.d.ts +0 -137
  247. package/dist/mcp/semaphore-manager.js +0 -329
  248. package/dist/mcp/session-manager.d.ts +0 -187
  249. package/dist/mcp/session-manager.js +0 -400
  250. package/dist/mcp/session-persistence.d.ts +0 -93
  251. package/dist/mcp/session-persistence.js +0 -302
  252. package/dist/mcp/tool-integration.d.ts +0 -58
  253. package/dist/mcp/tool-integration.js +0 -203
  254. package/dist/mcp/transport-manager.d.ts +0 -154
  255. package/dist/mcp/transport-manager.js +0 -335
  256. package/dist/mcp/unified-mcp.d.ts +0 -133
  257. package/dist/mcp/unified-mcp.js +0 -251
  258. package/dist/mcp/unified-registry.d.ts +0 -165
  259. package/dist/mcp/unified-registry.js +0 -539
  260. package/dist/providers/analytics-helper.d.ts +0 -38
  261. package/dist/providers/analytics-helper.js +0 -216
  262. package/dist/providers/function-calling-provider.d.ts +0 -142
  263. package/dist/providers/function-calling-provider.js +0 -630
  264. package/dist/providers/mcp-provider.d.ts +0 -75
  265. package/dist/providers/mcp-provider.js +0 -283
  266. package/dist/providers/timeout-wrapper.d.ts +0 -40
  267. package/dist/providers/timeout-wrapper.js +0 -100
  268. package/dist/sdk/tool-extension.d.ts +0 -181
  269. package/dist/sdk/tool-extension.js +0 -284
  270. package/dist/services/streaming/streaming-manager.d.ts +0 -29
  271. package/dist/services/streaming/streaming-manager.js +0 -245
  272. package/dist/services/types.d.ts +0 -156
  273. package/dist/services/types.js +0 -2
  274. package/dist/services/websocket/websocket-server.d.ts +0 -34
  275. package/dist/services/websocket/websocket-server.js +0 -306
  276. package/dist/utils/provider-validation.d.ts +0 -36
  277. package/dist/utils/provider-validation.js +0 -625
  278. package/dist/utils/providerUtils-fixed.d.ts +0 -8
  279. package/dist/utils/providerUtils-fixed.js +0 -94
  280. package/dist/utils/streaming-utils.d.ts +0 -79
  281. package/dist/utils/streaming-utils.js +0 -198
  282. package/dist/utils/timeout-manager.d.ts +0 -75
  283. package/dist/utils/timeout-manager.js +0 -244
package/dist/lib/index.js CHANGED
@@ -9,8 +9,6 @@
9
9
  // Core exports
10
10
  import { AIProviderFactory } from "./core/factory.js";
11
11
  export { AIProviderFactory };
12
- export { CompatibilityConversionFactory } from "./factories/compatibility-factory.js";
13
- export { ProviderGenerateFactory } from "./factories/provider-generate-factory.js";
14
12
  export { createTool, createTypedTool, validateTool, } from "./sdk/tool-registration.js";
15
13
  // Model enums
16
14
  export { BedrockModels, OpenAIModels, VertexModels, DEFAULT_PROVIDER_CONFIGS, } from "./core/types.js";
@@ -86,15 +84,8 @@ export async function createBestAIProvider(requestedProvider, modelName) {
86
84
  */
87
85
  export {
88
86
  // Core MCP ecosystem
89
- MCPEcosystem, mcpEcosystem, initializeMCPEcosystem,
90
- // Plugin management
91
- PluginManager, pluginManager, listMCPs, executeMCP, getMCPStats,
92
- // Quick filesystem operations
93
- readFile, writeFile, listFiles, createDirectory,
94
- // Core contracts and types
95
- MCP, SecurityManager, mcpLogger,
96
- // Core plugins
97
- FileSystemMCP, } from "./mcp/index.js";
87
+ // Simplified MCP exports
88
+ initializeMCPEcosystem, listMCPs, executeMCP, getMCPStats, mcpLogger, } from "./mcp/index.js";
98
89
  // ============================================================================
99
90
  // REAL-TIME SERVICES & TELEMETRY - Enterprise Platform Features
100
91
  // ============================================================================
@@ -4,7 +4,7 @@
4
4
  * Compatible with Lighthouse MCP patterns for seamless migration
5
5
  */
6
6
  import { z } from "zod";
7
- import type { ExecutionContext } from "./contracts/mcp-contract.js";
7
+ import type { ExecutionContext } from "./contracts/mcpContract.js";
8
8
  /**
9
9
  * MCP Server Categories for organization and discovery
10
10
  */
@@ -3,39 +3,27 @@
3
3
  * Universal AI Development Platform with Extensible Plugin Architecture
4
4
  * Implementation based on research blueprint
5
5
  */
6
- export { MCP } from "./contracts/mcp-contract.js";
7
- export type { MCPMetadata, ExecutionContext, MCPConstructor, MCPInstance, DiscoveredMCP, } from "./contracts/mcp-contract.js";
8
- export { MCPEcosystem, mcpEcosystem } from "./ecosystem.js";
9
- export { PluginManager, pluginManager } from "./plugin-manager.js";
10
- export { SecurityManager } from "./security-manager.js";
6
+ export type { McpMetadata, ExecutionContext, DiscoveredMcp, ToolInfo, ToolExecutionResult, } from "./contracts/mcpContract.js";
11
7
  export { mcpLogger } from "./logging.js";
12
8
  export type { LogLevel } from "./logging.js";
13
- export { FileSystemMCP } from "./plugins/core/filesystem-mcp.js";
14
- import type { MCPMetadata } from "./contracts/mcp-contract.js";
9
+ import type { McpMetadata } from "./contracts/mcpContract.js";
15
10
  /**
16
- * Initialize the MCP ecosystem
11
+ * Initialize the MCP ecosystem - simplified
17
12
  */
18
13
  export declare function initializeMCPEcosystem(): Promise<void>;
19
14
  /**
20
- * List available MCPs
15
+ * List available MCPs - simplified
21
16
  */
22
- export declare function listMCPs(): Promise<MCPMetadata[]>;
17
+ export declare function listMCPs(): Promise<McpMetadata[]>;
23
18
  /**
24
- * Execute an MCP operation
19
+ * Execute an MCP operation - simplified
25
20
  */
26
21
  export declare function executeMCP<T = unknown>(name: string, config: unknown, args: unknown, context?: {
27
22
  sessionId?: string;
28
23
  userId?: string;
29
24
  }): Promise<T>;
30
25
  /**
31
- * Quick filesystem operations
32
- */
33
- export declare function readFile(path: string, basePath?: string): Promise<string | Buffer>;
34
- export declare function writeFile(path: string, content: string, basePath?: string): Promise<void>;
35
- export declare function listFiles(path: string, basePath?: string): Promise<string[]>;
36
- export declare function createDirectory(path: string, basePath?: string): Promise<void>;
37
- /**
38
- * Get MCP ecosystem statistics
26
+ * Get MCP ecosystem statistics - simplified
39
27
  */
40
28
  export declare function getMCPStats(): Promise<{
41
29
  initialized: boolean;
@@ -3,76 +3,35 @@
3
3
  * Universal AI Development Platform with Extensible Plugin Architecture
4
4
  * Implementation based on research blueprint
5
5
  */
6
- // Core contracts and types
7
- export { MCP } from "./contracts/mcp-contract.js";
8
- // Main ecosystem interface
9
- export { MCPEcosystem, mcpEcosystem } from "./ecosystem.js";
10
- // Plugin management
11
- export { PluginManager, pluginManager } from "./plugin-manager.js";
12
- // Security
13
- export { SecurityManager } from "./security-manager.js";
14
- // Logging
6
+ // Core functionality exports
15
7
  export { mcpLogger } from "./logging.js";
16
- // Core plugins
17
- export { FileSystemMCP } from "./plugins/core/filesystem-mcp.js";
18
8
  /**
19
- * Quick access functions for common MCP operations
20
- */
21
- // Import the ecosystem singleton
22
- import { mcpEcosystem } from "./ecosystem.js";
23
- /**
24
- * Initialize the MCP ecosystem
9
+ * Initialize the MCP ecosystem - simplified
25
10
  */
26
11
  export async function initializeMCPEcosystem() {
27
- return mcpEcosystem.initialize();
12
+ // Simplified initialization - no complex ecosystem needed
13
+ return Promise.resolve();
28
14
  }
29
15
  /**
30
- * List available MCPs
16
+ * List available MCPs - simplified
31
17
  */
32
18
  export async function listMCPs() {
33
- return mcpEcosystem.list();
19
+ return [];
34
20
  }
35
21
  /**
36
- * Execute an MCP operation
22
+ * Execute an MCP operation - simplified
37
23
  */
38
24
  export async function executeMCP(name, config, args, context) {
39
- return mcpEcosystem.execute(name, config, args, context);
40
- }
41
- /**
42
- * Quick filesystem operations
43
- */
44
- export async function readFile(path, basePath) {
45
- return mcpEcosystem.filesystem({
46
- action: "readFile",
47
- path,
48
- basePath,
49
- });
50
- }
51
- export async function writeFile(path, content, basePath) {
52
- return mcpEcosystem.filesystem({
53
- action: "writeFile",
54
- path,
55
- content,
56
- basePath,
57
- });
58
- }
59
- export async function listFiles(path, basePath) {
60
- return mcpEcosystem.filesystem({
61
- action: "listFiles",
62
- path,
63
- basePath,
64
- });
65
- }
66
- export async function createDirectory(path, basePath) {
67
- return mcpEcosystem.filesystem({
68
- action: "createDir",
69
- path,
70
- basePath,
71
- });
25
+ throw new Error("MCP execution not available - ecosystem removed");
72
26
  }
73
27
  /**
74
- * Get MCP ecosystem statistics
28
+ * Get MCP ecosystem statistics - simplified
75
29
  */
76
30
  export async function getMCPStats() {
77
- return mcpEcosystem.getStats();
31
+ return {
32
+ initialized: false,
33
+ pluginsDiscovered: 0,
34
+ pluginsBySource: {},
35
+ availablePlugins: [],
36
+ };
78
37
  }
@@ -40,7 +40,6 @@ export interface MCPServerInfo {
40
40
  }
41
41
  export declare class NeuroLink {
42
42
  private mcpInitialized;
43
- private contextManager;
44
43
  private customTools;
45
44
  private inMemoryServers;
46
45
  constructor();
@@ -139,14 +138,7 @@ export declare class NeuroLink {
139
138
  * Get all available tools including custom and in-memory ones
140
139
  * @returns Array of available tools with metadata
141
140
  */
142
- getAllAvailableTools(): Promise<{
143
- serverId: string;
144
- serverTitle: string;
145
- toolName: string;
146
- namespacedName: string;
147
- description: string;
148
- isImplemented: boolean;
149
- }[]>;
141
+ getAllAvailableTools(): Promise<import("./index.js").ToolInfo[]>;
150
142
  /**
151
143
  * Get comprehensive status of all AI providers
152
144
  * Primary method for provider health checking and diagnostics
@@ -14,18 +14,15 @@ catch (error) {
14
14
  // Environment variables should be set externally in production
15
15
  }
16
16
  import { AIProviderFactory } from "./core/factory.js";
17
- import { ContextManager } from "./mcp/context-manager.js";
18
17
  import { mcpLogger } from "./mcp/logging.js";
19
18
  import { toolRegistry } from "./mcp/tool-registry.js";
20
- import { unifiedRegistry } from "./mcp/unified-registry.js";
21
19
  import { logger } from "./utils/logger.js";
22
- import { getBestProvider } from "./utils/providerUtils-fixed.js";
20
+ import { getBestProvider } from "./utils/providerUtils.js";
23
21
  import { ProviderRegistry } from "./factories/provider-registry.js";
24
22
  import { validateTool, createMCPServerFromTools, } from "./sdk/tool-registration.js";
25
23
  // Core types imported from core/types.js
26
24
  export class NeuroLink {
27
25
  mcpInitialized = false;
28
- contextManager;
29
26
  // Tool registration support
30
27
  customTools = new Map();
31
28
  inMemoryServers = new Map();
@@ -34,7 +31,6 @@ export class NeuroLink {
34
31
  ProviderRegistry.setOptions({
35
32
  enableManualMCP: false,
36
33
  });
37
- this.contextManager = new ContextManager();
38
34
  }
39
35
  /**
40
36
  * Initialize MCP registry with enhanced error handling and resource cleanup
@@ -223,12 +219,7 @@ export class NeuroLink {
223
219
  if (!this.mcpInitialized) {
224
220
  return null; // Skip MCP if not available
225
221
  }
226
- // Create execution context
227
- const context = this.contextManager.createContext({
228
- sessionId: `neurolink-${Date.now()}`,
229
- userId: "neurolink-user",
230
- aiProvider: options.provider || "auto",
231
- });
222
+ // Context creation removed - was never used
232
223
  // Determine provider
233
224
  const providerName = options.provider === "auto" || !options.provider
234
225
  ? await getBestProvider()
@@ -402,12 +393,7 @@ export class NeuroLink {
402
393
  }
403
394
  // Initialize MCP if needed
404
395
  await this.initializeMCP();
405
- // Create execution context for tool operations
406
- const context = this.contextManager.createContext({
407
- sessionId: `neurolink-stream-${Date.now()}`,
408
- userId: "neurolink-user",
409
- aiProvider: options.provider || "auto",
410
- });
396
+ // Context creation removed - was never used
411
397
  // Determine provider to use
412
398
  const providerName = options.provider === "auto" || !options.provider
413
399
  ? await getBestProvider()
@@ -416,7 +402,6 @@ export class NeuroLink {
416
402
  mcpLogger.debug(`[${functionTag}] Starting MCP-enabled streaming`, {
417
403
  provider: providerName,
418
404
  prompt: (options.input.text?.substring(0, 100) || "No text") + "...",
419
- contextId: context.sessionId,
420
405
  });
421
406
  // Create provider using the same factory pattern as generate
422
407
  const provider = await AIProviderFactory.createBestProvider(providerName, options.model, true, this);
@@ -632,19 +617,14 @@ export class NeuroLink {
632
617
  }
633
618
  // If not found in custom tools or in-memory servers, try unified registry
634
619
  try {
635
- // Ensure built-in tools are initialized
636
- const { initializeNeuroLinkMCP, isNeuroLinkMCPInitialized } = await import("./mcp/initialize.js");
637
- if (!isNeuroLinkMCPInitialized()) {
638
- mcpLogger.debug(`[${functionTag}] Initializing built-in MCP servers`);
639
- await initializeNeuroLinkMCP();
640
- }
620
+ // Built-in tools initialization simplified
621
+ mcpLogger.debug(`[${functionTag}] MCP initialization simplified`);
641
622
  // Create minimal execution context for external tools
642
- const context = this.contextManager.createContext({
623
+ const context = {
643
624
  sessionId: `neurolink-tool-${Date.now()}`,
644
625
  userId: "neurolink-user",
645
- aiProvider: "auto",
646
- });
647
- const result = (await unifiedRegistry.executeTool(toolName, params, context));
626
+ };
627
+ const result = (await toolRegistry.executeTool(toolName, params, context));
648
628
  return result;
649
629
  }
650
630
  catch (error) {
@@ -669,8 +649,9 @@ export class NeuroLink {
669
649
  * @returns Array of available tools with metadata
670
650
  */
671
651
  async getAllAvailableTools() {
672
- const { getAllAvailableTools } = await import("./mcp/initialize-tools.js");
673
- return getAllAvailableTools(this.inMemoryServers);
652
+ // Simplified tool listing - removed initialize-tools dependency
653
+ const tools = await toolRegistry.listTools();
654
+ return tools;
674
655
  }
675
656
  // ============================================================================
676
657
  // PROVIDER DIAGNOSTICS - SDK-First Architecture
@@ -857,25 +838,16 @@ export class NeuroLink {
857
838
  * @returns Promise resolving to MCP status details
858
839
  */
859
840
  async getMCPStatus() {
860
- const { unifiedRegistry } = await import("./mcp/unified-registry.js");
861
841
  try {
862
- const totalServers = unifiedRegistry.getTotalServerCount();
863
- const availableServers = unifiedRegistry.getAvailableServerCount();
864
- const autoDiscoveredServers = unifiedRegistry.getAutoDiscoveredServers();
865
- const allTools = await unifiedRegistry.listAllTools();
842
+ // Simplified MCP status - unified registry removed
843
+ const allTools = await toolRegistry.listTools();
866
844
  return {
867
845
  mcpInitialized: this.mcpInitialized,
868
- totalServers,
869
- availableServers,
870
- autoDiscoveredCount: autoDiscoveredServers.length,
846
+ totalServers: 1, // Only tool registry now
847
+ availableServers: 1,
848
+ autoDiscoveredCount: 0, // No auto-discovery
871
849
  totalTools: allTools.length,
872
- autoDiscoveredServers: autoDiscoveredServers.map((server) => ({
873
- id: server.metadata.name,
874
- name: server.metadata.name,
875
- source: server.source,
876
- status: "discovered",
877
- hasServer: true,
878
- })),
850
+ autoDiscoveredServers: [], // No auto-discovery
879
851
  customToolsCount: this.customTools.size,
880
852
  inMemoryServersCount: this.inMemoryServers.size,
881
853
  };
@@ -899,24 +871,8 @@ export class NeuroLink {
899
871
  * @returns Promise resolving to array of MCP server information
900
872
  */
901
873
  async listMCPServers() {
902
- const { unifiedRegistry } = await import("./mcp/unified-registry.js");
903
- try {
904
- const servers = unifiedRegistry.getAutoDiscoveredServers();
905
- return servers.map((server) => ({
906
- id: server.metadata.name,
907
- name: server.metadata.name,
908
- source: server.source,
909
- status: unifiedRegistry.isConnected(server.metadata.name)
910
- ? "connected"
911
- : "discovered",
912
- hasServer: true,
913
- metadata: server.metadata,
914
- }));
915
- }
916
- catch (error) {
917
- logger.warn("Failed to list MCP servers", { error });
918
- return [];
919
- }
874
+ // Simplified MCP servers listing - unified registry removed
875
+ return [];
920
876
  }
921
877
  /**
922
878
  * Test connectivity to a specific MCP server
@@ -924,13 +880,8 @@ export class NeuroLink {
924
880
  * @returns Promise resolving to true if server is reachable
925
881
  */
926
882
  async testMCPServer(serverId) {
927
- const { unifiedRegistry } = await import("./mcp/unified-registry.js");
928
- try {
929
- return unifiedRegistry.isConnected(serverId);
930
- }
931
- catch {
932
- return false;
933
- }
883
+ // Simplified MCP server testing - unified registry removed
884
+ return false; // No auto-discovery servers available
934
885
  }
935
886
  }
936
887
  // Create default instance
@@ -4,32 +4,21 @@ import { BaseProvider } from "../core/base-provider.js";
4
4
  import { logger } from "../utils/logger.js";
5
5
  import { TimeoutError, } from "../utils/timeout.js";
6
6
  import { DEFAULT_MAX_TOKENS } from "../core/constants.js";
7
+ import { validateApiKey, createAWSAccessKeyConfig, createAWSSecretConfig, getAWSRegion, getAWSSessionToken, } from "../utils/providerConfig.js";
7
8
  // Configuration helpers
8
9
  const getBedrockModelId = () => {
9
10
  return (process.env.BEDROCK_MODEL ||
10
11
  process.env.BEDROCK_MODEL_ID ||
11
12
  "arn:aws:bedrock:us-east-2:225681119357:inference-profile/us.anthropic.claude-3-7-sonnet-20250219-v1:0");
12
13
  };
14
+ // Configuration helpers - now using consolidated utility
13
15
  const getAWSAccessKeyId = () => {
14
- const accessKeyId = process.env.AWS_ACCESS_KEY_ID;
15
- if (!accessKeyId) {
16
- throw new Error(`āŒ AWS Bedrock Provider Configuration Error\n\nMissing required environment variables: AWS_ACCESS_KEY_ID\n\nšŸ”§ Step 1: Get AWS Credentials\n1. Visit: https://console.aws.amazon.com/iam/\n2. Create IAM user with Bedrock permissions\n3. Generate access key\n\nšŸ”§ Step 2: Set Environment Variables\nAdd to your .env file:\nAWS_ACCESS_KEY_ID=your_access_key_here\nAWS_SECRET_ACCESS_KEY=your_secret_key_here\nAWS_REGION=us-east-1\n\nšŸ”§ Step 3: Restart Application\nRestart your application to load the new environment variables.`);
17
- }
18
- return accessKeyId;
16
+ return validateApiKey(createAWSAccessKeyConfig());
19
17
  };
20
18
  const getAWSSecretAccessKey = () => {
21
- const secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY;
22
- if (!secretAccessKey) {
23
- throw new Error(`āŒ AWS Bedrock Provider Configuration Error\n\nMissing required environment variables: AWS_SECRET_ACCESS_KEY\n\nšŸ”§ Step 1: Get AWS Credentials\n1. Visit: https://console.aws.amazon.com/iam/\n2. Create IAM user with Bedrock permissions\n3. Generate access key\n\nšŸ”§ Step 2: Set Environment Variables\nAdd to your .env file:\nAWS_ACCESS_KEY_ID=your_access_key_here\nAWS_SECRET_ACCESS_KEY=your_secret_key_here\nAWS_REGION=us-east-1\n\nšŸ”§ Step 3: Restart Application\nRestart your application to load the new environment variables.`);
24
- }
25
- return secretAccessKey;
26
- };
27
- const getAWSRegion = () => {
28
- return process.env.AWS_REGION || "us-east-1";
29
- };
30
- const getAWSSessionToken = () => {
31
- return process.env.AWS_SESSION_TOKEN;
19
+ return validateApiKey(createAWSSecretConfig());
32
20
  };
21
+ // Note: getAWSRegion and getAWSSessionToken are now directly imported from consolidated utility
33
22
  const getAppEnvironment = () => {
34
23
  return process.env.PUBLIC_APP_ENVIRONMENT || "production";
35
24
  };
@@ -4,6 +4,7 @@ import { BaseProvider } from "../core/base-provider.js";
4
4
  import { logger } from "../utils/logger.js";
5
5
  import { createTimeoutController, TimeoutError, } from "../utils/timeout.js";
6
6
  import { DEFAULT_MAX_TOKENS } from "../core/constants.js";
7
+ import { validateApiKey, createAnthropicBaseConfig, } from "../utils/providerConfig.js";
7
8
  /**
8
9
  * Anthropic provider implementation using BaseProvider pattern
9
10
  * Migrated from direct API calls to Vercel AI SDK (@ai-sdk/anthropic)
@@ -50,28 +51,9 @@ export class AnthropicProviderV2 extends BaseProvider {
50
51
  }
51
52
  return new Error(`Anthropic error: ${errorWithStatus?.message || String(error) || "Unknown error"}`);
52
53
  }
54
+ // Configuration helper - now using consolidated utility
53
55
  getApiKey() {
54
- const apiKey = process.env.ANTHROPIC_API_KEY;
55
- if (!apiKey) {
56
- throw new Error(`āŒ ANTHROPIC Provider Configuration Error
57
-
58
- Missing required environment variables: ANTHROPIC_API_KEY
59
-
60
- šŸ”§ Step 1: Get Credentials
61
- Get your API key from https://console.anthropic.com/
62
-
63
- šŸ’” Step 2: Add to your .env file (or export in CLI):
64
- ANTHROPIC_API_KEY="sk-ant-your-anthropic-api-key"
65
- # Optional:
66
- ANTHROPIC_MODEL="claude-3-5-sonnet-20241022"
67
- ANTHROPIC_BASE_URL="https://api.anthropic.com"
68
-
69
- šŸš€ Step 3: Test the setup:
70
- npx neurolink generate "Hello" --provider anthropic
71
-
72
- šŸ“– More info: https://docs.neurolink.dev/providers/anthropic`);
73
- }
74
- return apiKey;
56
+ return validateApiKey(createAnthropicBaseConfig());
75
57
  }
76
58
  // executeGenerate removed - BaseProvider handles all generation with tools
77
59
  async executeStream(options, analysisSchema) {
@@ -4,16 +4,13 @@ import { BaseProvider } from "../core/base-provider.js";
4
4
  import { logger } from "../utils/logger.js";
5
5
  import { createTimeoutController, TimeoutError, } from "../utils/timeout.js";
6
6
  import { DEFAULT_MAX_TOKENS } from "../core/constants.js";
7
- // Configuration helpers
7
+ import { validateApiKey, createAnthropicConfig, getProviderModel, } from "../utils/providerConfig.js";
8
+ // Configuration helpers - now using consolidated utility
8
9
  const getAnthropicApiKey = () => {
9
- const apiKey = process.env.ANTHROPIC_API_KEY;
10
- if (!apiKey) {
11
- throw new Error(`āŒ Anthropic Provider Configuration Error\n\nMissing required environment variable: ANTHROPIC_API_KEY\n\nšŸ”§ Step 1: Get Anthropic API Key\n1. Visit: https://console.anthropic.com/\n2. Sign in or create an account\n3. Go to API Keys section\n4. Create a new API key\n\nšŸ”§ Step 2: Set Environment Variable\nAdd to your .env file:\nANTHROPIC_API_KEY=your_api_key_here\n\nšŸ”§ Step 3: Restart Application\nRestart your application to load the new environment variables.`);
12
- }
13
- return apiKey;
10
+ return validateApiKey(createAnthropicConfig());
14
11
  };
15
12
  const getDefaultAnthropicModel = () => {
16
- return process.env.ANTHROPIC_MODEL || "claude-3-5-sonnet-20241022";
13
+ return getProviderModel("ANTHROPIC_MODEL", "claude-3-5-sonnet-20241022");
17
14
  };
18
15
  /**
19
16
  * Anthropic Provider v2 - BaseProvider Implementation
@@ -1,6 +1,7 @@
1
1
  import { createAzure } from "@ai-sdk/azure";
2
2
  import { streamText } from "ai";
3
3
  import { BaseProvider } from "../core/base-provider.js";
4
+ import { validateApiKey, createAzureAPIKeyConfig, createAzureEndpointConfig, } from "../utils/providerConfig.js";
4
5
  export class AzureOpenAIProvider extends BaseProvider {
5
6
  apiKey;
6
7
  resourceName;
@@ -21,11 +22,12 @@ export class AzureOpenAIProvider extends BaseProvider {
21
22
  process.env.AZURE_OPENAI_DEPLOYMENT_ID ||
22
23
  "gpt-4o";
23
24
  this.apiVersion = process.env.AZURE_API_VERSION || "2024-10-01-preview";
25
+ // Configuration validation - now using consolidated utility
24
26
  if (!this.apiKey) {
25
- throw new Error("AZURE_OPENAI_API_KEY environment variable is required");
27
+ validateApiKey(createAzureAPIKeyConfig());
26
28
  }
27
29
  if (!this.resourceName) {
28
- throw new Error("AZURE_OPENAI_ENDPOINT environment variable is required");
30
+ validateApiKey(createAzureEndpointConfig());
29
31
  }
30
32
  // Create the Azure provider instance
31
33
  this.azureProvider = createAzure({
@@ -4,6 +4,7 @@ import { BaseProvider } from "../core/base-provider.js";
4
4
  import { logger } from "../utils/logger.js";
5
5
  import { TimeoutError, } from "../utils/timeout.js";
6
6
  import { DEFAULT_MAX_TOKENS } from "../core/constants.js";
7
+ import { validateApiKey, createVertexProjectConfig, createGoogleAuthConfig, } from "../utils/providerConfig.js";
7
8
  // Cache for anthropic module to avoid repeated imports
8
9
  let _createVertexAnthropic = null;
9
10
  let _anthropicImportAttempted = false;
@@ -28,14 +29,9 @@ async function getCreateVertexAnthropic() {
28
29
  }
29
30
  }
30
31
  // Configuration helpers
32
+ // Configuration helpers - now using consolidated utility
31
33
  const getVertexProjectId = () => {
32
- const projectId = process.env.GOOGLE_CLOUD_PROJECT_ID ||
33
- process.env.VERTEX_PROJECT_ID ||
34
- process.env.GOOGLE_VERTEX_PROJECT;
35
- if (!projectId) {
36
- throw new Error(`āŒ Google Vertex AI Provider Configuration Error\n\nMissing required environment variables: GOOGLE_CLOUD_PROJECT_ID or VERTEX_PROJECT_ID\n\nšŸ”§ Step 1: Get Google Cloud Credentials\n1. Visit: https://console.cloud.google.com/\n2. Create or select a project\n3. Enable Vertex AI API\n4. Set up authentication\n\nšŸ”§ Step 2: Set Environment Variables\nAdd to your .env file:\nGOOGLE_CLOUD_PROJECT_ID=your_project_id_here\nGOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json\n\nšŸ”§ Step 3: Restart Application\nRestart your application to load the new environment variables.`);
37
- }
38
- return projectId;
34
+ return validateApiKey(createVertexProjectConfig());
39
35
  };
40
36
  const getVertexLocation = () => {
41
37
  return (process.env.GOOGLE_CLOUD_LOCATION ||
@@ -72,9 +68,9 @@ export class GoogleVertexProvider extends BaseProvider {
72
68
  cachedAnthropicModel = null;
73
69
  constructor(modelName, sdk) {
74
70
  super(modelName, "vertex", sdk);
75
- // Validate Google Cloud credentials
71
+ // Validate Google Cloud credentials - now using consolidated utility
76
72
  if (!hasGoogleCredentials()) {
77
- throw new Error(`āŒ Google Vertex AI Provider Configuration Error\n\nMissing Google Cloud authentication. One of the following is required:\n\nšŸ”§ Option 1: Service Account Key File\nGOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json\n\nšŸ”§ Option 2: Service Account Key (Base64)\nGOOGLE_SERVICE_ACCOUNT_KEY=base64_encoded_key\n\nšŸ”§ Option 3: Individual Credentials\nGOOGLE_AUTH_CLIENT_EMAIL=your-service-account@project.iam.gserviceaccount.com\nGOOGLE_AUTH_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----...\n\nšŸ”§ Step 4: Restart Application\nRestart your application to load the new environment variables.`);
73
+ validateApiKey(createGoogleAuthConfig());
78
74
  }
79
75
  // Initialize Google Cloud configuration
80
76
  this.projectId = getVertexProjectId();
@@ -4,20 +4,15 @@ import { BaseProvider } from "../core/base-provider.js";
4
4
  import { logger } from "../utils/logger.js";
5
5
  import { createTimeoutController, TimeoutError, } from "../utils/timeout.js";
6
6
  import { DEFAULT_MAX_TOKENS } from "../core/constants.js";
7
- // Configuration helpers
7
+ import { validateApiKey, createHuggingFaceConfig, getProviderModel, } from "../utils/providerConfig.js";
8
+ // Configuration helpers - now using consolidated utility
8
9
  const getHuggingFaceApiKey = () => {
9
- const apiKey = process.env.HUGGINGFACE_API_KEY || process.env.HF_TOKEN;
10
- if (!apiKey) {
11
- throw new Error(`āŒ HuggingFace Provider Configuration Error\n\nMissing required environment variables: HUGGINGFACE_API_KEY\n\nšŸ”§ Step 1: Get Credentials\n1. Visit: https://huggingface.co/settings/tokens\n2. Create new API token\n3. Copy the token\n\nšŸ”§ Step 2: Set Environment Variable\nAdd to your .env file:\nHUGGINGFACE_API_KEY=your_token_here\n\nšŸ”§ Step 3: Restart Application\nRestart your application to load the new environment variables.`);
12
- }
13
- return apiKey;
10
+ return validateApiKey(createHuggingFaceConfig());
14
11
  };
15
12
  const getDefaultHuggingFaceModel = () => {
16
- return process.env.HUGGINGFACE_MODEL || "microsoft/DialoGPT-medium";
17
- };
18
- const hasHuggingFaceCredentials = () => {
19
- return !!(process.env.HUGGINGFACE_API_KEY || process.env.HF_TOKEN);
13
+ return getProviderModel("HUGGINGFACE_MODEL", "microsoft/DialoGPT-medium");
20
14
  };
15
+ // Note: hasHuggingFaceCredentials now directly imported from consolidated utility
21
16
  /**
22
17
  * HuggingFace Provider - BaseProvider Implementation
23
18
  * Using AI SDK with HuggingFace's OpenAI-compatible endpoint
@@ -2,17 +2,14 @@ import { createMistral } from "@ai-sdk/mistral";
2
2
  import { streamText } from "ai";
3
3
  import { BaseProvider } from "../core/base-provider.js";
4
4
  import { logger } from "../utils/logger.js";
5
- import { createAnalytics } from "./analytics-helper.js";
6
- // Configuration helpers
5
+ import { createAnalytics } from "../core/analytics.js";
6
+ import { validateApiKey, createMistralConfig, getProviderModel, } from "../utils/providerConfig.js";
7
+ // Configuration helpers - now using consolidated utility
7
8
  const getMistralApiKey = () => {
8
- const apiKey = process.env.MISTRAL_API_KEY;
9
- if (!apiKey) {
10
- throw new Error("Mistral API key not found. Please set MISTRAL_API_KEY environment variable.");
11
- }
12
- return apiKey;
9
+ return validateApiKey(createMistralConfig());
13
10
  };
14
11
  const getDefaultMistralModel = () => {
15
- return process.env.MISTRAL_MODEL || "mistral-large-latest";
12
+ return getProviderModel("MISTRAL_MODEL", "mistral-large-latest");
16
13
  };
17
14
  /**
18
15
  * Mistral AI Provider v2 - BaseProvider Implementation
@@ -5,16 +5,13 @@ import { BaseProvider } from "../core/base-provider.js";
5
5
  import { logger } from "../utils/logger.js";
6
6
  import { createTimeoutController, TimeoutError, } from "../utils/timeout.js";
7
7
  import { DEFAULT_MAX_TOKENS } from "../core/constants.js";
8
- // Configuration helpers
8
+ import { validateApiKey, createOpenAIConfig, getProviderModel, } from "../utils/providerConfig.js";
9
+ // Configuration helpers - now using consolidated utility
9
10
  const getOpenAIApiKey = () => {
10
- const apiKey = process.env.OPENAI_API_KEY;
11
- if (!apiKey) {
12
- throw new Error(`āŒ OPENAI Provider Configuration Error\n\nMissing required environment variables: OPENAI_API_KEY\n\nšŸ”§ Step 1: Get Credentials\n1. Visit: https://platform.openai.com/api-keys\n2. Create new API key\n3. Copy the key\n\nšŸ”§ Step 2: Set Environment Variable\nAdd to your .env file:\nOPENAI_API_KEY=your_api_key_here\n\nšŸ”§ Step 3: Restart Application\nRestart your application to load the new environment variables.`);
13
- }
14
- return apiKey;
11
+ return validateApiKey(createOpenAIConfig());
15
12
  };
16
13
  const getOpenAIModel = () => {
17
- return process.env.OPENAI_MODEL || "gpt-4o";
14
+ return getProviderModel("OPENAI_MODEL", "gpt-4o");
18
15
  };
19
16
  /**
20
17
  * OpenAI Provider v2 - BaseProvider Implementation