@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,73 +1,14 @@
|
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (typeof value === "string") return value;
|
|
33
|
-
if (Array.isArray(value)) {
|
|
34
|
-
const parts = [];
|
|
35
|
-
for (const item of value) {
|
|
36
|
-
const text = flattenMatchText(item);
|
|
37
|
-
if (text) parts.push(text);
|
|
38
|
-
}
|
|
39
|
-
return parts.join("\n");
|
|
40
|
-
}
|
|
41
|
-
if (value && typeof value === "object") {
|
|
42
|
-
const obj = value;
|
|
43
|
-
if (obj.type === "tool_result" && obj.content !== void 0) {
|
|
44
|
-
return flattenMatchText(obj.content);
|
|
45
|
-
}
|
|
46
|
-
if (typeof obj.text === "string") return obj.text;
|
|
47
|
-
}
|
|
48
|
-
return "";
|
|
49
|
-
}
|
|
50
|
-
function collectMatchText(anthropicBody) {
|
|
51
|
-
const messages = Array.isArray(anthropicBody.messages) ? anthropicBody.messages : [];
|
|
52
|
-
const slices = [];
|
|
53
|
-
const sys = flattenMatchText(anthropicBody.system).trim();
|
|
54
|
-
if (sys) slices.push(sys.slice(0, MATCH_TEXT_PER_MESSAGE_CAP));
|
|
55
|
-
const recent = [];
|
|
56
|
-
for (let i = messages.length - 1; i >= 0 && recent.length < MATCH_TEXT_RECENT_MESSAGES; i--) {
|
|
57
|
-
const message = messages[i];
|
|
58
|
-
if (!message || typeof message !== "object") continue;
|
|
59
|
-
const role = message.role;
|
|
60
|
-
if (role !== "user" && role !== "system") continue;
|
|
61
|
-
const text = flattenMatchText(message.content).trim();
|
|
62
|
-
if (text) recent.push(text.slice(0, MATCH_TEXT_PER_MESSAGE_CAP));
|
|
63
|
-
}
|
|
64
|
-
for (let i = recent.length - 1; i >= 0; i--) slices.push(recent[i]);
|
|
65
|
-
return slices;
|
|
66
|
-
}
|
|
67
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
68
|
-
0 && (module.exports = {
|
|
69
|
-
MATCH_TEXT_PER_MESSAGE_CAP,
|
|
70
|
-
MATCH_TEXT_RECENT_MESSAGES,
|
|
71
|
-
collectMatchText,
|
|
72
|
-
flattenMatchText
|
|
73
|
-
});
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkQWBWGODScjs = require('../chunk-QWBWGODS.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
exports.MATCH_TEXT_PER_MESSAGE_CAP = _chunkQWBWGODScjs.MATCH_TEXT_PER_MESSAGE_CAP; exports.MATCH_TEXT_RECENT_MESSAGES = _chunkQWBWGODScjs.MATCH_TEXT_RECENT_MESSAGES; exports.collectMatchText = _chunkQWBWGODScjs.collectMatchText; exports.deriveSubscriptionSessionKey = _chunkQWBWGODScjs.deriveSubscriptionSessionKey; exports.flattenMatchText = _chunkQWBWGODScjs.flattenMatchText;
|
|
@@ -43,5 +43,18 @@ declare function flattenMatchText(value: unknown): string;
|
|
|
43
43
|
* @param anthropicBody the parsed Anthropic Messages request body.
|
|
44
44
|
*/
|
|
45
45
|
declare function collectMatchText(anthropicBody: Record<string, unknown>): string[];
|
|
46
|
+
/**
|
|
47
|
+
* Derive a STABLE per-conversation session key for the account-pool's session
|
|
48
|
+
* affinity (subscription-account-scheduling, D5). Anchored on `system` + the
|
|
49
|
+
* FIRST `user` message — both survive a multi-turn conversation UNCHANGED (unlike
|
|
50
|
+
* the full transcript, which grows every turn), so one conversation keeps one
|
|
51
|
+
* session key and thus one sticky account. Returns `undefined` when there is no
|
|
52
|
+
* anchor text (⇒ the selector falls back to pure priority/LRU, still correct).
|
|
53
|
+
*
|
|
54
|
+
* Lives here (the shared match-text SSOT) so BOTH relay paths — the core
|
|
55
|
+
* `/v1/messages` ingress and the daemon `SubscriptionDispatcher` — derive the
|
|
56
|
+
* SAME key for the same body.
|
|
57
|
+
*/
|
|
58
|
+
declare function deriveSubscriptionSessionKey(anthropicBody: Record<string, unknown>): string | undefined;
|
|
46
59
|
|
|
47
|
-
export { MATCH_TEXT_PER_MESSAGE_CAP, MATCH_TEXT_RECENT_MESSAGES, collectMatchText, flattenMatchText };
|
|
60
|
+
export { MATCH_TEXT_PER_MESSAGE_CAP, MATCH_TEXT_RECENT_MESSAGES, collectMatchText, deriveSubscriptionSessionKey, flattenMatchText };
|
|
@@ -43,5 +43,18 @@ declare function flattenMatchText(value: unknown): string;
|
|
|
43
43
|
* @param anthropicBody the parsed Anthropic Messages request body.
|
|
44
44
|
*/
|
|
45
45
|
declare function collectMatchText(anthropicBody: Record<string, unknown>): string[];
|
|
46
|
+
/**
|
|
47
|
+
* Derive a STABLE per-conversation session key for the account-pool's session
|
|
48
|
+
* affinity (subscription-account-scheduling, D5). Anchored on `system` + the
|
|
49
|
+
* FIRST `user` message — both survive a multi-turn conversation UNCHANGED (unlike
|
|
50
|
+
* the full transcript, which grows every turn), so one conversation keeps one
|
|
51
|
+
* session key and thus one sticky account. Returns `undefined` when there is no
|
|
52
|
+
* anchor text (⇒ the selector falls back to pure priority/LRU, still correct).
|
|
53
|
+
*
|
|
54
|
+
* Lives here (the shared match-text SSOT) so BOTH relay paths — the core
|
|
55
|
+
* `/v1/messages` ingress and the daemon `SubscriptionDispatcher` — derive the
|
|
56
|
+
* SAME key for the same body.
|
|
57
|
+
*/
|
|
58
|
+
declare function deriveSubscriptionSessionKey(anthropicBody: Record<string, unknown>): string | undefined;
|
|
46
59
|
|
|
47
|
-
export { MATCH_TEXT_PER_MESSAGE_CAP, MATCH_TEXT_RECENT_MESSAGES, collectMatchText, flattenMatchText };
|
|
60
|
+
export { MATCH_TEXT_PER_MESSAGE_CAP, MATCH_TEXT_RECENT_MESSAGES, collectMatchText, deriveSubscriptionSessionKey, flattenMatchText };
|
|
@@ -1,45 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
for (const item of value) {
|
|
9
|
-
const text = flattenMatchText(item);
|
|
10
|
-
if (text) parts.push(text);
|
|
11
|
-
}
|
|
12
|
-
return parts.join("\n");
|
|
13
|
-
}
|
|
14
|
-
if (value && typeof value === "object") {
|
|
15
|
-
const obj = value;
|
|
16
|
-
if (obj.type === "tool_result" && obj.content !== void 0) {
|
|
17
|
-
return flattenMatchText(obj.content);
|
|
18
|
-
}
|
|
19
|
-
if (typeof obj.text === "string") return obj.text;
|
|
20
|
-
}
|
|
21
|
-
return "";
|
|
22
|
-
}
|
|
23
|
-
function collectMatchText(anthropicBody) {
|
|
24
|
-
const messages = Array.isArray(anthropicBody.messages) ? anthropicBody.messages : [];
|
|
25
|
-
const slices = [];
|
|
26
|
-
const sys = flattenMatchText(anthropicBody.system).trim();
|
|
27
|
-
if (sys) slices.push(sys.slice(0, MATCH_TEXT_PER_MESSAGE_CAP));
|
|
28
|
-
const recent = [];
|
|
29
|
-
for (let i = messages.length - 1; i >= 0 && recent.length < MATCH_TEXT_RECENT_MESSAGES; i--) {
|
|
30
|
-
const message = messages[i];
|
|
31
|
-
if (!message || typeof message !== "object") continue;
|
|
32
|
-
const role = message.role;
|
|
33
|
-
if (role !== "user" && role !== "system") continue;
|
|
34
|
-
const text = flattenMatchText(message.content).trim();
|
|
35
|
-
if (text) recent.push(text.slice(0, MATCH_TEXT_PER_MESSAGE_CAP));
|
|
36
|
-
}
|
|
37
|
-
for (let i = recent.length - 1; i >= 0; i--) slices.push(recent[i]);
|
|
38
|
-
return slices;
|
|
39
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
MATCH_TEXT_PER_MESSAGE_CAP,
|
|
3
|
+
MATCH_TEXT_RECENT_MESSAGES,
|
|
4
|
+
collectMatchText,
|
|
5
|
+
deriveSubscriptionSessionKey,
|
|
6
|
+
flattenMatchText
|
|
7
|
+
} from "../chunk-IAXWICZU.js";
|
|
40
8
|
export {
|
|
41
9
|
MATCH_TEXT_PER_MESSAGE_CAP,
|
|
42
10
|
MATCH_TEXT_RECENT_MESSAGES,
|
|
43
11
|
collectMatchText,
|
|
12
|
+
deriveSubscriptionSessionKey,
|
|
44
13
|
flattenMatchText
|
|
45
14
|
};
|
|
@@ -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/provider-proxy/types.ts
|
|
17
|
-
var types_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(types_exports);
|
|
1
|
+
"use strict";
|
|
@@ -2,13 +2,14 @@ import http from 'node:http';
|
|
|
2
2
|
import { ThinkLevel } from '@omnicross/contracts/completion-types';
|
|
3
3
|
import { SubscriptionProviderId, OpenCodeGoTokenConfig, OpenCodeGoScenario, OpenCodeGoModelEntry } from '@omnicross/contracts/subscription-types';
|
|
4
4
|
import { UsageEngineOrigin, UsageTokens } from '@omnicross/contracts/usage-types';
|
|
5
|
-
import {
|
|
5
|
+
import { ApiKeyPoolService } from '../completion/ApiKeyPoolService.cjs';
|
|
6
6
|
import { AuthSource } from '../pipeline/AuthSource.cjs';
|
|
7
7
|
import { SubscriptionAuthProfile } from '../pipeline/SubscriptionAuthSource.cjs';
|
|
8
8
|
import { AuthStrategy } from '../pipeline/SubscriptionAuthStrategy.cjs';
|
|
9
9
|
import { ProviderConfigSource } from '../ports/provider-config-source.cjs';
|
|
10
10
|
import { WebSearchBackend } from '../ports/web-search-backend.cjs';
|
|
11
11
|
import '@omnicross/contracts/llm-config';
|
|
12
|
+
import '../logger-4GvQNzhE.cjs';
|
|
12
13
|
import '../transformer/types.cjs';
|
|
13
14
|
import '../transformer/TransformerService.cjs';
|
|
14
15
|
import '@omnicross/contracts/websearch-types';
|
|
@@ -284,6 +285,23 @@ interface RouteContext {
|
|
|
284
285
|
readonly targetProviderFormat: TargetProviderFormat;
|
|
285
286
|
/** Resolved provider model the upstream request targets. */
|
|
286
287
|
readonly model: string;
|
|
288
|
+
/**
|
|
289
|
+
* The client's ORIGINAL requested model id, for RESPONSE `model` passthrough
|
|
290
|
+
* on the kind-mapped outbound endpoints (`messages`/`responses`). Stamped ONLY
|
|
291
|
+
* by the outbound `resolveRoute` for those endpoints; the resident-proxy route
|
|
292
|
+
* minting path leaves it `undefined`, so internal completions are never
|
|
293
|
+
* rewritten (the two kind-mapped ingresses pass it as `relayResponse`'s
|
|
294
|
+
* `rewriteModel` — undefined ⇒ byte-identical passthrough).
|
|
295
|
+
*/
|
|
296
|
+
readonly requestedModel?: string;
|
|
297
|
+
/**
|
|
298
|
+
* The outbound named-key id (`verified.id`) this request authenticated with,
|
|
299
|
+
* for usage attribution (the ByApiKey view). Stamped ONLY by the outbound
|
|
300
|
+
* `resolveRoute`; the resident-proxy route-minting path leaves it `undefined`,
|
|
301
|
+
* so internal completions record `apiKeyId: null` (the taps read
|
|
302
|
+
* `route.apiKeyId ?? null`), exactly as before.
|
|
303
|
+
*/
|
|
304
|
+
readonly apiKeyId?: string;
|
|
287
305
|
/** Wire format this route's ingress decodes. */
|
|
288
306
|
readonly ingressFormat: IngressFormat;
|
|
289
307
|
/** Re-auth mode (BYO key vs subscription OAuth). */
|
|
@@ -405,6 +423,12 @@ interface UsageRecordImportInput {
|
|
|
405
423
|
rawUsage?: unknown;
|
|
406
424
|
runId?: string | null;
|
|
407
425
|
eventId?: string | null;
|
|
426
|
+
/**
|
|
427
|
+
* OPTIONAL per-request audit correlation key (request-audit-log) — the outbound
|
|
428
|
+
* relay taps set this to the request's `http.ServerResponse` so the recorder can
|
|
429
|
+
* stash this request's tokens/cost for the audit capture. Opaque; unset ⇒ no-op.
|
|
430
|
+
*/
|
|
431
|
+
auditResponse?: object;
|
|
408
432
|
}
|
|
409
433
|
|
|
410
434
|
export type { AnthropicIngressHandler, AnthropicIngressHandlerFactory, AnthropicRouteHandlerParams, AnthropicSdkHints, ExtendedContextHint, IngressFormat, ProviderProxyDeps, ProxyAttribution, RetryCallback, RouteAuthMode, RouteContext, StreamEventCallback, SubscriptionDispatchProfile, SubscriptionRequestSummary, TargetProviderFormat, UsageRecordImportInput, UsageRecorderImport };
|
|
@@ -2,13 +2,14 @@ import http from 'node:http';
|
|
|
2
2
|
import { ThinkLevel } from '@omnicross/contracts/completion-types';
|
|
3
3
|
import { SubscriptionProviderId, OpenCodeGoTokenConfig, OpenCodeGoScenario, OpenCodeGoModelEntry } from '@omnicross/contracts/subscription-types';
|
|
4
4
|
import { UsageEngineOrigin, UsageTokens } from '@omnicross/contracts/usage-types';
|
|
5
|
-
import {
|
|
5
|
+
import { ApiKeyPoolService } from '../completion/ApiKeyPoolService.js';
|
|
6
6
|
import { AuthSource } from '../pipeline/AuthSource.js';
|
|
7
7
|
import { SubscriptionAuthProfile } from '../pipeline/SubscriptionAuthSource.js';
|
|
8
8
|
import { AuthStrategy } from '../pipeline/SubscriptionAuthStrategy.js';
|
|
9
9
|
import { ProviderConfigSource } from '../ports/provider-config-source.js';
|
|
10
10
|
import { WebSearchBackend } from '../ports/web-search-backend.js';
|
|
11
11
|
import '@omnicross/contracts/llm-config';
|
|
12
|
+
import '../logger-4GvQNzhE.js';
|
|
12
13
|
import '../transformer/types.js';
|
|
13
14
|
import '../transformer/TransformerService.js';
|
|
14
15
|
import '@omnicross/contracts/websearch-types';
|
|
@@ -284,6 +285,23 @@ interface RouteContext {
|
|
|
284
285
|
readonly targetProviderFormat: TargetProviderFormat;
|
|
285
286
|
/** Resolved provider model the upstream request targets. */
|
|
286
287
|
readonly model: string;
|
|
288
|
+
/**
|
|
289
|
+
* The client's ORIGINAL requested model id, for RESPONSE `model` passthrough
|
|
290
|
+
* on the kind-mapped outbound endpoints (`messages`/`responses`). Stamped ONLY
|
|
291
|
+
* by the outbound `resolveRoute` for those endpoints; the resident-proxy route
|
|
292
|
+
* minting path leaves it `undefined`, so internal completions are never
|
|
293
|
+
* rewritten (the two kind-mapped ingresses pass it as `relayResponse`'s
|
|
294
|
+
* `rewriteModel` — undefined ⇒ byte-identical passthrough).
|
|
295
|
+
*/
|
|
296
|
+
readonly requestedModel?: string;
|
|
297
|
+
/**
|
|
298
|
+
* The outbound named-key id (`verified.id`) this request authenticated with,
|
|
299
|
+
* for usage attribution (the ByApiKey view). Stamped ONLY by the outbound
|
|
300
|
+
* `resolveRoute`; the resident-proxy route-minting path leaves it `undefined`,
|
|
301
|
+
* so internal completions record `apiKeyId: null` (the taps read
|
|
302
|
+
* `route.apiKeyId ?? null`), exactly as before.
|
|
303
|
+
*/
|
|
304
|
+
readonly apiKeyId?: string;
|
|
287
305
|
/** Wire format this route's ingress decodes. */
|
|
288
306
|
readonly ingressFormat: IngressFormat;
|
|
289
307
|
/** Re-auth mode (BYO key vs subscription OAuth). */
|
|
@@ -405,6 +423,12 @@ interface UsageRecordImportInput {
|
|
|
405
423
|
rawUsage?: unknown;
|
|
406
424
|
runId?: string | null;
|
|
407
425
|
eventId?: string | null;
|
|
426
|
+
/**
|
|
427
|
+
* OPTIONAL per-request audit correlation key (request-audit-log) — the outbound
|
|
428
|
+
* relay taps set this to the request's `http.ServerResponse` so the recorder can
|
|
429
|
+
* stash this request's tokens/cost for the audit capture. Opaque; unset ⇒ no-op.
|
|
430
|
+
*/
|
|
431
|
+
auditResponse?: object;
|
|
408
432
|
}
|
|
409
433
|
|
|
410
434
|
export type { AnthropicIngressHandler, AnthropicIngressHandlerFactory, AnthropicRouteHandlerParams, AnthropicSdkHints, ExtendedContextHint, IngressFormat, ProviderProxyDeps, ProxyAttribution, RetryCallback, RouteAuthMode, RouteContext, StreamEventCallback, SubscriptionDispatchProfile, SubscriptionRequestSummary, TargetProviderFormat, UsageRecordImportInput, UsageRecorderImport };
|