@namzu/sdk 0.1.6-rc.1 → 0.1.7

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 (57) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/constants/provider/index.d.ts +0 -3
  3. package/dist/constants/provider/index.d.ts.map +1 -1
  4. package/dist/constants/provider/index.js +0 -18
  5. package/dist/constants/provider/index.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/provider/__tests__/registry.test.d.ts +11 -0
  11. package/dist/provider/__tests__/registry.test.d.ts.map +1 -0
  12. package/dist/provider/__tests__/registry.test.js +118 -0
  13. package/dist/provider/__tests__/registry.test.js.map +1 -0
  14. package/dist/provider/index.d.ts +3 -3
  15. package/dist/provider/index.d.ts.map +1 -1
  16. package/dist/provider/index.js +3 -3
  17. package/dist/provider/index.js.map +1 -1
  18. package/dist/provider/mock-register.d.ts +12 -0
  19. package/dist/provider/mock-register.d.ts.map +1 -0
  20. package/dist/provider/mock-register.js +24 -0
  21. package/dist/provider/mock-register.js.map +1 -0
  22. package/dist/provider/mock.d.ts +26 -0
  23. package/dist/provider/mock.d.ts.map +1 -0
  24. package/dist/provider/{factory.js → mock.js} +3 -45
  25. package/dist/provider/mock.js.map +1 -0
  26. package/dist/provider/registry.d.ts +47 -0
  27. package/dist/provider/registry.d.ts.map +1 -0
  28. package/dist/provider/registry.js +89 -0
  29. package/dist/provider/registry.js.map +1 -0
  30. package/dist/rag/rag-tool.d.ts +1 -1
  31. package/dist/types/provider/config.d.ts +29 -21
  32. package/dist/types/provider/config.d.ts.map +1 -1
  33. package/dist/types/provider/index.d.ts +1 -1
  34. package/dist/types/provider/index.d.ts.map +1 -1
  35. package/package.json +4 -2
  36. package/src/constants/provider/index.ts +0 -22
  37. package/src/index.ts +5 -4
  38. package/src/provider/__tests__/registry.test.ts +155 -0
  39. package/src/provider/index.ts +3 -3
  40. package/src/provider/mock-register.ts +27 -0
  41. package/src/provider/{factory.ts → mock.ts} +2 -57
  42. package/src/provider/registry.ts +118 -0
  43. package/src/types/provider/config.ts +31 -29
  44. package/src/types/provider/index.ts +3 -4
  45. package/dist/provider/bedrock/client.d.ts +0 -14
  46. package/dist/provider/bedrock/client.d.ts.map +0 -1
  47. package/dist/provider/bedrock/client.js +0 -460
  48. package/dist/provider/bedrock/client.js.map +0 -1
  49. package/dist/provider/factory.d.ts +0 -39
  50. package/dist/provider/factory.d.ts.map +0 -1
  51. package/dist/provider/factory.js.map +0 -1
  52. package/dist/provider/openrouter/client.d.ts +0 -17
  53. package/dist/provider/openrouter/client.d.ts.map +0 -1
  54. package/dist/provider/openrouter/client.js +0 -305
  55. package/dist/provider/openrouter/client.js.map +0 -1
  56. package/src/provider/bedrock/client.ts +0 -548
  57. package/src/provider/openrouter/client.ts +0 -390
@@ -1,460 +0,0 @@
1
- import { BedrockRuntimeClient, ConverseCommand, ConverseStreamCommand, } from '@aws-sdk/client-bedrock-runtime';
2
- import { SpanStatusCode } from '@opentelemetry/api';
3
- import { GENAI, NAMZU, chatSpanName } from '../../telemetry/attributes.js';
4
- import { toErrorMessage } from '../../utils/error.js';
5
- import { getRootLogger } from '../../utils/logger.js';
6
- import { getTracer } from '../telemetry/setup.js';
7
- const logger = getRootLogger().child({ component: 'BedrockProvider' });
8
- function extractSystemBlocks(messages) {
9
- return messages
10
- .filter((m) => m.role === 'system')
11
- .map((m) => ({ text: typeof m.content === 'string' ? m.content : '' }));
12
- }
13
- function toBedrockRole(role) {
14
- return role === 'assistant' ? 'assistant' : 'user';
15
- }
16
- function toBedrockMessages(messages) {
17
- const out = [];
18
- let pendingToolResults = [];
19
- const flushToolResults = () => {
20
- if (pendingToolResults.length > 0) {
21
- out.push({ role: 'user', content: pendingToolResults });
22
- pendingToolResults = [];
23
- }
24
- };
25
- for (const msg of messages) {
26
- if (msg.role === 'system')
27
- continue;
28
- if (msg.role === 'tool') {
29
- const toolMsg = msg;
30
- const resultBlock = {
31
- text: typeof toolMsg.content === 'string' ? toolMsg.content : JSON.stringify(toolMsg.content),
32
- };
33
- pendingToolResults.push({
34
- toolResult: {
35
- toolUseId: toolMsg.toolCallId ?? 'unknown',
36
- content: [resultBlock],
37
- },
38
- });
39
- continue;
40
- }
41
- flushToolResults();
42
- if (msg.role === 'assistant' && 'toolCalls' in msg && msg.toolCalls) {
43
- const content = [];
44
- if (msg.content) {
45
- content.push({ text: msg.content });
46
- }
47
- for (const tc of msg.toolCalls) {
48
- content.push({
49
- toolUse: {
50
- toolUseId: tc.id,
51
- name: tc.function.name,
52
- input: JSON.parse(tc.function.arguments || '{}'),
53
- },
54
- });
55
- }
56
- out.push({ role: 'assistant', content });
57
- continue;
58
- }
59
- const text = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content);
60
- out.push({
61
- role: toBedrockRole(msg.role),
62
- content: [{ text }],
63
- });
64
- }
65
- flushToolResults();
66
- return out;
67
- }
68
- function messagesContainToolBlocks(messages) {
69
- for (const msg of messages) {
70
- if (msg.role === 'tool')
71
- return true;
72
- if (msg.role === 'assistant' &&
73
- 'toolCalls' in msg &&
74
- msg.toolCalls &&
75
- msg.toolCalls.length > 0) {
76
- return true;
77
- }
78
- }
79
- return false;
80
- }
81
- function extractToolNamesFromHistory(messages) {
82
- const names = new Set();
83
- for (const msg of messages) {
84
- if (msg.role === 'assistant' && 'toolCalls' in msg && msg.toolCalls) {
85
- for (const tc of msg.toolCalls) {
86
- names.add(tc.function.name);
87
- }
88
- }
89
- }
90
- return Array.from(names);
91
- }
92
- function toBedrockToolConfig(params) {
93
- if (params.tools && params.tools.length > 0) {
94
- const tools = params.tools.map((t) => ({
95
- toolSpec: {
96
- name: t.function.name,
97
- description: t.function.description ?? '',
98
- inputSchema: {
99
- json: (t.function.parameters ?? {}),
100
- },
101
- },
102
- }));
103
- const toolChoice = formatToolChoice(params.toolChoice);
104
- return { tools, toolChoice };
105
- }
106
- if (messagesContainToolBlocks(params.messages)) {
107
- const toolNames = extractToolNamesFromHistory(params.messages);
108
- if (toolNames.length > 0) {
109
- const tools = toolNames.map((name) => ({
110
- toolSpec: {
111
- name,
112
- description: '(completed)',
113
- inputSchema: { json: { type: 'object' } },
114
- },
115
- }));
116
- return { tools, toolChoice: { auto: {} } };
117
- }
118
- }
119
- return undefined;
120
- }
121
- function formatToolChoice(tc) {
122
- if (!tc || tc === 'auto')
123
- return { auto: {} };
124
- if (tc === 'none')
125
- return { auto: {} };
126
- if (tc === 'required')
127
- return { any: {} };
128
- if (typeof tc === 'object' && tc.type === 'function') {
129
- return { tool: { name: tc.function.name } };
130
- }
131
- return { auto: {} };
132
- }
133
- function parseUsage(raw) {
134
- if (!raw) {
135
- return {
136
- promptTokens: 0,
137
- completionTokens: 0,
138
- totalTokens: 0,
139
- cachedTokens: 0,
140
- cacheWriteTokens: 0,
141
- };
142
- }
143
- const input = raw.inputTokens ?? 0;
144
- const output = raw.outputTokens ?? 0;
145
- return {
146
- promptTokens: input,
147
- completionTokens: output,
148
- totalTokens: raw.totalTokens ?? input + output,
149
- cachedTokens: raw.cacheReadInputTokenCount ?? 0,
150
- cacheWriteTokens: raw.cacheWriteInputTokenCount ?? 0,
151
- };
152
- }
153
- function mapStopReason(reason) {
154
- switch (reason) {
155
- case 'end_turn':
156
- case 'stop_sequence':
157
- return 'stop';
158
- case 'tool_use':
159
- return 'tool_calls';
160
- case 'max_tokens':
161
- return 'length';
162
- case 'content_filtered':
163
- return 'content_filter';
164
- default:
165
- return 'stop';
166
- }
167
- }
168
- function extractResponseContent(content) {
169
- if (!content || content.length === 0)
170
- return { text: null, toolCalls: undefined };
171
- let text = null;
172
- const toolCalls = [];
173
- for (const block of content) {
174
- if ('text' in block && block.text) {
175
- text = (text ?? '') + block.text;
176
- }
177
- if ('toolUse' in block && block.toolUse) {
178
- const tu = block.toolUse;
179
- toolCalls.push({
180
- id: tu.toolUseId ?? `tool-${Date.now()}`,
181
- type: 'function',
182
- function: {
183
- name: tu.name ?? '',
184
- arguments: JSON.stringify(tu.input ?? {}),
185
- },
186
- });
187
- }
188
- }
189
- return {
190
- text,
191
- toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
192
- };
193
- }
194
- export class BedrockProvider {
195
- id = 'bedrock';
196
- name = 'AWS Bedrock';
197
- client;
198
- config;
199
- constructor(config) {
200
- this.config = config;
201
- const clientConfig = {};
202
- if (config.region) {
203
- clientConfig.region = config.region;
204
- }
205
- if (config.accessKeyId && config.secretAccessKey) {
206
- clientConfig.credentials = {
207
- accessKeyId: config.accessKeyId,
208
- secretAccessKey: config.secretAccessKey,
209
- ...(config.sessionToken ? { sessionToken: config.sessionToken } : {}),
210
- };
211
- }
212
- this.client = new BedrockRuntimeClient(clientConfig);
213
- }
214
- async chat(params) {
215
- const tracer = getTracer();
216
- return tracer.startActiveSpan(chatSpanName(params.model), async (span) => {
217
- span.setAttributes({
218
- [GENAI.OPERATION_NAME]: 'chat',
219
- [GENAI.SYSTEM]: 'bedrock',
220
- [GENAI.REQUEST_MODEL]: params.model,
221
- });
222
- if (params.temperature !== undefined) {
223
- span.setAttribute(GENAI.REQUEST_TEMPERATURE, params.temperature);
224
- }
225
- if (params.maxTokens !== undefined) {
226
- span.setAttribute(GENAI.REQUEST_MAX_TOKENS, params.maxTokens);
227
- }
228
- try {
229
- const system = extractSystemBlocks(params.messages);
230
- const messages = toBedrockMessages(params.messages);
231
- const toolConfig = toBedrockToolConfig(params);
232
- const inferenceConfig = {};
233
- if (params.maxTokens !== undefined)
234
- inferenceConfig.maxTokens = params.maxTokens;
235
- if (params.temperature !== undefined)
236
- inferenceConfig.temperature = params.temperature;
237
- if (params.topP !== undefined)
238
- inferenceConfig.topP = params.topP;
239
- if (params.stop)
240
- inferenceConfig.stopSequences = params.stop;
241
- logger.debug('Sending Bedrock Converse request', {
242
- model: params.model,
243
- });
244
- const command = new ConverseCommand({
245
- modelId: params.model,
246
- system: system.length > 0 ? system : undefined,
247
- messages,
248
- toolConfig,
249
- inferenceConfig,
250
- });
251
- const response = await this.client.send(command, {
252
- requestTimeout: this.config.timeout ?? 120_000,
253
- });
254
- const { text, toolCalls } = extractResponseContent(response.output?.message?.content);
255
- const usage = parseUsage(response.usage);
256
- const finishReason = mapStopReason(response.stopReason);
257
- const requestId = response.$metadata.requestId ?? `bedrock-${Date.now()}`;
258
- const result = {
259
- id: requestId,
260
- model: params.model,
261
- message: {
262
- role: 'assistant',
263
- content: text,
264
- toolCalls,
265
- },
266
- finishReason,
267
- usage,
268
- };
269
- span.setAttributes({
270
- [GENAI.RESPONSE_ID]: requestId,
271
- [GENAI.RESPONSE_MODEL]: params.model,
272
- [GENAI.RESPONSE_FINISH_REASONS]: finishReason,
273
- [GENAI.USAGE_INPUT_TOKENS]: usage.promptTokens,
274
- [GENAI.USAGE_OUTPUT_TOKENS]: usage.completionTokens,
275
- [NAMZU.CACHE_READ_TOKENS]: usage.cachedTokens,
276
- [NAMZU.CACHE_WRITE_TOKENS]: usage.cacheWriteTokens,
277
- });
278
- span.setStatus({ code: SpanStatusCode.OK });
279
- return result;
280
- }
281
- catch (err) {
282
- span.setStatus({
283
- code: SpanStatusCode.ERROR,
284
- message: toErrorMessage(err),
285
- });
286
- span.recordException(err instanceof Error ? err : new Error(String(err)));
287
- throw err;
288
- }
289
- finally {
290
- span.end();
291
- }
292
- });
293
- }
294
- async *chatStream(params) {
295
- const system = extractSystemBlocks(params.messages);
296
- const messages = toBedrockMessages(params.messages);
297
- const toolConfig = toBedrockToolConfig(params);
298
- const inferenceConfig = {};
299
- if (params.maxTokens !== undefined)
300
- inferenceConfig.maxTokens = params.maxTokens;
301
- if (params.temperature !== undefined)
302
- inferenceConfig.temperature = params.temperature;
303
- if (params.topP !== undefined)
304
- inferenceConfig.topP = params.topP;
305
- if (params.stop)
306
- inferenceConfig.stopSequences = params.stop;
307
- const command = new ConverseStreamCommand({
308
- modelId: params.model,
309
- system: system.length > 0 ? system : undefined,
310
- messages,
311
- toolConfig,
312
- inferenceConfig,
313
- });
314
- const response = await this.client.send(command, {
315
- requestTimeout: this.config.timeout ?? 120_000,
316
- });
317
- if (!response.stream) {
318
- throw new Error('Bedrock returned no stream body');
319
- }
320
- const requestId = response.$metadata.requestId ?? `bedrock-${Date.now()}`;
321
- const activeToolCalls = new Map();
322
- let toolCallIndex = 0;
323
- for await (const event of response.stream) {
324
- try {
325
- if ('contentBlockDelta' in event && event.contentBlockDelta?.delta) {
326
- const delta = event.contentBlockDelta.delta;
327
- if ('text' in delta && delta.text) {
328
- yield {
329
- id: requestId,
330
- delta: { content: delta.text },
331
- };
332
- }
333
- if ('toolUse' in delta && delta.toolUse) {
334
- const idx = event.contentBlockDelta.contentBlockIndex ?? toolCallIndex;
335
- const active = activeToolCalls.get(idx);
336
- if (active) {
337
- active.args += delta.toolUse.input ?? '';
338
- yield {
339
- id: requestId,
340
- delta: {
341
- toolCalls: [
342
- {
343
- index: idx,
344
- function: { arguments: delta.toolUse.input ?? '' },
345
- },
346
- ],
347
- },
348
- };
349
- }
350
- }
351
- }
352
- if ('contentBlockStart' in event && event.contentBlockStart?.start) {
353
- const start = event.contentBlockStart.start;
354
- if ('toolUse' in start && start.toolUse) {
355
- const idx = event.contentBlockStart.contentBlockIndex ?? toolCallIndex;
356
- activeToolCalls.set(idx, {
357
- id: start.toolUse.toolUseId ?? `tool-${Date.now()}`,
358
- name: start.toolUse.name ?? '',
359
- args: '',
360
- });
361
- yield {
362
- id: requestId,
363
- delta: {
364
- toolCalls: [
365
- {
366
- index: idx,
367
- id: start.toolUse.toolUseId,
368
- type: 'function',
369
- function: { name: start.toolUse.name ?? '' },
370
- },
371
- ],
372
- },
373
- };
374
- toolCallIndex = idx + 1;
375
- }
376
- }
377
- if ('contentBlockStop' in event) {
378
- }
379
- if ('messageStop' in event && event.messageStop) {
380
- yield {
381
- id: requestId,
382
- delta: {},
383
- finishReason: mapStopReason(event.messageStop.stopReason),
384
- };
385
- }
386
- if ('metadata' in event && event.metadata?.usage) {
387
- const usage = parseUsage(event.metadata.usage);
388
- yield {
389
- id: requestId,
390
- delta: {},
391
- usage,
392
- };
393
- }
394
- }
395
- catch (parseErr) {
396
- logger.warn('Failed to process Bedrock stream event', {
397
- error: toErrorMessage(parseErr),
398
- });
399
- yield {
400
- id: requestId,
401
- delta: { content: undefined },
402
- finishReason: undefined,
403
- usage: undefined,
404
- error: `Stream parse error: ${toErrorMessage(parseErr)}`,
405
- };
406
- }
407
- }
408
- }
409
- async listModels() {
410
- return [
411
- {
412
- id: 'anthropic.claude-sonnet-4-20250514',
413
- name: 'Claude Sonnet 4 (Bedrock)',
414
- contextWindow: 200_000,
415
- maxOutputTokens: 64_000,
416
- inputPrice: 3.0,
417
- outputPrice: 15.0,
418
- supportsToolUse: true,
419
- supportsStreaming: true,
420
- },
421
- {
422
- id: 'anthropic.claude-haiku-4-20250514',
423
- name: 'Claude Haiku 4 (Bedrock)',
424
- contextWindow: 200_000,
425
- maxOutputTokens: 64_000,
426
- inputPrice: 0.8,
427
- outputPrice: 4.0,
428
- supportsToolUse: true,
429
- supportsStreaming: true,
430
- },
431
- {
432
- id: 'amazon.nova-pro-v1:0',
433
- name: 'Amazon Nova Pro',
434
- contextWindow: 300_000,
435
- maxOutputTokens: 5_000,
436
- inputPrice: 0.8,
437
- outputPrice: 3.2,
438
- supportsToolUse: true,
439
- supportsStreaming: true,
440
- },
441
- ];
442
- }
443
- async healthCheck() {
444
- try {
445
- const command = new ConverseCommand({
446
- modelId: 'anthropic.claude-haiku-4-20250514',
447
- messages: [{ role: 'user', content: [{ text: 'hi' }] }],
448
- inferenceConfig: { maxTokens: 1 },
449
- });
450
- const response = await this.client.send(command, {
451
- requestTimeout: 5000,
452
- });
453
- return response.$metadata.httpStatusCode === 200;
454
- }
455
- catch {
456
- return false;
457
- }
458
- }
459
- }
460
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/provider/bedrock/client.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import type { ChatCompletionParams, ChatCompletionResponse, LLMProvider, MockProviderConfig, ProviderCapabilities, ProviderFactoryConfig, ProviderFactoryResult, ProviderType, StreamChunk } from '../types/provider/index.js';
2
- import { BedrockProvider } from './bedrock/client.js';
3
- import { OpenRouterProvider } from './openrouter/client.js';
4
- declare class MockLLMProvider implements LLMProvider {
5
- readonly id = "mock";
6
- readonly name = "Mock LLM Provider";
7
- private readonly model;
8
- private readonly responseText;
9
- private readonly responseDelayMs;
10
- constructor(config: MockProviderConfig);
11
- private buildUsage;
12
- private delay;
13
- private normalizeResponse;
14
- chat(params: ChatCompletionParams): Promise<ChatCompletionResponse>;
15
- chatStream(params: ChatCompletionParams): AsyncIterable<StreamChunk>;
16
- listModels(): Promise<{
17
- id: string;
18
- name: string;
19
- contextWindow: number;
20
- maxOutputTokens: number;
21
- inputPrice: number;
22
- outputPrice: number;
23
- supportsToolUse: boolean;
24
- supportsStreaming: boolean;
25
- }[]>;
26
- healthCheck(): Promise<boolean>;
27
- }
28
- export declare class UnknownProviderError extends Error {
29
- readonly providerType: string;
30
- constructor(providerType: string);
31
- }
32
- export declare class ProviderFactory {
33
- static create(config: ProviderFactoryConfig): ProviderFactoryResult;
34
- static createProvider(config: ProviderFactoryConfig): LLMProvider;
35
- static getCapabilities(type: ProviderType): ProviderCapabilities;
36
- static isSupported(type: string): type is ProviderType;
37
- }
38
- export { OpenRouterProvider, BedrockProvider, MockLLMProvider };
39
- //# sourceMappingURL=factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/provider/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,cAAM,eAAgB,YAAW,WAAW;IAC3C,QAAQ,CAAC,EAAE,UAAS;IACpB,QAAQ,CAAC,IAAI,uBAAsB;IAEnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;gBAE5B,MAAM,EAAE,kBAAkB;IAMtC,OAAO,CAAC,UAAU;YAUJ,KAAK;IAKnB,OAAO,CAAC,iBAAiB;IAanB,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKlE,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC;IAsBrE,UAAU;;;;;;;;;;IAeV,WAAW;CAIjB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM;CAKhC;AAED,qBAAa,eAAe;IAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB;IAMnE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,WAAW;IAgBjE,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,oBAAoB;IAShE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY;CAGtD;AAED,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/provider/factory.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { ChatCompletionParams, ChatCompletionResponse, LLMProvider, ModelInfo, StreamChunk } from '../../types/provider/index.js';
2
- import type { OpenRouterConfig } from '../../types/provider/index.js';
3
- export declare class OpenRouterProvider implements LLMProvider {
4
- readonly id = "openrouter";
5
- readonly name = "OpenRouter";
6
- private config;
7
- private baseUrl;
8
- constructor(config: OpenRouterConfig);
9
- private getHeaders;
10
- private formatMessages;
11
- private buildRequestBody;
12
- chat(params: ChatCompletionParams): Promise<ChatCompletionResponse>;
13
- chatStream(params: ChatCompletionParams): AsyncIterable<StreamChunk>;
14
- listModels(): Promise<ModelInfo[]>;
15
- healthCheck(): Promise<boolean>;
16
- }
17
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/provider/openrouter/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,SAAS,EACT,WAAW,EAEX,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AA+CrE,qBAAa,kBAAmB,YAAW,WAAW;IACrD,QAAQ,CAAC,EAAE,gBAAe;IAC1B,QAAQ,CAAC,IAAI,gBAAe;IAE5B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,gBAAgB;IAQpC,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,gBAAgB;IAqClB,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyGlE,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC;IA6FrE,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IA+BlC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAWrC"}