@omnicross/core 0.1.1 → 0.1.2
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 +27 -60
- package/dist/auth/GeminiCodeAssistProjectResolver.js +5 -9
- 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-2FEVTJWG.js +4400 -0
- package/dist/chunk-3MEACFK3.js +193 -0
- package/dist/chunk-3OPYJG76.cjs +266 -0
- package/dist/chunk-46RLHI7D.js +0 -0
- package/dist/chunk-46ZIFWYG.cjs +277 -0
- package/dist/chunk-4NBS6KPV.cjs +43 -0
- package/dist/chunk-4VAVYUZS.cjs +991 -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-6VIXXLMX.cjs +14 -0
- package/dist/chunk-745DV5FL.js +147 -0
- package/dist/chunk-74TMJA7Z.js +53 -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-AQ5TNQB7.js +13 -0
- package/dist/chunk-AVYJ4YBN.js +58 -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-DK4A7DLE.js +266 -0
- package/dist/chunk-DRWHTIIZ.js +13 -0
- package/dist/chunk-DWKQZ2SK.cjs +254 -0
- package/dist/chunk-E3WHL7CO.js +14 -0
- package/dist/chunk-EYZYXJTJ.cjs +1 -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-G2FUJNA2.cjs +193 -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-JO5NLTLY.js +46 -0
- package/dist/chunk-JWC6APFQ.js +23 -0
- package/dist/chunk-KUU2RNG6.cjs +46 -0
- package/dist/chunk-LKZJEL6E.cjs +124 -0
- package/dist/chunk-MNYKI4CI.js +94 -0
- package/dist/chunk-MZNPGW5Q.js +26 -0
- package/dist/chunk-N3V2J5ZO.cjs +53 -0
- package/dist/chunk-NYUNU75A.cjs +44 -0
- package/dist/chunk-NZYN7C3P.cjs +179 -0
- package/dist/chunk-O466Y272.js +235 -0
- package/dist/chunk-PXUJF5HS.js +124 -0
- package/dist/chunk-QBZJ7P2T.cjs +13 -0
- package/dist/chunk-QOCNX236.js +46 -0
- package/dist/chunk-QXD4MV2X.cjs +23 -0
- package/dist/chunk-R3HK6R4B.cjs +13 -0
- package/dist/chunk-RSJ3TWJQ.cjs +186 -0
- package/dist/chunk-S4WBV25P.js +913 -0
- package/dist/chunk-SN3YWBX7.cjs +4400 -0
- package/dist/chunk-SPVWWUHX.cjs +46 -0
- package/dist/chunk-SUEGJ75D.cjs +764 -0
- package/dist/chunk-SVNDB62D.cjs +58 -0
- package/dist/chunk-UYPEN5XE.cjs +235 -0
- package/dist/chunk-V5KPWNYX.cjs +147 -0
- package/dist/chunk-VVEHS2LI.js +431 -0
- package/dist/chunk-XBSYYZIY.cjs +94 -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-ZSVQT3PW.js +43 -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 +38 -3487
- package/dist/completion/CompletionService.d.cts +3 -2
- package/dist/completion/CompletionService.d.ts +3 -2
- package/dist/completion/CompletionService.js +34 -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 +15 -71
- package/dist/completion/openrouter-headers.js +8 -34
- package/dist/completion/openrouter-models.cjs +10 -67
- package/dist/completion/openrouter-models.js +4 -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 +55 -3989
- package/dist/completion.d.cts +3 -2
- package/dist/completion.d.ts +3 -2
- package/dist/completion.js +63 -3953
- package/dist/index.cjs +197 -10429
- package/dist/index.d.cts +9 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.js +125 -10268
- package/dist/logger-4GvQNzhE.d.cts +22 -0
- package/dist/logger-4GvQNzhE.d.ts +22 -0
- package/dist/outbound-api/routeResolver.cjs +7 -217
- package/dist/outbound-api/routeResolver.d.cts +2 -1
- package/dist/outbound-api/routeResolver.d.ts +2 -1
- package/dist/outbound-api/routeResolver.js +6 -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 +1 -18
- package/dist/outbound-api/types.d.cts +2 -1
- package/dist/outbound-api/types.d.ts +2 -1
- package/dist/outbound-api.cjs +35 -5221
- package/dist/outbound-api.d.cts +2 -1
- package/dist/outbound-api.d.ts +2 -1
- package/dist/outbound-api.js +54 -5194
- package/dist/pipeline/AuthSource.cjs +1 -18
- 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/SubscriptionAuthSource.cjs +6 -128
- package/dist/pipeline/SubscriptionAuthSource.js +5 -99
- package/dist/pipeline/SubscriptionAuthStrategy.cjs +1 -18
- 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 +29 -0
- package/dist/ports/usage-event-store.d.ts +29 -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 +6 -1
- package/dist/ports.d.ts +6 -1
- package/dist/provider-proxy/ProviderProxy.cjs +40 -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 +35 -4613
- package/dist/provider-proxy/ingress/providerProxyShared.cjs +35 -2941
- package/dist/provider-proxy/ingress/providerProxyShared.d.cts +2 -1
- package/dist/provider-proxy/ingress/providerProxyShared.d.ts +2 -1
- package/dist/provider-proxy/ingress/providerProxyShared.js +41 -2914
- package/dist/provider-proxy/matchText.cjs +11 -72
- package/dist/provider-proxy/matchText.js +6 -39
- package/dist/provider-proxy/types.cjs +1 -18
- package/dist/provider-proxy/types.d.cts +2 -1
- package/dist/provider-proxy/types.d.ts +2 -1
- package/dist/provider-proxy.cjs +35 -4655
- package/dist/provider-proxy.d.cts +2 -1
- package/dist/provider-proxy.d.ts +2 -1
- package/dist/provider-proxy.js +39 -4628
- 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/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 +73 -0
- package/dist/usage/usage-recorder.d.ts +73 -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 +1 -1
- package/dist/ApiKeyPoolService-BmMkau07.d.cts +0 -170
- package/dist/ApiKeyPoolService-BmMkau07.d.ts +0 -170
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/serializeError.ts
|
|
2
|
+
function serializeError(err) {
|
|
3
|
+
if (err == null) return "Unknown error (null)";
|
|
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 (e) {
|
|
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
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
exports.serializeError = serializeError;
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
|
|
2
|
+
|
|
3
|
+
var _chunk7YN22L2Hcjs = require('./chunk-7YN22L2H.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunk2DCNB7DFcjs = require('./chunk-2DCNB7DF.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkC72S6TTVcjs = require('./chunk-C72S6TTV.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkDWKQZ2SKcjs = require('./chunk-DWKQZ2SK.cjs');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _chunk4VAVYUZScjs = require('./chunk-4VAVYUZS.cjs');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _chunkRSJ3TWJQcjs = require('./chunk-RSJ3TWJQ.cjs');
|
|
19
|
+
|
|
20
|
+
// src/transformer/transformers/DeepseekTransformer.ts
|
|
21
|
+
var DeepseekTransformer = (_class = class {constructor() { _class.prototype.__init.call(this); }
|
|
22
|
+
static __initStatic() {this.TransformerName = "deepseek"}
|
|
23
|
+
__init() {this.name = "deepseek"}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Transform request: limit max_tokens to 8192 for legacy models only
|
|
27
|
+
* V4 models support up to 384K output tokens
|
|
28
|
+
*/
|
|
29
|
+
async transformRequestIn(request, _provider, _context) {
|
|
30
|
+
const isV4 = _optionalChain([request, 'access', _ => _.model, 'optionalAccess', _2 => _2.startsWith, 'call', _3 => _3("deepseek-v4")]);
|
|
31
|
+
if (!isV4 && request.max_tokens && request.max_tokens > 8192) {
|
|
32
|
+
_optionalChain([this, 'access', _4 => _4.logger, 'optionalAccess', _5 => _5.debug, 'call', _6 => _6("DeepSeek: Limiting max_tokens from %d to 8192", request.max_tokens)]);
|
|
33
|
+
request.max_tokens = 8192;
|
|
34
|
+
}
|
|
35
|
+
return request;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Transform response: convert reasoning_content to thinking blocks
|
|
39
|
+
*/
|
|
40
|
+
async transformResponseOut(response, _context) {
|
|
41
|
+
const contentType = _nullishCoalesce(response.headers.get("Content-Type"), () => ( ""));
|
|
42
|
+
if (contentType.includes("application/json")) {
|
|
43
|
+
return this.handleJsonResponse(response);
|
|
44
|
+
} else if (contentType.includes("stream") || contentType.includes("text/event-stream")) {
|
|
45
|
+
return this.handleStreamResponse(response);
|
|
46
|
+
}
|
|
47
|
+
return response;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Handle JSON (non-streaming) response
|
|
51
|
+
*/
|
|
52
|
+
async handleJsonResponse(response) {
|
|
53
|
+
const jsonResponse = await response.json();
|
|
54
|
+
if (_optionalChain([jsonResponse, 'access', _7 => _7.choices, 'optionalAccess', _8 => _8[0], 'optionalAccess', _9 => _9.message, 'optionalAccess', _10 => _10.reasoning_content])) {
|
|
55
|
+
jsonResponse.choices[0].message.thinking = {
|
|
56
|
+
content: jsonResponse.choices[0].message.reasoning_content
|
|
57
|
+
};
|
|
58
|
+
delete jsonResponse.choices[0].message.reasoning_content;
|
|
59
|
+
}
|
|
60
|
+
return new Response(JSON.stringify(jsonResponse), {
|
|
61
|
+
status: response.status,
|
|
62
|
+
statusText: response.statusText,
|
|
63
|
+
headers: response.headers
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Handle streaming response - convert reasoning_content to thinking blocks
|
|
68
|
+
*/
|
|
69
|
+
async handleStreamResponse(response) {
|
|
70
|
+
if (!response.body) {
|
|
71
|
+
return response;
|
|
72
|
+
}
|
|
73
|
+
const decoder = new TextDecoder();
|
|
74
|
+
const encoder = new TextEncoder();
|
|
75
|
+
let reasoningContent = "";
|
|
76
|
+
let isReasoningComplete = false;
|
|
77
|
+
let buffer = "";
|
|
78
|
+
const stream = new ReadableStream({
|
|
79
|
+
start: async (controller) => {
|
|
80
|
+
const reader = response.body.getReader();
|
|
81
|
+
const processLine = (line) => {
|
|
82
|
+
if (line.startsWith("data: ") && line.trim() !== "data: [DONE]") {
|
|
83
|
+
try {
|
|
84
|
+
const data = JSON.parse(line.slice(6));
|
|
85
|
+
if (_optionalChain([data, 'access', _11 => _11.choices, 'optionalAccess', _12 => _12[0], 'optionalAccess', _13 => _13.delta, 'optionalAccess', _14 => _14.reasoning_content])) {
|
|
86
|
+
reasoningContent += data.choices[0].delta.reasoning_content;
|
|
87
|
+
const thinkingChunk = {
|
|
88
|
+
...data,
|
|
89
|
+
choices: [
|
|
90
|
+
{
|
|
91
|
+
...data.choices[0],
|
|
92
|
+
delta: {
|
|
93
|
+
...data.choices[0].delta,
|
|
94
|
+
thinking: {
|
|
95
|
+
content: data.choices[0].delta.reasoning_content
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
};
|
|
101
|
+
delete thinkingChunk.choices[0].delta.reasoning_content;
|
|
102
|
+
const thinkingLine = `data: ${JSON.stringify(thinkingChunk)}
|
|
103
|
+
|
|
104
|
+
`;
|
|
105
|
+
controller.enqueue(encoder.encode(thinkingLine));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (_optionalChain([data, 'access', _15 => _15.choices, 'optionalAccess', _16 => _16[0], 'optionalAccess', _17 => _17.delta, 'optionalAccess', _18 => _18.content]) && reasoningContent && !isReasoningComplete) {
|
|
109
|
+
isReasoningComplete = true;
|
|
110
|
+
const signature = Date.now().toString();
|
|
111
|
+
const thinkingChunk = {
|
|
112
|
+
...data,
|
|
113
|
+
choices: [
|
|
114
|
+
{
|
|
115
|
+
...data.choices[0],
|
|
116
|
+
delta: {
|
|
117
|
+
...data.choices[0].delta,
|
|
118
|
+
content: null,
|
|
119
|
+
thinking: {
|
|
120
|
+
signature
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
};
|
|
126
|
+
const thinkingLine = `data: ${JSON.stringify(thinkingChunk)}
|
|
127
|
+
|
|
128
|
+
`;
|
|
129
|
+
controller.enqueue(encoder.encode(thinkingLine));
|
|
130
|
+
}
|
|
131
|
+
if (_optionalChain([data, 'access', _19 => _19.choices, 'optionalAccess', _20 => _20[0], 'optionalAccess', _21 => _21.delta, 'optionalAccess', _22 => _22.reasoning_content])) {
|
|
132
|
+
delete data.choices[0].delta.reasoning_content;
|
|
133
|
+
}
|
|
134
|
+
if (_optionalChain([data, 'access', _23 => _23.choices, 'optionalAccess', _24 => _24[0], 'optionalAccess', _25 => _25.delta]) && Object.keys(data.choices[0].delta).length > 0) {
|
|
135
|
+
if (isReasoningComplete) {
|
|
136
|
+
data.choices[0].index++;
|
|
137
|
+
}
|
|
138
|
+
const modifiedLine = `data: ${JSON.stringify(data)}
|
|
139
|
+
|
|
140
|
+
`;
|
|
141
|
+
controller.enqueue(encoder.encode(modifiedLine));
|
|
142
|
+
}
|
|
143
|
+
} catch (_e) {
|
|
144
|
+
controller.enqueue(encoder.encode(line + "\n"));
|
|
145
|
+
}
|
|
146
|
+
} else {
|
|
147
|
+
controller.enqueue(encoder.encode(line + "\n"));
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
try {
|
|
151
|
+
while (true) {
|
|
152
|
+
const { done, value } = await reader.read();
|
|
153
|
+
if (done) {
|
|
154
|
+
if (buffer.trim()) {
|
|
155
|
+
const lines2 = buffer.split("\n");
|
|
156
|
+
for (const line of lines2) {
|
|
157
|
+
if (line.trim()) {
|
|
158
|
+
controller.enqueue(encoder.encode(line + "\n"));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
const chunk = decoder.decode(value, { stream: true });
|
|
165
|
+
buffer += chunk;
|
|
166
|
+
const lines = buffer.split("\n");
|
|
167
|
+
buffer = lines.pop() || "";
|
|
168
|
+
for (const line of lines) {
|
|
169
|
+
if (!line.trim()) continue;
|
|
170
|
+
try {
|
|
171
|
+
processLine(line);
|
|
172
|
+
} catch (error) {
|
|
173
|
+
_optionalChain([this, 'access', _26 => _26.logger, 'optionalAccess', _27 => _27.error, 'call', _28 => _28("Error processing DeepSeek stream line:", error)]);
|
|
174
|
+
controller.enqueue(encoder.encode(line + "\n"));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
} catch (error) {
|
|
179
|
+
_optionalChain([this, 'access', _29 => _29.logger, 'optionalAccess', _30 => _30.error, 'call', _31 => _31("DeepSeek stream error:", error)]);
|
|
180
|
+
controller.error(error);
|
|
181
|
+
} finally {
|
|
182
|
+
try {
|
|
183
|
+
reader.releaseLock();
|
|
184
|
+
} catch (e) {
|
|
185
|
+
_optionalChain([this, 'access', _32 => _32.logger, 'optionalAccess', _33 => _33.error, 'call', _34 => _34("Error releasing reader lock:", e)]);
|
|
186
|
+
}
|
|
187
|
+
controller.close();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
return new Response(stream, {
|
|
192
|
+
status: response.status,
|
|
193
|
+
statusText: response.statusText,
|
|
194
|
+
headers: new Headers({
|
|
195
|
+
"Content-Type": "text/event-stream",
|
|
196
|
+
"Cache-Control": "no-cache",
|
|
197
|
+
Connection: "keep-alive"
|
|
198
|
+
})
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}, _class.__initStatic(), _class);
|
|
202
|
+
|
|
203
|
+
// src/transformer/transformers/index.ts
|
|
204
|
+
var BuiltinTransformers = {
|
|
205
|
+
DeepseekTransformer,
|
|
206
|
+
ReasoningTransformer: _chunkDWKQZ2SKcjs.ReasoningTransformer,
|
|
207
|
+
GeminiTransformer: _chunk7YN22L2Hcjs.GeminiTransformer,
|
|
208
|
+
GeminiCodeAssistTransformer: _chunkRSJ3TWJQcjs.GeminiCodeAssistTransformer,
|
|
209
|
+
AnthropicTransformer: _chunk4VAVYUZScjs.AnthropicTransformer,
|
|
210
|
+
OpenAIResponseTransformer: _chunk2DCNB7DFcjs.OpenAIResponseTransformer,
|
|
211
|
+
OpenCodeGoTransformer: _chunkC72S6TTVcjs.OpenCodeGoTransformer
|
|
212
|
+
};
|
|
213
|
+
function getBuiltinTransformers() {
|
|
214
|
+
return BuiltinTransformers;
|
|
215
|
+
}
|
|
216
|
+
var BUILTIN_TRANSFORMER_NAMES = [
|
|
217
|
+
"deepseek",
|
|
218
|
+
"reasoning",
|
|
219
|
+
"gemini",
|
|
220
|
+
"gemini-code-assist",
|
|
221
|
+
"anthropic",
|
|
222
|
+
"openai-response",
|
|
223
|
+
"opencodego"
|
|
224
|
+
];
|
|
225
|
+
async function registerBuiltinTransformers(service) {
|
|
226
|
+
await service.initialize(getBuiltinTransformers());
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
exports.DeepseekTransformer = DeepseekTransformer; exports.BuiltinTransformers = BuiltinTransformers; exports.getBuiltinTransformers = getBuiltinTransformers; exports.BUILTIN_TRANSFORMER_NAMES = BUILTIN_TRANSFORMER_NAMES; exports.registerBuiltinTransformers = registerBuiltinTransformers;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
var _chunk6VIXXLMXcjs = require('./chunk-6VIXXLMX.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkGMMT7RVNcjs = require('./chunk-GMMT7RVN.cjs');
|
|
10
|
+
|
|
11
|
+
// src/completion/NativeSearchInjector.ts
|
|
12
|
+
function detectNativeSearch(modelId, apiFormat, provider, userExplicit) {
|
|
13
|
+
if (_chunk6VIXXLMXcjs.isOpenRouterProvider.call(void 0, provider)) {
|
|
14
|
+
return { supported: true, nativeProvider: "openrouter" };
|
|
15
|
+
}
|
|
16
|
+
if (isXaiProvider(provider)) {
|
|
17
|
+
return { supported: true, nativeProvider: "xai" };
|
|
18
|
+
}
|
|
19
|
+
if (apiFormat === "openai" && _chunkGMMT7RVNcjs.OPENAI_CHAT_COMPLETION_SEARCH_MODELS.some((m) => modelId.startsWith(m))) {
|
|
20
|
+
return { supported: true, nativeProvider: "openai" };
|
|
21
|
+
}
|
|
22
|
+
const formatProvider = _chunkGMMT7RVNcjs.API_FORMAT_PROVIDER_MAP[apiFormat];
|
|
23
|
+
if (formatProvider) {
|
|
24
|
+
const patterns = _chunkGMMT7RVNcjs.NATIVE_SEARCH_MODEL_PATTERNS[formatProvider];
|
|
25
|
+
if (patterns.some((re) => re.test(modelId))) {
|
|
26
|
+
if (!_chunkGMMT7RVNcjs.NATIVE_SEARCH_EXCLUDED_MODELS.some((m) => modelId.startsWith(m))) {
|
|
27
|
+
return { supported: true, nativeProvider: formatProvider };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (userExplicit && formatProvider) {
|
|
32
|
+
return { supported: true, nativeProvider: formatProvider };
|
|
33
|
+
}
|
|
34
|
+
return { supported: false, nativeProvider: null };
|
|
35
|
+
}
|
|
36
|
+
function buildNativeSearchAugmentation(nativeProvider, config, _apiFormat, modelId) {
|
|
37
|
+
if (!config.enabled) return null;
|
|
38
|
+
switch (nativeProvider) {
|
|
39
|
+
case "openai":
|
|
40
|
+
return buildOpenAIAugmentation(config, modelId);
|
|
41
|
+
case "anthropic":
|
|
42
|
+
return buildAnthropicAugmentation(config);
|
|
43
|
+
case "google":
|
|
44
|
+
return buildGoogleAugmentation(modelId);
|
|
45
|
+
case "xai":
|
|
46
|
+
return buildXaiAugmentation(config);
|
|
47
|
+
case "openrouter":
|
|
48
|
+
return buildOpenRouterAugmentation(config);
|
|
49
|
+
default:
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function applyAugmentation(requestBody, augmentation) {
|
|
54
|
+
if (_optionalChain([augmentation, 'access', _ => _.additionalTools, 'optionalAccess', _2 => _2.length])) {
|
|
55
|
+
const existing = _nullishCoalesce(requestBody.tools, () => ( []));
|
|
56
|
+
requestBody.tools = [...existing, ...augmentation.additionalTools];
|
|
57
|
+
}
|
|
58
|
+
if (augmentation.bodyFields) {
|
|
59
|
+
Object.assign(requestBody, augmentation.bodyFields);
|
|
60
|
+
}
|
|
61
|
+
return requestBody;
|
|
62
|
+
}
|
|
63
|
+
function buildOpenAIAugmentation(config, modelId) {
|
|
64
|
+
const isChatCompletionSearch = _chunkGMMT7RVNcjs.OPENAI_CHAT_COMPLETION_SEARCH_MODELS.some(
|
|
65
|
+
(m) => modelId.startsWith(m)
|
|
66
|
+
);
|
|
67
|
+
if (isChatCompletionSearch) {
|
|
68
|
+
return {
|
|
69
|
+
bodyFields: {
|
|
70
|
+
web_search_options: {
|
|
71
|
+
search_context_size: config.maxResults ? mapMaxResultsToContextSize(config.maxResults) : "medium"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
additionalTools: [
|
|
78
|
+
{
|
|
79
|
+
type: "web_search",
|
|
80
|
+
web_search: {
|
|
81
|
+
search_context_size: config.maxResults ? mapMaxResultsToContextSize(config.maxResults) : "medium"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function buildAnthropicAugmentation(config) {
|
|
88
|
+
const toolDef = {
|
|
89
|
+
type: "web_search_20250305",
|
|
90
|
+
name: "web_search"
|
|
91
|
+
};
|
|
92
|
+
if (config.maxResults) {
|
|
93
|
+
toolDef.max_uses = config.maxResults;
|
|
94
|
+
}
|
|
95
|
+
if (_optionalChain([config, 'access', _3 => _3.blockedDomains, 'optionalAccess', _4 => _4.length])) {
|
|
96
|
+
toolDef.blocked_domains = config.blockedDomains;
|
|
97
|
+
}
|
|
98
|
+
return { additionalTools: [toolDef] };
|
|
99
|
+
}
|
|
100
|
+
function buildGoogleAugmentation(modelId) {
|
|
101
|
+
const isLegacy = /gemini-1[._]/.test(modelId);
|
|
102
|
+
if (isLegacy) {
|
|
103
|
+
return {
|
|
104
|
+
additionalTools: [
|
|
105
|
+
{ googleSearchRetrieval: {} }
|
|
106
|
+
]
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
additionalTools: [
|
|
111
|
+
{ google_search: {} }
|
|
112
|
+
]
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function buildXaiAugmentation(config) {
|
|
116
|
+
const searchParams = {
|
|
117
|
+
mode: _nullishCoalesce(config.searchMode, () => ( "auto")),
|
|
118
|
+
return_citations: true,
|
|
119
|
+
max_search_results: _nullishCoalesce(config.maxResults, () => ( 5))
|
|
120
|
+
};
|
|
121
|
+
if (_optionalChain([config, 'access', _5 => _5.sources, 'optionalAccess', _6 => _6.length])) {
|
|
122
|
+
searchParams.sources = config.sources;
|
|
123
|
+
}
|
|
124
|
+
return { bodyFields: { search_parameters: searchParams } };
|
|
125
|
+
}
|
|
126
|
+
function buildOpenRouterAugmentation(config) {
|
|
127
|
+
const plugin = { id: "web" };
|
|
128
|
+
if (config.maxResults) {
|
|
129
|
+
plugin.max_results = config.maxResults;
|
|
130
|
+
}
|
|
131
|
+
return { bodyFields: { plugins: [plugin] } };
|
|
132
|
+
}
|
|
133
|
+
function isXaiProvider(provider) {
|
|
134
|
+
const baseUrl = (provider.api_base_url || "").toLowerCase();
|
|
135
|
+
return baseUrl.includes("x.ai") || baseUrl.includes("xai.com");
|
|
136
|
+
}
|
|
137
|
+
function mapMaxResultsToContextSize(maxResults) {
|
|
138
|
+
if (maxResults <= 2) return "low";
|
|
139
|
+
if (maxResults <= 5) return "medium";
|
|
140
|
+
return "high";
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
exports.detectNativeSearch = detectNativeSearch; exports.buildNativeSearchAugmentation = buildNativeSearchAugmentation; exports.applyAugmentation = applyAugmentation;
|