@omnicross/core 0.1.4 → 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.
- package/dist/ApiConverter.cjs +2 -2
- package/dist/ApiConverter.js +1 -1
- package/dist/{CompletionService-DdWaAxq0.d.ts → CompletionService-C3BX0Ovy.d.ts} +4 -3
- package/dist/{CompletionService-D3a47vdU.d.cts → CompletionService-kNA17cfI.d.cts} +4 -3
- package/dist/auth/GeminiCodeAssistProjectResolver.cjs +7 -5
- package/dist/auth/GeminiCodeAssistProjectResolver.js +5 -3
- package/dist/{chunk-HRRYG2AX.js → chunk-23S5OPIO.js} +10 -1
- package/dist/chunk-25GXJCEZ.cjs +40 -0
- package/dist/chunk-2JYRIADS.js +40 -0
- package/dist/chunk-3Z5BQZFM.cjs +52 -0
- package/dist/{chunk-4VAVYUZS.cjs → chunk-4VLRHHFE.cjs} +82 -40
- package/dist/{chunk-VACWOIRE.cjs → chunk-4VZX5F4T.cjs} +39 -15
- package/dist/{chunk-FTQ7IQUC.js → chunk-6CL5HTPQ.js} +52 -10
- package/dist/chunk-6QQG7YG3.cjs +153 -0
- package/dist/{chunk-SU2GCLAC.cjs → chunk-6VUQPOV3.cjs} +359 -60
- package/dist/chunk-7AK7B36B.cjs +44 -0
- package/dist/{chunk-5ZQBEOMD.js → chunk-AT7B7SOZ.js} +25 -2
- package/dist/{chunk-IK3KE3AU.js → chunk-DE2SRBFZ.js} +1 -1
- package/dist/chunk-DLXZEZWO.cjs +285 -0
- package/dist/{chunk-UHGVBFU3.js → chunk-EBLFCNPY.js} +38 -14
- package/dist/chunk-EJLH6NFT.cjs +166 -0
- package/dist/chunk-HVBBDBS3.cjs +350 -0
- package/dist/{chunk-7Y47UCF2.js → chunk-IFXJ2BG7.js} +5 -38
- package/dist/{chunk-46ZIFWYG.cjs → chunk-IIRPUVPH.cjs} +7 -1
- package/dist/{chunk-YGXJGRFI.cjs → chunk-KBM2W6UY.cjs} +111 -24
- package/dist/{chunk-OCEUVQHW.cjs → chunk-KCVJWJST.cjs} +73 -3
- package/dist/chunk-LB6EBS6Y.js +69 -0
- package/dist/{chunk-C7PSERMH.js → chunk-LVUCAWMK.js} +1 -1
- package/dist/chunk-MKF46GNZ.js +350 -0
- package/dist/{chunk-HYN75H6G.cjs → chunk-MUHWHQVM.cjs} +1 -1
- package/dist/{chunk-Z7Y2NPHY.js → chunk-N5T4M4GU.js} +1 -1
- package/dist/{chunk-TIER4SUC.js → chunk-OEWZUX4G.js} +346 -47
- package/dist/chunk-OF3BECU2.cjs +69 -0
- package/dist/{chunk-RSJ3TWJQ.cjs → chunk-OKMJLEXX.cjs} +5 -5
- package/dist/chunk-OPRS4IQZ.js +153 -0
- package/dist/{chunk-XK5CIRMQ.js → chunk-SIZQQD6T.js} +72 -2
- package/dist/{chunk-DKPXN34V.cjs → chunk-SQYVORNP.cjs} +1334 -510
- package/dist/chunk-SYQF7OIR.js +52 -0
- package/dist/{chunk-S4WBV25P.js → chunk-TOVPMMHM.js} +111 -24
- package/dist/{chunk-QYTT6GE3.js → chunk-UDCC7EMR.js} +1093 -269
- package/dist/{chunk-E3UCVHLP.cjs → chunk-UNWKG6EI.cjs} +5 -38
- package/dist/{chunk-ZLX3KGXX.js → chunk-UX7VWA46.js} +135 -23
- package/dist/{chunk-7YN22L2H.cjs → chunk-V4TXMEJS.cjs} +5 -5
- package/dist/chunk-VRFBB5DB.js +44 -0
- package/dist/chunk-WB6PH56J.js +166 -0
- package/dist/{chunk-G2UTNSGU.js → chunk-WNKWAEUR.js} +7 -1
- package/dist/{chunk-SUEGJ75D.cjs → chunk-WYTEQ4Q5.cjs} +25 -2
- package/dist/{chunk-5ENKBSWO.js → chunk-YJVHCHQX.js} +42 -6
- package/dist/{chunk-VQY5W4YW.cjs → chunk-YK57NMIF.cjs} +44 -8
- package/dist/{chunk-KFI44N2R.cjs → chunk-YNJNTCSQ.cjs} +10 -1
- package/dist/completion/ApiKeyPoolService.cjs +12 -0
- package/dist/completion/ApiKeyPoolService.d.cts +6 -0
- package/dist/completion/ApiKeyPoolService.d.ts +6 -0
- package/dist/completion/ApiKeyPoolService.js +12 -0
- package/dist/completion/CompletionService.cjs +27 -24
- package/dist/completion/CompletionService.d.cts +2 -1
- package/dist/completion/CompletionService.d.ts +2 -1
- package/dist/completion/CompletionService.js +26 -23
- package/dist/completion.cjs +27 -24
- package/dist/completion.d.cts +2 -1
- package/dist/completion.d.ts +2 -1
- package/dist/completion.js +26 -23
- package/dist/index.cjs +53 -29
- package/dist/index.d.cts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.js +56 -32
- package/dist/{keyPolicy-Cp0FntZl.d.cts → keyPolicy-zdWTu3CQ.d.cts} +1 -1
- package/dist/{keyPolicy-Cp0FntZl.d.ts → keyPolicy-zdWTu3CQ.d.ts} +1 -1
- package/dist/outbound-api/auditCapture.cjs +2 -2
- package/dist/outbound-api/auditCapture.d.cts +5 -3
- package/dist/outbound-api/auditCapture.d.ts +5 -3
- package/dist/outbound-api/auditCapture.js +1 -1
- package/dist/outbound-api/quotaWarn.d.cts +1 -1
- package/dist/outbound-api/quotaWarn.d.ts +1 -1
- package/dist/outbound-api/routeResolver.cjs +2 -2
- package/dist/outbound-api/routeResolver.d.cts +4 -3
- package/dist/outbound-api/routeResolver.d.ts +4 -3
- package/dist/outbound-api/routeResolver.js +1 -1
- package/dist/outbound-api/subscriptionRegistryPort.d.cts +1 -0
- package/dist/outbound-api/subscriptionRegistryPort.d.ts +1 -0
- package/dist/outbound-api/types.d.cts +3 -2
- package/dist/outbound-api/types.d.ts +3 -2
- package/dist/outbound-api.cjs +49 -25
- package/dist/outbound-api.d.cts +127 -85
- package/dist/outbound-api.d.ts +127 -85
- package/dist/outbound-api.js +52 -28
- package/dist/pipeline/AccountAllowanceScheduling.cjs +15 -0
- package/dist/pipeline/AccountAllowanceScheduling.d.cts +90 -0
- package/dist/pipeline/AccountAllowanceScheduling.d.ts +90 -0
- package/dist/pipeline/AccountAllowanceScheduling.js +15 -0
- package/dist/pipeline/AccountAllowanceStore.cjs +20 -0
- package/dist/pipeline/AccountAllowanceStore.d.cts +77 -0
- package/dist/pipeline/AccountAllowanceStore.d.ts +77 -0
- package/dist/pipeline/AccountAllowanceStore.js +20 -0
- package/dist/pipeline/AuthSource.d.cts +11 -2
- package/dist/pipeline/AuthSource.d.ts +11 -2
- package/dist/pipeline/BoundAccountSelectionError.cjs +10 -0
- package/dist/pipeline/BoundAccountSelectionError.d.cts +28 -0
- package/dist/pipeline/BoundAccountSelectionError.d.ts +28 -0
- package/dist/pipeline/BoundAccountSelectionError.js +10 -0
- package/dist/pipeline/LlmConfigProviderAuth.d.cts +1 -0
- package/dist/pipeline/LlmConfigProviderAuth.d.ts +1 -0
- package/dist/pipeline/SubscriptionAccountHealth.cjs +4 -2
- package/dist/pipeline/SubscriptionAccountHealth.d.cts +34 -6
- package/dist/pipeline/SubscriptionAccountHealth.d.ts +34 -6
- package/dist/pipeline/SubscriptionAccountHealth.js +3 -1
- package/dist/pipeline/SubscriptionAuthSource.cjs +5 -2
- package/dist/pipeline/SubscriptionAuthSource.d.cts +1 -0
- package/dist/pipeline/SubscriptionAuthSource.d.ts +1 -0
- package/dist/pipeline/SubscriptionAuthSource.js +4 -1
- package/dist/pipeline/SubscriptionAuthStrategy.d.cts +8 -3
- package/dist/pipeline/SubscriptionAuthStrategy.d.ts +8 -3
- package/dist/pipeline/executeProviderCall.cjs +2 -2
- package/dist/pipeline/executeProviderCall.d.cts +8 -3
- package/dist/pipeline/executeProviderCall.d.ts +8 -3
- package/dist/pipeline/executeProviderCall.js +1 -1
- package/dist/pipeline/resolveProviderChain.d.cts +2 -3
- package/dist/pipeline/resolveProviderChain.d.ts +2 -3
- package/dist/pipeline/resolveSubscriptionChain.d.cts +1 -0
- package/dist/pipeline/resolveSubscriptionChain.d.ts +1 -0
- package/dist/pipeline/upstreamFetch.cjs +4 -2
- package/dist/pipeline/upstreamFetch.d.cts +6 -0
- package/dist/pipeline/upstreamFetch.d.ts +6 -0
- package/dist/pipeline/upstreamFetch.js +3 -1
- package/dist/pipeline/upstreamTrace.cjs +14 -0
- package/dist/pipeline/upstreamTrace.d.cts +85 -0
- package/dist/pipeline/upstreamTrace.d.ts +85 -0
- package/dist/pipeline/upstreamTrace.js +14 -0
- package/dist/ports/pricing-store.d.cts +4 -3
- package/dist/ports/pricing-store.d.ts +4 -3
- package/dist/ports.d.cts +4 -3
- package/dist/ports.d.ts +4 -3
- package/dist/provider-proxy/ProviderProxy.cjs +27 -24
- package/dist/provider-proxy/ProviderProxy.d.cts +1 -0
- package/dist/provider-proxy/ProviderProxy.d.ts +1 -0
- package/dist/provider-proxy/ProviderProxy.js +26 -23
- package/dist/provider-proxy/ingress/providerProxyShared.cjs +31 -24
- package/dist/provider-proxy/ingress/providerProxyShared.d.cts +50 -5
- package/dist/provider-proxy/ingress/providerProxyShared.d.ts +50 -5
- package/dist/provider-proxy/ingress/providerProxyShared.js +30 -23
- package/dist/provider-proxy/matchText.cjs +4 -2
- package/dist/provider-proxy/matchText.d.cts +41 -6
- package/dist/provider-proxy/matchText.d.ts +41 -6
- package/dist/provider-proxy/matchText.js +3 -1
- package/dist/provider-proxy/types.d.cts +30 -2
- package/dist/provider-proxy/types.d.ts +30 -2
- package/dist/provider-proxy.cjs +27 -24
- package/dist/provider-proxy.d.cts +1 -0
- package/dist/provider-proxy.d.ts +1 -0
- package/dist/provider-proxy.js +26 -23
- package/dist/{routeResolver-C4T7yClx.d.ts → routeResolver-CHTv_Bs5.d.ts} +1 -1
- package/dist/{routeResolver-CB3tvJKy.d.cts → routeResolver-kepxnfcC.d.cts} +1 -1
- package/dist/transformer/TransformerChainExecutor.cjs +2 -2
- package/dist/transformer/TransformerChainExecutor.js +1 -1
- package/dist/transformer/transformers/AnthropicTransformer.cjs +2 -2
- package/dist/transformer/transformers/AnthropicTransformer.js +1 -1
- package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +3 -3
- package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +2 -2
- package/dist/transformer/transformers/GeminiTransformer.cjs +3 -3
- package/dist/transformer/transformers/GeminiTransformer.js +2 -2
- package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +2 -2
- package/dist/transformer/transformers/OpenAIResponseTransformer.d.cts +1 -1
- package/dist/transformer/transformers/OpenAIResponseTransformer.d.ts +1 -1
- package/dist/transformer/transformers/OpenAIResponseTransformer.js +1 -1
- package/dist/transformer/transformers/OpenAITransformer.cjs +6 -0
- package/dist/transformer/transformers/OpenAITransformer.d.cts +68 -0
- package/dist/transformer/transformers/OpenAITransformer.d.ts +68 -0
- package/dist/transformer/transformers/OpenAITransformer.js +6 -0
- package/dist/transformer/transformers.cjs +8 -14
- package/dist/transformer/transformers.d.cts +12 -48
- package/dist/transformer/transformers.d.ts +12 -48
- package/dist/transformer/transformers.js +11 -17
- package/dist/transformer/types.d.cts +17 -0
- package/dist/transformer/types.d.ts +17 -0
- package/dist/transformer.cjs +11 -12
- package/dist/transformer.d.cts +1 -2
- package/dist/transformer.d.ts +1 -2
- package/dist/transformer.js +11 -12
- package/dist/{types-B8Arpxn0.d.cts → types-H3wGZSOo.d.cts} +134 -7
- package/dist/{types-lgPYQuZS.d.ts → types-hsoKrVQS.d.ts} +134 -7
- package/dist/usage/pricing-engine.cjs +2 -2
- package/dist/usage/pricing-engine.d.cts +9 -1
- package/dist/usage/pricing-engine.d.ts +9 -1
- package/dist/usage/pricing-engine.js +1 -1
- package/dist/usage.cjs +2 -2
- package/dist/usage.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-C72S6TTV.cjs +0 -49
- package/dist/chunk-DWKQZ2SK.cjs +0 -254
- package/dist/chunk-IAXWICZU.js +0 -69
- package/dist/chunk-QWBWGODS.cjs +0 -69
- package/dist/chunk-RGTR7CIO.cjs +0 -235
- package/dist/chunk-VPBAUQ2M.js +0 -235
- package/dist/chunk-YMFAJFQT.cjs +0 -173
- package/dist/chunk-Z7LUNECE.js +0 -49
- package/dist/chunk-ZJZAOKI7.js +0 -254
- package/dist/transformer/transformers/OpenCodeGoTransformer.cjs +0 -6
- package/dist/transformer/transformers/OpenCodeGoTransformer.d.cts +0 -51
- package/dist/transformer/transformers/OpenCodeGoTransformer.d.ts +0 -51
- package/dist/transformer/transformers/OpenCodeGoTransformer.js +0 -6
- package/dist/transformer/transformers/ReasoningTransformer.cjs +0 -6
- package/dist/transformer/transformers/ReasoningTransformer.d.cts +0 -47
- package/dist/transformer/transformers/ReasoningTransformer.d.ts +0 -47
- 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,6 +45,7 @@ var SubscriptionAccountHealth = class {
|
|
|
44
45
|
records = /* @__PURE__ */ new Map();
|
|
45
46
|
listeners = /* @__PURE__ */ new Set();
|
|
46
47
|
anomalyListeners = /* @__PURE__ */ new Set();
|
|
48
|
+
diagnostics = [];
|
|
47
49
|
now;
|
|
48
50
|
overloadEnabled;
|
|
49
51
|
overloadTtlMs;
|
|
@@ -71,8 +73,8 @@ var SubscriptionAccountHealth = 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
|
|
75
|
-
*
|
|
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 {
|
|
|
86
88
|
return !active;
|
|
87
89
|
}
|
|
88
90
|
/**
|
|
89
|
-
* The single marking entry point (design D3)
|
|
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 {
|
|
|
141
143
|
}
|
|
142
144
|
if (isRecordEmpty(record)) this.records.delete(key);
|
|
143
145
|
else this.records.set(key, record);
|
|
144
|
-
if (recovered)
|
|
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
|
-
|
|
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 {
|
|
|
196
209
|
this.records.delete(key);
|
|
197
210
|
}
|
|
198
211
|
}
|
|
199
|
-
for (const event of recovered)
|
|
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 {
|
|
|
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 {
|
|
|
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
|
|
@@ -303,6 +338,7 @@ export {
|
|
|
303
338
|
OVERLOAD_ENABLED_DEFAULT,
|
|
304
339
|
AUTH_ERROR_TTL_MS,
|
|
305
340
|
SERVER_ERROR_TTL_MS,
|
|
341
|
+
ACCOUNT_HEALTH_DIAGNOSTIC_LIMIT,
|
|
306
342
|
resolveResetSeconds,
|
|
307
343
|
SubscriptionAccountHealth,
|
|
308
344
|
getSharedAccountHealth,
|
|
@@ -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
|
|
75
|
-
*
|
|
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)
|
|
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)
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
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,51 +1,54 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkSQYVORNPcjs = require('../chunk-SQYVORNP.cjs');
|
|
4
|
+
require('../chunk-EJLH6NFT.cjs');
|
|
4
5
|
require('../chunk-HQP3K7PU.cjs');
|
|
5
6
|
require('../chunk-FZ46M34D.cjs');
|
|
7
|
+
require('../chunk-IIRPUVPH.cjs');
|
|
8
|
+
require('../chunk-GBHYAGX3.cjs');
|
|
6
9
|
require('../chunk-3OPYJG76.cjs');
|
|
7
|
-
require('../chunk-
|
|
8
|
-
require('../chunk-
|
|
9
|
-
require('../chunk-
|
|
10
|
-
require('../chunk-
|
|
11
|
-
require('../chunk-
|
|
12
|
-
require('../chunk-C72S6TTV.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');
|
|
13
15
|
require('../chunk-EYZYXJTJ.cjs');
|
|
14
|
-
require('../chunk-
|
|
16
|
+
require('../chunk-DLXZEZWO.cjs');
|
|
15
17
|
require('../chunk-SNYBEXLB.cjs');
|
|
16
|
-
require('../chunk-
|
|
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-
|
|
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-
|
|
23
|
-
require('../chunk-
|
|
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-
|
|
34
|
+
require('../chunk-4VZX5F4T.cjs');
|
|
34
35
|
require('../chunk-QBZJ7P2T.cjs');
|
|
35
36
|
require('../chunk-4IH4EL7M.cjs');
|
|
36
37
|
require('../chunk-A2YMUCBT.cjs');
|
|
37
|
-
require('../chunk-
|
|
38
|
+
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-
|
|
42
|
-
require('../chunk-
|
|
43
|
-
require('../chunk-
|
|
44
|
-
require('../chunk-
|
|
42
|
+
require('../chunk-WYTEQ4Q5.cjs');
|
|
43
|
+
require('../chunk-OKMJLEXX.cjs');
|
|
44
|
+
require('../chunk-KBM2W6UY.cjs');
|
|
45
|
+
require('../chunk-KCVJWJST.cjs');
|
|
46
|
+
require('../chunk-3Z5BQZFM.cjs');
|
|
47
|
+
require('../chunk-HVBBDBS3.cjs');
|
|
45
48
|
require('../chunk-NZYN7C3P.cjs');
|
|
46
49
|
require('../chunk-JMJBSACD.cjs');
|
|
47
50
|
require('../chunk-GMMT7RVN.cjs');
|
|
48
51
|
require('../chunk-UNEFIWXI.cjs');
|
|
49
52
|
|
|
50
53
|
|
|
51
|
-
exports.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-
|
|
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-
|
|
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,47 +1,50 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CompletionService
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-UDCC7EMR.js";
|
|
4
|
+
import "../chunk-WB6PH56J.js";
|
|
4
5
|
import "../chunk-VVEHS2LI.js";
|
|
5
6
|
import "../chunk-46RLHI7D.js";
|
|
7
|
+
import "../chunk-WNKWAEUR.js";
|
|
8
|
+
import "../chunk-MZNPGW5Q.js";
|
|
6
9
|
import "../chunk-DK4A7DLE.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-Z7LUNECE.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";
|
|
13
15
|
import "../chunk-7VU7V2E4.js";
|
|
14
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-UX7VWA46.js";
|
|
15
17
|
import "../chunk-BPKCU575.js";
|
|
16
|
-
import "../chunk-
|
|
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-
|
|
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-
|
|
23
|
-
import "../chunk-
|
|
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-
|
|
34
|
+
import "../chunk-EBLFCNPY.js";
|
|
34
35
|
import "../chunk-AQ5TNQB7.js";
|
|
35
36
|
import "../chunk-XEKD23J5.js";
|
|
36
37
|
import "../chunk-H5JUT3KV.js";
|
|
37
|
-
import "../chunk-
|
|
38
|
+
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-
|
|
42
|
-
import "../chunk-
|
|
43
|
-
import "../chunk-
|
|
44
|
-
import "../chunk-
|
|
42
|
+
import "../chunk-AT7B7SOZ.js";
|
|
43
|
+
import "../chunk-N5T4M4GU.js";
|
|
44
|
+
import "../chunk-TOVPMMHM.js";
|
|
45
|
+
import "../chunk-SIZQQD6T.js";
|
|
46
|
+
import "../chunk-SYQF7OIR.js";
|
|
47
|
+
import "../chunk-MKF46GNZ.js";
|
|
45
48
|
import "../chunk-CDHS2QDC.js";
|
|
46
49
|
import "../chunk-Y7FO65VT.js";
|
|
47
50
|
import "../chunk-FMOBD2OQ.js";
|
package/dist/completion.cjs
CHANGED
|
@@ -9,39 +9,40 @@
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkSQYVORNPcjs = require('./chunk-SQYVORNP.cjs');
|
|
13
|
+
require('./chunk-EJLH6NFT.cjs');
|
|
13
14
|
require('./chunk-HQP3K7PU.cjs');
|
|
14
15
|
require('./chunk-FZ46M34D.cjs');
|
|
16
|
+
require('./chunk-IIRPUVPH.cjs');
|
|
17
|
+
require('./chunk-GBHYAGX3.cjs');
|
|
15
18
|
require('./chunk-3OPYJG76.cjs');
|
|
16
|
-
require('./chunk-
|
|
17
|
-
require('./chunk-
|
|
18
|
-
require('./chunk-
|
|
19
|
-
require('./chunk-
|
|
20
|
-
require('./chunk-
|
|
21
|
-
require('./chunk-C72S6TTV.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');
|
|
22
24
|
require('./chunk-EYZYXJTJ.cjs');
|
|
23
|
-
require('./chunk-
|
|
25
|
+
require('./chunk-DLXZEZWO.cjs');
|
|
24
26
|
require('./chunk-SNYBEXLB.cjs');
|
|
25
|
-
require('./chunk-
|
|
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-
|
|
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-
|
|
32
|
-
require('./chunk-
|
|
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-
|
|
45
|
+
require('./chunk-4VZX5F4T.cjs');
|
|
45
46
|
require('./chunk-QBZJ7P2T.cjs');
|
|
46
47
|
require('./chunk-4IH4EL7M.cjs');
|
|
47
48
|
|
|
@@ -55,14 +56,16 @@ require('./chunk-4IH4EL7M.cjs');
|
|
|
55
56
|
|
|
56
57
|
|
|
57
58
|
var _chunkA2YMUCBTcjs = require('./chunk-A2YMUCBT.cjs');
|
|
58
|
-
require('./chunk-
|
|
59
|
+
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-
|
|
63
|
-
require('./chunk-
|
|
64
|
-
require('./chunk-
|
|
65
|
-
require('./chunk-
|
|
63
|
+
require('./chunk-WYTEQ4Q5.cjs');
|
|
64
|
+
require('./chunk-OKMJLEXX.cjs');
|
|
65
|
+
require('./chunk-KBM2W6UY.cjs');
|
|
66
|
+
require('./chunk-KCVJWJST.cjs');
|
|
67
|
+
require('./chunk-3Z5BQZFM.cjs');
|
|
68
|
+
require('./chunk-HVBBDBS3.cjs');
|
|
66
69
|
|
|
67
70
|
|
|
68
71
|
|
|
@@ -103,4 +106,4 @@ require('./chunk-UNEFIWXI.cjs');
|
|
|
103
106
|
|
|
104
107
|
|
|
105
108
|
|
|
106
|
-
exports.BuiltinToolExecutor = _chunkNZYN7C3Pcjs.BuiltinToolExecutor; exports.CompletionService =
|
|
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;
|
package/dist/completion.d.cts
CHANGED
|
@@ -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-
|
|
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';
|
package/dist/completion.d.ts
CHANGED
|
@@ -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-
|
|
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';
|