@omnicross/core 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ApiConverter.cjs +3 -778
- package/dist/ApiConverter.js +12 -751
- package/dist/{CompletionService-DtOF_War.d.cts → CompletionService-D3a47vdU.d.cts} +2 -1
- package/dist/{CompletionService-7fCmKAP3.d.ts → CompletionService-DdWaAxq0.d.ts} +2 -1
- package/dist/auth/GeminiCodeAssistProjectResolver.cjs +32 -60
- package/dist/auth/GeminiCodeAssistProjectResolver.js +11 -10
- package/dist/builtin-web-fetch-77JZUZGM.cjs +100 -0
- package/dist/builtin-web-fetch-IGLBX2XY.js +100 -0
- package/dist/chunk-2DCNB7DF.cjs +514 -0
- package/dist/chunk-2FMI2B6V.cjs +6196 -0
- package/dist/chunk-3OPYJG76.cjs +266 -0
- package/dist/chunk-3QOSDDNI.cjs +130 -0
- package/dist/chunk-46RLHI7D.js +0 -0
- package/dist/chunk-46ZIFWYG.cjs +277 -0
- package/dist/chunk-4DECIFU7.js +6196 -0
- package/dist/chunk-4IH4EL7M.cjs +9 -0
- package/dist/chunk-4VAVYUZS.cjs +991 -0
- package/dist/chunk-5ENKBSWO.js +311 -0
- package/dist/chunk-5ERIZW3D.js +44 -0
- package/dist/chunk-5HTVET6E.js +514 -0
- package/dist/chunk-5ZQBEOMD.js +764 -0
- package/dist/chunk-6RPZADX3.cjs +92 -0
- package/dist/chunk-7VU7V2E4.js +0 -0
- package/dist/chunk-7YN22L2H.cjs +87 -0
- package/dist/chunk-A2YMUCBT.cjs +105 -0
- package/dist/chunk-AEOZIDEB.cjs +32 -0
- package/dist/chunk-AQ5TNQB7.js +13 -0
- package/dist/chunk-AVYJ4YBN.js +58 -0
- package/dist/chunk-BO4RFWBR.js +89 -0
- package/dist/chunk-C72S6TTV.cjs +49 -0
- package/dist/chunk-C7PSERMH.js +87 -0
- package/dist/chunk-CDHS2QDC.js +179 -0
- package/dist/chunk-CWM2ZDU5.js +130 -0
- package/dist/chunk-CZHZGRU7.js +383 -0
- package/dist/chunk-DK4A7DLE.js +266 -0
- package/dist/chunk-DQ5VAYZ6.cjs +42 -0
- package/dist/chunk-DRWHTIIZ.js +13 -0
- package/dist/chunk-DWKQZ2SK.cjs +254 -0
- package/dist/chunk-EYZYXJTJ.cjs +1 -0
- package/dist/chunk-FFALUUZZ.cjs +235 -0
- package/dist/chunk-FMOBD2OQ.js +39 -0
- package/dist/chunk-FTQ7IQUC.js +991 -0
- package/dist/chunk-FZ46M34D.cjs +1 -0
- package/dist/chunk-G2UTNSGU.js +277 -0
- package/dist/chunk-GBHYAGX3.cjs +26 -0
- package/dist/chunk-GMMT7RVN.cjs +39 -0
- package/dist/chunk-H5JUT3KV.js +105 -0
- package/dist/chunk-HQP3K7PU.cjs +431 -0
- package/dist/chunk-HUZZZ3JL.js +32 -0
- package/dist/chunk-IAXWICZU.js +69 -0
- package/dist/chunk-JMJBSACD.cjs +147 -0
- package/dist/chunk-JO5NLTLY.js +46 -0
- package/dist/chunk-JWC6APFQ.js +23 -0
- package/dist/chunk-KUU2RNG6.cjs +46 -0
- package/dist/chunk-L74VDN4A.cjs +32 -0
- package/dist/chunk-MQNDWYPN.js +235 -0
- package/dist/chunk-MZNPGW5Q.js +26 -0
- package/dist/chunk-N5QFKSDO.js +56 -0
- package/dist/chunk-NYUNU75A.cjs +44 -0
- package/dist/chunk-NZYN7C3P.cjs +179 -0
- package/dist/chunk-Q27JY5RG.cjs +126 -0
- package/dist/chunk-QBZJ7P2T.cjs +13 -0
- package/dist/chunk-QWBWGODS.cjs +69 -0
- package/dist/chunk-QXD4MV2X.cjs +23 -0
- package/dist/chunk-R3HK6R4B.cjs +13 -0
- package/dist/chunk-RPII3E6Z.cjs +145 -0
- package/dist/chunk-RSJ3TWJQ.cjs +186 -0
- package/dist/chunk-S4WBV25P.js +913 -0
- package/dist/chunk-S6JGLF3G.cjs +89 -0
- package/dist/chunk-SUEGJ75D.cjs +764 -0
- package/dist/chunk-SVNDB62D.cjs +58 -0
- package/dist/chunk-SVXC36MU.cjs +383 -0
- package/dist/chunk-TKJMZBAH.js +32 -0
- package/dist/chunk-UBWEBKRC.js +42 -0
- package/dist/chunk-UNEFIWXI.cjs +32 -0
- package/dist/chunk-VQY5W4YW.cjs +311 -0
- package/dist/chunk-VVEHS2LI.js +431 -0
- package/dist/chunk-WNY4WMRF.js +32 -0
- package/dist/chunk-XEKD23J5.js +9 -0
- package/dist/chunk-XTEI64OU.js +145 -0
- package/dist/chunk-XX6NQJMA.js +92 -0
- package/dist/chunk-Y6OM7EV7.cjs +56 -0
- package/dist/chunk-Y7FO65VT.js +147 -0
- package/dist/chunk-YGXJGRFI.cjs +913 -0
- package/dist/chunk-YMFAJFQT.cjs +173 -0
- package/dist/chunk-Z7LUNECE.js +49 -0
- package/dist/chunk-Z7Y2NPHY.js +186 -0
- package/dist/chunk-ZJZAOKI7.js +254 -0
- package/dist/chunk-ZLX3KGXX.js +173 -0
- package/dist/chunk-ZY6KU6P3.js +126 -0
- package/dist/completion/ApiKeyPoolService.cjs +23 -48
- package/dist/completion/ApiKeyPoolService.d.cts +150 -2
- package/dist/completion/ApiKeyPoolService.d.ts +150 -2
- package/dist/completion/BuiltinToolExecutor.cjs +9 -324
- package/dist/completion/BuiltinToolExecutor.js +6 -290
- package/dist/completion/CompletionService.cjs +45 -3487
- package/dist/completion/CompletionService.d.cts +3 -2
- package/dist/completion/CompletionService.d.ts +3 -2
- package/dist/completion/CompletionService.js +41 -3457
- package/dist/completion/NativeSearchInjector.cjs +8 -192
- package/dist/completion/NativeSearchInjector.js +7 -162
- package/dist/completion/ProviderSearchInjector.cjs +12 -39
- package/dist/completion/native-search-types.cjs +13 -66
- package/dist/completion/native-search-types.js +7 -31
- package/dist/completion/openrouter-headers.cjs +12 -71
- package/dist/completion/openrouter-headers.d.cts +9 -12
- package/dist/completion/openrouter-headers.d.ts +9 -12
- package/dist/completion/openrouter-headers.js +7 -36
- package/dist/completion/openrouter-models.cjs +11 -67
- package/dist/completion/openrouter-models.js +5 -34
- package/dist/completion/types.cjs +1 -18
- package/dist/completion/url-builder.cjs +24 -138
- package/dist/completion/url-builder.js +12 -92
- package/dist/completion.cjs +62 -3989
- package/dist/completion.d.cts +3 -2
- package/dist/completion.d.ts +3 -2
- package/dist/completion.js +70 -3953
- package/dist/index.cjs +319 -10429
- package/dist/index.d.cts +49 -12
- package/dist/index.d.ts +49 -12
- package/dist/index.js +248 -10269
- package/dist/logger-4GvQNzhE.d.cts +22 -0
- package/dist/logger-4GvQNzhE.d.ts +22 -0
- package/dist/outbound-api/routeResolver.cjs +10 -217
- package/dist/outbound-api/routeResolver.d.cts +10 -3
- package/dist/outbound-api/routeResolver.d.ts +10 -3
- package/dist/outbound-api/routeResolver.js +9 -187
- package/dist/outbound-api/subscriptionRegistryPort.cjs +7 -37
- package/dist/outbound-api/subscriptionRegistryPort.d.cts +2 -1
- package/dist/outbound-api/subscriptionRegistryPort.d.ts +2 -1
- package/dist/outbound-api/subscriptionRegistryPort.js +4 -8
- package/dist/outbound-api/types.cjs +5 -17
- package/dist/outbound-api/types.d.cts +12 -144
- package/dist/outbound-api/types.d.ts +12 -144
- package/dist/outbound-api/types.js +6 -0
- package/dist/outbound-api.cjs +197 -5265
- package/dist/outbound-api.d.cts +787 -25
- package/dist/outbound-api.d.ts +787 -25
- package/dist/outbound-api.js +173 -5195
- package/dist/pipeline/AuthSource.cjs +1 -18
- package/dist/pipeline/AuthSource.d.cts +23 -1
- package/dist/pipeline/AuthSource.d.ts +23 -1
- package/dist/pipeline/LlmConfigProviderAuth.cjs +5 -166
- package/dist/pipeline/LlmConfigProviderAuth.d.cts +2 -1
- package/dist/pipeline/LlmConfigProviderAuth.d.ts +2 -1
- package/dist/pipeline/LlmConfigProviderAuth.js +5 -139
- package/dist/pipeline/SubscriptionAccountHealth.cjs +22 -0
- package/dist/pipeline/SubscriptionAccountHealth.d.cts +235 -0
- package/dist/pipeline/SubscriptionAccountHealth.d.ts +235 -0
- package/dist/pipeline/SubscriptionAccountHealth.js +22 -0
- package/dist/pipeline/SubscriptionAuthSource.cjs +6 -128
- package/dist/pipeline/SubscriptionAuthSource.d.cts +3 -2
- package/dist/pipeline/SubscriptionAuthSource.d.ts +3 -2
- package/dist/pipeline/SubscriptionAuthSource.js +5 -99
- package/dist/pipeline/SubscriptionAuthStrategy.cjs +1 -18
- package/dist/pipeline/SubscriptionAuthStrategy.d.cts +24 -1
- package/dist/pipeline/SubscriptionAuthStrategy.d.ts +24 -1
- package/dist/pipeline/auditSink.cjs +14 -0
- package/dist/pipeline/auditSink.d.cts +48 -0
- package/dist/pipeline/auditSink.d.ts +48 -0
- package/dist/pipeline/auditSink.js +14 -0
- package/dist/pipeline/billingEmit.cjs +14 -0
- package/dist/pipeline/billingEmit.d.cts +49 -0
- package/dist/pipeline/billingEmit.d.ts +49 -0
- package/dist/pipeline/billingEmit.js +14 -0
- package/dist/pipeline/executeProviderCall.cjs +5 -69
- package/dist/pipeline/executeProviderCall.js +3 -42
- package/dist/pipeline/resolveProviderChain.cjs +5 -46
- package/dist/pipeline/resolveProviderChain.js +3 -19
- package/dist/pipeline/resolveSubscriptionChain.cjs +5 -67
- package/dist/pipeline/resolveSubscriptionChain.js +3 -40
- package/dist/ports/gemini-code-assist-resolver.cjs +7 -37
- package/dist/ports/gemini-code-assist-resolver.js +4 -8
- package/dist/ports/pricing-store.cjs +1 -0
- package/dist/ports/pricing-store.d.cts +50 -0
- package/dist/ports/pricing-store.d.ts +50 -0
- package/dist/ports/pricing-store.js +0 -0
- package/dist/ports/provider-config-source.cjs +1 -18
- package/dist/ports/usage-event-store.cjs +1 -0
- package/dist/ports/usage-event-store.d.cts +54 -0
- package/dist/ports/usage-event-store.d.ts +54 -0
- package/dist/ports/usage-event-store.js +0 -0
- package/dist/ports/web-search-backend.cjs +1 -18
- package/dist/ports.cjs +1 -18
- package/dist/ports.d.cts +13 -2
- package/dist/ports.d.ts +13 -2
- package/dist/provider-proxy/ProviderProxy.cjs +47 -4643
- package/dist/provider-proxy/ProviderProxy.d.cts +2 -1
- package/dist/provider-proxy/ProviderProxy.d.ts +2 -1
- package/dist/provider-proxy/ProviderProxy.js +42 -4613
- package/dist/provider-proxy/identity/SubscriptionIdentityStore.cjs +15 -0
- package/dist/provider-proxy/identity/SubscriptionIdentityStore.d.cts +121 -0
- package/dist/provider-proxy/identity/SubscriptionIdentityStore.d.ts +121 -0
- package/dist/provider-proxy/identity/SubscriptionIdentityStore.js +15 -0
- package/dist/provider-proxy/identity/fingerprintHeaders.cjs +20 -0
- package/dist/provider-proxy/identity/fingerprintHeaders.d.cts +89 -0
- package/dist/provider-proxy/identity/fingerprintHeaders.d.ts +89 -0
- package/dist/provider-proxy/identity/fingerprintHeaders.js +20 -0
- package/dist/provider-proxy/ingress/providerProxyShared.cjs +42 -2941
- package/dist/provider-proxy/ingress/providerProxyShared.d.cts +13 -3
- package/dist/provider-proxy/ingress/providerProxyShared.d.ts +13 -3
- package/dist/provider-proxy/ingress/providerProxyShared.js +48 -2914
- package/dist/provider-proxy/matchText.cjs +13 -72
- package/dist/provider-proxy/matchText.d.cts +14 -1
- package/dist/provider-proxy/matchText.d.ts +14 -1
- package/dist/provider-proxy/matchText.js +8 -39
- package/dist/provider-proxy/types.cjs +1 -18
- package/dist/provider-proxy/types.d.cts +25 -1
- package/dist/provider-proxy/types.d.ts +25 -1
- package/dist/provider-proxy.cjs +42 -4655
- package/dist/provider-proxy.d.cts +2 -1
- package/dist/provider-proxy.d.ts +2 -1
- package/dist/provider-proxy.js +46 -4628
- package/dist/{routeResolver-HE-ZO0fO.d.ts → routeResolver-B1NglTfe.d.ts} +36 -10
- package/dist/{routeResolver-BrbK6ja9.d.cts → routeResolver-CbG5uBgm.d.cts} +36 -10
- package/dist/serializeError.cjs +5 -81
- package/dist/serializeError.js +3 -54
- package/dist/sse-parser.cjs +7 -455
- package/dist/sse-parser.js +4 -426
- package/dist/transformer/TransformerChainExecutor.cjs +4 -318
- package/dist/transformer/TransformerChainExecutor.js +4 -291
- package/dist/transformer/TransformerService.cjs +5 -289
- package/dist/transformer/TransformerService.js +3 -262
- package/dist/transformer/anthropicBetaInject.cjs +7 -50
- package/dist/transformer/anthropicBetaInject.js +4 -21
- package/dist/transformer/transformers/AnthropicTransformer.cjs +3 -1014
- package/dist/transformer/transformers/AnthropicTransformer.js +3 -987
- package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +4 -1106
- package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +7 -1079
- package/dist/transformer/transformers/GeminiTransformer.cjs +4 -1010
- package/dist/transformer/transformers/GeminiTransformer.js +4 -983
- package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +3 -535
- package/dist/transformer/transformers/OpenAIResponseTransformer.js +3 -510
- package/dist/transformer/transformers/OpenCodeGoTransformer.cjs +5 -72
- package/dist/transformer/transformers/OpenCodeGoTransformer.js +3 -45
- package/dist/transformer/transformers/ReasoningTransformer.cjs +3 -270
- package/dist/transformer/transformers/ReasoningTransformer.js +2 -249
- package/dist/transformer/transformers.cjs +10 -3177
- package/dist/transformer/transformers.js +23 -3158
- package/dist/transformer/types.cjs +1 -18
- package/dist/transformer.cjs +13 -3726
- package/dist/transformer.js +17 -3706
- package/dist/types-6OUY_xfA.d.ts +830 -0
- package/dist/types-aBFFXoBz.d.cts +830 -0
- package/dist/usage/pricing-engine.cjs +6 -0
- package/dist/usage/pricing-engine.d.cts +83 -0
- package/dist/usage/pricing-engine.d.ts +83 -0
- package/dist/usage/pricing-engine.js +6 -0
- package/dist/usage/usage-recorder.cjs +6 -0
- package/dist/usage/usage-recorder.d.cts +91 -0
- package/dist/usage/usage-recorder.d.ts +91 -0
- package/dist/usage/usage-recorder.js +6 -0
- package/dist/usage.cjs +11 -0
- package/dist/usage.d.cts +8 -0
- package/dist/usage.d.ts +8 -0
- package/dist/usage.js +11 -0
- package/package.json +4 -2
- package/dist/ApiKeyPoolService-BmMkau07.d.cts +0 -170
- package/dist/ApiKeyPoolService-BmMkau07.d.ts +0 -170
|
@@ -1,18 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
|
|
16
|
-
// src/pipeline/AuthSource.ts
|
|
17
|
-
var AuthSource_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(AuthSource_exports);
|
|
1
|
+
"use strict";
|
|
@@ -34,6 +34,24 @@ interface AuthApplyHints {
|
|
|
34
34
|
upstreamUrl: string;
|
|
35
35
|
/** Resolved model id for the request. */
|
|
36
36
|
model: string;
|
|
37
|
+
/**
|
|
38
|
+
* OPTIONAL stable per-conversation session key (subscription-account-scheduling,
|
|
39
|
+
* D5) — mapped through to the subscription strategy's sticky account affinity.
|
|
40
|
+
* BYO auth sources ignore it.
|
|
41
|
+
*/
|
|
42
|
+
sessionKey?: string;
|
|
43
|
+
/**
|
|
44
|
+
* OPTIONAL per-request selection callback (subscription-account-health, D5;
|
|
45
|
+
* subscription-account-model-map, D3). A subscription strategy invokes it with
|
|
46
|
+
* the EFFECTIVE account id it resolved (the selected non-active id, or the active
|
|
47
|
+
* id on the null/≤1 path) so the relay can mark that account's health against the
|
|
48
|
+
* upstream outcome. The OPTIONAL 3rd `remappedModel` carries the selected
|
|
49
|
+
* account's ACTUAL upstream model when its `supportedModels` object remaps the
|
|
50
|
+
* request model — the relay rewrites the outbound `body.model` to it on the
|
|
51
|
+
* pass-through / same-format path (absent ⇒ forward verbatim). Fresh per request
|
|
52
|
+
* (no cross-request race). BYO auth sources ignore it.
|
|
53
|
+
*/
|
|
54
|
+
reportSelection?: (accountId: string, isActive: boolean, remappedModel?: string) => void;
|
|
37
55
|
}
|
|
38
56
|
/**
|
|
39
57
|
* Result of {@link AuthSource.onResult}.
|
|
@@ -74,8 +92,12 @@ interface AuthSource {
|
|
|
74
92
|
* Called when the upstream returns 401. Return `true` to ask the caller to
|
|
75
93
|
* retry once with freshly-applied headers; `false` to surface the 401.
|
|
76
94
|
* Optional — sources without a refresh notion omit it.
|
|
95
|
+
*
|
|
96
|
+
* The OPTIONAL `sessionKey` (subscription-account-scheduling, D7) lets a
|
|
97
|
+
* subscription source refresh the account the request was actually served by;
|
|
98
|
+
* BYO sources ignore it.
|
|
77
99
|
*/
|
|
78
|
-
onUnauthorized?(): Promise<boolean>;
|
|
100
|
+
onUnauthorized?(sessionKey?: string): Promise<boolean>;
|
|
79
101
|
/**
|
|
80
102
|
* Resolve the upstream URL the request should target, when the credential
|
|
81
103
|
* dictates it (e.g. a subscription profile's per-model endpoint). Returns
|
|
@@ -34,6 +34,24 @@ interface AuthApplyHints {
|
|
|
34
34
|
upstreamUrl: string;
|
|
35
35
|
/** Resolved model id for the request. */
|
|
36
36
|
model: string;
|
|
37
|
+
/**
|
|
38
|
+
* OPTIONAL stable per-conversation session key (subscription-account-scheduling,
|
|
39
|
+
* D5) — mapped through to the subscription strategy's sticky account affinity.
|
|
40
|
+
* BYO auth sources ignore it.
|
|
41
|
+
*/
|
|
42
|
+
sessionKey?: string;
|
|
43
|
+
/**
|
|
44
|
+
* OPTIONAL per-request selection callback (subscription-account-health, D5;
|
|
45
|
+
* subscription-account-model-map, D3). A subscription strategy invokes it with
|
|
46
|
+
* the EFFECTIVE account id it resolved (the selected non-active id, or the active
|
|
47
|
+
* id on the null/≤1 path) so the relay can mark that account's health against the
|
|
48
|
+
* upstream outcome. The OPTIONAL 3rd `remappedModel` carries the selected
|
|
49
|
+
* account's ACTUAL upstream model when its `supportedModels` object remaps the
|
|
50
|
+
* request model — the relay rewrites the outbound `body.model` to it on the
|
|
51
|
+
* pass-through / same-format path (absent ⇒ forward verbatim). Fresh per request
|
|
52
|
+
* (no cross-request race). BYO auth sources ignore it.
|
|
53
|
+
*/
|
|
54
|
+
reportSelection?: (accountId: string, isActive: boolean, remappedModel?: string) => void;
|
|
37
55
|
}
|
|
38
56
|
/**
|
|
39
57
|
* Result of {@link AuthSource.onResult}.
|
|
@@ -74,8 +92,12 @@ interface AuthSource {
|
|
|
74
92
|
* Called when the upstream returns 401. Return `true` to ask the caller to
|
|
75
93
|
* retry once with freshly-applied headers; `false` to surface the 401.
|
|
76
94
|
* Optional — sources without a refresh notion omit it.
|
|
95
|
+
*
|
|
96
|
+
* The OPTIONAL `sessionKey` (subscription-account-scheduling, D7) lets a
|
|
97
|
+
* subscription source refresh the account the request was actually served by;
|
|
98
|
+
* BYO sources ignore it.
|
|
77
99
|
*/
|
|
78
|
-
onUnauthorized?(): Promise<boolean>;
|
|
100
|
+
onUnauthorized?(sessionKey?: string): Promise<boolean>;
|
|
79
101
|
/**
|
|
80
102
|
* Resolve the upstream URL the request should target, when the credential
|
|
81
103
|
* dictates it (e.g. a subscription profile's per-model endpoint). Returns
|
|
@@ -1,169 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
LlmConfigProviderAuth: () => LlmConfigProviderAuth
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(LlmConfigProviderAuth_exports);
|
|
3
|
+
var _chunkQ27JY5RGcjs = require('../chunk-Q27JY5RG.cjs');
|
|
4
|
+
require('../chunk-A2YMUCBT.cjs');
|
|
5
|
+
require('../chunk-UNEFIWXI.cjs');
|
|
26
6
|
|
|
27
|
-
// src/openrouter.ts
|
|
28
|
-
function isOpenRouterProvider(provider) {
|
|
29
|
-
const baseUrl = (provider.api_base_url || "").toLowerCase();
|
|
30
|
-
return baseUrl.includes("openrouter.ai");
|
|
31
|
-
}
|
|
32
|
-
var OPENROUTER_APP_HEADERS = {
|
|
33
|
-
"HTTP-Referer": "https://omnicross.dev",
|
|
34
|
-
"X-Title": "omnicross"
|
|
35
|
-
};
|
|
36
7
|
|
|
37
|
-
|
|
38
|
-
var import_endpoint_resolver = require("@omnicross/contracts/endpoint-resolver");
|
|
39
|
-
function resolveApiFormat(provider) {
|
|
40
|
-
if (provider.apiFormat) {
|
|
41
|
-
return provider.apiFormat;
|
|
42
|
-
}
|
|
43
|
-
if (provider.chatApiFormat) {
|
|
44
|
-
return provider.chatApiFormat;
|
|
45
|
-
}
|
|
46
|
-
if (provider.apiType === "claudecode" || provider.apiType === "anthropic") {
|
|
47
|
-
return "anthropic";
|
|
48
|
-
}
|
|
49
|
-
if (provider.apiType === "google") {
|
|
50
|
-
return "google";
|
|
51
|
-
}
|
|
52
|
-
return "openai";
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// src/completion/header-builder.ts
|
|
56
|
-
function getProviderHeaders(provider, apiKey) {
|
|
57
|
-
const format = resolveApiFormat(provider);
|
|
58
|
-
let headers;
|
|
59
|
-
switch (format) {
|
|
60
|
-
case "anthropic":
|
|
61
|
-
headers = {
|
|
62
|
-
"Content-Type": "application/json",
|
|
63
|
-
"x-api-key": apiKey,
|
|
64
|
-
"anthropic-version": "2025-01-10"
|
|
65
|
-
// Required for extended thinking feature
|
|
66
|
-
};
|
|
67
|
-
break;
|
|
68
|
-
case "google":
|
|
69
|
-
headers = {
|
|
70
|
-
"Content-Type": "application/json",
|
|
71
|
-
"x-goog-api-key": apiKey
|
|
72
|
-
};
|
|
73
|
-
break;
|
|
74
|
-
case "azure-openai":
|
|
75
|
-
headers = {
|
|
76
|
-
"Content-Type": "application/json",
|
|
77
|
-
"api-key": apiKey
|
|
78
|
-
};
|
|
79
|
-
break;
|
|
80
|
-
case "openai":
|
|
81
|
-
case "openai-response":
|
|
82
|
-
default:
|
|
83
|
-
headers = {
|
|
84
|
-
"Content-Type": "application/json",
|
|
85
|
-
"Authorization": `Bearer ${apiKey}`
|
|
86
|
-
};
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
if (isOpenRouterProvider(provider)) {
|
|
90
|
-
return { ...headers, ...OPENROUTER_APP_HEADERS };
|
|
91
|
-
}
|
|
92
|
-
return headers;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// src/pipeline/LlmConfigProviderAuth.ts
|
|
96
|
-
function isReportableStatus(status) {
|
|
97
|
-
return status === 429 || status === 529 || status === 401 || status === 403;
|
|
98
|
-
}
|
|
99
|
-
var LlmConfigProviderAuth = class {
|
|
100
|
-
provider;
|
|
101
|
-
apiKeyPool;
|
|
102
|
-
providerId;
|
|
103
|
-
sessionId;
|
|
104
|
-
/**
|
|
105
|
-
* The current resolved key. Mutable so a Phase-3 caller can read the
|
|
106
|
-
* rotated key after `onResult`; this phase it is only set at construction
|
|
107
|
-
* and updated inside `onResult` (mirroring the inline re-point in
|
|
108
|
-
* `callWithPoolReporting`).
|
|
109
|
-
*/
|
|
110
|
-
apiKey;
|
|
111
|
-
constructor(opts) {
|
|
112
|
-
this.provider = opts.provider;
|
|
113
|
-
this.apiKey = opts.apiKey;
|
|
114
|
-
this.apiKeyPool = opts.apiKeyPool ?? null;
|
|
115
|
-
this.providerId = opts.providerId;
|
|
116
|
-
this.sessionId = opts.sessionId;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Merge the provider auth headers (and content-type / OpenRouter app
|
|
120
|
-
* headers) into `headers`, exactly as a direct `getProviderHeaders` call
|
|
121
|
-
* would produce them. `hints` are accepted for contract symmetry but the
|
|
122
|
-
* provider-key path does not vary headers by URL/model.
|
|
123
|
-
*/
|
|
124
|
-
applyHeaders(headers, _hints) {
|
|
125
|
-
const authHeaders = getProviderHeaders(this.provider, this.apiKey);
|
|
126
|
-
for (const [k, v] of Object.entries(authHeaders)) {
|
|
127
|
-
headers[k] = v;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* React to the final HTTP status — the pool-rotation seam (design D5).
|
|
132
|
-
*
|
|
133
|
-
* Reproduces `callWithPoolReporting`'s reportable + success branches:
|
|
134
|
-
* - reportable status (429/529/401/403) on a pool-backed request →
|
|
135
|
-
* `reportError(providerId, sessionId, status)`; when it hands back a
|
|
136
|
-
* `newKey` the session was re-bound, so we adopt it (`this.apiKey`) and
|
|
137
|
-
* return `{ rebound: true, newKey }`. When no key is available it returns
|
|
138
|
-
* `{ rebound: false }` (the session is still cooled/disabled by the report).
|
|
139
|
-
* - success / any 2xx → `reportSuccess(sessionId)`; `{ rebound: false }`.
|
|
140
|
-
* - non-reportable, non-success, or non-pool request → no-op
|
|
141
|
-
* `{ rebound: false }`.
|
|
142
|
-
*
|
|
143
|
-
* NOTE: no caller invokes this in Phase 2; it is unit-tested in isolation.
|
|
144
|
-
*/
|
|
145
|
-
async onResult(status) {
|
|
146
|
-
const pool = this.apiKeyPool;
|
|
147
|
-
const providerId = this.providerId;
|
|
148
|
-
const sessionId = this.sessionId;
|
|
149
|
-
if (!pool || !providerId || !sessionId) {
|
|
150
|
-
return { rebound: false };
|
|
151
|
-
}
|
|
152
|
-
if (isReportableStatus(status)) {
|
|
153
|
-
const newKey = await pool.reportError(providerId, sessionId, status);
|
|
154
|
-
if (newKey) {
|
|
155
|
-
this.apiKey = newKey;
|
|
156
|
-
return { rebound: true, newKey };
|
|
157
|
-
}
|
|
158
|
-
return { rebound: false };
|
|
159
|
-
}
|
|
160
|
-
if (status !== null && status >= 200 && status < 300) {
|
|
161
|
-
pool.reportSuccess(sessionId);
|
|
162
|
-
}
|
|
163
|
-
return { rebound: false };
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
167
|
-
0 && (module.exports = {
|
|
168
|
-
LlmConfigProviderAuth
|
|
169
|
-
});
|
|
8
|
+
exports.LlmConfigProviderAuth = _chunkQ27JY5RGcjs.LlmConfigProviderAuth;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LLMProvider } from '@omnicross/contracts/llm-config';
|
|
2
|
-
import {
|
|
2
|
+
import { ApiKeyPoolService } from '../completion/ApiKeyPoolService.cjs';
|
|
3
3
|
import { AuthSource, AuthApplyHints, AuthResultOutcome } from './AuthSource.cjs';
|
|
4
|
+
import '../logger-4GvQNzhE.cjs';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* LlmConfigProviderAuth — `AuthSource` for LLM-config provider rows.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LLMProvider } from '@omnicross/contracts/llm-config';
|
|
2
|
-
import {
|
|
2
|
+
import { ApiKeyPoolService } from '../completion/ApiKeyPoolService.js';
|
|
3
3
|
import { AuthSource, AuthApplyHints, AuthResultOutcome } from './AuthSource.js';
|
|
4
|
+
import '../logger-4GvQNzhE.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* LlmConfigProviderAuth — `AuthSource` for LLM-config provider rows.
|
|
@@ -1,142 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var OPENROUTER_APP_HEADERS = {
|
|
7
|
-
"HTTP-Referer": "https://omnicross.dev",
|
|
8
|
-
"X-Title": "omnicross"
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
// src/completion/url-builder.ts
|
|
12
|
-
import { resolveProviderEndpoint as resolveProviderEndpointShared } from "@omnicross/contracts/endpoint-resolver";
|
|
13
|
-
function resolveApiFormat(provider) {
|
|
14
|
-
if (provider.apiFormat) {
|
|
15
|
-
return provider.apiFormat;
|
|
16
|
-
}
|
|
17
|
-
if (provider.chatApiFormat) {
|
|
18
|
-
return provider.chatApiFormat;
|
|
19
|
-
}
|
|
20
|
-
if (provider.apiType === "claudecode" || provider.apiType === "anthropic") {
|
|
21
|
-
return "anthropic";
|
|
22
|
-
}
|
|
23
|
-
if (provider.apiType === "google") {
|
|
24
|
-
return "google";
|
|
25
|
-
}
|
|
26
|
-
return "openai";
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// src/completion/header-builder.ts
|
|
30
|
-
function getProviderHeaders(provider, apiKey) {
|
|
31
|
-
const format = resolveApiFormat(provider);
|
|
32
|
-
let headers;
|
|
33
|
-
switch (format) {
|
|
34
|
-
case "anthropic":
|
|
35
|
-
headers = {
|
|
36
|
-
"Content-Type": "application/json",
|
|
37
|
-
"x-api-key": apiKey,
|
|
38
|
-
"anthropic-version": "2025-01-10"
|
|
39
|
-
// Required for extended thinking feature
|
|
40
|
-
};
|
|
41
|
-
break;
|
|
42
|
-
case "google":
|
|
43
|
-
headers = {
|
|
44
|
-
"Content-Type": "application/json",
|
|
45
|
-
"x-goog-api-key": apiKey
|
|
46
|
-
};
|
|
47
|
-
break;
|
|
48
|
-
case "azure-openai":
|
|
49
|
-
headers = {
|
|
50
|
-
"Content-Type": "application/json",
|
|
51
|
-
"api-key": apiKey
|
|
52
|
-
};
|
|
53
|
-
break;
|
|
54
|
-
case "openai":
|
|
55
|
-
case "openai-response":
|
|
56
|
-
default:
|
|
57
|
-
headers = {
|
|
58
|
-
"Content-Type": "application/json",
|
|
59
|
-
"Authorization": `Bearer ${apiKey}`
|
|
60
|
-
};
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
if (isOpenRouterProvider(provider)) {
|
|
64
|
-
return { ...headers, ...OPENROUTER_APP_HEADERS };
|
|
65
|
-
}
|
|
66
|
-
return headers;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// src/pipeline/LlmConfigProviderAuth.ts
|
|
70
|
-
function isReportableStatus(status) {
|
|
71
|
-
return status === 429 || status === 529 || status === 401 || status === 403;
|
|
72
|
-
}
|
|
73
|
-
var LlmConfigProviderAuth = class {
|
|
74
|
-
provider;
|
|
75
|
-
apiKeyPool;
|
|
76
|
-
providerId;
|
|
77
|
-
sessionId;
|
|
78
|
-
/**
|
|
79
|
-
* The current resolved key. Mutable so a Phase-3 caller can read the
|
|
80
|
-
* rotated key after `onResult`; this phase it is only set at construction
|
|
81
|
-
* and updated inside `onResult` (mirroring the inline re-point in
|
|
82
|
-
* `callWithPoolReporting`).
|
|
83
|
-
*/
|
|
84
|
-
apiKey;
|
|
85
|
-
constructor(opts) {
|
|
86
|
-
this.provider = opts.provider;
|
|
87
|
-
this.apiKey = opts.apiKey;
|
|
88
|
-
this.apiKeyPool = opts.apiKeyPool ?? null;
|
|
89
|
-
this.providerId = opts.providerId;
|
|
90
|
-
this.sessionId = opts.sessionId;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Merge the provider auth headers (and content-type / OpenRouter app
|
|
94
|
-
* headers) into `headers`, exactly as a direct `getProviderHeaders` call
|
|
95
|
-
* would produce them. `hints` are accepted for contract symmetry but the
|
|
96
|
-
* provider-key path does not vary headers by URL/model.
|
|
97
|
-
*/
|
|
98
|
-
applyHeaders(headers, _hints) {
|
|
99
|
-
const authHeaders = getProviderHeaders(this.provider, this.apiKey);
|
|
100
|
-
for (const [k, v] of Object.entries(authHeaders)) {
|
|
101
|
-
headers[k] = v;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* React to the final HTTP status — the pool-rotation seam (design D5).
|
|
106
|
-
*
|
|
107
|
-
* Reproduces `callWithPoolReporting`'s reportable + success branches:
|
|
108
|
-
* - reportable status (429/529/401/403) on a pool-backed request →
|
|
109
|
-
* `reportError(providerId, sessionId, status)`; when it hands back a
|
|
110
|
-
* `newKey` the session was re-bound, so we adopt it (`this.apiKey`) and
|
|
111
|
-
* return `{ rebound: true, newKey }`. When no key is available it returns
|
|
112
|
-
* `{ rebound: false }` (the session is still cooled/disabled by the report).
|
|
113
|
-
* - success / any 2xx → `reportSuccess(sessionId)`; `{ rebound: false }`.
|
|
114
|
-
* - non-reportable, non-success, or non-pool request → no-op
|
|
115
|
-
* `{ rebound: false }`.
|
|
116
|
-
*
|
|
117
|
-
* NOTE: no caller invokes this in Phase 2; it is unit-tested in isolation.
|
|
118
|
-
*/
|
|
119
|
-
async onResult(status) {
|
|
120
|
-
const pool = this.apiKeyPool;
|
|
121
|
-
const providerId = this.providerId;
|
|
122
|
-
const sessionId = this.sessionId;
|
|
123
|
-
if (!pool || !providerId || !sessionId) {
|
|
124
|
-
return { rebound: false };
|
|
125
|
-
}
|
|
126
|
-
if (isReportableStatus(status)) {
|
|
127
|
-
const newKey = await pool.reportError(providerId, sessionId, status);
|
|
128
|
-
if (newKey) {
|
|
129
|
-
this.apiKey = newKey;
|
|
130
|
-
return { rebound: true, newKey };
|
|
131
|
-
}
|
|
132
|
-
return { rebound: false };
|
|
133
|
-
}
|
|
134
|
-
if (status !== null && status >= 200 && status < 300) {
|
|
135
|
-
pool.reportSuccess(sessionId);
|
|
136
|
-
}
|
|
137
|
-
return { rebound: false };
|
|
138
|
-
}
|
|
139
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
LlmConfigProviderAuth
|
|
3
|
+
} from "../chunk-ZY6KU6P3.js";
|
|
4
|
+
import "../chunk-H5JUT3KV.js";
|
|
5
|
+
import "../chunk-HUZZZ3JL.js";
|
|
140
6
|
export {
|
|
141
7
|
LlmConfigProviderAuth
|
|
142
8
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
var _chunkVQY5W4YWcjs = require('../chunk-VQY5W4YW.cjs');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
exports.AUTH_ERROR_TTL_MS = _chunkVQY5W4YWcjs.AUTH_ERROR_TTL_MS; exports.OVERLOAD_ENABLED_DEFAULT = _chunkVQY5W4YWcjs.OVERLOAD_ENABLED_DEFAULT; exports.OVERLOAD_TTL_MS = _chunkVQY5W4YWcjs.OVERLOAD_TTL_MS; exports.SERVER_ERROR_TTL_MS = _chunkVQY5W4YWcjs.SERVER_ERROR_TTL_MS; exports.SubscriptionAccountHealth = _chunkVQY5W4YWcjs.SubscriptionAccountHealth; exports.__resetSharedAccountHealthForTests = _chunkVQY5W4YWcjs.__resetSharedAccountHealthForTests; exports.getSharedAccountHealth = _chunkVQY5W4YWcjs.getSharedAccountHealth; exports.resolveResetSeconds = _chunkVQY5W4YWcjs.resolveResetSeconds; exports.setSharedAccountHealth = _chunkVQY5W4YWcjs.setSharedAccountHealth;
|