@omnicross/core 0.1.0 → 0.1.1

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 (139) hide show
  1. package/dist/ApiConverter.cjs +799 -0
  2. package/dist/ApiConverter.d.cts +82 -0
  3. package/dist/ApiConverter.d.ts +82 -0
  4. package/dist/ApiConverter.js +763 -0
  5. package/dist/BuiltinToolExecutor-BluWyeob.d.ts +81 -0
  6. package/dist/BuiltinToolExecutor-CS2WpXhM.d.cts +81 -0
  7. package/dist/CompletionService-7fCmKAP3.d.ts +212 -0
  8. package/dist/CompletionService-DtOF_War.d.cts +212 -0
  9. package/dist/{ProviderProxy-f_8ziIhW.d.cts → ProviderProxy-C-xqrkKi.d.ts} +7 -2
  10. package/dist/{ProviderProxy-vjt8sQQk.d.ts → ProviderProxy-CnMQYN59.d.cts} +7 -2
  11. package/dist/completion/BuiltinToolExecutor.cjs +327 -0
  12. package/dist/completion/BuiltinToolExecutor.d.cts +4 -0
  13. package/dist/completion/BuiltinToolExecutor.d.ts +4 -0
  14. package/dist/completion/BuiltinToolExecutor.js +296 -0
  15. package/dist/completion/CompletionService.cjs +3487 -0
  16. package/dist/completion/CompletionService.d.cts +21 -0
  17. package/dist/completion/CompletionService.d.ts +21 -0
  18. package/dist/completion/CompletionService.js +3461 -0
  19. package/dist/completion/NativeSearchInjector.cjs +196 -0
  20. package/dist/completion/NativeSearchInjector.d.cts +42 -0
  21. package/dist/completion/NativeSearchInjector.d.ts +42 -0
  22. package/dist/completion/NativeSearchInjector.js +167 -0
  23. package/dist/completion/ProviderSearchInjector.cjs +87 -0
  24. package/dist/completion/ProviderSearchInjector.d.cts +47 -0
  25. package/dist/completion/ProviderSearchInjector.d.ts +47 -0
  26. package/dist/completion/ProviderSearchInjector.js +60 -0
  27. package/dist/completion/native-search-types.cjs +67 -0
  28. package/dist/completion/native-search-types.d.cts +3 -0
  29. package/dist/completion/native-search-types.d.ts +3 -0
  30. package/dist/completion/native-search-types.js +38 -0
  31. package/dist/completion/openrouter-headers.cjs +72 -0
  32. package/dist/completion/openrouter-headers.d.cts +44 -0
  33. package/dist/completion/openrouter-headers.d.ts +44 -0
  34. package/dist/completion/openrouter-headers.js +42 -0
  35. package/dist/completion/openrouter-models.cjs +86 -0
  36. package/dist/completion/openrouter-models.d.cts +27 -0
  37. package/dist/completion/openrouter-models.d.ts +27 -0
  38. package/dist/completion/openrouter-models.js +59 -0
  39. package/dist/completion/types.cjs +18 -0
  40. package/dist/completion/types.d.cts +3 -0
  41. package/dist/completion/types.d.ts +3 -0
  42. package/dist/completion/types.js +0 -0
  43. package/dist/completion/url-builder.cjs +138 -0
  44. package/dist/completion/url-builder.d.cts +87 -0
  45. package/dist/completion/url-builder.d.ts +87 -0
  46. package/dist/completion/url-builder.js +104 -0
  47. package/dist/completion.d.cts +148 -7
  48. package/dist/completion.d.ts +148 -7
  49. package/dist/index.cjs +1 -0
  50. package/dist/index.d.cts +27 -90
  51. package/dist/index.d.ts +27 -90
  52. package/dist/index.js +1 -0
  53. package/dist/outbound-api/routeResolver.cjs +221 -0
  54. package/dist/outbound-api/routeResolver.d.cts +18 -0
  55. package/dist/outbound-api/routeResolver.d.ts +18 -0
  56. package/dist/outbound-api/routeResolver.js +192 -0
  57. package/dist/outbound-api/subscriptionRegistryPort.d.cts +5 -2
  58. package/dist/outbound-api/subscriptionRegistryPort.d.ts +5 -2
  59. package/dist/outbound-api/types.cjs +18 -0
  60. package/dist/{types-CbCN2NQP.d.ts → outbound-api/types.d.cts} +17 -3
  61. package/dist/{types-CGGrKqC_.d.cts → outbound-api/types.d.ts} +17 -3
  62. package/dist/outbound-api/types.js +0 -0
  63. package/dist/outbound-api.cjs +1 -0
  64. package/dist/outbound-api.d.cts +14 -87
  65. package/dist/outbound-api.d.ts +14 -87
  66. package/dist/outbound-api.js +1 -0
  67. package/dist/pipeline/AuthSource.cjs +18 -0
  68. package/dist/pipeline/AuthSource.d.cts +101 -0
  69. package/dist/pipeline/AuthSource.d.ts +101 -0
  70. package/dist/pipeline/AuthSource.js +0 -0
  71. package/dist/pipeline/LlmConfigProviderAuth.cjs +169 -0
  72. package/dist/pipeline/LlmConfigProviderAuth.d.cts +86 -0
  73. package/dist/pipeline/LlmConfigProviderAuth.d.ts +86 -0
  74. package/dist/pipeline/LlmConfigProviderAuth.js +142 -0
  75. package/dist/pipeline/SubscriptionAuthSource.d.cts +165 -3
  76. package/dist/pipeline/SubscriptionAuthSource.d.ts +165 -3
  77. package/dist/pipeline/executeProviderCall.cjs +70 -0
  78. package/dist/pipeline/executeProviderCall.d.cts +149 -0
  79. package/dist/pipeline/executeProviderCall.d.ts +149 -0
  80. package/dist/pipeline/executeProviderCall.js +45 -0
  81. package/dist/pipeline/resolveProviderChain.cjs +47 -0
  82. package/dist/pipeline/resolveProviderChain.d.cts +58 -0
  83. package/dist/pipeline/resolveProviderChain.d.ts +58 -0
  84. package/dist/pipeline/resolveProviderChain.js +22 -0
  85. package/dist/pipeline/resolveSubscriptionChain.cjs +68 -0
  86. package/dist/pipeline/resolveSubscriptionChain.d.cts +68 -0
  87. package/dist/pipeline/resolveSubscriptionChain.d.ts +68 -0
  88. package/dist/pipeline/resolveSubscriptionChain.js +43 -0
  89. package/dist/ports/provider-config-source.cjs +18 -0
  90. package/dist/ports/provider-config-source.d.cts +51 -0
  91. package/dist/ports/provider-config-source.d.ts +51 -0
  92. package/dist/ports/provider-config-source.js +0 -0
  93. package/dist/ports/web-search-backend.cjs +18 -0
  94. package/dist/ports/web-search-backend.d.cts +29 -0
  95. package/dist/ports/web-search-backend.d.ts +29 -0
  96. package/dist/ports/web-search-backend.js +0 -0
  97. package/dist/ports.d.cts +10 -7
  98. package/dist/ports.d.ts +10 -7
  99. package/dist/provider-proxy/ProviderProxy.cjs +4643 -0
  100. package/dist/provider-proxy/ProviderProxy.d.cts +16 -0
  101. package/dist/provider-proxy/ProviderProxy.d.ts +16 -0
  102. package/dist/provider-proxy/ProviderProxy.js +4618 -0
  103. package/dist/provider-proxy/ingress/providerProxyShared.d.cts +5 -2
  104. package/dist/provider-proxy/ingress/providerProxyShared.d.ts +5 -2
  105. package/dist/provider-proxy/types.d.cts +406 -8
  106. package/dist/provider-proxy/types.d.ts +406 -8
  107. package/dist/provider-proxy.cjs +1 -0
  108. package/dist/provider-proxy.d.cts +8 -5
  109. package/dist/provider-proxy.d.ts +8 -5
  110. package/dist/provider-proxy.js +1 -0
  111. package/dist/routeResolver-BrbK6ja9.d.cts +88 -0
  112. package/dist/routeResolver-HE-ZO0fO.d.ts +88 -0
  113. package/dist/transformer/anthropicBetaInject.cjs +51 -0
  114. package/dist/transformer/anthropicBetaInject.d.cts +20 -0
  115. package/dist/transformer/anthropicBetaInject.d.ts +20 -0
  116. package/dist/transformer/anthropicBetaInject.js +25 -0
  117. package/dist/transformer/transformers/AnthropicTransformer.cjs +1017 -0
  118. package/dist/transformer/transformers/AnthropicTransformer.d.cts +148 -0
  119. package/dist/transformer/transformers/AnthropicTransformer.d.ts +148 -0
  120. package/dist/transformer/transformers/AnthropicTransformer.js +990 -0
  121. package/dist/transformer/transformers/ReasoningTransformer.cjs +273 -0
  122. package/dist/transformer/transformers/ReasoningTransformer.d.cts +47 -0
  123. package/dist/transformer/transformers/ReasoningTransformer.d.ts +47 -0
  124. package/dist/transformer/transformers/ReasoningTransformer.js +253 -0
  125. package/dist/transformer/transformers.cjs +3206 -0
  126. package/dist/transformer/transformers.d.cts +100 -0
  127. package/dist/transformer/transformers.d.ts +100 -0
  128. package/dist/transformer/transformers.js +3174 -0
  129. package/dist/transformer.d.cts +8 -31
  130. package/dist/transformer.d.ts +8 -31
  131. package/dist/types-BScIHmPr.d.cts +153 -0
  132. package/dist/types-BScIHmPr.d.ts +153 -0
  133. package/package.json +3 -3
  134. package/dist/SubscriptionAuthSource-Cr4fVEYY.d.cts +0 -264
  135. package/dist/SubscriptionAuthSource-D89zmiSS.d.ts +0 -264
  136. package/dist/index-BTSmc9Sm.d.ts +0 -645
  137. package/dist/index-DXazdTzZ.d.cts +0 -645
  138. package/dist/types-DCzHkhJt.d.ts +0 -467
  139. package/dist/types-DZIQbgp0.d.cts +0 -467
@@ -1,17 +1,158 @@
1
- export { a as ApiFormat, B as BuiltinToolExecutor, C as CompletionOptions, b as CompletionResult, c as CompletionService, N as NATIVE_SEARCH_TOOL_NAMES, d as NativeSearchAugmentation, e as NativeSearchDetectionResult, f as NativeSearchProvider, g as NativeSearchUserConfig, S as SimpleChatGeminiMessage, h as SimpleChatGeminiPart, i as StreamCallbacks, j as StreamEvent, k as StreamEventType, l as StreamSender, V as VisionFallbackProvider, m as addOpenRouterProviderToRequest, n as applyAugmentation, o as attachStreamEventBuffer, p as buildAnthropicApiUrl, q as buildAzureOpenAIApiUrl, r as buildGeminiApiUrl, s as buildNativeSearchAugmentation, t as buildOpenAIApiUrl, u as buildOpenAIResponseApiUrl, v as buildProviderApiUrl, w as convertMessageToAnthropic, x as convertMessageToGemini, y as convertMessageToOpenAI, z as detectNativeSearch, D as emitStreamEvent, E as getBuiltinSearchTools, F as getOpenRouterProviderConfig, H as getProviderHeaders, I as normalizeAzureEndpoint, J as registerStreamEventBuffer, K as releaseStreamEventBuffer, L as resolveApiFormat, P as resolveProviderEndpoint } from './index-BTSmc9Sm.js';
1
+ export { A as ApiFormat, C as CompletionOptions, a as CompletionResult, N as NATIVE_SEARCH_TOOL_NAMES, b as NativeSearchAugmentation, c as NativeSearchDetectionResult, d as NativeSearchProvider, e as NativeSearchUserConfig, S as StreamCallbacks } from './types-BScIHmPr.js';
2
+ export { C as CompletionService, V as VisionFallbackProvider } from './CompletionService-7fCmKAP3.js';
3
+ export { buildAnthropicApiUrl, buildAzureOpenAIApiUrl, buildGeminiApiUrl, buildOpenAIApiUrl, buildOpenAIResponseApiUrl, buildProviderApiUrl, normalizeAzureEndpoint, resolveApiFormat, resolveProviderEndpoint } from './completion/url-builder.js';
4
+ import { LLMProvider, OpenRouterProviderRouting } from '@omnicross/contracts/llm-config';
5
+ import { SimpleChatMessage, AnthropicMessage, OpenAIMessage } from '@omnicross/contracts/completion-types';
6
+ export { B as BuiltinToolExecutor, g as getBuiltinSearchTools } from './BuiltinToolExecutor-BluWyeob.js';
7
+ export { applyAugmentation, buildNativeSearchAugmentation, detectNativeSearch } from './completion/NativeSearchInjector.js';
2
8
  import '@omnicross/contracts/message-blocks';
3
- import '@omnicross/contracts/completion-types';
4
- import '@omnicross/contracts/llm-config';
5
9
  import './usage-event-sink-BX7FE1NL.js';
6
10
  import './ApiKeyPoolService-BmMkau07.js';
7
- import './types-DCzHkhJt.js';
11
+ import './ports/provider-config-source.js';
12
+ import './transformer/types.js';
13
+ import './transformer/TransformerService.js';
14
+ import './provider-proxy/types.js';
8
15
  import 'node:http';
9
16
  import '@omnicross/contracts/subscription-types';
10
17
  import '@omnicross/contracts/usage-types';
11
- import './SubscriptionAuthSource-D89zmiSS.js';
18
+ import './pipeline/AuthSource.js';
19
+ import './pipeline/SubscriptionAuthSource.js';
12
20
  import './pipeline/SubscriptionAuthStrategy.js';
13
- import './transformer/types.js';
14
- import './transformer/TransformerService.js';
21
+ import './ports/web-search-backend.js';
15
22
  import '@omnicross/contracts/websearch-types';
16
23
  import '@omnicross/contracts/mcp-types';
17
24
  import '@omnicross/contracts/endpoint-resolver';
25
+
26
+ /**
27
+ * StreamEventBuffer — per-streamId event queue for streamed completion delivery.
28
+ *
29
+ * Closes the subscribe-vs-emit race between a producer that starts the LLM call
30
+ * asynchronously and a consumer that only attaches its listener after awaiting a
31
+ * reply. Events emitted before `attach(streamId)` is called are queued and
32
+ * replayed in order on attach.
33
+ */
34
+ /**
35
+ * Minimal structural sender — the subset of an Electron `WebContents` (or any
36
+ * IPC channel) this buffer actually uses. Kept LOCAL so core has zero electron
37
+ * dependency; the host passes any object satisfying this shape.
38
+ */
39
+ interface StreamSender {
40
+ isDestroyed(): boolean;
41
+ send(channel: string, payload: StreamEvent): void;
42
+ }
43
+ type StreamEventType = 'start' | 'delta' | 'reasoning' | 'tool_call' | 'tool_result' | 'tool_use' | 'block' | 'search_start' | 'search_result' | 'done' | 'error' | 'abort';
44
+ interface StreamEvent {
45
+ type: StreamEventType;
46
+ [key: string]: unknown;
47
+ }
48
+ /**
49
+ * Register a new stream. Called by the engine / handler immediately after the
50
+ * `streamId` is created, before any `emit`. Idempotent re-registration replaces
51
+ * the sender (covers the rare case of the engine retrying with the same id).
52
+ */
53
+ declare function register(streamId: string, sender: StreamSender): void;
54
+ /**
55
+ * Emit an event for `streamId`. Forwards directly if the client has attached;
56
+ * otherwise queues until `attach` is called. Bounded at QUEUE_CAP — overflow
57
+ * evicts the oldest non-terminal event.
58
+ */
59
+ declare function emit(streamId: string, event: StreamEvent): void;
60
+ /**
61
+ * The client announced readiness via the `completion:stream:subscribe` IPC. Drains
62
+ * the queue synchronously to the bound sender, then flips to direct-forward mode.
63
+ * Returns the number of events drained for diagnostic purposes.
64
+ */
65
+ declare function attach(streamId: string): {
66
+ ok: boolean;
67
+ drained: number;
68
+ };
69
+ /**
70
+ * Mark a stream finished. If the client has already attached, release
71
+ * synchronously. Otherwise defer one tick so a late `subscribe` arriving on the
72
+ * heels of the `done`/`error` event still drains the queue before cleanup.
73
+ */
74
+ declare function release(streamId: string): void;
75
+
76
+ /**
77
+ * Request Header Building Utilities
78
+ *
79
+ * Functions for building correct request headers based on provider format.
80
+ */
81
+
82
+ /**
83
+ * Get request headers based on provider format
84
+ */
85
+ declare function getProviderHeaders(provider: LLMProvider, apiKey: string): Record<string, string>;
86
+
87
+ /**
88
+ * Message Format Conversion Utilities
89
+ *
90
+ * Functions for converting SimpleChatMessage to different API formats.
91
+ */
92
+
93
+ /**
94
+ * Convert SimpleChatMessage to OpenAI-compatible format (covers OpenAI, OpenRouter,
95
+ * and other OpenAI-compatible providers — DO NOT call from Anthropic / Gemini paths,
96
+ * which have their own converters above).
97
+ *
98
+ * - Text only: { role, content: string }
99
+ * - With media: { role, content: [{ type: "text" | "image_url" | "input_audio" | "video_url", ... }] }
100
+ *
101
+ * Audio is emitted as `input_audio` with base64 + format (the standard OpenAI / OpenRouter
102
+ * shape). Video is emitted as `video_url`: HTTPS URLs pass through; local data is sent as a
103
+ * `data:<mime>;base64,...` URL with a 25 MB cap before the request is even built.
104
+ */
105
+ declare function convertMessageToOpenAI(msg: SimpleChatMessage): OpenAIMessage;
106
+ /**
107
+ * Convert SimpleChatMessage to Anthropic format (with vision support)
108
+ * Anthropic format:
109
+ * - Text only: { role, content: string }
110
+ * - With images: { role, content: [{ type: "text", text: "..." }, { type: "image", source: { type: "base64", media_type: "...", data: "..." } }] }
111
+ */
112
+ declare function convertMessageToAnthropic(msg: SimpleChatMessage): AnthropicMessage;
113
+ /**
114
+ * Minimal Gemini part shape for the simple-chat DIRECT path (text + inline
115
+ * media only), serialized with the official REST JSON casing
116
+ * (`inlineData` / `mimeType`).
117
+ *
118
+ * NOT the same wire model as the transformer pipeline's full `GeminiPart`
119
+ * union in `transformer/transformers/utils/gemini.util.ts` (function calls /
120
+ * file data, snake_case alias keys). The two paths intentionally serialize
121
+ * differently — do not merge them blindly.
122
+ */
123
+ interface SimpleChatGeminiPart {
124
+ text?: string;
125
+ inlineData?: {
126
+ mimeType: string;
127
+ data: string;
128
+ };
129
+ }
130
+ /** Gemini message for the simple-chat direct path. */
131
+ interface SimpleChatGeminiMessage {
132
+ role: string;
133
+ parts: SimpleChatGeminiPart[];
134
+ }
135
+ /**
136
+ * Convert SimpleChatMessage to Gemini format (with vision support)
137
+ * Gemini format:
138
+ * - { role: "user"|"model", parts: [{ text: "..." }, { inlineData: { mimeType: "...", data: "..." } }] }
139
+ */
140
+ declare function convertMessageToGemini(msg: SimpleChatMessage): SimpleChatGeminiMessage;
141
+
142
+ /**
143
+ * OpenRouter Provider Utilities
144
+ *
145
+ * Functions for handling OpenRouter-specific configuration and routing.
146
+ */
147
+
148
+ /**
149
+ * Get OpenRouter provider routing config from model configuration
150
+ * Returns the provider routing config if the provider is OpenRouter and model has config
151
+ */
152
+ declare function getOpenRouterProviderConfig(provider: LLMProvider, modelId: string): OpenRouterProviderRouting | undefined;
153
+ /**
154
+ * Add OpenRouter provider routing to request body if applicable
155
+ */
156
+ declare function addOpenRouterProviderToRequest(requestBody: Record<string, unknown>, provider: LLMProvider, modelId: string): Record<string, unknown>;
157
+
158
+ export { type SimpleChatGeminiMessage, type SimpleChatGeminiPart, type StreamEvent, type StreamEventType, type StreamSender, addOpenRouterProviderToRequest, attach as attachStreamEventBuffer, convertMessageToAnthropic, convertMessageToGemini, convertMessageToOpenAI, emit as emitStreamEvent, getOpenRouterProviderConfig, getProviderHeaders, register as registerStreamEventBuffer, release as releaseStreamEventBuffer };
package/dist/index.cjs CHANGED
@@ -8075,6 +8075,7 @@ async function handleAnthropicMessagesRequest(req, res, route, deps) {
8075
8075
  extendedContext: hints.extendedContext ?? null,
8076
8076
  passThrough: hints.passThrough,
8077
8077
  passThroughAuthToken: hints.passThroughAuthToken ?? null,
8078
+ resolvePassThroughAuthToken: hints.resolvePassThroughAuthToken ?? null,
8078
8079
  subscriptionProfile: hints.subscriptionProfile ?? null,
8079
8080
  maxConcurrency: hints.maxConcurrency,
8080
8081
  webSearchService: hints.webSearchService ?? null,
package/dist/index.d.cts CHANGED
@@ -1,28 +1,44 @@
1
1
  export { serializeError } from './serializeError.cjs';
2
2
  export { SSEEvent, SSEFormat, SSEParserCallbacks, createSSEParser, streamSSEResponse } from './sse-parser.cjs';
3
- export { A as AnthropicTool, a as ApiFormat, B as BuiltinToolExecutor, C as CompletionOptions, b as CompletionResult, c as CompletionService, G as GeminiTools, M as McpToolProvider, N as NATIVE_SEARCH_TOOL_NAMES, d as NativeSearchAugmentation, e as NativeSearchDetectionResult, f as NativeSearchProvider, g as NativeSearchUserConfig, O as OpenAITool, S as SimpleChatGeminiMessage, h as SimpleChatGeminiPart, i as StreamCallbacks, j as StreamEvent, k as StreamEventType, l as StreamSender, V as VisionFallbackProvider, m as addOpenRouterProviderToRequest, n as applyAugmentation, o as attachStreamEventBuffer, p as buildAnthropicApiUrl, q as buildAzureOpenAIApiUrl, r as buildGeminiApiUrl, s as buildNativeSearchAugmentation, t as buildOpenAIApiUrl, u as buildOpenAIResponseApiUrl, v as buildProviderApiUrl, w as convertMessageToAnthropic, x as convertMessageToGemini, y as convertMessageToOpenAI, z as detectNativeSearch, D as emitStreamEvent, E as getBuiltinSearchTools, F as getOpenRouterProviderConfig, H as getProviderHeaders, I as normalizeAzureEndpoint, J as registerStreamEventBuffer, K as releaseStreamEventBuffer, L as resolveApiFormat, P as resolveProviderEndpoint } from './index-DXazdTzZ.cjs';
3
+ export { A as AnthropicTool, B as BuiltinToolExecutor, G as GeminiTools, M as McpToolProvider, O as OpenAITool, g as getBuiltinSearchTools } from './BuiltinToolExecutor-CS2WpXhM.cjs';
4
4
  import { LLMProvider } from '@omnicross/contracts/llm-config';
5
5
  export { C as CorePaths, a as CoreUsageEvent, b as CoreUsageTokenCounts, U as UsageEventSink } from './usage-event-sink-BX7FE1NL.cjs';
6
6
  export { L as Logger } from './ApiKeyPoolService-BmMkau07.cjs';
7
- export { A as AnthropicIngressHandler, b as AnthropicIngressHandlerFactory, c as AnthropicRouteHandlerParams, d as AnthropicSdkHints, E as ExtendedContextHint, I as IngressFormat, P as ProviderConfigSource, a as ProviderProxyDeps, e as ProxyAttribution, R as RetryCallback, f as RouteAuthMode, g as RouteContext, h as StreamEventCallback, S as SubscriptionDispatchProfile, i as SubscriptionRequestSummary, T as TargetProviderFormat, U as UsageRecorderImport, U as UsageSink, W as WebSearchBackend } from './types-DZIQbgp0.cjs';
8
- export { E as EndpointRoutingConfig, a as OutboundApiDeps, b as OutboundApiKeyCreated, c as OutboundApiKeyInfo, d as OutboundApiServerConfig, e as OutboundApiServerStatus, O as OutboundCredentialStore, f as OutboundEndpoint, g as OutboundFormatUrls, O as OutboundKeyDb, h as OutboundKeyDbRow, R as RequestRole } from './types-CGGrKqC_.cjs';
7
+ export { ProviderConfigSource } from './ports/provider-config-source.cjs';
8
+ export { WebSearchBackend } from './ports/web-search-backend.cjs';
9
+ export { AnthropicIngressHandler, AnthropicIngressHandlerFactory, AnthropicRouteHandlerParams, AnthropicSdkHints, ExtendedContextHint, IngressFormat, ProviderProxyDeps, ProxyAttribution, RetryCallback, RouteAuthMode, RouteContext, StreamEventCallback, SubscriptionDispatchProfile, SubscriptionRequestSummary, TargetProviderFormat, UsageRecorderImport, UsageRecorderImport as UsageSink } from './provider-proxy/types.cjs';
10
+ export { EndpointRoutingConfig, OutboundApiDeps, OutboundApiKeyCreated, OutboundApiKeyInfo, OutboundApiServerConfig, OutboundApiServerStatus, OutboundKeyDb as OutboundCredentialStore, OutboundEndpoint, OutboundFormatUrls, OutboundKeyDb, OutboundKeyDbRow, RequestRole } from './outbound-api/types.cjs';
11
+ export { A as ApiFormat, C as CompletionOptions, a as CompletionResult, N as NATIVE_SEARCH_TOOL_NAMES, b as NativeSearchAugmentation, c as NativeSearchDetectionResult, d as NativeSearchProvider, e as NativeSearchUserConfig, S as StreamCallbacks } from './types-BScIHmPr.cjs';
12
+ export { C as CompletionService, V as VisionFallbackProvider } from './CompletionService-DtOF_War.cjs';
13
+ export { SimpleChatGeminiMessage, SimpleChatGeminiPart, StreamEvent, StreamEventType, StreamSender, addOpenRouterProviderToRequest, attachStreamEventBuffer, convertMessageToAnthropic, convertMessageToGemini, convertMessageToOpenAI, emitStreamEvent, getOpenRouterProviderConfig, getProviderHeaders, registerStreamEventBuffer, releaseStreamEventBuffer } from './completion.cjs';
14
+ export { buildAnthropicApiUrl, buildAzureOpenAIApiUrl, buildGeminiApiUrl, buildOpenAIApiUrl, buildOpenAIResponseApiUrl, buildProviderApiUrl, normalizeAzureEndpoint, resolveApiFormat, resolveProviderEndpoint } from './completion/url-builder.cjs';
15
+ export { applyAugmentation, buildNativeSearchAugmentation, detectNativeSearch } from './completion/NativeSearchInjector.cjs';
9
16
  export { __resetProviderProxyForTests, extractRouteToken, getProviderProxy } from './provider-proxy.cjs';
10
- export { ApiServerSettingsStore, ApplyConfigInput, DEFAULT_OUTBOUND_PORT, OUTBOUND_API_SERVER_CONFIG_KEY, OutboundApiServer, OutboundRateLimiter, SUBSCRIPTION_PROVIDER_IDS, __resetOutboundApiServerForTests, createNamedKey, defaultServerConfig, detectRequestRole, endpointSupportsSubscription, endpointToIngressFormat, formatUrls, getOutboundApiServer, hashKey, isSubscriptionProviderId, loadServerConfig, mergeServerConfig, normalizeServerConfig, resolveRoute, saveServerConfig, verifyPresentedKey } from './outbound-api.cjs';
11
- import { AnthropicChatRequest, OpenAIChatRequest, AnthropicChatResponse, OpenAIChatResponse, ConversionConfig } from '@omnicross/contracts/completion-types';
17
+ export { ApiServerSettingsStore, ApplyConfigInput, DEFAULT_OUTBOUND_PORT, OUTBOUND_API_SERVER_CONFIG_KEY, OutboundApiServer, OutboundRateLimiter, __resetOutboundApiServerForTests, createNamedKey, defaultServerConfig, detectRequestRole, endpointToIngressFormat, formatUrls, getOutboundApiServer, hashKey, loadServerConfig, mergeServerConfig, normalizeServerConfig, saveServerConfig, verifyPresentedKey } from './outbound-api.cjs';
18
+ export { convertAnthropicRequestToOpenAI, convertAnthropicStreamToOpenAI, convertAnthropicToOpenAI, convertAnthropicToOpenAIWithThinking, convertOpenAIResponseToAnthropic, convertOpenAIStreamToAnthropic, convertOpenAIToAnthropic, convertOpenAIToAnthropicWithThinking, hasImageContent, hasThinkingEnabled } from './ApiConverter.cjs';
12
19
  export { ChainExecutionOptions, TransformerChainExecutor } from './transformer/TransformerChainExecutor.cjs';
13
20
  export { TransformerService } from './transformer/TransformerService.cjs';
14
- export { registerBuiltinTransformers } from './transformer.cjs';
21
+ export { registerBuiltinTransformers } from './transformer/transformers.cjs';
15
22
  export { Annotation, ImageContent, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkLevel, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation } from './transformer/types.cjs';
16
- export { D as DEFAULT_ROUTE_IDLE_MS, P as ProviderProxy, a as ProviderProxyRouteMap } from './ProviderProxy-f_8ziIhW.cjs';
23
+ export { D as DEFAULT_ROUTE_IDLE_MS, P as ProviderProxy, a as ProviderProxyRouteMap } from './ProviderProxy-CnMQYN59.cjs';
24
+ export { S as SUBSCRIPTION_PROVIDER_IDS, e as endpointSupportsSubscription, i as isSubscriptionProviderId, r as resolveRoute } from './routeResolver-BrbK6ja9.cjs';
17
25
  import '@omnicross/contracts/message-blocks';
26
+ import '@omnicross/contracts/completion-types';
18
27
  import '@omnicross/contracts/mcp-types';
19
- import '@omnicross/contracts/endpoint-resolver';
28
+ import '@omnicross/contracts/websearch-types';
20
29
  import 'node:http';
21
30
  import '@omnicross/contracts/subscription-types';
22
31
  import '@omnicross/contracts/usage-types';
23
- import './SubscriptionAuthSource-Cr4fVEYY.cjs';
32
+ import './pipeline/AuthSource.cjs';
33
+ import './pipeline/SubscriptionAuthSource.cjs';
24
34
  import './pipeline/SubscriptionAuthStrategy.cjs';
25
- import '@omnicross/contracts/websearch-types';
35
+ import '@omnicross/contracts/endpoint-resolver';
36
+ import './transformer/transformers/AnthropicTransformer.cjs';
37
+ import './transformer/transformers/GeminiCodeAssistTransformer.cjs';
38
+ import './transformer/transformers/GeminiTransformer.cjs';
39
+ import './transformer/transformers/OpenAIResponseTransformer.cjs';
40
+ import './transformer/transformers/OpenCodeGoTransformer.cjs';
41
+ import './transformer/transformers/ReasoningTransformer.cjs';
26
42
 
27
43
  /**
28
44
  * OpenRouter-specific serving-core helpers.
@@ -46,83 +62,4 @@ declare const OPENROUTER_APP_HEADERS: {
46
62
  'X-Title': string;
47
63
  };
48
64
 
49
- /**
50
- * Anthropic → OpenAI API conversion.
51
- *
52
- * Used by the claude-code-rerouter direction: clients call our endpoint with
53
- * an Anthropic-style payload, we forward to an upstream OpenAI provider.
54
- *
55
- * Includes:
56
- * - Response conversion (chat + tools + thinking blocks)
57
- * - Request conversion (reverse direction)
58
- * - Streaming chunk transform (Anthropic SSE → OpenAI SSE)
59
- * - Thinking-aware response enrichment
60
- */
61
-
62
- /**
63
- * Convert Anthropic response to OpenAI format.
64
- */
65
- declare function convertAnthropicToOpenAI(response: AnthropicChatResponse): OpenAIChatResponse;
66
- /**
67
- * Convert Anthropic request to OpenAI format (reverse direction).
68
- */
69
- declare function convertAnthropicRequestToOpenAI(request: AnthropicChatRequest): OpenAIChatRequest;
70
- /**
71
- * Convert Anthropic response to OpenAI with thinking content preserved.
72
- */
73
- declare function convertAnthropicToOpenAIWithThinking(response: AnthropicChatResponse): OpenAIChatResponse;
74
- /**
75
- * Convert Anthropic streaming response to OpenAI format.
76
- */
77
- declare function convertAnthropicStreamToOpenAI(anthropicStream: AsyncIterable<string>): AsyncGenerator<string>;
78
-
79
- /**
80
- * OpenAI → Anthropic API conversion.
81
- *
82
- * Used by the claude-code-router direction: clients call our endpoint with
83
- * an OpenAI-style payload, we forward to an upstream Anthropic provider.
84
- *
85
- * Includes:
86
- * - Request conversion (chat + tools)
87
- * - Streaming chunk transform (OpenAI SSE → Anthropic SSE)
88
- * - Thinking-aware request enrichment
89
- */
90
-
91
- /**
92
- * Convert OpenAI chat request to Anthropic format.
93
- */
94
- declare function convertOpenAIToAnthropic(request: OpenAIChatRequest, config: ConversionConfig): AnthropicChatRequest;
95
- /**
96
- * Convert OpenAI response to Anthropic format.
97
- */
98
- declare function convertOpenAIResponseToAnthropic(response: OpenAIChatResponse): AnthropicChatResponse;
99
- /**
100
- * Convert OpenAI request to Anthropic with thinking support.
101
- */
102
- declare function convertOpenAIToAnthropicWithThinking(request: OpenAIChatRequest, config: ConversionConfig & {
103
- thinkingBudget?: number;
104
- }): AnthropicChatRequest;
105
- /**
106
- * Convert OpenAI streaming response to Anthropic format.
107
- * This creates an async generator that yields Anthropic SSE events.
108
- */
109
- declare function convertOpenAIStreamToAnthropic(openaiStream: AsyncIterable<string>): AsyncGenerator<string>;
110
-
111
- /**
112
- * Shared helpers for API direction converters.
113
- *
114
- * Pure functions used by both OpenAI→Anthropic and Anthropic→OpenAI
115
- * conversion paths: tool schema mapping, stop-reason mapping, and
116
- * lightweight image detection.
117
- */
118
-
119
- /**
120
- * Check if a request contains image content (either format).
121
- */
122
- declare function hasImageContent(request: OpenAIChatRequest | AnthropicChatRequest): boolean;
123
- /**
124
- * Check if a request has thinking/reasoning enabled.
125
- */
126
- declare function hasThinkingEnabled(request: OpenAIChatRequest | AnthropicChatRequest): boolean;
127
-
128
- export { OPENROUTER_APP_HEADERS, convertAnthropicRequestToOpenAI, convertAnthropicStreamToOpenAI, convertAnthropicToOpenAI, convertAnthropicToOpenAIWithThinking, convertOpenAIResponseToAnthropic, convertOpenAIStreamToAnthropic, convertOpenAIToAnthropic, convertOpenAIToAnthropicWithThinking, hasImageContent, hasThinkingEnabled, isOpenRouterProvider };
65
+ export { OPENROUTER_APP_HEADERS, isOpenRouterProvider };
package/dist/index.d.ts CHANGED
@@ -1,28 +1,44 @@
1
1
  export { serializeError } from './serializeError.js';
2
2
  export { SSEEvent, SSEFormat, SSEParserCallbacks, createSSEParser, streamSSEResponse } from './sse-parser.js';
3
- export { A as AnthropicTool, a as ApiFormat, B as BuiltinToolExecutor, C as CompletionOptions, b as CompletionResult, c as CompletionService, G as GeminiTools, M as McpToolProvider, N as NATIVE_SEARCH_TOOL_NAMES, d as NativeSearchAugmentation, e as NativeSearchDetectionResult, f as NativeSearchProvider, g as NativeSearchUserConfig, O as OpenAITool, S as SimpleChatGeminiMessage, h as SimpleChatGeminiPart, i as StreamCallbacks, j as StreamEvent, k as StreamEventType, l as StreamSender, V as VisionFallbackProvider, m as addOpenRouterProviderToRequest, n as applyAugmentation, o as attachStreamEventBuffer, p as buildAnthropicApiUrl, q as buildAzureOpenAIApiUrl, r as buildGeminiApiUrl, s as buildNativeSearchAugmentation, t as buildOpenAIApiUrl, u as buildOpenAIResponseApiUrl, v as buildProviderApiUrl, w as convertMessageToAnthropic, x as convertMessageToGemini, y as convertMessageToOpenAI, z as detectNativeSearch, D as emitStreamEvent, E as getBuiltinSearchTools, F as getOpenRouterProviderConfig, H as getProviderHeaders, I as normalizeAzureEndpoint, J as registerStreamEventBuffer, K as releaseStreamEventBuffer, L as resolveApiFormat, P as resolveProviderEndpoint } from './index-BTSmc9Sm.js';
3
+ export { A as AnthropicTool, B as BuiltinToolExecutor, G as GeminiTools, M as McpToolProvider, O as OpenAITool, g as getBuiltinSearchTools } from './BuiltinToolExecutor-BluWyeob.js';
4
4
  import { LLMProvider } from '@omnicross/contracts/llm-config';
5
5
  export { C as CorePaths, a as CoreUsageEvent, b as CoreUsageTokenCounts, U as UsageEventSink } from './usage-event-sink-BX7FE1NL.js';
6
6
  export { L as Logger } from './ApiKeyPoolService-BmMkau07.js';
7
- export { A as AnthropicIngressHandler, b as AnthropicIngressHandlerFactory, c as AnthropicRouteHandlerParams, d as AnthropicSdkHints, E as ExtendedContextHint, I as IngressFormat, P as ProviderConfigSource, a as ProviderProxyDeps, e as ProxyAttribution, R as RetryCallback, f as RouteAuthMode, g as RouteContext, h as StreamEventCallback, S as SubscriptionDispatchProfile, i as SubscriptionRequestSummary, T as TargetProviderFormat, U as UsageRecorderImport, U as UsageSink, W as WebSearchBackend } from './types-DCzHkhJt.js';
8
- export { E as EndpointRoutingConfig, a as OutboundApiDeps, b as OutboundApiKeyCreated, c as OutboundApiKeyInfo, d as OutboundApiServerConfig, e as OutboundApiServerStatus, O as OutboundCredentialStore, f as OutboundEndpoint, g as OutboundFormatUrls, O as OutboundKeyDb, h as OutboundKeyDbRow, R as RequestRole } from './types-CbCN2NQP.js';
7
+ export { ProviderConfigSource } from './ports/provider-config-source.js';
8
+ export { WebSearchBackend } from './ports/web-search-backend.js';
9
+ export { AnthropicIngressHandler, AnthropicIngressHandlerFactory, AnthropicRouteHandlerParams, AnthropicSdkHints, ExtendedContextHint, IngressFormat, ProviderProxyDeps, ProxyAttribution, RetryCallback, RouteAuthMode, RouteContext, StreamEventCallback, SubscriptionDispatchProfile, SubscriptionRequestSummary, TargetProviderFormat, UsageRecorderImport, UsageRecorderImport as UsageSink } from './provider-proxy/types.js';
10
+ export { EndpointRoutingConfig, OutboundApiDeps, OutboundApiKeyCreated, OutboundApiKeyInfo, OutboundApiServerConfig, OutboundApiServerStatus, OutboundKeyDb as OutboundCredentialStore, OutboundEndpoint, OutboundFormatUrls, OutboundKeyDb, OutboundKeyDbRow, RequestRole } from './outbound-api/types.js';
11
+ export { A as ApiFormat, C as CompletionOptions, a as CompletionResult, N as NATIVE_SEARCH_TOOL_NAMES, b as NativeSearchAugmentation, c as NativeSearchDetectionResult, d as NativeSearchProvider, e as NativeSearchUserConfig, S as StreamCallbacks } from './types-BScIHmPr.js';
12
+ export { C as CompletionService, V as VisionFallbackProvider } from './CompletionService-7fCmKAP3.js';
13
+ export { SimpleChatGeminiMessage, SimpleChatGeminiPart, StreamEvent, StreamEventType, StreamSender, addOpenRouterProviderToRequest, attachStreamEventBuffer, convertMessageToAnthropic, convertMessageToGemini, convertMessageToOpenAI, emitStreamEvent, getOpenRouterProviderConfig, getProviderHeaders, registerStreamEventBuffer, releaseStreamEventBuffer } from './completion.js';
14
+ export { buildAnthropicApiUrl, buildAzureOpenAIApiUrl, buildGeminiApiUrl, buildOpenAIApiUrl, buildOpenAIResponseApiUrl, buildProviderApiUrl, normalizeAzureEndpoint, resolveApiFormat, resolveProviderEndpoint } from './completion/url-builder.js';
15
+ export { applyAugmentation, buildNativeSearchAugmentation, detectNativeSearch } from './completion/NativeSearchInjector.js';
9
16
  export { __resetProviderProxyForTests, extractRouteToken, getProviderProxy } from './provider-proxy.js';
10
- export { ApiServerSettingsStore, ApplyConfigInput, DEFAULT_OUTBOUND_PORT, OUTBOUND_API_SERVER_CONFIG_KEY, OutboundApiServer, OutboundRateLimiter, SUBSCRIPTION_PROVIDER_IDS, __resetOutboundApiServerForTests, createNamedKey, defaultServerConfig, detectRequestRole, endpointSupportsSubscription, endpointToIngressFormat, formatUrls, getOutboundApiServer, hashKey, isSubscriptionProviderId, loadServerConfig, mergeServerConfig, normalizeServerConfig, resolveRoute, saveServerConfig, verifyPresentedKey } from './outbound-api.js';
11
- import { AnthropicChatRequest, OpenAIChatRequest, AnthropicChatResponse, OpenAIChatResponse, ConversionConfig } from '@omnicross/contracts/completion-types';
17
+ export { ApiServerSettingsStore, ApplyConfigInput, DEFAULT_OUTBOUND_PORT, OUTBOUND_API_SERVER_CONFIG_KEY, OutboundApiServer, OutboundRateLimiter, __resetOutboundApiServerForTests, createNamedKey, defaultServerConfig, detectRequestRole, endpointToIngressFormat, formatUrls, getOutboundApiServer, hashKey, loadServerConfig, mergeServerConfig, normalizeServerConfig, saveServerConfig, verifyPresentedKey } from './outbound-api.js';
18
+ export { convertAnthropicRequestToOpenAI, convertAnthropicStreamToOpenAI, convertAnthropicToOpenAI, convertAnthropicToOpenAIWithThinking, convertOpenAIResponseToAnthropic, convertOpenAIStreamToAnthropic, convertOpenAIToAnthropic, convertOpenAIToAnthropicWithThinking, hasImageContent, hasThinkingEnabled } from './ApiConverter.js';
12
19
  export { ChainExecutionOptions, TransformerChainExecutor } from './transformer/TransformerChainExecutor.js';
13
20
  export { TransformerService } from './transformer/TransformerService.js';
14
- export { registerBuiltinTransformers } from './transformer.js';
21
+ export { registerBuiltinTransformers } from './transformer/transformers.js';
15
22
  export { Annotation, ImageContent, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkLevel, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation } from './transformer/types.js';
16
- export { D as DEFAULT_ROUTE_IDLE_MS, P as ProviderProxy, a as ProviderProxyRouteMap } from './ProviderProxy-vjt8sQQk.js';
23
+ export { D as DEFAULT_ROUTE_IDLE_MS, P as ProviderProxy, a as ProviderProxyRouteMap } from './ProviderProxy-C-xqrkKi.js';
24
+ export { S as SUBSCRIPTION_PROVIDER_IDS, e as endpointSupportsSubscription, i as isSubscriptionProviderId, r as resolveRoute } from './routeResolver-HE-ZO0fO.js';
17
25
  import '@omnicross/contracts/message-blocks';
26
+ import '@omnicross/contracts/completion-types';
18
27
  import '@omnicross/contracts/mcp-types';
19
- import '@omnicross/contracts/endpoint-resolver';
28
+ import '@omnicross/contracts/websearch-types';
20
29
  import 'node:http';
21
30
  import '@omnicross/contracts/subscription-types';
22
31
  import '@omnicross/contracts/usage-types';
23
- import './SubscriptionAuthSource-D89zmiSS.js';
32
+ import './pipeline/AuthSource.js';
33
+ import './pipeline/SubscriptionAuthSource.js';
24
34
  import './pipeline/SubscriptionAuthStrategy.js';
25
- import '@omnicross/contracts/websearch-types';
35
+ import '@omnicross/contracts/endpoint-resolver';
36
+ import './transformer/transformers/AnthropicTransformer.js';
37
+ import './transformer/transformers/GeminiCodeAssistTransformer.js';
38
+ import './transformer/transformers/GeminiTransformer.js';
39
+ import './transformer/transformers/OpenAIResponseTransformer.js';
40
+ import './transformer/transformers/OpenCodeGoTransformer.js';
41
+ import './transformer/transformers/ReasoningTransformer.js';
26
42
 
27
43
  /**
28
44
  * OpenRouter-specific serving-core helpers.
@@ -46,83 +62,4 @@ declare const OPENROUTER_APP_HEADERS: {
46
62
  'X-Title': string;
47
63
  };
48
64
 
49
- /**
50
- * Anthropic → OpenAI API conversion.
51
- *
52
- * Used by the claude-code-rerouter direction: clients call our endpoint with
53
- * an Anthropic-style payload, we forward to an upstream OpenAI provider.
54
- *
55
- * Includes:
56
- * - Response conversion (chat + tools + thinking blocks)
57
- * - Request conversion (reverse direction)
58
- * - Streaming chunk transform (Anthropic SSE → OpenAI SSE)
59
- * - Thinking-aware response enrichment
60
- */
61
-
62
- /**
63
- * Convert Anthropic response to OpenAI format.
64
- */
65
- declare function convertAnthropicToOpenAI(response: AnthropicChatResponse): OpenAIChatResponse;
66
- /**
67
- * Convert Anthropic request to OpenAI format (reverse direction).
68
- */
69
- declare function convertAnthropicRequestToOpenAI(request: AnthropicChatRequest): OpenAIChatRequest;
70
- /**
71
- * Convert Anthropic response to OpenAI with thinking content preserved.
72
- */
73
- declare function convertAnthropicToOpenAIWithThinking(response: AnthropicChatResponse): OpenAIChatResponse;
74
- /**
75
- * Convert Anthropic streaming response to OpenAI format.
76
- */
77
- declare function convertAnthropicStreamToOpenAI(anthropicStream: AsyncIterable<string>): AsyncGenerator<string>;
78
-
79
- /**
80
- * OpenAI → Anthropic API conversion.
81
- *
82
- * Used by the claude-code-router direction: clients call our endpoint with
83
- * an OpenAI-style payload, we forward to an upstream Anthropic provider.
84
- *
85
- * Includes:
86
- * - Request conversion (chat + tools)
87
- * - Streaming chunk transform (OpenAI SSE → Anthropic SSE)
88
- * - Thinking-aware request enrichment
89
- */
90
-
91
- /**
92
- * Convert OpenAI chat request to Anthropic format.
93
- */
94
- declare function convertOpenAIToAnthropic(request: OpenAIChatRequest, config: ConversionConfig): AnthropicChatRequest;
95
- /**
96
- * Convert OpenAI response to Anthropic format.
97
- */
98
- declare function convertOpenAIResponseToAnthropic(response: OpenAIChatResponse): AnthropicChatResponse;
99
- /**
100
- * Convert OpenAI request to Anthropic with thinking support.
101
- */
102
- declare function convertOpenAIToAnthropicWithThinking(request: OpenAIChatRequest, config: ConversionConfig & {
103
- thinkingBudget?: number;
104
- }): AnthropicChatRequest;
105
- /**
106
- * Convert OpenAI streaming response to Anthropic format.
107
- * This creates an async generator that yields Anthropic SSE events.
108
- */
109
- declare function convertOpenAIStreamToAnthropic(openaiStream: AsyncIterable<string>): AsyncGenerator<string>;
110
-
111
- /**
112
- * Shared helpers for API direction converters.
113
- *
114
- * Pure functions used by both OpenAI→Anthropic and Anthropic→OpenAI
115
- * conversion paths: tool schema mapping, stop-reason mapping, and
116
- * lightweight image detection.
117
- */
118
-
119
- /**
120
- * Check if a request contains image content (either format).
121
- */
122
- declare function hasImageContent(request: OpenAIChatRequest | AnthropicChatRequest): boolean;
123
- /**
124
- * Check if a request has thinking/reasoning enabled.
125
- */
126
- declare function hasThinkingEnabled(request: OpenAIChatRequest | AnthropicChatRequest): boolean;
127
-
128
- export { OPENROUTER_APP_HEADERS, convertAnthropicRequestToOpenAI, convertAnthropicStreamToOpenAI, convertAnthropicToOpenAI, convertAnthropicToOpenAIWithThinking, convertOpenAIResponseToAnthropic, convertOpenAIStreamToAnthropic, convertOpenAIToAnthropic, convertOpenAIToAnthropicWithThinking, hasImageContent, hasThinkingEnabled, isOpenRouterProvider };
65
+ export { OPENROUTER_APP_HEADERS, isOpenRouterProvider };
package/dist/index.js CHANGED
@@ -7987,6 +7987,7 @@ async function handleAnthropicMessagesRequest(req, res, route, deps) {
7987
7987
  extendedContext: hints.extendedContext ?? null,
7988
7988
  passThrough: hints.passThrough,
7989
7989
  passThroughAuthToken: hints.passThroughAuthToken ?? null,
7990
+ resolvePassThroughAuthToken: hints.resolvePassThroughAuthToken ?? null,
7990
7991
  subscriptionProfile: hints.subscriptionProfile ?? null,
7991
7992
  maxConcurrency: hints.maxConcurrency,
7992
7993
  webSearchService: hints.webSearchService ?? null,