localclawd 1.1.9 → 1.1.11

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 +319 -422
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -89253,7 +89253,7 @@ var init_isEqual = __esm(() => {
89253
89253
 
89254
89254
  // src/utils/userAgent.ts
89255
89255
  function getClaudeCodeUserAgent() {
89256
- return `claude-code/${"1.1.9"}`;
89256
+ return `claude-code/${"1.1.11"}`;
89257
89257
  }
89258
89258
 
89259
89259
  // src/utils/workloadContext.ts
@@ -89275,7 +89275,7 @@ function getUserAgent() {
89275
89275
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
89276
89276
  const workload = getWorkload();
89277
89277
  const workloadSuffix = workload ? `, workload/${workload}` : "";
89278
- return `claude-cli/${"1.1.9"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
89278
+ return `claude-cli/${"1.1.11"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
89279
89279
  }
89280
89280
  function getMCPUserAgent() {
89281
89281
  const parts = [];
@@ -89289,7 +89289,7 @@ function getMCPUserAgent() {
89289
89289
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
89290
89290
  }
89291
89291
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
89292
- return `claude-code/${"1.1.9"}${suffix}`;
89292
+ return `claude-code/${"1.1.11"}${suffix}`;
89293
89293
  }
89294
89294
  function getWebFetchUserAgent() {
89295
89295
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -99198,7 +99198,7 @@ function getAttributionHeader(fingerprint) {
99198
99198
  if (!isAttributionHeaderEnabled()) {
99199
99199
  return "";
99200
99200
  }
99201
- const version = `${"1.1.9"}.${fingerprint}`;
99201
+ const version = `${"1.1.11"}.${fingerprint}`;
99202
99202
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
99203
99203
  const cch = "";
99204
99204
  const workload = getWorkload();
@@ -104752,7 +104752,7 @@ function parseKey(keypress) {
104752
104752
  wheelDown: keypress.name === "wheeldown",
104753
104753
  home: keypress.name === "home",
104754
104754
  end: keypress.name === "end",
104755
- return: keypress.name === "return",
104755
+ return: keypress.name === "return" || keypress.name === "enter",
104756
104756
  escape: keypress.name === "escape",
104757
104757
  fn: keypress.fn,
104758
104758
  ctrl: keypress.ctrl,
@@ -132745,7 +132745,7 @@ var init_metadata = __esm(() => {
132745
132745
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
132746
132746
  WHITESPACE_REGEX = /\s+/;
132747
132747
  getVersionBase = memoize_default(() => {
132748
- const match = "1.1.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
132748
+ const match = "1.1.11".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
132749
132749
  return match ? match[0] : undefined;
132750
132750
  });
132751
132751
  buildEnvContext = memoize_default(async () => {
@@ -132785,9 +132785,9 @@ var init_metadata = __esm(() => {
132785
132785
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
132786
132786
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
132787
132787
  isClaudeAiAuth: isClaudeAISubscriber(),
132788
- version: "1.1.9",
132788
+ version: "1.1.11",
132789
132789
  versionBase: getVersionBase(),
132790
- buildTime: "2026-04-07T13:39:54.752Z",
132790
+ buildTime: "2026-04-07T15:28:04.082Z",
132791
132791
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
132792
132792
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
132793
132793
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -197374,7 +197374,7 @@ function getTelemetryAttributes() {
197374
197374
  attributes["session.id"] = sessionId;
197375
197375
  }
197376
197376
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
197377
- attributes["app.version"] = "1.1.9";
197377
+ attributes["app.version"] = "1.1.11";
197378
197378
  }
197379
197379
  const oauthAccount = getOauthAccountInfo();
197380
197380
  if (oauthAccount) {
@@ -229435,7 +229435,7 @@ function getInstallationEnv() {
229435
229435
  return;
229436
229436
  }
229437
229437
  function getClaudeCodeVersion() {
229438
- return "1.1.9";
229438
+ return "1.1.11";
229439
229439
  }
229440
229440
  async function getInstalledVSCodeExtensionVersion(command) {
229441
229441
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -235037,7 +235037,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
235037
235037
  const client4 = new Client({
235038
235038
  name: "claude-code",
235039
235039
  title: "Claude Code",
235040
- version: "1.1.9",
235040
+ version: "1.1.11",
235041
235041
  description: "Anthropic's agentic coding tool",
235042
235042
  websiteUrl: PRODUCT_URL
235043
235043
  }, {
@@ -235390,7 +235390,7 @@ var init_client9 = __esm(() => {
235390
235390
  const client4 = new Client({
235391
235391
  name: "claude-code",
235392
235392
  title: "Claude Code",
235393
- version: "1.1.9",
235393
+ version: "1.1.11",
235394
235394
  description: "Anthropic's agentic coding tool",
235395
235395
  websiteUrl: PRODUCT_URL
235396
235396
  }, {
@@ -258581,7 +258581,7 @@ var init_user = __esm(() => {
258581
258581
  deviceId,
258582
258582
  sessionId: getSessionId(),
258583
258583
  email: getEmail(),
258584
- appVersion: "1.1.9",
258584
+ appVersion: "1.1.11",
258585
258585
  platform: getHostPlatformForAnalytics(),
258586
258586
  organizationUuid,
258587
258587
  accountUuid,
@@ -259905,7 +259905,7 @@ async function initializeBetaTracing(resource) {
259905
259905
  });
259906
259906
  logs.setGlobalLoggerProvider(loggerProvider);
259907
259907
  setLoggerProvider(loggerProvider);
259908
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.9");
259908
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.11");
259909
259909
  setEventLogger(eventLogger);
259910
259910
  process.on("beforeExit", async () => {
259911
259911
  await loggerProvider?.forceFlush();
@@ -259945,7 +259945,7 @@ async function initializeTelemetry() {
259945
259945
  const platform3 = getPlatform();
259946
259946
  const baseAttributes = {
259947
259947
  [ATTR_SERVICE_NAME5]: "claude-code",
259948
- [ATTR_SERVICE_VERSION5]: "1.1.9"
259948
+ [ATTR_SERVICE_VERSION5]: "1.1.11"
259949
259949
  };
259950
259950
  if (platform3 === "wsl") {
259951
259951
  const wslVersion = getWslVersion();
@@ -259990,7 +259990,7 @@ async function initializeTelemetry() {
259990
259990
  } catch {}
259991
259991
  };
259992
259992
  registerCleanup(shutdownTelemetry2);
259993
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.9");
259993
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.11");
259994
259994
  }
259995
259995
  const meterProvider = new MeterProvider5({
259996
259996
  resource,
@@ -260010,7 +260010,7 @@ async function initializeTelemetry() {
260010
260010
  });
260011
260011
  logs.setGlobalLoggerProvider(loggerProvider);
260012
260012
  setLoggerProvider(loggerProvider);
260013
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.9");
260013
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.11");
260014
260014
  setEventLogger(eventLogger);
260015
260015
  logForDebugging("[3P telemetry] Event logger set successfully");
260016
260016
  process.on("beforeExit", async () => {
@@ -260072,7 +260072,7 @@ Current timeout: ${timeoutMs}ms
260072
260072
  }
260073
260073
  };
260074
260074
  registerCleanup(shutdownTelemetry);
260075
- return meterProvider.getMeter("com.anthropic.claude_code", "1.1.9");
260075
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.1.11");
260076
260076
  }
260077
260077
  async function flushTelemetry() {
260078
260078
  const meterProvider = getMeterProvider();
@@ -261295,7 +261295,7 @@ function detectLinuxGlobPatternWarnings() {
261295
261295
  }
261296
261296
  async function getDoctorDiagnostic() {
261297
261297
  const installationType = await getCurrentInstallationType();
261298
- const version = typeof MACRO !== "undefined" ? "1.1.9" : "unknown";
261298
+ const version = typeof MACRO !== "undefined" ? "1.1.11" : "unknown";
261299
261299
  const installationPath = await getInstallationPath();
261300
261300
  const invokedBinary = getInvokedBinary();
261301
261301
  const multipleInstallations = await detectMultipleInstallations();
@@ -262236,8 +262236,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
262236
262236
  const maxVersion = await getMaxVersion();
262237
262237
  if (maxVersion && gt(version, maxVersion)) {
262238
262238
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
262239
- if (gte("1.1.9", maxVersion)) {
262240
- logForDebugging(`Native installer: current version ${"1.1.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
262239
+ if (gte("1.1.11", maxVersion)) {
262240
+ logForDebugging(`Native installer: current version ${"1.1.11"} is already at or above maxVersion ${maxVersion}, skipping update`);
262241
262241
  logEvent("tengu_native_update_skipped_max_version", {
262242
262242
  latency_ms: Date.now() - startTime,
262243
262243
  max_version: maxVersion,
@@ -262248,7 +262248,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
262248
262248
  version = maxVersion;
262249
262249
  }
262250
262250
  }
262251
- if (!forceReinstall && version === "1.1.9" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
262251
+ if (!forceReinstall && version === "1.1.11" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
262252
262252
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
262253
262253
  logEvent("tengu_native_update_complete", {
262254
262254
  latency_ms: Date.now() - startTime,
@@ -334468,7 +334468,7 @@ function getAnthropicEnvMetadata() {
334468
334468
  function getBuildAgeMinutes() {
334469
334469
  if (false)
334470
334470
  ;
334471
- const buildTime = new Date("2026-04-07T13:39:54.752Z").getTime();
334471
+ const buildTime = new Date("2026-04-07T15:28:04.082Z").getTime();
334472
334472
  if (isNaN(buildTime))
334473
334473
  return;
334474
334474
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -340532,10 +340532,10 @@ Resume standard operation:
340532
340532
  const fullChain = parseCommandChain2(`/thinkharder ${args ?? ""}`);
340533
340533
  if (fullChain && fullChain.length > 1) {
340534
340534
  const validation = validateCommandChain2(fullChain);
340535
- if (!validation.ok) {
340536
- const handleReady = () => onDone(chainWarning2(validation.reason));
340535
+ if (validation.ok === false) {
340536
+ const msg = chainWarning2(validation.reason);
340537
340537
  return /* @__PURE__ */ jsx_dev_runtime152.jsxDEV(ThinkHarderBanner, {
340538
- onReady: handleReady
340538
+ onReady: () => onDone(msg)
340539
340539
  }, undefined, false, undefined, this);
340540
340540
  }
340541
340541
  }
@@ -358534,7 +358534,7 @@ function Feedback({
358534
358534
  platform: env4.platform,
358535
358535
  gitRepo: envInfo.isGit,
358536
358536
  terminal: env4.terminal,
358537
- version: "1.1.9",
358537
+ version: "1.1.11",
358538
358538
  transcript: normalizeMessagesForAPI(messages),
358539
358539
  errors: sanitizedErrors,
358540
358540
  lastApiRequest: getLastAPIRequest(),
@@ -358726,7 +358726,7 @@ function Feedback({
358726
358726
  ", ",
358727
358727
  env4.terminal,
358728
358728
  ", v",
358729
- "1.1.9"
358729
+ "1.1.11"
358730
358730
  ]
358731
358731
  }, undefined, true, undefined, this)
358732
358732
  ]
@@ -358832,7 +358832,7 @@ ${sanitizedDescription}
358832
358832
  ` + `**Environment Info**
358833
358833
  ` + `- Platform: ${env4.platform}
358834
358834
  ` + `- Terminal: ${env4.terminal}
358835
- ` + `- Version: ${"1.1.9"}
358835
+ ` + `- Version: ${"1.1.11"}
358836
358836
  ` + `- Feedback ID: ${feedbackId}
358837
358837
  ` + `
358838
358838
  **Errors**
@@ -361945,7 +361945,7 @@ function buildPrimarySection() {
361945
361945
  }, undefined, false, undefined, this);
361946
361946
  return [{
361947
361947
  label: "Version",
361948
- value: "1.1.9"
361948
+ value: "1.1.11"
361949
361949
  }, {
361950
361950
  label: "Session name",
361951
361951
  value: nameValue
@@ -363516,51 +363516,29 @@ function SimpleMenu({ items, isActive, onSelect, onCancel }) {
363516
363516
  const VISIBLE = Math.min(7, items.length);
363517
363517
  const [focusIdx, setFocusIdx] = import_react100.useState(0);
363518
363518
  const [fromIdx, setFromIdx] = import_react100.useState(0);
363519
- const stateRef = import_react100.useRef({ focusIdx: 0, fromIdx: 0, items, done: false });
363520
- stateRef.current.items = items;
363521
- import_react100.useEffect(() => {
363522
- if (!isActive)
363523
- return;
363524
- stateRef.current.done = false;
363525
- if (!process.stdin.readableFlowing) {
363526
- process.stdin.resume();
363527
- }
363528
- const onData = (chunk) => {
363529
- const str2 = typeof chunk === "string" ? chunk : chunk.toString("utf8");
363530
- const s = stateRef.current;
363531
- const visible2 = Math.min(VISIBLE, s.items.length);
363532
- if (str2 === "\x1B[A" || str2 === "\x1BOA" || str2 === "k") {
363533
- const next = Math.max(0, s.focusIdx - 1);
363534
- const nextFrom = next < s.fromIdx ? next : s.fromIdx;
363535
- stateRef.current.focusIdx = next;
363536
- stateRef.current.fromIdx = nextFrom;
363537
- setFocusIdx(next);
363538
- setFromIdx(nextFrom);
363539
- } else if (str2 === "\x1B[B" || str2 === "\x1BOB" || str2 === "j") {
363540
- const next = Math.min(s.items.length - 1, s.focusIdx + 1);
363541
- const nextFrom = next >= s.fromIdx + visible2 ? next - visible2 + 1 : s.fromIdx;
363542
- stateRef.current.focusIdx = next;
363543
- stateRef.current.fromIdx = nextFrom;
363544
- setFocusIdx(next);
363545
- setFromIdx(nextFrom);
363546
- } else if (str2 === "\r" || str2 === `
363547
- ` || str2 === `\r
363548
- `) {
363549
- if (s.done)
363550
- return;
363551
- stateRef.current.done = true;
363552
- const item = s.items[s.focusIdx];
363553
- if (item)
363554
- onSelect(item.value);
363555
- } else if (str2 === "\x1B" || str2 === "\x1B\x1B") {
363556
- onCancel?.();
363557
- }
363558
- };
363559
- process.stdin.on("data", onData);
363560
- return () => {
363561
- process.stdin.off("data", onData);
363562
- };
363563
- }, [isActive, onSelect, onCancel]);
363519
+ use_input_default((input, key) => {
363520
+ if (key.upArrow) {
363521
+ setFocusIdx((prev) => {
363522
+ const next = Math.max(0, prev - 1);
363523
+ if (next < fromIdx)
363524
+ setFromIdx(next);
363525
+ return next;
363526
+ });
363527
+ } else if (key.downArrow) {
363528
+ setFocusIdx((prev) => {
363529
+ const next = Math.min(items.length - 1, prev + 1);
363530
+ if (next >= fromIdx + VISIBLE)
363531
+ setFromIdx(next - VISIBLE + 1);
363532
+ return next;
363533
+ });
363534
+ } else if (key.return) {
363535
+ const item = items[focusIdx];
363536
+ if (item)
363537
+ onSelect(item.value);
363538
+ } else if (key.escape || key.ctrl && input === "c") {
363539
+ onCancel?.();
363540
+ }
363541
+ }, { isActive });
363564
363542
  const visible = items.slice(fromIdx, fromIdx + VISIBLE);
363565
363543
  const showScrollUp = fromIdx > 0;
363566
363544
  const showScrollDown = fromIdx + VISIBLE < items.length;
@@ -363651,45 +363629,25 @@ function LocalBackendSetup({
363651
363629
  const nextValue = step === "baseUrl" ? baseUrl : step === "model" ? model : apiKey;
363652
363630
  setCursorOffset(nextValue.length);
363653
363631
  }, [step, baseUrl, model, apiKey]);
363654
- const scanStepActive = step === "networkScan" || step === "scanningModels";
363655
- const scanStepRef = import_react100.useRef(step);
363656
- scanStepRef.current = step;
363657
- import_react100.useEffect(() => {
363658
- if (!scanStepActive)
363659
- return;
363660
- if (!process.stdin.readableFlowing) {
363661
- process.stdin.resume();
363662
- }
363663
- const onData = (chunk) => {
363664
- const str2 = typeof chunk === "string" ? chunk : chunk.toString("utf8");
363665
- const current = scanStepRef.current;
363666
- if (current === "networkScan") {
363667
- if (str2 === "\x1B" || str2 === "\x1B\x1B" || str2 === "\r" || str2 === `
363668
- ` || str2 === `\r
363669
- `) {
363670
- networkAbortRef.current?.abort();
363671
- setDiscoveredEndpoints(discoveredSnapshotRef.current);
363672
- setStep("selectEndpoint");
363673
- }
363674
- } else if (current === "scanningModels") {
363675
- if (str2 === "\x1B" || str2 === "\x1B\x1B") {
363676
- modelScanAbortRef.current?.abort();
363677
- goBack();
363678
- } else if (str2 === "\r" || str2 === `
363679
- ` || str2 === `\r
363680
- `) {
363681
- modelScanAbortRef.current?.abort();
363682
- setScanError("Model scan skipped. Enter the model name manually.");
363683
- setAvailableModels([]);
363684
- setStep("model");
363685
- }
363632
+ use_input_default((_input, key) => {
363633
+ if (step === "networkScan") {
363634
+ if (key.escape || key.return) {
363635
+ networkAbortRef.current?.abort();
363636
+ setDiscoveredEndpoints(discoveredSnapshotRef.current);
363637
+ setStep("selectEndpoint");
363686
363638
  }
363687
- };
363688
- process.stdin.on("data", onData);
363689
- return () => {
363690
- process.stdin.off("data", onData);
363691
- };
363692
- }, [scanStepActive]);
363639
+ } else if (step === "scanningModels") {
363640
+ if (key.escape) {
363641
+ modelScanAbortRef.current?.abort();
363642
+ goBack();
363643
+ } else if (key.return) {
363644
+ modelScanAbortRef.current?.abort();
363645
+ setScanError("Model scan skipped. Enter the model name manually.");
363646
+ setAvailableModels([]);
363647
+ setStep("model");
363648
+ }
363649
+ }
363650
+ }, { isActive: step === "networkScan" || step === "scanningModels" });
363693
363651
  function goBack() {
363694
363652
  setError(null);
363695
363653
  switch (step) {
@@ -363800,11 +363758,11 @@ function LocalBackendSetup({
363800
363758
  fetchAvailableModels(url3, provider, apiKey, abort.signal).then((result) => {
363801
363759
  if (abort.signal.aborted)
363802
363760
  return;
363803
- if (result.ok) {
363761
+ if (result.ok === true) {
363804
363762
  setAvailableModels(result.models);
363805
363763
  setScanError(null);
363806
363764
  } else {
363807
- setScanError(result.error);
363765
+ setScanError(result.ok === false ? result.error : "Scan failed");
363808
363766
  setAvailableModels([]);
363809
363767
  }
363810
363768
  setStep("model");
@@ -366595,7 +366553,7 @@ function Config({
366595
366553
  }
366596
366554
  }, undefined, false, undefined, this)
366597
366555
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
366598
- currentVersion: "1.1.9",
366556
+ currentVersion: "1.1.11",
366599
366557
  onChoice: (choice) => {
366600
366558
  setShowSubmenu(null);
366601
366559
  setTabsHidden(false);
@@ -366607,7 +366565,7 @@ function Config({
366607
366565
  autoUpdatesChannel: "stable"
366608
366566
  };
366609
366567
  if (choice === "stay") {
366610
- newSettings.minimumVersion = "1.1.9";
366568
+ newSettings.minimumVersion = "1.1.11";
366611
366569
  }
366612
366570
  updateSettingsForSource("userSettings", newSettings);
366613
366571
  setSettingsData((prev_27) => ({
@@ -374105,12 +374063,13 @@ var React62, jsx_dev_runtime204, heartbeatInterval = 5, heartbeatBeat = 0, heart
374105
374063
  const fullChain = parseCommandChain2(`/heartbeat ${rawArgs}`);
374106
374064
  if (fullChain && fullChain.length > 1) {
374107
374065
  const validation = validateCommandChain2(fullChain);
374108
- if (!validation.ok) {
374066
+ if (validation.ok === false) {
374067
+ const msg = chainWarning2(validation.reason);
374109
374068
  return /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(HeartbeatBanner, {
374110
374069
  beat: 0,
374111
374070
  intervalMins: heartbeatInterval,
374112
- task: chainWarning2(validation.reason),
374113
- onReady: () => onDone(chainWarning2(validation.reason))
374071
+ task: msg,
374072
+ onReady: () => onDone(msg)
374114
374073
  }, undefined, false, undefined, this);
374115
374074
  }
374116
374075
  }
@@ -374610,7 +374569,7 @@ var React65, jsx_dev_runtime207, call27 = async (onDone, _context, args) => {
374610
374569
  const fullChain = parseCommandChain(`/research ${rawArgs}`);
374611
374570
  if (fullChain && fullChain.length > 1) {
374612
374571
  const validation = validateCommandChain(fullChain);
374613
- if (!validation.ok) {
374572
+ if (validation.ok === false) {
374614
374573
  const msg = chainWarning(validation.reason);
374615
374574
  return /* @__PURE__ */ jsx_dev_runtime207.jsxDEV(ResearchWarning, {
374616
374575
  message: msg,
@@ -376339,7 +376298,7 @@ function HelpV2(t0) {
376339
376298
  let t6;
376340
376299
  if ($2[31] !== tabs) {
376341
376300
  t6 = /* @__PURE__ */ jsx_dev_runtime214.jsxDEV(Tabs, {
376342
- title: `localclawd v${"1.1.9"}`,
376301
+ title: `localclawd v${"1.1.11"}`,
376343
376302
  color: "professionalBlue",
376344
376303
  defaultTab: "general",
376345
376304
  children: tabs
@@ -400497,7 +400456,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
400497
400456
  return [];
400498
400457
  }
400499
400458
  }
400500
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.9") {
400459
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.11") {
400501
400460
  if (process.env.USER_TYPE === "ant") {
400502
400461
  const changelog = MACRO.VERSION_CHANGELOG;
400503
400462
  if (changelog) {
@@ -400524,7 +400483,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.9") {
400524
400483
  releaseNotes
400525
400484
  };
400526
400485
  }
400527
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.9") {
400486
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.11") {
400528
400487
  if (process.env.USER_TYPE === "ant") {
400529
400488
  const changelog = MACRO.VERSION_CHANGELOG;
400530
400489
  if (changelog) {
@@ -401691,7 +401650,7 @@ function getRecentActivitySync() {
401691
401650
  return cachedActivity;
401692
401651
  }
401693
401652
  function getLogoDisplayData() {
401694
- const version = process.env.DEMO_VERSION ?? "1.1.9";
401653
+ const version = process.env.DEMO_VERSION ?? "1.1.11";
401695
401654
  const serverUrl = getDirectConnectServerUrl();
401696
401655
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
401697
401656
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -402965,7 +402924,7 @@ function LogoV2() {
402965
402924
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
402966
402925
  t2 = () => {
402967
402926
  const currentConfig = getGlobalConfig();
402968
- if (currentConfig.lastReleaseNotesSeen === "1.1.9") {
402927
+ if (currentConfig.lastReleaseNotesSeen === "1.1.11") {
402969
402928
  return;
402970
402929
  }
402971
402930
  saveGlobalConfig(_temp327);
@@ -403641,12 +403600,12 @@ function LogoV2() {
403641
403600
  return t41;
403642
403601
  }
403643
403602
  function _temp327(current) {
403644
- if (current.lastReleaseNotesSeen === "1.1.9") {
403603
+ if (current.lastReleaseNotesSeen === "1.1.11") {
403645
403604
  return current;
403646
403605
  }
403647
403606
  return {
403648
403607
  ...current,
403649
- lastReleaseNotesSeen: "1.1.9"
403608
+ lastReleaseNotesSeen: "1.1.11"
403650
403609
  };
403651
403610
  }
403652
403611
  function _temp245(s_0) {
@@ -429848,7 +429807,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
429848
429807
  smapsRollup,
429849
429808
  platform: process.platform,
429850
429809
  nodeVersion: process.version,
429851
- ccVersion: "1.1.9"
429810
+ ccVersion: "1.1.11"
429852
429811
  };
429853
429812
  }
429854
429813
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -430433,7 +430392,7 @@ var init_bridge_kick = __esm(() => {
430433
430392
  var call64 = async () => {
430434
430393
  return {
430435
430394
  type: "text",
430436
- value: `${"1.1.9"} (built ${"2026-04-07T13:39:54.752Z"})`
430395
+ value: `${"1.1.11"} (built ${"2026-04-07T15:28:04.082Z"})`
430437
430396
  };
430438
430397
  }, version, version_default;
430439
430398
  var init_version = __esm(() => {
@@ -432424,6 +432383,8 @@ var init_stickers2 = __esm(() => {
432424
432383
  type: "local",
432425
432384
  name: "stickers",
432426
432385
  description: "Order localclawd stickers",
432386
+ isEnabled: () => false,
432387
+ isHidden: true,
432427
432388
  supportsNonInteractive: false,
432428
432389
  load: () => Promise.resolve().then(() => (init_stickers(), exports_stickers))
432429
432390
  };
@@ -439369,7 +439330,7 @@ function generateHtmlReport(data, insights) {
439369
439330
  </html>`;
439370
439331
  }
439371
439332
  function buildExportData(data, insights, facets, remoteStats) {
439372
- const version2 = typeof MACRO !== "undefined" ? "1.1.9" : "unknown";
439333
+ const version2 = typeof MACRO !== "undefined" ? "1.1.11" : "unknown";
439373
439334
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
439374
439335
  const facets_summary = {
439375
439336
  total: facets.size,
@@ -443536,7 +443497,7 @@ var init_sessionStorage = __esm(() => {
443536
443497
  init_settings2();
443537
443498
  init_slowOperations();
443538
443499
  init_uuid();
443539
- VERSION6 = typeof MACRO !== "undefined" ? "1.1.9" : "unknown";
443500
+ VERSION6 = typeof MACRO !== "undefined" ? "1.1.11" : "unknown";
443540
443501
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
443541
443502
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
443542
443503
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -444738,7 +444699,7 @@ var init_filesystem = __esm(() => {
444738
444699
  });
444739
444700
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
444740
444701
  const nonce = randomBytes19(16).toString("hex");
444741
- return join130(getClaudeTempDir(), "bundled-skills", "1.1.9", nonce);
444702
+ return join130(getClaudeTempDir(), "bundled-skills", "1.1.11", nonce);
444742
444703
  });
444743
444704
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
444744
444705
  });
@@ -450737,7 +450698,7 @@ function computeFingerprint(messageText, version2) {
450737
450698
  }
450738
450699
  function computeFingerprintFromMessages(messages) {
450739
450700
  const firstMessageText = extractFirstMessageText(messages);
450740
- return computeFingerprint(firstMessageText, "1.1.9");
450701
+ return computeFingerprint(firstMessageText, "1.1.11");
450741
450702
  }
450742
450703
  var FINGERPRINT_SALT = "59cf53e54c78";
450743
450704
  var init_fingerprint = () => {};
@@ -452592,7 +452553,7 @@ async function sideQuery(opts) {
452592
452553
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
452593
452554
  }
452594
452555
  const messageText = extractFirstUserMessageText(messages);
452595
- const fingerprint = computeFingerprint(messageText, "1.1.9");
452556
+ const fingerprint = computeFingerprint(messageText, "1.1.11");
452596
452557
  const attributionHeader = getAttributionHeader(fingerprint);
452597
452558
  const systemBlocks = [
452598
452559
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -457390,7 +457351,7 @@ function buildSystemInitMessage(inputs) {
457390
457351
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
457391
457352
  apiKeySource: getAnthropicApiKeyWithSource().source,
457392
457353
  betas: getSdkBetas(),
457393
- claude_code_version: "1.1.9",
457354
+ claude_code_version: "1.1.11",
457394
457355
  output_style: outputStyle2,
457395
457356
  agents: inputs.agents.map((agent) => agent.agentType),
457396
457357
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -471969,7 +471930,7 @@ var init_useVoiceEnabled = __esm(() => {
471969
471930
  function getSemverPart(version2) {
471970
471931
  return `${import_semver12.major(version2, { loose: true })}.${import_semver12.minor(version2, { loose: true })}.${import_semver12.patch(version2, { loose: true })}`;
471971
471932
  }
471972
- function useUpdateNotification(updatedVersion, initialVersion = "1.1.9") {
471933
+ function useUpdateNotification(updatedVersion, initialVersion = "1.1.11") {
471973
471934
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react228.useState(() => getSemverPart(initialVersion));
471974
471935
  if (!updatedVersion) {
471975
471936
  return null;
@@ -472009,7 +471970,7 @@ function AutoUpdater({
472009
471970
  return;
472010
471971
  }
472011
471972
  if (false) {}
472012
- const currentVersion = "1.1.9";
471973
+ const currentVersion = "1.1.11";
472013
471974
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
472014
471975
  let latestVersion = await getLatestVersion(channel);
472015
471976
  const isDisabled = isAutoUpdaterDisabled();
@@ -472220,12 +472181,12 @@ function NativeAutoUpdater({
472220
472181
  logEvent("tengu_native_auto_updater_start", {});
472221
472182
  try {
472222
472183
  const maxVersion = await getMaxVersion();
472223
- if (maxVersion && gt("1.1.9", maxVersion)) {
472184
+ if (maxVersion && gt("1.1.11", maxVersion)) {
472224
472185
  const msg = await getMaxVersionMessage();
472225
472186
  setMaxVersionIssue(msg ?? "affects your version");
472226
472187
  }
472227
472188
  const result = await installLatest(channel);
472228
- const currentVersion = "1.1.9";
472189
+ const currentVersion = "1.1.11";
472229
472190
  const latencyMs = Date.now() - startTime;
472230
472191
  if (result.lockFailed) {
472231
472192
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -472360,17 +472321,17 @@ function PackageManagerAutoUpdater(t0) {
472360
472321
  const maxVersion = await getMaxVersion();
472361
472322
  if (maxVersion && latest && gt(latest, maxVersion)) {
472362
472323
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
472363
- if (gte("1.1.9", maxVersion)) {
472364
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
472324
+ if (gte("1.1.11", maxVersion)) {
472325
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.11"} is already at or above maxVersion ${maxVersion}, skipping update`);
472365
472326
  setUpdateAvailable(false);
472366
472327
  return;
472367
472328
  }
472368
472329
  latest = maxVersion;
472369
472330
  }
472370
- const hasUpdate = latest && !gte("1.1.9", latest) && !shouldSkipVersion(latest);
472331
+ const hasUpdate = latest && !gte("1.1.11", latest) && !shouldSkipVersion(latest);
472371
472332
  setUpdateAvailable(!!hasUpdate);
472372
472333
  if (hasUpdate) {
472373
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.9"} -> ${latest}`);
472334
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.11"} -> ${latest}`);
472374
472335
  }
472375
472336
  };
472376
472337
  $2[0] = t1;
@@ -472404,7 +472365,7 @@ function PackageManagerAutoUpdater(t0) {
472404
472365
  wrap: "truncate",
472405
472366
  children: [
472406
472367
  "currentVersion: ",
472407
- "1.1.9"
472368
+ "1.1.11"
472408
472369
  ]
472409
472370
  }, undefined, true, undefined, this);
472410
472371
  $2[3] = verbose;
@@ -479962,7 +479923,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
479962
479923
  project_dir: getOriginalCwd(),
479963
479924
  added_dirs: addedDirs
479964
479925
  },
479965
- version: "1.1.9",
479926
+ version: "1.1.11",
479966
479927
  output_style: {
479967
479928
  name: outputStyleName
479968
479929
  },
@@ -491522,7 +491483,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
491522
491483
  } catch {}
491523
491484
  const data = {
491524
491485
  trigger,
491525
- version: "1.1.9",
491486
+ version: "1.1.11",
491526
491487
  platform: process.platform,
491527
491488
  transcript,
491528
491489
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -503111,7 +503072,7 @@ function WelcomeV2() {
503111
503072
  dimColor: true,
503112
503073
  children: [
503113
503074
  "v",
503114
- "1.1.9"
503075
+ "1.1.11"
503115
503076
  ]
503116
503077
  }, undefined, true, undefined, this)
503117
503078
  ]
@@ -503146,38 +503107,17 @@ function StartPage({ currentConfig, onDone }) {
503146
503107
  const hasSavedConfig = hasSavedBackendConfig(currentConfig);
503147
503108
  const options = hasSavedConfig ? CONTINUE_OPTIONS : SETUP_OPTIONS;
503148
503109
  const [focusIdx, setFocusIdx] = import_react321.useState(0);
503149
- const stateRef = import_react321.useRef({ focusIdx: 0, done: false, options });
503150
- stateRef.current.options = options;
503151
- import_react321.useEffect(() => {
503152
- if (!process.stdin.readableFlowing) {
503153
- process.stdin.resume();
503110
+ use_input_default((input, key) => {
503111
+ if (key.upArrow) {
503112
+ setFocusIdx((i2) => (i2 - 1 + options.length) % options.length);
503113
+ } else if (key.downArrow) {
503114
+ setFocusIdx((i2) => (i2 + 1) % options.length);
503115
+ } else if (key.return) {
503116
+ onDone(options[focusIdx].value);
503117
+ } else if (key.escape || key.ctrl && input === "c") {
503118
+ gracefulShutdownSync(0);
503154
503119
  }
503155
- const onData = (chunk2) => {
503156
- const str2 = typeof chunk2 === "string" ? chunk2 : chunk2.toString("utf8");
503157
- if (str2 === "\x1B[A" || str2 === "\x1BOA") {
503158
- const next = (stateRef.current.focusIdx - 1 + stateRef.current.options.length) % stateRef.current.options.length;
503159
- stateRef.current.focusIdx = next;
503160
- setFocusIdx(next);
503161
- } else if (str2 === "\x1B[B" || str2 === "\x1BOB") {
503162
- const next = (stateRef.current.focusIdx + 1) % stateRef.current.options.length;
503163
- stateRef.current.focusIdx = next;
503164
- setFocusIdx(next);
503165
- } else if (str2 === "\r" || str2 === `
503166
- ` || str2 === `\r
503167
- `) {
503168
- if (stateRef.current.done)
503169
- return;
503170
- stateRef.current.done = true;
503171
- const chosen = stateRef.current.options[stateRef.current.focusIdx];
503172
- if (chosen)
503173
- onDone(chosen.value);
503174
- }
503175
- };
503176
- process.stdin.on("data", onData);
503177
- return () => {
503178
- process.stdin.off("data", onData);
503179
- };
503180
- }, [onDone]);
503120
+ });
503181
503121
  return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503182
503122
  flexDirection: "column",
503183
503123
  gap: 1,
@@ -503286,7 +503226,7 @@ function StartPage({ currentConfig, onDone }) {
503286
503226
  }, undefined, false, undefined, this),
503287
503227
  /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503288
503228
  dimColor: true,
503289
- children: "↑↓ navigate · Enter confirm"
503229
+ children: "↑↓ navigate · Enter confirm · Esc exit"
503290
503230
  }, undefined, false, undefined, this)
503291
503231
  ]
503292
503232
  }, undefined, true, undefined, this)
@@ -503296,6 +503236,7 @@ function StartPage({ currentConfig, onDone }) {
503296
503236
  var import_react321, jsx_dev_runtime483, CONTINUE_OPTIONS, SETUP_OPTIONS;
503297
503237
  var init_StartPage = __esm(() => {
503298
503238
  init_ink2();
503239
+ init_gracefulShutdown();
503299
503240
  init_providers();
503300
503241
  init_WelcomeV2();
503301
503242
  import_react321 = __toESM(require_react(), 1);
@@ -503452,51 +503393,33 @@ var exports_Onboarding = {};
503452
503393
  __export(exports_Onboarding, {
503453
503394
  Onboarding: () => Onboarding
503454
503395
  });
503455
- function SimpleMenu2({ items, onSelect, onCancel }) {
503396
+ function SimpleMenu2({ items, isActive, onSelect, onCancel }) {
503456
503397
  const VISIBLE = Math.min(7, items.length);
503457
503398
  const [focusIdx, setFocusIdx] = import_react324.useState(0);
503458
503399
  const [fromIdx, setFromIdx] = import_react324.useState(0);
503459
- const stateRef = import_react324.useRef({ focusIdx: 0, fromIdx: 0, items, done: false });
503460
- stateRef.current.items = items;
503461
- import_react324.useEffect(() => {
503462
- if (!process.stdin.readableFlowing)
503463
- process.stdin.resume();
503464
- const onData = (chunk2) => {
503465
- const str2 = typeof chunk2 === "string" ? chunk2 : chunk2.toString("utf8");
503466
- const s = stateRef.current;
503467
- const vis = Math.min(VISIBLE, s.items.length);
503468
- if (str2 === "\x1B[A" || str2 === "\x1BOA") {
503469
- const next = Math.max(0, s.focusIdx - 1);
503470
- const nextFrom = next < s.fromIdx ? next : s.fromIdx;
503471
- stateRef.current.focusIdx = next;
503472
- stateRef.current.fromIdx = nextFrom;
503473
- setFocusIdx(next);
503474
- setFromIdx(nextFrom);
503475
- } else if (str2 === "\x1B[B" || str2 === "\x1BOB") {
503476
- const next = Math.min(s.items.length - 1, s.focusIdx + 1);
503477
- const nextFrom = next >= s.fromIdx + vis ? next - vis + 1 : s.fromIdx;
503478
- stateRef.current.focusIdx = next;
503479
- stateRef.current.fromIdx = nextFrom;
503480
- setFocusIdx(next);
503481
- setFromIdx(nextFrom);
503482
- } else if (str2 === "\r" || str2 === `
503483
- ` || str2 === `\r
503484
- `) {
503485
- if (s.done)
503486
- return;
503487
- stateRef.current.done = true;
503488
- const item = s.items[s.focusIdx];
503489
- if (item)
503490
- onSelect(item.value);
503491
- } else if (str2 === "\x1B" || str2 === "\x1B\x1B") {
503492
- onCancel?.();
503493
- }
503494
- };
503495
- process.stdin.on("data", onData);
503496
- return () => {
503497
- process.stdin.off("data", onData);
503498
- };
503499
- }, [onSelect, onCancel]);
503400
+ use_input_default((input, key) => {
503401
+ if (key.upArrow) {
503402
+ setFocusIdx((prev) => {
503403
+ const next = Math.max(0, prev - 1);
503404
+ if (next < fromIdx)
503405
+ setFromIdx(next);
503406
+ return next;
503407
+ });
503408
+ } else if (key.downArrow) {
503409
+ setFocusIdx((prev) => {
503410
+ const next = Math.min(items.length - 1, prev + 1);
503411
+ if (next >= fromIdx + VISIBLE)
503412
+ setFromIdx(next - VISIBLE + 1);
503413
+ return next;
503414
+ });
503415
+ } else if (key.return) {
503416
+ const item = items[focusIdx];
503417
+ if (item)
503418
+ onSelect(item.value);
503419
+ } else if (key.escape || key.ctrl && input === "c") {
503420
+ onCancel?.();
503421
+ }
503422
+ }, { isActive });
503500
503423
  const visible = items.slice(fromIdx, fromIdx + VISIBLE);
503501
503424
  return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503502
503425
  flexDirection: "column",
@@ -503530,25 +503453,11 @@ function SimpleMenu2({ items, onSelect, onCancel }) {
503530
503453
  ]
503531
503454
  }, undefined, true, undefined, this);
503532
503455
  }
503533
- function PressEnterToContinue2({ onContinue }) {
503534
- const doneRef = import_react324.useRef(false);
503535
- import_react324.useEffect(() => {
503536
- if (!process.stdin.readableFlowing)
503537
- process.stdin.resume();
503538
- const onData = (chunk2) => {
503539
- const str2 = typeof chunk2 === "string" ? chunk2 : chunk2.toString("utf8");
503540
- if ((str2 === "\r" || str2 === `
503541
- ` || str2 === `\r
503542
- `) && !doneRef.current) {
503543
- doneRef.current = true;
503544
- onContinue();
503545
- }
503546
- };
503547
- process.stdin.on("data", onData);
503548
- return () => {
503549
- process.stdin.off("data", onData);
503550
- };
503551
- }, [onContinue]);
503456
+ function PressEnterToContinue2({ isActive, onContinue }) {
503457
+ use_input_default((_input, key) => {
503458
+ if (key.return)
503459
+ onContinue();
503460
+ }, { isActive });
503552
503461
  return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503553
503462
  color: "permission",
503554
503463
  children: [
@@ -503608,116 +503517,127 @@ function Onboarding({ onDone, showWelcome = true }) {
503608
503517
  ];
503609
503518
  const steps = import_react324.useMemo(() => {
503610
503519
  const config2 = getGlobalConfig();
503611
- const themeStep = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503612
- flexDirection: "column",
503613
- gap: 1,
503614
- paddingLeft: 1,
503615
- children: [
503616
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503617
- bold: true,
503618
- children: "Choose a theme"
503619
- }, undefined, false, undefined, this),
503620
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(SimpleMenu2, {
503621
- items: themeItems,
503622
- onSelect: handleThemeSelection,
503623
- onCancel: goToNextStep
503624
- }, undefined, false, undefined, this),
503625
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503626
- dimColor: true,
503627
- children: "Change later with /theme"
503628
- }, undefined, false, undefined, this)
503629
- ]
503630
- }, undefined, true, undefined, this);
503631
- const compactContextStep = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503632
- flexDirection: "column",
503633
- gap: 1,
503634
- paddingLeft: 1,
503635
- width: 70,
503636
- children: [
503637
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503638
- bold: true,
503639
- children: "Choose a compact context window"
503640
- }, undefined, false, undefined, this),
503641
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503642
- dimColor: true,
503643
- wrap: "wrap",
503644
- children: "localclawd can compact earlier than the model's full advertised window. Useful for local models that degrade before hitting their limit."
503645
- }, undefined, false, undefined, this),
503646
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(SimpleMenu2, {
503647
- items: compactItems,
503648
- onSelect: (value) => {
503649
- const compactContextWindowTokens = value === "default" ? undefined : parseInt(value, 10);
503650
- saveGlobalConfig((current) => ({ ...current, compactContextWindowTokens }));
503651
- goToNextStep();
503520
+ const result = [
503521
+ {
503522
+ id: "theme",
503523
+ component: (isActive2) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503524
+ flexDirection: "column",
503525
+ gap: 1,
503526
+ paddingLeft: 1,
503527
+ children: [
503528
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503529
+ bold: true,
503530
+ children: "Choose a theme"
503531
+ }, undefined, false, undefined, this),
503532
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(SimpleMenu2, {
503533
+ items: themeItems,
503534
+ isActive: isActive2,
503535
+ onSelect: handleThemeSelection,
503536
+ onCancel: goToNextStep
503537
+ }, undefined, false, undefined, this),
503538
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503539
+ dimColor: true,
503540
+ children: "Change later with /theme"
503541
+ }, undefined, false, undefined, this)
503542
+ ]
503543
+ }, undefined, true, undefined, this)
503544
+ },
503545
+ {
503546
+ id: "compact-context",
503547
+ component: (isActive2) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503548
+ flexDirection: "column",
503549
+ gap: 1,
503550
+ paddingLeft: 1,
503551
+ width: 70,
503552
+ children: [
503553
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503554
+ bold: true,
503555
+ children: "Choose a compact context window"
503556
+ }, undefined, false, undefined, this),
503557
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503558
+ dimColor: true,
503559
+ wrap: "wrap",
503560
+ children: "localclawd can compact earlier than the model's full advertised window. Useful for local models that degrade before hitting their limit."
503561
+ }, undefined, false, undefined, this),
503562
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(SimpleMenu2, {
503563
+ items: compactItems,
503564
+ isActive: isActive2,
503565
+ onSelect: (value) => {
503566
+ const compactContextWindowTokens = value === "default" ? undefined : parseInt(value, 10);
503567
+ saveGlobalConfig((current) => ({ ...current, compactContextWindowTokens }));
503568
+ goToNextStep();
503569
+ },
503570
+ onCancel: goToNextStep
503571
+ }, undefined, false, undefined, this),
503572
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503573
+ dimColor: true,
503574
+ children: "Change later in /config under Compact context window."
503575
+ }, undefined, false, undefined, this)
503576
+ ]
503577
+ }, undefined, true, undefined, this)
503578
+ },
503579
+ {
503580
+ id: "local-backend",
503581
+ component: (_isActive) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(LocalBackendSetup, {
503582
+ initialConfig: {
503583
+ provider: config2.localBackendProvider,
503584
+ baseUrl: config2.localBackendBaseUrl,
503585
+ model: config2.localBackendModel,
503586
+ apiKey: config2.localBackendApiKey
503652
503587
  },
503653
- onCancel: goToNextStep
503654
- }, undefined, false, undefined, this),
503655
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503656
- dimColor: true,
503657
- children: "Change later in /config under Compact context window."
503588
+ onComplete: handleLocalBackendSetup,
503589
+ onCancel: goToNextStep,
503590
+ title: "Choose your local backend",
503591
+ description: "Set the OpenAI-compatible endpoint and model localclawd should use. You can point it at vLLM, Ollama, or any compatible host.",
503592
+ showSaveGloballyOption: true
503658
503593
  }, undefined, false, undefined, this)
503659
- ]
503660
- }, undefined, true, undefined, this);
503661
- const localBackendStep = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(LocalBackendSetup, {
503662
- initialConfig: {
503663
- provider: config2.localBackendProvider,
503664
- baseUrl: config2.localBackendBaseUrl,
503665
- model: config2.localBackendModel,
503666
- apiKey: config2.localBackendApiKey
503667
503594
  },
503668
- onComplete: handleLocalBackendSetup,
503669
- onCancel: goToNextStep,
503670
- title: "Choose your local backend",
503671
- description: "Set the OpenAI-compatible endpoint and model localclawd should use. You can point it at vLLM, Ollama, or any compatible host.",
503672
- showSaveGloballyOption: true
503673
- }, undefined, false, undefined, this);
503674
- const securityStep = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503675
- flexDirection: "column",
503676
- gap: 1,
503677
- paddingLeft: 1,
503678
- children: [
503679
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503680
- bold: true,
503681
- children: "Security notes:"
503682
- }, undefined, false, undefined, this),
503683
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503595
+ {
503596
+ id: "security",
503597
+ component: (isActive2) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503684
503598
  flexDirection: "column",
503685
- width: 70,
503686
- children: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList, {
503687
- children: [
503688
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList.Item, {
503599
+ gap: 1,
503600
+ paddingLeft: 1,
503601
+ children: [
503602
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503603
+ bold: true,
503604
+ children: "Security notes:"
503605
+ }, undefined, false, undefined, this),
503606
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503607
+ flexDirection: "column",
503608
+ width: 70,
503609
+ children: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList, {
503689
503610
  children: [
503690
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503691
- children: "localclawd can make mistakes"
503692
- }, undefined, false, undefined, this),
503693
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503694
- dimColor: true,
503695
- wrap: "wrap",
503611
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList.Item, {
503696
503612
  children: [
503697
- "Always review responses, especially when running code.",
503698
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Newline, {}, undefined, false, undefined, this)
503613
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503614
+ children: "localclawd can make mistakes"
503615
+ }, undefined, false, undefined, this),
503616
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503617
+ dimColor: true,
503618
+ wrap: "wrap",
503619
+ children: [
503620
+ "Always review responses, especially when running code.",
503621
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Newline, {}, undefined, false, undefined, this)
503622
+ ]
503623
+ }, undefined, true, undefined, this)
503699
503624
  ]
503700
- }, undefined, true, undefined, this)
503625
+ }, undefined, true, undefined, this),
503626
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList.Item, {
503627
+ children: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503628
+ children: "Due to prompt injection risks, only use it with code you trust"
503629
+ }, undefined, false, undefined, this)
503630
+ }, undefined, false, undefined, this)
503701
503631
  ]
503702
- }, undefined, true, undefined, this),
503703
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList.Item, {
503704
- children: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503705
- children: "Due to prompt injection risks, only use it with code you trust"
503706
- }, undefined, false, undefined, this)
503707
- }, undefined, false, undefined, this)
503708
- ]
503709
- }, undefined, true, undefined, this)
503710
- }, undefined, false, undefined, this),
503711
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(PressEnterToContinue2, {
503712
- onContinue: goToNextStep
503713
- }, undefined, false, undefined, this)
503714
- ]
503715
- }, undefined, true, undefined, this);
503716
- const result = [
503717
- { id: "theme", component: themeStep },
503718
- { id: "compact-context", component: compactContextStep },
503719
- { id: "local-backend", component: localBackendStep },
503720
- { id: "security", component: securityStep }
503632
+ }, undefined, true, undefined, this)
503633
+ }, undefined, false, undefined, this),
503634
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(PressEnterToContinue2, {
503635
+ isActive: isActive2,
503636
+ onContinue: goToNextStep
503637
+ }, undefined, false, undefined, this)
503638
+ ]
503639
+ }, undefined, true, undefined, this)
503640
+ }
503721
503641
  ];
503722
503642
  if (shouldOfferTerminalSetup()) {
503723
503643
  const terminalItems = [
@@ -503726,7 +503646,7 @@ function Onboarding({ onDone, showWelcome = true }) {
503726
503646
  ];
503727
503647
  result.push({
503728
503648
  id: "terminal-setup",
503729
- component: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503649
+ component: (isActive2) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503730
503650
  flexDirection: "column",
503731
503651
  gap: 1,
503732
503652
  paddingLeft: 1,
@@ -503742,7 +503662,7 @@ function Onboarding({ onDone, showWelcome = true }) {
503742
503662
  children: [
503743
503663
  /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503744
503664
  children: [
503745
- "For the optimal coding experience, enable recommended settings",
503665
+ "For the optimal experience, enable recommended settings",
503746
503666
  /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Newline, {}, undefined, false, undefined, this),
503747
503667
  "for your terminal:",
503748
503668
  " ",
@@ -503751,6 +503671,7 @@ function Onboarding({ onDone, showWelcome = true }) {
503751
503671
  }, undefined, true, undefined, this),
503752
503672
  /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(SimpleMenu2, {
503753
503673
  items: terminalItems,
503674
+ isActive: isActive2,
503754
503675
  onSelect: (value) => {
503755
503676
  if (value === "install") {
503756
503677
  setupTerminal(theme2).catch(() => {}).finally(goToNextStep);
@@ -503769,6 +503690,7 @@ function Onboarding({ onDone, showWelcome = true }) {
503769
503690
  return result;
503770
503691
  }, [goToNextStep, handleLocalBackendSetup, handleThemeSelection, theme2]);
503771
503692
  const currentStep = steps[currentStepIndex];
503693
+ const isActive = true;
503772
503694
  return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503773
503695
  flexDirection: "column",
503774
503696
  children: [
@@ -503776,7 +503698,7 @@ function Onboarding({ onDone, showWelcome = true }) {
503776
503698
  /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503777
503699
  flexDirection: "column",
503778
503700
  marginTop: 1,
503779
- children: currentStep?.component
503701
+ children: currentStep?.component(isActive)
503780
503702
  }, undefined, false, undefined, this)
503781
503703
  ]
503782
503704
  }, undefined, true, undefined, this);
@@ -503803,70 +503725,45 @@ __export(exports_TrustDialog, {
503803
503725
  TrustDialog: () => TrustDialog
503804
503726
  });
503805
503727
  import { homedir as homedir36 } from "os";
503806
- function acceptTrust(onDone) {
503807
- try {
503808
- const isHomeDir = homedir36() === getCwd();
503809
- if (isHomeDir) {
503810
- setSessionTrustAccepted(true);
503811
- } else {
503812
- try {
503813
- saveCurrentProjectConfig((current) => ({ ...current, hasTrustDialogAccepted: true }));
503814
- } catch {}
503815
- setSessionTrustAccepted(true);
503816
- }
503817
- } finally {
503818
- onDone();
503819
- }
503820
- }
503821
503728
  function TrustDialog({ onDone }) {
503822
503729
  const hasTrustDialogAccepted = checkHasTrustDialogAccepted();
503823
503730
  const [focusIdx, setFocusIdx] = import_react325.useState(0);
503824
- const stateRef = import_react325.useRef({ focusIdx: 0, done: false });
503825
503731
  import_react325.useEffect(() => {
503826
503732
  if (hasTrustDialogAccepted) {
503827
503733
  setSessionTrustAccepted(true);
503828
503734
  onDone();
503829
503735
  }
503830
- }, []);
503831
- import_react325.useEffect(() => {
503736
+ }, [hasTrustDialogAccepted, onDone]);
503737
+ use_input_default((input, key) => {
503832
503738
  if (hasTrustDialogAccepted)
503833
503739
  return;
503834
- if (!process.stdin.readableFlowing) {
503835
- process.stdin.resume();
503836
- }
503837
- const onData = (chunk2) => {
503838
- const str2 = typeof chunk2 === "string" ? chunk2 : chunk2.toString("utf8");
503839
- if (str2 === "\x1B[A" || str2 === "\x1BOA") {
503840
- const next = (stateRef.current.focusIdx - 1 + OPTIONS.length) % OPTIONS.length;
503841
- stateRef.current.focusIdx = next;
503842
- setFocusIdx(next);
503843
- } else if (str2 === "\x1B[B" || str2 === "\x1BOB") {
503844
- const next = (stateRef.current.focusIdx + 1) % OPTIONS.length;
503845
- stateRef.current.focusIdx = next;
503846
- setFocusIdx(next);
503847
- } else if (str2 === "\r" || str2 === `
503848
- ` || str2 === `\r
503849
- `) {
503850
- if (stateRef.current.done)
503851
- return;
503852
- stateRef.current.done = true;
503853
- const chosen = OPTIONS[stateRef.current.focusIdx];
503854
- if (chosen?.value === "exit") {
503855
- gracefulShutdownSync(1);
503856
- } else {
503857
- acceptTrust(onDone);
503858
- }
503859
- } else if (str2 === "\x1B" || str2 === "\x1B\x1B") {
503860
- gracefulShutdownSync(0);
503861
- } else if (str2 === "\x03") {
503740
+ if (key.upArrow) {
503741
+ setFocusIdx((i2) => (i2 - 1 + OPTIONS.length) % OPTIONS.length);
503742
+ } else if (key.downArrow) {
503743
+ setFocusIdx((i2) => (i2 + 1) % OPTIONS.length);
503744
+ } else if (key.return) {
503745
+ const chosen = OPTIONS[focusIdx];
503746
+ if (chosen?.value === "exit") {
503862
503747
  gracefulShutdownSync(1);
503748
+ } else {
503749
+ try {
503750
+ const isHomeDir = homedir36() === getCwd();
503751
+ if (isHomeDir) {
503752
+ setSessionTrustAccepted(true);
503753
+ } else {
503754
+ try {
503755
+ saveCurrentProjectConfig((current) => ({ ...current, hasTrustDialogAccepted: true }));
503756
+ } catch {}
503757
+ setSessionTrustAccepted(true);
503758
+ }
503759
+ } finally {
503760
+ onDone();
503761
+ }
503863
503762
  }
503864
- };
503865
- process.stdin.on("data", onData);
503866
- return () => {
503867
- process.stdin.off("data", onData);
503868
- };
503869
- }, [hasTrustDialogAccepted, onDone]);
503763
+ } else if (key.escape || key.ctrl && input === "c") {
503764
+ gracefulShutdownSync(0);
503765
+ }
503766
+ });
503870
503767
  if (hasTrustDialogAccepted)
503871
503768
  return null;
503872
503769
  const cwd2 = getFsImplementation().cwd();
@@ -504242,7 +504139,7 @@ function completeOnboarding() {
504242
504139
  saveGlobalConfig((current) => ({
504243
504140
  ...current,
504244
504141
  hasCompletedOnboarding: true,
504245
- lastOnboardingVersion: "1.1.9"
504142
+ lastOnboardingVersion: "1.1.11"
504246
504143
  }));
504247
504144
  }
504248
504145
  function showDialog(root3, renderer) {
@@ -508801,7 +508698,7 @@ function appendToLog(path17, message) {
508801
508698
  cwd: getFsImplementation().cwd(),
508802
508699
  userType: process.env.USER_TYPE,
508803
508700
  sessionId: getSessionId(),
508804
- version: "1.1.9"
508701
+ version: "1.1.11"
508805
508702
  };
508806
508703
  getLogWriter(path17).write(messageWithTimestamp);
508807
508704
  }
@@ -512801,8 +512698,8 @@ async function getEnvLessBridgeConfig() {
512801
512698
  }
512802
512699
  async function checkEnvLessBridgeMinVersion() {
512803
512700
  const cfg = await getEnvLessBridgeConfig();
512804
- if (cfg.min_version && lt("1.1.9", cfg.min_version)) {
512805
- return `Your version of localclawd (${"1.1.9"}) is too old for Remote Control.
512701
+ if (cfg.min_version && lt("1.1.11", cfg.min_version)) {
512702
+ return `Your version of localclawd (${"1.1.11"}) is too old for Remote Control.
512806
512703
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
512807
512704
  }
512808
512705
  return null;
@@ -513274,7 +513171,7 @@ async function initBridgeCore(params) {
513274
513171
  const rawApi = createBridgeApiClient({
513275
513172
  baseUrl,
513276
513173
  getAccessToken,
513277
- runnerVersion: "1.1.9",
513174
+ runnerVersion: "1.1.11",
513278
513175
  onDebug: logForDebugging,
513279
513176
  onAuth401,
513280
513177
  getTrustedDeviceToken
@@ -518930,7 +518827,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
518930
518827
  setCwd(cwd3);
518931
518828
  const server = new Server({
518932
518829
  name: "claude/tengu",
518933
- version: "1.1.9"
518830
+ version: "1.1.11"
518934
518831
  }, {
518935
518832
  capabilities: {
518936
518833
  tools: {}
@@ -520535,7 +520432,7 @@ __export(exports_update, {
520535
520432
  });
520536
520433
  async function update() {
520537
520434
  logEvent("tengu_update_check", {});
520538
- writeToStdout(`Current version: ${"1.1.9"}
520435
+ writeToStdout(`Current version: ${"1.1.11"}
520539
520436
  `);
520540
520437
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
520541
520438
  writeToStdout(`Checking for updates to ${channel} version...
@@ -520610,8 +520507,8 @@ async function update() {
520610
520507
  writeToStdout(`localclawd is managed by Homebrew.
520611
520508
  `);
520612
520509
  const latest = await getLatestVersion(channel);
520613
- if (latest && !gte("1.1.9", latest)) {
520614
- writeToStdout(`Update available: ${"1.1.9"} → ${latest}
520510
+ if (latest && !gte("1.1.11", latest)) {
520511
+ writeToStdout(`Update available: ${"1.1.11"} → ${latest}
520615
520512
  `);
520616
520513
  writeToStdout(`
520617
520514
  `);
@@ -520627,8 +520524,8 @@ async function update() {
520627
520524
  writeToStdout(`localclawd is managed by winget.
520628
520525
  `);
520629
520526
  const latest = await getLatestVersion(channel);
520630
- if (latest && !gte("1.1.9", latest)) {
520631
- writeToStdout(`Update available: ${"1.1.9"} → ${latest}
520527
+ if (latest && !gte("1.1.11", latest)) {
520528
+ writeToStdout(`Update available: ${"1.1.11"} → ${latest}
520632
520529
  `);
520633
520530
  writeToStdout(`
520634
520531
  `);
@@ -520642,8 +520539,8 @@ async function update() {
520642
520539
  writeToStdout(`localclawd is managed by apk.
520643
520540
  `);
520644
520541
  const latest = await getLatestVersion(channel);
520645
- if (latest && !gte("1.1.9", latest)) {
520646
- writeToStdout(`Update available: ${"1.1.9"} → ${latest}
520542
+ if (latest && !gte("1.1.11", latest)) {
520543
+ writeToStdout(`Update available: ${"1.1.11"} → ${latest}
520647
520544
  `);
520648
520545
  writeToStdout(`
520649
520546
  `);
@@ -520708,11 +520605,11 @@ async function update() {
520708
520605
  `);
520709
520606
  await gracefulShutdown(1);
520710
520607
  }
520711
- if (result.latestVersion === "1.1.9") {
520712
- writeToStdout(source_default.green(`localclawd is up to date (${"1.1.9"})`) + `
520608
+ if (result.latestVersion === "1.1.11") {
520609
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.1.11"})`) + `
520713
520610
  `);
520714
520611
  } else {
520715
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.9"} to version ${result.latestVersion}`) + `
520612
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.11"} to version ${result.latestVersion}`) + `
520716
520613
  `);
520717
520614
  await regenerateCompletionCache();
520718
520615
  }
@@ -520772,12 +520669,12 @@ async function update() {
520772
520669
  `);
520773
520670
  await gracefulShutdown(1);
520774
520671
  }
520775
- if (latestVersion === "1.1.9") {
520776
- writeToStdout(source_default.green(`localclawd is up to date (${"1.1.9"})`) + `
520672
+ if (latestVersion === "1.1.11") {
520673
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.1.11"})`) + `
520777
520674
  `);
520778
520675
  await gracefulShutdown(0);
520779
520676
  }
520780
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.9"})
520677
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.11"})
520781
520678
  `);
520782
520679
  writeToStdout(`Installing update...
520783
520680
  `);
@@ -520822,7 +520719,7 @@ async function update() {
520822
520719
  logForDebugging(`update: Installation status: ${status2}`);
520823
520720
  switch (status2) {
520824
520721
  case "success":
520825
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.9"} to version ${latestVersion}`) + `
520722
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.11"} to version ${latestVersion}`) + `
520826
520723
  `);
520827
520724
  await regenerateCompletionCache();
520828
520725
  break;
@@ -522087,7 +521984,7 @@ ${customInstructions}` : customInstructions;
522087
521984
  }
522088
521985
  }
522089
521986
  logForDiagnosticsNoPII("info", "started", {
522090
- version: "1.1.9",
521987
+ version: "1.1.11",
522091
521988
  is_native_binary: isInBundledMode()
522092
521989
  });
522093
521990
  registerCleanup(async () => {
@@ -522871,7 +522768,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
522871
522768
  pendingHookMessages
522872
522769
  }, renderAndRun);
522873
522770
  }
522874
- }).version("1.1.9 (localClawd)", "-v, --version", "Output the version number");
522771
+ }).version("1.1.11 (localClawd)", "-v, --version", "Output the version number");
522875
522772
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
522876
522773
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
522877
522774
  if (canUserConfigureAdvisor()) {
@@ -523379,7 +523276,7 @@ if (false) {}
523379
523276
  async function main2() {
523380
523277
  const args = process.argv.slice(2);
523381
523278
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
523382
- console.log(`${"1.1.9"} (localclawd)`);
523279
+ console.log(`${"1.1.11"} (localclawd)`);
523383
523280
  return;
523384
523281
  }
523385
523282
  const {
@@ -523463,4 +523360,4 @@ async function main2() {
523463
523360
  }
523464
523361
  main2();
523465
523362
 
523466
- //# debugId=E10CFCD17A6A5D2D64756E2164756E21
523363
+ //# debugId=A19C602AE08D364F64756E2164756E21