@juspay/neurolink 4.1.0 → 4.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 (75) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/README.md +105 -116
  3. package/dist/cli/commands/mcp.d.ts +11 -0
  4. package/dist/cli/commands/mcp.js +332 -223
  5. package/dist/cli/index.js +69 -8
  6. package/dist/core/factory.js +2 -2
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/lib/core/factory.js +2 -2
  10. package/dist/lib/index.d.ts +1 -1
  11. package/dist/lib/index.js +1 -1
  12. package/dist/lib/mcp/context-manager.d.ts +6 -0
  13. package/dist/lib/mcp/context-manager.js +8 -0
  14. package/dist/lib/mcp/contracts/mcpContract.d.ts +1 -0
  15. package/dist/lib/mcp/external-client.js +6 -2
  16. package/dist/lib/mcp/initialize.d.ts +2 -1
  17. package/dist/lib/mcp/initialize.js +8 -7
  18. package/dist/lib/mcp/orchestrator.js +9 -0
  19. package/dist/lib/mcp/registry.d.ts +1 -1
  20. package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.js +1 -1
  21. package/dist/lib/mcp/servers/ai-providers/ai-core-server.js +3 -3
  22. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  23. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.js +1 -1
  24. package/dist/lib/mcp/session-manager.js +1 -1
  25. package/dist/lib/mcp/session-persistence.js +1 -1
  26. package/dist/lib/mcp/tool-registry.d.ts +31 -11
  27. package/dist/lib/mcp/tool-registry.js +226 -38
  28. package/dist/lib/mcp/unified-mcp.d.ts +12 -2
  29. package/dist/lib/mcp/unified-registry.d.ts +21 -7
  30. package/dist/lib/mcp/unified-registry.js +179 -17
  31. package/dist/lib/neurolink.js +17 -25
  32. package/dist/lib/providers/googleVertexAI.js +19 -1
  33. package/dist/lib/providers/openAI.js +18 -1
  34. package/dist/lib/utils/provider-setup-messages.d.ts +8 -0
  35. package/dist/lib/utils/provider-setup-messages.js +120 -0
  36. package/dist/lib/utils/provider-validation.d.ts +35 -0
  37. package/dist/lib/utils/provider-validation.js +625 -0
  38. package/dist/lib/utils/providerUtils-fixed.js +20 -1
  39. package/dist/lib/utils/providerUtils.d.ts +2 -2
  40. package/dist/lib/utils/providerUtils.js +38 -7
  41. package/dist/lib/utils/timeout-manager.d.ts +75 -0
  42. package/dist/lib/utils/timeout-manager.js +244 -0
  43. package/dist/mcp/context-manager.d.ts +6 -0
  44. package/dist/mcp/context-manager.js +8 -0
  45. package/dist/mcp/contracts/mcpContract.d.ts +1 -0
  46. package/dist/mcp/external-client.js +6 -2
  47. package/dist/mcp/initialize.d.ts +2 -1
  48. package/dist/mcp/initialize.js +8 -7
  49. package/dist/mcp/orchestrator.js +9 -0
  50. package/dist/mcp/plugins/core/neurolink-mcp.json +15 -15
  51. package/dist/mcp/registry.d.ts +1 -1
  52. package/dist/mcp/servers/ai-providers/ai-analysis-tools.js +1 -1
  53. package/dist/mcp/servers/ai-providers/ai-core-server.js +3 -3
  54. package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  55. package/dist/mcp/servers/ai-providers/ai-workflow-tools.js +1 -1
  56. package/dist/mcp/session-manager.js +1 -1
  57. package/dist/mcp/session-persistence.js +1 -1
  58. package/dist/mcp/tool-registry.d.ts +31 -11
  59. package/dist/mcp/tool-registry.js +226 -38
  60. package/dist/mcp/unified-mcp.d.ts +12 -2
  61. package/dist/mcp/unified-registry.d.ts +21 -7
  62. package/dist/mcp/unified-registry.js +179 -17
  63. package/dist/neurolink.js +17 -25
  64. package/dist/providers/googleVertexAI.js +19 -1
  65. package/dist/providers/openAI.js +18 -1
  66. package/dist/utils/provider-setup-messages.d.ts +8 -0
  67. package/dist/utils/provider-setup-messages.js +120 -0
  68. package/dist/utils/provider-validation.d.ts +35 -0
  69. package/dist/utils/provider-validation.js +625 -0
  70. package/dist/utils/providerUtils-fixed.js +20 -1
  71. package/dist/utils/providerUtils.d.ts +2 -2
  72. package/dist/utils/providerUtils.js +38 -7
  73. package/dist/utils/timeout-manager.d.ts +75 -0
  74. package/dist/utils/timeout-manager.js +244 -0
  75. package/package.json +245 -245
package/CHANGELOG.md CHANGED
@@ -1,9 +1,21 @@
1
- # [4.1.0](https://github.com/juspay/neurolink/compare/v4.0.0...v4.1.0) (2025-07-09)
1
+ # [4.2.0](https://github.com/juspay/neurolink/compare/v4.1.1...v4.2.0) (2025-07-11)
2
+
3
+
4
+ ### Features
5
+
6
+ * **mcp:** comprehensive MCP system enhancements with timeout management ([1d35b5e](https://github.com/juspay/neurolink/commit/1d35b5e12d03ce60bcdf0608749a1b99e8565567))
2
7
 
8
+ ## [4.1.1](https://github.com/juspay/neurolink/compare/v4.1.0...v4.1.1) (2025-07-10)
9
+
10
+ ### Bug Fixes
11
+
12
+ - **format:** fix formatting for all follow ([a49a94b](https://github.com/juspay/neurolink/commit/a49a94bf4d2e02cf1b1f7d4b555c3c71e25a0ea5))
13
+
14
+ # [4.1.0](https://github.com/juspay/neurolink/compare/v4.0.0...v4.1.0) (2025-07-09)
3
15
 
4
16
  ### Features
5
17
 
6
- * **mcp:** comprehensive MCP system overhaul with GitHub PR fixes ([c0d8114](https://github.com/juspay/neurolink/commit/c0d8114ef1ab2d5dd3162c369f234d0de17397f7))
18
+ - **mcp:** comprehensive MCP system overhaul with GitHub PR fixes ([c0d8114](https://github.com/juspay/neurolink/commit/c0d8114ef1ab2d5dd3162c369f234d0de17397f7))
7
19
 
8
20
  # [4.0.0](https://github.com/juspay/neurolink/compare/v3.0.1...v4.0.0) (2025-07-06)
9
21
 
package/README.md CHANGED
@@ -1,15 +1,4 @@
1
- # @juspay/neurolink
2
-
3
- <!-- TOC -->
4
-
5
- - [📄 License](#[object Object])
6
- - [🔗 Related Projects](#-related-projects)
7
- <!-- /TOC -->
8
-
9
- Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and deploy AI applications with 9 major providers: OpenAI, Anthropic, Google AI, AWS Bedrock, Azure, Hugging Face, Ollama, and Mistral AI.
10
-
11
- **Version:** 4.0.0
12
- **License:** MIT
1
+ # 🧠 NeuroLink
13
2
 
14
3
  [![NPM Version](https://img.shields.io/npm/v/@juspay/neurolink)](https://www.npmjs.com/package/@juspay/neurolink)
15
4
  [![Downloads](https://img.shields.io/npm/dm/@juspay/neurolink)](https://www.npmjs.com/package/@juspay/neurolink)
@@ -48,28 +37,28 @@ npm run config:validate
48
37
  ```typescript
49
38
  // Modern camelCase interfaces with rich context
50
39
  interface ExecutionContext {
51
- sessionId?: string;
52
- userId?: string;
53
- aiProvider?: string;
54
- permissions?: string[];
55
- cacheOptions?: CacheOptions;
56
- fallbackOptions?: FallbackOptions;
57
- metadata?: Record<string, unknown>;
40
+ sessionId?: string;
41
+ userId?: string;
42
+ aiProvider?: string;
43
+ permissions?: string[];
44
+ cacheOptions?: CacheOptions;
45
+ fallbackOptions?: FallbackOptions;
46
+ metadata?: Record<string, unknown>;
58
47
  }
59
48
 
60
49
  // Optional methods for maximum flexibility
61
50
  interface McpRegistry {
62
- registerServer?(
63
- serverId: string,
64
- config?: unknown,
65
- context?: ExecutionContext,
66
- ): Promise<void>;
67
- executeTool?<T>(
68
- toolName: string,
69
- args?: unknown,
70
- context?: ExecutionContext,
71
- ): Promise<T>;
72
- listTools?(context?: ExecutionContext): Promise<ToolInfo[]>;
51
+ registerServer?(
52
+ serverId: string,
53
+ config?: unknown,
54
+ context?: ExecutionContext,
55
+ ): Promise<void>;
56
+ executeTool?<T>(
57
+ toolName: string,
58
+ args?: unknown,
59
+ context?: ExecutionContext,
60
+ ): Promise<T>;
61
+ listTools?(context?: ExecutionContext): Promise<ToolInfo[]>;
73
62
  }
74
63
  ```
75
64
 
@@ -115,8 +104,8 @@ import { createBestAIProvider } from "@juspay/neurolink";
115
104
  // Auto-selects best available provider
116
105
  const provider = createBestAIProvider();
117
106
  const result = await provider.generateText({
118
- prompt: "Write a haiku about programming",
119
- timeout: "30s", // Optional: Set custom timeout (default: 30s)
107
+ prompt: "Write a haiku about programming",
108
+ timeout: "30s", // Optional: Set custom timeout (default: 30s)
120
109
  });
121
110
 
122
111
  console.log(result.text);
@@ -138,8 +127,8 @@ const provider = createBestAIProvider();
138
127
 
139
128
  // Detailed method name
140
129
  const story = await provider.generateText({
141
- prompt: "Write a short story about AI",
142
- maxTokens: 200,
130
+ prompt: "Write a short story about AI",
131
+ maxTokens: 200,
143
132
  });
144
133
 
145
134
  // CLI-style method names
@@ -177,10 +166,10 @@ const result = await neurolink.generateText("Write a story");
177
166
 
178
167
  // With enhancements (NEW!)
179
168
  const enhancedResult = await neurolink.generateText({
180
- prompt: "Write a business proposal",
181
- enableAnalytics: true, // Get usage & cost data
182
- enableEvaluation: true, // Get AI quality scores
183
- context: { project: "Q1-sales" }, // Custom context
169
+ prompt: "Write a business proposal",
170
+ enableAnalytics: true, // Get usage & cost data
171
+ enableEvaluation: true, // Get AI quality scores
172
+ context: { project: "Q1-sales" }, // Custom context
184
173
  });
185
174
 
186
175
  // Access enhancement data
@@ -190,25 +179,25 @@ console.log("Response:", enhancedResult.content);
190
179
 
191
180
  // 🆕 NEW: Enhanced Evaluation with Domain Awareness
192
181
  import {
193
- performEnhancedEvaluation,
194
- createEnhancedContext,
182
+ performEnhancedEvaluation,
183
+ createEnhancedContext,
195
184
  } from "@juspay/neurolink";
196
185
 
197
186
  const enhancedContext = createEnhancedContext(
198
- "Write a business proposal for Q1 expansion",
199
- enhancedResult.text,
200
- {
201
- domain: "Business development",
202
- role: "Business proposal assistant",
203
- toolsUsed: ["generate-text", "analytics-helper"],
204
- conversationHistory: [
205
- { role: "user", content: "I need help with our Q1 business plan" },
206
- {
207
- role: "assistant",
208
- content: "I can help you create a comprehensive plan",
209
- },
210
- ],
211
- },
187
+ "Write a business proposal for Q1 expansion",
188
+ enhancedResult.text,
189
+ {
190
+ domain: "Business development",
191
+ role: "Business proposal assistant",
192
+ toolsUsed: ["generate-text", "analytics-helper"],
193
+ conversationHistory: [
194
+ { role: "user", content: "I need help with our Q1 business plan" },
195
+ {
196
+ role: "assistant",
197
+ content: "I can help you create a comprehensive plan",
198
+ },
199
+ ],
200
+ },
212
201
  );
213
202
 
214
203
  const domainEvaluation = await performEnhancedEvaluation(enhancedContext);
@@ -226,39 +215,39 @@ console.log("🎯 Enhanced Evaluation:", domainEvaluation);
226
215
 
227
216
  ```typescript
228
217
  import {
229
- createEnhancedChatService,
230
- NeuroLinkWebSocketServer,
218
+ createEnhancedChatService,
219
+ NeuroLinkWebSocketServer,
231
220
  } from "@juspay/neurolink";
232
221
 
233
222
  // Enhanced chat with WebSocket support
234
223
  const chatService = createEnhancedChatService({
235
- provider: await createBestAIProvider(),
236
- enableWebSocket: true,
237
- enableSSE: true,
238
- streamingConfig: {
239
- bufferSize: 8192,
240
- compressionEnabled: true,
241
- },
224
+ provider: await createBestAIProvider(),
225
+ enableWebSocket: true,
226
+ enableSSE: true,
227
+ streamingConfig: {
228
+ bufferSize: 8192,
229
+ compressionEnabled: true,
230
+ },
242
231
  });
243
232
 
244
233
  // WebSocket server for real-time applications
245
234
  const wsServer = new NeuroLinkWebSocketServer({
246
- port: 8080,
247
- maxConnections: 1000,
248
- enableCompression: true,
235
+ port: 8080,
236
+ maxConnections: 1000,
237
+ enableCompression: true,
249
238
  });
250
239
 
251
240
  // Handle real-time chat
252
241
  wsServer.on("chat-message", async ({ connectionId, message }) => {
253
- await chatService.streamChat({
254
- prompt: message.data.prompt,
255
- onChunk: (chunk) => {
256
- wsServer.sendMessage(connectionId, {
257
- type: "ai-chunk",
258
- data: { chunk },
259
- });
260
- },
261
- });
242
+ await chatService.streamChat({
243
+ prompt: message.data.prompt,
244
+ onChunk: (chunk) => {
245
+ wsServer.sendMessage(connectionId, {
246
+ type: "ai-chunk",
247
+ data: { chunk },
248
+ });
249
+ },
250
+ });
262
251
  });
263
252
  ```
264
253
 
@@ -269,11 +258,11 @@ import { initializeTelemetry, getTelemetryStatus } from "@juspay/neurolink";
269
258
 
270
259
  // Optional enterprise monitoring (zero overhead when disabled)
271
260
  const telemetry = initializeTelemetry({
272
- serviceName: "my-ai-app",
273
- endpoint: "http://localhost:4318",
274
- enableTracing: true,
275
- enableMetrics: true,
276
- enableLogs: true,
261
+ serviceName: "my-ai-app",
262
+ endpoint: "http://localhost:4318",
263
+ enableTracing: true,
264
+ enableMetrics: true,
265
+ enableLogs: true,
277
266
  });
278
267
 
279
268
  // Check telemetry status
@@ -285,7 +274,7 @@ console.log("Version:", status.version);
285
274
  // All AI operations are now automatically monitored
286
275
  const provider = await createBestAIProvider();
287
276
  const result = await provider.generateText({
288
- prompt: "Generate business report",
277
+ prompt: "Generate business report",
289
278
  });
290
279
  // Telemetry automatically tracks: response time, token usage, cost, errors
291
280
  ```
@@ -433,34 +422,34 @@ npx @juspay/neurolink batch prompts.txt --timeout 45s --output results.json
433
422
  ```typescript
434
423
  // SvelteKit API route with timeout handling
435
424
  export const POST: RequestHandler = async ({ request }) => {
436
- const { message } = await request.json();
437
- const provider = createBestAIProvider();
438
-
439
- try {
440
- const result = await provider.streamText({
441
- prompt: message,
442
- timeout: "2m", // 2 minutes for streaming
443
- });
444
- return new Response(result.toReadableStream());
445
- } catch (error) {
446
- if (error.name === "TimeoutError") {
447
- return new Response("Request timed out", { status: 408 });
448
- }
449
- throw error;
450
- }
425
+ const { message } = await request.json();
426
+ const provider = createBestAIProvider();
427
+
428
+ try {
429
+ const result = await provider.streamText({
430
+ prompt: message,
431
+ timeout: "2m", // 2 minutes for streaming
432
+ });
433
+ return new Response(result.toReadableStream());
434
+ } catch (error) {
435
+ if (error.name === "TimeoutError") {
436
+ return new Response("Request timed out", { status: 408 });
437
+ }
438
+ throw error;
439
+ }
451
440
  };
452
441
 
453
442
  // Next.js API route with timeout
454
443
  export async function POST(request: NextRequest) {
455
- const { prompt } = await request.json();
456
- const provider = createBestAIProvider();
444
+ const { prompt } = await request.json();
445
+ const provider = createBestAIProvider();
457
446
 
458
- const result = await provider.generateText({
459
- prompt,
460
- timeout: process.env.AI_TIMEOUT || "30s", // Configurable timeout
461
- });
447
+ const result = await provider.generateText({
448
+ prompt,
449
+ timeout: process.env.AI_TIMEOUT || "30s", // Configurable timeout
450
+ });
462
451
 
463
- return NextResponse.json({ text: result.text });
452
+ return NextResponse.json({ text: result.text });
464
453
  }
465
454
  ```
466
455
 
@@ -559,27 +548,27 @@ const neurolink = new NeuroLink();
559
548
 
560
549
  // Add Bitbucket integration
561
550
  await neurolink.addMCPServer("bitbucket", {
562
- command: "npx",
563
- args: ["-y", "@nexus2520/bitbucket-mcp-server"],
564
- env: {
565
- BITBUCKET_USERNAME: "your-username",
566
- BITBUCKET_APP_PASSWORD: "your-app-password",
567
- },
551
+ command: "npx",
552
+ args: ["-y", "@nexus2520/bitbucket-mcp-server"],
553
+ env: {
554
+ BITBUCKET_USERNAME: "your-username",
555
+ BITBUCKET_APP_PASSWORD: "your-app-password",
556
+ },
568
557
  });
569
558
 
570
559
  // Add custom database connector
571
560
  await neurolink.addMCPServer("database", {
572
- command: "node",
573
- args: ["./custom-db-mcp-server.js"],
574
- env: { DB_CONNECTION_STRING: "postgresql://..." },
561
+ command: "node",
562
+ args: ["./custom-db-mcp-server.js"],
563
+ env: { DB_CONNECTION_STRING: "postgresql://..." },
575
564
  });
576
565
 
577
566
  // Add any MCP-compatible server
578
567
  await neurolink.addMCPServer("slack-integration", {
579
- command: "npx",
580
- args: ["-y", "@slack/mcp-server"],
581
- env: { SLACK_BOT_TOKEN: "xoxb-..." },
582
- cwd: "/tmp",
568
+ command: "npx",
569
+ args: ["-y", "@slack/mcp-server"],
570
+ env: { SLACK_BOT_TOKEN: "xoxb-..." },
571
+ cwd: "/tmp",
583
572
  });
584
573
 
585
574
  // Verify servers are registered
@@ -4,5 +4,16 @@
4
4
  * Real MCP server connectivity and management
5
5
  */
6
6
  import type { Argv } from "yargs";
7
+ interface MCPServerConfig {
8
+ name: string;
9
+ command: string;
10
+ args?: string[];
11
+ env?: Record<string, string>;
12
+ cwd?: string;
13
+ transport: "stdio" | "sse";
14
+ url?: string;
15
+ }
16
+ export declare function executeMCPTool(serverConfig: MCPServerConfig, toolName: string, toolParams: any): Promise<any>;
7
17
  export declare function mcpExecuteTool(serverName: string, toolName: string, toolParams: any): Promise<any>;
8
18
  export declare function addMCPCommands(yargs: Argv): Argv;
19
+ export {};