@juspay/neurolink 5.3.0 → 6.0.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 (273) hide show
  1. package/CHANGELOG.md +76 -2
  2. package/dist/chat/client-utils.d.ts +3 -0
  3. package/dist/chat/client-utils.js +22 -5
  4. package/dist/chat/index.d.ts +4 -7
  5. package/dist/chat/index.js +0 -8
  6. package/dist/chat/session-storage.d.ts +2 -2
  7. package/dist/chat/session.d.ts +4 -3
  8. package/dist/chat/session.js +1 -1
  9. package/dist/chat/sse-handler.js +13 -21
  10. package/dist/chat/types.d.ts +3 -2
  11. package/dist/chat/websocket-chat-handler.d.ts +4 -3
  12. package/dist/chat/websocket-chat-handler.js +12 -12
  13. package/dist/cli/commands/config.d.ts +2 -2
  14. package/dist/cli/commands/mcp.d.ts +3 -2
  15. package/dist/cli/commands/mcp.js +39 -29
  16. package/dist/cli/commands/ollama.js +8 -4
  17. package/dist/cli/factories/command-factory.d.ts +2 -1
  18. package/dist/cli/index.js +22 -19
  19. package/dist/core/analytics.d.ts +3 -2
  20. package/dist/core/analytics.js +16 -7
  21. package/dist/core/base-provider.d.ts +35 -7
  22. package/dist/core/base-provider.js +36 -13
  23. package/dist/core/defaults.d.ts +2 -1
  24. package/dist/core/evaluation.d.ts +4 -4
  25. package/dist/core/evaluation.js +17 -7
  26. package/dist/core/factory.d.ts +3 -2
  27. package/dist/core/service-registry.d.ts +4 -4
  28. package/dist/core/types.d.ts +11 -4
  29. package/dist/factories/compatibility-factory.d.ts +16 -1
  30. package/dist/factories/compatibility-factory.js +3 -1
  31. package/dist/factories/provider-factory.d.ts +5 -4
  32. package/dist/factories/provider-factory.js +15 -24
  33. package/dist/factories/provider-generate-factory.js +26 -20
  34. package/dist/lib/chat/client-utils.d.ts +3 -0
  35. package/dist/lib/chat/client-utils.js +22 -5
  36. package/dist/lib/chat/index.d.ts +4 -7
  37. package/dist/lib/chat/index.js +0 -8
  38. package/dist/lib/chat/session-storage.d.ts +2 -2
  39. package/dist/lib/chat/session.d.ts +4 -3
  40. package/dist/lib/chat/session.js +1 -1
  41. package/dist/lib/chat/sse-handler.js +13 -21
  42. package/dist/lib/chat/types.d.ts +3 -2
  43. package/dist/lib/chat/websocket-chat-handler.d.ts +4 -3
  44. package/dist/lib/chat/websocket-chat-handler.js +12 -12
  45. package/dist/lib/core/analytics.d.ts +3 -2
  46. package/dist/lib/core/analytics.js +16 -7
  47. package/dist/lib/core/base-provider.d.ts +35 -7
  48. package/dist/lib/core/base-provider.js +36 -13
  49. package/dist/lib/core/defaults.d.ts +2 -1
  50. package/dist/lib/core/evaluation.d.ts +4 -4
  51. package/dist/lib/core/evaluation.js +17 -7
  52. package/dist/lib/core/factory.d.ts +3 -2
  53. package/dist/lib/core/service-registry.d.ts +4 -4
  54. package/dist/lib/core/types.d.ts +11 -4
  55. package/dist/lib/factories/compatibility-factory.d.ts +16 -1
  56. package/dist/lib/factories/compatibility-factory.js +3 -1
  57. package/dist/lib/factories/provider-factory.d.ts +5 -4
  58. package/dist/lib/factories/provider-factory.js +15 -24
  59. package/dist/lib/factories/provider-generate-factory.js +26 -20
  60. package/dist/lib/mcp/adapters/plugin-bridge.d.ts +5 -4
  61. package/dist/lib/mcp/adapters/plugin-bridge.js +13 -6
  62. package/dist/lib/mcp/client.d.ts +2 -1
  63. package/dist/lib/mcp/client.js +12 -10
  64. package/dist/lib/mcp/context-manager.d.ts +1 -1
  65. package/dist/lib/mcp/contracts/mcp-contract.d.ts +15 -8
  66. package/dist/lib/mcp/core/plugin-manager.d.ts +3 -2
  67. package/dist/lib/mcp/core/plugin-manager.js +1 -1
  68. package/dist/lib/mcp/demo/plugin-demo.js +3 -1
  69. package/dist/lib/mcp/dynamic-chain-executor.d.ts +64 -40
  70. package/dist/lib/mcp/dynamic-chain-executor.js +3 -3
  71. package/dist/lib/mcp/dynamic-orchestrator.d.ts +14 -8
  72. package/dist/lib/mcp/ecosystem.d.ts +4 -4
  73. package/dist/lib/mcp/error-manager.d.ts +2 -2
  74. package/dist/lib/mcp/error-recovery.d.ts +4 -3
  75. package/dist/lib/mcp/external-client.d.ts +1 -1
  76. package/dist/lib/mcp/external-client.js +14 -10
  77. package/dist/lib/mcp/external-manager.d.ts +3 -3
  78. package/dist/lib/mcp/external-manager.js +9 -3
  79. package/dist/lib/mcp/factory.d.ts +7 -7
  80. package/dist/lib/mcp/function-calling.d.ts +3 -2
  81. package/dist/lib/mcp/health-monitor.d.ts +2 -1
  82. package/dist/lib/mcp/health-monitor.js +16 -7
  83. package/dist/lib/mcp/index.d.ts +5 -5
  84. package/dist/lib/mcp/initialize-tools.d.ts +2 -1
  85. package/dist/lib/mcp/initialize-tools.js +10 -2
  86. package/dist/lib/mcp/manager.d.ts +2 -1
  87. package/dist/lib/mcp/neurolink-mcp-client.js +1 -1
  88. package/dist/lib/mcp/orchestrator.d.ts +13 -12
  89. package/dist/lib/mcp/orchestrator.js +10 -8
  90. package/dist/lib/mcp/plugin-manager.js +4 -2
  91. package/dist/lib/mcp/plugins/core/filesystem-mcp.d.ts +3 -2
  92. package/dist/lib/mcp/plugins/core/filesystem-mcp.js +5 -2
  93. package/dist/lib/mcp/plugins/filesystem-mcp.d.ts +2 -1
  94. package/dist/lib/mcp/registry.d.ts +2 -1
  95. package/dist/lib/mcp/registry.js +2 -1
  96. package/dist/lib/mcp/security-manager.d.ts +4 -2
  97. package/dist/lib/mcp/servers/agent/direct-tools-server.js +18 -6
  98. package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.d.ts +1 -16
  99. package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.js +21 -17
  100. package/dist/lib/mcp/servers/ai-providers/ai-core-server.d.ts +2 -2
  101. package/dist/lib/mcp/servers/ai-providers/ai-core-server.js +15 -133
  102. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.d.ts +1 -97
  103. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.js +18 -18
  104. package/dist/lib/mcp/session-manager.d.ts +4 -3
  105. package/dist/lib/mcp/session-persistence.js +5 -2
  106. package/dist/lib/mcp/tool-integration.d.ts +3 -2
  107. package/dist/lib/mcp/tool-integration.js +3 -1
  108. package/dist/lib/mcp/tool-registry.d.ts +18 -1
  109. package/dist/lib/mcp/tool-registry.js +11 -8
  110. package/dist/lib/mcp/transport-manager.d.ts +2 -1
  111. package/dist/lib/mcp/transport-manager.js +5 -1
  112. package/dist/lib/mcp/unified-mcp.d.ts +5 -5
  113. package/dist/lib/mcp/unified-registry.d.ts +18 -2
  114. package/dist/lib/mcp/unified-registry.js +52 -3
  115. package/dist/lib/neurolink.d.ts +2 -2
  116. package/dist/lib/neurolink.js +40 -15
  117. package/dist/lib/providers/amazon-bedrock.d.ts +1 -1
  118. package/dist/lib/providers/amazon-bedrock.js +8 -7
  119. package/dist/lib/providers/analytics-helper.d.ts +8 -23
  120. package/dist/lib/providers/analytics-helper.js +95 -33
  121. package/dist/lib/providers/anthropic-baseprovider.d.ts +3 -3
  122. package/dist/lib/providers/anthropic-baseprovider.js +6 -5
  123. package/dist/lib/providers/anthropic.d.ts +2 -2
  124. package/dist/lib/providers/anthropic.js +11 -4
  125. package/dist/lib/providers/azure-openai.d.ts +5 -4
  126. package/dist/lib/providers/azure-openai.js +10 -4
  127. package/dist/lib/providers/function-calling-provider.d.ts +2 -2
  128. package/dist/lib/providers/function-calling-provider.js +1 -1
  129. package/dist/lib/providers/google-ai-studio.d.ts +2 -2
  130. package/dist/lib/providers/google-ai-studio.js +9 -3
  131. package/dist/lib/providers/google-vertex.d.ts +2 -2
  132. package/dist/lib/providers/google-vertex.js +18 -12
  133. package/dist/lib/providers/huggingFace.d.ts +1 -1
  134. package/dist/lib/providers/huggingFace.js +8 -4
  135. package/dist/lib/providers/mcp-provider.d.ts +3 -3
  136. package/dist/lib/providers/mistral.d.ts +34 -27
  137. package/dist/lib/providers/mistral.js +115 -107
  138. package/dist/lib/providers/ollama.d.ts +2 -1
  139. package/dist/lib/providers/ollama.js +43 -3
  140. package/dist/lib/providers/openAI.d.ts +1 -1
  141. package/dist/lib/providers/openAI.js +8 -4
  142. package/dist/lib/proxy/proxy-fetch.js +3 -2
  143. package/dist/lib/sdk/tool-extension.d.ts +12 -12
  144. package/dist/lib/sdk/tool-extension.js +2 -1
  145. package/dist/lib/sdk/tool-registration.d.ts +16 -12
  146. package/dist/lib/sdk/tool-registration.js +3 -2
  147. package/dist/lib/services/types.d.ts +5 -4
  148. package/dist/lib/services/websocket/websocket-server.d.ts +1 -1
  149. package/dist/lib/services/websocket/websocket-server.js +1 -1
  150. package/dist/lib/telemetry/telemetry-service.js +1 -1
  151. package/dist/lib/types/cli.d.ts +247 -0
  152. package/dist/lib/types/cli.js +22 -0
  153. package/dist/lib/types/common.d.ts +76 -0
  154. package/dist/lib/types/common.js +52 -0
  155. package/dist/lib/types/generate-types.d.ts +6 -6
  156. package/dist/lib/types/index.d.ts +12 -0
  157. package/dist/lib/types/index.js +12 -0
  158. package/dist/lib/types/mcp-types.d.ts +7 -7
  159. package/dist/lib/types/providers.d.ts +158 -0
  160. package/dist/lib/types/providers.js +23 -0
  161. package/dist/lib/types/stream-types.d.ts +4 -3
  162. package/dist/lib/types/tools.d.ts +154 -0
  163. package/dist/lib/types/tools.js +24 -0
  164. package/dist/lib/utils/logger.d.ts +5 -5
  165. package/dist/lib/utils/provider-validation.d.ts +2 -1
  166. package/dist/mcp/adapters/plugin-bridge.d.ts +5 -4
  167. package/dist/mcp/adapters/plugin-bridge.js +13 -6
  168. package/dist/mcp/client.d.ts +2 -1
  169. package/dist/mcp/client.js +12 -10
  170. package/dist/mcp/context-manager.d.ts +1 -1
  171. package/dist/mcp/contracts/mcp-contract.d.ts +15 -8
  172. package/dist/mcp/core/plugin-manager.d.ts +3 -2
  173. package/dist/mcp/core/plugin-manager.js +1 -1
  174. package/dist/mcp/demo/plugin-demo.js +3 -1
  175. package/dist/mcp/dynamic-chain-executor.d.ts +64 -40
  176. package/dist/mcp/dynamic-chain-executor.js +3 -3
  177. package/dist/mcp/dynamic-orchestrator.d.ts +14 -8
  178. package/dist/mcp/dynamic-orchestrator.js +1 -1
  179. package/dist/mcp/ecosystem.d.ts +4 -4
  180. package/dist/mcp/error-manager.d.ts +2 -2
  181. package/dist/mcp/error-recovery.d.ts +4 -3
  182. package/dist/mcp/external-client.d.ts +1 -1
  183. package/dist/mcp/external-client.js +14 -10
  184. package/dist/mcp/external-manager.d.ts +3 -3
  185. package/dist/mcp/external-manager.js +9 -3
  186. package/dist/mcp/factory.d.ts +7 -7
  187. package/dist/mcp/function-calling.d.ts +3 -2
  188. package/dist/mcp/health-monitor.d.ts +2 -1
  189. package/dist/mcp/health-monitor.js +16 -7
  190. package/dist/mcp/index.d.ts +5 -5
  191. package/dist/mcp/initialize-tools.d.ts +2 -1
  192. package/dist/mcp/initialize-tools.js +10 -2
  193. package/dist/mcp/manager.d.ts +2 -1
  194. package/dist/mcp/neurolink-mcp-client.js +1 -1
  195. package/dist/mcp/orchestrator.d.ts +13 -12
  196. package/dist/mcp/orchestrator.js +10 -8
  197. package/dist/mcp/plugin-manager.js +4 -2
  198. package/dist/mcp/plugins/core/filesystem-mcp.d.ts +3 -2
  199. package/dist/mcp/plugins/core/filesystem-mcp.js +5 -2
  200. package/dist/mcp/plugins/filesystem-mcp.d.ts +2 -1
  201. package/dist/mcp/registry.d.ts +2 -1
  202. package/dist/mcp/registry.js +2 -1
  203. package/dist/mcp/security-manager.d.ts +4 -2
  204. package/dist/mcp/servers/agent/direct-tools-server.js +19 -6
  205. package/dist/mcp/servers/ai-providers/ai-analysis-tools.d.ts +1 -16
  206. package/dist/mcp/servers/ai-providers/ai-analysis-tools.js +21 -17
  207. package/dist/mcp/servers/ai-providers/ai-core-server.d.ts +2 -2
  208. package/dist/mcp/servers/ai-providers/ai-core-server.js +15 -132
  209. package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +1 -97
  210. package/dist/mcp/servers/ai-providers/ai-workflow-tools.js +18 -18
  211. package/dist/mcp/session-manager.d.ts +4 -3
  212. package/dist/mcp/session-persistence.js +5 -2
  213. package/dist/mcp/tool-integration.d.ts +3 -2
  214. package/dist/mcp/tool-integration.js +3 -1
  215. package/dist/mcp/tool-registry.d.ts +18 -1
  216. package/dist/mcp/tool-registry.js +11 -8
  217. package/dist/mcp/transport-manager.d.ts +2 -1
  218. package/dist/mcp/transport-manager.js +5 -1
  219. package/dist/mcp/unified-mcp.d.ts +5 -5
  220. package/dist/mcp/unified-registry.d.ts +18 -2
  221. package/dist/mcp/unified-registry.js +52 -3
  222. package/dist/neurolink.d.ts +2 -2
  223. package/dist/neurolink.js +40 -15
  224. package/dist/providers/amazon-bedrock.d.ts +1 -1
  225. package/dist/providers/amazon-bedrock.js +8 -7
  226. package/dist/providers/analytics-helper.d.ts +8 -23
  227. package/dist/providers/analytics-helper.js +95 -33
  228. package/dist/providers/anthropic-baseprovider.d.ts +3 -3
  229. package/dist/providers/anthropic-baseprovider.js +6 -5
  230. package/dist/providers/anthropic.d.ts +2 -2
  231. package/dist/providers/anthropic.js +11 -4
  232. package/dist/providers/azure-openai.d.ts +5 -4
  233. package/dist/providers/azure-openai.js +10 -4
  234. package/dist/providers/function-calling-provider.d.ts +2 -2
  235. package/dist/providers/function-calling-provider.js +1 -1
  236. package/dist/providers/google-ai-studio.d.ts +2 -2
  237. package/dist/providers/google-ai-studio.js +9 -3
  238. package/dist/providers/google-vertex.d.ts +2 -2
  239. package/dist/providers/google-vertex.js +18 -12
  240. package/dist/providers/huggingFace.d.ts +1 -1
  241. package/dist/providers/huggingFace.js +8 -4
  242. package/dist/providers/mcp-provider.d.ts +3 -3
  243. package/dist/providers/mistral.d.ts +34 -27
  244. package/dist/providers/mistral.js +116 -108
  245. package/dist/providers/ollama.d.ts +2 -1
  246. package/dist/providers/ollama.js +43 -3
  247. package/dist/providers/openAI.d.ts +1 -1
  248. package/dist/providers/openAI.js +8 -4
  249. package/dist/proxy/proxy-fetch.js +3 -2
  250. package/dist/sdk/tool-extension.d.ts +12 -12
  251. package/dist/sdk/tool-extension.js +2 -1
  252. package/dist/sdk/tool-registration.d.ts +16 -12
  253. package/dist/sdk/tool-registration.js +3 -2
  254. package/dist/services/types.d.ts +5 -4
  255. package/dist/services/websocket/websocket-server.d.ts +1 -1
  256. package/dist/services/websocket/websocket-server.js +2 -1
  257. package/dist/telemetry/telemetry-service.js +1 -1
  258. package/dist/types/cli.d.ts +247 -0
  259. package/dist/types/cli.js +22 -0
  260. package/dist/types/common.d.ts +76 -0
  261. package/dist/types/common.js +52 -0
  262. package/dist/types/generate-types.d.ts +6 -6
  263. package/dist/types/index.d.ts +12 -0
  264. package/dist/types/index.js +12 -0
  265. package/dist/types/mcp-types.d.ts +7 -7
  266. package/dist/types/providers.d.ts +158 -0
  267. package/dist/types/providers.js +23 -0
  268. package/dist/types/stream-types.d.ts +4 -3
  269. package/dist/types/tools.d.ts +154 -0
  270. package/dist/types/tools.js +25 -0
  271. package/dist/utils/logger.d.ts +5 -5
  272. package/dist/utils/provider-validation.d.ts +2 -1
  273. package/package.json +1 -1
@@ -38,16 +38,17 @@ export class AnthropicProviderV2 extends BaseProvider {
38
38
  if (error instanceof TimeoutError) {
39
39
  return new Error(`Anthropic request timed out: ${error.message}`);
40
40
  }
41
- if (error?.status === 401) {
41
+ const errorWithStatus = error;
42
+ if (errorWithStatus?.status === 401) {
42
43
  return new Error("Invalid Anthropic API key. Please check your ANTHROPIC_API_KEY environment variable.");
43
44
  }
44
- if (error?.status === 429) {
45
+ if (errorWithStatus?.status === 429) {
45
46
  return new Error("Anthropic rate limit exceeded. Please try again later.");
46
47
  }
47
- if (error?.status === 400) {
48
- return new Error(`Anthropic bad request: ${error?.message || "Invalid request parameters"}`);
48
+ if (errorWithStatus?.status === 400) {
49
+ return new Error(`Anthropic bad request: ${errorWithStatus?.message || "Invalid request parameters"}`);
49
50
  }
50
- return new Error(`Anthropic error: ${error?.message || "Unknown error"}`);
51
+ return new Error(`Anthropic error: ${errorWithStatus?.message || String(error) || "Unknown error"}`);
51
52
  }
52
53
  getApiKey() {
53
54
  const apiKey = process.env.ANTHROPIC_API_KEY;
@@ -9,14 +9,14 @@ import { BaseProvider } from "../core/base-provider.js";
9
9
  */
10
10
  export declare class AnthropicProvider extends BaseProvider {
11
11
  private model;
12
- constructor(modelName?: string, sdk?: any);
12
+ constructor(modelName?: string, sdk?: unknown);
13
13
  protected getProviderName(): AIProviderName;
14
14
  protected getDefaultModel(): string;
15
15
  /**
16
16
  * Returns the Vercel AI SDK model instance for Anthropic
17
17
  */
18
18
  protected getAISDKModel(): LanguageModelV1;
19
- protected handleProviderError(error: any): Error;
19
+ protected handleProviderError(error: unknown): Error;
20
20
  protected executeStream(options: StreamOptions, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
21
21
  isAvailable(): Promise<boolean>;
22
22
  getModel(): LanguageModelV1;
@@ -47,14 +47,21 @@ export class AnthropicProvider extends BaseProvider {
47
47
  if (error instanceof TimeoutError) {
48
48
  return new Error(`Anthropic request timed out: ${error.message}`);
49
49
  }
50
- if (error?.message?.includes("API_KEY_INVALID") ||
51
- error?.message?.includes("Invalid API key")) {
50
+ const errorRecord = error;
51
+ if ((typeof errorRecord?.message === "string" &&
52
+ errorRecord.message.includes("API_KEY_INVALID")) ||
53
+ (typeof errorRecord?.message === "string" &&
54
+ errorRecord.message.includes("Invalid API key"))) {
52
55
  return new Error("Invalid Anthropic API key. Please check your ANTHROPIC_API_KEY environment variable.");
53
56
  }
54
- if (error?.message?.includes("rate limit")) {
57
+ if (typeof errorRecord?.message === "string" &&
58
+ errorRecord.message.includes("rate limit")) {
55
59
  return new Error("Anthropic rate limit exceeded. Please try again later.");
56
60
  }
57
- return new Error(`Anthropic error: ${error?.message || "Unknown error"}`);
61
+ const message = typeof errorRecord?.message === "string"
62
+ ? errorRecord.message
63
+ : "Unknown error";
64
+ return new Error(`Anthropic error: ${message}`);
58
65
  }
59
66
  // executeGenerate removed - BaseProvider handles all generation with tools
60
67
  async executeStream(options, analysisSchema) {
@@ -1,3 +1,4 @@
1
+ import { type LanguageModelV1 } from "ai";
1
2
  import { BaseProvider } from "../core/base-provider.js";
2
3
  import type { AIProviderName } from "../core/types.js";
3
4
  import type { StreamOptions, StreamResult } from "../types/stream-types.js";
@@ -7,14 +8,14 @@ export declare class AzureOpenAIProvider extends BaseProvider {
7
8
  private deployment;
8
9
  private apiVersion;
9
10
  private azureProvider;
10
- constructor(modelName?: string);
11
+ constructor(modelName?: string, sdk?: unknown);
11
12
  protected getProviderName(): AIProviderName;
12
13
  protected getDefaultModel(): string;
13
14
  /**
14
15
  * Returns the Vercel AI SDK model instance for Azure OpenAI
15
16
  */
16
- protected getAISDKModel(): any;
17
- protected handleProviderError(error: any): Error;
18
- protected executeStream(options: StreamOptions, analysisSchema?: any): Promise<StreamResult>;
17
+ protected getAISDKModel(): LanguageModelV1;
18
+ protected handleProviderError(error: unknown): Error;
19
+ protected executeStream(options: StreamOptions, analysisSchema?: unknown): Promise<StreamResult>;
19
20
  }
20
21
  export default AzureOpenAIProvider;
@@ -7,8 +7,8 @@ export class AzureOpenAIProvider extends BaseProvider {
7
7
  deployment;
8
8
  apiVersion;
9
9
  azureProvider;
10
- constructor(modelName) {
11
- super(modelName, "azure");
10
+ constructor(modelName, sdk) {
11
+ super(modelName, "azure", sdk);
12
12
  this.apiKey = process.env.AZURE_OPENAI_API_KEY || "";
13
13
  const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "";
14
14
  this.resourceName = endpoint
@@ -52,10 +52,16 @@ export class AzureOpenAIProvider extends BaseProvider {
52
52
  return this.azureProvider(this.deployment);
53
53
  }
54
54
  handleProviderError(error) {
55
- if (error?.message?.includes("401")) {
55
+ const errorObj = error;
56
+ if (errorObj?.message &&
57
+ typeof errorObj.message === "string" &&
58
+ errorObj.message.includes("401")) {
56
59
  return new Error("Invalid Azure OpenAI API key or endpoint.");
57
60
  }
58
- return new Error(`Azure OpenAI error: ${error?.message || "Unknown error"}`);
61
+ const message = errorObj?.message && typeof errorObj.message === "string"
62
+ ? errorObj.message
63
+ : "Unknown error";
64
+ return new Error(`Azure OpenAI error: ${message}`);
59
65
  }
60
66
  // executeGenerate removed - BaseProvider handles all generation with tools
61
67
  async executeStream(options, analysisSchema) {
@@ -30,7 +30,7 @@ export declare class FunctionCallingProvider implements AIProvider {
30
30
  * PRIMARY METHOD: Stream content using AI (recommended for new code)
31
31
  * Future-ready for multi-modal capabilities with current text focus
32
32
  */
33
- stream(optionsOrPrompt: StreamOptions | string, analysisSchema?: any): Promise<StreamResult>;
33
+ stream(optionsOrPrompt: StreamOptions | string, analysisSchema?: Schema): Promise<StreamResult>;
34
34
  /**
35
35
  * Generate text with real function calling support
36
36
  */
@@ -117,7 +117,7 @@ export declare class FunctionCallingProvider implements AIProvider {
117
117
  /**
118
118
  * Short alias for generate() - CLI-SDK consistency
119
119
  */
120
- gen(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: any): Promise<EnhancedGenerateResult | null>;
120
+ gen(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: Schema): Promise<EnhancedGenerateResult | null>;
121
121
  }
122
122
  /**
123
123
  * Create a function-calling enhanced version of any AI provider
@@ -344,7 +344,7 @@ export class FunctionCallingProvider {
344
344
  if (typeof provider.getModel === "function") {
345
345
  mcpLogger.debug(`[${functionTag}] Found getModel method on provider`);
346
346
  const model = await provider.getModel();
347
- return { model };
347
+ return { model: model };
348
348
  }
349
349
  mcpLogger.warn(`[${functionTag}] Could not find model on provider`);
350
350
  return null;
@@ -8,14 +8,14 @@ import { BaseProvider } from "../core/base-provider.js";
8
8
  * Migrated from original GoogleAIStudio class to new factory pattern
9
9
  */
10
10
  export declare class GoogleAIStudioProvider extends BaseProvider {
11
- constructor(modelName?: string, sdk?: any);
11
+ constructor(modelName?: string, sdk?: unknown);
12
12
  protected getProviderName(): AIProviderName;
13
13
  protected getDefaultModel(): string;
14
14
  /**
15
15
  * šŸ”§ PHASE 2: Return AI SDK model instance for tool calling
16
16
  */
17
17
  protected getAISDKModel(): LanguageModelV1;
18
- protected handleProviderError(error: any): Error;
18
+ protected handleProviderError(error: unknown): Error;
19
19
  protected executeStream(options: StreamOptions, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
20
20
  private getApiKey;
21
21
  private validateStreamOptions;
@@ -45,13 +45,19 @@ export class GoogleAIStudioProvider extends BaseProvider {
45
45
  if (error instanceof TimeoutError) {
46
46
  return new Error(`Google AI request timed out: ${error.message}`);
47
47
  }
48
- if (error?.message?.includes("API_KEY_INVALID")) {
48
+ const errorRecord = error;
49
+ if (typeof errorRecord?.message === "string" &&
50
+ errorRecord.message.includes("API_KEY_INVALID")) {
49
51
  return new Error("Invalid Google AI API key. Please check your GOOGLE_AI_API_KEY environment variable.");
50
52
  }
51
- if (error?.message?.includes("RATE_LIMIT_EXCEEDED")) {
53
+ if (typeof errorRecord?.message === "string" &&
54
+ errorRecord.message.includes("RATE_LIMIT_EXCEEDED")) {
52
55
  return new Error("Google AI rate limit exceeded. Please try again later.");
53
56
  }
54
- return new Error(`Google AI error: ${error?.message || "Unknown error"}`);
57
+ const message = typeof errorRecord?.message === "string"
58
+ ? errorRecord.message
59
+ : "Unknown error";
60
+ return new Error(`Google AI error: ${message}`);
55
61
  }
56
62
  // executeGenerate removed - BaseProvider handles all generation with tools
57
63
  async executeStream(options, analysisSchema) {
@@ -21,7 +21,7 @@ export declare class GoogleVertexProvider extends BaseProvider {
21
21
  private projectId;
22
22
  private location;
23
23
  private cachedAnthropicModel;
24
- constructor(modelName?: string);
24
+ constructor(modelName?: string, sdk?: unknown);
25
25
  protected getProviderName(): AIProviderName;
26
26
  protected getDefaultModel(): string;
27
27
  /**
@@ -30,7 +30,7 @@ export declare class GoogleVertexProvider extends BaseProvider {
30
30
  */
31
31
  protected getAISDKModel(): Promise<LanguageModelV1>;
32
32
  protected executeStream(options: StreamOptions, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
33
- protected handleProviderError(error: any): Error;
33
+ protected handleProviderError(error: unknown): Error;
34
34
  private validateStreamOptions;
35
35
  /**
36
36
  * Check if Anthropic models are available
@@ -15,7 +15,8 @@ async function getCreateVertexAnthropic() {
15
15
  _anthropicImportAttempted = true;
16
16
  try {
17
17
  // Try to import the anthropic module - available in @ai-sdk/google-vertex ^2.2.0+
18
- const anthropicModule = await import("@ai-sdk/google-vertex/anthropic");
18
+ // Use proper dynamic import without eval() for security
19
+ const anthropicModule = (await import("@ai-sdk/google-vertex/anthropic"));
19
20
  _createVertexAnthropic = anthropicModule.createVertexAnthropic;
20
21
  logger.debug("[GoogleVertexAI] Anthropic module successfully loaded");
21
22
  return _createVertexAnthropic;
@@ -69,8 +70,8 @@ export class GoogleVertexProvider extends BaseProvider {
69
70
  projectId;
70
71
  location;
71
72
  cachedAnthropicModel = null;
72
- constructor(modelName) {
73
- super(modelName, "vertex");
73
+ constructor(modelName, sdk) {
74
+ super(modelName, "vertex", sdk);
74
75
  // Validate Google Cloud credentials
75
76
  if (!hasGoogleCredentials()) {
76
77
  throw new Error(`āŒ Google Vertex AI Provider Configuration Error\n\nMissing Google Cloud authentication. One of the following is required:\n\nšŸ”§ Option 1: Service Account Key File\nGOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json\n\nšŸ”§ Option 2: Service Account Key (Base64)\nGOOGLE_SERVICE_ACCOUNT_KEY=base64_encoded_key\n\nšŸ”§ Option 3: Individual Credentials\nGOOGLE_AUTH_CLIENT_EMAIL=your-service-account@project.iam.gserviceaccount.com\nGOOGLE_AUTH_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----...\n\nšŸ”§ Step 4: Restart Application\nRestart your application to load the new environment variables.`);
@@ -147,22 +148,27 @@ export class GoogleVertexProvider extends BaseProvider {
147
148
  }
148
149
  }
149
150
  handleProviderError(error) {
150
- if (error.name === "TimeoutError") {
151
+ const errorRecord = error;
152
+ if (typeof errorRecord?.name === "string" &&
153
+ errorRecord.name === "TimeoutError") {
151
154
  return new TimeoutError(`Google Vertex AI request timed out. Consider increasing timeout or using a lighter model.`, this.defaultTimeout);
152
155
  }
153
- if (error.message?.includes("PERMISSION_DENIED")) {
156
+ const message = typeof errorRecord?.message === "string"
157
+ ? errorRecord.message
158
+ : "Unknown error occurred";
159
+ if (message.includes("PERMISSION_DENIED")) {
154
160
  return new Error(`āŒ Google Vertex AI Permission Denied\n\nYour Google Cloud credentials don't have permission to access Vertex AI.\n\nšŸ”§ Required Steps:\n1. Ensure your service account has Vertex AI User role\n2. Check if Vertex AI API is enabled in your project\n3. Verify your project ID is correct\n4. Confirm your location/region has Vertex AI available`);
155
161
  }
156
- if (error.message?.includes("NOT_FOUND")) {
157
- return new Error(`āŒ Google Vertex AI Model Not Found\n\n${error.message}\n\nšŸ”§ Check:\n1. Model name is correct (e.g., 'gemini-1.5-pro')\n2. Model is available in your region (${this.location})\n3. Your project has access to the model\n4. Model supports your request parameters`);
162
+ if (message.includes("NOT_FOUND")) {
163
+ return new Error(`āŒ Google Vertex AI Model Not Found\n\n${message}\n\nšŸ”§ Check:\n1. Model name is correct (e.g., 'gemini-1.5-pro')\n2. Model is available in your region (${this.location})\n3. Your project has access to the model\n4. Model supports your request parameters`);
158
164
  }
159
- if (error.message?.includes("QUOTA_EXCEEDED")) {
160
- return new Error(`āŒ Google Vertex AI Quota Exceeded\n\n${error.message}\n\nšŸ”§ Solutions:\n1. Check your Vertex AI quotas in Google Cloud Console\n2. Request quota increase if needed\n3. Try a different model or reduce request frequency\n4. Consider using a different region`);
165
+ if (message.includes("QUOTA_EXCEEDED")) {
166
+ return new Error(`āŒ Google Vertex AI Quota Exceeded\n\n${message}\n\nšŸ”§ Solutions:\n1. Check your Vertex AI quotas in Google Cloud Console\n2. Request quota increase if needed\n3. Try a different model or reduce request frequency\n4. Consider using a different region`);
161
167
  }
162
- if (error.message?.includes("INVALID_ARGUMENT")) {
163
- return new Error(`āŒ Google Vertex AI Invalid Request\n\n${error.message}\n\nšŸ”§ Check:\n1. Request parameters are within model limits\n2. Input text is properly formatted\n3. Temperature and other settings are valid\n4. Model supports your request type`);
168
+ if (message.includes("INVALID_ARGUMENT")) {
169
+ return new Error(`āŒ Google Vertex AI Invalid Request\n\n${message}\n\nšŸ”§ Check:\n1. Request parameters are within model limits\n2. Input text is properly formatted\n3. Temperature and other settings are valid\n4. Model supports your request type`);
164
170
  }
165
- return new Error(`āŒ Google Vertex AI Provider Error\n\n${error.message || "Unknown error occurred"}\n\nšŸ”§ Troubleshooting:\n1. Check Google Cloud credentials and permissions\n2. Verify project ID and location settings\n3. Ensure Vertex AI API is enabled\n4. Check network connectivity`);
171
+ return new Error(`āŒ Google Vertex AI Provider Error\n\n${message}\n\nšŸ”§ Troubleshooting:\n1. Check Google Cloud credentials and permissions\n2. Verify project ID and location settings\n3. Ensure Vertex AI API is enabled\n4. Check network connectivity`);
166
172
  }
167
173
  validateStreamOptions(options) {
168
174
  if (!options.input?.text?.trim()) {
@@ -33,7 +33,7 @@ export declare class HuggingFaceProvider extends BaseProvider {
33
33
  * Returns the Vercel AI SDK model instance for HuggingFace
34
34
  */
35
35
  protected getAISDKModel(): LanguageModelV1;
36
- protected handleProviderError(error: any): Error;
36
+ protected handleProviderError(error: unknown): Error;
37
37
  private validateStreamOptions;
38
38
  }
39
39
  export default HuggingFaceProvider;
@@ -114,14 +114,18 @@ export class HuggingFaceProvider extends BaseProvider {
114
114
  if (error instanceof TimeoutError) {
115
115
  return new Error(`HuggingFace request timed out: ${error.message}`);
116
116
  }
117
- if (error?.message?.includes("API_TOKEN_INVALID") ||
118
- error?.message?.includes("Invalid token")) {
117
+ const errorObj = error;
118
+ const message = errorObj?.message && typeof errorObj.message === "string"
119
+ ? errorObj.message
120
+ : "Unknown error";
121
+ if (message.includes("API_TOKEN_INVALID") ||
122
+ message.includes("Invalid token")) {
119
123
  return new Error("Invalid HuggingFace API token. Please check your HUGGING_FACE_API_KEY environment variable.");
120
124
  }
121
- if (error?.message?.includes("rate limit")) {
125
+ if (message.includes("rate limit")) {
122
126
  return new Error("HuggingFace rate limit exceeded. Please try again later.");
123
127
  }
124
- return new Error(`HuggingFace error: ${error?.message || "Unknown error"}`);
128
+ return new Error(`HuggingFace error: ${message}`);
125
129
  }
126
130
  // ===================
127
131
  // PRIVATE VALIDATION METHODS
@@ -2,7 +2,7 @@
2
2
  * NeuroLink MCP-Aware AI Provider
3
3
  * Integrates MCP tools with AI providers following Lighthouse's pattern
4
4
  */
5
- import type { AIProvider, TextGenerationOptions, EnhancedGenerateResult } from "../core/types.js";
5
+ import type { AIProvider, TextGenerationOptions } from "../core/types.js";
6
6
  import type { Schema } from "ai";
7
7
  import type { GenerateResult } from "../types/generate-types.js";
8
8
  import type { ZodType, ZodTypeDef } from "zod";
@@ -37,7 +37,7 @@ export declare class MCPAwareProvider implements AIProvider {
37
37
  * PRIMARY METHOD: Stream content using AI (recommended for new code)
38
38
  * Future-ready for multi-modal capabilities with current text focus
39
39
  */
40
- stream(optionsOrPrompt: StreamOptions | string, analysisSchema?: any): Promise<StreamResult>;
40
+ stream(optionsOrPrompt: StreamOptions | string, analysisSchema?: unknown): Promise<StreamResult>;
41
41
  generate(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<GenerateResult>;
42
42
  /**
43
43
  * Detect if the prompt is requesting tool usage
@@ -63,7 +63,7 @@ export declare class MCPAwareProvider implements AIProvider {
63
63
  /**
64
64
  * Short alias for generate() - CLI-SDK consistency
65
65
  */
66
- gen(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: any): Promise<EnhancedGenerateResult | null>;
66
+ gen(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<GenerateResult>;
67
67
  }
68
68
  /**
69
69
  * Create an MCP-aware provider
@@ -1,42 +1,49 @@
1
- import type { ZodType, ZodTypeDef } from "zod";
2
- import { type Schema, type LanguageModelV1 } from "ai";
3
- import type { AIProviderName } from "../core/types.js";
1
+ import { type LanguageModelV1 } from "ai";
2
+ import type { AIProviderName, TextGenerationOptions, EnhancedGenerateResult } from "../core/types.js";
4
3
  import type { StreamOptions, StreamResult } from "../types/stream-types.js";
5
4
  import { BaseProvider } from "../core/base-provider.js";
6
5
  /**
7
6
  * Mistral AI Provider v2 - BaseProvider Implementation
8
- *
9
- * PHASE 3.6: Simple BaseProvider wrap around existing @ai-sdk/mistral implementation
10
- *
11
- * Features:
12
- * - Extends BaseProvider for shared functionality
13
- * - Uses pre-configured Mistral instance for efficiency
14
- * - Enhanced error handling with setup guidance
15
- * - Supports all Mistral models (mistral-small, mistral-medium, mistral-large)
7
+ * Supports official AI-SDK integration with all Mistral models
16
8
  */
17
9
  export declare class MistralProvider extends BaseProvider {
18
- private mistral;
19
10
  private model;
20
- constructor(modelName?: string, sdk?: any);
21
- protected getProviderName(): AIProviderName;
22
- protected getDefaultModel(): string;
11
+ constructor(modelName?: string, sdk?: unknown);
23
12
  /**
24
- * Returns the Vercel AI SDK model instance for Mistral
13
+ * Generate text using Mistral API
25
14
  */
26
- protected getAISDKModel(): LanguageModelV1;
27
- protected executeStream(options: StreamOptions, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
28
- protected handleProviderError(error: any): Error;
29
- private validateStreamOptions;
15
+ generate(options: TextGenerationOptions): Promise<EnhancedGenerateResult>;
30
16
  /**
31
- * Check available Mistral models
32
- * @returns Array of available model names
17
+ * Stream text generation using Mistral API
33
18
  */
34
- getAvailableModels(): string[];
19
+ executeStream(options: StreamOptions): Promise<StreamResult>;
35
20
  /**
36
- * Get recommended model based on use case
37
- * @param useCase - The intended use case
38
- * @returns Recommended model name
21
+ * Get default model name for this provider
39
22
  */
40
- getRecommendedModel(useCase: "speed" | "balanced" | "quality"): string;
23
+ getDefaultModel(): string;
24
+ /**
25
+ * Get provider name
26
+ */
27
+ getProviderName(): AIProviderName;
28
+ /**
29
+ * Get AI SDK model instance
30
+ */
31
+ getAISDKModel(): LanguageModelV1;
32
+ /**
33
+ * Handle provider-specific errors
34
+ */
35
+ handleProviderError(error: unknown): Error;
36
+ /**
37
+ * Validate provider configuration
38
+ */
39
+ validateConfiguration(): Promise<boolean>;
40
+ /**
41
+ * Get provider-specific configuration
42
+ */
43
+ getConfiguration(): {
44
+ provider: AIProviderName;
45
+ model: string;
46
+ defaultModel: string;
47
+ };
41
48
  }
42
49
  export default MistralProvider;