@juspay/neurolink 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/CHANGELOG.md +15 -9
  2. package/README.md +123 -126
  3. package/dist/agent/direct-tools.d.ts +6 -6
  4. package/dist/cli/commands/config.d.ts +3 -3
  5. package/dist/cli/commands/mcp.js +8 -7
  6. package/dist/cli/factories/command-factory.d.ts +4 -0
  7. package/dist/cli/factories/command-factory.js +57 -3
  8. package/dist/cli/index.js +87 -140
  9. package/dist/core/base-provider.d.ts +423 -0
  10. package/dist/core/base-provider.js +365 -0
  11. package/dist/core/constants.d.ts +1 -1
  12. package/dist/core/constants.js +1 -1
  13. package/dist/core/dynamic-models.d.ts +6 -6
  14. package/dist/core/evaluation.d.ts +19 -80
  15. package/dist/core/evaluation.js +185 -484
  16. package/dist/core/factory.d.ts +3 -3
  17. package/dist/core/factory.js +31 -91
  18. package/dist/core/service-registry.d.ts +47 -0
  19. package/dist/core/service-registry.js +112 -0
  20. package/dist/core/types.d.ts +8 -1
  21. package/dist/factories/compatibility-factory.js +1 -1
  22. package/dist/factories/provider-factory.d.ts +72 -0
  23. package/dist/factories/provider-factory.js +144 -0
  24. package/dist/factories/provider-registry.d.ts +38 -0
  25. package/dist/factories/provider-registry.js +107 -0
  26. package/dist/index.d.ts +4 -3
  27. package/dist/index.js +2 -4
  28. package/dist/lib/agent/direct-tools.d.ts +6 -6
  29. package/dist/lib/core/base-provider.d.ts +423 -0
  30. package/dist/lib/core/base-provider.js +365 -0
  31. package/dist/lib/core/constants.d.ts +1 -1
  32. package/dist/lib/core/constants.js +1 -1
  33. package/dist/lib/core/dynamic-models.d.ts +6 -6
  34. package/dist/lib/core/evaluation.d.ts +19 -80
  35. package/dist/lib/core/evaluation.js +185 -484
  36. package/dist/lib/core/factory.d.ts +3 -3
  37. package/dist/lib/core/factory.js +30 -91
  38. package/dist/lib/core/service-registry.d.ts +47 -0
  39. package/dist/lib/core/service-registry.js +112 -0
  40. package/dist/lib/core/types.d.ts +8 -1
  41. package/dist/lib/factories/compatibility-factory.js +1 -1
  42. package/dist/lib/factories/provider-factory.d.ts +72 -0
  43. package/dist/lib/factories/provider-factory.js +144 -0
  44. package/dist/lib/factories/provider-registry.d.ts +38 -0
  45. package/dist/lib/factories/provider-registry.js +107 -0
  46. package/dist/lib/index.d.ts +4 -3
  47. package/dist/lib/index.js +2 -4
  48. package/dist/lib/mcp/config.js +28 -3
  49. package/dist/lib/mcp/function-calling.js +1 -1
  50. package/dist/lib/mcp/initialize-tools.d.ts +1 -1
  51. package/dist/lib/mcp/initialize-tools.js +45 -1
  52. package/dist/lib/mcp/initialize.js +16 -6
  53. package/dist/lib/mcp/servers/agent/direct-tools-server.d.ts +8 -0
  54. package/dist/lib/mcp/servers/agent/direct-tools-server.js +109 -0
  55. package/dist/lib/mcp/servers/ai-providers/ai-core-server.js +3 -1
  56. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  57. package/dist/lib/mcp/unified-registry.d.ts +4 -0
  58. package/dist/lib/mcp/unified-registry.js +42 -9
  59. package/dist/lib/neurolink.d.ts +156 -117
  60. package/dist/lib/neurolink.js +619 -404
  61. package/dist/lib/providers/amazon-bedrock.d.ts +32 -0
  62. package/dist/lib/providers/amazon-bedrock.js +143 -0
  63. package/dist/lib/providers/analytics-helper.js +7 -4
  64. package/dist/lib/providers/anthropic-baseprovider.d.ts +23 -0
  65. package/dist/lib/providers/anthropic-baseprovider.js +114 -0
  66. package/dist/lib/providers/anthropic.d.ts +19 -43
  67. package/dist/lib/providers/anthropic.js +82 -306
  68. package/dist/lib/providers/azure-openai.d.ts +20 -0
  69. package/dist/lib/providers/azure-openai.js +89 -0
  70. package/dist/lib/providers/google-ai-studio.d.ts +23 -0
  71. package/dist/lib/providers/google-ai-studio.js +107 -0
  72. package/dist/lib/providers/google-vertex.d.ts +47 -0
  73. package/dist/lib/providers/google-vertex.js +205 -0
  74. package/dist/lib/providers/huggingFace.d.ts +32 -25
  75. package/dist/lib/providers/huggingFace.js +97 -431
  76. package/dist/lib/providers/index.d.ts +9 -9
  77. package/dist/lib/providers/index.js +9 -9
  78. package/dist/lib/providers/mcp-provider.js +4 -0
  79. package/dist/lib/providers/mistral.d.ts +42 -0
  80. package/dist/lib/providers/mistral.js +160 -0
  81. package/dist/lib/providers/ollama.d.ts +52 -36
  82. package/dist/lib/providers/ollama.js +297 -520
  83. package/dist/lib/providers/openAI.d.ts +19 -18
  84. package/dist/lib/providers/openAI.js +76 -275
  85. package/dist/lib/sdk/tool-extension.d.ts +181 -0
  86. package/dist/lib/sdk/tool-extension.js +283 -0
  87. package/dist/lib/sdk/tool-registration.d.ts +95 -0
  88. package/dist/lib/sdk/tool-registration.js +167 -0
  89. package/dist/lib/types/generate-types.d.ts +1 -0
  90. package/dist/lib/types/mcp-types.d.ts +116 -0
  91. package/dist/lib/types/mcp-types.js +5 -0
  92. package/dist/lib/types/stream-types.d.ts +30 -18
  93. package/dist/lib/types/universal-provider-options.d.ts +87 -0
  94. package/dist/lib/types/universal-provider-options.js +53 -0
  95. package/dist/mcp/config.js +28 -3
  96. package/dist/mcp/function-calling.js +1 -1
  97. package/dist/mcp/initialize-tools.d.ts +1 -1
  98. package/dist/mcp/initialize-tools.js +45 -1
  99. package/dist/mcp/initialize.js +16 -6
  100. package/dist/mcp/servers/agent/direct-tools-server.d.ts +8 -0
  101. package/dist/mcp/servers/agent/direct-tools-server.js +109 -0
  102. package/dist/mcp/servers/ai-providers/ai-core-server.js +3 -1
  103. package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  104. package/dist/mcp/unified-registry.d.ts +4 -0
  105. package/dist/mcp/unified-registry.js +42 -9
  106. package/dist/neurolink.d.ts +156 -117
  107. package/dist/neurolink.js +619 -404
  108. package/dist/providers/amazon-bedrock.d.ts +32 -0
  109. package/dist/providers/amazon-bedrock.js +143 -0
  110. package/dist/providers/analytics-helper.js +7 -4
  111. package/dist/providers/anthropic-baseprovider.d.ts +23 -0
  112. package/dist/providers/anthropic-baseprovider.js +114 -0
  113. package/dist/providers/anthropic.d.ts +19 -43
  114. package/dist/providers/anthropic.js +81 -305
  115. package/dist/providers/azure-openai.d.ts +20 -0
  116. package/dist/providers/azure-openai.js +89 -0
  117. package/dist/providers/google-ai-studio.d.ts +23 -0
  118. package/dist/providers/google-ai-studio.js +108 -0
  119. package/dist/providers/google-vertex.d.ts +47 -0
  120. package/dist/providers/google-vertex.js +205 -0
  121. package/dist/providers/huggingFace.d.ts +32 -25
  122. package/dist/providers/huggingFace.js +96 -430
  123. package/dist/providers/index.d.ts +9 -9
  124. package/dist/providers/index.js +9 -9
  125. package/dist/providers/mcp-provider.js +4 -0
  126. package/dist/providers/mistral.d.ts +42 -0
  127. package/dist/providers/mistral.js +160 -0
  128. package/dist/providers/ollama.d.ts +52 -36
  129. package/dist/providers/ollama.js +297 -519
  130. package/dist/providers/openAI.d.ts +19 -18
  131. package/dist/providers/openAI.js +76 -276
  132. package/dist/sdk/tool-extension.d.ts +181 -0
  133. package/dist/sdk/tool-extension.js +283 -0
  134. package/dist/sdk/tool-registration.d.ts +95 -0
  135. package/dist/sdk/tool-registration.js +168 -0
  136. package/dist/types/generate-types.d.ts +1 -0
  137. package/dist/types/mcp-types.d.ts +116 -0
  138. package/dist/types/mcp-types.js +5 -0
  139. package/dist/types/stream-types.d.ts +30 -18
  140. package/dist/types/universal-provider-options.d.ts +87 -0
  141. package/dist/types/universal-provider-options.js +53 -0
  142. package/package.json +15 -10
  143. package/dist/lib/providers/agent-enhanced-provider.d.ts +0 -93
  144. package/dist/lib/providers/agent-enhanced-provider.js +0 -605
  145. package/dist/lib/providers/amazonBedrock.d.ts +0 -28
  146. package/dist/lib/providers/amazonBedrock.js +0 -364
  147. package/dist/lib/providers/azureOpenAI.d.ts +0 -42
  148. package/dist/lib/providers/azureOpenAI.js +0 -347
  149. package/dist/lib/providers/googleAIStudio.d.ts +0 -42
  150. package/dist/lib/providers/googleAIStudio.js +0 -364
  151. package/dist/lib/providers/googleVertexAI.d.ts +0 -34
  152. package/dist/lib/providers/googleVertexAI.js +0 -547
  153. package/dist/lib/providers/mistralAI.d.ts +0 -37
  154. package/dist/lib/providers/mistralAI.js +0 -325
  155. package/dist/providers/agent-enhanced-provider.d.ts +0 -93
  156. package/dist/providers/agent-enhanced-provider.js +0 -606
  157. package/dist/providers/amazonBedrock.d.ts +0 -28
  158. package/dist/providers/amazonBedrock.js +0 -364
  159. package/dist/providers/azureOpenAI.d.ts +0 -42
  160. package/dist/providers/azureOpenAI.js +0 -348
  161. package/dist/providers/googleAIStudio.d.ts +0 -42
  162. package/dist/providers/googleAIStudio.js +0 -364
  163. package/dist/providers/googleVertexAI.d.ts +0 -34
  164. package/dist/providers/googleVertexAI.js +0 -547
  165. package/dist/providers/mistralAI.d.ts +0 -37
  166. package/dist/providers/mistralAI.js +0 -325
@@ -0,0 +1,107 @@
1
+ import { ProviderFactory } from "./provider-factory.js";
2
+ // ✅ FINAL CIRCULAR DEPENDENCY FIX: Lazy loading all providers
3
+ // Removed all static imports - providers loaded dynamically when needed
4
+ // This breaks the circular dependency chain completely
5
+ import { AIProviderName, GoogleAIModels, OpenAIModels } from "../core/types.js";
6
+ import { logger } from "../utils/logger.js";
7
+ /**
8
+ * Provider Registry - registers all providers with the factory
9
+ * This is where we migrate providers one by one to the new pattern
10
+ */
11
+ export class ProviderRegistry {
12
+ static registered = false;
13
+ static options = {
14
+ enableManualMCP: false, // Default to disabled for safety
15
+ };
16
+ /**
17
+ * Register all providers with the factory
18
+ */
19
+ static async registerAllProviders() {
20
+ if (this.registered) {
21
+ return;
22
+ }
23
+ try {
24
+ // ✅ LAZY LOADING: Register providers with dynamic import factory functions
25
+ const { ProviderFactory } = await import("./provider-factory.js");
26
+ // Register Google AI Studio Provider (our validated baseline)
27
+ ProviderFactory.registerProvider(AIProviderName.GOOGLE_AI, async (modelName, providerName, sdk) => {
28
+ const { GoogleAIStudioProvider } = await import("../providers/google-ai-studio.js");
29
+ return new GoogleAIStudioProvider(modelName, sdk);
30
+ }, GoogleAIModels.GEMINI_2_5_FLASH, ["google-ai-studio", "google", "gemini", "google-ai"]);
31
+ // Register OpenAI provider
32
+ ProviderFactory.registerProvider(AIProviderName.OPENAI, async (modelName, providerName, sdk) => {
33
+ const { OpenAIProvider } = await import("../providers/openAI.js");
34
+ return new OpenAIProvider(modelName);
35
+ }, OpenAIModels.GPT_4O_MINI, ["gpt", "chatgpt"]);
36
+ // Register Anthropic provider
37
+ ProviderFactory.registerProvider(AIProviderName.ANTHROPIC, async (modelName, providerName, sdk) => {
38
+ const { AnthropicProvider } = await import("../providers/anthropic.js");
39
+ return new AnthropicProvider(modelName, sdk);
40
+ }, "claude-3-5-sonnet-20241022", ["claude", "anthropic"]);
41
+ // Register Amazon Bedrock provider
42
+ ProviderFactory.registerProvider(AIProviderName.BEDROCK, async (modelName) => {
43
+ const { AmazonBedrockProvider } = await import("../providers/amazon-bedrock.js");
44
+ return new AmazonBedrockProvider(modelName);
45
+ }, undefined, // Let provider read BEDROCK_MODEL from .env
46
+ ["bedrock", "aws"]);
47
+ // Register Azure OpenAI provider
48
+ ProviderFactory.registerProvider(AIProviderName.AZURE, async (modelName) => {
49
+ const { AzureOpenAIProvider } = await import("../providers/azure-openai.js");
50
+ return new AzureOpenAIProvider(modelName);
51
+ }, "gpt-4o-mini", ["azure", "azure-openai"]);
52
+ // Register Google Vertex AI provider
53
+ ProviderFactory.registerProvider(AIProviderName.VERTEX, async (modelName) => {
54
+ const { GoogleVertexProvider } = await import("../providers/google-vertex.js");
55
+ return new GoogleVertexProvider(modelName);
56
+ }, "gemini-2.5-pro", ["vertex", "google-vertex"]);
57
+ // Register Hugging Face provider (Unified Router implementation)
58
+ ProviderFactory.registerProvider(AIProviderName.HUGGINGFACE, async (modelName) => {
59
+ const { HuggingFaceProvider } = await import("../providers/huggingFace.js");
60
+ return new HuggingFaceProvider(modelName);
61
+ }, process.env.HUGGINGFACE_MODEL || "microsoft/DialoGPT-medium", ["huggingface", "hf"]);
62
+ // Register Mistral AI provider
63
+ ProviderFactory.registerProvider(AIProviderName.MISTRAL, async (modelName, providerName, sdk) => {
64
+ const { MistralProvider } = await import("../providers/mistral.js");
65
+ return new MistralProvider(modelName, sdk);
66
+ }, "mistral-large-latest", ["mistral"]);
67
+ // Register Ollama provider
68
+ ProviderFactory.registerProvider(AIProviderName.OLLAMA, async (modelName) => {
69
+ const { OllamaProvider } = await import("../providers/ollama.js");
70
+ return new OllamaProvider(modelName);
71
+ }, process.env.OLLAMA_MODEL || "llama3.1:8b", ["ollama", "local"]);
72
+ logger.debug("All providers registered successfully");
73
+ this.registered = true;
74
+ }
75
+ catch (error) {
76
+ logger.error("Failed to register providers:", error);
77
+ throw error;
78
+ }
79
+ }
80
+ /**
81
+ * Check if providers are registered
82
+ */
83
+ static isRegistered() {
84
+ return this.registered;
85
+ }
86
+ /**
87
+ * Clear registrations (for testing)
88
+ */
89
+ static clearRegistrations() {
90
+ ProviderFactory.clearRegistrations();
91
+ this.registered = false;
92
+ }
93
+ /**
94
+ * Set registry options (should be called before initialization)
95
+ */
96
+ static setOptions(options) {
97
+ this.options = { ...this.options, ...options };
98
+ logger.debug("Provider registry options updated:", this.options);
99
+ }
100
+ /**
101
+ * Get current registry options
102
+ */
103
+ static getOptions() {
104
+ return { ...this.options };
105
+ }
106
+ }
107
+ // Note: Providers are registered explicitly when needed to avoid circular dependencies
package/dist/index.d.ts CHANGED
@@ -12,12 +12,13 @@ export type { AIProvider, AIProviderName, ProviderConfig, StreamingOptions, Prov
12
12
  export type { GenerateOptions, GenerateResult, EnhancedProvider, } from "./types/generate-types.js";
13
13
  export { CompatibilityConversionFactory } from "./factories/compatibility-factory.js";
14
14
  export { ProviderGenerateFactory } from "./factories/provider-generate-factory.js";
15
+ export type { SimpleTool, ToolContext } from "./sdk/tool-registration.js";
16
+ export { createTool, createTypedTool, validateTool, } from "./sdk/tool-registration.js";
17
+ export type { InMemoryMCPServerConfig, InMemoryToolInfo, InMemoryToolResult, } from "./types/mcp-types.js";
15
18
  export { BedrockModels, OpenAIModels, VertexModels, DEFAULT_PROVIDER_CONFIGS, } from "./core/types.js";
16
- export { GoogleVertexAI, AmazonBedrock, OpenAI, AnthropicProvider, AzureOpenAIProvider, } from "./providers/index.js";
17
- export type { ProviderName } from "./providers/index.js";
18
- export { PROVIDERS, AVAILABLE_PROVIDERS } from "./providers/index.js";
19
19
  export { getBestProvider, getAvailableProviders, isValidProvider, } from "./utils/providerUtils.js";
20
20
  export { NeuroLink } from "./neurolink.js";
21
+ export type { ProviderStatus, MCPStatus, MCPServerInfo } from "./neurolink.js";
21
22
  export declare const VERSION = "1.0.0";
22
23
  /**
23
24
  * Quick start factory function
package/dist/index.js CHANGED
@@ -11,14 +11,12 @@ import { AIProviderFactory } from "./core/factory.js";
11
11
  export { AIProviderFactory };
12
12
  export { CompatibilityConversionFactory } from "./factories/compatibility-factory.js";
13
13
  export { ProviderGenerateFactory } from "./factories/provider-generate-factory.js";
14
+ export { createTool, createTypedTool, validateTool, } from "./sdk/tool-registration.js";
14
15
  // Model enums
15
16
  export { BedrockModels, OpenAIModels, VertexModels, DEFAULT_PROVIDER_CONFIGS, } from "./core/types.js";
16
- // Provider exports
17
- export { GoogleVertexAI, AmazonBedrock, OpenAI, AnthropicProvider, AzureOpenAIProvider, } from "./providers/index.js";
18
- export { PROVIDERS, AVAILABLE_PROVIDERS } from "./providers/index.js";
19
17
  // Utility exports
20
18
  export { getBestProvider, getAvailableProviders, isValidProvider, } from "./utils/providerUtils.js";
21
- // Main NeuroLink wrapper class
19
+ // Main NeuroLink wrapper class and diagnostic types
22
20
  export { NeuroLink } from "./neurolink.js";
23
21
  // Version
24
22
  export const VERSION = "1.0.0";
@@ -220,8 +220,8 @@ export declare const directAgentTools: {
220
220
  mode: z.ZodDefault<z.ZodEnum<["create", "overwrite", "append"]>>;
221
221
  }, "strip", z.ZodTypeAny, {
222
222
  path: string;
223
- mode: "create" | "overwrite" | "append";
224
223
  content: string;
224
+ mode: "create" | "overwrite" | "append";
225
225
  }, {
226
226
  path: string;
227
227
  content: string;
@@ -250,8 +250,8 @@ export declare const directAgentTools: {
250
250
  }> & {
251
251
  execute: (args: {
252
252
  path: string;
253
- mode: "create" | "overwrite" | "append";
254
253
  content: string;
254
+ mode: "create" | "overwrite" | "append";
255
255
  }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
256
256
  success: boolean;
257
257
  error: string;
@@ -563,8 +563,8 @@ export declare function getToolsForCategory(category?: "basic" | "filesystem" |
563
563
  mode: z.ZodDefault<z.ZodEnum<["create", "overwrite", "append"]>>;
564
564
  }, "strip", z.ZodTypeAny, {
565
565
  path: string;
566
- mode: "create" | "overwrite" | "append";
567
566
  content: string;
567
+ mode: "create" | "overwrite" | "append";
568
568
  }, {
569
569
  path: string;
570
570
  content: string;
@@ -593,8 +593,8 @@ export declare function getToolsForCategory(category?: "basic" | "filesystem" |
593
593
  }> & {
594
594
  execute: (args: {
595
595
  path: string;
596
- mode: "create" | "overwrite" | "append";
597
596
  content: string;
597
+ mode: "create" | "overwrite" | "append";
598
598
  }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
599
599
  success: boolean;
600
600
  error: string;
@@ -907,8 +907,8 @@ export declare function getToolsForCategory(category?: "basic" | "filesystem" |
907
907
  mode: z.ZodDefault<z.ZodEnum<["create", "overwrite", "append"]>>;
908
908
  }, "strip", z.ZodTypeAny, {
909
909
  path: string;
910
- mode: "create" | "overwrite" | "append";
911
910
  content: string;
911
+ mode: "create" | "overwrite" | "append";
912
912
  }, {
913
913
  path: string;
914
914
  content: string;
@@ -937,8 +937,8 @@ export declare function getToolsForCategory(category?: "basic" | "filesystem" |
937
937
  }> & {
938
938
  execute: (args: {
939
939
  path: string;
940
- mode: "create" | "overwrite" | "append";
941
940
  content: string;
941
+ mode: "create" | "overwrite" | "append";
942
942
  }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
943
943
  success: boolean;
944
944
  error: string;
@@ -0,0 +1,423 @@
1
+ import type { ZodType, ZodTypeDef } from "zod";
2
+ import type { Schema } from "ai";
3
+ import type { Tool } from "ai";
4
+ import type { AIProvider, TextGenerationOptions, EnhancedGenerateResult, AnalyticsData, AIProviderName } from "../core/types.js";
5
+ import type { StreamOptions, StreamResult } from "../types/stream-types.js";
6
+ /**
7
+ * Abstract base class for all AI providers
8
+ * Tools are integrated as first-class citizens - always available by default
9
+ */
10
+ export declare abstract class BaseProvider implements AIProvider {
11
+ protected readonly modelName: string;
12
+ protected readonly providerName: AIProviderName;
13
+ protected readonly defaultTimeout: number;
14
+ protected readonly directTools: {
15
+ getCurrentTime: Tool<import("zod").ZodObject<{
16
+ timezone: import("zod").ZodOptional<import("zod").ZodString>;
17
+ }, "strip", import("zod").ZodTypeAny, {
18
+ timezone?: string | undefined;
19
+ }, {
20
+ timezone?: string | undefined;
21
+ }>, {
22
+ success: boolean;
23
+ time: string;
24
+ timezone: string;
25
+ iso: string;
26
+ timestamp?: undefined;
27
+ error?: undefined;
28
+ } | {
29
+ success: boolean;
30
+ time: string;
31
+ iso: string;
32
+ timestamp: number;
33
+ timezone?: undefined;
34
+ error?: undefined;
35
+ } | {
36
+ success: boolean;
37
+ error: string;
38
+ time?: undefined;
39
+ timezone?: undefined;
40
+ iso?: undefined;
41
+ timestamp?: undefined;
42
+ }> & {
43
+ execute: (args: {
44
+ timezone?: string | undefined;
45
+ }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
46
+ success: boolean;
47
+ time: string;
48
+ timezone: string;
49
+ iso: string;
50
+ timestamp?: undefined;
51
+ error?: undefined;
52
+ } | {
53
+ success: boolean;
54
+ time: string;
55
+ iso: string;
56
+ timestamp: number;
57
+ timezone?: undefined;
58
+ error?: undefined;
59
+ } | {
60
+ success: boolean;
61
+ error: string;
62
+ time?: undefined;
63
+ timezone?: undefined;
64
+ iso?: undefined;
65
+ timestamp?: undefined;
66
+ }>;
67
+ };
68
+ readFile: Tool<import("zod").ZodObject<{
69
+ path: import("zod").ZodString;
70
+ }, "strip", import("zod").ZodTypeAny, {
71
+ path: string;
72
+ }, {
73
+ path: string;
74
+ }>, {
75
+ success: boolean;
76
+ error: string;
77
+ content?: undefined;
78
+ size?: undefined;
79
+ path?: undefined;
80
+ lastModified?: undefined;
81
+ } | {
82
+ success: boolean;
83
+ content: string;
84
+ size: number;
85
+ path: string;
86
+ lastModified: string;
87
+ error?: undefined;
88
+ } | {
89
+ success: boolean;
90
+ error: string;
91
+ path: string;
92
+ content?: undefined;
93
+ size?: undefined;
94
+ lastModified?: undefined;
95
+ }> & {
96
+ execute: (args: {
97
+ path: string;
98
+ }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
99
+ success: boolean;
100
+ error: string;
101
+ content?: undefined;
102
+ size?: undefined;
103
+ path?: undefined;
104
+ lastModified?: undefined;
105
+ } | {
106
+ success: boolean;
107
+ content: string;
108
+ size: number;
109
+ path: string;
110
+ lastModified: string;
111
+ error?: undefined;
112
+ } | {
113
+ success: boolean;
114
+ error: string;
115
+ path: string;
116
+ content?: undefined;
117
+ size?: undefined;
118
+ lastModified?: undefined;
119
+ }>;
120
+ };
121
+ listDirectory: Tool<import("zod").ZodObject<{
122
+ path: import("zod").ZodString;
123
+ includeHidden: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
124
+ }, "strip", import("zod").ZodTypeAny, {
125
+ path: string;
126
+ includeHidden: boolean;
127
+ }, {
128
+ path: string;
129
+ includeHidden?: boolean | undefined;
130
+ }>, {
131
+ success: boolean;
132
+ path: string;
133
+ items: {
134
+ name: string;
135
+ type: string;
136
+ size: number | undefined;
137
+ lastModified: string;
138
+ }[];
139
+ count: number;
140
+ error?: undefined;
141
+ } | {
142
+ success: boolean;
143
+ error: string;
144
+ path: string;
145
+ items?: undefined;
146
+ count?: undefined;
147
+ }> & {
148
+ execute: (args: {
149
+ path: string;
150
+ includeHidden: boolean;
151
+ }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
152
+ success: boolean;
153
+ path: string;
154
+ items: {
155
+ name: string;
156
+ type: string;
157
+ size: number | undefined;
158
+ lastModified: string;
159
+ }[];
160
+ count: number;
161
+ error?: undefined;
162
+ } | {
163
+ success: boolean;
164
+ error: string;
165
+ path: string;
166
+ items?: undefined;
167
+ count?: undefined;
168
+ }>;
169
+ };
170
+ calculateMath: Tool<import("zod").ZodObject<{
171
+ expression: import("zod").ZodString;
172
+ precision: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
173
+ }, "strip", import("zod").ZodTypeAny, {
174
+ expression: string;
175
+ precision: number;
176
+ }, {
177
+ expression: string;
178
+ precision?: number | undefined;
179
+ }>, {
180
+ success: boolean;
181
+ error: string;
182
+ expression?: undefined;
183
+ result?: undefined;
184
+ type?: undefined;
185
+ } | {
186
+ success: boolean;
187
+ expression: string;
188
+ result: any;
189
+ type: "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
190
+ error?: undefined;
191
+ } | {
192
+ success: boolean;
193
+ error: string;
194
+ expression: string;
195
+ result?: undefined;
196
+ type?: undefined;
197
+ }> & {
198
+ execute: (args: {
199
+ expression: string;
200
+ precision: number;
201
+ }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
202
+ success: boolean;
203
+ error: string;
204
+ expression?: undefined;
205
+ result?: undefined;
206
+ type?: undefined;
207
+ } | {
208
+ success: boolean;
209
+ expression: string;
210
+ result: any;
211
+ type: "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
212
+ error?: undefined;
213
+ } | {
214
+ success: boolean;
215
+ error: string;
216
+ expression: string;
217
+ result?: undefined;
218
+ type?: undefined;
219
+ }>;
220
+ };
221
+ writeFile: Tool<import("zod").ZodObject<{
222
+ path: import("zod").ZodString;
223
+ content: import("zod").ZodString;
224
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<["create", "overwrite", "append"]>>;
225
+ }, "strip", import("zod").ZodTypeAny, {
226
+ path: string;
227
+ content: string;
228
+ mode: "create" | "overwrite" | "append";
229
+ }, {
230
+ path: string;
231
+ content: string;
232
+ mode?: "create" | "overwrite" | "append" | undefined;
233
+ }>, {
234
+ success: boolean;
235
+ error: string;
236
+ path?: undefined;
237
+ mode?: undefined;
238
+ size?: undefined;
239
+ written?: undefined;
240
+ } | {
241
+ success: boolean;
242
+ path: string;
243
+ mode: "create" | "overwrite" | "append";
244
+ size: number;
245
+ written: number;
246
+ error?: undefined;
247
+ } | {
248
+ success: boolean;
249
+ error: string;
250
+ path: string;
251
+ mode?: undefined;
252
+ size?: undefined;
253
+ written?: undefined;
254
+ }> & {
255
+ execute: (args: {
256
+ path: string;
257
+ content: string;
258
+ mode: "create" | "overwrite" | "append";
259
+ }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
260
+ success: boolean;
261
+ error: string;
262
+ path?: undefined;
263
+ mode?: undefined;
264
+ size?: undefined;
265
+ written?: undefined;
266
+ } | {
267
+ success: boolean;
268
+ path: string;
269
+ mode: "create" | "overwrite" | "append";
270
+ size: number;
271
+ written: number;
272
+ error?: undefined;
273
+ } | {
274
+ success: boolean;
275
+ error: string;
276
+ path: string;
277
+ mode?: undefined;
278
+ size?: undefined;
279
+ written?: undefined;
280
+ }>;
281
+ };
282
+ searchFiles: Tool<import("zod").ZodObject<{
283
+ directory: import("zod").ZodString;
284
+ pattern: import("zod").ZodString;
285
+ recursive: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
286
+ }, "strip", import("zod").ZodTypeAny, {
287
+ directory: string;
288
+ pattern: string;
289
+ recursive: boolean;
290
+ }, {
291
+ directory: string;
292
+ pattern: string;
293
+ recursive?: boolean | undefined;
294
+ }>, {
295
+ success: boolean;
296
+ error: string;
297
+ directory?: undefined;
298
+ pattern?: undefined;
299
+ matches?: undefined;
300
+ count?: undefined;
301
+ } | {
302
+ success: boolean;
303
+ directory: string;
304
+ pattern: string;
305
+ matches: {
306
+ name: string;
307
+ path: string;
308
+ size: number;
309
+ lastModified: string;
310
+ }[];
311
+ count: number;
312
+ error?: undefined;
313
+ } | {
314
+ success: boolean;
315
+ error: string;
316
+ directory: string;
317
+ pattern: string;
318
+ matches?: undefined;
319
+ count?: undefined;
320
+ }> & {
321
+ execute: (args: {
322
+ directory: string;
323
+ pattern: string;
324
+ recursive: boolean;
325
+ }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
326
+ success: boolean;
327
+ error: string;
328
+ directory?: undefined;
329
+ pattern?: undefined;
330
+ matches?: undefined;
331
+ count?: undefined;
332
+ } | {
333
+ success: boolean;
334
+ directory: string;
335
+ pattern: string;
336
+ matches: {
337
+ name: string;
338
+ path: string;
339
+ size: number;
340
+ lastModified: string;
341
+ }[];
342
+ count: number;
343
+ error?: undefined;
344
+ } | {
345
+ success: boolean;
346
+ error: string;
347
+ directory: string;
348
+ pattern: string;
349
+ matches?: undefined;
350
+ count?: undefined;
351
+ }>;
352
+ };
353
+ };
354
+ protected mcpTools?: Record<string, Tool>;
355
+ protected sessionId?: string;
356
+ protected userId?: string;
357
+ protected sdk?: any;
358
+ constructor(modelName?: string, providerName?: AIProviderName, sdk?: any);
359
+ /**
360
+ * Check if this provider supports tool/function calling
361
+ * Override in subclasses to disable tools for specific providers or models
362
+ * @returns true by default, providers can override to return false
363
+ */
364
+ supportsTools(): boolean;
365
+ /**
366
+ * Primary streaming method - implements AIProvider interface
367
+ * When tools are involved, falls back to generate() with synthetic streaming
368
+ */
369
+ stream(optionsOrPrompt: StreamOptions | string, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
370
+ /**
371
+ * Text generation method - implements AIProvider interface
372
+ * Tools are always available unless explicitly disabled
373
+ */
374
+ generate(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<EnhancedGenerateResult | null>;
375
+ /**
376
+ * Alias for generate method - implements AIProvider interface
377
+ */
378
+ gen(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<EnhancedGenerateResult | null>;
379
+ /**
380
+ * Provider-specific streaming implementation (only used when tools are disabled)
381
+ */
382
+ protected abstract executeStream(options: StreamOptions, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
383
+ /**
384
+ * Get the provider name
385
+ */
386
+ protected abstract getProviderName(): AIProviderName;
387
+ /**
388
+ * Get the default model for this provider
389
+ */
390
+ protected abstract getDefaultModel(): string;
391
+ /**
392
+ * REQUIRED: Every provider MUST implement this method
393
+ * Returns the Vercel AI SDK model instance for this provider
394
+ */
395
+ protected abstract getAISDKModel(): any | Promise<any>;
396
+ /**
397
+ * Get all available tools - direct tools are ALWAYS available
398
+ * MCP tools are added when available (without blocking)
399
+ */
400
+ protected getAllTools(): Promise<Record<string, Tool>>;
401
+ /**
402
+ * Set session context for MCP tools
403
+ */
404
+ setSessionContext(sessionId?: string, userId?: string): void;
405
+ /**
406
+ * Provider-specific error handling
407
+ */
408
+ protected abstract handleProviderError(error: any): Error;
409
+ protected normalizeTextOptions(optionsOrPrompt: TextGenerationOptions | string): TextGenerationOptions;
410
+ protected normalizeStreamOptions(optionsOrPrompt: StreamOptions | string): StreamOptions;
411
+ protected enhanceResult(result: EnhancedGenerateResult, options: TextGenerationOptions, startTime: number): Promise<EnhancedGenerateResult>;
412
+ protected createAnalytics(result: EnhancedGenerateResult, responseTime: number, options: TextGenerationOptions): Promise<AnalyticsData>;
413
+ protected createEvaluation(result: EnhancedGenerateResult, options: TextGenerationOptions): Promise<any>;
414
+ protected validateOptions(options: TextGenerationOptions): void;
415
+ protected getProviderInfo(): {
416
+ provider: string;
417
+ model: string;
418
+ };
419
+ /**
420
+ * Get timeout value in milliseconds
421
+ */
422
+ getTimeout(options: TextGenerationOptions | StreamOptions): number;
423
+ }