@aeye/ai 0.1.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 (54) hide show
  1. package/README.md +1324 -0
  2. package/dist/ai.d.ts +204 -0
  3. package/dist/ai.d.ts.map +1 -0
  4. package/dist/ai.js +837 -0
  5. package/dist/ai.js.map +1 -0
  6. package/dist/apis/base.d.ts +181 -0
  7. package/dist/apis/base.d.ts.map +1 -0
  8. package/dist/apis/base.js +359 -0
  9. package/dist/apis/base.js.map +1 -0
  10. package/dist/apis/chat.d.ts +82 -0
  11. package/dist/apis/chat.d.ts.map +1 -0
  12. package/dist/apis/chat.js +214 -0
  13. package/dist/apis/chat.js.map +1 -0
  14. package/dist/apis/embed.d.ts +27 -0
  15. package/dist/apis/embed.d.ts.map +1 -0
  16. package/dist/apis/embed.js +70 -0
  17. package/dist/apis/embed.js.map +1 -0
  18. package/dist/apis/image.d.ts +77 -0
  19. package/dist/apis/image.d.ts.map +1 -0
  20. package/dist/apis/image.js +313 -0
  21. package/dist/apis/image.js.map +1 -0
  22. package/dist/apis/models.d.ts +108 -0
  23. package/dist/apis/models.d.ts.map +1 -0
  24. package/dist/apis/models.js +118 -0
  25. package/dist/apis/models.js.map +1 -0
  26. package/dist/apis/speech.d.ts +27 -0
  27. package/dist/apis/speech.d.ts.map +1 -0
  28. package/dist/apis/speech.js +79 -0
  29. package/dist/apis/speech.js.map +1 -0
  30. package/dist/apis/transcribe.d.ts +26 -0
  31. package/dist/apis/transcribe.d.ts.map +1 -0
  32. package/dist/apis/transcribe.js +103 -0
  33. package/dist/apis/transcribe.js.map +1 -0
  34. package/dist/common.d.ts +10 -0
  35. package/dist/common.d.ts.map +1 -0
  36. package/dist/common.js +17 -0
  37. package/dist/common.js.map +1 -0
  38. package/dist/index.d.ts +17 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +17 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/modelDetection.d.ts +31 -0
  43. package/dist/modelDetection.d.ts.map +1 -0
  44. package/dist/modelDetection.js +78 -0
  45. package/dist/modelDetection.js.map +1 -0
  46. package/dist/registry.d.ts +150 -0
  47. package/dist/registry.d.ts.map +1 -0
  48. package/dist/registry.js +639 -0
  49. package/dist/registry.js.map +1 -0
  50. package/dist/types.d.ts +767 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +8 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +53 -0
package/dist/ai.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Base API
3
+ *
4
+ * Abstract base class for all AI API implementations.
5
+ * Implements the template method pattern to eliminate code duplication.
6
+ */
7
+ import { BaseChunk, BaseRequest, BaseResponse } from '@aeye/core';
8
+ import type { AI } from '../ai';
9
+ import type { AIBaseTypes, AIContext, AIContextRequired, ModelCapability, ModelHandlerFor, ModelParameter, OptionalParams, SelectedModelFor, Usage } from '../types';
10
+ /**
11
+ * Abstract base class for all API implementations
12
+ *
13
+ * Provides the complete lifecycle for AI operations with variation points
14
+ * for subclass-specific behavior.
15
+ *
16
+ * @template T - AIBaseTypes container with all type information
17
+ * @template TRequest - Request type for this API
18
+ * @template TResponse - Response type for this API
19
+ * @template TChunk - Chunk type for streaming (use never if no streaming)
20
+ */
21
+ export declare abstract class BaseAPI<T extends AIBaseTypes, TRequest extends BaseRequest = BaseRequest, TResponse extends BaseResponse = BaseResponse, TChunk extends BaseChunk = BaseChunk> {
22
+ protected ai: AI<T>;
23
+ constructor(ai: AI<T>);
24
+ /**
25
+ * Gets the selected model for a given request and context.
26
+ *
27
+ * @param request - The request to get the model for
28
+ * @param ctx - The AI context
29
+ * @returns
30
+ */
31
+ getModelFor<TRuntimeContext extends AIContext<T>>(request: TRequest, ctx: TRuntimeContext, forStreaming: boolean): Promise<SelectedModelFor<T> | null>;
32
+ /**
33
+ * Execute a non-streaming request
34
+ *
35
+ * Single optional context parameter pattern
36
+ */
37
+ get<TRuntimeContext extends AIContextRequired<T>>(request: TRequest, ...[ctx]: OptionalParams<[TRuntimeContext]>): Promise<TResponse>;
38
+ /**
39
+ * Execute a streaming request
40
+ *
41
+ * Single optional context parameter pattern
42
+ */
43
+ stream<TRuntimeContext extends AIContextRequired<T>>(request: TRequest, ...[ctx]: OptionalParams<[TRuntimeContext]>): AsyncIterable<TChunk>;
44
+ /**
45
+ * Get required capabilities for model selection
46
+ * @param provided - Additional capabilities provided by caller
47
+ * @param request - Optional request to analyze for additional capability needs
48
+ */
49
+ protected abstract getRequiredCapabilities(provided: ModelCapability[], request: TRequest, forStreaming: boolean): ModelCapability[];
50
+ /**
51
+ * Get required parameters for model selection based on the request
52
+ * @param request - The request to analyze
53
+ * @returns Set of parameters required by this request
54
+ */
55
+ protected abstract getRequiredParameters(provided: ModelParameter[], request: TRequest, forStreaming: boolean): ModelParameter[];
56
+ /**
57
+ * Get error message when no compatible model is found
58
+ */
59
+ protected abstract getNoModelFoundError(): string;
60
+ /**
61
+ * Get error type string for error handling
62
+ * @param operation - Whether this is a request or stream operation
63
+ */
64
+ protected abstract getErrorType(operation: 'request' | 'stream'): string;
65
+ /**
66
+ * Get error message for error handling
67
+ * @param operation - Whether this is a request or stream operation
68
+ */
69
+ protected abstract getErrorMessage(operation: 'request' | 'stream'): string;
70
+ /**
71
+ * Execute the request with the selected provider
72
+ * Called by executeRequestWithFallback when handler doesn't provide get method
73
+ * @param request - The request to execute
74
+ * @param selected - The selected model and provider
75
+ * @param ctx - The execution context
76
+ */
77
+ protected abstract executeRequest<TRuntimeContext extends AIContext<T>>(request: TRequest, selected: SelectedModelFor<T>, ctx: TRuntimeContext): Promise<TResponse>;
78
+ /**
79
+ * Stream the request with the selected provider
80
+ * Called by streamRequestWithFallback when handler doesn't provide stream method
81
+ * @param request - The request to stream
82
+ * @param selected - The selected model and provider
83
+ * @param ctx - The execution context
84
+ */
85
+ protected abstract executeStreamRequest<TRuntimeContext extends AIContext<T>>(request: TRequest, selected: SelectedModelFor<T>, ctx: TRuntimeContext): AsyncIterable<TChunk>;
86
+ /**
87
+ * Convert a response to a single chunk (for executor-to-streamer fallback)
88
+ * @param response - The response to convert
89
+ */
90
+ protected abstract responseToChunks(response: TResponse): TChunk[];
91
+ /**
92
+ * Convert accumulated chunks to a response (for streamer-to-executor fallback)
93
+ * @param chunks - Array of chunks to convert
94
+ */
95
+ protected abstract chunksToResponse(chunks: TChunk[], model: string): TResponse;
96
+ /**
97
+ * Check if the provider supports non-streaming execution for this operation
98
+ * @param selected - The selected model and provider
99
+ */
100
+ protected abstract hasProviderExecutor(selected: SelectedModelFor<T>): boolean;
101
+ /**
102
+ * Check if the provider supports streaming execution for this operation
103
+ * @param selected - The selected model and provider
104
+ */
105
+ protected abstract hasProviderStreamer(selected: SelectedModelFor<T>): boolean;
106
+ /**
107
+ * Get the appropriate handler get method for this API
108
+ * Subclasses can override to specify which handler method to use
109
+ */
110
+ protected abstract getHandlerGetMethod<TRuntimeContext extends AIContext<T>>(handler?: ModelHandlerFor<T>): ((request: TRequest, ctx: TRuntimeContext) => Promise<TResponse>) | undefined;
111
+ /**
112
+ * Get the appropriate handler stream method for this API
113
+ * Subclasses can override to specify which handler method to use
114
+ */
115
+ protected abstract getHandlerStreamMethod<TRuntimeContext extends AIContext<T>>(handler?: ModelHandlerFor<T>): ((request: TRequest, ctx: TRuntimeContext) => AsyncIterable<TChunk>) | undefined;
116
+ /**
117
+ * Get required capabilities for streaming (default: adds 'streaming')
118
+ * @param provided - Additional capabilities provided by caller
119
+ * @param request - Optional request to analyze for additional capability needs
120
+ */
121
+ protected getRequiredCapabilitiesForStreaming(provided: ModelCapability[], request: TRequest): ModelCapability[];
122
+ /**
123
+ * Get error message for streaming when no compatible model is found
124
+ * (default: modifies base error to mention streaming)
125
+ */
126
+ protected getNoModelFoundErrorForStreaming(): string;
127
+ /**
128
+ * Estimate usage for the request
129
+ * (default: returns empty usage, subclasses should override)
130
+ * @param request - The request to estimate
131
+ * @param selected - The selected model and provider
132
+ */
133
+ protected estimateRequestUsage(request: TRequest, selected: SelectedModelFor<T>): Usage;
134
+ /**
135
+ * Estimate cost for a request before execution
136
+ *
137
+ * @param estimatedUsage - Estimated usage statistics
138
+ * @param selected - The selected model and provider
139
+ * @returns Estimated cost
140
+ */
141
+ protected estimateRequestCost(estimatedUsage: Usage, selected: SelectedModelFor<T>): number;
142
+ /**
143
+ * Calculate cost for a completed response
144
+ * (default: extracts from response.cost or calculates from usage)
145
+ * @param response - The response
146
+ * @param selected - The selected model and provider
147
+ * @param estimatedUsage - Estimated usage statistics
148
+ */
149
+ protected calculateResponseCost(response: TResponse, selected: SelectedModelFor<T>, estimatedUsage: Usage): number;
150
+ /**
151
+ * Calculate cost for a completed stream
152
+ * (default: calculates from accumulated usage)
153
+ * @param usage - Accumulated token usage
154
+ * @param selected - The selected model and provider
155
+ */
156
+ protected calculateStreamCost(usage: Usage, selected: SelectedModelFor<T>): number;
157
+ /**
158
+ * Extract usage from response
159
+ * (default: extracts from response.usage or uses estimate)
160
+ * @param response - The response
161
+ * @param estimatedUsage - Estimated usage statistics
162
+ */
163
+ protected extractUsage(response: TResponse, estimatedUsage: Usage): Usage;
164
+ /**
165
+ * Execute request with fallback logic:
166
+ * 1. Try handler.get() if available
167
+ * 2. Try handler-specific method (e.g., handler.chat.get)
168
+ * 3. Try executeRequest() (provider method)
169
+ * 4. Try streamer-to-executor conversion if provider has streamer
170
+ */
171
+ protected executeRequestWithFallback<TRuntimeContext extends AIContext<T>>(request: TRequest, selected: SelectedModelFor<T>, ctx: TRuntimeContext, handler?: ModelHandlerFor<T>): Promise<TResponse>;
172
+ /**
173
+ * Stream request with fallback logic:
174
+ * 1. Try handler.stream() if available
175
+ * 2. Try handler-specific method (e.g., handler.chat.stream)
176
+ * 3. Try executeStreamRequest() (provider streaming method)
177
+ * 4. Try executor-to-streamer conversion if provider has executor
178
+ */
179
+ protected streamRequestWithFallback<TRuntimeContext extends AIContext<T>>(request: TRequest, selected: SelectedModelFor<T>, ctx: TRuntimeContext, handler?: ModelHandlerFor<T>): AsyncIterable<TChunk>;
180
+ }
181
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/apis/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
1
+ /**
2
+ * Base API
3
+ *
4
+ * Abstract base class for all AI API implementations.
5
+ * Implements the template method pattern to eliminate code duplication.
6
+ */
7
+ import { accumulateUsage, getModel } from '@aeye/core';
8
+ import { isModelInfo } from '../common';
9
+ /**
10
+ * Abstract base class for all API implementations
11
+ *
12
+ * Provides the complete lifecycle for AI operations with variation points
13
+ * for subclass-specific behavior.
14
+ *
15
+ * @template T - AIBaseTypes container with all type information
16
+ * @template TRequest - Request type for this API
17
+ * @template TResponse - Response type for this API
18
+ * @template TChunk - Chunk type for streaming (use never if no streaming)
19
+ */
20
+ export class BaseAPI {
21
+ ai;
22
+ constructor(ai) {
23
+ this.ai = ai;
24
+ }
25
+ /**
26
+ * Gets the selected model for a given request and context.
27
+ *
28
+ * @param request - The request to get the model for
29
+ * @param ctx - The AI context
30
+ * @returns
31
+ */
32
+ async getModelFor(request, ctx, forStreaming) {
33
+ const { hooks, registry } = this.ai;
34
+ // Check if model is already specified
35
+ const model = getModel(request.model || ctx.metadata?.model);
36
+ if (model) {
37
+ const modelInfo = isModelInfo(model)
38
+ ? model
39
+ : registry.getModel(model.id);
40
+ if (modelInfo) {
41
+ const provider = registry.getProvider(modelInfo.provider)
42
+ ?? registry.getProviderFor(model.id)[1];
43
+ if (!provider) {
44
+ return null;
45
+ }
46
+ return {
47
+ model: modelInfo,
48
+ provider: provider,
49
+ score: 1.0,
50
+ };
51
+ }
52
+ else {
53
+ const { contextWindow = 0, maxOutputTokens = 0 } = model;
54
+ const [providerKey, provider] = this.ai.registry.getProviderFor(model.id);
55
+ if (!provider || !providerKey) {
56
+ return null;
57
+ }
58
+ return {
59
+ model: {
60
+ id: model.id,
61
+ provider: providerKey,
62
+ name: model.id,
63
+ capabilities: new Set(),
64
+ tier: 'flagship',
65
+ pricing: {},
66
+ contextWindow,
67
+ maxOutputTokens,
68
+ },
69
+ provider,
70
+ score: 1.0,
71
+ };
72
+ }
73
+ }
74
+ else {
75
+ // No model specified - use selection system
76
+ // Build metadata with required capabilities and parameters
77
+ const metadataRequired = {
78
+ ...ctx.metadata,
79
+ required: this.getRequiredCapabilities(ctx.metadata?.required || [], request, forStreaming),
80
+ requiredParameters: this.getRequiredParameters(ctx.metadata?.requiredParameters || [], request, forStreaming),
81
+ };
82
+ // Build metadata from what used passed in context
83
+ const metadata = await this.ai.buildMetadata(metadataRequired);
84
+ // Run beforeModelSelection hook to affect which model might be selected (like restricting providers, zdr, etc)
85
+ const enrichedMetadata = hooks.beforeModelSelection
86
+ ? await hooks.beforeModelSelection(ctx, request, metadata)
87
+ : metadata;
88
+ // Select model
89
+ const dynamicSelection = registry.selectModel(enrichedMetadata);
90
+ if (!dynamicSelection) {
91
+ return null;
92
+ }
93
+ return dynamicSelection;
94
+ }
95
+ }
96
+ /**
97
+ * Execute a non-streaming request
98
+ *
99
+ * Single optional context parameter pattern
100
+ */
101
+ async get(request, ...[ctx]) {
102
+ const { hooks, registry } = this.ai;
103
+ let latestCtx = ctx;
104
+ try {
105
+ // Build full context
106
+ const fullCtx = await this.ai.buildContext(ctx || {});
107
+ latestCtx = fullCtx;
108
+ // Get model for request
109
+ const selected = await this.getModelFor(request, fullCtx, false);
110
+ if (!selected) {
111
+ throw new Error(this.getNoModelFoundError());
112
+ }
113
+ // Inject selected model into context for provider access
114
+ fullCtx.metadata = {
115
+ ...fullCtx.metadata,
116
+ model: selected.model,
117
+ };
118
+ // Run onModelSelected hook
119
+ const finalSelected = (await hooks.onModelSelected?.(fullCtx, request, selected)) || selected;
120
+ // Estimate usage
121
+ const estimatedUsage = this.estimateRequestUsage(request, finalSelected);
122
+ const estimatedCost = this.estimateRequestCost(estimatedUsage, finalSelected);
123
+ // Run beforeRequest hook (hook can override provider config)
124
+ await hooks.beforeRequest?.(fullCtx, request, finalSelected, estimatedUsage, estimatedCost);
125
+ // Get handler if available
126
+ const handler = registry.getHandler(finalSelected.model.provider, finalSelected.model.id);
127
+ // Execute request with fallback logic
128
+ const response = await this.executeRequestWithFallback(request, finalSelected, fullCtx, handler);
129
+ // Calculate cost and extract usage
130
+ const usage = this.extractUsage(response, estimatedUsage);
131
+ const cost = this.calculateResponseCost(response, finalSelected, estimatedUsage);
132
+ // Run afterRequest hook
133
+ await hooks.afterRequest?.(fullCtx, request, response, true, finalSelected, usage, cost);
134
+ return response;
135
+ }
136
+ catch (error) {
137
+ hooks.onError?.(this.getErrorType('request'), this.getErrorMessage('request'), error instanceof Error ? error : undefined, latestCtx, request);
138
+ throw error;
139
+ }
140
+ }
141
+ /**
142
+ * Execute a streaming request
143
+ *
144
+ * Single optional context parameter pattern
145
+ */
146
+ async *stream(request, ...[ctx]) {
147
+ const { hooks, registry } = this.ai;
148
+ let latestCtx = ctx;
149
+ try {
150
+ // Build full context
151
+ const fullCtx = await this.ai.buildContext(ctx || {});
152
+ latestCtx = fullCtx;
153
+ // Get model for request
154
+ const selected = await this.getModelFor(request, fullCtx, true);
155
+ if (!selected) {
156
+ throw new Error(this.getNoModelFoundErrorForStreaming());
157
+ }
158
+ // Inject selected model into context for provider access
159
+ fullCtx.metadata = {
160
+ ...fullCtx.metadata,
161
+ model: selected.model.id,
162
+ };
163
+ // Run onModelSelected hook
164
+ const finalSelected = hooks.onModelSelected
165
+ ? (await hooks.onModelSelected(fullCtx, request, selected)) || selected
166
+ : selected;
167
+ // Estimate usage
168
+ const estimatedUsage = this.estimateRequestUsage(request, finalSelected);
169
+ const estimatedCost = this.estimateRequestCost(estimatedUsage, finalSelected);
170
+ // Run beforeRequest hook
171
+ await hooks.beforeRequest?.(fullCtx, request, finalSelected, estimatedUsage, estimatedCost);
172
+ // Get handler if available
173
+ const handler = registry.getHandler(finalSelected.model.provider, finalSelected.model.id);
174
+ // Stream request and accumulate usage
175
+ const accumulatedUsage = {};
176
+ const chunks = [];
177
+ let finished = false;
178
+ try {
179
+ for await (const chunk of this.streamRequestWithFallback(request, finalSelected, fullCtx, handler)) {
180
+ const usage = chunk.usage;
181
+ if (usage) {
182
+ accumulateUsage(accumulatedUsage, usage);
183
+ }
184
+ chunks.push(chunk);
185
+ yield chunk;
186
+ }
187
+ finished = true;
188
+ }
189
+ finally {
190
+ // Calculate cost
191
+ const cost = this.calculateStreamCost(accumulatedUsage, finalSelected);
192
+ // Build response from chunks
193
+ const response = this.chunksToResponse(chunks, finalSelected.model.id);
194
+ // Run afterRequest hook
195
+ await hooks.afterRequest?.(fullCtx, request, response, finished, finalSelected, accumulatedUsage, cost);
196
+ }
197
+ }
198
+ catch (error) {
199
+ hooks.onError?.(this.getErrorType('stream'), this.getErrorMessage('stream'), error instanceof Error ? error : undefined, latestCtx, request);
200
+ throw error;
201
+ }
202
+ }
203
+ // ============================================================================
204
+ // OPTIONAL OVERRIDES (default implementations provided)
205
+ // ============================================================================
206
+ /**
207
+ * Get required capabilities for streaming (default: adds 'streaming')
208
+ * @param provided - Additional capabilities provided by caller
209
+ * @param request - Optional request to analyze for additional capability needs
210
+ */
211
+ getRequiredCapabilitiesForStreaming(provided, request) {
212
+ return [...this.getRequiredCapabilities(provided, request, true), 'streaming'];
213
+ }
214
+ /**
215
+ * Get error message for streaming when no compatible model is found
216
+ * (default: modifies base error to mention streaming)
217
+ */
218
+ getNoModelFoundErrorForStreaming() {
219
+ return this.getNoModelFoundError().replace('criteria', 'streaming criteria');
220
+ }
221
+ /**
222
+ * Estimate usage for the request
223
+ * (default: returns empty usage, subclasses should override)
224
+ * @param request - The request to estimate
225
+ * @param selected - The selected model and provider
226
+ */
227
+ estimateRequestUsage(request, selected) {
228
+ return {};
229
+ }
230
+ /**
231
+ * Estimate cost for a request before execution
232
+ *
233
+ * @param estimatedUsage - Estimated usage statistics
234
+ * @param selected - The selected model and provider
235
+ * @returns Estimated cost
236
+ */
237
+ estimateRequestCost(estimatedUsage, selected) {
238
+ // If no cost provided, calculate it
239
+ return this.ai.calculateCost(selected.model, estimatedUsage);
240
+ }
241
+ /**
242
+ * Calculate cost for a completed response
243
+ * (default: extracts from response.cost or calculates from usage)
244
+ * @param response - The response
245
+ * @param selected - The selected model and provider
246
+ * @param estimatedUsage - Estimated usage statistics
247
+ */
248
+ calculateResponseCost(response, selected, estimatedUsage) {
249
+ // Otherwise extract usage and check if cost is included
250
+ const usage = this.extractUsage(response, estimatedUsage);
251
+ if (usage.cost !== undefined) {
252
+ return usage.cost;
253
+ }
254
+ // If no cost provided, calculate it
255
+ return this.ai.calculateCost(selected.model, usage);
256
+ }
257
+ /**
258
+ * Calculate cost for a completed stream
259
+ * (default: calculates from accumulated usage)
260
+ * @param usage - Accumulated token usage
261
+ * @param selected - The selected model and provider
262
+ */
263
+ calculateStreamCost(usage, selected) {
264
+ // If cost is already included in usage, return it
265
+ if (usage.cost !== undefined) {
266
+ return usage.cost;
267
+ }
268
+ return this.ai.calculateCost(selected.model, usage);
269
+ }
270
+ /**
271
+ * Extract usage from response
272
+ * (default: extracts from response.usage or uses estimate)
273
+ * @param response - The response
274
+ * @param estimatedUsage - Estimated usage statistics
275
+ */
276
+ extractUsage(response, estimatedUsage) {
277
+ // Try to extract from response
278
+ const usage = response.usage;
279
+ if (usage)
280
+ return usage;
281
+ // Otherwise use estimate
282
+ return estimatedUsage;
283
+ }
284
+ /**
285
+ * Execute request with fallback logic:
286
+ * 1. Try handler.get() if available
287
+ * 2. Try handler-specific method (e.g., handler.chat.get)
288
+ * 3. Try executeRequest() (provider method)
289
+ * 4. Try streamer-to-executor conversion if provider has streamer
290
+ */
291
+ async executeRequestWithFallback(request, selected, ctx, handler) {
292
+ // Try handler first
293
+ const handlerMethod = this.getHandlerGetMethod(handler);
294
+ if (handlerMethod) {
295
+ return await handlerMethod(request, ctx);
296
+ }
297
+ // Try provider executor
298
+ if (this.hasProviderExecutor(selected)) {
299
+ return await this.executeRequest(request, selected, ctx);
300
+ }
301
+ // Fallback: try converting streamer to executor
302
+ const streamerMethod = this.getHandlerStreamMethod(handler);
303
+ if (streamerMethod) {
304
+ const chunks = [];
305
+ for await (const chunk of streamerMethod(request, ctx)) {
306
+ chunks.push(chunk);
307
+ }
308
+ return this.chunksToResponse(chunks, selected.model.id);
309
+ }
310
+ // Try provider streamer as fallback
311
+ if (this.hasProviderStreamer(selected)) {
312
+ const chunks = [];
313
+ for await (const chunk of this.executeStreamRequest(request, selected, ctx)) {
314
+ chunks.push(chunk);
315
+ }
316
+ return this.chunksToResponse(chunks, selected.model.id);
317
+ }
318
+ throw new Error(`Provider "${selected.model.provider}" does not support non-streaming requests for this operation and no fallback is available`);
319
+ }
320
+ /**
321
+ * Stream request with fallback logic:
322
+ * 1. Try handler.stream() if available
323
+ * 2. Try handler-specific method (e.g., handler.chat.stream)
324
+ * 3. Try executeStreamRequest() (provider streaming method)
325
+ * 4. Try executor-to-streamer conversion if provider has executor
326
+ */
327
+ async *streamRequestWithFallback(request, selected, ctx, handler) {
328
+ // Try handler first
329
+ const handlerMethod = this.getHandlerStreamMethod(handler);
330
+ if (handlerMethod) {
331
+ yield* handlerMethod(request, ctx);
332
+ return;
333
+ }
334
+ // Try provider streamer
335
+ if (this.hasProviderStreamer(selected)) {
336
+ yield* this.executeStreamRequest(request, selected, ctx);
337
+ return;
338
+ }
339
+ // Fallback: try converting executor to streamer
340
+ const getMethod = this.getHandlerGetMethod(handler);
341
+ if (getMethod) {
342
+ const response = await getMethod(request, ctx);
343
+ for (const chunk of this.responseToChunks(response)) {
344
+ yield chunk;
345
+ }
346
+ return;
347
+ }
348
+ // Try provider executor as fallback
349
+ if (this.hasProviderExecutor(selected)) {
350
+ const response = await this.executeRequest(request, selected, ctx);
351
+ for (const chunk of this.responseToChunks(response)) {
352
+ yield chunk;
353
+ }
354
+ return;
355
+ }
356
+ throw new Error(`Provider "${selected.model.provider}" does not support streaming requests for this operation and no fallback is available`);
357
+ }
358
+ }
359
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/apis/base.ts"],"names":[],"mappings":"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"}