@omnicross/core 0.1.5 → 0.1.6

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 (190) hide show
  1. package/dist/ApiConverter.cjs +2 -2
  2. package/dist/ApiConverter.js +1 -1
  3. package/dist/{CompletionService-DdWaAxq0.d.ts → CompletionService-C3BX0Ovy.d.ts} +4 -3
  4. package/dist/{CompletionService-D3a47vdU.d.cts → CompletionService-kNA17cfI.d.cts} +4 -3
  5. package/dist/auth/GeminiCodeAssistProjectResolver.cjs +6 -5
  6. package/dist/auth/GeminiCodeAssistProjectResolver.js +4 -3
  7. package/dist/{chunk-HRRYG2AX.js → chunk-23S5OPIO.js} +10 -1
  8. package/dist/chunk-25GXJCEZ.cjs +40 -0
  9. package/dist/chunk-2JYRIADS.js +40 -0
  10. package/dist/{chunk-4XMYPW46.cjs → chunk-4VLRHHFE.cjs} +75 -33
  11. package/dist/{chunk-VACWOIRE.cjs → chunk-4VZX5F4T.cjs} +39 -15
  12. package/dist/{chunk-C6OV7GCC.js → chunk-6CL5HTPQ.js} +44 -2
  13. package/dist/chunk-6QQG7YG3.cjs +153 -0
  14. package/dist/{chunk-3Q6Z6JTO.cjs → chunk-6VUQPOV3.cjs} +277 -86
  15. package/dist/chunk-7AK7B36B.cjs +44 -0
  16. package/dist/{chunk-5ZQBEOMD.js → chunk-AT7B7SOZ.js} +25 -2
  17. package/dist/{chunk-IK3KE3AU.js → chunk-DE2SRBFZ.js} +1 -1
  18. package/dist/chunk-DLXZEZWO.cjs +285 -0
  19. package/dist/{chunk-UHGVBFU3.js → chunk-EBLFCNPY.js} +38 -14
  20. package/dist/chunk-EJLH6NFT.cjs +166 -0
  21. package/dist/chunk-HVBBDBS3.cjs +350 -0
  22. package/dist/{chunk-46ZIFWYG.cjs → chunk-IIRPUVPH.cjs} +7 -1
  23. package/dist/{chunk-JWVTXXPX.cjs → chunk-KBM2W6UY.cjs} +8 -4
  24. package/dist/{chunk-PG7PS2NN.cjs → chunk-KCVJWJST.cjs} +14 -2
  25. package/dist/chunk-LB6EBS6Y.js +69 -0
  26. package/dist/{chunk-IWQAX3CS.js → chunk-LVUCAWMK.js} +1 -1
  27. package/dist/chunk-MKF46GNZ.js +350 -0
  28. package/dist/{chunk-HYN75H6G.cjs → chunk-MUHWHQVM.cjs} +1 -1
  29. package/dist/{chunk-MFZ5437A.js → chunk-N5T4M4GU.js} +1 -1
  30. package/dist/{chunk-BODMAL6G.js → chunk-OEWZUX4G.js} +262 -71
  31. package/dist/chunk-OF3BECU2.cjs +69 -0
  32. package/dist/{chunk-DDMRUL76.cjs → chunk-OKMJLEXX.cjs} +5 -5
  33. package/dist/chunk-OPRS4IQZ.js +153 -0
  34. package/dist/{chunk-D3TDKWRP.js → chunk-SIZQQD6T.js} +14 -2
  35. package/dist/{chunk-CGKLE6IW.cjs → chunk-SQYVORNP.cjs} +1219 -510
  36. package/dist/{chunk-6QZGDLL4.js → chunk-TOVPMMHM.js} +5 -1
  37. package/dist/{chunk-FH2P4OCD.js → chunk-UDCC7EMR.js} +976 -267
  38. package/dist/{chunk-ZLX3KGXX.js → chunk-UX7VWA46.js} +135 -23
  39. package/dist/{chunk-K52THW2C.cjs → chunk-V4TXMEJS.cjs} +5 -5
  40. package/dist/chunk-VRFBB5DB.js +44 -0
  41. package/dist/chunk-WB6PH56J.js +166 -0
  42. package/dist/{chunk-G2UTNSGU.js → chunk-WNKWAEUR.js} +7 -1
  43. package/dist/{chunk-SUEGJ75D.cjs → chunk-WYTEQ4Q5.cjs} +25 -2
  44. package/dist/{chunk-5ENKBSWO.js → chunk-YJVHCHQX.js} +42 -6
  45. package/dist/{chunk-VQY5W4YW.cjs → chunk-YK57NMIF.cjs} +44 -8
  46. package/dist/{chunk-KFI44N2R.cjs → chunk-YNJNTCSQ.cjs} +10 -1
  47. package/dist/completion/ApiKeyPoolService.cjs +12 -0
  48. package/dist/completion/ApiKeyPoolService.d.cts +6 -0
  49. package/dist/completion/ApiKeyPoolService.d.ts +6 -0
  50. package/dist/completion/ApiKeyPoolService.js +12 -0
  51. package/dist/completion/CompletionService.cjs +25 -23
  52. package/dist/completion/CompletionService.d.cts +2 -1
  53. package/dist/completion/CompletionService.d.ts +2 -1
  54. package/dist/completion/CompletionService.js +24 -22
  55. package/dist/completion.cjs +25 -23
  56. package/dist/completion.d.cts +2 -1
  57. package/dist/completion.d.ts +2 -1
  58. package/dist/completion.js +24 -22
  59. package/dist/index.cjs +49 -26
  60. package/dist/index.d.cts +8 -8
  61. package/dist/index.d.ts +8 -8
  62. package/dist/index.js +52 -29
  63. package/dist/{keyPolicy-Cp0FntZl.d.ts → keyPolicy-zdWTu3CQ.d.cts} +1 -1
  64. package/dist/{keyPolicy-Cp0FntZl.d.cts → keyPolicy-zdWTu3CQ.d.ts} +1 -1
  65. package/dist/outbound-api/quotaWarn.d.cts +1 -1
  66. package/dist/outbound-api/quotaWarn.d.ts +1 -1
  67. package/dist/outbound-api/routeResolver.cjs +2 -2
  68. package/dist/outbound-api/routeResolver.d.cts +4 -3
  69. package/dist/outbound-api/routeResolver.d.ts +4 -3
  70. package/dist/outbound-api/routeResolver.js +1 -1
  71. package/dist/outbound-api/subscriptionRegistryPort.d.cts +1 -0
  72. package/dist/outbound-api/subscriptionRegistryPort.d.ts +1 -0
  73. package/dist/outbound-api/types.d.cts +3 -2
  74. package/dist/outbound-api/types.d.ts +3 -2
  75. package/dist/outbound-api.cjs +47 -24
  76. package/dist/outbound-api.d.cts +127 -85
  77. package/dist/outbound-api.d.ts +127 -85
  78. package/dist/outbound-api.js +50 -27
  79. package/dist/pipeline/AccountAllowanceScheduling.cjs +15 -0
  80. package/dist/pipeline/AccountAllowanceScheduling.d.cts +90 -0
  81. package/dist/pipeline/AccountAllowanceScheduling.d.ts +90 -0
  82. package/dist/pipeline/AccountAllowanceScheduling.js +15 -0
  83. package/dist/pipeline/AccountAllowanceStore.cjs +20 -0
  84. package/dist/pipeline/AccountAllowanceStore.d.cts +77 -0
  85. package/dist/pipeline/AccountAllowanceStore.d.ts +77 -0
  86. package/dist/pipeline/AccountAllowanceStore.js +20 -0
  87. package/dist/pipeline/AuthSource.d.cts +11 -2
  88. package/dist/pipeline/AuthSource.d.ts +11 -2
  89. package/dist/pipeline/BoundAccountSelectionError.cjs +10 -0
  90. package/dist/pipeline/BoundAccountSelectionError.d.cts +28 -0
  91. package/dist/pipeline/BoundAccountSelectionError.d.ts +28 -0
  92. package/dist/pipeline/BoundAccountSelectionError.js +10 -0
  93. package/dist/pipeline/LlmConfigProviderAuth.d.cts +1 -0
  94. package/dist/pipeline/LlmConfigProviderAuth.d.ts +1 -0
  95. package/dist/pipeline/SubscriptionAccountHealth.cjs +4 -2
  96. package/dist/pipeline/SubscriptionAccountHealth.d.cts +34 -6
  97. package/dist/pipeline/SubscriptionAccountHealth.d.ts +34 -6
  98. package/dist/pipeline/SubscriptionAccountHealth.js +3 -1
  99. package/dist/pipeline/SubscriptionAuthSource.cjs +5 -2
  100. package/dist/pipeline/SubscriptionAuthSource.d.cts +1 -0
  101. package/dist/pipeline/SubscriptionAuthSource.d.ts +1 -0
  102. package/dist/pipeline/SubscriptionAuthSource.js +4 -1
  103. package/dist/pipeline/SubscriptionAuthStrategy.d.cts +8 -3
  104. package/dist/pipeline/SubscriptionAuthStrategy.d.ts +8 -3
  105. package/dist/pipeline/executeProviderCall.cjs +2 -2
  106. package/dist/pipeline/executeProviderCall.d.cts +8 -3
  107. package/dist/pipeline/executeProviderCall.d.ts +8 -3
  108. package/dist/pipeline/executeProviderCall.js +1 -1
  109. package/dist/pipeline/resolveProviderChain.d.cts +2 -3
  110. package/dist/pipeline/resolveProviderChain.d.ts +2 -3
  111. package/dist/pipeline/resolveSubscriptionChain.d.cts +1 -0
  112. package/dist/pipeline/resolveSubscriptionChain.d.ts +1 -0
  113. package/dist/pipeline/upstreamFetch.cjs +3 -2
  114. package/dist/pipeline/upstreamFetch.js +2 -1
  115. package/dist/ports/pricing-store.d.cts +4 -3
  116. package/dist/ports/pricing-store.d.ts +4 -3
  117. package/dist/ports.d.cts +4 -3
  118. package/dist/ports.d.ts +4 -3
  119. package/dist/provider-proxy/ProviderProxy.cjs +25 -23
  120. package/dist/provider-proxy/ProviderProxy.d.cts +1 -0
  121. package/dist/provider-proxy/ProviderProxy.d.ts +1 -0
  122. package/dist/provider-proxy/ProviderProxy.js +24 -22
  123. package/dist/provider-proxy/ingress/providerProxyShared.cjs +27 -23
  124. package/dist/provider-proxy/ingress/providerProxyShared.d.cts +34 -5
  125. package/dist/provider-proxy/ingress/providerProxyShared.d.ts +34 -5
  126. package/dist/provider-proxy/ingress/providerProxyShared.js +26 -22
  127. package/dist/provider-proxy/matchText.cjs +4 -2
  128. package/dist/provider-proxy/matchText.d.cts +41 -6
  129. package/dist/provider-proxy/matchText.d.ts +41 -6
  130. package/dist/provider-proxy/matchText.js +3 -1
  131. package/dist/provider-proxy/types.d.cts +30 -2
  132. package/dist/provider-proxy/types.d.ts +30 -2
  133. package/dist/provider-proxy.cjs +25 -23
  134. package/dist/provider-proxy.d.cts +1 -0
  135. package/dist/provider-proxy.d.ts +1 -0
  136. package/dist/provider-proxy.js +24 -22
  137. package/dist/{routeResolver-C4T7yClx.d.ts → routeResolver-CHTv_Bs5.d.ts} +1 -1
  138. package/dist/{routeResolver-CB3tvJKy.d.cts → routeResolver-kepxnfcC.d.cts} +1 -1
  139. package/dist/transformer/TransformerChainExecutor.cjs +2 -2
  140. package/dist/transformer/TransformerChainExecutor.js +1 -1
  141. package/dist/transformer/transformers/AnthropicTransformer.cjs +2 -2
  142. package/dist/transformer/transformers/AnthropicTransformer.js +1 -1
  143. package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +3 -3
  144. package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +2 -2
  145. package/dist/transformer/transformers/GeminiTransformer.cjs +3 -3
  146. package/dist/transformer/transformers/GeminiTransformer.js +2 -2
  147. package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +2 -2
  148. package/dist/transformer/transformers/OpenAIResponseTransformer.d.cts +1 -1
  149. package/dist/transformer/transformers/OpenAIResponseTransformer.d.ts +1 -1
  150. package/dist/transformer/transformers/OpenAIResponseTransformer.js +1 -1
  151. package/dist/transformer/transformers/OpenAITransformer.cjs +6 -0
  152. package/dist/transformer/transformers/OpenAITransformer.d.cts +68 -0
  153. package/dist/transformer/transformers/OpenAITransformer.d.ts +68 -0
  154. package/dist/transformer/transformers/OpenAITransformer.js +6 -0
  155. package/dist/transformer/transformers.cjs +8 -14
  156. package/dist/transformer/transformers.d.cts +12 -48
  157. package/dist/transformer/transformers.d.ts +12 -48
  158. package/dist/transformer/transformers.js +12 -18
  159. package/dist/transformer/types.d.cts +17 -0
  160. package/dist/transformer/types.d.ts +17 -0
  161. package/dist/transformer.cjs +10 -11
  162. package/dist/transformer.d.cts +1 -2
  163. package/dist/transformer.d.ts +1 -2
  164. package/dist/transformer.js +9 -10
  165. package/dist/{types-B8Arpxn0.d.cts → types-H3wGZSOo.d.cts} +134 -7
  166. package/dist/{types-lgPYQuZS.d.ts → types-hsoKrVQS.d.ts} +134 -7
  167. package/dist/usage/pricing-engine.cjs +2 -2
  168. package/dist/usage/pricing-engine.d.cts +9 -1
  169. package/dist/usage/pricing-engine.d.ts +9 -1
  170. package/dist/usage/pricing-engine.js +1 -1
  171. package/dist/usage.cjs +2 -2
  172. package/dist/usage.js +1 -1
  173. package/package.json +1 -1
  174. package/dist/chunk-7FEBOPJO.cjs +0 -50
  175. package/dist/chunk-DWKQZ2SK.cjs +0 -254
  176. package/dist/chunk-IAXWICZU.js +0 -69
  177. package/dist/chunk-IB3FDI4O.js +0 -50
  178. package/dist/chunk-OQWKZCXP.js +0 -242
  179. package/dist/chunk-QWBWGODS.cjs +0 -69
  180. package/dist/chunk-YMFAJFQT.cjs +0 -173
  181. package/dist/chunk-ZCIQ3L3R.cjs +0 -242
  182. package/dist/chunk-ZJZAOKI7.js +0 -254
  183. package/dist/transformer/transformers/OpenCodeGoTransformer.cjs +0 -6
  184. package/dist/transformer/transformers/OpenCodeGoTransformer.d.cts +0 -51
  185. package/dist/transformer/transformers/OpenCodeGoTransformer.d.ts +0 -51
  186. package/dist/transformer/transformers/OpenCodeGoTransformer.js +0 -6
  187. package/dist/transformer/transformers/ReasoningTransformer.cjs +0 -6
  188. package/dist/transformer/transformers/ReasoningTransformer.d.cts +0 -47
  189. package/dist/transformer/transformers/ReasoningTransformer.d.ts +0 -47
  190. package/dist/transformer/transformers/ReasoningTransformer.js +0 -6
@@ -27,9 +27,9 @@
27
27
  declare const OVERLOAD_TTL_MS: number;
28
28
  /** 529 overload cooldown enabled by default (LEAD OQ1). */
29
29
  declare const OVERLOAD_ENABLED_DEFAULT = true;
30
- /** Transient cooldown for a final-401 / plain-403 (CRS auth_error 1800s). */
30
+ /** Transient cooldown for a final 401 or non-ban 403 response. */
31
31
  declare const AUTH_ERROR_TTL_MS: number;
32
- /** Transient cooldown for a 5xx / thrown network failure (CRS server_error 300s). */
32
+ /** Transient cooldown for a 5xx response or network failure. */
33
33
  declare const SERVER_ERROR_TTL_MS: number;
34
34
  /** Per-account health record (all timers are epoch ms). Absent fields ⇒ healthy. */
35
35
  interface HealthRecord {
@@ -89,6 +89,30 @@ interface AccountAnomalyEvent {
89
89
  }
90
90
  /** An anomaly listener (fire-and-forget; the emitter never awaits it). */
91
91
  type AccountAnomalyListener = (event: AccountAnomalyEvent) => void;
92
+ /**
93
+ * Admin-readable projection of the existing health event stream. It is kept in
94
+ * the tracker itself so webhooks and diagnostics consume the same edge events;
95
+ * this is not a second marking/event mechanism. Only opaque ids, timestamps,
96
+ * and coarse states are retained.
97
+ */
98
+ type AccountHealthDiagnostic = {
99
+ kind: 'health-anomaly';
100
+ providerId: string;
101
+ accountId: string;
102
+ at: number;
103
+ state: AccountAnomalyState;
104
+ } | {
105
+ kind: 'health-recovery';
106
+ providerId: string;
107
+ accountId: string;
108
+ at: number;
109
+ };
110
+ interface AccountHealthDiagnosticFilter {
111
+ providerId?: string;
112
+ accountId?: string;
113
+ limit?: number;
114
+ }
115
+ declare const ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT = 200;
92
116
  /** The inputs one upstream attempt contributes to health marking (design D3). */
93
117
  interface RecordUpstreamOutcomeInput {
94
118
  /** The final HTTP status, or `null` for a thrown / network failure. */
@@ -134,6 +158,7 @@ declare class SubscriptionAccountHealth {
134
158
  private readonly records;
135
159
  private readonly listeners;
136
160
  private readonly anomalyListeners;
161
+ private readonly diagnostics;
137
162
  private readonly now;
138
163
  private overloadEnabled;
139
164
  private overloadTtlMs;
@@ -150,14 +175,14 @@ declare class SubscriptionAccountHealth {
150
175
  configure(opts: Pick<SubscriptionAccountHealthOptions, 'overloadEnabled' | 'overloadTtlMs' | 'authErrorTtlMs' | 'serverErrorTtlMs'>): void;
151
176
  /**
152
177
  * Whether an account may be scheduled RIGHT NOW. `blocked` → false; any timer
153
- * still in the future → false. Expired timers are lazily deleted on read (CRS
154
- * lazy-clear parity) so an elapsed cooldown restores the account WITHOUT a
178
+ * still in the future → false. Expired timers are lazily deleted on read so
179
+ * an elapsed cooldown restores the account WITHOUT a
155
180
  * timer — but the recovery SIGNAL is the sweeper's job (`sweepRecoveries`), so
156
181
  * this read never emits (correctness is independent of the tick).
157
182
  */
158
183
  isSchedulable(providerId: string, accountId: string, now?: number): boolean;
159
184
  /**
160
- * The single marking entry point (design D3). Faithful to CRS status semantics:
185
+ * The single marking entry point (design D3):
161
186
  * - 429 + authoritative reset → `rateLimitEndAt`; a non-claude 429 may use
162
187
  * `retryAfterSeconds`; a bare 429 (no resolvable reset) is NOT marked;
163
188
  * - 529 → `overloadUntil` (gated by `overloadEnabled`);
@@ -194,6 +219,8 @@ declare class SubscriptionAccountHealth {
194
219
  sweepRecoveries(now?: number): AccountRecoveryEvent[];
195
220
  /** Admin-facing coarse status + cooldown-until for one account (secret-free). */
196
221
  getStatus(providerId: string, accountId: string, now?: number): AccountHealthStatus;
222
+ /** Return newest-first, bounded, secret-free health edge diagnostics. */
223
+ getDiagnostics(filter?: AccountHealthDiagnosticFilter): AccountHealthDiagnostic[];
197
224
  /**
198
225
  * Register a recovery listener (the OQ3 seam #5 webhooks + #8 health-cron
199
226
  * consume). Returns an unsubscribe function. Two edges fire it:
@@ -216,6 +243,7 @@ declare class SubscriptionAccountHealth {
216
243
  */
217
244
  onAnomaly(listener: AccountAnomalyListener): () => void;
218
245
  private emitAnomaly;
246
+ private recordDiagnostic;
219
247
  /**
220
248
  * Delete every EXPIRED timer field on the record in place; return whether any
221
249
  * timer is STILL active (in the future). `blocked` is not a timer and is left
@@ -232,4 +260,4 @@ declare function setSharedAccountHealth(instance: SubscriptionAccountHealth): vo
232
260
  /** Reset the shared singleton (tests / teardown only). */
233
261
  declare function __resetSharedAccountHealthForTests(): void;
234
262
 
235
- export { AUTH_ERROR_TTL_MS, type AccountAnomalyEvent, type AccountAnomalyListener, type AccountAnomalyState, type AccountHealthState, type AccountHealthStatus, type AccountRecoveryEvent, type AccountRecoveryListener, type HeadersLike, type HealthRecord, OVERLOAD_ENABLED_DEFAULT, OVERLOAD_TTL_MS, type RecordUpstreamOutcomeInput, SERVER_ERROR_TTL_MS, SubscriptionAccountHealth, type SubscriptionAccountHealthOptions, __resetSharedAccountHealthForTests, getSharedAccountHealth, resolveResetSeconds, setSharedAccountHealth };
263
+ export { ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT, AUTH_ERROR_TTL_MS, type AccountAnomalyEvent, type AccountAnomalyListener, type AccountAnomalyState, type AccountHealthDiagnostic, type AccountHealthDiagnosticFilter, type AccountHealthState, type AccountHealthStatus, type AccountRecoveryEvent, type AccountRecoveryListener, type HeadersLike, type HealthRecord, OVERLOAD_ENABLED_DEFAULT, OVERLOAD_TTL_MS, type RecordUpstreamOutcomeInput, SERVER_ERROR_TTL_MS, SubscriptionAccountHealth, type SubscriptionAccountHealthOptions, __resetSharedAccountHealthForTests, getSharedAccountHealth, resolveResetSeconds, setSharedAccountHealth };
@@ -1,4 +1,5 @@
1
1
  import {
2
+ ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT,
2
3
  AUTH_ERROR_TTL_MS,
3
4
  OVERLOAD_ENABLED_DEFAULT,
4
5
  OVERLOAD_TTL_MS,
@@ -8,8 +9,9 @@ import {
8
9
  getSharedAccountHealth,
9
10
  resolveResetSeconds,
10
11
  setSharedAccountHealth
11
- } from "../chunk-5ENKBSWO.js";
12
+ } from "../chunk-YJVHCHQX.js";
12
13
  export {
14
+ ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT,
13
15
  AUTH_ERROR_TTL_MS,
14
16
  OVERLOAD_ENABLED_DEFAULT,
15
17
  OVERLOAD_TTL_MS,
@@ -1,9 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkKFI44N2Rcjs = require('../chunk-KFI44N2R.cjs');
4
+ var _chunkYNJNTCSQcjs = require('../chunk-YNJNTCSQ.cjs');
5
5
  require('../chunk-SVNDB62D.cjs');
6
+ require('../chunk-6QQG7YG3.cjs');
7
+ require('../chunk-25GXJCEZ.cjs');
8
+ require('../chunk-HVBBDBS3.cjs');
6
9
 
7
10
 
8
11
 
9
- exports.SubscriptionAuthSource = _chunkKFI44N2Rcjs.SubscriptionAuthSource; exports.stripAuthHeaders = _chunkKFI44N2Rcjs.stripAuthHeaders;
12
+ exports.SubscriptionAuthSource = _chunkYNJNTCSQcjs.SubscriptionAuthSource; exports.stripAuthHeaders = _chunkYNJNTCSQcjs.stripAuthHeaders;
@@ -1,6 +1,7 @@
1
1
  import { OpenCodeGoTokenConfig, OpenCodeGoScenario, OpenCodeGoModelEntry } from '@omnicross/contracts/subscription-types';
2
2
  import { AuthSource, AuthApplyHints } from './AuthSource.cjs';
3
3
  import { AuthStrategy } from './SubscriptionAuthStrategy.cjs';
4
+ import './BoundAccountSelectionError.cjs';
4
5
 
5
6
  /**
6
7
  * SubscriptionAuthSource — `AuthSource` wrapping a subscription `AuthStrategy`.
@@ -1,6 +1,7 @@
1
1
  import { OpenCodeGoTokenConfig, OpenCodeGoScenario, OpenCodeGoModelEntry } from '@omnicross/contracts/subscription-types';
2
2
  import { AuthSource, AuthApplyHints } from './AuthSource.js';
3
3
  import { AuthStrategy } from './SubscriptionAuthStrategy.js';
4
+ import './BoundAccountSelectionError.js';
4
5
 
5
6
  /**
6
7
  * SubscriptionAuthSource — `AuthSource` wrapping a subscription `AuthStrategy`.
@@ -1,8 +1,11 @@
1
1
  import {
2
2
  SubscriptionAuthSource,
3
3
  stripAuthHeaders
4
- } from "../chunk-HRRYG2AX.js";
4
+ } from "../chunk-23S5OPIO.js";
5
5
  import "../chunk-AVYJ4YBN.js";
6
+ import "../chunk-OPRS4IQZ.js";
7
+ import "../chunk-2JYRIADS.js";
8
+ import "../chunk-MKF46GNZ.js";
6
9
  export {
7
10
  SubscriptionAuthSource,
8
11
  stripAuthHeaders
@@ -1,4 +1,5 @@
1
1
  import { SubscriptionProviderId, SubscriptionStatusEntry } from '@omnicross/contracts/subscription-types';
2
+ import { BoundAccountFallbackPolicy } from './BoundAccountSelectionError.cjs';
2
3
 
3
4
  /**
4
5
  * SubscriptionAuthStrategy — the pluggable subscription-auth contract, defined
@@ -51,10 +52,14 @@ interface AuthApplyHints {
51
52
  reportSelection?: (accountId: string, isActive: boolean, remappedModel?: string) => void;
52
53
  /**
53
54
  * OPTIONAL preferred subscription account id (provider/subscription duality).
54
- * When set and schedulable the account picker resolves it directly; absent or
55
- * unschedulable pool auto-schedule.
55
+ * When set, strict is the default; only the explicit `'pool'` policy permits
56
+ * pool fallback. Absent bindings keep pool auto-scheduling.
56
57
  */
57
58
  preferredAccountId?: string;
59
+ /** Optional account group selected by a resource-level gateway binding. */
60
+ preferredAccountGroup?: string;
61
+ /** `'pool'` is an explicit opt-in; strict is the default for bindings. */
62
+ boundAccountFallbackPolicy?: BoundAccountFallbackPolicy;
58
63
  }
59
64
  interface AuthStrategy {
60
65
  /** Discriminator — also surfaced through `subscription:list` to renderers. */
@@ -87,4 +92,4 @@ interface AuthStrategy {
87
92
  describeStatus(): Promise<SubscriptionStatusEntry>;
88
93
  }
89
94
 
90
- export type { AuthApplyHints, AuthStrategy };
95
+ export { type AuthApplyHints, type AuthStrategy, BoundAccountFallbackPolicy };
@@ -1,4 +1,5 @@
1
1
  import { SubscriptionProviderId, SubscriptionStatusEntry } from '@omnicross/contracts/subscription-types';
2
+ import { BoundAccountFallbackPolicy } from './BoundAccountSelectionError.js';
2
3
 
3
4
  /**
4
5
  * SubscriptionAuthStrategy — the pluggable subscription-auth contract, defined
@@ -51,10 +52,14 @@ interface AuthApplyHints {
51
52
  reportSelection?: (accountId: string, isActive: boolean, remappedModel?: string) => void;
52
53
  /**
53
54
  * OPTIONAL preferred subscription account id (provider/subscription duality).
54
- * When set and schedulable the account picker resolves it directly; absent or
55
- * unschedulable pool auto-schedule.
55
+ * When set, strict is the default; only the explicit `'pool'` policy permits
56
+ * pool fallback. Absent bindings keep pool auto-scheduling.
56
57
  */
57
58
  preferredAccountId?: string;
59
+ /** Optional account group selected by a resource-level gateway binding. */
60
+ preferredAccountGroup?: string;
61
+ /** `'pool'` is an explicit opt-in; strict is the default for bindings. */
62
+ boundAccountFallbackPolicy?: BoundAccountFallbackPolicy;
58
63
  }
59
64
  interface AuthStrategy {
60
65
  /** Discriminator — also surfaced through `subscription:list` to renderers. */
@@ -87,4 +92,4 @@ interface AuthStrategy {
87
92
  describeStatus(): Promise<SubscriptionStatusEntry>;
88
93
  }
89
94
 
90
- export type { AuthApplyHints, AuthStrategy };
95
+ export { type AuthApplyHints, type AuthStrategy, BoundAccountFallbackPolicy };
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkHYN75H6Gcjs = require('../chunk-HYN75H6G.cjs');
3
+ var _chunkMUHWHQVMcjs = require('../chunk-MUHWHQVM.cjs');
4
4
 
5
5
 
6
- exports.executeProviderCall = _chunkHYN75H6Gcjs.executeProviderCall;
6
+ exports.executeProviderCall = _chunkMUHWHQVMcjs.executeProviderCall;
@@ -101,8 +101,9 @@ interface ProviderCallContext {
101
101
  */
102
102
  fetchFn: (url: string, headers: Record<string, string>, body: unknown) => Promise<Response>;
103
103
  /**
104
- * When `true`, the core runs `executeResponseChain` on the fetched
105
- * response and returns the TRANSFORMED response. When `false` (default),
104
+ * When `true`, the core runs `executeResponseChain` on a SUCCESSFUL fetched
105
+ * response and returns the TRANSFORMED response; a failed (`!response.ok`)
106
+ * response is returned raw so its status and error body survive. When `false` (default),
106
107
  * the core returns the RAW fetched response and the caller runs the
107
108
  * response chain itself — this preserves call sites that gate on
108
109
  * `response.ok` BEFORE the response chain (Adapter / Handler).
@@ -127,7 +128,11 @@ interface ProviderCallContext {
127
128
  * before, and so the wire-capture / logging hooks keep their inputs.
128
129
  */
129
130
  interface ProviderCallResult {
130
- /** Transformed response (runResponseChain=true) or raw response (false). */
131
+ /**
132
+ * Transformed response (runResponseChain=true AND the upstream response was
133
+ * `ok`), otherwise the RAW fetched response — see the `.ok` gate in the
134
+ * implementation for why failures are never transformed.
135
+ */
131
136
  response: Response;
132
137
  /** Request-chain output body (pre-`prepareBody`). */
133
138
  requestBody: unknown;
@@ -101,8 +101,9 @@ interface ProviderCallContext {
101
101
  */
102
102
  fetchFn: (url: string, headers: Record<string, string>, body: unknown) => Promise<Response>;
103
103
  /**
104
- * When `true`, the core runs `executeResponseChain` on the fetched
105
- * response and returns the TRANSFORMED response. When `false` (default),
104
+ * When `true`, the core runs `executeResponseChain` on a SUCCESSFUL fetched
105
+ * response and returns the TRANSFORMED response; a failed (`!response.ok`)
106
+ * response is returned raw so its status and error body survive. When `false` (default),
106
107
  * the core returns the RAW fetched response and the caller runs the
107
108
  * response chain itself — this preserves call sites that gate on
108
109
  * `response.ok` BEFORE the response chain (Adapter / Handler).
@@ -127,7 +128,11 @@ interface ProviderCallContext {
127
128
  * before, and so the wire-capture / logging hooks keep their inputs.
128
129
  */
129
130
  interface ProviderCallResult {
130
- /** Transformed response (runResponseChain=true) or raw response (false). */
131
+ /**
132
+ * Transformed response (runResponseChain=true AND the upstream response was
133
+ * `ok`), otherwise the RAW fetched response — see the `.ok` gate in the
134
+ * implementation for why failures are never transformed.
135
+ */
131
136
  response: Response;
132
137
  /** Request-chain output body (pre-`prepareBody`). */
133
138
  requestBody: unknown;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  executeProviderCall
3
- } from "../chunk-IK3KE3AU.js";
3
+ } from "../chunk-DE2SRBFZ.js";
4
4
  export {
5
5
  executeProviderCall
6
6
  };
@@ -13,9 +13,8 @@ import '../transformer/TransformerService.cjs';
13
13
  * block verbatim. This module extracts that single shared helper so the
14
14
  * logic lives in exactly one place.
15
15
  *
16
- * IMPORTANT: body mutations that are proxy-specific (ReasoningTransformer
17
- * auto-inject, thinkingLevel body-inject) are NOT part of this helper —
18
- * they remain at each call site as before.
16
+ * IMPORTANT: body mutations that are proxy-specific (thinkingLevel body-inject)
17
+ * are NOT part of this helper — they remain at each call site as before.
19
18
  *
20
19
  * @module pipeline/resolveProviderChain
21
20
  */
@@ -13,9 +13,8 @@ import '../transformer/TransformerService.js';
13
13
  * block verbatim. This module extracts that single shared helper so the
14
14
  * logic lives in exactly one place.
15
15
  *
16
- * IMPORTANT: body mutations that are proxy-specific (ReasoningTransformer
17
- * auto-inject, thinkingLevel body-inject) are NOT part of this helper —
18
- * they remain at each call site as before.
16
+ * IMPORTANT: body mutations that are proxy-specific (thinkingLevel body-inject)
17
+ * are NOT part of this helper — they remain at each call site as before.
19
18
  *
20
19
  * @module pipeline/resolveProviderChain
21
20
  */
@@ -3,6 +3,7 @@ import { Transformer, ResolvedTransformerChain } from '../transformer/types.cjs'
3
3
  import { SubscriptionAuthProfile } from './SubscriptionAuthSource.cjs';
4
4
  import '@omnicross/contracts/subscription-types';
5
5
  import './AuthSource.cjs';
6
+ import './BoundAccountSelectionError.cjs';
6
7
  import './SubscriptionAuthStrategy.cjs';
7
8
 
8
9
  /**
@@ -3,6 +3,7 @@ import { Transformer, ResolvedTransformerChain } from '../transformer/types.js';
3
3
  import { SubscriptionAuthProfile } from './SubscriptionAuthSource.js';
4
4
  import '@omnicross/contracts/subscription-types';
5
5
  import './AuthSource.js';
6
+ import './BoundAccountSelectionError.js';
6
7
  import './SubscriptionAuthStrategy.js';
7
8
 
8
9
  /**
@@ -4,12 +4,13 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkPG7PS2NNcjs = require('../chunk-PG7PS2NN.cjs');
7
+ var _chunkKCVJWJSTcjs = require('../chunk-KCVJWJST.cjs');
8
8
  require('../chunk-3Z5BQZFM.cjs');
9
+ require('../chunk-HVBBDBS3.cjs');
9
10
 
10
11
 
11
12
 
12
13
 
13
14
 
14
15
 
15
- exports.__resetUpstreamProxyForTests = _chunkPG7PS2NNcjs.__resetUpstreamProxyForTests; exports.bumpUpstreamProxyGeneration = _chunkPG7PS2NNcjs.bumpUpstreamProxyGeneration; exports.fetchUpstream = _chunkPG7PS2NNcjs.fetchUpstream; exports.resolveUpstreamDispatcher = _chunkPG7PS2NNcjs.resolveUpstreamDispatcher; exports.setUpstreamProxyResolver = _chunkPG7PS2NNcjs.setUpstreamProxyResolver;
16
+ exports.__resetUpstreamProxyForTests = _chunkKCVJWJSTcjs.__resetUpstreamProxyForTests; exports.bumpUpstreamProxyGeneration = _chunkKCVJWJSTcjs.bumpUpstreamProxyGeneration; exports.fetchUpstream = _chunkKCVJWJSTcjs.fetchUpstream; exports.resolveUpstreamDispatcher = _chunkKCVJWJSTcjs.resolveUpstreamDispatcher; exports.setUpstreamProxyResolver = _chunkKCVJWJSTcjs.setUpstreamProxyResolver;
@@ -4,8 +4,9 @@ import {
4
4
  fetchUpstream,
5
5
  resolveUpstreamDispatcher,
6
6
  setUpstreamProxyResolver
7
- } from "../chunk-D3TDKWRP.js";
7
+ } from "../chunk-SIZQQD6T.js";
8
8
  import "../chunk-SYQF7OIR.js";
9
+ import "../chunk-MKF46GNZ.js";
9
10
  export {
10
11
  __resetUpstreamProxyForTests,
11
12
  bumpUpstreamProxyGeneration,
@@ -1,4 +1,4 @@
1
- import { PricingEntry, PricingEntryInput, PricingResolution } from '@omnicross/contracts/pricing-types';
1
+ import { PricingSource, PricingEntry, PricingEntryInput, PricingResolution } from '@omnicross/contracts/pricing-types';
2
2
 
3
3
  /**
4
4
  * `PricingStore` — core-owned port for pricing-row persistence.
@@ -11,6 +11,7 @@ import { PricingEntry, PricingEntryInput, PricingResolution } from '@omnicross/c
11
11
  * @module ports/pricing-store
12
12
  */
13
13
 
14
+ type AutomaticPricingSource = Extract<PricingSource, 'litellm' | 'openrouter'>;
14
15
  interface PricingStore {
15
16
  /** Return every pricing row. The engine caches the full table in memory. */
16
17
  getAll(): Promise<PricingEntry[]>;
@@ -29,7 +30,7 @@ interface PricingStore {
29
30
  * left untouched and returned in `conflicts` as `{ current, incoming }`
30
31
  * pairs for per-row resolution by the user.
31
32
  */
32
- bulkApplyFromSource(entries: PricingEntryInput[]): Promise<{
33
+ bulkApplyFromSource(entries: PricingEntryInput[], source?: AutomaticPricingSource): Promise<{
33
34
  applied: PricingEntry[];
34
35
  conflicts: Array<{
35
36
  current: PricingEntry;
@@ -47,4 +48,4 @@ interface PricingStore {
47
48
  }>): Promise<PricingResolution>;
48
49
  }
49
50
 
50
- export type { PricingStore };
51
+ export type { AutomaticPricingSource, PricingStore };
@@ -1,4 +1,4 @@
1
- import { PricingEntry, PricingEntryInput, PricingResolution } from '@omnicross/contracts/pricing-types';
1
+ import { PricingSource, PricingEntry, PricingEntryInput, PricingResolution } from '@omnicross/contracts/pricing-types';
2
2
 
3
3
  /**
4
4
  * `PricingStore` — core-owned port for pricing-row persistence.
@@ -11,6 +11,7 @@ import { PricingEntry, PricingEntryInput, PricingResolution } from '@omnicross/c
11
11
  * @module ports/pricing-store
12
12
  */
13
13
 
14
+ type AutomaticPricingSource = Extract<PricingSource, 'litellm' | 'openrouter'>;
14
15
  interface PricingStore {
15
16
  /** Return every pricing row. The engine caches the full table in memory. */
16
17
  getAll(): Promise<PricingEntry[]>;
@@ -29,7 +30,7 @@ interface PricingStore {
29
30
  * left untouched and returned in `conflicts` as `{ current, incoming }`
30
31
  * pairs for per-row resolution by the user.
31
32
  */
32
- bulkApplyFromSource(entries: PricingEntryInput[]): Promise<{
33
+ bulkApplyFromSource(entries: PricingEntryInput[], source?: AutomaticPricingSource): Promise<{
33
34
  applied: PricingEntry[];
34
35
  conflicts: Array<{
35
36
  current: PricingEntry;
@@ -47,4 +48,4 @@ interface PricingStore {
47
48
  }>): Promise<PricingResolution>;
48
49
  }
49
50
 
50
- export type { PricingStore };
51
+ export type { AutomaticPricingSource, PricingStore };
package/dist/ports.d.cts CHANGED
@@ -1,11 +1,11 @@
1
1
  export { C as CorePaths, a as CoreUsageEvent, b as CoreUsageTokenCounts, U as UsageEventSink } from './usage-event-sink-BX7FE1NL.cjs';
2
2
  export { L as Logger } from './logger-4GvQNzhE.cjs';
3
- export { PricingStore } from './ports/pricing-store.cjs';
3
+ export { AutomaticPricingSource, PricingStore } from './ports/pricing-store.cjs';
4
4
  export { ProviderConfigSource } from './ports/provider-config-source.cjs';
5
5
  export { UsageEventStore } from './ports/usage-event-store.cjs';
6
6
  export { WebSearchBackend } from './ports/web-search-backend.cjs';
7
7
  export { UsageRecorderImport as UsageSink } from './provider-proxy/types.cjs';
8
- export { O as OutboundCredentialStore } from './types-B8Arpxn0.cjs';
8
+ export { O as OutboundCredentialStore } from './types-H3wGZSOo.cjs';
9
9
  import '@omnicross/contracts/pricing-types';
10
10
  import '@omnicross/contracts/llm-config';
11
11
  import './transformer/types.cjs';
@@ -18,6 +18,7 @@ import '@omnicross/contracts/subscription-types';
18
18
  import '@omnicross/contracts/usage-types';
19
19
  import './completion/ApiKeyPoolService.cjs';
20
20
  import './pipeline/AuthSource.cjs';
21
+ import './pipeline/BoundAccountSelectionError.cjs';
21
22
  import './pipeline/SubscriptionAuthSource.cjs';
22
23
  import './pipeline/SubscriptionAuthStrategy.cjs';
23
24
  import '@omnicross/contracts/account-tokens-types';
@@ -27,4 +28,4 @@ import '@omnicross/contracts/health-logging-types';
27
28
  import '@omnicross/contracts/voucher-types';
28
29
  import '@omnicross/contracts/webhook-types';
29
30
  import './ProviderProxy-CnMQYN59.cjs';
30
- import './keyPolicy-Cp0FntZl.cjs';
31
+ import './keyPolicy-zdWTu3CQ.cjs';
package/dist/ports.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  export { C as CorePaths, a as CoreUsageEvent, b as CoreUsageTokenCounts, U as UsageEventSink } from './usage-event-sink-BX7FE1NL.js';
2
2
  export { L as Logger } from './logger-4GvQNzhE.js';
3
- export { PricingStore } from './ports/pricing-store.js';
3
+ export { AutomaticPricingSource, PricingStore } from './ports/pricing-store.js';
4
4
  export { ProviderConfigSource } from './ports/provider-config-source.js';
5
5
  export { UsageEventStore } from './ports/usage-event-store.js';
6
6
  export { WebSearchBackend } from './ports/web-search-backend.js';
7
7
  export { UsageRecorderImport as UsageSink } from './provider-proxy/types.js';
8
- export { O as OutboundCredentialStore } from './types-lgPYQuZS.js';
8
+ export { O as OutboundCredentialStore } from './types-hsoKrVQS.js';
9
9
  import '@omnicross/contracts/pricing-types';
10
10
  import '@omnicross/contracts/llm-config';
11
11
  import './transformer/types.js';
@@ -18,6 +18,7 @@ import '@omnicross/contracts/subscription-types';
18
18
  import '@omnicross/contracts/usage-types';
19
19
  import './completion/ApiKeyPoolService.js';
20
20
  import './pipeline/AuthSource.js';
21
+ import './pipeline/BoundAccountSelectionError.js';
21
22
  import './pipeline/SubscriptionAuthSource.js';
22
23
  import './pipeline/SubscriptionAuthStrategy.js';
23
24
  import '@omnicross/contracts/account-tokens-types';
@@ -27,4 +28,4 @@ import '@omnicross/contracts/health-logging-types';
27
28
  import '@omnicross/contracts/voucher-types';
28
29
  import '@omnicross/contracts/webhook-types';
29
30
  import './ProviderProxy-C-xqrkKi.js';
30
- import './keyPolicy-Cp0FntZl.js';
31
+ import './keyPolicy-zdWTu3CQ.js';
@@ -1,37 +1,38 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkCGKLE6IWcjs = require('../chunk-CGKLE6IW.cjs');
4
+ var _chunkSQYVORNPcjs = require('../chunk-SQYVORNP.cjs');
5
+ require('../chunk-EJLH6NFT.cjs');
5
6
  require('../chunk-HQP3K7PU.cjs');
6
7
  require('../chunk-FZ46M34D.cjs');
7
- require('../chunk-46ZIFWYG.cjs');
8
+ require('../chunk-IIRPUVPH.cjs');
9
+ require('../chunk-GBHYAGX3.cjs');
8
10
  require('../chunk-3OPYJG76.cjs');
9
- require('../chunk-ZCIQ3L3R.cjs');
10
- require('../chunk-7FEBOPJO.cjs');
11
- require('../chunk-DWKQZ2SK.cjs');
12
- require('../chunk-4XMYPW46.cjs');
13
- require('../chunk-K52THW2C.cjs');
14
- require('../chunk-3Q6Z6JTO.cjs');
11
+ require('../chunk-7AK7B36B.cjs');
12
+ require('../chunk-V4TXMEJS.cjs');
13
+ require('../chunk-6VUQPOV3.cjs');
14
+ require('../chunk-OF3BECU2.cjs');
15
+ require('../chunk-4VLRHHFE.cjs');
15
16
  require('../chunk-EYZYXJTJ.cjs');
16
- require('../chunk-YMFAJFQT.cjs');
17
+ require('../chunk-DLXZEZWO.cjs');
17
18
  require('../chunk-SNYBEXLB.cjs');
18
- require('../chunk-GBHYAGX3.cjs');
19
+ require('../chunk-R3HK6R4B.cjs');
19
20
  require('../chunk-RPII3E6Z.cjs');
20
21
  require('../chunk-6RPZADX3.cjs');
21
- require('../chunk-QWBWGODS.cjs');
22
+ require('../chunk-NYUNU75A.cjs');
23
+ require('../chunk-YK57NMIF.cjs');
24
+ require('../chunk-YNJNTCSQ.cjs');
25
+ require('../chunk-SVNDB62D.cjs');
22
26
  require('../chunk-UIBD2YY5.cjs');
23
- require('../chunk-R3HK6R4B.cjs');
24
- require('../chunk-HYN75H6G.cjs');
27
+ require('../chunk-6QQG7YG3.cjs');
28
+ require('../chunk-25GXJCEZ.cjs');
29
+ require('../chunk-MUHWHQVM.cjs');
25
30
  require('../chunk-Q27JY5RG.cjs');
26
31
  require('../chunk-QXD4MV2X.cjs');
27
- require('../chunk-NYUNU75A.cjs');
28
- require('../chunk-VQY5W4YW.cjs');
29
- require('../chunk-KFI44N2R.cjs');
30
- require('../chunk-SVNDB62D.cjs');
31
32
  require('../chunk-APYG5QD7.cjs');
32
33
  require('../chunk-L74VDN4A.cjs');
33
34
  require('../chunk-4YINUUKQ.cjs');
34
- require('../chunk-VACWOIRE.cjs');
35
+ require('../chunk-4VZX5F4T.cjs');
35
36
  require('../chunk-QBZJ7P2T.cjs');
36
37
  require('../chunk-4IH4EL7M.cjs');
37
38
  require('../chunk-A2YMUCBT.cjs');
@@ -39,11 +40,12 @@ require('../chunk-UNWKG6EI.cjs');
39
40
  require('../chunk-FCR77GYM.cjs');
40
41
  require('../chunk-AEOZIDEB.cjs');
41
42
  require('../chunk-XSVNC2UD.cjs');
42
- require('../chunk-SUEGJ75D.cjs');
43
- require('../chunk-DDMRUL76.cjs');
44
- require('../chunk-JWVTXXPX.cjs');
45
- require('../chunk-PG7PS2NN.cjs');
43
+ require('../chunk-WYTEQ4Q5.cjs');
44
+ require('../chunk-OKMJLEXX.cjs');
45
+ require('../chunk-KBM2W6UY.cjs');
46
+ require('../chunk-KCVJWJST.cjs');
46
47
  require('../chunk-3Z5BQZFM.cjs');
48
+ require('../chunk-HVBBDBS3.cjs');
47
49
  require('../chunk-NZYN7C3P.cjs');
48
50
  require('../chunk-JMJBSACD.cjs');
49
51
  require('../chunk-GMMT7RVN.cjs');
@@ -51,4 +53,4 @@ require('../chunk-UNEFIWXI.cjs');
51
53
 
52
54
 
53
55
 
54
- exports.ProviderProxy = _chunkCGKLE6IWcjs.ProviderProxy; exports.isLoopbackAddress = _chunkCGKLE6IWcjs.isLoopbackAddress;
56
+ exports.ProviderProxy = _chunkSQYVORNPcjs.ProviderProxy; exports.isLoopbackAddress = _chunkSQYVORNPcjs.isLoopbackAddress;
@@ -8,6 +8,7 @@ import '../completion/ApiKeyPoolService.cjs';
8
8
  import '@omnicross/contracts/llm-config';
9
9
  import '../logger-4GvQNzhE.cjs';
10
10
  import '../pipeline/AuthSource.cjs';
11
+ import '../pipeline/BoundAccountSelectionError.cjs';
11
12
  import '../pipeline/SubscriptionAuthSource.cjs';
12
13
  import '../pipeline/SubscriptionAuthStrategy.cjs';
13
14
  import '../ports/provider-config-source.cjs';
@@ -8,6 +8,7 @@ import '../completion/ApiKeyPoolService.js';
8
8
  import '@omnicross/contracts/llm-config';
9
9
  import '../logger-4GvQNzhE.js';
10
10
  import '../pipeline/AuthSource.js';
11
+ import '../pipeline/BoundAccountSelectionError.js';
11
12
  import '../pipeline/SubscriptionAuthSource.js';
12
13
  import '../pipeline/SubscriptionAuthStrategy.js';
13
14
  import '../ports/provider-config-source.js';