@omnicross/core 0.1.7 → 0.1.9
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/{ProviderProxy-C-xqrkKi.d.ts → ProviderProxy--ROec6VI.d.ts} +22 -3
- package/dist/{ProviderProxy-CnMQYN59.d.cts → ProviderProxy-QdwNV6l1.d.cts} +22 -3
- package/dist/auth/GeminiCodeAssistProjectResolver.cjs +5 -3
- package/dist/auth/GeminiCodeAssistProjectResolver.js +4 -2
- package/dist/{chunk-N5T4M4GU.js → chunk-2UTGX6FM.js} +2 -2
- package/dist/{chunk-32O35CIF.js → chunk-45FHEOKW.js} +22 -7
- package/dist/{chunk-LVUCAWMK.js → chunk-55FMGZ3L.js} +13 -5
- package/dist/{chunk-OF3BECU2.cjs → chunk-56QD3YW6.cjs} +18 -5
- package/dist/{chunk-V4TXMEJS.cjs → chunk-5LNYGCIW.cjs} +15 -7
- package/dist/chunk-77USGNRW.cjs +37 -0
- package/dist/chunk-AOFWNWLT.cjs +203 -0
- package/dist/{chunk-LB6EBS6Y.js → chunk-CCVRRJOX.js} +17 -4
- package/dist/{chunk-OVQBNVSV.cjs → chunk-CMVXX7ON.cjs} +42 -27
- package/dist/{chunk-E3COOKUP.js → chunk-CQIJCPMF.js} +1108 -271
- package/dist/{chunk-OJGQKHN5.cjs → chunk-EPN67EGP.cjs} +3 -0
- package/dist/{chunk-PEGTIPB3.js → chunk-HKB656B4.js} +37 -43
- package/dist/chunk-N2EIM2XJ.js +203 -0
- package/dist/{chunk-MYYR3HZL.js → chunk-NGYOO5TO.js} +5 -5
- package/dist/{chunk-OKMJLEXX.cjs → chunk-OC6DOOFX.cjs} +5 -5
- package/dist/{chunk-2Z4XM3H5.cjs → chunk-P7EM6BND.cjs} +10 -10
- package/dist/{chunk-KBM2W6UY.cjs → chunk-RICPANBY.cjs} +41 -24
- package/dist/{chunk-TOVPMMHM.js → chunk-S3DYFEBE.js} +37 -20
- package/dist/{chunk-SOO562NM.js → chunk-UAPBLNN2.js} +3 -0
- package/dist/chunk-WYVGULTQ.js +37 -0
- package/dist/{chunk-4BB343BI.cjs → chunk-XELFM7KL.cjs} +1381 -544
- package/dist/{chunk-OXHNSZ53.cjs → chunk-ZQQUD66M.cjs} +54 -60
- package/dist/completion/ApiKeyPoolService.cjs +32 -1
- package/dist/completion/ApiKeyPoolService.d.cts +17 -1
- package/dist/completion/ApiKeyPoolService.d.ts +17 -1
- package/dist/completion/ApiKeyPoolService.js +31 -0
- package/dist/completion/CompletionService.cjs +13 -11
- package/dist/completion/CompletionService.js +12 -10
- package/dist/completion.cjs +13 -11
- package/dist/completion.js +12 -10
- package/dist/index.cjs +69 -11
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +68 -10
- package/dist/outbound-api/routeResolver.d.cts +4 -4
- package/dist/outbound-api/routeResolver.d.ts +4 -4
- package/dist/outbound-api/types.d.cts +3 -3
- package/dist/outbound-api/types.d.ts +3 -3
- package/dist/outbound-api.cjs +13 -11
- package/dist/outbound-api.d.cts +5 -5
- package/dist/outbound-api.d.ts +5 -5
- package/dist/outbound-api.js +12 -10
- package/dist/pipeline/AccountAllowanceScheduling.d.cts +3 -3
- package/dist/pipeline/AccountAllowanceScheduling.d.ts +3 -3
- package/dist/pipeline/executeProviderCall.d.cts +2 -0
- package/dist/pipeline/executeProviderCall.d.ts +2 -0
- package/dist/pipeline/resolveProviderChain.d.cts +1 -0
- package/dist/pipeline/resolveProviderChain.d.ts +1 -0
- package/dist/pipeline/resolveSubscriptionChain.d.cts +2 -0
- package/dist/pipeline/resolveSubscriptionChain.d.ts +2 -0
- package/dist/ports/provider-config-source.d.cts +1 -0
- package/dist/ports/provider-config-source.d.ts +1 -0
- package/dist/ports.d.cts +3 -3
- package/dist/ports.d.ts +3 -3
- package/dist/provider-proxy/ProviderProxy.cjs +13 -11
- package/dist/provider-proxy/ProviderProxy.d.cts +1 -1
- package/dist/provider-proxy/ProviderProxy.d.ts +1 -1
- package/dist/provider-proxy/ProviderProxy.js +12 -10
- package/dist/provider-proxy/ingress/providerProxyShared.cjs +13 -11
- package/dist/provider-proxy/ingress/providerProxyShared.js +12 -10
- package/dist/provider-proxy/types.d.cts +15 -1
- package/dist/provider-proxy/types.d.ts +15 -1
- package/dist/provider-proxy.cjs +69 -11
- package/dist/provider-proxy.d.cts +254 -8
- package/dist/provider-proxy.d.ts +254 -8
- package/dist/provider-proxy.js +70 -12
- package/dist/{routeResolver-BxOfunbm.d.ts → routeResolver-C0mkkZaM.d.ts} +1 -1
- package/dist/{routeResolver-D5OzD0iM.d.cts → routeResolver-CVFE8KKe.d.cts} +1 -1
- package/dist/transformer/TransformerChainExecutor.d.cts +2 -0
- package/dist/transformer/TransformerChainExecutor.d.ts +2 -0
- package/dist/transformer/TransformerService.d.cts +2 -0
- package/dist/transformer/TransformerService.d.ts +2 -0
- package/dist/transformer/transformers/AnthropicTransformer.cjs +4 -2
- package/dist/transformer/transformers/AnthropicTransformer.d.cts +7 -2
- package/dist/transformer/transformers/AnthropicTransformer.d.ts +7 -2
- package/dist/transformer/transformers/AnthropicTransformer.js +3 -1
- package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +5 -3
- package/dist/transformer/transformers/GeminiCodeAssistTransformer.d.cts +2 -0
- package/dist/transformer/transformers/GeminiCodeAssistTransformer.d.ts +2 -0
- package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +4 -2
- package/dist/transformer/transformers/GeminiTransformer.cjs +5 -3
- package/dist/transformer/transformers/GeminiTransformer.d.cts +4 -2
- package/dist/transformer/transformers/GeminiTransformer.d.ts +4 -2
- package/dist/transformer/transformers/GeminiTransformer.js +4 -2
- package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +3 -2
- package/dist/transformer/transformers/OpenAIResponseTransformer.d.cts +4 -2
- package/dist/transformer/transformers/OpenAIResponseTransformer.d.ts +4 -2
- package/dist/transformer/transformers/OpenAIResponseTransformer.js +2 -1
- package/dist/transformer/transformers/OpenAITransformer.cjs +3 -2
- package/dist/transformer/transformers/OpenAITransformer.d.cts +3 -1
- package/dist/transformer/transformers/OpenAITransformer.d.ts +3 -1
- package/dist/transformer/transformers/OpenAITransformer.js +2 -1
- package/dist/transformer/transformers.cjs +10 -8
- package/dist/transformer/transformers.d.cts +2 -0
- package/dist/transformer/transformers.d.ts +2 -0
- package/dist/transformer/transformers.js +9 -7
- package/dist/transformer/types.d.cts +16 -5
- package/dist/transformer/types.d.ts +16 -5
- package/dist/transformer.cjs +28 -9
- package/dist/transformer.d.cts +76 -1
- package/dist/transformer.d.ts +76 -1
- package/dist/transformer.js +28 -9
- package/dist/{types-CqZD77rS.d.ts → types-BB8pxk_3.d.ts} +1 -1
- package/dist/{types-gjJ5lJ5n.d.cts → types-C2MwkLah.d.cts} +1 -1
- package/dist/usage/usage-recorder.cjs +2 -2
- package/dist/usage/usage-recorder.d.cts +6 -0
- package/dist/usage/usage-recorder.d.ts +6 -0
- package/dist/usage/usage-recorder.js +1 -1
- package/dist/usage.cjs +2 -2
- package/dist/usage.js +1 -1
- package/package.json +1 -1
- /package/dist/{chunk-FZ46M34D.cjs → chunk-QVOB2DNX.cjs} +0 -0
- /package/dist/{chunk-46RLHI7D.js → chunk-WTQMX2Q6.js} +0 -0
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var _chunk5RSZYQJHcjs = require('./chunk-5RSZYQJH.cjs');
|
|
4
4
|
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunk77USGNRWcjs = require('./chunk-77USGNRW.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkAOFWNWLTcjs = require('./chunk-AOFWNWLT.cjs');
|
|
14
|
+
|
|
5
15
|
// src/transformer/transformers/AnthropicToolHandling.ts
|
|
6
16
|
function isServerSideTool(tool) {
|
|
7
17
|
const type = String(tool.type || "");
|
|
@@ -18,38 +28,6 @@ function convertAnthropicToolsToOpenAI(tools) {
|
|
|
18
28
|
}));
|
|
19
29
|
}
|
|
20
30
|
|
|
21
|
-
// src/transformer/transformers/AnthropicTypes.ts
|
|
22
|
-
function getThinkLevel(budgetTokens) {
|
|
23
|
-
if (!budgetTokens || budgetTokens <= 0) return "none";
|
|
24
|
-
if (budgetTokens < 4096) return "low";
|
|
25
|
-
if (budgetTokens < 16384) return "medium";
|
|
26
|
-
return "high";
|
|
27
|
-
}
|
|
28
|
-
function formatBase64(data, mediaType) {
|
|
29
|
-
if (data.startsWith("data:")) return data;
|
|
30
|
-
return `data:${mediaType || "image/png"};base64,${data}`;
|
|
31
|
-
}
|
|
32
|
-
function flattenToolResultContent(content) {
|
|
33
|
-
if (typeof content === "string") return content;
|
|
34
|
-
if (content == null) return "";
|
|
35
|
-
if (!Array.isArray(content)) return JSON.stringify(content);
|
|
36
|
-
const parts = [];
|
|
37
|
-
for (const block of content) {
|
|
38
|
-
if (typeof block === "string") {
|
|
39
|
-
parts.push(block);
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
if (!block || typeof block !== "object") continue;
|
|
43
|
-
const typed = block;
|
|
44
|
-
if (typed.type === "image" || typed.type === "image_url") {
|
|
45
|
-
parts.push("[image omitted]");
|
|
46
|
-
} else if (typeof typed.text === "string") {
|
|
47
|
-
parts.push(typed.text);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return parts.filter((text) => text !== "").join("\n");
|
|
51
|
-
}
|
|
52
|
-
|
|
53
31
|
// src/anthropicMaxTokens.ts
|
|
54
32
|
var _canonicalmodels = require('@omnicross/contracts/canonical-models');
|
|
55
33
|
var ANTHROPIC_FALLBACK_MAX_TOKENS = 128e3;
|
|
@@ -65,7 +43,7 @@ function resolveAnthropicMaxTokens(model, requested) {
|
|
|
65
43
|
}
|
|
66
44
|
|
|
67
45
|
// src/transformer/transformers/AnthropicRequestBuilder.ts
|
|
68
|
-
function buildAnthropicRequestBody(request) {
|
|
46
|
+
function buildAnthropicRequestBody(request, provider) {
|
|
69
47
|
let systemContent;
|
|
70
48
|
const anthropicMessages = [];
|
|
71
49
|
for (let i = 0; i < request.messages.length; i++) {
|
|
@@ -202,10 +180,18 @@ function buildAnthropicRequestBody(request) {
|
|
|
202
180
|
body.tool_choice = { type: "tool", name: request.tool_choice.function.name };
|
|
203
181
|
}
|
|
204
182
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
183
|
+
const reasoningPlan = _chunkAOFWNWLTcjs.resolveReasoningPlan.call(void 0, {
|
|
184
|
+
intent: _chunkAOFWNWLTcjs.extractReasoningIntent.call(void 0, request),
|
|
185
|
+
model: request.model,
|
|
186
|
+
provider,
|
|
187
|
+
target: "anthropic",
|
|
188
|
+
requestMaxTokens: request.max_tokens
|
|
189
|
+
});
|
|
190
|
+
if (_optionalChain([reasoningPlan, 'optionalAccess', _9 => _9.kind]) === "level" && reasoningPlan.enabled) {
|
|
191
|
+
body.thinking = { type: "adaptive" };
|
|
192
|
+
body.output_config = { effort: reasoningPlan.effort };
|
|
193
|
+
} else if (_optionalChain([reasoningPlan, 'optionalAccess', _10 => _10.kind]) === "budget" && reasoningPlan.enabled) {
|
|
194
|
+
body.thinking = { type: "enabled", budget_tokens: reasoningPlan.budgetTokens };
|
|
209
195
|
body.temperature = 1;
|
|
210
196
|
}
|
|
211
197
|
return body;
|
|
@@ -380,7 +366,7 @@ function transformAnthropicRequestToUnified(request) {
|
|
|
380
366
|
// Claude Code sends tool results as a block ARRAY; stringifying it
|
|
381
367
|
// fed the model the literal `[{"type":"text","text":"…"}]` envelope
|
|
382
368
|
// on every tool result.
|
|
383
|
-
content: flattenToolResultContent(tool.content),
|
|
369
|
+
content: _chunk77USGNRWcjs.flattenToolResultContent.call(void 0, tool.content),
|
|
384
370
|
tool_call_id: tool.tool_use_id,
|
|
385
371
|
cache_control: tool.cache_control
|
|
386
372
|
});
|
|
@@ -397,7 +383,7 @@ function transformAnthropicRequestToUnified(request) {
|
|
|
397
383
|
return {
|
|
398
384
|
type: "image_url",
|
|
399
385
|
image_url: {
|
|
400
|
-
url: imagePart.source.type === "base64" ? formatBase64(imagePart.source.data || "", imagePart.source.media_type) : imagePart.source.url || ""
|
|
386
|
+
url: imagePart.source.type === "base64" ? _chunk77USGNRWcjs.formatBase64.call(void 0, imagePart.source.data || "", imagePart.source.media_type) : imagePart.source.url || ""
|
|
401
387
|
},
|
|
402
388
|
media_type: imagePart.source.media_type
|
|
403
389
|
};
|
|
@@ -461,10 +447,18 @@ function transformAnthropicRequestToUnified(request) {
|
|
|
461
447
|
result._serverSideTools = serverSideTools;
|
|
462
448
|
}
|
|
463
449
|
if (anthropicRequest.thinking) {
|
|
464
|
-
|
|
465
|
-
effort:
|
|
466
|
-
|
|
467
|
-
|
|
450
|
+
if (anthropicRequest.thinking.type === "disabled") {
|
|
451
|
+
result.reasoning = { effort: "none", enabled: false };
|
|
452
|
+
} else if (anthropicRequest.thinking.type === "adaptive") {
|
|
453
|
+
const effort = _chunkAOFWNWLTcjs.normalizeThinkLevel.call(void 0, _optionalChain([anthropicRequest, 'access', _23 => _23.output_config, 'optionalAccess', _24 => _24.effort]));
|
|
454
|
+
if (effort) result.reasoning = { effort, enabled: effort !== "none" };
|
|
455
|
+
} else {
|
|
456
|
+
result.reasoning = {
|
|
457
|
+
effort: _chunk77USGNRWcjs.getThinkLevel.call(void 0, anthropicRequest.thinking.budget_tokens),
|
|
458
|
+
enabled: true,
|
|
459
|
+
...typeof anthropicRequest.thinking.budget_tokens === "number" ? { max_tokens: anthropicRequest.thinking.budget_tokens } : {}
|
|
460
|
+
};
|
|
461
|
+
}
|
|
468
462
|
}
|
|
469
463
|
if (anthropicRequest.tool_choice) {
|
|
470
464
|
if (anthropicRequest.tool_choice.type === "tool" && anthropicRequest.tool_choice.name) {
|
|
@@ -580,7 +574,7 @@ function convertAnthropicStreamToOpenAI(anthropicStream, logger) {
|
|
|
580
574
|
`);
|
|
581
575
|
} else if (event.content_block.type === "web_search_tool_result") {
|
|
582
576
|
const searches = event.content_block.content;
|
|
583
|
-
if (_optionalChain([searches, 'optionalAccess',
|
|
577
|
+
if (_optionalChain([searches, 'optionalAccess', _25 => _25.length])) {
|
|
584
578
|
const formatted = searches.map((s) => `[${s.title}](${s.url}): ${s.page_content || s.snippet || ""}`).join("\n");
|
|
585
579
|
const chunk = {
|
|
586
580
|
id: messageId,
|
|
@@ -628,7 +622,7 @@ ${formatted}` },
|
|
|
628
622
|
`);
|
|
629
623
|
}
|
|
630
624
|
} catch (e) {
|
|
631
|
-
_optionalChain([logger, 'optionalAccess',
|
|
625
|
+
_optionalChain([logger, 'optionalAccess', _26 => _26.error, 'call', _27 => _27("Error parsing Anthropic stream event:", e)]);
|
|
632
626
|
}
|
|
633
627
|
}
|
|
634
628
|
}
|
|
@@ -760,20 +754,20 @@ data: ${JSON.stringify({
|
|
|
760
754
|
|
|
761
755
|
`);
|
|
762
756
|
}
|
|
763
|
-
const choice = _optionalChain([chunk, 'access',
|
|
757
|
+
const choice = _optionalChain([chunk, 'access', _28 => _28.choices, 'optionalAccess', _29 => _29[0]]);
|
|
764
758
|
if (!choice) continue;
|
|
765
759
|
if (chunk.usage) {
|
|
766
760
|
stopReasonDelta = {
|
|
767
761
|
type: "message_delta",
|
|
768
762
|
delta: { stop_reason: "end_turn", stop_sequence: null },
|
|
769
763
|
usage: {
|
|
770
|
-
input_tokens: (chunk.usage.prompt_tokens || 0) - (_optionalChain([chunk, 'access',
|
|
764
|
+
input_tokens: (chunk.usage.prompt_tokens || 0) - (_optionalChain([chunk, 'access', _30 => _30.usage, 'access', _31 => _31.prompt_tokens_details, 'optionalAccess', _32 => _32.cached_tokens]) || 0),
|
|
771
765
|
output_tokens: chunk.usage.completion_tokens || 0,
|
|
772
|
-
cache_read_input_tokens: _optionalChain([chunk, 'access',
|
|
766
|
+
cache_read_input_tokens: _optionalChain([chunk, 'access', _33 => _33.usage, 'access', _34 => _34.prompt_tokens_details, 'optionalAccess', _35 => _35.cached_tokens]) || 0
|
|
773
767
|
}
|
|
774
768
|
};
|
|
775
769
|
}
|
|
776
|
-
if (_optionalChain([choice, 'access',
|
|
770
|
+
if (_optionalChain([choice, 'access', _36 => _36.delta, 'optionalAccess', _37 => _37.thinking])) {
|
|
777
771
|
if (!isThinkingStarted) {
|
|
778
772
|
const thinkingBlockIndex = assignContentBlockIndex();
|
|
779
773
|
safeEnqueue(`event: content_block_start
|
|
@@ -815,7 +809,7 @@ data: ${JSON.stringify({
|
|
|
815
809
|
`);
|
|
816
810
|
}
|
|
817
811
|
}
|
|
818
|
-
if (_optionalChain([choice, 'access',
|
|
812
|
+
if (_optionalChain([choice, 'access', _38 => _38.delta, 'optionalAccess', _39 => _39.content])) {
|
|
819
813
|
if (!hasTextContentStarted) {
|
|
820
814
|
if (currentContentBlockIndex >= 0 && isThinkingStarted) {
|
|
821
815
|
safeEnqueue(`event: content_block_stop
|
|
@@ -847,7 +841,7 @@ data: ${JSON.stringify({
|
|
|
847
841
|
|
|
848
842
|
`);
|
|
849
843
|
}
|
|
850
|
-
if (_optionalChain([choice, 'access',
|
|
844
|
+
if (_optionalChain([choice, 'access', _40 => _40.delta, 'optionalAccess', _41 => _41.tool_calls])) {
|
|
851
845
|
for (const toolCall of choice.delta.tool_calls) {
|
|
852
846
|
const toolCallIndex = _nullishCoalesce(toolCall.index, () => ( 0));
|
|
853
847
|
if (!toolCallIndexToContentBlockIndex.has(toolCallIndex)) {
|
|
@@ -870,7 +864,7 @@ data: ${JSON.stringify({
|
|
|
870
864
|
content_block: {
|
|
871
865
|
type: "tool_use",
|
|
872
866
|
id: toolCall.id || `call_${Date.now()}_${toolCallIndex}`,
|
|
873
|
-
name: _optionalChain([toolCall, 'access',
|
|
867
|
+
name: _optionalChain([toolCall, 'access', _42 => _42.function, 'optionalAccess', _43 => _43.name]) || `tool_${toolCallIndex}`,
|
|
874
868
|
input: {}
|
|
875
869
|
}
|
|
876
870
|
})}
|
|
@@ -878,7 +872,7 @@ data: ${JSON.stringify({
|
|
|
878
872
|
`);
|
|
879
873
|
currentContentBlockIndex = newBlockIndex;
|
|
880
874
|
}
|
|
881
|
-
if (_optionalChain([toolCall, 'access',
|
|
875
|
+
if (_optionalChain([toolCall, 'access', _44 => _44.function, 'optionalAccess', _45 => _45.arguments])) {
|
|
882
876
|
const blockIndex = toolCallIndexToContentBlockIndex.get(toolCallIndex);
|
|
883
877
|
if (blockIndex !== void 0) {
|
|
884
878
|
safeEnqueue(`event: content_block_delta
|
|
@@ -907,14 +901,14 @@ data: ${JSON.stringify({
|
|
|
907
901
|
stop_sequence: null
|
|
908
902
|
},
|
|
909
903
|
usage: {
|
|
910
|
-
input_tokens: (_optionalChain([chunk, 'access',
|
|
911
|
-
output_tokens: _optionalChain([chunk, 'access',
|
|
912
|
-
cache_read_input_tokens: _optionalChain([chunk, 'access',
|
|
904
|
+
input_tokens: (_optionalChain([chunk, 'access', _46 => _46.usage, 'optionalAccess', _47 => _47.prompt_tokens]) || 0) - (_optionalChain([chunk, 'access', _48 => _48.usage, 'optionalAccess', _49 => _49.prompt_tokens_details, 'optionalAccess', _50 => _50.cached_tokens]) || 0),
|
|
905
|
+
output_tokens: _optionalChain([chunk, 'access', _51 => _51.usage, 'optionalAccess', _52 => _52.completion_tokens]) || 0,
|
|
906
|
+
cache_read_input_tokens: _optionalChain([chunk, 'access', _53 => _53.usage, 'optionalAccess', _54 => _54.prompt_tokens_details, 'optionalAccess', _55 => _55.cached_tokens]) || 0
|
|
913
907
|
}
|
|
914
908
|
};
|
|
915
909
|
}
|
|
916
910
|
} catch (e) {
|
|
917
|
-
_optionalChain([logger, 'optionalAccess',
|
|
911
|
+
_optionalChain([logger, 'optionalAccess', _56 => _56.error, 'call', _57 => _57("Error parsing stream chunk:", e)]);
|
|
918
912
|
}
|
|
919
913
|
}
|
|
920
914
|
}
|
|
@@ -938,7 +932,7 @@ var AnthropicTransformer = (_class = class {
|
|
|
938
932
|
__init2() {this.endPoint = "/v1/messages"}
|
|
939
933
|
|
|
940
934
|
constructor(options) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);
|
|
941
|
-
this.useBearer = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
935
|
+
this.useBearer = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _58 => _58.UseBearer]), () => ( false));
|
|
942
936
|
}
|
|
943
937
|
/**
|
|
944
938
|
* Handle authentication - Anthropic uses x-api-key header
|
|
@@ -994,8 +988,8 @@ var AnthropicTransformer = (_class = class {
|
|
|
994
988
|
* This is the reverse of transformRequestOut — converts OpenAI/unified format
|
|
995
989
|
* to Anthropic's expected request body structure.
|
|
996
990
|
*/
|
|
997
|
-
async transformRequestIn(request,
|
|
998
|
-
return buildAnthropicRequestBody(request);
|
|
991
|
+
async transformRequestIn(request, provider, _context) {
|
|
992
|
+
return buildAnthropicRequestBody(request, provider);
|
|
999
993
|
}
|
|
1000
994
|
/**
|
|
1001
995
|
* Transform Anthropic response to OpenAI/unified format
|
|
@@ -172,6 +172,37 @@ var ApiKeyPoolService = (_class = class {
|
|
|
172
172
|
const keys = await this.getAllKeys(providerId);
|
|
173
173
|
return keys.length > 0;
|
|
174
174
|
}
|
|
175
|
+
/** Secret-free strict preflight for a named provider key. */
|
|
176
|
+
async hasUsableKey(providerId, keyId) {
|
|
177
|
+
const keys = await this.getAvailableKeys(providerId);
|
|
178
|
+
return keys.some((key) => key.id === keyId);
|
|
179
|
+
}
|
|
180
|
+
/** Secret-free existence/availability split for strict Route Lease targets. */
|
|
181
|
+
async getKeyAvailability(providerId, keyId) {
|
|
182
|
+
const all = await this.getAllKeys(providerId);
|
|
183
|
+
if (!all.some((key) => key.id === keyId)) return "not-found";
|
|
184
|
+
return (await this.getAvailableKeys(providerId)).some((key) => key.id === keyId) ? "usable" : "unavailable";
|
|
185
|
+
}
|
|
186
|
+
/** Secret-free preflight for at least one enabled, non-cooling pool key. */
|
|
187
|
+
async hasUsableKeys(providerId) {
|
|
188
|
+
return (await this.getAvailableKeys(providerId)).length > 0;
|
|
189
|
+
}
|
|
190
|
+
/** Preserve pool exhaustion and its earliest safe retry horizon for Route Lease. */
|
|
191
|
+
async getPoolAvailability(providerId) {
|
|
192
|
+
const all = await this.getAllKeys(providerId);
|
|
193
|
+
if (all.length === 0) return { outcome: "empty" };
|
|
194
|
+
if ((await this.getAvailableKeys(providerId)).length > 0) return { outcome: "usable" };
|
|
195
|
+
const now = Date.now();
|
|
196
|
+
const coolingUntil = all.filter((key) => key.enabled).map((key) => _nullishCoalesce(_optionalChain([this, 'access', _ => _.cooldowns, 'access', _2 => _2.get, 'call', _3 => _3(key.id), 'optionalAccess', _4 => _4.until]), () => ( 0))).filter((until) => until > now);
|
|
197
|
+
if (coolingUntil.length > 0) {
|
|
198
|
+
const earliest = Math.min(...coolingUntil);
|
|
199
|
+
return {
|
|
200
|
+
outcome: "exhausted",
|
|
201
|
+
retryAfterSeconds: Math.max(1, Math.min(3600, Math.ceil((earliest - now) / 1e3)))
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
return { outcome: "unavailable" };
|
|
205
|
+
}
|
|
175
206
|
/**
|
|
176
207
|
* Get the live (in-memory) rate-limit cooldown health for a provider's keys.
|
|
177
208
|
*
|
|
@@ -240,7 +271,7 @@ var ApiKeyPoolService = (_class = class {
|
|
|
240
271
|
*/
|
|
241
272
|
applyCooldown(keyId, providerId, statusCode) {
|
|
242
273
|
const current = this.cooldowns.get(keyId);
|
|
243
|
-
const errors = (_nullishCoalesce(_optionalChain([current, 'optionalAccess',
|
|
274
|
+
const errors = (_nullishCoalesce(_optionalChain([current, 'optionalAccess', _5 => _5.errors]), () => ( 0))) + 1;
|
|
244
275
|
const cooldownMs = Math.min(
|
|
245
276
|
this.DEFAULT_COOLDOWN_MS * Math.pow(this.COOLDOWN_MULTIPLIER, errors - 1),
|
|
246
277
|
this.MAX_COOLDOWN_MS
|
|
@@ -20,6 +20,14 @@ interface KeyHealthEntry {
|
|
|
20
20
|
}
|
|
21
21
|
/** Provider-scoped map of keyId → live cooldown health (cooling keys only). */
|
|
22
22
|
type KeyHealthMap = Record<string, KeyHealthEntry>;
|
|
23
|
+
type ProviderKeyPoolAvailability = {
|
|
24
|
+
readonly outcome: 'usable';
|
|
25
|
+
} | {
|
|
26
|
+
readonly outcome: 'empty' | 'unavailable';
|
|
27
|
+
} | {
|
|
28
|
+
readonly outcome: 'exhausted';
|
|
29
|
+
readonly retryAfterSeconds: number;
|
|
30
|
+
};
|
|
23
31
|
/** Function type for loading API keys from the database */
|
|
24
32
|
type ApiKeysLoader = (providerId: string) => Promise<ApiKeyEntry[]>;
|
|
25
33
|
/** Function type for disabling a key in the database (on auth failure) */
|
|
@@ -111,6 +119,14 @@ declare class ApiKeyPoolService {
|
|
|
111
119
|
* Check if a provider has any keys in the pool.
|
|
112
120
|
*/
|
|
113
121
|
hasKeys(providerId: string): Promise<boolean>;
|
|
122
|
+
/** Secret-free strict preflight for a named provider key. */
|
|
123
|
+
hasUsableKey(providerId: string, keyId: string): Promise<boolean>;
|
|
124
|
+
/** Secret-free existence/availability split for strict Route Lease targets. */
|
|
125
|
+
getKeyAvailability(providerId: string, keyId: string): Promise<'usable' | 'unavailable' | 'not-found'>;
|
|
126
|
+
/** Secret-free preflight for at least one enabled, non-cooling pool key. */
|
|
127
|
+
hasUsableKeys(providerId: string): Promise<boolean>;
|
|
128
|
+
/** Preserve pool exhaustion and its earliest safe retry horizon for Route Lease. */
|
|
129
|
+
getPoolAvailability(providerId: string): Promise<ProviderKeyPoolAvailability>;
|
|
114
130
|
/**
|
|
115
131
|
* Get the live (in-memory) rate-limit cooldown health for a provider's keys.
|
|
116
132
|
*
|
|
@@ -153,4 +169,4 @@ declare class ApiKeyPoolService {
|
|
|
153
169
|
private cleanupExpiredCooldowns;
|
|
154
170
|
}
|
|
155
171
|
|
|
156
|
-
export { type ApiKeyAutoDisabler, type ApiKeyDisabler, ApiKeyPoolService, type ApiKeyResolver, type ApiKeysLoader, type KeyHealthEntry, type KeyHealthMap };
|
|
172
|
+
export { type ApiKeyAutoDisabler, type ApiKeyDisabler, ApiKeyPoolService, type ApiKeyResolver, type ApiKeysLoader, type KeyHealthEntry, type KeyHealthMap, type ProviderKeyPoolAvailability };
|
|
@@ -20,6 +20,14 @@ interface KeyHealthEntry {
|
|
|
20
20
|
}
|
|
21
21
|
/** Provider-scoped map of keyId → live cooldown health (cooling keys only). */
|
|
22
22
|
type KeyHealthMap = Record<string, KeyHealthEntry>;
|
|
23
|
+
type ProviderKeyPoolAvailability = {
|
|
24
|
+
readonly outcome: 'usable';
|
|
25
|
+
} | {
|
|
26
|
+
readonly outcome: 'empty' | 'unavailable';
|
|
27
|
+
} | {
|
|
28
|
+
readonly outcome: 'exhausted';
|
|
29
|
+
readonly retryAfterSeconds: number;
|
|
30
|
+
};
|
|
23
31
|
/** Function type for loading API keys from the database */
|
|
24
32
|
type ApiKeysLoader = (providerId: string) => Promise<ApiKeyEntry[]>;
|
|
25
33
|
/** Function type for disabling a key in the database (on auth failure) */
|
|
@@ -111,6 +119,14 @@ declare class ApiKeyPoolService {
|
|
|
111
119
|
* Check if a provider has any keys in the pool.
|
|
112
120
|
*/
|
|
113
121
|
hasKeys(providerId: string): Promise<boolean>;
|
|
122
|
+
/** Secret-free strict preflight for a named provider key. */
|
|
123
|
+
hasUsableKey(providerId: string, keyId: string): Promise<boolean>;
|
|
124
|
+
/** Secret-free existence/availability split for strict Route Lease targets. */
|
|
125
|
+
getKeyAvailability(providerId: string, keyId: string): Promise<'usable' | 'unavailable' | 'not-found'>;
|
|
126
|
+
/** Secret-free preflight for at least one enabled, non-cooling pool key. */
|
|
127
|
+
hasUsableKeys(providerId: string): Promise<boolean>;
|
|
128
|
+
/** Preserve pool exhaustion and its earliest safe retry horizon for Route Lease. */
|
|
129
|
+
getPoolAvailability(providerId: string): Promise<ProviderKeyPoolAvailability>;
|
|
114
130
|
/**
|
|
115
131
|
* Get the live (in-memory) rate-limit cooldown health for a provider's keys.
|
|
116
132
|
*
|
|
@@ -153,4 +169,4 @@ declare class ApiKeyPoolService {
|
|
|
153
169
|
private cleanupExpiredCooldowns;
|
|
154
170
|
}
|
|
155
171
|
|
|
156
|
-
export { type ApiKeyAutoDisabler, type ApiKeyDisabler, ApiKeyPoolService, type ApiKeyResolver, type ApiKeysLoader, type KeyHealthEntry, type KeyHealthMap };
|
|
172
|
+
export { type ApiKeyAutoDisabler, type ApiKeyDisabler, ApiKeyPoolService, type ApiKeyResolver, type ApiKeysLoader, type KeyHealthEntry, type KeyHealthMap, type ProviderKeyPoolAvailability };
|
|
@@ -172,6 +172,37 @@ var ApiKeyPoolService = class {
|
|
|
172
172
|
const keys = await this.getAllKeys(providerId);
|
|
173
173
|
return keys.length > 0;
|
|
174
174
|
}
|
|
175
|
+
/** Secret-free strict preflight for a named provider key. */
|
|
176
|
+
async hasUsableKey(providerId, keyId) {
|
|
177
|
+
const keys = await this.getAvailableKeys(providerId);
|
|
178
|
+
return keys.some((key) => key.id === keyId);
|
|
179
|
+
}
|
|
180
|
+
/** Secret-free existence/availability split for strict Route Lease targets. */
|
|
181
|
+
async getKeyAvailability(providerId, keyId) {
|
|
182
|
+
const all = await this.getAllKeys(providerId);
|
|
183
|
+
if (!all.some((key) => key.id === keyId)) return "not-found";
|
|
184
|
+
return (await this.getAvailableKeys(providerId)).some((key) => key.id === keyId) ? "usable" : "unavailable";
|
|
185
|
+
}
|
|
186
|
+
/** Secret-free preflight for at least one enabled, non-cooling pool key. */
|
|
187
|
+
async hasUsableKeys(providerId) {
|
|
188
|
+
return (await this.getAvailableKeys(providerId)).length > 0;
|
|
189
|
+
}
|
|
190
|
+
/** Preserve pool exhaustion and its earliest safe retry horizon for Route Lease. */
|
|
191
|
+
async getPoolAvailability(providerId) {
|
|
192
|
+
const all = await this.getAllKeys(providerId);
|
|
193
|
+
if (all.length === 0) return { outcome: "empty" };
|
|
194
|
+
if ((await this.getAvailableKeys(providerId)).length > 0) return { outcome: "usable" };
|
|
195
|
+
const now = Date.now();
|
|
196
|
+
const coolingUntil = all.filter((key) => key.enabled).map((key) => this.cooldowns.get(key.id)?.until ?? 0).filter((until) => until > now);
|
|
197
|
+
if (coolingUntil.length > 0) {
|
|
198
|
+
const earliest = Math.min(...coolingUntil);
|
|
199
|
+
return {
|
|
200
|
+
outcome: "exhausted",
|
|
201
|
+
retryAfterSeconds: Math.max(1, Math.min(3600, Math.ceil((earliest - now) / 1e3)))
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
return { outcome: "unavailable" };
|
|
205
|
+
}
|
|
175
206
|
/**
|
|
176
207
|
* Get the live (in-memory) rate-limit cooldown health for a provider's keys.
|
|
177
208
|
*
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkXELFM7KLcjs = require('../chunk-XELFM7KL.cjs');
|
|
4
4
|
require('../chunk-HQP3K7PU.cjs');
|
|
5
|
-
require('../chunk-
|
|
6
|
-
require('../chunk-
|
|
7
|
-
require('../chunk-
|
|
8
|
-
require('../chunk-
|
|
9
|
-
require('../chunk-
|
|
5
|
+
require('../chunk-QVOB2DNX.cjs');
|
|
6
|
+
require('../chunk-P7EM6BND.cjs');
|
|
7
|
+
require('../chunk-ZQQUD66M.cjs');
|
|
8
|
+
require('../chunk-5LNYGCIW.cjs');
|
|
9
|
+
require('../chunk-CMVXX7ON.cjs');
|
|
10
10
|
require('../chunk-5RSZYQJH.cjs');
|
|
11
|
-
require('../chunk-
|
|
11
|
+
require('../chunk-56QD3YW6.cjs');
|
|
12
12
|
require('../chunk-EYZYXJTJ.cjs');
|
|
13
13
|
require('../chunk-2E42SAW3.cjs');
|
|
14
|
-
require('../chunk-
|
|
14
|
+
require('../chunk-EPN67EGP.cjs');
|
|
15
15
|
require('../chunk-IIRPUVPH.cjs');
|
|
16
16
|
require('../chunk-GBHYAGX3.cjs');
|
|
17
17
|
require('../chunk-3OPYJG76.cjs');
|
|
@@ -43,8 +43,10 @@ require('../chunk-FCR77GYM.cjs');
|
|
|
43
43
|
require('../chunk-AEOZIDEB.cjs');
|
|
44
44
|
require('../chunk-XSVNC2UD.cjs');
|
|
45
45
|
require('../chunk-GDIXXKF2.cjs');
|
|
46
|
-
require('../chunk-
|
|
47
|
-
require('../chunk-
|
|
46
|
+
require('../chunk-OC6DOOFX.cjs');
|
|
47
|
+
require('../chunk-RICPANBY.cjs');
|
|
48
|
+
require('../chunk-77USGNRW.cjs');
|
|
49
|
+
require('../chunk-AOFWNWLT.cjs');
|
|
48
50
|
require('../chunk-RJUONLUQ.cjs');
|
|
49
51
|
require('../chunk-235MXAGX.cjs');
|
|
50
52
|
require('../chunk-HVBBDBS3.cjs');
|
|
@@ -55,4 +57,4 @@ require('../chunk-GMMT7RVN.cjs');
|
|
|
55
57
|
require('../chunk-UNEFIWXI.cjs');
|
|
56
58
|
|
|
57
59
|
|
|
58
|
-
exports.CompletionService =
|
|
60
|
+
exports.CompletionService = _chunkXELFM7KLcjs.CompletionService;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CompletionService
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-CQIJCPMF.js";
|
|
4
4
|
import "../chunk-VVEHS2LI.js";
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-WTQMX2Q6.js";
|
|
6
|
+
import "../chunk-NGYOO5TO.js";
|
|
7
|
+
import "../chunk-HKB656B4.js";
|
|
8
|
+
import "../chunk-55FMGZ3L.js";
|
|
9
|
+
import "../chunk-45FHEOKW.js";
|
|
10
10
|
import "../chunk-FU7EAR73.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-CCVRRJOX.js";
|
|
12
12
|
import "../chunk-7VU7V2E4.js";
|
|
13
13
|
import "../chunk-FXR6N3SR.js";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-UAPBLNN2.js";
|
|
15
15
|
import "../chunk-WNKWAEUR.js";
|
|
16
16
|
import "../chunk-MZNPGW5Q.js";
|
|
17
17
|
import "../chunk-DK4A7DLE.js";
|
|
@@ -43,8 +43,10 @@ import "../chunk-K5NM7VAH.js";
|
|
|
43
43
|
import "../chunk-WNY4WMRF.js";
|
|
44
44
|
import "../chunk-OZFM4X3S.js";
|
|
45
45
|
import "../chunk-5NJLQ6T6.js";
|
|
46
|
-
import "../chunk-
|
|
47
|
-
import "../chunk-
|
|
46
|
+
import "../chunk-2UTGX6FM.js";
|
|
47
|
+
import "../chunk-S3DYFEBE.js";
|
|
48
|
+
import "../chunk-WYVGULTQ.js";
|
|
49
|
+
import "../chunk-N2EIM2XJ.js";
|
|
48
50
|
import "../chunk-RJ5ZGNI3.js";
|
|
49
51
|
import "../chunk-3WD4HTR2.js";
|
|
50
52
|
import "../chunk-MKF46GNZ.js";
|
package/dist/completion.cjs
CHANGED
|
@@ -9,18 +9,18 @@
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkXELFM7KLcjs = require('./chunk-XELFM7KL.cjs');
|
|
13
13
|
require('./chunk-HQP3K7PU.cjs');
|
|
14
|
-
require('./chunk-
|
|
15
|
-
require('./chunk-
|
|
16
|
-
require('./chunk-
|
|
17
|
-
require('./chunk-
|
|
18
|
-
require('./chunk-
|
|
14
|
+
require('./chunk-QVOB2DNX.cjs');
|
|
15
|
+
require('./chunk-P7EM6BND.cjs');
|
|
16
|
+
require('./chunk-ZQQUD66M.cjs');
|
|
17
|
+
require('./chunk-5LNYGCIW.cjs');
|
|
18
|
+
require('./chunk-CMVXX7ON.cjs');
|
|
19
19
|
require('./chunk-5RSZYQJH.cjs');
|
|
20
|
-
require('./chunk-
|
|
20
|
+
require('./chunk-56QD3YW6.cjs');
|
|
21
21
|
require('./chunk-EYZYXJTJ.cjs');
|
|
22
22
|
require('./chunk-2E42SAW3.cjs');
|
|
23
|
-
require('./chunk-
|
|
23
|
+
require('./chunk-EPN67EGP.cjs');
|
|
24
24
|
require('./chunk-IIRPUVPH.cjs');
|
|
25
25
|
require('./chunk-GBHYAGX3.cjs');
|
|
26
26
|
require('./chunk-3OPYJG76.cjs');
|
|
@@ -64,8 +64,10 @@ require('./chunk-FCR77GYM.cjs');
|
|
|
64
64
|
require('./chunk-AEOZIDEB.cjs');
|
|
65
65
|
require('./chunk-XSVNC2UD.cjs');
|
|
66
66
|
require('./chunk-GDIXXKF2.cjs');
|
|
67
|
-
require('./chunk-
|
|
68
|
-
require('./chunk-
|
|
67
|
+
require('./chunk-OC6DOOFX.cjs');
|
|
68
|
+
require('./chunk-RICPANBY.cjs');
|
|
69
|
+
require('./chunk-77USGNRW.cjs');
|
|
70
|
+
require('./chunk-AOFWNWLT.cjs');
|
|
69
71
|
require('./chunk-RJUONLUQ.cjs');
|
|
70
72
|
require('./chunk-235MXAGX.cjs');
|
|
71
73
|
require('./chunk-HVBBDBS3.cjs');
|
|
@@ -110,4 +112,4 @@ require('./chunk-UNEFIWXI.cjs');
|
|
|
110
112
|
|
|
111
113
|
|
|
112
114
|
|
|
113
|
-
exports.BuiltinToolExecutor = _chunkNZYN7C3Pcjs.BuiltinToolExecutor; exports.CompletionService =
|
|
115
|
+
exports.BuiltinToolExecutor = _chunkNZYN7C3Pcjs.BuiltinToolExecutor; exports.CompletionService = _chunkXELFM7KLcjs.CompletionService; exports.NATIVE_SEARCH_TOOL_NAMES = _chunkGMMT7RVNcjs.NATIVE_SEARCH_TOOL_NAMES; exports.addOpenRouterProviderToRequest = _chunkXELFM7KLcjs.addOpenRouterProviderToRequest; exports.applyAugmentation = _chunkJMJBSACDcjs.applyAugmentation; exports.attachStreamEventBuffer = _chunkXELFM7KLcjs.attach; exports.buildAnthropicApiUrl = _chunkA2YMUCBTcjs.buildAnthropicApiUrl; exports.buildAzureOpenAIApiUrl = _chunkA2YMUCBTcjs.buildAzureOpenAIApiUrl; exports.buildGeminiApiUrl = _chunkA2YMUCBTcjs.buildGeminiApiUrl; exports.buildNativeSearchAugmentation = _chunkJMJBSACDcjs.buildNativeSearchAugmentation; exports.buildOpenAIApiUrl = _chunkA2YMUCBTcjs.buildOpenAIApiUrl; exports.buildOpenAIResponseApiUrl = _chunkA2YMUCBTcjs.buildOpenAIResponseApiUrl; exports.buildProviderApiUrl = _chunkA2YMUCBTcjs.buildProviderApiUrl; exports.convertMessageToAnthropic = _chunkXELFM7KLcjs.convertMessageToAnthropic; exports.convertMessageToGemini = _chunkXELFM7KLcjs.convertMessageToGemini; exports.convertMessageToOpenAI = _chunkXELFM7KLcjs.convertMessageToOpenAI; exports.detectNativeSearch = _chunkJMJBSACDcjs.detectNativeSearch; exports.emitStreamEvent = _chunkXELFM7KLcjs.emit; exports.getBuiltinSearchTools = _chunkNZYN7C3Pcjs.getBuiltinSearchTools; exports.getOpenRouterProviderConfig = _chunkXELFM7KLcjs.getOpenRouterProviderConfig; exports.getProviderHeaders = _chunkQ27JY5RGcjs.getProviderHeaders; exports.normalizeAzureEndpoint = _chunkA2YMUCBTcjs.normalizeAzureEndpoint; exports.registerStreamEventBuffer = _chunkXELFM7KLcjs.register; exports.releaseStreamEventBuffer = _chunkXELFM7KLcjs.release; exports.resolveApiFormat = _chunkA2YMUCBTcjs.resolveApiFormat; exports.resolveProviderEndpoint = _chunkA2YMUCBTcjs.resolveProviderEndpoint;
|
package/dist/completion.js
CHANGED
|
@@ -9,18 +9,18 @@ import {
|
|
|
9
9
|
getOpenRouterProviderConfig,
|
|
10
10
|
register,
|
|
11
11
|
release
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-CQIJCPMF.js";
|
|
13
13
|
import "./chunk-VVEHS2LI.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-WTQMX2Q6.js";
|
|
15
|
+
import "./chunk-NGYOO5TO.js";
|
|
16
|
+
import "./chunk-HKB656B4.js";
|
|
17
|
+
import "./chunk-55FMGZ3L.js";
|
|
18
|
+
import "./chunk-45FHEOKW.js";
|
|
19
19
|
import "./chunk-FU7EAR73.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-CCVRRJOX.js";
|
|
21
21
|
import "./chunk-7VU7V2E4.js";
|
|
22
22
|
import "./chunk-FXR6N3SR.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-UAPBLNN2.js";
|
|
24
24
|
import "./chunk-WNKWAEUR.js";
|
|
25
25
|
import "./chunk-MZNPGW5Q.js";
|
|
26
26
|
import "./chunk-DK4A7DLE.js";
|
|
@@ -64,8 +64,10 @@ import "./chunk-K5NM7VAH.js";
|
|
|
64
64
|
import "./chunk-WNY4WMRF.js";
|
|
65
65
|
import "./chunk-OZFM4X3S.js";
|
|
66
66
|
import "./chunk-5NJLQ6T6.js";
|
|
67
|
-
import "./chunk-
|
|
68
|
-
import "./chunk-
|
|
67
|
+
import "./chunk-2UTGX6FM.js";
|
|
68
|
+
import "./chunk-S3DYFEBE.js";
|
|
69
|
+
import "./chunk-WYVGULTQ.js";
|
|
70
|
+
import "./chunk-N2EIM2XJ.js";
|
|
69
71
|
import "./chunk-RJ5ZGNI3.js";
|
|
70
72
|
import "./chunk-3WD4HTR2.js";
|
|
71
73
|
import "./chunk-MKF46GNZ.js";
|