@omnicross/core 0.1.0 → 0.1.2

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 (272) hide show
  1. package/dist/ApiConverter.cjs +24 -0
  2. package/dist/ApiConverter.d.cts +82 -0
  3. package/dist/ApiConverter.d.ts +82 -0
  4. package/dist/ApiConverter.js +24 -0
  5. package/dist/BuiltinToolExecutor-BluWyeob.d.ts +81 -0
  6. package/dist/BuiltinToolExecutor-CS2WpXhM.d.cts +81 -0
  7. package/dist/CompletionService-D3a47vdU.d.cts +213 -0
  8. package/dist/CompletionService-DdWaAxq0.d.ts +213 -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/auth/GeminiCodeAssistProjectResolver.cjs +27 -60
  12. package/dist/auth/GeminiCodeAssistProjectResolver.js +5 -9
  13. package/dist/builtin-web-fetch-77JZUZGM.cjs +100 -0
  14. package/dist/builtin-web-fetch-IGLBX2XY.js +100 -0
  15. package/dist/chunk-2DCNB7DF.cjs +514 -0
  16. package/dist/chunk-2FEVTJWG.js +4400 -0
  17. package/dist/chunk-3MEACFK3.js +193 -0
  18. package/dist/chunk-3OPYJG76.cjs +266 -0
  19. package/dist/chunk-46RLHI7D.js +0 -0
  20. package/dist/chunk-46ZIFWYG.cjs +277 -0
  21. package/dist/chunk-4NBS6KPV.cjs +43 -0
  22. package/dist/chunk-4VAVYUZS.cjs +991 -0
  23. package/dist/chunk-5ERIZW3D.js +44 -0
  24. package/dist/chunk-5HTVET6E.js +514 -0
  25. package/dist/chunk-5ZQBEOMD.js +764 -0
  26. package/dist/chunk-6VIXXLMX.cjs +14 -0
  27. package/dist/chunk-745DV5FL.js +147 -0
  28. package/dist/chunk-74TMJA7Z.js +53 -0
  29. package/dist/chunk-7VU7V2E4.js +0 -0
  30. package/dist/chunk-7YN22L2H.cjs +87 -0
  31. package/dist/chunk-A2YMUCBT.cjs +105 -0
  32. package/dist/chunk-AQ5TNQB7.js +13 -0
  33. package/dist/chunk-AVYJ4YBN.js +58 -0
  34. package/dist/chunk-C72S6TTV.cjs +49 -0
  35. package/dist/chunk-C7PSERMH.js +87 -0
  36. package/dist/chunk-CDHS2QDC.js +179 -0
  37. package/dist/chunk-DK4A7DLE.js +266 -0
  38. package/dist/chunk-DRWHTIIZ.js +13 -0
  39. package/dist/chunk-DWKQZ2SK.cjs +254 -0
  40. package/dist/chunk-E3WHL7CO.js +14 -0
  41. package/dist/chunk-EYZYXJTJ.cjs +1 -0
  42. package/dist/chunk-FMOBD2OQ.js +39 -0
  43. package/dist/chunk-FTQ7IQUC.js +991 -0
  44. package/dist/chunk-FZ46M34D.cjs +1 -0
  45. package/dist/chunk-G2FUJNA2.cjs +193 -0
  46. package/dist/chunk-G2UTNSGU.js +277 -0
  47. package/dist/chunk-GBHYAGX3.cjs +26 -0
  48. package/dist/chunk-GMMT7RVN.cjs +39 -0
  49. package/dist/chunk-H5JUT3KV.js +105 -0
  50. package/dist/chunk-HQP3K7PU.cjs +431 -0
  51. package/dist/chunk-JO5NLTLY.js +46 -0
  52. package/dist/chunk-JWC6APFQ.js +23 -0
  53. package/dist/chunk-KUU2RNG6.cjs +46 -0
  54. package/dist/chunk-LKZJEL6E.cjs +124 -0
  55. package/dist/chunk-MNYKI4CI.js +94 -0
  56. package/dist/chunk-MZNPGW5Q.js +26 -0
  57. package/dist/chunk-N3V2J5ZO.cjs +53 -0
  58. package/dist/chunk-NYUNU75A.cjs +44 -0
  59. package/dist/chunk-NZYN7C3P.cjs +179 -0
  60. package/dist/chunk-O466Y272.js +235 -0
  61. package/dist/chunk-PXUJF5HS.js +124 -0
  62. package/dist/chunk-QBZJ7P2T.cjs +13 -0
  63. package/dist/chunk-QOCNX236.js +46 -0
  64. package/dist/chunk-QXD4MV2X.cjs +23 -0
  65. package/dist/chunk-R3HK6R4B.cjs +13 -0
  66. package/dist/chunk-RSJ3TWJQ.cjs +186 -0
  67. package/dist/chunk-S4WBV25P.js +913 -0
  68. package/dist/chunk-SN3YWBX7.cjs +4400 -0
  69. package/dist/chunk-SPVWWUHX.cjs +46 -0
  70. package/dist/chunk-SUEGJ75D.cjs +764 -0
  71. package/dist/chunk-SVNDB62D.cjs +58 -0
  72. package/dist/chunk-UYPEN5XE.cjs +235 -0
  73. package/dist/chunk-V5KPWNYX.cjs +147 -0
  74. package/dist/chunk-VVEHS2LI.js +431 -0
  75. package/dist/chunk-XBSYYZIY.cjs +94 -0
  76. package/dist/chunk-YGXJGRFI.cjs +913 -0
  77. package/dist/chunk-YMFAJFQT.cjs +173 -0
  78. package/dist/chunk-Z7LUNECE.js +49 -0
  79. package/dist/chunk-Z7Y2NPHY.js +186 -0
  80. package/dist/chunk-ZJZAOKI7.js +254 -0
  81. package/dist/chunk-ZLX3KGXX.js +173 -0
  82. package/dist/chunk-ZSVQT3PW.js +43 -0
  83. package/dist/completion/ApiKeyPoolService.cjs +23 -48
  84. package/dist/completion/ApiKeyPoolService.d.cts +150 -2
  85. package/dist/completion/ApiKeyPoolService.d.ts +150 -2
  86. package/dist/completion/BuiltinToolExecutor.cjs +12 -0
  87. package/dist/completion/BuiltinToolExecutor.d.cts +4 -0
  88. package/dist/completion/BuiltinToolExecutor.d.ts +4 -0
  89. package/dist/completion/BuiltinToolExecutor.js +12 -0
  90. package/dist/completion/CompletionService.cjs +38 -0
  91. package/dist/completion/CompletionService.d.cts +22 -0
  92. package/dist/completion/CompletionService.d.ts +22 -0
  93. package/dist/completion/CompletionService.js +38 -0
  94. package/dist/completion/NativeSearchInjector.cjs +12 -0
  95. package/dist/completion/NativeSearchInjector.d.cts +42 -0
  96. package/dist/completion/NativeSearchInjector.d.ts +42 -0
  97. package/dist/completion/NativeSearchInjector.js +12 -0
  98. package/dist/completion/ProviderSearchInjector.cjs +60 -0
  99. package/dist/completion/ProviderSearchInjector.d.cts +47 -0
  100. package/dist/completion/ProviderSearchInjector.d.ts +47 -0
  101. package/dist/completion/ProviderSearchInjector.js +60 -0
  102. package/dist/completion/native-search-types.cjs +14 -0
  103. package/dist/completion/native-search-types.d.cts +3 -0
  104. package/dist/completion/native-search-types.d.ts +3 -0
  105. package/dist/completion/native-search-types.js +14 -0
  106. package/dist/completion/openrouter-headers.cjs +16 -0
  107. package/dist/completion/openrouter-headers.d.cts +44 -0
  108. package/dist/completion/openrouter-headers.d.ts +44 -0
  109. package/dist/completion/openrouter-headers.js +16 -0
  110. package/dist/completion/openrouter-models.cjs +29 -0
  111. package/dist/completion/openrouter-models.d.cts +27 -0
  112. package/dist/completion/openrouter-models.d.ts +27 -0
  113. package/dist/completion/openrouter-models.js +29 -0
  114. package/dist/completion/types.cjs +1 -0
  115. package/dist/completion/types.d.cts +3 -0
  116. package/dist/completion/types.d.ts +3 -0
  117. package/dist/completion/types.js +0 -0
  118. package/dist/completion/url-builder.cjs +24 -0
  119. package/dist/completion/url-builder.d.cts +87 -0
  120. package/dist/completion/url-builder.d.ts +87 -0
  121. package/dist/completion/url-builder.js +24 -0
  122. package/dist/completion.cjs +55 -3989
  123. package/dist/completion.d.cts +150 -8
  124. package/dist/completion.d.ts +150 -8
  125. package/dist/completion.js +63 -3953
  126. package/dist/index.cjs +197 -10428
  127. package/dist/index.d.cts +35 -91
  128. package/dist/index.d.ts +35 -91
  129. package/dist/index.js +125 -10267
  130. package/dist/logger-4GvQNzhE.d.cts +22 -0
  131. package/dist/logger-4GvQNzhE.d.ts +22 -0
  132. package/dist/outbound-api/routeResolver.cjs +11 -0
  133. package/dist/outbound-api/routeResolver.d.cts +19 -0
  134. package/dist/outbound-api/routeResolver.d.ts +19 -0
  135. package/dist/outbound-api/routeResolver.js +11 -0
  136. package/dist/outbound-api/subscriptionRegistryPort.cjs +7 -37
  137. package/dist/outbound-api/subscriptionRegistryPort.d.cts +7 -3
  138. package/dist/outbound-api/subscriptionRegistryPort.d.ts +7 -3
  139. package/dist/outbound-api/subscriptionRegistryPort.js +4 -8
  140. package/dist/outbound-api/types.cjs +1 -0
  141. package/dist/{types-CbCN2NQP.d.ts → outbound-api/types.d.cts} +18 -3
  142. package/dist/{types-CGGrKqC_.d.cts → outbound-api/types.d.ts} +18 -3
  143. package/dist/outbound-api/types.js +0 -0
  144. package/dist/outbound-api.cjs +35 -5220
  145. package/dist/outbound-api.d.cts +16 -88
  146. package/dist/outbound-api.d.ts +16 -88
  147. package/dist/outbound-api.js +54 -5193
  148. package/dist/pipeline/AuthSource.cjs +1 -0
  149. package/dist/pipeline/AuthSource.d.cts +101 -0
  150. package/dist/pipeline/AuthSource.d.ts +101 -0
  151. package/dist/pipeline/AuthSource.js +0 -0
  152. package/dist/pipeline/LlmConfigProviderAuth.cjs +8 -0
  153. package/dist/pipeline/LlmConfigProviderAuth.d.cts +87 -0
  154. package/dist/pipeline/LlmConfigProviderAuth.d.ts +87 -0
  155. package/dist/pipeline/LlmConfigProviderAuth.js +8 -0
  156. package/dist/pipeline/SubscriptionAuthSource.cjs +6 -128
  157. package/dist/pipeline/SubscriptionAuthSource.d.cts +165 -3
  158. package/dist/pipeline/SubscriptionAuthSource.d.ts +165 -3
  159. package/dist/pipeline/SubscriptionAuthSource.js +5 -99
  160. package/dist/pipeline/SubscriptionAuthStrategy.cjs +1 -18
  161. package/dist/pipeline/executeProviderCall.cjs +6 -0
  162. package/dist/pipeline/executeProviderCall.d.cts +149 -0
  163. package/dist/pipeline/executeProviderCall.d.ts +149 -0
  164. package/dist/pipeline/executeProviderCall.js +6 -0
  165. package/dist/pipeline/resolveProviderChain.cjs +6 -0
  166. package/dist/pipeline/resolveProviderChain.d.cts +58 -0
  167. package/dist/pipeline/resolveProviderChain.d.ts +58 -0
  168. package/dist/pipeline/resolveProviderChain.js +6 -0
  169. package/dist/pipeline/resolveSubscriptionChain.cjs +6 -0
  170. package/dist/pipeline/resolveSubscriptionChain.d.cts +68 -0
  171. package/dist/pipeline/resolveSubscriptionChain.d.ts +68 -0
  172. package/dist/pipeline/resolveSubscriptionChain.js +6 -0
  173. package/dist/ports/gemini-code-assist-resolver.cjs +7 -37
  174. package/dist/ports/gemini-code-assist-resolver.js +4 -8
  175. package/dist/ports/pricing-store.cjs +1 -0
  176. package/dist/ports/pricing-store.d.cts +50 -0
  177. package/dist/ports/pricing-store.d.ts +50 -0
  178. package/dist/ports/pricing-store.js +0 -0
  179. package/dist/ports/provider-config-source.cjs +1 -0
  180. package/dist/ports/provider-config-source.d.cts +51 -0
  181. package/dist/ports/provider-config-source.d.ts +51 -0
  182. package/dist/ports/provider-config-source.js +0 -0
  183. package/dist/ports/usage-event-store.cjs +1 -0
  184. package/dist/ports/usage-event-store.d.cts +29 -0
  185. package/dist/ports/usage-event-store.d.ts +29 -0
  186. package/dist/ports/usage-event-store.js +0 -0
  187. package/dist/ports/web-search-backend.cjs +1 -0
  188. package/dist/ports/web-search-backend.d.cts +29 -0
  189. package/dist/ports/web-search-backend.d.ts +29 -0
  190. package/dist/ports/web-search-backend.js +0 -0
  191. package/dist/ports.cjs +1 -18
  192. package/dist/ports.d.cts +16 -8
  193. package/dist/ports.d.ts +16 -8
  194. package/dist/provider-proxy/ProviderProxy.cjs +40 -0
  195. package/dist/provider-proxy/ProviderProxy.d.cts +17 -0
  196. package/dist/provider-proxy/ProviderProxy.d.ts +17 -0
  197. package/dist/provider-proxy/ProviderProxy.js +40 -0
  198. package/dist/provider-proxy/ingress/providerProxyShared.cjs +35 -2941
  199. package/dist/provider-proxy/ingress/providerProxyShared.d.cts +7 -3
  200. package/dist/provider-proxy/ingress/providerProxyShared.d.ts +7 -3
  201. package/dist/provider-proxy/ingress/providerProxyShared.js +41 -2914
  202. package/dist/provider-proxy/matchText.cjs +11 -72
  203. package/dist/provider-proxy/matchText.js +6 -39
  204. package/dist/provider-proxy/types.cjs +1 -18
  205. package/dist/provider-proxy/types.d.cts +407 -8
  206. package/dist/provider-proxy/types.d.ts +407 -8
  207. package/dist/provider-proxy.cjs +35 -4654
  208. package/dist/provider-proxy.d.cts +10 -6
  209. package/dist/provider-proxy.d.ts +10 -6
  210. package/dist/provider-proxy.js +39 -4627
  211. package/dist/routeResolver-BrbK6ja9.d.cts +88 -0
  212. package/dist/routeResolver-HE-ZO0fO.d.ts +88 -0
  213. package/dist/serializeError.cjs +5 -81
  214. package/dist/serializeError.js +3 -54
  215. package/dist/sse-parser.cjs +7 -455
  216. package/dist/sse-parser.js +4 -426
  217. package/dist/transformer/TransformerChainExecutor.cjs +4 -318
  218. package/dist/transformer/TransformerChainExecutor.js +4 -291
  219. package/dist/transformer/TransformerService.cjs +5 -289
  220. package/dist/transformer/TransformerService.js +3 -262
  221. package/dist/transformer/anthropicBetaInject.cjs +8 -0
  222. package/dist/transformer/anthropicBetaInject.d.cts +20 -0
  223. package/dist/transformer/anthropicBetaInject.d.ts +20 -0
  224. package/dist/transformer/anthropicBetaInject.js +8 -0
  225. package/dist/transformer/transformers/AnthropicTransformer.cjs +6 -0
  226. package/dist/transformer/transformers/AnthropicTransformer.d.cts +148 -0
  227. package/dist/transformer/transformers/AnthropicTransformer.d.ts +148 -0
  228. package/dist/transformer/transformers/AnthropicTransformer.js +6 -0
  229. package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +4 -1106
  230. package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +7 -1079
  231. package/dist/transformer/transformers/GeminiTransformer.cjs +4 -1010
  232. package/dist/transformer/transformers/GeminiTransformer.js +4 -983
  233. package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +3 -535
  234. package/dist/transformer/transformers/OpenAIResponseTransformer.js +3 -510
  235. package/dist/transformer/transformers/OpenCodeGoTransformer.cjs +5 -72
  236. package/dist/transformer/transformers/OpenCodeGoTransformer.js +3 -45
  237. package/dist/transformer/transformers/ReasoningTransformer.cjs +6 -0
  238. package/dist/transformer/transformers/ReasoningTransformer.d.cts +47 -0
  239. package/dist/transformer/transformers/ReasoningTransformer.d.ts +47 -0
  240. package/dist/transformer/transformers/ReasoningTransformer.js +6 -0
  241. package/dist/transformer/transformers.cjs +39 -0
  242. package/dist/transformer/transformers.d.cts +100 -0
  243. package/dist/transformer/transformers.d.ts +100 -0
  244. package/dist/transformer/transformers.js +39 -0
  245. package/dist/transformer/types.cjs +1 -18
  246. package/dist/transformer.cjs +13 -3726
  247. package/dist/transformer.d.cts +8 -31
  248. package/dist/transformer.d.ts +8 -31
  249. package/dist/transformer.js +17 -3706
  250. package/dist/types-BScIHmPr.d.cts +153 -0
  251. package/dist/types-BScIHmPr.d.ts +153 -0
  252. package/dist/usage/pricing-engine.cjs +6 -0
  253. package/dist/usage/pricing-engine.d.cts +83 -0
  254. package/dist/usage/pricing-engine.d.ts +83 -0
  255. package/dist/usage/pricing-engine.js +6 -0
  256. package/dist/usage/usage-recorder.cjs +6 -0
  257. package/dist/usage/usage-recorder.d.cts +73 -0
  258. package/dist/usage/usage-recorder.d.ts +73 -0
  259. package/dist/usage/usage-recorder.js +6 -0
  260. package/dist/usage.cjs +11 -0
  261. package/dist/usage.d.cts +8 -0
  262. package/dist/usage.d.ts +8 -0
  263. package/dist/usage.js +11 -0
  264. package/package.json +3 -3
  265. package/dist/ApiKeyPoolService-BmMkau07.d.cts +0 -170
  266. package/dist/ApiKeyPoolService-BmMkau07.d.ts +0 -170
  267. package/dist/SubscriptionAuthSource-Cr4fVEYY.d.cts +0 -264
  268. package/dist/SubscriptionAuthSource-D89zmiSS.d.ts +0 -264
  269. package/dist/index-BTSmc9Sm.d.ts +0 -645
  270. package/dist/index-DXazdTzZ.d.cts +0 -645
  271. package/dist/types-DCzHkhJt.d.ts +0 -467
  272. package/dist/types-DZIQbgp0.d.cts +0 -467
@@ -1,17 +1,159 @@
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-DXazdTzZ.cjs';
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.cjs';
2
+ export { C as CompletionService, V as VisionFallbackProvider } from './CompletionService-D3a47vdU.cjs';
3
+ export { buildAnthropicApiUrl, buildAzureOpenAIApiUrl, buildGeminiApiUrl, buildOpenAIApiUrl, buildOpenAIResponseApiUrl, buildProviderApiUrl, normalizeAzureEndpoint, resolveApiFormat, resolveProviderEndpoint } from './completion/url-builder.cjs';
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-CS2WpXhM.cjs';
7
+ export { applyAugmentation, buildNativeSearchAugmentation, detectNativeSearch } from './completion/NativeSearchInjector.cjs';
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.cjs';
6
- import './ApiKeyPoolService-BmMkau07.cjs';
7
- import './types-DZIQbgp0.cjs';
10
+ import './logger-4GvQNzhE.cjs';
11
+ import './ports/provider-config-source.cjs';
12
+ import './transformer/types.cjs';
13
+ import './transformer/TransformerService.cjs';
14
+ import './provider-proxy/types.cjs';
8
15
  import 'node:http';
9
16
  import '@omnicross/contracts/subscription-types';
10
17
  import '@omnicross/contracts/usage-types';
11
- import './SubscriptionAuthSource-Cr4fVEYY.cjs';
18
+ import './completion/ApiKeyPoolService.cjs';
19
+ import './pipeline/AuthSource.cjs';
20
+ import './pipeline/SubscriptionAuthSource.cjs';
12
21
  import './pipeline/SubscriptionAuthStrategy.cjs';
13
- import './transformer/types.cjs';
14
- import './transformer/TransformerService.cjs';
22
+ import './ports/web-search-backend.cjs';
15
23
  import '@omnicross/contracts/websearch-types';
16
24
  import '@omnicross/contracts/mcp-types';
17
25
  import '@omnicross/contracts/endpoint-resolver';
26
+
27
+ /**
28
+ * StreamEventBuffer — per-streamId event queue for streamed completion delivery.
29
+ *
30
+ * Closes the subscribe-vs-emit race between a producer that starts the LLM call
31
+ * asynchronously and a consumer that only attaches its listener after awaiting a
32
+ * reply. Events emitted before `attach(streamId)` is called are queued and
33
+ * replayed in order on attach.
34
+ */
35
+ /**
36
+ * Minimal structural sender — the subset of an Electron `WebContents` (or any
37
+ * IPC channel) this buffer actually uses. Kept LOCAL so core has zero electron
38
+ * dependency; the host passes any object satisfying this shape.
39
+ */
40
+ interface StreamSender {
41
+ isDestroyed(): boolean;
42
+ send(channel: string, payload: StreamEvent): void;
43
+ }
44
+ type StreamEventType = 'start' | 'delta' | 'reasoning' | 'tool_call' | 'tool_result' | 'tool_use' | 'block' | 'search_start' | 'search_result' | 'done' | 'error' | 'abort';
45
+ interface StreamEvent {
46
+ type: StreamEventType;
47
+ [key: string]: unknown;
48
+ }
49
+ /**
50
+ * Register a new stream. Called by the engine / handler immediately after the
51
+ * `streamId` is created, before any `emit`. Idempotent re-registration replaces
52
+ * the sender (covers the rare case of the engine retrying with the same id).
53
+ */
54
+ declare function register(streamId: string, sender: StreamSender): void;
55
+ /**
56
+ * Emit an event for `streamId`. Forwards directly if the client has attached;
57
+ * otherwise queues until `attach` is called. Bounded at QUEUE_CAP — overflow
58
+ * evicts the oldest non-terminal event.
59
+ */
60
+ declare function emit(streamId: string, event: StreamEvent): void;
61
+ /**
62
+ * The client announced readiness via the `completion:stream:subscribe` IPC. Drains
63
+ * the queue synchronously to the bound sender, then flips to direct-forward mode.
64
+ * Returns the number of events drained for diagnostic purposes.
65
+ */
66
+ declare function attach(streamId: string): {
67
+ ok: boolean;
68
+ drained: number;
69
+ };
70
+ /**
71
+ * Mark a stream finished. If the client has already attached, release
72
+ * synchronously. Otherwise defer one tick so a late `subscribe` arriving on the
73
+ * heels of the `done`/`error` event still drains the queue before cleanup.
74
+ */
75
+ declare function release(streamId: string): void;
76
+
77
+ /**
78
+ * Request Header Building Utilities
79
+ *
80
+ * Functions for building correct request headers based on provider format.
81
+ */
82
+
83
+ /**
84
+ * Get request headers based on provider format
85
+ */
86
+ declare function getProviderHeaders(provider: LLMProvider, apiKey: string): Record<string, string>;
87
+
88
+ /**
89
+ * Message Format Conversion Utilities
90
+ *
91
+ * Functions for converting SimpleChatMessage to different API formats.
92
+ */
93
+
94
+ /**
95
+ * Convert SimpleChatMessage to OpenAI-compatible format (covers OpenAI, OpenRouter,
96
+ * and other OpenAI-compatible providers — DO NOT call from Anthropic / Gemini paths,
97
+ * which have their own converters above).
98
+ *
99
+ * - Text only: { role, content: string }
100
+ * - With media: { role, content: [{ type: "text" | "image_url" | "input_audio" | "video_url", ... }] }
101
+ *
102
+ * Audio is emitted as `input_audio` with base64 + format (the standard OpenAI / OpenRouter
103
+ * shape). Video is emitted as `video_url`: HTTPS URLs pass through; local data is sent as a
104
+ * `data:<mime>;base64,...` URL with a 25 MB cap before the request is even built.
105
+ */
106
+ declare function convertMessageToOpenAI(msg: SimpleChatMessage): OpenAIMessage;
107
+ /**
108
+ * Convert SimpleChatMessage to Anthropic format (with vision support)
109
+ * Anthropic format:
110
+ * - Text only: { role, content: string }
111
+ * - With images: { role, content: [{ type: "text", text: "..." }, { type: "image", source: { type: "base64", media_type: "...", data: "..." } }] }
112
+ */
113
+ declare function convertMessageToAnthropic(msg: SimpleChatMessage): AnthropicMessage;
114
+ /**
115
+ * Minimal Gemini part shape for the simple-chat DIRECT path (text + inline
116
+ * media only), serialized with the official REST JSON casing
117
+ * (`inlineData` / `mimeType`).
118
+ *
119
+ * NOT the same wire model as the transformer pipeline's full `GeminiPart`
120
+ * union in `transformer/transformers/utils/gemini.util.ts` (function calls /
121
+ * file data, snake_case alias keys). The two paths intentionally serialize
122
+ * differently — do not merge them blindly.
123
+ */
124
+ interface SimpleChatGeminiPart {
125
+ text?: string;
126
+ inlineData?: {
127
+ mimeType: string;
128
+ data: string;
129
+ };
130
+ }
131
+ /** Gemini message for the simple-chat direct path. */
132
+ interface SimpleChatGeminiMessage {
133
+ role: string;
134
+ parts: SimpleChatGeminiPart[];
135
+ }
136
+ /**
137
+ * Convert SimpleChatMessage to Gemini format (with vision support)
138
+ * Gemini format:
139
+ * - { role: "user"|"model", parts: [{ text: "..." }, { inlineData: { mimeType: "...", data: "..." } }] }
140
+ */
141
+ declare function convertMessageToGemini(msg: SimpleChatMessage): SimpleChatGeminiMessage;
142
+
143
+ /**
144
+ * OpenRouter Provider Utilities
145
+ *
146
+ * Functions for handling OpenRouter-specific configuration and routing.
147
+ */
148
+
149
+ /**
150
+ * Get OpenRouter provider routing config from model configuration
151
+ * Returns the provider routing config if the provider is OpenRouter and model has config
152
+ */
153
+ declare function getOpenRouterProviderConfig(provider: LLMProvider, modelId: string): OpenRouterProviderRouting | undefined;
154
+ /**
155
+ * Add OpenRouter provider routing to request body if applicable
156
+ */
157
+ declare function addOpenRouterProviderToRequest(requestBody: Record<string, unknown>, provider: LLMProvider, modelId: string): Record<string, unknown>;
158
+
159
+ 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 };
@@ -1,17 +1,159 @@
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-DdWaAxq0.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
- import './ApiKeyPoolService-BmMkau07.js';
7
- import './types-DCzHkhJt.js';
10
+ import './logger-4GvQNzhE.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 './completion/ApiKeyPoolService.js';
19
+ import './pipeline/AuthSource.js';
20
+ import './pipeline/SubscriptionAuthSource.js';
12
21
  import './pipeline/SubscriptionAuthStrategy.js';
13
- import './transformer/types.js';
14
- import './transformer/TransformerService.js';
22
+ import './ports/web-search-backend.js';
15
23
  import '@omnicross/contracts/websearch-types';
16
24
  import '@omnicross/contracts/mcp-types';
17
25
  import '@omnicross/contracts/endpoint-resolver';
26
+
27
+ /**
28
+ * StreamEventBuffer — per-streamId event queue for streamed completion delivery.
29
+ *
30
+ * Closes the subscribe-vs-emit race between a producer that starts the LLM call
31
+ * asynchronously and a consumer that only attaches its listener after awaiting a
32
+ * reply. Events emitted before `attach(streamId)` is called are queued and
33
+ * replayed in order on attach.
34
+ */
35
+ /**
36
+ * Minimal structural sender — the subset of an Electron `WebContents` (or any
37
+ * IPC channel) this buffer actually uses. Kept LOCAL so core has zero electron
38
+ * dependency; the host passes any object satisfying this shape.
39
+ */
40
+ interface StreamSender {
41
+ isDestroyed(): boolean;
42
+ send(channel: string, payload: StreamEvent): void;
43
+ }
44
+ type StreamEventType = 'start' | 'delta' | 'reasoning' | 'tool_call' | 'tool_result' | 'tool_use' | 'block' | 'search_start' | 'search_result' | 'done' | 'error' | 'abort';
45
+ interface StreamEvent {
46
+ type: StreamEventType;
47
+ [key: string]: unknown;
48
+ }
49
+ /**
50
+ * Register a new stream. Called by the engine / handler immediately after the
51
+ * `streamId` is created, before any `emit`. Idempotent re-registration replaces
52
+ * the sender (covers the rare case of the engine retrying with the same id).
53
+ */
54
+ declare function register(streamId: string, sender: StreamSender): void;
55
+ /**
56
+ * Emit an event for `streamId`. Forwards directly if the client has attached;
57
+ * otherwise queues until `attach` is called. Bounded at QUEUE_CAP — overflow
58
+ * evicts the oldest non-terminal event.
59
+ */
60
+ declare function emit(streamId: string, event: StreamEvent): void;
61
+ /**
62
+ * The client announced readiness via the `completion:stream:subscribe` IPC. Drains
63
+ * the queue synchronously to the bound sender, then flips to direct-forward mode.
64
+ * Returns the number of events drained for diagnostic purposes.
65
+ */
66
+ declare function attach(streamId: string): {
67
+ ok: boolean;
68
+ drained: number;
69
+ };
70
+ /**
71
+ * Mark a stream finished. If the client has already attached, release
72
+ * synchronously. Otherwise defer one tick so a late `subscribe` arriving on the
73
+ * heels of the `done`/`error` event still drains the queue before cleanup.
74
+ */
75
+ declare function release(streamId: string): void;
76
+
77
+ /**
78
+ * Request Header Building Utilities
79
+ *
80
+ * Functions for building correct request headers based on provider format.
81
+ */
82
+
83
+ /**
84
+ * Get request headers based on provider format
85
+ */
86
+ declare function getProviderHeaders(provider: LLMProvider, apiKey: string): Record<string, string>;
87
+
88
+ /**
89
+ * Message Format Conversion Utilities
90
+ *
91
+ * Functions for converting SimpleChatMessage to different API formats.
92
+ */
93
+
94
+ /**
95
+ * Convert SimpleChatMessage to OpenAI-compatible format (covers OpenAI, OpenRouter,
96
+ * and other OpenAI-compatible providers — DO NOT call from Anthropic / Gemini paths,
97
+ * which have their own converters above).
98
+ *
99
+ * - Text only: { role, content: string }
100
+ * - With media: { role, content: [{ type: "text" | "image_url" | "input_audio" | "video_url", ... }] }
101
+ *
102
+ * Audio is emitted as `input_audio` with base64 + format (the standard OpenAI / OpenRouter
103
+ * shape). Video is emitted as `video_url`: HTTPS URLs pass through; local data is sent as a
104
+ * `data:<mime>;base64,...` URL with a 25 MB cap before the request is even built.
105
+ */
106
+ declare function convertMessageToOpenAI(msg: SimpleChatMessage): OpenAIMessage;
107
+ /**
108
+ * Convert SimpleChatMessage to Anthropic format (with vision support)
109
+ * Anthropic format:
110
+ * - Text only: { role, content: string }
111
+ * - With images: { role, content: [{ type: "text", text: "..." }, { type: "image", source: { type: "base64", media_type: "...", data: "..." } }] }
112
+ */
113
+ declare function convertMessageToAnthropic(msg: SimpleChatMessage): AnthropicMessage;
114
+ /**
115
+ * Minimal Gemini part shape for the simple-chat DIRECT path (text + inline
116
+ * media only), serialized with the official REST JSON casing
117
+ * (`inlineData` / `mimeType`).
118
+ *
119
+ * NOT the same wire model as the transformer pipeline's full `GeminiPart`
120
+ * union in `transformer/transformers/utils/gemini.util.ts` (function calls /
121
+ * file data, snake_case alias keys). The two paths intentionally serialize
122
+ * differently — do not merge them blindly.
123
+ */
124
+ interface SimpleChatGeminiPart {
125
+ text?: string;
126
+ inlineData?: {
127
+ mimeType: string;
128
+ data: string;
129
+ };
130
+ }
131
+ /** Gemini message for the simple-chat direct path. */
132
+ interface SimpleChatGeminiMessage {
133
+ role: string;
134
+ parts: SimpleChatGeminiPart[];
135
+ }
136
+ /**
137
+ * Convert SimpleChatMessage to Gemini format (with vision support)
138
+ * Gemini format:
139
+ * - { role: "user"|"model", parts: [{ text: "..." }, { inlineData: { mimeType: "...", data: "..." } }] }
140
+ */
141
+ declare function convertMessageToGemini(msg: SimpleChatMessage): SimpleChatGeminiMessage;
142
+
143
+ /**
144
+ * OpenRouter Provider Utilities
145
+ *
146
+ * Functions for handling OpenRouter-specific configuration and routing.
147
+ */
148
+
149
+ /**
150
+ * Get OpenRouter provider routing config from model configuration
151
+ * Returns the provider routing config if the provider is OpenRouter and model has config
152
+ */
153
+ declare function getOpenRouterProviderConfig(provider: LLMProvider, modelId: string): OpenRouterProviderRouting | undefined;
154
+ /**
155
+ * Add OpenRouter provider routing to request body if applicable
156
+ */
157
+ declare function addOpenRouterProviderToRequest(requestBody: Record<string, unknown>, provider: LLMProvider, modelId: string): Record<string, unknown>;
158
+
159
+ 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 };