@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.
- package/CHANGELOG.md +14 -2
- package/README.md +105 -116
- package/dist/cli/commands/mcp.d.ts +11 -0
- package/dist/cli/commands/mcp.js +332 -223
- package/dist/cli/index.js +69 -8
- package/dist/core/factory.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/core/factory.js +2 -2
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +1 -1
- package/dist/lib/mcp/context-manager.d.ts +6 -0
- package/dist/lib/mcp/context-manager.js +8 -0
- package/dist/lib/mcp/contracts/mcpContract.d.ts +1 -0
- package/dist/lib/mcp/external-client.js +6 -2
- package/dist/lib/mcp/initialize.d.ts +2 -1
- package/dist/lib/mcp/initialize.js +8 -7
- package/dist/lib/mcp/orchestrator.js +9 -0
- package/dist/lib/mcp/registry.d.ts +1 -1
- package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.js +1 -1
- package/dist/lib/mcp/servers/ai-providers/ai-core-server.js +3 -3
- package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
- package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.js +1 -1
- package/dist/lib/mcp/session-manager.js +1 -1
- package/dist/lib/mcp/session-persistence.js +1 -1
- package/dist/lib/mcp/tool-registry.d.ts +31 -11
- package/dist/lib/mcp/tool-registry.js +226 -38
- package/dist/lib/mcp/unified-mcp.d.ts +12 -2
- package/dist/lib/mcp/unified-registry.d.ts +21 -7
- package/dist/lib/mcp/unified-registry.js +179 -17
- package/dist/lib/neurolink.js +17 -25
- package/dist/lib/providers/googleVertexAI.js +19 -1
- package/dist/lib/providers/openAI.js +18 -1
- package/dist/lib/utils/provider-setup-messages.d.ts +8 -0
- package/dist/lib/utils/provider-setup-messages.js +120 -0
- package/dist/lib/utils/provider-validation.d.ts +35 -0
- package/dist/lib/utils/provider-validation.js +625 -0
- package/dist/lib/utils/providerUtils-fixed.js +20 -1
- package/dist/lib/utils/providerUtils.d.ts +2 -2
- package/dist/lib/utils/providerUtils.js +38 -7
- package/dist/lib/utils/timeout-manager.d.ts +75 -0
- package/dist/lib/utils/timeout-manager.js +244 -0
- package/dist/mcp/context-manager.d.ts +6 -0
- package/dist/mcp/context-manager.js +8 -0
- package/dist/mcp/contracts/mcpContract.d.ts +1 -0
- package/dist/mcp/external-client.js +6 -2
- package/dist/mcp/initialize.d.ts +2 -1
- package/dist/mcp/initialize.js +8 -7
- package/dist/mcp/orchestrator.js +9 -0
- package/dist/mcp/plugins/core/neurolink-mcp.json +15 -15
- package/dist/mcp/registry.d.ts +1 -1
- package/dist/mcp/servers/ai-providers/ai-analysis-tools.js +1 -1
- package/dist/mcp/servers/ai-providers/ai-core-server.js +3 -3
- package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
- package/dist/mcp/servers/ai-providers/ai-workflow-tools.js +1 -1
- package/dist/mcp/session-manager.js +1 -1
- package/dist/mcp/session-persistence.js +1 -1
- package/dist/mcp/tool-registry.d.ts +31 -11
- package/dist/mcp/tool-registry.js +226 -38
- package/dist/mcp/unified-mcp.d.ts +12 -2
- package/dist/mcp/unified-registry.d.ts +21 -7
- package/dist/mcp/unified-registry.js +179 -17
- package/dist/neurolink.js +17 -25
- package/dist/providers/googleVertexAI.js +19 -1
- package/dist/providers/openAI.js +18 -1
- package/dist/utils/provider-setup-messages.d.ts +8 -0
- package/dist/utils/provider-setup-messages.js +120 -0
- package/dist/utils/provider-validation.d.ts +35 -0
- package/dist/utils/provider-validation.js +625 -0
- package/dist/utils/providerUtils-fixed.js +20 -1
- package/dist/utils/providerUtils.d.ts +2 -2
- package/dist/utils/providerUtils.js +38 -7
- package/dist/utils/timeout-manager.d.ts +75 -0
- package/dist/utils/timeout-manager.js +244 -0
- package/package.json +245 -245
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
# [4.
|
|
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
|
-
|
|
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
|
-
#
|
|
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
|
[](https://www.npmjs.com/package/@juspay/neurolink)
|
|
15
4
|
[](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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
119
|
-
|
|
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
|
-
|
|
142
|
-
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
-
|
|
194
|
-
|
|
182
|
+
performEnhancedEvaluation,
|
|
183
|
+
createEnhancedContext,
|
|
195
184
|
} from "@juspay/neurolink";
|
|
196
185
|
|
|
197
186
|
const enhancedContext = createEnhancedContext(
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
-
|
|
230
|
-
|
|
218
|
+
createEnhancedChatService,
|
|
219
|
+
NeuroLinkWebSocketServer,
|
|
231
220
|
} from "@juspay/neurolink";
|
|
232
221
|
|
|
233
222
|
// Enhanced chat with WebSocket support
|
|
234
223
|
const chatService = createEnhancedChatService({
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
-
|
|
247
|
-
|
|
248
|
-
|
|
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
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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
|
-
|
|
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
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
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
|
-
|
|
456
|
-
|
|
444
|
+
const { prompt } = await request.json();
|
|
445
|
+
const provider = createBestAIProvider();
|
|
457
446
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
447
|
+
const result = await provider.generateText({
|
|
448
|
+
prompt,
|
|
449
|
+
timeout: process.env.AI_TIMEOUT || "30s", // Configurable timeout
|
|
450
|
+
});
|
|
462
451
|
|
|
463
|
-
|
|
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
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
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
|
-
|
|
573
|
-
|
|
574
|
-
|
|
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
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
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 {};
|