@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
@@ -7,6 +7,7 @@ var BAN_BODY_MARKERS = [
7
7
  "this organization has been disabled",
8
8
  "oauth authentication is currently not allowed"
9
9
  ];
10
+ var ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT = 200;
10
11
  function readHeader(headers, name) {
11
12
  if (typeof headers.get === "function") {
12
13
  return headers.get(name);
@@ -44,12 +45,13 @@ var SubscriptionAccountHealth = (_class = class {
44
45
  __init() {this.records = /* @__PURE__ */ new Map()}
45
46
  __init2() {this.listeners = /* @__PURE__ */ new Set()}
46
47
  __init3() {this.anomalyListeners = /* @__PURE__ */ new Set()}
48
+ __init4() {this.diagnostics = []}
47
49
 
48
50
 
49
51
 
50
52
 
51
53
 
52
- constructor(opts = {}) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);
54
+ constructor(opts = {}) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);
53
55
  this.now = _nullishCoalesce(opts.now, () => ( Date.now));
54
56
  this.overloadEnabled = _nullishCoalesce(opts.overloadEnabled, () => ( OVERLOAD_ENABLED_DEFAULT));
55
57
  this.overloadTtlMs = _nullishCoalesce(opts.overloadTtlMs, () => ( OVERLOAD_TTL_MS));
@@ -71,8 +73,8 @@ var SubscriptionAccountHealth = (_class = class {
71
73
  }
72
74
  /**
73
75
  * Whether an account may be scheduled RIGHT NOW. `blocked` → false; any timer
74
- * still in the future → false. Expired timers are lazily deleted on read (CRS
75
- * lazy-clear parity) so an elapsed cooldown restores the account WITHOUT a
76
+ * still in the future → false. Expired timers are lazily deleted on read so
77
+ * an elapsed cooldown restores the account WITHOUT a
76
78
  * timer — but the recovery SIGNAL is the sweeper's job (`sweepRecoveries`), so
77
79
  * this read never emits (correctness is independent of the tick).
78
80
  */
@@ -86,7 +88,7 @@ var SubscriptionAccountHealth = (_class = class {
86
88
  return !active;
87
89
  }
88
90
  /**
89
- * The single marking entry point (design D3). Faithful to CRS status semantics:
91
+ * The single marking entry point (design D3):
90
92
  * - 429 + authoritative reset → `rateLimitEndAt`; a non-claude 429 may use
91
93
  * `retryAfterSeconds`; a bare 429 (no resolvable reset) is NOT marked;
92
94
  * - 529 → `overloadUntil` (gated by `overloadEnabled`);
@@ -141,9 +143,20 @@ var SubscriptionAccountHealth = (_class = class {
141
143
  }
142
144
  if (isRecordEmpty(record)) this.records.delete(key);
143
145
  else this.records.set(key, record);
144
- if (recovered) this.emit({ providerId, accountId, at: now, kind: "rateLimitRecovery" });
146
+ if (recovered) {
147
+ const recovery = {
148
+ providerId,
149
+ accountId,
150
+ at: now,
151
+ kind: "rateLimitRecovery"
152
+ };
153
+ this.recordDiagnostic({ kind: "health-recovery", providerId, accountId, at: now });
154
+ this.emit(recovery);
155
+ }
145
156
  if (anomalyState && !wasUnhealthyBefore) {
146
- this.emitAnomaly({ providerId, accountId, at: now, state: anomalyState });
157
+ const anomaly = { providerId, accountId, at: now, state: anomalyState };
158
+ this.recordDiagnostic({ kind: "health-anomaly", ...anomaly });
159
+ this.emitAnomaly(anomaly);
147
160
  }
148
161
  }
149
162
  /** Whether a record is unhealthy at `now`: blocked, or any timer still future. */
@@ -196,7 +209,15 @@ var SubscriptionAccountHealth = (_class = class {
196
209
  this.records.delete(key);
197
210
  }
198
211
  }
199
- for (const event of recovered) this.emit(event);
212
+ for (const event of recovered) {
213
+ this.recordDiagnostic({
214
+ kind: "health-recovery",
215
+ providerId: event.providerId,
216
+ accountId: event.accountId,
217
+ at: event.at
218
+ });
219
+ this.emit(event);
220
+ }
200
221
  return recovered;
201
222
  }
202
223
  /** Admin-facing coarse status + cooldown-until for one account (secret-free). */
@@ -215,6 +236,14 @@ var SubscriptionAccountHealth = (_class = class {
215
236
  }
216
237
  return { state: "healthy" };
217
238
  }
239
+ /** Return newest-first, bounded, secret-free health edge diagnostics. */
240
+ getDiagnostics(filter = {}) {
241
+ const requested = typeof filter.limit === "number" && Number.isFinite(filter.limit) ? Math.trunc(filter.limit) : ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT;
242
+ const limit = Math.min(ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT, Math.max(1, requested));
243
+ return this.diagnostics.filter(
244
+ (event) => (!filter.providerId || event.providerId === filter.providerId) && (!filter.accountId || event.accountId === filter.accountId)
245
+ ).slice(-limit).reverse().map((event) => ({ ...event }));
246
+ }
218
247
  /**
219
248
  * Register a recovery listener (the OQ3 seam #5 webhooks + #8 health-cron
220
249
  * consume). Returns an unsubscribe function. Two edges fire it:
@@ -257,6 +286,12 @@ var SubscriptionAccountHealth = (_class = class {
257
286
  }
258
287
  }
259
288
  }
289
+ recordDiagnostic(event) {
290
+ this.diagnostics.push({ ...event });
291
+ if (this.diagnostics.length > ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT) {
292
+ this.diagnostics.splice(0, this.diagnostics.length - ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT);
293
+ }
294
+ }
260
295
  /**
261
296
  * Delete every EXPIRED timer field on the record in place; return whether any
262
297
  * timer is STILL active (in the future). `blocked` is not a timer and is left
@@ -308,4 +343,5 @@ function __resetSharedAccountHealthForTests() {
308
343
 
309
344
 
310
345
 
311
- exports.OVERLOAD_TTL_MS = OVERLOAD_TTL_MS; exports.OVERLOAD_ENABLED_DEFAULT = OVERLOAD_ENABLED_DEFAULT; exports.AUTH_ERROR_TTL_MS = AUTH_ERROR_TTL_MS; exports.SERVER_ERROR_TTL_MS = SERVER_ERROR_TTL_MS; exports.resolveResetSeconds = resolveResetSeconds; exports.SubscriptionAccountHealth = SubscriptionAccountHealth; exports.getSharedAccountHealth = getSharedAccountHealth; exports.setSharedAccountHealth = setSharedAccountHealth; exports.__resetSharedAccountHealthForTests = __resetSharedAccountHealthForTests;
346
+
347
+ exports.OVERLOAD_TTL_MS = OVERLOAD_TTL_MS; exports.OVERLOAD_ENABLED_DEFAULT = OVERLOAD_ENABLED_DEFAULT; exports.AUTH_ERROR_TTL_MS = AUTH_ERROR_TTL_MS; exports.SERVER_ERROR_TTL_MS = SERVER_ERROR_TTL_MS; exports.ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT = ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT; exports.resolveResetSeconds = resolveResetSeconds; exports.SubscriptionAccountHealth = SubscriptionAccountHealth; exports.getSharedAccountHealth = getSharedAccountHealth; exports.setSharedAccountHealth = setSharedAccountHealth; exports.__resetSharedAccountHealthForTests = __resetSharedAccountHealthForTests;
@@ -2,6 +2,12 @@
2
2
 
3
3
  var _chunkSVNDB62Dcjs = require('./chunk-SVNDB62D.cjs');
4
4
 
5
+
6
+ var _chunk6QQG7YG3cjs = require('./chunk-6QQG7YG3.cjs');
7
+
8
+
9
+ var _chunk25GXJCEZcjs = require('./chunk-25GXJCEZ.cjs');
10
+
5
11
  // src/pipeline/SubscriptionAuthSource.ts
6
12
  function stripAuthHeaders(headers) {
7
13
  delete headers.authorization;
@@ -34,9 +40,12 @@ var SubscriptionAuthSource = class {
34
40
  resolvedModel: hints.model,
35
41
  sessionKey: hints.sessionKey,
36
42
  reportSelection: hints.reportSelection,
37
- preferredAccountId: hints.preferredAccountId
43
+ preferredAccountId: hints.preferredAccountId,
44
+ preferredAccountGroup: hints.preferredAccountGroup,
45
+ boundAccountFallbackPolicy: hints.boundAccountFallbackPolicy
38
46
  });
39
47
  } catch (err) {
48
+ if (_chunk6QQG7YG3cjs.isAccountAllowanceExhaustedError.call(void 0, err) || _chunk25GXJCEZcjs.isBoundAccountSelectionError.call(void 0, err)) throw err;
40
49
  console.warn("[SubscriptionAuthSource] authStrategy.applyHeaders threw:", _chunkSVNDB62Dcjs.serializeError.call(void 0, err));
41
50
  }
42
51
  }
@@ -80,6 +80,18 @@ var ApiKeyPoolService = (_class = class {
80
80
  });
81
81
  return this.resolveKey(selected.apiKey);
82
82
  }
83
+ /**
84
+ * Bind a session to one explicit provider key. Returns an empty string when
85
+ * the key is unknown, disabled, or cooling so the caller can apply its strict
86
+ * versus pool fallback policy without exposing key material.
87
+ */
88
+ async getKeyById(providerId, keyId, sessionId) {
89
+ const keys = await this.getAvailableKeys(providerId);
90
+ const selected = keys.find((key) => key.id === keyId);
91
+ if (!selected) return "";
92
+ if (sessionId) this.sessionBindings.set(sessionId, { keyId: selected.id, providerId });
93
+ return this.resolveKey(selected.apiKey);
94
+ }
83
95
  /**
84
96
  * Get a key without session affinity (for one-shot calls like testConnection).
85
97
  *
@@ -71,6 +71,12 @@ declare class ApiKeyPoolService {
71
71
  */
72
72
  getKeyIdForSession(providerId: string, sessionId: string): string | null;
73
73
  getKeyForSession(providerId: string, sessionId: string): Promise<string>;
74
+ /**
75
+ * Bind a session to one explicit provider key. Returns an empty string when
76
+ * the key is unknown, disabled, or cooling so the caller can apply its strict
77
+ * versus pool fallback policy without exposing key material.
78
+ */
79
+ getKeyById(providerId: string, keyId: string, sessionId?: string | null): Promise<string>;
74
80
  /**
75
81
  * Get a key without session affinity (for one-shot calls like testConnection).
76
82
  *
@@ -71,6 +71,12 @@ declare class ApiKeyPoolService {
71
71
  */
72
72
  getKeyIdForSession(providerId: string, sessionId: string): string | null;
73
73
  getKeyForSession(providerId: string, sessionId: string): Promise<string>;
74
+ /**
75
+ * Bind a session to one explicit provider key. Returns an empty string when
76
+ * the key is unknown, disabled, or cooling so the caller can apply its strict
77
+ * versus pool fallback policy without exposing key material.
78
+ */
79
+ getKeyById(providerId: string, keyId: string, sessionId?: string | null): Promise<string>;
74
80
  /**
75
81
  * Get a key without session affinity (for one-shot calls like testConnection).
76
82
  *
@@ -80,6 +80,18 @@ var ApiKeyPoolService = class {
80
80
  });
81
81
  return this.resolveKey(selected.apiKey);
82
82
  }
83
+ /**
84
+ * Bind a session to one explicit provider key. Returns an empty string when
85
+ * the key is unknown, disabled, or cooling so the caller can apply its strict
86
+ * versus pool fallback policy without exposing key material.
87
+ */
88
+ async getKeyById(providerId, keyId, sessionId) {
89
+ const keys = await this.getAvailableKeys(providerId);
90
+ const selected = keys.find((key) => key.id === keyId);
91
+ if (!selected) return "";
92
+ if (sessionId) this.sessionBindings.set(sessionId, { keyId: selected.id, providerId });
93
+ return this.resolveKey(selected.apiKey);
94
+ }
83
95
  /**
84
96
  * Get a key without session affinity (for one-shot calls like testConnection).
85
97
  *
@@ -1,36 +1,37 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkCGKLE6IWcjs = require('../chunk-CGKLE6IW.cjs');
3
+ var _chunkSQYVORNPcjs = require('../chunk-SQYVORNP.cjs');
4
+ require('../chunk-EJLH6NFT.cjs');
4
5
  require('../chunk-HQP3K7PU.cjs');
5
6
  require('../chunk-FZ46M34D.cjs');
6
- require('../chunk-46ZIFWYG.cjs');
7
+ require('../chunk-IIRPUVPH.cjs');
8
+ require('../chunk-GBHYAGX3.cjs');
7
9
  require('../chunk-3OPYJG76.cjs');
8
- require('../chunk-ZCIQ3L3R.cjs');
9
- require('../chunk-7FEBOPJO.cjs');
10
- require('../chunk-DWKQZ2SK.cjs');
11
- require('../chunk-4XMYPW46.cjs');
12
- require('../chunk-K52THW2C.cjs');
13
- require('../chunk-3Q6Z6JTO.cjs');
10
+ require('../chunk-7AK7B36B.cjs');
11
+ require('../chunk-V4TXMEJS.cjs');
12
+ require('../chunk-6VUQPOV3.cjs');
13
+ require('../chunk-OF3BECU2.cjs');
14
+ require('../chunk-4VLRHHFE.cjs');
14
15
  require('../chunk-EYZYXJTJ.cjs');
15
- require('../chunk-YMFAJFQT.cjs');
16
+ require('../chunk-DLXZEZWO.cjs');
16
17
  require('../chunk-SNYBEXLB.cjs');
17
- require('../chunk-GBHYAGX3.cjs');
18
+ require('../chunk-R3HK6R4B.cjs');
18
19
  require('../chunk-RPII3E6Z.cjs');
19
20
  require('../chunk-6RPZADX3.cjs');
20
- require('../chunk-QWBWGODS.cjs');
21
+ require('../chunk-NYUNU75A.cjs');
22
+ require('../chunk-YK57NMIF.cjs');
23
+ require('../chunk-YNJNTCSQ.cjs');
24
+ require('../chunk-SVNDB62D.cjs');
21
25
  require('../chunk-UIBD2YY5.cjs');
22
- require('../chunk-R3HK6R4B.cjs');
23
- require('../chunk-HYN75H6G.cjs');
26
+ require('../chunk-6QQG7YG3.cjs');
27
+ require('../chunk-25GXJCEZ.cjs');
28
+ require('../chunk-MUHWHQVM.cjs');
24
29
  require('../chunk-Q27JY5RG.cjs');
25
30
  require('../chunk-QXD4MV2X.cjs');
26
- require('../chunk-NYUNU75A.cjs');
27
- require('../chunk-VQY5W4YW.cjs');
28
- require('../chunk-KFI44N2R.cjs');
29
- require('../chunk-SVNDB62D.cjs');
30
31
  require('../chunk-APYG5QD7.cjs');
31
32
  require('../chunk-L74VDN4A.cjs');
32
33
  require('../chunk-4YINUUKQ.cjs');
33
- require('../chunk-VACWOIRE.cjs');
34
+ require('../chunk-4VZX5F4T.cjs');
34
35
  require('../chunk-QBZJ7P2T.cjs');
35
36
  require('../chunk-4IH4EL7M.cjs');
36
37
  require('../chunk-A2YMUCBT.cjs');
@@ -38,15 +39,16 @@ require('../chunk-UNWKG6EI.cjs');
38
39
  require('../chunk-FCR77GYM.cjs');
39
40
  require('../chunk-AEOZIDEB.cjs');
40
41
  require('../chunk-XSVNC2UD.cjs');
41
- require('../chunk-SUEGJ75D.cjs');
42
- require('../chunk-DDMRUL76.cjs');
43
- require('../chunk-JWVTXXPX.cjs');
44
- require('../chunk-PG7PS2NN.cjs');
42
+ require('../chunk-WYTEQ4Q5.cjs');
43
+ require('../chunk-OKMJLEXX.cjs');
44
+ require('../chunk-KBM2W6UY.cjs');
45
+ require('../chunk-KCVJWJST.cjs');
45
46
  require('../chunk-3Z5BQZFM.cjs');
47
+ require('../chunk-HVBBDBS3.cjs');
46
48
  require('../chunk-NZYN7C3P.cjs');
47
49
  require('../chunk-JMJBSACD.cjs');
48
50
  require('../chunk-GMMT7RVN.cjs');
49
51
  require('../chunk-UNEFIWXI.cjs');
50
52
 
51
53
 
52
- exports.CompletionService = _chunkCGKLE6IWcjs.CompletionService;
54
+ exports.CompletionService = _chunkSQYVORNPcjs.CompletionService;
@@ -6,7 +6,7 @@ import '../ports/provider-config-source.cjs';
6
6
  import '../provider-proxy/types.cjs';
7
7
  import '../BuiltinToolExecutor-CS2WpXhM.cjs';
8
8
  export { C as CompletionOptions, a as CompletionResult, S as StreamCallbacks } from '../types-BScIHmPr.cjs';
9
- export { C as CompletionService } from '../CompletionService-D3a47vdU.cjs';
9
+ export { C as CompletionService } from '../CompletionService-kNA17cfI.cjs';
10
10
  import './ApiKeyPoolService.cjs';
11
11
  import '../transformer/types.cjs';
12
12
  import '../transformer/TransformerService.cjs';
@@ -14,6 +14,7 @@ import 'node:http';
14
14
  import '@omnicross/contracts/subscription-types';
15
15
  import '@omnicross/contracts/usage-types';
16
16
  import '../pipeline/AuthSource.cjs';
17
+ import '../pipeline/BoundAccountSelectionError.cjs';
17
18
  import '../pipeline/SubscriptionAuthSource.cjs';
18
19
  import '../pipeline/SubscriptionAuthStrategy.cjs';
19
20
  import '../ports/web-search-backend.cjs';
@@ -6,7 +6,7 @@ import '../ports/provider-config-source.js';
6
6
  import '../provider-proxy/types.js';
7
7
  import '../BuiltinToolExecutor-BluWyeob.js';
8
8
  export { C as CompletionOptions, a as CompletionResult, S as StreamCallbacks } from '../types-BScIHmPr.js';
9
- export { C as CompletionService } from '../CompletionService-DdWaAxq0.js';
9
+ export { C as CompletionService } from '../CompletionService-C3BX0Ovy.js';
10
10
  import './ApiKeyPoolService.js';
11
11
  import '../transformer/types.js';
12
12
  import '../transformer/TransformerService.js';
@@ -14,6 +14,7 @@ import 'node:http';
14
14
  import '@omnicross/contracts/subscription-types';
15
15
  import '@omnicross/contracts/usage-types';
16
16
  import '../pipeline/AuthSource.js';
17
+ import '../pipeline/BoundAccountSelectionError.js';
17
18
  import '../pipeline/SubscriptionAuthSource.js';
18
19
  import '../pipeline/SubscriptionAuthStrategy.js';
19
20
  import '../ports/web-search-backend.js';
@@ -1,36 +1,37 @@
1
1
  import {
2
2
  CompletionService
3
- } from "../chunk-FH2P4OCD.js";
3
+ } from "../chunk-UDCC7EMR.js";
4
+ import "../chunk-WB6PH56J.js";
4
5
  import "../chunk-VVEHS2LI.js";
5
6
  import "../chunk-46RLHI7D.js";
6
- import "../chunk-G2UTNSGU.js";
7
+ import "../chunk-WNKWAEUR.js";
8
+ import "../chunk-MZNPGW5Q.js";
7
9
  import "../chunk-DK4A7DLE.js";
8
- import "../chunk-OQWKZCXP.js";
9
- import "../chunk-IB3FDI4O.js";
10
- import "../chunk-ZJZAOKI7.js";
11
- import "../chunk-C6OV7GCC.js";
12
- import "../chunk-IWQAX3CS.js";
13
- import "../chunk-BODMAL6G.js";
10
+ import "../chunk-VRFBB5DB.js";
11
+ import "../chunk-LVUCAWMK.js";
12
+ import "../chunk-OEWZUX4G.js";
13
+ import "../chunk-LB6EBS6Y.js";
14
+ import "../chunk-6CL5HTPQ.js";
14
15
  import "../chunk-7VU7V2E4.js";
15
- import "../chunk-ZLX3KGXX.js";
16
+ import "../chunk-UX7VWA46.js";
16
17
  import "../chunk-BPKCU575.js";
17
- import "../chunk-MZNPGW5Q.js";
18
+ import "../chunk-DRWHTIIZ.js";
18
19
  import "../chunk-XTEI64OU.js";
19
20
  import "../chunk-XX6NQJMA.js";
20
- import "../chunk-IAXWICZU.js";
21
+ import "../chunk-5ERIZW3D.js";
22
+ import "../chunk-YJVHCHQX.js";
23
+ import "../chunk-23S5OPIO.js";
24
+ import "../chunk-AVYJ4YBN.js";
21
25
  import "../chunk-OE6TDIWW.js";
22
- import "../chunk-DRWHTIIZ.js";
23
- import "../chunk-IK3KE3AU.js";
26
+ import "../chunk-OPRS4IQZ.js";
27
+ import "../chunk-2JYRIADS.js";
28
+ import "../chunk-DE2SRBFZ.js";
24
29
  import "../chunk-ZY6KU6P3.js";
25
30
  import "../chunk-JWC6APFQ.js";
26
- import "../chunk-5ERIZW3D.js";
27
- import "../chunk-5ENKBSWO.js";
28
- import "../chunk-HRRYG2AX.js";
29
- import "../chunk-AVYJ4YBN.js";
30
31
  import "../chunk-WLYIIEAF.js";
31
32
  import "../chunk-TKJMZBAH.js";
32
33
  import "../chunk-3QFXFCHG.js";
33
- import "../chunk-UHGVBFU3.js";
34
+ import "../chunk-EBLFCNPY.js";
34
35
  import "../chunk-AQ5TNQB7.js";
35
36
  import "../chunk-XEKD23J5.js";
36
37
  import "../chunk-H5JUT3KV.js";
@@ -38,11 +39,12 @@ import "../chunk-IFXJ2BG7.js";
38
39
  import "../chunk-K5NM7VAH.js";
39
40
  import "../chunk-WNY4WMRF.js";
40
41
  import "../chunk-OZFM4X3S.js";
41
- import "../chunk-5ZQBEOMD.js";
42
- import "../chunk-MFZ5437A.js";
43
- import "../chunk-6QZGDLL4.js";
44
- import "../chunk-D3TDKWRP.js";
42
+ import "../chunk-AT7B7SOZ.js";
43
+ import "../chunk-N5T4M4GU.js";
44
+ import "../chunk-TOVPMMHM.js";
45
+ import "../chunk-SIZQQD6T.js";
45
46
  import "../chunk-SYQF7OIR.js";
47
+ import "../chunk-MKF46GNZ.js";
46
48
  import "../chunk-CDHS2QDC.js";
47
49
  import "../chunk-Y7FO65VT.js";
48
50
  import "../chunk-FMOBD2OQ.js";
@@ -9,39 +9,40 @@
9
9
 
10
10
 
11
11
 
12
- var _chunkCGKLE6IWcjs = require('./chunk-CGKLE6IW.cjs');
12
+ var _chunkSQYVORNPcjs = require('./chunk-SQYVORNP.cjs');
13
+ require('./chunk-EJLH6NFT.cjs');
13
14
  require('./chunk-HQP3K7PU.cjs');
14
15
  require('./chunk-FZ46M34D.cjs');
15
- require('./chunk-46ZIFWYG.cjs');
16
+ require('./chunk-IIRPUVPH.cjs');
17
+ require('./chunk-GBHYAGX3.cjs');
16
18
  require('./chunk-3OPYJG76.cjs');
17
- require('./chunk-ZCIQ3L3R.cjs');
18
- require('./chunk-7FEBOPJO.cjs');
19
- require('./chunk-DWKQZ2SK.cjs');
20
- require('./chunk-4XMYPW46.cjs');
21
- require('./chunk-K52THW2C.cjs');
22
- require('./chunk-3Q6Z6JTO.cjs');
19
+ require('./chunk-7AK7B36B.cjs');
20
+ require('./chunk-V4TXMEJS.cjs');
21
+ require('./chunk-6VUQPOV3.cjs');
22
+ require('./chunk-OF3BECU2.cjs');
23
+ require('./chunk-4VLRHHFE.cjs');
23
24
  require('./chunk-EYZYXJTJ.cjs');
24
- require('./chunk-YMFAJFQT.cjs');
25
+ require('./chunk-DLXZEZWO.cjs');
25
26
  require('./chunk-SNYBEXLB.cjs');
26
- require('./chunk-GBHYAGX3.cjs');
27
+ require('./chunk-R3HK6R4B.cjs');
27
28
  require('./chunk-RPII3E6Z.cjs');
28
29
  require('./chunk-6RPZADX3.cjs');
29
- require('./chunk-QWBWGODS.cjs');
30
+ require('./chunk-NYUNU75A.cjs');
31
+ require('./chunk-YK57NMIF.cjs');
32
+ require('./chunk-YNJNTCSQ.cjs');
33
+ require('./chunk-SVNDB62D.cjs');
30
34
  require('./chunk-UIBD2YY5.cjs');
31
- require('./chunk-R3HK6R4B.cjs');
32
- require('./chunk-HYN75H6G.cjs');
35
+ require('./chunk-6QQG7YG3.cjs');
36
+ require('./chunk-25GXJCEZ.cjs');
37
+ require('./chunk-MUHWHQVM.cjs');
33
38
 
34
39
 
35
40
  var _chunkQ27JY5RGcjs = require('./chunk-Q27JY5RG.cjs');
36
41
  require('./chunk-QXD4MV2X.cjs');
37
- require('./chunk-NYUNU75A.cjs');
38
- require('./chunk-VQY5W4YW.cjs');
39
- require('./chunk-KFI44N2R.cjs');
40
- require('./chunk-SVNDB62D.cjs');
41
42
  require('./chunk-APYG5QD7.cjs');
42
43
  require('./chunk-L74VDN4A.cjs');
43
44
  require('./chunk-4YINUUKQ.cjs');
44
- require('./chunk-VACWOIRE.cjs');
45
+ require('./chunk-4VZX5F4T.cjs');
45
46
  require('./chunk-QBZJ7P2T.cjs');
46
47
  require('./chunk-4IH4EL7M.cjs');
47
48
 
@@ -59,11 +60,12 @@ require('./chunk-UNWKG6EI.cjs');
59
60
  require('./chunk-FCR77GYM.cjs');
60
61
  require('./chunk-AEOZIDEB.cjs');
61
62
  require('./chunk-XSVNC2UD.cjs');
62
- require('./chunk-SUEGJ75D.cjs');
63
- require('./chunk-DDMRUL76.cjs');
64
- require('./chunk-JWVTXXPX.cjs');
65
- require('./chunk-PG7PS2NN.cjs');
63
+ require('./chunk-WYTEQ4Q5.cjs');
64
+ require('./chunk-OKMJLEXX.cjs');
65
+ require('./chunk-KBM2W6UY.cjs');
66
+ require('./chunk-KCVJWJST.cjs');
66
67
  require('./chunk-3Z5BQZFM.cjs');
68
+ require('./chunk-HVBBDBS3.cjs');
67
69
 
68
70
 
69
71
 
@@ -104,4 +106,4 @@ require('./chunk-UNEFIWXI.cjs');
104
106
 
105
107
 
106
108
 
107
- exports.BuiltinToolExecutor = _chunkNZYN7C3Pcjs.BuiltinToolExecutor; exports.CompletionService = _chunkCGKLE6IWcjs.CompletionService; exports.NATIVE_SEARCH_TOOL_NAMES = _chunkGMMT7RVNcjs.NATIVE_SEARCH_TOOL_NAMES; exports.addOpenRouterProviderToRequest = _chunkCGKLE6IWcjs.addOpenRouterProviderToRequest; exports.applyAugmentation = _chunkJMJBSACDcjs.applyAugmentation; exports.attachStreamEventBuffer = _chunkCGKLE6IWcjs.attach; exports.buildAnthropicApiUrl = _chunkA2YMUCBTcjs.buildAnthropicApiUrl; exports.buildAzureOpenAIApiUrl = _chunkA2YMUCBTcjs.buildAzureOpenAIApiUrl; exports.buildGeminiApiUrl = _chunkA2YMUCBTcjs.buildGeminiApiUrl; exports.buildNativeSearchAugmentation = _chunkJMJBSACDcjs.buildNativeSearchAugmentation; exports.buildOpenAIApiUrl = _chunkA2YMUCBTcjs.buildOpenAIApiUrl; exports.buildOpenAIResponseApiUrl = _chunkA2YMUCBTcjs.buildOpenAIResponseApiUrl; exports.buildProviderApiUrl = _chunkA2YMUCBTcjs.buildProviderApiUrl; exports.convertMessageToAnthropic = _chunkCGKLE6IWcjs.convertMessageToAnthropic; exports.convertMessageToGemini = _chunkCGKLE6IWcjs.convertMessageToGemini; exports.convertMessageToOpenAI = _chunkCGKLE6IWcjs.convertMessageToOpenAI; exports.detectNativeSearch = _chunkJMJBSACDcjs.detectNativeSearch; exports.emitStreamEvent = _chunkCGKLE6IWcjs.emit; exports.getBuiltinSearchTools = _chunkNZYN7C3Pcjs.getBuiltinSearchTools; exports.getOpenRouterProviderConfig = _chunkCGKLE6IWcjs.getOpenRouterProviderConfig; exports.getProviderHeaders = _chunkQ27JY5RGcjs.getProviderHeaders; exports.normalizeAzureEndpoint = _chunkA2YMUCBTcjs.normalizeAzureEndpoint; exports.registerStreamEventBuffer = _chunkCGKLE6IWcjs.register; exports.releaseStreamEventBuffer = _chunkCGKLE6IWcjs.release; exports.resolveApiFormat = _chunkA2YMUCBTcjs.resolveApiFormat; exports.resolveProviderEndpoint = _chunkA2YMUCBTcjs.resolveProviderEndpoint;
109
+ exports.BuiltinToolExecutor = _chunkNZYN7C3Pcjs.BuiltinToolExecutor; exports.CompletionService = _chunkSQYVORNPcjs.CompletionService; exports.NATIVE_SEARCH_TOOL_NAMES = _chunkGMMT7RVNcjs.NATIVE_SEARCH_TOOL_NAMES; exports.addOpenRouterProviderToRequest = _chunkSQYVORNPcjs.addOpenRouterProviderToRequest; exports.applyAugmentation = _chunkJMJBSACDcjs.applyAugmentation; exports.attachStreamEventBuffer = _chunkSQYVORNPcjs.attach; exports.buildAnthropicApiUrl = _chunkA2YMUCBTcjs.buildAnthropicApiUrl; exports.buildAzureOpenAIApiUrl = _chunkA2YMUCBTcjs.buildAzureOpenAIApiUrl; exports.buildGeminiApiUrl = _chunkA2YMUCBTcjs.buildGeminiApiUrl; exports.buildNativeSearchAugmentation = _chunkJMJBSACDcjs.buildNativeSearchAugmentation; exports.buildOpenAIApiUrl = _chunkA2YMUCBTcjs.buildOpenAIApiUrl; exports.buildOpenAIResponseApiUrl = _chunkA2YMUCBTcjs.buildOpenAIResponseApiUrl; exports.buildProviderApiUrl = _chunkA2YMUCBTcjs.buildProviderApiUrl; exports.convertMessageToAnthropic = _chunkSQYVORNPcjs.convertMessageToAnthropic; exports.convertMessageToGemini = _chunkSQYVORNPcjs.convertMessageToGemini; exports.convertMessageToOpenAI = _chunkSQYVORNPcjs.convertMessageToOpenAI; exports.detectNativeSearch = _chunkJMJBSACDcjs.detectNativeSearch; exports.emitStreamEvent = _chunkSQYVORNPcjs.emit; exports.getBuiltinSearchTools = _chunkNZYN7C3Pcjs.getBuiltinSearchTools; exports.getOpenRouterProviderConfig = _chunkSQYVORNPcjs.getOpenRouterProviderConfig; exports.getProviderHeaders = _chunkQ27JY5RGcjs.getProviderHeaders; exports.normalizeAzureEndpoint = _chunkA2YMUCBTcjs.normalizeAzureEndpoint; exports.registerStreamEventBuffer = _chunkSQYVORNPcjs.register; exports.releaseStreamEventBuffer = _chunkSQYVORNPcjs.release; exports.resolveApiFormat = _chunkA2YMUCBTcjs.resolveApiFormat; exports.resolveProviderEndpoint = _chunkA2YMUCBTcjs.resolveProviderEndpoint;
@@ -1,5 +1,5 @@
1
1
  export { A as ApiFormat, C as CompletionOptions, a as CompletionResult, N as NATIVE_SEARCH_TOOL_NAMES, b as NativeSearchAugmentation, c as NativeSearchDetectionResult, d as NativeSearchProvider, e as NativeSearchUserConfig, S as StreamCallbacks } from './types-BScIHmPr.cjs';
2
- export { C as CompletionService, V as VisionFallbackProvider } from './CompletionService-D3a47vdU.cjs';
2
+ export { C as CompletionService, V as VisionFallbackProvider } from './CompletionService-kNA17cfI.cjs';
3
3
  export { buildAnthropicApiUrl, buildAzureOpenAIApiUrl, buildGeminiApiUrl, buildOpenAIApiUrl, buildOpenAIResponseApiUrl, buildProviderApiUrl, normalizeAzureEndpoint, resolveApiFormat, resolveProviderEndpoint } from './completion/url-builder.cjs';
4
4
  import { LLMProvider, OpenRouterProviderRouting } from '@omnicross/contracts/llm-config';
5
5
  import { SimpleChatMessage, AnthropicMessage, OpenAIMessage } from '@omnicross/contracts/completion-types';
@@ -17,6 +17,7 @@ import '@omnicross/contracts/subscription-types';
17
17
  import '@omnicross/contracts/usage-types';
18
18
  import './completion/ApiKeyPoolService.cjs';
19
19
  import './pipeline/AuthSource.cjs';
20
+ import './pipeline/BoundAccountSelectionError.cjs';
20
21
  import './pipeline/SubscriptionAuthSource.cjs';
21
22
  import './pipeline/SubscriptionAuthStrategy.cjs';
22
23
  import './ports/web-search-backend.cjs';
@@ -1,5 +1,5 @@
1
1
  export { A as ApiFormat, C as CompletionOptions, a as CompletionResult, N as NATIVE_SEARCH_TOOL_NAMES, b as NativeSearchAugmentation, c as NativeSearchDetectionResult, d as NativeSearchProvider, e as NativeSearchUserConfig, S as StreamCallbacks } from './types-BScIHmPr.js';
2
- export { C as CompletionService, V as VisionFallbackProvider } from './CompletionService-DdWaAxq0.js';
2
+ export { C as CompletionService, V as VisionFallbackProvider } from './CompletionService-C3BX0Ovy.js';
3
3
  export { buildAnthropicApiUrl, buildAzureOpenAIApiUrl, buildGeminiApiUrl, buildOpenAIApiUrl, buildOpenAIResponseApiUrl, buildProviderApiUrl, normalizeAzureEndpoint, resolveApiFormat, resolveProviderEndpoint } from './completion/url-builder.js';
4
4
  import { LLMProvider, OpenRouterProviderRouting } from '@omnicross/contracts/llm-config';
5
5
  import { SimpleChatMessage, AnthropicMessage, OpenAIMessage } from '@omnicross/contracts/completion-types';
@@ -17,6 +17,7 @@ import '@omnicross/contracts/subscription-types';
17
17
  import '@omnicross/contracts/usage-types';
18
18
  import './completion/ApiKeyPoolService.js';
19
19
  import './pipeline/AuthSource.js';
20
+ import './pipeline/BoundAccountSelectionError.js';
20
21
  import './pipeline/SubscriptionAuthSource.js';
21
22
  import './pipeline/SubscriptionAuthStrategy.js';
22
23
  import './ports/web-search-backend.js';
@@ -9,39 +9,40 @@ import {
9
9
  getOpenRouterProviderConfig,
10
10
  register,
11
11
  release
12
- } from "./chunk-FH2P4OCD.js";
12
+ } from "./chunk-UDCC7EMR.js";
13
+ import "./chunk-WB6PH56J.js";
13
14
  import "./chunk-VVEHS2LI.js";
14
15
  import "./chunk-46RLHI7D.js";
15
- import "./chunk-G2UTNSGU.js";
16
+ import "./chunk-WNKWAEUR.js";
17
+ import "./chunk-MZNPGW5Q.js";
16
18
  import "./chunk-DK4A7DLE.js";
17
- import "./chunk-OQWKZCXP.js";
18
- import "./chunk-IB3FDI4O.js";
19
- import "./chunk-ZJZAOKI7.js";
20
- import "./chunk-C6OV7GCC.js";
21
- import "./chunk-IWQAX3CS.js";
22
- import "./chunk-BODMAL6G.js";
19
+ import "./chunk-VRFBB5DB.js";
20
+ import "./chunk-LVUCAWMK.js";
21
+ import "./chunk-OEWZUX4G.js";
22
+ import "./chunk-LB6EBS6Y.js";
23
+ import "./chunk-6CL5HTPQ.js";
23
24
  import "./chunk-7VU7V2E4.js";
24
- import "./chunk-ZLX3KGXX.js";
25
+ import "./chunk-UX7VWA46.js";
25
26
  import "./chunk-BPKCU575.js";
26
- import "./chunk-MZNPGW5Q.js";
27
+ import "./chunk-DRWHTIIZ.js";
27
28
  import "./chunk-XTEI64OU.js";
28
29
  import "./chunk-XX6NQJMA.js";
29
- import "./chunk-IAXWICZU.js";
30
+ import "./chunk-5ERIZW3D.js";
31
+ import "./chunk-YJVHCHQX.js";
32
+ import "./chunk-23S5OPIO.js";
33
+ import "./chunk-AVYJ4YBN.js";
30
34
  import "./chunk-OE6TDIWW.js";
31
- import "./chunk-DRWHTIIZ.js";
32
- import "./chunk-IK3KE3AU.js";
35
+ import "./chunk-OPRS4IQZ.js";
36
+ import "./chunk-2JYRIADS.js";
37
+ import "./chunk-DE2SRBFZ.js";
33
38
  import {
34
39
  getProviderHeaders
35
40
  } from "./chunk-ZY6KU6P3.js";
36
41
  import "./chunk-JWC6APFQ.js";
37
- import "./chunk-5ERIZW3D.js";
38
- import "./chunk-5ENKBSWO.js";
39
- import "./chunk-HRRYG2AX.js";
40
- import "./chunk-AVYJ4YBN.js";
41
42
  import "./chunk-WLYIIEAF.js";
42
43
  import "./chunk-TKJMZBAH.js";
43
44
  import "./chunk-3QFXFCHG.js";
44
- import "./chunk-UHGVBFU3.js";
45
+ import "./chunk-EBLFCNPY.js";
45
46
  import "./chunk-AQ5TNQB7.js";
46
47
  import "./chunk-XEKD23J5.js";
47
48
  import {
@@ -59,11 +60,12 @@ import "./chunk-IFXJ2BG7.js";
59
60
  import "./chunk-K5NM7VAH.js";
60
61
  import "./chunk-WNY4WMRF.js";
61
62
  import "./chunk-OZFM4X3S.js";
62
- import "./chunk-5ZQBEOMD.js";
63
- import "./chunk-MFZ5437A.js";
64
- import "./chunk-6QZGDLL4.js";
65
- import "./chunk-D3TDKWRP.js";
63
+ import "./chunk-AT7B7SOZ.js";
64
+ import "./chunk-N5T4M4GU.js";
65
+ import "./chunk-TOVPMMHM.js";
66
+ import "./chunk-SIZQQD6T.js";
66
67
  import "./chunk-SYQF7OIR.js";
68
+ import "./chunk-MKF46GNZ.js";
67
69
  import {
68
70
  BuiltinToolExecutor,
69
71
  getBuiltinSearchTools