@x12i/ai-gateway 11.0.7 → 11.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 (77) hide show
  1. package/dist/gateway-config.d.ts +4 -4
  2. package/dist/gateway-config.js +18 -53
  3. package/dist/gateway-log-levels.d.ts +3 -1
  4. package/dist/gateway-log-levels.js +2 -1
  5. package/dist/gateway-retry.d.ts +2 -2
  6. package/dist/gateway-router.d.ts +42 -0
  7. package/dist/gateway-router.js +118 -0
  8. package/dist/gateway-utils.d.ts +2 -2
  9. package/dist/gateway-utils.js +1 -1
  10. package/dist/gateway.d.ts +2 -3
  11. package/dist/gateway.js +4 -16
  12. package/dist/index.d.ts +9 -13
  13. package/dist/index.js +7 -13
  14. package/dist/openrouter-runtime-adapter/index.d.ts +1 -3
  15. package/dist/openrouter-runtime-adapter/index.js +1 -3
  16. package/dist/openrouter-runtime-adapter/map-gateway-request.d.ts +1 -2
  17. package/dist/openrouter-runtime-adapter/map-gateway-request.js +0 -1
  18. package/dist/openrouter-runtime-adapter/map-runtime-errors.d.ts +14 -3
  19. package/dist/openrouter-runtime-adapter/map-runtime-errors.js +13 -3
  20. package/dist/openrouter-runtime-adapter/map-runtime-response.d.ts +2 -2
  21. package/dist/openrouter-runtime-adapter/map-server-tools.d.ts +1 -1
  22. package/dist/openrouter-runtime-adapter/should-use-openrouter-runtime.d.ts +1 -6
  23. package/dist/openrouter-runtime-adapter/should-use-openrouter-runtime.js +1 -6
  24. package/dist/router-errors.d.ts +52 -0
  25. package/dist/router-errors.js +115 -0
  26. package/dist/router-types.d.ts +147 -0
  27. package/dist/router-types.js +4 -0
  28. package/dist/types.d.ts +11 -16
  29. package/dist-cjs/gateway-config.cjs +18 -53
  30. package/dist-cjs/gateway-config.d.ts +4 -4
  31. package/dist-cjs/gateway-log-levels.cjs +2 -1
  32. package/dist-cjs/gateway-log-levels.d.ts +3 -1
  33. package/dist-cjs/gateway-retry.d.ts +2 -2
  34. package/dist-cjs/gateway-router.cjs +118 -0
  35. package/dist-cjs/gateway-router.d.ts +42 -0
  36. package/dist-cjs/gateway-utils.cjs +1 -1
  37. package/dist-cjs/gateway-utils.d.ts +2 -2
  38. package/dist-cjs/gateway.cjs +4 -16
  39. package/dist-cjs/gateway.d.ts +2 -3
  40. package/dist-cjs/index.cjs +7 -13
  41. package/dist-cjs/index.d.ts +9 -13
  42. package/dist-cjs/openrouter-runtime-adapter/index.cjs +1 -3
  43. package/dist-cjs/openrouter-runtime-adapter/index.d.ts +1 -3
  44. package/dist-cjs/openrouter-runtime-adapter/map-gateway-request.cjs +0 -1
  45. package/dist-cjs/openrouter-runtime-adapter/map-gateway-request.d.ts +1 -2
  46. package/dist-cjs/openrouter-runtime-adapter/map-runtime-errors.cjs +13 -3
  47. package/dist-cjs/openrouter-runtime-adapter/map-runtime-errors.d.ts +14 -3
  48. package/dist-cjs/openrouter-runtime-adapter/map-runtime-response.d.ts +2 -2
  49. package/dist-cjs/openrouter-runtime-adapter/map-server-tools.d.ts +1 -1
  50. package/dist-cjs/openrouter-runtime-adapter/should-use-openrouter-runtime.cjs +1 -6
  51. package/dist-cjs/openrouter-runtime-adapter/should-use-openrouter-runtime.d.ts +1 -6
  52. package/dist-cjs/router-errors.cjs +115 -0
  53. package/dist-cjs/router-errors.d.ts +52 -0
  54. package/dist-cjs/router-types.cjs +4 -0
  55. package/dist-cjs/router-types.d.ts +147 -0
  56. package/dist-cjs/types.d.ts +11 -16
  57. package/package.json +5 -6
  58. package/dist/gateway-provider-auto-register.d.ts +0 -17
  59. package/dist/gateway-provider-auto-register.js +0 -159
  60. package/dist/gateway-provider.d.ts +0 -54
  61. package/dist/gateway-provider.js +0 -202
  62. package/dist/openrouter-runtime-adapter/create-openrouter-runtime-adapter.d.ts +0 -23
  63. package/dist/openrouter-runtime-adapter/create-openrouter-runtime-adapter.js +0 -31
  64. package/dist/openrouter-runtime-adapter/create-openrouter-runtime-provider.d.ts +0 -10
  65. package/dist/openrouter-runtime-adapter/create-openrouter-runtime-provider.js +0 -152
  66. package/dist/openrouter-runtime-adapter/register-openrouter-runtime.d.ts +0 -10
  67. package/dist/openrouter-runtime-adapter/register-openrouter-runtime.js +0 -19
  68. package/dist-cjs/gateway-provider-auto-register.cjs +0 -159
  69. package/dist-cjs/gateway-provider-auto-register.d.ts +0 -17
  70. package/dist-cjs/gateway-provider.cjs +0 -202
  71. package/dist-cjs/gateway-provider.d.ts +0 -54
  72. package/dist-cjs/openrouter-runtime-adapter/create-openrouter-runtime-adapter.cjs +0 -31
  73. package/dist-cjs/openrouter-runtime-adapter/create-openrouter-runtime-adapter.d.ts +0 -23
  74. package/dist-cjs/openrouter-runtime-adapter/create-openrouter-runtime-provider.cjs +0 -152
  75. package/dist-cjs/openrouter-runtime-adapter/create-openrouter-runtime-provider.d.ts +0 -10
  76. package/dist-cjs/openrouter-runtime-adapter/register-openrouter-runtime.cjs +0 -19
  77. package/dist-cjs/openrouter-runtime-adapter/register-openrouter-runtime.d.ts +0 -10
@@ -1,202 +0,0 @@
1
- /**
2
- * Gateway Provider Module
3
- * Handles provider management
4
- */
5
- /**
6
- * Register a provider with the router
7
- */
8
- export function registerProvider(provider, router, logger) {
9
- // Get provider name - try multiple methods
10
- let providerName = 'unknown';
11
- if (typeof provider.getProviderName === 'function') {
12
- providerName = provider.getProviderName();
13
- }
14
- else if (provider.name) {
15
- providerName = provider.name;
16
- }
17
- else if (provider.constructor?.name) {
18
- providerName = provider.constructor.name.replace('Provider', '').toLowerCase();
19
- }
20
- logger.debug('Registering provider', { provider: providerName });
21
- // Check if provider has required methods
22
- if (!provider || (typeof provider.invoke !== 'function' && typeof provider.aiCall !== 'function')) {
23
- logger.error('Provider registration failed: must implement invoke() or aiCall()', {
24
- provider: providerName,
25
- hasInvoke: typeof provider.invoke === 'function',
26
- hasAiCall: typeof provider.aiCall === 'function'
27
- });
28
- throw new Error('Provider must implement LLMProviderInterface (invoke) or AIProviderInterface (aiCall)');
29
- }
30
- // Create a ProviderModule wrapper for the provider instance
31
- logger.debug('Creating ProviderModule wrapper for provider instance', { provider: providerName });
32
- // Ensure provider has invoke method
33
- let providerWithInvoke = provider;
34
- if (typeof provider.aiCall === 'function' && typeof provider.invoke !== 'function') {
35
- logger.debug('Provider uses aiCall, creating invoke wrapper', { provider: providerName });
36
- providerWithInvoke = {
37
- ...provider,
38
- invoke: async (request) => {
39
- // Convert LLMRequest to format expected by aiCall
40
- return await provider.aiCall(request);
41
- }
42
- };
43
- }
44
- // Create ProviderModule wrapper
45
- const providerModule = {
46
- name: providerName,
47
- capabilities: {
48
- modes: {
49
- sync: true,
50
- stream: false,
51
- batch: false
52
- },
53
- operations: ['invoke'],
54
- maxConcurrency: 10
55
- },
56
- execute: async (request) => {
57
- return await providerWithInvoke.invoke(request);
58
- }
59
- };
60
- // Register with router using registerProvider
61
- try {
62
- router.registerProvider(providerModule);
63
- logger.info('Provider registered as ProviderModule', {
64
- provider: providerName,
65
- totalProviders: router.listProviders().length
66
- });
67
- }
68
- catch (error) {
69
- logger.error('Failed to register provider with router.registerProvider, trying registry directly', {
70
- provider: providerName,
71
- error: error instanceof Error ? error.message : String(error)
72
- });
73
- // Fallback: try to access registry directly
74
- try {
75
- const registry = router.getProviderRegistry();
76
- registry.register(providerModule);
77
- logger.info('Provider registered via registry fallback', {
78
- provider: providerName,
79
- totalProviders: router.listProviders().length
80
- });
81
- }
82
- catch (registryError) {
83
- logger.error('Failed to register provider via registry', {
84
- provider: providerName,
85
- error: registryError instanceof Error ? registryError.message : String(registryError)
86
- });
87
- throw registryError;
88
- }
89
- }
90
- }
91
- /**
92
- * Unregister a provider
93
- */
94
- export function unregisterProvider(providerName, router, logger) {
95
- try {
96
- // Try to access registry directly to remove the provider
97
- const registry = router.getProviderRegistry();
98
- // Since registry doesn't have an unregister method, we'll need to manipulate the map directly
99
- // This is a bit hacky but necessary since the API doesn't provide unregister
100
- const map = registry.map;
101
- if (map && map instanceof Map) {
102
- map.delete(providerName);
103
- logger.info('Provider unregistered from registry', { provider: providerName });
104
- }
105
- else {
106
- logger.warn('Could not access provider registry map for unregistration', { provider: providerName });
107
- }
108
- }
109
- catch (error) {
110
- logger.error('Failed to unregister provider', {
111
- provider: providerName,
112
- error: error instanceof Error ? error.message : String(error)
113
- });
114
- }
115
- }
116
- /**
117
- * Get a provider module
118
- */
119
- export function getProvider(providerName, router) {
120
- try {
121
- const registry = router.getProviderRegistry();
122
- return registry.get(providerName);
123
- }
124
- catch (error) {
125
- // Fallback to any access if registry access fails
126
- return router.getProvider?.(providerName);
127
- }
128
- }
129
- /**
130
- * List all registered providers
131
- */
132
- export function listProviders(router) {
133
- return router.listProviders();
134
- }
135
- /**
136
- * Set default provider
137
- *
138
- * NOTE: Router doesn't support changing default provider after initialization.
139
- * This method is kept for API compatibility but does nothing.
140
- * Default provider must be set in router config during initialization.
141
- */
142
- export function setDefaultProvider(provider, router, logger) {
143
- // Router doesn't support changing default provider after initialization
144
- // Default provider must be set in router config during initialization
145
- logger.warn('setDefaultProvider called but router does not support changing default provider after initialization', {
146
- provider,
147
- note: 'Default provider must be set in router config during initialization'
148
- });
149
- }
150
- /**
151
- * Set fallback chain
152
- *
153
- * NOTE: Router doesn't support changing fallback chain after initialization.
154
- * This method is kept for API compatibility but does nothing.
155
- * Fallback chain must be set in router config during initialization.
156
- */
157
- export function setFallbackChain(chain, router, logger) {
158
- // Router doesn't support changing fallback chain after initialization
159
- // Fallback chain must be set in router config during initialization
160
- logger.warn('setFallbackChain called but router does not support changing fallback chain after initialization', {
161
- chain,
162
- note: 'Fallback chain must be set in router config during initialization'
163
- });
164
- }
165
- /**
166
- * Add request interceptor
167
- */
168
- export function addRequestInterceptor(interceptor, router) {
169
- router.addRequestInterceptor(interceptor);
170
- }
171
- /**
172
- * Add response interceptor
173
- */
174
- export function addResponseInterceptor(interceptor, router) {
175
- router.addResponseInterceptor(interceptor);
176
- }
177
- /**
178
- * Check health of a provider
179
- */
180
- export async function checkHealth(provider, router) {
181
- return router.checkHealth(provider);
182
- }
183
- /**
184
- * Check health of all providers
185
- */
186
- export async function checkAllHealth(router) {
187
- const providers = listProviders(router);
188
- const results = {};
189
- for (const provider of providers) {
190
- try {
191
- results[provider] = await router.checkHealth(provider);
192
- }
193
- catch (error) {
194
- results[provider] = {
195
- provider,
196
- healthy: false,
197
- error: error instanceof Error ? error.message : String(error)
198
- };
199
- }
200
- }
201
- return results;
202
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * Gateway Provider Module
3
- * Handles provider management
4
- */
5
- import type { LLMProviderRouter } from '@x12i/ai-providers-router';
6
- import type { Logxer } from '@x12i/logxer';
7
- /**
8
- * Register a provider with the router
9
- */
10
- export declare function registerProvider(provider: any, router: LLMProviderRouter, logger: Logxer): void;
11
- /**
12
- * Unregister a provider
13
- */
14
- export declare function unregisterProvider(providerName: string, router: LLMProviderRouter, logger: Logxer): void;
15
- /**
16
- * Get a provider module
17
- */
18
- export declare function getProvider(providerName: string, router: LLMProviderRouter): any;
19
- /**
20
- * List all registered providers
21
- */
22
- export declare function listProviders(router: LLMProviderRouter): string[];
23
- /**
24
- * Set default provider
25
- *
26
- * NOTE: Router doesn't support changing default provider after initialization.
27
- * This method is kept for API compatibility but does nothing.
28
- * Default provider must be set in router config during initialization.
29
- */
30
- export declare function setDefaultProvider(provider: string, router: LLMProviderRouter, logger: Logxer): void;
31
- /**
32
- * Set fallback chain
33
- *
34
- * NOTE: Router doesn't support changing fallback chain after initialization.
35
- * This method is kept for API compatibility but does nothing.
36
- * Fallback chain must be set in router config during initialization.
37
- */
38
- export declare function setFallbackChain(chain: string[], router: LLMProviderRouter, logger: Logxer): void;
39
- /**
40
- * Add request interceptor
41
- */
42
- export declare function addRequestInterceptor(interceptor: any, router: LLMProviderRouter): void;
43
- /**
44
- * Add response interceptor
45
- */
46
- export declare function addResponseInterceptor(interceptor: any, router: LLMProviderRouter): void;
47
- /**
48
- * Check health of a provider
49
- */
50
- export declare function checkHealth(provider: string, router: LLMProviderRouter): Promise<import("@x12i/ai-providers-router").HealthCheckResult>;
51
- /**
52
- * Check health of all providers
53
- */
54
- export declare function checkAllHealth(router: LLMProviderRouter): Promise<Record<string, any>>;
@@ -1,31 +0,0 @@
1
- import { mapGatewayRequestToRuntimeRequestFromRouter, OPENROUTER_RUNTIME_OPERATION, } from './map-gateway-request.js';
2
- import { parseRuntimeResponseToAIResponse } from './map-runtime-response.js';
3
- export function createOpenRouterRuntimeAdapter() {
4
- return {
5
- provider: 'openrouter',
6
- buildCallSpec(input) {
7
- const runtimeRequest = mapGatewayRequestToRuntimeRequestFromRouter({
8
- request: input.request,
9
- exec: input.exec,
10
- });
11
- return {
12
- requestId: input.requestId,
13
- provider: 'openrouter',
14
- mode: input.mode === 'stream' ? 'sync' : input.mode,
15
- operation: OPENROUTER_RUNTIME_OPERATION,
16
- args: runtimeRequest,
17
- exec: input.exec
18
- ? {
19
- timeoutMs: input.exec.timeoutMs,
20
- retries: input.exec.retries,
21
- idempotencyKey: input.exec.idempotencyKey,
22
- signal: input.exec.signal,
23
- }
24
- : undefined,
25
- };
26
- },
27
- parseResponse(input) {
28
- return parseRuntimeResponseToAIResponse(input);
29
- },
30
- };
31
- }
@@ -1,23 +0,0 @@
1
- import type { ProviderSDKCallSpec } from '@x12i/ai-provider-interface';
2
- import type { AIResponse } from '@x12i/ai-providers-router';
3
- export declare function createOpenRouterRuntimeAdapter(): {
4
- provider: string;
5
- buildCallSpec(input: {
6
- requestId: string;
7
- mode: "sync" | "stream";
8
- request: Record<string, unknown>;
9
- exec?: {
10
- timeoutMs?: number;
11
- retries?: number;
12
- idempotencyKey?: string;
13
- signal?: AbortSignal;
14
- };
15
- }): ProviderSDKCallSpec;
16
- parseResponse(input: {
17
- requestId: string;
18
- request: unknown;
19
- execResult: {
20
- rawResponse: unknown;
21
- };
22
- }): AIResponse;
23
- };
@@ -1,152 +0,0 @@
1
- import { createOpenRouterRuntime, RuntimeConfigError, OpenRouterHttpError, } from '@x12i/openrouter-runtime';
2
- import { OPENROUTER_RUNTIME_OPERATION } from './map-gateway-request.js';
3
- import { throwMappedOpenRouterHttpError, throwMappedRuntimeConfigError, throwMappedRuntimeResponseErrors, } from './map-runtime-errors.js';
4
- import { redactRawOpenRouterPayload } from './map-trace.js';
5
- function hasOwn(obj, key) {
6
- return Object.prototype.hasOwnProperty.call(obj, key);
7
- }
8
- function summarizeStreamValue(value) {
9
- if (value == null || ['boolean', 'number', 'string'].includes(typeof value))
10
- return value;
11
- if (Array.isArray(value))
12
- return `[array:${value.length}]`;
13
- return `[${typeof value}]`;
14
- }
15
- function collectStreamFields(value, path = 'body', depth = 0, out = []) {
16
- if (out.length >= 20 || depth > 8 || value == null || typeof value !== 'object')
17
- return out;
18
- if (Array.isArray(value)) {
19
- for (let i = 0; i < value.length && out.length < 20; i += 1) {
20
- collectStreamFields(value[i], `${path}[${i}]`, depth + 1, out);
21
- }
22
- return out;
23
- }
24
- for (const [key, child] of Object.entries(value)) {
25
- const childPath = `${path}.${key}`;
26
- if (key === 'stream') {
27
- out.push({ path: childPath, value: summarizeStreamValue(child) });
28
- if (out.length >= 20)
29
- return out;
30
- }
31
- collectStreamFields(child, childPath, depth + 1, out);
32
- }
33
- return out;
34
- }
35
- function summarizeServerTools(serverTools) {
36
- if (!serverTools)
37
- return undefined;
38
- const out = {};
39
- for (const [key, value] of Object.entries(serverTools)) {
40
- if (Array.isArray(value)) {
41
- out[key] = value.map((item) => item.mode).join(',');
42
- continue;
43
- }
44
- if (value && typeof value === 'object' && 'mode' in value && typeof value.mode === 'string') {
45
- out[key] = value.mode;
46
- }
47
- }
48
- return Object.keys(out).length ? out : undefined;
49
- }
50
- function summarizeCompiledTools(compiled) {
51
- const tools = Array.isArray(compiled.body.tools) ? compiled.body.tools : [];
52
- const toolTypes = tools
53
- .map((tool) => (tool && typeof tool === 'object' && 'type' in tool ? String(tool.type) : undefined))
54
- .filter((type) => typeof type === 'string');
55
- return {
56
- apiMode: compiled.apiMode,
57
- toolCount: tools.length,
58
- toolTypes,
59
- bodyKeys: Object.keys(compiled.body),
60
- hasTopLevelStream: hasOwn(compiled.body, 'stream'),
61
- topLevelStream: compiled.body.stream,
62
- streamFields: collectStreamFields(compiled.body),
63
- };
64
- }
65
- function shouldDebugOpenRouterBody(options) {
66
- if (options.debugOpenRouterBody === true)
67
- return true;
68
- const env = process.env.AI_GATEWAY_DEBUG_OPENROUTER_BODY?.toLowerCase();
69
- return env === '1' || env === 'true' || env === 'yes';
70
- }
71
- export function createOpenRouterRuntimeProvider(options) {
72
- const debugOpenRouterBody = shouldDebugOpenRouterBody(options);
73
- const runtime = options.runtime ??
74
- createOpenRouterRuntime({
75
- apiKey: options.apiKey,
76
- defaults: {
77
- retry: { enabled: false },
78
- onPolicyViolation: 'throw',
79
- },
80
- logger: options.logger
81
- ? {
82
- debug: (event, data) => options.logger?.debug(event, data),
83
- info: (event, data) => options.logger?.info(event, data),
84
- warn: (event, data) => options.logger?.warn(event, data),
85
- error: (event, data) => options.logger?.error(event, data),
86
- }
87
- : undefined,
88
- hooks: options.logger
89
- ? {
90
- beforeOpenRouterRequest: (compiled) => {
91
- const summary = summarizeCompiledTools(compiled);
92
- options.logger?.debug('OpenRouter runtime compiled request before fetch', {
93
- ...summary,
94
- url: compiled.url,
95
- });
96
- if (debugOpenRouterBody) {
97
- const redactedBody = redactRawOpenRouterPayload(compiled.body);
98
- options.logger?.debug('OpenRouter runtime compiled request body before fetch', {
99
- apiMode: compiled.apiMode,
100
- url: compiled.url,
101
- body: redactedBody,
102
- bodyJson: JSON.stringify(redactedBody, null, 2),
103
- });
104
- }
105
- },
106
- }
107
- : undefined,
108
- });
109
- return {
110
- name: 'openrouter',
111
- capabilities: {
112
- modes: { sync: true, stream: false, batch: false },
113
- operations: [OPENROUTER_RUNTIME_OPERATION],
114
- maxConcurrency: 10,
115
- },
116
- async execute(spec) {
117
- if (spec.operation !== OPENROUTER_RUNTIME_OPERATION) {
118
- throw new Error(`Unsupported OpenRouter runtime operation: ${spec.operation}`);
119
- }
120
- const runtimeRequest = spec.args;
121
- const rawOverrideKeys = runtimeRequest.rawOpenRouterOverrides
122
- ? Object.keys(runtimeRequest.rawOpenRouterOverrides)
123
- : [];
124
- const rawOverrides = runtimeRequest.rawOpenRouterOverrides ?? {};
125
- const rawOverrideHasStream = hasOwn(rawOverrides, 'stream');
126
- options.logger?.debug('OpenRouter runtime request server tools', {
127
- requestId: spec.requestId,
128
- model: runtimeRequest.model,
129
- apiMode: runtimeRequest.apiMode,
130
- serverTools: summarizeServerTools(runtimeRequest.serverTools),
131
- rawOverrideKeys,
132
- rawOverrideHasStream,
133
- rawOverrideStream: rawOverrides.stream,
134
- rawOverridesToolsPresent: Object.prototype.hasOwnProperty.call(rawOverrides, 'tools'),
135
- });
136
- try {
137
- const response = await runtime.run(runtimeRequest);
138
- if (response.status !== 'completed') {
139
- throwMappedRuntimeResponseErrors(response);
140
- }
141
- return { rawResponse: response };
142
- }
143
- catch (err) {
144
- if (err instanceof RuntimeConfigError)
145
- throwMappedRuntimeConfigError(err);
146
- if (err instanceof OpenRouterHttpError)
147
- throwMappedOpenRouterHttpError(err);
148
- throw err;
149
- }
150
- },
151
- };
152
- }
@@ -1,10 +0,0 @@
1
- import { type OpenRouterRuntime } from '@x12i/openrouter-runtime';
2
- import type { ProviderModule } from '@x12i/ai-provider-interface';
3
- import type { Logxer } from '@x12i/logxer';
4
- export type OpenRouterRuntimeProviderOptions = {
5
- apiKey: string;
6
- logger?: Logxer;
7
- runtime?: OpenRouterRuntime;
8
- debugOpenRouterBody?: boolean;
9
- };
10
- export declare function createOpenRouterRuntimeProvider(options: OpenRouterRuntimeProviderOptions): ProviderModule;
@@ -1,19 +0,0 @@
1
- import { createOpenRouterRuntimeAdapter } from './create-openrouter-runtime-adapter.js';
2
- import { createOpenRouterRuntimeProvider } from './create-openrouter-runtime-provider.js';
3
- export function registerOpenRouterRuntime(router, options) {
4
- const { apiKey, logger, runtimeConfig } = options;
5
- const provider = createOpenRouterRuntimeProvider({
6
- apiKey,
7
- logger,
8
- debugOpenRouterBody: runtimeConfig?.debugOpenRouterBody,
9
- });
10
- router.registerProvider(provider);
11
- const adapter = createOpenRouterRuntimeAdapter();
12
- router.getAdapterRegistry().register(adapter);
13
- logger?.info('Registered OpenRouter runtime provider and adapter', {
14
- provider: 'openrouter',
15
- runtimeEnabled: true,
16
- debugOpenRouterBody: runtimeConfig?.debugOpenRouterBody,
17
- });
18
- }
19
- export { shouldUseOpenRouterRuntime, resolveOpenRouterRuntimeDefaults } from './should-use-openrouter-runtime.js';
@@ -1,10 +0,0 @@
1
- import type { LLMProviderRouter } from '@x12i/ai-providers-router';
2
- import type { Logxer } from '@x12i/logxer';
3
- import type { GatewayOpenRouterRuntimeConfig } from '../types.js';
4
- export type RegisterOpenRouterRuntimeOptions = {
5
- apiKey: string;
6
- logger?: Logxer;
7
- runtimeConfig?: GatewayOpenRouterRuntimeConfig;
8
- };
9
- export declare function registerOpenRouterRuntime(router: LLMProviderRouter, options: RegisterOpenRouterRuntimeOptions): void;
10
- export { shouldUseOpenRouterRuntime, resolveOpenRouterRuntimeDefaults } from './should-use-openrouter-runtime.js';