@rayu-dev/rayu-cli 1.1.6 → 1.1.8
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 +225 -172
- package/package.json +1 -1
- package/scripts/postinstall.cjs +3 -0
package/dist/rayu.js
CHANGED
|
@@ -208302,7 +208302,7 @@ var init_auth2 = __esm(() => {
|
|
|
208302
208302
|
|
|
208303
208303
|
// src/utils/userAgent.ts
|
|
208304
208304
|
function getClaudeCodeUserAgent() {
|
|
208305
|
-
return `claude-code/${"1.1.
|
|
208305
|
+
return `claude-code/${"1.1.8"}`;
|
|
208306
208306
|
}
|
|
208307
208307
|
|
|
208308
208308
|
// src/utils/workloadContext.ts
|
|
@@ -208324,7 +208324,7 @@ function getUserAgent() {
|
|
|
208324
208324
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
208325
208325
|
const workload = getWorkload();
|
|
208326
208326
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
208327
|
-
return `claude-cli/${"1.1.
|
|
208327
|
+
return `claude-cli/${"1.1.8"} (${"external"}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
208328
208328
|
}
|
|
208329
208329
|
function getMCPUserAgent() {
|
|
208330
208330
|
const parts = [];
|
|
@@ -208338,7 +208338,7 @@ function getMCPUserAgent() {
|
|
|
208338
208338
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
208339
208339
|
}
|
|
208340
208340
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
208341
|
-
return `claude-code/${"1.1.
|
|
208341
|
+
return `claude-code/${"1.1.8"}${suffix}`;
|
|
208342
208342
|
}
|
|
208343
208343
|
function getWebFetchUserAgent() {
|
|
208344
208344
|
return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -208476,7 +208476,7 @@ var init_user = __esm(() => {
|
|
|
208476
208476
|
deviceId,
|
|
208477
208477
|
sessionId: getSessionId(),
|
|
208478
208478
|
email: getEmail(),
|
|
208479
|
-
appVersion: "1.1.
|
|
208479
|
+
appVersion: "1.1.8",
|
|
208480
208480
|
platform: getHostPlatformForAnalytics(),
|
|
208481
208481
|
organizationUuid,
|
|
208482
208482
|
accountUuid,
|
|
@@ -216397,7 +216397,7 @@ var init_metadata = __esm(() => {
|
|
|
216397
216397
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
216398
216398
|
WHITESPACE_REGEX = /\s+/;
|
|
216399
216399
|
getVersionBase = memoize_default(() => {
|
|
216400
|
-
const match = "1.1.
|
|
216400
|
+
const match = "1.1.8".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
216401
216401
|
return match ? match[0] : undefined;
|
|
216402
216402
|
});
|
|
216403
216403
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -216437,7 +216437,7 @@ var init_metadata = __esm(() => {
|
|
|
216437
216437
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
216438
216438
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
216439
216439
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
216440
|
-
version: "1.1.
|
|
216440
|
+
version: "1.1.8",
|
|
216441
216441
|
versionBase: getVersionBase(),
|
|
216442
216442
|
buildTime: "",
|
|
216443
216443
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
@@ -217057,7 +217057,7 @@ function initialize1PEventLogging() {
|
|
|
217057
217057
|
const platform3 = getPlatform();
|
|
217058
217058
|
const attributes = {
|
|
217059
217059
|
[import_semantic_conventions.ATTR_SERVICE_NAME]: "claude-code",
|
|
217060
|
-
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.
|
|
217060
|
+
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.8"
|
|
217061
217061
|
};
|
|
217062
217062
|
if (platform3 === "wsl") {
|
|
217063
217063
|
const wslVersion = getWslVersion();
|
|
@@ -217084,7 +217084,7 @@ function initialize1PEventLogging() {
|
|
|
217084
217084
|
})
|
|
217085
217085
|
]
|
|
217086
217086
|
});
|
|
217087
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "1.1.
|
|
217087
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "1.1.8");
|
|
217088
217088
|
}
|
|
217089
217089
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
217090
217090
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -218918,7 +218918,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
218918
218918
|
if (!isAttributionHeaderEnabled()) {
|
|
218919
218919
|
return "";
|
|
218920
218920
|
}
|
|
218921
|
-
const version5 = `${"1.1.
|
|
218921
|
+
const version5 = `${"1.1.8"}.${fingerprint}`;
|
|
218922
218922
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
218923
218923
|
const cch = "";
|
|
218924
218924
|
const workload = getWorkload();
|
|
@@ -398449,7 +398449,7 @@ function getTelemetryAttributes() {
|
|
|
398449
398449
|
attributes["session.id"] = sessionId;
|
|
398450
398450
|
}
|
|
398451
398451
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
398452
|
-
attributes["app.version"] = "1.1.
|
|
398452
|
+
attributes["app.version"] = "1.1.8";
|
|
398453
398453
|
}
|
|
398454
398454
|
const oauthAccount = getOauthAccountInfo();
|
|
398455
398455
|
if (oauthAccount) {
|
|
@@ -429775,7 +429775,7 @@ function getInstallationEnv() {
|
|
|
429775
429775
|
return;
|
|
429776
429776
|
}
|
|
429777
429777
|
function getClaudeCodeVersion() {
|
|
429778
|
-
return "1.1.
|
|
429778
|
+
return "1.1.8";
|
|
429779
429779
|
}
|
|
429780
429780
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
429781
429781
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -435340,7 +435340,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
435340
435340
|
const client5 = new Client({
|
|
435341
435341
|
name: "claude-code",
|
|
435342
435342
|
title: "RAYU",
|
|
435343
|
-
version: "1.1.
|
|
435343
|
+
version: "1.1.8",
|
|
435344
435344
|
description: "Anthropic's agentic coding tool",
|
|
435345
435345
|
websiteUrl: PRODUCT_URL
|
|
435346
435346
|
}, {
|
|
@@ -435694,7 +435694,7 @@ var init_client10 = __esm(() => {
|
|
|
435694
435694
|
const client5 = new Client({
|
|
435695
435695
|
name: "claude-code",
|
|
435696
435696
|
title: "RAYU",
|
|
435697
|
-
version: "1.1.
|
|
435697
|
+
version: "1.1.8",
|
|
435698
435698
|
description: "Anthropic's agentic coding tool",
|
|
435699
435699
|
websiteUrl: PRODUCT_URL
|
|
435700
435700
|
}, {
|
|
@@ -453749,7 +453749,7 @@ async function initializeBetaTracing(resource) {
|
|
|
453749
453749
|
});
|
|
453750
453750
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
453751
453751
|
setLoggerProvider(loggerProvider);
|
|
453752
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.1.
|
|
453752
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.1.8");
|
|
453753
453753
|
setEventLogger(eventLogger);
|
|
453754
453754
|
process.on("beforeExit", async () => {
|
|
453755
453755
|
await loggerProvider?.forceFlush();
|
|
@@ -453789,7 +453789,7 @@ async function initializeTelemetry() {
|
|
|
453789
453789
|
const platform5 = getPlatform();
|
|
453790
453790
|
const baseAttributes = {
|
|
453791
453791
|
[import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
|
|
453792
|
-
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.
|
|
453792
|
+
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.8"
|
|
453793
453793
|
};
|
|
453794
453794
|
if (platform5 === "wsl") {
|
|
453795
453795
|
const wslVersion = getWslVersion();
|
|
@@ -453834,7 +453834,7 @@ async function initializeTelemetry() {
|
|
|
453834
453834
|
} catch {}
|
|
453835
453835
|
};
|
|
453836
453836
|
registerCleanup(shutdownTelemetry2);
|
|
453837
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.
|
|
453837
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.8");
|
|
453838
453838
|
}
|
|
453839
453839
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
453840
453840
|
resource,
|
|
@@ -453854,7 +453854,7 @@ async function initializeTelemetry() {
|
|
|
453854
453854
|
});
|
|
453855
453855
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
453856
453856
|
setLoggerProvider(loggerProvider);
|
|
453857
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.1.
|
|
453857
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.1.8");
|
|
453858
453858
|
setEventLogger(eventLogger);
|
|
453859
453859
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
453860
453860
|
process.on("beforeExit", async () => {
|
|
@@ -453916,7 +453916,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
453916
453916
|
}
|
|
453917
453917
|
};
|
|
453918
453918
|
registerCleanup(shutdownTelemetry);
|
|
453919
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "1.1.
|
|
453919
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "1.1.8");
|
|
453920
453920
|
}
|
|
453921
453921
|
async function flushTelemetry() {
|
|
453922
453922
|
const meterProvider = getMeterProvider();
|
|
@@ -454584,9 +454584,9 @@ async function assertMinVersion() {
|
|
|
454584
454584
|
if (false) {}
|
|
454585
454585
|
try {
|
|
454586
454586
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
454587
|
-
if (versionConfig.minVersion && lt("1.1.
|
|
454587
|
+
if (versionConfig.minVersion && lt("1.1.8", versionConfig.minVersion)) {
|
|
454588
454588
|
console.error(`
|
|
454589
|
-
It looks like your version of RAYU (${"1.1.
|
|
454589
|
+
It looks like your version of RAYU (${"1.1.8"}) needs an update.
|
|
454590
454590
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
454591
454591
|
|
|
454592
454592
|
To update, please run:
|
|
@@ -454798,7 +454798,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
454798
454798
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
454799
454799
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
454800
454800
|
pid: process.pid,
|
|
454801
|
-
currentVersion: "1.1.
|
|
454801
|
+
currentVersion: "1.1.8"
|
|
454802
454802
|
});
|
|
454803
454803
|
return "in_progress";
|
|
454804
454804
|
}
|
|
@@ -454807,7 +454807,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
454807
454807
|
if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
|
|
454808
454808
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
454809
454809
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
454810
|
-
currentVersion: "1.1.
|
|
454810
|
+
currentVersion: "1.1.8"
|
|
454811
454811
|
});
|
|
454812
454812
|
console.error(`
|
|
454813
454813
|
Error: Windows NPM detected in WSL
|
|
@@ -455342,7 +455342,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
455342
455342
|
}
|
|
455343
455343
|
async function getDoctorDiagnostic() {
|
|
455344
455344
|
const installationType = await getCurrentInstallationType();
|
|
455345
|
-
const version5 = typeof MACRO !== "undefined" ? "1.1.
|
|
455345
|
+
const version5 = typeof MACRO !== "undefined" ? "1.1.8" : "unknown";
|
|
455346
455346
|
const installationPath = await getInstallationPath();
|
|
455347
455347
|
const invokedBinary = getInvokedBinary();
|
|
455348
455348
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -456166,8 +456166,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
456166
456166
|
const maxVersion = await getMaxVersion();
|
|
456167
456167
|
if (maxVersion && gt(version5, maxVersion)) {
|
|
456168
456168
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version5} to ${maxVersion}`);
|
|
456169
|
-
if (gte("1.1.
|
|
456170
|
-
logForDebugging(`Native installer: current version ${"1.1.
|
|
456169
|
+
if (gte("1.1.8", maxVersion)) {
|
|
456170
|
+
logForDebugging(`Native installer: current version ${"1.1.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
456171
456171
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
456172
456172
|
latency_ms: Date.now() - startTime,
|
|
456173
456173
|
max_version: maxVersion,
|
|
@@ -456178,7 +456178,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
456178
456178
|
version5 = maxVersion;
|
|
456179
456179
|
}
|
|
456180
456180
|
}
|
|
456181
|
-
if (!forceReinstall && version5 === "1.1.
|
|
456181
|
+
if (!forceReinstall && version5 === "1.1.8" && await versionIsAvailable(version5) && await isPossibleClaudeBinary(executablePath)) {
|
|
456182
456182
|
logForDebugging(`Found ${version5} at ${executablePath}, skipping install`);
|
|
456183
456183
|
logEvent("tengu_native_update_complete", {
|
|
456184
456184
|
latency_ms: Date.now() - startTime,
|
|
@@ -570004,7 +570004,7 @@ function Feedback({
|
|
|
570004
570004
|
platform: env4.platform,
|
|
570005
570005
|
gitRepo: envInfo.isGit,
|
|
570006
570006
|
terminal: env4.terminal,
|
|
570007
|
-
version: "1.1.
|
|
570007
|
+
version: "1.1.8",
|
|
570008
570008
|
transcript: normalizeMessagesForAPI(messages),
|
|
570009
570009
|
errors: sanitizedErrors,
|
|
570010
570010
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -570196,7 +570196,7 @@ function Feedback({
|
|
|
570196
570196
|
", ",
|
|
570197
570197
|
env4.terminal,
|
|
570198
570198
|
", v",
|
|
570199
|
-
"1.1.
|
|
570199
|
+
"1.1.8"
|
|
570200
570200
|
]
|
|
570201
570201
|
}, undefined, true, undefined, this)
|
|
570202
570202
|
]
|
|
@@ -570302,7 +570302,7 @@ ${sanitizedDescription}
|
|
|
570302
570302
|
` + `**Environment Info**
|
|
570303
570303
|
` + `- Platform: ${env4.platform}
|
|
570304
570304
|
` + `- Terminal: ${env4.terminal}
|
|
570305
|
-
` + `- Version: ${"1.1.
|
|
570305
|
+
` + `- Version: ${"1.1.8"}
|
|
570306
570306
|
` + `- Feedback ID: ${feedbackId}
|
|
570307
570307
|
` + `
|
|
570308
570308
|
**Errors**
|
|
@@ -573402,7 +573402,7 @@ function buildPrimarySection() {
|
|
|
573402
573402
|
}, undefined, false, undefined, this);
|
|
573403
573403
|
return [{
|
|
573404
573404
|
label: "Version",
|
|
573405
|
-
value: "1.1.
|
|
573405
|
+
value: "1.1.8"
|
|
573406
573406
|
}, {
|
|
573407
573407
|
label: "Session name",
|
|
573408
573408
|
value: nameValue
|
|
@@ -574885,7 +574885,7 @@ function ClaudeMdExternalIncludesDialog(t0) {
|
|
|
574885
574885
|
"Important: Only use RAYU with files you trust. Accessing untrusted files may pose security risks",
|
|
574886
574886
|
" ",
|
|
574887
574887
|
/* @__PURE__ */ jsx_dev_runtime177.jsxDEV(Link, {
|
|
574888
|
-
url: "https://
|
|
574888
|
+
url: "https://github.com/Choeng-Rayu/rayu-cli"
|
|
574889
574889
|
}, undefined, false, undefined, this),
|
|
574890
574890
|
" "
|
|
574891
574891
|
]
|
|
@@ -577153,7 +577153,7 @@ function Config({
|
|
|
577153
577153
|
}
|
|
577154
577154
|
}, undefined, false, undefined, this)
|
|
577155
577155
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime182.jsxDEV(ChannelDowngradeDialog, {
|
|
577156
|
-
currentVersion: "1.1.
|
|
577156
|
+
currentVersion: "1.1.8",
|
|
577157
577157
|
onChoice: (choice) => {
|
|
577158
577158
|
setShowSubmenu(null);
|
|
577159
577159
|
setTabsHidden(false);
|
|
@@ -577165,7 +577165,7 @@ function Config({
|
|
|
577165
577165
|
autoUpdatesChannel: "stable"
|
|
577166
577166
|
};
|
|
577167
577167
|
if (choice === "stay") {
|
|
577168
|
-
newSettings.minimumVersion = "1.1.
|
|
577168
|
+
newSettings.minimumVersion = "1.1.8";
|
|
577169
577169
|
}
|
|
577170
577170
|
updateSettingsForSource("userSettings", newSettings);
|
|
577171
577171
|
setSettingsData((prev_27) => ({
|
|
@@ -585166,7 +585166,7 @@ function HelpV2(t0) {
|
|
|
585166
585166
|
let t6;
|
|
585167
585167
|
if ($3[31] !== tabs) {
|
|
585168
585168
|
t6 = /* @__PURE__ */ jsx_dev_runtime209.jsxDEV(Tabs, {
|
|
585169
|
-
title: `Rayu-CLI v${"1.1.
|
|
585169
|
+
title: `Rayu-CLI v${"1.1.8"}`,
|
|
585170
585170
|
color: "professionalBlue",
|
|
585171
585171
|
defaultTab: "general",
|
|
585172
585172
|
children: tabs
|
|
@@ -607979,7 +607979,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
607979
607979
|
return [];
|
|
607980
607980
|
}
|
|
607981
607981
|
}
|
|
607982
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.
|
|
607982
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.8") {
|
|
607983
607983
|
if (false) {}
|
|
607984
607984
|
const cachedChangelog = await getStoredChangelog();
|
|
607985
607985
|
if (lastSeenVersion !== currentVersion || !cachedChangelog) {
|
|
@@ -607992,7 +607992,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.6") {
|
|
|
607992
607992
|
releaseNotes
|
|
607993
607993
|
};
|
|
607994
607994
|
}
|
|
607995
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.
|
|
607995
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.8") {
|
|
607996
607996
|
if (false) {}
|
|
607997
607997
|
const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
|
|
607998
607998
|
return {
|
|
@@ -609178,7 +609178,7 @@ function getRecentActivitySync() {
|
|
|
609178
609178
|
return cachedActivity;
|
|
609179
609179
|
}
|
|
609180
609180
|
function getLogoDisplayData() {
|
|
609181
|
-
const version5 = process.env.DEMO_VERSION ?? "1.1.
|
|
609181
|
+
const version5 = process.env.DEMO_VERSION ?? "1.1.8";
|
|
609182
609182
|
const serverUrl = getDirectConnectServerUrl();
|
|
609183
609183
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
609184
609184
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -610431,7 +610431,7 @@ function LogoV2() {
|
|
|
610431
610431
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
610432
610432
|
t2 = () => {
|
|
610433
610433
|
const currentConfig = getGlobalConfig();
|
|
610434
|
-
if (currentConfig.lastReleaseNotesSeen === "1.1.
|
|
610434
|
+
if (currentConfig.lastReleaseNotesSeen === "1.1.8") {
|
|
610435
610435
|
return;
|
|
610436
610436
|
}
|
|
610437
610437
|
saveGlobalConfig(_temp328);
|
|
@@ -611107,12 +611107,12 @@ function LogoV2() {
|
|
|
611107
611107
|
return t41;
|
|
611108
611108
|
}
|
|
611109
611109
|
function _temp328(current) {
|
|
611110
|
-
if (current.lastReleaseNotesSeen === "1.1.
|
|
611110
|
+
if (current.lastReleaseNotesSeen === "1.1.8") {
|
|
611111
611111
|
return current;
|
|
611112
611112
|
}
|
|
611113
611113
|
return {
|
|
611114
611114
|
...current,
|
|
611115
|
-
lastReleaseNotesSeen: "1.1.
|
|
611115
|
+
lastReleaseNotesSeen: "1.1.8"
|
|
611116
611116
|
};
|
|
611117
611117
|
}
|
|
611118
611118
|
function _temp243(s_0) {
|
|
@@ -637503,7 +637503,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
637503
637503
|
smapsRollup,
|
|
637504
637504
|
platform: process.platform,
|
|
637505
637505
|
nodeVersion: process.version,
|
|
637506
|
-
ccVersion: "1.1.
|
|
637506
|
+
ccVersion: "1.1.8"
|
|
637507
637507
|
};
|
|
637508
637508
|
}
|
|
637509
637509
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -638031,7 +638031,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
638031
638031
|
var call59 = async () => {
|
|
638032
638032
|
return {
|
|
638033
638033
|
type: "text",
|
|
638034
|
-
value: "1.1.
|
|
638034
|
+
value: "1.1.8"
|
|
638035
638035
|
};
|
|
638036
638036
|
}, version5, version_default;
|
|
638037
638037
|
var init_version = __esm(() => {
|
|
@@ -647425,7 +647425,7 @@ function generateHtmlReport(data, insights) {
|
|
|
647425
647425
|
</html>`;
|
|
647426
647426
|
}
|
|
647427
647427
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
647428
|
-
const version6 = typeof MACRO !== "undefined" ? "1.1.
|
|
647428
|
+
const version6 = typeof MACRO !== "undefined" ? "1.1.8" : "unknown";
|
|
647429
647429
|
const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
|
|
647430
647430
|
const facets_summary = {
|
|
647431
647431
|
total: facets.size,
|
|
@@ -651409,7 +651409,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
651409
651409
|
init_settings2();
|
|
651410
651410
|
init_slowOperations();
|
|
651411
651411
|
init_uuid();
|
|
651412
|
-
VERSION6 = typeof MACRO !== "undefined" ? "1.1.
|
|
651412
|
+
VERSION6 = typeof MACRO !== "undefined" ? "1.1.8" : "unknown";
|
|
651413
651413
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
651414
651414
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
651415
651415
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -652630,7 +652630,7 @@ var init_filesystem = __esm(() => {
|
|
|
652630
652630
|
});
|
|
652631
652631
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
652632
652632
|
const nonce = randomBytes19(16).toString("hex");
|
|
652633
|
-
return join150(getClaudeTempDir(), "bundled-skills", "1.1.
|
|
652633
|
+
return join150(getClaudeTempDir(), "bundled-skills", "1.1.8", nonce);
|
|
652634
652634
|
});
|
|
652635
652635
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
652636
652636
|
});
|
|
@@ -658119,7 +658119,7 @@ function getFunctionResultClearingSection(model) {
|
|
|
658119
658119
|
|
|
658120
658120
|
Old tool results will be automatically cleared from context to free up space. The ${config5.keepRecent} most recent results are always kept.`;
|
|
658121
658121
|
}
|
|
658122
|
-
var getCachedMCConfigForFRC = null, DISCOVER_SKILLS_TOOL_NAME = null, SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__",
|
|
658122
|
+
var getCachedMCConfigForFRC = null, DISCOVER_SKILLS_TOOL_NAME = null, SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__", CLAUDE_4_5_OR_4_6_MODEL_IDS, DEFAULT_AGENT_PROMPT = `You are an agent for the official CLI powered by Choeng Rayu. Given the user's message, you should use the tools available to complete the task. Complete the task fully—don't gold-plate, but don't leave it half-done. When you complete the task, respond with a concise report covering what was done and any key findings — the caller will relay this to the user, so it only needs the essentials.`, SUMMARIZE_TOOL_RESULTS_SECTION = `When working with tool results, write down any important information you might need later in your response, as the original tool result may be cleared later.`;
|
|
658123
658123
|
var init_prompts4 = __esm(() => {
|
|
658124
658124
|
init_env();
|
|
658125
658125
|
init_git();
|
|
@@ -658603,7 +658603,7 @@ function computeFingerprint(messageText, version6) {
|
|
|
658603
658603
|
}
|
|
658604
658604
|
function computeFingerprintFromMessages(messages) {
|
|
658605
658605
|
const firstMessageText = extractFirstMessageText(messages);
|
|
658606
|
-
return computeFingerprint(firstMessageText, "1.1.
|
|
658606
|
+
return computeFingerprint(firstMessageText, "1.1.8");
|
|
658607
658607
|
}
|
|
658608
658608
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
658609
658609
|
var init_fingerprint = () => {};
|
|
@@ -660445,7 +660445,7 @@ async function sideQuery(opts) {
|
|
|
660445
660445
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
660446
660446
|
}
|
|
660447
660447
|
const messageText = extractFirstUserMessageText(messages);
|
|
660448
|
-
const fingerprint = computeFingerprint(messageText, "1.1.
|
|
660448
|
+
const fingerprint = computeFingerprint(messageText, "1.1.8");
|
|
660449
660449
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
660450
660450
|
const systemBlocks = [
|
|
660451
660451
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -661046,6 +661046,55 @@ var init_chromeNativeHost = __esm(() => {
|
|
|
661046
661046
|
}).passthrough());
|
|
661047
661047
|
});
|
|
661048
661048
|
|
|
661049
|
+
// src/utils/firstRun.ts
|
|
661050
|
+
var exports_firstRun = {};
|
|
661051
|
+
__export(exports_firstRun, {
|
|
661052
|
+
showFirstRunWelcome: () => showFirstRunWelcome
|
|
661053
|
+
});
|
|
661054
|
+
import { existsSync as existsSync17, mkdirSync as mkdirSync11, writeFileSync as writeFileSync13 } from "node:fs";
|
|
661055
|
+
import { join as join154 } from "node:path";
|
|
661056
|
+
function markerPath() {
|
|
661057
|
+
return join154(getClaudeConfigHomeDir(), ".installed");
|
|
661058
|
+
}
|
|
661059
|
+
function showFirstRunWelcome() {
|
|
661060
|
+
try {
|
|
661061
|
+
if (existsSync17(markerPath())) {
|
|
661062
|
+
return;
|
|
661063
|
+
}
|
|
661064
|
+
} catch {
|
|
661065
|
+
return;
|
|
661066
|
+
}
|
|
661067
|
+
const lines2 = [
|
|
661068
|
+
"",
|
|
661069
|
+
" +--------------------------------------------------+",
|
|
661070
|
+
" | |",
|
|
661071
|
+
" | Rayu CLI installed successfully! |",
|
|
661072
|
+
" | |",
|
|
661073
|
+
" | Run rayu to start an AI session |",
|
|
661074
|
+
" | |",
|
|
661075
|
+
" +--------------------------------------------------+",
|
|
661076
|
+
"",
|
|
661077
|
+
" Quick reference:",
|
|
661078
|
+
" rayu Start an interactive AI session",
|
|
661079
|
+
" rayu update Update to the latest version",
|
|
661080
|
+
" rayu uninstall Remove Rayu CLI from your system",
|
|
661081
|
+
" rayu --help See all commands and options",
|
|
661082
|
+
"",
|
|
661083
|
+
" Docs & issues: https://github.com/Choeng-Rayu/rayu-cli",
|
|
661084
|
+
""
|
|
661085
|
+
];
|
|
661086
|
+
process.stdout.write(lines2.join(`
|
|
661087
|
+
`) + `
|
|
661088
|
+
`);
|
|
661089
|
+
try {
|
|
661090
|
+
mkdirSync11(getClaudeConfigHomeDir(), { recursive: true });
|
|
661091
|
+
writeFileSync13(markerPath(), "1.1.8", "utf8");
|
|
661092
|
+
} catch {}
|
|
661093
|
+
}
|
|
661094
|
+
var init_firstRun = __esm(() => {
|
|
661095
|
+
init_envUtils();
|
|
661096
|
+
});
|
|
661097
|
+
|
|
661049
661098
|
// node_modules/commander/lib/error.js
|
|
661050
661099
|
var require_error3 = __commonJS((exports) => {
|
|
661051
661100
|
class CommanderError extends Error {
|
|
@@ -663340,7 +663389,7 @@ __export(exports_upstreamproxy, {
|
|
|
663340
663389
|
});
|
|
663341
663390
|
import { mkdir as mkdir46, readFile as readFile57, unlink as unlink27, writeFile as writeFile46 } from "fs/promises";
|
|
663342
663391
|
import { homedir as homedir36 } from "os";
|
|
663343
|
-
import { join as
|
|
663392
|
+
import { join as join155 } from "path";
|
|
663344
663393
|
async function initUpstreamProxy(opts) {
|
|
663345
663394
|
if (!isEnvTruthy(process.env.CLAUDE_CODE_REMOTE)) {
|
|
663346
663395
|
return state3;
|
|
@@ -663361,7 +663410,7 @@ async function initUpstreamProxy(opts) {
|
|
|
663361
663410
|
}
|
|
663362
663411
|
setNonDumpable();
|
|
663363
663412
|
const baseUrl = opts?.ccrBaseUrl ?? process.env.ANTHROPIC_BASE_URL ?? "https://api.anthropic.com";
|
|
663364
|
-
const caBundlePath = opts?.caBundlePath ??
|
|
663413
|
+
const caBundlePath = opts?.caBundlePath ?? join155(homedir36(), ".ccr", "ca-bundle.crt");
|
|
663365
663414
|
const caOk = await downloadCaBundle(baseUrl, opts?.systemCaPath ?? SYSTEM_CA_BUNDLE, caBundlePath);
|
|
663366
663415
|
if (!caOk)
|
|
663367
663416
|
return state3;
|
|
@@ -663461,7 +663510,7 @@ async function downloadCaBundle(baseUrl, systemCaPath, outPath) {
|
|
|
663461
663510
|
}
|
|
663462
663511
|
const ccrCa = await resp.text();
|
|
663463
663512
|
const systemCa = await readFile57(systemCaPath, "utf8").catch(() => "");
|
|
663464
|
-
await mkdir46(
|
|
663513
|
+
await mkdir46(join155(outPath, ".."), { recursive: true });
|
|
663465
663514
|
await writeFile46(outPath, systemCa + `
|
|
663466
663515
|
` + ccrCa, "utf8");
|
|
663467
663516
|
return true;
|
|
@@ -664968,7 +665017,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
664968
665017
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
664969
665018
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
664970
665019
|
betas: getSdkBetas(),
|
|
664971
|
-
claude_code_version: "1.1.
|
|
665020
|
+
claude_code_version: "1.1.8",
|
|
664972
665021
|
output_style: outputStyle2,
|
|
664973
665022
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
664974
665023
|
skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -665771,8 +665820,8 @@ var EDIT_INTERVAL_MS = 1100, PLACEHOLDER = "\uD83D\uDCAC …";
|
|
|
665771
665820
|
|
|
665772
665821
|
// src/telegram/telegramBridge.ts
|
|
665773
665822
|
import { hostname as hostname4 } from "os";
|
|
665774
|
-
import { closeSync as closeSync5, existsSync as
|
|
665775
|
-
import { join as
|
|
665823
|
+
import { closeSync as closeSync5, existsSync as existsSync18, openSync as openSync6, readFileSync as readFileSync24, unlinkSync as unlinkSync4, writeFileSync as writeFileSync14, writeSync as writeSync3 } from "fs";
|
|
665824
|
+
import { join as join156 } from "path";
|
|
665776
665825
|
function linkedChatId() {
|
|
665777
665826
|
return readTelegramConfig().linkedChatId;
|
|
665778
665827
|
}
|
|
@@ -665968,7 +666017,7 @@ async function registerCommandsWithTelegram(token) {
|
|
|
665968
666017
|
} catch {}
|
|
665969
666018
|
}
|
|
665970
666019
|
function lockFilePath() {
|
|
665971
|
-
return
|
|
666020
|
+
return join156(getClaudeConfigHomeDir(), "telegram-bridge.lock");
|
|
665972
666021
|
}
|
|
665973
666022
|
function isPidAlive(pid) {
|
|
665974
666023
|
try {
|
|
@@ -666029,26 +666078,26 @@ function acquireBridgeLock() {
|
|
|
666029
666078
|
return false;
|
|
666030
666079
|
}
|
|
666031
666080
|
}
|
|
666032
|
-
|
|
666081
|
+
writeFileSync14(path30, content, { mode: 384 });
|
|
666033
666082
|
} catch {}
|
|
666034
666083
|
return true;
|
|
666035
666084
|
}
|
|
666036
666085
|
function updateHeartbeat() {
|
|
666037
666086
|
try {
|
|
666038
666087
|
const path30 = lockFilePath();
|
|
666039
|
-
if (!
|
|
666088
|
+
if (!existsSync18(path30))
|
|
666040
666089
|
return;
|
|
666041
666090
|
const raw = readFileSync24(path30, "utf8").trim();
|
|
666042
666091
|
const pid = parseInt(raw.split(":")[0] ?? "", 10);
|
|
666043
666092
|
if (pid === process.pid) {
|
|
666044
|
-
|
|
666093
|
+
writeFileSync14(path30, buildLockContent(), { mode: 384 });
|
|
666045
666094
|
}
|
|
666046
666095
|
} catch {}
|
|
666047
666096
|
}
|
|
666048
666097
|
function releaseBridgeLock() {
|
|
666049
666098
|
try {
|
|
666050
666099
|
const path30 = lockFilePath();
|
|
666051
|
-
if (
|
|
666100
|
+
if (existsSync18(path30)) {
|
|
666052
666101
|
const raw = readFileSync24(path30, "utf8").trim();
|
|
666053
666102
|
const pid = parseInt(raw.split(":")[0] ?? "", 10);
|
|
666054
666103
|
if (pid === process.pid)
|
|
@@ -672503,7 +672552,7 @@ var init_ShowInIDEPrompt = __esm(() => {
|
|
|
672503
672552
|
|
|
672504
672553
|
// src/components/permissions/FilePermissionDialog/permissionOptions.tsx
|
|
672505
672554
|
import { homedir as homedir37 } from "os";
|
|
672506
|
-
import { basename as basename51, join as
|
|
672555
|
+
import { basename as basename51, join as join157, sep as sep39 } from "path";
|
|
672507
672556
|
function isInClaudeFolder(filePath) {
|
|
672508
672557
|
const absolutePath = expandPath(filePath);
|
|
672509
672558
|
const claudeFolderPath = expandPath(`${getOriginalCwd()}/.claude`);
|
|
@@ -672513,7 +672562,7 @@ function isInClaudeFolder(filePath) {
|
|
|
672513
672562
|
}
|
|
672514
672563
|
function isInGlobalClaudeFolder(filePath) {
|
|
672515
672564
|
const absolutePath = expandPath(filePath);
|
|
672516
|
-
const globalClaudeFolderPath =
|
|
672565
|
+
const globalClaudeFolderPath = join157(homedir37(), ".claude");
|
|
672517
672566
|
const normalizedAbsolutePath = normalizeCaseForComparison2(absolutePath);
|
|
672518
672567
|
const normalizedGlobalClaudeFolderPath = normalizeCaseForComparison2(globalClaudeFolderPath);
|
|
672519
672568
|
return normalizedAbsolutePath.startsWith(normalizedGlobalClaudeFolderPath + sep39.toLowerCase()) || normalizedAbsolutePath.startsWith(normalizedGlobalClaudeFolderPath + "/");
|
|
@@ -680751,7 +680800,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
680751
680800
|
function getSemverPart(version6) {
|
|
680752
680801
|
return `${import_semver13.major(version6, { loose: true })}.${import_semver13.minor(version6, { loose: true })}.${import_semver13.patch(version6, { loose: true })}`;
|
|
680753
680802
|
}
|
|
680754
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.1.
|
|
680803
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.1.8") {
|
|
680755
680804
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react231.useState(() => getSemverPart(initialVersion));
|
|
680756
680805
|
if (!updatedVersion) {
|
|
680757
680806
|
return null;
|
|
@@ -680791,7 +680840,7 @@ function AutoUpdater({
|
|
|
680791
680840
|
return;
|
|
680792
680841
|
}
|
|
680793
680842
|
if (false) {}
|
|
680794
|
-
const currentVersion = "1.1.
|
|
680843
|
+
const currentVersion = "1.1.8";
|
|
680795
680844
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
680796
680845
|
let latestVersion = await getLatestVersion(channel);
|
|
680797
680846
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -681004,12 +681053,12 @@ function NativeAutoUpdater({
|
|
|
681004
681053
|
logEvent("tengu_native_auto_updater_start", {});
|
|
681005
681054
|
try {
|
|
681006
681055
|
const maxVersion = await getMaxVersion();
|
|
681007
|
-
if (maxVersion && gt("1.1.
|
|
681056
|
+
if (maxVersion && gt("1.1.8", maxVersion)) {
|
|
681008
681057
|
const msg = await getMaxVersionMessage();
|
|
681009
681058
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
681010
681059
|
}
|
|
681011
681060
|
const result = await installLatest(channel);
|
|
681012
|
-
const currentVersion = "1.1.
|
|
681061
|
+
const currentVersion = "1.1.8";
|
|
681013
681062
|
const latencyMs = Date.now() - startTime;
|
|
681014
681063
|
if (result.lockFailed) {
|
|
681015
681064
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -681146,17 +681195,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
681146
681195
|
const maxVersion = await getMaxVersion();
|
|
681147
681196
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
681148
681197
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
681149
|
-
if (gte("1.1.
|
|
681150
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.
|
|
681198
|
+
if (gte("1.1.8", maxVersion)) {
|
|
681199
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
681151
681200
|
setUpdateAvailable(false);
|
|
681152
681201
|
return;
|
|
681153
681202
|
}
|
|
681154
681203
|
latest = maxVersion;
|
|
681155
681204
|
}
|
|
681156
|
-
const hasUpdate = latest && !gte("1.1.
|
|
681205
|
+
const hasUpdate = latest && !gte("1.1.8", latest) && !shouldSkipVersion(latest);
|
|
681157
681206
|
setUpdateAvailable(!!hasUpdate);
|
|
681158
681207
|
if (hasUpdate) {
|
|
681159
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.
|
|
681208
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.8"} -> ${latest}`);
|
|
681160
681209
|
}
|
|
681161
681210
|
};
|
|
681162
681211
|
$3[0] = t1;
|
|
@@ -681190,7 +681239,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
681190
681239
|
wrap: "truncate",
|
|
681191
681240
|
children: [
|
|
681192
681241
|
"currentVersion: ",
|
|
681193
|
-
"1.1.
|
|
681242
|
+
"1.1.8"
|
|
681194
681243
|
]
|
|
681195
681244
|
}, undefined, true, undefined, this);
|
|
681196
681245
|
$3[3] = verbose;
|
|
@@ -689351,7 +689400,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
689351
689400
|
project_dir: getOriginalCwd(),
|
|
689352
689401
|
added_dirs: addedDirs
|
|
689353
689402
|
},
|
|
689354
|
-
version: "1.1.
|
|
689403
|
+
version: "1.1.8",
|
|
689355
689404
|
output_style: {
|
|
689356
689405
|
name: outputStyleName
|
|
689357
689406
|
},
|
|
@@ -695447,9 +695496,9 @@ function initSkillImprovement() {
|
|
|
695447
695496
|
async function applySkillImprovement(skillName, updates) {
|
|
695448
695497
|
if (!skillName)
|
|
695449
695498
|
return;
|
|
695450
|
-
const { join:
|
|
695499
|
+
const { join: join158 } = await import("path");
|
|
695451
695500
|
const fs20 = await import("fs/promises");
|
|
695452
|
-
const filePath =
|
|
695501
|
+
const filePath = join158(getCwd(), ".claude", "skills", skillName, "SKILL.md");
|
|
695453
695502
|
let currentContent;
|
|
695454
695503
|
try {
|
|
695455
695504
|
currentContent = await fs20.readFile(filePath, "utf-8");
|
|
@@ -695601,7 +695650,7 @@ function useMoreRight(_args) {
|
|
|
695601
695650
|
}
|
|
695602
695651
|
|
|
695603
695652
|
// src/utils/cleanup.ts
|
|
695604
|
-
import { join as
|
|
695653
|
+
import { join as join158 } from "path";
|
|
695605
695654
|
function getCutoffDate() {
|
|
695606
695655
|
const settings = getSettings_DEPRECATED() || {};
|
|
695607
695656
|
const cleanupPeriodDays = settings.cleanupPeriodDays ?? DEFAULT_CLEANUP_PERIOD_DAYS;
|
|
@@ -695626,7 +695675,7 @@ async function cleanupOldFilesInDirectory(dirPath, cutoffDate, isMessagePath) {
|
|
|
695626
695675
|
try {
|
|
695627
695676
|
const timestamp = convertFileNameToDate(file2.name);
|
|
695628
695677
|
if (timestamp < cutoffDate) {
|
|
695629
|
-
await getFsImplementation().unlink(
|
|
695678
|
+
await getFsImplementation().unlink(join158(dirPath, file2.name));
|
|
695630
695679
|
if (isMessagePath) {
|
|
695631
695680
|
result.messages++;
|
|
695632
695681
|
} else {
|
|
@@ -695657,7 +695706,7 @@ async function cleanupOldMessageFiles() {
|
|
|
695657
695706
|
} catch {
|
|
695658
695707
|
return result;
|
|
695659
695708
|
}
|
|
695660
|
-
const mcpLogDirs = dirents.filter((dirent) => dirent.isDirectory() && dirent.name.startsWith("mcp-logs-")).map((dirent) =>
|
|
695709
|
+
const mcpLogDirs = dirents.filter((dirent) => dirent.isDirectory() && dirent.name.startsWith("mcp-logs-")).map((dirent) => join158(baseCachePath, dirent.name));
|
|
695661
695710
|
for (const mcpLogDir of mcpLogDirs) {
|
|
695662
695711
|
result = addCleanupResults(result, await cleanupOldFilesInDirectory(mcpLogDir, cutoffDate, true));
|
|
695663
695712
|
await tryRmdir(mcpLogDir, fsImpl);
|
|
@@ -695696,7 +695745,7 @@ async function cleanupOldSessionFiles() {
|
|
|
695696
695745
|
for (const projectDirent of projectDirents) {
|
|
695697
695746
|
if (!projectDirent.isDirectory())
|
|
695698
695747
|
continue;
|
|
695699
|
-
const projectDir =
|
|
695748
|
+
const projectDir = join158(projectsDir, projectDirent.name);
|
|
695700
695749
|
let entries;
|
|
695701
695750
|
try {
|
|
695702
695751
|
entries = await fsImpl.readdir(projectDir);
|
|
@@ -695710,15 +695759,15 @@ async function cleanupOldSessionFiles() {
|
|
|
695710
695759
|
continue;
|
|
695711
695760
|
}
|
|
695712
695761
|
try {
|
|
695713
|
-
if (await unlinkIfOld(
|
|
695762
|
+
if (await unlinkIfOld(join158(projectDir, entry.name), cutoffDate, fsImpl)) {
|
|
695714
695763
|
result.messages++;
|
|
695715
695764
|
}
|
|
695716
695765
|
} catch {
|
|
695717
695766
|
result.errors++;
|
|
695718
695767
|
}
|
|
695719
695768
|
} else if (entry.isDirectory()) {
|
|
695720
|
-
const sessionDir =
|
|
695721
|
-
const toolResultsDir =
|
|
695769
|
+
const sessionDir = join158(projectDir, entry.name);
|
|
695770
|
+
const toolResultsDir = join158(sessionDir, TOOL_RESULTS_SUBDIR);
|
|
695722
695771
|
let toolDirs;
|
|
695723
695772
|
try {
|
|
695724
695773
|
toolDirs = await fsImpl.readdir(toolResultsDir);
|
|
@@ -695729,14 +695778,14 @@ async function cleanupOldSessionFiles() {
|
|
|
695729
695778
|
for (const toolEntry of toolDirs) {
|
|
695730
695779
|
if (toolEntry.isFile()) {
|
|
695731
695780
|
try {
|
|
695732
|
-
if (await unlinkIfOld(
|
|
695781
|
+
if (await unlinkIfOld(join158(toolResultsDir, toolEntry.name), cutoffDate, fsImpl)) {
|
|
695733
695782
|
result.messages++;
|
|
695734
695783
|
}
|
|
695735
695784
|
} catch {
|
|
695736
695785
|
result.errors++;
|
|
695737
695786
|
}
|
|
695738
695787
|
} else if (toolEntry.isDirectory()) {
|
|
695739
|
-
const toolDirPath =
|
|
695788
|
+
const toolDirPath = join158(toolResultsDir, toolEntry.name);
|
|
695740
695789
|
let toolFiles;
|
|
695741
695790
|
try {
|
|
695742
695791
|
toolFiles = await fsImpl.readdir(toolDirPath);
|
|
@@ -695747,7 +695796,7 @@ async function cleanupOldSessionFiles() {
|
|
|
695747
695796
|
if (!tf.isFile())
|
|
695748
695797
|
continue;
|
|
695749
695798
|
try {
|
|
695750
|
-
if (await unlinkIfOld(
|
|
695799
|
+
if (await unlinkIfOld(join158(toolDirPath, tf.name), cutoffDate, fsImpl)) {
|
|
695751
695800
|
result.messages++;
|
|
695752
695801
|
}
|
|
695753
695802
|
} catch {
|
|
@@ -695779,7 +695828,7 @@ async function cleanupSingleDirectory(dirPath, extension2, removeEmptyDir = true
|
|
|
695779
695828
|
if (!dirent.isFile() || !dirent.name.endsWith(extension2))
|
|
695780
695829
|
continue;
|
|
695781
695830
|
try {
|
|
695782
|
-
if (await unlinkIfOld(
|
|
695831
|
+
if (await unlinkIfOld(join158(dirPath, dirent.name), cutoffDate, fsImpl)) {
|
|
695783
695832
|
result.messages++;
|
|
695784
695833
|
}
|
|
695785
695834
|
} catch {
|
|
@@ -695792,7 +695841,7 @@ async function cleanupSingleDirectory(dirPath, extension2, removeEmptyDir = true
|
|
|
695792
695841
|
return result;
|
|
695793
695842
|
}
|
|
695794
695843
|
function cleanupOldPlanFiles() {
|
|
695795
|
-
const plansDir =
|
|
695844
|
+
const plansDir = join158(getClaudeConfigHomeDir(), "plans");
|
|
695796
695845
|
return cleanupSingleDirectory(plansDir, ".md");
|
|
695797
695846
|
}
|
|
695798
695847
|
async function cleanupOldFileHistoryBackups() {
|
|
@@ -695801,14 +695850,14 @@ async function cleanupOldFileHistoryBackups() {
|
|
|
695801
695850
|
const fsImpl = getFsImplementation();
|
|
695802
695851
|
try {
|
|
695803
695852
|
const configDir = getClaudeConfigHomeDir();
|
|
695804
|
-
const fileHistoryStorageDir =
|
|
695853
|
+
const fileHistoryStorageDir = join158(configDir, "file-history");
|
|
695805
695854
|
let dirents;
|
|
695806
695855
|
try {
|
|
695807
695856
|
dirents = await fsImpl.readdir(fileHistoryStorageDir);
|
|
695808
695857
|
} catch {
|
|
695809
695858
|
return result;
|
|
695810
695859
|
}
|
|
695811
|
-
const fileHistorySessionsDirs = dirents.filter((dirent) => dirent.isDirectory()).map((dirent) =>
|
|
695860
|
+
const fileHistorySessionsDirs = dirents.filter((dirent) => dirent.isDirectory()).map((dirent) => join158(fileHistoryStorageDir, dirent.name));
|
|
695812
695861
|
await Promise.all(fileHistorySessionsDirs.map(async (fileHistorySessionDir) => {
|
|
695813
695862
|
try {
|
|
695814
695863
|
const stats2 = await fsImpl.stat(fileHistorySessionDir);
|
|
@@ -695835,14 +695884,14 @@ async function cleanupOldSessionEnvDirs() {
|
|
|
695835
695884
|
const fsImpl = getFsImplementation();
|
|
695836
695885
|
try {
|
|
695837
695886
|
const configDir = getClaudeConfigHomeDir();
|
|
695838
|
-
const sessionEnvBaseDir =
|
|
695887
|
+
const sessionEnvBaseDir = join158(configDir, "session-env");
|
|
695839
695888
|
let dirents;
|
|
695840
695889
|
try {
|
|
695841
695890
|
dirents = await fsImpl.readdir(sessionEnvBaseDir);
|
|
695842
695891
|
} catch {
|
|
695843
695892
|
return result;
|
|
695844
695893
|
}
|
|
695845
|
-
const sessionEnvDirs = dirents.filter((dirent) => dirent.isDirectory()).map((dirent) =>
|
|
695894
|
+
const sessionEnvDirs = dirents.filter((dirent) => dirent.isDirectory()).map((dirent) => join158(sessionEnvBaseDir, dirent.name));
|
|
695846
695895
|
for (const sessionEnvDir of sessionEnvDirs) {
|
|
695847
695896
|
try {
|
|
695848
695897
|
const stats2 = await fsImpl.stat(sessionEnvDir);
|
|
@@ -695864,7 +695913,7 @@ async function cleanupOldDebugLogs() {
|
|
|
695864
695913
|
const cutoffDate = getCutoffDate();
|
|
695865
695914
|
const result = { messages: 0, errors: 0 };
|
|
695866
695915
|
const fsImpl = getFsImplementation();
|
|
695867
|
-
const debugDir =
|
|
695916
|
+
const debugDir = join158(getClaudeConfigHomeDir(), "debug");
|
|
695868
695917
|
let dirents;
|
|
695869
695918
|
try {
|
|
695870
695919
|
dirents = await fsImpl.readdir(debugDir);
|
|
@@ -695876,7 +695925,7 @@ async function cleanupOldDebugLogs() {
|
|
|
695876
695925
|
continue;
|
|
695877
695926
|
}
|
|
695878
695927
|
try {
|
|
695879
|
-
if (await unlinkIfOld(
|
|
695928
|
+
if (await unlinkIfOld(join158(debugDir, dirent.name), cutoffDate, fsImpl)) {
|
|
695880
695929
|
result.messages++;
|
|
695881
695930
|
}
|
|
695882
695931
|
} catch {
|
|
@@ -699079,7 +699128,7 @@ __export(exports_asciicast, {
|
|
|
699079
699128
|
_resetRecordingStateForTesting: () => _resetRecordingStateForTesting
|
|
699080
699129
|
});
|
|
699081
699130
|
import { appendFile as appendFile7, rename as rename12 } from "fs/promises";
|
|
699082
|
-
import { basename as basename60, dirname as dirname66, join as
|
|
699131
|
+
import { basename as basename60, dirname as dirname66, join as join160 } from "path";
|
|
699083
699132
|
function getRecordFilePath() {
|
|
699084
699133
|
if (recordingState.filePath !== null) {
|
|
699085
699134
|
return recordingState.filePath;
|
|
@@ -699090,10 +699139,10 @@ function getRecordFilePath() {
|
|
|
699090
699139
|
if (!isEnvTruthy(process.env.CLAUDE_CODE_TERMINAL_RECORDING)) {
|
|
699091
699140
|
return null;
|
|
699092
699141
|
}
|
|
699093
|
-
const projectsDir =
|
|
699094
|
-
const projectDir =
|
|
699142
|
+
const projectsDir = join160(getClaudeConfigHomeDir(), "projects");
|
|
699143
|
+
const projectDir = join160(projectsDir, sanitizePath2(getOriginalCwd()));
|
|
699095
699144
|
recordingState.timestamp = Date.now();
|
|
699096
|
-
recordingState.filePath =
|
|
699145
|
+
recordingState.filePath = join160(projectDir, `${getSessionId()}-${recordingState.timestamp}.cast`);
|
|
699097
699146
|
return recordingState.filePath;
|
|
699098
699147
|
}
|
|
699099
699148
|
function _resetRecordingStateForTesting() {
|
|
@@ -699102,13 +699151,13 @@ function _resetRecordingStateForTesting() {
|
|
|
699102
699151
|
}
|
|
699103
699152
|
function getSessionRecordingPaths() {
|
|
699104
699153
|
const sessionId = getSessionId();
|
|
699105
|
-
const projectsDir =
|
|
699106
|
-
const projectDir =
|
|
699154
|
+
const projectsDir = join160(getClaudeConfigHomeDir(), "projects");
|
|
699155
|
+
const projectDir = join160(projectsDir, sanitizePath2(getOriginalCwd()));
|
|
699107
699156
|
try {
|
|
699108
699157
|
const entries = getFsImplementation().readdirSync(projectDir);
|
|
699109
699158
|
const names = typeof entries[0] === "string" ? entries : entries.map((e2) => e2.name);
|
|
699110
699159
|
const files3 = names.filter((f3) => f3.startsWith(sessionId) && f3.endsWith(".cast")).sort();
|
|
699111
|
-
return files3.map((f3) =>
|
|
699160
|
+
return files3.map((f3) => join160(projectDir, f3));
|
|
699112
699161
|
} catch {
|
|
699113
699162
|
return [];
|
|
699114
699163
|
}
|
|
@@ -699118,9 +699167,9 @@ async function renameRecordingForSession() {
|
|
|
699118
699167
|
if (!oldPath || recordingState.timestamp === 0) {
|
|
699119
699168
|
return;
|
|
699120
699169
|
}
|
|
699121
|
-
const projectsDir =
|
|
699122
|
-
const projectDir =
|
|
699123
|
-
const newPath =
|
|
699170
|
+
const projectsDir = join160(getClaudeConfigHomeDir(), "projects");
|
|
699171
|
+
const projectDir = join160(projectsDir, sanitizePath2(getOriginalCwd()));
|
|
699172
|
+
const newPath = join160(projectDir, `${getSessionId()}-${recordingState.timestamp}.cast`);
|
|
699124
699173
|
if (oldPath === newPath) {
|
|
699125
699174
|
return;
|
|
699126
699175
|
}
|
|
@@ -700725,7 +700774,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
700725
700774
|
} catch {}
|
|
700726
700775
|
const data = {
|
|
700727
700776
|
trigger,
|
|
700728
|
-
version: "1.1.
|
|
700777
|
+
version: "1.1.8",
|
|
700729
700778
|
platform: process.platform,
|
|
700730
700779
|
transcript,
|
|
700731
700780
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -702011,7 +702060,7 @@ var init_useChromeExtensionNotification = __esm(() => {
|
|
|
702011
702060
|
});
|
|
702012
702061
|
|
|
702013
702062
|
// src/utils/plugins/officialMarketplaceStartupCheck.ts
|
|
702014
|
-
import { join as
|
|
702063
|
+
import { join as join161 } from "path";
|
|
702015
702064
|
function isOfficialMarketplaceAutoInstallDisabled() {
|
|
702016
702065
|
return isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL);
|
|
702017
702066
|
}
|
|
@@ -702094,7 +702143,7 @@ async function checkAndInstallOfficialMarketplace() {
|
|
|
702094
702143
|
return { installed: false, skipped: true, reason: "policy_blocked" };
|
|
702095
702144
|
}
|
|
702096
702145
|
const cacheDir = getMarketplacesCacheDir();
|
|
702097
|
-
const installLocation =
|
|
702146
|
+
const installLocation = join161(cacheDir, OFFICIAL_MARKETPLACE_NAME);
|
|
702098
702147
|
const gcsSha = await fetchOfficialMarketplaceFromGcs(installLocation, cacheDir);
|
|
702099
702148
|
if (gcsSha !== null) {
|
|
702100
702149
|
const known = await loadKnownMarketplacesConfig();
|
|
@@ -705100,7 +705149,7 @@ var init_usePluginRecommendationBase = __esm(() => {
|
|
|
705100
705149
|
});
|
|
705101
705150
|
|
|
705102
705151
|
// src/hooks/useLspPluginRecommendation.tsx
|
|
705103
|
-
import { extname as extname15, join as
|
|
705152
|
+
import { extname as extname15, join as join162 } from "path";
|
|
705104
705153
|
function useLspPluginRecommendation() {
|
|
705105
705154
|
const $3 = import_compiler_runtime354.c(12);
|
|
705106
705155
|
const trackedFiles = useAppState(_temp224);
|
|
@@ -705185,7 +705234,7 @@ function useLspPluginRecommendation() {
|
|
|
705185
705234
|
case "yes": {
|
|
705186
705235
|
installPluginAndNotify(pluginId, pluginName, "lsp-plugin", addNotification, async (pluginData) => {
|
|
705187
705236
|
logForDebugging(`[useLspPluginRecommendation] Installing plugin: ${pluginId}`);
|
|
705188
|
-
const localSourcePath = typeof pluginData.entry.source === "string" ?
|
|
705237
|
+
const localSourcePath = typeof pluginData.entry.source === "string" ? join162(pluginData.marketplaceInstallLocation, pluginData.entry.source) : undefined;
|
|
705189
705238
|
await cacheAndRegisterPlugin(pluginId, pluginData.entry, "user", undefined, localSourcePath);
|
|
705190
705239
|
const settings = getSettingsForSource("userSettings");
|
|
705191
705240
|
updateSettingsForSource("userSettings", {
|
|
@@ -708029,7 +708078,7 @@ var exports_REPL = {};
|
|
|
708029
708078
|
__export(exports_REPL, {
|
|
708030
708079
|
REPL: () => REPL
|
|
708031
708080
|
});
|
|
708032
|
-
import { dirname as dirname68, join as
|
|
708081
|
+
import { dirname as dirname68, join as join163 } from "path";
|
|
708033
708082
|
import { tmpdir as tmpdir15 } from "os";
|
|
708034
708083
|
import { writeFile as writeFile47 } from "fs/promises";
|
|
708035
708084
|
import { randomUUID as randomUUID53 } from "crypto";
|
|
@@ -710617,7 +710666,7 @@ Note: ctrl + z now suspends RAYU, ctrl + _ undoes input.
|
|
|
710617
710666
|
const w2 = Math.max(80, (process.stdout.columns ?? 80) - 6);
|
|
710618
710667
|
const raw = await renderMessagesToPlainText(deferredMessages, tools, w2);
|
|
710619
710668
|
const text2 = raw.replace(/[ \t]+$/gm, "");
|
|
710620
|
-
const path32 =
|
|
710669
|
+
const path32 = join163(tmpdir15(), `cc-transcript-${Date.now()}.txt`);
|
|
710621
710670
|
await writeFile47(path32, text2);
|
|
710622
710671
|
const opened = openFileInExternalEditor(path32);
|
|
710623
710672
|
setStatus(opened ? `opening ${path32}` : `wrote ${path32} · no $VISUAL/$EDITOR set`);
|
|
@@ -712699,7 +712748,7 @@ function WelcomeV2() {
|
|
|
712699
712748
|
dimColor: true,
|
|
712700
712749
|
children: [
|
|
712701
712750
|
"v",
|
|
712702
|
-
"1.1.
|
|
712751
|
+
"1.1.8"
|
|
712703
712752
|
]
|
|
712704
712753
|
}, undefined, true, undefined, this)
|
|
712705
712754
|
]
|
|
@@ -713540,7 +713589,7 @@ function TrustDialog(t0) {
|
|
|
713540
713589
|
t19 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
713541
713590
|
dimColor: true,
|
|
713542
713591
|
children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Link, {
|
|
713543
|
-
url: "https://
|
|
713592
|
+
url: "https://github.com/Choeng-Rayu/rayu-cli",
|
|
713544
713593
|
children: "Security guide"
|
|
713545
713594
|
}, undefined, false, undefined, this)
|
|
713546
713595
|
}, undefined, false, undefined, this);
|
|
@@ -713725,7 +713774,7 @@ function BypassPermissionsModeDialog(t0) {
|
|
|
713725
713774
|
children: "By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."
|
|
713726
713775
|
}, undefined, false, undefined, this),
|
|
713727
713776
|
/* @__PURE__ */ jsx_dev_runtime488.jsxDEV(Link, {
|
|
713728
|
-
url: "https://
|
|
713777
|
+
url: "https://github.com/Choeng-Rayu/rayu-cli"
|
|
713729
713778
|
}, undefined, false, undefined, this)
|
|
713730
713779
|
]
|
|
713731
713780
|
}, undefined, true, undefined, this);
|
|
@@ -713976,7 +714025,7 @@ function completeOnboarding() {
|
|
|
713976
714025
|
saveGlobalConfig((current) => ({
|
|
713977
714026
|
...current,
|
|
713978
714027
|
hasCompletedOnboarding: true,
|
|
713979
|
-
lastOnboardingVersion: "1.1.
|
|
714028
|
+
lastOnboardingVersion: "1.1.8"
|
|
713980
714029
|
}));
|
|
713981
714030
|
}
|
|
713982
714031
|
function showDialog(root2, renderer) {
|
|
@@ -717679,7 +717728,7 @@ var init_verify = __esm(() => {
|
|
|
717679
717728
|
// src/utils/steeringFilePorter.ts
|
|
717680
717729
|
import { copyFile as copyFile12, mkdir as mkdir47, readdir as readdir33, symlink as symlink6 } from "fs/promises";
|
|
717681
717730
|
import { homedir as homedir39 } from "os";
|
|
717682
|
-
import { basename as basename61, join as
|
|
717731
|
+
import { basename as basename61, join as join164 } from "path";
|
|
717683
717732
|
async function detectSteeringFileStatus(cwd2) {
|
|
717684
717733
|
const fs20 = getFsImplementation();
|
|
717685
717734
|
const home = homedir39();
|
|
@@ -717691,14 +717740,14 @@ async function detectSteeringFileStatus(cwd2) {
|
|
|
717691
717740
|
return false;
|
|
717692
717741
|
}
|
|
717693
717742
|
};
|
|
717694
|
-
const rayuMd = exists(
|
|
717695
|
-
const agentsMd = exists(
|
|
717696
|
-
const claudeMd = exists(
|
|
717697
|
-
const rayuDir = exists(
|
|
717698
|
-
const agentsDir = exists(
|
|
717699
|
-
const claudeDir = exists(
|
|
717700
|
-
const claudeUserSkills = exists(
|
|
717701
|
-
const agentUserSkills = exists(
|
|
717743
|
+
const rayuMd = exists(join164(cwd2, "RAYU.md"));
|
|
717744
|
+
const agentsMd = exists(join164(cwd2, "AGENTS.md"));
|
|
717745
|
+
const claudeMd = exists(join164(cwd2, "CLAUDE.md"));
|
|
717746
|
+
const rayuDir = exists(join164(cwd2, ".rayu"));
|
|
717747
|
+
const agentsDir = exists(join164(cwd2, ".agents"));
|
|
717748
|
+
const claudeDir = exists(join164(cwd2, ".claude"));
|
|
717749
|
+
const claudeUserSkills = exists(join164(home, ".claude", "skills"));
|
|
717750
|
+
const agentUserSkills = exists(join164(home, ".agents", "skills"));
|
|
717702
717751
|
return {
|
|
717703
717752
|
hasRayuMd: rayuMd,
|
|
717704
717753
|
hasAgentsMd: agentsMd,
|
|
@@ -717716,8 +717765,8 @@ function planPortActions(cwd2, status2, mode) {
|
|
|
717716
717765
|
const actions = [];
|
|
717717
717766
|
const useSymlink = mode === "symlink";
|
|
717718
717767
|
if (status2.hasOnlyClaudeMd) {
|
|
717719
|
-
const src =
|
|
717720
|
-
const dest =
|
|
717768
|
+
const src = join164(cwd2, "CLAUDE.md");
|
|
717769
|
+
const dest = join164(cwd2, "RAYU.md");
|
|
717721
717770
|
actions.push({
|
|
717722
717771
|
type: useSymlink ? "symlink-file" : "copy-file",
|
|
717723
717772
|
src,
|
|
@@ -717726,8 +717775,8 @@ function planPortActions(cwd2, status2, mode) {
|
|
|
717726
717775
|
});
|
|
717727
717776
|
}
|
|
717728
717777
|
if (status2.hasOnlyClaudeDir) {
|
|
717729
|
-
const src =
|
|
717730
|
-
const dest =
|
|
717778
|
+
const src = join164(cwd2, ".claude");
|
|
717779
|
+
const dest = join164(cwd2, ".rayu");
|
|
717731
717780
|
actions.push({
|
|
717732
717781
|
type: useSymlink ? "symlink-dir" : "copy-dir",
|
|
717733
717782
|
src,
|
|
@@ -717784,8 +717833,8 @@ async function copyDirectoryRecursive(src, dest) {
|
|
|
717784
717833
|
await mkdir47(dest, { recursive: true });
|
|
717785
717834
|
const entries = await readdir33(src, { withFileTypes: true });
|
|
717786
717835
|
await Promise.all(entries.map(async (entry) => {
|
|
717787
|
-
const srcPath =
|
|
717788
|
-
const destPath =
|
|
717836
|
+
const srcPath = join164(src, entry.name);
|
|
717837
|
+
const destPath = join164(dest, entry.name);
|
|
717789
717838
|
if (entry.isDirectory()) {
|
|
717790
717839
|
await copyDirectoryRecursive(srcPath, destPath);
|
|
717791
717840
|
} else {
|
|
@@ -717816,10 +717865,10 @@ function summarizeSteeringStatus(status2) {
|
|
|
717816
717865
|
function getPortCandidates(cwd2, status2) {
|
|
717817
717866
|
const candidates = [];
|
|
717818
717867
|
if (status2.hasOnlyClaudeMd) {
|
|
717819
|
-
candidates.push({ src:
|
|
717868
|
+
candidates.push({ src: join164(cwd2, "CLAUDE.md"), dest: join164(cwd2, "RAYU.md"), kind: "file" });
|
|
717820
717869
|
}
|
|
717821
717870
|
if (status2.hasOnlyClaudeDir) {
|
|
717822
|
-
candidates.push({ src:
|
|
717871
|
+
candidates.push({ src: join164(cwd2, ".claude"), dest: join164(cwd2, ".rayu"), kind: "dir" });
|
|
717823
717872
|
}
|
|
717824
717873
|
return candidates;
|
|
717825
717874
|
}
|
|
@@ -718680,12 +718729,12 @@ var init_createDirectConnectSession = __esm(() => {
|
|
|
718680
718729
|
});
|
|
718681
718730
|
|
|
718682
718731
|
// src/utils/errorLogSink.ts
|
|
718683
|
-
import { dirname as dirname71, join as
|
|
718732
|
+
import { dirname as dirname71, join as join165 } from "path";
|
|
718684
718733
|
function getErrorsPath() {
|
|
718685
|
-
return
|
|
718734
|
+
return join165(CACHE_PATHS.errors(), DATE + ".jsonl");
|
|
718686
718735
|
}
|
|
718687
718736
|
function getMCPLogsPath(serverName) {
|
|
718688
|
-
return
|
|
718737
|
+
return join165(CACHE_PATHS.mcpLogs(serverName), DATE + ".jsonl");
|
|
718689
718738
|
}
|
|
718690
718739
|
function createJsonlWriter(options) {
|
|
718691
718740
|
const writer = createBufferedWriter(options);
|
|
@@ -718729,7 +718778,7 @@ function appendToLog(path32, message) {
|
|
|
718729
718778
|
cwd: getFsImplementation().cwd(),
|
|
718730
718779
|
userType: "external",
|
|
718731
718780
|
sessionId: getSessionId(),
|
|
718732
|
-
version: "1.1.
|
|
718781
|
+
version: "1.1.8"
|
|
718733
718782
|
};
|
|
718734
718783
|
getLogWriter(path32).write(messageWithTimestamp);
|
|
718735
718784
|
}
|
|
@@ -719021,7 +719070,7 @@ var init_sessionMemory = __esm(() => {
|
|
|
719021
719070
|
// src/utils/iTermBackup.ts
|
|
719022
719071
|
import { copyFile as copyFile13, stat as stat50 } from "fs/promises";
|
|
719023
719072
|
import { homedir as homedir40 } from "os";
|
|
719024
|
-
import { join as
|
|
719073
|
+
import { join as join166 } from "path";
|
|
719025
719074
|
function markITerm2SetupComplete() {
|
|
719026
719075
|
saveGlobalConfig((current) => ({
|
|
719027
719076
|
...current,
|
|
@@ -719036,7 +719085,7 @@ function getIterm2RecoveryInfo() {
|
|
|
719036
719085
|
};
|
|
719037
719086
|
}
|
|
719038
719087
|
function getITerm2PlistPath() {
|
|
719039
|
-
return
|
|
719088
|
+
return join166(homedir40(), "Library", "Preferences", "com.googlecode.iterm2.plist");
|
|
719040
719089
|
}
|
|
719041
719090
|
async function checkAndRestoreITerm2Backup() {
|
|
719042
719091
|
const { inProgress, backupPath } = getIterm2RecoveryInfo();
|
|
@@ -722382,7 +722431,7 @@ var init_idleTimeout = __esm(() => {
|
|
|
722382
722431
|
// src/bridge/inboundAttachments.ts
|
|
722383
722432
|
import { randomUUID as randomUUID56 } from "crypto";
|
|
722384
722433
|
import { mkdir as mkdir48, writeFile as writeFile49 } from "fs/promises";
|
|
722385
|
-
import { basename as basename62, join as
|
|
722434
|
+
import { basename as basename62, join as join167 } from "path";
|
|
722386
722435
|
function debug3(msg) {
|
|
722387
722436
|
logForDebugging(`[bridge:inbound-attach] ${msg}`);
|
|
722388
722437
|
}
|
|
@@ -722398,7 +722447,7 @@ function sanitizeFileName(name3) {
|
|
|
722398
722447
|
return base2 || "attachment";
|
|
722399
722448
|
}
|
|
722400
722449
|
function uploadsDir() {
|
|
722401
|
-
return
|
|
722450
|
+
return join167(getClaudeConfigHomeDir(), "uploads", getSessionId());
|
|
722402
722451
|
}
|
|
722403
722452
|
async function resolveOne(att) {
|
|
722404
722453
|
const token = getBridgeAccessToken();
|
|
@@ -722427,7 +722476,7 @@ async function resolveOne(att) {
|
|
|
722427
722476
|
const safeName = sanitizeFileName(att.file_name);
|
|
722428
722477
|
const prefix = (att.file_uuid.slice(0, 8) || randomUUID56().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
722429
722478
|
const dir = uploadsDir();
|
|
722430
|
-
const outPath =
|
|
722479
|
+
const outPath = join167(dir, `${prefix}-${safeName}`);
|
|
722431
722480
|
try {
|
|
722432
722481
|
await mkdir48(dir, { recursive: true });
|
|
722433
722482
|
await writeFile49(outPath, data);
|
|
@@ -722527,7 +722576,7 @@ var init_sessionUrl = __esm(() => {
|
|
|
722527
722576
|
|
|
722528
722577
|
// src/utils/plugins/zipCacheAdapters.ts
|
|
722529
722578
|
import { readFile as readFile59 } from "fs/promises";
|
|
722530
|
-
import { join as
|
|
722579
|
+
import { join as join168 } from "path";
|
|
722531
722580
|
async function readZipCacheKnownMarketplaces() {
|
|
722532
722581
|
try {
|
|
722533
722582
|
const content = await readFile59(getZipCacheKnownMarketplacesPath(), "utf-8");
|
|
@@ -722552,13 +722601,13 @@ async function saveMarketplaceJsonToZipCache(marketplaceName, installLocation) {
|
|
|
722552
722601
|
const content = await readMarketplaceJsonContent(installLocation);
|
|
722553
722602
|
if (content !== null) {
|
|
722554
722603
|
const relPath = getMarketplaceJsonRelativePath(marketplaceName);
|
|
722555
|
-
await atomicWriteToZipCache(
|
|
722604
|
+
await atomicWriteToZipCache(join168(zipCachePath, relPath), content);
|
|
722556
722605
|
}
|
|
722557
722606
|
}
|
|
722558
722607
|
async function readMarketplaceJsonContent(dir) {
|
|
722559
722608
|
const candidates = [
|
|
722560
|
-
|
|
722561
|
-
|
|
722609
|
+
join168(dir, ".claude-plugin", "marketplace.json"),
|
|
722610
|
+
join168(dir, "marketplace.json"),
|
|
722562
722611
|
dir
|
|
722563
722612
|
];
|
|
722564
722613
|
for (const candidate of candidates) {
|
|
@@ -722688,8 +722737,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
722688
722737
|
}
|
|
722689
722738
|
async function checkEnvLessBridgeMinVersion() {
|
|
722690
722739
|
const cfg = await getEnvLessBridgeConfig();
|
|
722691
|
-
if (cfg.min_version && lt("1.1.
|
|
722692
|
-
return `Your version of RAYU (${"1.1.
|
|
722740
|
+
if (cfg.min_version && lt("1.1.8", cfg.min_version)) {
|
|
722741
|
+
return `Your version of RAYU (${"1.1.8"}) is too old for Remote Control.
|
|
722693
722742
|
Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
|
|
722694
722743
|
}
|
|
722695
722744
|
return null;
|
|
@@ -723017,9 +723066,9 @@ __export(exports_bridgePointer, {
|
|
|
723017
723066
|
BRIDGE_POINTER_TTL_MS: () => BRIDGE_POINTER_TTL_MS
|
|
723018
723067
|
});
|
|
723019
723068
|
import { mkdir as mkdir49, readFile as readFile60, stat as stat51, unlink as unlink28, writeFile as writeFile50 } from "fs/promises";
|
|
723020
|
-
import { dirname as dirname72, join as
|
|
723069
|
+
import { dirname as dirname72, join as join169 } from "path";
|
|
723021
723070
|
function getBridgePointerPath(dir) {
|
|
723022
|
-
return
|
|
723071
|
+
return join169(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
|
|
723023
723072
|
}
|
|
723024
723073
|
async function writeBridgePointer(dir, pointer) {
|
|
723025
723074
|
const path32 = getBridgePointerPath(dir);
|
|
@@ -723163,7 +723212,7 @@ async function initBridgeCore(params) {
|
|
|
723163
723212
|
const rawApi = createBridgeApiClient({
|
|
723164
723213
|
baseUrl,
|
|
723165
723214
|
getAccessToken,
|
|
723166
|
-
runnerVersion: "1.1.
|
|
723215
|
+
runnerVersion: "1.1.8",
|
|
723167
723216
|
onDebug: logForDebugging,
|
|
723168
723217
|
onAuth401,
|
|
723169
723218
|
getTrustedDeviceToken
|
|
@@ -728795,7 +728844,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
728795
728844
|
setCwd(cwd3);
|
|
728796
728845
|
const server = new Server({
|
|
728797
728846
|
name: "claude/tengu",
|
|
728798
|
-
version: "1.1.
|
|
728847
|
+
version: "1.1.8"
|
|
728799
728848
|
}, {
|
|
728800
728849
|
capabilities: {
|
|
728801
728850
|
tools: {}
|
|
@@ -728927,14 +728976,14 @@ __export(exports_claudeDesktop, {
|
|
|
728927
728976
|
});
|
|
728928
728977
|
import { readdir as readdir34, readFile as readFile62, stat as stat53 } from "fs/promises";
|
|
728929
728978
|
import { homedir as homedir41 } from "os";
|
|
728930
|
-
import { join as
|
|
728979
|
+
import { join as join170 } from "path";
|
|
728931
728980
|
async function getClaudeDesktopConfigPath() {
|
|
728932
728981
|
const platform7 = getPlatform();
|
|
728933
728982
|
if (!SUPPORTED_PLATFORMS.includes(platform7)) {
|
|
728934
728983
|
throw new Error(`Unsupported platform: ${platform7} - Claude Desktop integration only works on macOS and WSL.`);
|
|
728935
728984
|
}
|
|
728936
728985
|
if (platform7 === "macos") {
|
|
728937
|
-
return
|
|
728986
|
+
return join170(homedir41(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
|
|
728938
728987
|
}
|
|
728939
728988
|
const windowsHome = process.env.USERPROFILE ? process.env.USERPROFILE.replace(/\\/g, "/") : null;
|
|
728940
728989
|
if (windowsHome) {
|
|
@@ -728953,7 +729002,7 @@ async function getClaudeDesktopConfigPath() {
|
|
|
728953
729002
|
if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
|
|
728954
729003
|
continue;
|
|
728955
729004
|
}
|
|
728956
|
-
const potentialConfigPath =
|
|
729005
|
+
const potentialConfigPath = join170(usersDir, user.name, "AppData", "Roaming", "Claude", "claude_desktop_config.json");
|
|
728957
729006
|
try {
|
|
728958
729007
|
await stat53(potentialConfigPath);
|
|
728959
729008
|
return potentialConfigPath;
|
|
@@ -729862,12 +729911,12 @@ __export(exports_install, {
|
|
|
729862
729911
|
install: () => install
|
|
729863
729912
|
});
|
|
729864
729913
|
import { homedir as homedir42 } from "node:os";
|
|
729865
|
-
import { join as
|
|
729914
|
+
import { join as join171 } from "node:path";
|
|
729866
729915
|
function getInstallationPath2() {
|
|
729867
729916
|
const isWindows3 = env4.platform === "win32";
|
|
729868
729917
|
const homeDir = homedir42();
|
|
729869
729918
|
if (isWindows3) {
|
|
729870
|
-
const windowsPath =
|
|
729919
|
+
const windowsPath = join171(homeDir, ".local", "bin", "claude.exe");
|
|
729871
729920
|
return windowsPath.replace(/\//g, "\\");
|
|
729872
729921
|
}
|
|
729873
729922
|
return "~/.local/bin/claude";
|
|
@@ -730406,7 +730455,7 @@ __export(exports_update, {
|
|
|
730406
730455
|
});
|
|
730407
730456
|
async function update() {
|
|
730408
730457
|
logEvent("tengu_update_check", {});
|
|
730409
|
-
writeToStdout(`Current version: ${"1.1.
|
|
730458
|
+
writeToStdout(`Current version: ${"1.1.8"}
|
|
730410
730459
|
`);
|
|
730411
730460
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
730412
730461
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -730481,8 +730530,8 @@ async function update() {
|
|
|
730481
730530
|
writeToStdout(`Claude is managed by Homebrew.
|
|
730482
730531
|
`);
|
|
730483
730532
|
const latest = await getLatestVersion(channel);
|
|
730484
|
-
if (latest && !gte("1.1.
|
|
730485
|
-
writeToStdout(`Update available: ${"1.1.
|
|
730533
|
+
if (latest && !gte("1.1.8", latest)) {
|
|
730534
|
+
writeToStdout(`Update available: ${"1.1.8"} → ${latest}
|
|
730486
730535
|
`);
|
|
730487
730536
|
writeToStdout(`
|
|
730488
730537
|
`);
|
|
@@ -730498,8 +730547,8 @@ async function update() {
|
|
|
730498
730547
|
writeToStdout(`Claude is managed by winget.
|
|
730499
730548
|
`);
|
|
730500
730549
|
const latest = await getLatestVersion(channel);
|
|
730501
|
-
if (latest && !gte("1.1.
|
|
730502
|
-
writeToStdout(`Update available: ${"1.1.
|
|
730550
|
+
if (latest && !gte("1.1.8", latest)) {
|
|
730551
|
+
writeToStdout(`Update available: ${"1.1.8"} → ${latest}
|
|
730503
730552
|
`);
|
|
730504
730553
|
writeToStdout(`
|
|
730505
730554
|
`);
|
|
@@ -730515,8 +730564,8 @@ async function update() {
|
|
|
730515
730564
|
writeToStdout(`Claude is managed by apk.
|
|
730516
730565
|
`);
|
|
730517
730566
|
const latest = await getLatestVersion(channel);
|
|
730518
|
-
if (latest && !gte("1.1.
|
|
730519
|
-
writeToStdout(`Update available: ${"1.1.
|
|
730567
|
+
if (latest && !gte("1.1.8", latest)) {
|
|
730568
|
+
writeToStdout(`Update available: ${"1.1.8"} → ${latest}
|
|
730520
730569
|
`);
|
|
730521
730570
|
writeToStdout(`
|
|
730522
730571
|
`);
|
|
@@ -730581,11 +730630,11 @@ async function update() {
|
|
|
730581
730630
|
`);
|
|
730582
730631
|
await gracefulShutdown(1);
|
|
730583
730632
|
}
|
|
730584
|
-
if (result.latestVersion === "1.1.
|
|
730585
|
-
writeToStdout(source_default.green(`RAYU is up to date (${"1.1.
|
|
730633
|
+
if (result.latestVersion === "1.1.8") {
|
|
730634
|
+
writeToStdout(source_default.green(`RAYU is up to date (${"1.1.8"})`) + `
|
|
730586
730635
|
`);
|
|
730587
730636
|
} else {
|
|
730588
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.1.
|
|
730637
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.1.8"} to version ${result.latestVersion}`) + `
|
|
730589
730638
|
`);
|
|
730590
730639
|
await regenerateCompletionCache();
|
|
730591
730640
|
}
|
|
@@ -730645,12 +730694,12 @@ async function update() {
|
|
|
730645
730694
|
`);
|
|
730646
730695
|
await gracefulShutdown(1);
|
|
730647
730696
|
}
|
|
730648
|
-
if (latestVersion === "1.1.
|
|
730649
|
-
writeToStdout(source_default.green(`RAYU is up to date (${"1.1.
|
|
730697
|
+
if (latestVersion === "1.1.8") {
|
|
730698
|
+
writeToStdout(source_default.green(`RAYU is up to date (${"1.1.8"})`) + `
|
|
730650
730699
|
`);
|
|
730651
730700
|
await gracefulShutdown(0);
|
|
730652
730701
|
}
|
|
730653
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.
|
|
730702
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.8"})
|
|
730654
730703
|
`);
|
|
730655
730704
|
writeToStdout(`Installing update...
|
|
730656
730705
|
`);
|
|
@@ -730695,7 +730744,7 @@ async function update() {
|
|
|
730695
730744
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
730696
730745
|
switch (status2) {
|
|
730697
730746
|
case "success":
|
|
730698
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.1.
|
|
730747
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.1.8"} to version ${latestVersion}`) + `
|
|
730699
730748
|
`);
|
|
730700
730749
|
await regenerateCompletionCache();
|
|
730701
730750
|
break;
|
|
@@ -730761,7 +730810,7 @@ __export(exports_uninstall, {
|
|
|
730761
730810
|
});
|
|
730762
730811
|
import { homedir as homedir43 } from "os";
|
|
730763
730812
|
async function uninstall() {
|
|
730764
|
-
writeToStdout(`Uninstalling Rayu CLI (${"1.1.
|
|
730813
|
+
writeToStdout(`Uninstalling Rayu CLI (${"1.1.8"})...
|
|
730765
730814
|
`);
|
|
730766
730815
|
writeToStdout(`Running: npm uninstall -g ${"@rayu-dev/rayu-cli"}
|
|
730767
730816
|
|
|
@@ -730786,7 +730835,7 @@ Try running manually:
|
|
|
730786
730835
|
await gracefulShutdown(1);
|
|
730787
730836
|
return;
|
|
730788
730837
|
}
|
|
730789
|
-
writeToStdout(source_default.green(`Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.1.
|
|
730838
|
+
writeToStdout(source_default.green(`Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.1.8"}
|
|
730790
730839
|
`));
|
|
730791
730840
|
writeToStdout(`Thanks for using Rayu CLI!
|
|
730792
730841
|
`);
|
|
@@ -731983,7 +732032,7 @@ ${customInstructions}` : customInstructions;
|
|
|
731983
732032
|
}
|
|
731984
732033
|
}
|
|
731985
732034
|
logForDiagnosticsNoPII("info", "started", {
|
|
731986
|
-
version: "1.1.
|
|
732035
|
+
version: "1.1.8",
|
|
731987
732036
|
is_native_binary: isInBundledMode()
|
|
731988
732037
|
});
|
|
731989
732038
|
registerCleanup(async () => {
|
|
@@ -732768,7 +732817,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
732768
732817
|
pendingHookMessages
|
|
732769
732818
|
}, renderAndRun);
|
|
732770
732819
|
}
|
|
732771
|
-
}).version("1.1.
|
|
732820
|
+
}).version("1.1.8 (Rayu-CLI)", "-v, --version", "Output the version number");
|
|
732772
732821
|
program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
732773
732822
|
program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
732774
732823
|
if (canUserConfigureAdvisor()) {
|
|
@@ -733289,7 +733338,7 @@ if (false) {}
|
|
|
733289
733338
|
async function main2() {
|
|
733290
733339
|
const args = process.argv.slice(2);
|
|
733291
733340
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
733292
|
-
console.log(`${"1.1.
|
|
733341
|
+
console.log(`${"1.1.8"} (Rayu-CLI)`);
|
|
733293
733342
|
return;
|
|
733294
733343
|
}
|
|
733295
733344
|
const {
|
|
@@ -733365,6 +733414,10 @@ async function main2() {
|
|
|
733365
733414
|
if (args.includes("--bare")) {
|
|
733366
733415
|
process.env.CLAUDE_CODE_SIMPLE = "1";
|
|
733367
733416
|
}
|
|
733417
|
+
{
|
|
733418
|
+
const { showFirstRunWelcome: showFirstRunWelcome2 } = await Promise.resolve().then(() => (init_firstRun(), exports_firstRun));
|
|
733419
|
+
showFirstRunWelcome2();
|
|
733420
|
+
}
|
|
733368
733421
|
const {
|
|
733369
733422
|
startCapturingEarlyInput: startCapturingEarlyInput2
|
|
733370
733423
|
} = await Promise.resolve().then(() => (init_earlyInput(), exports_earlyInput));
|