@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,6 +1,6 @@
|
|
|
1
1
|
import { ProviderConfigSource } from './ports/provider-config-source.js';
|
|
2
2
|
import { IngressFormat, RouteContext } from './provider-proxy/types.js';
|
|
3
|
-
import { OutboundEndpoint, EndpointRoutingConfig, RequestRole } from './
|
|
3
|
+
import { q as OutboundEndpoint, P as ModelRef, b as EndpointRoutingConfig, R as RequestRole } from './types-6OUY_xfA.js';
|
|
4
4
|
import { SubscriptionProviderId } from '@omnicross/contracts/subscription-types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -39,21 +39,26 @@ declare function endpointSupportsSubscription(endpoint: OutboundEndpoint): boole
|
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* routeResolver — turn an endpoint's `EndpointRoutingConfig` + the detected
|
|
42
|
-
* request
|
|
43
|
-
* (`outbound-api-server`, design D2).
|
|
42
|
+
* request KIND (messages/responses) or ROLE (chat/gemini) into a `RouteContext`
|
|
43
|
+
* for the shared `provider-proxy` dispatch (`outbound-api-server`, design D1/D2).
|
|
44
44
|
*
|
|
45
45
|
* Steps:
|
|
46
|
-
* 1. Pick the model
|
|
47
|
-
*
|
|
46
|
+
* 1. Pick the model ref: by model KIND for the kind-mapped endpoints
|
|
47
|
+
* (`messages`/`responses`) via `modelMap[detectModelKind(...)]` with a
|
|
48
|
+
* serving-owned fallback (messages: first configured of `sonnet → opus →
|
|
49
|
+
* haiku → fable`; responses: `codex`); by ROLE (default/background) for the
|
|
50
|
+
* role-based endpoints (`chat`/`gemini`). Vision was removed.
|
|
48
51
|
* 2. Parse the chosen `"providerId,modelId"` ref.
|
|
49
52
|
* 3. Gate by `useSubscription`: OFF → only BYO-key providers are eligible
|
|
50
53
|
* (subscription-backed providers excluded); ON → subscription-backed
|
|
51
54
|
* providers are eligible.
|
|
52
55
|
* 4. Resolve the provider (BYO via the `ProviderConfigSource`; subscription via the
|
|
53
56
|
* subscription registry) and build the `RouteContext` exactly as the
|
|
54
|
-
* internal callers do.
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
+
* internal callers do. For kind-mapped endpoints STAMP `route.requestedModel`
|
|
58
|
+
* with the client's ORIGINAL requested id so the response `model` can be
|
|
59
|
+
* passed through unchanged (the resident proxy leaves this unset).
|
|
60
|
+
* 5. Return a clear `503`-style error when the required model is unset, the
|
|
61
|
+
* provider is unavailable, or the subscription gate excludes it.
|
|
57
62
|
*
|
|
58
63
|
* @module outbound-api/routeResolver
|
|
59
64
|
*/
|
|
@@ -76,13 +81,34 @@ declare function parseModelRef(ref: string | undefined): {
|
|
|
76
81
|
providerId: string;
|
|
77
82
|
modelId: string;
|
|
78
83
|
} | null;
|
|
84
|
+
/**
|
|
85
|
+
* Pick the model ref for the LIST-mapped `chat` endpoint: the client requests
|
|
86
|
+
* one of the configured refs' modelIds directly (the same names `GET /v1/models`
|
|
87
|
+
* advertises). Exact modelId match first, then case-insensitive. No requested
|
|
88
|
+
* model, or a model not in the list → `undefined` (per-request 404).
|
|
89
|
+
*/
|
|
90
|
+
declare function pickModelRefFromList(models: ModelRef[] | undefined, requestedModel: string | undefined): ModelRef | undefined;
|
|
79
91
|
/** Resolve a route for one authenticated outbound request. */
|
|
80
92
|
declare function resolveRoute(args: {
|
|
81
93
|
config: EndpointRoutingConfig;
|
|
82
|
-
role
|
|
94
|
+
/** Role for the role-based endpoints (`chat`/`gemini`); ignored (optional) for kind-mapped ones. */
|
|
95
|
+
role?: RequestRole;
|
|
83
96
|
ingressFormat: IngressFormat;
|
|
84
97
|
llmConfig: ProviderConfigSource;
|
|
85
98
|
sessionId?: string | null;
|
|
99
|
+
/**
|
|
100
|
+
* The client's ORIGINAL requested model id. For kind-mapped endpoints it
|
|
101
|
+
* selects the model KIND AND is stamped onto `route.requestedModel` so the
|
|
102
|
+
* response `model` passes through unchanged. Ignored for role-based endpoints.
|
|
103
|
+
*/
|
|
104
|
+
requestedModel?: string;
|
|
105
|
+
/**
|
|
106
|
+
* The verified named-key id (`verified.id`). Stamped onto EVERY outbound
|
|
107
|
+
* endpoint's route (not gated on kind — attribution is orthogonal to the
|
|
108
|
+
* passthrough-rewrite gate), BYO + subscription. Absent for the resident
|
|
109
|
+
* proxy's internal route minting, so internal usage records `apiKeyId: null`.
|
|
110
|
+
*/
|
|
111
|
+
apiKeyId?: string;
|
|
86
112
|
}): Promise<RouteResolveResult>;
|
|
87
113
|
|
|
88
|
-
export { type RouteResolveError as R, SUBSCRIPTION_PROVIDER_IDS as S, type RouteResolveResult as
|
|
114
|
+
export { type RouteResolveError as R, SUBSCRIPTION_PROVIDER_IDS as S, pickModelRefFromList as a, type RouteResolveResult as b, endpointSupportsSubscription as e, isSubscriptionProviderId as i, parseModelRef as p, resolveRoute as r };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProviderConfigSource } from './ports/provider-config-source.cjs';
|
|
2
2
|
import { IngressFormat, RouteContext } from './provider-proxy/types.cjs';
|
|
3
|
-
import { OutboundEndpoint, EndpointRoutingConfig, RequestRole } from './
|
|
3
|
+
import { q as OutboundEndpoint, P as ModelRef, b as EndpointRoutingConfig, R as RequestRole } from './types-aBFFXoBz.cjs';
|
|
4
4
|
import { SubscriptionProviderId } from '@omnicross/contracts/subscription-types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -39,21 +39,26 @@ declare function endpointSupportsSubscription(endpoint: OutboundEndpoint): boole
|
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* routeResolver — turn an endpoint's `EndpointRoutingConfig` + the detected
|
|
42
|
-
* request
|
|
43
|
-
* (`outbound-api-server`, design D2).
|
|
42
|
+
* request KIND (messages/responses) or ROLE (chat/gemini) into a `RouteContext`
|
|
43
|
+
* for the shared `provider-proxy` dispatch (`outbound-api-server`, design D1/D2).
|
|
44
44
|
*
|
|
45
45
|
* Steps:
|
|
46
|
-
* 1. Pick the model
|
|
47
|
-
*
|
|
46
|
+
* 1. Pick the model ref: by model KIND for the kind-mapped endpoints
|
|
47
|
+
* (`messages`/`responses`) via `modelMap[detectModelKind(...)]` with a
|
|
48
|
+
* serving-owned fallback (messages: first configured of `sonnet → opus →
|
|
49
|
+
* haiku → fable`; responses: `codex`); by ROLE (default/background) for the
|
|
50
|
+
* role-based endpoints (`chat`/`gemini`). Vision was removed.
|
|
48
51
|
* 2. Parse the chosen `"providerId,modelId"` ref.
|
|
49
52
|
* 3. Gate by `useSubscription`: OFF → only BYO-key providers are eligible
|
|
50
53
|
* (subscription-backed providers excluded); ON → subscription-backed
|
|
51
54
|
* providers are eligible.
|
|
52
55
|
* 4. Resolve the provider (BYO via the `ProviderConfigSource`; subscription via the
|
|
53
56
|
* subscription registry) and build the `RouteContext` exactly as the
|
|
54
|
-
* internal callers do.
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
+
* internal callers do. For kind-mapped endpoints STAMP `route.requestedModel`
|
|
58
|
+
* with the client's ORIGINAL requested id so the response `model` can be
|
|
59
|
+
* passed through unchanged (the resident proxy leaves this unset).
|
|
60
|
+
* 5. Return a clear `503`-style error when the required model is unset, the
|
|
61
|
+
* provider is unavailable, or the subscription gate excludes it.
|
|
57
62
|
*
|
|
58
63
|
* @module outbound-api/routeResolver
|
|
59
64
|
*/
|
|
@@ -76,13 +81,34 @@ declare function parseModelRef(ref: string | undefined): {
|
|
|
76
81
|
providerId: string;
|
|
77
82
|
modelId: string;
|
|
78
83
|
} | null;
|
|
84
|
+
/**
|
|
85
|
+
* Pick the model ref for the LIST-mapped `chat` endpoint: the client requests
|
|
86
|
+
* one of the configured refs' modelIds directly (the same names `GET /v1/models`
|
|
87
|
+
* advertises). Exact modelId match first, then case-insensitive. No requested
|
|
88
|
+
* model, or a model not in the list → `undefined` (per-request 404).
|
|
89
|
+
*/
|
|
90
|
+
declare function pickModelRefFromList(models: ModelRef[] | undefined, requestedModel: string | undefined): ModelRef | undefined;
|
|
79
91
|
/** Resolve a route for one authenticated outbound request. */
|
|
80
92
|
declare function resolveRoute(args: {
|
|
81
93
|
config: EndpointRoutingConfig;
|
|
82
|
-
role
|
|
94
|
+
/** Role for the role-based endpoints (`chat`/`gemini`); ignored (optional) for kind-mapped ones. */
|
|
95
|
+
role?: RequestRole;
|
|
83
96
|
ingressFormat: IngressFormat;
|
|
84
97
|
llmConfig: ProviderConfigSource;
|
|
85
98
|
sessionId?: string | null;
|
|
99
|
+
/**
|
|
100
|
+
* The client's ORIGINAL requested model id. For kind-mapped endpoints it
|
|
101
|
+
* selects the model KIND AND is stamped onto `route.requestedModel` so the
|
|
102
|
+
* response `model` passes through unchanged. Ignored for role-based endpoints.
|
|
103
|
+
*/
|
|
104
|
+
requestedModel?: string;
|
|
105
|
+
/**
|
|
106
|
+
* The verified named-key id (`verified.id`). Stamped onto EVERY outbound
|
|
107
|
+
* endpoint's route (not gated on kind — attribution is orthogonal to the
|
|
108
|
+
* passthrough-rewrite gate), BYO + subscription. Absent for the resident
|
|
109
|
+
* proxy's internal route minting, so internal usage records `apiKeyId: null`.
|
|
110
|
+
*/
|
|
111
|
+
apiKeyId?: string;
|
|
86
112
|
}): Promise<RouteResolveResult>;
|
|
87
113
|
|
|
88
|
-
export { type RouteResolveError as R, SUBSCRIPTION_PROVIDER_IDS as S, type RouteResolveResult as
|
|
114
|
+
export { type RouteResolveError as R, SUBSCRIPTION_PROVIDER_IDS as S, pickModelRefFromList as a, type RouteResolveResult as b, endpointSupportsSubscription as e, isSubscriptionProviderId as i, parseModelRef as p, resolveRoute as r };
|
package/dist/serializeError.cjs
CHANGED
|
@@ -1,82 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(serializeError_exports);
|
|
26
|
-
function serializeError(err) {
|
|
27
|
-
if (err == null) return "Unknown error (null)";
|
|
28
|
-
if (err instanceof Error) {
|
|
29
|
-
let msg = err.message || err.name || "Error";
|
|
30
|
-
if (err.cause) {
|
|
31
|
-
msg += ` [cause: ${serializeError(err.cause)}]`;
|
|
32
|
-
}
|
|
33
|
-
const anyErr = err;
|
|
34
|
-
if (anyErr.status != null) msg += ` (status: ${anyErr.status})`;
|
|
35
|
-
else if (anyErr.code != null) msg += ` (code: ${anyErr.code})`;
|
|
36
|
-
return msg;
|
|
37
|
-
}
|
|
38
|
-
if (typeof err === "string") return err || "Empty error string";
|
|
39
|
-
if (typeof err !== "object") return String(err);
|
|
40
|
-
const obj = err;
|
|
41
|
-
if (typeof obj.message === "string" && obj.message) {
|
|
42
|
-
let msg = obj.message;
|
|
43
|
-
if (obj.status != null) msg += ` (status: ${obj.status})`;
|
|
44
|
-
else if (obj.code != null) msg += ` (code: ${obj.code})`;
|
|
45
|
-
if (typeof obj.type === "string") msg += ` [type: ${obj.type}]`;
|
|
46
|
-
return msg;
|
|
47
|
-
}
|
|
48
|
-
if (typeof obj.error === "string" && obj.error) {
|
|
49
|
-
return obj.error;
|
|
50
|
-
}
|
|
51
|
-
if (obj.error && typeof obj.error === "object") {
|
|
52
|
-
const inner = obj.error;
|
|
53
|
-
if (typeof inner.message === "string" && inner.message) {
|
|
54
|
-
let msg = inner.message;
|
|
55
|
-
if (typeof inner.type === "string") msg += ` [type: ${inner.type}]`;
|
|
56
|
-
return msg;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
try {
|
|
60
|
-
const json = JSON.stringify(err, getCircularReplacer(), 2);
|
|
61
|
-
if (json && json.length > 1e3) {
|
|
62
|
-
return json.slice(0, 1e3) + "... (truncated)";
|
|
63
|
-
}
|
|
64
|
-
return json || "Unserializable error";
|
|
65
|
-
} catch {
|
|
66
|
-
return `Unserializable error: ${Object.prototype.toString.call(err)}`;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
function getCircularReplacer() {
|
|
70
|
-
const seen = /* @__PURE__ */ new WeakSet();
|
|
71
|
-
return (_key, value) => {
|
|
72
|
-
if (typeof value === "object" && value !== null) {
|
|
73
|
-
if (seen.has(value)) return "[Circular]";
|
|
74
|
-
seen.add(value);
|
|
75
|
-
}
|
|
76
|
-
return value;
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
80
|
-
0 && (module.exports = {
|
|
81
|
-
serializeError
|
|
82
|
-
});
|
|
3
|
+
var _chunkSVNDB62Dcjs = require('./chunk-SVNDB62D.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
exports.serializeError = _chunkSVNDB62Dcjs.serializeError;
|
package/dist/serializeError.js
CHANGED
|
@@ -1,57 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
if (err instanceof Error) {
|
|
5
|
-
let msg = err.message || err.name || "Error";
|
|
6
|
-
if (err.cause) {
|
|
7
|
-
msg += ` [cause: ${serializeError(err.cause)}]`;
|
|
8
|
-
}
|
|
9
|
-
const anyErr = err;
|
|
10
|
-
if (anyErr.status != null) msg += ` (status: ${anyErr.status})`;
|
|
11
|
-
else if (anyErr.code != null) msg += ` (code: ${anyErr.code})`;
|
|
12
|
-
return msg;
|
|
13
|
-
}
|
|
14
|
-
if (typeof err === "string") return err || "Empty error string";
|
|
15
|
-
if (typeof err !== "object") return String(err);
|
|
16
|
-
const obj = err;
|
|
17
|
-
if (typeof obj.message === "string" && obj.message) {
|
|
18
|
-
let msg = obj.message;
|
|
19
|
-
if (obj.status != null) msg += ` (status: ${obj.status})`;
|
|
20
|
-
else if (obj.code != null) msg += ` (code: ${obj.code})`;
|
|
21
|
-
if (typeof obj.type === "string") msg += ` [type: ${obj.type}]`;
|
|
22
|
-
return msg;
|
|
23
|
-
}
|
|
24
|
-
if (typeof obj.error === "string" && obj.error) {
|
|
25
|
-
return obj.error;
|
|
26
|
-
}
|
|
27
|
-
if (obj.error && typeof obj.error === "object") {
|
|
28
|
-
const inner = obj.error;
|
|
29
|
-
if (typeof inner.message === "string" && inner.message) {
|
|
30
|
-
let msg = inner.message;
|
|
31
|
-
if (typeof inner.type === "string") msg += ` [type: ${inner.type}]`;
|
|
32
|
-
return msg;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
try {
|
|
36
|
-
const json = JSON.stringify(err, getCircularReplacer(), 2);
|
|
37
|
-
if (json && json.length > 1e3) {
|
|
38
|
-
return json.slice(0, 1e3) + "... (truncated)";
|
|
39
|
-
}
|
|
40
|
-
return json || "Unserializable error";
|
|
41
|
-
} catch {
|
|
42
|
-
return `Unserializable error: ${Object.prototype.toString.call(err)}`;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function getCircularReplacer() {
|
|
46
|
-
const seen = /* @__PURE__ */ new WeakSet();
|
|
47
|
-
return (_key, value) => {
|
|
48
|
-
if (typeof value === "object" && value !== null) {
|
|
49
|
-
if (seen.has(value)) return "[Circular]";
|
|
50
|
-
seen.add(value);
|
|
51
|
-
}
|
|
52
|
-
return value;
|
|
53
|
-
};
|
|
54
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
serializeError
|
|
3
|
+
} from "./chunk-AVYJ4YBN.js";
|
|
55
4
|
export {
|
|
56
5
|
serializeError
|
|
57
6
|
};
|