@rayu-dev/rayu-cli 1.3.430 → 1.3.431

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 (2) hide show
  1. package/dist/rayu.js +281 -352
  2. package/package.json +1 -1
package/dist/rayu.js CHANGED
@@ -19429,6 +19429,106 @@ var init_rayuDiagnostics = __esm(() => {
19429
19429
  init_envUtils();
19430
19430
  });
19431
19431
 
19432
+ // src/services/api/kiro/kiroModels.ts
19433
+ var exports_kiroModels = {};
19434
+ __export(exports_kiroModels, {
19435
+ resolveKiroModel: () => resolveKiroModel,
19436
+ listKiroModels: () => listKiroModels,
19437
+ KIRO_THINKING_SUFFIX: () => KIRO_THINKING_SUFFIX,
19438
+ KIRO_THINKING_CONTEXT_WINDOW: () => KIRO_THINKING_CONTEXT_WINDOW,
19439
+ KIRO_DEFAULT_MODEL: () => KIRO_DEFAULT_MODEL,
19440
+ KIRO_DEFAULT_CONTEXT_WINDOW: () => KIRO_DEFAULT_CONTEXT_WINDOW,
19441
+ KIRO_DEFAULT_ANTHROPIC_MODEL: () => KIRO_DEFAULT_ANTHROPIC_MODEL
19442
+ });
19443
+ function resolveKiroModel(model, context1M = false) {
19444
+ let matchedWindowSize = 0;
19445
+ let matchedKiro1M = "";
19446
+ let matchedAnthropic = "";
19447
+ let matched = false;
19448
+ let kiroModel = "";
19449
+ let thinking = false;
19450
+ for (const m of MODEL_MAP_ORDERED) {
19451
+ if (model === m.anthropic || model === m.kiro) {
19452
+ kiroModel = m.kiro;
19453
+ matchedKiro1M = m.kiro1m ?? "";
19454
+ matchedWindowSize = m.contextWindowSize ?? 0;
19455
+ matchedAnthropic = m.anthropic;
19456
+ matched = true;
19457
+ break;
19458
+ }
19459
+ }
19460
+ if (!matched && model.endsWith(KIRO_THINKING_SUFFIX)) {
19461
+ const before = model.slice(0, -KIRO_THINKING_SUFFIX.length);
19462
+ model = before;
19463
+ thinking = true;
19464
+ for (const m of MODEL_MAP_ORDERED) {
19465
+ if (model === m.anthropic || model === m.kiro) {
19466
+ kiroModel = m.kiro;
19467
+ matchedKiro1M = m.kiro1m ?? "";
19468
+ matchedWindowSize = m.contextWindowSize ?? 0;
19469
+ matchedAnthropic = m.anthropic;
19470
+ matched = true;
19471
+ break;
19472
+ }
19473
+ }
19474
+ }
19475
+ if (context1M)
19476
+ thinking = true;
19477
+ let anthropicModel;
19478
+ if (!matched) {
19479
+ if (model.startsWith("claude-")) {
19480
+ kiroModel = model;
19481
+ anthropicModel = model;
19482
+ } else {
19483
+ kiroModel = KIRO_DEFAULT_MODEL;
19484
+ anthropicModel = KIRO_DEFAULT_ANTHROPIC_MODEL;
19485
+ }
19486
+ } else {
19487
+ anthropicModel = matchedAnthropic;
19488
+ }
19489
+ let contextWindowSize;
19490
+ if (matchedKiro1M === kiroModel && matchedKiro1M !== "") {
19491
+ contextWindowSize = KIRO_THINKING_CONTEXT_WINDOW;
19492
+ } else if (thinking && matchedKiro1M !== "") {
19493
+ kiroModel = matchedKiro1M;
19494
+ contextWindowSize = KIRO_THINKING_CONTEXT_WINDOW;
19495
+ } else if (matchedWindowSize > 0) {
19496
+ contextWindowSize = matchedWindowSize;
19497
+ } else {
19498
+ contextWindowSize = KIRO_DEFAULT_CONTEXT_WINDOW;
19499
+ }
19500
+ if (contextWindowSize === KIRO_THINKING_CONTEXT_WINDOW && !anthropicModel.endsWith(KIRO_THINKING_SUFFIX)) {
19501
+ anthropicModel += KIRO_THINKING_SUFFIX;
19502
+ }
19503
+ return { kiroModel, thinking, contextWindowSize, anthropicModel };
19504
+ }
19505
+ function listKiroModels() {
19506
+ const seen = new Set;
19507
+ const result = [];
19508
+ for (const m of MODEL_MAP_ORDERED) {
19509
+ if (!seen.has(m.kiro)) {
19510
+ seen.add(m.kiro);
19511
+ result.push(m.kiro);
19512
+ }
19513
+ }
19514
+ return result;
19515
+ }
19516
+ var KIRO_THINKING_SUFFIX = "[1m]", KIRO_DEFAULT_CONTEXT_WINDOW = 200000, KIRO_THINKING_CONTEXT_WINDOW = 1e6, KIRO_DEFAULT_MODEL = "claude-sonnet-4.6", KIRO_DEFAULT_ANTHROPIC_MODEL = "claude-sonnet-4-6", MODEL_MAP_ORDERED;
19517
+ var init_kiroModels = __esm(() => {
19518
+ MODEL_MAP_ORDERED = [
19519
+ { anthropic: "claude-opus-4-8[1m]", kiro: "claude-opus-4.8", kiro1m: "claude-opus-4.8" },
19520
+ { anthropic: "claude-opus-4-8", kiro: "claude-opus-4.8", kiro1m: "claude-opus-4.8" },
19521
+ { anthropic: "claude-opus-4-7[1m]", kiro: "claude-opus-4.7", kiro1m: "claude-opus-4.7" },
19522
+ { anthropic: "claude-opus-4-6[1m]", kiro: "claude-opus-4.6", kiro1m: "claude-opus-4.6" },
19523
+ { anthropic: "claude-opus-4-7", kiro: "claude-opus-4.7", kiro1m: "claude-opus-4.7" },
19524
+ { anthropic: "claude-sonnet-4-6", kiro: "claude-sonnet-4.6", kiro1m: "claude-sonnet-4.6" },
19525
+ { anthropic: "claude-sonnet-4.5", kiro: "claude-sonnet-4.5", kiro1m: "claude-sonnet-4.5" },
19526
+ { anthropic: "claude-opus-4-6", kiro: "claude-opus-4.6", kiro1m: "claude-opus-4.6" },
19527
+ { anthropic: "claude-opus-4.5", kiro: "claude-opus-4.5" },
19528
+ { anthropic: "claude-haiku-4.5", kiro: "claude-haiku-4.5" }
19529
+ ];
19530
+ });
19531
+
19432
19532
  // node_modules/extend/index.js
19433
19533
  var require_extend = __commonJS((exports, module) => {
19434
19534
  var hasOwn = Object.prototype.hasOwnProperty;
@@ -36114,106 +36214,6 @@ var init_rayuProviders = __esm(() => {
36114
36214
  };
36115
36215
  });
36116
36216
 
36117
- // src/services/api/kiro/kiroModels.ts
36118
- var exports_kiroModels = {};
36119
- __export(exports_kiroModels, {
36120
- resolveKiroModel: () => resolveKiroModel,
36121
- listKiroModels: () => listKiroModels,
36122
- KIRO_THINKING_SUFFIX: () => KIRO_THINKING_SUFFIX,
36123
- KIRO_THINKING_CONTEXT_WINDOW: () => KIRO_THINKING_CONTEXT_WINDOW,
36124
- KIRO_DEFAULT_MODEL: () => KIRO_DEFAULT_MODEL,
36125
- KIRO_DEFAULT_CONTEXT_WINDOW: () => KIRO_DEFAULT_CONTEXT_WINDOW,
36126
- KIRO_DEFAULT_ANTHROPIC_MODEL: () => KIRO_DEFAULT_ANTHROPIC_MODEL
36127
- });
36128
- function resolveKiroModel(model, context1M = false) {
36129
- let matchedWindowSize = 0;
36130
- let matchedKiro1M = "";
36131
- let matchedAnthropic = "";
36132
- let matched = false;
36133
- let kiroModel = "";
36134
- let thinking = false;
36135
- for (const m2 of MODEL_MAP_ORDERED) {
36136
- if (model === m2.anthropic || model === m2.kiro) {
36137
- kiroModel = m2.kiro;
36138
- matchedKiro1M = m2.kiro1m ?? "";
36139
- matchedWindowSize = m2.contextWindowSize ?? 0;
36140
- matchedAnthropic = m2.anthropic;
36141
- matched = true;
36142
- break;
36143
- }
36144
- }
36145
- if (!matched && model.endsWith(KIRO_THINKING_SUFFIX)) {
36146
- const before = model.slice(0, -KIRO_THINKING_SUFFIX.length);
36147
- model = before;
36148
- thinking = true;
36149
- for (const m2 of MODEL_MAP_ORDERED) {
36150
- if (model === m2.anthropic || model === m2.kiro) {
36151
- kiroModel = m2.kiro;
36152
- matchedKiro1M = m2.kiro1m ?? "";
36153
- matchedWindowSize = m2.contextWindowSize ?? 0;
36154
- matchedAnthropic = m2.anthropic;
36155
- matched = true;
36156
- break;
36157
- }
36158
- }
36159
- }
36160
- if (context1M)
36161
- thinking = true;
36162
- let anthropicModel;
36163
- if (!matched) {
36164
- if (model.startsWith("claude-")) {
36165
- kiroModel = model;
36166
- anthropicModel = model;
36167
- } else {
36168
- kiroModel = KIRO_DEFAULT_MODEL;
36169
- anthropicModel = KIRO_DEFAULT_ANTHROPIC_MODEL;
36170
- }
36171
- } else {
36172
- anthropicModel = matchedAnthropic;
36173
- }
36174
- let contextWindowSize;
36175
- if (matchedKiro1M === kiroModel && matchedKiro1M !== "") {
36176
- contextWindowSize = KIRO_THINKING_CONTEXT_WINDOW;
36177
- } else if (thinking && matchedKiro1M !== "") {
36178
- kiroModel = matchedKiro1M;
36179
- contextWindowSize = KIRO_THINKING_CONTEXT_WINDOW;
36180
- } else if (matchedWindowSize > 0) {
36181
- contextWindowSize = matchedWindowSize;
36182
- } else {
36183
- contextWindowSize = KIRO_DEFAULT_CONTEXT_WINDOW;
36184
- }
36185
- if (contextWindowSize === KIRO_THINKING_CONTEXT_WINDOW && !anthropicModel.endsWith(KIRO_THINKING_SUFFIX)) {
36186
- anthropicModel += KIRO_THINKING_SUFFIX;
36187
- }
36188
- return { kiroModel, thinking, contextWindowSize, anthropicModel };
36189
- }
36190
- function listKiroModels() {
36191
- const seen = new Set;
36192
- const result = [];
36193
- for (const m2 of MODEL_MAP_ORDERED) {
36194
- if (!seen.has(m2.kiro)) {
36195
- seen.add(m2.kiro);
36196
- result.push(m2.kiro);
36197
- }
36198
- }
36199
- return result;
36200
- }
36201
- var KIRO_THINKING_SUFFIX = "[1m]", KIRO_DEFAULT_CONTEXT_WINDOW = 200000, KIRO_THINKING_CONTEXT_WINDOW = 1e6, KIRO_DEFAULT_MODEL = "claude-sonnet-4.6", KIRO_DEFAULT_ANTHROPIC_MODEL = "claude-sonnet-4-6", MODEL_MAP_ORDERED;
36202
- var init_kiroModels = __esm(() => {
36203
- MODEL_MAP_ORDERED = [
36204
- { anthropic: "claude-opus-4-8[1m]", kiro: "claude-opus-4.8", kiro1m: "claude-opus-4.8" },
36205
- { anthropic: "claude-opus-4-8", kiro: "claude-opus-4.8", kiro1m: "claude-opus-4.8" },
36206
- { anthropic: "claude-opus-4-7[1m]", kiro: "claude-opus-4.7", kiro1m: "claude-opus-4.7" },
36207
- { anthropic: "claude-opus-4-6[1m]", kiro: "claude-opus-4.6", kiro1m: "claude-opus-4.6" },
36208
- { anthropic: "claude-opus-4-7", kiro: "claude-opus-4.7", kiro1m: "claude-opus-4.7" },
36209
- { anthropic: "claude-sonnet-4-6", kiro: "claude-sonnet-4.6", kiro1m: "claude-sonnet-4.6-1m" },
36210
- { anthropic: "claude-sonnet-4.5", kiro: "claude-sonnet-4.5", kiro1m: "claude-sonnet-4.5-1m" },
36211
- { anthropic: "claude-opus-4-6", kiro: "claude-opus-4.6", kiro1m: "claude-opus-4.6" },
36212
- { anthropic: "claude-opus-4.5", kiro: "claude-opus-4.5" },
36213
- { anthropic: "claude-haiku-4.5", kiro: "claude-haiku-4.5" }
36214
- ];
36215
- });
36216
-
36217
36217
  // src/utils/rayuConfig.ts
36218
36218
  var exports_rayuConfig = {};
36219
36219
  __export(exports_rayuConfig, {
@@ -36462,6 +36462,18 @@ function getRayuModelContextWindow(model) {
36462
36462
  if (!isNaN(envOverride) && envOverride > 0)
36463
36463
  return envOverride;
36464
36464
  const p = getActiveProvider();
36465
+ if (p?.kind === "kiro") {
36466
+ const perModel2 = p.modelContextWindows?.[model];
36467
+ if (perModel2 && perModel2 > 0)
36468
+ return perModel2;
36469
+ try {
36470
+ const { resolveKiroModel: resolveKiroModel2 } = (init_kiroModels(), __toCommonJS(exports_kiroModels));
36471
+ const ctx = resolveKiroModel2(model).contextWindowSize;
36472
+ if (ctx > 0)
36473
+ return ctx;
36474
+ } catch {}
36475
+ return null;
36476
+ }
36465
36477
  if (!p || p.kind !== "openai-compatible" && p.kind !== "vertex" && p.kind !== "genai") {
36466
36478
  return null;
36467
36479
  }
@@ -148260,7 +148272,7 @@ var init_auth = __esm(() => {
148260
148272
 
148261
148273
  // src/utils/userAgent.ts
148262
148274
  function getRayuUserAgent() {
148263
- return `rayu/${"1.3.430"}`;
148275
+ return `rayu/${"1.3.431"}`;
148264
148276
  }
148265
148277
  var getClaudeCodeUserAgent;
148266
148278
  var init_userAgent = __esm(() => {
@@ -148286,7 +148298,7 @@ function getUserAgent() {
148286
148298
  const clientApp = process.env.RAYU_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}` : "";
148287
148299
  const workload = getWorkload();
148288
148300
  const workloadSuffix = workload ? `, workload/${workload}` : "";
148289
- return `rayu/${"1.3.430"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
148301
+ return `rayu/${"1.3.431"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
148290
148302
  }
148291
148303
  function getMCPUserAgent() {
148292
148304
  const parts = [];
@@ -148300,7 +148312,7 @@ function getMCPUserAgent() {
148300
148312
  parts.push(`client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}`);
148301
148313
  }
148302
148314
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
148303
- return `rayu/${"1.3.430"}${suffix}`;
148315
+ return `rayu/${"1.3.431"}${suffix}`;
148304
148316
  }
148305
148317
  function getWebFetchUserAgent() {
148306
148318
  return `Rayu-User (${getRayuUserAgent()})`;
@@ -148423,7 +148435,7 @@ var init_user = __esm(() => {
148423
148435
  deviceId,
148424
148436
  sessionId: getSessionId(),
148425
148437
  email: getEmail(),
148426
- appVersion: "1.3.430",
148438
+ appVersion: "1.3.431",
148427
148439
  platform: getHostPlatformForAnalytics(),
148428
148440
  organizationUuid,
148429
148441
  accountUuid,
@@ -183925,7 +183937,7 @@ var init_metadata = __esm(() => {
183925
183937
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
183926
183938
  WHITESPACE_REGEX = /\s+/;
183927
183939
  getVersionBase = memoize_default(() => {
183928
- const match = "1.3.430".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
183940
+ const match = "1.3.431".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
183929
183941
  return match ? match[0] : undefined;
183930
183942
  });
183931
183943
  buildEnvContext = memoize_default(async () => {
@@ -183964,7 +183976,7 @@ var init_metadata = __esm(() => {
183964
183976
  },
183965
183977
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
183966
183978
  isRayuAction: isEnvTruthy(process.env.RAYU_ACTION),
183967
- version: "1.3.430",
183979
+ version: "1.3.431",
183968
183980
  versionBase: getVersionBase(),
183969
183981
  buildTime: "",
183970
183982
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
@@ -184578,7 +184590,7 @@ function initialize1PEventLogging() {
184578
184590
  const platform2 = getPlatform();
184579
184591
  const attributes = {
184580
184592
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "rayu",
184581
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.3.430"
184593
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.3.431"
184582
184594
  };
184583
184595
  if (platform2 === "wsl") {
184584
184596
  const wslVersion = getWslVersion();
@@ -184605,7 +184617,7 @@ function initialize1PEventLogging() {
184605
184617
  })
184606
184618
  ]
184607
184619
  });
184608
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("io.rayu.events", "1.3.430");
184620
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("io.rayu.events", "1.3.431");
184609
184621
  }
184610
184622
  async function reinitialize1PEventLoggingIfConfigChanged() {
184611
184623
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -220521,7 +220533,7 @@ function getAttributionHeader(fingerprint) {
220521
220533
  if (!isAttributionHeaderEnabled()) {
220522
220534
  return "";
220523
220535
  }
220524
- const version2 = `${"1.3.430"}.${fingerprint}`;
220536
+ const version2 = `${"1.3.431"}.${fingerprint}`;
220525
220537
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
220526
220538
  const cch = "";
220527
220539
  const workload = getWorkload();
@@ -305211,7 +305223,7 @@ function getTelemetryAttributes() {
305211
305223
  attributes["session.id"] = sessionId;
305212
305224
  }
305213
305225
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
305214
- attributes["app.version"] = "1.3.430";
305226
+ attributes["app.version"] = "1.3.431";
305215
305227
  }
305216
305228
  const oauthAccount = getOauthAccountInfo();
305217
305229
  if (oauthAccount) {
@@ -415521,7 +415533,7 @@ function getInstallationEnv() {
415521
415533
  return;
415522
415534
  }
415523
415535
  function getClaudeCodeVersion() {
415524
- return "1.3.430";
415536
+ return "1.3.431";
415525
415537
  }
415526
415538
  async function getInstalledVSCodeExtensionVersion(command) {
415527
415539
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -420759,7 +420771,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
420759
420771
  const client4 = new Client({
420760
420772
  name: "claude-code",
420761
420773
  title: "RAYU",
420762
- version: "1.3.430",
420774
+ version: "1.3.431",
420763
420775
  description: "Anthropic's agentic coding tool",
420764
420776
  websiteUrl: PRODUCT_URL
420765
420777
  }, {
@@ -421076,7 +421088,7 @@ var init_client7 = __esm(() => {
421076
421088
  const client4 = new Client({
421077
421089
  name: "claude-code",
421078
421090
  title: "RAYU",
421079
- version: "1.3.430",
421091
+ version: "1.3.431",
421080
421092
  description: "Anthropic's agentic coding tool",
421081
421093
  websiteUrl: PRODUCT_URL
421082
421094
  }, {
@@ -435881,7 +435893,7 @@ function computeFingerprint(messageText, version2) {
435881
435893
  }
435882
435894
  function computeFingerprintFromMessages(messages) {
435883
435895
  const firstMessageText = extractFirstMessageText(messages);
435884
- return computeFingerprint(firstMessageText, "1.3.430");
435896
+ return computeFingerprint(firstMessageText, "1.3.431");
435885
435897
  }
435886
435898
  var FINGERPRINT_SALT = "59cf53e54c78";
435887
435899
  var init_fingerprint = () => {};
@@ -435923,7 +435935,7 @@ async function sideQuery(opts) {
435923
435935
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
435924
435936
  }
435925
435937
  const messageText = extractFirstUserMessageText(messages);
435926
- const fingerprint = computeFingerprint(messageText, "1.3.430");
435938
+ const fingerprint = computeFingerprint(messageText, "1.3.431");
435927
435939
  const attributionHeader = getAttributionHeader(fingerprint);
435928
435940
  const systemBlocks = [
435929
435941
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -530901,7 +530913,7 @@ function Feedback({
530901
530913
  platform: env4.platform,
530902
530914
  gitRepo: envInfo.isGit,
530903
530915
  terminal: env4.terminal,
530904
- version: "1.3.430",
530916
+ version: "1.3.431",
530905
530917
  transcript: normalizeMessagesForAPI(messages),
530906
530918
  errors: sanitizedErrors,
530907
530919
  lastApiRequest: getLastAPIRequest(),
@@ -531093,7 +531105,7 @@ function Feedback({
531093
531105
  ", ",
531094
531106
  env4.terminal,
531095
531107
  ", v",
531096
- "1.3.430"
531108
+ "1.3.431"
531097
531109
  ]
531098
531110
  }, undefined, true, undefined, this)
531099
531111
  ]
@@ -531199,7 +531211,7 @@ ${sanitizedDescription}
531199
531211
  ` + `**Environment Info**
531200
531212
  ` + `- Platform: ${env4.platform}
531201
531213
  ` + `- Terminal: ${env4.terminal}
531202
- ` + `- Version: ${"1.3.430"}
531214
+ ` + `- Version: ${"1.3.431"}
531203
531215
  ` + `- Feedback ID: ${feedbackId}
531204
531216
  ` + `
531205
531217
  **Errors**
@@ -534039,9 +534051,9 @@ async function assertMinVersion() {
534039
534051
  if (false) {}
534040
534052
  try {
534041
534053
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
534042
- if (versionConfig.minVersion && lt("1.3.430", versionConfig.minVersion)) {
534054
+ if (versionConfig.minVersion && lt("1.3.431", versionConfig.minVersion)) {
534043
534055
  console.error(`
534044
- It looks like your version of RAYU (${"1.3.430"}) needs an update.
534056
+ It looks like your version of RAYU (${"1.3.431"}) needs an update.
534045
534057
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
534046
534058
 
534047
534059
  To update, please run:
@@ -534267,7 +534279,7 @@ async function installGlobalPackage(specificVersion) {
534267
534279
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
534268
534280
  logEvent("tengu_auto_updater_lock_contention", {
534269
534281
  pid: process.pid,
534270
- currentVersion: "1.3.430"
534282
+ currentVersion: "1.3.431"
534271
534283
  });
534272
534284
  return "in_progress";
534273
534285
  }
@@ -534276,7 +534288,7 @@ async function installGlobalPackage(specificVersion) {
534276
534288
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
534277
534289
  logError2(new Error("Windows NPM detected in WSL environment"));
534278
534290
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
534279
- currentVersion: "1.3.430"
534291
+ currentVersion: "1.3.431"
534280
534292
  });
534281
534293
  console.error(`
534282
534294
  Error: Windows NPM detected in WSL
@@ -534812,7 +534824,7 @@ function detectLinuxGlobPatternWarnings() {
534812
534824
  }
534813
534825
  async function getDoctorDiagnostic() {
534814
534826
  const installationType = await getCurrentInstallationType();
534815
- const version2 = typeof MACRO !== "undefined" ? "1.3.430" : "unknown";
534827
+ const version2 = typeof MACRO !== "undefined" ? "1.3.431" : "unknown";
534816
534828
  const installationPath = await getInstallationPath();
534817
534829
  const invokedBinary = getInvokedBinary();
534818
534830
  const multipleInstallations = await detectMultipleInstallations();
@@ -535607,8 +535619,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
535607
535619
  const maxVersion = await getMaxVersion();
535608
535620
  if (maxVersion && gt(version2, maxVersion)) {
535609
535621
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
535610
- if (gte("1.3.430", maxVersion)) {
535611
- logForDebugging(`Native installer: current version ${"1.3.430"} is already at or above maxVersion ${maxVersion}, skipping update`);
535622
+ if (gte("1.3.431", maxVersion)) {
535623
+ logForDebugging(`Native installer: current version ${"1.3.431"} is already at or above maxVersion ${maxVersion}, skipping update`);
535612
535624
  logEvent("tengu_native_update_skipped_max_version", {
535613
535625
  latency_ms: Date.now() - startTime,
535614
535626
  max_version: maxVersion,
@@ -535619,7 +535631,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
535619
535631
  version2 = maxVersion;
535620
535632
  }
535621
535633
  }
535622
- if (!forceReinstall && version2 === "1.3.430" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
535634
+ if (!forceReinstall && version2 === "1.3.431" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
535623
535635
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
535624
535636
  logEvent("tengu_native_update_complete", {
535625
535637
  latency_ms: Date.now() - startTime,
@@ -536815,7 +536827,7 @@ function buildPrimarySection() {
536815
536827
  }, undefined, false, undefined, this);
536816
536828
  return [{
536817
536829
  label: "Version",
536818
- value: "1.3.430"
536830
+ value: "1.3.431"
536819
536831
  }, {
536820
536832
  label: "Session name",
536821
536833
  value: nameValue
@@ -540506,7 +540518,7 @@ function Config({
540506
540518
  }
540507
540519
  }, undefined, false, undefined, this)
540508
540520
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime170.jsxDEV(ChannelDowngradeDialog, {
540509
- currentVersion: "1.3.430",
540521
+ currentVersion: "1.3.431",
540510
540522
  onChoice: (choice) => {
540511
540523
  setShowSubmenu(null);
540512
540524
  setTabsHidden(false);
@@ -540518,7 +540530,7 @@ function Config({
540518
540530
  autoUpdatesChannel: "stable"
540519
540531
  };
540520
540532
  if (choice === "stay") {
540521
- newSettings.minimumVersion = "1.3.430";
540533
+ newSettings.minimumVersion = "1.3.431";
540522
540534
  }
540523
540535
  updateSettingsForSource("userSettings", newSettings);
540524
540536
  setSettingsData((prev_27) => ({
@@ -548580,7 +548592,7 @@ function HelpV2(t0) {
548580
548592
  let t6;
548581
548593
  if ($3[31] !== tabs) {
548582
548594
  t6 = /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(Tabs, {
548583
- title: `Rayu-CLI v${"1.3.430"}`,
548595
+ title: `Rayu-CLI v${"1.3.431"}`,
548584
548596
  color: "professionalBlue",
548585
548597
  defaultTab: "general",
548586
548598
  children: tabs
@@ -568612,7 +568624,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
568612
568624
  }
568613
568625
  return [];
568614
568626
  }
568615
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.430") {
568627
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.431") {
568616
568628
  if (false) {}
568617
568629
  const cachedChangelog = await getStoredChangelog();
568618
568630
  if (lastSeenVersion !== currentVersion || !cachedChangelog) {
@@ -568625,7 +568637,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.430")
568625
568637
  releaseNotes
568626
568638
  };
568627
568639
  }
568628
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.3.430") {
568640
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.3.431") {
568629
568641
  if (false) {}
568630
568642
  const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
568631
568643
  return {
@@ -568753,7 +568765,7 @@ function getRecentActivitySync() {
568753
568765
  return cachedActivity;
568754
568766
  }
568755
568767
  function getLogoDisplayData() {
568756
- const version2 = process.env.DEMO_VERSION ?? "1.3.430";
568768
+ const version2 = process.env.DEMO_VERSION ?? "1.3.431";
568757
568769
  const serverUrl = getDirectConnectServerUrl();
568758
568770
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
568759
568771
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -569999,7 +570011,7 @@ function LogoV2() {
569999
570011
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
570000
570012
  t2 = () => {
570001
570013
  const currentConfig = getGlobalConfig();
570002
- if (currentConfig.lastReleaseNotesSeen === "1.3.430") {
570014
+ if (currentConfig.lastReleaseNotesSeen === "1.3.431") {
570003
570015
  return;
570004
570016
  }
570005
570017
  saveGlobalConfig(_temp327);
@@ -570477,7 +570489,7 @@ function LogoV2() {
570477
570489
  t24 = $3[61];
570478
570490
  }
570479
570491
  const _latestNpm = getCachedLatestNpmVersionSync();
570480
- const _updateFeeds = _latestNpm && gt(_latestNpm, "1.3.430") ? [createUpdateAvailableFeed("1.3.430", _latestNpm)] : [];
570492
+ const _updateFeeds = _latestNpm && gt(_latestNpm, "1.3.431") ? [createUpdateAvailableFeed("1.3.431", _latestNpm)] : [];
570481
570493
  const t25 = layoutMode === "horizontal" && /* @__PURE__ */ jsx_dev_runtime239.jsxDEV(FeedColumn, {
570482
570494
  feeds: showOnboarding ? [createProjectOnboardingFeed(getSteps()), createRecentActivityFeed(activities)] : showGuestPassesUpsell ? [createRecentActivityFeed(activities), createGuestPassesFeed()] : showOverageCreditUpsell ? [createRecentActivityFeed(activities), createOverageCreditFeed()] : [createRecentActivityFeed(activities), ..._updateFeeds, createWhatsNewFeed(changelog)],
570483
570495
  maxWidth: rightWidth
@@ -570677,12 +570689,12 @@ function LogoV2() {
570677
570689
  return t41;
570678
570690
  }
570679
570691
  function _temp327(current) {
570680
- if (current.lastReleaseNotesSeen === "1.3.430") {
570692
+ if (current.lastReleaseNotesSeen === "1.3.431") {
570681
570693
  return current;
570682
570694
  }
570683
570695
  return {
570684
570696
  ...current,
570685
- lastReleaseNotesSeen: "1.3.430"
570697
+ lastReleaseNotesSeen: "1.3.431"
570686
570698
  };
570687
570699
  }
570688
570700
  function _temp241(s_0) {
@@ -595475,7 +595487,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
595475
595487
  smapsRollup,
595476
595488
  platform: process.platform,
595477
595489
  nodeVersion: process.version,
595478
- ccVersion: "1.3.430"
595490
+ ccVersion: "1.3.431"
595479
595491
  };
595480
595492
  }
595481
595493
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -595997,7 +596009,7 @@ var init_bridge_kick = __esm(() => {
595997
596009
  var call48 = async () => {
595998
596010
  return {
595999
596011
  type: "text",
596000
- value: "1.3.430"
596012
+ value: "1.3.431"
596001
596013
  };
596002
596014
  }, version2, version_default;
596003
596015
  var init_version = __esm(() => {
@@ -597394,141 +597406,9 @@ var init_rayuSession = __esm(() => {
597394
597406
  REFRESH_SKEW_MS = 60 * 1000;
597395
597407
  });
597396
597408
 
597397
- // src/services/oauth/auth-code-listener.ts
597398
- import { createServer as createServer7 } from "http";
597399
-
597400
- class AuthCodeListener {
597401
- localServer;
597402
- port = 0;
597403
- promiseResolver = null;
597404
- promiseRejecter = null;
597405
- expectedState = null;
597406
- pendingResponse = null;
597407
- callbackPath;
597408
- constructor(callbackPath = "/callback") {
597409
- this.localServer = createServer7();
597410
- this.callbackPath = callbackPath;
597411
- }
597412
- async start(port) {
597413
- return new Promise((resolve49, reject2) => {
597414
- this.localServer.once("error", (err2) => {
597415
- reject2(new Error(`Failed to start OAuth callback server: ${err2.message}`));
597416
- });
597417
- this.localServer.listen(port ?? 0, "localhost", () => {
597418
- const address = this.localServer.address();
597419
- this.port = address.port;
597420
- resolve49(this.port);
597421
- });
597422
- });
597423
- }
597424
- getPort() {
597425
- return this.port;
597426
- }
597427
- hasPendingResponse() {
597428
- return this.pendingResponse !== null;
597429
- }
597430
- async waitForAuthorization(state, onReady) {
597431
- return new Promise((resolve49, reject2) => {
597432
- this.promiseResolver = resolve49;
597433
- this.promiseRejecter = reject2;
597434
- this.expectedState = state;
597435
- this.startLocalListener(onReady);
597436
- });
597437
- }
597438
- handleSuccessRedirect(scopes, customHandler) {
597439
- if (!this.pendingResponse)
597440
- return;
597441
- if (customHandler) {
597442
- customHandler(this.pendingResponse, scopes);
597443
- this.pendingResponse = null;
597444
- logEvent("tengu_oauth_automatic_redirect", { custom_handler: true });
597445
- return;
597446
- }
597447
- const successUrl = shouldUseClaudeAIAuth(scopes) ? getOauthConfig().CLAUDEAI_SUCCESS_URL : getOauthConfig().CONSOLE_SUCCESS_URL;
597448
- this.pendingResponse.writeHead(302, { Location: successUrl });
597449
- this.pendingResponse.end();
597450
- this.pendingResponse = null;
597451
- logEvent("tengu_oauth_automatic_redirect", {});
597452
- }
597453
- handleErrorRedirect() {
597454
- if (!this.pendingResponse)
597455
- return;
597456
- const errorUrl = getOauthConfig().CLAUDEAI_SUCCESS_URL;
597457
- this.pendingResponse.writeHead(302, { Location: errorUrl });
597458
- this.pendingResponse.end();
597459
- this.pendingResponse = null;
597460
- logEvent("tengu_oauth_automatic_redirect_error", {});
597461
- }
597462
- startLocalListener(onReady) {
597463
- this.localServer.on("request", this.handleRedirect.bind(this));
597464
- this.localServer.on("error", this.handleError.bind(this));
597465
- onReady();
597466
- }
597467
- handleRedirect(req, res) {
597468
- const parsedUrl = new URL(req.url || "", `http://${req.headers.host || "localhost"}`);
597469
- if (parsedUrl.pathname !== this.callbackPath) {
597470
- res.writeHead(404);
597471
- res.end();
597472
- return;
597473
- }
597474
- const authCode = parsedUrl.searchParams.get("code") ?? undefined;
597475
- const state = parsedUrl.searchParams.get("state") ?? undefined;
597476
- this.validateAndRespond(authCode, state, res);
597477
- }
597478
- validateAndRespond(authCode, state, res) {
597479
- if (!authCode) {
597480
- res.writeHead(400);
597481
- res.end("Authorization code not found");
597482
- this.reject(new Error("No authorization code received"));
597483
- return;
597484
- }
597485
- if (state !== this.expectedState) {
597486
- res.writeHead(400);
597487
- res.end("Invalid state parameter");
597488
- this.reject(new Error("Invalid state parameter"));
597489
- return;
597490
- }
597491
- this.pendingResponse = res;
597492
- this.resolve(authCode);
597493
- }
597494
- handleError(err2) {
597495
- logError2(err2);
597496
- this.close();
597497
- this.reject(err2);
597498
- }
597499
- resolve(authorizationCode) {
597500
- if (this.promiseResolver) {
597501
- this.promiseResolver(authorizationCode);
597502
- this.promiseResolver = null;
597503
- this.promiseRejecter = null;
597504
- }
597505
- }
597506
- reject(error54) {
597507
- if (this.promiseRejecter) {
597508
- this.promiseRejecter(error54);
597509
- this.promiseResolver = null;
597510
- this.promiseRejecter = null;
597511
- }
597512
- }
597513
- close() {
597514
- if (this.pendingResponse) {
597515
- this.handleErrorRedirect();
597516
- }
597517
- if (this.localServer) {
597518
- this.localServer.removeAllListeners();
597519
- this.localServer.close();
597520
- }
597521
- }
597522
- }
597523
- var init_auth_code_listener = __esm(() => {
597524
- init_analytics();
597525
- init_oauth();
597526
- init_log2();
597527
- init_client8();
597528
- });
597529
-
597530
597409
  // src/services/rayuAuth/rayuLogin.ts
597531
597410
  import { randomBytes as randomBytes17 } from "crypto";
597411
+ import { createServer as createServer7 } from "http";
597532
597412
  function buildCliLoginUrl(webBaseUrl, port, state) {
597533
597413
  const u4 = new URL(`${webBaseUrl.replace(/\/$/, "")}/cli-login`);
597534
597414
  u4.searchParams.set("port", String(port));
@@ -597538,48 +597418,94 @@ function buildCliLoginUrl(webBaseUrl, port, state) {
597538
597418
  function newState() {
597539
597419
  return randomBytes17(16).toString("hex");
597540
597420
  }
597421
+ function parseCallback(reqUrl) {
597422
+ try {
597423
+ const u4 = new URL(reqUrl, "http://127.0.0.1");
597424
+ return {
597425
+ code: u4.searchParams.get("code") ?? undefined,
597426
+ state: u4.searchParams.get("state") ?? undefined
597427
+ };
597428
+ } catch {
597429
+ return {};
597430
+ }
597431
+ }
597541
597432
  async function loginRayu(opts) {
597542
- const listener2 = new AuthCodeListener("/callback");
597543
597433
  const state = newState();
597544
- try {
597545
- const port = await listener2.start();
597546
- const url4 = buildCliLoginUrl(getRayuWebBaseUrl(), port, state);
597547
- const code = await listener2.waitForAuthorization(state, async () => {
597548
- opts?.onAuthUrl?.(url4);
597549
- if (opts?.openBrowserAutomatically !== false) {
597550
- await openBrowser(url4);
597551
- }
597552
- });
597553
- listener2.handleSuccessRedirect([], (res2) => {
597554
- res2.writeHead(200, { "Content-Type": "text/html" });
597555
- res2.end(RAYU_SUCCESS_HTML);
597556
- });
597557
- const res = await globalThis.fetch(`${getRayuApiBaseUrl()}/cli/token`, {
597558
- method: "POST",
597559
- headers: { "Content-Type": "application/json" },
597560
- body: JSON.stringify({ code })
597561
- });
597562
- if (!res.ok) {
597563
- throw new Error(`Token exchange failed (${res.status}). Please try /login again.`);
597434
+ return await new Promise((resolve49, reject2) => {
597435
+ const server = createServer7();
597436
+ let settled = false;
597437
+ const timer = setTimeout(() => {
597438
+ finish(new Error("Rayu login timed out (5 minutes)."));
597439
+ }, LOGIN_TIMEOUT_MS2);
597440
+ function finish(err2, value) {
597441
+ if (settled)
597442
+ return;
597443
+ settled = true;
597444
+ clearTimeout(timer);
597445
+ server.close();
597446
+ if (err2)
597447
+ reject2(err2);
597448
+ else
597449
+ resolve49(value);
597564
597450
  }
597565
- const data = await res.json();
597566
- writeRayuSession({
597567
- accessToken: data.accessToken,
597568
- refreshToken: data.refreshToken,
597569
- expiresAt: data.expiresAt,
597570
- user: data.user
597451
+ server.on("error", (e2) => finish(e2 instanceof Error ? e2 : new Error(String(e2))));
597452
+ server.listen(0, "127.0.0.1", async () => {
597453
+ try {
597454
+ const port = server.address().port;
597455
+ const url4 = buildCliLoginUrl(getRayuWebBaseUrl(), port, state);
597456
+ server.on("request", async (req, res) => {
597457
+ const { code, state: gotState } = parseCallback(req.url ?? "");
597458
+ if (!code) {
597459
+ res.statusCode = 204;
597460
+ res.end();
597461
+ return;
597462
+ }
597463
+ if (gotState !== state) {
597464
+ res.statusCode = 400;
597465
+ res.end("Invalid state parameter");
597466
+ finish(new Error("OAuth state mismatch (possible CSRF)."));
597467
+ return;
597468
+ }
597469
+ res.writeHead(200, { "Content-Type": "text/html" });
597470
+ res.end(RAYU_SUCCESS_HTML);
597471
+ try {
597472
+ const r2 = await globalThis.fetch(`${getRayuApiBaseUrl()}/cli/token`, {
597473
+ method: "POST",
597474
+ headers: { "Content-Type": "application/json" },
597475
+ body: JSON.stringify({ code })
597476
+ });
597477
+ if (!r2.ok) {
597478
+ finish(new Error(`Token exchange failed (${r2.status}). Please try /login again.`));
597479
+ return;
597480
+ }
597481
+ const data = await r2.json();
597482
+ writeRayuSession({
597483
+ accessToken: data.accessToken,
597484
+ refreshToken: data.refreshToken,
597485
+ expiresAt: data.expiresAt,
597486
+ user: data.user
597487
+ });
597488
+ finish(null, { user: data.user });
597489
+ } catch (e2) {
597490
+ finish(e2 instanceof Error ? e2 : new Error(String(e2)));
597491
+ }
597492
+ });
597493
+ opts?.onAuthUrl?.(url4);
597494
+ if (opts?.openBrowserAutomatically !== false) {
597495
+ await openBrowser(url4);
597496
+ }
597497
+ } catch (e2) {
597498
+ finish(e2 instanceof Error ? e2 : new Error(String(e2)));
597499
+ }
597571
597500
  });
597572
- return { user: data.user };
597573
- } finally {
597574
- listener2.close();
597575
- }
597501
+ });
597576
597502
  }
597577
- var RAYU_SUCCESS_HTML;
597503
+ var RAYU_SUCCESS_HTML, LOGIN_TIMEOUT_MS2;
597578
597504
  var init_rayuLogin = __esm(() => {
597579
- init_auth_code_listener();
597580
597505
  init_browser();
597581
597506
  init_rayuSession();
597582
597507
  RAYU_SUCCESS_HTML = '<html><body style="font-family:sans-serif"><h3>Signed in to Rayu.</h3>' + "<p>You can close this tab and return to your terminal.</p></body></html>";
597508
+ LOGIN_TIMEOUT_MS2 = 5 * 60 * 1000;
597583
597509
  });
597584
597510
 
597585
597511
  // src/commands/login/login.ts
@@ -598642,7 +598568,7 @@ async function loginGeminiOAuth(opts) {
598642
598568
  settled = true;
598643
598569
  server.close();
598644
598570
  reject2(new Error("Gemini OAuth login timed out (5 minutes)."));
598645
- }, LOGIN_TIMEOUT_MS2);
598571
+ }, LOGIN_TIMEOUT_MS3);
598646
598572
  const finish = (err2, value) => {
598647
598573
  if (settled)
598648
598574
  return;
@@ -598735,7 +598661,7 @@ async function getGeminiOAuthAccessToken() {
598735
598661
  function _setOAuthClientFactoryForTesting2(factory2) {
598736
598662
  oauthClientFactoryOverride2 = factory2;
598737
598663
  }
598738
- var CLOUD_PLATFORM_SCOPE = "https://www.googleapis.com/auth/cloud-platform", DEFAULT_CLIENT_ID = "764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com", DEFAULT_CLIENT_SECRET = "d-FL95Q19q7MQmFpd7hHD0Ty", TOKEN_FILE2 = "gemini-oauth.json", TOKEN_REFRESH_SKEW_MS3, oauthClientFactoryOverride2 = null, LOGIN_TIMEOUT_MS2 = 300000;
598664
+ var CLOUD_PLATFORM_SCOPE = "https://www.googleapis.com/auth/cloud-platform", DEFAULT_CLIENT_ID = "764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com", DEFAULT_CLIENT_SECRET = "d-FL95Q19q7MQmFpd7hHD0Ty", TOKEN_FILE2 = "gemini-oauth.json", TOKEN_REFRESH_SKEW_MS3, oauthClientFactoryOverride2 = null, LOGIN_TIMEOUT_MS3 = 300000;
598739
598665
  var init_googleOAuth = __esm(() => {
598740
598666
  init_envUtils();
598741
598667
  init_browser();
@@ -599367,18 +599293,21 @@ ${r2.output.slice(-200)}`);
599367
599293
  }, undefined, false, undefined, this),
599368
599294
  /* @__PURE__ */ jsx_dev_runtime325.jsxDEV(ThemedText, {
599369
599295
  dimColor: true,
599370
- children: "Use a Kiro API key, or sign in with the Kiro CLI in your browser."
599296
+ children: "Use a Kiro API key, sign in with the Kiro CLI, or reuse an existing kiro-cli login."
599371
599297
  }, undefined, false, undefined, this),
599372
599298
  /* @__PURE__ */ jsx_dev_runtime325.jsxDEV(Select, {
599373
599299
  options: [
599374
599300
  { label: "API key — paste your ksk_… key", value: "apikey" },
599375
- { label: "Login with Kiro CLI (browser sign-in)", value: "login" }
599301
+ { label: "Login with Kiro CLI (browser sign-in)", value: "login" },
599302
+ { label: "Use existing kiro-cli login", value: "existing" }
599376
599303
  ],
599377
599304
  onChange: (v2) => {
599378
599305
  if (v2 === "apikey") {
599379
599306
  setApiKey("");
599380
599307
  setCursor(0);
599381
599308
  setPhase("kiroApiKey");
599309
+ } else if (v2 === "existing") {
599310
+ finishKiro("oauth");
599382
599311
  } else {
599383
599312
  setKiroError(null);
599384
599313
  setKiroStep("checking");
@@ -605855,7 +605784,7 @@ function generateHtmlReport(data, insights) {
605855
605784
  </html>`;
605856
605785
  }
605857
605786
  function buildExportData(data, insights, facets, remoteStats) {
605858
- const version3 = typeof MACRO !== "undefined" ? "1.3.430" : "unknown";
605787
+ const version3 = typeof MACRO !== "undefined" ? "1.3.431" : "unknown";
605859
605788
  const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
605860
605789
  const facets_summary = {
605861
605790
  total: facets.size,
@@ -609761,7 +609690,7 @@ var init_sessionStorage = __esm(() => {
609761
609690
  init_settings2();
609762
609691
  init_slowOperations();
609763
609692
  init_uuid();
609764
- VERSION6 = typeof MACRO !== "undefined" ? "1.3.430" : "unknown";
609693
+ VERSION6 = typeof MACRO !== "undefined" ? "1.3.431" : "unknown";
609765
609694
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
609766
609695
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
609767
609696
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -610982,7 +610911,7 @@ var init_filesystem = __esm(() => {
610982
610911
  });
610983
610912
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
610984
610913
  const nonce = randomBytes19(16).toString("hex");
610985
- return join153(getClaudeTempDir(), "bundled-skills", "1.3.430", nonce);
610914
+ return join153(getClaudeTempDir(), "bundled-skills", "1.3.431", nonce);
610986
610915
  });
610987
610916
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
610988
610917
  });
@@ -616097,7 +616026,7 @@ __export(exports_update, {
616097
616026
  import { execFileSync as execFileSync3 } from "node:child_process";
616098
616027
  import { homedir as homedir34 } from "os";
616099
616028
  async function update() {
616100
- writeToStdout(`Current version: ${"1.3.430"}
616029
+ writeToStdout(`Current version: ${"1.3.431"}
616101
616030
  `);
616102
616031
  const isBundled = isInBundledMode();
616103
616032
  if (isBundled) {
@@ -616123,13 +616052,13 @@ Manual check: npm view ${"@rayu-dev/rayu-cli"} version
616123
616052
  process.exit(1);
616124
616053
  return;
616125
616054
  }
616126
- if (latestVersion === "1.3.430") {
616055
+ if (latestVersion === "1.3.431") {
616127
616056
  writeToStdout(source_default.green(`
616128
- Rayu CLI is up to date (${"1.3.430"})
616057
+ Rayu CLI is up to date (${"1.3.431"})
616129
616058
  `));
616130
616059
  process.exit(0);
616131
616060
  }
616132
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.3.430"})
616061
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.3.431"})
616133
616062
  `);
616134
616063
  writeToStdout(`Installing update...
616135
616064
 
@@ -616153,7 +616082,7 @@ Try manually:
616153
616082
  return;
616154
616083
  }
616155
616084
  writeToStdout(source_default.green(`
616156
- Successfully updated from ${"1.3.430"} to ${latestVersion}
616085
+ Successfully updated from ${"1.3.431"} to ${latestVersion}
616157
616086
  `));
616158
616087
  process.exit(0);
616159
616088
  }
@@ -616167,14 +616096,14 @@ async function updateNativeBinary() {
616167
616096
  } catch {
616168
616097
  latestVersion = "";
616169
616098
  }
616170
- if (latestVersion && latestVersion === "1.3.430") {
616099
+ if (latestVersion && latestVersion === "1.3.431") {
616171
616100
  writeToStdout(source_default.green(`
616172
- Rayu CLI is up to date (1.3.430)
616101
+ Rayu CLI is up to date (1.3.431)
616173
616102
  `));
616174
616103
  process.exit(0);
616175
616104
  }
616176
616105
  if (latestVersion) {
616177
- writeToStdout(`New version available: ${latestVersion} (current: 1.3.430)
616106
+ writeToStdout(`New version available: ${latestVersion} (current: 1.3.431)
616178
616107
  `);
616179
616108
  }
616180
616109
  writeToStdout(`Downloading and installing update...
@@ -616189,13 +616118,13 @@ Rayu CLI is up to date (1.3.430)
616189
616118
  return;
616190
616119
  }
616191
616120
  writeToStdout(source_default.green(`
616192
- Rayu CLI is up to date (1.3.430)
616121
+ Rayu CLI is up to date (1.3.431)
616193
616122
  `));
616194
616123
  process.exit(0);
616195
616124
  }
616196
616125
  const updatedTo = result.latestVersion ?? latestVersion ?? "latest";
616197
616126
  writeToStdout(source_default.green(`
616198
- Successfully updated from 1.3.430 to ${updatedTo}
616127
+ Successfully updated from 1.3.431 to ${updatedTo}
616199
616128
  `));
616200
616129
  writeToStdout(`Restart your terminal to use the new version.
616201
616130
  `);
@@ -616226,7 +616155,7 @@ __export(exports_uninstall, {
616226
616155
  import { execFileSync as execFileSync4 } from "node:child_process";
616227
616156
  import { homedir as homedir35 } from "os";
616228
616157
  async function uninstall() {
616229
- writeToStdout(`Uninstalling Rayu CLI (${"1.3.430"})...
616158
+ writeToStdout(`Uninstalling Rayu CLI (${"1.3.431"})...
616230
616159
  `);
616231
616160
  writeToStdout(`Running: npm uninstall -g ${"@rayu-dev/rayu-cli"}
616232
616161
 
@@ -616249,7 +616178,7 @@ Try running manually:
616249
616178
  process.exit(1);
616250
616179
  }
616251
616180
  writeToStdout(source_default.green(`
616252
- Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.3.430"}
616181
+ Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.3.431"}
616253
616182
  `));
616254
616183
  writeToStdout(`Thanks for using Rayu CLI!
616255
616184
  `);
@@ -616301,7 +616230,7 @@ function showFirstRunWelcome() {
616301
616230
  `);
616302
616231
  try {
616303
616232
  mkdirSync14(getRayuConfigHomeDir(), { recursive: true });
616304
- writeFileSync16(markerPath(), "1.3.430", "utf8");
616233
+ writeFileSync16(markerPath(), "1.3.431", "utf8");
616305
616234
  } catch {}
616306
616235
  }
616307
616236
  var init_firstRun = __esm(() => {
@@ -628144,7 +628073,7 @@ async function initializeBetaTracing(resource) {
628144
628073
  });
628145
628074
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
628146
628075
  setLoggerProvider(loggerProvider);
628147
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.430");
628076
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.431");
628148
628077
  setEventLogger(eventLogger);
628149
628078
  process.on("beforeExit", async () => {
628150
628079
  await loggerProvider?.forceFlush();
@@ -628184,7 +628113,7 @@ async function initializeTelemetry() {
628184
628113
  const platform4 = getPlatform();
628185
628114
  const baseAttributes = {
628186
628115
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
628187
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.3.430"
628116
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.3.431"
628188
628117
  };
628189
628118
  if (platform4 === "wsl") {
628190
628119
  const wslVersion = getWslVersion();
@@ -628229,7 +628158,7 @@ async function initializeTelemetry() {
628229
628158
  } catch {}
628230
628159
  };
628231
628160
  registerCleanup(shutdownTelemetry2);
628232
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.3.430");
628161
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.3.431");
628233
628162
  }
628234
628163
  const meterProvider = new import_sdk_metrics2.MeterProvider({
628235
628164
  resource,
@@ -628249,7 +628178,7 @@ async function initializeTelemetry() {
628249
628178
  });
628250
628179
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
628251
628180
  setLoggerProvider(loggerProvider);
628252
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.430");
628181
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.431");
628253
628182
  setEventLogger(eventLogger);
628254
628183
  logForDebugging("[3P telemetry] Event logger set successfully");
628255
628184
  process.on("beforeExit", async () => {
@@ -628311,7 +628240,7 @@ Current timeout: ${timeoutMs}ms
628311
628240
  }
628312
628241
  };
628313
628242
  registerCleanup(shutdownTelemetry);
628314
- return meterProvider.getMeter("com.anthropic.claude_code", "1.3.430");
628243
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.3.431");
628315
628244
  }
628316
628245
  async function flushTelemetry() {
628317
628246
  const meterProvider = getMeterProvider();
@@ -629824,7 +629753,7 @@ function buildSystemInitMessage(inputs) {
629824
629753
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
629825
629754
  apiKeySource: getAnthropicApiKeyWithSource().source,
629826
629755
  betas: getSdkBetas(),
629827
- claude_code_version: "1.3.430",
629756
+ claude_code_version: "1.3.431",
629828
629757
  output_style: outputStyle2,
629829
629758
  agents: inputs.agents.map((agent) => agent.agentType),
629830
629759
  skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
@@ -646033,7 +645962,7 @@ var init_useVoiceEnabled = __esm(() => {
646033
645962
  function getSemverPart(version3) {
646034
645963
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
646035
645964
  }
646036
- function useUpdateNotification(updatedVersion, initialVersion = "1.3.430") {
645965
+ function useUpdateNotification(updatedVersion, initialVersion = "1.3.431") {
646037
645966
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react217.useState(() => getSemverPart(initialVersion));
646038
645967
  if (!updatedVersion) {
646039
645968
  return null;
@@ -646073,7 +646002,7 @@ function AutoUpdater({
646073
646002
  return;
646074
646003
  }
646075
646004
  if (false) {}
646076
- const currentVersion = "1.3.430";
646005
+ const currentVersion = "1.3.431";
646077
646006
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
646078
646007
  let latestVersion = await getLatestVersion(channel);
646079
646008
  const isDisabled = isAutoUpdaterDisabled();
@@ -646286,12 +646215,12 @@ function NativeAutoUpdater({
646286
646215
  logEvent("tengu_native_auto_updater_start", {});
646287
646216
  try {
646288
646217
  const maxVersion = await getMaxVersion();
646289
- if (maxVersion && gt("1.3.430", maxVersion)) {
646218
+ if (maxVersion && gt("1.3.431", maxVersion)) {
646290
646219
  const msg = await getMaxVersionMessage();
646291
646220
  setMaxVersionIssue(msg ?? "affects your version");
646292
646221
  }
646293
646222
  const result = await installLatest(channel);
646294
- const currentVersion = "1.3.430";
646223
+ const currentVersion = "1.3.431";
646295
646224
  const latencyMs = Date.now() - startTime;
646296
646225
  if (result.lockFailed) {
646297
646226
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -646428,17 +646357,17 @@ function PackageManagerAutoUpdater(t0) {
646428
646357
  const maxVersion = await getMaxVersion();
646429
646358
  if (maxVersion && latest && gt(latest, maxVersion)) {
646430
646359
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
646431
- if (gte("1.3.430", maxVersion)) {
646432
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.3.430"} is already at or above maxVersion ${maxVersion}, skipping update`);
646360
+ if (gte("1.3.431", maxVersion)) {
646361
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.3.431"} is already at or above maxVersion ${maxVersion}, skipping update`);
646433
646362
  setUpdateAvailable(false);
646434
646363
  return;
646435
646364
  }
646436
646365
  latest = maxVersion;
646437
646366
  }
646438
- const hasUpdate = latest && !gte("1.3.430", latest) && !shouldSkipVersion(latest);
646367
+ const hasUpdate = latest && !gte("1.3.431", latest) && !shouldSkipVersion(latest);
646439
646368
  setUpdateAvailable(!!hasUpdate);
646440
646369
  if (hasUpdate) {
646441
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.3.430"} -> ${latest}`);
646370
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.3.431"} -> ${latest}`);
646442
646371
  }
646443
646372
  };
646444
646373
  $3[0] = t1;
@@ -646472,7 +646401,7 @@ function PackageManagerAutoUpdater(t0) {
646472
646401
  wrap: "truncate",
646473
646402
  children: [
646474
646403
  "currentVersion: ",
646475
- "1.3.430"
646404
+ "1.3.431"
646476
646405
  ]
646477
646406
  }, undefined, true, undefined, this);
646478
646407
  $3[3] = verbose;
@@ -654637,7 +654566,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
654637
654566
  project_dir: getOriginalCwd(),
654638
654567
  added_dirs: addedDirs
654639
654568
  },
654640
- version: "1.3.430",
654569
+ version: "1.3.431",
654641
654570
  output_style: {
654642
654571
  name: outputStyleName
654643
654572
  },
@@ -666041,7 +665970,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
666041
665970
  } catch {}
666042
665971
  const data = {
666043
665972
  trigger,
666044
- version: "1.3.430",
665973
+ version: "1.3.431",
666045
665974
  platform: process.platform,
666046
665975
  transcript,
666047
665976
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -678090,7 +678019,7 @@ function WelcomeV2() {
678090
678019
  dimColor: true,
678091
678020
  children: [
678092
678021
  "v",
678093
- "1.3.430"
678022
+ "1.3.431"
678094
678023
  ]
678095
678024
  }, undefined, true, undefined, this)
678096
678025
  ]
@@ -679824,7 +679753,7 @@ function completeOnboarding() {
679824
679753
  saveGlobalConfig((current) => ({
679825
679754
  ...current,
679826
679755
  hasCompletedOnboarding: true,
679827
- lastOnboardingVersion: "1.3.430"
679756
+ lastOnboardingVersion: "1.3.431"
679828
679757
  }));
679829
679758
  }
679830
679759
  function showDialog(root2, renderer) {
@@ -684124,7 +684053,7 @@ function appendToLog(path30, message) {
684124
684053
  cwd: getFsImplementation().cwd(),
684125
684054
  userType: "external",
684126
684055
  sessionId: getSessionId(),
684127
- version: "1.3.430"
684056
+ version: "1.3.431"
684128
684057
  };
684129
684058
  getLogWriter(path30).write(messageWithTimestamp);
684130
684059
  }
@@ -688232,8 +688161,8 @@ async function getEnvLessBridgeConfig() {
688232
688161
  }
688233
688162
  async function checkEnvLessBridgeMinVersion() {
688234
688163
  const cfg = await getEnvLessBridgeConfig();
688235
- if (cfg.min_version && lt("1.3.430", cfg.min_version)) {
688236
- return `Your version of RAYU (${"1.3.430"}) is too old for Remote Control.
688164
+ if (cfg.min_version && lt("1.3.431", cfg.min_version)) {
688165
+ return `Your version of RAYU (${"1.3.431"}) is too old for Remote Control.
688237
688166
  Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
688238
688167
  }
688239
688168
  return null;
@@ -688707,7 +688636,7 @@ async function initBridgeCore(params) {
688707
688636
  const rawApi = createBridgeApiClient({
688708
688637
  baseUrl,
688709
688638
  getAccessToken,
688710
- runnerVersion: "1.3.430",
688639
+ runnerVersion: "1.3.431",
688711
688640
  onDebug: logForDebugging,
688712
688641
  onAuth401,
688713
688642
  getTrustedDeviceToken
@@ -694069,7 +693998,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
694069
693998
  setCwd(cwd3);
694070
693999
  const server = new Server({
694071
694000
  name: "claude/tengu",
694072
- version: "1.3.430"
694001
+ version: "1.3.431"
694073
694002
  }, {
694074
694003
  capabilities: {
694075
694004
  tools: {}
@@ -696595,7 +696524,7 @@ ${customInstructions}` : customInstructions;
696595
696524
  }
696596
696525
  }
696597
696526
  logForDiagnosticsNoPII("info", "started", {
696598
- version: "1.3.430",
696527
+ version: "1.3.431",
696599
696528
  is_native_binary: isInBundledMode()
696600
696529
  });
696601
696530
  registerCleanup(async () => {
@@ -697314,7 +697243,7 @@ Usage: rayu --remote "your task description"`, () => gracefulShutdown(1));
697314
697243
  pendingHookMessages
697315
697244
  }, renderAndRun);
697316
697245
  }
697317
- }).version("1.3.430 (Rayu-CLI)", "-v, --version", "Output the version number");
697246
+ }).version("1.3.431 (Rayu-CLI)", "-v, --version", "Output the version number");
697318
697247
  program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
697319
697248
  program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
697320
697249
  if (canUserConfigureAdvisor()) {
@@ -697780,7 +697709,7 @@ if (false) {}
697780
697709
  async function main2() {
697781
697710
  const args = process.argv.slice(2);
697782
697711
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
697783
- console.log(`${"1.3.430"} (Rayu-CLI)`);
697712
+ console.log(`${"1.3.431"} (Rayu-CLI)`);
697784
697713
  return;
697785
697714
  }
697786
697715
  const {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rayu-dev/rayu-cli",
3
- "version": "1.3.430",
3
+ "version": "1.3.431",
4
4
  "description": "Rayu-CLI — a multi-provider AI coding CLI",
5
5
  "type": "module",
6
6
  "bin": {