localclawd 2.2.3 → 2.2.5

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/cli.mjs +237 -336
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -36482,7 +36482,6 @@ var init_config = __esm(() => {
36482
36482
  "hasUsedBackslashReturn",
36483
36483
  "autoCompactEnabled",
36484
36484
  "compactContextWindowTokens",
36485
- "contextWindowOverrides",
36486
36485
  "localBackendProvider",
36487
36486
  "localBackendBaseUrl",
36488
36487
  "localBackendModel",
@@ -87610,6 +87609,31 @@ var init_betas = __esm(() => {
87610
87609
  ]);
87611
87610
  });
87612
87611
 
87612
+ // src/utils/model/antModels.ts
87613
+ function getAntModelOverrideConfig2() {
87614
+ if (process.env.USER_TYPE !== "ant") {
87615
+ return null;
87616
+ }
87617
+ return getFeatureValue_CACHED_MAY_BE_STALE("tengu_ant_model_override", null);
87618
+ }
87619
+ function getAntModels2() {
87620
+ if (process.env.USER_TYPE !== "ant") {
87621
+ return [];
87622
+ }
87623
+ return getAntModelOverrideConfig2()?.antModels ?? [];
87624
+ }
87625
+ function resolveAntModel2(model) {
87626
+ if (process.env.USER_TYPE !== "ant") {
87627
+ return;
87628
+ }
87629
+ if (model === undefined) {
87630
+ return;
87631
+ }
87632
+ const lower = model.toLowerCase();
87633
+ return getAntModels2().find((m) => m.alias === model || lower.includes(m.model.toLowerCase()));
87634
+ }
87635
+ var init_antModels = () => {};
87636
+
87613
87637
  // node_modules/lodash-es/isEqual.js
87614
87638
  function isEqual(value, other) {
87615
87639
  return _baseIsEqual_default(value, other);
@@ -87622,7 +87646,7 @@ var init_isEqual = __esm(() => {
87622
87646
 
87623
87647
  // src/utils/userAgent.ts
87624
87648
  function getClaudeCodeUserAgent() {
87625
- return `claude-code/${"2.2.3"}`;
87649
+ return `claude-code/${"2.2.5"}`;
87626
87650
  }
87627
87651
 
87628
87652
  // src/utils/workloadContext.ts
@@ -87644,7 +87668,7 @@ function getUserAgent() {
87644
87668
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
87645
87669
  const workload = getWorkload();
87646
87670
  const workloadSuffix = workload ? `, workload/${workload}` : "";
87647
- return `claude-cli/${"2.2.3"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87671
+ return `claude-cli/${"2.2.5"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87648
87672
  }
87649
87673
  function getMCPUserAgent() {
87650
87674
  const parts = [];
@@ -87658,7 +87682,7 @@ function getMCPUserAgent() {
87658
87682
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
87659
87683
  }
87660
87684
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
87661
- return `claude-code/${"2.2.3"}${suffix}`;
87685
+ return `claude-code/${"2.2.5"}${suffix}`;
87662
87686
  }
87663
87687
  function getWebFetchUserAgent() {
87664
87688
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -95514,34 +95538,17 @@ var init_modelCapabilities = __esm(() => {
95514
95538
  });
95515
95539
 
95516
95540
  // src/utils/context.ts
95517
- function getContextWindowOverrideKey(model) {
95518
- return `${getCwd()}|${model}`;
95519
- }
95520
- function getContextWindowOverride(model) {
95521
- const overrides = getGlobalConfig().contextWindowOverrides;
95522
- if (!overrides)
95523
- return;
95524
- const v = overrides[getContextWindowOverrideKey(model)];
95525
- return typeof v === "number" && v > 0 ? v : undefined;
95526
- }
95527
95541
  function getEnvAlias2(localKey, legacyKey) {
95528
95542
  return process.env[localKey] ?? process.env[legacyKey];
95529
95543
  }
95530
95544
  function is1mContextDisabled() {
95531
- return isEnvTruthy(getEnvAlias2("LOCALCLAWD_DISABLE_1M_CONTEXT", "CLAUDE_CODE_DISABLE_1M_CONTEXT"));
95545
+ return true;
95532
95546
  }
95533
- function has1mContext(model) {
95534
- if (is1mContextDisabled()) {
95535
- return false;
95536
- }
95537
- return /\[1m\]/i.test(model);
95547
+ function has1mContext(_model) {
95548
+ return false;
95538
95549
  }
95539
- function modelSupports1M(model) {
95540
- if (is1mContextDisabled()) {
95541
- return false;
95542
- }
95543
- const canonical = getCanonicalName(model);
95544
- return canonical.includes("claude-sonnet-4") || canonical.includes("opus-4-6");
95550
+ function modelSupports1M(_model) {
95551
+ return false;
95545
95552
  }
95546
95553
  function parseContextWindowString(s) {
95547
95554
  const trimmed = s.trim().toLowerCase();
@@ -95562,42 +95569,16 @@ function setLocalProviderContextWindow(n) {
95562
95569
  function getLocalProviderContextWindow() {
95563
95570
  return _localProviderContextWindow;
95564
95571
  }
95565
- function getContextWindowForModel(model, betas) {
95572
+ function getContextWindowForModel(_model, _betas) {
95566
95573
  const envOverrideStr = getEnvAlias2("LOCALCLAWD_MAX_CONTEXT_TOKENS", "CLAUDE_CODE_MAX_CONTEXT_TOKENS");
95567
95574
  if (envOverrideStr) {
95568
95575
  const override = parseContextWindowString(envOverrideStr);
95569
95576
  if (override !== null)
95570
95577
  return override;
95571
95578
  }
95572
- if (has1mContext(model)) {
95573
- return 1e6;
95574
- }
95575
- const projectOverride = getContextWindowOverride(model);
95576
- if (projectOverride)
95577
- return projectOverride;
95578
95579
  const persisted = getGlobalConfig().compactContextWindowTokens;
95579
- if (persisted && persisted > 0) {
95580
+ if (persisted && persisted > 0)
95580
95581
  return persisted;
95581
- }
95582
- const cap = getModelCapability(model);
95583
- if (cap?.max_input_tokens && cap.max_input_tokens >= 1e5) {
95584
- if (cap.max_input_tokens > MODEL_CONTEXT_WINDOW_DEFAULT && is1mContextDisabled()) {
95585
- return MODEL_CONTEXT_WINDOW_DEFAULT;
95586
- }
95587
- return cap.max_input_tokens;
95588
- }
95589
- if (betas?.includes(CONTEXT_1M_BETA_HEADER) && modelSupports1M(model)) {
95590
- return 1e6;
95591
- }
95592
- if (getSonnet1mExpTreatmentEnabled(model)) {
95593
- return 1e6;
95594
- }
95595
- if (process.env.USER_TYPE === "ant") {
95596
- const antModel = resolveAntModel(model);
95597
- if (antModel?.contextWindow) {
95598
- return antModel.contextWindow;
95599
- }
95600
- }
95601
95582
  if (_localProviderContextWindow && _localProviderContextWindow > 0) {
95602
95583
  return _localProviderContextWindow;
95603
95584
  }
@@ -95612,30 +95593,8 @@ function formatCompactContextWindowOption(tokens) {
95612
95593
  }
95613
95594
  return `${Math.round(tokens / 1000)}k tokens`;
95614
95595
  }
95615
- function getConfiguredCompactContextWindow() {
95616
- const envOverride = getEnvAlias2("LOCALCLAWD_AUTO_COMPACT_WINDOW", "CLAUDE_CODE_AUTO_COMPACT_WINDOW");
95617
- if (envOverride) {
95618
- const parsed = parseContextWindowString(envOverride);
95619
- if (parsed !== null)
95620
- return parsed;
95621
- }
95622
- const configured = getGlobalConfig().compactContextWindowTokens;
95623
- if (typeof configured === "number" && configured > 0) {
95624
- return configured;
95625
- }
95626
- return;
95627
- }
95628
- function getSonnet1mExpTreatmentEnabled(model) {
95629
- if (is1mContextDisabled()) {
95630
- return false;
95631
- }
95632
- if (has1mContext(model)) {
95633
- return false;
95634
- }
95635
- if (!getCanonicalName(model).includes("sonnet-4-6")) {
95636
- return false;
95637
- }
95638
- return getGlobalConfig().clientDataCache?.["coral_reef_sonnet"] === "true";
95596
+ function getSonnet1mExpTreatmentEnabled(_model) {
95597
+ return false;
95639
95598
  }
95640
95599
  function calculateContextPercentages(currentUsage, contextWindowSize) {
95641
95600
  if (!currentUsage) {
@@ -95653,7 +95612,7 @@ function getModelMaxOutputTokens(model) {
95653
95612
  let defaultTokens;
95654
95613
  let upperLimit;
95655
95614
  if (process.env.USER_TYPE === "ant") {
95656
- const antModel = resolveAntModel(model.toLowerCase());
95615
+ const antModel = resolveAntModel2(model.toLowerCase());
95657
95616
  if (antModel) {
95658
95617
  defaultTokens = antModel.defaultMaxTokens ?? MAX_OUTPUT_TOKENS_DEFAULT;
95659
95618
  upperLimit = antModel.upperMaxTokensLimit ?? MAX_OUTPUT_TOKENS_UPPER_LIMIT;
@@ -95704,11 +95663,9 @@ function getMaxThinkingTokensForModel(model) {
95704
95663
  }
95705
95664
  var MODEL_CONTEXT_WINDOW_DEFAULT = 131072, COMPACT_CONTEXT_WINDOW_CHOICES, COMPACT_MAX_OUTPUT_TOKENS = 20000, MAX_OUTPUT_TOKENS_DEFAULT = 32000, MAX_OUTPUT_TOKENS_UPPER_LIMIT = 64000, CAPPED_DEFAULT_MAX_TOKENS = 8000, ESCALATED_MAX_TOKENS = 64000, _localProviderContextWindow = null;
95706
95665
  var init_context = __esm(() => {
95707
- init_betas();
95708
- init_cwd();
95709
95666
  init_config();
95710
- init_envUtils();
95711
95667
  init_model();
95668
+ init_antModels();
95712
95669
  init_modelCapabilities();
95713
95670
  COMPACT_CONTEXT_WINDOW_CHOICES = [
95714
95671
  32000,
@@ -130823,7 +130780,7 @@ function getAttributionHeader(fingerprint) {
130823
130780
  if (!isAttributionHeaderEnabled()) {
130824
130781
  return "";
130825
130782
  }
130826
- const version = `${"2.2.3"}.${fingerprint}`;
130783
+ const version = `${"2.2.5"}.${fingerprint}`;
130827
130784
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
130828
130785
  const cch = "";
130829
130786
  const workload = getWorkload();
@@ -147010,7 +146967,7 @@ var init_metadata = __esm(() => {
147010
146967
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
147011
146968
  WHITESPACE_REGEX = /\s+/;
147012
146969
  getVersionBase = memoize_default(() => {
147013
- const match = "2.2.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
146970
+ const match = "2.2.5".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147014
146971
  return match ? match[0] : undefined;
147015
146972
  });
147016
146973
  buildEnvContext = memoize_default(async () => {
@@ -147050,9 +147007,9 @@ var init_metadata = __esm(() => {
147050
147007
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
147051
147008
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
147052
147009
  isClaudeAiAuth: isClaudeAISubscriber(),
147053
- version: "2.2.3",
147010
+ version: "2.2.5",
147054
147011
  versionBase: getVersionBase(),
147055
- buildTime: "2026-05-10T15:39:35.289Z",
147012
+ buildTime: "2026-05-10T16:04:33.662Z",
147056
147013
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
147057
147014
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
147058
147015
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -172882,7 +172839,9 @@ async function tryCleanRoomCompactSummary({
172882
172839
  try {
172883
172840
  const model = context4.options.mainLoopModel;
172884
172841
  const contextTokens = getContextWindowForModel(model, []);
172885
- const charBudget = Math.floor((contextTokens - COMPACT_MAX_OUTPUT_TOKENS - 2000) * 3.5);
172842
+ const reserve = Math.min(COMPACT_MAX_OUTPUT_TOKENS, Math.max(2000, Math.floor(contextTokens * 0.25)));
172843
+ const inputTokens = Math.max(Math.floor(contextTokens * 0.5), contextTokens - reserve - 2000);
172844
+ const charBudget = Math.max(4000, Math.floor(inputTokens * 3.5));
172886
172845
  const serialized = serializeMessagesForCleanRoom(messages, charBudget);
172887
172846
  if (!serialized.trim())
172888
172847
  return null;
@@ -179592,7 +179551,7 @@ function getTelemetryAttributes() {
179592
179551
  attributes["session.id"] = sessionId;
179593
179552
  }
179594
179553
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
179595
- attributes["app.version"] = "2.2.3";
179554
+ attributes["app.version"] = "2.2.5";
179596
179555
  }
179597
179556
  const oauthAccount = getOauthAccountInfo();
179598
179557
  if (oauthAccount) {
@@ -241880,7 +241839,7 @@ function getInstallationEnv() {
241880
241839
  return;
241881
241840
  }
241882
241841
  function getClaudeCodeVersion() {
241883
- return "2.2.3";
241842
+ return "2.2.5";
241884
241843
  }
241885
241844
  async function getInstalledVSCodeExtensionVersion(command) {
241886
241845
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -247154,7 +247113,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
247154
247113
  const client4 = new Client({
247155
247114
  name: "localclawd",
247156
247115
  title: "localclawd",
247157
- version: "2.2.3",
247116
+ version: "2.2.5",
247158
247117
  description: "local-first AI coding tool",
247159
247118
  websiteUrl: PRODUCT_URL
247160
247119
  }, {
@@ -247496,7 +247455,7 @@ var init_client9 = __esm(() => {
247496
247455
  const client4 = new Client({
247497
247456
  name: "localclawd",
247498
247457
  title: "localclawd",
247499
- version: "2.2.3",
247458
+ version: "2.2.5",
247500
247459
  description: "local-first AI coding tool",
247501
247460
  websiteUrl: PRODUCT_URL
247502
247461
  }, {
@@ -261867,9 +261826,6 @@ var init_uuid = __esm(() => {
261867
261826
  uuidRegex2 = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
261868
261827
  });
261869
261828
 
261870
- // src/utils/model/antModels.ts
261871
- var init_antModels = () => {};
261872
-
261873
261829
  // src/utils/fingerprint.ts
261874
261830
  import { createHash as createHash10 } from "crypto";
261875
261831
  function extractFirstMessageText(messages) {
@@ -261898,7 +261854,7 @@ function computeFingerprint(messageText, version) {
261898
261854
  }
261899
261855
  function computeFingerprintFromMessages(messages) {
261900
261856
  const firstMessageText = extractFirstMessageText(messages);
261901
- return computeFingerprint(firstMessageText, "2.2.3");
261857
+ return computeFingerprint(firstMessageText, "2.2.5");
261902
261858
  }
261903
261859
  var FINGERPRINT_SALT = "59cf53e54c78";
261904
261860
  var init_fingerprint = () => {};
@@ -261940,7 +261896,7 @@ async function sideQuery(opts) {
261940
261896
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
261941
261897
  }
261942
261898
  const messageText = extractFirstUserMessageText(messages);
261943
- const fingerprint = computeFingerprint(messageText, "2.2.3");
261899
+ const fingerprint = computeFingerprint(messageText, "2.2.5");
261944
261900
  const attributionHeader = getAttributionHeader(fingerprint);
261945
261901
  const systemBlocks = [
261946
261902
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -282692,7 +282648,7 @@ var init_user = __esm(() => {
282692
282648
  deviceId,
282693
282649
  sessionId: getSessionId(),
282694
282650
  email: getEmail(),
282695
- appVersion: "2.2.3",
282651
+ appVersion: "2.2.5",
282696
282652
  platform: getHostPlatformForAnalytics(),
282697
282653
  organizationUuid,
282698
282654
  accountUuid,
@@ -283757,7 +283713,7 @@ async function initializeBetaTracing(resource) {
283757
283713
  });
283758
283714
  logs.setGlobalLoggerProvider(loggerProvider);
283759
283715
  setLoggerProvider(loggerProvider);
283760
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "2.2.3");
283716
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "2.2.5");
283761
283717
  setEventLogger(eventLogger);
283762
283718
  process.on("beforeExit", async () => {
283763
283719
  await loggerProvider?.forceFlush();
@@ -283797,7 +283753,7 @@ async function initializeTelemetry() {
283797
283753
  const platform2 = getPlatform();
283798
283754
  const baseAttributes = {
283799
283755
  [ATTR_SERVICE_NAME4]: "claude-code",
283800
- [ATTR_SERVICE_VERSION4]: "2.2.3"
283756
+ [ATTR_SERVICE_VERSION4]: "2.2.5"
283801
283757
  };
283802
283758
  if (platform2 === "wsl") {
283803
283759
  const wslVersion = getWslVersion();
@@ -283842,7 +283798,7 @@ async function initializeTelemetry() {
283842
283798
  } catch {}
283843
283799
  };
283844
283800
  registerCleanup(shutdownTelemetry2);
283845
- return meterProvider2.getMeter("com.anthropic.claude_code", "2.2.3");
283801
+ return meterProvider2.getMeter("com.anthropic.claude_code", "2.2.5");
283846
283802
  }
283847
283803
  const meterProvider = new MeterProvider4({
283848
283804
  resource,
@@ -283862,7 +283818,7 @@ async function initializeTelemetry() {
283862
283818
  });
283863
283819
  logs.setGlobalLoggerProvider(loggerProvider);
283864
283820
  setLoggerProvider(loggerProvider);
283865
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "2.2.3");
283821
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "2.2.5");
283866
283822
  setEventLogger(eventLogger);
283867
283823
  logForDebugging("[3P telemetry] Event logger set successfully");
283868
283824
  process.on("beforeExit", async () => {
@@ -283924,7 +283880,7 @@ Current timeout: ${timeoutMs}ms
283924
283880
  }
283925
283881
  };
283926
283882
  registerCleanup(shutdownTelemetry);
283927
- return meterProvider.getMeter("com.anthropic.claude_code", "2.2.3");
283883
+ return meterProvider.getMeter("com.anthropic.claude_code", "2.2.5");
283928
283884
  }
283929
283885
  async function flushTelemetry() {
283930
283886
  const meterProvider = getMeterProvider();
@@ -285114,7 +285070,7 @@ function detectLinuxGlobPatternWarnings() {
285114
285070
  }
285115
285071
  async function getDoctorDiagnostic() {
285116
285072
  const installationType = await getCurrentInstallationType();
285117
- const version = typeof MACRO !== "undefined" ? "2.2.3" : "unknown";
285073
+ const version = typeof MACRO !== "undefined" ? "2.2.5" : "unknown";
285118
285074
  const installationPath = await getInstallationPath();
285119
285075
  const invokedBinary = getInvokedBinary();
285120
285076
  const multipleInstallations = await detectMultipleInstallations();
@@ -286055,8 +286011,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286055
286011
  const maxVersion = await getMaxVersion();
286056
286012
  if (maxVersion && gt(version, maxVersion)) {
286057
286013
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
286058
- if (gte("2.2.3", maxVersion)) {
286059
- logForDebugging(`Native installer: current version ${"2.2.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
286014
+ if (gte("2.2.5", maxVersion)) {
286015
+ logForDebugging(`Native installer: current version ${"2.2.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
286060
286016
  logEvent("tengu_native_update_skipped_max_version", {
286061
286017
  latency_ms: Date.now() - startTime,
286062
286018
  max_version: maxVersion,
@@ -286067,7 +286023,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286067
286023
  version = maxVersion;
286068
286024
  }
286069
286025
  }
286070
- if (!forceReinstall && version === "2.2.3" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286026
+ if (!forceReinstall && version === "2.2.5" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286071
286027
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
286072
286028
  logEvent("tengu_native_update_complete", {
286073
286029
  latency_ms: Date.now() - startTime,
@@ -332342,7 +332298,7 @@ function getAnthropicEnvMetadata() {
332342
332298
  function getBuildAgeMinutes() {
332343
332299
  if (false)
332344
332300
  ;
332345
- const buildTime = new Date("2026-05-10T15:39:35.289Z").getTime();
332301
+ const buildTime = new Date("2026-05-10T16:04:33.662Z").getTime();
332346
332302
  if (isNaN(buildTime))
332347
332303
  return;
332348
332304
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360371,7 +360327,7 @@ function Feedback({
360371
360327
  platform: env3.platform,
360372
360328
  gitRepo: envInfo.isGit,
360373
360329
  terminal: env3.terminal,
360374
- version: "2.2.3",
360330
+ version: "2.2.5",
360375
360331
  transcript: normalizeMessagesForAPI(messages),
360376
360332
  errors: sanitizedErrors,
360377
360333
  lastApiRequest: getLastAPIRequest(),
@@ -360563,7 +360519,7 @@ function Feedback({
360563
360519
  ", ",
360564
360520
  env3.terminal,
360565
360521
  ", v",
360566
- "2.2.3"
360522
+ "2.2.5"
360567
360523
  ]
360568
360524
  }, undefined, true, undefined, this)
360569
360525
  ]
@@ -360669,7 +360625,7 @@ ${sanitizedDescription}
360669
360625
  ` + `**Environment Info**
360670
360626
  ` + `- Platform: ${env3.platform}
360671
360627
  ` + `- Terminal: ${env3.terminal}
360672
- ` + `- Version: ${"2.2.3"}
360628
+ ` + `- Version: ${"2.2.5"}
360673
360629
  ` + `- Feedback ID: ${feedbackId}
360674
360630
  ` + `
360675
360631
  **Errors**
@@ -363278,7 +363234,7 @@ function buildPrimarySection() {
363278
363234
  }, undefined, false, undefined, this);
363279
363235
  return [{
363280
363236
  label: "Version",
363281
- value: "2.2.3"
363237
+ value: "2.2.5"
363282
363238
  }, {
363283
363239
  label: "Session name",
363284
363240
  value: nameValue
@@ -367959,7 +367915,7 @@ function Config({
367959
367915
  }
367960
367916
  }, undefined, false, undefined, this)
367961
367917
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
367962
- currentVersion: "2.2.3",
367918
+ currentVersion: "2.2.5",
367963
367919
  onChoice: (choice) => {
367964
367920
  setShowSubmenu(null);
367965
367921
  setTabsHidden(false);
@@ -367971,7 +367927,7 @@ function Config({
367971
367927
  autoUpdatesChannel: "stable"
367972
367928
  };
367973
367929
  if (choice === "stay") {
367974
- newSettings.minimumVersion = "2.2.3";
367930
+ newSettings.minimumVersion = "2.2.5";
367975
367931
  }
367976
367932
  updateSettingsForSource("userSettings", newSettings);
367977
367933
  setSettingsData((prev_27) => ({
@@ -383606,10 +383562,25 @@ function barLine(used, total, width = 40) {
383606
383562
  const empty = width - filled;
383607
383563
  return `[${"█".repeat(filled)}${" ".repeat(empty)}] ${Math.round(pct * 100)}%`;
383608
383564
  }
383565
+ function applySize(parsed, model, onDone) {
383566
+ saveGlobalConfig((c5) => ({ ...c5, compactContextWindowTokens: parsed }));
383567
+ setLocalProviderContextWindow(parsed);
383568
+ onDone([
383569
+ `Context window set to ${fmtTokens(parsed)} tokens.`,
383570
+ `Effective window: ${fmtTokens(getEffectiveContextWindowSize(model))} (minus output reservation).`,
383571
+ `Auto-compact threshold: ${fmtTokens(getAutoCompactThreshold(model))}.`
383572
+ ].join(`
383573
+ `), { display: "system" });
383574
+ return null;
383575
+ }
383609
383576
  var call51 = async (onDone, context7, args) => {
383610
383577
  const parts = (args ?? "").trim().split(/\s+/).filter(Boolean);
383611
383578
  const sub = parts[0]?.toLowerCase();
383612
383579
  const model = context7.options.mainLoopModel;
383580
+ const directSize = sub ? parseContextWindowString(sub) : null;
383581
+ if (directSize) {
383582
+ return applySize(directSize, model, onDone);
383583
+ }
383613
383584
  if (sub === "set") {
383614
383585
  const valueStr = parts[1]?.toLowerCase();
383615
383586
  if (!valueStr) {
@@ -383621,36 +383592,19 @@ var call51 = async (onDone, context7, args) => {
383621
383592
  onDone(`Invalid size "${valueStr}". Use: 200k | 1m | 131072`, { display: "system" });
383622
383593
  return null;
383623
383594
  }
383624
- const key = getContextWindowOverrideKey(model);
383625
- saveGlobalConfig((c5) => ({
383626
- ...c5,
383627
- contextWindowOverrides: { ...c5.contextWindowOverrides ?? {}, [key]: parsed }
383628
- }));
383629
- onDone([
383630
- `Context window set to ${fmtTokens(parsed)} tokens for ${model} in this directory.`,
383631
- `Effective window: ${fmtTokens(getEffectiveContextWindowSize(model))} (minus output reservation).`,
383632
- `Auto-compact threshold: ${fmtTokens(getAutoCompactThreshold(model))}.`,
383633
- `Persists until /ctx reset or model switch.`
383634
- ].join(`
383635
- `), { display: "system" });
383636
- return null;
383595
+ return applySize(parsed, model, onDone);
383637
383596
  }
383638
383597
  if (sub === "reset") {
383639
- const key = getContextWindowOverrideKey(model);
383640
383598
  saveGlobalConfig((c5) => {
383641
- const { compactContextWindowTokens: _2, contextWindowOverrides, ...rest } = c5;
383642
- const nextOverrides = { ...contextWindowOverrides ?? {} };
383643
- delete nextOverrides[key];
383644
- return {
383645
- ...rest,
383646
- ...Object.keys(nextOverrides).length > 0 ? { contextWindowOverrides: nextOverrides } : {}
383647
- };
383599
+ const { compactContextWindowTokens: _drop, ...rest } = c5;
383600
+ return rest;
383648
383601
  });
383602
+ setLocalProviderContextWindow(null);
383649
383603
  resetContextWindowDetection();
383650
383604
  autoDetectProviderContextWindow();
383651
383605
  onDone([
383652
- "Context window reset. Re-detecting from provider...",
383653
- `Will use ${fmtTokens(getContextWindowForModel(model))} tokens until detection completes.`
383606
+ "Context window reset. Cleared saved size; re-detecting from provider...",
383607
+ `Until detection completes this session uses ${fmtTokens(getContextWindowForModel(model))} tokens.`
383654
383608
  ].join(`
383655
383609
  `), { display: "system" });
383656
383610
  return null;
@@ -383669,13 +383623,12 @@ var call51 = async (onDone, context7, args) => {
383669
383623
  const totalWindow = getContextWindowForModel(model);
383670
383624
  const effectiveWindow = getEffectiveContextWindowSize(model);
383671
383625
  const autoCompactThreshold = getAutoCompactThreshold(model);
383672
- const configuredCap = getConfiguredCompactContextWindow();
383626
+ const persisted = getGlobalConfig().compactContextWindowTokens;
383673
383627
  const detectedFromProvider = getLocalProviderContextWindow();
383674
383628
  const tokenUsage = tokenCountWithEstimation(context7.messages);
383675
383629
  const autoCompact = isAutoCompactEnabled();
383676
383630
  const usagePct = Math.min(100, Math.round(tokenUsage / totalWindow * 100));
383677
- const projectOverride = getContextWindowOverride(model);
383678
- const source = projectOverride ? `project override (${fmtTokens(projectOverride)} for ${model} here)` : configuredCap ? `user-configured (${fmtTokens(configuredCap)})` : detectedFromProvider ? `detected (${fmtTokens(detectedFromProvider)})` : "model default";
383631
+ const source = persisted ? `configured (${fmtTokens(persisted)})` : detectedFromProvider ? `detected from provider (${fmtTokens(detectedFromProvider)})` : "default";
383679
383632
  const lines = [
383680
383633
  "─── Context Window ───────────────────────────────────────",
383681
383634
  ` Total window: ${fmtTokens(totalWindow)} tokens [${source}]`,
@@ -383687,8 +383640,9 @@ var call51 = async (onDone, context7, args) => {
383687
383640
  ` ${usagePct}% used — ${fmtTokens(totalWindow - tokenUsage)} tokens remaining`,
383688
383641
  "",
383689
383642
  "─── Commands ─────────────────────────────────────────────",
383643
+ " /ctx 200k — set context window size",
383690
383644
  " /ctx set 200k — set context window size",
383691
- " /ctx reset — restore model default",
383645
+ " /ctx reset — clear saved size, re-detect from provider",
383692
383646
  ` /ctx compact ${autoCompact ? "off" : "on "} — ${autoCompact ? "disable" : "enable"} auto-compact`,
383693
383647
  " /compact — compact conversation now"
383694
383648
  ];
@@ -383710,11 +383664,11 @@ var init_ctx2 = __esm(() => {
383710
383664
  ctx = {
383711
383665
  type: "local-jsx",
383712
383666
  name: "ctx",
383713
- aliases: ["context-window", "cw"],
383667
+ aliases: ["context-window", "cw", "contextsize", "ctxsize"],
383714
383668
  description: "Show and configure context window size. " + `Usage: /ctx — show current context window and usage
383669
+ ` + ` /ctx 200k — set context window (shorthand for /ctx set)
383715
383670
  ` + ` /ctx set 200k — set context window (supports 200k, 1m, or plain number)
383716
- ` + ` /ctx set auto — detect from local provider
383717
- ` + ` /ctx reset — clear custom context window (use model default)
383671
+ ` + ` /ctx reset clear saved size, re-detect from provider
383718
383672
  ` + ` /ctx compact off — disable auto-compact
383719
383673
  ` + " /ctx compact on — enable auto-compact",
383720
383674
  load: () => Promise.resolve().then(() => (init_ctx(), exports_ctx))
@@ -383722,61 +383676,10 @@ var init_ctx2 = __esm(() => {
383722
383676
  ctx_default = ctx;
383723
383677
  });
383724
383678
 
383725
- // src/commands/ctx/contextsize.tsx
383726
- var exports_contextsize = {};
383727
- __export(exports_contextsize, {
383728
- call: () => call52
383729
- });
383730
- function fmtTokens2(n) {
383731
- if (n >= 1e6)
383732
- return `${(n / 1e6).toFixed(2)}M`;
383733
- if (n >= 1000)
383734
- return `${Math.round(n / 1000)}k`;
383735
- return String(n);
383736
- }
383737
- var call52 = async (onDone, context7, args) => {
383738
- const value = (args ?? "").trim().toLowerCase();
383739
- if (!value) {
383740
- const { call: ctxCall } = await Promise.resolve().then(() => (init_ctx(), exports_ctx));
383741
- return ctxCall(onDone, context7, "");
383742
- }
383743
- const parsed = parseContextWindowString(value);
383744
- if (!parsed) {
383745
- onDone(`Invalid size "${value}". Use: 128k | 200k | 1m | 131072`, { display: "system" });
383746
- return null;
383747
- }
383748
- const model = context7.options.mainLoopModel;
383749
- const key = getContextWindowOverrideKey(model);
383750
- saveGlobalConfig((c5) => ({
383751
- ...c5,
383752
- contextWindowOverrides: { ...c5.contextWindowOverrides ?? {}, [key]: parsed }
383753
- }));
383754
- onDone(`Context size set to ${fmtTokens2(parsed)} for ${model} in this directory. Auto-compact triggers at ${fmtTokens2(getAutoCompactThreshold(model))}.`, { display: "system" });
383755
- return null;
383756
- };
383757
- var init_contextsize = __esm(() => {
383758
- init_config();
383759
- init_context();
383760
- init_autoCompact();
383761
- });
383762
-
383763
- // src/commands/ctx/contextsize-index.ts
383764
- var contextsize, contextsize_index_default;
383765
- var init_contextsize_index = __esm(() => {
383766
- contextsize = {
383767
- type: "local-jsx",
383768
- name: "contextsize",
383769
- aliases: ["ctxsize"],
383770
- description: "Set context window size. Usage: /contextsize 200k | /contextsize auto",
383771
- load: () => Promise.resolve().then(() => (init_contextsize(), exports_contextsize))
383772
- };
383773
- contextsize_index_default = contextsize;
383774
- });
383775
-
383776
383679
  // src/commands/research/research.tsx
383777
383680
  var exports_research = {};
383778
383681
  __export(exports_research, {
383779
- call: () => call53
383682
+ call: () => call52
383780
383683
  });
383781
383684
  function buildResearchPrompt(topic, thinkHarder) {
383782
383685
  const thinkHarderSection = thinkHarder ? `
@@ -383885,7 +383788,7 @@ function ResearchWarning({
383885
383788
  }, undefined, false, undefined, this)
383886
383789
  }, undefined, false, undefined, this);
383887
383790
  }
383888
- var React68, jsx_dev_runtime211, call53 = async (onDone, _context, args) => {
383791
+ var React68, jsx_dev_runtime211, call52 = async (onDone, _context, args) => {
383889
383792
  const rawArgs = args?.trim() ?? "";
383890
383793
  const { ownArgs: topic, nextCmd } = extractChain(rawArgs);
383891
383794
  if (!topic) {
@@ -384309,7 +384212,7 @@ var init_promptEditor = __esm(() => {
384309
384212
  // src/commands/memory/memory.tsx
384310
384213
  var exports_memory = {};
384311
384214
  __export(exports_memory, {
384312
- call: () => call54
384215
+ call: () => call53
384313
384216
  });
384314
384217
  import { mkdir as mkdir49, writeFile as writeFile51 } from "fs/promises";
384315
384218
  import { dirname as dirname48 } from "path";
@@ -384423,7 +384326,7 @@ ${editorHint}`, { display: "system" });
384423
384326
  }, undefined, true, undefined, this)
384424
384327
  }, undefined, false, undefined, this);
384425
384328
  }
384426
- var React69, jsx_dev_runtime214, call54 = async (onDone, _context, args) => {
384329
+ var React69, jsx_dev_runtime214, call53 = async (onDone, _context, args) => {
384427
384330
  if (args.trim().length > 0) {
384428
384331
  try {
384429
384332
  onDone(await runMemoryControlCommand(args), { display: "system" });
@@ -384468,10 +384371,10 @@ var init_memory2 = __esm(() => {
384468
384371
  // src/commands/includememory/includememory.ts
384469
384372
  var exports_includememory = {};
384470
384373
  __export(exports_includememory, {
384471
- call: () => call55
384374
+ call: () => call54
384472
384375
  });
384473
384376
  import { join as join132 } from "path";
384474
- var MEMORY_GITIGNORE_PATTERNS, call55 = async () => {
384377
+ var MEMORY_GITIGNORE_PATTERNS, call54 = async () => {
384475
384378
  const gitignorePaths = [
384476
384379
  join132(getOriginalCwd(), ".gitignore"),
384477
384380
  getGlobalGitignorePath()
@@ -385336,7 +385239,7 @@ function Help(t0) {
385336
385239
  let t6;
385337
385240
  if ($2[31] !== tabs) {
385338
385241
  t6 = /* @__PURE__ */ jsx_dev_runtime218.jsxDEV(Tabs, {
385339
- title: `localclawd v${"2.2.3"}`,
385242
+ title: `localclawd v${"2.2.5"}`,
385340
385243
  color: "professionalBlue",
385341
385244
  defaultTab: "general",
385342
385245
  children: tabs
@@ -385442,9 +385345,9 @@ var init_Help = __esm(() => {
385442
385345
  // src/commands/help/help.tsx
385443
385346
  var exports_help = {};
385444
385347
  __export(exports_help, {
385445
- call: () => call56
385348
+ call: () => call55
385446
385349
  });
385447
- var jsx_dev_runtime219, call56 = async (onDone, {
385350
+ var jsx_dev_runtime219, call55 = async (onDone, {
385448
385351
  options: {
385449
385352
  commands
385450
385353
  }
@@ -385651,7 +385554,7 @@ var init_IdeAutoConnectDialog = __esm(() => {
385651
385554
  var exports_ide = {};
385652
385555
  __export(exports_ide, {
385653
385556
  formatWorkspaceFolders: () => formatWorkspaceFolders,
385654
- call: () => call57
385557
+ call: () => call56
385655
385558
  });
385656
385559
  import * as path12 from "path";
385657
385560
  function IDEScreen(t0) {
@@ -386129,7 +386032,7 @@ function InstallOnMount(t0) {
386129
386032
  import_react113.useEffect(t1, t2);
386130
386033
  return null;
386131
386034
  }
386132
- async function call57(onDone, context7, args) {
386035
+ async function call56(onDone, context7, args) {
386133
386036
  logEvent("tengu_ext_ide_command", {});
386134
386037
  const {
386135
386038
  options: {
@@ -386712,11 +386615,11 @@ var init_template = __esm(() => {
386712
386615
  // src/commands/keybindings/keybindings.ts
386713
386616
  var exports_keybindings = {};
386714
386617
  __export(exports_keybindings, {
386715
- call: () => call58
386618
+ call: () => call57
386716
386619
  });
386717
386620
  import { mkdir as mkdir50, writeFile as writeFile52 } from "fs/promises";
386718
386621
  import { dirname as dirname49 } from "path";
386719
- async function call58() {
386622
+ async function call57() {
386720
386623
  if (!isKeybindingCustomizationEnabled()) {
386721
386624
  return {
386722
386625
  type: "text",
@@ -401247,7 +401150,7 @@ var init_PluginSettings = __esm(() => {
401247
401150
  // src/commands/mcp/mcp.tsx
401248
401151
  var exports_mcp = {};
401249
401152
  __export(exports_mcp, {
401250
- call: () => call59
401153
+ call: () => call58
401251
401154
  });
401252
401155
  function MCPToggle(t0) {
401253
401156
  const $2 = c3(7);
@@ -401300,7 +401203,7 @@ function _temp238(c5) {
401300
401203
  function _temp96(s) {
401301
401204
  return s.mcp.clients;
401302
401205
  }
401303
- async function call59(onDone, _context, args) {
401206
+ async function call58(onDone, _context, args) {
401304
401207
  if (args) {
401305
401208
  const parts = args.trim().split(/\s+/);
401306
401209
  if (parts[0] === "no-redirect") {
@@ -401921,9 +401824,9 @@ var init_createSession = __esm(() => {
401921
401824
  // src/commands/rename/rename.ts
401922
401825
  var exports_rename = {};
401923
401826
  __export(exports_rename, {
401924
- call: () => call60
401827
+ call: () => call59
401925
401828
  });
401926
- async function call60(onDone, context7, args) {
401829
+ async function call59(onDone, context7, args) {
401927
401830
  if (isTeammate()) {
401928
401831
  onDone("Cannot rename: This session is a swarm teammate. Teammate names are set by the team leader.", { display: "system" });
401929
401832
  return null;
@@ -402598,7 +402501,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
402598
402501
  }
402599
402502
  return [];
402600
402503
  }
402601
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "2.2.3") {
402504
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "2.2.5") {
402602
402505
  if (process.env.USER_TYPE === "ant") {
402603
402506
  const changelog = MACRO.VERSION_CHANGELOG;
402604
402507
  if (changelog) {
@@ -402625,7 +402528,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "2.2.3") {
402625
402528
  releaseNotes
402626
402529
  };
402627
402530
  }
402628
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "2.2.3") {
402531
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "2.2.5") {
402629
402532
  if (process.env.USER_TYPE === "ant") {
402630
402533
  const changelog = MACRO.VERSION_CHANGELOG;
402631
402534
  if (changelog) {
@@ -402782,7 +402685,7 @@ function getRecentActivitySync() {
402782
402685
  return cachedActivity;
402783
402686
  }
402784
402687
  function getLogoDisplayData() {
402785
- const version = process.env.DEMO_VERSION ?? "2.2.3";
402688
+ const version = process.env.DEMO_VERSION ?? "2.2.5";
402786
402689
  const serverUrl = getDirectConnectServerUrl();
402787
402690
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
402788
402691
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -403882,7 +403785,7 @@ function Logo() {
403882
403785
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
403883
403786
  t2 = () => {
403884
403787
  const currentConfig = getGlobalConfig();
403885
- if (currentConfig.lastReleaseNotesSeen === "2.2.3") {
403788
+ if (currentConfig.lastReleaseNotesSeen === "2.2.5") {
403886
403789
  return;
403887
403790
  }
403888
403791
  saveGlobalConfig(_temp325);
@@ -404541,12 +404444,12 @@ function Logo() {
404541
404444
  return t41;
404542
404445
  }
404543
404446
  function _temp325(current) {
404544
- if (current.lastReleaseNotesSeen === "2.2.3") {
404447
+ if (current.lastReleaseNotesSeen === "2.2.5") {
404545
404448
  return current;
404546
404449
  }
404547
404450
  return {
404548
404451
  ...current,
404549
- lastReleaseNotesSeen: "2.2.3"
404452
+ lastReleaseNotesSeen: "2.2.5"
404550
404453
  };
404551
404454
  }
404552
404455
  function _temp240(s_0) {
@@ -410439,7 +410342,7 @@ var init_crossProjectResume = __esm(() => {
410439
410342
  var exports_resume = {};
410440
410343
  __export(exports_resume, {
410441
410344
  filterResumableSessions: () => filterResumableSessions,
410442
- call: () => call61
410345
+ call: () => call60
410443
410346
  });
410444
410347
  function resumeHelpMessage(result) {
410445
410348
  switch (result.resultType) {
@@ -410624,7 +410527,7 @@ function ResumeCommand({
410624
410527
  function filterResumableSessions(logs2, currentSessionId) {
410625
410528
  return logs2.filter((l) => !l.isSidechain && getSessionIdFromLog(l) !== currentSessionId);
410626
410529
  }
410627
- var React94, jsx_dev_runtime270, call61 = async (onDone, context7, args) => {
410530
+ var React94, jsx_dev_runtime270, call60 = async (onDone, context7, args) => {
410628
410531
  const onResume = async (sessionId, log2, entrypoint) => {
410629
410532
  try {
410630
410533
  await context7.resume?.(sessionId, log2, entrypoint);
@@ -411114,7 +411017,7 @@ var init_UltrareviewOverageDialog = __esm(() => {
411114
411017
  // src/commands/review/ultrareviewCommand.tsx
411115
411018
  var exports_ultrareviewCommand = {};
411116
411019
  __export(exports_ultrareviewCommand, {
411117
- call: () => call62
411020
+ call: () => call61
411118
411021
  });
411119
411022
  function contentBlocksToString(blocks) {
411120
411023
  return blocks.map((b3) => b3.type === "text" ? b3.text : "").filter(Boolean).join(`
@@ -411134,7 +411037,7 @@ async function launchAndDone(args, context7, onDone, billingNote, signal2) {
411134
411037
  });
411135
411038
  }
411136
411039
  }
411137
- var jsx_dev_runtime272, call62 = async (onDone, context7, args) => {
411040
+ var jsx_dev_runtime272, call61 = async (onDone, context7, args) => {
411138
411041
  const gate = await checkOverageGate();
411139
411042
  if (gate.kind === "not-enabled") {
411140
411043
  onDone("Free ultrareviews used. This feature requires a cloud subscription.", {
@@ -415460,7 +415363,7 @@ var init_server = __esm(() => {
415460
415363
  // src/commands/session/session.tsx
415461
415364
  var exports_session = {};
415462
415365
  __export(exports_session, {
415463
- call: () => call63
415366
+ call: () => call62
415464
415367
  });
415465
415368
  function SessionInfo(t0) {
415466
415369
  const $2 = c3(19);
@@ -415633,7 +415536,7 @@ function _temp246(e) {
415633
415536
  function _temp115(s) {
415634
415537
  return s.remoteSessionUrl;
415635
415538
  }
415636
- var import_react150, jsx_dev_runtime273, call63 = async (onDone) => {
415539
+ var import_react150, jsx_dev_runtime273, call62 = async (onDone) => {
415637
415540
  return /* @__PURE__ */ jsx_dev_runtime273.jsxDEV(SessionInfo, {
415638
415541
  onDone
415639
415542
  }, undefined, false, undefined, this);
@@ -415989,9 +415892,9 @@ var init_SkillsMenu = __esm(() => {
415989
415892
  // src/commands/skills/skills.tsx
415990
415893
  var exports_skills2 = {};
415991
415894
  __export(exports_skills2, {
415992
- call: () => call64
415895
+ call: () => call63
415993
415896
  });
415994
- async function call64(onDone, context7) {
415897
+ async function call63(onDone, context7) {
415995
415898
  return /* @__PURE__ */ jsx_dev_runtime275.jsxDEV(SkillsMenu, {
415996
415899
  onExit: onDone,
415997
415900
  commands: context7.options.commands
@@ -416018,9 +415921,9 @@ var init_skills3 = __esm(() => {
416018
415921
  // src/commands/status/status.tsx
416019
415922
  var exports_status = {};
416020
415923
  __export(exports_status, {
416021
- call: () => call65
415924
+ call: () => call64
416022
415925
  });
416023
- async function call65(onDone, context7) {
415926
+ async function call64(onDone, context7) {
416024
415927
  return /* @__PURE__ */ jsx_dev_runtime276.jsxDEV(Settings, {
416025
415928
  onClose: onDone,
416026
415929
  context: context7,
@@ -416631,7 +416534,7 @@ ${reasons}`,
416631
416534
  } : prev);
416632
416535
  }
416633
416536
  }
416634
- var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://github.com/chromebookwiz/localclawd", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call66 = async (onDone, context7, args) => {
416537
+ var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://github.com/chromebookwiz/localclawd", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call65 = async (onDone, context7, args) => {
416635
416538
  const blurb = args.trim();
416636
416539
  if (!blurb) {
416637
416540
  const msg = await launchUltraplan2({
@@ -416692,7 +416595,7 @@ var init_ultraplan = __esm(() => {
416692
416595
  argumentHint: "<prompt>",
416693
416596
  isEnabled: () => false,
416694
416597
  load: () => Promise.resolve({
416695
- call: call66
416598
+ call: call65
416696
416599
  })
416697
416600
  };
416698
416601
  });
@@ -421454,9 +421357,9 @@ var init_BackgroundTasksDialog = __esm(() => {
421454
421357
  // src/commands/tasks/tasks.tsx
421455
421358
  var exports_tasks = {};
421456
421359
  __export(exports_tasks, {
421457
- call: () => call67
421360
+ call: () => call66
421458
421361
  });
421459
- async function call67(onDone, context7) {
421362
+ async function call66(onDone, context7) {
421460
421363
  return /* @__PURE__ */ jsx_dev_runtime287.jsxDEV(BackgroundTasksDialog, {
421461
421364
  toolUseContext: context7,
421462
421365
  onDone
@@ -421747,9 +421650,9 @@ var init_terminalSetup2 = __esm(() => {
421747
421650
  // src/commands/usage/usage.tsx
421748
421651
  var exports_usage = {};
421749
421652
  __export(exports_usage, {
421750
- call: () => call68
421653
+ call: () => call67
421751
421654
  });
421752
- var jsx_dev_runtime288, call68 = async (onDone, context7) => {
421655
+ var jsx_dev_runtime288, call67 = async (onDone, context7) => {
421753
421656
  return /* @__PURE__ */ jsx_dev_runtime288.jsxDEV(Settings, {
421754
421657
  onClose: onDone,
421755
421658
  context: context7,
@@ -421780,7 +421683,7 @@ var init_usage3 = __esm(() => {
421780
421683
  // src/commands/theme/theme.tsx
421781
421684
  var exports_theme = {};
421782
421685
  __export(exports_theme, {
421783
- call: () => call69
421686
+ call: () => call68
421784
421687
  });
421785
421688
  function ThemePickerCommand(t0) {
421786
421689
  const $2 = c3(8);
@@ -421830,7 +421733,7 @@ function ThemePickerCommand(t0) {
421830
421733
  }
421831
421734
  return t3;
421832
421735
  }
421833
- var jsx_dev_runtime289, call69 = async (onDone, _context) => {
421736
+ var jsx_dev_runtime289, call68 = async (onDone, _context) => {
421834
421737
  return /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(ThemePickerCommand, {
421835
421738
  onDone
421836
421739
  }, undefined, false, undefined, this);
@@ -421857,9 +421760,9 @@ var init_theme3 = __esm(() => {
421857
421760
  // src/commands/vim/vim.ts
421858
421761
  var exports_vim = {};
421859
421762
  __export(exports_vim, {
421860
- call: () => call70
421763
+ call: () => call69
421861
421764
  });
421862
- var call70 = async () => {
421765
+ var call69 = async () => {
421863
421766
  const config2 = getGlobalConfig();
421864
421767
  let currentMode = config2.editorMode || "normal";
421865
421768
  if (currentMode === "emacs") {
@@ -421900,7 +421803,7 @@ var init_vim2 = __esm(() => {
421900
421803
  var exports_thinkback = {};
421901
421804
  __export(exports_thinkback, {
421902
421805
  playAnimation: () => playAnimation,
421903
- call: () => call71
421806
+ call: () => call70
421904
421807
  });
421905
421808
  import { execa as execa11 } from "execa";
421906
421809
  import { readFile as readFile61 } from "fs/promises";
@@ -422438,7 +422341,7 @@ function ThinkbackFlow(t0) {
422438
422341
  }
422439
422342
  return t8;
422440
422343
  }
422441
- async function call71(onDone) {
422344
+ async function call70(onDone) {
422442
422345
  return /* @__PURE__ */ jsx_dev_runtime290.jsxDEV(ThinkbackFlow, {
422443
422346
  onDone
422444
422347
  }, undefined, false, undefined, this);
@@ -422483,14 +422386,14 @@ var init_thinkback2 = __esm(() => {
422483
422386
  // src/commands/thinkback-play/thinkback-play.ts
422484
422387
  var exports_thinkback_play = {};
422485
422388
  __export(exports_thinkback_play, {
422486
- call: () => call72
422389
+ call: () => call71
422487
422390
  });
422488
422391
  import { join as join141 } from "path";
422489
422392
  function getPluginId2() {
422490
422393
  const marketplaceName = process.env.USER_TYPE === "ant" ? INTERNAL_MARKETPLACE_NAME : OFFICIAL_MARKETPLACE_NAME;
422491
422394
  return `thinkback@${marketplaceName}`;
422492
422395
  }
422493
- async function call72() {
422396
+ async function call71() {
422494
422397
  const v2Data = loadInstalledPluginsV2();
422495
422398
  const pluginId = getPluginId2();
422496
422399
  const installations = v2Data.plugins[pluginId];
@@ -424978,9 +424881,9 @@ var init_PermissionRuleList = __esm(() => {
424978
424881
  // src/commands/permissions/permissions.tsx
424979
424882
  var exports_permissions = {};
424980
424883
  __export(exports_permissions, {
424981
- call: () => call73
424884
+ call: () => call72
424982
424885
  });
424983
- var jsx_dev_runtime298, call73 = async (onDone, context7) => {
424886
+ var jsx_dev_runtime298, call72 = async (onDone, context7) => {
424984
424887
  return /* @__PURE__ */ jsx_dev_runtime298.jsxDEV(PermissionRuleList, {
424985
424888
  onExit: onDone,
424986
424889
  onRetryDenials: (commands) => {
@@ -425010,7 +424913,7 @@ var init_permissions4 = __esm(() => {
425010
424913
  // src/commands/plan/plan.tsx
425011
424914
  var exports_plan = {};
425012
424915
  __export(exports_plan, {
425013
- call: () => call74
424916
+ call: () => call73
425014
424917
  });
425015
424918
  function PlanDisplay(t0) {
425016
424919
  const $2 = c3(11);
@@ -425098,7 +425001,7 @@ function PlanDisplay(t0) {
425098
425001
  }
425099
425002
  return t5;
425100
425003
  }
425101
- async function call74(onDone, context7, args) {
425004
+ async function call73(onDone, context7, args) {
425102
425005
  const {
425103
425006
  getAppState,
425104
425007
  setAppState
@@ -425240,7 +425143,7 @@ var init_FastIcon = __esm(() => {
425240
425143
  // src/commands/fast/fast.tsx
425241
425144
  var exports_fast = {};
425242
425145
  __export(exports_fast, {
425243
- call: () => call75,
425146
+ call: () => call74,
425244
425147
  FastModePicker: () => FastModePicker
425245
425148
  });
425246
425149
  function applyFastMode(enable, setAppState) {
@@ -425555,7 +425458,7 @@ async function handleFastModeShortcut(enable, getAppState, setAppState) {
425555
425458
  return `Fast mode OFF`;
425556
425459
  }
425557
425460
  }
425558
- async function call75(onDone, context7, args) {
425461
+ async function call74(onDone, context7, args) {
425559
425462
  if (!isFastModeEnabled()) {
425560
425463
  return null;
425561
425464
  }
@@ -425863,9 +425766,9 @@ var init_Passes = __esm(() => {
425863
425766
  // src/commands/passes/passes.tsx
425864
425767
  var exports_passes = {};
425865
425768
  __export(exports_passes, {
425866
- call: () => call76
425769
+ call: () => call75
425867
425770
  });
425868
- async function call76(onDone) {
425771
+ async function call75(onDone) {
425869
425772
  const config2 = getGlobalConfig();
425870
425773
  const isFirstVisit = !config2.hasVisitedPasses;
425871
425774
  if (isFirstVisit) {
@@ -426627,9 +426530,9 @@ var init_Grove = __esm(() => {
426627
426530
  // src/commands/privacy-settings/privacy-settings.tsx
426628
426531
  var exports_privacy_settings = {};
426629
426532
  __export(exports_privacy_settings, {
426630
- call: () => call77
426533
+ call: () => call76
426631
426534
  });
426632
- async function call77(onDone) {
426535
+ async function call76(onDone) {
426633
426536
  const qualified = await isQualifiedForGrove();
426634
426537
  if (!qualified) {
426635
426538
  onDone(FALLBACK_MESSAGE);
@@ -428469,9 +428372,9 @@ var init_HooksConfigMenu = __esm(() => {
428469
428372
  // src/commands/hooks/hooks.tsx
428470
428373
  var exports_hooks = {};
428471
428374
  __export(exports_hooks, {
428472
- call: () => call78
428375
+ call: () => call77
428473
428376
  });
428474
- var jsx_dev_runtime311, call78 = async (onDone, context7) => {
428377
+ var jsx_dev_runtime311, call77 = async (onDone, context7) => {
428475
428378
  logEvent("tengu_hooks_command", {});
428476
428379
  const appState = context7.getAppState();
428477
428380
  const permissionContext = appState.toolPermissionContext;
@@ -428503,10 +428406,10 @@ var init_hooks3 = __esm(() => {
428503
428406
  // src/commands/files/files.ts
428504
428407
  var exports_files2 = {};
428505
428408
  __export(exports_files2, {
428506
- call: () => call79
428409
+ call: () => call78
428507
428410
  });
428508
428411
  import { relative as relative27 } from "path";
428509
- async function call79(_args, context7) {
428412
+ async function call78(_args, context7) {
428510
428413
  const files = context7.readFileState ? cacheKeys(context7.readFileState) : [];
428511
428414
  if (files.length === 0) {
428512
428415
  return { type: "text", value: "No files in context" };
@@ -428539,7 +428442,7 @@ var init_files4 = __esm(() => {
428539
428442
  var exports_branch = {};
428540
428443
  __export(exports_branch, {
428541
428444
  deriveFirstPrompt: () => deriveFirstPrompt,
428542
- call: () => call80
428445
+ call: () => call79
428543
428446
  });
428544
428447
  import { randomUUID as randomUUID28 } from "crypto";
428545
428448
  import { mkdir as mkdir52, readFile as readFile62, writeFile as writeFile56 } from "fs/promises";
@@ -428645,7 +428548,7 @@ async function getUniqueForkName(baseName) {
428645
428548
  }
428646
428549
  return `${baseName} (Branch ${nextNumber})`;
428647
428550
  }
428648
- async function call80(onDone, context7, args) {
428551
+ async function call79(onDone, context7, args) {
428649
428552
  const customTitle = args?.trim() || undefined;
428650
428553
  const originalSessionId = getSessionId();
428651
428554
  try {
@@ -434640,9 +434543,9 @@ var init_AgentsMenu = __esm(() => {
434640
434543
  // src/commands/agents/agents.tsx
434641
434544
  var exports_agents = {};
434642
434545
  __export(exports_agents, {
434643
- call: () => call81
434546
+ call: () => call80
434644
434547
  });
434645
- async function call81(onDone, context7) {
434548
+ async function call80(onDone, context7) {
434646
434549
  const appState = context7.getAppState();
434647
434550
  const permissionContext = appState.toolPermissionContext;
434648
434551
  const tools = getTools(permissionContext);
@@ -434673,9 +434576,9 @@ var init_agents2 = __esm(() => {
434673
434576
  // src/commands/plugin/plugin.tsx
434674
434577
  var exports_plugin = {};
434675
434578
  __export(exports_plugin, {
434676
- call: () => call82
434579
+ call: () => call81
434677
434580
  });
434678
- async function call82(onDone, _context, args) {
434581
+ async function call81(onDone, _context, args) {
434679
434582
  return /* @__PURE__ */ jsx_dev_runtime337.jsxDEV(PluginSettings, {
434680
434583
  onComplete: onDone,
434681
434584
  args
@@ -434840,12 +434743,12 @@ var init_refresh = __esm(() => {
434840
434743
  // src/commands/reload-plugins/reload-plugins.ts
434841
434744
  var exports_reload_plugins = {};
434842
434745
  __export(exports_reload_plugins, {
434843
- call: () => call83
434746
+ call: () => call82
434844
434747
  });
434845
434748
  function n(count3, noun) {
434846
434749
  return `${count3} ${plural(count3, noun)}`;
434847
434750
  }
434848
- var call83 = async (_args, context7) => {
434751
+ var call82 = async (_args, context7) => {
434849
434752
  if (false) {}
434850
434753
  const r = await refreshActivePlugins(context7.setAppState);
434851
434754
  const parts = [
@@ -434888,9 +434791,9 @@ var init_reload_plugins2 = __esm(() => {
434888
434791
  // src/commands/rewind/rewind.ts
434889
434792
  var exports_rewind = {};
434890
434793
  __export(exports_rewind, {
434891
- call: () => call84
434794
+ call: () => call83
434892
434795
  });
434893
- async function call84(_args, context7) {
434796
+ async function call83(_args, context7) {
434894
434797
  if (context7.openMessageSelector) {
434895
434798
  context7.openMessageSelector();
434896
434799
  }
@@ -435005,7 +434908,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
435005
434908
  smapsRollup,
435006
434909
  platform: process.platform,
435007
434910
  nodeVersion: process.version,
435008
- ccVersion: "2.2.3"
434911
+ ccVersion: "2.2.5"
435009
434912
  };
435010
434913
  }
435011
434914
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -435075,9 +434978,9 @@ var init_heapDumpService = __esm(() => {
435075
434978
  // src/commands/heapdump/heapdump.ts
435076
434979
  var exports_heapdump = {};
435077
434980
  __export(exports_heapdump, {
435078
- call: () => call85
434981
+ call: () => call84
435079
434982
  });
435080
- async function call85() {
434983
+ async function call84() {
435081
434984
  const result = await performHeapDump();
435082
434985
  if (!result.success) {
435083
434986
  return {
@@ -435448,7 +435351,7 @@ var USAGE = `/bridge-kick <subcommand>
435448
435351
  reconnect-session fail next POST /bridge/reconnect fails
435449
435352
  heartbeat <status> next heartbeat throws BridgeFatalError(status)
435450
435353
  reconnect call reconnectEnvironmentWithSession directly
435451
- status print bridge state`, call86 = async (args) => {
435354
+ status print bridge state`, call85 = async (args) => {
435452
435355
  const h = getBridgeDebugHandle();
435453
435356
  if (!h) {
435454
435357
  return {
@@ -435581,16 +435484,16 @@ var init_bridge_kick = __esm(() => {
435581
435484
  description: "Inject bridge failure states for manual recovery testing",
435582
435485
  isEnabled: () => process.env.USER_TYPE === "ant",
435583
435486
  supportsNonInteractive: false,
435584
- load: () => Promise.resolve({ call: call86 })
435487
+ load: () => Promise.resolve({ call: call85 })
435585
435488
  };
435586
435489
  bridge_kick_default = bridgeKick;
435587
435490
  });
435588
435491
 
435589
435492
  // src/commands/version.ts
435590
- var call87 = async () => {
435493
+ var call86 = async () => {
435591
435494
  return {
435592
435495
  type: "text",
435593
- value: `${"2.2.3"} (built ${"2026-05-10T15:39:35.289Z"})`
435496
+ value: `${"2.2.5"} (built ${"2026-05-10T16:04:33.662Z"})`
435594
435497
  };
435595
435498
  }, version, version_default;
435596
435499
  var init_version = __esm(() => {
@@ -435600,7 +435503,7 @@ var init_version = __esm(() => {
435600
435503
  description: "Print the version this session is running (not what autoupdate downloaded)",
435601
435504
  isEnabled: () => process.env.USER_TYPE === "ant",
435602
435505
  supportsNonInteractive: true,
435603
- load: () => Promise.resolve({ call: call87 })
435506
+ load: () => Promise.resolve({ call: call86 })
435604
435507
  };
435605
435508
  version_default = version;
435606
435509
  });
@@ -436756,10 +436659,10 @@ var init_SandboxSettings = __esm(() => {
436756
436659
  // src/commands/sandbox-toggle/sandbox-toggle.tsx
436757
436660
  var exports_sandbox_toggle = {};
436758
436661
  __export(exports_sandbox_toggle, {
436759
- call: () => call88
436662
+ call: () => call87
436760
436663
  });
436761
436664
  import { relative as relative28 } from "path";
436762
- async function call88(onDone, _context, args) {
436665
+ async function call87(onDone, _context, args) {
436763
436666
  const settings = getSettings_DEPRECATED();
436764
436667
  const themeName = settings.theme || "light";
436765
436668
  const platform3 = getPlatform();
@@ -436864,7 +436767,7 @@ var init_sandbox_toggle2 = __esm(() => {
436864
436767
  });
436865
436768
 
436866
436769
  // src/commands/advisor.ts
436867
- var call89 = async (args, context7) => {
436770
+ var call88 = async (args, context7) => {
436868
436771
  const arg = args.trim().toLowerCase();
436869
436772
  const baseModel = parseUserSpecifiedModel(context7.getAppState().mainLoopModel ?? getDefaultMainLoopModelSetting());
436870
436773
  if (!arg) {
@@ -436950,7 +436853,7 @@ var init_advisor2 = __esm(() => {
436950
436853
  return !canUserConfigureAdvisor();
436951
436854
  },
436952
436855
  supportsNonInteractive: true,
436953
- load: () => Promise.resolve({ call: call89 })
436856
+ load: () => Promise.resolve({ call: call88 })
436954
436857
  };
436955
436858
  advisor_default = advisor;
436956
436859
  });
@@ -437362,12 +437265,12 @@ var init_ExitFlow = __esm(() => {
437362
437265
  // src/commands/exit/exit.tsx
437363
437266
  var exports_exit = {};
437364
437267
  __export(exports_exit, {
437365
- call: () => call90
437268
+ call: () => call89
437366
437269
  });
437367
437270
  function getRandomGoodbyeMessage2() {
437368
437271
  return sample_default(GOODBYE_MESSAGES2) ?? "Goodbye!";
437369
437272
  }
437370
- async function call90(onDone) {
437273
+ async function call89(onDone) {
437371
437274
  if (false) {}
437372
437275
  const showWorktree = getCurrentWorktreeSession() !== null;
437373
437276
  if (showWorktree) {
@@ -437661,7 +437564,7 @@ var exports_export = {};
437661
437564
  __export(exports_export, {
437662
437565
  sanitizeFilename: () => sanitizeFilename,
437663
437566
  extractFirstPrompt: () => extractFirstPrompt,
437664
- call: () => call91
437567
+ call: () => call90
437665
437568
  });
437666
437569
  import { join as join146 } from "path";
437667
437570
  function formatTimestamp(date2) {
@@ -437702,7 +437605,7 @@ async function exportWithReactRenderer(context7) {
437702
437605
  const tools = context7.options.tools || [];
437703
437606
  return renderMessagesToPlainText(context7.messages, tools);
437704
437607
  }
437705
- async function call91(onDone, context7, args) {
437608
+ async function call90(onDone, context7, args) {
437706
437609
  const content = await exportWithReactRenderer(context7);
437707
437610
  const filename = args.trim();
437708
437611
  if (filename) {
@@ -437762,7 +437665,7 @@ var init_export2 = __esm(() => {
437762
437665
  // src/commands/model/model.tsx
437763
437666
  var exports_model2 = {};
437764
437667
  __export(exports_model2, {
437765
- call: () => call92
437668
+ call: () => call91
437766
437669
  });
437767
437670
  function ModelPickerWrapper(t0) {
437768
437671
  const $2 = c3(17);
@@ -438010,7 +437913,7 @@ function renderModelLabel(model) {
438010
437913
  const rendered = renderDefaultModelSetting(model ?? getDefaultMainLoopModelSetting());
438011
437914
  return model === null ? `${rendered} (default)` : rendered;
438012
437915
  }
438013
- var React113, jsx_dev_runtime349, call92 = async (onDone, _context, args) => {
437916
+ var React113, jsx_dev_runtime349, call91 = async (onDone, _context, args) => {
438014
437917
  args = args?.trim() || "";
438015
437918
  if (COMMON_INFO_ARGS.includes(args)) {
438016
437919
  logEvent("tengu_model_command_inline_help", {
@@ -438077,7 +437980,7 @@ var init_model3 = __esm(() => {
438077
437980
  // src/commands/tag/tag.tsx
438078
437981
  var exports_tag = {};
438079
437982
  __export(exports_tag, {
438080
- call: () => call93
437983
+ call: () => call92
438081
437984
  });
438082
437985
  function ConfirmRemoveTag(t0) {
438083
437986
  const $2 = c3(11);
@@ -438301,7 +438204,7 @@ Examples:
438301
438204
  React114.useEffect(t1, t2);
438302
438205
  return null;
438303
438206
  }
438304
- async function call93(onDone, _context, args) {
438207
+ async function call92(onDone, _context, args) {
438305
438208
  args = args?.trim() || "";
438306
438209
  if (COMMON_INFO_ARGS.includes(args) || COMMON_HELP_ARGS.includes(args)) {
438307
438210
  return /* @__PURE__ */ jsx_dev_runtime350.jsxDEV(ShowHelp, {
@@ -438348,9 +438251,9 @@ var init_tag2 = __esm(() => {
438348
438251
  // src/commands/output-style/output-style.tsx
438349
438252
  var exports_output_style = {};
438350
438253
  __export(exports_output_style, {
438351
- call: () => call94
438254
+ call: () => call93
438352
438255
  });
438353
- async function call94(onDone) {
438256
+ async function call93(onDone) {
438354
438257
  onDone("/output-style has been deprecated. Use /config to change your output style, or set it in your settings file. Changes take effect on the next session.", {
438355
438258
  display: "system"
438356
438259
  });
@@ -438372,7 +438275,7 @@ var init_output_style = __esm(() => {
438372
438275
  // src/commands/provider/provider.tsx
438373
438276
  var exports_provider = {};
438374
438277
  __export(exports_provider, {
438375
- call: () => call95
438278
+ call: () => call94
438376
438279
  });
438377
438280
  function formatProviderSavedMessage(config2) {
438378
438281
  const providerLabel = getLocalLLMProviderLabel(config2.provider);
@@ -438386,7 +438289,7 @@ function formatProviderSavedMessage(config2) {
438386
438289
  ].join(`
438387
438290
  `);
438388
438291
  }
438389
- var jsx_dev_runtime351, call95 = async (onDone) => {
438292
+ var jsx_dev_runtime351, call94 = async (onDone) => {
438390
438293
  const config2 = getGlobalConfig();
438391
438294
  function handleComplete(nextConfig) {
438392
438295
  saveGlobalConfig((current) => ({
@@ -438942,9 +438845,9 @@ var init_RemoteEnvironmentDialog = __esm(() => {
438942
438845
  // src/commands/remote-env/remote-env.tsx
438943
438846
  var exports_remote_env = {};
438944
438847
  __export(exports_remote_env, {
438945
- call: () => call96
438848
+ call: () => call95
438946
438849
  });
438947
- async function call96(onDone) {
438850
+ async function call95(onDone) {
438948
438851
  return /* @__PURE__ */ jsx_dev_runtime353.jsxDEV(RemoteEnvironmentDialog, {
438949
438852
  onDone
438950
438853
  }, undefined, false, undefined, this);
@@ -439024,7 +438927,7 @@ var exports_effort = {};
439024
438927
  __export(exports_effort, {
439025
438928
  showCurrentEffort: () => showCurrentEffort,
439026
438929
  executeEffort: () => executeEffort,
439027
- call: () => call97
438930
+ call: () => call96
439028
438931
  });
439029
438932
  function setEffortValue(effortValue) {
439030
438933
  const persistable = toPersistableEffort(effortValue);
@@ -439175,7 +439078,7 @@ function ApplyEffortAndClose(t0) {
439175
439078
  React115.useEffect(t1, t2);
439176
439079
  return null;
439177
439080
  }
439178
- async function call97(onDone, _context, args) {
439081
+ async function call96(onDone, _context, args) {
439179
439082
  args = args?.trim() || "";
439180
439083
  if (COMMON_HELP_ARGS2.includes(args)) {
439181
439084
  onDone(`Usage: /effort [low|medium|high|max|auto]
@@ -442007,9 +441910,9 @@ var init_Stats = __esm(() => {
442007
441910
  // src/commands/stats/stats.tsx
442008
441911
  var exports_stats = {};
442009
441912
  __export(exports_stats, {
442010
- call: () => call98
441913
+ call: () => call97
442011
441914
  });
442012
- var jsx_dev_runtime356, call98 = async (onDone) => {
441915
+ var jsx_dev_runtime356, call97 = async (onDone) => {
442013
441916
  return /* @__PURE__ */ jsx_dev_runtime356.jsxDEV(Stats2, {
442014
441917
  onClose: onDone
442015
441918
  }, undefined, false, undefined, this);
@@ -443534,7 +443437,7 @@ function generateHtmlReport(data, insights) {
443534
443437
  </html>`;
443535
443438
  }
443536
443439
  function buildExportData(data, insights, facets, remoteStats) {
443537
- const version2 = typeof MACRO !== "undefined" ? "2.2.3" : "unknown";
443440
+ const version2 = typeof MACRO !== "undefined" ? "2.2.5" : "unknown";
443538
443441
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
443539
443442
  const facets_summary = {
443540
443443
  total: facets.size,
@@ -444508,7 +444411,6 @@ var init_commands2 = __esm(() => {
444508
444411
  init_heartbeat2();
444509
444412
  init_sysprompt2();
444510
444413
  init_ctx2();
444511
- init_contextsize_index();
444512
444414
  init_research2();
444513
444415
  init_thinkharder2();
444514
444416
  init_thinknormal_index();
@@ -444644,7 +444546,6 @@ var init_commands2 = __esm(() => {
444644
444546
  copy_default,
444645
444547
  context6,
444646
444548
  contextNonInteractive,
444647
- contextsize_index_default,
444648
444549
  cost_default,
444649
444550
  diff_default,
444650
444551
  doctor_default,
@@ -447735,7 +447636,7 @@ var init_sessionStorage = __esm(() => {
447735
447636
  init_settings2();
447736
447637
  init_slowOperations();
447737
447638
  init_uuid();
447738
- VERSION6 = typeof MACRO !== "undefined" ? "2.2.3" : "unknown";
447639
+ VERSION6 = typeof MACRO !== "undefined" ? "2.2.5" : "unknown";
447739
447640
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
447740
447641
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
447741
447642
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -448866,7 +448767,7 @@ var init_filesystem = __esm(() => {
448866
448767
  });
448867
448768
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
448868
448769
  const nonce = randomBytes20(16).toString("hex");
448869
- return join153(getClaudeTempDir(), "bundled-skills", "2.2.3", nonce);
448770
+ return join153(getClaudeTempDir(), "bundled-skills", "2.2.5", nonce);
448870
448771
  });
448871
448772
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
448872
448773
  });
@@ -458103,7 +458004,7 @@ function buildSystemInitMessage(inputs) {
458103
458004
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
458104
458005
  apiKeySource: getAnthropicApiKeyWithSource().source,
458105
458006
  betas: getSdkBetas(),
458106
- claude_code_version: "2.2.3",
458007
+ claude_code_version: "2.2.5",
458107
458008
  output_style: outputStyle2,
458108
458009
  agents: inputs.agents.map((agent) => agent.agentType),
458109
458010
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -472260,7 +472161,7 @@ var init_useVoiceEnabled = __esm(() => {
472260
472161
  function getSemverPart(version2) {
472261
472162
  return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
472262
472163
  }
472263
- function useUpdateNotification(updatedVersion, initialVersion = "2.2.3") {
472164
+ function useUpdateNotification(updatedVersion, initialVersion = "2.2.5") {
472264
472165
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
472265
472166
  if (!updatedVersion) {
472266
472167
  return null;
@@ -472300,7 +472201,7 @@ function AutoUpdater({
472300
472201
  return;
472301
472202
  }
472302
472203
  if (false) {}
472303
- const currentVersion = "2.2.3";
472204
+ const currentVersion = "2.2.5";
472304
472205
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
472305
472206
  let latestVersion = await getLatestVersion(channel);
472306
472207
  const isDisabled = isAutoUpdaterDisabled();
@@ -472511,12 +472412,12 @@ function NativeAutoUpdater({
472511
472412
  logEvent("tengu_native_auto_updater_start", {});
472512
472413
  try {
472513
472414
  const maxVersion = await getMaxVersion();
472514
- if (maxVersion && gt("2.2.3", maxVersion)) {
472415
+ if (maxVersion && gt("2.2.5", maxVersion)) {
472515
472416
  const msg = await getMaxVersionMessage();
472516
472417
  setMaxVersionIssue(msg ?? "affects your version");
472517
472418
  }
472518
472419
  const result = await installLatest(channel);
472519
- const currentVersion = "2.2.3";
472420
+ const currentVersion = "2.2.5";
472520
472421
  const latencyMs = Date.now() - startTime;
472521
472422
  if (result.lockFailed) {
472522
472423
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -472651,17 +472552,17 @@ function PackageManagerAutoUpdater(t0) {
472651
472552
  const maxVersion = await getMaxVersion();
472652
472553
  if (maxVersion && latest && gt(latest, maxVersion)) {
472653
472554
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
472654
- if (gte("2.2.3", maxVersion)) {
472655
- logForDebugging(`PackageManagerAutoUpdater: current version ${"2.2.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
472555
+ if (gte("2.2.5", maxVersion)) {
472556
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"2.2.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
472656
472557
  setUpdateAvailable(false);
472657
472558
  return;
472658
472559
  }
472659
472560
  latest = maxVersion;
472660
472561
  }
472661
- const hasUpdate = latest && !gte("2.2.3", latest) && !shouldSkipVersion(latest);
472562
+ const hasUpdate = latest && !gte("2.2.5", latest) && !shouldSkipVersion(latest);
472662
472563
  setUpdateAvailable(!!hasUpdate);
472663
472564
  if (hasUpdate) {
472664
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"2.2.3"} -> ${latest}`);
472565
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"2.2.5"} -> ${latest}`);
472665
472566
  }
472666
472567
  };
472667
472568
  $2[0] = t1;
@@ -472695,7 +472596,7 @@ function PackageManagerAutoUpdater(t0) {
472695
472596
  wrap: "truncate",
472696
472597
  children: [
472697
472598
  "currentVersion: ",
472698
- "2.2.3"
472599
+ "2.2.5"
472699
472600
  ]
472700
472601
  }, undefined, true, undefined, this);
472701
472602
  $2[3] = verbose;
@@ -480255,7 +480156,7 @@ function buildStatusLineCommandInput(permissionMode, exceedsHalfContext, setting
480255
480156
  project_dir: getOriginalCwd(),
480256
480157
  added_dirs: addedDirs
480257
480158
  },
480258
- version: "2.2.3",
480159
+ version: "2.2.5",
480259
480160
  output_style: {
480260
480161
  name: outputStyleName
480261
480162
  },
@@ -491827,7 +491728,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
491827
491728
  } catch {}
491828
491729
  const data = {
491829
491730
  trigger,
491830
- version: "2.2.3",
491731
+ version: "2.2.5",
491831
491732
  platform: process.platform,
491832
491733
  transcript,
491833
491734
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -508800,7 +508701,7 @@ function appendToLog(path17, message) {
508800
508701
  cwd: getFsImplementation().cwd(),
508801
508702
  userType: process.env.USER_TYPE,
508802
508703
  sessionId: getSessionId(),
508803
- version: "2.2.3"
508704
+ version: "2.2.5"
508804
508705
  };
508805
508706
  getLogWriter(path17).write(messageWithTimestamp);
508806
508707
  }
@@ -512599,8 +512500,8 @@ async function getEnvLessBridgeConfig() {
512599
512500
  }
512600
512501
  async function checkEnvLessBridgeMinVersion() {
512601
512502
  const cfg = await getEnvLessBridgeConfig();
512602
- if (cfg.min_version && lt("2.2.3", cfg.min_version)) {
512603
- return `Your version of localclawd (${"2.2.3"}) is too old for Remote Control.
512503
+ if (cfg.min_version && lt("2.2.5", cfg.min_version)) {
512504
+ return `Your version of localclawd (${"2.2.5"}) is too old for Remote Control.
512604
512505
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
512605
512506
  }
512606
512507
  return null;
@@ -513072,7 +512973,7 @@ async function initBridgeCore(params) {
513072
512973
  const rawApi = createBridgeApiClient({
513073
512974
  baseUrl,
513074
512975
  getAccessToken,
513075
- runnerVersion: "2.2.3",
512976
+ runnerVersion: "2.2.5",
513076
512977
  onDebug: logForDebugging,
513077
512978
  onAuth401,
513078
512979
  getTrustedDeviceToken
@@ -518791,7 +518692,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
518791
518692
  setCwd(cwd3);
518792
518693
  const server = new Server({
518793
518694
  name: "claude/tengu",
518794
- version: "2.2.3"
518695
+ version: "2.2.5"
518795
518696
  }, {
518796
518697
  capabilities: {
518797
518698
  tools: {}
@@ -519872,7 +519773,7 @@ function WelcomeLogo() {
519872
519773
  dimColor: true,
519873
519774
  children: [
519874
519775
  "v",
519875
- "2.2.3"
519776
+ "2.2.5"
519876
519777
  ]
519877
519778
  }, undefined, true, undefined, this)
519878
519779
  ]
@@ -520063,7 +519964,7 @@ __export(exports_update, {
520063
519964
  });
520064
519965
  async function update() {
520065
519966
  logEvent("tengu_update_check", {});
520066
- writeToStdout(`Current version: ${"2.2.3"}
519967
+ writeToStdout(`Current version: ${"2.2.5"}
520067
519968
  `);
520068
519969
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
520069
519970
  writeToStdout(`Checking for updates to ${channel} version...
@@ -520138,8 +520039,8 @@ async function update() {
520138
520039
  writeToStdout(`localclawd is managed by Homebrew.
520139
520040
  `);
520140
520041
  const latest = await getLatestVersion(channel);
520141
- if (latest && !gte("2.2.3", latest)) {
520142
- writeToStdout(`Update available: ${"2.2.3"} → ${latest}
520042
+ if (latest && !gte("2.2.5", latest)) {
520043
+ writeToStdout(`Update available: ${"2.2.5"} → ${latest}
520143
520044
  `);
520144
520045
  writeToStdout(`
520145
520046
  `);
@@ -520155,8 +520056,8 @@ async function update() {
520155
520056
  writeToStdout(`localclawd is managed by winget.
520156
520057
  `);
520157
520058
  const latest = await getLatestVersion(channel);
520158
- if (latest && !gte("2.2.3", latest)) {
520159
- writeToStdout(`Update available: ${"2.2.3"} → ${latest}
520059
+ if (latest && !gte("2.2.5", latest)) {
520060
+ writeToStdout(`Update available: ${"2.2.5"} → ${latest}
520160
520061
  `);
520161
520062
  writeToStdout(`
520162
520063
  `);
@@ -520170,8 +520071,8 @@ async function update() {
520170
520071
  writeToStdout(`localclawd is managed by apk.
520171
520072
  `);
520172
520073
  const latest = await getLatestVersion(channel);
520173
- if (latest && !gte("2.2.3", latest)) {
520174
- writeToStdout(`Update available: ${"2.2.3"} → ${latest}
520074
+ if (latest && !gte("2.2.5", latest)) {
520075
+ writeToStdout(`Update available: ${"2.2.5"} → ${latest}
520175
520076
  `);
520176
520077
  writeToStdout(`
520177
520078
  `);
@@ -520236,11 +520137,11 @@ async function update() {
520236
520137
  `);
520237
520138
  await gracefulShutdown(1);
520238
520139
  }
520239
- if (result.latestVersion === "2.2.3") {
520240
- writeToStdout(source_default.green(`localclawd is up to date (${"2.2.3"})`) + `
520140
+ if (result.latestVersion === "2.2.5") {
520141
+ writeToStdout(source_default.green(`localclawd is up to date (${"2.2.5"})`) + `
520241
520142
  `);
520242
520143
  } else {
520243
- writeToStdout(source_default.green(`Successfully updated from ${"2.2.3"} to version ${result.latestVersion}`) + `
520144
+ writeToStdout(source_default.green(`Successfully updated from ${"2.2.5"} to version ${result.latestVersion}`) + `
520244
520145
  `);
520245
520146
  await regenerateCompletionCache();
520246
520147
  }
@@ -520300,12 +520201,12 @@ async function update() {
520300
520201
  `);
520301
520202
  await gracefulShutdown(1);
520302
520203
  }
520303
- if (latestVersion === "2.2.3") {
520304
- writeToStdout(source_default.green(`localclawd is up to date (${"2.2.3"})`) + `
520204
+ if (latestVersion === "2.2.5") {
520205
+ writeToStdout(source_default.green(`localclawd is up to date (${"2.2.5"})`) + `
520305
520206
  `);
520306
520207
  await gracefulShutdown(0);
520307
520208
  }
520308
- writeToStdout(`New version available: ${latestVersion} (current: ${"2.2.3"})
520209
+ writeToStdout(`New version available: ${latestVersion} (current: ${"2.2.5"})
520309
520210
  `);
520310
520211
  writeToStdout(`Installing update...
520311
520212
  `);
@@ -520350,7 +520251,7 @@ async function update() {
520350
520251
  logForDebugging(`update: Installation status: ${status2}`);
520351
520252
  switch (status2) {
520352
520253
  case "success":
520353
- writeToStdout(source_default.green(`Successfully updated from ${"2.2.3"} to version ${latestVersion}`) + `
520254
+ writeToStdout(source_default.green(`Successfully updated from ${"2.2.5"} to version ${latestVersion}`) + `
520354
520255
  `);
520355
520256
  await regenerateCompletionCache();
520356
520257
  break;
@@ -521592,7 +521493,7 @@ Run with --debug for more details.
521592
521493
  }
521593
521494
  }
521594
521495
  logForDiagnosticsNoPII("info", "started", {
521595
- version: "2.2.3",
521496
+ version: "2.2.5",
521596
521497
  is_native_binary: isInBundledMode()
521597
521498
  });
521598
521499
  registerCleanup(async () => {
@@ -522376,7 +522277,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
522376
522277
  pendingHookMessages
522377
522278
  }, renderAndRun);
522378
522279
  }
522379
- }).version("2.2.3 (localclawd)", "-v, --version", "Output the version number");
522280
+ }).version("2.2.5 (localclawd)", "-v, --version", "Output the version number");
522380
522281
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
522381
522282
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
522382
522283
  if (canUserConfigureAdvisor()) {
@@ -522890,7 +522791,7 @@ if (false) {}
522890
522791
  async function main2() {
522891
522792
  const args = process.argv.slice(2);
522892
522793
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
522893
- console.log(`${"2.2.3"} (localclawd)`);
522794
+ console.log(`${"2.2.5"} (localclawd)`);
522894
522795
  return;
522895
522796
  }
522896
522797
  const {
@@ -522981,4 +522882,4 @@ localclawd crashed: ${msg}
522981
522882
  process.exit(1);
522982
522883
  });
522983
522884
 
522984
- //# debugId=5847296E05691FE964756E2164756E21
522885
+ //# debugId=85DBA4B13764956564756E2164756E21