@juspay/neurolink 5.1.0 → 5.3.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 (190) hide show
  1. package/CHANGELOG.md +21 -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 +63 -8
  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 +376 -0
  11. package/dist/core/constants.d.ts +2 -1
  12. package/dist/core/constants.js +2 -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 +376 -0
  31. package/dist/lib/core/constants.d.ts +2 -1
  32. package/dist/lib/core/constants.js +2 -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/client.d.ts +1 -0
  49. package/dist/lib/mcp/client.js +1 -0
  50. package/dist/lib/mcp/config.js +28 -3
  51. package/dist/lib/mcp/context-manager.d.ts +1 -0
  52. package/dist/lib/mcp/context-manager.js +8 -4
  53. package/dist/lib/mcp/function-calling.d.ts +13 -0
  54. package/dist/lib/mcp/function-calling.js +134 -35
  55. package/dist/lib/mcp/initialize-tools.d.ts +1 -1
  56. package/dist/lib/mcp/initialize-tools.js +45 -1
  57. package/dist/lib/mcp/initialize.js +16 -6
  58. package/dist/lib/mcp/neurolink-mcp-client.d.ts +1 -0
  59. package/dist/lib/mcp/neurolink-mcp-client.js +21 -5
  60. package/dist/lib/mcp/servers/agent/direct-tools-server.d.ts +8 -0
  61. package/dist/lib/mcp/servers/agent/direct-tools-server.js +109 -0
  62. package/dist/lib/mcp/servers/ai-providers/ai-core-server.js +3 -1
  63. package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  64. package/dist/lib/mcp/unified-registry.d.ts +4 -0
  65. package/dist/lib/mcp/unified-registry.js +42 -9
  66. package/dist/lib/neurolink.d.ts +156 -117
  67. package/dist/lib/neurolink.js +619 -404
  68. package/dist/lib/providers/amazon-bedrock.d.ts +32 -0
  69. package/dist/lib/providers/amazon-bedrock.js +143 -0
  70. package/dist/lib/providers/analytics-helper.js +7 -4
  71. package/dist/lib/providers/anthropic-baseprovider.d.ts +23 -0
  72. package/dist/lib/providers/anthropic-baseprovider.js +114 -0
  73. package/dist/lib/providers/anthropic.d.ts +19 -43
  74. package/dist/lib/providers/anthropic.js +82 -306
  75. package/dist/lib/providers/azure-openai.d.ts +20 -0
  76. package/dist/lib/providers/azure-openai.js +89 -0
  77. package/dist/lib/providers/function-calling-provider.d.ts +64 -2
  78. package/dist/lib/providers/function-calling-provider.js +208 -9
  79. package/dist/lib/providers/google-ai-studio.d.ts +23 -0
  80. package/dist/lib/providers/google-ai-studio.js +107 -0
  81. package/dist/lib/providers/google-vertex.d.ts +47 -0
  82. package/dist/lib/providers/google-vertex.js +205 -0
  83. package/dist/lib/providers/huggingFace.d.ts +32 -25
  84. package/dist/lib/providers/huggingFace.js +97 -431
  85. package/dist/lib/providers/index.d.ts +9 -9
  86. package/dist/lib/providers/index.js +9 -9
  87. package/dist/lib/providers/mcp-provider.js +24 -5
  88. package/dist/lib/providers/mistral.d.ts +42 -0
  89. package/dist/lib/providers/mistral.js +160 -0
  90. package/dist/lib/providers/ollama.d.ts +52 -36
  91. package/dist/lib/providers/ollama.js +297 -520
  92. package/dist/lib/providers/openAI.d.ts +19 -18
  93. package/dist/lib/providers/openAI.js +76 -275
  94. package/dist/lib/sdk/tool-extension.d.ts +181 -0
  95. package/dist/lib/sdk/tool-extension.js +283 -0
  96. package/dist/lib/sdk/tool-registration.d.ts +95 -0
  97. package/dist/lib/sdk/tool-registration.js +167 -0
  98. package/dist/lib/services/streaming/streaming-manager.js +11 -10
  99. package/dist/lib/services/websocket/websocket-server.js +12 -11
  100. package/dist/lib/telemetry/telemetry-service.js +8 -7
  101. package/dist/lib/types/generate-types.d.ts +1 -0
  102. package/dist/lib/types/mcp-types.d.ts +116 -0
  103. package/dist/lib/types/mcp-types.js +5 -0
  104. package/dist/lib/types/stream-types.d.ts +30 -18
  105. package/dist/lib/types/universal-provider-options.d.ts +87 -0
  106. package/dist/lib/types/universal-provider-options.js +53 -0
  107. package/dist/mcp/client.d.ts +1 -0
  108. package/dist/mcp/client.js +1 -0
  109. package/dist/mcp/config.js +28 -3
  110. package/dist/mcp/context-manager.d.ts +1 -0
  111. package/dist/mcp/context-manager.js +8 -4
  112. package/dist/mcp/function-calling.d.ts +13 -0
  113. package/dist/mcp/function-calling.js +134 -35
  114. package/dist/mcp/initialize-tools.d.ts +1 -1
  115. package/dist/mcp/initialize-tools.js +45 -1
  116. package/dist/mcp/initialize.js +16 -6
  117. package/dist/mcp/neurolink-mcp-client.d.ts +1 -0
  118. package/dist/mcp/neurolink-mcp-client.js +21 -5
  119. package/dist/mcp/servers/agent/direct-tools-server.d.ts +8 -0
  120. package/dist/mcp/servers/agent/direct-tools-server.js +109 -0
  121. package/dist/mcp/servers/ai-providers/ai-core-server.js +3 -1
  122. package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
  123. package/dist/mcp/unified-registry.d.ts +4 -0
  124. package/dist/mcp/unified-registry.js +42 -9
  125. package/dist/neurolink.d.ts +156 -117
  126. package/dist/neurolink.js +619 -404
  127. package/dist/providers/amazon-bedrock.d.ts +32 -0
  128. package/dist/providers/amazon-bedrock.js +143 -0
  129. package/dist/providers/analytics-helper.js +7 -4
  130. package/dist/providers/anthropic-baseprovider.d.ts +23 -0
  131. package/dist/providers/anthropic-baseprovider.js +114 -0
  132. package/dist/providers/anthropic.d.ts +19 -43
  133. package/dist/providers/anthropic.js +81 -305
  134. package/dist/providers/azure-openai.d.ts +20 -0
  135. package/dist/providers/azure-openai.js +89 -0
  136. package/dist/providers/function-calling-provider.d.ts +64 -2
  137. package/dist/providers/function-calling-provider.js +208 -9
  138. package/dist/providers/google-ai-studio.d.ts +23 -0
  139. package/dist/providers/google-ai-studio.js +108 -0
  140. package/dist/providers/google-vertex.d.ts +47 -0
  141. package/dist/providers/google-vertex.js +205 -0
  142. package/dist/providers/huggingFace.d.ts +32 -25
  143. package/dist/providers/huggingFace.js +96 -430
  144. package/dist/providers/index.d.ts +9 -9
  145. package/dist/providers/index.js +9 -9
  146. package/dist/providers/mcp-provider.js +24 -5
  147. package/dist/providers/mistral.d.ts +42 -0
  148. package/dist/providers/mistral.js +160 -0
  149. package/dist/providers/ollama.d.ts +52 -36
  150. package/dist/providers/ollama.js +297 -519
  151. package/dist/providers/openAI.d.ts +19 -18
  152. package/dist/providers/openAI.js +76 -276
  153. package/dist/sdk/tool-extension.d.ts +181 -0
  154. package/dist/sdk/tool-extension.js +283 -0
  155. package/dist/sdk/tool-registration.d.ts +95 -0
  156. package/dist/sdk/tool-registration.js +168 -0
  157. package/dist/services/streaming/streaming-manager.js +11 -10
  158. package/dist/services/websocket/websocket-server.js +12 -11
  159. package/dist/telemetry/telemetry-service.js +8 -7
  160. package/dist/types/generate-types.d.ts +1 -0
  161. package/dist/types/mcp-types.d.ts +116 -0
  162. package/dist/types/mcp-types.js +5 -0
  163. package/dist/types/stream-types.d.ts +30 -18
  164. package/dist/types/universal-provider-options.d.ts +87 -0
  165. package/dist/types/universal-provider-options.js +53 -0
  166. package/package.json +12 -5
  167. package/dist/lib/providers/agent-enhanced-provider.d.ts +0 -93
  168. package/dist/lib/providers/agent-enhanced-provider.js +0 -605
  169. package/dist/lib/providers/amazonBedrock.d.ts +0 -28
  170. package/dist/lib/providers/amazonBedrock.js +0 -364
  171. package/dist/lib/providers/azureOpenAI.d.ts +0 -42
  172. package/dist/lib/providers/azureOpenAI.js +0 -347
  173. package/dist/lib/providers/googleAIStudio.d.ts +0 -42
  174. package/dist/lib/providers/googleAIStudio.js +0 -364
  175. package/dist/lib/providers/googleVertexAI.d.ts +0 -34
  176. package/dist/lib/providers/googleVertexAI.js +0 -547
  177. package/dist/lib/providers/mistralAI.d.ts +0 -37
  178. package/dist/lib/providers/mistralAI.js +0 -325
  179. package/dist/providers/agent-enhanced-provider.d.ts +0 -93
  180. package/dist/providers/agent-enhanced-provider.js +0 -606
  181. package/dist/providers/amazonBedrock.d.ts +0 -28
  182. package/dist/providers/amazonBedrock.js +0 -364
  183. package/dist/providers/azureOpenAI.d.ts +0 -42
  184. package/dist/providers/azureOpenAI.js +0 -348
  185. package/dist/providers/googleAIStudio.d.ts +0 -42
  186. package/dist/providers/googleAIStudio.js +0 -364
  187. package/dist/providers/googleVertexAI.d.ts +0 -34
  188. package/dist/providers/googleVertexAI.js +0 -547
  189. package/dist/providers/mistralAI.d.ts +0 -37
  190. package/dist/providers/mistralAI.js +0 -325
@@ -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
+ }