@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
@@ -0,0 +1,88 @@
1
+ import { ProviderConfigSource } from './ports/provider-config-source.cjs';
2
+ import { IngressFormat, RouteContext } from './provider-proxy/types.cjs';
3
+ import { OutboundEndpoint, EndpointRoutingConfig, RequestRole } from './outbound-api/types.cjs';
4
+ import { SubscriptionProviderId } from '@omnicross/contracts/subscription-types';
5
+
6
+ /**
7
+ * subscriptionSupport — single source of truth for (a) which provider ids are
8
+ * subscription-backed and (b) which outbound endpoints can soundly serve a
9
+ * subscription route (`outbound-api-server`, design D2 + review M1/m1).
10
+ *
11
+ * The subscription-id catalog mirrors `SubscriptionProviderRegistry`'s ids; the
12
+ * static fast-path is backstopped at runtime by a live registry lookup (see
13
+ * `isSubscriptionProviderId`) so it degrades gracefully if it drifts. Both
14
+ * `routeResolver` and `apiServerHandlers` import from here — no duplicated set.
15
+ *
16
+ * @module outbound-api/subscriptionSupport
17
+ */
18
+
19
+ /**
20
+ * The registry-aligned subscription provider ids — the outbound layer's SSOT
21
+ * fast-path. NOTE: `SubscriptionProviderId` is currently a `z.string()` alias,
22
+ * so this `readonly SubscriptionProviderId[]` typing does NOT compile-enforce
23
+ * alignment with the registry; drift is instead tolerated at runtime by
24
+ * `isSubscriptionProviderId`'s live `registry.getProfile` fallback.
25
+ */
26
+ declare const SUBSCRIPTION_PROVIDER_IDS: readonly SubscriptionProviderId[];
27
+ /**
28
+ * True when a provider id refers to a subscription-backed provider. Checks the
29
+ * registry-aligned static catalog first, then falls back to a live registry
30
+ * lookup (so a registry addition is honored even before this list is updated).
31
+ *
32
+ * NOTE (review m2): this classifies by id string. The resolver MUST confirm the
33
+ * id does not resolve to a real BYO provider row before treating it as
34
+ * subscription-backed — see `routeResolver` (BYO rows win).
35
+ */
36
+ declare function isSubscriptionProviderId(providerId: string): boolean;
37
+ /** True when the endpoint's ingress can soundly serve a subscription route. */
38
+ declare function endpointSupportsSubscription(endpoint: OutboundEndpoint): boolean;
39
+
40
+ /**
41
+ * routeResolver — turn an endpoint's `EndpointRoutingConfig` + the detected
42
+ * request role into a `RouteContext` for the shared `provider-proxy` dispatch
43
+ * (`outbound-api-server`, design D2).
44
+ *
45
+ * Steps:
46
+ * 1. Pick the model for the role (vision → default fallback when `visionModel`
47
+ * is unset; vision is optional).
48
+ * 2. Parse the chosen `"providerId,modelId"` ref.
49
+ * 3. Gate by `useSubscription`: OFF → only BYO-key providers are eligible
50
+ * (subscription-backed providers excluded); ON → subscription-backed
51
+ * providers are eligible.
52
+ * 4. Resolve the provider (BYO via the `ProviderConfigSource`; subscription via the
53
+ * subscription registry) and build the `RouteContext` exactly as the
54
+ * internal callers do.
55
+ * 5. Return a clear `503`-style error when the role's required model is unset,
56
+ * the provider is unavailable, or the subscription gate excludes it.
57
+ *
58
+ * @module outbound-api/routeResolver
59
+ */
60
+
61
+ /** A 503-style resolution failure. */
62
+ interface RouteResolveError {
63
+ status: number;
64
+ message: string;
65
+ }
66
+ type RouteResolveResult = {
67
+ ok: true;
68
+ route: RouteContext;
69
+ usedRole: RequestRole;
70
+ } | {
71
+ ok: false;
72
+ error: RouteResolveError;
73
+ };
74
+ /** Parse a `"providerId,modelId"` ref. Returns null on a malformed/empty ref. */
75
+ declare function parseModelRef(ref: string | undefined): {
76
+ providerId: string;
77
+ modelId: string;
78
+ } | null;
79
+ /** Resolve a route for one authenticated outbound request. */
80
+ declare function resolveRoute(args: {
81
+ config: EndpointRoutingConfig;
82
+ role: RequestRole;
83
+ ingressFormat: IngressFormat;
84
+ llmConfig: ProviderConfigSource;
85
+ sessionId?: string | null;
86
+ }): Promise<RouteResolveResult>;
87
+
88
+ export { type RouteResolveError as R, SUBSCRIPTION_PROVIDER_IDS as S, type RouteResolveResult as a, endpointSupportsSubscription as e, isSubscriptionProviderId as i, parseModelRef as p, resolveRoute as r };
@@ -0,0 +1,88 @@
1
+ import { ProviderConfigSource } from './ports/provider-config-source.js';
2
+ import { IngressFormat, RouteContext } from './provider-proxy/types.js';
3
+ import { OutboundEndpoint, EndpointRoutingConfig, RequestRole } from './outbound-api/types.js';
4
+ import { SubscriptionProviderId } from '@omnicross/contracts/subscription-types';
5
+
6
+ /**
7
+ * subscriptionSupport — single source of truth for (a) which provider ids are
8
+ * subscription-backed and (b) which outbound endpoints can soundly serve a
9
+ * subscription route (`outbound-api-server`, design D2 + review M1/m1).
10
+ *
11
+ * The subscription-id catalog mirrors `SubscriptionProviderRegistry`'s ids; the
12
+ * static fast-path is backstopped at runtime by a live registry lookup (see
13
+ * `isSubscriptionProviderId`) so it degrades gracefully if it drifts. Both
14
+ * `routeResolver` and `apiServerHandlers` import from here — no duplicated set.
15
+ *
16
+ * @module outbound-api/subscriptionSupport
17
+ */
18
+
19
+ /**
20
+ * The registry-aligned subscription provider ids — the outbound layer's SSOT
21
+ * fast-path. NOTE: `SubscriptionProviderId` is currently a `z.string()` alias,
22
+ * so this `readonly SubscriptionProviderId[]` typing does NOT compile-enforce
23
+ * alignment with the registry; drift is instead tolerated at runtime by
24
+ * `isSubscriptionProviderId`'s live `registry.getProfile` fallback.
25
+ */
26
+ declare const SUBSCRIPTION_PROVIDER_IDS: readonly SubscriptionProviderId[];
27
+ /**
28
+ * True when a provider id refers to a subscription-backed provider. Checks the
29
+ * registry-aligned static catalog first, then falls back to a live registry
30
+ * lookup (so a registry addition is honored even before this list is updated).
31
+ *
32
+ * NOTE (review m2): this classifies by id string. The resolver MUST confirm the
33
+ * id does not resolve to a real BYO provider row before treating it as
34
+ * subscription-backed — see `routeResolver` (BYO rows win).
35
+ */
36
+ declare function isSubscriptionProviderId(providerId: string): boolean;
37
+ /** True when the endpoint's ingress can soundly serve a subscription route. */
38
+ declare function endpointSupportsSubscription(endpoint: OutboundEndpoint): boolean;
39
+
40
+ /**
41
+ * routeResolver — turn an endpoint's `EndpointRoutingConfig` + the detected
42
+ * request role into a `RouteContext` for the shared `provider-proxy` dispatch
43
+ * (`outbound-api-server`, design D2).
44
+ *
45
+ * Steps:
46
+ * 1. Pick the model for the role (vision → default fallback when `visionModel`
47
+ * is unset; vision is optional).
48
+ * 2. Parse the chosen `"providerId,modelId"` ref.
49
+ * 3. Gate by `useSubscription`: OFF → only BYO-key providers are eligible
50
+ * (subscription-backed providers excluded); ON → subscription-backed
51
+ * providers are eligible.
52
+ * 4. Resolve the provider (BYO via the `ProviderConfigSource`; subscription via the
53
+ * subscription registry) and build the `RouteContext` exactly as the
54
+ * internal callers do.
55
+ * 5. Return a clear `503`-style error when the role's required model is unset,
56
+ * the provider is unavailable, or the subscription gate excludes it.
57
+ *
58
+ * @module outbound-api/routeResolver
59
+ */
60
+
61
+ /** A 503-style resolution failure. */
62
+ interface RouteResolveError {
63
+ status: number;
64
+ message: string;
65
+ }
66
+ type RouteResolveResult = {
67
+ ok: true;
68
+ route: RouteContext;
69
+ usedRole: RequestRole;
70
+ } | {
71
+ ok: false;
72
+ error: RouteResolveError;
73
+ };
74
+ /** Parse a `"providerId,modelId"` ref. Returns null on a malformed/empty ref. */
75
+ declare function parseModelRef(ref: string | undefined): {
76
+ providerId: string;
77
+ modelId: string;
78
+ } | null;
79
+ /** Resolve a route for one authenticated outbound request. */
80
+ declare function resolveRoute(args: {
81
+ config: EndpointRoutingConfig;
82
+ role: RequestRole;
83
+ ingressFormat: IngressFormat;
84
+ llmConfig: ProviderConfigSource;
85
+ sessionId?: string | null;
86
+ }): Promise<RouteResolveResult>;
87
+
88
+ export { type RouteResolveError as R, SUBSCRIPTION_PROVIDER_IDS as S, type RouteResolveResult as a, endpointSupportsSubscription as e, isSubscriptionProviderId as i, parseModelRef as p, resolveRoute as r };
@@ -1,82 +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 __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/serializeError.ts
21
- var serializeError_exports = {};
22
- __export(serializeError_exports, {
23
- serializeError: () => serializeError
24
- });
25
- module.exports = __toCommonJS(serializeError_exports);
26
- function serializeError(err) {
27
- if (err == null) return "Unknown error (null)";
28
- if (err instanceof Error) {
29
- let msg = err.message || err.name || "Error";
30
- if (err.cause) {
31
- msg += ` [cause: ${serializeError(err.cause)}]`;
32
- }
33
- const anyErr = err;
34
- if (anyErr.status != null) msg += ` (status: ${anyErr.status})`;
35
- else if (anyErr.code != null) msg += ` (code: ${anyErr.code})`;
36
- return msg;
37
- }
38
- if (typeof err === "string") return err || "Empty error string";
39
- if (typeof err !== "object") return String(err);
40
- const obj = err;
41
- if (typeof obj.message === "string" && obj.message) {
42
- let msg = obj.message;
43
- if (obj.status != null) msg += ` (status: ${obj.status})`;
44
- else if (obj.code != null) msg += ` (code: ${obj.code})`;
45
- if (typeof obj.type === "string") msg += ` [type: ${obj.type}]`;
46
- return msg;
47
- }
48
- if (typeof obj.error === "string" && obj.error) {
49
- return obj.error;
50
- }
51
- if (obj.error && typeof obj.error === "object") {
52
- const inner = obj.error;
53
- if (typeof inner.message === "string" && inner.message) {
54
- let msg = inner.message;
55
- if (typeof inner.type === "string") msg += ` [type: ${inner.type}]`;
56
- return msg;
57
- }
58
- }
59
- try {
60
- const json = JSON.stringify(err, getCircularReplacer(), 2);
61
- if (json && json.length > 1e3) {
62
- return json.slice(0, 1e3) + "... (truncated)";
63
- }
64
- return json || "Unserializable error";
65
- } catch {
66
- return `Unserializable error: ${Object.prototype.toString.call(err)}`;
67
- }
68
- }
69
- function getCircularReplacer() {
70
- const seen = /* @__PURE__ */ new WeakSet();
71
- return (_key, value) => {
72
- if (typeof value === "object" && value !== null) {
73
- if (seen.has(value)) return "[Circular]";
74
- seen.add(value);
75
- }
76
- return value;
77
- };
78
- }
79
- // Annotate the CommonJS export names for ESM import in node:
80
- 0 && (module.exports = {
81
- serializeError
82
- });
3
+ var _chunkSVNDB62Dcjs = require('./chunk-SVNDB62D.cjs');
4
+
5
+
6
+ exports.serializeError = _chunkSVNDB62Dcjs.serializeError;
@@ -1,57 +1,6 @@
1
- // src/serializeError.ts
2
- function serializeError(err) {
3
- if (err == null) return "Unknown error (null)";
4
- if (err instanceof Error) {
5
- let msg = err.message || err.name || "Error";
6
- if (err.cause) {
7
- msg += ` [cause: ${serializeError(err.cause)}]`;
8
- }
9
- const anyErr = err;
10
- if (anyErr.status != null) msg += ` (status: ${anyErr.status})`;
11
- else if (anyErr.code != null) msg += ` (code: ${anyErr.code})`;
12
- return msg;
13
- }
14
- if (typeof err === "string") return err || "Empty error string";
15
- if (typeof err !== "object") return String(err);
16
- const obj = err;
17
- if (typeof obj.message === "string" && obj.message) {
18
- let msg = obj.message;
19
- if (obj.status != null) msg += ` (status: ${obj.status})`;
20
- else if (obj.code != null) msg += ` (code: ${obj.code})`;
21
- if (typeof obj.type === "string") msg += ` [type: ${obj.type}]`;
22
- return msg;
23
- }
24
- if (typeof obj.error === "string" && obj.error) {
25
- return obj.error;
26
- }
27
- if (obj.error && typeof obj.error === "object") {
28
- const inner = obj.error;
29
- if (typeof inner.message === "string" && inner.message) {
30
- let msg = inner.message;
31
- if (typeof inner.type === "string") msg += ` [type: ${inner.type}]`;
32
- return msg;
33
- }
34
- }
35
- try {
36
- const json = JSON.stringify(err, getCircularReplacer(), 2);
37
- if (json && json.length > 1e3) {
38
- return json.slice(0, 1e3) + "... (truncated)";
39
- }
40
- return json || "Unserializable error";
41
- } catch {
42
- return `Unserializable error: ${Object.prototype.toString.call(err)}`;
43
- }
44
- }
45
- function getCircularReplacer() {
46
- const seen = /* @__PURE__ */ new WeakSet();
47
- return (_key, value) => {
48
- if (typeof value === "object" && value !== null) {
49
- if (seen.has(value)) return "[Circular]";
50
- seen.add(value);
51
- }
52
- return value;
53
- };
54
- }
1
+ import {
2
+ serializeError
3
+ } from "./chunk-AVYJ4YBN.js";
55
4
  export {
56
5
  serializeError
57
6
  };