@juspay/neurolink 7.6.1 → 7.7.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 (136) hide show
  1. package/CHANGELOG.md +9 -4
  2. package/README.md +78 -3
  3. package/dist/cli/commands/config.d.ts +275 -3
  4. package/dist/cli/commands/config.js +121 -0
  5. package/dist/cli/commands/mcp.js +77 -28
  6. package/dist/cli/factories/commandFactory.js +359 -6
  7. package/dist/core/analytics.js +7 -27
  8. package/dist/core/baseProvider.js +43 -4
  9. package/dist/core/constants.d.ts +46 -0
  10. package/dist/core/constants.js +47 -0
  11. package/dist/core/dynamicModels.d.ts +16 -4
  12. package/dist/core/dynamicModels.js +130 -26
  13. package/dist/core/evaluation.js +5 -1
  14. package/dist/core/evaluationProviders.d.ts +6 -2
  15. package/dist/core/evaluationProviders.js +41 -125
  16. package/dist/core/factory.d.ts +5 -0
  17. package/dist/core/factory.js +62 -50
  18. package/dist/core/modelConfiguration.d.ts +246 -0
  19. package/dist/core/modelConfiguration.js +775 -0
  20. package/dist/core/types.d.ts +22 -3
  21. package/dist/core/types.js +5 -1
  22. package/dist/factories/providerRegistry.js +3 -3
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/lib/core/analytics.js +7 -27
  26. package/dist/lib/core/baseProvider.js +43 -4
  27. package/dist/lib/core/constants.d.ts +46 -0
  28. package/dist/lib/core/constants.js +47 -0
  29. package/dist/lib/core/dynamicModels.d.ts +16 -4
  30. package/dist/lib/core/dynamicModels.js +130 -26
  31. package/dist/lib/core/evaluation.js +5 -1
  32. package/dist/lib/core/evaluationProviders.d.ts +6 -2
  33. package/dist/lib/core/evaluationProviders.js +41 -125
  34. package/dist/lib/core/factory.d.ts +5 -0
  35. package/dist/lib/core/factory.js +63 -50
  36. package/dist/lib/core/modelConfiguration.d.ts +246 -0
  37. package/dist/lib/core/modelConfiguration.js +775 -0
  38. package/dist/lib/core/types.d.ts +22 -3
  39. package/dist/lib/core/types.js +5 -1
  40. package/dist/lib/factories/providerRegistry.js +3 -3
  41. package/dist/lib/index.d.ts +1 -1
  42. package/dist/lib/index.js +1 -1
  43. package/dist/lib/mcp/factory.d.ts +5 -5
  44. package/dist/lib/mcp/factory.js +2 -2
  45. package/dist/lib/mcp/servers/utilities/utilityServer.d.ts +1 -1
  46. package/dist/lib/mcp/servers/utilities/utilityServer.js +1 -1
  47. package/dist/lib/mcp/toolRegistry.js +2 -2
  48. package/dist/lib/neurolink.d.ts +168 -12
  49. package/dist/lib/neurolink.js +685 -123
  50. package/dist/lib/providers/anthropic.js +52 -2
  51. package/dist/lib/providers/googleAiStudio.js +4 -0
  52. package/dist/lib/providers/googleVertex.d.ts +75 -9
  53. package/dist/lib/providers/googleVertex.js +365 -46
  54. package/dist/lib/providers/huggingFace.d.ts +52 -11
  55. package/dist/lib/providers/huggingFace.js +180 -42
  56. package/dist/lib/providers/litellm.d.ts +9 -9
  57. package/dist/lib/providers/litellm.js +103 -16
  58. package/dist/lib/providers/ollama.d.ts +52 -17
  59. package/dist/lib/providers/ollama.js +276 -68
  60. package/dist/lib/sdk/toolRegistration.d.ts +42 -0
  61. package/dist/lib/sdk/toolRegistration.js +269 -27
  62. package/dist/lib/telemetry/telemetryService.d.ts +6 -0
  63. package/dist/lib/telemetry/telemetryService.js +38 -3
  64. package/dist/lib/types/contextTypes.d.ts +75 -11
  65. package/dist/lib/types/contextTypes.js +227 -1
  66. package/dist/lib/types/domainTypes.d.ts +62 -0
  67. package/dist/lib/types/domainTypes.js +5 -0
  68. package/dist/lib/types/generateTypes.d.ts +52 -0
  69. package/dist/lib/types/index.d.ts +1 -0
  70. package/dist/lib/types/mcpTypes.d.ts +1 -1
  71. package/dist/lib/types/mcpTypes.js +1 -1
  72. package/dist/lib/types/streamTypes.d.ts +14 -0
  73. package/dist/lib/types/universalProviderOptions.d.ts +1 -1
  74. package/dist/lib/utils/errorHandling.d.ts +142 -0
  75. package/dist/lib/utils/errorHandling.js +316 -0
  76. package/dist/lib/utils/factoryProcessing.d.ts +74 -0
  77. package/dist/lib/utils/factoryProcessing.js +588 -0
  78. package/dist/lib/utils/optionsConversion.d.ts +54 -0
  79. package/dist/lib/utils/optionsConversion.js +126 -0
  80. package/dist/lib/utils/optionsUtils.d.ts +246 -0
  81. package/dist/lib/utils/optionsUtils.js +960 -0
  82. package/dist/lib/utils/providerHealth.d.ts +107 -0
  83. package/dist/lib/utils/providerHealth.js +507 -0
  84. package/dist/lib/utils/providerUtils.d.ts +17 -0
  85. package/dist/lib/utils/providerUtils.js +271 -16
  86. package/dist/lib/utils/timeout.js +1 -1
  87. package/dist/lib/utils/tokenLimits.d.ts +33 -0
  88. package/dist/lib/utils/tokenLimits.js +118 -0
  89. package/dist/mcp/factory.d.ts +5 -5
  90. package/dist/mcp/factory.js +2 -2
  91. package/dist/mcp/servers/utilities/utilityServer.d.ts +1 -1
  92. package/dist/mcp/servers/utilities/utilityServer.js +1 -1
  93. package/dist/mcp/toolRegistry.js +2 -2
  94. package/dist/neurolink.d.ts +168 -12
  95. package/dist/neurolink.js +685 -123
  96. package/dist/providers/anthropic.js +52 -2
  97. package/dist/providers/googleAiStudio.js +4 -0
  98. package/dist/providers/googleVertex.d.ts +75 -9
  99. package/dist/providers/googleVertex.js +365 -46
  100. package/dist/providers/huggingFace.d.ts +52 -11
  101. package/dist/providers/huggingFace.js +181 -43
  102. package/dist/providers/litellm.d.ts +9 -9
  103. package/dist/providers/litellm.js +103 -16
  104. package/dist/providers/ollama.d.ts +52 -17
  105. package/dist/providers/ollama.js +276 -68
  106. package/dist/sdk/toolRegistration.d.ts +42 -0
  107. package/dist/sdk/toolRegistration.js +269 -27
  108. package/dist/telemetry/telemetryService.d.ts +6 -0
  109. package/dist/telemetry/telemetryService.js +38 -3
  110. package/dist/types/contextTypes.d.ts +75 -11
  111. package/dist/types/contextTypes.js +227 -2
  112. package/dist/types/domainTypes.d.ts +62 -0
  113. package/dist/types/domainTypes.js +5 -0
  114. package/dist/types/generateTypes.d.ts +52 -0
  115. package/dist/types/index.d.ts +1 -0
  116. package/dist/types/mcpTypes.d.ts +1 -1
  117. package/dist/types/mcpTypes.js +1 -1
  118. package/dist/types/streamTypes.d.ts +14 -0
  119. package/dist/types/universalProviderOptions.d.ts +1 -1
  120. package/dist/types/universalProviderOptions.js +0 -1
  121. package/dist/utils/errorHandling.d.ts +142 -0
  122. package/dist/utils/errorHandling.js +316 -0
  123. package/dist/utils/factoryProcessing.d.ts +74 -0
  124. package/dist/utils/factoryProcessing.js +588 -0
  125. package/dist/utils/optionsConversion.d.ts +54 -0
  126. package/dist/utils/optionsConversion.js +126 -0
  127. package/dist/utils/optionsUtils.d.ts +246 -0
  128. package/dist/utils/optionsUtils.js +960 -0
  129. package/dist/utils/providerHealth.d.ts +107 -0
  130. package/dist/utils/providerHealth.js +507 -0
  131. package/dist/utils/providerUtils.d.ts +17 -0
  132. package/dist/utils/providerUtils.js +271 -16
  133. package/dist/utils/timeout.js +1 -1
  134. package/dist/utils/tokenLimits.d.ts +33 -0
  135. package/dist/utils/tokenLimits.js +118 -0
  136. package/package.json +2 -2
@@ -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
- GEMINI_2_5_FLASH = "gemini-2.5-flash-preview-05-20"
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 (Lighthouse-Compatible Schema)
156
- * Updated to match Lighthouse's exact evaluation interface for consistency
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
@@ -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["GEMINI_2_5_FLASH"] = "gemini-2.5-flash-preview-05-20";
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
- // FINAL CIRCULAR DEPENDENCY FIX: Lazy loading all providers
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
- // ✅ LAZY LOADING: Register providers with dynamic import factory functions
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-pro", ["vertex", "googleVertex"]);
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");
@@ -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
- * Extracted from lighthouse project's proven AI functionality.
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
- * Extracted from lighthouse project's proven AI functionality.
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 Lighthouse MCP patterns for seamless migration
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 Lighthouse's pattern for rich tool context
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 - Lighthouse compatible with NeuroLink enhancements
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 - Lighthouse compatible
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 Lighthouse-compatible MCP servers.
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
@@ -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 Lighthouse MCP patterns for seamless migration
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 Lighthouse-compatible MCP servers.
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
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * NeuroLink Utility Server
3
- * Provides general utility tools following Lighthouse patterns
3
+ * Provides general utility tools following standard patterns
4
4
  */
5
5
  /**
6
6
  * Utility Server - General utility tools
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * NeuroLink Utility Server
3
- * Provides general utility tools following Lighthouse patterns
3
+ * Provides general utility tools following standard patterns
4
4
  */
5
5
  import { z } from "zod";
6
6
  import { createMCPServer } from "../../factory.js";
@@ -19,7 +19,7 @@ export class MCPToolRegistry extends MCPRegistry {
19
19
  * Register all direct tools from directAgentTools
20
20
  */
21
21
  registerDirectTools() {
22
- registryLogger.info("Auto-registering direct tools...");
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.info(`Auto-registered ${Object.keys(directAgentTools).length} direct tools`);
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)
@@ -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>): void;
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 (from git diff)
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<import("./index.js").ToolInfo[]>;
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;