@rayu-dev/rayu-cli 1.3.444 → 1.3.446

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 +258 -159
  2. package/package.json +1 -1
package/dist/rayu.js CHANGED
@@ -148367,7 +148367,7 @@ var init_auth = __esm(() => {
148367
148367
 
148368
148368
  // src/utils/userAgent.ts
148369
148369
  function getRayuUserAgent() {
148370
- return `rayu/${"1.3.444"}`;
148370
+ return `rayu/${"1.3.446"}`;
148371
148371
  }
148372
148372
  var getClaudeCodeUserAgent;
148373
148373
  var init_userAgent = __esm(() => {
@@ -148393,7 +148393,7 @@ function getUserAgent() {
148393
148393
  const clientApp = process.env.RAYU_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}` : "";
148394
148394
  const workload = getWorkload();
148395
148395
  const workloadSuffix = workload ? `, workload/${workload}` : "";
148396
- return `rayu/${"1.3.444"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
148396
+ return `rayu/${"1.3.446"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
148397
148397
  }
148398
148398
  function getMCPUserAgent() {
148399
148399
  const parts = [];
@@ -148407,7 +148407,7 @@ function getMCPUserAgent() {
148407
148407
  parts.push(`client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}`);
148408
148408
  }
148409
148409
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
148410
- return `rayu/${"1.3.444"}${suffix}`;
148410
+ return `rayu/${"1.3.446"}${suffix}`;
148411
148411
  }
148412
148412
  function getWebFetchUserAgent() {
148413
148413
  return `Rayu-User (${getRayuUserAgent()})`;
@@ -148530,7 +148530,7 @@ var init_user = __esm(() => {
148530
148530
  deviceId,
148531
148531
  sessionId: getSessionId(),
148532
148532
  email: getEmail(),
148533
- appVersion: "1.3.444",
148533
+ appVersion: "1.3.446",
148534
148534
  platform: getHostPlatformForAnalytics(),
148535
148535
  organizationUuid,
148536
148536
  accountUuid,
@@ -165643,7 +165643,7 @@ function isGatewayCallbackEnabled() {
165643
165643
  const v = process.env.RAYU_GATEWAY_CALLBACK;
165644
165644
  if (v !== undefined && v !== "")
165645
165645
  return isEnvTruthy(v);
165646
- return true;
165646
+ return false;
165647
165647
  }
165648
165648
  function isRoutableKind(provider) {
165649
165649
  switch (provider.kind) {
@@ -184625,7 +184625,7 @@ var init_metadata = __esm(() => {
184625
184625
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
184626
184626
  WHITESPACE_REGEX = /\s+/;
184627
184627
  getVersionBase = memoize_default(() => {
184628
- const match = "1.3.444".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
184628
+ const match = "1.3.446".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
184629
184629
  return match ? match[0] : undefined;
184630
184630
  });
184631
184631
  buildEnvContext = memoize_default(async () => {
@@ -184664,7 +184664,7 @@ var init_metadata = __esm(() => {
184664
184664
  },
184665
184665
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
184666
184666
  isRayuAction: isEnvTruthy(process.env.RAYU_ACTION),
184667
- version: "1.3.444",
184667
+ version: "1.3.446",
184668
184668
  versionBase: getVersionBase(),
184669
184669
  buildTime: "",
184670
184670
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
@@ -185276,7 +185276,7 @@ function initialize1PEventLogging() {
185276
185276
  const platform2 = getPlatform();
185277
185277
  const attributes = {
185278
185278
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "rayu",
185279
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.3.444"
185279
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.3.446"
185280
185280
  };
185281
185281
  if (platform2 === "wsl") {
185282
185282
  const wslVersion = getWslVersion();
@@ -185303,7 +185303,7 @@ function initialize1PEventLogging() {
185303
185303
  })
185304
185304
  ]
185305
185305
  });
185306
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("io.rayu.events", "1.3.444");
185306
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("io.rayu.events", "1.3.446");
185307
185307
  }
185308
185308
  async function reinitialize1PEventLoggingIfConfigChanged() {
185309
185309
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -208071,6 +208071,34 @@ class LogUpdate {
208071
208071
  const viewportY = growing ? Math.max(0, prev.screen.height - prev.viewport.height + cursorRestoreScroll) : Math.max(prev.screen.height, next.screen.height) - next.viewport.height + cursorRestoreScroll;
208072
208072
  let currentStyleId = stylePool.none;
208073
208073
  let currentHyperlink = undefined;
208074
+ if (!altScreen && next.screen.damage && prev.screen.height > 0) {
208075
+ const w = next.screen.width;
208076
+ const lastExistingRow = Math.min(prev.screen.height, next.screen.height);
208077
+ for (let y = Math.max(0, viewportY);y < lastExistingRow; y++) {
208078
+ let nextStart = 0;
208079
+ while (nextStart < w && isEmptyCellAt(next.screen, nextStart, y)) {
208080
+ nextStart++;
208081
+ }
208082
+ if (nextStart === 0 || nextStart >= w) {
208083
+ continue;
208084
+ }
208085
+ let prevHasLeading = false;
208086
+ for (let x2 = 0;x2 < nextStart; x2++) {
208087
+ if (!isEmptyCellAt(prev.screen, x2, y)) {
208088
+ prevHasLeading = true;
208089
+ break;
208090
+ }
208091
+ }
208092
+ if (prevHasLeading) {
208093
+ next.screen.damage = unionRect(next.screen.damage, {
208094
+ x: 0,
208095
+ y,
208096
+ width: nextStart,
208097
+ height: 1
208098
+ });
208099
+ }
208100
+ }
208101
+ }
208074
208102
  let needsFullReset = false;
208075
208103
  let resetTriggerY = -1;
208076
208104
  const modifiedRows = new Set;
@@ -208353,6 +208381,7 @@ var CARRIAGE_RETURN, NEWLINE, ERASE_TO_LINE_END = "\x1B[0K";
208353
208381
  var init_log_update = __esm(() => {
208354
208382
  init_build();
208355
208383
  init_debug();
208384
+ init_geometry();
208356
208385
  init_screen();
208357
208386
  init_csi();
208358
208387
  init_osc();
@@ -211989,6 +212018,7 @@ var init_theme = __esm(() => {
211989
212018
  remember: "rgb(0,0,255)",
211990
212019
  background: "rgb(0,153,153)",
211991
212020
  success: "rgb(44,122,57)",
212021
+ promptChar: "rgb(44,122,57)",
211992
212022
  error: "rgb(171,43,63)",
211993
212023
  warning: "rgb(150,108,30)",
211994
212024
  merged: "rgb(135,0,255)",
@@ -212060,6 +212090,7 @@ var init_theme = __esm(() => {
212060
212090
  remember: "ansi:blue",
212061
212091
  background: "ansi:cyan",
212062
212092
  success: "ansi:green",
212093
+ promptChar: "ansi:green",
212063
212094
  error: "ansi:red",
212064
212095
  warning: "ansi:yellow",
212065
212096
  merged: "ansi:magenta",
@@ -212131,6 +212162,7 @@ var init_theme = __esm(() => {
212131
212162
  remember: "ansi:blueBright",
212132
212163
  background: "ansi:cyanBright",
212133
212164
  success: "ansi:greenBright",
212165
+ promptChar: "ansi:greenBright",
212134
212166
  error: "ansi:redBright",
212135
212167
  warning: "ansi:yellowBright",
212136
212168
  merged: "ansi:magentaBright",
@@ -212202,6 +212234,7 @@ var init_theme = __esm(() => {
212202
212234
  remember: "rgb(51,102,255)",
212203
212235
  background: "rgb(0,153,153)",
212204
212236
  success: "rgb(0,102,153)",
212237
+ promptChar: "rgb(0,102,153)",
212205
212238
  error: "rgb(204,0,0)",
212206
212239
  warning: "rgb(255,153,0)",
212207
212240
  merged: "rgb(135,0,255)",
@@ -212273,6 +212306,7 @@ var init_theme = __esm(() => {
212273
212306
  remember: "rgb(177,185,249)",
212274
212307
  background: "rgb(0,204,204)",
212275
212308
  success: "rgb(78,186,101)",
212309
+ promptChar: "rgb(0,255,136)",
212276
212310
  error: "rgb(255,107,128)",
212277
212311
  warning: "rgb(255,193,7)",
212278
212312
  merged: "rgb(175,135,255)",
@@ -212344,6 +212378,7 @@ var init_theme = __esm(() => {
212344
212378
  remember: "rgb(153,204,255)",
212345
212379
  background: "rgb(0,204,204)",
212346
212380
  success: "rgb(51,153,255)",
212381
+ promptChar: "rgb(51,153,255)",
212347
212382
  error: "rgb(255,102,102)",
212348
212383
  warning: "rgb(255,204,0)",
212349
212384
  merged: "rgb(175,135,255)",
@@ -216939,7 +216974,7 @@ function getAttributionHeader(fingerprint) {
216939
216974
  if (!isAttributionHeaderEnabled()) {
216940
216975
  return "";
216941
216976
  }
216942
- const version2 = `${"1.3.444"}.${fingerprint}`;
216977
+ const version2 = `${"1.3.446"}.${fingerprint}`;
216943
216978
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
216944
216979
  const cch = "";
216945
216980
  const workload = getWorkload();
@@ -271684,6 +271719,24 @@ function getAssistantMessageFromError(error54, model, options) {
271684
271719
  content: getOauthOrgNotAllowedErrorMessage()
271685
271720
  });
271686
271721
  }
271722
+ if (error54 instanceof import_sdk9.APIError && error54.status === 403) {
271723
+ const onHosted = (() => {
271724
+ try {
271725
+ return getActiveProvider()?.kind === "rayu-hosted";
271726
+ } catch {
271727
+ return false;
271728
+ }
271729
+ })();
271730
+ const planGated = error54.message.includes("model not available on your plan") || error54.message.toLowerCase().includes("paid feature") || error54.message.includes("plan_upgrade_required");
271731
+ if (onHosted || planGated) {
271732
+ const plansUrl = `${getRayuWebBaseUrl()}/plans`;
271733
+ const switchCmd = getIsNonInteractiveSession() ? "--model" : "/model";
271734
+ return createAssistantAPIErrorMessage({
271735
+ error: "invalid_request",
271736
+ content: `\uD83D\uDD12 "${model}" is a Rayu-hosted model, available on paid plans (Pro and up). Please upgrade your plan to use it: ${plansUrl} — or run ${switchCmd} to switch to a model included in your current plan.`
271737
+ });
271738
+ }
271739
+ }
271687
271740
  if (error54 instanceof import_sdk9.APIError && (error54.status === 401 || error54.status === 403)) {
271688
271741
  if (isCCRMode()) {
271689
271742
  return createAssistantAPIErrorMessage({
@@ -271866,6 +271919,8 @@ var init_errors7 = __esm(() => {
271866
271919
  init_model();
271867
271920
  init_modelStrings();
271868
271921
  init_providers();
271922
+ init_rayuConfig();
271923
+ init_rayuSession();
271869
271924
  init_state();
271870
271925
  init_apiLimits();
271871
271926
  init_envUtils();
@@ -291432,6 +291487,12 @@ function reconcileContextUsage(opts) {
291432
291487
  const freeTokens = Math.max(0, opts.contextWindow - used - opts.reservedTokens);
291433
291488
  return { usedForGrid: used, freeTokens, finalTotalTokens: used };
291434
291489
  }
291490
+ function deriveMessagesBucketTokens(opts) {
291491
+ if (opts.totalFromAPI != null && opts.totalFromAPI > 0) {
291492
+ return Math.max(0, opts.totalFromAPI - opts.otherCategoriesTokens);
291493
+ }
291494
+ return opts.estimatedMessageTokens;
291495
+ }
291435
291496
  async function countTokensWithFallback(messages, tools) {
291436
291497
  try {
291437
291498
  const result = await countMessagesTokensWithAPI(messages, tools);
@@ -291808,6 +291869,98 @@ async function approximateMessageTokens(messages) {
291808
291869
  breakdown.totalTokens = approximateMessageTokens2 ?? roughMessageSum;
291809
291870
  return breakdown;
291810
291871
  }
291872
+ function buildContextGridRows(opts) {
291873
+ const {
291874
+ categories,
291875
+ contextWindow,
291876
+ reservedTokens,
291877
+ freeTokens,
291878
+ terminalWidth
291879
+ } = opts;
291880
+ const isNarrowScreen = terminalWidth !== undefined && terminalWidth < 80;
291881
+ const GRID_WIDTH = contextWindow >= 1e6 ? isNarrowScreen ? 5 : 20 : isNarrowScreen ? 5 : 10;
291882
+ const GRID_HEIGHT = contextWindow >= 1e6 ? 10 : isNarrowScreen ? 5 : 10;
291883
+ const TOTAL_SQUARES = GRID_WIDTH * GRID_HEIGHT;
291884
+ const squaresFor = (tokens) => Math.round(tokens / contextWindow * TOTAL_SQUARES);
291885
+ const nonDeferred = categories.filter((cat2) => !cat2.isDeferred);
291886
+ const reservedCategory = nonDeferred.find((cat2) => cat2.name === RESERVED_CATEGORY_NAME || cat2.name === MANUAL_COMPACT_BUFFER_NAME);
291887
+ const freeSpaceCat = nonDeferred.find((cat2) => cat2.name === "Free space");
291888
+ const usageCats = nonDeferred.filter((cat2) => cat2.name !== RESERVED_CATEGORY_NAME && cat2.name !== MANUAL_COMPACT_BUFFER_NAME && cat2.name !== "Free space");
291889
+ const reservedSquares = reservedCategory && reservedTokens > 0 ? Math.min(TOTAL_SQUARES, Math.max(1, squaresFor(reservedTokens))) : 0;
291890
+ const freeSquares = Math.max(0, Math.min(TOTAL_SQUARES - reservedSquares, squaresFor(freeTokens)));
291891
+ const usageBudget = Math.max(0, TOTAL_SQUARES - reservedSquares - freeSquares);
291892
+ const desired = usageCats.map((cat2) => ({
291893
+ cat: cat2,
291894
+ squares: Math.max(1, squaresFor(cat2.tokens))
291895
+ }));
291896
+ const desiredTotal = desired.reduce((sum, d2) => sum + d2.squares, 0);
291897
+ const scale = desiredTotal > usageBudget && desiredTotal > 0 ? usageBudget / desiredTotal : 1;
291898
+ const makeSquares = (cat2, count3) => {
291899
+ const exactSquares = cat2.tokens / contextWindow * TOTAL_SQUARES;
291900
+ const wholeSquares = Math.floor(exactSquares);
291901
+ const fractionalPart = exactSquares - wholeSquares;
291902
+ const percentageOfTotal = Math.round(cat2.tokens / contextWindow * 100);
291903
+ const out = [];
291904
+ for (let i4 = 0;i4 < count3; i4++) {
291905
+ let squareFullness = 1;
291906
+ if (i4 === wholeSquares && fractionalPart > 0) {
291907
+ squareFullness = fractionalPart;
291908
+ }
291909
+ out.push({
291910
+ color: cat2.color,
291911
+ isFilled: true,
291912
+ categoryName: cat2.name,
291913
+ tokens: cat2.tokens,
291914
+ percentage: percentageOfTotal,
291915
+ squareFullness
291916
+ });
291917
+ }
291918
+ return out;
291919
+ };
291920
+ const gridSquares = [];
291921
+ for (const d2 of desired) {
291922
+ const count3 = scale < 1 ? Math.floor(d2.squares * scale) : d2.squares;
291923
+ for (const square of makeSquares(d2.cat, count3)) {
291924
+ if (gridSquares.length < usageBudget) {
291925
+ gridSquares.push(square);
291926
+ }
291927
+ }
291928
+ }
291929
+ const freeTokensForSquare = freeSpaceCat?.tokens ?? freeTokens;
291930
+ const freeTarget = TOTAL_SQUARES - reservedSquares;
291931
+ while (gridSquares.length < freeTarget) {
291932
+ gridSquares.push({
291933
+ color: "promptBorder",
291934
+ isFilled: true,
291935
+ categoryName: "Free space",
291936
+ tokens: freeTokensForSquare,
291937
+ percentage: Math.round(freeTokensForSquare / contextWindow * 100),
291938
+ squareFullness: 1
291939
+ });
291940
+ }
291941
+ if (reservedCategory && reservedSquares > 0) {
291942
+ for (const square of makeSquares(reservedCategory, reservedSquares)) {
291943
+ if (gridSquares.length < TOTAL_SQUARES) {
291944
+ gridSquares.push(square);
291945
+ }
291946
+ }
291947
+ }
291948
+ while (gridSquares.length < TOTAL_SQUARES) {
291949
+ gridSquares.push({
291950
+ color: "promptBorder",
291951
+ isFilled: true,
291952
+ categoryName: "Free space",
291953
+ tokens: freeTokensForSquare,
291954
+ percentage: Math.round(freeTokensForSquare / contextWindow * 100),
291955
+ squareFullness: 1
291956
+ });
291957
+ }
291958
+ const gridRows = [];
291959
+ for (let i4 = 0;i4 < GRID_HEIGHT; i4++) {
291960
+ gridRows.push(gridSquares.slice(i4 * GRID_WIDTH, (i4 + 1) * GRID_WIDTH));
291961
+ }
291962
+ return gridRows;
291963
+ }
291811
291964
  async function analyzeContextUsage(messages, model, getToolPermissionContext, tools, agentDefinitions, terminalWidth, toolUseContext, mainThreadAgentDefinition, originalMessages) {
291812
291965
  const runtimeModel = getRuntimeMainLoopModel({
291813
291966
  permissionMode: (await getToolPermissionContext()).mode,
@@ -291912,10 +292065,19 @@ async function analyzeContextUsage(messages, model, getToolPermissionContext, to
291912
292065
  color: "warning"
291913
292066
  });
291914
292067
  }
291915
- if (messageTokens !== null && messageTokens > 0) {
292068
+ const apiUsage = getCurrentUsage(originalMessages ?? messages);
292069
+ const apiInputTotal = apiUsage ? apiUsage.input_tokens + apiUsage.cache_creation_input_tokens + apiUsage.cache_read_input_tokens : 0;
292070
+ const totalFromAPI = apiInputTotal > 0 ? apiInputTotal : null;
292071
+ const otherCategoriesTokens = cats.reduce((sum, cat2) => sum + (cat2.isDeferred ? 0 : cat2.tokens), 0);
292072
+ const messagesBucketTokens = deriveMessagesBucketTokens({
292073
+ totalFromAPI,
292074
+ otherCategoriesTokens,
292075
+ estimatedMessageTokens: messageTokens
292076
+ });
292077
+ if (messagesBucketTokens > 0) {
291916
292078
  cats.push({
291917
292079
  name: "Messages",
291918
- tokens: messageTokens,
292080
+ tokens: messagesBucketTokens,
291919
292081
  color: "purple_FOR_SUBAGENTS_ONLY"
291920
292082
  });
291921
292083
  }
@@ -291939,9 +292101,6 @@ async function analyzeContextUsage(messages, model, getToolPermissionContext, to
291939
292101
  color: "inactive"
291940
292102
  });
291941
292103
  }
291942
- const apiUsage = getCurrentUsage(originalMessages ?? messages);
291943
- const apiInputTotal = apiUsage ? apiUsage.input_tokens + apiUsage.cache_creation_input_tokens + apiUsage.cache_read_input_tokens : 0;
291944
- const totalFromAPI = apiInputTotal > 0 ? apiInputTotal : null;
291945
292104
  const { freeTokens, finalTotalTokens } = reconcileContextUsage({
291946
292105
  contextWindow,
291947
292106
  actualUsage,
@@ -291953,73 +292112,13 @@ async function analyzeContextUsage(messages, model, getToolPermissionContext, to
291953
292112
  tokens: freeTokens,
291954
292113
  color: "promptBorder"
291955
292114
  });
291956
- const isNarrowScreen = terminalWidth && terminalWidth < 80;
291957
- const GRID_WIDTH = contextWindow >= 1e6 ? isNarrowScreen ? 5 : 20 : isNarrowScreen ? 5 : 10;
291958
- const GRID_HEIGHT = contextWindow >= 1e6 ? 10 : isNarrowScreen ? 5 : 10;
291959
- const TOTAL_SQUARES = GRID_WIDTH * GRID_HEIGHT;
291960
- const nonDeferredCats = cats.filter((cat2) => !cat2.isDeferred);
291961
- const categorySquares = nonDeferredCats.map((cat2) => ({
291962
- ...cat2,
291963
- squares: cat2.name === "Free space" ? Math.round(cat2.tokens / contextWindow * TOTAL_SQUARES) : Math.max(1, Math.round(cat2.tokens / contextWindow * TOTAL_SQUARES)),
291964
- percentageOfTotal: Math.round(cat2.tokens / contextWindow * 100)
291965
- }));
291966
- function createCategorySquares(category) {
291967
- const squares = [];
291968
- const exactSquares = category.tokens / contextWindow * TOTAL_SQUARES;
291969
- const wholeSquares = Math.floor(exactSquares);
291970
- const fractionalPart = exactSquares - wholeSquares;
291971
- for (let i4 = 0;i4 < category.squares; i4++) {
291972
- let squareFullness = 1;
291973
- if (i4 === wholeSquares && fractionalPart > 0) {
291974
- squareFullness = fractionalPart;
291975
- }
291976
- squares.push({
291977
- color: category.color,
291978
- isFilled: true,
291979
- categoryName: category.name,
291980
- tokens: category.tokens,
291981
- percentage: category.percentageOfTotal,
291982
- squareFullness
291983
- });
291984
- }
291985
- return squares;
291986
- }
291987
- const gridSquares = [];
291988
- const reservedCategory = categorySquares.find((cat2) => cat2.name === RESERVED_CATEGORY_NAME || cat2.name === MANUAL_COMPACT_BUFFER_NAME);
291989
- const nonReservedCategories = categorySquares.filter((cat2) => cat2.name !== RESERVED_CATEGORY_NAME && cat2.name !== MANUAL_COMPACT_BUFFER_NAME && cat2.name !== "Free space");
291990
- for (const cat2 of nonReservedCategories) {
291991
- const squares = createCategorySquares(cat2);
291992
- for (const square of squares) {
291993
- if (gridSquares.length < TOTAL_SQUARES) {
291994
- gridSquares.push(square);
291995
- }
291996
- }
291997
- }
291998
- const reservedSquareCount = reservedCategory ? reservedCategory.squares : 0;
291999
- const freeSpaceCat = cats.find((c4) => c4.name === "Free space");
292000
- const freeSpaceTarget = TOTAL_SQUARES - reservedSquareCount;
292001
- while (gridSquares.length < freeSpaceTarget) {
292002
- gridSquares.push({
292003
- color: "promptBorder",
292004
- isFilled: true,
292005
- categoryName: "Free space",
292006
- tokens: freeSpaceCat?.tokens || 0,
292007
- percentage: freeSpaceCat ? Math.round(freeSpaceCat.tokens / contextWindow * 100) : 0,
292008
- squareFullness: 1
292009
- });
292010
- }
292011
- if (reservedCategory) {
292012
- const squares = createCategorySquares(reservedCategory);
292013
- for (const square of squares) {
292014
- if (gridSquares.length < TOTAL_SQUARES) {
292015
- gridSquares.push(square);
292016
- }
292017
- }
292018
- }
292019
- const gridRows = [];
292020
- for (let i4 = 0;i4 < GRID_HEIGHT; i4++) {
292021
- gridRows.push(gridSquares.slice(i4 * GRID_WIDTH, (i4 + 1) * GRID_WIDTH));
292022
- }
292115
+ const gridRows = buildContextGridRows({
292116
+ categories: cats,
292117
+ contextWindow,
292118
+ reservedTokens,
292119
+ freeTokens,
292120
+ terminalWidth
292121
+ });
292023
292122
  const toolsMap = new Map;
292024
292123
  for (const [name, tokens] of messageBreakdown.toolCallsByType.entries()) {
292025
292124
  const existing = toolsMap.get(name) || { callTokens: 0, resultTokens: 0 };
@@ -301859,7 +301958,7 @@ function getTelemetryAttributes() {
301859
301958
  attributes["session.id"] = sessionId;
301860
301959
  }
301861
301960
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
301862
- attributes["app.version"] = "1.3.444";
301961
+ attributes["app.version"] = "1.3.446";
301863
301962
  }
301864
301963
  const oauthAccount = getOauthAccountInfo();
301865
301964
  if (oauthAccount) {
@@ -412222,7 +412321,7 @@ function getInstallationEnv() {
412222
412321
  return;
412223
412322
  }
412224
412323
  function getClaudeCodeVersion() {
412225
- return "1.3.444";
412324
+ return "1.3.446";
412226
412325
  }
412227
412326
  async function getInstalledVSCodeExtensionVersion(command) {
412228
412327
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -417460,7 +417559,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
417460
417559
  const client4 = new Client({
417461
417560
  name: "claude-code",
417462
417561
  title: "RAYU",
417463
- version: "1.3.444",
417562
+ version: "1.3.446",
417464
417563
  description: "Anthropic's agentic coding tool",
417465
417564
  websiteUrl: PRODUCT_URL
417466
417565
  }, {
@@ -417777,7 +417876,7 @@ var init_client7 = __esm(() => {
417777
417876
  const client4 = new Client({
417778
417877
  name: "claude-code",
417779
417878
  title: "RAYU",
417780
- version: "1.3.444",
417879
+ version: "1.3.446",
417781
417880
  description: "Anthropic's agentic coding tool",
417782
417881
  websiteUrl: PRODUCT_URL
417783
417882
  }, {
@@ -432582,7 +432681,7 @@ function computeFingerprint(messageText, version2) {
432582
432681
  }
432583
432682
  function computeFingerprintFromMessages(messages) {
432584
432683
  const firstMessageText = extractFirstMessageText(messages);
432585
- return computeFingerprint(firstMessageText, "1.3.444");
432684
+ return computeFingerprint(firstMessageText, "1.3.446");
432586
432685
  }
432587
432686
  var FINGERPRINT_SALT = "59cf53e54c78";
432588
432687
  var init_fingerprint = () => {};
@@ -432624,7 +432723,7 @@ async function sideQuery(opts) {
432624
432723
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
432625
432724
  }
432626
432725
  const messageText = extractFirstUserMessageText(messages);
432627
- const fingerprint = computeFingerprint(messageText, "1.3.444");
432726
+ const fingerprint = computeFingerprint(messageText, "1.3.446");
432628
432727
  const attributionHeader = getAttributionHeader(fingerprint);
432629
432728
  const systemBlocks = [
432630
432729
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -435055,7 +435154,7 @@ function AssistantTextMessage(t0) {
435055
435154
  fromLeftEdge: true,
435056
435155
  minWidth: 2,
435057
435156
  children: /* @__PURE__ */ jsx_runtime70.jsx(ThemedText, {
435058
- color: isSelected ? "suggestion" : "text",
435157
+ color: isSelected ? "suggestion" : "claude",
435059
435158
  children: BLACK_CIRCLE
435060
435159
  })
435061
435160
  });
@@ -436849,7 +436948,7 @@ function HighlightedThinkingText(t0) {
436849
436948
  } = t0;
436850
436949
  const isQueued = useQueuedMessage()?.isQueued ?? false;
436851
436950
  const isSelected = import_react52.useContext(MessageActionsSelectedContext);
436852
- const pointerColor = isSelected ? "suggestion" : "subtle";
436951
+ const pointerColor = isSelected ? "suggestion" : "promptChar";
436853
436952
  if (useBriefLayout) {
436854
436953
  let t12;
436855
436954
  if ($3[0] !== timestamp) {
@@ -436956,7 +437055,7 @@ function HighlightedThinkingText(t0) {
436956
437055
  let t32;
436957
437056
  if ($3[21] !== text2) {
436958
437057
  t32 = /* @__PURE__ */ jsx_runtime82.jsx(ThemedText, {
436959
- color: "text",
437058
+ color: "promptChar",
436960
437059
  children: text2
436961
437060
  });
436962
437061
  $3[21] = text2;
@@ -527956,7 +528055,7 @@ function Feedback({
527956
528055
  platform: env4.platform,
527957
528056
  gitRepo: envInfo.isGit,
527958
528057
  terminal: env4.terminal,
527959
- version: "1.3.444",
528058
+ version: "1.3.446",
527960
528059
  transcript: normalizeMessagesForAPI(messages),
527961
528060
  errors: sanitizedErrors,
527962
528061
  lastApiRequest: getLastAPIRequest(),
@@ -528148,7 +528247,7 @@ function Feedback({
528148
528247
  ", ",
528149
528248
  env4.terminal,
528150
528249
  ", v",
528151
- "1.3.444"
528250
+ "1.3.446"
528152
528251
  ]
528153
528252
  })
528154
528253
  ]
@@ -528254,7 +528353,7 @@ ${sanitizedDescription}
528254
528353
  ` + `**Environment Info**
528255
528354
  ` + `- Platform: ${env4.platform}
528256
528355
  ` + `- Terminal: ${env4.terminal}
528257
- ` + `- Version: ${"1.3.444"}
528356
+ ` + `- Version: ${"1.3.446"}
528258
528357
  ` + `- Feedback ID: ${feedbackId}
528259
528358
  ` + `
528260
528359
  **Errors**
@@ -531094,9 +531193,9 @@ async function assertMinVersion() {
531094
531193
  if (false) {}
531095
531194
  try {
531096
531195
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
531097
- if (versionConfig.minVersion && lt("1.3.444", versionConfig.minVersion)) {
531196
+ if (versionConfig.minVersion && lt("1.3.446", versionConfig.minVersion)) {
531098
531197
  console.error(`
531099
- It looks like your version of RAYU (${"1.3.444"}) needs an update.
531198
+ It looks like your version of RAYU (${"1.3.446"}) needs an update.
531100
531199
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
531101
531200
 
531102
531201
  To update, please run:
@@ -531322,7 +531421,7 @@ async function installGlobalPackage(specificVersion) {
531322
531421
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
531323
531422
  logEvent("tengu_auto_updater_lock_contention", {
531324
531423
  pid: process.pid,
531325
- currentVersion: "1.3.444"
531424
+ currentVersion: "1.3.446"
531326
531425
  });
531327
531426
  return "in_progress";
531328
531427
  }
@@ -531331,7 +531430,7 @@ async function installGlobalPackage(specificVersion) {
531331
531430
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
531332
531431
  logError2(new Error("Windows NPM detected in WSL environment"));
531333
531432
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
531334
- currentVersion: "1.3.444"
531433
+ currentVersion: "1.3.446"
531335
531434
  });
531336
531435
  console.error(`
531337
531436
  Error: Windows NPM detected in WSL
@@ -531863,7 +531962,7 @@ function detectLinuxGlobPatternWarnings() {
531863
531962
  }
531864
531963
  async function getDoctorDiagnostic() {
531865
531964
  const installationType = await getCurrentInstallationType();
531866
- const version2 = typeof MACRO !== "undefined" ? "1.3.444" : "unknown";
531965
+ const version2 = typeof MACRO !== "undefined" ? "1.3.446" : "unknown";
531867
531966
  const installationPath = await getInstallationPath();
531868
531967
  const invokedBinary = getInvokedBinary();
531869
531968
  const multipleInstallations = await detectMultipleInstallations();
@@ -532658,8 +532757,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
532658
532757
  const maxVersion = await getMaxVersion();
532659
532758
  if (maxVersion && gt(version2, maxVersion)) {
532660
532759
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
532661
- if (gte("1.3.444", maxVersion)) {
532662
- logForDebugging(`Native installer: current version ${"1.3.444"} is already at or above maxVersion ${maxVersion}, skipping update`);
532760
+ if (gte("1.3.446", maxVersion)) {
532761
+ logForDebugging(`Native installer: current version ${"1.3.446"} is already at or above maxVersion ${maxVersion}, skipping update`);
532663
532762
  logEvent("tengu_native_update_skipped_max_version", {
532664
532763
  latency_ms: Date.now() - startTime2,
532665
532764
  max_version: maxVersion,
@@ -532670,7 +532769,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
532670
532769
  version2 = maxVersion;
532671
532770
  }
532672
532771
  }
532673
- if (!forceReinstall && version2 === "1.3.444" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
532772
+ if (!forceReinstall && version2 === "1.3.446" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
532674
532773
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
532675
532774
  logEvent("tengu_native_update_complete", {
532676
532775
  latency_ms: Date.now() - startTime2,
@@ -533866,7 +533965,7 @@ function buildPrimarySection() {
533866
533965
  });
533867
533966
  return [{
533868
533967
  label: "Version",
533869
- value: "1.3.444"
533968
+ value: "1.3.446"
533870
533969
  }, {
533871
533970
  label: "Session name",
533872
533971
  value: nameValue
@@ -537557,7 +537656,7 @@ function Config({
537557
537656
  }
537558
537657
  })
537559
537658
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime170.jsx(ChannelDowngradeDialog, {
537560
- currentVersion: "1.3.444",
537659
+ currentVersion: "1.3.446",
537561
537660
  onChoice: (choice) => {
537562
537661
  setShowSubmenu(null);
537563
537662
  setTabsHidden(false);
@@ -537569,7 +537668,7 @@ function Config({
537569
537668
  autoUpdatesChannel: "stable"
537570
537669
  };
537571
537670
  if (choice === "stay") {
537572
- newSettings.minimumVersion = "1.3.444";
537671
+ newSettings.minimumVersion = "1.3.446";
537573
537672
  }
537574
537673
  updateSettingsForSource("userSettings", newSettings);
537575
537674
  setSettingsData((prev_27) => ({
@@ -545631,7 +545730,7 @@ function HelpV2(t0) {
545631
545730
  let t6;
545632
545731
  if ($3[31] !== tabs) {
545633
545732
  t6 = /* @__PURE__ */ jsx_runtime197.jsx(Tabs, {
545634
- title: `Rayu-CLI v${"1.3.444"}`,
545733
+ title: `Rayu-CLI v${"1.3.446"}`,
545635
545734
  color: "professionalBlue",
545636
545735
  defaultTab: "general",
545637
545736
  children: tabs
@@ -565718,7 +565817,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
565718
565817
  }
565719
565818
  return [];
565720
565819
  }
565721
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.444") {
565820
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.446") {
565722
565821
  if (false) {}
565723
565822
  const cachedChangelog = await getStoredChangelog();
565724
565823
  if (lastSeenVersion !== currentVersion || !cachedChangelog) {
@@ -565731,7 +565830,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.444")
565731
565830
  releaseNotes
565732
565831
  };
565733
565832
  }
565734
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.3.444") {
565833
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.3.446") {
565735
565834
  if (false) {}
565736
565835
  const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
565737
565836
  return {
@@ -565859,7 +565958,7 @@ function getRecentActivitySync() {
565859
565958
  return cachedActivity;
565860
565959
  }
565861
565960
  function getLogoDisplayData() {
565862
- const version2 = process.env.DEMO_VERSION ?? "1.3.444";
565961
+ const version2 = process.env.DEMO_VERSION ?? "1.3.446";
565863
565962
  const serverUrl = getDirectConnectServerUrl();
565864
565963
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
565865
565964
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -567106,7 +567205,7 @@ function LogoV2() {
567106
567205
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
567107
567206
  t2 = () => {
567108
567207
  const currentConfig = getGlobalConfig();
567109
- if (currentConfig.lastReleaseNotesSeen === "1.3.444") {
567208
+ if (currentConfig.lastReleaseNotesSeen === "1.3.446") {
567110
567209
  return;
567111
567210
  }
567112
567211
  saveGlobalConfig(_temp327);
@@ -567584,7 +567683,7 @@ function LogoV2() {
567584
567683
  t24 = $3[61];
567585
567684
  }
567586
567685
  const _latestNpm = getCachedLatestNpmVersionSync();
567587
- const _updateFeeds = _latestNpm && gt(_latestNpm, "1.3.444") ? [createUpdateAvailableFeed("1.3.444", _latestNpm)] : [];
567686
+ const _updateFeeds = _latestNpm && gt(_latestNpm, "1.3.446") ? [createUpdateAvailableFeed("1.3.446", _latestNpm)] : [];
567588
567687
  const t25 = layoutMode === "horizontal" && /* @__PURE__ */ jsx_runtime239.jsx(FeedColumn, {
567589
567688
  feeds: showOnboarding ? [createProjectOnboardingFeed(getSteps()), createRecentActivityFeed(activities)] : showGuestPassesUpsell ? [createRecentActivityFeed(activities), createGuestPassesFeed()] : showOverageCreditUpsell ? [createRecentActivityFeed(activities), createOverageCreditFeed()] : [createRecentActivityFeed(activities), ..._updateFeeds, createWhatsNewFeed(changelog)],
567590
567689
  maxWidth: rightWidth
@@ -567784,12 +567883,12 @@ function LogoV2() {
567784
567883
  return t41;
567785
567884
  }
567786
567885
  function _temp327(current) {
567787
- if (current.lastReleaseNotesSeen === "1.3.444") {
567886
+ if (current.lastReleaseNotesSeen === "1.3.446") {
567788
567887
  return current;
567789
567888
  }
567790
567889
  return {
567791
567890
  ...current,
567792
- lastReleaseNotesSeen: "1.3.444"
567891
+ lastReleaseNotesSeen: "1.3.446"
567793
567892
  };
567794
567893
  }
567795
567894
  function _temp241(s_0) {
@@ -592698,7 +592797,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
592698
592797
  smapsRollup,
592699
592798
  platform: process.platform,
592700
592799
  nodeVersion: process.version,
592701
- ccVersion: "1.3.444"
592800
+ ccVersion: "1.3.446"
592702
592801
  };
592703
592802
  }
592704
592803
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -593220,7 +593319,7 @@ var init_bridge_kick = __esm(() => {
593220
593319
  var call49 = async () => {
593221
593320
  return {
593222
593321
  type: "text",
593223
- value: "1.3.444"
593322
+ value: "1.3.446"
593224
593323
  };
593225
593324
  }, version2, version_default;
593226
593325
  var init_version = __esm(() => {
@@ -603173,7 +603272,7 @@ function generateHtmlReport(data, insights) {
603173
603272
  </html>`;
603174
603273
  }
603175
603274
  function buildExportData(data, insights, facets, remoteStats) {
603176
- const version3 = typeof MACRO !== "undefined" ? "1.3.444" : "unknown";
603275
+ const version3 = typeof MACRO !== "undefined" ? "1.3.446" : "unknown";
603177
603276
  const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
603178
603277
  const facets_summary = {
603179
603278
  total: facets.size,
@@ -607083,7 +607182,7 @@ var init_sessionStorage = __esm(() => {
607083
607182
  init_settings2();
607084
607183
  init_slowOperations();
607085
607184
  init_uuid();
607086
- VERSION6 = typeof MACRO !== "undefined" ? "1.3.444" : "unknown";
607185
+ VERSION6 = typeof MACRO !== "undefined" ? "1.3.446" : "unknown";
607087
607186
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
607088
607187
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
607089
607188
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -608303,7 +608402,7 @@ var init_filesystem = __esm(() => {
608303
608402
  });
608304
608403
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
608305
608404
  const nonce = randomBytes19(16).toString("hex");
608306
- return join154(getClaudeTempDir(), "bundled-skills", "1.3.444", nonce);
608405
+ return join154(getClaudeTempDir(), "bundled-skills", "1.3.446", nonce);
608307
608406
  });
608308
608407
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
608309
608408
  });
@@ -613418,7 +613517,7 @@ __export(exports_update, {
613418
613517
  import { execFileSync as execFileSync3 } from "node:child_process";
613419
613518
  import { homedir as homedir35 } from "os";
613420
613519
  async function update() {
613421
- writeToStdout(`Current version: ${"1.3.444"}
613520
+ writeToStdout(`Current version: ${"1.3.446"}
613422
613521
  `);
613423
613522
  const isBundled = isInBundledMode();
613424
613523
  if (isBundled) {
@@ -613444,13 +613543,13 @@ Manual check: npm view ${"@rayu-dev/rayu-cli"} version
613444
613543
  process.exit(1);
613445
613544
  return;
613446
613545
  }
613447
- if (latestVersion === "1.3.444") {
613546
+ if (latestVersion === "1.3.446") {
613448
613547
  writeToStdout(source_default.green(`
613449
- Rayu CLI is up to date (${"1.3.444"})
613548
+ Rayu CLI is up to date (${"1.3.446"})
613450
613549
  `));
613451
613550
  process.exit(0);
613452
613551
  }
613453
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.3.444"})
613552
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.3.446"})
613454
613553
  `);
613455
613554
  writeToStdout(`Installing update...
613456
613555
 
@@ -613474,7 +613573,7 @@ Try manually:
613474
613573
  return;
613475
613574
  }
613476
613575
  writeToStdout(source_default.green(`
613477
- Successfully updated from ${"1.3.444"} to ${latestVersion}
613576
+ Successfully updated from ${"1.3.446"} to ${latestVersion}
613478
613577
  `));
613479
613578
  process.exit(0);
613480
613579
  }
@@ -613488,14 +613587,14 @@ async function updateNativeBinary() {
613488
613587
  } catch {
613489
613588
  latestVersion = "";
613490
613589
  }
613491
- if (latestVersion && latestVersion === "1.3.444") {
613590
+ if (latestVersion && latestVersion === "1.3.446") {
613492
613591
  writeToStdout(source_default.green(`
613493
- Rayu CLI is up to date (1.3.444)
613592
+ Rayu CLI is up to date (1.3.446)
613494
613593
  `));
613495
613594
  process.exit(0);
613496
613595
  }
613497
613596
  if (latestVersion) {
613498
- writeToStdout(`New version available: ${latestVersion} (current: 1.3.444)
613597
+ writeToStdout(`New version available: ${latestVersion} (current: 1.3.446)
613499
613598
  `);
613500
613599
  }
613501
613600
  writeToStdout(`Downloading and installing update...
@@ -613510,13 +613609,13 @@ Rayu CLI is up to date (1.3.444)
613510
613609
  return;
613511
613610
  }
613512
613611
  writeToStdout(source_default.green(`
613513
- Rayu CLI is up to date (1.3.444)
613612
+ Rayu CLI is up to date (1.3.446)
613514
613613
  `));
613515
613614
  process.exit(0);
613516
613615
  }
613517
613616
  const updatedTo = result.latestVersion ?? latestVersion ?? "latest";
613518
613617
  writeToStdout(source_default.green(`
613519
- Successfully updated from 1.3.444 to ${updatedTo}
613618
+ Successfully updated from 1.3.446 to ${updatedTo}
613520
613619
  `));
613521
613620
  writeToStdout(`Restart your terminal to use the new version.
613522
613621
  `);
@@ -613547,7 +613646,7 @@ __export(exports_uninstall, {
613547
613646
  import { execFileSync as execFileSync4 } from "node:child_process";
613548
613647
  import { homedir as homedir36 } from "os";
613549
613648
  async function uninstall() {
613550
- writeToStdout(`Uninstalling Rayu CLI (${"1.3.444"})...
613649
+ writeToStdout(`Uninstalling Rayu CLI (${"1.3.446"})...
613551
613650
  `);
613552
613651
  writeToStdout(`Running: npm uninstall -g ${"@rayu-dev/rayu-cli"}
613553
613652
 
@@ -613570,7 +613669,7 @@ Try running manually:
613570
613669
  process.exit(1);
613571
613670
  }
613572
613671
  writeToStdout(source_default.green(`
613573
- Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.3.444"}
613672
+ Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.3.446"}
613574
613673
  `));
613575
613674
  writeToStdout(`Thanks for using Rayu CLI!
613576
613675
  `);
@@ -613622,7 +613721,7 @@ function showFirstRunWelcome() {
613622
613721
  `);
613623
613722
  try {
613624
613723
  mkdirSync16(getRayuConfigHomeDir(), { recursive: true });
613625
- writeFileSync18(markerPath(), "1.3.444", "utf8");
613724
+ writeFileSync18(markerPath(), "1.3.446", "utf8");
613626
613725
  } catch {}
613627
613726
  }
613628
613727
  var init_firstRun = __esm(() => {
@@ -625465,7 +625564,7 @@ async function initializeBetaTracing(resource) {
625465
625564
  });
625466
625565
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
625467
625566
  setLoggerProvider(loggerProvider);
625468
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.444");
625567
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.446");
625469
625568
  setEventLogger(eventLogger);
625470
625569
  process.on("beforeExit", async () => {
625471
625570
  await loggerProvider?.forceFlush();
@@ -625505,7 +625604,7 @@ async function initializeTelemetry() {
625505
625604
  const platform4 = getPlatform();
625506
625605
  const baseAttributes = {
625507
625606
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
625508
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.3.444"
625607
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.3.446"
625509
625608
  };
625510
625609
  if (platform4 === "wsl") {
625511
625610
  const wslVersion = getWslVersion();
@@ -625550,7 +625649,7 @@ async function initializeTelemetry() {
625550
625649
  } catch {}
625551
625650
  };
625552
625651
  registerCleanup(shutdownTelemetry2);
625553
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.3.444");
625652
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.3.446");
625554
625653
  }
625555
625654
  const meterProvider = new import_sdk_metrics2.MeterProvider({
625556
625655
  resource,
@@ -625570,7 +625669,7 @@ async function initializeTelemetry() {
625570
625669
  });
625571
625670
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
625572
625671
  setLoggerProvider(loggerProvider);
625573
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.444");
625672
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.446");
625574
625673
  setEventLogger(eventLogger);
625575
625674
  logForDebugging("[3P telemetry] Event logger set successfully");
625576
625675
  process.on("beforeExit", async () => {
@@ -625632,7 +625731,7 @@ Current timeout: ${timeoutMs}ms
625632
625731
  }
625633
625732
  };
625634
625733
  registerCleanup(shutdownTelemetry);
625635
- return meterProvider.getMeter("com.anthropic.claude_code", "1.3.444");
625734
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.3.446");
625636
625735
  }
625637
625736
  async function flushTelemetry() {
625638
625737
  const meterProvider = getMeterProvider();
@@ -627145,7 +627244,7 @@ function buildSystemInitMessage(inputs) {
627145
627244
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
627146
627245
  apiKeySource: getAnthropicApiKeyWithSource().source,
627147
627246
  betas: getSdkBetas(),
627148
- claude_code_version: "1.3.444",
627247
+ claude_code_version: "1.3.446",
627149
627248
  output_style: outputStyle2,
627150
627249
  agents: inputs.agents.map((agent) => agent.agentType),
627151
627250
  skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
@@ -643479,7 +643578,7 @@ var init_useVoiceEnabled = __esm(() => {
643479
643578
  function getSemverPart(version3) {
643480
643579
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
643481
643580
  }
643482
- function useUpdateNotification(updatedVersion, initialVersion = "1.3.444") {
643581
+ function useUpdateNotification(updatedVersion, initialVersion = "1.3.446") {
643483
643582
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react217.useState(() => getSemverPart(initialVersion));
643484
643583
  if (!updatedVersion) {
643485
643584
  return null;
@@ -643519,7 +643618,7 @@ function AutoUpdater({
643519
643618
  return;
643520
643619
  }
643521
643620
  if (false) {}
643522
- const currentVersion = "1.3.444";
643621
+ const currentVersion = "1.3.446";
643523
643622
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
643524
643623
  let latestVersion = await getLatestVersion(channel2);
643525
643624
  const isDisabled = isAutoUpdaterDisabled();
@@ -643732,12 +643831,12 @@ function NativeAutoUpdater({
643732
643831
  logEvent("tengu_native_auto_updater_start", {});
643733
643832
  try {
643734
643833
  const maxVersion = await getMaxVersion();
643735
- if (maxVersion && gt("1.3.444", maxVersion)) {
643834
+ if (maxVersion && gt("1.3.446", maxVersion)) {
643736
643835
  const msg = await getMaxVersionMessage();
643737
643836
  setMaxVersionIssue(msg ?? "affects your version");
643738
643837
  }
643739
643838
  const result = await installLatest(channel2);
643740
- const currentVersion = "1.3.444";
643839
+ const currentVersion = "1.3.446";
643741
643840
  const latencyMs = Date.now() - startTime2;
643742
643841
  if (result.lockFailed) {
643743
643842
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -643874,17 +643973,17 @@ function PackageManagerAutoUpdater(t0) {
643874
643973
  const maxVersion = await getMaxVersion();
643875
643974
  if (maxVersion && latest && gt(latest, maxVersion)) {
643876
643975
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
643877
- if (gte("1.3.444", maxVersion)) {
643878
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.3.444"} is already at or above maxVersion ${maxVersion}, skipping update`);
643976
+ if (gte("1.3.446", maxVersion)) {
643977
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.3.446"} is already at or above maxVersion ${maxVersion}, skipping update`);
643879
643978
  setUpdateAvailable(false);
643880
643979
  return;
643881
643980
  }
643882
643981
  latest = maxVersion;
643883
643982
  }
643884
- const hasUpdate = latest && !gte("1.3.444", latest) && !shouldSkipVersion(latest);
643983
+ const hasUpdate = latest && !gte("1.3.446", latest) && !shouldSkipVersion(latest);
643885
643984
  setUpdateAvailable(!!hasUpdate);
643886
643985
  if (hasUpdate) {
643887
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.3.444"} -> ${latest}`);
643986
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.3.446"} -> ${latest}`);
643888
643987
  }
643889
643988
  };
643890
643989
  $3[0] = t1;
@@ -643918,7 +644017,7 @@ function PackageManagerAutoUpdater(t0) {
643918
644017
  wrap: "truncate",
643919
644018
  children: [
643920
644019
  "currentVersion: ",
643921
- "1.3.444"
644020
+ "1.3.446"
643922
644021
  ]
643923
644022
  });
643924
644023
  $3[3] = verbose;
@@ -652083,7 +652182,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
652083
652182
  project_dir: getOriginalCwd(),
652084
652183
  added_dirs: addedDirs
652085
652184
  },
652086
- version: "1.3.444",
652185
+ version: "1.3.446",
652087
652186
  output_style: {
652088
652187
  name: outputStyleName
652089
652188
  },
@@ -653889,7 +653988,7 @@ function PromptChar(t0) {
653889
653988
  themeColor
653890
653989
  } = t0;
653891
653990
  const teammateColor = themeColor;
653892
- const color3 = teammateColor ?? "#00ff88";
653991
+ const color3 = teammateColor ?? "promptChar";
653893
653992
  let t1;
653894
653993
  if ($3[0] !== color3 || $3[1] !== isLoading) {
653895
653994
  t1 = /* @__PURE__ */ jsx_runtime418.jsxs(ThemedText, {
@@ -663581,7 +663680,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
663581
663680
  } catch {}
663582
663681
  const data = {
663583
663682
  trigger,
663584
- version: "1.3.444",
663683
+ version: "1.3.446",
663585
663684
  platform: process.platform,
663586
663685
  transcript,
663587
663686
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -675768,7 +675867,7 @@ function WelcomeV2() {
675768
675867
  dimColor: true,
675769
675868
  children: [
675770
675869
  "v",
675771
- "1.3.444"
675870
+ "1.3.446"
675772
675871
  ]
675773
675872
  })
675774
675873
  ]
@@ -677502,7 +677601,7 @@ function completeOnboarding() {
677502
677601
  saveGlobalConfig((current) => ({
677503
677602
  ...current,
677504
677603
  hasCompletedOnboarding: true,
677505
- lastOnboardingVersion: "1.3.444"
677604
+ lastOnboardingVersion: "1.3.446"
677506
677605
  }));
677507
677606
  }
677508
677607
  function showDialog(root2, renderer) {
@@ -682452,7 +682551,7 @@ function appendToLog(path30, message) {
682452
682551
  cwd: getFsImplementation().cwd(),
682453
682552
  userType: "external",
682454
682553
  sessionId: getSessionId(),
682455
- version: "1.3.444"
682554
+ version: "1.3.446"
682456
682555
  };
682457
682556
  getLogWriter(path30).write(messageWithTimestamp);
682458
682557
  }
@@ -686560,8 +686659,8 @@ async function getEnvLessBridgeConfig() {
686560
686659
  }
686561
686660
  async function checkEnvLessBridgeMinVersion() {
686562
686661
  const cfg = await getEnvLessBridgeConfig();
686563
- if (cfg.min_version && lt("1.3.444", cfg.min_version)) {
686564
- return `Your version of RAYU (${"1.3.444"}) is too old for Remote Control.
686662
+ if (cfg.min_version && lt("1.3.446", cfg.min_version)) {
686663
+ return `Your version of RAYU (${"1.3.446"}) is too old for Remote Control.
686565
686664
  Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
686566
686665
  }
686567
686666
  return null;
@@ -687035,7 +687134,7 @@ async function initBridgeCore(params) {
687035
687134
  const rawApi = createBridgeApiClient({
687036
687135
  baseUrl,
687037
687136
  getAccessToken,
687038
- runnerVersion: "1.3.444",
687137
+ runnerVersion: "1.3.446",
687039
687138
  onDebug: logForDebugging,
687040
687139
  onAuth401,
687041
687140
  getTrustedDeviceToken
@@ -692397,7 +692496,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
692397
692496
  setCwd(cwd3);
692398
692497
  const server = new Server({
692399
692498
  name: "claude/tengu",
692400
- version: "1.3.444"
692499
+ version: "1.3.446"
692401
692500
  }, {
692402
692501
  capabilities: {
692403
692502
  tools: {}
@@ -694923,7 +695022,7 @@ ${customInstructions}` : customInstructions;
694923
695022
  }
694924
695023
  }
694925
695024
  logForDiagnosticsNoPII("info", "started", {
694926
- version: "1.3.444",
695025
+ version: "1.3.446",
694927
695026
  is_native_binary: isInBundledMode()
694928
695027
  });
694929
695028
  registerCleanup(async () => {
@@ -695642,7 +695741,7 @@ Usage: rayu --remote "your task description"`, () => gracefulShutdown(1));
695642
695741
  pendingHookMessages
695643
695742
  }, renderAndRun);
695644
695743
  }
695645
- }).version("1.3.444 (Rayu-CLI)", "-v, --version", "Output the version number");
695744
+ }).version("1.3.446 (Rayu-CLI)", "-v, --version", "Output the version number");
695646
695745
  program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
695647
695746
  program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
695648
695747
  if (canUserConfigureAdvisor()) {
@@ -696104,7 +696203,7 @@ if (false) {}
696104
696203
  async function main2() {
696105
696204
  const args = process.argv.slice(2);
696106
696205
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
696107
- console.log(`${"1.3.444"} (Rayu-CLI)`);
696206
+ console.log(`${"1.3.446"} (Rayu-CLI)`);
696108
696207
  return;
696109
696208
  }
696110
696209
  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.3.444",
3
+ "version": "1.3.446",
4
4
  "description": "Rayu-CLI — a multi-provider AI coding CLI",
5
5
  "type": "module",
6
6
  "bin": {