@rayu-dev/rayu-cli 1.4.469 → 1.4.471

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.
Files changed (3) hide show
  1. package/README.md +3 -3
  2. package/dist/rayu.js +206 -163
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -5,9 +5,9 @@ to any provider — Anthropic, OpenAI, NVIDIA, DeepSeek, Kimi/Moonshot, OpenRout
5
5
  Google Gemini, AWS Bedrock, local servers, or any OpenAI-compatible endpoint —
6
6
  with free model switching, full MCP support, and a complete built-in tool suite.
7
7
 
8
- **Website:** https://rayu-web.vercel.app
9
- **Docs:** https://rayu-web.vercel.app/docs
10
- **Changelog:** https://rayu-web.vercel.app/changelog
8
+ **Website:** https://rayucode.com
9
+ **Docs:** https://rayucode.com/docs
10
+ **Changelog:** https://rayucode.com/changelog
11
11
 
12
12
  ---
13
13
 
package/dist/rayu.js CHANGED
@@ -79606,7 +79606,7 @@ function getValidationTip(context) {
79606
79606
  }
79607
79607
  return tip;
79608
79608
  }
79609
- var DOCUMENTATION_BASE = "https://rayu-web.vercel.app/docs", TIP_MATCHERS, PATH_DOC_LINKS;
79609
+ var DOCUMENTATION_BASE = "https://rayucode.com/docs", TIP_MATCHERS, PATH_DOC_LINKS;
79610
79610
  var init_validationTips = __esm(() => {
79611
79611
  TIP_MATCHERS = [
79612
79612
  {
@@ -82334,7 +82334,7 @@ function createDefaultGlobalConfig() {
82334
82334
  showExpandedTodos: false,
82335
82335
  messageIdleNotifThresholdMs: 60000,
82336
82336
  autoConnectIde: false,
82337
- autoInstallIdeExtension: true,
82337
+ autoInstallIdeExtension: false,
82338
82338
  fileCheckpointingEnabled: true,
82339
82339
  terminalProgressBarEnabled: true,
82340
82340
  cachedStatsigGates: {},
@@ -82930,7 +82930,7 @@ function getAutoUpdaterDisabledReason() {
82930
82930
  return { type: "env", envVar: essentialTrafficEnvVar };
82931
82931
  }
82932
82932
  const config2 = getGlobalConfig();
82933
- if (config2.autoUpdates === false && (config2.installMethod !== "native" || config2.autoUpdatesProtectedForNative !== true)) {
82933
+ if (config2.autoUpdates !== true && (config2.installMethod !== "native" || config2.autoUpdatesProtectedForNative !== true)) {
82934
82934
  return { type: "config" };
82935
82935
  }
82936
82936
  return null;
@@ -148979,7 +148979,7 @@ var init_isEqual = __esm(() => {
148979
148979
 
148980
148980
  // src/utils/userAgent.ts
148981
148981
  function getRayuUserAgent() {
148982
- return `rayu/${"1.4.469"}`;
148982
+ return `rayu/${"1.4.471"}`;
148983
148983
  }
148984
148984
  var getClaudeCodeUserAgent;
148985
148985
  var init_userAgent = __esm(() => {
@@ -149005,7 +149005,7 @@ function getUserAgent() {
149005
149005
  const clientApp = process.env.RAYU_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}` : "";
149006
149006
  const workload = getWorkload();
149007
149007
  const workloadSuffix = workload ? `, workload/${workload}` : "";
149008
- return `rayu/${"1.4.469"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
149008
+ return `rayu/${"1.4.471"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
149009
149009
  }
149010
149010
  function getMCPUserAgent() {
149011
149011
  const parts = [];
@@ -149019,7 +149019,7 @@ function getMCPUserAgent() {
149019
149019
  parts.push(`client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}`);
149020
149020
  }
149021
149021
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
149022
- return `rayu/${"1.4.469"}${suffix}`;
149022
+ return `rayu/${"1.4.471"}${suffix}`;
149023
149023
  }
149024
149024
  function getWebFetchUserAgent() {
149025
149025
  return `Rayu-User (${getRayuUserAgent()})`;
@@ -157998,22 +157998,13 @@ function makeRayuHostedFetch() {
157998
157998
  const inner = globalThis.fetch;
157999
157999
  const wrapped = async (input, init = {}) => {
158000
158000
  const url3 = typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
158001
- if ((init?.method ?? "GET").toUpperCase() === "POST" && (url3.includes("/chat/completions") || url3.includes("/v1/messages")) && typeof init?.body === "string") {
158002
- const model = (() => {
158003
- try {
158004
- return JSON.parse(init.body).model;
158005
- } catch {
158006
- return;
158007
- }
158008
- })();
158009
- if (model) {
158010
- const { isHostedModelEntitled, hostedModelUpgradeMessage } = await Promise.resolve().then(() => (init_rayuEntitlements(), exports_rayuEntitlements));
158011
- if (!isHostedModelEntitled(model)) {
158012
- const message = hostedModelUpgradeMessage();
158013
- return new Response(JSON.stringify({
158014
- error: { message, type: "upgrade_required", code: "plan_upgrade_required" }
158015
- }), { status: 403, headers: { "content-type": "application/json" } });
158016
- }
158001
+ if ((init?.method ?? "GET").toUpperCase() === "POST" && (url3.includes("/chat/completions") || url3.includes("/v1/messages"))) {
158002
+ const { hasHostedModelAccess, hostedModelUpgradeMessage } = await Promise.resolve().then(() => (init_rayuEntitlements(), exports_rayuEntitlements));
158003
+ if (!hasHostedModelAccess()) {
158004
+ const message = hostedModelUpgradeMessage();
158005
+ return new Response(JSON.stringify({
158006
+ error: { message, type: "upgrade_required", code: "plan_upgrade_required" }
158007
+ }), { status: 403, headers: { "content-type": "application/json" } });
158017
158008
  }
158018
158009
  }
158019
158010
  const token = await getValidRayuAccessToken();
@@ -158083,6 +158074,7 @@ __export(exports_rayuEntitlements, {
158083
158074
  rayuFeatureAllowed: () => rayuFeatureAllowed,
158084
158075
  isHostedModelEntitled: () => isHostedModelEntitled,
158085
158076
  hostedModelUpgradeMessage: () => hostedModelUpgradeMessage,
158077
+ hasHostedModelAccess: () => hasHostedModelAccess,
158086
158078
  getCachedEntitlements: () => getCachedEntitlements,
158087
158079
  clearRayuEntitlements: () => clearRayuEntitlements,
158088
158080
  _setRayuEntitlementsForTesting: () => _setRayuEntitlementsForTesting,
@@ -158189,6 +158181,14 @@ function isHostedModelEntitled(modelCode) {
158189
158181
  const allowed = ent.allowedModels ?? [];
158190
158182
  return allowed.some((m2) => m2.code === modelCode);
158191
158183
  }
158184
+ function hasHostedModelAccess() {
158185
+ if (!isUseRayuOAuthEnabled())
158186
+ return true;
158187
+ const ent = getCachedEntitlements();
158188
+ if (!ent)
158189
+ return true;
158190
+ return (ent.allowedModels ?? []).length > 0;
158191
+ }
158192
158192
  function hostedModelUpgradeMessage() {
158193
158193
  const url3 = `${getRayuWebBaseUrl()}/plans`;
158194
158194
  return `\uD83D\uDD12 Rayu-hosted models are a paid feature. Please upgrade your plan to use them: ${url3}`;
@@ -205334,7 +205334,7 @@ function getAttributionHeader(fingerprint) {
205334
205334
  if (!isAttributionHeaderEnabled()) {
205335
205335
  return "";
205336
205336
  }
205337
- const version2 = `${"1.4.469"}.${fingerprint}`;
205337
+ const version2 = `${"1.4.471"}.${fingerprint}`;
205338
205338
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
205339
205339
  const cch = "";
205340
205340
  const workload = getWorkload();
@@ -259303,7 +259303,7 @@ var init_metadata = __esm(() => {
259303
259303
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
259304
259304
  WHITESPACE_REGEX = /\s+/;
259305
259305
  getVersionBase = memoize_default(() => {
259306
- const match = "1.4.469".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
259306
+ const match = "1.4.471".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
259307
259307
  return match ? match[0] : undefined;
259308
259308
  });
259309
259309
  buildEnvContext = memoize_default(async () => {
@@ -259342,7 +259342,7 @@ var init_metadata = __esm(() => {
259342
259342
  },
259343
259343
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
259344
259344
  isRayuAction: isEnvTruthy(process.env.RAYU_ACTION),
259345
- version: "1.4.469",
259345
+ version: "1.4.471",
259346
259346
  versionBase: getVersionBase(),
259347
259347
  buildTime: "",
259348
259348
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
@@ -269235,7 +269235,8 @@ var LITERAL_BACKSLASH = "\\", SNAPSHOT_CREATION_TIMEOUT = 1e4, VCS_DIRECTORIES_T
269235
269235
  ...process.env.CLAUDE_CODE_DONT_INHERIT_ENV ? {} : subprocessEnv(),
269236
269236
  SHELL: binShell,
269237
269237
  GIT_EDITOR: "true",
269238
- CLAUDECODE: "1"
269238
+ CLAUDECODE: "1",
269239
+ AI_AGENT: "rayu"
269239
269240
  },
269240
269241
  timeout: SNAPSHOT_CREATION_TIMEOUT,
269241
269242
  maxBuffer: 1024 * 1024,
@@ -269790,6 +269791,7 @@ async function exec3(command, abortSignal, shellType, options) {
269790
269791
  SHELL: shellType === "bash" ? binShell : undefined,
269791
269792
  GIT_EDITOR: "true",
269792
269793
  CLAUDECODE: "1",
269794
+ AI_AGENT: "rayu",
269793
269795
  ...envOverrides,
269794
269796
  ...{}
269795
269797
  },
@@ -291356,7 +291358,7 @@ function getTelemetryAttributes() {
291356
291358
  attributes["session.id"] = sessionId;
291357
291359
  }
291358
291360
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
291359
- attributes["app.version"] = "1.4.469";
291361
+ attributes["app.version"] = "1.4.471";
291360
291362
  }
291361
291363
  const oauthAccount = getOauthAccountInfo();
291362
291364
  if (oauthAccount) {
@@ -401713,7 +401715,7 @@ function getInstallationEnv() {
401713
401715
  return;
401714
401716
  }
401715
401717
  function getClaudeCodeVersion() {
401716
- return "1.4.469";
401718
+ return "1.4.471";
401717
401719
  }
401718
401720
  async function getInstalledVSCodeExtensionVersion(command) {
401719
401721
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -401906,7 +401908,7 @@ async function closeOpenDiffs(ideClient) {
401906
401908
  }
401907
401909
  async function initializeIdeIntegration(onIdeDetected, ideToInstallExtension, onShowIdeOnboarding, onInstallationComplete) {
401908
401910
  findAvailableIDE().then(onIdeDetected);
401909
- const shouldAutoInstall = getGlobalConfig().autoInstallIdeExtension ?? true;
401911
+ const shouldAutoInstall = getGlobalConfig().autoInstallIdeExtension ?? false;
401910
401912
  if (!isEnvTruthy(process.env.CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL) && shouldAutoInstall) {
401911
401913
  const ideType = ideToInstallExtension ?? getTerminalIdeType();
401912
401914
  if (ideType) {
@@ -406951,7 +406953,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
406951
406953
  const client3 = new Client({
406952
406954
  name: "claude-code",
406953
406955
  title: "RAYU",
406954
- version: "1.4.469",
406956
+ version: "1.4.471",
406955
406957
  description: "Anthropic's agentic coding tool",
406956
406958
  websiteUrl: PRODUCT_URL
406957
406959
  }, {
@@ -407268,7 +407270,7 @@ var init_client7 = __esm(() => {
407268
407270
  const client3 = new Client({
407269
407271
  name: "claude-code",
407270
407272
  title: "RAYU",
407271
- version: "1.4.469",
407273
+ version: "1.4.471",
407272
407274
  description: "Anthropic's agentic coding tool",
407273
407275
  websiteUrl: PRODUCT_URL
407274
407276
  }, {
@@ -422087,7 +422089,7 @@ function computeFingerprint(messageText, version2) {
422087
422089
  }
422088
422090
  function computeFingerprintFromMessages(messages) {
422089
422091
  const firstMessageText = extractFirstMessageText(messages);
422090
- return computeFingerprint(firstMessageText, "1.4.469");
422092
+ return computeFingerprint(firstMessageText, "1.4.471");
422091
422093
  }
422092
422094
  var FINGERPRINT_SALT = "59cf53e54c78";
422093
422095
  var init_fingerprint = () => {};
@@ -422129,7 +422131,7 @@ async function sideQuery(opts) {
422129
422131
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
422130
422132
  }
422131
422133
  const messageText = extractFirstUserMessageText(messages);
422132
- const fingerprint = computeFingerprint(messageText, "1.4.469");
422134
+ const fingerprint = computeFingerprint(messageText, "1.4.471");
422133
422135
  const attributionHeader = getAttributionHeader(fingerprint);
422134
422136
  const systemBlocks = [
422135
422137
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -445513,7 +445515,11 @@ function buildInheritedCliFlags(options) {
445513
445515
  return flags.join(" ");
445514
445516
  }
445515
445517
  function buildInheritedEnvVars() {
445516
- const envVars = ["CLAUDECODE=1", "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1"];
445518
+ const envVars = [
445519
+ "CLAUDECODE=1",
445520
+ "AI_AGENT=rayu",
445521
+ "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1"
445522
+ ];
445517
445523
  for (const key2 of TEAMMATE_ENV_VARS) {
445518
445524
  const value = process.env[key2];
445519
445525
  if (value !== undefined && value !== "") {
@@ -521465,9 +521471,9 @@ async function assertMinVersion() {
521465
521471
  if (false) {}
521466
521472
  try {
521467
521473
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
521468
- if (versionConfig.minVersion && lt("1.4.469", versionConfig.minVersion)) {
521474
+ if (versionConfig.minVersion && lt("1.4.471", versionConfig.minVersion)) {
521469
521475
  console.error(`
521470
- It looks like your version of RAYU (${"1.4.469"}) needs an update.
521476
+ It looks like your version of RAYU (${"1.4.471"}) needs an update.
521471
521477
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
521472
521478
 
521473
521479
  To update, please run:
@@ -521693,7 +521699,7 @@ async function installGlobalPackage(specificVersion) {
521693
521699
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
521694
521700
  logEvent("tengu_auto_updater_lock_contention", {
521695
521701
  pid: process.pid,
521696
- currentVersion: "1.4.469"
521702
+ currentVersion: "1.4.471"
521697
521703
  });
521698
521704
  return "in_progress";
521699
521705
  }
@@ -521702,7 +521708,7 @@ async function installGlobalPackage(specificVersion) {
521702
521708
  if (!env3.isRunningWithBun() && env3.isNpmFromWindowsPath()) {
521703
521709
  logError2(new Error("Windows NPM detected in WSL environment"));
521704
521710
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
521705
- currentVersion: "1.4.469"
521711
+ currentVersion: "1.4.471"
521706
521712
  });
521707
521713
  console.error(`
521708
521714
  Error: Windows NPM detected in WSL
@@ -522014,14 +522020,14 @@ async function getInstallationPath() {
522014
522020
  return await realpath11(process.execPath);
522015
522021
  } catch {}
522016
522022
  try {
522017
- const path24 = await which("claude");
522023
+ const path24 = await which("rayu");
522018
522024
  if (path24) {
522019
522025
  return path24;
522020
522026
  }
522021
522027
  } catch {}
522022
522028
  try {
522023
- await getFsImplementation().stat(join123(homedir29(), ".local/bin/claude"));
522024
- return join123(homedir29(), ".local/bin/claude");
522029
+ await getFsImplementation().stat(join123(homedir29(), ".local/bin/rayu"));
522030
+ return join123(homedir29(), ".local/bin/rayu");
522025
522031
  } catch {}
522026
522032
  return "native";
522027
522033
  }
@@ -522048,10 +522054,7 @@ async function detectMultipleInstallations() {
522048
522054
  if (await localInstallationExists()) {
522049
522055
  installations.push({ type: "npm-local", path: localPath });
522050
522056
  }
522051
- const packagesToCheck = ["@anthropic-ai/claude-code"];
522052
- if (true) {
522053
- packagesToCheck.push("@rayu-dev/rayu-cli");
522054
- }
522057
+ const packagesToCheck = ["@rayu-dev/rayu-cli"];
522055
522058
  const npmResult = await execFileNoThrow("npm", [
522056
522059
  "-g",
522057
522060
  "config",
@@ -522061,7 +522064,7 @@ async function detectMultipleInstallations() {
522061
522064
  if (npmResult.code === 0 && npmResult.stdout) {
522062
522065
  const npmPrefix = npmResult.stdout.trim();
522063
522066
  const isWindows2 = getPlatform() === "windows";
522064
- const globalBinPath = isWindows2 ? join123(npmPrefix, "claude") : join123(npmPrefix, "bin", "claude");
522067
+ const globalBinPath = isWindows2 ? join123(npmPrefix, "rayu") : join123(npmPrefix, "bin", "rayu");
522065
522068
  let globalBinExists = false;
522066
522069
  try {
522067
522070
  await fs14.stat(globalBinPath);
@@ -522091,14 +522094,14 @@ async function detectMultipleInstallations() {
522091
522094
  }
522092
522095
  }
522093
522096
  }
522094
- const nativeBinPath = join123(homedir29(), ".local", "bin", "claude");
522097
+ const nativeBinPath = join123(homedir29(), ".local", "bin", "rayu");
522095
522098
  try {
522096
522099
  await fs14.stat(nativeBinPath);
522097
522100
  installations.push({ type: "native", path: nativeBinPath });
522098
522101
  } catch {}
522099
522102
  const config4 = getGlobalConfig();
522100
522103
  if (config4.installMethod === "native") {
522101
- const nativeDataPath = join123(homedir29(), ".local", "share", "claude");
522104
+ const nativeDataPath = join123(homedir29(), ".local", "share", "rayu");
522102
522105
  try {
522103
522106
  await fs14.stat(nativeDataPath);
522104
522107
  if (!installations.some((i4) => i4.type === "native")) {
@@ -522177,37 +522180,37 @@ async function detectConfigurationIssues(type) {
522177
522180
  if (type === "npm-local" && config4.installMethod !== "local") {
522178
522181
  warnings.push({
522179
522182
  issue: `Running from local installation but config install method is '${config4.installMethod}'`,
522180
- fix: "Consider using native installation: claude install"
522183
+ fix: "Consider using native installation: rayu install"
522181
522184
  });
522182
522185
  }
522183
522186
  if (type === "native" && config4.installMethod !== "native") {
522184
522187
  warnings.push({
522185
522188
  issue: `Running native installation but config install method is '${config4.installMethod}'`,
522186
- fix: "Run claude install to update configuration"
522189
+ fix: "Run rayu install to update configuration"
522187
522190
  });
522188
522191
  }
522189
522192
  }
522190
522193
  if (type === "npm-global" && await localInstallationExists()) {
522191
522194
  warnings.push({
522192
522195
  issue: "Local installation exists but not being used",
522193
- fix: "Consider using native installation: claude install"
522196
+ fix: "Consider using native installation: rayu install"
522194
522197
  });
522195
522198
  }
522196
522199
  const existingAlias = await findClaudeAlias();
522197
522200
  const validAlias = await findValidClaudeAlias();
522198
522201
  if (type === "npm-local") {
522199
- const whichResult = await which("claude");
522202
+ const whichResult = await which("rayu");
522200
522203
  const claudeInPath = !!whichResult;
522201
522204
  if (!claudeInPath && !validAlias) {
522202
522205
  if (existingAlias) {
522203
522206
  warnings.push({
522204
522207
  issue: "Local installation not accessible",
522205
- fix: `Alias exists but points to invalid target: ${existingAlias}. Update alias: alias claude="~/.rayu/local/claude"`
522208
+ fix: `Alias exists but points to invalid target: ${existingAlias}. Update alias: alias rayu="~/.rayu/local/rayu"`
522206
522209
  });
522207
522210
  } else {
522208
522211
  warnings.push({
522209
522212
  issue: "Local installation not accessible",
522210
- fix: 'Create alias: alias claude="~/.rayu/local/claude"'
522213
+ fix: 'Create alias: alias rayu="~/.rayu/local/rayu"'
522211
522214
  });
522212
522215
  }
522213
522216
  }
@@ -522233,7 +522236,7 @@ function detectLinuxGlobPatternWarnings() {
522233
522236
  }
522234
522237
  async function getDoctorDiagnostic() {
522235
522238
  const installationType = await getCurrentInstallationType();
522236
- const version2 = typeof MACRO !== "undefined" ? "1.4.469" : "unknown";
522239
+ const version2 = typeof MACRO !== "undefined" ? "1.4.471" : "unknown";
522237
522240
  const installationPath = await getInstallationPath();
522238
522241
  const invokedBinary = getInvokedBinary();
522239
522242
  const multipleInstallations = await detectMultipleInstallations();
@@ -522244,10 +522247,7 @@ async function getDoctorDiagnostic() {
522244
522247
  const isWindows2 = getPlatform() === "windows";
522245
522248
  for (const install of npmInstalls) {
522246
522249
  if (install.type === "npm-global") {
522247
- let uninstallCmd = "npm -g uninstall @anthropic-ai/claude-code";
522248
- if (true) {
522249
- uninstallCmd += ` && npm -g uninstall ${"@rayu-dev/rayu-cli"}`;
522250
- }
522250
+ const uninstallCmd = `npm -g uninstall ${"@rayu-dev/rayu-cli"}`;
522251
522251
  warnings.push({
522252
522252
  issue: `Leftover npm global installation at ${install.path}`,
522253
522253
  fix: `Run: ${uninstallCmd}`
@@ -522274,7 +522274,7 @@ async function getDoctorDiagnostic() {
522274
522274
  if (!hasUpdatePermissions && !getAutoUpdaterDisabledReason()) {
522275
522275
  warnings.push({
522276
522276
  issue: "Insufficient permissions for auto-updates",
522277
- fix: "Do one of: (1) Re-install node without sudo, or (2) Use `claude install` for native installation"
522277
+ fix: "Do one of: (1) Re-install node without sudo, or (2) Use `rayu install` for native installation"
522278
522278
  });
522279
522279
  }
522280
522280
  }
@@ -522779,15 +522779,15 @@ function getPlatform3() {
522779
522779
  return `${os7}-${arch}`;
522780
522780
  }
522781
522781
  function getBinaryName(platform4) {
522782
- return platform4.startsWith("win32") ? "claude.exe" : "claude";
522782
+ return platform4.startsWith("win32") ? "rayu.exe" : "rayu";
522783
522783
  }
522784
522784
  function getBaseDirectories() {
522785
522785
  const platform4 = getPlatform3();
522786
522786
  const executableName = getBinaryName(platform4);
522787
522787
  return {
522788
- versions: join127(getXDGDataHome(), "claude", "versions"),
522789
- staging: join127(getXDGCacheHome(), "claude", "staging"),
522790
- locks: join127(getXDGStateHome(), "claude", "locks"),
522788
+ versions: join127(getXDGDataHome(), "rayu", "versions"),
522789
+ staging: join127(getXDGCacheHome(), "rayu", "staging"),
522790
+ locks: join127(getXDGStateHome(), "rayu", "locks"),
522791
522791
  executable: join127(getUserBinDir(), executableName)
522792
522792
  };
522793
522793
  }
@@ -523027,8 +523027,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
523027
523027
  const maxVersion = await getMaxVersion();
523028
523028
  if (maxVersion && gt(version2, maxVersion)) {
523029
523029
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
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`);
523030
+ if (gte("1.4.471", maxVersion)) {
523031
+ logForDebugging(`Native installer: current version ${"1.4.471"} is already at or above maxVersion ${maxVersion}, skipping update`);
523032
523032
  logEvent("tengu_native_update_skipped_max_version", {
523033
523033
  latency_ms: Date.now() - startTime2,
523034
523034
  max_version: maxVersion,
@@ -523039,7 +523039,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
523039
523039
  version2 = maxVersion;
523040
523040
  }
523041
523041
  }
523042
- if (!forceReinstall && version2 === "1.4.469" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
523042
+ if (!forceReinstall && version2 === "1.4.471" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
523043
523043
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
523044
523044
  logEvent("tengu_native_update_complete", {
523045
523045
  latency_ms: Date.now() - startTime2,
@@ -524080,8 +524080,19 @@ function buildAccountProperties() {
524080
524080
  return properties;
524081
524081
  }
524082
524082
  function buildAPIProviderProperties() {
524083
- const apiProvider = getAPIProvider();
524084
524083
  const properties = [];
524084
+ if (isOpenAICompatibleActive()) {
524085
+ const active = getActiveProvider();
524086
+ const baseURL = process.env.RAYU_OPENAI_BASE_URL ?? active?.baseURL;
524087
+ if (active?.id) {
524088
+ properties.push({ label: "API provider", value: active.id });
524089
+ }
524090
+ if (baseURL) {
524091
+ properties.push({ label: "API base URL", value: baseURL });
524092
+ }
524093
+ return properties;
524094
+ }
524095
+ const apiProvider = getAPIProvider();
524085
524096
  if (apiProvider !== "anthropic") {
524086
524097
  const providerLabel = {
524087
524098
  bedrock: "AWS Bedrock",
@@ -524215,6 +524226,7 @@ var init_status = __esm(() => {
524215
524226
  init_ide();
524216
524227
  init_model();
524217
524228
  init_providers();
524229
+ init_rayuConfig();
524218
524230
  init_mtls();
524219
524231
  init_nativeInstaller();
524220
524232
  init_proxy();
@@ -524235,7 +524247,7 @@ function buildPrimarySection() {
524235
524247
  });
524236
524248
  return [{
524237
524249
  label: "Version",
524238
- value: "1.4.469"
524250
+ value: "1.4.471"
524239
524251
  }, {
524240
524252
  label: "Session name",
524241
524253
  value: nameValue
@@ -527215,7 +527227,7 @@ function Config({
527215
527227
  ...isSupportedTerminal() ? [{
527216
527228
  id: "autoInstallIdeExtension",
527217
527229
  label: "Auto-install IDE extension",
527218
- value: globalConfig2.autoInstallIdeExtension ?? true,
527230
+ value: globalConfig2.autoInstallIdeExtension ?? false,
527219
527231
  type: "boolean",
527220
527232
  onChange(autoInstallIdeExtension) {
527221
527233
  saveGlobalConfig((current_17) => ({
@@ -527906,7 +527918,7 @@ function Config({
527906
527918
  }
527907
527919
  })
527908
527920
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime168.jsx(ChannelDowngradeDialog, {
527909
- currentVersion: "1.4.469",
527921
+ currentVersion: "1.4.471",
527910
527922
  onChoice: (choice) => {
527911
527923
  setShowSubmenu(null);
527912
527924
  setTabsHidden(false);
@@ -527918,7 +527930,7 @@ function Config({
527918
527930
  autoUpdatesChannel: "stable"
527919
527931
  };
527920
527932
  if (choice === "stay") {
527921
- newSettings.minimumVersion = "1.4.469";
527933
+ newSettings.minimumVersion = "1.4.471";
527922
527934
  }
527923
527935
  updateSettingsForSource("userSettings", newSettings);
527924
527936
  setSettingsData((prev_27) => ({
@@ -528397,6 +528409,7 @@ function isEligibleForOverageCreditGrant() {
528397
528409
  return formatGrantAmount(info) !== null;
528398
528410
  }
528399
528411
  function shouldShowOverageCreditUpsell() {
528412
+ return false;
528400
528413
  if (!isEligibleForOverageCreditGrant())
528401
528414
  return false;
528402
528415
  const config4 = getGlobalConfig();
@@ -535102,7 +535115,7 @@ ${editorHint}`, {
535102
535115
  children: [
535103
535116
  "Learn more: ",
535104
535117
  /* @__PURE__ */ jsx_runtime191.jsx(Link, {
535105
- url: "https://rayu-web.vercel.app/docs"
535118
+ url: "https://rayucode.com/docs"
535106
535119
  })
535107
535120
  ]
535108
535121
  })
@@ -535978,7 +535991,7 @@ function HelpV2(t0) {
535978
535991
  let t6;
535979
535992
  if ($3[31] !== tabs) {
535980
535993
  t6 = /* @__PURE__ */ jsx_runtime195.jsx(Tabs, {
535981
- title: `Rayu-CLI v${"1.4.469"}`,
535994
+ title: `Rayu-CLI v${"1.4.471"}`,
535982
535995
  color: "professionalBlue",
535983
535996
  defaultTab: "general",
535984
535997
  children: tabs
@@ -556061,7 +556074,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
556061
556074
  }
556062
556075
  return [];
556063
556076
  }
556064
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.469") {
556077
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.471") {
556065
556078
  if (false) {}
556066
556079
  const cachedChangelog = await getStoredChangelog();
556067
556080
  if (lastSeenVersion !== currentVersion || !cachedChangelog) {
@@ -556074,7 +556087,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.469")
556074
556087
  releaseNotes
556075
556088
  };
556076
556089
  }
556077
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.4.469") {
556090
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.4.471") {
556078
556091
  if (false) {}
556079
556092
  const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
556080
556093
  return {
@@ -556118,8 +556131,8 @@ function calculateLayoutDimensions(columns, layoutMode, optimalLeftWidth) {
556118
556131
  totalWidth
556119
556132
  };
556120
556133
  }
556121
- function calculateOptimalLeftWidth(welcomeMessage, truncatedCwd, modelLine) {
556122
- const contentWidth = Math.max(stringWidth(welcomeMessage), stringWidth(truncatedCwd), stringWidth(modelLine), 20);
556134
+ function calculateOptimalLeftWidth(welcomeMessage, truncatedCwd, modelLine, bannerWidth) {
556135
+ const contentWidth = Math.max(stringWidth(welcomeMessage), stringWidth(truncatedCwd), stringWidth(modelLine), bannerWidth);
556123
556136
  return Math.min(contentWidth + 4, MAX_LEFT_WIDTH);
556124
556137
  }
556125
556138
  function formatWelcomeMessage(username) {
@@ -556202,7 +556215,7 @@ function getRecentActivitySync() {
556202
556215
  return cachedActivity;
556203
556216
  }
556204
556217
  function getLogoDisplayData() {
556205
- const version2 = process.env.DEMO_VERSION ?? "1.4.469";
556218
+ const version2 = process.env.DEMO_VERSION ?? "1.4.471";
556206
556219
  const serverUrl = getDirectConnectServerUrl();
556207
556220
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
556208
556221
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -556867,6 +556880,7 @@ function resetIfPassesRefreshed() {
556867
556880
  }
556868
556881
  }
556869
556882
  function shouldShowGuestPassesUpsell() {
556883
+ return false;
556870
556884
  const {
556871
556885
  eligible: eligible2,
556872
556886
  hasCache
@@ -557366,7 +557380,7 @@ function LogoV2() {
557366
557380
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
557367
557381
  t2 = () => {
557368
557382
  const currentConfig = getGlobalConfig();
557369
- if (currentConfig.lastReleaseNotesSeen === "1.4.469") {
557383
+ if (currentConfig.lastReleaseNotesSeen === "1.4.471") {
557370
557384
  return;
557371
557385
  }
557372
557386
  saveGlobalConfig(_temp327);
@@ -557682,7 +557696,7 @@ function LogoV2() {
557682
557696
  children: /* @__PURE__ */ jsx_runtime236.jsxs(ThemedBox_default, {
557683
557697
  flexDirection: "column",
557684
557698
  borderStyle: "round",
557685
- borderColor: "brand",
557699
+ borderColor: "#5bf58d",
557686
557700
  borderText: t112,
557687
557701
  paddingX: 1,
557688
557702
  paddingY: 1,
@@ -557716,11 +557730,12 @@ function LogoV2() {
557716
557730
  });
557717
557731
  }
557718
557732
  const welcomeMessage_0 = formatWelcomeMessage(username);
557733
+ const bannerWidth = Math.max(...getActiveClawdBanner().lines.map(([line]) => stringWidth(line)));
557719
557734
  const modelLine = !process.env.IS_DEMO && config5.oauthAccount?.organizationName ? `${modelDisplayName} · ${billingType} · ${config5.oauthAccount.organizationName}` : `${modelDisplayName} · ${billingType}`;
557720
557735
  const cwdAvailableWidth_0 = agentName ? LEFT_PANEL_MAX_WIDTH - 1 - stringWidth(agentName) - 3 : LEFT_PANEL_MAX_WIDTH;
557721
557736
  const truncatedCwd_0 = truncatePath(cwd2, Math.max(cwdAvailableWidth_0, 10));
557722
557737
  const cwdLine = agentName ? `@${agentName} · ${truncatedCwd_0}` : truncatedCwd_0;
557723
- const optimalLeftWidth = calculateOptimalLeftWidth(welcomeMessage_0, cwdLine, modelLine);
557738
+ const optimalLeftWidth = calculateOptimalLeftWidth(welcomeMessage_0, cwdLine, modelLine, bannerWidth);
557724
557739
  const {
557725
557740
  leftWidth,
557726
557741
  rightWidth
@@ -557729,7 +557744,7 @@ function LogoV2() {
557729
557744
  const T1 = ThemedBox_default;
557730
557745
  const t11 = "column";
557731
557746
  const t12 = "round";
557732
- const t13 = "claude";
557747
+ const t13 = "#5bf58d";
557733
557748
  let t14;
557734
557749
  if ($3[44] !== borderTitle) {
557735
557750
  t14 = {
@@ -557832,7 +557847,7 @@ function LogoV2() {
557832
557847
  t24 = layoutMode === "horizontal" && /* @__PURE__ */ jsx_runtime236.jsx(ThemedBox_default, {
557833
557848
  height: "100%",
557834
557849
  borderStyle: "single",
557835
- borderColor: "brand",
557850
+ borderColor: "#5bf58d",
557836
557851
  borderDimColor: true,
557837
557852
  borderTop: false,
557838
557853
  borderBottom: false,
@@ -557844,7 +557859,7 @@ function LogoV2() {
557844
557859
  t24 = $3[61];
557845
557860
  }
557846
557861
  const _latestNpm = getCachedLatestNpmVersionSync();
557847
- const _updateFeeds = _latestNpm && gt(_latestNpm, "1.4.469") ? [createUpdateAvailableFeed("1.4.469", _latestNpm)] : [];
557862
+ const _updateFeeds = _latestNpm && gt(_latestNpm, "1.4.471") ? [createUpdateAvailableFeed("1.4.471", _latestNpm)] : [];
557848
557863
  const t25 = layoutMode === "horizontal" && /* @__PURE__ */ jsx_runtime236.jsx(FeedColumn, {
557849
557864
  feeds: showOnboarding ? [createProjectOnboardingFeed(getSteps()), createRecentActivityFeed(activities)] : showGuestPassesUpsell ? [createRecentActivityFeed(activities), createGuestPassesFeed()] : showOverageCreditUpsell ? [createRecentActivityFeed(activities), createOverageCreditFeed()] : [createRecentActivityFeed(activities), ..._updateFeeds, createWhatsNewFeed(changelog)],
557850
557865
  maxWidth: rightWidth
@@ -558044,12 +558059,12 @@ function LogoV2() {
558044
558059
  return t41;
558045
558060
  }
558046
558061
  function _temp327(current) {
558047
- if (current.lastReleaseNotesSeen === "1.4.469") {
558062
+ if (current.lastReleaseNotesSeen === "1.4.471") {
558048
558063
  return current;
558049
558064
  }
558050
558065
  return {
558051
558066
  ...current,
558052
- lastReleaseNotesSeen: "1.4.469"
558067
+ lastReleaseNotesSeen: "1.4.471"
558053
558068
  };
558054
558069
  }
558055
558070
  function _temp241(s_0) {
@@ -558067,6 +558082,7 @@ var init_LogoV2 = __esm(() => {
558067
558082
  init_format();
558068
558083
  init_file2();
558069
558084
  init_Clawd();
558085
+ init_bannerConfig();
558070
558086
  init_FeedColumn();
558071
558087
  init_feedConfigs();
558072
558088
  init_autoUpdater();
@@ -558713,7 +558729,7 @@ var init_statusNoticeDefinitions = __esm(() => {
558713
558729
  if (!isSupportedJetBrainsTerminal()) {
558714
558730
  return false;
558715
558731
  }
558716
- const shouldAutoInstall = context2.config.autoInstallIdeExtension ?? true;
558732
+ const shouldAutoInstall = context2.config.autoInstallIdeExtension ?? false;
558717
558733
  if (!shouldAutoInstall) {
558718
558734
  return false;
558719
558735
  }
@@ -564515,7 +564531,7 @@ var init_ultrareviewCommand = __esm(() => {
564515
564531
  });
564516
564532
 
564517
564533
  // src/commands/review.ts
564518
- var CCR_TERMS_URL = "https://rayu-web.vercel.app/docs", LOCAL_REVIEW_PROMPT = (args) => `
564534
+ var CCR_TERMS_URL = "https://rayucode.com/docs", LOCAL_REVIEW_PROMPT = (args) => `
564519
564535
  You are an expert code reviewer. Follow these steps:
564520
564536
 
564521
564537
  1. If no PR number is provided in the args, run \`gh pr list\` to show open PRs
@@ -565947,7 +565963,7 @@ ${reasons}`,
565947
565963
  } : prev);
565948
565964
  }
565949
565965
  }
565950
- var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://rayu-web.vercel.app/docs", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call29 = async (onDone, context2, args) => {
565966
+ var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://rayucode.com/docs", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call29 = async (onDone, context2, args) => {
565951
565967
  const blurb = args.trim();
565952
565968
  if (!blurb) {
565953
565969
  const msg = await launchUltraplan2({
@@ -574858,14 +574874,14 @@ Other exit codes - show stderr to user only`,
574858
574874
  UserPromptSubmit: {
574859
574875
  summary: "When the user submits a prompt",
574860
574876
  description: `Input to command is JSON with original user prompt text.
574861
- Exit code 0 - stdout shown to Claude
574877
+ Exit code 0 - stdout shown to Rayu
574862
574878
  Exit code 2 - block processing, erase original prompt, and show stderr to user only
574863
574879
  Other exit codes - show stderr to user only`
574864
574880
  },
574865
574881
  SessionStart: {
574866
574882
  summary: "When a new session is started",
574867
574883
  description: `Input to command is JSON with session start source.
574868
- Exit code 0 - stdout shown to Claude
574884
+ Exit code 0 - stdout shown to Rayu
574869
574885
  Blocking errors are ignored
574870
574886
  Other exit codes - show stderr to user only`,
574871
574887
  matcherMetadata: {
@@ -574874,7 +574890,7 @@ Other exit codes - show stderr to user only`,
574874
574890
  }
574875
574891
  },
574876
574892
  Stop: {
574877
- summary: "Right before Claude concludes its response",
574893
+ summary: "Right before Rayu concludes its response",
574878
574894
  description: `Exit code 0 - stdout/stderr not shown
574879
574895
  Exit code 2 - show stderr to model and continue conversation
574880
574896
  Other exit codes - show stderr to user only`
@@ -574962,7 +574978,7 @@ Other exit codes - show stderr to user only`,
574962
574978
  Setup: {
574963
574979
  summary: "Repo setup hooks for init and maintenance",
574964
574980
  description: `Input to command is JSON with trigger (init or maintenance).
574965
- Exit code 0 - stdout shown to Claude
574981
+ Exit code 0 - stdout shown to Rayu
574966
574982
  Blocking errors are ignored
574967
574983
  Other exit codes - show stderr to user only`,
574968
574984
  matcherMetadata: {
@@ -575034,7 +575050,7 @@ Other exit codes - show stderr to user only`,
575034
575050
  },
575035
575051
  InstructionsLoaded: {
575036
575052
  summary: "When an instruction file (RAYU.md or rule) is loaded",
575037
- description: `Input to command is JSON with file_path, memory_type (User, Project, Local, Managed), load_reason (session_start, nested_traversal, path_glob_match, include, compact), globs (optional — the paths: frontmatter patterns that matched), trigger_file_path (optional — the file Claude touched that caused the load), and parent_file_path (optional — the file that @-included this one).
575053
+ description: `Input to command is JSON with file_path, memory_type (User, Project, Local, Managed), load_reason (session_start, nested_traversal, path_glob_match, include, compact), globs (optional — the paths: frontmatter patterns that matched), trigger_file_path (optional — the file Rayu touched that caused the load), and parent_file_path (optional — the file that @-included this one).
575038
575054
  Exit code 0 - command completes successfully
575039
575055
  Other exit codes - show stderr to user only
575040
575056
  This hook is observability-only and does not support blocking.`,
@@ -575137,7 +575153,7 @@ function SelectEventMode(t0) {
575137
575153
  " This menu is read-only. To add or modify hooks, edit settings.json directly or ask Rayu.",
575138
575154
  " ",
575139
575155
  /* @__PURE__ */ jsx_runtime280.jsx(Link, {
575140
- url: "https://rayu-web.vercel.app/docs",
575156
+ url: "https://rayucode.com/docs",
575141
575157
  children: "Learn more"
575142
575158
  })
575143
575159
  ]
@@ -576677,7 +576693,7 @@ async function call43(onDone, context2, args) {
576677
576693
  };
576678
576694
  const titleInfo = title ? ` "${title}"` : "";
576679
576695
  const resumeHint = `
576680
- To resume the original: claude -r ${originalSessionId}`;
576696
+ To resume the original: rayu -r ${originalSessionId}`;
576681
576697
  const successMessage = `Branched conversation${titleInfo}. You are now in the branch.${resumeHint}`;
576682
576698
  if (context2.resume) {
576683
576699
  await context2.resume(sessionId, forkLog, "fork");
@@ -583047,7 +583063,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
583047
583063
  smapsRollup,
583048
583064
  platform: process.platform,
583049
583065
  nodeVersion: process.version,
583050
- ccVersion: "1.4.469"
583066
+ ccVersion: "1.4.471"
583051
583067
  };
583052
583068
  }
583053
583069
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -583569,7 +583585,7 @@ var init_bridge_kick = __esm(() => {
583569
583585
  var call50 = async () => {
583570
583586
  return {
583571
583587
  type: "text",
583572
- value: "1.4.469"
583588
+ value: "1.4.471"
583573
583589
  };
583574
583590
  }, version2, version_default;
583575
583591
  var init_version = __esm(() => {
@@ -584292,8 +584308,8 @@ function OverridesSelect(t0) {
584292
584308
  "Learn more:",
584293
584309
  " ",
584294
584310
  /* @__PURE__ */ jsx_runtime314.jsx(Link, {
584295
- url: "https://rayu-web.vercel.app/docs",
584296
- children: "rayu-web.vercel.app/docs"
584311
+ url: "https://rayucode.com/docs",
584312
+ children: "rayucode.com/docs"
584297
584313
  })
584298
584314
  ]
584299
584315
  })
@@ -584663,8 +584679,8 @@ function SandboxModeTab(t0) {
584663
584679
  "Learn more:",
584664
584680
  " ",
584665
584681
  /* @__PURE__ */ jsx_runtime315.jsx(Link, {
584666
- url: "https://rayu-web.vercel.app/docs",
584667
- children: "rayu-web.vercel.app/docs"
584682
+ url: "https://rayucode.com/docs",
584683
+ children: "rayucode.com/docs"
584668
584684
  })
584669
584685
  ]
584670
584686
  })
@@ -585079,29 +585095,52 @@ function fmtReset(seconds) {
585079
585095
  function usd2(cents) {
585080
585096
  return `$${(cents / 100).toFixed(cents % 100 === 0 ? 0 : 2)}`;
585081
585097
  }
585098
+ function usageBar(used, total, width = 22) {
585099
+ if (!total || total <= 0)
585100
+ return "";
585101
+ const ratio = Math.max(0, Math.min(1, used / total));
585102
+ const filled = Math.round(ratio * width);
585103
+ return `[${"█".repeat(filled)}${"░".repeat(Math.max(0, width - filled))}]`;
585104
+ }
585105
+ function usagePct(used, total) {
585106
+ if (!total || total <= 0)
585107
+ return "";
585108
+ return `${Math.round(used / total * 100)}%`;
585109
+ }
585082
585110
  function formatRayuUsageSummary(c4) {
585083
585111
  const lines2 = [];
585084
585112
  const price = c4.priceCents > 0 ? ` (${usd2(c4.priceCents)}/mo)` : "";
585085
- lines2.push(`Plan: ${c4.planName || c4.plan}${price}`);
585113
+ lines2.push("Rayu Plan Usage");
585114
+ lines2.push("");
585115
+ lines2.push(` Plan ${c4.planName || c4.plan}${price}`);
585086
585116
  if (c4.periodEnd) {
585087
- lines2.push(`Renews: ${new Date(c4.periodEnd).toLocaleDateString()}`);
585117
+ lines2.push(` Renews ${new Date(c4.periodEnd).toLocaleDateString()}`);
585088
585118
  }
585089
585119
  if (c4.creditsPerPeriod == null) {
585090
- lines2.push("No hosted credit allowance on this plan — upgrade at /billing.");
585120
+ lines2.push("");
585121
+ lines2.push(" No hosted credit allowance on this plan — upgrade at /billing.");
585091
585122
  } else {
585092
585123
  const remC = c4.remainingCredits ?? 0;
585093
- lines2.push(`Credits: ${c4.usedCredits.toLocaleString()} / ${c4.creditsPerPeriod.toLocaleString()} used · ${remC.toLocaleString()} left (resets in ${fmtReset(c4.resetSeconds)})`);
585124
+ lines2.push("");
585125
+ lines2.push(` Credits ${usageBar(c4.usedCredits, c4.creditsPerPeriod)} ${usagePct(c4.usedCredits, c4.creditsPerPeriod)}`);
585126
+ lines2.push(` ${c4.usedCredits.toLocaleString()} / ${c4.creditsPerPeriod.toLocaleString()} used · ${remC.toLocaleString()} left · resets in ${fmtReset(c4.resetSeconds)}`);
585094
585127
  if (c4.allowanceTokens != null) {
585095
- lines2.push(`Tokens: ${(c4.usedTokens ?? 0).toLocaleString()} / ${c4.allowanceTokens.toLocaleString()}`);
585128
+ const usedT = c4.usedTokens ?? 0;
585129
+ lines2.push("");
585130
+ lines2.push(` Tokens ${usageBar(usedT, c4.allowanceTokens)} ${usagePct(usedT, c4.allowanceTokens)}`);
585131
+ lines2.push(` ${usedT.toLocaleString()} / ${c4.allowanceTokens.toLocaleString()}`);
585096
585132
  }
585097
585133
  }
585098
- if (c4.topUpEnabled) {
585099
- lines2.push(`Top-up balance: ${c4.topupBalance.toLocaleString()} credits`);
585100
- }
585101
585134
  if (c4.maxDailyTurns != null && c4.maxDailyTurns > 0) {
585102
585135
  const used = c4.turnsUsedToday ?? 0;
585103
585136
  const left = c4.turnsRemaining ?? Math.max(0, c4.maxDailyTurns - used);
585104
- lines2.push(`Daily turns: ${used.toLocaleString()} / ${c4.maxDailyTurns.toLocaleString()} used · ${left.toLocaleString()} left (resets in ${fmtReset(c4.turnsResetSeconds ?? 0)})`);
585137
+ lines2.push("");
585138
+ lines2.push(` Daily ${usageBar(used, c4.maxDailyTurns)} ${usagePct(used, c4.maxDailyTurns)}`);
585139
+ lines2.push(` ${used.toLocaleString()} / ${c4.maxDailyTurns.toLocaleString()} turns used · ${left.toLocaleString()} left · resets in ${fmtReset(c4.turnsResetSeconds ?? 0)}`);
585140
+ }
585141
+ if (c4.topUpEnabled) {
585142
+ lines2.push("");
585143
+ lines2.push(` Top-up ${c4.topupBalance.toLocaleString()} credits`);
585105
585144
  }
585106
585145
  return lines2.join(`
585107
585146
  `);
@@ -588422,13 +588461,13 @@ function SetModelAndClose({
588422
588461
  return;
588423
588462
  }
588424
588463
  if (model && isOpus1mUnavailable(model)) {
588425
- onDone(`Opus 4.6 with 1M context is not available for your account. Learn more: https://rayu-web.vercel.app/docs`, {
588464
+ onDone(`Opus 4.6 with 1M context is not available for your account. Learn more: https://rayucode.com/docs`, {
588426
588465
  display: "system"
588427
588466
  });
588428
588467
  return;
588429
588468
  }
588430
588469
  if (model && isSonnet1mUnavailable(model)) {
588431
- onDone(`Sonnet 4.6 with 1M context is not available for your account. Learn more: https://rayu-web.vercel.app/docs`, {
588470
+ onDone(`Sonnet 4.6 with 1M context is not available for your account. Learn more: https://rayucode.com/docs`, {
588432
588471
  display: "system"
588433
588472
  });
588434
588473
  return;
@@ -593827,7 +593866,7 @@ function generateHtmlReport(data, insights) {
593827
593866
  </html>`;
593828
593867
  }
593829
593868
  function buildExportData(data, insights, facets, remoteStats) {
593830
- const version3 = typeof MACRO !== "undefined" ? "1.4.469" : "unknown";
593869
+ const version3 = typeof MACRO !== "undefined" ? "1.4.471" : "unknown";
593831
593870
  const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
593832
593871
  const facets_summary = {
593833
593872
  total: facets.size,
@@ -597737,7 +597776,7 @@ var init_sessionStorage = __esm(() => {
597737
597776
  init_settings2();
597738
597777
  init_slowOperations();
597739
597778
  init_uuid();
597740
- VERSION6 = typeof MACRO !== "undefined" ? "1.4.469" : "unknown";
597779
+ VERSION6 = typeof MACRO !== "undefined" ? "1.4.471" : "unknown";
597741
597780
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
597742
597781
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
597743
597782
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -598955,7 +598994,7 @@ var init_filesystem = __esm(() => {
598955
598994
  });
598956
598995
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
598957
598996
  const nonce = randomBytes19(16).toString("hex");
598958
- return join153(getClaudeTempDir(), "bundled-skills", "1.4.469", nonce);
598997
+ return join153(getClaudeTempDir(), "bundled-skills", "1.4.471", nonce);
598959
598998
  });
598960
598999
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
598961
599000
  });
@@ -604125,7 +604164,7 @@ __export(exports_update, {
604125
604164
  update: () => update
604126
604165
  });
604127
604166
  async function update() {
604128
- writeToStdout(`Current version: ${"1.4.469"}
604167
+ writeToStdout(`Current version: ${"1.4.471"}
604129
604168
  `);
604130
604169
  const isBundled = isInBundledMode();
604131
604170
  if (isBundled) {
@@ -604156,13 +604195,13 @@ Manual check: npm view ${"@rayu-dev/rayu-cli"} version
604156
604195
  process.exit(1);
604157
604196
  return;
604158
604197
  }
604159
- if (latestVersion === "1.4.469") {
604198
+ if (latestVersion === "1.4.471") {
604160
604199
  writeToStdout(source_default.green(`
604161
- Rayu CLI is up to date (${"1.4.469"})
604200
+ Rayu CLI is up to date (${"1.4.471"})
604162
604201
  `));
604163
604202
  process.exit(0);
604164
604203
  }
604165
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.4.469"})
604204
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.4.471"})
604166
604205
  `);
604167
604206
  writeToStdout(`Installing update...
604168
604207
 
@@ -604229,14 +604268,14 @@ async function updateNativeBinary() {
604229
604268
  } catch {
604230
604269
  latestVersion = "";
604231
604270
  }
604232
- if (latestVersion && latestVersion === "1.4.469") {
604271
+ if (latestVersion && latestVersion === "1.4.471") {
604233
604272
  writeToStdout(source_default.green(`
604234
- Rayu CLI is up to date (1.4.469)
604273
+ Rayu CLI is up to date (1.4.471)
604235
604274
  `));
604236
604275
  process.exit(0);
604237
604276
  }
604238
604277
  if (latestVersion) {
604239
- writeToStdout(`New version available: ${latestVersion} (current: 1.4.469)
604278
+ writeToStdout(`New version available: ${latestVersion} (current: 1.4.471)
604240
604279
  `);
604241
604280
  }
604242
604281
  writeToStdout(`Downloading and installing update...
@@ -604251,13 +604290,13 @@ Rayu CLI is up to date (1.4.469)
604251
604290
  return;
604252
604291
  }
604253
604292
  writeToStdout(source_default.green(`
604254
- Rayu CLI is up to date (1.4.469)
604293
+ Rayu CLI is up to date (1.4.471)
604255
604294
  `));
604256
604295
  process.exit(0);
604257
604296
  }
604258
604297
  const updatedTo = result.latestVersion ?? latestVersion ?? "latest";
604259
604298
  writeToStdout(source_default.green(`
604260
- Successfully updated from 1.4.469 to ${updatedTo}
604299
+ Successfully updated from 1.4.471 to ${updatedTo}
604261
604300
  `));
604262
604301
  writeToStdout(`Restart your terminal to use the new version.
604263
604302
  `);
@@ -604322,7 +604361,7 @@ async function removeDataDir(dir) {
604322
604361
  async function uninstall(args = []) {
604323
604362
  const yes = args.includes("--yes") || args.includes("-y");
604324
604363
  const keepData = args.includes("--keep-data");
604325
- writeToStdout(`Uninstalling Rayu CLI (${"1.4.469"})...
604364
+ writeToStdout(`Uninstalling Rayu CLI (${"1.4.471"})...
604326
604365
  `);
604327
604366
  writeToStdout(`Running: npm uninstall -g ${"@rayu-dev/rayu-cli"}
604328
604367
 
@@ -604356,7 +604395,7 @@ This looks like a permissions error on npm's global install
604356
604395
  return;
604357
604396
  }
604358
604397
  writeToStdout(source_default.green(`
604359
- Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.4.469"}
604398
+ Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.4.471"}
604360
604399
  `));
604361
604400
  const configDir = getRayuConfigHomeDir();
604362
604401
  const dataExists = existsSync28(configDir);
@@ -604439,7 +604478,7 @@ function showFirstRunWelcome() {
604439
604478
  `);
604440
604479
  try {
604441
604480
  mkdirSync16(getRayuConfigHomeDir(), { recursive: true });
604442
- writeFileSync18(markerPath(), "1.4.469", "utf8");
604481
+ writeFileSync18(markerPath(), "1.4.471", "utf8");
604443
604482
  } catch {}
604444
604483
  }
604445
604484
  var init_firstRun = __esm(() => {
@@ -620625,7 +620664,7 @@ async function initializeBetaTracing(resource) {
620625
620664
  });
620626
620665
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
620627
620666
  setLoggerProvider(loggerProvider);
620628
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.469");
620667
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.471");
620629
620668
  setEventLogger(eventLogger);
620630
620669
  process.on("beforeExit", async () => {
620631
620670
  await loggerProvider?.forceFlush();
@@ -620665,7 +620704,7 @@ async function initializeTelemetry() {
620665
620704
  const platform4 = getPlatform();
620666
620705
  const baseAttributes = {
620667
620706
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "claude-code",
620668
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.4.469"
620707
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.4.471"
620669
620708
  };
620670
620709
  if (platform4 === "wsl") {
620671
620710
  const wslVersion = getWslVersion();
@@ -620710,7 +620749,7 @@ async function initializeTelemetry() {
620710
620749
  } catch {}
620711
620750
  };
620712
620751
  registerCleanup(shutdownTelemetry2);
620713
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.4.469");
620752
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.4.471");
620714
620753
  }
620715
620754
  const meterProvider = new import_sdk_metrics2.MeterProvider({
620716
620755
  resource,
@@ -620730,7 +620769,7 @@ async function initializeTelemetry() {
620730
620769
  });
620731
620770
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
620732
620771
  setLoggerProvider(loggerProvider);
620733
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.469");
620772
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.471");
620734
620773
  setEventLogger(eventLogger);
620735
620774
  logForDebugging("[3P telemetry] Event logger set successfully");
620736
620775
  process.on("beforeExit", async () => {
@@ -620792,7 +620831,7 @@ Current timeout: ${timeoutMs}ms
620792
620831
  }
620793
620832
  };
620794
620833
  registerCleanup(shutdownTelemetry);
620795
- return meterProvider.getMeter("com.anthropic.claude_code", "1.4.469");
620834
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.4.471");
620796
620835
  }
620797
620836
  async function flushTelemetry() {
620798
620837
  const meterProvider = getMeterProvider();
@@ -621500,7 +621539,7 @@ function CostThresholdDialog(t0) {
621500
621539
  children: "Learn more about how to monitor your spending:"
621501
621540
  }),
621502
621541
  /* @__PURE__ */ jsx_runtime345.jsx(Link, {
621503
- url: "https://rayu-web.vercel.app/docs"
621542
+ url: "https://rayucode.com/docs"
621504
621543
  })
621505
621544
  ]
621506
621545
  });
@@ -622294,7 +622333,7 @@ function buildSystemInitMessage(inputs) {
622294
622333
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
622295
622334
  apiKeySource: getAnthropicApiKeyWithSource().source,
622296
622335
  betas: getSdkBetas(),
622297
- claude_code_version: "1.4.469",
622336
+ claude_code_version: "1.4.471",
622298
622337
  output_style: outputStyle2,
622299
622338
  agents: inputs.agents.map((agent) => agent.agentType),
622300
622339
  skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
@@ -638527,8 +638566,8 @@ function FastModePicker(t0) {
638527
638566
  "Learn more:",
638528
638567
  " ",
638529
638568
  /* @__PURE__ */ jsx_runtime386.jsx(Link, {
638530
- url: "https://rayu-web.vercel.app/docs",
638531
- children: "https://rayu-web.vercel.app/docs"
638569
+ url: "https://rayucode.com/docs",
638570
+ children: "https://rayucode.com/docs"
638532
638571
  })
638533
638572
  ]
638534
638573
  });
@@ -638625,7 +638664,7 @@ var init_useVoiceEnabled = __esm(() => {
638625
638664
  function getSemverPart(version3) {
638626
638665
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
638627
638666
  }
638628
- function useUpdateNotification(updatedVersion, initialVersion = "1.4.469") {
638667
+ function useUpdateNotification(updatedVersion, initialVersion = "1.4.471") {
638629
638668
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react216.useState(() => getSemverPart(initialVersion));
638630
638669
  if (!updatedVersion) {
638631
638670
  return null;
@@ -638665,7 +638704,7 @@ function AutoUpdater({
638665
638704
  return;
638666
638705
  }
638667
638706
  if (false) {}
638668
- const currentVersion = "1.4.469";
638707
+ const currentVersion = "1.4.471";
638669
638708
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
638670
638709
  let latestVersion = await getLatestVersion(channel2);
638671
638710
  const isDisabled = isAutoUpdaterDisabled();
@@ -638878,12 +638917,12 @@ function NativeAutoUpdater({
638878
638917
  logEvent("tengu_native_auto_updater_start", {});
638879
638918
  try {
638880
638919
  const maxVersion = await getMaxVersion();
638881
- if (maxVersion && gt("1.4.469", maxVersion)) {
638920
+ if (maxVersion && gt("1.4.471", maxVersion)) {
638882
638921
  const msg = await getMaxVersionMessage();
638883
638922
  setMaxVersionIssue(msg ?? "affects your version");
638884
638923
  }
638885
638924
  const result = await installLatest(channel2);
638886
- const currentVersion = "1.4.469";
638925
+ const currentVersion = "1.4.471";
638887
638926
  const latencyMs = Date.now() - startTime2;
638888
638927
  if (result.lockFailed) {
638889
638928
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -639020,17 +639059,17 @@ function PackageManagerAutoUpdater(t0) {
639020
639059
  const maxVersion = await getMaxVersion();
639021
639060
  if (maxVersion && latest && gt(latest, maxVersion)) {
639022
639061
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
639023
- if (gte("1.4.469", maxVersion)) {
639024
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.4.469"} is already at or above maxVersion ${maxVersion}, skipping update`);
639062
+ if (gte("1.4.471", maxVersion)) {
639063
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.4.471"} is already at or above maxVersion ${maxVersion}, skipping update`);
639025
639064
  setUpdateAvailable(false);
639026
639065
  return;
639027
639066
  }
639028
639067
  latest = maxVersion;
639029
639068
  }
639030
- const hasUpdate = latest && !gte("1.4.469", latest) && !shouldSkipVersion(latest);
639069
+ const hasUpdate = latest && !gte("1.4.471", latest) && !shouldSkipVersion(latest);
639031
639070
  setUpdateAvailable(!!hasUpdate);
639032
639071
  if (hasUpdate) {
639033
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.4.469"} -> ${latest}`);
639072
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.4.471"} -> ${latest}`);
639034
639073
  }
639035
639074
  };
639036
639075
  $3[0] = t1;
@@ -639064,7 +639103,7 @@ function PackageManagerAutoUpdater(t0) {
639064
639103
  wrap: "truncate",
639065
639104
  children: [
639066
639105
  "currentVersion: ",
639067
- "1.4.469"
639106
+ "1.4.471"
639068
639107
  ]
639069
639108
  });
639070
639109
  $3[3] = verbose;
@@ -647228,7 +647267,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
647228
647267
  project_dir: getOriginalCwd(),
647229
647268
  added_dirs: addedDirs
647230
647269
  },
647231
- version: "1.4.469",
647270
+ version: "1.4.471",
647232
647271
  output_style: {
647233
647272
  name: outputStyleName
647234
647273
  },
@@ -649407,7 +649446,7 @@ var init_user = __esm(() => {
649407
649446
  deviceId,
649408
649447
  sessionId: getSessionId(),
649409
649448
  email: getEmail(),
649410
- appVersion: "1.4.469",
649449
+ appVersion: "1.4.471",
649411
649450
  platform: getHostPlatformForAnalytics(),
649412
649451
  organizationUuid,
649413
649452
  accountUuid,
@@ -658846,7 +658885,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
658846
658885
  } catch {}
658847
658886
  const data = {
658848
658887
  trigger,
658849
- version: "1.4.469",
658888
+ version: "1.4.471",
658850
658889
  platform: process.platform,
658851
658890
  transcript,
658852
658891
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -659674,7 +659713,7 @@ function TranscriptSharePrompt(t0) {
659674
659713
  marginLeft: 2,
659675
659714
  children: /* @__PURE__ */ jsx_runtime429.jsx(ThemedText, {
659676
659715
  dimColor: true,
659677
- children: "Learn more: https://rayu-web.vercel.app/docs"
659716
+ children: "Learn more: https://rayucode.com/docs"
659678
659717
  })
659679
659718
  });
659680
659719
  $3[7] = t4;
@@ -660788,6 +660827,7 @@ function isSupportedPlatform3() {
660788
660827
  return process.platform === "darwin" || process.platform === "win32" && process.arch === "x64";
660789
660828
  }
660790
660829
  function shouldShowDesktopUpsellStartup() {
660830
+ return false;
660791
660831
  if (!isSupportedPlatform3())
660792
660832
  return false;
660793
660833
  if (!getDesktopUpsellConfig().enable_startup_dialog)
@@ -670161,7 +670201,7 @@ function MCPServerDialogCopy() {
670161
670201
  "MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the",
670162
670202
  " ",
670163
670203
  /* @__PURE__ */ jsx_runtime451.jsx(Link, {
670164
- url: "https://rayu-web.vercel.app/docs",
670204
+ url: "https://rayucode.com/docs",
670165
670205
  children: "MCP documentation"
670166
670206
  }),
670167
670207
  "."
@@ -670813,7 +670853,7 @@ function WelcomeV2() {
670813
670853
  dimColor: true,
670814
670854
  children: [
670815
670855
  "v",
670816
- "1.4.469"
670856
+ "1.4.471"
670817
670857
  ]
670818
670858
  })
670819
670859
  ]
@@ -671820,7 +671860,7 @@ function completeOnboarding() {
671820
671860
  saveGlobalConfig((current) => ({
671821
671861
  ...current,
671822
671862
  hasCompletedOnboarding: true,
671823
- lastOnboardingVersion: "1.4.469"
671863
+ lastOnboardingVersion: "1.4.471"
671824
671864
  }));
671825
671865
  }
671826
671866
  function showDialog(root2, renderer) {
@@ -674057,7 +674097,7 @@ var init_keybindings3 = __esm(() => {
674057
674097
  init_bundledSkills();
674058
674098
  FILE_FORMAT_EXAMPLE = {
674059
674099
  $schema: "https://www.schemastore.org/claude-code-keybindings.json",
674060
- $docs: "https://rayu-web.vercel.app/docs",
674100
+ $docs: "https://rayucode.com/docs",
674061
674101
  bindings: [
674062
674102
  {
674063
674103
  context: "Chat",
@@ -676753,7 +676793,7 @@ function appendToLog(path29, message) {
676753
676793
  cwd: getFsImplementation().cwd(),
676754
676794
  userType: "external",
676755
676795
  sessionId: getSessionId(),
676756
- version: "1.4.469"
676796
+ version: "1.4.471"
676757
676797
  };
676758
676798
  getLogWriter(path29).write(messageWithTimestamp);
676759
676799
  }
@@ -680858,8 +680898,8 @@ async function getEnvLessBridgeConfig() {
680858
680898
  }
680859
680899
  async function checkEnvLessBridgeMinVersion() {
680860
680900
  const cfg = await getEnvLessBridgeConfig();
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.
680901
+ if (cfg.min_version && lt("1.4.471", cfg.min_version)) {
680902
+ return `Your version of RAYU (${"1.4.471"}) is too old for Remote Control.
680863
680903
  Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
680864
680904
  }
680865
680905
  return null;
@@ -681332,7 +681372,7 @@ async function initBridgeCore(params) {
681332
681372
  const rawApi = createBridgeApiClient({
681333
681373
  baseUrl,
681334
681374
  getAccessToken,
681335
- runnerVersion: "1.4.469",
681375
+ runnerVersion: "1.4.471",
681336
681376
  onDebug: logForDebugging,
681337
681377
  onAuth401,
681338
681378
  getTrustedDeviceToken
@@ -686687,7 +686727,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
686687
686727
  setCwd(cwd3);
686688
686728
  const server = new Server({
686689
686729
  name: "claude/tengu",
686690
- version: "1.4.469"
686730
+ version: "1.4.471"
686691
686731
  }, {
686692
686732
  capabilities: {
686693
686733
  tools: {}
@@ -688329,6 +688369,9 @@ function initializeEntrypoint(isNonInteractive) {
688329
688369
  return;
688330
688370
  }
688331
688371
  process.env.CLAUDE_CODE_ENTRYPOINT = isNonInteractive ? "sdk-cli" : "cli";
688372
+ if (!process.env.AI_AGENT) {
688373
+ process.env.AI_AGENT = "rayu";
688374
+ }
688332
688375
  }
688333
688376
  async function main() {
688334
688377
  profileCheckpoint("main_function_start");
@@ -689213,7 +689256,7 @@ ${customInstructions}` : customInstructions;
689213
689256
  }
689214
689257
  }
689215
689258
  logForDiagnosticsNoPII("info", "started", {
689216
- version: "1.4.469",
689259
+ version: "1.4.471",
689217
689260
  is_native_binary: isInBundledMode()
689218
689261
  });
689219
689262
  registerCleanup(async () => {
@@ -689932,7 +689975,7 @@ Usage: rayu --remote "your task description"`, () => gracefulShutdown(1));
689932
689975
  pendingHookMessages
689933
689976
  }, renderAndRun);
689934
689977
  }
689935
- }).version(`1.4.469 (${PRODUCT_NAME})`, "-v, --version", "Output the version number");
689978
+ }).version(`1.4.471 (${PRODUCT_NAME})`, "-v, --version", "Output the version number");
689936
689979
  program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
689937
689980
  program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
689938
689981
  if (canUserConfigureAdvisor()) {
@@ -690392,7 +690435,7 @@ if (false) {}
690392
690435
  async function main2() {
690393
690436
  const args = process.argv.slice(2);
690394
690437
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
690395
- console.log(`${"1.4.469"} (Rayu-CLI)`);
690438
+ console.log(`${"1.4.471"} (Rayu-CLI)`);
690396
690439
  return;
690397
690440
  }
690398
690441
  if (!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rayu-dev/rayu-cli",
3
- "version": "1.4.469",
3
+ "version": "1.4.471",
4
4
  "description": "Rayu-CLI — a multi-provider AI coding CLI",
5
5
  "type": "module",
6
6
  "bin": {