@juspay/neurolink 7.14.0 → 7.14.2
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 +12 -0
- package/dist/agent/directTools.d.ts +3 -3
- package/dist/agent/directTools.js +1 -1
- package/dist/cli/commands/mcp.js +67 -207
- package/dist/cli/factories/commandFactory.js +7 -1
- package/dist/cli/utils/interactiveSetup.js +1 -1
- package/dist/core/baseProvider.d.ts +6 -40
- package/dist/core/baseProvider.js +102 -75
- package/dist/core/dynamicModels.d.ts +14 -14
- package/dist/core/dynamicModels.js +1 -1
- package/dist/core/evaluation.js +1 -1
- package/dist/core/factory.js +1 -12
- package/dist/index.d.ts +23 -4
- package/dist/index.js +22 -1
- package/dist/lib/agent/directTools.js +1 -1
- package/dist/lib/core/baseProvider.d.ts +6 -40
- package/dist/lib/core/baseProvider.js +102 -75
- package/dist/lib/core/dynamicModels.js +1 -1
- package/dist/lib/core/evaluation.js +1 -1
- package/dist/lib/core/factory.js +1 -12
- package/dist/lib/index.d.ts +23 -4
- package/dist/lib/index.js +22 -1
- package/dist/lib/mcp/externalServerManager.d.ts +46 -13
- package/dist/lib/mcp/externalServerManager.js +393 -32
- package/dist/lib/mcp/mcpClientFactory.d.ts +5 -4
- package/dist/lib/mcp/mcpClientFactory.js +8 -3
- package/dist/lib/mcp/toolDiscoveryService.d.ts +1 -0
- package/dist/lib/mcp/toolDiscoveryService.js +76 -8
- package/dist/lib/mcp/toolRegistry.d.ts +15 -11
- package/dist/lib/mcp/toolRegistry.js +118 -55
- package/dist/lib/models/modelResolver.js +1 -1
- package/dist/lib/neurolink.d.ts +32 -31
- package/dist/lib/neurolink.js +173 -210
- package/dist/lib/providers/googleVertex.d.ts +6 -0
- package/dist/lib/providers/googleVertex.js +11 -0
- package/dist/lib/providers/huggingFace.js +1 -1
- package/dist/lib/providers/mistral.js +3 -3
- package/dist/lib/providers/ollama.js +1 -1
- package/dist/lib/providers/openAI.d.ts +3 -2
- package/dist/lib/providers/openAI.js +2 -2
- package/dist/lib/providers/openaiCompatible.d.ts +1 -1
- package/dist/lib/providers/openaiCompatible.js +2 -2
- package/dist/lib/providers/sagemaker/config.js +1 -1
- package/dist/lib/sdk/toolRegistration.d.ts +4 -13
- package/dist/lib/sdk/toolRegistration.js +19 -66
- package/dist/lib/types/cli.d.ts +0 -1
- package/dist/lib/types/cli.js +0 -1
- package/dist/lib/types/common.d.ts +1 -2
- package/dist/lib/types/common.js +0 -1
- package/dist/lib/types/contextTypes.d.ts +1 -1
- package/dist/lib/types/contextTypes.js +3 -3
- package/dist/lib/types/externalMcp.d.ts +6 -0
- package/dist/lib/types/externalMcp.js +1 -0
- package/dist/lib/types/index.d.ts +2 -3
- package/dist/lib/types/index.js +0 -1
- package/dist/lib/types/mcpTypes.d.ts +53 -99
- package/dist/lib/types/providers.d.ts +0 -1
- package/dist/lib/types/providers.js +0 -1
- package/dist/lib/types/tools.d.ts +2 -2
- package/dist/lib/types/tools.js +2 -2
- package/dist/lib/utils/factoryProcessing.js +1 -1
- package/dist/lib/utils/mcpDefaults.d.ts +54 -0
- package/dist/lib/utils/mcpDefaults.js +125 -0
- package/dist/lib/utils/providerConfig.d.ts +1 -1
- package/dist/lib/utils/providerConfig.js +2 -2
- package/dist/lib/utils/providerHealth.js +6 -6
- package/dist/mcp/externalServerManager.d.ts +46 -13
- package/dist/mcp/externalServerManager.js +393 -32
- package/dist/mcp/mcpClientFactory.d.ts +5 -4
- package/dist/mcp/mcpClientFactory.js +8 -3
- package/dist/mcp/toolDiscoveryService.d.ts +1 -0
- package/dist/mcp/toolDiscoveryService.js +76 -8
- package/dist/mcp/toolRegistry.d.ts +15 -11
- package/dist/mcp/toolRegistry.js +118 -55
- package/dist/models/modelResolver.js +1 -1
- package/dist/neurolink.d.ts +32 -31
- package/dist/neurolink.js +173 -210
- package/dist/providers/googleVertex.d.ts +6 -0
- package/dist/providers/googleVertex.js +11 -0
- package/dist/providers/huggingFace.js +1 -1
- package/dist/providers/mistral.js +3 -3
- package/dist/providers/ollama.js +1 -1
- package/dist/providers/openAI.d.ts +3 -2
- package/dist/providers/openAI.js +2 -2
- package/dist/providers/openaiCompatible.d.ts +1 -1
- package/dist/providers/openaiCompatible.js +2 -2
- package/dist/providers/sagemaker/config.js +1 -1
- package/dist/sdk/toolRegistration.d.ts +4 -13
- package/dist/sdk/toolRegistration.js +19 -66
- package/dist/types/cli.d.ts +0 -1
- package/dist/types/cli.js +0 -1
- package/dist/types/common.d.ts +1 -2
- package/dist/types/common.js +0 -1
- package/dist/types/contextTypes.d.ts +1 -1
- package/dist/types/contextTypes.js +3 -3
- package/dist/types/externalMcp.d.ts +6 -0
- package/dist/types/externalMcp.js +1 -0
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.js +0 -1
- package/dist/types/mcpTypes.d.ts +53 -99
- package/dist/types/providers.d.ts +0 -1
- package/dist/types/providers.js +0 -1
- package/dist/types/tools.d.ts +2 -2
- package/dist/types/tools.js +2 -2
- package/dist/utils/factoryProcessing.js +1 -1
- package/dist/utils/mcpDefaults.d.ts +54 -0
- package/dist/utils/mcpDefaults.js +125 -0
- package/dist/utils/providerConfig.d.ts +1 -1
- package/dist/utils/providerConfig.js +2 -2
- package/dist/utils/providerHealth.js +6 -6
- package/package.json +1 -1
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smart Defaults for MCPServerInfo Creation
|
|
3
|
+
* Eliminates boilerplate manual object creation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Smart category detection based on context
|
|
7
|
+
*/
|
|
8
|
+
export function detectCategory(context) {
|
|
9
|
+
// If category is already provided, validate and use it
|
|
10
|
+
if (context.existingCategory) {
|
|
11
|
+
const validCategories = [
|
|
12
|
+
"external",
|
|
13
|
+
"in-memory",
|
|
14
|
+
"built-in",
|
|
15
|
+
"user-defined",
|
|
16
|
+
];
|
|
17
|
+
if (validCategories.includes(context.existingCategory)) {
|
|
18
|
+
return context.existingCategory;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// Smart detection based on context
|
|
22
|
+
if (context.isCustomTool) {
|
|
23
|
+
return "user-defined";
|
|
24
|
+
}
|
|
25
|
+
if (context.isBuiltIn) {
|
|
26
|
+
return "built-in";
|
|
27
|
+
}
|
|
28
|
+
if (context.isExternal) {
|
|
29
|
+
return "external";
|
|
30
|
+
}
|
|
31
|
+
if (context.serverId?.startsWith("custom-tool-")) {
|
|
32
|
+
return "user-defined";
|
|
33
|
+
}
|
|
34
|
+
if (context.serverId?.includes("external")) {
|
|
35
|
+
return "external";
|
|
36
|
+
}
|
|
37
|
+
if (context.serverId === "direct") {
|
|
38
|
+
return "built-in";
|
|
39
|
+
}
|
|
40
|
+
// Default to in-memory for most cases
|
|
41
|
+
return "in-memory";
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Generate smart description based on name and category
|
|
45
|
+
*/
|
|
46
|
+
function generateDescription(name, category) {
|
|
47
|
+
// Generate descriptions based on category for better context
|
|
48
|
+
switch (category) {
|
|
49
|
+
case "external":
|
|
50
|
+
return `External MCP server: ${name}`;
|
|
51
|
+
case "built-in":
|
|
52
|
+
return `Built-in tool server: ${name}`;
|
|
53
|
+
case "custom":
|
|
54
|
+
case "user-defined":
|
|
55
|
+
return `Custom tool server: ${name}`;
|
|
56
|
+
case "in-memory":
|
|
57
|
+
return `In-memory MCP server: ${name}`;
|
|
58
|
+
default:
|
|
59
|
+
return name;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create MCPServerInfo with smart defaults
|
|
64
|
+
* Eliminates manual boilerplate object creation
|
|
65
|
+
*/
|
|
66
|
+
export function createMCPServerInfo(options) {
|
|
67
|
+
const id = options.id || `server-${options.name}`;
|
|
68
|
+
const category = options.category ||
|
|
69
|
+
detectCategory({
|
|
70
|
+
isCustomTool: options.isCustomTool,
|
|
71
|
+
isExternal: options.isExternal,
|
|
72
|
+
isBuiltIn: options.isBuiltIn,
|
|
73
|
+
serverId: id,
|
|
74
|
+
});
|
|
75
|
+
const tools = options.tools || (options.tool ? [options.tool] : []);
|
|
76
|
+
return {
|
|
77
|
+
id,
|
|
78
|
+
name: options.name,
|
|
79
|
+
transport: options.transport || "stdio",
|
|
80
|
+
status: options.status || "connected",
|
|
81
|
+
tools,
|
|
82
|
+
description: options.description || generateDescription(options.name, category),
|
|
83
|
+
...(options.command && { command: options.command }),
|
|
84
|
+
...(options.args && { args: options.args }),
|
|
85
|
+
...(options.env && { env: options.env }),
|
|
86
|
+
metadata: {
|
|
87
|
+
category: category,
|
|
88
|
+
toolCount: tools.length,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Create MCPServerInfo for custom tool registration
|
|
94
|
+
* Specialized version with smart defaults for registerTool usage
|
|
95
|
+
*/
|
|
96
|
+
export function createCustomToolServerInfo(toolName, tool) {
|
|
97
|
+
return createMCPServerInfo({
|
|
98
|
+
id: `custom-tool-${toolName}`,
|
|
99
|
+
name: toolName,
|
|
100
|
+
tool: {
|
|
101
|
+
name: toolName,
|
|
102
|
+
description: tool.description || toolName,
|
|
103
|
+
inputSchema: tool.inputSchema || {},
|
|
104
|
+
execute: tool.execute,
|
|
105
|
+
},
|
|
106
|
+
isCustomTool: true,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Create MCPServerInfo for external servers
|
|
111
|
+
* Specialized version with smart defaults for external server usage
|
|
112
|
+
*/
|
|
113
|
+
export function createExternalServerInfo(options) {
|
|
114
|
+
return createMCPServerInfo({
|
|
115
|
+
id: options.id,
|
|
116
|
+
name: options.name || options.id,
|
|
117
|
+
tools: options.tools || [],
|
|
118
|
+
transport: options.transport || "stdio",
|
|
119
|
+
description: options.description || options.name || options.id,
|
|
120
|
+
isExternal: true,
|
|
121
|
+
command: options.command,
|
|
122
|
+
args: options.args,
|
|
123
|
+
env: options.env,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
@@ -56,7 +56,7 @@ export declare function getProviderModel(envVar: string, defaultModel: string):
|
|
|
56
56
|
/**
|
|
57
57
|
* Checks if provider credentials are available
|
|
58
58
|
* @param envVars Array of environment variable names to check
|
|
59
|
-
* @returns True if
|
|
59
|
+
* @returns True if one of the credentials is available
|
|
60
60
|
*/
|
|
61
61
|
export declare function hasProviderCredentials(envVars: string[]): boolean;
|
|
62
62
|
/**
|
|
@@ -135,7 +135,7 @@ export function getProviderModel(envVar, defaultModel) {
|
|
|
135
135
|
/**
|
|
136
136
|
* Checks if provider credentials are available
|
|
137
137
|
* @param envVars Array of environment variable names to check
|
|
138
|
-
* @returns True if
|
|
138
|
+
* @returns True if one of the credentials is available
|
|
139
139
|
*/
|
|
140
140
|
export function hasProviderCredentials(envVars) {
|
|
141
141
|
return envVars.some((envVar) => !!process.env[envVar]);
|
|
@@ -286,7 +286,7 @@ export function createOpenAICompatibleConfig() {
|
|
|
286
286
|
"1. Set OPENAI_COMPATIBLE_BASE_URL to your endpoint (e.g., https://api.openrouter.ai/api/v1)",
|
|
287
287
|
"2. Get API key from your OpenAI-compatible service:",
|
|
288
288
|
" • OpenRouter: https://openrouter.ai/keys",
|
|
289
|
-
" • vLLM: Use
|
|
289
|
+
" • vLLM: Use a random value for local deployments",
|
|
290
290
|
" • LiteLLM: Check your LiteLLM server configuration",
|
|
291
291
|
"3. Set OPENAI_COMPATIBLE_API_KEY to your API key",
|
|
292
292
|
"4. Optionally set OPENAI_COMPATIBLE_MODEL (will auto-discover if not set)",
|
|
@@ -487,13 +487,13 @@ export class ProviderHealthChecker {
|
|
|
487
487
|
return provider;
|
|
488
488
|
}
|
|
489
489
|
}
|
|
490
|
-
// Fallback to
|
|
491
|
-
const
|
|
492
|
-
if (
|
|
493
|
-
logger.info(`Using fallback healthy provider: ${
|
|
494
|
-
return
|
|
490
|
+
// Fallback to first healthy provider
|
|
491
|
+
const firstHealthyProvider = healthStatuses.find((h) => h.isHealthy);
|
|
492
|
+
if (firstHealthyProvider) {
|
|
493
|
+
logger.info(`Using fallback healthy provider: ${firstHealthyProvider.provider}`);
|
|
494
|
+
return firstHealthyProvider.provider;
|
|
495
495
|
}
|
|
496
|
-
// Last resort:
|
|
496
|
+
// Last resort: first configured provider
|
|
497
497
|
const anyConfigured = healthStatuses.find((h) => h.isConfigured);
|
|
498
498
|
if (anyConfigured) {
|
|
499
499
|
logger.warn(`Using configured but potentially unhealthy provider: ${anyConfigured.provider}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juspay/neurolink",
|
|
3
|
-
"version": "7.14.
|
|
3
|
+
"version": "7.14.2",
|
|
4
4
|
"description": "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.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Juspay Technologies",
|