@juspay/neurolink 7.6.1 → 7.7.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.
- package/CHANGELOG.md +15 -4
- package/README.md +78 -3
- package/dist/cli/commands/config.d.ts +275 -3
- package/dist/cli/commands/config.js +121 -0
- package/dist/cli/commands/mcp.js +77 -28
- package/dist/cli/factories/commandFactory.js +359 -6
- package/dist/core/analytics.js +7 -27
- package/dist/core/baseProvider.js +43 -4
- package/dist/core/constants.d.ts +46 -0
- package/dist/core/constants.js +47 -0
- package/dist/core/dynamicModels.d.ts +16 -4
- package/dist/core/dynamicModels.js +130 -26
- package/dist/core/evaluation.js +5 -1
- package/dist/core/evaluationProviders.d.ts +6 -2
- package/dist/core/evaluationProviders.js +41 -125
- package/dist/core/factory.d.ts +5 -0
- package/dist/core/factory.js +62 -50
- package/dist/core/modelConfiguration.d.ts +246 -0
- package/dist/core/modelConfiguration.js +775 -0
- package/dist/core/types.d.ts +22 -3
- package/dist/core/types.js +5 -1
- package/dist/factories/providerRegistry.js +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/core/analytics.js +7 -27
- package/dist/lib/core/baseProvider.js +43 -4
- package/dist/lib/core/constants.d.ts +46 -0
- package/dist/lib/core/constants.js +47 -0
- package/dist/lib/core/dynamicModels.d.ts +16 -4
- package/dist/lib/core/dynamicModels.js +130 -26
- package/dist/lib/core/evaluation.js +5 -1
- package/dist/lib/core/evaluationProviders.d.ts +6 -2
- package/dist/lib/core/evaluationProviders.js +41 -125
- package/dist/lib/core/factory.d.ts +5 -0
- package/dist/lib/core/factory.js +63 -50
- package/dist/lib/core/modelConfiguration.d.ts +246 -0
- package/dist/lib/core/modelConfiguration.js +775 -0
- package/dist/lib/core/types.d.ts +22 -3
- package/dist/lib/core/types.js +5 -1
- package/dist/lib/factories/providerRegistry.js +3 -3
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +1 -1
- package/dist/lib/mcp/factory.d.ts +5 -5
- package/dist/lib/mcp/factory.js +2 -2
- package/dist/lib/mcp/servers/utilities/utilityServer.d.ts +1 -1
- package/dist/lib/mcp/servers/utilities/utilityServer.js +1 -1
- package/dist/lib/mcp/toolRegistry.js +2 -2
- package/dist/lib/neurolink.d.ts +168 -12
- package/dist/lib/neurolink.js +685 -123
- package/dist/lib/providers/anthropic.js +52 -2
- package/dist/lib/providers/googleAiStudio.js +4 -0
- package/dist/lib/providers/googleVertex.d.ts +75 -9
- package/dist/lib/providers/googleVertex.js +365 -46
- package/dist/lib/providers/huggingFace.d.ts +52 -11
- package/dist/lib/providers/huggingFace.js +180 -42
- package/dist/lib/providers/litellm.d.ts +9 -9
- package/dist/lib/providers/litellm.js +103 -16
- package/dist/lib/providers/ollama.d.ts +52 -17
- package/dist/lib/providers/ollama.js +276 -68
- package/dist/lib/sdk/toolRegistration.d.ts +42 -0
- package/dist/lib/sdk/toolRegistration.js +269 -27
- package/dist/lib/telemetry/telemetryService.d.ts +6 -0
- package/dist/lib/telemetry/telemetryService.js +38 -3
- package/dist/lib/types/contextTypes.d.ts +75 -11
- package/dist/lib/types/contextTypes.js +227 -1
- package/dist/lib/types/domainTypes.d.ts +62 -0
- package/dist/lib/types/domainTypes.js +5 -0
- package/dist/lib/types/generateTypes.d.ts +52 -0
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/mcpTypes.d.ts +1 -1
- package/dist/lib/types/mcpTypes.js +1 -1
- package/dist/lib/types/streamTypes.d.ts +14 -0
- package/dist/lib/types/universalProviderOptions.d.ts +1 -1
- package/dist/lib/utils/errorHandling.d.ts +142 -0
- package/dist/lib/utils/errorHandling.js +316 -0
- package/dist/lib/utils/factoryProcessing.d.ts +74 -0
- package/dist/lib/utils/factoryProcessing.js +588 -0
- package/dist/lib/utils/optionsConversion.d.ts +54 -0
- package/dist/lib/utils/optionsConversion.js +126 -0
- package/dist/lib/utils/optionsUtils.d.ts +246 -0
- package/dist/lib/utils/optionsUtils.js +960 -0
- package/dist/lib/utils/providerConfig.js +6 -2
- package/dist/lib/utils/providerHealth.d.ts +107 -0
- package/dist/lib/utils/providerHealth.js +543 -0
- package/dist/lib/utils/providerUtils.d.ts +17 -0
- package/dist/lib/utils/providerUtils.js +271 -16
- package/dist/lib/utils/timeout.js +1 -1
- package/dist/lib/utils/tokenLimits.d.ts +33 -0
- package/dist/lib/utils/tokenLimits.js +118 -0
- package/dist/mcp/factory.d.ts +5 -5
- package/dist/mcp/factory.js +2 -2
- package/dist/mcp/servers/utilities/utilityServer.d.ts +1 -1
- package/dist/mcp/servers/utilities/utilityServer.js +1 -1
- package/dist/mcp/toolRegistry.js +2 -2
- package/dist/neurolink.d.ts +168 -12
- package/dist/neurolink.js +685 -123
- package/dist/providers/anthropic.js +52 -2
- package/dist/providers/googleAiStudio.js +4 -0
- package/dist/providers/googleVertex.d.ts +75 -9
- package/dist/providers/googleVertex.js +365 -46
- package/dist/providers/huggingFace.d.ts +52 -11
- package/dist/providers/huggingFace.js +181 -43
- package/dist/providers/litellm.d.ts +9 -9
- package/dist/providers/litellm.js +103 -16
- package/dist/providers/ollama.d.ts +52 -17
- package/dist/providers/ollama.js +276 -68
- package/dist/sdk/toolRegistration.d.ts +42 -0
- package/dist/sdk/toolRegistration.js +269 -27
- package/dist/telemetry/telemetryService.d.ts +6 -0
- package/dist/telemetry/telemetryService.js +38 -3
- package/dist/types/contextTypes.d.ts +75 -11
- package/dist/types/contextTypes.js +227 -2
- package/dist/types/domainTypes.d.ts +62 -0
- package/dist/types/domainTypes.js +5 -0
- package/dist/types/generateTypes.d.ts +52 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/mcpTypes.d.ts +1 -1
- package/dist/types/mcpTypes.js +1 -1
- package/dist/types/streamTypes.d.ts +14 -0
- package/dist/types/universalProviderOptions.d.ts +1 -1
- package/dist/types/universalProviderOptions.js +0 -1
- package/dist/utils/errorHandling.d.ts +142 -0
- package/dist/utils/errorHandling.js +316 -0
- package/dist/utils/factoryProcessing.d.ts +74 -0
- package/dist/utils/factoryProcessing.js +588 -0
- package/dist/utils/optionsConversion.d.ts +54 -0
- package/dist/utils/optionsConversion.js +126 -0
- package/dist/utils/optionsUtils.d.ts +246 -0
- package/dist/utils/optionsUtils.js +960 -0
- package/dist/utils/providerConfig.js +6 -2
- package/dist/utils/providerHealth.d.ts +107 -0
- package/dist/utils/providerHealth.js +543 -0
- package/dist/utils/providerUtils.d.ts +17 -0
- package/dist/utils/providerUtils.js +271 -16
- package/dist/utils/timeout.js +1 -1
- package/dist/utils/tokenLimits.d.ts +33 -0
- package/dist/utils/tokenLimits.js +118 -0
- package/package.json +2 -2
package/dist/lib/core/types.d.ts
CHANGED
|
@@ -77,12 +77,16 @@ export declare enum OpenAIModels {
|
|
|
77
77
|
*/
|
|
78
78
|
export declare enum VertexModels {
|
|
79
79
|
CLAUDE_4_0_SONNET = "claude-sonnet-4@20250514",
|
|
80
|
-
|
|
80
|
+
GEMINI_2_0_FLASH_001 = "gemini-2.0-flash-001",
|
|
81
|
+
GEMINI_2_5_PRO = "gemini-2.5-pro",
|
|
82
|
+
GEMINI_2_5_FLASH = "gemini-2.5-flash",
|
|
83
|
+
GEMINI_2_5_FLASH_LITE = "gemini-2.5-flash-lite"
|
|
81
84
|
}
|
|
82
85
|
/**
|
|
83
86
|
* Supported Models for Google AI Studio
|
|
84
87
|
*/
|
|
85
88
|
export declare enum GoogleAIModels {
|
|
89
|
+
GEMINI_2_0_FLASH_001 = "gemini-2.0-flash-001",
|
|
86
90
|
GEMINI_2_5_PRO = "gemini-2.5-pro",
|
|
87
91
|
GEMINI_2_5_FLASH = "gemini-2.5-flash",
|
|
88
92
|
GEMINI_1_5_FLASH_LITE = "gemini-2.5-flash-lite"
|
|
@@ -152,8 +156,8 @@ export interface AnalyticsData {
|
|
|
152
156
|
context?: Record<string, JsonValue>;
|
|
153
157
|
}
|
|
154
158
|
/**
|
|
155
|
-
* Response quality evaluation scores
|
|
156
|
-
*
|
|
159
|
+
* Response quality evaluation scores
|
|
160
|
+
* Comprehensive evaluation interface for response quality assessment
|
|
157
161
|
*/
|
|
158
162
|
export interface EvaluationData {
|
|
159
163
|
relevance: number;
|
|
@@ -169,6 +173,7 @@ export interface EvaluationData {
|
|
|
169
173
|
suggestedImprovements?: string;
|
|
170
174
|
evaluationModel: string;
|
|
171
175
|
evaluationTime: number;
|
|
176
|
+
evaluationDomain?: string;
|
|
172
177
|
evaluationProvider?: string;
|
|
173
178
|
evaluationAttempt?: number;
|
|
174
179
|
evaluationConfig?: {
|
|
@@ -176,6 +181,20 @@ export interface EvaluationData {
|
|
|
176
181
|
fallbackUsed: boolean;
|
|
177
182
|
costEstimate: number;
|
|
178
183
|
};
|
|
184
|
+
domainConfig?: {
|
|
185
|
+
domainName: string;
|
|
186
|
+
domainDescription: string;
|
|
187
|
+
keyTerms: string[];
|
|
188
|
+
failurePatterns: string[];
|
|
189
|
+
successPatterns: string[];
|
|
190
|
+
evaluationCriteria?: Record<string, unknown>;
|
|
191
|
+
};
|
|
192
|
+
domainEvaluation?: {
|
|
193
|
+
domainRelevance: number;
|
|
194
|
+
terminologyAccuracy: number;
|
|
195
|
+
domainExpertise: number;
|
|
196
|
+
domainSpecificInsights: string[];
|
|
197
|
+
};
|
|
179
198
|
}
|
|
180
199
|
/**
|
|
181
200
|
* BACKWARD COMPATIBILITY: Legacy evaluation interface
|
package/dist/lib/core/types.js
CHANGED
|
@@ -43,13 +43,17 @@ export var OpenAIModels;
|
|
|
43
43
|
export var VertexModels;
|
|
44
44
|
(function (VertexModels) {
|
|
45
45
|
VertexModels["CLAUDE_4_0_SONNET"] = "claude-sonnet-4@20250514";
|
|
46
|
-
VertexModels["
|
|
46
|
+
VertexModels["GEMINI_2_0_FLASH_001"] = "gemini-2.0-flash-001";
|
|
47
|
+
VertexModels["GEMINI_2_5_PRO"] = "gemini-2.5-pro";
|
|
48
|
+
VertexModels["GEMINI_2_5_FLASH"] = "gemini-2.5-flash";
|
|
49
|
+
VertexModels["GEMINI_2_5_FLASH_LITE"] = "gemini-2.5-flash-lite";
|
|
47
50
|
})(VertexModels || (VertexModels = {}));
|
|
48
51
|
/**
|
|
49
52
|
* Supported Models for Google AI Studio
|
|
50
53
|
*/
|
|
51
54
|
export var GoogleAIModels;
|
|
52
55
|
(function (GoogleAIModels) {
|
|
56
|
+
GoogleAIModels["GEMINI_2_0_FLASH_001"] = "gemini-2.0-flash-001";
|
|
53
57
|
GoogleAIModels["GEMINI_2_5_PRO"] = "gemini-2.5-pro";
|
|
54
58
|
GoogleAIModels["GEMINI_2_5_FLASH"] = "gemini-2.5-flash";
|
|
55
59
|
GoogleAIModels["GEMINI_1_5_FLASH_LITE"] = "gemini-2.5-flash-lite";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProviderFactory } from "./providerFactory.js";
|
|
2
|
-
//
|
|
2
|
+
// Lazy loading all providers to avoid circular dependencies
|
|
3
3
|
// Removed all static imports - providers loaded dynamically when needed
|
|
4
4
|
// This breaks the circular dependency chain completely
|
|
5
5
|
import { AIProviderName, GoogleAIModels, OpenAIModels } from "../core/types.js";
|
|
@@ -21,7 +21,7 @@ export class ProviderRegistry {
|
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
try {
|
|
24
|
-
//
|
|
24
|
+
// Register providers with dynamic import factory functions
|
|
25
25
|
const { ProviderFactory } = await import("./providerFactory.js");
|
|
26
26
|
// Register Google AI Studio Provider (our validated baseline)
|
|
27
27
|
ProviderFactory.registerProvider(AIProviderName.GOOGLE_AI, async (modelName, providerName, sdk) => {
|
|
@@ -55,7 +55,7 @@ export class ProviderRegistry {
|
|
|
55
55
|
ProviderFactory.registerProvider(AIProviderName.VERTEX, async (modelName) => {
|
|
56
56
|
const { GoogleVertexProvider } = await import("../providers/googleVertex.js");
|
|
57
57
|
return new GoogleVertexProvider(modelName);
|
|
58
|
-
}, "gemini-2.5-
|
|
58
|
+
}, "gemini-2.5-flash", ["vertex", "googleVertex"]);
|
|
59
59
|
// Register Hugging Face provider (Unified Router implementation)
|
|
60
60
|
ProviderFactory.registerProvider(AIProviderName.HUGGINGFACE, async (modelName) => {
|
|
61
61
|
const { HuggingFaceProvider } = await import("../providers/huggingFace.js");
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* A unified AI provider interface with support for multiple providers,
|
|
5
5
|
* automatic fallback, streaming, and tool integration.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Provides comprehensive AI functionality with proven patterns.
|
|
8
8
|
*/
|
|
9
9
|
import { AIProviderFactory } from "./core/factory.js";
|
|
10
10
|
export { AIProviderFactory };
|
package/dist/lib/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* A unified AI provider interface with support for multiple providers,
|
|
5
5
|
* automatic fallback, streaming, and tool integration.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Provides comprehensive AI functionality with proven patterns.
|
|
8
8
|
*/
|
|
9
9
|
// Core exports
|
|
10
10
|
import { AIProviderFactory } from "./core/factory.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NeuroLink MCP Server Factory
|
|
3
3
|
* Factory-First Architecture: MCP servers create tools for internal orchestration
|
|
4
|
-
* Compatible with
|
|
4
|
+
* Compatible with MCP patterns for seamless integration
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import type { ExecutionContext } from "./contracts/mcpContract.js";
|
|
@@ -11,7 +11,7 @@ import type { ExecutionContext } from "./contracts/mcpContract.js";
|
|
|
11
11
|
export type MCPServerCategory = "aiProviders" | "frameworks" | "development" | "business" | "content" | "data" | "integrations" | "automation" | "analysis" | "custom";
|
|
12
12
|
/**
|
|
13
13
|
* Tool execution context - Rich context passed to every tool execution
|
|
14
|
-
* Following
|
|
14
|
+
* Following standard patterns for rich tool context
|
|
15
15
|
* Extends ExecutionContext for compatibility
|
|
16
16
|
*/
|
|
17
17
|
export interface NeuroLinkExecutionContext extends ExecutionContext {
|
|
@@ -71,7 +71,7 @@ export interface ToolResult {
|
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
|
-
* MCP Tool Interface -
|
|
74
|
+
* MCP Tool Interface - Standard compatible with NeuroLink enhancements
|
|
75
75
|
*/
|
|
76
76
|
export interface NeuroLinkMCPTool {
|
|
77
77
|
name: string;
|
|
@@ -86,7 +86,7 @@ export interface NeuroLinkMCPTool {
|
|
|
86
86
|
metadata?: Record<string, unknown>;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
* MCP Server Interface -
|
|
89
|
+
* MCP Server Interface - Standard compatible
|
|
90
90
|
*/
|
|
91
91
|
export interface NeuroLinkMCPServer {
|
|
92
92
|
id: string;
|
|
@@ -118,7 +118,7 @@ export interface MCPServerConfig {
|
|
|
118
118
|
/**
|
|
119
119
|
* Create MCP Server Factory Function
|
|
120
120
|
*
|
|
121
|
-
* Core factory function for creating
|
|
121
|
+
* Core factory function for creating MCP servers.
|
|
122
122
|
* Follows Factory-First architecture where tools are internal implementation.
|
|
123
123
|
*
|
|
124
124
|
* @param config Server configuration with minimal required fields
|
package/dist/lib/mcp/factory.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NeuroLink MCP Server Factory
|
|
3
3
|
* Factory-First Architecture: MCP servers create tools for internal orchestration
|
|
4
|
-
* Compatible with
|
|
4
|
+
* Compatible with MCP patterns for seamless integration
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
/**
|
|
@@ -34,7 +34,7 @@ const ServerConfigSchema = z.object({
|
|
|
34
34
|
/**
|
|
35
35
|
* Create MCP Server Factory Function
|
|
36
36
|
*
|
|
37
|
-
* Core factory function for creating
|
|
37
|
+
* Core factory function for creating MCP servers.
|
|
38
38
|
* Follows Factory-First architecture where tools are internal implementation.
|
|
39
39
|
*
|
|
40
40
|
* @param config Server configuration with minimal required fields
|
|
@@ -19,7 +19,7 @@ export class MCPToolRegistry extends MCPRegistry {
|
|
|
19
19
|
* Register all direct tools from directAgentTools
|
|
20
20
|
*/
|
|
21
21
|
registerDirectTools() {
|
|
22
|
-
registryLogger.
|
|
22
|
+
registryLogger.debug("Auto-registering direct tools...");
|
|
23
23
|
for (const [toolName, toolDef] of Object.entries(directAgentTools)) {
|
|
24
24
|
const toolId = `direct.${toolName}`;
|
|
25
25
|
const toolInfo = {
|
|
@@ -67,7 +67,7 @@ export class MCPToolRegistry extends MCPRegistry {
|
|
|
67
67
|
});
|
|
68
68
|
registryLogger.debug(`Registered direct tool: ${toolName} as ${toolId}`);
|
|
69
69
|
}
|
|
70
|
-
registryLogger.
|
|
70
|
+
registryLogger.debug(`Auto-registered ${Object.keys(directAgentTools).length} direct tools`);
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
73
|
* Register a server with its tools (updated signature)
|
package/dist/lib/neurolink.d.ts
CHANGED
|
@@ -43,6 +43,8 @@ export declare class NeuroLink {
|
|
|
43
43
|
private mcpInitialized;
|
|
44
44
|
private customTools;
|
|
45
45
|
private inMemoryServers;
|
|
46
|
+
private toolCircuitBreakers;
|
|
47
|
+
private toolExecutionMetrics;
|
|
46
48
|
constructor();
|
|
47
49
|
/**
|
|
48
50
|
* Initialize MCP registry with enhanced error handling and resource cleanup
|
|
@@ -80,6 +82,15 @@ export declare class NeuroLink {
|
|
|
80
82
|
* Create tool-aware system prompt that informs AI about available tools
|
|
81
83
|
*/
|
|
82
84
|
private createToolAwareSystemPrompt;
|
|
85
|
+
/**
|
|
86
|
+
* Execute tools if available through centralized registry
|
|
87
|
+
* Simplified approach without domain detection - relies on tool registry
|
|
88
|
+
*/
|
|
89
|
+
private detectAndExecuteTools;
|
|
90
|
+
/**
|
|
91
|
+
* Enhance prompt with tool results (domain-agnostic)
|
|
92
|
+
*/
|
|
93
|
+
private enhancePromptWithToolResults;
|
|
83
94
|
/**
|
|
84
95
|
* BACKWARD COMPATIBILITY: Legacy streamText method
|
|
85
96
|
* Internally calls stream() and converts result format
|
|
@@ -97,10 +108,16 @@ export declare class NeuroLink {
|
|
|
97
108
|
*/
|
|
98
109
|
registerTool(name: string, tool: SimpleTool): void;
|
|
99
110
|
/**
|
|
100
|
-
* Register multiple tools at once
|
|
101
|
-
* @param tools - Object mapping tool names to configurations
|
|
111
|
+
* Register multiple tools at once - Supports both object and array formats
|
|
112
|
+
* @param tools - Object mapping tool names to configurations OR Array of tools with names
|
|
113
|
+
*
|
|
114
|
+
* Object format (existing): { toolName: SimpleTool, ... }
|
|
115
|
+
* Array format (Lighthouse compatible): [{ name: string, tool: SimpleTool }, ...]
|
|
102
116
|
*/
|
|
103
|
-
registerTools(tools: Record<string, SimpleTool>
|
|
117
|
+
registerTools(tools: Record<string, SimpleTool> | Array<{
|
|
118
|
+
name: string;
|
|
119
|
+
tool: SimpleTool;
|
|
120
|
+
}>): void;
|
|
104
121
|
/**
|
|
105
122
|
* Unregister a custom tool
|
|
106
123
|
* @param name - Name of the tool to remove
|
|
@@ -125,8 +142,8 @@ export declare class NeuroLink {
|
|
|
125
142
|
*/
|
|
126
143
|
getInMemoryServers(): Map<string, InMemoryMCPServerConfig>;
|
|
127
144
|
/**
|
|
128
|
-
* Execute a specific tool by name
|
|
129
|
-
* Supports both custom tools and MCP server tools
|
|
145
|
+
* Execute a specific tool by name with robust error handling
|
|
146
|
+
* Supports both custom tools and MCP server tools with timeout, retry, and circuit breaker patterns
|
|
130
147
|
* @param toolName - Name of the tool to execute
|
|
131
148
|
* @param params - Parameters to pass to the tool
|
|
132
149
|
* @param options - Execution options
|
|
@@ -134,12 +151,33 @@ export declare class NeuroLink {
|
|
|
134
151
|
*/
|
|
135
152
|
executeTool<T = unknown>(toolName: string, params?: unknown, options?: {
|
|
136
153
|
timeout?: number;
|
|
154
|
+
maxRetries?: number;
|
|
155
|
+
retryDelayMs?: number;
|
|
137
156
|
}): Promise<T>;
|
|
157
|
+
/**
|
|
158
|
+
* Internal tool execution method (extracted for better error handling)
|
|
159
|
+
*/
|
|
160
|
+
private executeToolInternal;
|
|
138
161
|
/**
|
|
139
162
|
* Get all available tools including custom and in-memory ones
|
|
140
163
|
* @returns Array of available tools with metadata
|
|
141
164
|
*/
|
|
142
|
-
getAllAvailableTools(): Promise<
|
|
165
|
+
getAllAvailableTools(): Promise<({
|
|
166
|
+
toolName: string;
|
|
167
|
+
serverId: string | undefined;
|
|
168
|
+
name: string;
|
|
169
|
+
description?: string;
|
|
170
|
+
category?: string;
|
|
171
|
+
inputSchema?: Record<string, unknown>;
|
|
172
|
+
outputSchema?: Record<string, unknown>;
|
|
173
|
+
} | {
|
|
174
|
+
name: string;
|
|
175
|
+
toolName: string;
|
|
176
|
+
description: string;
|
|
177
|
+
serverId: string;
|
|
178
|
+
category: string;
|
|
179
|
+
inputSchema: {};
|
|
180
|
+
})[]>;
|
|
143
181
|
/**
|
|
144
182
|
* Get comprehensive status of all AI providers
|
|
145
183
|
* Primary method for provider health checking and diagnostics
|
|
@@ -157,12 +195,6 @@ export declare class NeuroLink {
|
|
|
157
195
|
* Internal method to test provider connection with minimal generation call
|
|
158
196
|
*/
|
|
159
197
|
private testProviderConnection;
|
|
160
|
-
/**
|
|
161
|
-
* Check if a provider has required environment variables configured
|
|
162
|
-
* @param providerName - Name of the provider to check
|
|
163
|
-
* @returns True if provider has required environment variables
|
|
164
|
-
*/
|
|
165
|
-
hasProviderEnvVars(providerName: string): Promise<boolean>;
|
|
166
198
|
/**
|
|
167
199
|
* Get the best available AI provider based on configuration and availability
|
|
168
200
|
* @param requestedProvider - Optional preferred provider name
|
|
@@ -196,6 +228,130 @@ export declare class NeuroLink {
|
|
|
196
228
|
* @returns Promise resolving to true if server is reachable
|
|
197
229
|
*/
|
|
198
230
|
testMCPServer(serverId: string): Promise<boolean>;
|
|
231
|
+
/**
|
|
232
|
+
* Check if a provider has the required environment variables configured
|
|
233
|
+
* @param providerName - Name of the provider to check
|
|
234
|
+
* @returns Promise resolving to true if provider has required env vars
|
|
235
|
+
*/
|
|
236
|
+
hasProviderEnvVars(providerName: string): Promise<boolean>;
|
|
237
|
+
/**
|
|
238
|
+
* Perform comprehensive health check on a specific provider
|
|
239
|
+
* @param providerName - Name of the provider to check
|
|
240
|
+
* @param options - Health check options
|
|
241
|
+
* @returns Promise resolving to detailed health status
|
|
242
|
+
*/
|
|
243
|
+
checkProviderHealth(providerName: string, options?: {
|
|
244
|
+
timeout?: number;
|
|
245
|
+
includeConnectivityTest?: boolean;
|
|
246
|
+
includeModelValidation?: boolean;
|
|
247
|
+
cacheResults?: boolean;
|
|
248
|
+
}): Promise<{
|
|
249
|
+
provider: string;
|
|
250
|
+
isHealthy: boolean;
|
|
251
|
+
isConfigured: boolean;
|
|
252
|
+
hasApiKey: boolean;
|
|
253
|
+
lastChecked: Date;
|
|
254
|
+
error?: string;
|
|
255
|
+
warning?: string;
|
|
256
|
+
responseTime?: number;
|
|
257
|
+
configurationIssues: string[];
|
|
258
|
+
recommendations: string[];
|
|
259
|
+
}>;
|
|
260
|
+
/**
|
|
261
|
+
* Check health of all supported providers
|
|
262
|
+
* @param options - Health check options
|
|
263
|
+
* @returns Promise resolving to array of health statuses for all providers
|
|
264
|
+
*/
|
|
265
|
+
checkAllProvidersHealth(options?: {
|
|
266
|
+
timeout?: number;
|
|
267
|
+
includeConnectivityTest?: boolean;
|
|
268
|
+
includeModelValidation?: boolean;
|
|
269
|
+
cacheResults?: boolean;
|
|
270
|
+
}): Promise<Array<{
|
|
271
|
+
provider: string;
|
|
272
|
+
isHealthy: boolean;
|
|
273
|
+
isConfigured: boolean;
|
|
274
|
+
hasApiKey: boolean;
|
|
275
|
+
lastChecked: Date;
|
|
276
|
+
error?: string;
|
|
277
|
+
warning?: string;
|
|
278
|
+
responseTime?: number;
|
|
279
|
+
configurationIssues: string[];
|
|
280
|
+
recommendations: string[];
|
|
281
|
+
}>>;
|
|
282
|
+
/**
|
|
283
|
+
* Get a summary of provider health across all supported providers
|
|
284
|
+
* @returns Promise resolving to health summary statistics
|
|
285
|
+
*/
|
|
286
|
+
getProviderHealthSummary(): Promise<{
|
|
287
|
+
total: number;
|
|
288
|
+
healthy: number;
|
|
289
|
+
configured: number;
|
|
290
|
+
hasIssues: number;
|
|
291
|
+
healthyProviders: string[];
|
|
292
|
+
unhealthyProviders: string[];
|
|
293
|
+
recommendations: string[];
|
|
294
|
+
}>;
|
|
295
|
+
/**
|
|
296
|
+
* Clear provider health cache (useful for re-testing after configuration changes)
|
|
297
|
+
* @param providerName - Optional specific provider to clear cache for
|
|
298
|
+
*/
|
|
299
|
+
clearProviderHealthCache(providerName?: string): Promise<void>;
|
|
300
|
+
/**
|
|
301
|
+
* Get execution metrics for all tools
|
|
302
|
+
* @returns Object with execution metrics for each tool
|
|
303
|
+
*/
|
|
304
|
+
getToolExecutionMetrics(): Record<string, {
|
|
305
|
+
totalExecutions: number;
|
|
306
|
+
successfulExecutions: number;
|
|
307
|
+
failedExecutions: number;
|
|
308
|
+
successRate: number;
|
|
309
|
+
averageExecutionTime: number;
|
|
310
|
+
lastExecutionTime: number;
|
|
311
|
+
}>;
|
|
312
|
+
/**
|
|
313
|
+
* Get circuit breaker status for all tools
|
|
314
|
+
* @returns Object with circuit breaker status for each tool
|
|
315
|
+
*/
|
|
316
|
+
getToolCircuitBreakerStatus(): Record<string, {
|
|
317
|
+
state: "closed" | "open" | "half-open";
|
|
318
|
+
failureCount: number;
|
|
319
|
+
isHealthy: boolean;
|
|
320
|
+
}>;
|
|
321
|
+
/**
|
|
322
|
+
* Reset circuit breaker for a specific tool
|
|
323
|
+
* @param toolName - Name of the tool to reset circuit breaker for
|
|
324
|
+
*/
|
|
325
|
+
resetToolCircuitBreaker(toolName: string): void;
|
|
326
|
+
/**
|
|
327
|
+
* Clear all tool execution metrics
|
|
328
|
+
*/
|
|
329
|
+
clearToolExecutionMetrics(): void;
|
|
330
|
+
/**
|
|
331
|
+
* Get comprehensive tool health report
|
|
332
|
+
* @returns Detailed health report for all tools
|
|
333
|
+
*/
|
|
334
|
+
getToolHealthReport(): {
|
|
335
|
+
totalTools: number;
|
|
336
|
+
healthyTools: number;
|
|
337
|
+
unhealthyTools: number;
|
|
338
|
+
tools: Record<string, {
|
|
339
|
+
name: string;
|
|
340
|
+
isHealthy: boolean;
|
|
341
|
+
metrics: {
|
|
342
|
+
totalExecutions: number;
|
|
343
|
+
successRate: number;
|
|
344
|
+
averageExecutionTime: number;
|
|
345
|
+
lastExecutionTime: number;
|
|
346
|
+
};
|
|
347
|
+
circuitBreaker: {
|
|
348
|
+
state: "closed" | "open" | "half-open";
|
|
349
|
+
failureCount: number;
|
|
350
|
+
};
|
|
351
|
+
issues: string[];
|
|
352
|
+
recommendations: string[];
|
|
353
|
+
}>;
|
|
354
|
+
};
|
|
199
355
|
}
|
|
200
356
|
export declare const neurolink: NeuroLink;
|
|
201
357
|
export default neurolink;
|