@juspay/neurolink 5.0.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 (214) hide show
  1. package/CHANGELOG.md +20 -7
  2. package/README.md +160 -172
  3. package/dist/agent/direct-tools.d.ts +6 -6
  4. package/dist/chat/sse-handler.js +5 -4
  5. package/dist/chat/websocket-chat-handler.js +9 -9
  6. package/dist/cli/commands/config.d.ts +3 -3
  7. package/dist/cli/commands/mcp.js +9 -8
  8. package/dist/cli/commands/ollama.js +3 -3
  9. package/dist/cli/factories/command-factory.d.ts +18 -0
  10. package/dist/cli/factories/command-factory.js +183 -0
  11. package/dist/cli/index.js +105 -157
  12. package/dist/cli/utils/interactive-setup.js +2 -2
  13. package/dist/core/base-provider.d.ts +423 -0
  14. package/dist/core/base-provider.js +365 -0
  15. package/dist/core/constants.d.ts +1 -1
  16. package/dist/core/constants.js +1 -1
  17. package/dist/core/dynamic-models.d.ts +6 -6
  18. package/dist/core/evaluation.d.ts +19 -80
  19. package/dist/core/evaluation.js +185 -484
  20. package/dist/core/factory.d.ts +3 -3
  21. package/dist/core/factory.js +31 -91
  22. package/dist/core/service-registry.d.ts +47 -0
  23. package/dist/core/service-registry.js +112 -0
  24. package/dist/core/types.d.ts +49 -49
  25. package/dist/core/types.js +1 -0
  26. package/dist/factories/compatibility-factory.d.ts +20 -0
  27. package/dist/factories/compatibility-factory.js +69 -0
  28. package/dist/factories/provider-factory.d.ts +72 -0
  29. package/dist/factories/provider-factory.js +144 -0
  30. package/dist/factories/provider-generate-factory.d.ts +20 -0
  31. package/dist/factories/provider-generate-factory.js +87 -0
  32. package/dist/factories/provider-registry.d.ts +38 -0
  33. package/dist/factories/provider-registry.js +107 -0
  34. package/dist/index.d.ts +8 -5
  35. package/dist/index.js +5 -5
  36. package/dist/lib/agent/direct-tools.d.ts +6 -6
  37. package/dist/lib/chat/sse-handler.js +5 -4
  38. package/dist/lib/chat/websocket-chat-handler.js +9 -9
  39. package/dist/lib/core/base-provider.d.ts +423 -0
  40. package/dist/lib/core/base-provider.js +365 -0
  41. package/dist/lib/core/constants.d.ts +1 -1
  42. package/dist/lib/core/constants.js +1 -1
  43. package/dist/lib/core/dynamic-models.d.ts +6 -6
  44. package/dist/lib/core/evaluation.d.ts +19 -80
  45. package/dist/lib/core/evaluation.js +185 -484
  46. package/dist/lib/core/factory.d.ts +3 -3
  47. package/dist/lib/core/factory.js +30 -91
  48. package/dist/lib/core/service-registry.d.ts +47 -0
  49. package/dist/lib/core/service-registry.js +112 -0
  50. package/dist/lib/core/types.d.ts +49 -49
  51. package/dist/lib/core/types.js +1 -0
  52. package/dist/lib/factories/compatibility-factory.d.ts +20 -0
  53. package/dist/lib/factories/compatibility-factory.js +69 -0
  54. package/dist/lib/factories/provider-factory.d.ts +72 -0
  55. package/dist/lib/factories/provider-factory.js +144 -0
  56. package/dist/lib/factories/provider-generate-factory.d.ts +20 -0
  57. package/dist/lib/factories/provider-generate-factory.js +87 -0
  58. package/dist/lib/factories/provider-registry.d.ts +38 -0
  59. package/dist/lib/factories/provider-registry.js +107 -0
  60. package/dist/lib/index.d.ts +8 -5
  61. package/dist/lib/index.js +5 -5
  62. package/dist/lib/mcp/client.js +5 -5
  63. package/dist/lib/mcp/config.js +28 -3
  64. package/dist/lib/mcp/dynamic-orchestrator.js +8 -8
  65. package/dist/lib/mcp/external-client.js +2 -2
  66. package/dist/lib/mcp/factory.d.ts +1 -1
  67. package/dist/lib/mcp/factory.js +1 -1
  68. package/dist/lib/mcp/function-calling.js +1 -1
  69. package/dist/lib/mcp/initialize-tools.d.ts +1 -1
  70. package/dist/lib/mcp/initialize-tools.js +45 -1
  71. package/dist/lib/mcp/initialize.js +16 -6
  72. package/dist/lib/mcp/neurolink-mcp-client.js +10 -10
  73. package/dist/lib/mcp/orchestrator.js +4 -4
  74. package/dist/lib/mcp/servers/agent/direct-tools-server.d.ts +8 -0
  75. package/dist/lib/mcp/servers/agent/direct-tools-server.js +109 -0
  76. package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.js +10 -10
  77. package/dist/lib/mcp/servers/ai-providers/ai-core-server.js +8 -6
  78. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  79. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.js +16 -16
  80. package/dist/lib/mcp/unified-registry.d.ts +4 -0
  81. package/dist/lib/mcp/unified-registry.js +42 -9
  82. package/dist/lib/neurolink.d.ts +161 -174
  83. package/dist/lib/neurolink.js +723 -397
  84. package/dist/lib/providers/amazon-bedrock.d.ts +32 -0
  85. package/dist/lib/providers/amazon-bedrock.js +143 -0
  86. package/dist/lib/providers/analytics-helper.js +7 -4
  87. package/dist/lib/providers/anthropic-baseprovider.d.ts +23 -0
  88. package/dist/lib/providers/anthropic-baseprovider.js +114 -0
  89. package/dist/lib/providers/anthropic.d.ts +19 -39
  90. package/dist/lib/providers/anthropic.js +84 -378
  91. package/dist/lib/providers/azure-openai.d.ts +20 -0
  92. package/dist/lib/providers/azure-openai.js +89 -0
  93. package/dist/lib/providers/function-calling-provider.d.ts +14 -12
  94. package/dist/lib/providers/function-calling-provider.js +114 -64
  95. package/dist/lib/providers/google-ai-studio.d.ts +23 -0
  96. package/dist/lib/providers/google-ai-studio.js +107 -0
  97. package/dist/lib/providers/google-vertex.d.ts +47 -0
  98. package/dist/lib/providers/google-vertex.js +205 -0
  99. package/dist/lib/providers/huggingFace.d.ts +33 -27
  100. package/dist/lib/providers/huggingFace.js +103 -400
  101. package/dist/lib/providers/index.d.ts +9 -9
  102. package/dist/lib/providers/index.js +9 -9
  103. package/dist/lib/providers/mcp-provider.d.ts +13 -8
  104. package/dist/lib/providers/mcp-provider.js +63 -18
  105. package/dist/lib/providers/mistral.d.ts +42 -0
  106. package/dist/lib/providers/mistral.js +160 -0
  107. package/dist/lib/providers/ollama.d.ts +52 -35
  108. package/dist/lib/providers/ollama.js +297 -477
  109. package/dist/lib/providers/openAI.d.ts +21 -21
  110. package/dist/lib/providers/openAI.js +81 -245
  111. package/dist/lib/sdk/tool-extension.d.ts +181 -0
  112. package/dist/lib/sdk/tool-extension.js +283 -0
  113. package/dist/lib/sdk/tool-registration.d.ts +95 -0
  114. package/dist/lib/sdk/tool-registration.js +167 -0
  115. package/dist/lib/types/generate-types.d.ts +80 -0
  116. package/dist/lib/types/generate-types.js +1 -0
  117. package/dist/lib/types/mcp-types.d.ts +116 -0
  118. package/dist/lib/types/mcp-types.js +5 -0
  119. package/dist/lib/types/stream-types.d.ts +95 -0
  120. package/dist/lib/types/stream-types.js +1 -0
  121. package/dist/lib/types/universal-provider-options.d.ts +87 -0
  122. package/dist/lib/types/universal-provider-options.js +53 -0
  123. package/dist/lib/utils/providerUtils-fixed.js +1 -1
  124. package/dist/lib/utils/streaming-utils.d.ts +14 -2
  125. package/dist/lib/utils/streaming-utils.js +0 -3
  126. package/dist/mcp/client.js +5 -5
  127. package/dist/mcp/config.js +28 -3
  128. package/dist/mcp/dynamic-orchestrator.js +8 -8
  129. package/dist/mcp/external-client.js +2 -2
  130. package/dist/mcp/factory.d.ts +1 -1
  131. package/dist/mcp/factory.js +1 -1
  132. package/dist/mcp/function-calling.js +1 -1
  133. package/dist/mcp/initialize-tools.d.ts +1 -1
  134. package/dist/mcp/initialize-tools.js +45 -1
  135. package/dist/mcp/initialize.js +16 -6
  136. package/dist/mcp/neurolink-mcp-client.js +10 -10
  137. package/dist/mcp/orchestrator.js +4 -4
  138. package/dist/mcp/servers/agent/direct-tools-server.d.ts +8 -0
  139. package/dist/mcp/servers/agent/direct-tools-server.js +109 -0
  140. package/dist/mcp/servers/ai-providers/ai-analysis-tools.js +10 -10
  141. package/dist/mcp/servers/ai-providers/ai-core-server.js +8 -6
  142. package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  143. package/dist/mcp/servers/ai-providers/ai-workflow-tools.js +16 -16
  144. package/dist/mcp/unified-registry.d.ts +4 -0
  145. package/dist/mcp/unified-registry.js +42 -9
  146. package/dist/neurolink.d.ts +161 -174
  147. package/dist/neurolink.js +723 -397
  148. package/dist/providers/amazon-bedrock.d.ts +32 -0
  149. package/dist/providers/amazon-bedrock.js +143 -0
  150. package/dist/providers/analytics-helper.js +7 -4
  151. package/dist/providers/anthropic-baseprovider.d.ts +23 -0
  152. package/dist/providers/anthropic-baseprovider.js +114 -0
  153. package/dist/providers/anthropic.d.ts +19 -39
  154. package/dist/providers/anthropic.js +83 -377
  155. package/dist/providers/azure-openai.d.ts +20 -0
  156. package/dist/providers/azure-openai.js +89 -0
  157. package/dist/providers/function-calling-provider.d.ts +14 -12
  158. package/dist/providers/function-calling-provider.js +114 -64
  159. package/dist/providers/google-ai-studio.d.ts +23 -0
  160. package/dist/providers/google-ai-studio.js +108 -0
  161. package/dist/providers/google-vertex.d.ts +47 -0
  162. package/dist/providers/google-vertex.js +205 -0
  163. package/dist/providers/huggingFace.d.ts +33 -27
  164. package/dist/providers/huggingFace.js +102 -399
  165. package/dist/providers/index.d.ts +9 -9
  166. package/dist/providers/index.js +9 -9
  167. package/dist/providers/mcp-provider.d.ts +13 -8
  168. package/dist/providers/mcp-provider.js +63 -18
  169. package/dist/providers/mistral.d.ts +42 -0
  170. package/dist/providers/mistral.js +160 -0
  171. package/dist/providers/ollama.d.ts +52 -35
  172. package/dist/providers/ollama.js +297 -476
  173. package/dist/providers/openAI.d.ts +21 -21
  174. package/dist/providers/openAI.js +81 -246
  175. package/dist/sdk/tool-extension.d.ts +181 -0
  176. package/dist/sdk/tool-extension.js +283 -0
  177. package/dist/sdk/tool-registration.d.ts +95 -0
  178. package/dist/sdk/tool-registration.js +168 -0
  179. package/dist/types/generate-types.d.ts +80 -0
  180. package/dist/types/generate-types.js +1 -0
  181. package/dist/types/mcp-types.d.ts +116 -0
  182. package/dist/types/mcp-types.js +5 -0
  183. package/dist/types/stream-types.d.ts +95 -0
  184. package/dist/types/stream-types.js +1 -0
  185. package/dist/types/universal-provider-options.d.ts +87 -0
  186. package/dist/types/universal-provider-options.js +53 -0
  187. package/dist/utils/providerUtils-fixed.js +1 -1
  188. package/dist/utils/streaming-utils.d.ts +14 -2
  189. package/dist/utils/streaming-utils.js +0 -3
  190. package/package.json +15 -10
  191. package/dist/lib/providers/agent-enhanced-provider.d.ts +0 -89
  192. package/dist/lib/providers/agent-enhanced-provider.js +0 -614
  193. package/dist/lib/providers/amazonBedrock.d.ts +0 -19
  194. package/dist/lib/providers/amazonBedrock.js +0 -334
  195. package/dist/lib/providers/azureOpenAI.d.ts +0 -39
  196. package/dist/lib/providers/azureOpenAI.js +0 -436
  197. package/dist/lib/providers/googleAIStudio.d.ts +0 -49
  198. package/dist/lib/providers/googleAIStudio.js +0 -333
  199. package/dist/lib/providers/googleVertexAI.d.ts +0 -38
  200. package/dist/lib/providers/googleVertexAI.js +0 -519
  201. package/dist/lib/providers/mistralAI.d.ts +0 -34
  202. package/dist/lib/providers/mistralAI.js +0 -294
  203. package/dist/providers/agent-enhanced-provider.d.ts +0 -89
  204. package/dist/providers/agent-enhanced-provider.js +0 -614
  205. package/dist/providers/amazonBedrock.d.ts +0 -19
  206. package/dist/providers/amazonBedrock.js +0 -334
  207. package/dist/providers/azureOpenAI.d.ts +0 -39
  208. package/dist/providers/azureOpenAI.js +0 -437
  209. package/dist/providers/googleAIStudio.d.ts +0 -49
  210. package/dist/providers/googleAIStudio.js +0 -333
  211. package/dist/providers/googleVertexAI.d.ts +0 -38
  212. package/dist/providers/googleVertexAI.js +0 -519
  213. package/dist/providers/mistralAI.d.ts +0 -34
  214. package/dist/providers/mistralAI.js +0 -294
@@ -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
+ }