@rayu-dev/rayu-cli 1.4.467 → 1.4.469
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/rayu.js +373 -110
- package/package.json +1 -1
package/dist/rayu.js
CHANGED
|
@@ -40670,6 +40670,82 @@ var init_vertexAuth = __esm(() => {
|
|
|
40670
40670
|
DEFAULT_TOKEN_TTL_MS = 60 * 60 * 1000;
|
|
40671
40671
|
});
|
|
40672
40672
|
|
|
40673
|
+
// src/services/api/ollamaCloud.ts
|
|
40674
|
+
var exports_ollamaCloud = {};
|
|
40675
|
+
__export(exports_ollamaCloud, {
|
|
40676
|
+
fetchOllamaCloudModels: () => fetchOllamaCloudModels,
|
|
40677
|
+
fetchOllamaCloudModelContexts: () => fetchOllamaCloudModelContexts,
|
|
40678
|
+
OLLAMA_CLOUD_PROVIDER_ID: () => OLLAMA_CLOUD_PROVIDER_ID,
|
|
40679
|
+
OLLAMA_CLOUD_BASE_URL: () => OLLAMA_CLOUD_BASE_URL
|
|
40680
|
+
});
|
|
40681
|
+
function hostOf(baseURL) {
|
|
40682
|
+
return (baseURL || OLLAMA_CLOUD_BASE_URL).replace(/\/+$/, "");
|
|
40683
|
+
}
|
|
40684
|
+
function bearer(apiKey) {
|
|
40685
|
+
return apiKey ? { Authorization: `Bearer ${apiKey}` } : {};
|
|
40686
|
+
}
|
|
40687
|
+
async function fetchOllamaCloudModels(apiKey, baseURL) {
|
|
40688
|
+
const host = hostOf(baseURL);
|
|
40689
|
+
const headers = bearer(apiKey);
|
|
40690
|
+
const ids = new Set;
|
|
40691
|
+
try {
|
|
40692
|
+
const res = await fetch(`${host}/v1/models`, { headers, signal: AbortSignal.timeout(15000) });
|
|
40693
|
+
if (res.ok) {
|
|
40694
|
+
const json = await res.json();
|
|
40695
|
+
for (const m2 of json.data ?? []) {
|
|
40696
|
+
if (typeof m2.id === "string" && m2.id)
|
|
40697
|
+
ids.add(m2.id);
|
|
40698
|
+
}
|
|
40699
|
+
}
|
|
40700
|
+
} catch {}
|
|
40701
|
+
if (ids.size === 0) {
|
|
40702
|
+
try {
|
|
40703
|
+
const res = await fetch(`${host}/api/tags`, { headers, signal: AbortSignal.timeout(15000) });
|
|
40704
|
+
if (res.ok) {
|
|
40705
|
+
const json = await res.json();
|
|
40706
|
+
for (const m2 of json.models ?? []) {
|
|
40707
|
+
const id = m2.model || m2.name;
|
|
40708
|
+
if (typeof id === "string" && id)
|
|
40709
|
+
ids.add(id);
|
|
40710
|
+
}
|
|
40711
|
+
}
|
|
40712
|
+
} catch {}
|
|
40713
|
+
}
|
|
40714
|
+
return [...ids].sort();
|
|
40715
|
+
}
|
|
40716
|
+
async function fetchOllamaCloudModelContexts(apiKey, baseURL, models) {
|
|
40717
|
+
const host = hostOf(baseURL);
|
|
40718
|
+
const headers = { "Content-Type": "application/json", ...bearer(apiKey) };
|
|
40719
|
+
const out = {};
|
|
40720
|
+
const CONCURRENCY = 4;
|
|
40721
|
+
let next = 0;
|
|
40722
|
+
async function worker() {
|
|
40723
|
+
while (next < models.length) {
|
|
40724
|
+
const model = models[next++];
|
|
40725
|
+
try {
|
|
40726
|
+
const res = await fetch(`${host}/api/show`, {
|
|
40727
|
+
method: "POST",
|
|
40728
|
+
headers,
|
|
40729
|
+
body: JSON.stringify({ model }),
|
|
40730
|
+
signal: AbortSignal.timeout(1e4)
|
|
40731
|
+
});
|
|
40732
|
+
if (!res.ok)
|
|
40733
|
+
continue;
|
|
40734
|
+
const json = await res.json();
|
|
40735
|
+
for (const [k, v] of Object.entries(json.model_info ?? {})) {
|
|
40736
|
+
if (k.endsWith(".context_length") && typeof v === "number" && v > 0) {
|
|
40737
|
+
out[model] = v;
|
|
40738
|
+
break;
|
|
40739
|
+
}
|
|
40740
|
+
}
|
|
40741
|
+
} catch {}
|
|
40742
|
+
}
|
|
40743
|
+
}
|
|
40744
|
+
await Promise.all(Array.from({ length: Math.min(CONCURRENCY, Math.max(models.length, 1)) }, worker));
|
|
40745
|
+
return out;
|
|
40746
|
+
}
|
|
40747
|
+
var OLLAMA_CLOUD_PROVIDER_ID = "ollama-cloud", OLLAMA_CLOUD_BASE_URL = "https://ollama.com";
|
|
40748
|
+
|
|
40673
40749
|
// src/utils/rayuProviders.ts
|
|
40674
40750
|
var exports_rayuProviders = {};
|
|
40675
40751
|
__export(exports_rayuProviders, {
|
|
@@ -40718,8 +40794,26 @@ function ollamaBaseURL() {
|
|
|
40718
40794
|
raw = `${raw}/v1`;
|
|
40719
40795
|
return raw;
|
|
40720
40796
|
}
|
|
40797
|
+
function envMultiKeyProviderIds() {
|
|
40798
|
+
const raw = process.env.RAYU_MULTI_KEY_PROVIDERS;
|
|
40799
|
+
if (!raw)
|
|
40800
|
+
return [];
|
|
40801
|
+
return raw.split(/[\s,]+/).map((s2) => s2.trim()).filter(Boolean);
|
|
40802
|
+
}
|
|
40803
|
+
function providerKindForId(providerId) {
|
|
40804
|
+
const configured = loadRayuConfig().providers.find((p) => p.id === providerId);
|
|
40805
|
+
if (configured)
|
|
40806
|
+
return configured.kind;
|
|
40807
|
+
return PROVIDER_PRESETS.find((p) => p.id === providerId)?.kind;
|
|
40808
|
+
}
|
|
40721
40809
|
function supportsMultiApiKey(providerId) {
|
|
40722
|
-
|
|
40810
|
+
if (!providerId)
|
|
40811
|
+
return false;
|
|
40812
|
+
const listed = MULTI_KEY_PROVIDER_IDS.has(providerId) || envMultiKeyProviderIds().includes(providerId);
|
|
40813
|
+
if (!listed)
|
|
40814
|
+
return false;
|
|
40815
|
+
const kind = providerKindForId(providerId);
|
|
40816
|
+
return kind !== undefined && MULTI_KEY_PROVIDER_KINDS.has(kind);
|
|
40723
40817
|
}
|
|
40724
40818
|
function migrateEnvKeysToConfig() {
|
|
40725
40819
|
loadDotEnv();
|
|
@@ -40810,7 +40904,7 @@ function getActiveProviderDisplayName() {
|
|
|
40810
40904
|
const p = getActiveProvider();
|
|
40811
40905
|
return p ? providerDisplayName(p) : undefined;
|
|
40812
40906
|
}
|
|
40813
|
-
var DEFAULT_BEDROCK_REGION = "us-east-1", BEDROCK_REGIONS, GEMINI_VERTEX_PROVIDER_ID = "gemini-vertex", DEFAULT_VERTEX_REGION = "global", VERTEX_REGIONS, OLLAMA_DEFAULT_BASE_URL = "http://localhost:11434/v1", RAYU_HOSTED_PROVIDER_ID = "rayu-hosted", RAYU_HOSTED_PROVIDER_LABEL = "Rayu (hosted)", MULTI_KEY_PROVIDER_IDS, PROVIDER_PRESETS, PROVIDER_DISPLAY_NAMES;
|
|
40907
|
+
var DEFAULT_BEDROCK_REGION = "us-east-1", BEDROCK_REGIONS, GEMINI_VERTEX_PROVIDER_ID = "gemini-vertex", DEFAULT_VERTEX_REGION = "global", VERTEX_REGIONS, OLLAMA_DEFAULT_BASE_URL = "http://localhost:11434/v1", RAYU_HOSTED_PROVIDER_ID = "rayu-hosted", RAYU_HOSTED_PROVIDER_LABEL = "Rayu (hosted)", MULTI_KEY_PROVIDER_IDS, MULTI_KEY_PROVIDER_KINDS, PROVIDER_PRESETS, PROVIDER_DISPLAY_NAMES;
|
|
40814
40908
|
var init_rayuProviders = __esm(() => {
|
|
40815
40909
|
init_rayuConfig();
|
|
40816
40910
|
init_envUtils();
|
|
@@ -40839,7 +40933,12 @@ var init_rayuProviders = __esm(() => {
|
|
|
40839
40933
|
];
|
|
40840
40934
|
MULTI_KEY_PROVIDER_IDS = new Set([
|
|
40841
40935
|
"nvidia",
|
|
40842
|
-
"openrouter"
|
|
40936
|
+
"openrouter",
|
|
40937
|
+
"ollama-cloud"
|
|
40938
|
+
]);
|
|
40939
|
+
MULTI_KEY_PROVIDER_KINDS = new Set([
|
|
40940
|
+
"openai-compatible",
|
|
40941
|
+
"anthropic-compatible"
|
|
40843
40942
|
]);
|
|
40844
40943
|
PROVIDER_PRESETS = [
|
|
40845
40944
|
{
|
|
@@ -40858,6 +40957,14 @@ var init_rayuProviders = __esm(() => {
|
|
|
40858
40957
|
defaultModel: "LongCat-2.0",
|
|
40859
40958
|
envKeys: ["LONGCAT_API_KEY"]
|
|
40860
40959
|
},
|
|
40960
|
+
{
|
|
40961
|
+
id: OLLAMA_CLOUD_PROVIDER_ID,
|
|
40962
|
+
label: "Ollama Cloud (ollama.com) · hosted models · fetches your account models",
|
|
40963
|
+
kind: "anthropic-compatible",
|
|
40964
|
+
baseURL: OLLAMA_CLOUD_BASE_URL,
|
|
40965
|
+
defaultModel: "gpt-oss:120b-cloud",
|
|
40966
|
+
envKeys: ["OLLAMA_CLOUD_API_KEY"]
|
|
40967
|
+
},
|
|
40861
40968
|
{
|
|
40862
40969
|
id: "nvidia",
|
|
40863
40970
|
label: "NVIDIA NIM (integrate.api.nvidia.com)",
|
|
@@ -41109,6 +41216,7 @@ var init_rayuProviders = __esm(() => {
|
|
|
41109
41216
|
copilot: "GitHub Copilot",
|
|
41110
41217
|
"rayu-hosted": "Rayu",
|
|
41111
41218
|
ollama: "Ollama",
|
|
41219
|
+
"ollama-cloud": "Ollama Cloud",
|
|
41112
41220
|
local: "Local"
|
|
41113
41221
|
};
|
|
41114
41222
|
});
|
|
@@ -41818,6 +41926,10 @@ async function fetchProviderModels(p) {
|
|
|
41818
41926
|
const { fetchCopilotModels: fetchCopilotModels2 } = await Promise.resolve().then(() => (init_copilotAuth(), exports_copilotAuth));
|
|
41819
41927
|
return fetchCopilotModels2(p.apiKey);
|
|
41820
41928
|
}
|
|
41929
|
+
if (p.id === "ollama-cloud") {
|
|
41930
|
+
const { fetchOllamaCloudModels: fetchOllamaCloudModels2 } = await Promise.resolve().then(() => exports_ollamaCloud);
|
|
41931
|
+
return fetchOllamaCloudModels2(p.apiKey, p.baseURL);
|
|
41932
|
+
}
|
|
41821
41933
|
if (p.kind !== "openai-compatible" || !p.baseURL)
|
|
41822
41934
|
return [];
|
|
41823
41935
|
const curated = CURATED_PROVIDER_MODELS[p.id] ?? [];
|
|
@@ -41850,7 +41962,7 @@ async function fetchProviderModels(p) {
|
|
|
41850
41962
|
}
|
|
41851
41963
|
async function refreshActiveProviderModels() {
|
|
41852
41964
|
const p = getActiveProvider();
|
|
41853
|
-
if (!p || p.kind !== "openai-compatible" && p.kind !== "bedrock" && p.kind !== "vertex" && p.kind !== "genai" && p.kind !== "kiro" && p.kind !== "copilot")
|
|
41965
|
+
if (!p || p.kind !== "openai-compatible" && p.kind !== "bedrock" && p.kind !== "vertex" && p.kind !== "genai" && p.kind !== "kiro" && p.kind !== "copilot" && p.kind !== "anthropic-compatible")
|
|
41854
41966
|
return [];
|
|
41855
41967
|
const models = await fetchProviderModels(p);
|
|
41856
41968
|
if (models.length) {
|
|
@@ -41938,14 +42050,17 @@ var init_rayuConfig = __esm(() => {
|
|
|
41938
42050
|
[/gpt-4\.1/i, 1048576],
|
|
41939
42051
|
[/gemini[-.]?(1\.5|2|2\.5|3)/i, 1048576],
|
|
41940
42052
|
[/gemini/i, 1048576],
|
|
41941
|
-
[/deepseek[
|
|
42053
|
+
[/deepseek[-_/.]?v4/i, 1e6],
|
|
41942
42054
|
[/longcat/i, 1e6],
|
|
41943
42055
|
[/minimax[-_.]?m3/i, 1e6],
|
|
41944
|
-
[/glm
|
|
42056
|
+
[/glm-?5\.2/i, 1e6],
|
|
41945
42057
|
[/fugu/i, 1e6],
|
|
42058
|
+
[/llama[-_.]?4/i, 1e6],
|
|
41946
42059
|
[/kimi-k1|kimi.*long/i, 200000],
|
|
41947
42060
|
[/kimi[-_.]?k2[-_.]?(thinking|\d{4}|[5-9])/i, 256000],
|
|
42061
|
+
[/kimi[-_.\s]?cod(e|ing)|kimi[-_.]?k?2[.\-_]?7/i, 256000],
|
|
41948
42062
|
[/kimi|moonshot/i, 131072],
|
|
42063
|
+
[/qwen[-.]?3\.5/i, 256000],
|
|
41949
42064
|
[/qwen[-.]?3[-.]?(coder|next)/i, 256000],
|
|
41950
42065
|
[/jamba/i, 256000],
|
|
41951
42066
|
[/step[-_.]?3\.7/i, 256000],
|
|
@@ -41953,7 +42068,7 @@ var init_rayuConfig = __esm(() => {
|
|
|
41953
42068
|
[/minimax/i, 204800],
|
|
41954
42069
|
[/deepseek-(chat|reasoner|v3|coder)/i, 131072],
|
|
41955
42070
|
[/deepseek-r1/i, 131072],
|
|
41956
|
-
[/llama-3\.[1-3]|llama-3-70b|
|
|
42071
|
+
[/llama-3\.[1-3]|llama-3-70b|nemotron/i, 131072],
|
|
41957
42072
|
[/qwen[-_.]?[23]|qwq/i, 131072],
|
|
41958
42073
|
[/gemma-[234]/i, 131072],
|
|
41959
42074
|
[/mixtral|mistral|ministral|codestral|devstral/i, 131072],
|
|
@@ -41990,6 +42105,7 @@ var exports_providers = {};
|
|
|
41990
42105
|
__export(exports_providers, {
|
|
41991
42106
|
isVertexGeminiActive: () => isVertexGeminiActive,
|
|
41992
42107
|
isRayuNonAnthropicActive: () => isRayuNonAnthropicActive,
|
|
42108
|
+
isRayuAnthropicCompatibleActive: () => isRayuAnthropicCompatibleActive,
|
|
41993
42109
|
isOpenAICompatibleActive: () => isOpenAICompatibleActive,
|
|
41994
42110
|
isGeminiVertexConfigured: () => isGeminiVertexConfigured,
|
|
41995
42111
|
isFirstPartyAnthropicBaseUrl: () => isFirstPartyAnthropicBaseUrl,
|
|
@@ -42019,6 +42135,14 @@ function isRayuNonAnthropicActive() {
|
|
|
42019
42135
|
return false;
|
|
42020
42136
|
}
|
|
42021
42137
|
}
|
|
42138
|
+
function isRayuAnthropicCompatibleActive() {
|
|
42139
|
+
try {
|
|
42140
|
+
const { getActiveProvider: getActiveProvider2 } = (init_rayuConfig(), __toCommonJS(exports_rayuConfig));
|
|
42141
|
+
return getActiveProvider2()?.kind === "anthropic-compatible";
|
|
42142
|
+
} catch {
|
|
42143
|
+
return false;
|
|
42144
|
+
}
|
|
42145
|
+
}
|
|
42022
42146
|
function isOpenAICompatibleActive() {
|
|
42023
42147
|
if (isEnvTruthy(process.env.RAYU_OPENAI_COMPATIBLE)) {
|
|
42024
42148
|
return true;
|
|
@@ -148855,7 +148979,7 @@ var init_isEqual = __esm(() => {
|
|
|
148855
148979
|
|
|
148856
148980
|
// src/utils/userAgent.ts
|
|
148857
148981
|
function getRayuUserAgent() {
|
|
148858
|
-
return `rayu/${"1.4.
|
|
148982
|
+
return `rayu/${"1.4.469"}`;
|
|
148859
148983
|
}
|
|
148860
148984
|
var getClaudeCodeUserAgent;
|
|
148861
148985
|
var init_userAgent = __esm(() => {
|
|
@@ -148881,7 +149005,7 @@ function getUserAgent() {
|
|
|
148881
149005
|
const clientApp = process.env.RAYU_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}` : "";
|
|
148882
149006
|
const workload = getWorkload();
|
|
148883
149007
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
148884
|
-
return `rayu/${"1.4.
|
|
149008
|
+
return `rayu/${"1.4.469"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
148885
149009
|
}
|
|
148886
149010
|
function getMCPUserAgent() {
|
|
148887
149011
|
const parts = [];
|
|
@@ -148895,7 +149019,7 @@ function getMCPUserAgent() {
|
|
|
148895
149019
|
parts.push(`client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}`);
|
|
148896
149020
|
}
|
|
148897
149021
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
148898
|
-
return `rayu/${"1.4.
|
|
149022
|
+
return `rayu/${"1.4.469"}${suffix}`;
|
|
148899
149023
|
}
|
|
148900
149024
|
function getWebFetchUserAgent() {
|
|
148901
149025
|
return `Rayu-User (${getRayuUserAgent()})`;
|
|
@@ -174790,16 +174914,16 @@ async function getKiroBearer(provider) {
|
|
|
174790
174914
|
if (!profileArn) {
|
|
174791
174915
|
profileArn = await fetchKiroProfileArn(creds.accessToken, region) ?? "";
|
|
174792
174916
|
}
|
|
174793
|
-
const
|
|
174917
|
+
const bearer2 = {
|
|
174794
174918
|
token: creds.accessToken,
|
|
174795
174919
|
region,
|
|
174796
174920
|
...profileArn ? { profileArn } : {}
|
|
174797
174921
|
};
|
|
174798
174922
|
oauthCache.set(provider.id, {
|
|
174799
|
-
bearer,
|
|
174923
|
+
bearer: bearer2,
|
|
174800
174924
|
expiresAtMs: creds.expiresAt ? creds.expiresAt * 1000 : Date.now() + 1800000
|
|
174801
174925
|
});
|
|
174802
|
-
return
|
|
174926
|
+
return bearer2;
|
|
174803
174927
|
}
|
|
174804
174928
|
var TOKEN_VALIDITY_BUFFER_MS, DEFAULT_REGION2 = "us-east-1", TOKEN_KEYS, DEVICE_REG_KEYS, defaultRefreshHook = async (url3, body) => {
|
|
174805
174929
|
const res = await fetch(url3, {
|
|
@@ -175252,12 +175376,12 @@ function createKiroClient(provider, maxRetries = 2) {
|
|
|
175252
175376
|
});
|
|
175253
175377
|
}
|
|
175254
175378
|
for (let attempt = 0;attempt <= maxRetries; attempt++) {
|
|
175255
|
-
const
|
|
175256
|
-
if (
|
|
175257
|
-
payload.profileArn =
|
|
175258
|
-
const endpoint = `https://q.${
|
|
175379
|
+
const bearer2 = await getKiroBearer(provider);
|
|
175380
|
+
if (bearer2.profileArn)
|
|
175381
|
+
payload.profileArn = bearer2.profileArn;
|
|
175382
|
+
const endpoint = `https://q.${bearer2.region}.amazonaws.com/`;
|
|
175259
175383
|
const headers = {
|
|
175260
|
-
Authorization: `Bearer ${
|
|
175384
|
+
Authorization: `Bearer ${bearer2.token}`,
|
|
175261
175385
|
"Content-Type": "application/x-amz-json-1.0",
|
|
175262
175386
|
Accept: "*/*",
|
|
175263
175387
|
"X-Amz-Target": AMZ_TARGET,
|
|
@@ -175267,8 +175391,8 @@ function createKiroClient(provider, maxRetries = 2) {
|
|
|
175267
175391
|
"amz-sdk-invocation-id": invocationId,
|
|
175268
175392
|
"amz-sdk-request": `attempt=${attempt + 1}; max=${maxRetries + 1}`
|
|
175269
175393
|
};
|
|
175270
|
-
if (
|
|
175271
|
-
headers.TokenType =
|
|
175394
|
+
if (bearer2.tokenType)
|
|
175395
|
+
headers.TokenType = bearer2.tokenType;
|
|
175272
175396
|
const timeout = AbortSignal.timeout(REQUEST_TIMEOUT_MS);
|
|
175273
175397
|
const composite = signal && "any" in AbortSignal ? AbortSignal.any([signal, timeout]) : signal ?? timeout;
|
|
175274
175398
|
let res;
|
|
@@ -175430,18 +175554,53 @@ var init_rayuHostedClient = __esm(() => {
|
|
|
175430
175554
|
// src/services/api/anthropicCompatibleClient.ts
|
|
175431
175555
|
var exports_anthropicCompatibleClient = {};
|
|
175432
175556
|
__export(exports_anthropicCompatibleClient, {
|
|
175557
|
+
makeKeyRotatingFetch: () => makeKeyRotatingFetch,
|
|
175433
175558
|
createAnthropicCompatibleClient: () => createAnthropicCompatibleClient
|
|
175434
175559
|
});
|
|
175435
|
-
function
|
|
175560
|
+
function makeKeyRotatingFetch(keys2, baseFetch) {
|
|
175561
|
+
let current = 0;
|
|
175562
|
+
const rotating = async (input, init) => {
|
|
175563
|
+
const n2 = keys2.length;
|
|
175564
|
+
let lastResp;
|
|
175565
|
+
for (let attempt = 0;attempt < n2; attempt++) {
|
|
175566
|
+
const idx = (current + attempt) % n2;
|
|
175567
|
+
const headers = new Headers(init?.headers);
|
|
175568
|
+
headers.set("Authorization", `Bearer ${keys2[idx]}`);
|
|
175569
|
+
const resp = await baseFetch(input, { ...init, headers });
|
|
175570
|
+
if (resp.ok || attempt === n2 - 1 || !ROTATABLE_KEY_STATUSES2.has(resp.status)) {
|
|
175571
|
+
if (resp.ok)
|
|
175572
|
+
current = idx;
|
|
175573
|
+
return resp;
|
|
175574
|
+
}
|
|
175575
|
+
try {
|
|
175576
|
+
await resp.body?.cancel();
|
|
175577
|
+
} catch {}
|
|
175578
|
+
lastResp = resp;
|
|
175579
|
+
}
|
|
175580
|
+
return lastResp;
|
|
175581
|
+
};
|
|
175582
|
+
return rotating;
|
|
175583
|
+
}
|
|
175584
|
+
function createAnthropicCompatibleClient(provider, maxRetries, transport = {}, apiKeys) {
|
|
175585
|
+
const keys2 = (apiKeys ?? []).map((k2) => k2?.trim()).filter((k2) => !!k2);
|
|
175586
|
+
const rotate = keys2.length > 1;
|
|
175587
|
+
const finalTransport = rotate ? {
|
|
175588
|
+
...transport,
|
|
175589
|
+
fetch: makeKeyRotatingFetch(keys2, transport.fetch ?? globalThis.fetch)
|
|
175590
|
+
} : transport;
|
|
175436
175591
|
return new Anthropic({
|
|
175592
|
+
dangerouslyAllowBrowser: true,
|
|
175593
|
+
...finalTransport,
|
|
175437
175594
|
apiKey: null,
|
|
175438
|
-
authToken: provider.apiKey,
|
|
175595
|
+
authToken: keys2[0] ?? provider.apiKey,
|
|
175439
175596
|
baseURL: provider.baseURL,
|
|
175440
175597
|
maxRetries
|
|
175441
175598
|
});
|
|
175442
175599
|
}
|
|
175600
|
+
var ROTATABLE_KEY_STATUSES2;
|
|
175443
175601
|
var init_anthropicCompatibleClient = __esm(() => {
|
|
175444
175602
|
init_sdk();
|
|
175603
|
+
ROTATABLE_KEY_STATUSES2 = new Set([429, 402, 401, 403]);
|
|
175445
175604
|
});
|
|
175446
175605
|
|
|
175447
175606
|
// src/services/api/client.ts
|
|
@@ -175576,13 +175735,38 @@ async function getRayuHostedClient(maxRetries) {
|
|
|
175576
175735
|
const { createRayuHostedClient: createRayuHostedClient2 } = await Promise.resolve().then(() => (init_rayuHostedClient(), exports_rayuHostedClient));
|
|
175577
175736
|
return createRayuHostedClient2(active, maxRetries);
|
|
175578
175737
|
}
|
|
175579
|
-
|
|
175580
|
-
const
|
|
175738
|
+
function anthropicCompatibleTransport(source, fetchOverride2) {
|
|
175739
|
+
const customHeaders = getCustomHeaders();
|
|
175740
|
+
const defaultHeaders = {
|
|
175741
|
+
"x-app": "cli",
|
|
175742
|
+
"User-Agent": getUserAgent(),
|
|
175743
|
+
"X-Claude-Code-Session-Id": getSessionId(),
|
|
175744
|
+
...customHeaders
|
|
175745
|
+
};
|
|
175746
|
+
const resolvedFetch = buildFetch(fetchOverride2, source);
|
|
175747
|
+
return {
|
|
175748
|
+
defaultHeaders,
|
|
175749
|
+
timeout: parseInt(process.env.API_TIMEOUT_MS || String(600000), 10),
|
|
175750
|
+
fetchOptions: getProxyFetchOptions({
|
|
175751
|
+
forAnthropicAPI: true
|
|
175752
|
+
}),
|
|
175753
|
+
...resolvedFetch ? { fetch: resolvedFetch } : {},
|
|
175754
|
+
...isDebugToStdErr() ? { logger: createStderrLogger() } : {}
|
|
175755
|
+
};
|
|
175756
|
+
}
|
|
175757
|
+
async function getRayuAnthropicCompatibleClient(maxRetries, source, fetchOverride2) {
|
|
175758
|
+
const { getActiveProvider: getActiveProvider2, getProviderApiKeys: getProviderApiKeys2 } = await Promise.resolve().then(() => (init_rayuConfig(), exports_rayuConfig));
|
|
175581
175759
|
const active = getActiveProvider2();
|
|
175582
175760
|
if (active?.kind !== "anthropic-compatible")
|
|
175583
175761
|
return null;
|
|
175584
175762
|
const { createAnthropicCompatibleClient: createAnthropicCompatibleClient2 } = await Promise.resolve().then(() => (init_anthropicCompatibleClient(), exports_anthropicCompatibleClient));
|
|
175585
|
-
|
|
175763
|
+
let apiKeys = getProviderApiKeys2(active);
|
|
175764
|
+
const { supportsMultiApiKey: supportsMultiApiKey2 } = await Promise.resolve().then(() => (init_rayuProviders(), exports_rayuProviders));
|
|
175765
|
+
const { isMultiApiKeyAllowed: isMultiApiKeyAllowed2 } = await Promise.resolve().then(() => (init_multiApiKeyFeature(), exports_multiApiKeyFeature));
|
|
175766
|
+
if (!supportsMultiApiKey2(active.id) || !isMultiApiKeyAllowed2()) {
|
|
175767
|
+
apiKeys = apiKeys.slice(0, 1);
|
|
175768
|
+
}
|
|
175769
|
+
return createAnthropicCompatibleClient2(active, maxRetries, anthropicCompatibleTransport(source, fetchOverride2), apiKeys);
|
|
175586
175770
|
}
|
|
175587
175771
|
async function buildClientForProvider(provider, maxRetries) {
|
|
175588
175772
|
if (provider.kind === "bedrock" && provider.bedrockApi === "anthropic" && provider.apiKey) {
|
|
@@ -175624,7 +175808,14 @@ async function buildClientForProvider(provider, maxRetries) {
|
|
|
175624
175808
|
}
|
|
175625
175809
|
if (provider.kind === "anthropic-compatible") {
|
|
175626
175810
|
const { createAnthropicCompatibleClient: createAnthropicCompatibleClient2 } = await Promise.resolve().then(() => (init_anthropicCompatibleClient(), exports_anthropicCompatibleClient));
|
|
175627
|
-
|
|
175811
|
+
const { getProviderApiKeys: getProviderApiKeys2 } = await Promise.resolve().then(() => (init_rayuConfig(), exports_rayuConfig));
|
|
175812
|
+
const { supportsMultiApiKey: supportsMultiApiKey2 } = await Promise.resolve().then(() => (init_rayuProviders(), exports_rayuProviders));
|
|
175813
|
+
const { isMultiApiKeyAllowed: isMultiApiKeyAllowed2 } = await Promise.resolve().then(() => (init_multiApiKeyFeature(), exports_multiApiKeyFeature));
|
|
175814
|
+
let apiKeys = getProviderApiKeys2(provider);
|
|
175815
|
+
if (!supportsMultiApiKey2(provider.id) || !isMultiApiKeyAllowed2()) {
|
|
175816
|
+
apiKeys = apiKeys.slice(0, 1);
|
|
175817
|
+
}
|
|
175818
|
+
return createAnthropicCompatibleClient2(provider, maxRetries, anthropicCompatibleTransport(), apiKeys);
|
|
175628
175819
|
}
|
|
175629
175820
|
if ((provider.kind === "openai-compatible" || provider.kind === "bedrock") && provider.baseURL) {
|
|
175630
175821
|
const { createOpenAICompatibleClient: createOpenAICompatibleClient2 } = await Promise.resolve().then(() => (init_openaiAdapter(), exports_openaiAdapter));
|
|
@@ -175699,7 +175890,7 @@ async function getAnthropicClient({
|
|
|
175699
175890
|
if (rayuHostedClient) {
|
|
175700
175891
|
return rayuHostedClient;
|
|
175701
175892
|
}
|
|
175702
|
-
const anthropicCompatibleClient = await getRayuAnthropicCompatibleClient(maxRetries);
|
|
175893
|
+
const anthropicCompatibleClient = await getRayuAnthropicCompatibleClient(maxRetries, source, fetchOverride2);
|
|
175703
175894
|
if (anthropicCompatibleClient) {
|
|
175704
175895
|
return anthropicCompatibleClient;
|
|
175705
175896
|
}
|
|
@@ -205143,7 +205334,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
205143
205334
|
if (!isAttributionHeaderEnabled()) {
|
|
205144
205335
|
return "";
|
|
205145
205336
|
}
|
|
205146
|
-
const version2 = `${"1.4.
|
|
205337
|
+
const version2 = `${"1.4.469"}.${fingerprint}`;
|
|
205147
205338
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
205148
205339
|
const cch = "";
|
|
205149
205340
|
const workload = getWorkload();
|
|
@@ -240215,7 +240406,13 @@ function modelSupportsAdaptiveThinking(model) {
|
|
|
240215
240406
|
if (supported3P !== undefined) {
|
|
240216
240407
|
return supported3P;
|
|
240217
240408
|
}
|
|
240218
|
-
if (isOpenAICompatibleActive()
|
|
240409
|
+
if (isOpenAICompatibleActive()) {
|
|
240410
|
+
return true;
|
|
240411
|
+
}
|
|
240412
|
+
if (isRayuAnthropicCompatibleActive()) {
|
|
240413
|
+
return false;
|
|
240414
|
+
}
|
|
240415
|
+
if (isRayuNonAnthropicActive()) {
|
|
240219
240416
|
return true;
|
|
240220
240417
|
}
|
|
240221
240418
|
const canonical = getCanonicalName(model);
|
|
@@ -259106,7 +259303,7 @@ var init_metadata = __esm(() => {
|
|
|
259106
259303
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
259107
259304
|
WHITESPACE_REGEX = /\s+/;
|
|
259108
259305
|
getVersionBase = memoize_default(() => {
|
|
259109
|
-
const match = "1.4.
|
|
259306
|
+
const match = "1.4.469".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
259110
259307
|
return match ? match[0] : undefined;
|
|
259111
259308
|
});
|
|
259112
259309
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -259145,7 +259342,7 @@ var init_metadata = __esm(() => {
|
|
|
259145
259342
|
},
|
|
259146
259343
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
259147
259344
|
isRayuAction: isEnvTruthy(process.env.RAYU_ACTION),
|
|
259148
|
-
version: "1.4.
|
|
259345
|
+
version: "1.4.469",
|
|
259149
259346
|
versionBase: getVersionBase(),
|
|
259150
259347
|
buildTime: "",
|
|
259151
259348
|
deploymentEnvironment: env3.detectDeploymentEnvironment(),
|
|
@@ -291159,7 +291356,7 @@ function getTelemetryAttributes() {
|
|
|
291159
291356
|
attributes["session.id"] = sessionId;
|
|
291160
291357
|
}
|
|
291161
291358
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
291162
|
-
attributes["app.version"] = "1.4.
|
|
291359
|
+
attributes["app.version"] = "1.4.469";
|
|
291163
291360
|
}
|
|
291164
291361
|
const oauthAccount = getOauthAccountInfo();
|
|
291165
291362
|
if (oauthAccount) {
|
|
@@ -401516,7 +401713,7 @@ function getInstallationEnv() {
|
|
|
401516
401713
|
return;
|
|
401517
401714
|
}
|
|
401518
401715
|
function getClaudeCodeVersion() {
|
|
401519
|
-
return "1.4.
|
|
401716
|
+
return "1.4.469";
|
|
401520
401717
|
}
|
|
401521
401718
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
401522
401719
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -406754,7 +406951,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
406754
406951
|
const client3 = new Client({
|
|
406755
406952
|
name: "claude-code",
|
|
406756
406953
|
title: "RAYU",
|
|
406757
|
-
version: "1.4.
|
|
406954
|
+
version: "1.4.469",
|
|
406758
406955
|
description: "Anthropic's agentic coding tool",
|
|
406759
406956
|
websiteUrl: PRODUCT_URL
|
|
406760
406957
|
}, {
|
|
@@ -407071,7 +407268,7 @@ var init_client7 = __esm(() => {
|
|
|
407071
407268
|
const client3 = new Client({
|
|
407072
407269
|
name: "claude-code",
|
|
407073
407270
|
title: "RAYU",
|
|
407074
|
-
version: "1.4.
|
|
407271
|
+
version: "1.4.469",
|
|
407075
407272
|
description: "Anthropic's agentic coding tool",
|
|
407076
407273
|
websiteUrl: PRODUCT_URL
|
|
407077
407274
|
}, {
|
|
@@ -421890,7 +422087,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
421890
422087
|
}
|
|
421891
422088
|
function computeFingerprintFromMessages(messages) {
|
|
421892
422089
|
const firstMessageText = extractFirstMessageText(messages);
|
|
421893
|
-
return computeFingerprint(firstMessageText, "1.4.
|
|
422090
|
+
return computeFingerprint(firstMessageText, "1.4.469");
|
|
421894
422091
|
}
|
|
421895
422092
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
421896
422093
|
var init_fingerprint = () => {};
|
|
@@ -421932,7 +422129,7 @@ async function sideQuery(opts) {
|
|
|
421932
422129
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
421933
422130
|
}
|
|
421934
422131
|
const messageText = extractFirstUserMessageText(messages);
|
|
421935
|
-
const fingerprint = computeFingerprint(messageText, "1.4.
|
|
422132
|
+
const fingerprint = computeFingerprint(messageText, "1.4.469");
|
|
421936
422133
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
421937
422134
|
const systemBlocks = [
|
|
421938
422135
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -521268,9 +521465,9 @@ async function assertMinVersion() {
|
|
|
521268
521465
|
if (false) {}
|
|
521269
521466
|
try {
|
|
521270
521467
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
521271
|
-
if (versionConfig.minVersion && lt("1.4.
|
|
521468
|
+
if (versionConfig.minVersion && lt("1.4.469", versionConfig.minVersion)) {
|
|
521272
521469
|
console.error(`
|
|
521273
|
-
It looks like your version of RAYU (${"1.4.
|
|
521470
|
+
It looks like your version of RAYU (${"1.4.469"}) needs an update.
|
|
521274
521471
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
521275
521472
|
|
|
521276
521473
|
To update, please run:
|
|
@@ -521496,7 +521693,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
521496
521693
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
521497
521694
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
521498
521695
|
pid: process.pid,
|
|
521499
|
-
currentVersion: "1.4.
|
|
521696
|
+
currentVersion: "1.4.469"
|
|
521500
521697
|
});
|
|
521501
521698
|
return "in_progress";
|
|
521502
521699
|
}
|
|
@@ -521505,7 +521702,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
521505
521702
|
if (!env3.isRunningWithBun() && env3.isNpmFromWindowsPath()) {
|
|
521506
521703
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
521507
521704
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
521508
|
-
currentVersion: "1.4.
|
|
521705
|
+
currentVersion: "1.4.469"
|
|
521509
521706
|
});
|
|
521510
521707
|
console.error(`
|
|
521511
521708
|
Error: Windows NPM detected in WSL
|
|
@@ -522036,7 +522233,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
522036
522233
|
}
|
|
522037
522234
|
async function getDoctorDiagnostic() {
|
|
522038
522235
|
const installationType = await getCurrentInstallationType();
|
|
522039
|
-
const version2 = typeof MACRO !== "undefined" ? "1.4.
|
|
522236
|
+
const version2 = typeof MACRO !== "undefined" ? "1.4.469" : "unknown";
|
|
522040
522237
|
const installationPath = await getInstallationPath();
|
|
522041
522238
|
const invokedBinary = getInvokedBinary();
|
|
522042
522239
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -522830,8 +523027,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
522830
523027
|
const maxVersion = await getMaxVersion();
|
|
522831
523028
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
522832
523029
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
522833
|
-
if (gte("1.4.
|
|
522834
|
-
logForDebugging(`Native installer: current version ${"1.4.
|
|
523030
|
+
if (gte("1.4.469", maxVersion)) {
|
|
523031
|
+
logForDebugging(`Native installer: current version ${"1.4.469"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
522835
523032
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
522836
523033
|
latency_ms: Date.now() - startTime2,
|
|
522837
523034
|
max_version: maxVersion,
|
|
@@ -522842,7 +523039,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
522842
523039
|
version2 = maxVersion;
|
|
522843
523040
|
}
|
|
522844
523041
|
}
|
|
522845
|
-
if (!forceReinstall && version2 === "1.4.
|
|
523042
|
+
if (!forceReinstall && version2 === "1.4.469" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
|
|
522846
523043
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
522847
523044
|
logEvent("tengu_native_update_complete", {
|
|
522848
523045
|
latency_ms: Date.now() - startTime2,
|
|
@@ -524038,7 +524235,7 @@ function buildPrimarySection() {
|
|
|
524038
524235
|
});
|
|
524039
524236
|
return [{
|
|
524040
524237
|
label: "Version",
|
|
524041
|
-
value: "1.4.
|
|
524238
|
+
value: "1.4.469"
|
|
524042
524239
|
}, {
|
|
524043
524240
|
label: "Session name",
|
|
524044
524241
|
value: nameValue
|
|
@@ -527709,7 +527906,7 @@ function Config({
|
|
|
527709
527906
|
}
|
|
527710
527907
|
})
|
|
527711
527908
|
}) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime168.jsx(ChannelDowngradeDialog, {
|
|
527712
|
-
currentVersion: "1.4.
|
|
527909
|
+
currentVersion: "1.4.469",
|
|
527713
527910
|
onChoice: (choice) => {
|
|
527714
527911
|
setShowSubmenu(null);
|
|
527715
527912
|
setTabsHidden(false);
|
|
@@ -527721,7 +527918,7 @@ function Config({
|
|
|
527721
527918
|
autoUpdatesChannel: "stable"
|
|
527722
527919
|
};
|
|
527723
527920
|
if (choice === "stay") {
|
|
527724
|
-
newSettings.minimumVersion = "1.4.
|
|
527921
|
+
newSettings.minimumVersion = "1.4.469";
|
|
527725
527922
|
}
|
|
527726
527923
|
updateSettingsForSource("userSettings", newSettings);
|
|
527727
527924
|
setSettingsData((prev_27) => ({
|
|
@@ -535781,7 +535978,7 @@ function HelpV2(t0) {
|
|
|
535781
535978
|
let t6;
|
|
535782
535979
|
if ($3[31] !== tabs) {
|
|
535783
535980
|
t6 = /* @__PURE__ */ jsx_runtime195.jsx(Tabs, {
|
|
535784
|
-
title: `Rayu-CLI v${"1.4.
|
|
535981
|
+
title: `Rayu-CLI v${"1.4.469"}`,
|
|
535785
535982
|
color: "professionalBlue",
|
|
535786
535983
|
defaultTab: "general",
|
|
535787
535984
|
children: tabs
|
|
@@ -555864,7 +556061,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
|
|
|
555864
556061
|
}
|
|
555865
556062
|
return [];
|
|
555866
556063
|
}
|
|
555867
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.
|
|
556064
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.469") {
|
|
555868
556065
|
if (false) {}
|
|
555869
556066
|
const cachedChangelog = await getStoredChangelog();
|
|
555870
556067
|
if (lastSeenVersion !== currentVersion || !cachedChangelog) {
|
|
@@ -555877,7 +556074,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.467")
|
|
|
555877
556074
|
releaseNotes
|
|
555878
556075
|
};
|
|
555879
556076
|
}
|
|
555880
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.4.
|
|
556077
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.4.469") {
|
|
555881
556078
|
if (false) {}
|
|
555882
556079
|
const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
|
|
555883
556080
|
return {
|
|
@@ -556005,7 +556202,7 @@ function getRecentActivitySync() {
|
|
|
556005
556202
|
return cachedActivity;
|
|
556006
556203
|
}
|
|
556007
556204
|
function getLogoDisplayData() {
|
|
556008
|
-
const version2 = process.env.DEMO_VERSION ?? "1.4.
|
|
556205
|
+
const version2 = process.env.DEMO_VERSION ?? "1.4.469";
|
|
556009
556206
|
const serverUrl = getDirectConnectServerUrl();
|
|
556010
556207
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
556011
556208
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -556083,12 +556280,12 @@ var RAYU_BANNER_CLAWD, RAYU_BANNER_WELCOME, BANNERS, ACTIVE_BANNER_ID = "rayu";
|
|
|
556083
556280
|
var init_bannerConfig = __esm(() => {
|
|
556084
556281
|
RAYU_BANNER_CLAWD = {
|
|
556085
556282
|
lines: [
|
|
556086
|
-
["██████╗ █████╗ ██╗ ██╗██╗ ██╗", "#
|
|
556283
|
+
["██████╗ █████╗ ██╗ ██╗██╗ ██╗", "#c109ef"],
|
|
556087
556284
|
["██╔══██╗██╔══██╗╚██╗ ██╔╝██║ ██║", "#5bf58d"],
|
|
556088
|
-
["██████╔╝███████║ ╚████╔╝ ██║ ██║", "#
|
|
556089
|
-
["██╔══██╗██╔══██║ ╚██╔╝ ██║ ██║", "#
|
|
556090
|
-
["██║ ██║██║ ██║ ██║ ╚██████╔╝", "#
|
|
556091
|
-
["╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ", "#
|
|
556285
|
+
["██████╔╝███████║ ╚████╔╝ ██║ ██║", "#e8df3d"],
|
|
556286
|
+
["██╔══██╗██╔══██║ ╚██╔╝ ██║ ██║", "#2257c9"],
|
|
556287
|
+
["██║ ██║██║ ██║ ██║ ╚██████╔╝", "#43149b"],
|
|
556288
|
+
["╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ", "#db5e71"]
|
|
556092
556289
|
]
|
|
556093
556290
|
};
|
|
556094
556291
|
RAYU_BANNER_WELCOME = {
|
|
@@ -557169,7 +557366,7 @@ function LogoV2() {
|
|
|
557169
557366
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
557170
557367
|
t2 = () => {
|
|
557171
557368
|
const currentConfig = getGlobalConfig();
|
|
557172
|
-
if (currentConfig.lastReleaseNotesSeen === "1.4.
|
|
557369
|
+
if (currentConfig.lastReleaseNotesSeen === "1.4.469") {
|
|
557173
557370
|
return;
|
|
557174
557371
|
}
|
|
557175
557372
|
saveGlobalConfig(_temp327);
|
|
@@ -557647,7 +557844,7 @@ function LogoV2() {
|
|
|
557647
557844
|
t24 = $3[61];
|
|
557648
557845
|
}
|
|
557649
557846
|
const _latestNpm = getCachedLatestNpmVersionSync();
|
|
557650
|
-
const _updateFeeds = _latestNpm && gt(_latestNpm, "1.4.
|
|
557847
|
+
const _updateFeeds = _latestNpm && gt(_latestNpm, "1.4.469") ? [createUpdateAvailableFeed("1.4.469", _latestNpm)] : [];
|
|
557651
557848
|
const t25 = layoutMode === "horizontal" && /* @__PURE__ */ jsx_runtime236.jsx(FeedColumn, {
|
|
557652
557849
|
feeds: showOnboarding ? [createProjectOnboardingFeed(getSteps()), createRecentActivityFeed(activities)] : showGuestPassesUpsell ? [createRecentActivityFeed(activities), createGuestPassesFeed()] : showOverageCreditUpsell ? [createRecentActivityFeed(activities), createOverageCreditFeed()] : [createRecentActivityFeed(activities), ..._updateFeeds, createWhatsNewFeed(changelog)],
|
|
557653
557850
|
maxWidth: rightWidth
|
|
@@ -557847,12 +558044,12 @@ function LogoV2() {
|
|
|
557847
558044
|
return t41;
|
|
557848
558045
|
}
|
|
557849
558046
|
function _temp327(current) {
|
|
557850
|
-
if (current.lastReleaseNotesSeen === "1.4.
|
|
558047
|
+
if (current.lastReleaseNotesSeen === "1.4.469") {
|
|
557851
558048
|
return current;
|
|
557852
558049
|
}
|
|
557853
558050
|
return {
|
|
557854
558051
|
...current,
|
|
557855
|
-
lastReleaseNotesSeen: "1.4.
|
|
558052
|
+
lastReleaseNotesSeen: "1.4.469"
|
|
557856
558053
|
};
|
|
557857
558054
|
}
|
|
557858
558055
|
function _temp241(s_0) {
|
|
@@ -582850,7 +583047,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
582850
583047
|
smapsRollup,
|
|
582851
583048
|
platform: process.platform,
|
|
582852
583049
|
nodeVersion: process.version,
|
|
582853
|
-
ccVersion: "1.4.
|
|
583050
|
+
ccVersion: "1.4.469"
|
|
582854
583051
|
};
|
|
582855
583052
|
}
|
|
582856
583053
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -583372,7 +583569,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
583372
583569
|
var call50 = async () => {
|
|
583373
583570
|
return {
|
|
583374
583571
|
type: "text",
|
|
583375
|
-
value: "1.4.
|
|
583572
|
+
value: "1.4.469"
|
|
583376
583573
|
};
|
|
583377
583574
|
}, version2, version_default;
|
|
583378
583575
|
var init_version = __esm(() => {
|
|
@@ -586365,6 +586562,7 @@ function RayuProviderSetup({
|
|
|
586365
586562
|
const [baseURL, setBaseURL] = import_react178.useState("");
|
|
586366
586563
|
const [model, setModel] = import_react178.useState("");
|
|
586367
586564
|
const [apiKey, setApiKey] = import_react178.useState("");
|
|
586565
|
+
const [multiKeys, setMultiKeys] = import_react178.useState([]);
|
|
586368
586566
|
const [cursor, setCursor] = import_react178.useState(0);
|
|
586369
586567
|
const [region, setRegion] = import_react178.useState(DEFAULT_BEDROCK_REGION);
|
|
586370
586568
|
const [bedrockModels, setBedrockModels] = import_react178.useState([]);
|
|
@@ -586795,6 +586993,44 @@ ${r2.output.slice(-200)}`);
|
|
|
586795
586993
|
cancelled = true;
|
|
586796
586994
|
};
|
|
586797
586995
|
}, [phase, kiroStep]);
|
|
586996
|
+
import_react178.default.useEffect(() => {
|
|
586997
|
+
if (phase !== "ollamaCloudFetching")
|
|
586998
|
+
return;
|
|
586999
|
+
let cancelled = false;
|
|
587000
|
+
(async () => {
|
|
587001
|
+
const { fetchOllamaCloudModelContexts: fetchOllamaCloudModelContexts2, OLLAMA_CLOUD_BASE_URL: OLLAMA_CLOUD_BASE_URL2 } = await Promise.resolve().then(() => exports_ollamaCloud);
|
|
587002
|
+
const keys2 = (multiKeys.length ? multiKeys : [apiKey]).map((k2) => k2.trim()).filter(Boolean);
|
|
587003
|
+
const base2 = {
|
|
587004
|
+
id: preset?.id ?? "ollama-cloud",
|
|
587005
|
+
kind: "anthropic-compatible",
|
|
587006
|
+
apiKey: keys2[0],
|
|
587007
|
+
...keys2.length > 1 ? { apiKeys: keys2 } : {},
|
|
587008
|
+
baseURL: (baseURL || preset?.baseURL || OLLAMA_CLOUD_BASE_URL2).trim()
|
|
587009
|
+
};
|
|
587010
|
+
upsertProvider(base2, true);
|
|
587011
|
+
const models = await fetchProviderModels(base2).catch(() => []);
|
|
587012
|
+
if (cancelled)
|
|
587013
|
+
return;
|
|
587014
|
+
const chat2 = models.filter(isLikelyChatModel);
|
|
587015
|
+
const list = chat2.length ? chat2 : models;
|
|
587016
|
+
const contexts = list.length ? await fetchOllamaCloudModelContexts2(base2.apiKey, base2.baseURL, list).catch(() => ({})) : {};
|
|
587017
|
+
if (cancelled)
|
|
587018
|
+
return;
|
|
587019
|
+
const preferred = list.find((m3) => /qwen3-coder/i.test(m3)) ?? list.find((m3) => /glm-4\.[67]|glm-5/i.test(m3)) ?? list.find((m3) => /gpt-oss/i.test(m3)) ?? list.find((m3) => /cloud/i.test(m3)) ?? list[0] ?? "gpt-oss:120b-cloud";
|
|
587020
|
+
upsertProvider({
|
|
587021
|
+
...base2,
|
|
587022
|
+
...list.length ? { fetchedModels: list } : {},
|
|
587023
|
+
...Object.keys(contexts).length ? { modelContextWindows: contexts } : {},
|
|
587024
|
+
defaultModel: preferred
|
|
587025
|
+
}, true);
|
|
587026
|
+
if (cancelled)
|
|
587027
|
+
return;
|
|
587028
|
+
onDone();
|
|
587029
|
+
})();
|
|
587030
|
+
return () => {
|
|
587031
|
+
cancelled = true;
|
|
587032
|
+
};
|
|
587033
|
+
}, [phase]);
|
|
586798
587034
|
if (phase === "pick") {
|
|
586799
587035
|
const localIds = new Set(["ollama", "local"]);
|
|
586800
587036
|
const pickOptions = [
|
|
@@ -587019,6 +587255,23 @@ ${r2.output.slice(-200)}`);
|
|
|
587019
587255
|
]
|
|
587020
587256
|
});
|
|
587021
587257
|
}
|
|
587258
|
+
if (phase === "ollamaCloudFetching") {
|
|
587259
|
+
return /* @__PURE__ */ jsx_runtime324.jsxs(ThemedBox_default, {
|
|
587260
|
+
flexDirection: "column",
|
|
587261
|
+
gap: 1,
|
|
587262
|
+
paddingLeft: 1,
|
|
587263
|
+
children: [
|
|
587264
|
+
/* @__PURE__ */ jsx_runtime324.jsx(ThemedText, {
|
|
587265
|
+
bold: true,
|
|
587266
|
+
children: "Fetching your Ollama Cloud models…"
|
|
587267
|
+
}),
|
|
587268
|
+
/* @__PURE__ */ jsx_runtime324.jsx(ThemedText, {
|
|
587269
|
+
dimColor: true,
|
|
587270
|
+
children: "Listing the models available to your ollama.com account and their context sizes."
|
|
587271
|
+
})
|
|
587272
|
+
]
|
|
587273
|
+
});
|
|
587274
|
+
}
|
|
587022
587275
|
if (phase === "kiroChoice") {
|
|
587023
587276
|
return /* @__PURE__ */ jsx_runtime324.jsxs(ThemedBox_default, {
|
|
587024
587277
|
flexDirection: "column",
|
|
@@ -587640,11 +587893,21 @@ ${r2.output.slice(-200)}`);
|
|
|
587640
587893
|
providerLabel: preset.label,
|
|
587641
587894
|
maxKeys: getMaxStoredApiKeys(),
|
|
587642
587895
|
initialKeys: existing,
|
|
587643
|
-
onDone:
|
|
587896
|
+
onDone: (keys2) => {
|
|
587897
|
+
const cleaned = keys2.map((k2) => k2.trim()).filter(Boolean);
|
|
587898
|
+
if (preset.id === "ollama-cloud") {
|
|
587899
|
+
setMultiKeys(cleaned);
|
|
587900
|
+
setApiKey(cleaned[0] ?? "");
|
|
587901
|
+
setPhase("ollamaCloudFetching");
|
|
587902
|
+
return;
|
|
587903
|
+
}
|
|
587904
|
+
finishMultiKey(cleaned);
|
|
587905
|
+
},
|
|
587644
587906
|
onCancel: onDone
|
|
587645
587907
|
});
|
|
587646
587908
|
}
|
|
587647
587909
|
const isBedrock = preset?.kind === "bedrock";
|
|
587910
|
+
const isOllamaCloud = preset?.id === "ollama-cloud";
|
|
587648
587911
|
const showMultiKeyUpsell = supportsMultiApiKey(preset?.id);
|
|
587649
587912
|
return /* @__PURE__ */ jsx_runtime324.jsxs(ThemedBox_default, {
|
|
587650
587913
|
flexDirection: "column",
|
|
@@ -587657,7 +587920,7 @@ ${r2.output.slice(-200)}`);
|
|
|
587657
587920
|
}),
|
|
587658
587921
|
/* @__PURE__ */ jsx_runtime324.jsx(ThemedText, {
|
|
587659
587922
|
dimColor: true,
|
|
587660
|
-
children: isBedrock ? "Bedrock API key (bearer token). Stored locally in ~/.rayu/providers.json (0600)." : "Stored locally in ~/.rayu/providers.json (0600). Leave blank to skip."
|
|
587923
|
+
children: isBedrock ? "Bedrock API key (bearer token). Stored locally in ~/.rayu/providers.json (0600)." : isOllamaCloud ? "Ollama Cloud API key (ollama.com → Settings → Keys). Stored locally in ~/.rayu/providers.json (0600)." : "Stored locally in ~/.rayu/providers.json (0600). Leave blank to skip."
|
|
587661
587924
|
}),
|
|
587662
587925
|
showMultiKeyUpsell ? /* @__PURE__ */ jsx_runtime324.jsxs(ThemedText, {
|
|
587663
587926
|
dimColor: true,
|
|
@@ -587670,9 +587933,9 @@ ${r2.output.slice(-200)}`);
|
|
|
587670
587933
|
/* @__PURE__ */ jsx_runtime324.jsx(TextInput, {
|
|
587671
587934
|
value: apiKey,
|
|
587672
587935
|
onChange: setApiKey,
|
|
587673
|
-
onSubmit: () => isBedrock ? setPhase("region") : finish(apiKey),
|
|
587936
|
+
onSubmit: () => isBedrock ? setPhase("region") : isOllamaCloud ? setPhase("ollamaCloudFetching") : finish(apiKey),
|
|
587674
587937
|
mask: "*",
|
|
587675
|
-
placeholder: isBedrock ? "ABSK..." : "sk-...",
|
|
587938
|
+
placeholder: isBedrock ? "ABSK..." : isOllamaCloud ? "your ollama.com API key" : "sk-...",
|
|
587676
587939
|
columns: 80,
|
|
587677
587940
|
cursorOffset: cursor,
|
|
587678
587941
|
onChangeCursorOffset: setCursor
|
|
@@ -593564,7 +593827,7 @@ function generateHtmlReport(data, insights) {
|
|
|
593564
593827
|
</html>`;
|
|
593565
593828
|
}
|
|
593566
593829
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
593567
|
-
const version3 = typeof MACRO !== "undefined" ? "1.4.
|
|
593830
|
+
const version3 = typeof MACRO !== "undefined" ? "1.4.469" : "unknown";
|
|
593568
593831
|
const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
|
|
593569
593832
|
const facets_summary = {
|
|
593570
593833
|
total: facets.size,
|
|
@@ -597474,7 +597737,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
597474
597737
|
init_settings2();
|
|
597475
597738
|
init_slowOperations();
|
|
597476
597739
|
init_uuid();
|
|
597477
|
-
VERSION6 = typeof MACRO !== "undefined" ? "1.4.
|
|
597740
|
+
VERSION6 = typeof MACRO !== "undefined" ? "1.4.469" : "unknown";
|
|
597478
597741
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
597479
597742
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
597480
597743
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -598692,7 +598955,7 @@ var init_filesystem = __esm(() => {
|
|
|
598692
598955
|
});
|
|
598693
598956
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
598694
598957
|
const nonce = randomBytes19(16).toString("hex");
|
|
598695
|
-
return join153(getClaudeTempDir(), "bundled-skills", "1.4.
|
|
598958
|
+
return join153(getClaudeTempDir(), "bundled-skills", "1.4.469", nonce);
|
|
598696
598959
|
});
|
|
598697
598960
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
598698
598961
|
});
|
|
@@ -603862,7 +604125,7 @@ __export(exports_update, {
|
|
|
603862
604125
|
update: () => update
|
|
603863
604126
|
});
|
|
603864
604127
|
async function update() {
|
|
603865
|
-
writeToStdout(`Current version: ${"1.4.
|
|
604128
|
+
writeToStdout(`Current version: ${"1.4.469"}
|
|
603866
604129
|
`);
|
|
603867
604130
|
const isBundled = isInBundledMode();
|
|
603868
604131
|
if (isBundled) {
|
|
@@ -603893,13 +604156,13 @@ Manual check: npm view ${"@rayu-dev/rayu-cli"} version
|
|
|
603893
604156
|
process.exit(1);
|
|
603894
604157
|
return;
|
|
603895
604158
|
}
|
|
603896
|
-
if (latestVersion === "1.4.
|
|
604159
|
+
if (latestVersion === "1.4.469") {
|
|
603897
604160
|
writeToStdout(source_default.green(`
|
|
603898
|
-
Rayu CLI is up to date (${"1.4.
|
|
604161
|
+
Rayu CLI is up to date (${"1.4.469"})
|
|
603899
604162
|
`));
|
|
603900
604163
|
process.exit(0);
|
|
603901
604164
|
}
|
|
603902
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.4.
|
|
604165
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.4.469"})
|
|
603903
604166
|
`);
|
|
603904
604167
|
writeToStdout(`Installing update...
|
|
603905
604168
|
|
|
@@ -603966,14 +604229,14 @@ async function updateNativeBinary() {
|
|
|
603966
604229
|
} catch {
|
|
603967
604230
|
latestVersion = "";
|
|
603968
604231
|
}
|
|
603969
|
-
if (latestVersion && latestVersion === "1.4.
|
|
604232
|
+
if (latestVersion && latestVersion === "1.4.469") {
|
|
603970
604233
|
writeToStdout(source_default.green(`
|
|
603971
|
-
Rayu CLI is up to date (1.4.
|
|
604234
|
+
Rayu CLI is up to date (1.4.469)
|
|
603972
604235
|
`));
|
|
603973
604236
|
process.exit(0);
|
|
603974
604237
|
}
|
|
603975
604238
|
if (latestVersion) {
|
|
603976
|
-
writeToStdout(`New version available: ${latestVersion} (current: 1.4.
|
|
604239
|
+
writeToStdout(`New version available: ${latestVersion} (current: 1.4.469)
|
|
603977
604240
|
`);
|
|
603978
604241
|
}
|
|
603979
604242
|
writeToStdout(`Downloading and installing update...
|
|
@@ -603988,13 +604251,13 @@ Rayu CLI is up to date (1.4.467)
|
|
|
603988
604251
|
return;
|
|
603989
604252
|
}
|
|
603990
604253
|
writeToStdout(source_default.green(`
|
|
603991
|
-
Rayu CLI is up to date (1.4.
|
|
604254
|
+
Rayu CLI is up to date (1.4.469)
|
|
603992
604255
|
`));
|
|
603993
604256
|
process.exit(0);
|
|
603994
604257
|
}
|
|
603995
604258
|
const updatedTo = result.latestVersion ?? latestVersion ?? "latest";
|
|
603996
604259
|
writeToStdout(source_default.green(`
|
|
603997
|
-
Successfully updated from 1.4.
|
|
604260
|
+
Successfully updated from 1.4.469 to ${updatedTo}
|
|
603998
604261
|
`));
|
|
603999
604262
|
writeToStdout(`Restart your terminal to use the new version.
|
|
604000
604263
|
`);
|
|
@@ -604059,7 +604322,7 @@ async function removeDataDir(dir) {
|
|
|
604059
604322
|
async function uninstall(args = []) {
|
|
604060
604323
|
const yes = args.includes("--yes") || args.includes("-y");
|
|
604061
604324
|
const keepData = args.includes("--keep-data");
|
|
604062
|
-
writeToStdout(`Uninstalling Rayu CLI (${"1.4.
|
|
604325
|
+
writeToStdout(`Uninstalling Rayu CLI (${"1.4.469"})...
|
|
604063
604326
|
`);
|
|
604064
604327
|
writeToStdout(`Running: npm uninstall -g ${"@rayu-dev/rayu-cli"}
|
|
604065
604328
|
|
|
@@ -604093,7 +604356,7 @@ This looks like a permissions error on npm's global install
|
|
|
604093
604356
|
return;
|
|
604094
604357
|
}
|
|
604095
604358
|
writeToStdout(source_default.green(`
|
|
604096
|
-
Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.4.
|
|
604359
|
+
Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.4.469"}
|
|
604097
604360
|
`));
|
|
604098
604361
|
const configDir = getRayuConfigHomeDir();
|
|
604099
604362
|
const dataExists = existsSync28(configDir);
|
|
@@ -604176,7 +604439,7 @@ function showFirstRunWelcome() {
|
|
|
604176
604439
|
`);
|
|
604177
604440
|
try {
|
|
604178
604441
|
mkdirSync16(getRayuConfigHomeDir(), { recursive: true });
|
|
604179
|
-
writeFileSync18(markerPath(), "1.4.
|
|
604442
|
+
writeFileSync18(markerPath(), "1.4.469", "utf8");
|
|
604180
604443
|
} catch {}
|
|
604181
604444
|
}
|
|
604182
604445
|
var init_firstRun = __esm(() => {
|
|
@@ -620362,7 +620625,7 @@ async function initializeBetaTracing(resource) {
|
|
|
620362
620625
|
});
|
|
620363
620626
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
620364
620627
|
setLoggerProvider(loggerProvider);
|
|
620365
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.
|
|
620628
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.469");
|
|
620366
620629
|
setEventLogger(eventLogger);
|
|
620367
620630
|
process.on("beforeExit", async () => {
|
|
620368
620631
|
await loggerProvider?.forceFlush();
|
|
@@ -620402,7 +620665,7 @@ async function initializeTelemetry() {
|
|
|
620402
620665
|
const platform4 = getPlatform();
|
|
620403
620666
|
const baseAttributes = {
|
|
620404
620667
|
[import_semantic_conventions.ATTR_SERVICE_NAME]: "claude-code",
|
|
620405
|
-
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.4.
|
|
620668
|
+
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.4.469"
|
|
620406
620669
|
};
|
|
620407
620670
|
if (platform4 === "wsl") {
|
|
620408
620671
|
const wslVersion = getWslVersion();
|
|
@@ -620447,7 +620710,7 @@ async function initializeTelemetry() {
|
|
|
620447
620710
|
} catch {}
|
|
620448
620711
|
};
|
|
620449
620712
|
registerCleanup(shutdownTelemetry2);
|
|
620450
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "1.4.
|
|
620713
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "1.4.469");
|
|
620451
620714
|
}
|
|
620452
620715
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
620453
620716
|
resource,
|
|
@@ -620467,7 +620730,7 @@ async function initializeTelemetry() {
|
|
|
620467
620730
|
});
|
|
620468
620731
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
620469
620732
|
setLoggerProvider(loggerProvider);
|
|
620470
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.
|
|
620733
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.469");
|
|
620471
620734
|
setEventLogger(eventLogger);
|
|
620472
620735
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
620473
620736
|
process.on("beforeExit", async () => {
|
|
@@ -620529,7 +620792,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
620529
620792
|
}
|
|
620530
620793
|
};
|
|
620531
620794
|
registerCleanup(shutdownTelemetry);
|
|
620532
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "1.4.
|
|
620795
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "1.4.469");
|
|
620533
620796
|
}
|
|
620534
620797
|
async function flushTelemetry() {
|
|
620535
620798
|
const meterProvider = getMeterProvider();
|
|
@@ -622031,7 +622294,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
622031
622294
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
622032
622295
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
622033
622296
|
betas: getSdkBetas(),
|
|
622034
|
-
claude_code_version: "1.4.
|
|
622297
|
+
claude_code_version: "1.4.469",
|
|
622035
622298
|
output_style: outputStyle2,
|
|
622036
622299
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
622037
622300
|
skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -638362,7 +638625,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
638362
638625
|
function getSemverPart(version3) {
|
|
638363
638626
|
return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
|
|
638364
638627
|
}
|
|
638365
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.4.
|
|
638628
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.4.469") {
|
|
638366
638629
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react216.useState(() => getSemverPart(initialVersion));
|
|
638367
638630
|
if (!updatedVersion) {
|
|
638368
638631
|
return null;
|
|
@@ -638402,7 +638665,7 @@ function AutoUpdater({
|
|
|
638402
638665
|
return;
|
|
638403
638666
|
}
|
|
638404
638667
|
if (false) {}
|
|
638405
|
-
const currentVersion = "1.4.
|
|
638668
|
+
const currentVersion = "1.4.469";
|
|
638406
638669
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
638407
638670
|
let latestVersion = await getLatestVersion(channel2);
|
|
638408
638671
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -638615,12 +638878,12 @@ function NativeAutoUpdater({
|
|
|
638615
638878
|
logEvent("tengu_native_auto_updater_start", {});
|
|
638616
638879
|
try {
|
|
638617
638880
|
const maxVersion = await getMaxVersion();
|
|
638618
|
-
if (maxVersion && gt("1.4.
|
|
638881
|
+
if (maxVersion && gt("1.4.469", maxVersion)) {
|
|
638619
638882
|
const msg = await getMaxVersionMessage();
|
|
638620
638883
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
638621
638884
|
}
|
|
638622
638885
|
const result = await installLatest(channel2);
|
|
638623
|
-
const currentVersion = "1.4.
|
|
638886
|
+
const currentVersion = "1.4.469";
|
|
638624
638887
|
const latencyMs = Date.now() - startTime2;
|
|
638625
638888
|
if (result.lockFailed) {
|
|
638626
638889
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -638757,17 +639020,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
638757
639020
|
const maxVersion = await getMaxVersion();
|
|
638758
639021
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
638759
639022
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
638760
|
-
if (gte("1.4.
|
|
638761
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.4.
|
|
639023
|
+
if (gte("1.4.469", maxVersion)) {
|
|
639024
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.4.469"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
638762
639025
|
setUpdateAvailable(false);
|
|
638763
639026
|
return;
|
|
638764
639027
|
}
|
|
638765
639028
|
latest = maxVersion;
|
|
638766
639029
|
}
|
|
638767
|
-
const hasUpdate = latest && !gte("1.4.
|
|
639030
|
+
const hasUpdate = latest && !gte("1.4.469", latest) && !shouldSkipVersion(latest);
|
|
638768
639031
|
setUpdateAvailable(!!hasUpdate);
|
|
638769
639032
|
if (hasUpdate) {
|
|
638770
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.4.
|
|
639033
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.4.469"} -> ${latest}`);
|
|
638771
639034
|
}
|
|
638772
639035
|
};
|
|
638773
639036
|
$3[0] = t1;
|
|
@@ -638801,7 +639064,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
638801
639064
|
wrap: "truncate",
|
|
638802
639065
|
children: [
|
|
638803
639066
|
"currentVersion: ",
|
|
638804
|
-
"1.4.
|
|
639067
|
+
"1.4.469"
|
|
638805
639068
|
]
|
|
638806
639069
|
});
|
|
638807
639070
|
$3[3] = verbose;
|
|
@@ -646965,7 +647228,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
646965
647228
|
project_dir: getOriginalCwd(),
|
|
646966
647229
|
added_dirs: addedDirs
|
|
646967
647230
|
},
|
|
646968
|
-
version: "1.4.
|
|
647231
|
+
version: "1.4.469",
|
|
646969
647232
|
output_style: {
|
|
646970
647233
|
name: outputStyleName
|
|
646971
647234
|
},
|
|
@@ -649144,7 +649407,7 @@ var init_user = __esm(() => {
|
|
|
649144
649407
|
deviceId,
|
|
649145
649408
|
sessionId: getSessionId(),
|
|
649146
649409
|
email: getEmail(),
|
|
649147
|
-
appVersion: "1.4.
|
|
649410
|
+
appVersion: "1.4.469",
|
|
649148
649411
|
platform: getHostPlatformForAnalytics(),
|
|
649149
649412
|
organizationUuid,
|
|
649150
649413
|
accountUuid,
|
|
@@ -658583,7 +658846,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
658583
658846
|
} catch {}
|
|
658584
658847
|
const data = {
|
|
658585
658848
|
trigger,
|
|
658586
|
-
version: "1.4.
|
|
658849
|
+
version: "1.4.469",
|
|
658587
658850
|
platform: process.platform,
|
|
658588
658851
|
transcript,
|
|
658589
658852
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -670550,7 +670813,7 @@ function WelcomeV2() {
|
|
|
670550
670813
|
dimColor: true,
|
|
670551
670814
|
children: [
|
|
670552
670815
|
"v",
|
|
670553
|
-
"1.4.
|
|
670816
|
+
"1.4.469"
|
|
670554
670817
|
]
|
|
670555
670818
|
})
|
|
670556
670819
|
]
|
|
@@ -671557,7 +671820,7 @@ function completeOnboarding() {
|
|
|
671557
671820
|
saveGlobalConfig((current) => ({
|
|
671558
671821
|
...current,
|
|
671559
671822
|
hasCompletedOnboarding: true,
|
|
671560
|
-
lastOnboardingVersion: "1.4.
|
|
671823
|
+
lastOnboardingVersion: "1.4.469"
|
|
671561
671824
|
}));
|
|
671562
671825
|
}
|
|
671563
671826
|
function showDialog(root2, renderer) {
|
|
@@ -676490,7 +676753,7 @@ function appendToLog(path29, message) {
|
|
|
676490
676753
|
cwd: getFsImplementation().cwd(),
|
|
676491
676754
|
userType: "external",
|
|
676492
676755
|
sessionId: getSessionId(),
|
|
676493
|
-
version: "1.4.
|
|
676756
|
+
version: "1.4.469"
|
|
676494
676757
|
};
|
|
676495
676758
|
getLogWriter(path29).write(messageWithTimestamp);
|
|
676496
676759
|
}
|
|
@@ -680595,8 +680858,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
680595
680858
|
}
|
|
680596
680859
|
async function checkEnvLessBridgeMinVersion() {
|
|
680597
680860
|
const cfg = await getEnvLessBridgeConfig();
|
|
680598
|
-
if (cfg.min_version && lt("1.4.
|
|
680599
|
-
return `Your version of RAYU (${"1.4.
|
|
680861
|
+
if (cfg.min_version && lt("1.4.469", cfg.min_version)) {
|
|
680862
|
+
return `Your version of RAYU (${"1.4.469"}) is too old for Remote Control.
|
|
680600
680863
|
Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
|
|
680601
680864
|
}
|
|
680602
680865
|
return null;
|
|
@@ -681069,7 +681332,7 @@ async function initBridgeCore(params) {
|
|
|
681069
681332
|
const rawApi = createBridgeApiClient({
|
|
681070
681333
|
baseUrl,
|
|
681071
681334
|
getAccessToken,
|
|
681072
|
-
runnerVersion: "1.4.
|
|
681335
|
+
runnerVersion: "1.4.469",
|
|
681073
681336
|
onDebug: logForDebugging,
|
|
681074
681337
|
onAuth401,
|
|
681075
681338
|
getTrustedDeviceToken
|
|
@@ -686424,7 +686687,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
686424
686687
|
setCwd(cwd3);
|
|
686425
686688
|
const server = new Server({
|
|
686426
686689
|
name: "claude/tengu",
|
|
686427
|
-
version: "1.4.
|
|
686690
|
+
version: "1.4.469"
|
|
686428
686691
|
}, {
|
|
686429
686692
|
capabilities: {
|
|
686430
686693
|
tools: {}
|
|
@@ -688950,7 +689213,7 @@ ${customInstructions}` : customInstructions;
|
|
|
688950
689213
|
}
|
|
688951
689214
|
}
|
|
688952
689215
|
logForDiagnosticsNoPII("info", "started", {
|
|
688953
|
-
version: "1.4.
|
|
689216
|
+
version: "1.4.469",
|
|
688954
689217
|
is_native_binary: isInBundledMode()
|
|
688955
689218
|
});
|
|
688956
689219
|
registerCleanup(async () => {
|
|
@@ -689669,7 +689932,7 @@ Usage: rayu --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
689669
689932
|
pendingHookMessages
|
|
689670
689933
|
}, renderAndRun);
|
|
689671
689934
|
}
|
|
689672
|
-
}).version(`1.4.
|
|
689935
|
+
}).version(`1.4.469 (${PRODUCT_NAME})`, "-v, --version", "Output the version number");
|
|
689673
689936
|
program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
689674
689937
|
program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
689675
689938
|
if (canUserConfigureAdvisor()) {
|
|
@@ -690129,7 +690392,7 @@ if (false) {}
|
|
|
690129
690392
|
async function main2() {
|
|
690130
690393
|
const args = process.argv.slice(2);
|
|
690131
690394
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
690132
|
-
console.log(`${"1.4.
|
|
690395
|
+
console.log(`${"1.4.469"} (Rayu-CLI)`);
|
|
690133
690396
|
return;
|
|
690134
690397
|
}
|
|
690135
690398
|
if (!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE)) {
|