@omnicross/core 0.1.1 → 0.1.3

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 (259) hide show
  1. package/dist/ApiConverter.cjs +3 -778
  2. package/dist/ApiConverter.js +12 -751
  3. package/dist/{CompletionService-DtOF_War.d.cts → CompletionService-D3a47vdU.d.cts} +2 -1
  4. package/dist/{CompletionService-7fCmKAP3.d.ts → CompletionService-DdWaAxq0.d.ts} +2 -1
  5. package/dist/auth/GeminiCodeAssistProjectResolver.cjs +32 -60
  6. package/dist/auth/GeminiCodeAssistProjectResolver.js +11 -10
  7. package/dist/builtin-web-fetch-77JZUZGM.cjs +100 -0
  8. package/dist/builtin-web-fetch-IGLBX2XY.js +100 -0
  9. package/dist/chunk-2DCNB7DF.cjs +514 -0
  10. package/dist/chunk-2FMI2B6V.cjs +6196 -0
  11. package/dist/chunk-3OPYJG76.cjs +266 -0
  12. package/dist/chunk-3QOSDDNI.cjs +130 -0
  13. package/dist/chunk-46RLHI7D.js +0 -0
  14. package/dist/chunk-46ZIFWYG.cjs +277 -0
  15. package/dist/chunk-4DECIFU7.js +6196 -0
  16. package/dist/chunk-4IH4EL7M.cjs +9 -0
  17. package/dist/chunk-4VAVYUZS.cjs +991 -0
  18. package/dist/chunk-5ENKBSWO.js +311 -0
  19. package/dist/chunk-5ERIZW3D.js +44 -0
  20. package/dist/chunk-5HTVET6E.js +514 -0
  21. package/dist/chunk-5ZQBEOMD.js +764 -0
  22. package/dist/chunk-6RPZADX3.cjs +92 -0
  23. package/dist/chunk-7VU7V2E4.js +0 -0
  24. package/dist/chunk-7YN22L2H.cjs +87 -0
  25. package/dist/chunk-A2YMUCBT.cjs +105 -0
  26. package/dist/chunk-AEOZIDEB.cjs +32 -0
  27. package/dist/chunk-AQ5TNQB7.js +13 -0
  28. package/dist/chunk-AVYJ4YBN.js +58 -0
  29. package/dist/chunk-BO4RFWBR.js +89 -0
  30. package/dist/chunk-C72S6TTV.cjs +49 -0
  31. package/dist/chunk-C7PSERMH.js +87 -0
  32. package/dist/chunk-CDHS2QDC.js +179 -0
  33. package/dist/chunk-CWM2ZDU5.js +130 -0
  34. package/dist/chunk-CZHZGRU7.js +383 -0
  35. package/dist/chunk-DK4A7DLE.js +266 -0
  36. package/dist/chunk-DQ5VAYZ6.cjs +42 -0
  37. package/dist/chunk-DRWHTIIZ.js +13 -0
  38. package/dist/chunk-DWKQZ2SK.cjs +254 -0
  39. package/dist/chunk-EYZYXJTJ.cjs +1 -0
  40. package/dist/chunk-FFALUUZZ.cjs +235 -0
  41. package/dist/chunk-FMOBD2OQ.js +39 -0
  42. package/dist/chunk-FTQ7IQUC.js +991 -0
  43. package/dist/chunk-FZ46M34D.cjs +1 -0
  44. package/dist/chunk-G2UTNSGU.js +277 -0
  45. package/dist/chunk-GBHYAGX3.cjs +26 -0
  46. package/dist/chunk-GMMT7RVN.cjs +39 -0
  47. package/dist/chunk-H5JUT3KV.js +105 -0
  48. package/dist/chunk-HQP3K7PU.cjs +431 -0
  49. package/dist/chunk-HUZZZ3JL.js +32 -0
  50. package/dist/chunk-IAXWICZU.js +69 -0
  51. package/dist/chunk-JMJBSACD.cjs +147 -0
  52. package/dist/chunk-JO5NLTLY.js +46 -0
  53. package/dist/chunk-JWC6APFQ.js +23 -0
  54. package/dist/chunk-KUU2RNG6.cjs +46 -0
  55. package/dist/chunk-L74VDN4A.cjs +32 -0
  56. package/dist/chunk-MQNDWYPN.js +235 -0
  57. package/dist/chunk-MZNPGW5Q.js +26 -0
  58. package/dist/chunk-N5QFKSDO.js +56 -0
  59. package/dist/chunk-NYUNU75A.cjs +44 -0
  60. package/dist/chunk-NZYN7C3P.cjs +179 -0
  61. package/dist/chunk-Q27JY5RG.cjs +126 -0
  62. package/dist/chunk-QBZJ7P2T.cjs +13 -0
  63. package/dist/chunk-QWBWGODS.cjs +69 -0
  64. package/dist/chunk-QXD4MV2X.cjs +23 -0
  65. package/dist/chunk-R3HK6R4B.cjs +13 -0
  66. package/dist/chunk-RPII3E6Z.cjs +145 -0
  67. package/dist/chunk-RSJ3TWJQ.cjs +186 -0
  68. package/dist/chunk-S4WBV25P.js +913 -0
  69. package/dist/chunk-S6JGLF3G.cjs +89 -0
  70. package/dist/chunk-SUEGJ75D.cjs +764 -0
  71. package/dist/chunk-SVNDB62D.cjs +58 -0
  72. package/dist/chunk-SVXC36MU.cjs +383 -0
  73. package/dist/chunk-TKJMZBAH.js +32 -0
  74. package/dist/chunk-UBWEBKRC.js +42 -0
  75. package/dist/chunk-UNEFIWXI.cjs +32 -0
  76. package/dist/chunk-VQY5W4YW.cjs +311 -0
  77. package/dist/chunk-VVEHS2LI.js +431 -0
  78. package/dist/chunk-WNY4WMRF.js +32 -0
  79. package/dist/chunk-XEKD23J5.js +9 -0
  80. package/dist/chunk-XTEI64OU.js +145 -0
  81. package/dist/chunk-XX6NQJMA.js +92 -0
  82. package/dist/chunk-Y6OM7EV7.cjs +56 -0
  83. package/dist/chunk-Y7FO65VT.js +147 -0
  84. package/dist/chunk-YGXJGRFI.cjs +913 -0
  85. package/dist/chunk-YMFAJFQT.cjs +173 -0
  86. package/dist/chunk-Z7LUNECE.js +49 -0
  87. package/dist/chunk-Z7Y2NPHY.js +186 -0
  88. package/dist/chunk-ZJZAOKI7.js +254 -0
  89. package/dist/chunk-ZLX3KGXX.js +173 -0
  90. package/dist/chunk-ZY6KU6P3.js +126 -0
  91. package/dist/completion/ApiKeyPoolService.cjs +23 -48
  92. package/dist/completion/ApiKeyPoolService.d.cts +150 -2
  93. package/dist/completion/ApiKeyPoolService.d.ts +150 -2
  94. package/dist/completion/BuiltinToolExecutor.cjs +9 -324
  95. package/dist/completion/BuiltinToolExecutor.js +6 -290
  96. package/dist/completion/CompletionService.cjs +45 -3487
  97. package/dist/completion/CompletionService.d.cts +3 -2
  98. package/dist/completion/CompletionService.d.ts +3 -2
  99. package/dist/completion/CompletionService.js +41 -3457
  100. package/dist/completion/NativeSearchInjector.cjs +8 -192
  101. package/dist/completion/NativeSearchInjector.js +7 -162
  102. package/dist/completion/ProviderSearchInjector.cjs +12 -39
  103. package/dist/completion/native-search-types.cjs +13 -66
  104. package/dist/completion/native-search-types.js +7 -31
  105. package/dist/completion/openrouter-headers.cjs +12 -71
  106. package/dist/completion/openrouter-headers.d.cts +9 -12
  107. package/dist/completion/openrouter-headers.d.ts +9 -12
  108. package/dist/completion/openrouter-headers.js +7 -36
  109. package/dist/completion/openrouter-models.cjs +11 -67
  110. package/dist/completion/openrouter-models.js +5 -34
  111. package/dist/completion/types.cjs +1 -18
  112. package/dist/completion/url-builder.cjs +24 -138
  113. package/dist/completion/url-builder.js +12 -92
  114. package/dist/completion.cjs +62 -3989
  115. package/dist/completion.d.cts +3 -2
  116. package/dist/completion.d.ts +3 -2
  117. package/dist/completion.js +70 -3953
  118. package/dist/index.cjs +319 -10429
  119. package/dist/index.d.cts +49 -12
  120. package/dist/index.d.ts +49 -12
  121. package/dist/index.js +248 -10269
  122. package/dist/logger-4GvQNzhE.d.cts +22 -0
  123. package/dist/logger-4GvQNzhE.d.ts +22 -0
  124. package/dist/outbound-api/routeResolver.cjs +10 -217
  125. package/dist/outbound-api/routeResolver.d.cts +10 -3
  126. package/dist/outbound-api/routeResolver.d.ts +10 -3
  127. package/dist/outbound-api/routeResolver.js +9 -187
  128. package/dist/outbound-api/subscriptionRegistryPort.cjs +7 -37
  129. package/dist/outbound-api/subscriptionRegistryPort.d.cts +2 -1
  130. package/dist/outbound-api/subscriptionRegistryPort.d.ts +2 -1
  131. package/dist/outbound-api/subscriptionRegistryPort.js +4 -8
  132. package/dist/outbound-api/types.cjs +5 -17
  133. package/dist/outbound-api/types.d.cts +12 -144
  134. package/dist/outbound-api/types.d.ts +12 -144
  135. package/dist/outbound-api/types.js +6 -0
  136. package/dist/outbound-api.cjs +197 -5265
  137. package/dist/outbound-api.d.cts +787 -25
  138. package/dist/outbound-api.d.ts +787 -25
  139. package/dist/outbound-api.js +173 -5195
  140. package/dist/pipeline/AuthSource.cjs +1 -18
  141. package/dist/pipeline/AuthSource.d.cts +23 -1
  142. package/dist/pipeline/AuthSource.d.ts +23 -1
  143. package/dist/pipeline/LlmConfigProviderAuth.cjs +5 -166
  144. package/dist/pipeline/LlmConfigProviderAuth.d.cts +2 -1
  145. package/dist/pipeline/LlmConfigProviderAuth.d.ts +2 -1
  146. package/dist/pipeline/LlmConfigProviderAuth.js +5 -139
  147. package/dist/pipeline/SubscriptionAccountHealth.cjs +22 -0
  148. package/dist/pipeline/SubscriptionAccountHealth.d.cts +235 -0
  149. package/dist/pipeline/SubscriptionAccountHealth.d.ts +235 -0
  150. package/dist/pipeline/SubscriptionAccountHealth.js +22 -0
  151. package/dist/pipeline/SubscriptionAuthSource.cjs +6 -128
  152. package/dist/pipeline/SubscriptionAuthSource.d.cts +3 -2
  153. package/dist/pipeline/SubscriptionAuthSource.d.ts +3 -2
  154. package/dist/pipeline/SubscriptionAuthSource.js +5 -99
  155. package/dist/pipeline/SubscriptionAuthStrategy.cjs +1 -18
  156. package/dist/pipeline/SubscriptionAuthStrategy.d.cts +24 -1
  157. package/dist/pipeline/SubscriptionAuthStrategy.d.ts +24 -1
  158. package/dist/pipeline/auditSink.cjs +14 -0
  159. package/dist/pipeline/auditSink.d.cts +48 -0
  160. package/dist/pipeline/auditSink.d.ts +48 -0
  161. package/dist/pipeline/auditSink.js +14 -0
  162. package/dist/pipeline/billingEmit.cjs +14 -0
  163. package/dist/pipeline/billingEmit.d.cts +49 -0
  164. package/dist/pipeline/billingEmit.d.ts +49 -0
  165. package/dist/pipeline/billingEmit.js +14 -0
  166. package/dist/pipeline/executeProviderCall.cjs +5 -69
  167. package/dist/pipeline/executeProviderCall.js +3 -42
  168. package/dist/pipeline/resolveProviderChain.cjs +5 -46
  169. package/dist/pipeline/resolveProviderChain.js +3 -19
  170. package/dist/pipeline/resolveSubscriptionChain.cjs +5 -67
  171. package/dist/pipeline/resolveSubscriptionChain.js +3 -40
  172. package/dist/ports/gemini-code-assist-resolver.cjs +7 -37
  173. package/dist/ports/gemini-code-assist-resolver.js +4 -8
  174. package/dist/ports/pricing-store.cjs +1 -0
  175. package/dist/ports/pricing-store.d.cts +50 -0
  176. package/dist/ports/pricing-store.d.ts +50 -0
  177. package/dist/ports/pricing-store.js +0 -0
  178. package/dist/ports/provider-config-source.cjs +1 -18
  179. package/dist/ports/usage-event-store.cjs +1 -0
  180. package/dist/ports/usage-event-store.d.cts +54 -0
  181. package/dist/ports/usage-event-store.d.ts +54 -0
  182. package/dist/ports/usage-event-store.js +0 -0
  183. package/dist/ports/web-search-backend.cjs +1 -18
  184. package/dist/ports.cjs +1 -18
  185. package/dist/ports.d.cts +13 -2
  186. package/dist/ports.d.ts +13 -2
  187. package/dist/provider-proxy/ProviderProxy.cjs +47 -4643
  188. package/dist/provider-proxy/ProviderProxy.d.cts +2 -1
  189. package/dist/provider-proxy/ProviderProxy.d.ts +2 -1
  190. package/dist/provider-proxy/ProviderProxy.js +42 -4613
  191. package/dist/provider-proxy/identity/SubscriptionIdentityStore.cjs +15 -0
  192. package/dist/provider-proxy/identity/SubscriptionIdentityStore.d.cts +121 -0
  193. package/dist/provider-proxy/identity/SubscriptionIdentityStore.d.ts +121 -0
  194. package/dist/provider-proxy/identity/SubscriptionIdentityStore.js +15 -0
  195. package/dist/provider-proxy/identity/fingerprintHeaders.cjs +20 -0
  196. package/dist/provider-proxy/identity/fingerprintHeaders.d.cts +89 -0
  197. package/dist/provider-proxy/identity/fingerprintHeaders.d.ts +89 -0
  198. package/dist/provider-proxy/identity/fingerprintHeaders.js +20 -0
  199. package/dist/provider-proxy/ingress/providerProxyShared.cjs +42 -2941
  200. package/dist/provider-proxy/ingress/providerProxyShared.d.cts +13 -3
  201. package/dist/provider-proxy/ingress/providerProxyShared.d.ts +13 -3
  202. package/dist/provider-proxy/ingress/providerProxyShared.js +48 -2914
  203. package/dist/provider-proxy/matchText.cjs +13 -72
  204. package/dist/provider-proxy/matchText.d.cts +14 -1
  205. package/dist/provider-proxy/matchText.d.ts +14 -1
  206. package/dist/provider-proxy/matchText.js +8 -39
  207. package/dist/provider-proxy/types.cjs +1 -18
  208. package/dist/provider-proxy/types.d.cts +25 -1
  209. package/dist/provider-proxy/types.d.ts +25 -1
  210. package/dist/provider-proxy.cjs +42 -4655
  211. package/dist/provider-proxy.d.cts +2 -1
  212. package/dist/provider-proxy.d.ts +2 -1
  213. package/dist/provider-proxy.js +46 -4628
  214. package/dist/{routeResolver-HE-ZO0fO.d.ts → routeResolver-B1NglTfe.d.ts} +36 -10
  215. package/dist/{routeResolver-BrbK6ja9.d.cts → routeResolver-CbG5uBgm.d.cts} +36 -10
  216. package/dist/serializeError.cjs +5 -81
  217. package/dist/serializeError.js +3 -54
  218. package/dist/sse-parser.cjs +7 -455
  219. package/dist/sse-parser.js +4 -426
  220. package/dist/transformer/TransformerChainExecutor.cjs +4 -318
  221. package/dist/transformer/TransformerChainExecutor.js +4 -291
  222. package/dist/transformer/TransformerService.cjs +5 -289
  223. package/dist/transformer/TransformerService.js +3 -262
  224. package/dist/transformer/anthropicBetaInject.cjs +7 -50
  225. package/dist/transformer/anthropicBetaInject.js +4 -21
  226. package/dist/transformer/transformers/AnthropicTransformer.cjs +3 -1014
  227. package/dist/transformer/transformers/AnthropicTransformer.js +3 -987
  228. package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +4 -1106
  229. package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +7 -1079
  230. package/dist/transformer/transformers/GeminiTransformer.cjs +4 -1010
  231. package/dist/transformer/transformers/GeminiTransformer.js +4 -983
  232. package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +3 -535
  233. package/dist/transformer/transformers/OpenAIResponseTransformer.js +3 -510
  234. package/dist/transformer/transformers/OpenCodeGoTransformer.cjs +5 -72
  235. package/dist/transformer/transformers/OpenCodeGoTransformer.js +3 -45
  236. package/dist/transformer/transformers/ReasoningTransformer.cjs +3 -270
  237. package/dist/transformer/transformers/ReasoningTransformer.js +2 -249
  238. package/dist/transformer/transformers.cjs +10 -3177
  239. package/dist/transformer/transformers.js +23 -3158
  240. package/dist/transformer/types.cjs +1 -18
  241. package/dist/transformer.cjs +13 -3726
  242. package/dist/transformer.js +17 -3706
  243. package/dist/types-6OUY_xfA.d.ts +830 -0
  244. package/dist/types-aBFFXoBz.d.cts +830 -0
  245. package/dist/usage/pricing-engine.cjs +6 -0
  246. package/dist/usage/pricing-engine.d.cts +83 -0
  247. package/dist/usage/pricing-engine.d.ts +83 -0
  248. package/dist/usage/pricing-engine.js +6 -0
  249. package/dist/usage/usage-recorder.cjs +6 -0
  250. package/dist/usage/usage-recorder.d.cts +91 -0
  251. package/dist/usage/usage-recorder.d.ts +91 -0
  252. package/dist/usage/usage-recorder.js +6 -0
  253. package/dist/usage.cjs +11 -0
  254. package/dist/usage.d.cts +8 -0
  255. package/dist/usage.d.ts +8 -0
  256. package/dist/usage.js +11 -0
  257. package/package.json +4 -2
  258. package/dist/ApiKeyPoolService-BmMkau07.d.cts +0 -170
  259. package/dist/ApiKeyPoolService-BmMkau07.d.ts +0 -170
@@ -0,0 +1,22 @@
1
+ /**
2
+ * `Logger` — core-owned port for the structured logger the serving core uses.
3
+ *
4
+ * The serving core MUST depend on THIS interface, never on the concrete host
5
+ * `LoggerService` class as a type. The host (`LoggerService`) already exposes a
6
+ * superset of this surface, so it is passed directly with NO adapter.
7
+ *
8
+ * `error` uses the WIDEST signature `(message, error?, meta?)` so every core
9
+ * call site — `error(msg)`, `error(msg, errInstance)`, `error(msg, err, meta)` —
10
+ * stays assignable (design Q2). `info`/`warn`/`debug` take an optional `meta`
11
+ * bag matching the host's `Record<string, unknown> | Error | object`.
12
+ *
13
+ * @module ports/logger
14
+ */
15
+ interface Logger {
16
+ info(message: string, meta?: Record<string, unknown> | Error | object): void;
17
+ warn(message: string, meta?: Record<string, unknown> | Error | object): void;
18
+ error(message: string, error?: unknown, meta?: Record<string, unknown> | object): void;
19
+ debug(message: string, meta?: Record<string, unknown> | Error | object): void;
20
+ }
21
+
22
+ export type { Logger as L };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * `Logger` — core-owned port for the structured logger the serving core uses.
3
+ *
4
+ * The serving core MUST depend on THIS interface, never on the concrete host
5
+ * `LoggerService` class as a type. The host (`LoggerService`) already exposes a
6
+ * superset of this surface, so it is passed directly with NO adapter.
7
+ *
8
+ * `error` uses the WIDEST signature `(message, error?, meta?)` so every core
9
+ * call site — `error(msg)`, `error(msg, errInstance)`, `error(msg, err, meta)` —
10
+ * stays assignable (design Q2). `info`/`warn`/`debug` take an optional `meta`
11
+ * bag matching the host's `Record<string, unknown> | Error | object`.
12
+ *
13
+ * @module ports/logger
14
+ */
15
+ interface Logger {
16
+ info(message: string, meta?: Record<string, unknown> | Error | object): void;
17
+ warn(message: string, meta?: Record<string, unknown> | Error | object): void;
18
+ error(message: string, error?: unknown, meta?: Record<string, unknown> | object): void;
19
+ debug(message: string, meta?: Record<string, unknown> | Error | object): void;
20
+ }
21
+
22
+ export type { Logger as L };
@@ -1,221 +1,14 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
19
2
 
20
- // src/outbound-api/routeResolver.ts
21
- var routeResolver_exports = {};
22
- __export(routeResolver_exports, {
23
- isSubscriptionProviderId: () => isSubscriptionProviderId,
24
- parseModelRef: () => parseModelRef,
25
- resolveRoute: () => resolveRoute
26
- });
27
- module.exports = __toCommonJS(routeResolver_exports);
28
3
 
29
- // src/outbound-api/subscriptionRegistryPort.ts
30
- var _registry = null;
31
- function getSubscriptionRegistryForOutbound() {
32
- return _registry;
33
- }
34
4
 
35
- // src/outbound-api/subscriptionSupport.ts
36
- var SUBSCRIPTION_PROVIDER_IDS = [
37
- "claude",
38
- "codex",
39
- "gemini",
40
- "opencodego"
41
- ];
42
- var SUBSCRIPTION_ID_SET = new Set(SUBSCRIPTION_PROVIDER_IDS);
43
- function isSubscriptionProviderId(providerId) {
44
- if (SUBSCRIPTION_ID_SET.has(providerId)) return true;
45
- const registry = getSubscriptionRegistryForOutbound();
46
- return registry?.getProfile(providerId) != null;
47
- }
48
- var SUBSCRIPTION_SUPPORTED_ENDPOINTS = /* @__PURE__ */ new Set([
49
- "messages",
50
- "responses"
51
- ]);
52
- function endpointSupportsSubscription(endpoint) {
53
- return SUBSCRIPTION_SUPPORTED_ENDPOINTS.has(endpoint);
54
- }
55
5
 
56
- // src/outbound-api/routeResolver.ts
57
- function parseModelRef(ref) {
58
- if (!ref) return null;
59
- const idx = ref.indexOf(",");
60
- if (idx <= 0) return null;
61
- const providerId = ref.slice(0, idx).trim();
62
- const modelId = ref.slice(idx + 1).trim();
63
- if (!providerId || !modelId) return null;
64
- return { providerId, modelId };
65
- }
66
- function pickModelRefForRole(config, role) {
67
- if (role === "vision") {
68
- if (config.visionModel && config.visionModel.trim()) {
69
- return { ref: config.visionModel, effectiveRole: "vision" };
70
- }
71
- return { ref: config.defaultModel, effectiveRole: "default" };
72
- }
73
- if (role === "background") {
74
- return { ref: config.backgroundModel, effectiveRole: "background" };
75
- }
76
- return { ref: config.defaultModel, effectiveRole: "default" };
77
- }
78
- async function resolveRoute(args) {
79
- const { config, role, ingressFormat, llmConfig } = args;
80
- const sessionId = args.sessionId ?? null;
81
- const { ref, effectiveRole } = pickModelRefForRole(config, role);
82
- if (!ref || !ref.trim()) {
83
- return {
84
- ok: false,
85
- error: {
86
- status: 503,
87
- message: `endpoint '${config.endpoint}' has no ${effectiveRole} model configured`
88
- }
89
- };
90
- }
91
- const parsed = parseModelRef(ref);
92
- if (!parsed) {
93
- return {
94
- ok: false,
95
- error: {
96
- status: 503,
97
- message: `endpoint '${config.endpoint}' ${effectiveRole} model ref is malformed: '${ref}'`
98
- }
99
- };
100
- }
101
- const { providerId, modelId } = parsed;
102
- const provider = await llmConfig.getProvider(providerId);
103
- if (!provider) {
104
- if (isSubscriptionProviderId(providerId)) {
105
- return await resolveSubscriptionRoute({
106
- config,
107
- providerId,
108
- modelId,
109
- ingressFormat,
110
- sessionId,
111
- effectiveRole
112
- });
113
- }
114
- return {
115
- ok: false,
116
- error: {
117
- status: 503,
118
- message: `provider '${providerId}' not found for endpoint '${config.endpoint}'`
119
- }
120
- };
121
- }
122
- const isOfficialProvider = provider.isOfficial === true || provider.id === "anthropic";
123
- const targetProviderFormat = isOfficialProvider ? "anthropic" : "transform";
124
- let anthropicSdkHints = null;
125
- if (ingressFormat === "anthropic-messages") {
126
- anthropicSdkHints = {
127
- apiKey: resolveApiKey(provider.api_key),
128
- isOfficialProvider,
129
- passThrough: false,
130
- attribution: { sessionId, apiKeyId: null }
131
- };
132
- }
133
- const route = {
134
- sessionId,
135
- targetProviderFormat,
136
- model: modelId,
137
- ingressFormat,
138
- authMode: "byo",
139
- providerId,
140
- anthropicSdkHints
141
- };
142
- return { ok: true, route, usedRole: effectiveRole };
143
- }
144
- async function resolveSubscriptionRoute(args) {
145
- const { config, providerId, modelId, ingressFormat, sessionId, effectiveRole } = args;
146
- if (!config.useSubscription) {
147
- return {
148
- ok: false,
149
- error: {
150
- status: 503,
151
- message: `subscription routing disabled for endpoint '${config.endpoint}'`
152
- }
153
- };
154
- }
155
- if (!endpointSupportsSubscription(config.endpoint)) {
156
- return {
157
- ok: false,
158
- error: {
159
- status: 503,
160
- message: `subscription routing is not supported on the '${config.endpoint}' endpoint; use a BYO API-key provider, or the /v1/messages or /v1/responses endpoint`
161
- }
162
- };
163
- }
164
- const registry = getSubscriptionRegistryForOutbound();
165
- const profile = registry?.getProfile(providerId) ?? null;
166
- if (!profile) {
167
- return {
168
- ok: false,
169
- error: {
170
- status: 503,
171
- message: `subscription provider '${providerId}' is not available`
172
- }
173
- };
174
- }
175
- const hints = {
176
- apiKey: "",
177
- isOfficialProvider: false,
178
- passThrough: false,
179
- subscriptionProfile: profile,
180
- attribution: { sessionId, apiKeyId: null }
181
- };
182
- const subscriptionConfig = providerId === "opencodego" ? await registry?.getOpenCodeGoConfig?.() : void 0;
183
- const route = {
184
- sessionId,
185
- targetProviderFormat: "transform",
186
- model: modelId,
187
- ingressFormat,
188
- authMode: "subscription",
189
- providerId,
190
- // Anthropic delegation carries the dispatch profile inside
191
- // `anthropicSdkHints.subscriptionProfile`. The Responses ingress reads the
192
- // TOP-LEVEL `route.subscriptionProfile`, and so does the built-in
193
- // (factory-absent) `/v1/messages` subscription path (RT2.1) — the registry's
194
- // `SubscriptionDispatchProfile` structurally satisfies `SubscriptionAuthProfile`
195
- // ({ authStrategy, resolveUpstreamUrl, providerTransformerNames }), so set it
196
- // for BOTH. This is INERT when an Anthropic ingress factory is present: that
197
- // delegation reads the hint-bundle field above (and uses a different
198
- // route-minting path), never the top-level field. (chat/gemini never reach
199
- // here — Gate 2 rejected them.)
200
- subscriptionProfile: ingressFormat === "openai-responses" || ingressFormat === "anthropic-messages" ? profile : void 0,
201
- // Opaque per-account config (opencodego-only; `undefined` otherwise). Read by
202
- // the built-in `/v1/messages` plan builder; INERT for the factory-present
203
- // delegation path + non-opencodego.
204
- subscriptionConfig,
205
- anthropicSdkHints: hints
206
- };
207
- return { ok: true, route, usedRole: effectiveRole };
208
- }
209
- function resolveApiKey(apiKey) {
210
- if (!apiKey) return "";
211
- if (apiKey.startsWith("$")) {
212
- return process.env[apiKey.slice(1)] || "";
213
- }
214
- return apiKey;
215
- }
216
- // Annotate the CommonJS export names for ESM import in node:
217
- 0 && (module.exports = {
218
- isSubscriptionProviderId,
219
- parseModelRef,
220
- resolveRoute
221
- });
6
+ var _chunkSVXC36MUcjs = require('../chunk-SVXC36MU.cjs');
7
+ require('../chunk-QBZJ7P2T.cjs');
8
+ require('../chunk-4IH4EL7M.cjs');
9
+
10
+
11
+
12
+
13
+
14
+ exports.isSubscriptionProviderId = _chunkSVXC36MUcjs.isSubscriptionProviderId; exports.parseModelRef = _chunkSVXC36MUcjs.parseModelRef; exports.pickModelRefFromList = _chunkSVXC36MUcjs.pickModelRefFromList; exports.resolveRoute = _chunkSVXC36MUcjs.resolveRoute;
@@ -1,7 +1,7 @@
1
1
  import '../ports/provider-config-source.cjs';
2
2
  import '../provider-proxy/types.cjs';
3
- import './types.cjs';
4
- export { R as RouteResolveError, a as RouteResolveResult, i as isSubscriptionProviderId, p as parseModelRef, r as resolveRoute } from '../routeResolver-BrbK6ja9.cjs';
3
+ import '../types-aBFFXoBz.cjs';
4
+ export { R as RouteResolveError, b as RouteResolveResult, i as isSubscriptionProviderId, p as parseModelRef, a as pickModelRefFromList, r as resolveRoute } from '../routeResolver-CbG5uBgm.cjs';
5
5
  import '@omnicross/contracts/llm-config';
6
6
  import '../transformer/types.cjs';
7
7
  import '../transformer/TransformerService.cjs';
@@ -9,10 +9,17 @@ import 'node:http';
9
9
  import '@omnicross/contracts/completion-types';
10
10
  import '@omnicross/contracts/subscription-types';
11
11
  import '@omnicross/contracts/usage-types';
12
- import '../ApiKeyPoolService-BmMkau07.cjs';
12
+ import '../completion/ApiKeyPoolService.cjs';
13
+ import '../logger-4GvQNzhE.cjs';
13
14
  import '../pipeline/AuthSource.cjs';
14
15
  import '../pipeline/SubscriptionAuthSource.cjs';
15
16
  import '../pipeline/SubscriptionAuthStrategy.cjs';
16
17
  import '../ports/web-search-backend.cjs';
17
18
  import '@omnicross/contracts/websearch-types';
19
+ import '@omnicross/contracts/account-tokens-types';
20
+ import '@omnicross/contracts/audit-types';
21
+ import '@omnicross/contracts/billing-types';
22
+ import '@omnicross/contracts/health-logging-types';
23
+ import '@omnicross/contracts/voucher-types';
24
+ import '@omnicross/contracts/webhook-types';
18
25
  import '../ProviderProxy-CnMQYN59.cjs';
@@ -1,7 +1,7 @@
1
1
  import '../ports/provider-config-source.js';
2
2
  import '../provider-proxy/types.js';
3
- import './types.js';
4
- export { R as RouteResolveError, a as RouteResolveResult, i as isSubscriptionProviderId, p as parseModelRef, r as resolveRoute } from '../routeResolver-HE-ZO0fO.js';
3
+ import '../types-6OUY_xfA.js';
4
+ export { R as RouteResolveError, b as RouteResolveResult, i as isSubscriptionProviderId, p as parseModelRef, a as pickModelRefFromList, r as resolveRoute } from '../routeResolver-B1NglTfe.js';
5
5
  import '@omnicross/contracts/llm-config';
6
6
  import '../transformer/types.js';
7
7
  import '../transformer/TransformerService.js';
@@ -9,10 +9,17 @@ import 'node:http';
9
9
  import '@omnicross/contracts/completion-types';
10
10
  import '@omnicross/contracts/subscription-types';
11
11
  import '@omnicross/contracts/usage-types';
12
- import '../ApiKeyPoolService-BmMkau07.js';
12
+ import '../completion/ApiKeyPoolService.js';
13
+ import '../logger-4GvQNzhE.js';
13
14
  import '../pipeline/AuthSource.js';
14
15
  import '../pipeline/SubscriptionAuthSource.js';
15
16
  import '../pipeline/SubscriptionAuthStrategy.js';
16
17
  import '../ports/web-search-backend.js';
17
18
  import '@omnicross/contracts/websearch-types';
19
+ import '@omnicross/contracts/account-tokens-types';
20
+ import '@omnicross/contracts/audit-types';
21
+ import '@omnicross/contracts/billing-types';
22
+ import '@omnicross/contracts/health-logging-types';
23
+ import '@omnicross/contracts/voucher-types';
24
+ import '@omnicross/contracts/webhook-types';
18
25
  import '../ProviderProxy-C-xqrkKi.js';
@@ -1,192 +1,14 @@
1
- // src/outbound-api/subscriptionRegistryPort.ts
2
- var _registry = null;
3
- function getSubscriptionRegistryForOutbound() {
4
- return _registry;
5
- }
6
-
7
- // src/outbound-api/subscriptionSupport.ts
8
- var SUBSCRIPTION_PROVIDER_IDS = [
9
- "claude",
10
- "codex",
11
- "gemini",
12
- "opencodego"
13
- ];
14
- var SUBSCRIPTION_ID_SET = new Set(SUBSCRIPTION_PROVIDER_IDS);
15
- function isSubscriptionProviderId(providerId) {
16
- if (SUBSCRIPTION_ID_SET.has(providerId)) return true;
17
- const registry = getSubscriptionRegistryForOutbound();
18
- return registry?.getProfile(providerId) != null;
19
- }
20
- var SUBSCRIPTION_SUPPORTED_ENDPOINTS = /* @__PURE__ */ new Set([
21
- "messages",
22
- "responses"
23
- ]);
24
- function endpointSupportsSubscription(endpoint) {
25
- return SUBSCRIPTION_SUPPORTED_ENDPOINTS.has(endpoint);
26
- }
27
-
28
- // src/outbound-api/routeResolver.ts
29
- function parseModelRef(ref) {
30
- if (!ref) return null;
31
- const idx = ref.indexOf(",");
32
- if (idx <= 0) return null;
33
- const providerId = ref.slice(0, idx).trim();
34
- const modelId = ref.slice(idx + 1).trim();
35
- if (!providerId || !modelId) return null;
36
- return { providerId, modelId };
37
- }
38
- function pickModelRefForRole(config, role) {
39
- if (role === "vision") {
40
- if (config.visionModel && config.visionModel.trim()) {
41
- return { ref: config.visionModel, effectiveRole: "vision" };
42
- }
43
- return { ref: config.defaultModel, effectiveRole: "default" };
44
- }
45
- if (role === "background") {
46
- return { ref: config.backgroundModel, effectiveRole: "background" };
47
- }
48
- return { ref: config.defaultModel, effectiveRole: "default" };
49
- }
50
- async function resolveRoute(args) {
51
- const { config, role, ingressFormat, llmConfig } = args;
52
- const sessionId = args.sessionId ?? null;
53
- const { ref, effectiveRole } = pickModelRefForRole(config, role);
54
- if (!ref || !ref.trim()) {
55
- return {
56
- ok: false,
57
- error: {
58
- status: 503,
59
- message: `endpoint '${config.endpoint}' has no ${effectiveRole} model configured`
60
- }
61
- };
62
- }
63
- const parsed = parseModelRef(ref);
64
- if (!parsed) {
65
- return {
66
- ok: false,
67
- error: {
68
- status: 503,
69
- message: `endpoint '${config.endpoint}' ${effectiveRole} model ref is malformed: '${ref}'`
70
- }
71
- };
72
- }
73
- const { providerId, modelId } = parsed;
74
- const provider = await llmConfig.getProvider(providerId);
75
- if (!provider) {
76
- if (isSubscriptionProviderId(providerId)) {
77
- return await resolveSubscriptionRoute({
78
- config,
79
- providerId,
80
- modelId,
81
- ingressFormat,
82
- sessionId,
83
- effectiveRole
84
- });
85
- }
86
- return {
87
- ok: false,
88
- error: {
89
- status: 503,
90
- message: `provider '${providerId}' not found for endpoint '${config.endpoint}'`
91
- }
92
- };
93
- }
94
- const isOfficialProvider = provider.isOfficial === true || provider.id === "anthropic";
95
- const targetProviderFormat = isOfficialProvider ? "anthropic" : "transform";
96
- let anthropicSdkHints = null;
97
- if (ingressFormat === "anthropic-messages") {
98
- anthropicSdkHints = {
99
- apiKey: resolveApiKey(provider.api_key),
100
- isOfficialProvider,
101
- passThrough: false,
102
- attribution: { sessionId, apiKeyId: null }
103
- };
104
- }
105
- const route = {
106
- sessionId,
107
- targetProviderFormat,
108
- model: modelId,
109
- ingressFormat,
110
- authMode: "byo",
111
- providerId,
112
- anthropicSdkHints
113
- };
114
- return { ok: true, route, usedRole: effectiveRole };
115
- }
116
- async function resolveSubscriptionRoute(args) {
117
- const { config, providerId, modelId, ingressFormat, sessionId, effectiveRole } = args;
118
- if (!config.useSubscription) {
119
- return {
120
- ok: false,
121
- error: {
122
- status: 503,
123
- message: `subscription routing disabled for endpoint '${config.endpoint}'`
124
- }
125
- };
126
- }
127
- if (!endpointSupportsSubscription(config.endpoint)) {
128
- return {
129
- ok: false,
130
- error: {
131
- status: 503,
132
- message: `subscription routing is not supported on the '${config.endpoint}' endpoint; use a BYO API-key provider, or the /v1/messages or /v1/responses endpoint`
133
- }
134
- };
135
- }
136
- const registry = getSubscriptionRegistryForOutbound();
137
- const profile = registry?.getProfile(providerId) ?? null;
138
- if (!profile) {
139
- return {
140
- ok: false,
141
- error: {
142
- status: 503,
143
- message: `subscription provider '${providerId}' is not available`
144
- }
145
- };
146
- }
147
- const hints = {
148
- apiKey: "",
149
- isOfficialProvider: false,
150
- passThrough: false,
151
- subscriptionProfile: profile,
152
- attribution: { sessionId, apiKeyId: null }
153
- };
154
- const subscriptionConfig = providerId === "opencodego" ? await registry?.getOpenCodeGoConfig?.() : void 0;
155
- const route = {
156
- sessionId,
157
- targetProviderFormat: "transform",
158
- model: modelId,
159
- ingressFormat,
160
- authMode: "subscription",
161
- providerId,
162
- // Anthropic delegation carries the dispatch profile inside
163
- // `anthropicSdkHints.subscriptionProfile`. The Responses ingress reads the
164
- // TOP-LEVEL `route.subscriptionProfile`, and so does the built-in
165
- // (factory-absent) `/v1/messages` subscription path (RT2.1) — the registry's
166
- // `SubscriptionDispatchProfile` structurally satisfies `SubscriptionAuthProfile`
167
- // ({ authStrategy, resolveUpstreamUrl, providerTransformerNames }), so set it
168
- // for BOTH. This is INERT when an Anthropic ingress factory is present: that
169
- // delegation reads the hint-bundle field above (and uses a different
170
- // route-minting path), never the top-level field. (chat/gemini never reach
171
- // here — Gate 2 rejected them.)
172
- subscriptionProfile: ingressFormat === "openai-responses" || ingressFormat === "anthropic-messages" ? profile : void 0,
173
- // Opaque per-account config (opencodego-only; `undefined` otherwise). Read by
174
- // the built-in `/v1/messages` plan builder; INERT for the factory-present
175
- // delegation path + non-opencodego.
176
- subscriptionConfig,
177
- anthropicSdkHints: hints
178
- };
179
- return { ok: true, route, usedRole: effectiveRole };
180
- }
181
- function resolveApiKey(apiKey) {
182
- if (!apiKey) return "";
183
- if (apiKey.startsWith("$")) {
184
- return process.env[apiKey.slice(1)] || "";
185
- }
186
- return apiKey;
187
- }
1
+ import {
2
+ isSubscriptionProviderId,
3
+ parseModelRef,
4
+ pickModelRefFromList,
5
+ resolveRoute
6
+ } from "../chunk-CZHZGRU7.js";
7
+ import "../chunk-AQ5TNQB7.js";
8
+ import "../chunk-XEKD23J5.js";
188
9
  export {
189
10
  isSubscriptionProviderId,
190
11
  parseModelRef,
12
+ pickModelRefFromList,
191
13
  resolveRoute
192
14
  };
@@ -1,38 +1,8 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
19
2
 
20
- // src/outbound-api/subscriptionRegistryPort.ts
21
- var subscriptionRegistryPort_exports = {};
22
- __export(subscriptionRegistryPort_exports, {
23
- getSubscriptionRegistryForOutbound: () => getSubscriptionRegistryForOutbound,
24
- setSubscriptionRegistryForOutbound: () => setSubscriptionRegistryForOutbound
25
- });
26
- module.exports = __toCommonJS(subscriptionRegistryPort_exports);
27
- var _registry = null;
28
- function setSubscriptionRegistryForOutbound(registry) {
29
- _registry = registry;
30
- }
31
- function getSubscriptionRegistryForOutbound() {
32
- return _registry;
33
- }
34
- // Annotate the CommonJS export names for ESM import in node:
35
- 0 && (module.exports = {
36
- getSubscriptionRegistryForOutbound,
37
- setSubscriptionRegistryForOutbound
38
- });
3
+
4
+ var _chunkQBZJ7P2Tcjs = require('../chunk-QBZJ7P2T.cjs');
5
+
6
+
7
+
8
+ exports.getSubscriptionRegistryForOutbound = _chunkQBZJ7P2Tcjs.getSubscriptionRegistryForOutbound; exports.setSubscriptionRegistryForOutbound = _chunkQBZJ7P2Tcjs.setSubscriptionRegistryForOutbound;
@@ -3,8 +3,9 @@ import 'node:http';
3
3
  import '@omnicross/contracts/completion-types';
4
4
  import '@omnicross/contracts/subscription-types';
5
5
  import '@omnicross/contracts/usage-types';
6
- import '../ApiKeyPoolService-BmMkau07.cjs';
6
+ import '../completion/ApiKeyPoolService.cjs';
7
7
  import '@omnicross/contracts/llm-config';
8
+ import '../logger-4GvQNzhE.cjs';
8
9
  import '../pipeline/AuthSource.cjs';
9
10
  import '../pipeline/SubscriptionAuthSource.cjs';
10
11
  import '../pipeline/SubscriptionAuthStrategy.cjs';
@@ -3,8 +3,9 @@ import 'node:http';
3
3
  import '@omnicross/contracts/completion-types';
4
4
  import '@omnicross/contracts/subscription-types';
5
5
  import '@omnicross/contracts/usage-types';
6
- import '../ApiKeyPoolService-BmMkau07.js';
6
+ import '../completion/ApiKeyPoolService.js';
7
7
  import '@omnicross/contracts/llm-config';
8
+ import '../logger-4GvQNzhE.js';
8
9
  import '../pipeline/AuthSource.js';
9
10
  import '../pipeline/SubscriptionAuthSource.js';
10
11
  import '../pipeline/SubscriptionAuthStrategy.js';
@@ -1,11 +1,7 @@
1
- // src/outbound-api/subscriptionRegistryPort.ts
2
- var _registry = null;
3
- function setSubscriptionRegistryForOutbound(registry) {
4
- _registry = registry;
5
- }
6
- function getSubscriptionRegistryForOutbound() {
7
- return _registry;
8
- }
1
+ import {
2
+ getSubscriptionRegistryForOutbound,
3
+ setSubscriptionRegistryForOutbound
4
+ } from "../chunk-AQ5TNQB7.js";
9
5
  export {
10
6
  getSubscriptionRegistryForOutbound,
11
7
  setSubscriptionRegistryForOutbound
@@ -1,18 +1,6 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
15
2
 
16
- // src/outbound-api/types.ts
17
- var types_exports = {};
18
- module.exports = __toCommonJS(types_exports);
3
+ var _chunk4IH4EL7Mcjs = require('../chunk-4IH4EL7M.cjs');
4
+
5
+
6
+ exports.ENDPOINT_MODEL_KINDS = _chunk4IH4EL7Mcjs.ENDPOINT_MODEL_KINDS;