@probeo/anymodel 0.3.0 → 0.4.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 (115) hide show
  1. package/README.md +5 -8
  2. package/dist/cli.cjs +1016 -110
  3. package/dist/cli.cjs.map +1 -1
  4. package/dist/cli.d.ts +0 -2
  5. package/dist/cli.js +2972 -30
  6. package/dist/cli.js.map +1 -1
  7. package/dist/index.cjs +1037 -112
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +106 -22
  10. package/dist/index.d.ts +632 -14
  11. package/dist/index.js +2969 -15
  12. package/dist/index.js.map +1 -1
  13. package/package.json +1 -1
  14. package/dist/batch/index.d.ts +0 -4
  15. package/dist/batch/index.d.ts.map +0 -1
  16. package/dist/batch/index.js +0 -3
  17. package/dist/batch/index.js.map +0 -1
  18. package/dist/batch/manager.d.ts +0 -72
  19. package/dist/batch/manager.d.ts.map +0 -1
  20. package/dist/batch/manager.js +0 -328
  21. package/dist/batch/manager.js.map +0 -1
  22. package/dist/batch/store.d.ts +0 -54
  23. package/dist/batch/store.d.ts.map +0 -1
  24. package/dist/batch/store.js +0 -109
  25. package/dist/batch/store.js.map +0 -1
  26. package/dist/cli.d.ts.map +0 -1
  27. package/dist/client.d.ts +0 -42
  28. package/dist/client.d.ts.map +0 -1
  29. package/dist/client.js +0 -181
  30. package/dist/client.js.map +0 -1
  31. package/dist/config.d.ts +0 -6
  32. package/dist/config.d.ts.map +0 -1
  33. package/dist/config.js +0 -120
  34. package/dist/config.js.map +0 -1
  35. package/dist/index.d.ts.map +0 -1
  36. package/dist/providers/adapter.d.ts +0 -33
  37. package/dist/providers/adapter.d.ts.map +0 -1
  38. package/dist/providers/adapter.js +0 -2
  39. package/dist/providers/adapter.js.map +0 -1
  40. package/dist/providers/anthropic-batch.d.ts +0 -3
  41. package/dist/providers/anthropic-batch.d.ts.map +0 -1
  42. package/dist/providers/anthropic-batch.js +0 -228
  43. package/dist/providers/anthropic-batch.js.map +0 -1
  44. package/dist/providers/anthropic.d.ts +0 -3
  45. package/dist/providers/anthropic.d.ts.map +0 -1
  46. package/dist/providers/anthropic.js +0 -358
  47. package/dist/providers/anthropic.js.map +0 -1
  48. package/dist/providers/custom.d.ts +0 -8
  49. package/dist/providers/custom.d.ts.map +0 -1
  50. package/dist/providers/custom.js +0 -61
  51. package/dist/providers/custom.js.map +0 -1
  52. package/dist/providers/google.d.ts +0 -3
  53. package/dist/providers/google.d.ts.map +0 -1
  54. package/dist/providers/google.js +0 -331
  55. package/dist/providers/google.js.map +0 -1
  56. package/dist/providers/index.d.ts +0 -6
  57. package/dist/providers/index.d.ts.map +0 -1
  58. package/dist/providers/index.js +0 -5
  59. package/dist/providers/index.js.map +0 -1
  60. package/dist/providers/openai-batch.d.ts +0 -3
  61. package/dist/providers/openai-batch.d.ts.map +0 -1
  62. package/dist/providers/openai-batch.js +0 -208
  63. package/dist/providers/openai-batch.js.map +0 -1
  64. package/dist/providers/openai.d.ts +0 -3
  65. package/dist/providers/openai.d.ts.map +0 -1
  66. package/dist/providers/openai.js +0 -221
  67. package/dist/providers/openai.js.map +0 -1
  68. package/dist/providers/registry.d.ts +0 -10
  69. package/dist/providers/registry.d.ts.map +0 -1
  70. package/dist/providers/registry.js +0 -27
  71. package/dist/providers/registry.js.map +0 -1
  72. package/dist/router.d.ts +0 -29
  73. package/dist/router.d.ts.map +0 -1
  74. package/dist/router.js +0 -212
  75. package/dist/router.js.map +0 -1
  76. package/dist/server.d.ts +0 -10
  77. package/dist/server.d.ts.map +0 -1
  78. package/dist/server.js +0 -149
  79. package/dist/server.js.map +0 -1
  80. package/dist/types.d.ts +0 -283
  81. package/dist/types.d.ts.map +0 -1
  82. package/dist/types.js +0 -21
  83. package/dist/types.js.map +0 -1
  84. package/dist/utils/fs-io.d.ts +0 -40
  85. package/dist/utils/fs-io.d.ts.map +0 -1
  86. package/dist/utils/fs-io.js +0 -203
  87. package/dist/utils/fs-io.js.map +0 -1
  88. package/dist/utils/generation-stats.d.ts +0 -25
  89. package/dist/utils/generation-stats.d.ts.map +0 -1
  90. package/dist/utils/generation-stats.js +0 -46
  91. package/dist/utils/generation-stats.js.map +0 -1
  92. package/dist/utils/id.d.ts +0 -2
  93. package/dist/utils/id.d.ts.map +0 -1
  94. package/dist/utils/id.js +0 -6
  95. package/dist/utils/id.js.map +0 -1
  96. package/dist/utils/model-parser.d.ts +0 -6
  97. package/dist/utils/model-parser.d.ts.map +0 -1
  98. package/dist/utils/model-parser.js +0 -21
  99. package/dist/utils/model-parser.js.map +0 -1
  100. package/dist/utils/rate-limiter.d.ts +0 -36
  101. package/dist/utils/rate-limiter.d.ts.map +0 -1
  102. package/dist/utils/rate-limiter.js +0 -80
  103. package/dist/utils/rate-limiter.js.map +0 -1
  104. package/dist/utils/retry.d.ts +0 -7
  105. package/dist/utils/retry.d.ts.map +0 -1
  106. package/dist/utils/retry.js +0 -54
  107. package/dist/utils/retry.js.map +0 -1
  108. package/dist/utils/transforms.d.ts +0 -7
  109. package/dist/utils/transforms.d.ts.map +0 -1
  110. package/dist/utils/transforms.js +0 -66
  111. package/dist/utils/transforms.js.map +0 -1
  112. package/dist/utils/validate.d.ts +0 -3
  113. package/dist/utils/validate.d.ts.map +0 -1
  114. package/dist/utils/validate.js +0 -31
  115. package/dist/utils/validate.js.map +0 -1
@@ -1,358 +0,0 @@
1
- import { AnyModelError } from '../types.js';
2
- import { generateId } from '../utils/id.js';
3
- const ANTHROPIC_API_BASE = 'https://api.anthropic.com/v1';
4
- const ANTHROPIC_VERSION = '2023-06-01';
5
- const DEFAULT_MAX_TOKENS = 4096;
6
- const SUPPORTED_PARAMS = new Set([
7
- 'temperature', 'max_tokens', 'top_p', 'top_k', 'stop', 'stream',
8
- 'tools', 'tool_choice', 'response_format',
9
- ]);
10
- // Fallback if API listing fails — kept current as of March 2026
11
- const FALLBACK_MODELS = [
12
- // Claude 4.6
13
- { id: 'anthropic/claude-opus-4-6', name: 'Claude Opus 4.6', created: 0, description: 'Most capable model', context_length: 200000, pricing: { prompt: '0.000015', completion: '0.000075' }, architecture: { modality: 'text+image->text', input_modalities: ['text', 'image'], output_modalities: ['text'], tokenizer: 'claude' }, top_provider: { context_length: 200000, max_completion_tokens: 32768, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS) },
14
- { id: 'anthropic/claude-sonnet-4-6', name: 'Claude Sonnet 4.6', created: 0, description: 'Best balance of speed and capability', context_length: 200000, pricing: { prompt: '0.000003', completion: '0.000015' }, architecture: { modality: 'text+image->text', input_modalities: ['text', 'image'], output_modalities: ['text'], tokenizer: 'claude' }, top_provider: { context_length: 200000, max_completion_tokens: 16384, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS) },
15
- // Claude 4.5
16
- { id: 'anthropic/claude-sonnet-4-5-20251022', name: 'Claude Sonnet 4.5', created: 0, description: 'Previous generation balanced model', context_length: 200000, pricing: { prompt: '0.000003', completion: '0.000015' }, architecture: { modality: 'text+image->text', input_modalities: ['text', 'image'], output_modalities: ['text'], tokenizer: 'claude' }, top_provider: { context_length: 200000, max_completion_tokens: 16384, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS) },
17
- { id: 'anthropic/claude-haiku-4-5', name: 'Claude Haiku 4.5', created: 0, description: 'Fast and compact', context_length: 200000, pricing: { prompt: '0.000001', completion: '0.000005' }, architecture: { modality: 'text+image->text', input_modalities: ['text', 'image'], output_modalities: ['text'], tokenizer: 'claude' }, top_provider: { context_length: 200000, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS) },
18
- // Claude 3.5
19
- { id: 'anthropic/claude-3-5-sonnet-20241022', name: 'Claude 3.5 Sonnet', created: 0, description: 'Legacy balanced model', context_length: 200000, pricing: { prompt: '0.000003', completion: '0.000015' }, architecture: { modality: 'text+image->text', input_modalities: ['text', 'image'], output_modalities: ['text'], tokenizer: 'claude' }, top_provider: { context_length: 200000, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS) },
20
- { id: 'anthropic/claude-3-5-haiku-20241022', name: 'Claude 3.5 Haiku', created: 0, description: 'Legacy fast model', context_length: 200000, pricing: { prompt: '0.0000008', completion: '0.000004' }, architecture: { modality: 'text+image->text', input_modalities: ['text', 'image'], output_modalities: ['text'], tokenizer: 'claude' }, top_provider: { context_length: 200000, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS) },
21
- ];
22
- export function createAnthropicAdapter(apiKey) {
23
- async function makeRequest(path, body, stream = false) {
24
- const res = await fetch(`${ANTHROPIC_API_BASE}${path}`, {
25
- method: 'POST',
26
- headers: {
27
- 'Content-Type': 'application/json',
28
- 'x-api-key': apiKey,
29
- 'anthropic-version': ANTHROPIC_VERSION,
30
- },
31
- body: JSON.stringify(body),
32
- });
33
- if (!res.ok) {
34
- let errorBody;
35
- try {
36
- errorBody = await res.json();
37
- }
38
- catch {
39
- errorBody = { message: res.statusText };
40
- }
41
- const msg = errorBody?.error?.message || errorBody?.message || res.statusText;
42
- throw new AnyModelError(mapErrorCode(res.status), msg, {
43
- provider_name: 'anthropic',
44
- raw: errorBody,
45
- });
46
- }
47
- return res;
48
- }
49
- function mapErrorCode(status) {
50
- if (status === 401 || status === 403)
51
- return 401;
52
- if (status === 429)
53
- return 429;
54
- if (status === 400 || status === 422)
55
- return 400;
56
- if (status === 529)
57
- return 502;
58
- if (status >= 500)
59
- return 502;
60
- return status;
61
- }
62
- function translateRequest(request) {
63
- const body = {
64
- model: request.model,
65
- max_tokens: request.max_tokens || DEFAULT_MAX_TOKENS,
66
- };
67
- // Extract system messages
68
- const systemMessages = request.messages.filter(m => m.role === 'system');
69
- const nonSystemMessages = request.messages.filter(m => m.role !== 'system');
70
- if (systemMessages.length > 0) {
71
- body.system = systemMessages
72
- .map(m => typeof m.content === 'string' ? m.content : '')
73
- .join('\n');
74
- }
75
- // Map messages
76
- body.messages = nonSystemMessages.map(m => ({
77
- role: m.role === 'tool' ? 'user' : m.role,
78
- content: m.tool_call_id
79
- ? [{ type: 'tool_result', tool_use_id: m.tool_call_id, content: typeof m.content === 'string' ? m.content : '' }]
80
- : m.content,
81
- }));
82
- // Map optional params
83
- if (request.temperature !== undefined)
84
- body.temperature = request.temperature;
85
- if (request.top_p !== undefined)
86
- body.top_p = request.top_p;
87
- if (request.top_k !== undefined)
88
- body.top_k = request.top_k;
89
- if (request.stop !== undefined)
90
- body.stop_sequences = Array.isArray(request.stop) ? request.stop : [request.stop];
91
- if (request.stream)
92
- body.stream = true;
93
- // Map tools
94
- if (request.tools && request.tools.length > 0) {
95
- body.tools = request.tools.map(t => ({
96
- name: t.function.name,
97
- description: t.function.description || '',
98
- input_schema: t.function.parameters || { type: 'object', properties: {} },
99
- }));
100
- if (request.tool_choice) {
101
- if (request.tool_choice === 'auto') {
102
- body.tool_choice = { type: 'auto' };
103
- }
104
- else if (request.tool_choice === 'required') {
105
- body.tool_choice = { type: 'any' };
106
- }
107
- else if (request.tool_choice === 'none') {
108
- // Omit tool_choice, don't send tools
109
- delete body.tools;
110
- }
111
- else if (typeof request.tool_choice === 'object') {
112
- body.tool_choice = { type: 'tool', name: request.tool_choice.function.name };
113
- }
114
- }
115
- }
116
- // Handle response_format
117
- if (request.response_format) {
118
- if (request.response_format.type === 'json_object' || request.response_format.type === 'json_schema') {
119
- // Prepend JSON instruction to system
120
- const jsonInstruction = 'Respond with valid JSON only. Do not include any text outside the JSON object.';
121
- body.system = body.system ? `${jsonInstruction}\n\n${body.system}` : jsonInstruction;
122
- }
123
- }
124
- return body;
125
- }
126
- function mapStopReason(reason) {
127
- switch (reason) {
128
- case 'end_turn': return 'stop';
129
- case 'max_tokens': return 'length';
130
- case 'tool_use': return 'tool_calls';
131
- case 'stop_sequence': return 'stop';
132
- default: return 'stop';
133
- }
134
- }
135
- function translateResponse(response) {
136
- const r = response;
137
- // Extract text content
138
- let content = '';
139
- const toolCalls = [];
140
- for (const block of r.content || []) {
141
- if (block.type === 'text') {
142
- content += block.text;
143
- }
144
- else if (block.type === 'tool_use') {
145
- toolCalls.push({
146
- id: block.id,
147
- type: 'function',
148
- function: {
149
- name: block.name,
150
- arguments: JSON.stringify(block.input),
151
- },
152
- });
153
- }
154
- }
155
- const message = {
156
- role: 'assistant',
157
- content,
158
- };
159
- if (toolCalls.length > 0) {
160
- message.tool_calls = toolCalls;
161
- }
162
- return {
163
- id: generateId(),
164
- object: 'chat.completion',
165
- created: Math.floor(Date.now() / 1000),
166
- model: `anthropic/${r.model}`,
167
- choices: [{
168
- index: 0,
169
- message,
170
- finish_reason: mapStopReason(r.stop_reason),
171
- }],
172
- usage: {
173
- prompt_tokens: r.usage?.input_tokens || 0,
174
- completion_tokens: r.usage?.output_tokens || 0,
175
- total_tokens: (r.usage?.input_tokens || 0) + (r.usage?.output_tokens || 0),
176
- },
177
- };
178
- }
179
- const adapter = {
180
- name: 'anthropic',
181
- translateRequest,
182
- translateResponse,
183
- async *translateStream(stream) {
184
- const reader = stream.getReader();
185
- const decoder = new TextDecoder();
186
- let buffer = '';
187
- const id = generateId();
188
- const created = Math.floor(Date.now() / 1000);
189
- let model = '';
190
- let usage = null;
191
- try {
192
- while (true) {
193
- const { done, value } = await reader.read();
194
- if (done)
195
- break;
196
- buffer += decoder.decode(value, { stream: true });
197
- const lines = buffer.split('\n');
198
- buffer = lines.pop() || '';
199
- for (const line of lines) {
200
- const trimmed = line.trim();
201
- if (!trimmed || trimmed.startsWith(':'))
202
- continue;
203
- if (trimmed.startsWith('data: ')) {
204
- const data = JSON.parse(trimmed.substring(6));
205
- if (data.type === 'message_start') {
206
- model = `anthropic/${data.message.model}`;
207
- usage = data.message.usage;
208
- // Emit initial chunk with role
209
- yield {
210
- id, object: 'chat.completion.chunk', created, model,
211
- choices: [{ index: 0, delta: { role: 'assistant' }, finish_reason: null }],
212
- };
213
- }
214
- else if (data.type === 'content_block_delta') {
215
- if (data.delta?.type === 'text_delta') {
216
- yield {
217
- id, object: 'chat.completion.chunk', created, model,
218
- choices: [{ index: 0, delta: { content: data.delta.text }, finish_reason: null }],
219
- };
220
- }
221
- else if (data.delta?.type === 'input_json_delta') {
222
- // Tool use streaming — emit as tool_calls delta
223
- yield {
224
- id, object: 'chat.completion.chunk', created, model,
225
- choices: [{
226
- index: 0,
227
- delta: {
228
- tool_calls: [{
229
- id: data.content_block?.id || '',
230
- type: 'function',
231
- function: { name: '', arguments: data.delta.partial_json },
232
- }],
233
- },
234
- finish_reason: null,
235
- }],
236
- };
237
- }
238
- }
239
- else if (data.type === 'content_block_start') {
240
- if (data.content_block?.type === 'tool_use') {
241
- yield {
242
- id, object: 'chat.completion.chunk', created, model,
243
- choices: [{
244
- index: 0,
245
- delta: {
246
- tool_calls: [{
247
- id: data.content_block.id,
248
- type: 'function',
249
- function: { name: data.content_block.name, arguments: '' },
250
- }],
251
- },
252
- finish_reason: null,
253
- }],
254
- };
255
- }
256
- }
257
- else if (data.type === 'message_delta') {
258
- const finalUsage = usage ? {
259
- prompt_tokens: usage.input_tokens || 0,
260
- completion_tokens: data.usage?.output_tokens || 0,
261
- total_tokens: (usage.input_tokens || 0) + (data.usage?.output_tokens || 0),
262
- } : undefined;
263
- yield {
264
- id, object: 'chat.completion.chunk', created, model,
265
- choices: [{
266
- index: 0,
267
- delta: {},
268
- finish_reason: mapStopReason(data.delta?.stop_reason || 'end_turn'),
269
- }],
270
- usage: finalUsage,
271
- };
272
- }
273
- }
274
- }
275
- }
276
- }
277
- finally {
278
- reader.releaseLock();
279
- }
280
- },
281
- translateError(error) {
282
- if (error instanceof AnyModelError) {
283
- return { code: error.code, message: error.message, metadata: error.metadata };
284
- }
285
- const err = error;
286
- const status = err?.status || err?.code || 500;
287
- return {
288
- code: mapErrorCode(status),
289
- message: err?.message || 'Unknown Anthropic error',
290
- metadata: { provider_name: 'anthropic', raw: error },
291
- };
292
- },
293
- async listModels() {
294
- try {
295
- const res = await fetch(`${ANTHROPIC_API_BASE}/models`, {
296
- method: 'GET',
297
- headers: {
298
- 'x-api-key': apiKey,
299
- 'anthropic-version': ANTHROPIC_VERSION,
300
- },
301
- });
302
- if (!res.ok)
303
- return FALLBACK_MODELS;
304
- const data = await res.json();
305
- const models = (data.data || []);
306
- return models
307
- .filter((m) => m.type === 'model')
308
- .map((m) => ({
309
- id: `anthropic/${m.id}`,
310
- name: m.display_name || m.id,
311
- created: m.created_at ? new Date(m.created_at).getTime() / 1000 : 0,
312
- description: m.display_name || '',
313
- context_length: 200000,
314
- pricing: { prompt: '0', completion: '0' },
315
- architecture: {
316
- modality: 'text+image->text',
317
- input_modalities: ['text', 'image'],
318
- output_modalities: ['text'],
319
- tokenizer: 'claude',
320
- },
321
- top_provider: {
322
- context_length: 200000,
323
- max_completion_tokens: 16384,
324
- is_moderated: false,
325
- },
326
- supported_parameters: Array.from(SUPPORTED_PARAMS),
327
- }));
328
- }
329
- catch {
330
- return FALLBACK_MODELS;
331
- }
332
- },
333
- supportsParameter(param) {
334
- return SUPPORTED_PARAMS.has(param);
335
- },
336
- supportsBatch() {
337
- return true;
338
- },
339
- async sendRequest(request) {
340
- const body = translateRequest(request);
341
- const res = await makeRequest('/messages', body);
342
- const json = await res.json();
343
- return translateResponse(json);
344
- },
345
- async sendStreamingRequest(request) {
346
- const body = translateRequest({ ...request, stream: true });
347
- const res = await makeRequest('/messages', body, true);
348
- if (!res.body) {
349
- throw new AnyModelError(502, 'No response body for streaming request', {
350
- provider_name: 'anthropic',
351
- });
352
- }
353
- return adapter.translateStream(res.body);
354
- },
355
- };
356
- return adapter;
357
- }
358
- //# sourceMappingURL=anthropic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { CustomProviderConfig } from '../types.js';
2
- import type { ProviderAdapter } from './adapter.js';
3
- /**
4
- * Create a custom provider adapter that uses an OpenAI-compatible API.
5
- * This wraps the OpenAI adapter with a custom base URL and provider name.
6
- */
7
- export declare function createCustomAdapter(name: string, config: CustomProviderConfig): ProviderAdapter;
8
- //# sourceMappingURL=custom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../src/providers/custom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oBAAoB,GAC3B,eAAe,CA0DjB"}
@@ -1,61 +0,0 @@
1
- import { createOpenAIAdapter } from './openai.js';
2
- /**
3
- * Create a custom provider adapter that uses an OpenAI-compatible API.
4
- * This wraps the OpenAI adapter with a custom base URL and provider name.
5
- */
6
- export function createCustomAdapter(name, config) {
7
- const openaiAdapter = createOpenAIAdapter(config.apiKey || '', config.baseURL);
8
- return {
9
- ...openaiAdapter,
10
- name,
11
- supportsBatch() {
12
- return false;
13
- },
14
- async listModels() {
15
- // If static model list is provided in config, use that
16
- if (config.models && config.models.length > 0) {
17
- return config.models.map(modelId => ({
18
- id: `${name}/${modelId}`,
19
- name: modelId,
20
- created: 0,
21
- description: `Custom model via ${name}`,
22
- context_length: 128000,
23
- pricing: { prompt: '0', completion: '0' },
24
- architecture: {
25
- modality: 'text->text',
26
- input_modalities: ['text'],
27
- output_modalities: ['text'],
28
- tokenizer: 'unknown',
29
- },
30
- top_provider: {
31
- context_length: 128000,
32
- max_completion_tokens: 16384,
33
- is_moderated: false,
34
- },
35
- supported_parameters: ['temperature', 'max_tokens', 'top_p', 'stop', 'stream', 'tools', 'tool_choice'],
36
- }));
37
- }
38
- // Otherwise try to fetch from the /models endpoint
39
- try {
40
- const models = await openaiAdapter.listModels();
41
- // Re-prefix with custom provider name
42
- return models.map(m => ({
43
- ...m,
44
- id: `${name}/${m.name}`,
45
- }));
46
- }
47
- catch {
48
- return [];
49
- }
50
- },
51
- translateResponse(response) {
52
- const translated = openaiAdapter.translateResponse(response);
53
- // Re-prefix the model with our custom provider name
54
- if (translated.model.startsWith('openai/')) {
55
- translated.model = `${name}/${translated.model.substring(7)}`;
56
- }
57
- return translated;
58
- },
59
- };
60
- }
61
- //# sourceMappingURL=custom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../src/providers/custom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,MAA4B;IAE5B,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAE/E,OAAO;QACL,GAAG,aAAa;QAChB,IAAI;QAEJ,aAAa;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,UAAU;YACd,uDAAuD;YACvD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACnC,EAAE,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE;oBACxB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,CAAC;oBACV,WAAW,EAAE,oBAAoB,IAAI,EAAE;oBACvC,cAAc,EAAE,MAAM;oBACtB,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE;oBACzC,YAAY,EAAE;wBACZ,QAAQ,EAAE,YAAY;wBACtB,gBAAgB,EAAE,CAAC,MAAM,CAAC;wBAC1B,iBAAiB,EAAE,CAAC,MAAM,CAAC;wBAC3B,SAAS,EAAE,SAAS;qBACrB;oBACD,YAAY,EAAE;wBACZ,cAAc,EAAE,MAAM;wBACtB,qBAAqB,EAAE,KAAK;wBAC5B,YAAY,EAAE,KAAK;qBACpB;oBACD,oBAAoB,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC;iBACvG,CAAC,CAAC,CAAC;YACN,CAAC;YAED,mDAAmD;YACnD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;gBAChD,sCAAsC;gBACtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACtB,GAAG,CAAC;oBACJ,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;iBACxB,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,iBAAiB,CAAC,QAAiB;YACjC,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC7D,oDAAoD;YACpD,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,UAAU,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { ProviderAdapter } from './adapter.js';
2
- export declare function createGoogleAdapter(apiKey: string): ProviderAdapter;
3
- //# sourceMappingURL=google.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAiCpD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA8TnE"}