@rayu-dev/rayu-cli 1.4.470 → 1.4.472

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 +199 -151
  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.470"}`;
148982
+ return `rayu/${"1.4.472"}`;
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.470"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
149008
+ return `rayu/${"1.4.472"} (${"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.470"}${suffix}`;
149022
+ return `rayu/${"1.4.472"}${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.470"}.${fingerprint}`;
205337
+ const version2 = `${"1.4.472"}.${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.470".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
259306
+ const match = "1.4.472".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.470",
259345
+ version: "1.4.472",
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
  },
@@ -281715,6 +281717,13 @@ function isToolSearchEnabledOptimistic() {
281715
281717
  }
281716
281718
  return false;
281717
281719
  }
281720
+ if (!process.env.ENABLE_TOOL_SEARCH && (isRayuAnthropicCompatibleActive() || isOpenAICompatibleActive())) {
281721
+ if (!loggedOptimistic) {
281722
+ loggedOptimistic = true;
281723
+ logForDebugging(`[ToolSearch:optimistic] disabled: the active Rayu provider is a third-party (anthropic-compatible / openai-compatible) endpoint that does not accept tool_reference/defer_loading. All tool schemas are sent inline. Set ENABLE_TOOL_SEARCH=true only if your endpoint forwards the beta.`);
281724
+ }
281725
+ return false;
281726
+ }
281718
281727
  if (!process.env.ENABLE_TOOL_SEARCH && getAPIProvider() === "anthropic" && !isFirstPartyAnthropicBaseUrl()) {
281719
281728
  if (!loggedOptimistic) {
281720
281729
  loggedOptimistic = true;
@@ -291356,7 +291365,7 @@ function getTelemetryAttributes() {
291356
291365
  attributes["session.id"] = sessionId;
291357
291366
  }
291358
291367
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
291359
- attributes["app.version"] = "1.4.470";
291368
+ attributes["app.version"] = "1.4.472";
291360
291369
  }
291361
291370
  const oauthAccount = getOauthAccountInfo();
291362
291371
  if (oauthAccount) {
@@ -401713,7 +401722,7 @@ function getInstallationEnv() {
401713
401722
  return;
401714
401723
  }
401715
401724
  function getClaudeCodeVersion() {
401716
- return "1.4.470";
401725
+ return "1.4.472";
401717
401726
  }
401718
401727
  async function getInstalledVSCodeExtensionVersion(command) {
401719
401728
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -401906,7 +401915,7 @@ async function closeOpenDiffs(ideClient) {
401906
401915
  }
401907
401916
  async function initializeIdeIntegration(onIdeDetected, ideToInstallExtension, onShowIdeOnboarding, onInstallationComplete) {
401908
401917
  findAvailableIDE().then(onIdeDetected);
401909
- const shouldAutoInstall = getGlobalConfig().autoInstallIdeExtension ?? true;
401918
+ const shouldAutoInstall = getGlobalConfig().autoInstallIdeExtension ?? false;
401910
401919
  if (!isEnvTruthy(process.env.CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL) && shouldAutoInstall) {
401911
401920
  const ideType = ideToInstallExtension ?? getTerminalIdeType();
401912
401921
  if (ideType) {
@@ -406951,7 +406960,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
406951
406960
  const client3 = new Client({
406952
406961
  name: "claude-code",
406953
406962
  title: "RAYU",
406954
- version: "1.4.470",
406963
+ version: "1.4.472",
406955
406964
  description: "Anthropic's agentic coding tool",
406956
406965
  websiteUrl: PRODUCT_URL
406957
406966
  }, {
@@ -407268,7 +407277,7 @@ var init_client7 = __esm(() => {
407268
407277
  const client3 = new Client({
407269
407278
  name: "claude-code",
407270
407279
  title: "RAYU",
407271
- version: "1.4.470",
407280
+ version: "1.4.472",
407272
407281
  description: "Anthropic's agentic coding tool",
407273
407282
  websiteUrl: PRODUCT_URL
407274
407283
  }, {
@@ -422087,7 +422096,7 @@ function computeFingerprint(messageText, version2) {
422087
422096
  }
422088
422097
  function computeFingerprintFromMessages(messages) {
422089
422098
  const firstMessageText = extractFirstMessageText(messages);
422090
- return computeFingerprint(firstMessageText, "1.4.470");
422099
+ return computeFingerprint(firstMessageText, "1.4.472");
422091
422100
  }
422092
422101
  var FINGERPRINT_SALT = "59cf53e54c78";
422093
422102
  var init_fingerprint = () => {};
@@ -422129,7 +422138,7 @@ async function sideQuery(opts) {
422129
422138
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
422130
422139
  }
422131
422140
  const messageText = extractFirstUserMessageText(messages);
422132
- const fingerprint = computeFingerprint(messageText, "1.4.470");
422141
+ const fingerprint = computeFingerprint(messageText, "1.4.472");
422133
422142
  const attributionHeader = getAttributionHeader(fingerprint);
422134
422143
  const systemBlocks = [
422135
422144
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -445513,7 +445522,11 @@ function buildInheritedCliFlags(options) {
445513
445522
  return flags.join(" ");
445514
445523
  }
445515
445524
  function buildInheritedEnvVars() {
445516
- const envVars = ["CLAUDECODE=1", "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1"];
445525
+ const envVars = [
445526
+ "CLAUDECODE=1",
445527
+ "AI_AGENT=rayu",
445528
+ "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1"
445529
+ ];
445517
445530
  for (const key2 of TEAMMATE_ENV_VARS) {
445518
445531
  const value = process.env[key2];
445519
445532
  if (value !== undefined && value !== "") {
@@ -521465,9 +521478,9 @@ async function assertMinVersion() {
521465
521478
  if (false) {}
521466
521479
  try {
521467
521480
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
521468
- if (versionConfig.minVersion && lt("1.4.470", versionConfig.minVersion)) {
521481
+ if (versionConfig.minVersion && lt("1.4.472", versionConfig.minVersion)) {
521469
521482
  console.error(`
521470
- It looks like your version of RAYU (${"1.4.470"}) needs an update.
521483
+ It looks like your version of RAYU (${"1.4.472"}) needs an update.
521471
521484
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
521472
521485
 
521473
521486
  To update, please run:
@@ -521693,7 +521706,7 @@ async function installGlobalPackage(specificVersion) {
521693
521706
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
521694
521707
  logEvent("tengu_auto_updater_lock_contention", {
521695
521708
  pid: process.pid,
521696
- currentVersion: "1.4.470"
521709
+ currentVersion: "1.4.472"
521697
521710
  });
521698
521711
  return "in_progress";
521699
521712
  }
@@ -521702,7 +521715,7 @@ async function installGlobalPackage(specificVersion) {
521702
521715
  if (!env3.isRunningWithBun() && env3.isNpmFromWindowsPath()) {
521703
521716
  logError2(new Error("Windows NPM detected in WSL environment"));
521704
521717
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
521705
- currentVersion: "1.4.470"
521718
+ currentVersion: "1.4.472"
521706
521719
  });
521707
521720
  console.error(`
521708
521721
  Error: Windows NPM detected in WSL
@@ -522014,14 +522027,14 @@ async function getInstallationPath() {
522014
522027
  return await realpath11(process.execPath);
522015
522028
  } catch {}
522016
522029
  try {
522017
- const path24 = await which("claude");
522030
+ const path24 = await which("rayu");
522018
522031
  if (path24) {
522019
522032
  return path24;
522020
522033
  }
522021
522034
  } catch {}
522022
522035
  try {
522023
- await getFsImplementation().stat(join123(homedir29(), ".local/bin/claude"));
522024
- return join123(homedir29(), ".local/bin/claude");
522036
+ await getFsImplementation().stat(join123(homedir29(), ".local/bin/rayu"));
522037
+ return join123(homedir29(), ".local/bin/rayu");
522025
522038
  } catch {}
522026
522039
  return "native";
522027
522040
  }
@@ -522048,10 +522061,7 @@ async function detectMultipleInstallations() {
522048
522061
  if (await localInstallationExists()) {
522049
522062
  installations.push({ type: "npm-local", path: localPath });
522050
522063
  }
522051
- const packagesToCheck = ["@anthropic-ai/claude-code"];
522052
- if (true) {
522053
- packagesToCheck.push("@rayu-dev/rayu-cli");
522054
- }
522064
+ const packagesToCheck = ["@rayu-dev/rayu-cli"];
522055
522065
  const npmResult = await execFileNoThrow("npm", [
522056
522066
  "-g",
522057
522067
  "config",
@@ -522061,7 +522071,7 @@ async function detectMultipleInstallations() {
522061
522071
  if (npmResult.code === 0 && npmResult.stdout) {
522062
522072
  const npmPrefix = npmResult.stdout.trim();
522063
522073
  const isWindows2 = getPlatform() === "windows";
522064
- const globalBinPath = isWindows2 ? join123(npmPrefix, "claude") : join123(npmPrefix, "bin", "claude");
522074
+ const globalBinPath = isWindows2 ? join123(npmPrefix, "rayu") : join123(npmPrefix, "bin", "rayu");
522065
522075
  let globalBinExists = false;
522066
522076
  try {
522067
522077
  await fs14.stat(globalBinPath);
@@ -522091,14 +522101,14 @@ async function detectMultipleInstallations() {
522091
522101
  }
522092
522102
  }
522093
522103
  }
522094
- const nativeBinPath = join123(homedir29(), ".local", "bin", "claude");
522104
+ const nativeBinPath = join123(homedir29(), ".local", "bin", "rayu");
522095
522105
  try {
522096
522106
  await fs14.stat(nativeBinPath);
522097
522107
  installations.push({ type: "native", path: nativeBinPath });
522098
522108
  } catch {}
522099
522109
  const config4 = getGlobalConfig();
522100
522110
  if (config4.installMethod === "native") {
522101
- const nativeDataPath = join123(homedir29(), ".local", "share", "claude");
522111
+ const nativeDataPath = join123(homedir29(), ".local", "share", "rayu");
522102
522112
  try {
522103
522113
  await fs14.stat(nativeDataPath);
522104
522114
  if (!installations.some((i4) => i4.type === "native")) {
@@ -522177,37 +522187,37 @@ async function detectConfigurationIssues(type) {
522177
522187
  if (type === "npm-local" && config4.installMethod !== "local") {
522178
522188
  warnings.push({
522179
522189
  issue: `Running from local installation but config install method is '${config4.installMethod}'`,
522180
- fix: "Consider using native installation: claude install"
522190
+ fix: "Consider using native installation: rayu install"
522181
522191
  });
522182
522192
  }
522183
522193
  if (type === "native" && config4.installMethod !== "native") {
522184
522194
  warnings.push({
522185
522195
  issue: `Running native installation but config install method is '${config4.installMethod}'`,
522186
- fix: "Run claude install to update configuration"
522196
+ fix: "Run rayu install to update configuration"
522187
522197
  });
522188
522198
  }
522189
522199
  }
522190
522200
  if (type === "npm-global" && await localInstallationExists()) {
522191
522201
  warnings.push({
522192
522202
  issue: "Local installation exists but not being used",
522193
- fix: "Consider using native installation: claude install"
522203
+ fix: "Consider using native installation: rayu install"
522194
522204
  });
522195
522205
  }
522196
522206
  const existingAlias = await findClaudeAlias();
522197
522207
  const validAlias = await findValidClaudeAlias();
522198
522208
  if (type === "npm-local") {
522199
- const whichResult = await which("claude");
522209
+ const whichResult = await which("rayu");
522200
522210
  const claudeInPath = !!whichResult;
522201
522211
  if (!claudeInPath && !validAlias) {
522202
522212
  if (existingAlias) {
522203
522213
  warnings.push({
522204
522214
  issue: "Local installation not accessible",
522205
- fix: `Alias exists but points to invalid target: ${existingAlias}. Update alias: alias claude="~/.rayu/local/claude"`
522215
+ fix: `Alias exists but points to invalid target: ${existingAlias}. Update alias: alias rayu="~/.rayu/local/rayu"`
522206
522216
  });
522207
522217
  } else {
522208
522218
  warnings.push({
522209
522219
  issue: "Local installation not accessible",
522210
- fix: 'Create alias: alias claude="~/.rayu/local/claude"'
522220
+ fix: 'Create alias: alias rayu="~/.rayu/local/rayu"'
522211
522221
  });
522212
522222
  }
522213
522223
  }
@@ -522233,7 +522243,7 @@ function detectLinuxGlobPatternWarnings() {
522233
522243
  }
522234
522244
  async function getDoctorDiagnostic() {
522235
522245
  const installationType = await getCurrentInstallationType();
522236
- const version2 = typeof MACRO !== "undefined" ? "1.4.470" : "unknown";
522246
+ const version2 = typeof MACRO !== "undefined" ? "1.4.472" : "unknown";
522237
522247
  const installationPath = await getInstallationPath();
522238
522248
  const invokedBinary = getInvokedBinary();
522239
522249
  const multipleInstallations = await detectMultipleInstallations();
@@ -522244,10 +522254,7 @@ async function getDoctorDiagnostic() {
522244
522254
  const isWindows2 = getPlatform() === "windows";
522245
522255
  for (const install of npmInstalls) {
522246
522256
  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
- }
522257
+ const uninstallCmd = `npm -g uninstall ${"@rayu-dev/rayu-cli"}`;
522251
522258
  warnings.push({
522252
522259
  issue: `Leftover npm global installation at ${install.path}`,
522253
522260
  fix: `Run: ${uninstallCmd}`
@@ -522274,7 +522281,7 @@ async function getDoctorDiagnostic() {
522274
522281
  if (!hasUpdatePermissions && !getAutoUpdaterDisabledReason()) {
522275
522282
  warnings.push({
522276
522283
  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"
522284
+ fix: "Do one of: (1) Re-install node without sudo, or (2) Use `rayu install` for native installation"
522278
522285
  });
522279
522286
  }
522280
522287
  }
@@ -522779,15 +522786,15 @@ function getPlatform3() {
522779
522786
  return `${os7}-${arch}`;
522780
522787
  }
522781
522788
  function getBinaryName(platform4) {
522782
- return platform4.startsWith("win32") ? "claude.exe" : "claude";
522789
+ return platform4.startsWith("win32") ? "rayu.exe" : "rayu";
522783
522790
  }
522784
522791
  function getBaseDirectories() {
522785
522792
  const platform4 = getPlatform3();
522786
522793
  const executableName = getBinaryName(platform4);
522787
522794
  return {
522788
- versions: join127(getXDGDataHome(), "claude", "versions"),
522789
- staging: join127(getXDGCacheHome(), "claude", "staging"),
522790
- locks: join127(getXDGStateHome(), "claude", "locks"),
522795
+ versions: join127(getXDGDataHome(), "rayu", "versions"),
522796
+ staging: join127(getXDGCacheHome(), "rayu", "staging"),
522797
+ locks: join127(getXDGStateHome(), "rayu", "locks"),
522791
522798
  executable: join127(getUserBinDir(), executableName)
522792
522799
  };
522793
522800
  }
@@ -523027,8 +523034,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
523027
523034
  const maxVersion = await getMaxVersion();
523028
523035
  if (maxVersion && gt(version2, maxVersion)) {
523029
523036
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
523030
- if (gte("1.4.470", maxVersion)) {
523031
- logForDebugging(`Native installer: current version ${"1.4.470"} is already at or above maxVersion ${maxVersion}, skipping update`);
523037
+ if (gte("1.4.472", maxVersion)) {
523038
+ logForDebugging(`Native installer: current version ${"1.4.472"} is already at or above maxVersion ${maxVersion}, skipping update`);
523032
523039
  logEvent("tengu_native_update_skipped_max_version", {
523033
523040
  latency_ms: Date.now() - startTime2,
523034
523041
  max_version: maxVersion,
@@ -523039,7 +523046,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
523039
523046
  version2 = maxVersion;
523040
523047
  }
523041
523048
  }
523042
- if (!forceReinstall && version2 === "1.4.470" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
523049
+ if (!forceReinstall && version2 === "1.4.472" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
523043
523050
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
523044
523051
  logEvent("tengu_native_update_complete", {
523045
523052
  latency_ms: Date.now() - startTime2,
@@ -524080,8 +524087,19 @@ function buildAccountProperties() {
524080
524087
  return properties;
524081
524088
  }
524082
524089
  function buildAPIProviderProperties() {
524083
- const apiProvider = getAPIProvider();
524084
524090
  const properties = [];
524091
+ if (isOpenAICompatibleActive()) {
524092
+ const active = getActiveProvider();
524093
+ const baseURL = process.env.RAYU_OPENAI_BASE_URL ?? active?.baseURL;
524094
+ if (active?.id) {
524095
+ properties.push({ label: "API provider", value: active.id });
524096
+ }
524097
+ if (baseURL) {
524098
+ properties.push({ label: "API base URL", value: baseURL });
524099
+ }
524100
+ return properties;
524101
+ }
524102
+ const apiProvider = getAPIProvider();
524085
524103
  if (apiProvider !== "anthropic") {
524086
524104
  const providerLabel = {
524087
524105
  bedrock: "AWS Bedrock",
@@ -524215,6 +524233,7 @@ var init_status = __esm(() => {
524215
524233
  init_ide();
524216
524234
  init_model();
524217
524235
  init_providers();
524236
+ init_rayuConfig();
524218
524237
  init_mtls();
524219
524238
  init_nativeInstaller();
524220
524239
  init_proxy();
@@ -524235,7 +524254,7 @@ function buildPrimarySection() {
524235
524254
  });
524236
524255
  return [{
524237
524256
  label: "Version",
524238
- value: "1.4.470"
524257
+ value: "1.4.472"
524239
524258
  }, {
524240
524259
  label: "Session name",
524241
524260
  value: nameValue
@@ -527215,7 +527234,7 @@ function Config({
527215
527234
  ...isSupportedTerminal() ? [{
527216
527235
  id: "autoInstallIdeExtension",
527217
527236
  label: "Auto-install IDE extension",
527218
- value: globalConfig2.autoInstallIdeExtension ?? true,
527237
+ value: globalConfig2.autoInstallIdeExtension ?? false,
527219
527238
  type: "boolean",
527220
527239
  onChange(autoInstallIdeExtension) {
527221
527240
  saveGlobalConfig((current_17) => ({
@@ -527906,7 +527925,7 @@ function Config({
527906
527925
  }
527907
527926
  })
527908
527927
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime168.jsx(ChannelDowngradeDialog, {
527909
- currentVersion: "1.4.470",
527928
+ currentVersion: "1.4.472",
527910
527929
  onChoice: (choice) => {
527911
527930
  setShowSubmenu(null);
527912
527931
  setTabsHidden(false);
@@ -527918,7 +527937,7 @@ function Config({
527918
527937
  autoUpdatesChannel: "stable"
527919
527938
  };
527920
527939
  if (choice === "stay") {
527921
- newSettings.minimumVersion = "1.4.470";
527940
+ newSettings.minimumVersion = "1.4.472";
527922
527941
  }
527923
527942
  updateSettingsForSource("userSettings", newSettings);
527924
527943
  setSettingsData((prev_27) => ({
@@ -528397,6 +528416,7 @@ function isEligibleForOverageCreditGrant() {
528397
528416
  return formatGrantAmount(info) !== null;
528398
528417
  }
528399
528418
  function shouldShowOverageCreditUpsell() {
528419
+ return false;
528400
528420
  if (!isEligibleForOverageCreditGrant())
528401
528421
  return false;
528402
528422
  const config4 = getGlobalConfig();
@@ -535102,7 +535122,7 @@ ${editorHint}`, {
535102
535122
  children: [
535103
535123
  "Learn more: ",
535104
535124
  /* @__PURE__ */ jsx_runtime191.jsx(Link, {
535105
- url: "https://rayu-web.vercel.app/docs"
535125
+ url: "https://rayucode.com/docs"
535106
535126
  })
535107
535127
  ]
535108
535128
  })
@@ -535978,7 +535998,7 @@ function HelpV2(t0) {
535978
535998
  let t6;
535979
535999
  if ($3[31] !== tabs) {
535980
536000
  t6 = /* @__PURE__ */ jsx_runtime195.jsx(Tabs, {
535981
- title: `Rayu-CLI v${"1.4.470"}`,
536001
+ title: `Rayu-CLI v${"1.4.472"}`,
535982
536002
  color: "professionalBlue",
535983
536003
  defaultTab: "general",
535984
536004
  children: tabs
@@ -556061,7 +556081,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
556061
556081
  }
556062
556082
  return [];
556063
556083
  }
556064
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.470") {
556084
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.472") {
556065
556085
  if (false) {}
556066
556086
  const cachedChangelog = await getStoredChangelog();
556067
556087
  if (lastSeenVersion !== currentVersion || !cachedChangelog) {
@@ -556074,7 +556094,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.470")
556074
556094
  releaseNotes
556075
556095
  };
556076
556096
  }
556077
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.4.470") {
556097
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.4.472") {
556078
556098
  if (false) {}
556079
556099
  const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
556080
556100
  return {
@@ -556202,7 +556222,7 @@ function getRecentActivitySync() {
556202
556222
  return cachedActivity;
556203
556223
  }
556204
556224
  function getLogoDisplayData() {
556205
- const version2 = process.env.DEMO_VERSION ?? "1.4.470";
556225
+ const version2 = process.env.DEMO_VERSION ?? "1.4.472";
556206
556226
  const serverUrl = getDirectConnectServerUrl();
556207
556227
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
556208
556228
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -556867,6 +556887,7 @@ function resetIfPassesRefreshed() {
556867
556887
  }
556868
556888
  }
556869
556889
  function shouldShowGuestPassesUpsell() {
556890
+ return false;
556870
556891
  const {
556871
556892
  eligible: eligible2,
556872
556893
  hasCache
@@ -557366,7 +557387,7 @@ function LogoV2() {
557366
557387
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
557367
557388
  t2 = () => {
557368
557389
  const currentConfig = getGlobalConfig();
557369
- if (currentConfig.lastReleaseNotesSeen === "1.4.470") {
557390
+ if (currentConfig.lastReleaseNotesSeen === "1.4.472") {
557370
557391
  return;
557371
557392
  }
557372
557393
  saveGlobalConfig(_temp327);
@@ -557845,7 +557866,7 @@ function LogoV2() {
557845
557866
  t24 = $3[61];
557846
557867
  }
557847
557868
  const _latestNpm = getCachedLatestNpmVersionSync();
557848
- const _updateFeeds = _latestNpm && gt(_latestNpm, "1.4.470") ? [createUpdateAvailableFeed("1.4.470", _latestNpm)] : [];
557869
+ const _updateFeeds = _latestNpm && gt(_latestNpm, "1.4.472") ? [createUpdateAvailableFeed("1.4.472", _latestNpm)] : [];
557849
557870
  const t25 = layoutMode === "horizontal" && /* @__PURE__ */ jsx_runtime236.jsx(FeedColumn, {
557850
557871
  feeds: showOnboarding ? [createProjectOnboardingFeed(getSteps()), createRecentActivityFeed(activities)] : showGuestPassesUpsell ? [createRecentActivityFeed(activities), createGuestPassesFeed()] : showOverageCreditUpsell ? [createRecentActivityFeed(activities), createOverageCreditFeed()] : [createRecentActivityFeed(activities), ..._updateFeeds, createWhatsNewFeed(changelog)],
557851
557872
  maxWidth: rightWidth
@@ -558045,12 +558066,12 @@ function LogoV2() {
558045
558066
  return t41;
558046
558067
  }
558047
558068
  function _temp327(current) {
558048
- if (current.lastReleaseNotesSeen === "1.4.470") {
558069
+ if (current.lastReleaseNotesSeen === "1.4.472") {
558049
558070
  return current;
558050
558071
  }
558051
558072
  return {
558052
558073
  ...current,
558053
- lastReleaseNotesSeen: "1.4.470"
558074
+ lastReleaseNotesSeen: "1.4.472"
558054
558075
  };
558055
558076
  }
558056
558077
  function _temp241(s_0) {
@@ -558715,7 +558736,7 @@ var init_statusNoticeDefinitions = __esm(() => {
558715
558736
  if (!isSupportedJetBrainsTerminal()) {
558716
558737
  return false;
558717
558738
  }
558718
- const shouldAutoInstall = context2.config.autoInstallIdeExtension ?? true;
558739
+ const shouldAutoInstall = context2.config.autoInstallIdeExtension ?? false;
558719
558740
  if (!shouldAutoInstall) {
558720
558741
  return false;
558721
558742
  }
@@ -564517,7 +564538,7 @@ var init_ultrareviewCommand = __esm(() => {
564517
564538
  });
564518
564539
 
564519
564540
  // src/commands/review.ts
564520
- var CCR_TERMS_URL = "https://rayu-web.vercel.app/docs", LOCAL_REVIEW_PROMPT = (args) => `
564541
+ var CCR_TERMS_URL = "https://rayucode.com/docs", LOCAL_REVIEW_PROMPT = (args) => `
564521
564542
  You are an expert code reviewer. Follow these steps:
564522
564543
 
564523
564544
  1. If no PR number is provided in the args, run \`gh pr list\` to show open PRs
@@ -565949,7 +565970,7 @@ ${reasons}`,
565949
565970
  } : prev);
565950
565971
  }
565951
565972
  }
565952
- var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://rayu-web.vercel.app/docs", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call29 = async (onDone, context2, args) => {
565973
+ var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://rayucode.com/docs", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call29 = async (onDone, context2, args) => {
565953
565974
  const blurb = args.trim();
565954
565975
  if (!blurb) {
565955
565976
  const msg = await launchUltraplan2({
@@ -576679,7 +576700,7 @@ async function call43(onDone, context2, args) {
576679
576700
  };
576680
576701
  const titleInfo = title ? ` "${title}"` : "";
576681
576702
  const resumeHint = `
576682
- To resume the original: claude -r ${originalSessionId}`;
576703
+ To resume the original: rayu -r ${originalSessionId}`;
576683
576704
  const successMessage = `Branched conversation${titleInfo}. You are now in the branch.${resumeHint}`;
576684
576705
  if (context2.resume) {
576685
576706
  await context2.resume(sessionId, forkLog, "fork");
@@ -583049,7 +583070,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
583049
583070
  smapsRollup,
583050
583071
  platform: process.platform,
583051
583072
  nodeVersion: process.version,
583052
- ccVersion: "1.4.470"
583073
+ ccVersion: "1.4.472"
583053
583074
  };
583054
583075
  }
583055
583076
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -583571,7 +583592,7 @@ var init_bridge_kick = __esm(() => {
583571
583592
  var call50 = async () => {
583572
583593
  return {
583573
583594
  type: "text",
583574
- value: "1.4.470"
583595
+ value: "1.4.472"
583575
583596
  };
583576
583597
  }, version2, version_default;
583577
583598
  var init_version = __esm(() => {
@@ -584294,8 +584315,8 @@ function OverridesSelect(t0) {
584294
584315
  "Learn more:",
584295
584316
  " ",
584296
584317
  /* @__PURE__ */ jsx_runtime314.jsx(Link, {
584297
- url: "https://rayu-web.vercel.app/docs",
584298
- children: "rayu-web.vercel.app/docs"
584318
+ url: "https://rayucode.com/docs",
584319
+ children: "rayucode.com/docs"
584299
584320
  })
584300
584321
  ]
584301
584322
  })
@@ -584665,8 +584686,8 @@ function SandboxModeTab(t0) {
584665
584686
  "Learn more:",
584666
584687
  " ",
584667
584688
  /* @__PURE__ */ jsx_runtime315.jsx(Link, {
584668
- url: "https://rayu-web.vercel.app/docs",
584669
- children: "rayu-web.vercel.app/docs"
584689
+ url: "https://rayucode.com/docs",
584690
+ children: "rayucode.com/docs"
584670
584691
  })
584671
584692
  ]
584672
584693
  })
@@ -585081,29 +585102,52 @@ function fmtReset(seconds) {
585081
585102
  function usd2(cents) {
585082
585103
  return `$${(cents / 100).toFixed(cents % 100 === 0 ? 0 : 2)}`;
585083
585104
  }
585105
+ function usageBar(used, total, width = 22) {
585106
+ if (!total || total <= 0)
585107
+ return "";
585108
+ const ratio = Math.max(0, Math.min(1, used / total));
585109
+ const filled = Math.round(ratio * width);
585110
+ return `[${"█".repeat(filled)}${"░".repeat(Math.max(0, width - filled))}]`;
585111
+ }
585112
+ function usagePct(used, total) {
585113
+ if (!total || total <= 0)
585114
+ return "";
585115
+ return `${Math.round(used / total * 100)}%`;
585116
+ }
585084
585117
  function formatRayuUsageSummary(c4) {
585085
585118
  const lines2 = [];
585086
585119
  const price = c4.priceCents > 0 ? ` (${usd2(c4.priceCents)}/mo)` : "";
585087
- lines2.push(`Plan: ${c4.planName || c4.plan}${price}`);
585120
+ lines2.push("Rayu Plan Usage");
585121
+ lines2.push("");
585122
+ lines2.push(` Plan ${c4.planName || c4.plan}${price}`);
585088
585123
  if (c4.periodEnd) {
585089
- lines2.push(`Renews: ${new Date(c4.periodEnd).toLocaleDateString()}`);
585124
+ lines2.push(` Renews ${new Date(c4.periodEnd).toLocaleDateString()}`);
585090
585125
  }
585091
585126
  if (c4.creditsPerPeriod == null) {
585092
- lines2.push("No hosted credit allowance on this plan — upgrade at /billing.");
585127
+ lines2.push("");
585128
+ lines2.push(" No hosted credit allowance on this plan — upgrade at /billing.");
585093
585129
  } else {
585094
585130
  const remC = c4.remainingCredits ?? 0;
585095
- lines2.push(`Credits: ${c4.usedCredits.toLocaleString()} / ${c4.creditsPerPeriod.toLocaleString()} used · ${remC.toLocaleString()} left (resets in ${fmtReset(c4.resetSeconds)})`);
585131
+ lines2.push("");
585132
+ lines2.push(` Credits ${usageBar(c4.usedCredits, c4.creditsPerPeriod)} ${usagePct(c4.usedCredits, c4.creditsPerPeriod)}`);
585133
+ lines2.push(` ${c4.usedCredits.toLocaleString()} / ${c4.creditsPerPeriod.toLocaleString()} used · ${remC.toLocaleString()} left · resets in ${fmtReset(c4.resetSeconds)}`);
585096
585134
  if (c4.allowanceTokens != null) {
585097
- lines2.push(`Tokens: ${(c4.usedTokens ?? 0).toLocaleString()} / ${c4.allowanceTokens.toLocaleString()}`);
585135
+ const usedT = c4.usedTokens ?? 0;
585136
+ lines2.push("");
585137
+ lines2.push(` Tokens ${usageBar(usedT, c4.allowanceTokens)} ${usagePct(usedT, c4.allowanceTokens)}`);
585138
+ lines2.push(` ${usedT.toLocaleString()} / ${c4.allowanceTokens.toLocaleString()}`);
585098
585139
  }
585099
585140
  }
585100
- if (c4.topUpEnabled) {
585101
- lines2.push(`Top-up balance: ${c4.topupBalance.toLocaleString()} credits`);
585102
- }
585103
585141
  if (c4.maxDailyTurns != null && c4.maxDailyTurns > 0) {
585104
585142
  const used = c4.turnsUsedToday ?? 0;
585105
585143
  const left = c4.turnsRemaining ?? Math.max(0, c4.maxDailyTurns - used);
585106
- lines2.push(`Daily turns: ${used.toLocaleString()} / ${c4.maxDailyTurns.toLocaleString()} used · ${left.toLocaleString()} left (resets in ${fmtReset(c4.turnsResetSeconds ?? 0)})`);
585144
+ lines2.push("");
585145
+ lines2.push(` Daily ${usageBar(used, c4.maxDailyTurns)} ${usagePct(used, c4.maxDailyTurns)}`);
585146
+ lines2.push(` ${used.toLocaleString()} / ${c4.maxDailyTurns.toLocaleString()} turns used · ${left.toLocaleString()} left · resets in ${fmtReset(c4.turnsResetSeconds ?? 0)}`);
585147
+ }
585148
+ if (c4.topUpEnabled) {
585149
+ lines2.push("");
585150
+ lines2.push(` Top-up ${c4.topupBalance.toLocaleString()} credits`);
585107
585151
  }
585108
585152
  return lines2.join(`
585109
585153
  `);
@@ -588424,13 +588468,13 @@ function SetModelAndClose({
588424
588468
  return;
588425
588469
  }
588426
588470
  if (model && isOpus1mUnavailable(model)) {
588427
- onDone(`Opus 4.6 with 1M context is not available for your account. Learn more: https://rayu-web.vercel.app/docs`, {
588471
+ onDone(`Opus 4.6 with 1M context is not available for your account. Learn more: https://rayucode.com/docs`, {
588428
588472
  display: "system"
588429
588473
  });
588430
588474
  return;
588431
588475
  }
588432
588476
  if (model && isSonnet1mUnavailable(model)) {
588433
- onDone(`Sonnet 4.6 with 1M context is not available for your account. Learn more: https://rayu-web.vercel.app/docs`, {
588477
+ onDone(`Sonnet 4.6 with 1M context is not available for your account. Learn more: https://rayucode.com/docs`, {
588434
588478
  display: "system"
588435
588479
  });
588436
588480
  return;
@@ -593829,7 +593873,7 @@ function generateHtmlReport(data, insights) {
593829
593873
  </html>`;
593830
593874
  }
593831
593875
  function buildExportData(data, insights, facets, remoteStats) {
593832
- const version3 = typeof MACRO !== "undefined" ? "1.4.470" : "unknown";
593876
+ const version3 = typeof MACRO !== "undefined" ? "1.4.472" : "unknown";
593833
593877
  const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
593834
593878
  const facets_summary = {
593835
593879
  total: facets.size,
@@ -597739,7 +597783,7 @@ var init_sessionStorage = __esm(() => {
597739
597783
  init_settings2();
597740
597784
  init_slowOperations();
597741
597785
  init_uuid();
597742
- VERSION6 = typeof MACRO !== "undefined" ? "1.4.470" : "unknown";
597786
+ VERSION6 = typeof MACRO !== "undefined" ? "1.4.472" : "unknown";
597743
597787
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
597744
597788
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
597745
597789
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -598957,7 +599001,7 @@ var init_filesystem = __esm(() => {
598957
599001
  });
598958
599002
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
598959
599003
  const nonce = randomBytes19(16).toString("hex");
598960
- return join153(getClaudeTempDir(), "bundled-skills", "1.4.470", nonce);
599004
+ return join153(getClaudeTempDir(), "bundled-skills", "1.4.472", nonce);
598961
599005
  });
598962
599006
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
598963
599007
  });
@@ -604127,7 +604171,7 @@ __export(exports_update, {
604127
604171
  update: () => update
604128
604172
  });
604129
604173
  async function update() {
604130
- writeToStdout(`Current version: ${"1.4.470"}
604174
+ writeToStdout(`Current version: ${"1.4.472"}
604131
604175
  `);
604132
604176
  const isBundled = isInBundledMode();
604133
604177
  if (isBundled) {
@@ -604158,13 +604202,13 @@ Manual check: npm view ${"@rayu-dev/rayu-cli"} version
604158
604202
  process.exit(1);
604159
604203
  return;
604160
604204
  }
604161
- if (latestVersion === "1.4.470") {
604205
+ if (latestVersion === "1.4.472") {
604162
604206
  writeToStdout(source_default.green(`
604163
- Rayu CLI is up to date (${"1.4.470"})
604207
+ Rayu CLI is up to date (${"1.4.472"})
604164
604208
  `));
604165
604209
  process.exit(0);
604166
604210
  }
604167
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.4.470"})
604211
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.4.472"})
604168
604212
  `);
604169
604213
  writeToStdout(`Installing update...
604170
604214
 
@@ -604231,14 +604275,14 @@ async function updateNativeBinary() {
604231
604275
  } catch {
604232
604276
  latestVersion = "";
604233
604277
  }
604234
- if (latestVersion && latestVersion === "1.4.470") {
604278
+ if (latestVersion && latestVersion === "1.4.472") {
604235
604279
  writeToStdout(source_default.green(`
604236
- Rayu CLI is up to date (1.4.470)
604280
+ Rayu CLI is up to date (1.4.472)
604237
604281
  `));
604238
604282
  process.exit(0);
604239
604283
  }
604240
604284
  if (latestVersion) {
604241
- writeToStdout(`New version available: ${latestVersion} (current: 1.4.470)
604285
+ writeToStdout(`New version available: ${latestVersion} (current: 1.4.472)
604242
604286
  `);
604243
604287
  }
604244
604288
  writeToStdout(`Downloading and installing update...
@@ -604253,13 +604297,13 @@ Rayu CLI is up to date (1.4.470)
604253
604297
  return;
604254
604298
  }
604255
604299
  writeToStdout(source_default.green(`
604256
- Rayu CLI is up to date (1.4.470)
604300
+ Rayu CLI is up to date (1.4.472)
604257
604301
  `));
604258
604302
  process.exit(0);
604259
604303
  }
604260
604304
  const updatedTo = result.latestVersion ?? latestVersion ?? "latest";
604261
604305
  writeToStdout(source_default.green(`
604262
- Successfully updated from 1.4.470 to ${updatedTo}
604306
+ Successfully updated from 1.4.472 to ${updatedTo}
604263
604307
  `));
604264
604308
  writeToStdout(`Restart your terminal to use the new version.
604265
604309
  `);
@@ -604324,7 +604368,7 @@ async function removeDataDir(dir) {
604324
604368
  async function uninstall(args = []) {
604325
604369
  const yes = args.includes("--yes") || args.includes("-y");
604326
604370
  const keepData = args.includes("--keep-data");
604327
- writeToStdout(`Uninstalling Rayu CLI (${"1.4.470"})...
604371
+ writeToStdout(`Uninstalling Rayu CLI (${"1.4.472"})...
604328
604372
  `);
604329
604373
  writeToStdout(`Running: npm uninstall -g ${"@rayu-dev/rayu-cli"}
604330
604374
 
@@ -604358,7 +604402,7 @@ This looks like a permissions error on npm's global install
604358
604402
  return;
604359
604403
  }
604360
604404
  writeToStdout(source_default.green(`
604361
- Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.4.470"}
604405
+ Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.4.472"}
604362
604406
  `));
604363
604407
  const configDir = getRayuConfigHomeDir();
604364
604408
  const dataExists = existsSync28(configDir);
@@ -604441,7 +604485,7 @@ function showFirstRunWelcome() {
604441
604485
  `);
604442
604486
  try {
604443
604487
  mkdirSync16(getRayuConfigHomeDir(), { recursive: true });
604444
- writeFileSync18(markerPath(), "1.4.470", "utf8");
604488
+ writeFileSync18(markerPath(), "1.4.472", "utf8");
604445
604489
  } catch {}
604446
604490
  }
604447
604491
  var init_firstRun = __esm(() => {
@@ -620627,7 +620671,7 @@ async function initializeBetaTracing(resource) {
620627
620671
  });
620628
620672
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
620629
620673
  setLoggerProvider(loggerProvider);
620630
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.470");
620674
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.472");
620631
620675
  setEventLogger(eventLogger);
620632
620676
  process.on("beforeExit", async () => {
620633
620677
  await loggerProvider?.forceFlush();
@@ -620667,7 +620711,7 @@ async function initializeTelemetry() {
620667
620711
  const platform4 = getPlatform();
620668
620712
  const baseAttributes = {
620669
620713
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "claude-code",
620670
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.4.470"
620714
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.4.472"
620671
620715
  };
620672
620716
  if (platform4 === "wsl") {
620673
620717
  const wslVersion = getWslVersion();
@@ -620712,7 +620756,7 @@ async function initializeTelemetry() {
620712
620756
  } catch {}
620713
620757
  };
620714
620758
  registerCleanup(shutdownTelemetry2);
620715
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.4.470");
620759
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.4.472");
620716
620760
  }
620717
620761
  const meterProvider = new import_sdk_metrics2.MeterProvider({
620718
620762
  resource,
@@ -620732,7 +620776,7 @@ async function initializeTelemetry() {
620732
620776
  });
620733
620777
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
620734
620778
  setLoggerProvider(loggerProvider);
620735
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.470");
620779
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.4.472");
620736
620780
  setEventLogger(eventLogger);
620737
620781
  logForDebugging("[3P telemetry] Event logger set successfully");
620738
620782
  process.on("beforeExit", async () => {
@@ -620794,7 +620838,7 @@ Current timeout: ${timeoutMs}ms
620794
620838
  }
620795
620839
  };
620796
620840
  registerCleanup(shutdownTelemetry);
620797
- return meterProvider.getMeter("com.anthropic.claude_code", "1.4.470");
620841
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.4.472");
620798
620842
  }
620799
620843
  async function flushTelemetry() {
620800
620844
  const meterProvider = getMeterProvider();
@@ -621502,7 +621546,7 @@ function CostThresholdDialog(t0) {
621502
621546
  children: "Learn more about how to monitor your spending:"
621503
621547
  }),
621504
621548
  /* @__PURE__ */ jsx_runtime345.jsx(Link, {
621505
- url: "https://rayu-web.vercel.app/docs"
621549
+ url: "https://rayucode.com/docs"
621506
621550
  })
621507
621551
  ]
621508
621552
  });
@@ -622296,7 +622340,7 @@ function buildSystemInitMessage(inputs) {
622296
622340
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
622297
622341
  apiKeySource: getAnthropicApiKeyWithSource().source,
622298
622342
  betas: getSdkBetas(),
622299
- claude_code_version: "1.4.470",
622343
+ claude_code_version: "1.4.472",
622300
622344
  output_style: outputStyle2,
622301
622345
  agents: inputs.agents.map((agent) => agent.agentType),
622302
622346
  skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
@@ -638529,8 +638573,8 @@ function FastModePicker(t0) {
638529
638573
  "Learn more:",
638530
638574
  " ",
638531
638575
  /* @__PURE__ */ jsx_runtime386.jsx(Link, {
638532
- url: "https://rayu-web.vercel.app/docs",
638533
- children: "https://rayu-web.vercel.app/docs"
638576
+ url: "https://rayucode.com/docs",
638577
+ children: "https://rayucode.com/docs"
638534
638578
  })
638535
638579
  ]
638536
638580
  });
@@ -638627,7 +638671,7 @@ var init_useVoiceEnabled = __esm(() => {
638627
638671
  function getSemverPart(version3) {
638628
638672
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
638629
638673
  }
638630
- function useUpdateNotification(updatedVersion, initialVersion = "1.4.470") {
638674
+ function useUpdateNotification(updatedVersion, initialVersion = "1.4.472") {
638631
638675
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react216.useState(() => getSemverPart(initialVersion));
638632
638676
  if (!updatedVersion) {
638633
638677
  return null;
@@ -638667,7 +638711,7 @@ function AutoUpdater({
638667
638711
  return;
638668
638712
  }
638669
638713
  if (false) {}
638670
- const currentVersion = "1.4.470";
638714
+ const currentVersion = "1.4.472";
638671
638715
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
638672
638716
  let latestVersion = await getLatestVersion(channel2);
638673
638717
  const isDisabled = isAutoUpdaterDisabled();
@@ -638880,12 +638924,12 @@ function NativeAutoUpdater({
638880
638924
  logEvent("tengu_native_auto_updater_start", {});
638881
638925
  try {
638882
638926
  const maxVersion = await getMaxVersion();
638883
- if (maxVersion && gt("1.4.470", maxVersion)) {
638927
+ if (maxVersion && gt("1.4.472", maxVersion)) {
638884
638928
  const msg = await getMaxVersionMessage();
638885
638929
  setMaxVersionIssue(msg ?? "affects your version");
638886
638930
  }
638887
638931
  const result = await installLatest(channel2);
638888
- const currentVersion = "1.4.470";
638932
+ const currentVersion = "1.4.472";
638889
638933
  const latencyMs = Date.now() - startTime2;
638890
638934
  if (result.lockFailed) {
638891
638935
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -639022,17 +639066,17 @@ function PackageManagerAutoUpdater(t0) {
639022
639066
  const maxVersion = await getMaxVersion();
639023
639067
  if (maxVersion && latest && gt(latest, maxVersion)) {
639024
639068
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
639025
- if (gte("1.4.470", maxVersion)) {
639026
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.4.470"} is already at or above maxVersion ${maxVersion}, skipping update`);
639069
+ if (gte("1.4.472", maxVersion)) {
639070
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.4.472"} is already at or above maxVersion ${maxVersion}, skipping update`);
639027
639071
  setUpdateAvailable(false);
639028
639072
  return;
639029
639073
  }
639030
639074
  latest = maxVersion;
639031
639075
  }
639032
- const hasUpdate = latest && !gte("1.4.470", latest) && !shouldSkipVersion(latest);
639076
+ const hasUpdate = latest && !gte("1.4.472", latest) && !shouldSkipVersion(latest);
639033
639077
  setUpdateAvailable(!!hasUpdate);
639034
639078
  if (hasUpdate) {
639035
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.4.470"} -> ${latest}`);
639079
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.4.472"} -> ${latest}`);
639036
639080
  }
639037
639081
  };
639038
639082
  $3[0] = t1;
@@ -639066,7 +639110,7 @@ function PackageManagerAutoUpdater(t0) {
639066
639110
  wrap: "truncate",
639067
639111
  children: [
639068
639112
  "currentVersion: ",
639069
- "1.4.470"
639113
+ "1.4.472"
639070
639114
  ]
639071
639115
  });
639072
639116
  $3[3] = verbose;
@@ -647230,7 +647274,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
647230
647274
  project_dir: getOriginalCwd(),
647231
647275
  added_dirs: addedDirs
647232
647276
  },
647233
- version: "1.4.470",
647277
+ version: "1.4.472",
647234
647278
  output_style: {
647235
647279
  name: outputStyleName
647236
647280
  },
@@ -649409,7 +649453,7 @@ var init_user = __esm(() => {
649409
649453
  deviceId,
649410
649454
  sessionId: getSessionId(),
649411
649455
  email: getEmail(),
649412
- appVersion: "1.4.470",
649456
+ appVersion: "1.4.472",
649413
649457
  platform: getHostPlatformForAnalytics(),
649414
649458
  organizationUuid,
649415
649459
  accountUuid,
@@ -658848,7 +658892,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
658848
658892
  } catch {}
658849
658893
  const data = {
658850
658894
  trigger,
658851
- version: "1.4.470",
658895
+ version: "1.4.472",
658852
658896
  platform: process.platform,
658853
658897
  transcript,
658854
658898
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -659676,7 +659720,7 @@ function TranscriptSharePrompt(t0) {
659676
659720
  marginLeft: 2,
659677
659721
  children: /* @__PURE__ */ jsx_runtime429.jsx(ThemedText, {
659678
659722
  dimColor: true,
659679
- children: "Learn more: https://rayu-web.vercel.app/docs"
659723
+ children: "Learn more: https://rayucode.com/docs"
659680
659724
  })
659681
659725
  });
659682
659726
  $3[7] = t4;
@@ -660790,6 +660834,7 @@ function isSupportedPlatform3() {
660790
660834
  return process.platform === "darwin" || process.platform === "win32" && process.arch === "x64";
660791
660835
  }
660792
660836
  function shouldShowDesktopUpsellStartup() {
660837
+ return false;
660793
660838
  if (!isSupportedPlatform3())
660794
660839
  return false;
660795
660840
  if (!getDesktopUpsellConfig().enable_startup_dialog)
@@ -670163,7 +670208,7 @@ function MCPServerDialogCopy() {
670163
670208
  "MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the",
670164
670209
  " ",
670165
670210
  /* @__PURE__ */ jsx_runtime451.jsx(Link, {
670166
- url: "https://rayu-web.vercel.app/docs",
670211
+ url: "https://rayucode.com/docs",
670167
670212
  children: "MCP documentation"
670168
670213
  }),
670169
670214
  "."
@@ -670815,7 +670860,7 @@ function WelcomeV2() {
670815
670860
  dimColor: true,
670816
670861
  children: [
670817
670862
  "v",
670818
- "1.4.470"
670863
+ "1.4.472"
670819
670864
  ]
670820
670865
  })
670821
670866
  ]
@@ -671822,7 +671867,7 @@ function completeOnboarding() {
671822
671867
  saveGlobalConfig((current) => ({
671823
671868
  ...current,
671824
671869
  hasCompletedOnboarding: true,
671825
- lastOnboardingVersion: "1.4.470"
671870
+ lastOnboardingVersion: "1.4.472"
671826
671871
  }));
671827
671872
  }
671828
671873
  function showDialog(root2, renderer) {
@@ -674059,7 +674104,7 @@ var init_keybindings3 = __esm(() => {
674059
674104
  init_bundledSkills();
674060
674105
  FILE_FORMAT_EXAMPLE = {
674061
674106
  $schema: "https://www.schemastore.org/claude-code-keybindings.json",
674062
- $docs: "https://rayu-web.vercel.app/docs",
674107
+ $docs: "https://rayucode.com/docs",
674063
674108
  bindings: [
674064
674109
  {
674065
674110
  context: "Chat",
@@ -676755,7 +676800,7 @@ function appendToLog(path29, message) {
676755
676800
  cwd: getFsImplementation().cwd(),
676756
676801
  userType: "external",
676757
676802
  sessionId: getSessionId(),
676758
- version: "1.4.470"
676803
+ version: "1.4.472"
676759
676804
  };
676760
676805
  getLogWriter(path29).write(messageWithTimestamp);
676761
676806
  }
@@ -680860,8 +680905,8 @@ async function getEnvLessBridgeConfig() {
680860
680905
  }
680861
680906
  async function checkEnvLessBridgeMinVersion() {
680862
680907
  const cfg = await getEnvLessBridgeConfig();
680863
- if (cfg.min_version && lt("1.4.470", cfg.min_version)) {
680864
- return `Your version of RAYU (${"1.4.470"}) is too old for Remote Control.
680908
+ if (cfg.min_version && lt("1.4.472", cfg.min_version)) {
680909
+ return `Your version of RAYU (${"1.4.472"}) is too old for Remote Control.
680865
680910
  Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
680866
680911
  }
680867
680912
  return null;
@@ -681334,7 +681379,7 @@ async function initBridgeCore(params) {
681334
681379
  const rawApi = createBridgeApiClient({
681335
681380
  baseUrl,
681336
681381
  getAccessToken,
681337
- runnerVersion: "1.4.470",
681382
+ runnerVersion: "1.4.472",
681338
681383
  onDebug: logForDebugging,
681339
681384
  onAuth401,
681340
681385
  getTrustedDeviceToken
@@ -686689,7 +686734,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
686689
686734
  setCwd(cwd3);
686690
686735
  const server = new Server({
686691
686736
  name: "claude/tengu",
686692
- version: "1.4.470"
686737
+ version: "1.4.472"
686693
686738
  }, {
686694
686739
  capabilities: {
686695
686740
  tools: {}
@@ -688331,6 +688376,9 @@ function initializeEntrypoint(isNonInteractive) {
688331
688376
  return;
688332
688377
  }
688333
688378
  process.env.CLAUDE_CODE_ENTRYPOINT = isNonInteractive ? "sdk-cli" : "cli";
688379
+ if (!process.env.AI_AGENT) {
688380
+ process.env.AI_AGENT = "rayu";
688381
+ }
688334
688382
  }
688335
688383
  async function main() {
688336
688384
  profileCheckpoint("main_function_start");
@@ -689215,7 +689263,7 @@ ${customInstructions}` : customInstructions;
689215
689263
  }
689216
689264
  }
689217
689265
  logForDiagnosticsNoPII("info", "started", {
689218
- version: "1.4.470",
689266
+ version: "1.4.472",
689219
689267
  is_native_binary: isInBundledMode()
689220
689268
  });
689221
689269
  registerCleanup(async () => {
@@ -689934,7 +689982,7 @@ Usage: rayu --remote "your task description"`, () => gracefulShutdown(1));
689934
689982
  pendingHookMessages
689935
689983
  }, renderAndRun);
689936
689984
  }
689937
- }).version(`1.4.470 (${PRODUCT_NAME})`, "-v, --version", "Output the version number");
689985
+ }).version(`1.4.472 (${PRODUCT_NAME})`, "-v, --version", "Output the version number");
689938
689986
  program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
689939
689987
  program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
689940
689988
  if (canUserConfigureAdvisor()) {
@@ -690394,7 +690442,7 @@ if (false) {}
690394
690442
  async function main2() {
690395
690443
  const args = process.argv.slice(2);
690396
690444
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
690397
- console.log(`${"1.4.470"} (Rayu-CLI)`);
690445
+ console.log(`${"1.4.472"} (Rayu-CLI)`);
690398
690446
  return;
690399
690447
  }
690400
690448
  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.470",
3
+ "version": "1.4.472",
4
4
  "description": "Rayu-CLI — a multi-provider AI coding CLI",
5
5
  "type": "module",
6
6
  "bin": {