@hilbras/omnihilbras 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 +57 -0
  2. package/dist/adapters/anthropic.d.ts +38 -0
  3. package/dist/adapters/anthropic.d.ts.map +1 -0
  4. package/dist/adapters/anthropic.js +298 -0
  5. package/dist/adapters/anthropic.js.map +1 -0
  6. package/dist/adapters/gemini.d.ts +35 -0
  7. package/dist/adapters/gemini.d.ts.map +1 -0
  8. package/dist/adapters/gemini.js +322 -0
  9. package/dist/adapters/gemini.js.map +1 -0
  10. package/dist/adapters/openai-compatible.d.ts +52 -0
  11. package/dist/adapters/openai-compatible.d.ts.map +1 -0
  12. package/dist/adapters/openai-compatible.js +246 -0
  13. package/dist/adapters/openai-compatible.js.map +1 -0
  14. package/dist/adapters/openai.d.ts +10 -0
  15. package/dist/adapters/openai.d.ts.map +1 -0
  16. package/dist/adapters/openai.js +17 -0
  17. package/dist/adapters/openai.js.map +1 -0
  18. package/dist/adapters/openrouter.d.ts +32 -0
  19. package/dist/adapters/openrouter.d.ts.map +1 -0
  20. package/dist/adapters/openrouter.js +171 -0
  21. package/dist/adapters/openrouter.js.map +1 -0
  22. package/dist/errors.d.ts +28 -0
  23. package/dist/errors.d.ts.map +1 -0
  24. package/dist/errors.js +60 -0
  25. package/dist/errors.js.map +1 -0
  26. package/dist/index.d.ts +13 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +13 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/registry.d.ts +12 -0
  31. package/dist/registry.d.ts.map +1 -0
  32. package/dist/registry.js +45 -0
  33. package/dist/registry.js.map +1 -0
  34. package/dist/secret-store.d.ts +12 -0
  35. package/dist/secret-store.d.ts.map +1 -0
  36. package/dist/secret-store.js +18 -0
  37. package/dist/secret-store.js.map +1 -0
  38. package/dist/streaming.d.ts +11 -0
  39. package/dist/streaming.d.ts.map +1 -0
  40. package/dist/streaming.js +87 -0
  41. package/dist/streaming.js.map +1 -0
  42. package/dist/transport.d.ts +44 -0
  43. package/dist/transport.d.ts.map +1 -0
  44. package/dist/transport.js +239 -0
  45. package/dist/transport.js.map +1 -0
  46. package/dist/types.d.ts +132 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/types.js +2 -0
  49. package/dist/types.js.map +1 -0
  50. package/dist/url.d.ts +12 -0
  51. package/dist/url.d.ts.map +1 -0
  52. package/dist/url.js +104 -0
  53. package/dist/url.js.map +1 -0
  54. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/adapters/openai-compatible.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { OpenAICompatibleAdapter, type OpenAICompatibleAdapterOptions } from './openai-compatible.js';
2
+ export type OpenAIAdapterOptions = OpenAICompatibleAdapterOptions & {
3
+ baseUrl?: string;
4
+ organization?: string;
5
+ project?: string;
6
+ };
7
+ export declare class OpenAIAdapter extends OpenAICompatibleAdapter {
8
+ constructor(options?: OpenAIAdapterOptions);
9
+ }
10
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAEtG,MAAM,MAAM,oBAAoB,GAAG,8BAA8B,GAAG;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,aAAc,SAAQ,uBAAuB;gBAC5C,OAAO,GAAE,oBAAyB;CAa/C"}
@@ -0,0 +1,17 @@
1
+ import { OpenAICompatibleAdapter } from './openai-compatible.js';
2
+ export class OpenAIAdapter extends OpenAICompatibleAdapter {
3
+ constructor(options = {}) {
4
+ super({
5
+ id: 'openai',
6
+ name: 'OpenAI',
7
+ baseUrl: options.baseUrl ?? 'https://api.openai.com/v1',
8
+ auth: { header: 'Authorization', prefix: 'Bearer' },
9
+ maxTokensField: 'max_completion_tokens',
10
+ headers: {
11
+ ...(options.organization ? { 'OpenAI-Organization': options.organization } : {}),
12
+ ...(options.project ? { 'OpenAI-Project': options.project } : {}),
13
+ },
14
+ }, options);
15
+ }
16
+ }
17
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAuC,MAAM,wBAAwB,CAAC;AAQtG,MAAM,OAAO,aAAc,SAAQ,uBAAuB;IACxD,YAAY,UAAgC,EAAE;QAC5C,KAAK,CAAC;YACJ,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,2BAA2B;YACvD,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;YACnD,cAAc,EAAE,uBAAuB;YACvC,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClE;SACF,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,32 @@
1
+ import { type HttpTransport } from '../transport.js';
2
+ import { OpenAICompatibleAdapter, type OpenAICompatibleAdapterConfig } from './openai-compatible.js';
3
+ import type { CredentialValidation, Model, ModelImportOptions, ProviderCredential, ProviderRequestContext } from '../types.js';
4
+ export type OpenRouterAdapterConfig = Omit<OpenAICompatibleAdapterConfig, 'id' | 'name' | 'auth' | 'baseUrl'> & {
5
+ baseUrl?: string;
6
+ };
7
+ export type OpenRouterAdapterOptions = {
8
+ transport?: HttpTransport;
9
+ timeoutMs?: number;
10
+ };
11
+ /**
12
+ * OpenRouter uses the OpenAI-compatible data APIs, but its key metadata route
13
+ * is provider-specific. Keeping that route here prevents a generic model-list
14
+ * request from becoming a false-positive credential check.
15
+ */
16
+ export declare class OpenRouterAdapter extends OpenAICompatibleAdapter {
17
+ private readonly validationBaseUrl;
18
+ private readonly validationTransport;
19
+ constructor(config?: OpenRouterAdapterConfig, options?: OpenRouterAdapterOptions);
20
+ validateCredential(credential: ProviderCredential | undefined, context?: ProviderRequestContext): Promise<CredentialValidation>;
21
+ discoverModels(context?: ProviderRequestContext, options?: ModelImportOptions): Promise<Model[]>;
22
+ healthCheck(context?: ProviderRequestContext): Promise<{
23
+ status: "healthy";
24
+ latencyMs: number;
25
+ checkedAt: string;
26
+ } | {
27
+ status: "unavailable";
28
+ checkedAt: string;
29
+ latencyMs?: undefined;
30
+ }>;
31
+ }
32
+ //# sourceMappingURL=openrouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/adapters/openrouter.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5F,OAAO,EAAE,uBAAuB,EAAE,KAAK,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE/H,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,6BAA6B,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG;IAC9G,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAcF;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,uBAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;gBAExC,MAAM,GAAE,uBAA4B,EAAE,OAAO,GAAE,wBAA6B;IAalF,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmCnI,cAAc,CAAC,OAAO,GAAE,sBAA2B,EAAE,OAAO,GAAE,kBAAsC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IA4CvH,WAAW,CAAC,OAAO,GAAE,sBAA2B;;;;;;;;;CASvD"}
@@ -0,0 +1,171 @@
1
+ import { ProviderError } from '../errors.js';
2
+ import { FetchHttpTransport } from '../transport.js';
3
+ import { assertSafeProviderHeaderValue, assertSafeProviderRequestUrl, normalizeProviderBaseUrl, resolveProviderUrl } from '../url.js';
4
+ import { OpenAICompatibleAdapter } from './openai-compatible.js';
5
+ /**
6
+ * OpenRouter uses the OpenAI-compatible data APIs, but its key metadata route
7
+ * is provider-specific. Keeping that route here prevents a generic model-list
8
+ * request from becoming a false-positive credential check.
9
+ */
10
+ export class OpenRouterAdapter extends OpenAICompatibleAdapter {
11
+ validationBaseUrl;
12
+ validationTransport;
13
+ constructor(config = {}, options = {}) {
14
+ const baseUrl = config.baseUrl ?? 'https://openrouter.ai/api/v1';
15
+ super({
16
+ ...config,
17
+ id: 'openrouter',
18
+ name: 'OpenRouter',
19
+ baseUrl,
20
+ auth: { header: 'Authorization', prefix: 'Bearer', required: true },
21
+ }, options);
22
+ this.validationBaseUrl = normalizeProviderBaseUrl(baseUrl, 'openrouter');
23
+ this.validationTransport = options.transport ?? new FetchHttpTransport({ timeoutMs: options.timeoutMs });
24
+ }
25
+ async validateCredential(credential, context = {}) {
26
+ const startedAt = performance.now();
27
+ if (credential?.type !== 'api-key' || !credential.value) {
28
+ throw new ProviderError('AUTHENTICATION_FAILED', 'An OpenRouter API key is required.', { providerId: this.id, publicMessage: 'An OpenRouter API key is required.' });
29
+ }
30
+ assertSafeProviderHeaderValue('Authorization', credential.value, this.id);
31
+ let response;
32
+ try {
33
+ response = await this.validationTransport.request({
34
+ method: 'GET',
35
+ providerId: this.id,
36
+ url: resolveProviderUrl(this.validationBaseUrl, '/key', this.id),
37
+ headers: {
38
+ accept: 'application/json',
39
+ Authorization: `Bearer ${credential.value}`,
40
+ },
41
+ ...(context.signal ? { signal: context.signal } : {}),
42
+ });
43
+ }
44
+ catch (error) {
45
+ if (error instanceof ProviderError && error.code === 'AUTHENTICATION_FAILED') {
46
+ const message = 'OpenRouter rejected this API key. Use a valid inference key, not a management key, and try again.';
47
+ throw new ProviderError('AUTHENTICATION_FAILED', message, { providerId: this.id, statusCode: error.statusCode, publicMessage: message, cause: error });
48
+ }
49
+ throw error;
50
+ }
51
+ const data = response.data?.data;
52
+ if (!data || typeof data !== 'object' || typeof data.label !== 'string' || typeof data.is_management_key !== 'boolean') {
53
+ throw new ProviderError('INVALID_RESPONSE', 'OpenRouter returned an invalid key response.', { providerId: this.id, publicMessage: 'OpenRouter returned an invalid key response.' });
54
+ }
55
+ if (data.is_management_key) {
56
+ throw new ProviderError('AUTHENTICATION_FAILED', 'OpenRouter management keys cannot be used for inference.', { providerId: this.id, publicMessage: 'This OpenRouter key cannot be used for provider requests.' });
57
+ }
58
+ return { status: 'valid', checkedAt: new Date().toISOString(), latencyMs: Math.round(performance.now() - startedAt) };
59
+ }
60
+ async discoverModels(context = {}, options = { policy: 'all' }) {
61
+ if (!options || (options.policy !== 'free' && options.policy !== 'all')) {
62
+ throw new ProviderError('CONFIGURATION_ERROR', 'The model import policy is invalid.', { providerId: this.id, publicMessage: 'The model import policy is invalid.' });
63
+ }
64
+ if (context.credential?.type !== 'api-key' || !context.credential.value) {
65
+ throw new ProviderError('AUTHENTICATION_FAILED', 'An OpenRouter API key is required to import models.', { providerId: this.id, publicMessage: 'An OpenRouter API key is required to import models.' });
66
+ }
67
+ assertSafeProviderHeaderValue('Authorization', context.credential.value, this.id);
68
+ const models = [];
69
+ const seen = new Set();
70
+ let nextPage = resolveProviderUrl(this.validationBaseUrl, '/models', this.id);
71
+ let pageCount = 0;
72
+ while (nextPage) {
73
+ if (pageCount++ >= 20) {
74
+ throw new ProviderError('INVALID_RESPONSE', 'OpenRouter returned too many model pages to import.', { providerId: this.id, publicMessage: 'OpenRouter returned too many model pages to import.' });
75
+ }
76
+ const response = await this.validationTransport.request({
77
+ method: 'GET',
78
+ providerId: this.id,
79
+ url: nextPage,
80
+ headers: {
81
+ accept: 'application/json',
82
+ Authorization: `Bearer ${context.credential.value}`,
83
+ },
84
+ ...(context.signal ? { signal: context.signal } : {}),
85
+ });
86
+ if (!Array.isArray(response.data?.data)) {
87
+ throw new ProviderError('INVALID_RESPONSE', 'OpenRouter returned an invalid model list.', { providerId: this.id, publicMessage: 'OpenRouter returned an invalid model list.' });
88
+ }
89
+ for (const rawModel of response.data.data) {
90
+ const model = normalizeOpenRouterModel(rawModel, this.id);
91
+ if (!model || !supportsTextOutput(rawModel) || seen.has(model.id))
92
+ continue;
93
+ if (options.policy === 'free' && !isFreeOpenRouterModel(rawModel))
94
+ continue;
95
+ if (models.length >= 2_000) {
96
+ throw new ProviderError('INVALID_RESPONSE', 'OpenRouter returned too many models to import.', { providerId: this.id, publicMessage: 'OpenRouter returned too many models to import.' });
97
+ }
98
+ seen.add(model.id);
99
+ models.push(model);
100
+ }
101
+ nextPage = resolveNextModelsPage(this.validationBaseUrl, response.data?.links, this.id);
102
+ }
103
+ return models;
104
+ }
105
+ async healthCheck(context = {}) {
106
+ const startedAt = performance.now();
107
+ try {
108
+ await this.validateCredential(context.credential, context);
109
+ return { status: 'healthy', latencyMs: Math.round(performance.now() - startedAt), checkedAt: new Date().toISOString() };
110
+ }
111
+ catch {
112
+ return { status: 'unavailable', checkedAt: new Date().toISOString() };
113
+ }
114
+ }
115
+ }
116
+ function resolveNextModelsPage(baseUrl, links, providerId) {
117
+ if (links === undefined || links === null)
118
+ return undefined;
119
+ if (!isRecord(links))
120
+ throw invalidModelPage(providerId);
121
+ const next = links.next;
122
+ if (next === undefined || next === null)
123
+ return undefined;
124
+ if (typeof next !== 'string' || !next.trim())
125
+ throw invalidModelPage(providerId);
126
+ try {
127
+ const base = new URL(`${baseUrl}/`);
128
+ const candidate = new URL(next, base);
129
+ const basePath = base.pathname.replace(/\/$/, '');
130
+ if (candidate.origin !== base.origin || candidate.username || candidate.password || candidate.hash || (basePath && candidate.pathname !== basePath && !candidate.pathname.startsWith(`${basePath}/`)))
131
+ throw new Error('The next model page escaped the OpenRouter API.');
132
+ return assertSafeProviderRequestUrl(candidate.toString(), providerId);
133
+ }
134
+ catch {
135
+ throw invalidModelPage(providerId);
136
+ }
137
+ }
138
+ function invalidModelPage(providerId) {
139
+ return new ProviderError('INVALID_RESPONSE', 'OpenRouter returned an invalid model pagination link.', { providerId, publicMessage: 'OpenRouter returned an invalid model pagination link.' });
140
+ }
141
+ function normalizeOpenRouterModel(value, providerId) {
142
+ if (!isRecord(value) || typeof value.id !== 'string')
143
+ return undefined;
144
+ const id = value.id.trim();
145
+ if (!id || id.length > 256 || !/^[a-z0-9~][a-z0-9._:/~-]*$/i.test(id))
146
+ return undefined;
147
+ const displayName = typeof value.name === 'string' && value.name.length <= 200 ? value.name : undefined;
148
+ const contextLength = typeof value.context_length === 'number' && Number.isInteger(value.context_length) && value.context_length > 0 ? value.context_length : undefined;
149
+ return { id, providerId, ...(displayName ? { displayName } : {}), ...(contextLength ? { contextWindow: contextLength } : {}) };
150
+ }
151
+ function supportsTextOutput(value) {
152
+ if (!isRecord(value) || !isRecord(value.architecture) || !Array.isArray(value.architecture.output_modalities))
153
+ return false;
154
+ return value.architecture.output_modalities.includes('text');
155
+ }
156
+ function isFreeOpenRouterModel(value) {
157
+ if (!isRecord(value) || !isRecord(value.pricing))
158
+ return false;
159
+ return isZeroPrice(value.pricing.prompt) && isZeroPrice(value.pricing.completion);
160
+ }
161
+ function isZeroPrice(value) {
162
+ if (typeof value === 'number')
163
+ return Number.isFinite(value) && value === 0;
164
+ if (typeof value !== 'string')
165
+ return false;
166
+ return /^(?:0+(?:\.0*)?|\.0+)$/.test(value.trim());
167
+ }
168
+ function isRecord(value) {
169
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
170
+ }
171
+ //# sourceMappingURL=openrouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/adapters/openrouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export type ProviderErrorCode = 'NOT_SUPPORTED' | 'NOT_FOUND' | 'INVALID_REQUEST' | 'AUTHENTICATION_FAILED' | 'RATE_LIMITED' | 'PROVIDER_REQUEST_FAILED' | 'PROVIDER_TIMEOUT' | 'PROVIDER_UNAVAILABLE' | 'INVALID_RESPONSE' | 'CANCELLED' | 'CONFIGURATION_ERROR';
2
+ export type ProviderErrorOptions = {
3
+ providerId?: string;
4
+ statusCode?: number;
5
+ retryable?: boolean;
6
+ details?: unknown;
7
+ publicMessage?: string;
8
+ cause?: unknown;
9
+ };
10
+ export declare class ProviderError extends Error {
11
+ readonly code: ProviderErrorCode;
12
+ readonly providerId?: string;
13
+ readonly statusCode?: number;
14
+ readonly retryable: boolean;
15
+ readonly details?: unknown;
16
+ readonly publicMessage?: string;
17
+ constructor(code: ProviderErrorCode, message: string, options?: ProviderErrorOptions);
18
+ toJSON(): {
19
+ code: ProviderErrorCode;
20
+ message: string;
21
+ providerId: string | undefined;
22
+ statusCode: number | undefined;
23
+ retryable: boolean;
24
+ };
25
+ }
26
+ export declare function publicProviderMessage(code: ProviderErrorCode): "Provider authentication failed." | "The provider rate limit was reached." | "The provider request timed out." | "The provider is temporarily unavailable." | "The request was cancelled." | "The provider returned an invalid response." | "This provider does not support the requested capability." | "The requested resource was not found." | "The request is invalid." | "The provider is not configured correctly." | "The provider request failed.";
27
+ export declare function isProviderError(error: unknown): error is ProviderError;
28
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,WAAW,GACX,iBAAiB,GACjB,uBAAuB,GACvB,cAAc,GACd,yBAAyB,GACzB,kBAAkB,GAClB,sBAAsB,GACtB,kBAAkB,GAClB,WAAW,GACX,qBAAqB,CAAC;AAE1B,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAEpB,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;IAqBxF,MAAM;;;;;;;CAYP;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,+bAe5D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
package/dist/errors.js ADDED
@@ -0,0 +1,60 @@
1
+ export class ProviderError extends Error {
2
+ code;
3
+ providerId;
4
+ statusCode;
5
+ retryable;
6
+ details;
7
+ publicMessage;
8
+ constructor(code, message, options = {}) {
9
+ super(message, { cause: options.cause });
10
+ this.name = 'ProviderError';
11
+ this.code = code;
12
+ this.providerId = options.providerId;
13
+ this.statusCode = options.statusCode;
14
+ this.retryable = options.retryable ?? false;
15
+ Object.defineProperty(this, 'publicMessage', {
16
+ value: options.publicMessage,
17
+ enumerable: false,
18
+ writable: false,
19
+ configurable: false,
20
+ });
21
+ Object.defineProperty(this, 'details', {
22
+ value: options.details,
23
+ enumerable: false,
24
+ writable: false,
25
+ configurable: false,
26
+ });
27
+ }
28
+ toJSON() {
29
+ // Provider error payloads may contain credentials or prompt data. Keep the
30
+ // public JSON shape deliberately small; callers can inspect the original
31
+ // error in-process when they own the adapter.
32
+ return {
33
+ code: this.code,
34
+ message: this.publicMessage ?? publicProviderMessage(this.code),
35
+ providerId: this.providerId,
36
+ statusCode: this.statusCode,
37
+ retryable: this.retryable,
38
+ };
39
+ }
40
+ }
41
+ export function publicProviderMessage(code) {
42
+ switch (code) {
43
+ case 'AUTHENTICATION_FAILED': return 'Provider authentication failed.';
44
+ case 'RATE_LIMITED': return 'The provider rate limit was reached.';
45
+ case 'PROVIDER_TIMEOUT': return 'The provider request timed out.';
46
+ case 'PROVIDER_UNAVAILABLE': return 'The provider is temporarily unavailable.';
47
+ case 'CANCELLED': return 'The request was cancelled.';
48
+ case 'INVALID_RESPONSE': return 'The provider returned an invalid response.';
49
+ case 'NOT_SUPPORTED': return 'This provider does not support the requested capability.';
50
+ case 'NOT_FOUND': return 'The requested resource was not found.';
51
+ case 'INVALID_REQUEST': return 'The request is invalid.';
52
+ case 'CONFIGURATION_ERROR': return 'The provider is not configured correctly.';
53
+ case 'PROVIDER_REQUEST_FAILED':
54
+ default: return 'The provider request failed.';
55
+ }
56
+ }
57
+ export function isProviderError(error) {
58
+ return error instanceof ProviderError;
59
+ }
60
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAoB;IACxB,UAAU,CAAU;IACpB,UAAU,CAAU;IACpB,SAAS,CAAU;IACnB,OAAO,CAAW;IAClB,aAAa,CAAU;IAEhC,YAAY,IAAuB,EAAE,OAAe,EAAE,UAAgC,EAAE;QACtF,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE;YAC3C,KAAK,EAAE,OAAO,CAAC,aAAa;YAC5B,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;YACrC,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,2EAA2E;QAC3E,yEAAyE;QACzE,8CAA8C;QAC9C,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,aAAa,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/D,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAuB;IAC3D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,uBAAuB,CAAC,CAAC,OAAO,iCAAiC,CAAC;QACvE,KAAK,cAAc,CAAC,CAAC,OAAO,sCAAsC,CAAC;QACnE,KAAK,kBAAkB,CAAC,CAAC,OAAO,iCAAiC,CAAC;QAClE,KAAK,sBAAsB,CAAC,CAAC,OAAO,0CAA0C,CAAC;QAC/E,KAAK,WAAW,CAAC,CAAC,OAAO,4BAA4B,CAAC;QACtD,KAAK,kBAAkB,CAAC,CAAC,OAAO,4CAA4C,CAAC;QAC7E,KAAK,eAAe,CAAC,CAAC,OAAO,0DAA0D,CAAC;QACxF,KAAK,WAAW,CAAC,CAAC,OAAO,uCAAuC,CAAC;QACjE,KAAK,iBAAiB,CAAC,CAAC,OAAO,yBAAyB,CAAC;QACzD,KAAK,qBAAqB,CAAC,CAAC,OAAO,2CAA2C,CAAC;QAC/E,KAAK,yBAAyB,CAAC;QAC/B,OAAO,CAAC,CAAC,OAAO,8BAA8B,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,aAAa,CAAC;AACxC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export * from './adapters/anthropic.js';
2
+ export * from './adapters/gemini.js';
3
+ export * from './adapters/openai-compatible.js';
4
+ export * from './adapters/openai.js';
5
+ export * from './adapters/openrouter.js';
6
+ export * from './errors.js';
7
+ export * from './registry.js';
8
+ export * from './secret-store.js';
9
+ export * from './streaming.js';
10
+ export * from './transport.js';
11
+ export * from './types.js';
12
+ export * from './url.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export * from './adapters/anthropic.js';
2
+ export * from './adapters/gemini.js';
3
+ export * from './adapters/openai-compatible.js';
4
+ export * from './adapters/openai.js';
5
+ export * from './adapters/openrouter.js';
6
+ export * from './errors.js';
7
+ export * from './registry.js';
8
+ export * from './secret-store.js';
9
+ export * from './streaming.js';
10
+ export * from './transport.js';
11
+ export * from './types.js';
12
+ export * from './url.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ProviderAdapter, ProviderCapability, ProviderId } from './types.js';
2
+ export declare class ProviderRegistry {
3
+ private readonly adapters;
4
+ register(adapter: ProviderAdapter): this;
5
+ unregister(providerId: ProviderId): boolean;
6
+ get(providerId: ProviderId): ProviderAdapter | undefined;
7
+ require(providerId: ProviderId): ProviderAdapter;
8
+ has(providerId: ProviderId): boolean;
9
+ supports(providerId: ProviderId, capability: ProviderCapability): boolean;
10
+ list(): ProviderAdapter[];
11
+ }
12
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAEnE,QAAQ,CAAC,OAAO,EAAE,eAAe;IAiBjC,UAAU,CAAC,UAAU,EAAE,UAAU;IAIjC,GAAG,CAAC,UAAU,EAAE,UAAU;IAI1B,OAAO,CAAC,UAAU,EAAE,UAAU;IAU9B,GAAG,CAAC,UAAU,EAAE,UAAU;IAI1B,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB;IAI/D,IAAI;CAGL"}
@@ -0,0 +1,45 @@
1
+ import { ProviderError } from './errors.js';
2
+ export class ProviderRegistry {
3
+ adapters = new Map();
4
+ register(adapter) {
5
+ if (!adapter.id.trim()) {
6
+ throw new ProviderError('CONFIGURATION_ERROR', 'Provider adapters must have an id.');
7
+ }
8
+ if (this.adapters.has(adapter.id)) {
9
+ throw new ProviderError('CONFIGURATION_ERROR', `Provider adapter already registered: ${adapter.id}.`);
10
+ }
11
+ if (adapter.capabilities.streaming === true && typeof adapter.streamChat !== 'function') {
12
+ throw new ProviderError('CONFIGURATION_ERROR', `Provider adapter enables streaming without streamChat: ${adapter.id}.`, { providerId: adapter.id });
13
+ }
14
+ if (adapter.capabilities.models === true && typeof adapter.listModels !== 'function') {
15
+ throw new ProviderError('CONFIGURATION_ERROR', `Provider adapter enables models without listModels: ${adapter.id}.`, { providerId: adapter.id });
16
+ }
17
+ this.adapters.set(adapter.id, adapter);
18
+ return this;
19
+ }
20
+ unregister(providerId) {
21
+ return this.adapters.delete(providerId);
22
+ }
23
+ get(providerId) {
24
+ return this.adapters.get(providerId);
25
+ }
26
+ require(providerId) {
27
+ const adapter = this.get(providerId);
28
+ if (!adapter) {
29
+ throw new ProviderError('NOT_FOUND', `Provider adapter is not registered: ${providerId}.`, {
30
+ providerId,
31
+ });
32
+ }
33
+ return adapter;
34
+ }
35
+ has(providerId) {
36
+ return this.adapters.has(providerId);
37
+ }
38
+ supports(providerId, capability) {
39
+ return this.require(providerId).capabilities[capability] === true;
40
+ }
41
+ list() {
42
+ return [...this.adapters.values()];
43
+ }
44
+ }
45
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,gBAAgB;IACV,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEnE,QAAQ,CAAC,OAAwB;QAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,aAAa,CAAC,qBAAqB,EAAE,oCAAoC,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,aAAa,CAAC,qBAAqB,EAAE,wCAAwC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACxF,MAAM,IAAI,aAAa,CAAC,qBAAqB,EAAE,0DAA0D,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACtJ,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrF,MAAM,IAAI,aAAa,CAAC,qBAAqB,EAAE,uDAAuD,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACnJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,UAAsB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,UAAsB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,UAAsB;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,uCAAuC,UAAU,GAAG,EAAE;gBACzF,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,UAAsB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,UAAsB,EAAE,UAA8B;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACpE,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import type { ProviderCredential, ProviderId } from './types.js';
2
+ export interface SecretStore {
3
+ get(providerId: ProviderId): Promise<ProviderCredential | undefined>;
4
+ }
5
+ export declare class InMemorySecretStore implements SecretStore {
6
+ private readonly credentials;
7
+ constructor(initial?: Readonly<Record<ProviderId, ProviderCredential>>);
8
+ get(providerId: ProviderId): Promise<ProviderCredential | undefined>;
9
+ set(providerId: ProviderId, credential: ProviderCredential): void;
10
+ delete(providerId: ProviderId): void;
11
+ }
12
+ //# sourceMappingURL=secret-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-store.d.ts","sourceRoot":"","sources":["../src/secret-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;CACtE;AAED,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;gBAE7D,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAM;IAMpE,GAAG,CAAC,UAAU,EAAE,UAAU;IAIhC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB;IAI1D,MAAM,CAAC,UAAU,EAAE,UAAU;CAG9B"}
@@ -0,0 +1,18 @@
1
+ export class InMemorySecretStore {
2
+ credentials = new Map();
3
+ constructor(initial = {}) {
4
+ for (const [providerId, credential] of Object.entries(initial)) {
5
+ this.credentials.set(providerId, credential);
6
+ }
7
+ }
8
+ async get(providerId) {
9
+ return this.credentials.get(providerId);
10
+ }
11
+ set(providerId, credential) {
12
+ this.credentials.set(providerId, credential);
13
+ }
14
+ delete(providerId) {
15
+ this.credentials.delete(providerId);
16
+ }
17
+ }
18
+ //# sourceMappingURL=secret-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-store.js","sourceRoot":"","sources":["../src/secret-store.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,mBAAmB;IACb,WAAW,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEzE,YAAY,UAA4D,EAAE;QACxE,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAsB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,UAAsB,EAAE,UAA8B;QACxD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,UAAsB;QAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ export type SseEvent = {
2
+ event?: string;
3
+ data: string;
4
+ id?: string;
5
+ };
6
+ export type SseParseOptions = {
7
+ maxEventBytes?: number;
8
+ };
9
+ export declare function parseSseStream(source: AsyncIterable<string>, options?: SseParseOptions): AsyncIterable<SseEvent>;
10
+ export declare function parseSseJson<T>(event: SseEvent, providerId?: string): T | undefined;
11
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAIF,wBAAuB,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAqE3H;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAWnF"}