@jacobbd/relay-ai 0.12.6 → 0.12.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/{chunk-VPDX24ZR.js → chunk-3KCKQRRR.js} +66 -19
- package/dist/chunk-3KCKQRRR.js.map +1 -0
- package/dist/{chunk-5MEDBKPX.js → chunk-KVH362S4.js} +2 -2
- package/dist/{chunk-6ULON7FU.js → chunk-TRCGBOYR.js} +2 -2
- package/dist/cli.js +90 -13
- package/dist/cli.js.map +1 -1
- package/dist/core/index.js +63 -17
- package/dist/core/index.js.map +1 -1
- package/dist/{manual-models-EIKWUZEG.js → manual-models-Q3TOEP5Y.js} +3 -3
- package/dist/{ui-command-U3L4LI2K.js → ui-command-CLMJUDHR.js} +4 -4
- package/package.json +1 -1
- package/dist/chunk-VPDX24ZR.js.map +0 -1
- /package/dist/{chunk-5MEDBKPX.js.map → chunk-KVH362S4.js.map} +0 -0
- /package/dist/{chunk-6ULON7FU.js.map → chunk-TRCGBOYR.js.map} +0 -0
- /package/dist/{manual-models-EIKWUZEG.js.map → manual-models-Q3TOEP5Y.js.map} +0 -0
- /package/dist/{ui-command-U3L4LI2K.js.map → ui-command-CLMJUDHR.js.map} +0 -0
|
@@ -7,7 +7,7 @@ import { join } from "path";
|
|
|
7
7
|
// package.json
|
|
8
8
|
var package_default = {
|
|
9
9
|
name: "@jacobbd/relay-ai",
|
|
10
|
-
version: "0.12.
|
|
10
|
+
version: "0.12.9",
|
|
11
11
|
publishConfig: {
|
|
12
12
|
access: "public"
|
|
13
13
|
},
|
|
@@ -3595,12 +3595,14 @@ async function createLanguageModel(spec) {
|
|
|
3595
3595
|
var ANTHROPIC_EFFORT_LEVELS = ["low", "medium", "high"];
|
|
3596
3596
|
var OPENAI_EFFORT_LEVELS = ["low", "medium", "high"];
|
|
3597
3597
|
var GEMINI_EFFORT_LEVELS = ["low", "medium", "high"];
|
|
3598
|
-
var MISTRAL_EFFORT_LEVELS = ["high", "
|
|
3598
|
+
var MISTRAL_EFFORT_LEVELS = ["high", "none"];
|
|
3599
3599
|
var XAI_CHAT_EFFORT_LEVELS = ["low", "high"];
|
|
3600
3600
|
var XAI_RESPONSES_EFFORT_LEVELS = ["low", "medium", "high"];
|
|
3601
3601
|
var OPENROUTER_EFFORT_LEVELS = ["none", "minimal", "low", "medium", "high", "xhigh"];
|
|
3602
|
-
var DEEPSEEK_EFFORT_LEVELS = ["high", "max", "
|
|
3602
|
+
var DEEPSEEK_EFFORT_LEVELS = ["high", "max", "none"];
|
|
3603
|
+
var DEEPSEEK_NATIVE_EFFORT_LEVELS = ["low", "medium", "high", "xhigh", "none"];
|
|
3603
3604
|
var GLM_52_EFFORT_LEVELS = ["high", "xhigh"];
|
|
3605
|
+
var GLM_53_EFFORT_LEVELS = ["low", "medium", "high", "xhigh"];
|
|
3604
3606
|
var EMPTY_REASONING = {
|
|
3605
3607
|
levels: [],
|
|
3606
3608
|
defaultLevel: "",
|
|
@@ -3666,9 +3668,10 @@ function xaiDefaultReasoningEffort(modelId) {
|
|
|
3666
3668
|
if (lower === "grok-4.5" || lower.startsWith("grok-4.5-")) return "high";
|
|
3667
3669
|
return "low";
|
|
3668
3670
|
}
|
|
3671
|
+
var DEEPSEEK_V4_REASONING_ID = /^deepseek-v4(?:\.\d+)?-(?:flash|pro)(?:-|$)/;
|
|
3669
3672
|
function isDeepSeekReasoningModel(modelId) {
|
|
3670
3673
|
const lower = modelId.toLowerCase();
|
|
3671
|
-
return
|
|
3674
|
+
return DEEPSEEK_V4_REASONING_ID.test(lower) || lower === "deepseek-reasoner" || lower === "deepseek-chat";
|
|
3672
3675
|
}
|
|
3673
3676
|
function isKimiReasoningModel(modelId) {
|
|
3674
3677
|
const lower = modelId.toLowerCase();
|
|
@@ -3678,6 +3681,10 @@ function isGlm52ReasoningModel(modelId) {
|
|
|
3678
3681
|
const lower = modelId.toLowerCase();
|
|
3679
3682
|
return lower === "glm-5.2" || lower === "z-ai/glm-5.2" || lower === "zai/glm-5.2" || lower === "zai-org/glm-5.2" || lower === "zai-org/glm5.2" || lower === "glm5.2";
|
|
3680
3683
|
}
|
|
3684
|
+
var GLM_53_REASONING_ID = /^(?:[a-z0-9-]+\/)?glm-?5\.3(?:-|$)/;
|
|
3685
|
+
function isGlm53ReasoningModel(modelId) {
|
|
3686
|
+
return GLM_53_REASONING_ID.test(modelId.toLowerCase().trim());
|
|
3687
|
+
}
|
|
3681
3688
|
function toCamelCase(str) {
|
|
3682
3689
|
return str.replace(/[-_]([a-z])/g, (_, g) => g.toUpperCase());
|
|
3683
3690
|
}
|
|
@@ -3716,37 +3723,41 @@ function openRouterReasoningCapabilities(metadata) {
|
|
|
3716
3723
|
}
|
|
3717
3724
|
return EMPTY_REASONING;
|
|
3718
3725
|
}
|
|
3719
|
-
function
|
|
3726
|
+
function deepSeekAcceptsNativeEfforts(metadata) {
|
|
3727
|
+
const providerId = metadata?.providerId?.toLowerCase();
|
|
3728
|
+
if (providerId === "go" || providerId === "zen" || providerId === "opencode-go" || providerId === "opencode") {
|
|
3729
|
+
return true;
|
|
3730
|
+
}
|
|
3731
|
+
return metadata?.apiBaseUrl?.includes("opencode.ai") === true;
|
|
3732
|
+
}
|
|
3733
|
+
function mapCodexEffortToDeepSeek(effort, nativeEfforts) {
|
|
3720
3734
|
switch (effort) {
|
|
3721
3735
|
case "off":
|
|
3722
3736
|
case "none":
|
|
3723
3737
|
return "off";
|
|
3724
3738
|
case "low":
|
|
3739
|
+
return nativeEfforts ? "low" : "high";
|
|
3725
3740
|
case "medium":
|
|
3741
|
+
return nativeEfforts ? "medium" : "high";
|
|
3726
3742
|
case "high":
|
|
3727
3743
|
return "high";
|
|
3728
3744
|
case "xhigh":
|
|
3729
3745
|
case "max":
|
|
3730
3746
|
return "max";
|
|
3731
3747
|
default:
|
|
3732
|
-
if (effort === "high" || effort === "max") return effort;
|
|
3733
3748
|
return void 0;
|
|
3734
3749
|
}
|
|
3735
3750
|
}
|
|
3736
|
-
function deepSeekEffortProviderOptions(effort) {
|
|
3737
|
-
const mapped = mapCodexEffortToDeepSeek(effort);
|
|
3751
|
+
function deepSeekEffortProviderOptions(effort, metadata) {
|
|
3752
|
+
const mapped = mapCodexEffortToDeepSeek(effort, deepSeekAcceptsNativeEfforts(metadata));
|
|
3738
3753
|
if (!mapped) return void 0;
|
|
3754
|
+
const key = metadata?.providerId ? toCamelCase(metadata.providerId) : "openaiCompatible";
|
|
3739
3755
|
const thinking = { type: mapped === "off" ? "disabled" : "enabled" };
|
|
3740
|
-
const spread = { thinking };
|
|
3741
3756
|
if (mapped === "off") {
|
|
3742
|
-
return {
|
|
3743
|
-
deepseek: spread,
|
|
3744
|
-
openaiCompatible: spread
|
|
3745
|
-
};
|
|
3757
|
+
return { [key]: { thinking } };
|
|
3746
3758
|
}
|
|
3747
3759
|
return {
|
|
3748
|
-
|
|
3749
|
-
deepseek: spread
|
|
3760
|
+
[key]: { reasoningEffort: mapped, thinking }
|
|
3750
3761
|
};
|
|
3751
3762
|
}
|
|
3752
3763
|
function mapCodexEffortToAnthropic(effort) {
|
|
@@ -3827,6 +3838,21 @@ function mapCodexEffortToGlm52(effort) {
|
|
|
3827
3838
|
return void 0;
|
|
3828
3839
|
}
|
|
3829
3840
|
}
|
|
3841
|
+
function mapCodexEffortToGlm53(effort) {
|
|
3842
|
+
switch (effort) {
|
|
3843
|
+
case "low":
|
|
3844
|
+
return "low";
|
|
3845
|
+
case "medium":
|
|
3846
|
+
return "medium";
|
|
3847
|
+
case "high":
|
|
3848
|
+
return "high";
|
|
3849
|
+
case "xhigh":
|
|
3850
|
+
case "max":
|
|
3851
|
+
return "max";
|
|
3852
|
+
default:
|
|
3853
|
+
return void 0;
|
|
3854
|
+
}
|
|
3855
|
+
}
|
|
3830
3856
|
function mapCodexEffortToXai(effort, supportsMedium) {
|
|
3831
3857
|
switch (effort) {
|
|
3832
3858
|
case "low":
|
|
@@ -3970,8 +3996,9 @@ function resolveRawReasoningCapabilities(npm, modelId, metadata) {
|
|
|
3970
3996
|
return EMPTY_REASONING;
|
|
3971
3997
|
}
|
|
3972
3998
|
if (isDeepSeekReasoningModel(modelId)) {
|
|
3999
|
+
const levels = deepSeekAcceptsNativeEfforts(metadata) ? [...DEEPSEEK_NATIVE_EFFORT_LEVELS] : [...DEEPSEEK_EFFORT_LEVELS];
|
|
3973
4000
|
return {
|
|
3974
|
-
levels
|
|
4001
|
+
levels,
|
|
3975
4002
|
defaultLevel: "high",
|
|
3976
4003
|
supportsSummaries: true,
|
|
3977
4004
|
mode: "controllable",
|
|
@@ -3991,6 +4018,17 @@ function resolveRawReasoningCapabilities(npm, modelId, metadata) {
|
|
|
3991
4018
|
wireFormat: { kind: "openai-reasoning-effort" }
|
|
3992
4019
|
};
|
|
3993
4020
|
}
|
|
4021
|
+
if (isGlm53ReasoningModel(modelId)) {
|
|
4022
|
+
return {
|
|
4023
|
+
levels: [...GLM_53_EFFORT_LEVELS],
|
|
4024
|
+
defaultLevel: "high",
|
|
4025
|
+
supportsSummaries: false,
|
|
4026
|
+
mode: "controllable",
|
|
4027
|
+
source: "provider-rule",
|
|
4028
|
+
confidence: "documented",
|
|
4029
|
+
wireFormat: { kind: "openai-reasoning-effort" }
|
|
4030
|
+
};
|
|
4031
|
+
}
|
|
3994
4032
|
if (isGlm52ReasoningModel(modelId)) {
|
|
3995
4033
|
return {
|
|
3996
4034
|
levels: [...GLM_52_EFFORT_LEVELS],
|
|
@@ -4086,7 +4124,7 @@ function effortProviderOptions(npm, effort, modelId, metadata) {
|
|
|
4086
4124
|
if (npm === "@ai-sdk/openai-compatible" || npm === "@ai-sdk/openai") {
|
|
4087
4125
|
if (!modelId) return void 0;
|
|
4088
4126
|
if (isDeepSeekReasoningModel(modelId)) {
|
|
4089
|
-
return deepSeekEffortProviderOptions(effort);
|
|
4127
|
+
return deepSeekEffortProviderOptions(effort, metadata);
|
|
4090
4128
|
}
|
|
4091
4129
|
if (isKimiReasoningModel(modelId)) {
|
|
4092
4130
|
const reasoningEffort = mapCodexEffortToOpenAICompatible(effort);
|
|
@@ -4096,6 +4134,14 @@ function effortProviderOptions(npm, effort, modelId, metadata) {
|
|
|
4096
4134
|
}
|
|
4097
4135
|
return void 0;
|
|
4098
4136
|
}
|
|
4137
|
+
if (isGlm53ReasoningModel(modelId)) {
|
|
4138
|
+
const reasoningEffort = mapCodexEffortToGlm53(effort);
|
|
4139
|
+
if (reasoningEffort) {
|
|
4140
|
+
const key = metadata?.providerId ? toCamelCase(metadata.providerId) : "openaiCompatible";
|
|
4141
|
+
return { [key]: { reasoningEffort } };
|
|
4142
|
+
}
|
|
4143
|
+
return void 0;
|
|
4144
|
+
}
|
|
4099
4145
|
if (isGlm52ReasoningModel(modelId)) {
|
|
4100
4146
|
const reasoningEffort = mapCodexEffortToGlm52(effort);
|
|
4101
4147
|
if (reasoningEffort) {
|
|
@@ -4485,6 +4531,7 @@ function serializeToolResultContent(content) {
|
|
|
4485
4531
|
|
|
4486
4532
|
// src/codex/upstream-error.ts
|
|
4487
4533
|
var TRACE_FIELD_LIMIT = 4e3;
|
|
4534
|
+
var MAX_ERROR_MESSAGE_CHARS = 2e3;
|
|
4488
4535
|
function clipTraceField(value) {
|
|
4489
4536
|
return value.length <= TRACE_FIELD_LIMIT ? value : `${value.slice(0, TRACE_FIELD_LIMIT)}\u2026`;
|
|
4490
4537
|
}
|
|
@@ -4559,7 +4606,7 @@ function formatUpstreamError(err) {
|
|
|
4559
4606
|
}
|
|
4560
4607
|
if (rec.message) {
|
|
4561
4608
|
const short = sanitizeMessage(rec.message);
|
|
4562
|
-
if (short && !short.includes("file://") && !short.includes("APICallError") && short.length <
|
|
4609
|
+
if (short && !short.includes("file://") && !short.includes("APICallError") && short.length < MAX_ERROR_MESSAGE_CHARS) {
|
|
4563
4610
|
return rec.statusCode ? `${short} (HTTP ${rec.statusCode})` : short;
|
|
4564
4611
|
}
|
|
4565
4612
|
}
|
|
@@ -5274,4 +5321,4 @@ export {
|
|
|
5274
5321
|
streamAnthropicResponse,
|
|
5275
5322
|
generateAnthropicResponse
|
|
5276
5323
|
};
|
|
5277
|
-
//# sourceMappingURL=chunk-
|
|
5324
|
+
//# sourceMappingURL=chunk-3KCKQRRR.js.map
|