localclawd 1.1.12 → 1.1.14

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 +471 -1250
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -87216,23 +87216,6 @@ var init_config = __esm(() => {
87216
87216
  });
87217
87217
 
87218
87218
  // src/utils/model/providers.ts
87219
- var exports_providers = {};
87220
- __export(exports_providers, {
87221
- setSessionLocalLLMConfigOverride: () => setSessionLocalLLMConfigOverride,
87222
- normalizeLocalLLMConfig: () => normalizeLocalLLMConfig,
87223
- isLocalLLMProviderEnabled: () => isLocalLLMProviderEnabled,
87224
- isFirstPartyAnthropicBaseUrl: () => isFirstPartyAnthropicBaseUrl,
87225
- getSessionLocalLLMConfigOverride: () => getSessionLocalLLMConfigOverride,
87226
- getLocalLLMProviderLabel: () => getLocalLLMProviderLabel,
87227
- getLocalLLMProvider: () => getLocalLLMProvider,
87228
- getLocalLLMModel: () => getLocalLLMModel,
87229
- getLocalLLMBaseUrl: () => getLocalLLMBaseUrl,
87230
- getLocalLLMApiKey: () => getLocalLLMApiKey,
87231
- getDefaultLocalLLMConfig: () => getDefaultLocalLLMConfig,
87232
- getAPIProviderForStatsig: () => getAPIProviderForStatsig,
87233
- getAPIProvider: () => getAPIProvider,
87234
- clearSessionLocalLLMConfigOverride: () => clearSessionLocalLLMConfigOverride
87235
- });
87236
87219
  function getEnvAlias(localKey, legacyKey) {
87237
87220
  return process.env[localKey] ?? process.env[legacyKey];
87238
87221
  }
@@ -87282,15 +87265,6 @@ function normalizeLocalLLMConfig(config) {
87282
87265
  apiKey: config?.apiKey?.trim() || defaults2.apiKey
87283
87266
  };
87284
87267
  }
87285
- function setSessionLocalLLMConfigOverride(config) {
87286
- sessionLocalLLMConfigOverride = config ? normalizeLocalLLMConfig(config) : null;
87287
- }
87288
- function clearSessionLocalLLMConfigOverride() {
87289
- sessionLocalLLMConfigOverride = null;
87290
- }
87291
- function getSessionLocalLLMConfigOverride() {
87292
- return sessionLocalLLMConfigOverride;
87293
- }
87294
87268
  function getLocalLLMProvider() {
87295
87269
  return getLocalLLMProviderFromEnv() ?? sessionLocalLLMConfigOverride?.provider ?? getConfiguredLocalLLMProvider() ?? "vllm";
87296
87270
  }
@@ -89253,7 +89227,7 @@ var init_isEqual = __esm(() => {
89253
89227
 
89254
89228
  // src/utils/userAgent.ts
89255
89229
  function getClaudeCodeUserAgent() {
89256
- return `claude-code/${"1.1.12"}`;
89230
+ return `claude-code/${"1.1.14"}`;
89257
89231
  }
89258
89232
 
89259
89233
  // src/utils/workloadContext.ts
@@ -89275,7 +89249,7 @@ function getUserAgent() {
89275
89249
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
89276
89250
  const workload = getWorkload();
89277
89251
  const workloadSuffix = workload ? `, workload/${workload}` : "";
89278
- return `claude-cli/${"1.1.12"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
89252
+ return `claude-cli/${"1.1.14"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
89279
89253
  }
89280
89254
  function getMCPUserAgent() {
89281
89255
  const parts = [];
@@ -89289,7 +89263,7 @@ function getMCPUserAgent() {
89289
89263
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
89290
89264
  }
89291
89265
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
89292
- return `claude-code/${"1.1.12"}${suffix}`;
89266
+ return `claude-code/${"1.1.14"}${suffix}`;
89293
89267
  }
89294
89268
  function getWebFetchUserAgent() {
89295
89269
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -99198,7 +99172,7 @@ function getAttributionHeader(fingerprint) {
99198
99172
  if (!isAttributionHeaderEnabled()) {
99199
99173
  return "";
99200
99174
  }
99201
- const version = `${"1.1.12"}.${fingerprint}`;
99175
+ const version = `${"1.1.14"}.${fingerprint}`;
99202
99176
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
99203
99177
  const cch = "";
99204
99178
  const workload = getWorkload();
@@ -132745,7 +132719,7 @@ var init_metadata = __esm(() => {
132745
132719
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
132746
132720
  WHITESPACE_REGEX = /\s+/;
132747
132721
  getVersionBase = memoize_default(() => {
132748
- const match = "1.1.12".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
132722
+ const match = "1.1.14".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
132749
132723
  return match ? match[0] : undefined;
132750
132724
  });
132751
132725
  buildEnvContext = memoize_default(async () => {
@@ -132785,9 +132759,9 @@ var init_metadata = __esm(() => {
132785
132759
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
132786
132760
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
132787
132761
  isClaudeAiAuth: isClaudeAISubscriber(),
132788
- version: "1.1.12",
132762
+ version: "1.1.14",
132789
132763
  versionBase: getVersionBase(),
132790
- buildTime: "2026-04-07T16:21:50.781Z",
132764
+ buildTime: "2026-04-07T18:27:17.273Z",
132791
132765
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
132792
132766
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
132793
132767
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -197374,7 +197348,7 @@ function getTelemetryAttributes() {
197374
197348
  attributes["session.id"] = sessionId;
197375
197349
  }
197376
197350
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
197377
- attributes["app.version"] = "1.1.12";
197351
+ attributes["app.version"] = "1.1.14";
197378
197352
  }
197379
197353
  const oauthAccount = getOauthAccountInfo();
197380
197354
  if (oauthAccount) {
@@ -229435,7 +229409,7 @@ function getInstallationEnv() {
229435
229409
  return;
229436
229410
  }
229437
229411
  function getClaudeCodeVersion() {
229438
- return "1.1.12";
229412
+ return "1.1.14";
229439
229413
  }
229440
229414
  async function getInstalledVSCodeExtensionVersion(command) {
229441
229415
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -235037,7 +235011,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
235037
235011
  const client4 = new Client({
235038
235012
  name: "claude-code",
235039
235013
  title: "Claude Code",
235040
- version: "1.1.12",
235014
+ version: "1.1.14",
235041
235015
  description: "Anthropic's agentic coding tool",
235042
235016
  websiteUrl: PRODUCT_URL
235043
235017
  }, {
@@ -235390,7 +235364,7 @@ var init_client9 = __esm(() => {
235390
235364
  const client4 = new Client({
235391
235365
  name: "claude-code",
235392
235366
  title: "Claude Code",
235393
- version: "1.1.12",
235367
+ version: "1.1.14",
235394
235368
  description: "Anthropic's agentic coding tool",
235395
235369
  websiteUrl: PRODUCT_URL
235396
235370
  }, {
@@ -258581,7 +258555,7 @@ var init_user = __esm(() => {
258581
258555
  deviceId,
258582
258556
  sessionId: getSessionId(),
258583
258557
  email: getEmail(),
258584
- appVersion: "1.1.12",
258558
+ appVersion: "1.1.14",
258585
258559
  platform: getHostPlatformForAnalytics(),
258586
258560
  organizationUuid,
258587
258561
  accountUuid,
@@ -259905,7 +259879,7 @@ async function initializeBetaTracing(resource) {
259905
259879
  });
259906
259880
  logs.setGlobalLoggerProvider(loggerProvider);
259907
259881
  setLoggerProvider(loggerProvider);
259908
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.12");
259882
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.14");
259909
259883
  setEventLogger(eventLogger);
259910
259884
  process.on("beforeExit", async () => {
259911
259885
  await loggerProvider?.forceFlush();
@@ -259945,7 +259919,7 @@ async function initializeTelemetry() {
259945
259919
  const platform3 = getPlatform();
259946
259920
  const baseAttributes = {
259947
259921
  [ATTR_SERVICE_NAME5]: "claude-code",
259948
- [ATTR_SERVICE_VERSION5]: "1.1.12"
259922
+ [ATTR_SERVICE_VERSION5]: "1.1.14"
259949
259923
  };
259950
259924
  if (platform3 === "wsl") {
259951
259925
  const wslVersion = getWslVersion();
@@ -259990,7 +259964,7 @@ async function initializeTelemetry() {
259990
259964
  } catch {}
259991
259965
  };
259992
259966
  registerCleanup(shutdownTelemetry2);
259993
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.12");
259967
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.14");
259994
259968
  }
259995
259969
  const meterProvider = new MeterProvider5({
259996
259970
  resource,
@@ -260010,7 +259984,7 @@ async function initializeTelemetry() {
260010
259984
  });
260011
259985
  logs.setGlobalLoggerProvider(loggerProvider);
260012
259986
  setLoggerProvider(loggerProvider);
260013
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.12");
259987
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.14");
260014
259988
  setEventLogger(eventLogger);
260015
259989
  logForDebugging("[3P telemetry] Event logger set successfully");
260016
259990
  process.on("beforeExit", async () => {
@@ -260072,7 +260046,7 @@ Current timeout: ${timeoutMs}ms
260072
260046
  }
260073
260047
  };
260074
260048
  registerCleanup(shutdownTelemetry);
260075
- return meterProvider.getMeter("com.anthropic.claude_code", "1.1.12");
260049
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.1.14");
260076
260050
  }
260077
260051
  async function flushTelemetry() {
260078
260052
  const meterProvider = getMeterProvider();
@@ -261295,7 +261269,7 @@ function detectLinuxGlobPatternWarnings() {
261295
261269
  }
261296
261270
  async function getDoctorDiagnostic() {
261297
261271
  const installationType = await getCurrentInstallationType();
261298
- const version = typeof MACRO !== "undefined" ? "1.1.12" : "unknown";
261272
+ const version = typeof MACRO !== "undefined" ? "1.1.14" : "unknown";
261299
261273
  const installationPath = await getInstallationPath();
261300
261274
  const invokedBinary = getInvokedBinary();
261301
261275
  const multipleInstallations = await detectMultipleInstallations();
@@ -262236,8 +262210,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
262236
262210
  const maxVersion = await getMaxVersion();
262237
262211
  if (maxVersion && gt(version, maxVersion)) {
262238
262212
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
262239
- if (gte("1.1.12", maxVersion)) {
262240
- logForDebugging(`Native installer: current version ${"1.1.12"} is already at or above maxVersion ${maxVersion}, skipping update`);
262213
+ if (gte("1.1.14", maxVersion)) {
262214
+ logForDebugging(`Native installer: current version ${"1.1.14"} is already at or above maxVersion ${maxVersion}, skipping update`);
262241
262215
  logEvent("tengu_native_update_skipped_max_version", {
262242
262216
  latency_ms: Date.now() - startTime,
262243
262217
  max_version: maxVersion,
@@ -262248,7 +262222,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
262248
262222
  version = maxVersion;
262249
262223
  }
262250
262224
  }
262251
- if (!forceReinstall && version === "1.1.12" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
262225
+ if (!forceReinstall && version === "1.1.14" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
262252
262226
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
262253
262227
  logEvent("tengu_native_update_complete", {
262254
262228
  latency_ms: Date.now() - startTime,
@@ -334468,7 +334442,7 @@ function getAnthropicEnvMetadata() {
334468
334442
  function getBuildAgeMinutes() {
334469
334443
  if (false)
334470
334444
  ;
334471
- const buildTime = new Date("2026-04-07T16:21:50.781Z").getTime();
334445
+ const buildTime = new Date("2026-04-07T18:27:17.273Z").getTime();
334472
334446
  if (isNaN(buildTime))
334473
334447
  return;
334474
334448
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -358534,7 +358508,7 @@ function Feedback({
358534
358508
  platform: env4.platform,
358535
358509
  gitRepo: envInfo.isGit,
358536
358510
  terminal: env4.terminal,
358537
- version: "1.1.12",
358511
+ version: "1.1.14",
358538
358512
  transcript: normalizeMessagesForAPI(messages),
358539
358513
  errors: sanitizedErrors,
358540
358514
  lastApiRequest: getLastAPIRequest(),
@@ -358726,7 +358700,7 @@ function Feedback({
358726
358700
  ", ",
358727
358701
  env4.terminal,
358728
358702
  ", v",
358729
- "1.1.12"
358703
+ "1.1.14"
358730
358704
  ]
358731
358705
  }, undefined, true, undefined, this)
358732
358706
  ]
@@ -358832,7 +358806,7 @@ ${sanitizedDescription}
358832
358806
  ` + `**Environment Info**
358833
358807
  ` + `- Platform: ${env4.platform}
358834
358808
  ` + `- Terminal: ${env4.terminal}
358835
- ` + `- Version: ${"1.1.12"}
358809
+ ` + `- Version: ${"1.1.14"}
358836
358810
  ` + `- Feedback ID: ${feedbackId}
358837
358811
  ` + `
358838
358812
  **Errors**
@@ -361945,7 +361919,7 @@ function buildPrimarySection() {
361945
361919
  }, undefined, false, undefined, this);
361946
361920
  return [{
361947
361921
  label: "Version",
361948
- value: "1.1.12"
361922
+ value: "1.1.14"
361949
361923
  }, {
361950
361924
  label: "Session name",
361951
361925
  value: nameValue
@@ -363508,21 +363482,13 @@ var init_TriangleSpinner = __esm(() => {
363508
363482
  });
363509
363483
 
363510
363484
  // src/components/LocalBackendSetup.tsx
363511
- var exports_LocalBackendSetup = {};
363512
- __export(exports_LocalBackendSetup, {
363513
- LocalBackendSetup: () => LocalBackendSetup
363514
- });
363515
- function isEnter(input, key) {
363516
- return key.return || input === "\r" || input === `
363517
- `;
363518
- }
363519
363485
  function SimpleMenu({ items, isActive, onSelect, onCancel }) {
363520
363486
  const VISIBLE = Math.min(7, items.length);
363521
363487
  const [focusIdx, setFocusIdx] = import_react100.useState(0);
363522
363488
  const [fromIdx, setFromIdx] = import_react100.useState(0);
363523
- const [submitted, setSubmitted] = import_react100.useState(false);
363489
+ const doneRef = import_react100.useRef(false);
363524
363490
  use_input_default((input, key) => {
363525
- if (!isActive || submitted)
363491
+ if (!isActive || doneRef.current)
363526
363492
  return;
363527
363493
  if (key.upArrow) {
363528
363494
  setFocusIdx((prev) => {
@@ -363538,10 +363504,10 @@ function SimpleMenu({ items, isActive, onSelect, onCancel }) {
363538
363504
  setFromIdx(next - VISIBLE + 1);
363539
363505
  return next;
363540
363506
  });
363541
- } else if (isEnter(input, key)) {
363507
+ } else if (key.return) {
363542
363508
  const item = items[focusIdx];
363543
363509
  if (item) {
363544
- setSubmitted(true);
363510
+ doneRef.current = true;
363545
363511
  onSelect(item.value);
363546
363512
  }
363547
363513
  } else if (key.escape || key.ctrl && input === "c") {
@@ -363642,11 +363608,11 @@ function LocalBackendSetup({
363642
363608
  const nextValue = step === "baseUrl" ? baseUrl : step === "model" ? model : apiKey;
363643
363609
  setCursorOffset(nextValue.length);
363644
363610
  }, [step, baseUrl, model, apiKey]);
363645
- use_input_default((input, key) => {
363611
+ use_input_default((_input, key) => {
363646
363612
  if (scanStepDoneRef.current)
363647
363613
  return;
363648
363614
  if (step === "networkScan") {
363649
- if (key.escape || isEnter(input, key)) {
363615
+ if (key.escape || key.return) {
363650
363616
  scanStepDoneRef.current = true;
363651
363617
  networkAbortRef.current?.abort();
363652
363618
  setDiscoveredEndpoints(discoveredSnapshotRef.current);
@@ -363657,7 +363623,7 @@ function LocalBackendSetup({
363657
363623
  scanStepDoneRef.current = true;
363658
363624
  modelScanAbortRef.current?.abort();
363659
363625
  goBack();
363660
- } else if (isEnter(input, key)) {
363626
+ } else if (key.return) {
363661
363627
  scanStepDoneRef.current = true;
363662
363628
  modelScanAbortRef.current?.abort();
363663
363629
  setScanError("Model scan skipped. Enter the model name manually.");
@@ -366571,7 +366537,7 @@ function Config({
366571
366537
  }
366572
366538
  }, undefined, false, undefined, this)
366573
366539
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
366574
- currentVersion: "1.1.12",
366540
+ currentVersion: "1.1.14",
366575
366541
  onChoice: (choice) => {
366576
366542
  setShowSubmenu(null);
366577
366543
  setTabsHidden(false);
@@ -366583,7 +366549,7 @@ function Config({
366583
366549
  autoUpdatesChannel: "stable"
366584
366550
  };
366585
366551
  if (choice === "stay") {
366586
- newSettings.minimumVersion = "1.1.12";
366552
+ newSettings.minimumVersion = "1.1.14";
366587
366553
  }
366588
366554
  updateSettingsForSource("userSettings", newSettings);
366589
366555
  setSettingsData((prev_27) => ({
@@ -376316,7 +376282,7 @@ function HelpV2(t0) {
376316
376282
  let t6;
376317
376283
  if ($2[31] !== tabs) {
376318
376284
  t6 = /* @__PURE__ */ jsx_dev_runtime214.jsxDEV(Tabs, {
376319
- title: `localclawd v${"1.1.12"}`,
376285
+ title: `localclawd v${"1.1.14"}`,
376320
376286
  color: "professionalBlue",
376321
376287
  defaultTab: "general",
376322
376288
  children: tabs
@@ -400474,7 +400440,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
400474
400440
  return [];
400475
400441
  }
400476
400442
  }
400477
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.12") {
400443
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.14") {
400478
400444
  if (process.env.USER_TYPE === "ant") {
400479
400445
  const changelog = MACRO.VERSION_CHANGELOG;
400480
400446
  if (changelog) {
@@ -400501,7 +400467,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.12")
400501
400467
  releaseNotes
400502
400468
  };
400503
400469
  }
400504
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.12") {
400470
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.14") {
400505
400471
  if (process.env.USER_TYPE === "ant") {
400506
400472
  const changelog = MACRO.VERSION_CHANGELOG;
400507
400473
  if (changelog) {
@@ -401668,7 +401634,7 @@ function getRecentActivitySync() {
401668
401634
  return cachedActivity;
401669
401635
  }
401670
401636
  function getLogoDisplayData() {
401671
- const version = process.env.DEMO_VERSION ?? "1.1.12";
401637
+ const version = process.env.DEMO_VERSION ?? "1.1.14";
401672
401638
  const serverUrl = getDirectConnectServerUrl();
401673
401639
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
401674
401640
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -402942,7 +402908,7 @@ function LogoV2() {
402942
402908
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
402943
402909
  t2 = () => {
402944
402910
  const currentConfig = getGlobalConfig();
402945
- if (currentConfig.lastReleaseNotesSeen === "1.1.12") {
402911
+ if (currentConfig.lastReleaseNotesSeen === "1.1.14") {
402946
402912
  return;
402947
402913
  }
402948
402914
  saveGlobalConfig(_temp327);
@@ -403618,12 +403584,12 @@ function LogoV2() {
403618
403584
  return t41;
403619
403585
  }
403620
403586
  function _temp327(current) {
403621
- if (current.lastReleaseNotesSeen === "1.1.12") {
403587
+ if (current.lastReleaseNotesSeen === "1.1.14") {
403622
403588
  return current;
403623
403589
  }
403624
403590
  return {
403625
403591
  ...current,
403626
- lastReleaseNotesSeen: "1.1.12"
403592
+ lastReleaseNotesSeen: "1.1.14"
403627
403593
  };
403628
403594
  }
403629
403595
  function _temp245(s_0) {
@@ -429825,7 +429791,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
429825
429791
  smapsRollup,
429826
429792
  platform: process.platform,
429827
429793
  nodeVersion: process.version,
429828
- ccVersion: "1.1.12"
429794
+ ccVersion: "1.1.14"
429829
429795
  };
429830
429796
  }
429831
429797
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -430410,7 +430376,7 @@ var init_bridge_kick = __esm(() => {
430410
430376
  var call64 = async () => {
430411
430377
  return {
430412
430378
  type: "text",
430413
- value: `${"1.1.12"} (built ${"2026-04-07T16:21:50.781Z"})`
430379
+ value: `${"1.1.14"} (built ${"2026-04-07T18:27:17.273Z"})`
430414
430380
  };
430415
430381
  }, version, version_default;
430416
430382
  var init_version = __esm(() => {
@@ -439348,7 +439314,7 @@ function generateHtmlReport(data, insights) {
439348
439314
  </html>`;
439349
439315
  }
439350
439316
  function buildExportData(data, insights, facets, remoteStats) {
439351
- const version2 = typeof MACRO !== "undefined" ? "1.1.12" : "unknown";
439317
+ const version2 = typeof MACRO !== "undefined" ? "1.1.14" : "unknown";
439352
439318
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
439353
439319
  const facets_summary = {
439354
439320
  total: facets.size,
@@ -443515,7 +443481,7 @@ var init_sessionStorage = __esm(() => {
443515
443481
  init_settings2();
443516
443482
  init_slowOperations();
443517
443483
  init_uuid();
443518
- VERSION6 = typeof MACRO !== "undefined" ? "1.1.12" : "unknown";
443484
+ VERSION6 = typeof MACRO !== "undefined" ? "1.1.14" : "unknown";
443519
443485
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
443520
443486
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
443521
443487
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -444717,7 +444683,7 @@ var init_filesystem = __esm(() => {
444717
444683
  });
444718
444684
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
444719
444685
  const nonce = randomBytes19(16).toString("hex");
444720
- return join130(getClaudeTempDir(), "bundled-skills", "1.1.12", nonce);
444686
+ return join130(getClaudeTempDir(), "bundled-skills", "1.1.14", nonce);
444721
444687
  });
444722
444688
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
444723
444689
  });
@@ -450716,7 +450682,7 @@ function computeFingerprint(messageText, version2) {
450716
450682
  }
450717
450683
  function computeFingerprintFromMessages(messages) {
450718
450684
  const firstMessageText = extractFirstMessageText(messages);
450719
- return computeFingerprint(firstMessageText, "1.1.12");
450685
+ return computeFingerprint(firstMessageText, "1.1.14");
450720
450686
  }
450721
450687
  var FINGERPRINT_SALT = "59cf53e54c78";
450722
450688
  var init_fingerprint = () => {};
@@ -452571,7 +452537,7 @@ async function sideQuery(opts) {
452571
452537
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
452572
452538
  }
452573
452539
  const messageText = extractFirstUserMessageText(messages);
452574
- const fingerprint = computeFingerprint(messageText, "1.1.12");
452540
+ const fingerprint = computeFingerprint(messageText, "1.1.14");
452575
452541
  const attributionHeader = getAttributionHeader(fingerprint);
452576
452542
  const systemBlocks = [
452577
452543
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -457369,7 +457335,7 @@ function buildSystemInitMessage(inputs) {
457369
457335
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
457370
457336
  apiKeySource: getAnthropicApiKeyWithSource().source,
457371
457337
  betas: getSdkBetas(),
457372
- claude_code_version: "1.1.12",
457338
+ claude_code_version: "1.1.14",
457373
457339
  output_style: outputStyle2,
457374
457340
  agents: inputs.agents.map((agent) => agent.agentType),
457375
457341
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -471948,7 +471914,7 @@ var init_useVoiceEnabled = __esm(() => {
471948
471914
  function getSemverPart(version2) {
471949
471915
  return `${import_semver12.major(version2, { loose: true })}.${import_semver12.minor(version2, { loose: true })}.${import_semver12.patch(version2, { loose: true })}`;
471950
471916
  }
471951
- function useUpdateNotification(updatedVersion, initialVersion = "1.1.12") {
471917
+ function useUpdateNotification(updatedVersion, initialVersion = "1.1.14") {
471952
471918
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react228.useState(() => getSemverPart(initialVersion));
471953
471919
  if (!updatedVersion) {
471954
471920
  return null;
@@ -471988,7 +471954,7 @@ function AutoUpdater({
471988
471954
  return;
471989
471955
  }
471990
471956
  if (false) {}
471991
- const currentVersion = "1.1.12";
471957
+ const currentVersion = "1.1.14";
471992
471958
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
471993
471959
  let latestVersion = await getLatestVersion(channel);
471994
471960
  const isDisabled = isAutoUpdaterDisabled();
@@ -472199,12 +472165,12 @@ function NativeAutoUpdater({
472199
472165
  logEvent("tengu_native_auto_updater_start", {});
472200
472166
  try {
472201
472167
  const maxVersion = await getMaxVersion();
472202
- if (maxVersion && gt("1.1.12", maxVersion)) {
472168
+ if (maxVersion && gt("1.1.14", maxVersion)) {
472203
472169
  const msg = await getMaxVersionMessage();
472204
472170
  setMaxVersionIssue(msg ?? "affects your version");
472205
472171
  }
472206
472172
  const result = await installLatest(channel);
472207
- const currentVersion = "1.1.12";
472173
+ const currentVersion = "1.1.14";
472208
472174
  const latencyMs = Date.now() - startTime;
472209
472175
  if (result.lockFailed) {
472210
472176
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -472339,17 +472305,17 @@ function PackageManagerAutoUpdater(t0) {
472339
472305
  const maxVersion = await getMaxVersion();
472340
472306
  if (maxVersion && latest && gt(latest, maxVersion)) {
472341
472307
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
472342
- if (gte("1.1.12", maxVersion)) {
472343
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.12"} is already at or above maxVersion ${maxVersion}, skipping update`);
472308
+ if (gte("1.1.14", maxVersion)) {
472309
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.14"} is already at or above maxVersion ${maxVersion}, skipping update`);
472344
472310
  setUpdateAvailable(false);
472345
472311
  return;
472346
472312
  }
472347
472313
  latest = maxVersion;
472348
472314
  }
472349
- const hasUpdate = latest && !gte("1.1.12", latest) && !shouldSkipVersion(latest);
472315
+ const hasUpdate = latest && !gte("1.1.14", latest) && !shouldSkipVersion(latest);
472350
472316
  setUpdateAvailable(!!hasUpdate);
472351
472317
  if (hasUpdate) {
472352
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.12"} -> ${latest}`);
472318
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.14"} -> ${latest}`);
472353
472319
  }
472354
472320
  };
472355
472321
  $2[0] = t1;
@@ -472383,7 +472349,7 @@ function PackageManagerAutoUpdater(t0) {
472383
472349
  wrap: "truncate",
472384
472350
  children: [
472385
472351
  "currentVersion: ",
472386
- "1.1.12"
472352
+ "1.1.14"
472387
472353
  ]
472388
472354
  }, undefined, true, undefined, this);
472389
472355
  $2[3] = verbose;
@@ -479941,7 +479907,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
479941
479907
  project_dir: getOriginalCwd(),
479942
479908
  added_dirs: addedDirs
479943
479909
  },
479944
- version: "1.1.12",
479910
+ version: "1.1.14",
479945
479911
  output_style: {
479946
479912
  name: outputStyleName
479947
479913
  },
@@ -491501,7 +491467,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
491501
491467
  } catch {}
491502
491468
  const data = {
491503
491469
  trigger,
491504
- version: "1.1.12",
491470
+ version: "1.1.14",
491505
491471
  platform: process.platform,
491506
491472
  transcript,
491507
491473
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -503068,739 +503034,36 @@ var init_githubRepoPathMapping = __esm(() => {
503068
503034
  init_git();
503069
503035
  });
503070
503036
 
503071
- // src/components/LogoV2/WelcomeV2.tsx
503072
- function WelcomeV2() {
503073
- const [theme2] = useTheme();
503074
- const isLightTheme = ["light", "light-daltonized", "light-ansi"].includes(theme2);
503075
- const accentColor = isLightTheme ? "blue" : "#6366f1";
503076
- return /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedBox_default, {
503077
- width: WELCOME_V2_WIDTH,
503078
- flexDirection: "column",
503079
- gap: 0,
503080
- children: [
503081
- /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedBox_default, {
503082
- gap: 1,
503083
- children: [
503084
- /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503085
- bold: true,
503086
- color: accentColor,
503087
- children: "localclawd"
503088
- }, undefined, false, undefined, this),
503089
- /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503090
- dimColor: true,
503091
- children: [
503092
- "v",
503093
- "1.1.12"
503094
- ]
503095
- }, undefined, true, undefined, this)
503096
- ]
503097
- }, undefined, true, undefined, this),
503098
- /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503099
- dimColor: true,
503100
- children: "─".repeat(48)
503101
- }, undefined, false, undefined, this),
503102
- /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedBox_default, {
503103
- marginTop: 1,
503104
- children: /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Clawd, {}, undefined, false, undefined, this)
503105
- }, undefined, false, undefined, this)
503106
- ]
503107
- }, undefined, true, undefined, this);
503108
- }
503109
- var jsx_dev_runtime482, WELCOME_V2_WIDTH = 58;
503110
- var init_WelcomeV2 = __esm(() => {
503111
- init_ink2();
503112
- init_Clawd();
503113
- jsx_dev_runtime482 = __toESM(require_jsx_dev_runtime(), 1);
503114
- });
503115
-
503116
- // src/components/StartPage.tsx
503117
- var exports_StartPage = {};
503118
- __export(exports_StartPage, {
503119
- StartPage: () => StartPage
503120
- });
503121
- function hasSavedBackendConfig(config2) {
503122
- return Boolean(config2?.provider && config2?.baseUrl?.trim() && config2?.model?.trim());
503123
- }
503124
- function isEnter2(input, key) {
503125
- return key.return || input === "\r" || input === `
503126
- `;
503127
- }
503128
- function StartPage({ currentConfig, onDone }) {
503129
- const hasSavedConfig = hasSavedBackendConfig(currentConfig);
503130
- const options = hasSavedConfig ? CONTINUE_OPTIONS : SETUP_OPTIONS;
503131
- const [focusIdx, setFocusIdx] = import_react321.useState(0);
503132
- const [submitted, setSubmitted] = import_react321.useState(false);
503133
- use_input_default((input, key) => {
503134
- if (submitted)
503135
- return;
503136
- if (key.upArrow) {
503137
- setFocusIdx((i2) => (i2 - 1 + options.length) % options.length);
503138
- } else if (key.downArrow) {
503139
- setFocusIdx((i2) => (i2 + 1) % options.length);
503140
- } else if (isEnter2(input, key)) {
503141
- setSubmitted(true);
503142
- onDone(options[focusIdx].value);
503143
- } else if (key.escape || key.ctrl && input === "c") {
503144
- gracefulShutdownSync(0);
503145
- }
503146
- });
503147
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503148
- flexDirection: "column",
503149
- gap: 1,
503150
- children: [
503151
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
503152
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503153
- flexDirection: "column",
503154
- gap: 1,
503155
- paddingLeft: 1,
503156
- width: 78,
503157
- children: [
503158
- hasSavedConfig ? /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(jsx_dev_runtime483.Fragment, {
503159
- children: [
503160
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503161
- flexDirection: "column",
503162
- children: [
503163
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503164
- bold: true,
503165
- color: "#818cf8",
503166
- children: "Welcome back!"
503167
- }, undefined, false, undefined, this),
503168
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503169
- dimColor: true,
503170
- children: "Ready when you are."
503171
- }, undefined, false, undefined, this)
503172
- ]
503173
- }, undefined, true, undefined, this),
503174
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503175
- flexDirection: "column",
503176
- borderStyle: "round",
503177
- borderColor: "#6366f1",
503178
- paddingX: 2,
503179
- paddingY: 0,
503180
- width: 60,
503181
- children: [
503182
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503183
- gap: 2,
503184
- children: [
503185
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503186
- color: "#6366f1",
503187
- bold: true,
503188
- children: "◈"
503189
- }, undefined, false, undefined, this),
503190
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503191
- bold: true,
503192
- color: "#818cf8",
503193
- children: getLocalLLMProviderLabel(currentConfig.provider)
503194
- }, undefined, false, undefined, this)
503195
- ]
503196
- }, undefined, true, undefined, this),
503197
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503198
- dimColor: true,
503199
- children: [
503200
- "Model: ",
503201
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503202
- color: "white",
503203
- children: currentConfig.model
503204
- }, undefined, false, undefined, this)
503205
- ]
503206
- }, undefined, true, undefined, this),
503207
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503208
- dimColor: true,
503209
- children: [
503210
- "Endpoint: ",
503211
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503212
- color: "white",
503213
- children: currentConfig.baseUrl
503214
- }, undefined, false, undefined, this)
503215
- ]
503216
- }, undefined, true, undefined, this)
503217
- ]
503218
- }, undefined, true, undefined, this)
503219
- ]
503220
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503221
- flexDirection: "column",
503222
- gap: 0,
503223
- children: [
503224
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503225
- bold: true,
503226
- color: "#818cf8",
503227
- children: "Let's get you connected."
503228
- }, undefined, false, undefined, this),
503229
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503230
- dimColor: true,
503231
- wrap: "wrap",
503232
- children: "localclawd needs an OpenAI-compatible backend — vLLM, Ollama, or any hosted gateway."
503233
- }, undefined, false, undefined, this)
503234
- ]
503235
- }, undefined, true, undefined, this),
503236
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503237
- flexDirection: "column",
503238
- children: options.map((opt, i2) => /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503239
- gap: 1,
503240
- children: [
503241
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503242
- color: "#6366f1",
503243
- children: i2 === focusIdx ? "▶" : " "
503244
- }, undefined, false, undefined, this),
503245
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503246
- bold: i2 === focusIdx,
503247
- color: i2 === focusIdx ? "#818cf8" : undefined,
503248
- children: opt.label
503249
- }, undefined, false, undefined, this)
503250
- ]
503251
- }, opt.value, true, undefined, this))
503252
- }, undefined, false, undefined, this),
503253
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503254
- dimColor: true,
503255
- children: "↑↓ navigate · Enter confirm · Esc exit"
503256
- }, undefined, false, undefined, this)
503257
- ]
503258
- }, undefined, true, undefined, this)
503259
- ]
503260
- }, undefined, true, undefined, this);
503261
- }
503262
- var import_react321, jsx_dev_runtime483, CONTINUE_OPTIONS, SETUP_OPTIONS;
503263
- var init_StartPage = __esm(() => {
503264
- init_ink2();
503265
- init_gracefulShutdown();
503266
- init_providers();
503267
- init_WelcomeV2();
503268
- import_react321 = __toESM(require_react(), 1);
503269
- jsx_dev_runtime483 = __toESM(require_jsx_dev_runtime(), 1);
503270
- CONTINUE_OPTIONS = [
503271
- { label: "Continue to dashboard", value: "continue" },
503272
- { label: "Change backend", value: "configure-backend" }
503273
- ];
503274
- SETUP_OPTIONS = [
503275
- { label: "Set up a backend now", value: "configure-backend" },
503276
- { label: "Skip for now", value: "continue" }
503277
- ];
503278
- });
503279
-
503280
- // src/components/ui/OrderedListItem.tsx
503281
- function OrderedListItem(t0) {
503282
- const $2 = c3(7);
503283
- const {
503284
- children
503285
- } = t0;
503286
- const {
503287
- marker
503288
- } = import_react322.useContext(OrderedListItemContext);
503289
- let t1;
503290
- if ($2[0] !== marker) {
503291
- t1 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
503292
- dimColor: true,
503293
- children: marker
503294
- }, undefined, false, undefined, this);
503295
- $2[0] = marker;
503296
- $2[1] = t1;
503297
- } else {
503298
- t1 = $2[1];
503299
- }
503300
- let t2;
503301
- if ($2[2] !== children) {
503302
- t2 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
503303
- flexDirection: "column",
503304
- children
503305
- }, undefined, false, undefined, this);
503306
- $2[2] = children;
503307
- $2[3] = t2;
503308
- } else {
503309
- t2 = $2[3];
503310
- }
503311
- let t3;
503312
- if ($2[4] !== t1 || $2[5] !== t2) {
503313
- t3 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
503314
- gap: 1,
503315
- children: [
503316
- t1,
503317
- t2
503318
- ]
503319
- }, undefined, true, undefined, this);
503320
- $2[4] = t1;
503321
- $2[5] = t2;
503322
- $2[6] = t3;
503323
- } else {
503324
- t3 = $2[6];
503325
- }
503326
- return t3;
503327
- }
503328
- var import_react322, jsx_dev_runtime484, OrderedListItemContext;
503329
- var init_OrderedListItem = __esm(() => {
503330
- init_ink2();
503331
- import_react322 = __toESM(require_react(), 1);
503332
- jsx_dev_runtime484 = __toESM(require_jsx_dev_runtime(), 1);
503333
- OrderedListItemContext = import_react322.createContext({
503334
- marker: ""
503335
- });
503336
- });
503337
-
503338
- // src/components/ui/OrderedList.tsx
503339
- function OrderedListComponent(t0) {
503340
- const $2 = c3(9);
503341
- const {
503342
- children
503343
- } = t0;
503344
- const {
503345
- marker: parentMarker
503346
- } = import_react323.useContext(OrderedListContext);
503347
- let numberOfItems = 0;
503348
- for (const child of import_react323.default.Children.toArray(children)) {
503349
- if (!import_react323.isValidElement(child) || child.type !== OrderedListItem) {
503350
- continue;
503351
- }
503352
- numberOfItems++;
503353
- }
503354
- const maxMarkerWidth = String(numberOfItems).length;
503355
- let t1;
503356
- if ($2[0] !== children || $2[1] !== maxMarkerWidth || $2[2] !== parentMarker) {
503357
- let t22;
503358
- if ($2[4] !== maxMarkerWidth || $2[5] !== parentMarker) {
503359
- t22 = (child_0, index) => {
503360
- if (!import_react323.isValidElement(child_0) || child_0.type !== OrderedListItem) {
503361
- return child_0;
503362
- }
503363
- const paddedMarker = `${String(index + 1).padStart(maxMarkerWidth)}.`;
503364
- const marker = `${parentMarker}${paddedMarker}`;
503365
- return /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(OrderedListContext.Provider, {
503366
- value: {
503367
- marker
503368
- },
503369
- children: /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(OrderedListItemContext.Provider, {
503370
- value: {
503371
- marker
503372
- },
503373
- children: child_0
503374
- }, undefined, false, undefined, this)
503375
- }, undefined, false, undefined, this);
503376
- };
503377
- $2[4] = maxMarkerWidth;
503378
- $2[5] = parentMarker;
503379
- $2[6] = t22;
503380
- } else {
503381
- t22 = $2[6];
503382
- }
503383
- t1 = import_react323.default.Children.map(children, t22);
503384
- $2[0] = children;
503385
- $2[1] = maxMarkerWidth;
503386
- $2[2] = parentMarker;
503387
- $2[3] = t1;
503388
- } else {
503389
- t1 = $2[3];
503390
- }
503391
- let t2;
503392
- if ($2[7] !== t1) {
503393
- t2 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
503394
- flexDirection: "column",
503395
- children: t1
503396
- }, undefined, false, undefined, this);
503397
- $2[7] = t1;
503398
- $2[8] = t2;
503399
- } else {
503400
- t2 = $2[8];
503401
- }
503402
- return t2;
503403
- }
503404
- var import_react323, jsx_dev_runtime485, OrderedListContext, OrderedList;
503405
- var init_OrderedList = __esm(() => {
503406
- init_ink2();
503407
- init_OrderedListItem();
503408
- import_react323 = __toESM(require_react(), 1);
503409
- jsx_dev_runtime485 = __toESM(require_jsx_dev_runtime(), 1);
503410
- OrderedListContext = import_react323.createContext({
503411
- marker: ""
503412
- });
503413
- OrderedListComponent.Item = OrderedListItem;
503414
- OrderedList = OrderedListComponent;
503415
- });
503416
-
503417
- // src/components/Onboarding.tsx
503418
- var exports_Onboarding = {};
503419
- __export(exports_Onboarding, {
503420
- Onboarding: () => Onboarding
503421
- });
503422
- function isEnter3(input, key) {
503423
- return key.return || input === "\r" || input === `
503424
- `;
503425
- }
503426
- function SimpleMenu2({ items, isActive, onSelect, onCancel }) {
503427
- const VISIBLE = Math.min(7, items.length);
503428
- const [focusIdx, setFocusIdx] = import_react324.useState(0);
503429
- const [fromIdx, setFromIdx] = import_react324.useState(0);
503430
- const [submitted, setSubmitted] = import_react324.useState(false);
503431
- use_input_default((input, key) => {
503432
- if (!isActive || submitted)
503433
- return;
503434
- if (key.upArrow) {
503435
- setFocusIdx((prev) => {
503436
- const next = Math.max(0, prev - 1);
503437
- if (next < fromIdx)
503438
- setFromIdx(next);
503439
- return next;
503440
- });
503441
- } else if (key.downArrow) {
503442
- setFocusIdx((prev) => {
503443
- const next = Math.min(items.length - 1, prev + 1);
503444
- if (next >= fromIdx + VISIBLE)
503445
- setFromIdx(next - VISIBLE + 1);
503446
- return next;
503447
- });
503448
- } else if (isEnter3(input, key)) {
503449
- const item = items[focusIdx];
503450
- if (item) {
503451
- setSubmitted(true);
503452
- onSelect(item.value);
503453
- }
503454
- } else if (key.escape || key.ctrl && input === "c") {
503455
- onCancel?.();
503456
- }
503457
- });
503458
- const visible = items.slice(fromIdx, fromIdx + VISIBLE);
503459
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503460
- flexDirection: "column",
503461
- children: [
503462
- fromIdx > 0 && /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503463
- dimColor: true,
503464
- children: " ↑ more"
503465
- }, undefined, false, undefined, this),
503466
- visible.map((item, i2) => {
503467
- const absIdx = fromIdx + i2;
503468
- const focused = absIdx === focusIdx;
503469
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503470
- gap: 1,
503471
- children: [
503472
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503473
- color: "#6366f1",
503474
- children: focused ? "▶" : " "
503475
- }, undefined, false, undefined, this),
503476
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503477
- bold: focused,
503478
- color: focused ? "#818cf8" : undefined,
503479
- children: item.label
503480
- }, undefined, false, undefined, this)
503481
- ]
503482
- }, String(item.value), true, undefined, this);
503483
- }),
503484
- fromIdx + VISIBLE < items.length && /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503485
- dimColor: true,
503486
- children: " ↓ more"
503487
- }, undefined, false, undefined, this)
503488
- ]
503489
- }, undefined, true, undefined, this);
503490
- }
503491
- function PressEnterToContinue2({ isActive, onContinue }) {
503492
- const [done, setDone] = import_react324.useState(false);
503493
- use_input_default((input, key) => {
503494
- if (!isActive || done)
503495
- return;
503496
- if (isEnter3(input, key)) {
503497
- setDone(true);
503498
- onContinue();
503499
- }
503500
- });
503501
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503502
- color: "permission",
503503
- children: [
503504
- "Press ",
503505
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503506
- bold: true,
503507
- children: "Enter"
503508
- }, undefined, false, undefined, this),
503509
- " to continue…"
503510
- ]
503511
- }, undefined, true, undefined, this);
503512
- }
503513
- function Onboarding({ onDone, showWelcome = true }) {
503514
- const [currentStepIndex, setCurrentStepIndex] = import_react324.useState(0);
503515
- const [theme2, setTheme] = useTheme();
503516
- const goToNextStep = import_react324.useCallback(() => {
503517
- setCurrentStepIndex((current) => {
503518
- if (current >= steps.length - 1) {
503519
- onDone();
503520
- return current;
503521
- }
503522
- return current + 1;
503523
- });
503524
- }, [onDone]);
503525
- const handleThemeSelection = import_react324.useCallback((newTheme) => {
503526
- setTheme(newTheme);
503527
- goToNextStep();
503528
- }, [goToNextStep, setTheme]);
503529
- const handleLocalBackendSetup = import_react324.useCallback((config2, options) => {
503530
- if (options?.saveGlobally === false) {
503531
- setSessionLocalLLMConfigOverride(config2);
503532
- } else {
503533
- clearSessionLocalLLMConfigOverride();
503534
- saveGlobalConfig((current) => ({
503535
- ...current,
503536
- localBackendProvider: config2.provider,
503537
- localBackendBaseUrl: config2.baseUrl,
503538
- localBackendModel: config2.model,
503539
- localBackendApiKey: config2.apiKey
503540
- }));
503541
- }
503542
- goToNextStep();
503543
- }, [goToNextStep]);
503544
- const themeItems = THEME_SETTINGS.map((s) => ({
503545
- label: s === "auto" ? "Auto (follow system)" : s,
503546
- value: s
503547
- }));
503548
- const compactItems = [
503549
- {
503550
- label: `${formatCompactContextWindowOption(undefined)} (recommended)`,
503551
- value: "default"
503552
- },
503553
- ...COMPACT_CONTEXT_WINDOW_CHOICES.map((tokens) => ({
503554
- label: formatCompactContextWindowOption(tokens),
503555
- value: String(tokens)
503556
- }))
503557
- ];
503558
- const steps = import_react324.useMemo(() => {
503559
- const config2 = getGlobalConfig();
503560
- const result = [
503561
- {
503562
- id: "theme",
503563
- component: (isActive2) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503564
- flexDirection: "column",
503565
- gap: 1,
503566
- paddingLeft: 1,
503567
- children: [
503568
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503569
- bold: true,
503570
- children: "Choose a theme"
503571
- }, undefined, false, undefined, this),
503572
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(SimpleMenu2, {
503573
- items: themeItems,
503574
- isActive: isActive2,
503575
- onSelect: handleThemeSelection,
503576
- onCancel: goToNextStep
503577
- }, undefined, false, undefined, this),
503578
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503579
- dimColor: true,
503580
- children: "Change later with /theme"
503581
- }, undefined, false, undefined, this)
503582
- ]
503583
- }, undefined, true, undefined, this)
503584
- },
503585
- {
503586
- id: "compact-context",
503587
- component: (isActive2) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503588
- flexDirection: "column",
503589
- gap: 1,
503590
- paddingLeft: 1,
503591
- width: 70,
503592
- children: [
503593
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503594
- bold: true,
503595
- children: "Choose a compact context window"
503596
- }, undefined, false, undefined, this),
503597
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503598
- dimColor: true,
503599
- wrap: "wrap",
503600
- children: "localclawd can compact earlier than the model's full advertised window. Useful for local models that degrade before hitting their limit."
503601
- }, undefined, false, undefined, this),
503602
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(SimpleMenu2, {
503603
- items: compactItems,
503604
- isActive: isActive2,
503605
- onSelect: (value) => {
503606
- const compactContextWindowTokens = value === "default" ? undefined : parseInt(value, 10);
503607
- saveGlobalConfig((current) => ({ ...current, compactContextWindowTokens }));
503608
- goToNextStep();
503609
- },
503610
- onCancel: goToNextStep
503611
- }, undefined, false, undefined, this),
503612
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503613
- dimColor: true,
503614
- children: "Change later in /config under Compact context window."
503615
- }, undefined, false, undefined, this)
503616
- ]
503617
- }, undefined, true, undefined, this)
503618
- },
503619
- {
503620
- id: "local-backend",
503621
- component: (_isActive) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(LocalBackendSetup, {
503622
- initialConfig: {
503623
- provider: config2.localBackendProvider,
503624
- baseUrl: config2.localBackendBaseUrl,
503625
- model: config2.localBackendModel,
503626
- apiKey: config2.localBackendApiKey
503627
- },
503628
- onComplete: handleLocalBackendSetup,
503629
- onCancel: goToNextStep,
503630
- title: "Choose your local backend",
503631
- description: "Set the OpenAI-compatible endpoint and model localclawd should use. You can point it at vLLM, Ollama, or any compatible host.",
503632
- showSaveGloballyOption: true
503633
- }, undefined, false, undefined, this)
503634
- },
503635
- {
503636
- id: "security",
503637
- component: (isActive2) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503638
- flexDirection: "column",
503639
- gap: 1,
503640
- paddingLeft: 1,
503641
- children: [
503642
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503643
- bold: true,
503644
- children: "Security notes:"
503645
- }, undefined, false, undefined, this),
503646
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503647
- flexDirection: "column",
503648
- width: 70,
503649
- children: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList, {
503650
- children: [
503651
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList.Item, {
503652
- children: [
503653
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503654
- children: "localclawd can make mistakes"
503655
- }, undefined, false, undefined, this),
503656
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503657
- dimColor: true,
503658
- wrap: "wrap",
503659
- children: [
503660
- "Always review responses, especially when running code.",
503661
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Newline, {}, undefined, false, undefined, this)
503662
- ]
503663
- }, undefined, true, undefined, this)
503664
- ]
503665
- }, undefined, true, undefined, this),
503666
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(OrderedList.Item, {
503667
- children: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503668
- children: "Due to prompt injection risks, only use it with code you trust"
503669
- }, undefined, false, undefined, this)
503670
- }, undefined, false, undefined, this)
503671
- ]
503672
- }, undefined, true, undefined, this)
503673
- }, undefined, false, undefined, this),
503674
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(PressEnterToContinue2, {
503675
- isActive: isActive2,
503676
- onContinue: goToNextStep
503677
- }, undefined, false, undefined, this)
503678
- ]
503679
- }, undefined, true, undefined, this)
503680
- }
503681
- ];
503682
- if (shouldOfferTerminalSetup()) {
503683
- const terminalItems = [
503684
- { label: "Yes, use recommended settings", value: "install" },
503685
- { label: "No, maybe later with /terminal-setup", value: "no" }
503686
- ];
503687
- result.push({
503688
- id: "terminal-setup",
503689
- component: (isActive2) => /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503690
- flexDirection: "column",
503691
- gap: 1,
503692
- paddingLeft: 1,
503693
- children: [
503694
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503695
- bold: true,
503696
- children: "Use localclawd's terminal setup?"
503697
- }, undefined, false, undefined, this),
503698
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503699
- flexDirection: "column",
503700
- width: 70,
503701
- gap: 1,
503702
- children: [
503703
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503704
- children: [
503705
- "For the optimal experience, enable recommended settings",
503706
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Newline, {}, undefined, false, undefined, this),
503707
- "for your terminal:",
503708
- " ",
503709
- env4.terminal === "Apple_Terminal" ? "Option+Enter for newlines and visual bell" : "Shift+Enter for newlines"
503710
- ]
503711
- }, undefined, true, undefined, this),
503712
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(SimpleMenu2, {
503713
- items: terminalItems,
503714
- isActive: isActive2,
503715
- onSelect: (value) => {
503716
- if (value === "install") {
503717
- setupTerminal(theme2).catch(() => {}).finally(goToNextStep);
503718
- } else {
503719
- goToNextStep();
503720
- }
503721
- },
503722
- onCancel: goToNextStep
503723
- }, undefined, false, undefined, this)
503724
- ]
503725
- }, undefined, true, undefined, this)
503726
- ]
503727
- }, undefined, true, undefined, this)
503728
- });
503729
- }
503730
- return result;
503731
- }, [goToNextStep, handleLocalBackendSetup, handleThemeSelection, theme2]);
503732
- const currentStep = steps[currentStepIndex];
503733
- const isActive = true;
503734
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503735
- flexDirection: "column",
503736
- children: [
503737
- showWelcome ? /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this) : null,
503738
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503739
- flexDirection: "column",
503740
- marginTop: 1,
503741
- children: currentStep?.component(isActive)
503742
- }, undefined, false, undefined, this)
503743
- ]
503744
- }, undefined, true, undefined, this);
503745
- }
503746
- var import_react324, jsx_dev_runtime486;
503747
- var init_Onboarding = __esm(() => {
503748
- init_terminalSetup();
503749
- init_ink2();
503750
- init_config();
503751
- init_context();
503752
- init_env();
503753
- init_providers();
503754
- init_theme();
503755
- init_LocalBackendSetup();
503756
- init_WelcomeV2();
503757
- init_OrderedList();
503758
- import_react324 = __toESM(require_react(), 1);
503759
- jsx_dev_runtime486 = __toESM(require_jsx_dev_runtime(), 1);
503760
- });
503761
-
503762
503037
  // src/components/TrustDialog/TrustDialog.tsx
503763
503038
  var exports_TrustDialog = {};
503764
503039
  __export(exports_TrustDialog, {
503765
503040
  TrustDialog: () => TrustDialog
503766
503041
  });
503767
503042
  import { homedir as homedir36 } from "os";
503768
- function isEnter4(input, key) {
503769
- return key.return || input === "\r" || input === `
503770
- `;
503771
- }
503772
503043
  function TrustDialog({ onDone }) {
503773
- const [focusIdx, setFocusIdx] = import_react325.useState(0);
503774
- const [accepted, setAccepted] = import_react325.useState(false);
503775
- import_react325.useEffect(() => {
503776
- if (checkHasTrustDialogAccepted()) {
503777
- setSessionTrustAccepted(true);
503778
- setAccepted(true);
503779
- onDone();
503780
- }
503781
- }, []);
503044
+ const [focusIdx, setFocusIdx] = import_react321.useState(0);
503045
+ const doneRef = import_react321.useRef(false);
503782
503046
  use_input_default((input, key) => {
503783
- if (accepted)
503047
+ if (doneRef.current)
503784
503048
  return;
503785
503049
  if (key.upArrow) {
503786
503050
  setFocusIdx((i2) => (i2 - 1 + OPTIONS.length) % OPTIONS.length);
503787
503051
  } else if (key.downArrow) {
503788
503052
  setFocusIdx((i2) => (i2 + 1) % OPTIONS.length);
503789
- } else if (isEnter4(input, key)) {
503053
+ } else if (key.return) {
503054
+ doneRef.current = true;
503790
503055
  const chosen = OPTIONS[focusIdx];
503791
503056
  if (chosen?.value === "exit") {
503792
503057
  gracefulShutdownSync(1);
503793
503058
  } else {
503794
503059
  try {
503795
- const isHomeDir = homedir36() === getCwd();
503796
- if (!isHomeDir) {
503060
+ if (homedir36() !== getCwd()) {
503797
503061
  try {
503798
- saveCurrentProjectConfig((current) => ({ ...current, hasTrustDialogAccepted: true }));
503062
+ saveCurrentProjectConfig((c5) => ({ ...c5, hasTrustDialogAccepted: true }));
503799
503063
  } catch {}
503800
503064
  }
503801
503065
  setSessionTrustAccepted(true);
503802
503066
  } finally {
503803
- setAccepted(true);
503804
503067
  onDone();
503805
503068
  }
503806
503069
  }
@@ -503809,53 +503072,39 @@ function TrustDialog({ onDone }) {
503809
503072
  }
503810
503073
  });
503811
503074
  const cwd2 = getFsImplementation().cwd();
503812
- if (accepted) {
503813
- return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(PermissionDialog, {
503814
- color: "warning",
503815
- titleColor: "warning",
503816
- title: "Accessing workspace:",
503817
- children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
503818
- paddingTop: 1,
503819
- children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
503820
- dimColor: true,
503821
- children: "Trusted. Loading…"
503822
- }, undefined, false, undefined, this)
503823
- }, undefined, false, undefined, this)
503824
- }, undefined, false, undefined, this);
503825
- }
503826
- return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(PermissionDialog, {
503075
+ return /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(PermissionDialog, {
503827
503076
  color: "warning",
503828
503077
  titleColor: "warning",
503829
503078
  title: "Accessing workspace:",
503830
- children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
503079
+ children: /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedBox_default, {
503831
503080
  flexDirection: "column",
503832
503081
  gap: 1,
503833
503082
  paddingTop: 1,
503834
503083
  children: [
503835
- /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
503084
+ /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503836
503085
  bold: true,
503837
503086
  children: cwd2
503838
503087
  }, undefined, false, undefined, this),
503839
- /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
503088
+ /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503840
503089
  children: [
503841
503090
  "Quick safety check: Is this a project you created or one you trust? (Like your own code, a well-known open source project, or work from your team.) If not, take a moment to review what",
503842
503091
  "'",
503843
503092
  "s in this folder first."
503844
503093
  ]
503845
503094
  }, undefined, true, undefined, this),
503846
- /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
503095
+ /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503847
503096
  children: "localClawd'll be able to read, edit, and execute files here."
503848
503097
  }, undefined, false, undefined, this),
503849
- /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
503098
+ /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedBox_default, {
503850
503099
  flexDirection: "column",
503851
- children: OPTIONS.map((opt, i2) => /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
503100
+ children: OPTIONS.map((opt, i2) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedBox_default, {
503852
503101
  gap: 1,
503853
503102
  children: [
503854
- /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
503103
+ /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503855
503104
  color: "yellow",
503856
503105
  children: i2 === focusIdx ? "▶" : " "
503857
503106
  }, undefined, false, undefined, this),
503858
- /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
503107
+ /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503859
503108
  bold: i2 === focusIdx,
503860
503109
  color: i2 === focusIdx ? "white" : undefined,
503861
503110
  children: opt.label
@@ -503863,7 +503112,7 @@ function TrustDialog({ onDone }) {
503863
503112
  ]
503864
503113
  }, opt.value, true, undefined, this))
503865
503114
  }, undefined, false, undefined, this),
503866
- /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
503115
+ /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
503867
503116
  dimColor: true,
503868
503117
  children: "↑↓ navigate · Enter confirm · Esc cancel"
503869
503118
  }, undefined, false, undefined, this)
@@ -503871,7 +503120,7 @@ function TrustDialog({ onDone }) {
503871
503120
  }, undefined, true, undefined, this)
503872
503121
  }, undefined, false, undefined, this);
503873
503122
  }
503874
- var import_react325, jsx_dev_runtime487, OPTIONS;
503123
+ var import_react321, jsx_dev_runtime482, OPTIONS;
503875
503124
  var init_TrustDialog = __esm(() => {
503876
503125
  init_ink2();
503877
503126
  init_state();
@@ -503880,8 +503129,8 @@ var init_TrustDialog = __esm(() => {
503880
503129
  init_fsOperations();
503881
503130
  init_gracefulShutdown();
503882
503131
  init_PermissionDialog();
503883
- import_react325 = __toESM(require_react(), 1);
503884
- jsx_dev_runtime487 = __toESM(require_jsx_dev_runtime(), 1);
503132
+ import_react321 = __toESM(require_react(), 1);
503133
+ jsx_dev_runtime482 = __toESM(require_jsx_dev_runtime(), 1);
503885
503134
  OPTIONS = [
503886
503135
  { label: "Yes, I trust this folder", value: "enable_all" },
503887
503136
  { label: "No, exit", value: "exit" }
@@ -503905,7 +503154,7 @@ function BypassPermissionsModeDialog(t0) {
503905
503154
  } else {
503906
503155
  t1 = $2[0];
503907
503156
  }
503908
- import_react326.default.useEffect(_temp303, t1);
503157
+ import_react322.default.useEffect(_temp303, t1);
503909
503158
  let t2;
503910
503159
  if ($2[1] !== onAccept) {
503911
503160
  t2 = function onChange2(value) {
@@ -503933,21 +503182,21 @@ function BypassPermissionsModeDialog(t0) {
503933
503182
  const handleEscape = _temp2101;
503934
503183
  let t3;
503935
503184
  if ($2[3] === Symbol.for("react.memo_cache_sentinel")) {
503936
- t3 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
503185
+ t3 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
503937
503186
  flexDirection: "column",
503938
503187
  gap: 1,
503939
503188
  children: [
503940
- /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
503189
+ /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503941
503190
  children: [
503942
503191
  "In Bypass Permissions mode, localclawd will not ask for your approval before running potentially dangerous commands.",
503943
- /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(Newline, {}, undefined, false, undefined, this),
503192
+ /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Newline, {}, undefined, false, undefined, this),
503944
503193
  "This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."
503945
503194
  ]
503946
503195
  }, undefined, true, undefined, this),
503947
- /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
503196
+ /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
503948
503197
  children: "By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."
503949
503198
  }, undefined, false, undefined, this),
503950
- /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(Link, {
503199
+ /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Link, {
503951
503200
  url: "https://github.com/chromebookwiz/localclawd"
503952
503201
  }, undefined, false, undefined, this)
503953
503202
  ]
@@ -503971,13 +503220,13 @@ function BypassPermissionsModeDialog(t0) {
503971
503220
  }
503972
503221
  let t5;
503973
503222
  if ($2[5] !== onChange) {
503974
- t5 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(Dialog, {
503223
+ t5 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Dialog, {
503975
503224
  title: "WARNING: localclawd running in Bypass Permissions mode",
503976
503225
  color: "error",
503977
503226
  onCancel: handleEscape,
503978
503227
  children: [
503979
503228
  t3,
503980
- /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(Select, {
503229
+ /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Select, {
503981
503230
  options: t4,
503982
503231
  onChange: (value_0) => onChange(value_0)
503983
503232
  }, undefined, false, undefined, this)
@@ -503996,15 +503245,15 @@ function _temp2101() {
503996
503245
  function _temp303() {
503997
503246
  logEvent("tengu_bypass_permissions_mode_dialog_shown", {});
503998
503247
  }
503999
- var import_react326, jsx_dev_runtime488;
503248
+ var import_react322, jsx_dev_runtime483;
504000
503249
  var init_BypassPermissionsModeDialog = __esm(() => {
504001
503250
  init_ink2();
504002
503251
  init_gracefulShutdown();
504003
503252
  init_settings2();
504004
503253
  init_CustomSelect();
504005
503254
  init_Dialog();
504006
- import_react326 = __toESM(require_react(), 1);
504007
- jsx_dev_runtime488 = __toESM(require_jsx_dev_runtime(), 1);
503255
+ import_react322 = __toESM(require_react(), 1);
503256
+ jsx_dev_runtime483 = __toESM(require_jsx_dev_runtime(), 1);
504008
503257
  });
504009
503258
 
504010
503259
  // src/components/ClaudeInChromeOnboarding.tsx
@@ -504017,7 +503266,7 @@ function ClaudeInChromeOnboarding(t0) {
504017
503266
  const {
504018
503267
  onDone
504019
503268
  } = t0;
504020
- const [isExtensionInstalled, setIsExtensionInstalled] = import_react327.default.useState(false);
503269
+ const [isExtensionInstalled, setIsExtensionInstalled] = import_react323.default.useState(false);
504021
503270
  let t1;
504022
503271
  let t2;
504023
503272
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
@@ -504033,7 +503282,7 @@ function ClaudeInChromeOnboarding(t0) {
504033
503282
  t1 = $2[0];
504034
503283
  t2 = $2[1];
504035
503284
  }
504036
- import_react327.default.useEffect(t1, t2);
503285
+ import_react323.default.useEffect(t1, t2);
504037
503286
  let t3;
504038
503287
  if ($2[2] !== onDone) {
504039
503288
  t3 = (_input, key) => {
@@ -504049,13 +503298,13 @@ function ClaudeInChromeOnboarding(t0) {
504049
503298
  use_input_default(t3);
504050
503299
  let t4;
504051
503300
  if ($2[4] !== isExtensionInstalled) {
504052
- t4 = !isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(jsx_dev_runtime489.Fragment, {
503301
+ t4 = !isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(jsx_dev_runtime484.Fragment, {
504053
503302
  children: [
504054
- /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Newline, {}, undefined, false, undefined, this),
504055
- /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Newline, {}, undefined, false, undefined, this),
503303
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Newline, {}, undefined, false, undefined, this),
503304
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Newline, {}, undefined, false, undefined, this),
504056
503305
  "Requires the Chrome extension. Get started at",
504057
503306
  " ",
504058
- /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Link, {
503307
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Link, {
504059
503308
  url: CHROME_EXTENSION_URL2
504060
503309
  }, undefined, false, undefined, this)
504061
503310
  ]
@@ -504067,7 +503316,7 @@ function ClaudeInChromeOnboarding(t0) {
504067
503316
  }
504068
503317
  let t5;
504069
503318
  if ($2[6] !== t4) {
504070
- t5 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
503319
+ t5 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
504071
503320
  children: [
504072
503321
  "localclawd in Chrome works with the Chrome extension to let you control your browser directly from localclawd. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.",
504073
503322
  t4
@@ -504080,11 +503329,11 @@ function ClaudeInChromeOnboarding(t0) {
504080
503329
  }
504081
503330
  let t6;
504082
503331
  if ($2[8] !== isExtensionInstalled) {
504083
- t6 = isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(jsx_dev_runtime489.Fragment, {
503332
+ t6 = isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(jsx_dev_runtime484.Fragment, {
504084
503333
  children: [
504085
503334
  " ",
504086
503335
  "(",
504087
- /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Link, {
503336
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Link, {
504088
503337
  url: CHROME_PERMISSIONS_URL2
504089
503338
  }, undefined, false, undefined, this),
504090
503339
  ")"
@@ -504097,7 +503346,7 @@ function ClaudeInChromeOnboarding(t0) {
504097
503346
  }
504098
503347
  let t7;
504099
503348
  if ($2[10] !== t6) {
504100
- t7 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
503349
+ t7 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
504101
503350
  dimColor: true,
504102
503351
  children: [
504103
503352
  "Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites localclawd can browse, click, and type on",
@@ -504112,7 +503361,7 @@ function ClaudeInChromeOnboarding(t0) {
504112
503361
  }
504113
503362
  let t8;
504114
503363
  if ($2[12] === Symbol.for("react.memo_cache_sentinel")) {
504115
- t8 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
503364
+ t8 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
504116
503365
  bold: true,
504117
503366
  color: "chromeYellow",
504118
503367
  children: "/chrome"
@@ -504123,7 +503372,7 @@ function ClaudeInChromeOnboarding(t0) {
504123
503372
  }
504124
503373
  let t9;
504125
503374
  if ($2[13] === Symbol.for("react.memo_cache_sentinel")) {
504126
- t9 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
503375
+ t9 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
504127
503376
  dimColor: true,
504128
503377
  children: [
504129
503378
  "For more info, use",
@@ -504131,7 +503380,7 @@ function ClaudeInChromeOnboarding(t0) {
504131
503380
  t8,
504132
503381
  " ",
504133
503382
  "or visit ",
504134
- /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Link, {
503383
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Link, {
504135
503384
  url: "https://github.com/chromebookwiz/localclawd"
504136
503385
  }, undefined, false, undefined, this)
504137
503386
  ]
@@ -504142,7 +503391,7 @@ function ClaudeInChromeOnboarding(t0) {
504142
503391
  }
504143
503392
  let t10;
504144
503393
  if ($2[14] !== t5 || $2[15] !== t7) {
504145
- t10 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
503394
+ t10 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
504146
503395
  flexDirection: "column",
504147
503396
  gap: 1,
504148
503397
  children: [
@@ -504159,7 +503408,7 @@ function ClaudeInChromeOnboarding(t0) {
504159
503408
  }
504160
503409
  let t11;
504161
503410
  if ($2[17] !== onDone || $2[18] !== t10) {
504162
- t11 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Dialog, {
503411
+ t11 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Dialog, {
504163
503412
  title: "localclawd in Chrome (Beta)",
504164
503413
  onCancel: onDone,
504165
503414
  color: "chromeYellow",
@@ -504179,25 +503428,18 @@ function _temp304(current) {
504179
503428
  hasCompletedClaudeInChromeOnboarding: true
504180
503429
  };
504181
503430
  }
504182
- var import_react327, jsx_dev_runtime489, CHROME_EXTENSION_URL2 = "https://github.com/chromebookwiz/localclawd", CHROME_PERMISSIONS_URL2 = "https://clau.de/chrome/permissions";
503431
+ var import_react323, jsx_dev_runtime484, CHROME_EXTENSION_URL2 = "https://github.com/chromebookwiz/localclawd", CHROME_PERMISSIONS_URL2 = "https://clau.de/chrome/permissions";
504183
503432
  var init_ClaudeInChromeOnboarding = __esm(() => {
504184
503433
  init_ink2();
504185
503434
  init_setup3();
504186
503435
  init_config();
504187
503436
  init_Dialog();
504188
- import_react327 = __toESM(require_react(), 1);
504189
- jsx_dev_runtime489 = __toESM(require_jsx_dev_runtime(), 1);
503437
+ import_react323 = __toESM(require_react(), 1);
503438
+ jsx_dev_runtime484 = __toESM(require_jsx_dev_runtime(), 1);
504190
503439
  });
504191
503440
 
504192
503441
  // src/interactiveHelpers.tsx
504193
503442
  import { appendFileSync as appendFileSync3 } from "fs";
504194
- function completeOnboarding() {
504195
- saveGlobalConfig((current) => ({
504196
- ...current,
504197
- hasCompletedOnboarding: true,
504198
- lastOnboardingVersion: "1.1.12"
504199
- }));
504200
- }
504201
503443
  function showDialog(root3, renderer) {
504202
503444
  return new Promise((resolve40) => {
504203
503445
  const done = (result) => void resolve40(result);
@@ -504216,10 +503458,10 @@ async function exitWithMessage2(root3, message, options) {
504216
503458
  } = await Promise.resolve().then(() => (init_ink2(), exports_ink));
504217
503459
  const color3 = options?.color;
504218
503460
  const exitCode = options?.exitCode ?? 1;
504219
- root3.render(color3 ? /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Text6, {
503461
+ root3.render(color3 ? /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(Text6, {
504220
503462
  color: color3,
504221
503463
  children: message
504222
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Text6, {
503464
+ }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(Text6, {
504223
503465
  children: message
504224
503466
  }, undefined, false, undefined, this));
504225
503467
  root3.unmount();
@@ -504227,7 +503469,7 @@ async function exitWithMessage2(root3, message, options) {
504227
503469
  process.exit(exitCode);
504228
503470
  }
504229
503471
  function showSetupDialog(root3, renderer, options) {
504230
- return showDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(AppStateProvider, {
503472
+ return showDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(AppStateProvider, {
504231
503473
  onChangeAppState: options?.onChangeAppState,
504232
503474
  children: renderer(done)
504233
503475
  }, undefined, false, undefined, this));
@@ -504242,87 +503484,15 @@ async function showSetupScreens(root3, permissionMode, allowDangerouslySkipPermi
504242
503484
  if (isEnvTruthy(false) || process.env.IS_DEMO) {
504243
503485
  return false;
504244
503486
  }
504245
- const config2 = getGlobalConfig();
504246
- const {
504247
- StartPage: StartPage2
504248
- } = await Promise.resolve().then(() => (init_StartPage(), exports_StartPage));
504249
- const startAction = await showDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(AppStateProvider, {
504250
- onChangeAppState,
504251
- children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(StartPage2, {
504252
- currentConfig: {
504253
- provider: config2.localBackendProvider,
504254
- baseUrl: config2.localBackendBaseUrl,
504255
- model: config2.localBackendModel,
504256
- apiKey: config2.localBackendApiKey
504257
- },
504258
- onDone: done
504259
- }, undefined, false, undefined, this)
504260
- }, undefined, false, undefined, this));
504261
- if (startAction === "configure-backend") {
504262
- const {
504263
- LocalBackendSetup: LocalBackendSetup2
504264
- } = await Promise.resolve().then(() => (init_LocalBackendSetup(), exports_LocalBackendSetup));
504265
- const {
504266
- clearSessionLocalLLMConfigOverride: clearSessionLocalLLMConfigOverride2,
504267
- setSessionLocalLLMConfigOverride: setSessionLocalLLMConfigOverride2
504268
- } = await Promise.resolve().then(() => (init_providers(), exports_providers));
504269
- await showDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(AppStateProvider, {
504270
- onChangeAppState,
504271
- children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(LocalBackendSetup2, {
504272
- initialConfig: {
504273
- provider: config2.localBackendProvider,
504274
- baseUrl: config2.localBackendBaseUrl,
504275
- model: config2.localBackendModel,
504276
- apiKey: config2.localBackendApiKey
504277
- },
504278
- onComplete: (nextConfig, options) => {
504279
- if (options?.saveGlobally === false) {
504280
- setSessionLocalLLMConfigOverride2(nextConfig);
504281
- } else {
504282
- clearSessionLocalLLMConfigOverride2();
504283
- saveGlobalConfig((current) => ({
504284
- ...current,
504285
- localBackendProvider: nextConfig.provider,
504286
- localBackendBaseUrl: nextConfig.baseUrl,
504287
- localBackendModel: nextConfig.model,
504288
- localBackendApiKey: nextConfig.apiKey
504289
- }));
504290
- }
504291
- done();
504292
- },
504293
- onCancel: () => {
504294
- done();
504295
- },
504296
- title: "Connect your model backend",
504297
- description: "Choose the OpenAI-compatible endpoint localclawd should talk to. You can save it globally for every run or use it only for this launch.",
504298
- showSaveGloballyOption: true
504299
- }, undefined, false, undefined, this)
504300
- }, undefined, false, undefined, this));
504301
- }
504302
- let onboardingShown = false;
504303
- if (!config2.theme || !config2.hasCompletedOnboarding) {
504304
- onboardingShown = true;
504305
- const {
504306
- Onboarding: Onboarding2
504307
- } = await Promise.resolve().then(() => (init_Onboarding(), exports_Onboarding));
504308
- await showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Onboarding2, {
504309
- showWelcome: false,
504310
- onDone: () => {
504311
- completeOnboarding();
504312
- done();
504313
- }
504314
- }, undefined, false, undefined, this), {
504315
- onChangeAppState
504316
- });
504317
- }
503487
+ const onboardingShown = false;
504318
503488
  if (!isEnvTruthy(process.env.CLAUBBIT)) {
504319
503489
  if (!checkHasTrustDialogAccepted()) {
504320
503490
  const {
504321
503491
  TrustDialog: TrustDialog2
504322
503492
  } = await Promise.resolve().then(() => (init_TrustDialog(), exports_TrustDialog));
504323
- await showDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(AppStateProvider, {
503493
+ await showDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(AppStateProvider, {
504324
503494
  onChangeAppState,
504325
- children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(TrustDialog2, {
503495
+ children: /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(TrustDialog2, {
504326
503496
  commands: commands2,
504327
503497
  onDone: done
504328
503498
  }, undefined, false, undefined, this)
@@ -504332,51 +503502,57 @@ async function showSetupScreens(root3, permissionMode, allowDangerouslySkipPermi
504332
503502
  resetGrowthBook();
504333
503503
  initializeGrowthBook();
504334
503504
  getSystemContext();
504335
- const {
504336
- errors: allErrors
504337
- } = getSettingsWithAllErrors();
504338
- if (allErrors.length === 0) {
504339
- await handleMcpjsonServerApprovals(root3);
504340
- }
504341
- if (await shouldShowClaudeMdExternalIncludesWarning()) {
504342
- const externalIncludes = getExternalClaudeMdIncludes(await getMemoryFiles(true));
503505
+ try {
504343
503506
  const {
504344
- ClaudeMdExternalIncludesDialog: ClaudeMdExternalIncludesDialog2
504345
- } = await Promise.resolve().then(() => (init_ClaudeMdExternalIncludesDialog(), exports_ClaudeMdExternalIncludesDialog));
504346
- await showDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(AppStateProvider, {
504347
- onChangeAppState,
504348
- children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ClaudeMdExternalIncludesDialog2, {
504349
- onDone: done,
504350
- isStandaloneDialog: true,
504351
- externalIncludes
504352
- }, undefined, false, undefined, this)
504353
- }, undefined, false, undefined, this));
504354
- }
503507
+ errors: allErrors
503508
+ } = getSettingsWithAllErrors();
503509
+ if (allErrors.length === 0) {
503510
+ await handleMcpjsonServerApprovals(root3);
503511
+ }
503512
+ } catch {}
503513
+ try {
503514
+ if (await shouldShowClaudeMdExternalIncludesWarning()) {
503515
+ const externalIncludes = getExternalClaudeMdIncludes(await getMemoryFiles(true));
503516
+ const {
503517
+ ClaudeMdExternalIncludesDialog: ClaudeMdExternalIncludesDialog2
503518
+ } = await Promise.resolve().then(() => (init_ClaudeMdExternalIncludesDialog(), exports_ClaudeMdExternalIncludesDialog));
503519
+ await showDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(AppStateProvider, {
503520
+ onChangeAppState,
503521
+ children: /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ClaudeMdExternalIncludesDialog2, {
503522
+ onDone: done,
503523
+ isStandaloneDialog: true,
503524
+ externalIncludes
503525
+ }, undefined, false, undefined, this)
503526
+ }, undefined, false, undefined, this));
503527
+ }
503528
+ } catch {}
504355
503529
  }
504356
503530
  updateGithubRepoPathMapping();
504357
503531
  if (false) {}
504358
503532
  applyConfigEnvironmentVariables();
504359
503533
  setImmediate(() => initializeTelemetryAfterTrust());
504360
- if (await isQualifiedForGrove()) {
504361
- const {
504362
- GroveDialog: GroveDialog2
504363
- } = await Promise.resolve().then(() => (init_Grove(), exports_Grove));
504364
- const decision = await showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(GroveDialog2, {
504365
- showIfAlreadyViewed: false,
504366
- location: onboardingShown ? "onboarding" : "policy_update_modal",
504367
- onDone: done
504368
- }, undefined, false, undefined, this));
504369
- if (decision === "escape") {
504370
- logEvent("tengu_grove_policy_exited", {});
504371
- gracefulShutdownSync(0);
504372
- return false;
503534
+ try {
503535
+ if (await isQualifiedForGrove()) {
503536
+ const {
503537
+ GroveDialog: GroveDialog2
503538
+ } = await Promise.resolve().then(() => (init_Grove(), exports_Grove));
503539
+ const decision = await showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(GroveDialog2, {
503540
+ showIfAlreadyViewed: false,
503541
+ location: onboardingShown ? "onboarding" : "policy_update_modal",
503542
+ onDone: done
503543
+ }, undefined, false, undefined, this));
503544
+ if (decision === "escape") {
503545
+ logEvent("tengu_grove_policy_exited", {});
503546
+ gracefulShutdownSync(0);
503547
+ return false;
503548
+ }
504373
503549
  }
504374
- }
503550
+ } catch {}
504375
503551
  if ((permissionMode === "bypassPermissions" || allowDangerouslySkipPermissions) && !hasSkipDangerousModePermissionPrompt()) {
504376
503552
  const {
504377
503553
  BypassPermissionsModeDialog: BypassPermissionsModeDialog2
504378
503554
  } = await Promise.resolve().then(() => (init_BypassPermissionsModeDialog(), exports_BypassPermissionsModeDialog));
504379
- await showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(BypassPermissionsModeDialog2, {
503555
+ await showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(BypassPermissionsModeDialog2, {
504380
503556
  onAccept: done
504381
503557
  }, undefined, false, undefined, this));
504382
503558
  }
@@ -504386,7 +503562,7 @@ async function showSetupScreens(root3, permissionMode, allowDangerouslySkipPermi
504386
503562
  const {
504387
503563
  ClaudeInChromeOnboarding: ClaudeInChromeOnboarding2
504388
503564
  } = await Promise.resolve().then(() => (init_ClaudeInChromeOnboarding(), exports_ClaudeInChromeOnboarding));
504389
- await showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ClaudeInChromeOnboarding2, {
503565
+ await showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ClaudeInChromeOnboarding2, {
504390
503566
  onDone: done
504391
503567
  }, undefined, false, undefined, this));
504392
503568
  }
@@ -504441,7 +503617,7 @@ function getRenderContext(exitOnCtrlC) {
504441
503617
  }
504442
503618
  };
504443
503619
  }
504444
- var jsx_dev_runtime490;
503620
+ var jsx_dev_runtime485;
504445
503621
  var init_interactiveHelpers = __esm(() => {
504446
503622
  init_gracefulShutdown();
504447
503623
  init_state();
@@ -504463,7 +503639,7 @@ var init_interactiveHelpers = __esm(() => {
504463
503639
  init_renderOptions();
504464
503640
  init_allErrors();
504465
503641
  init_settings2();
504466
- jsx_dev_runtime490 = __toESM(require_jsx_dev_runtime(), 1);
503642
+ jsx_dev_runtime485 = __toESM(require_jsx_dev_runtime(), 1);
504467
503643
  });
504468
503644
 
504469
503645
  // src/components/InvalidSettingsDialog.tsx
@@ -504496,7 +503672,7 @@ function InvalidSettingsDialog(t0) {
504496
503672
  const handleSelect = t1;
504497
503673
  let t2;
504498
503674
  if ($2[3] !== settingsErrors) {
504499
- t2 = /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ValidationErrorsList, {
503675
+ t2 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ValidationErrorsList, {
504500
503676
  errors: settingsErrors
504501
503677
  }, undefined, false, undefined, this);
504502
503678
  $2[3] = settingsErrors;
@@ -504506,7 +503682,7 @@ function InvalidSettingsDialog(t0) {
504506
503682
  }
504507
503683
  let t3;
504508
503684
  if ($2[5] === Symbol.for("react.memo_cache_sentinel")) {
504509
- t3 = /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
503685
+ t3 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
504510
503686
  dimColor: true,
504511
503687
  children: "Files with errors are skipped entirely, not just the invalid settings."
504512
503688
  }, undefined, false, undefined, this);
@@ -504529,7 +503705,7 @@ function InvalidSettingsDialog(t0) {
504529
503705
  }
504530
503706
  let t5;
504531
503707
  if ($2[7] !== handleSelect) {
504532
- t5 = /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(Select, {
503708
+ t5 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Select, {
504533
503709
  options: t4,
504534
503710
  onChange: handleSelect
504535
503711
  }, undefined, false, undefined, this);
@@ -504540,7 +503716,7 @@ function InvalidSettingsDialog(t0) {
504540
503716
  }
504541
503717
  let t6;
504542
503718
  if ($2[9] !== onExit2 || $2[10] !== t2 || $2[11] !== t5) {
504543
- t6 = /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(Dialog, {
503719
+ t6 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Dialog, {
504544
503720
  title: "Settings Error",
504545
503721
  onCancel: onExit2,
504546
503722
  color: "warning",
@@ -504559,21 +503735,21 @@ function InvalidSettingsDialog(t0) {
504559
503735
  }
504560
503736
  return t6;
504561
503737
  }
504562
- var jsx_dev_runtime491;
503738
+ var jsx_dev_runtime486;
504563
503739
  var init_InvalidSettingsDialog = __esm(() => {
504564
503740
  init_ink2();
504565
503741
  init_CustomSelect();
504566
503742
  init_Dialog();
504567
503743
  init_ValidationErrorsList();
504568
- jsx_dev_runtime491 = __toESM(require_jsx_dev_runtime(), 1);
503744
+ jsx_dev_runtime486 = __toESM(require_jsx_dev_runtime(), 1);
504569
503745
  });
504570
503746
 
504571
503747
  // src/hooks/useTeleportResume.tsx
504572
503748
  function useTeleportResume(source) {
504573
503749
  const $2 = c3(8);
504574
- const [isResuming, setIsResuming] = import_react328.useState(false);
504575
- const [error5, setError] = import_react328.useState(null);
504576
- const [selectedSession, setSelectedSession] = import_react328.useState(null);
503750
+ const [isResuming, setIsResuming] = import_react324.useState(false);
503751
+ const [error5, setError] = import_react324.useState(null);
503752
+ const [selectedSession, setSelectedSession] = import_react324.useState(null);
504577
503753
  let t0;
504578
503754
  if ($2[0] !== source) {
504579
503755
  t0 = async (session2) => {
@@ -504638,12 +503814,12 @@ function useTeleportResume(source) {
504638
503814
  }
504639
503815
  return t2;
504640
503816
  }
504641
- var import_react328;
503817
+ var import_react324;
504642
503818
  var init_useTeleportResume = __esm(() => {
504643
503819
  init_state();
504644
503820
  init_errors();
504645
503821
  init_teleport();
504646
- import_react328 = __toESM(require_react(), 1);
503822
+ import_react324 = __toESM(require_react(), 1);
504647
503823
  });
504648
503824
 
504649
503825
  // src/components/ResumeTask.tsx
@@ -504655,15 +503831,15 @@ function ResumeTask({
504655
503831
  const {
504656
503832
  rows
504657
503833
  } = useTerminalSize();
504658
- const [sessions, setSessions] = import_react329.useState([]);
504659
- const [currentRepo, setCurrentRepo] = import_react329.useState(null);
504660
- const [loading, setLoading] = import_react329.useState(true);
504661
- const [loadErrorType, setLoadErrorType] = import_react329.useState(null);
504662
- const [retrying, setRetrying] = import_react329.useState(false);
504663
- const [hasCompletedTeleportErrorFlow, setHasCompletedTeleportErrorFlow] = import_react329.useState(false);
504664
- const [focusedIndex, setFocusedIndex] = import_react329.useState(1);
503834
+ const [sessions, setSessions] = import_react325.useState([]);
503835
+ const [currentRepo, setCurrentRepo] = import_react325.useState(null);
503836
+ const [loading, setLoading] = import_react325.useState(true);
503837
+ const [loadErrorType, setLoadErrorType] = import_react325.useState(null);
503838
+ const [retrying, setRetrying] = import_react325.useState(false);
503839
+ const [hasCompletedTeleportErrorFlow, setHasCompletedTeleportErrorFlow] = import_react325.useState(false);
503840
+ const [focusedIndex, setFocusedIndex] = import_react325.useState(1);
504665
503841
  const escKey = useShortcutDisplay("confirm:no", "Confirmation", "Esc");
504666
- const loadSessions = import_react329.useCallback(async () => {
503842
+ const loadSessions = import_react325.useCallback(async () => {
504667
503843
  try {
504668
503844
  setLoading(true);
504669
503845
  setLoadErrorType(null);
@@ -504717,31 +503893,31 @@ function ResumeTask({
504717
503893
  return;
504718
503894
  }
504719
503895
  });
504720
- const handleErrorComplete = import_react329.useCallback(() => {
503896
+ const handleErrorComplete = import_react325.useCallback(() => {
504721
503897
  setHasCompletedTeleportErrorFlow(true);
504722
503898
  loadSessions();
504723
503899
  }, [setHasCompletedTeleportErrorFlow, loadSessions]);
504724
503900
  if (!hasCompletedTeleportErrorFlow) {
504725
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(TeleportError, {
503901
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(TeleportError, {
504726
503902
  onComplete: handleErrorComplete
504727
503903
  }, undefined, false, undefined, this);
504728
503904
  }
504729
503905
  if (loading) {
504730
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
503906
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504731
503907
  flexDirection: "column",
504732
503908
  padding: 1,
504733
503909
  children: [
504734
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
503910
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504735
503911
  flexDirection: "row",
504736
503912
  children: [
504737
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(Spinner, {}, undefined, false, undefined, this),
504738
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503913
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Spinner, {}, undefined, false, undefined, this),
503914
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504739
503915
  bold: true,
504740
503916
  children: "Loading localclawd sessions…"
504741
503917
  }, undefined, false, undefined, this)
504742
503918
  ]
504743
503919
  }, undefined, true, undefined, this),
504744
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503920
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504745
503921
  dimColor: true,
504746
503922
  children: retrying ? "Retrying…" : "Fetching your localclawd sessions…"
504747
503923
  }, undefined, false, undefined, this)
@@ -504749,27 +503925,27 @@ function ResumeTask({
504749
503925
  }, undefined, true, undefined, this);
504750
503926
  }
504751
503927
  if (loadErrorType) {
504752
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
503928
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504753
503929
  flexDirection: "column",
504754
503930
  padding: 1,
504755
503931
  children: [
504756
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503932
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504757
503933
  bold: true,
504758
503934
  color: "error",
504759
503935
  children: "Error loading localclawd sessions"
504760
503936
  }, undefined, false, undefined, this),
504761
503937
  renderErrorSpecificGuidance(loadErrorType),
504762
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503938
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504763
503939
  dimColor: true,
504764
503940
  children: [
504765
503941
  "Press ",
504766
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503942
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504767
503943
  bold: true,
504768
503944
  children: "Ctrl+R"
504769
503945
  }, undefined, false, undefined, this),
504770
503946
  " to retry · Press",
504771
503947
  " ",
504772
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503948
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504773
503949
  bold: true,
504774
503950
  children: escKey
504775
503951
  }, undefined, false, undefined, this),
@@ -504780,15 +503956,15 @@ function ResumeTask({
504780
503956
  }, undefined, true, undefined, this);
504781
503957
  }
504782
503958
  if (sessions.length === 0) {
504783
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
503959
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504784
503960
  flexDirection: "column",
504785
503961
  padding: 1,
504786
503962
  children: [
504787
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503963
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504788
503964
  bold: true,
504789
503965
  children: [
504790
503966
  "No localclawd sessions found",
504791
- currentRepo && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503967
+ currentRepo && /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504792
503968
  children: [
504793
503969
  " for ",
504794
503970
  currentRepo
@@ -504796,13 +503972,13 @@ function ResumeTask({
504796
503972
  }, undefined, true, undefined, this)
504797
503973
  ]
504798
503974
  }, undefined, true, undefined, this),
504799
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
503975
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504800
503976
  marginTop: 1,
504801
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503977
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504802
503978
  dimColor: true,
504803
503979
  children: [
504804
503980
  "Press ",
504805
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
503981
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504806
503982
  bold: true,
504807
503983
  children: escKey
504808
503984
  }, undefined, false, undefined, this),
@@ -504833,16 +504009,16 @@ function ResumeTask({
504833
504009
  const maxVisibleOptions = Math.max(1, isEmbedded ? Math.min(sessions.length, 5, rows - 6 - layoutOverhead) : Math.min(sessions.length, rows - 1 - layoutOverhead));
504834
504010
  const maxHeight = maxVisibleOptions + layoutOverhead;
504835
504011
  const showScrollPosition = sessions.length > maxVisibleOptions;
504836
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
504012
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504837
504013
  flexDirection: "column",
504838
504014
  padding: 1,
504839
504015
  height: maxHeight,
504840
504016
  children: [
504841
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504017
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504842
504018
  bold: true,
504843
504019
  children: [
504844
504020
  "Select a session to resume",
504845
- showScrollPosition && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504021
+ showScrollPosition && /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504846
504022
  dimColor: true,
504847
504023
  children: [
504848
504024
  " ",
@@ -504853,7 +504029,7 @@ function ResumeTask({
504853
504029
  ")"
504854
504030
  ]
504855
504031
  }, undefined, true, undefined, this),
504856
- currentRepo && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504032
+ currentRepo && /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504857
504033
  dimColor: true,
504858
504034
  children: [
504859
504035
  " (",
@@ -504864,14 +504040,14 @@ function ResumeTask({
504864
504040
  ":"
504865
504041
  ]
504866
504042
  }, undefined, true, undefined, this),
504867
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
504043
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504868
504044
  flexDirection: "column",
504869
504045
  marginTop: 1,
504870
504046
  flexGrow: 1,
504871
504047
  children: [
504872
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
504048
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504873
504049
  marginLeft: 2,
504874
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504050
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504875
504051
  bold: true,
504876
504052
  children: [
504877
504053
  UPDATED_STRING.padEnd(maxTimeStringLength, " "),
@@ -504880,7 +504056,7 @@ function ResumeTask({
504880
504056
  ]
504881
504057
  }, undefined, true, undefined, this)
504882
504058
  }, undefined, false, undefined, this),
504883
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(Select, {
504059
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Select, {
504884
504060
  visibleOptionCount: maxVisibleOptions,
504885
504061
  options,
504886
504062
  onChange: (value) => {
@@ -504898,21 +504074,21 @@ function ResumeTask({
504898
504074
  }, undefined, false, undefined, this)
504899
504075
  ]
504900
504076
  }, undefined, true, undefined, this),
504901
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
504077
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504902
504078
  flexDirection: "row",
504903
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504079
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504904
504080
  dimColor: true,
504905
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(Byline, {
504081
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Byline, {
504906
504082
  children: [
504907
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(KeyboardShortcutHint, {
504083
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(KeyboardShortcutHint, {
504908
504084
  shortcut: "↑/↓",
504909
504085
  action: "select"
504910
504086
  }, undefined, false, undefined, this),
504911
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(KeyboardShortcutHint, {
504087
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(KeyboardShortcutHint, {
504912
504088
  shortcut: "Enter",
504913
504089
  action: "confirm"
504914
504090
  }, undefined, false, undefined, this),
504915
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ConfigurableShortcutHint, {
504091
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ConfigurableShortcutHint, {
504916
504092
  action: "confirm:no",
504917
504093
  context: "Confirmation",
504918
504094
  fallback: "Esc",
@@ -504941,28 +504117,28 @@ function determineErrorType(errorMessage4) {
504941
504117
  function renderErrorSpecificGuidance(errorType) {
504942
504118
  switch (errorType) {
504943
504119
  case "network":
504944
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
504120
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504945
504121
  marginY: 1,
504946
504122
  flexDirection: "column",
504947
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504123
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504948
504124
  dimColor: true,
504949
504125
  children: "Check your internet connection"
504950
504126
  }, undefined, false, undefined, this)
504951
504127
  }, undefined, false, undefined, this);
504952
504128
  case "auth":
504953
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
504129
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504954
504130
  marginY: 1,
504955
504131
  flexDirection: "column",
504956
504132
  children: [
504957
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504133
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504958
504134
  dimColor: true,
504959
504135
  children: "Remote web sessions are disabled in this local-first build"
504960
504136
  }, undefined, false, undefined, this),
504961
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504137
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504962
504138
  dimColor: true,
504963
504139
  children: [
504964
504140
  "Use ",
504965
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504141
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504966
504142
  bold: true,
504967
504143
  children: "/provider"
504968
504144
  }, undefined, false, undefined, this),
@@ -504972,26 +504148,26 @@ function renderErrorSpecificGuidance(errorType) {
504972
504148
  ]
504973
504149
  }, undefined, true, undefined, this);
504974
504150
  case "api":
504975
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
504151
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504976
504152
  marginY: 1,
504977
504153
  flexDirection: "column",
504978
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504154
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504979
504155
  dimColor: true,
504980
504156
  children: "Sorry, Claude encountered an error"
504981
504157
  }, undefined, false, undefined, this)
504982
504158
  }, undefined, false, undefined, this);
504983
504159
  case "other":
504984
- return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
504160
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
504985
504161
  marginY: 1,
504986
504162
  flexDirection: "row",
504987
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
504163
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
504988
504164
  dimColor: true,
504989
504165
  children: "Sorry, Claude Code encountered an error"
504990
504166
  }, undefined, false, undefined, this)
504991
504167
  }, undefined, false, undefined, this);
504992
504168
  }
504993
504169
  }
504994
- var import_react329, jsx_dev_runtime492, UPDATED_STRING = "Updated", SPACE_BETWEEN_TABLE_COLUMNS = " ";
504170
+ var import_react325, jsx_dev_runtime487, UPDATED_STRING = "Updated", SPACE_BETWEEN_TABLE_COLUMNS = " ";
504995
504171
  var init_ResumeTask = __esm(() => {
504996
504172
  init_useTerminalSize();
504997
504173
  init_api();
@@ -505007,8 +504183,8 @@ var init_ResumeTask = __esm(() => {
505007
504183
  init_KeyboardShortcutHint();
505008
504184
  init_Spinner2();
505009
504185
  init_TeleportError();
505010
- import_react329 = __toESM(require_react(), 1);
505011
- jsx_dev_runtime492 = __toESM(require_jsx_dev_runtime(), 1);
504186
+ import_react325 = __toESM(require_react(), 1);
504187
+ jsx_dev_runtime487 = __toESM(require_jsx_dev_runtime(), 1);
505012
504188
  });
505013
504189
 
505014
504190
  // src/components/TeleportResumeWrapper.tsx
@@ -505048,7 +504224,7 @@ function TeleportResumeWrapper(t0) {
505048
504224
  t2 = $2[1];
505049
504225
  t3 = $2[2];
505050
504226
  }
505051
- import_react330.useEffect(t2, t3);
504227
+ import_react326.useEffect(t2, t3);
505052
504228
  let t4;
505053
504229
  if ($2[3] !== error5 || $2[4] !== onComplete || $2[5] !== onError || $2[6] !== resumeSession) {
505054
504230
  t4 = async (session2) => {
@@ -505100,11 +504276,11 @@ function TeleportResumeWrapper(t0) {
505100
504276
  if (isResuming && selectedSession) {
505101
504277
  let t82;
505102
504278
  if ($2[12] === Symbol.for("react.memo_cache_sentinel")) {
505103
- t82 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
504279
+ t82 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
505104
504280
  flexDirection: "row",
505105
504281
  children: [
505106
- /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(Spinner, {}, undefined, false, undefined, this),
505107
- /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
504282
+ /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(Spinner, {}, undefined, false, undefined, this),
504283
+ /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
505108
504284
  bold: true,
505109
504285
  children: "Resuming session…"
505110
504286
  }, undefined, false, undefined, this)
@@ -505116,12 +504292,12 @@ function TeleportResumeWrapper(t0) {
505116
504292
  }
505117
504293
  let t9;
505118
504294
  if ($2[13] !== selectedSession.title) {
505119
- t9 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
504295
+ t9 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
505120
504296
  flexDirection: "column",
505121
504297
  padding: 1,
505122
504298
  children: [
505123
504299
  t82,
505124
- /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
504300
+ /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
505125
504301
  dimColor: true,
505126
504302
  children: [
505127
504303
  'Loading "',
@@ -505141,7 +504317,7 @@ function TeleportResumeWrapper(t0) {
505141
504317
  if (error5 && !onError) {
505142
504318
  let t82;
505143
504319
  if ($2[15] === Symbol.for("react.memo_cache_sentinel")) {
505144
- t82 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
504320
+ t82 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
505145
504321
  bold: true,
505146
504322
  color: "error",
505147
504323
  children: "Failed to resume session"
@@ -505152,7 +504328,7 @@ function TeleportResumeWrapper(t0) {
505152
504328
  }
505153
504329
  let t9;
505154
504330
  if ($2[16] !== error5.message) {
505155
- t9 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
504331
+ t9 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
505156
504332
  dimColor: true,
505157
504333
  children: error5.message
505158
504334
  }, undefined, false, undefined, this);
@@ -505163,13 +504339,13 @@ function TeleportResumeWrapper(t0) {
505163
504339
  }
505164
504340
  let t10;
505165
504341
  if ($2[18] === Symbol.for("react.memo_cache_sentinel")) {
505166
- t10 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
504342
+ t10 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
505167
504343
  marginTop: 1,
505168
- children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
504344
+ children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
505169
504345
  dimColor: true,
505170
504346
  children: [
505171
504347
  "Press ",
505172
- /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
504348
+ /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
505173
504349
  bold: true,
505174
504350
  children: "Esc"
505175
504351
  }, undefined, false, undefined, this),
@@ -505183,7 +504359,7 @@ function TeleportResumeWrapper(t0) {
505183
504359
  }
505184
504360
  let t11;
505185
504361
  if ($2[19] !== t9) {
505186
- t11 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
504362
+ t11 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
505187
504363
  flexDirection: "column",
505188
504364
  padding: 1,
505189
504365
  children: [
@@ -505201,7 +504377,7 @@ function TeleportResumeWrapper(t0) {
505201
504377
  }
505202
504378
  let t8;
505203
504379
  if ($2[21] !== handleCancel || $2[22] !== handleSelect || $2[23] !== isEmbedded) {
505204
- t8 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ResumeTask, {
504380
+ t8 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ResumeTask, {
505205
504381
  onSelect: handleSelect,
505206
504382
  onCancel: handleCancel,
505207
504383
  isEmbedded
@@ -505215,15 +504391,15 @@ function TeleportResumeWrapper(t0) {
505215
504391
  }
505216
504392
  return t8;
505217
504393
  }
505218
- var import_react330, jsx_dev_runtime493;
504394
+ var import_react326, jsx_dev_runtime488;
505219
504395
  var init_TeleportResumeWrapper = __esm(() => {
505220
504396
  init_useTeleportResume();
505221
504397
  init_ink2();
505222
504398
  init_useKeybinding();
505223
504399
  init_ResumeTask();
505224
504400
  init_Spinner2();
505225
- import_react330 = __toESM(require_react(), 1);
505226
- jsx_dev_runtime493 = __toESM(require_jsx_dev_runtime(), 1);
504401
+ import_react326 = __toESM(require_react(), 1);
504402
+ jsx_dev_runtime488 = __toESM(require_jsx_dev_runtime(), 1);
505227
504403
  });
505228
504404
 
505229
504405
  // src/components/TeleportRepoMismatchDialog.tsx
@@ -505239,9 +504415,9 @@ function TeleportRepoMismatchDialog(t0) {
505239
504415
  onSelectPath,
505240
504416
  onCancel
505241
504417
  } = t0;
505242
- const [availablePaths, setAvailablePaths] = import_react331.useState(initialPaths);
505243
- const [errorMessage4, setErrorMessage] = import_react331.useState(null);
505244
- const [validating, setValidating] = import_react331.useState(false);
504418
+ const [availablePaths, setAvailablePaths] = import_react327.useState(initialPaths);
504419
+ const [errorMessage4, setErrorMessage] = import_react327.useState(null);
504420
+ const [validating, setValidating] = import_react327.useState(false);
505245
504421
  let t1;
505246
504422
  if ($2[0] !== availablePaths || $2[1] !== onCancel || $2[2] !== onSelectPath || $2[3] !== targetRepo) {
505247
504423
  t1 = async (value) => {
@@ -505292,20 +504468,20 @@ function TeleportRepoMismatchDialog(t0) {
505292
504468
  const options = t2;
505293
504469
  let t3;
505294
504470
  if ($2[8] !== availablePaths.length || $2[9] !== errorMessage4 || $2[10] !== handleChange4 || $2[11] !== options || $2[12] !== targetRepo || $2[13] !== validating) {
505295
- t3 = availablePaths.length > 0 ? /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(jsx_dev_runtime494.Fragment, {
504471
+ t3 = availablePaths.length > 0 ? /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(jsx_dev_runtime489.Fragment, {
505296
504472
  children: [
505297
- /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedBox_default, {
504473
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
505298
504474
  flexDirection: "column",
505299
504475
  gap: 1,
505300
504476
  children: [
505301
- errorMessage4 && /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedText, {
504477
+ errorMessage4 && /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
505302
504478
  color: "error",
505303
504479
  children: errorMessage4
505304
504480
  }, undefined, false, undefined, this),
505305
- /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedText, {
504481
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
505306
504482
  children: [
505307
504483
  "Open Claude Code in ",
505308
- /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedText, {
504484
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
505309
504485
  bold: true,
505310
504486
  children: targetRepo
505311
504487
  }, undefined, false, undefined, this),
@@ -505314,27 +504490,27 @@ function TeleportRepoMismatchDialog(t0) {
505314
504490
  }, undefined, true, undefined, this)
505315
504491
  ]
505316
504492
  }, undefined, true, undefined, this),
505317
- validating ? /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedBox_default, {
504493
+ validating ? /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
505318
504494
  children: [
505319
- /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(Spinner, {}, undefined, false, undefined, this),
505320
- /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedText, {
504495
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Spinner, {}, undefined, false, undefined, this),
504496
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
505321
504497
  children: " Validating repository…"
505322
504498
  }, undefined, false, undefined, this)
505323
504499
  ]
505324
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(Select, {
504500
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Select, {
505325
504501
  options,
505326
504502
  onChange: (value_0) => void handleChange4(value_0)
505327
504503
  }, undefined, false, undefined, this)
505328
504504
  ]
505329
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedBox_default, {
504505
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
505330
504506
  flexDirection: "column",
505331
504507
  gap: 1,
505332
504508
  children: [
505333
- errorMessage4 && /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedText, {
504509
+ errorMessage4 && /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
505334
504510
  color: "error",
505335
504511
  children: errorMessage4
505336
504512
  }, undefined, false, undefined, this),
505337
- /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedText, {
504513
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
505338
504514
  dimColor: true,
505339
504515
  children: [
505340
504516
  "Run claude --teleport from a checkout of ",
@@ -505355,7 +504531,7 @@ function TeleportRepoMismatchDialog(t0) {
505355
504531
  }
505356
504532
  let t4;
505357
504533
  if ($2[15] !== onCancel || $2[16] !== t3) {
505358
- t4 = /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(Dialog, {
504534
+ t4 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Dialog, {
505359
504535
  title: "Teleport to Repo",
505360
504536
  onCancel,
505361
504537
  color: "background",
@@ -505371,10 +504547,10 @@ function TeleportRepoMismatchDialog(t0) {
505371
504547
  }
505372
504548
  function _temp305(path17) {
505373
504549
  return {
505374
- label: /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedText, {
504550
+ label: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
505375
504551
  children: [
505376
504552
  "Use ",
505377
- /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(ThemedText, {
504553
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
505378
504554
  bold: true,
505379
504555
  children: getDisplayPath(path17)
505380
504556
  }, undefined, false, undefined, this)
@@ -505383,7 +504559,7 @@ function _temp305(path17) {
505383
504559
  value: path17
505384
504560
  };
505385
504561
  }
505386
- var import_react331, jsx_dev_runtime494;
504562
+ var import_react327, jsx_dev_runtime489;
505387
504563
  var init_TeleportRepoMismatchDialog = __esm(() => {
505388
504564
  init_ink2();
505389
504565
  init_file();
@@ -505391,8 +504567,8 @@ var init_TeleportRepoMismatchDialog = __esm(() => {
505391
504567
  init_CustomSelect();
505392
504568
  init_Dialog();
505393
504569
  init_Spinner2();
505394
- import_react331 = __toESM(require_react(), 1);
505395
- jsx_dev_runtime494 = __toESM(require_jsx_dev_runtime(), 1);
504570
+ import_react327 = __toESM(require_react(), 1);
504571
+ jsx_dev_runtime489 = __toESM(require_jsx_dev_runtime(), 1);
505396
504572
  });
505397
504573
 
505398
504574
  // src/screens/ResumeConversation.tsx
@@ -505437,15 +504613,15 @@ function ResumeConversation({
505437
504613
  } = useTerminalSize();
505438
504614
  const agentDefinitions2 = useAppState((s) => s.agentDefinitions);
505439
504615
  const setAppState = useSetAppState();
505440
- const [logs2, setLogs] = import_react332.default.useState([]);
505441
- const [loading, setLoading] = import_react332.default.useState(true);
505442
- const [resuming, setResuming] = import_react332.default.useState(false);
505443
- const [showAllProjects, setShowAllProjects] = import_react332.default.useState(false);
505444
- const [resumeData, setResumeData] = import_react332.default.useState(null);
505445
- const [crossProjectCommand, setCrossProjectCommand] = import_react332.default.useState(null);
505446
- const sessionLogResultRef = import_react332.default.useRef(null);
505447
- const logCountRef = import_react332.default.useRef(0);
505448
- const filteredLogs = import_react332.default.useMemo(() => {
504616
+ const [logs2, setLogs] = import_react328.default.useState([]);
504617
+ const [loading, setLoading] = import_react328.default.useState(true);
504618
+ const [resuming, setResuming] = import_react328.default.useState(false);
504619
+ const [showAllProjects, setShowAllProjects] = import_react328.default.useState(false);
504620
+ const [resumeData, setResumeData] = import_react328.default.useState(null);
504621
+ const [crossProjectCommand, setCrossProjectCommand] = import_react328.default.useState(null);
504622
+ const sessionLogResultRef = import_react328.default.useRef(null);
504623
+ const logCountRef = import_react328.default.useRef(0);
504624
+ const filteredLogs = import_react328.default.useMemo(() => {
505449
504625
  let result = logs2.filter((l) => !l.isSidechain);
505450
504626
  if (filterByPr !== undefined) {
505451
504627
  if (filterByPr === true) {
@@ -505462,7 +504638,7 @@ function ResumeConversation({
505462
504638
  return result;
505463
504639
  }, [logs2, filterByPr]);
505464
504640
  const isResumeWithRenameEnabled = isCustomTitleEnabled();
505465
- import_react332.default.useEffect(() => {
504641
+ import_react328.default.useEffect(() => {
505466
504642
  loadSameRepoMessageLogsProgressive(worktreePaths).then((result_0) => {
505467
504643
  sessionLogResultRef.current = result_0;
505468
504644
  logCountRef.current = result_0.logs.length;
@@ -505473,7 +504649,7 @@ function ResumeConversation({
505473
504649
  setLoading(false);
505474
504650
  });
505475
504651
  }, [worktreePaths]);
505476
- const loadMoreLogs = import_react332.default.useCallback((count3) => {
504652
+ const loadMoreLogs = import_react328.default.useCallback((count3) => {
505477
504653
  const ref = sessionLogResultRef.current;
505478
504654
  if (!ref || ref.nextIndex >= ref.allStatLogs.length)
505479
504655
  return;
@@ -505491,7 +504667,7 @@ function ResumeConversation({
505491
504667
  }
505492
504668
  });
505493
504669
  }, []);
505494
- const loadLogs = import_react332.default.useCallback((allProjects) => {
504670
+ const loadLogs = import_react328.default.useCallback((allProjects) => {
505495
504671
  setLoading(true);
505496
504672
  const promise2 = allProjects ? loadAllProjectsMessageLogsProgressive() : loadSameRepoMessageLogsProgressive(worktreePaths);
505497
504673
  promise2.then((result_2) => {
@@ -505504,7 +504680,7 @@ function ResumeConversation({
505504
504680
  setLoading(false);
505505
504681
  });
505506
504682
  }, [worktreePaths]);
505507
- const handleToggleAllProjects = import_react332.default.useCallback(() => {
504683
+ const handleToggleAllProjects = import_react328.default.useCallback(() => {
505508
504684
  const newValue = !showAllProjects;
505509
504685
  setShowAllProjects(newValue);
505510
504686
  loadLogs(newValue);
@@ -505590,12 +504766,12 @@ function ResumeConversation({
505590
504766
  }
505591
504767
  }
505592
504768
  if (crossProjectCommand) {
505593
- return /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(CrossProjectMessage, {
504769
+ return /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(CrossProjectMessage, {
505594
504770
  command: crossProjectCommand
505595
504771
  }, undefined, false, undefined, this);
505596
504772
  }
505597
504773
  if (resumeData) {
505598
- return /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(REPL, {
504774
+ return /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(REPL, {
505599
504775
  debug: debug3,
505600
504776
  commands: commands2,
505601
504777
  initialTools,
@@ -505618,29 +504794,29 @@ function ResumeConversation({
505618
504794
  }, undefined, false, undefined, this);
505619
504795
  }
505620
504796
  if (loading) {
505621
- return /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedBox_default, {
504797
+ return /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedBox_default, {
505622
504798
  children: [
505623
- /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(Spinner, {}, undefined, false, undefined, this),
505624
- /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
504799
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Spinner, {}, undefined, false, undefined, this),
504800
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
505625
504801
  children: " Loading conversations…"
505626
504802
  }, undefined, false, undefined, this)
505627
504803
  ]
505628
504804
  }, undefined, true, undefined, this);
505629
504805
  }
505630
504806
  if (resuming) {
505631
- return /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedBox_default, {
504807
+ return /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedBox_default, {
505632
504808
  children: [
505633
- /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(Spinner, {}, undefined, false, undefined, this),
505634
- /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
504809
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Spinner, {}, undefined, false, undefined, this),
504810
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
505635
504811
  children: " Resuming conversation…"
505636
504812
  }, undefined, false, undefined, this)
505637
504813
  ]
505638
504814
  }, undefined, true, undefined, this);
505639
504815
  }
505640
504816
  if (filteredLogs.length === 0) {
505641
- return /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(NoConversationsMessage, {}, undefined, false, undefined, this);
504817
+ return /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(NoConversationsMessage, {}, undefined, false, undefined, this);
505642
504818
  }
505643
- return /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(LogSelector, {
504819
+ return /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(LogSelector, {
505644
504820
  logs: filteredLogs,
505645
504821
  maxHeight: rows,
505646
504822
  onCancel,
@@ -505667,13 +504843,13 @@ function NoConversationsMessage() {
505667
504843
  useKeybinding("app:interrupt", _temp306, t0);
505668
504844
  let t1;
505669
504845
  if ($2[1] === Symbol.for("react.memo_cache_sentinel")) {
505670
- t1 = /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedBox_default, {
504846
+ t1 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedBox_default, {
505671
504847
  flexDirection: "column",
505672
504848
  children: [
505673
- /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
504849
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
505674
504850
  children: "No conversations found to resume."
505675
504851
  }, undefined, false, undefined, this),
505676
- /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
504852
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
505677
504853
  dimColor: true,
505678
504854
  children: "Press Ctrl+C to exit and start a new conversation."
505679
504855
  }, undefined, false, undefined, this)
@@ -505700,10 +504876,10 @@ function CrossProjectMessage(t0) {
505700
504876
  } else {
505701
504877
  t1 = $2[0];
505702
504878
  }
505703
- import_react332.default.useEffect(_temp356, t1);
504879
+ import_react328.default.useEffect(_temp356, t1);
505704
504880
  let t2;
505705
504881
  if ($2[1] === Symbol.for("react.memo_cache_sentinel")) {
505706
- t2 = /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
504882
+ t2 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
505707
504883
  children: "This conversation is from a different directory."
505708
504884
  }, undefined, false, undefined, this);
505709
504885
  $2[1] = t2;
@@ -505712,7 +504888,7 @@ function CrossProjectMessage(t0) {
505712
504888
  }
505713
504889
  let t3;
505714
504890
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
505715
- t3 = /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
504891
+ t3 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
505716
504892
  children: "To resume, run:"
505717
504893
  }, undefined, false, undefined, this);
505718
504894
  $2[2] = t3;
@@ -505721,11 +504897,11 @@ function CrossProjectMessage(t0) {
505721
504897
  }
505722
504898
  let t4;
505723
504899
  if ($2[3] !== command8) {
505724
- t4 = /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedBox_default, {
504900
+ t4 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedBox_default, {
505725
504901
  flexDirection: "column",
505726
504902
  children: [
505727
504903
  t3,
505728
- /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
504904
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
505729
504905
  children: [
505730
504906
  " ",
505731
504907
  command8
@@ -505740,7 +504916,7 @@ function CrossProjectMessage(t0) {
505740
504916
  }
505741
504917
  let t5;
505742
504918
  if ($2[5] === Symbol.for("react.memo_cache_sentinel")) {
505743
- t5 = /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
504919
+ t5 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
505744
504920
  dimColor: true,
505745
504921
  children: "(Command copied to clipboard)"
505746
504922
  }, undefined, false, undefined, this);
@@ -505750,7 +504926,7 @@ function CrossProjectMessage(t0) {
505750
504926
  }
505751
504927
  let t6;
505752
504928
  if ($2[6] !== t4) {
505753
- t6 = /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedBox_default, {
504929
+ t6 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedBox_default, {
505754
504930
  flexDirection: "column",
505755
504931
  gap: 1,
505756
504932
  children: [
@@ -505773,7 +504949,7 @@ function _temp356() {
505773
504949
  function _temp2102() {
505774
504950
  process.exit(0);
505775
504951
  }
505776
- var import_react332, jsx_dev_runtime495;
504952
+ var import_react328, jsx_dev_runtime490;
505777
504953
  var init_ResumeConversation = __esm(() => {
505778
504954
  init_useTerminalSize();
505779
504955
  init_state();
@@ -505795,8 +504971,8 @@ var init_ResumeConversation = __esm(() => {
505795
504971
  init_sessionRestore();
505796
504972
  init_sessionStorage();
505797
504973
  init_REPL();
505798
- import_react332 = __toESM(require_react(), 1);
505799
- jsx_dev_runtime495 = __toESM(require_jsx_dev_runtime(), 1);
504974
+ import_react328 = __toESM(require_react(), 1);
504975
+ jsx_dev_runtime490 = __toESM(require_jsx_dev_runtime(), 1);
505800
504976
  });
505801
504977
 
505802
504978
  // src/dialogLaunchers.tsx
@@ -505804,7 +504980,7 @@ async function launchInvalidSettingsDialog(root3, props) {
505804
504980
  const {
505805
504981
  InvalidSettingsDialog: InvalidSettingsDialog2
505806
504982
  } = await Promise.resolve().then(() => (init_InvalidSettingsDialog(), exports_InvalidSettingsDialog));
505807
- return showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(InvalidSettingsDialog2, {
504983
+ return showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(InvalidSettingsDialog2, {
505808
504984
  settingsErrors: props.settingsErrors,
505809
504985
  onContinue: done,
505810
504986
  onExit: props.onExit
@@ -505814,7 +504990,7 @@ async function launchTeleportResumeWrapper(root3) {
505814
504990
  const {
505815
504991
  TeleportResumeWrapper: TeleportResumeWrapper2
505816
504992
  } = await Promise.resolve().then(() => (init_TeleportResumeWrapper(), exports_TeleportResumeWrapper));
505817
- return showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(TeleportResumeWrapper2, {
504993
+ return showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(TeleportResumeWrapper2, {
505818
504994
  onComplete: done,
505819
504995
  onCancel: () => done(null),
505820
504996
  source: "cliArg"
@@ -505824,7 +505000,7 @@ async function launchTeleportRepoMismatchDialog(root3, props) {
505824
505000
  const {
505825
505001
  TeleportRepoMismatchDialog: TeleportRepoMismatchDialog2
505826
505002
  } = await Promise.resolve().then(() => (init_TeleportRepoMismatchDialog(), exports_TeleportRepoMismatchDialog));
505827
- return showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(TeleportRepoMismatchDialog2, {
505003
+ return showSetupDialog(root3, (done) => /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(TeleportRepoMismatchDialog2, {
505828
505004
  targetRepo: props.targetRepo,
505829
505005
  initialPaths: props.initialPaths,
505830
505006
  onSelectPath: done,
@@ -505837,23 +505013,23 @@ async function launchResumeChooser(root3, appProps, worktreePathsPromise, resume
505837
505013
  }, {
505838
505014
  App: App3
505839
505015
  }] = await Promise.all([worktreePathsPromise, Promise.resolve().then(() => (init_ResumeConversation(), exports_ResumeConversation)), Promise.resolve().then(() => (init_App2(), exports_App))]);
505840
- await renderAndRun(root3, /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(App3, {
505016
+ await renderAndRun(root3, /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(App3, {
505841
505017
  getFpsMetrics: appProps.getFpsMetrics,
505842
505018
  stats: appProps.stats,
505843
505019
  initialState: appProps.initialState,
505844
- children: /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(KeybindingSetup, {
505845
- children: /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ResumeConversation2, {
505020
+ children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(KeybindingSetup, {
505021
+ children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ResumeConversation2, {
505846
505022
  ...resumeProps,
505847
505023
  worktreePaths
505848
505024
  }, undefined, false, undefined, this)
505849
505025
  }, undefined, false, undefined, this)
505850
505026
  }, undefined, false, undefined, this));
505851
505027
  }
505852
- var jsx_dev_runtime496;
505028
+ var jsx_dev_runtime491;
505853
505029
  var init_dialogLaunchers = __esm(() => {
505854
505030
  init_interactiveHelpers();
505855
505031
  init_KeybindingProviderSetup();
505856
- jsx_dev_runtime496 = __toESM(require_jsx_dev_runtime(), 1);
505032
+ jsx_dev_runtime491 = __toESM(require_jsx_dev_runtime(), 1);
505857
505033
  });
505858
505034
 
505859
505035
  // src/plugins/bundled/index.ts
@@ -508754,7 +507930,7 @@ function appendToLog(path17, message) {
508754
507930
  cwd: getFsImplementation().cwd(),
508755
507931
  userType: process.env.USER_TYPE,
508756
507932
  sessionId: getSessionId(),
508757
- version: "1.1.12"
507933
+ version: "1.1.14"
508758
507934
  };
508759
507935
  getLogWriter(path17).write(messageWithTimestamp);
508760
507936
  }
@@ -512754,8 +511930,8 @@ async function getEnvLessBridgeConfig() {
512754
511930
  }
512755
511931
  async function checkEnvLessBridgeMinVersion() {
512756
511932
  const cfg = await getEnvLessBridgeConfig();
512757
- if (cfg.min_version && lt("1.1.12", cfg.min_version)) {
512758
- return `Your version of localclawd (${"1.1.12"}) is too old for Remote Control.
511933
+ if (cfg.min_version && lt("1.1.14", cfg.min_version)) {
511934
+ return `Your version of localclawd (${"1.1.14"}) is too old for Remote Control.
512759
511935
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
512760
511936
  }
512761
511937
  return null;
@@ -513227,7 +512403,7 @@ async function initBridgeCore(params) {
513227
512403
  const rawApi = createBridgeApiClient({
513228
512404
  baseUrl,
513229
512405
  getAccessToken,
513230
- runnerVersion: "1.1.12",
512406
+ runnerVersion: "1.1.14",
513231
512407
  onDebug: logForDebugging,
513232
512408
  onAuth401,
513233
512409
  getTrustedDeviceToken
@@ -518039,9 +517215,9 @@ function TeleportProgress(t0) {
518039
517215
  const t2 = SPINNER_FRAMES3[frame];
518040
517216
  let t3;
518041
517217
  if ($2[2] !== t2) {
518042
- t3 = /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedBox_default, {
517218
+ t3 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
518043
517219
  marginBottom: 1,
518044
- children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedText, {
517220
+ children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
518045
517221
  bold: true,
518046
517222
  color: "claude",
518047
517223
  children: [
@@ -518057,9 +517233,9 @@ function TeleportProgress(t0) {
518057
517233
  }
518058
517234
  let t4;
518059
517235
  if ($2[4] !== sessionId) {
518060
- t4 = sessionId && /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedBox_default, {
517236
+ t4 = sessionId && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
518061
517237
  marginBottom: 1,
518062
- children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedText, {
517238
+ children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
518063
517239
  dimColor: true,
518064
517240
  children: sessionId
518065
517241
  }, undefined, false, undefined, this)
@@ -518089,18 +517265,18 @@ function TeleportProgress(t0) {
518089
517265
  color3 = undefined;
518090
517266
  }
518091
517267
  }
518092
- return /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedBox_default, {
517268
+ return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
518093
517269
  flexDirection: "row",
518094
517270
  children: [
518095
- /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedBox_default, {
517271
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
518096
517272
  width: 2,
518097
- children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedText, {
517273
+ children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
518098
517274
  color: color3,
518099
517275
  dimColor: isPending,
518100
517276
  children: icon
518101
517277
  }, undefined, false, undefined, this)
518102
517278
  }, undefined, false, undefined, this),
518103
- /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedText, {
517279
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
518104
517280
  dimColor: isPending,
518105
517281
  bold: isCurrent,
518106
517282
  children: step.label
@@ -518116,7 +517292,7 @@ function TeleportProgress(t0) {
518116
517292
  }
518117
517293
  let t6;
518118
517294
  if ($2[9] !== t5) {
518119
- t6 = /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedBox_default, {
517295
+ t6 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
518120
517296
  flexDirection: "column",
518121
517297
  marginLeft: 2,
518122
517298
  children: t5
@@ -518128,7 +517304,7 @@ function TeleportProgress(t0) {
518128
517304
  }
518129
517305
  let t7;
518130
517306
  if ($2[11] !== ref || $2[12] !== t3 || $2[13] !== t4 || $2[14] !== t6) {
518131
- t7 = /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedBox_default, {
517307
+ t7 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
518132
517308
  ref,
518133
517309
  flexDirection: "column",
518134
517310
  paddingX: 1,
@@ -518152,15 +517328,15 @@ function TeleportProgress(t0) {
518152
517328
  async function teleportWithProgress(root3, sessionId) {
518153
517329
  let setStep = () => {};
518154
517330
  function TeleportProgressWrapper() {
518155
- const [step, _setStep] = import_react333.useState("validating");
517331
+ const [step, _setStep] = import_react329.useState("validating");
518156
517332
  setStep = _setStep;
518157
- return /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(TeleportProgress, {
517333
+ return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(TeleportProgress, {
518158
517334
  currentStep: step,
518159
517335
  sessionId
518160
517336
  }, undefined, false, undefined, this);
518161
517337
  }
518162
- root3.render(/* @__PURE__ */ jsx_dev_runtime497.jsxDEV(AppStateProvider, {
518163
- children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(TeleportProgressWrapper, {}, undefined, false, undefined, this)
517338
+ root3.render(/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(AppStateProvider, {
517339
+ children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(TeleportProgressWrapper, {}, undefined, false, undefined, this)
518164
517340
  }, undefined, false, undefined, this));
518165
517341
  const result = await teleportResumeCodeSession(sessionId, setStep);
518166
517342
  setStep("checking_out");
@@ -518173,14 +517349,14 @@ async function teleportWithProgress(root3, sessionId) {
518173
517349
  branchName
518174
517350
  };
518175
517351
  }
518176
- var import_react333, jsx_dev_runtime497, SPINNER_FRAMES3, STEPS;
517352
+ var import_react329, jsx_dev_runtime492, SPINNER_FRAMES3, STEPS;
518177
517353
  var init_TeleportProgress = __esm(() => {
518178
517354
  init_figures2();
518179
517355
  init_ink2();
518180
517356
  init_AppState();
518181
517357
  init_teleport();
518182
- import_react333 = __toESM(require_react(), 1);
518183
- jsx_dev_runtime497 = __toESM(require_jsx_dev_runtime(), 1);
517358
+ import_react329 = __toESM(require_react(), 1);
517359
+ jsx_dev_runtime492 = __toESM(require_jsx_dev_runtime(), 1);
518184
517360
  SPINNER_FRAMES3 = ["◐", "◓", "◑", "◒"];
518185
517361
  STEPS = [{
518186
517362
  key: "validating",
@@ -518221,7 +517397,7 @@ function MCPServerDesktopImportDialog(t0) {
518221
517397
  } else {
518222
517398
  t2 = $2[2];
518223
517399
  }
518224
- const [existingServers, setExistingServers] = import_react334.useState(t2);
517400
+ const [existingServers, setExistingServers] = import_react330.useState(t2);
518225
517401
  let t3;
518226
517402
  let t4;
518227
517403
  if ($2[3] === Symbol.for("react.memo_cache_sentinel")) {
@@ -518240,7 +517416,7 @@ function MCPServerDesktopImportDialog(t0) {
518240
517416
  t3 = $2[3];
518241
517417
  t4 = $2[4];
518242
517418
  }
518243
- import_react334.useEffect(t3, t4);
517419
+ import_react330.useEffect(t3, t4);
518244
517420
  let t5;
518245
517421
  if ($2[5] !== existingServers || $2[6] !== serverNames) {
518246
517422
  t5 = serverNames.filter((name) => existingServers[name] !== undefined);
@@ -518316,7 +517492,7 @@ No servers were imported.`);
518316
517492
  const t10 = `Found ${t8} MCP ${t9} in Claude Desktop.`;
518317
517493
  let t11;
518318
517494
  if ($2[16] !== collisions.length) {
518319
- t11 = collisions.length > 0 && /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(ThemedText, {
517495
+ t11 = collisions.length > 0 && /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
518320
517496
  color: "warning",
518321
517497
  children: "Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."
518322
517498
  }, undefined, false, undefined, this);
@@ -518327,7 +517503,7 @@ No servers were imported.`);
518327
517503
  }
518328
517504
  let t12;
518329
517505
  if ($2[18] === Symbol.for("react.memo_cache_sentinel")) {
518330
- t12 = /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(ThemedText, {
517506
+ t12 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
518331
517507
  children: "Please select the servers you want to import:"
518332
517508
  }, undefined, false, undefined, this);
518333
517509
  $2[18] = t12;
@@ -518352,7 +517528,7 @@ No servers were imported.`);
518352
517528
  }
518353
517529
  let t15;
518354
517530
  if ($2[23] !== handleEscCancel || $2[24] !== onSubmit || $2[25] !== t13 || $2[26] !== t14) {
518355
- t15 = /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(SelectMulti, {
517531
+ t15 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(SelectMulti, {
518356
517532
  options: t13,
518357
517533
  defaultValue: t14,
518358
517534
  onSubmit,
@@ -518369,7 +517545,7 @@ No servers were imported.`);
518369
517545
  }
518370
517546
  let t16;
518371
517547
  if ($2[28] !== handleEscCancel || $2[29] !== t10 || $2[30] !== t11 || $2[31] !== t15) {
518372
- t16 = /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(Dialog, {
517548
+ t16 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(Dialog, {
518373
517549
  title: "Import MCP Servers from Claude Desktop",
518374
517550
  subtitle: t10,
518375
517551
  color: "success",
@@ -518391,22 +517567,22 @@ No servers were imported.`);
518391
517567
  }
518392
517568
  let t17;
518393
517569
  if ($2[33] === Symbol.for("react.memo_cache_sentinel")) {
518394
- t17 = /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(ThemedBox_default, {
517570
+ t17 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
518395
517571
  paddingX: 1,
518396
- children: /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(ThemedText, {
517572
+ children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
518397
517573
  dimColor: true,
518398
517574
  italic: true,
518399
- children: /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(Byline, {
517575
+ children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(Byline, {
518400
517576
  children: [
518401
- /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(KeyboardShortcutHint, {
517577
+ /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(KeyboardShortcutHint, {
518402
517578
  shortcut: "Space",
518403
517579
  action: "select"
518404
517580
  }, undefined, false, undefined, this),
518405
- /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(KeyboardShortcutHint, {
517581
+ /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(KeyboardShortcutHint, {
518406
517582
  shortcut: "Enter",
518407
517583
  action: "confirm"
518408
517584
  }, undefined, false, undefined, this),
518409
- /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(ConfigurableShortcutHint, {
517585
+ /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ConfigurableShortcutHint, {
518410
517586
  action: "confirm:no",
518411
517587
  context: "Confirmation",
518412
517588
  fallback: "Esc",
@@ -518422,7 +517598,7 @@ No servers were imported.`);
518422
517598
  }
518423
517599
  let t18;
518424
517600
  if ($2[34] !== t16) {
518425
- t18 = /* @__PURE__ */ jsx_dev_runtime498.jsxDEV(jsx_dev_runtime498.Fragment, {
517601
+ t18 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(jsx_dev_runtime493.Fragment, {
518426
517602
  children: [
518427
517603
  t16,
518428
517604
  t17
@@ -518435,7 +517611,7 @@ No servers were imported.`);
518435
517611
  }
518436
517612
  return t18;
518437
517613
  }
518438
- var import_react334, jsx_dev_runtime498;
517614
+ var import_react330, jsx_dev_runtime493;
518439
517615
  var init_MCPServerDesktopImportDialog = __esm(() => {
518440
517616
  init_gracefulShutdown();
518441
517617
  init_ink2();
@@ -518446,8 +517622,8 @@ var init_MCPServerDesktopImportDialog = __esm(() => {
518446
517622
  init_Byline();
518447
517623
  init_Dialog();
518448
517624
  init_KeyboardShortcutHint();
518449
- import_react334 = __toESM(require_react(), 1);
518450
- jsx_dev_runtime498 = __toESM(require_jsx_dev_runtime(), 1);
517625
+ import_react330 = __toESM(require_react(), 1);
517626
+ jsx_dev_runtime493 = __toESM(require_jsx_dev_runtime(), 1);
518451
517627
  });
518452
517628
 
518453
517629
  // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
@@ -518883,7 +518059,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
518883
518059
  setCwd(cwd3);
518884
518060
  const server = new Server({
518885
518061
  name: "claude/tengu",
518886
- version: "1.1.12"
518062
+ version: "1.1.14"
518887
518063
  }, {
518888
518064
  capabilities: {
518889
518065
  tools: {}
@@ -519371,9 +518547,9 @@ async function mcpAddFromDesktopHandler(options) {
519371
518547
  }
519372
518548
  const {
519373
518549
  unmount
519374
- } = await render(/* @__PURE__ */ jsx_dev_runtime499.jsxDEV(AppStateProvider, {
519375
- children: /* @__PURE__ */ jsx_dev_runtime499.jsxDEV(KeybindingSetup, {
519376
- children: /* @__PURE__ */ jsx_dev_runtime499.jsxDEV(MCPServerDesktopImportDialog, {
518550
+ } = await render(/* @__PURE__ */ jsx_dev_runtime494.jsxDEV(AppStateProvider, {
518551
+ children: /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(KeybindingSetup, {
518552
+ children: /* @__PURE__ */ jsx_dev_runtime494.jsxDEV(MCPServerDesktopImportDialog, {
519377
518553
  servers,
519378
518554
  scope,
519379
518555
  onDone: () => {
@@ -519399,7 +518575,7 @@ async function mcpResetChoicesHandler() {
519399
518575
  cliOk(`All project-scoped (.mcp.json) server approvals and rejections have been reset.
519400
518576
  You will be prompted for approval next time you start localclawd.`);
519401
518577
  }
519402
- var jsx_dev_runtime499;
518578
+ var jsx_dev_runtime494;
519403
518579
  var init_mcp5 = __esm(() => {
519404
518580
  init_p_map();
519405
518581
  init_MCPServerDesktopImportDialog();
@@ -519415,7 +518591,7 @@ var init_mcp5 = __esm(() => {
519415
518591
  init_gracefulShutdown();
519416
518592
  init_json();
519417
518593
  init_platform();
519418
- jsx_dev_runtime499 = __toESM(require_jsx_dev_runtime(), 1);
518594
+ jsx_dev_runtime494 = __toESM(require_jsx_dev_runtime(), 1);
519419
518595
  });
519420
518596
 
519421
518597
  // src/cli/handlers/plugins.ts
@@ -519942,6 +519118,51 @@ var init_plugins = __esm(() => {
519942
519118
  init_stringUtils();
519943
519119
  });
519944
519120
 
519121
+ // src/components/LogoV2/WelcomeV2.tsx
519122
+ function WelcomeV2() {
519123
+ const [theme2] = useTheme();
519124
+ const isLightTheme = ["light", "light-daltonized", "light-ansi"].includes(theme2);
519125
+ const accentColor = isLightTheme ? "blue" : "#6366f1";
519126
+ return /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedBox_default, {
519127
+ width: WELCOME_V2_WIDTH,
519128
+ flexDirection: "column",
519129
+ gap: 0,
519130
+ children: [
519131
+ /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedBox_default, {
519132
+ gap: 1,
519133
+ children: [
519134
+ /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
519135
+ bold: true,
519136
+ color: accentColor,
519137
+ children: "localclawd"
519138
+ }, undefined, false, undefined, this),
519139
+ /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
519140
+ dimColor: true,
519141
+ children: [
519142
+ "v",
519143
+ "1.1.14"
519144
+ ]
519145
+ }, undefined, true, undefined, this)
519146
+ ]
519147
+ }, undefined, true, undefined, this),
519148
+ /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedText, {
519149
+ dimColor: true,
519150
+ children: "─".repeat(48)
519151
+ }, undefined, false, undefined, this),
519152
+ /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(ThemedBox_default, {
519153
+ marginTop: 1,
519154
+ children: /* @__PURE__ */ jsx_dev_runtime495.jsxDEV(Clawd, {}, undefined, false, undefined, this)
519155
+ }, undefined, false, undefined, this)
519156
+ ]
519157
+ }, undefined, true, undefined, this);
519158
+ }
519159
+ var jsx_dev_runtime495, WELCOME_V2_WIDTH = 58;
519160
+ var init_WelcomeV2 = __esm(() => {
519161
+ init_ink2();
519162
+ init_Clawd();
519163
+ jsx_dev_runtime495 = __toESM(require_jsx_dev_runtime(), 1);
519164
+ });
519165
+
519945
519166
  // src/commands/install.tsx
519946
519167
  var exports_install = {};
519947
519168
  __export(exports_install, {
@@ -519968,11 +519189,11 @@ function SetupNotes(t0) {
519968
519189
  }
519969
519190
  let t1;
519970
519191
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
519971
- t1 = /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519972
- children: /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519192
+ t1 = /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
519193
+ children: /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
519973
519194
  color: "warning",
519974
519195
  children: [
519975
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(StatusIcon, {
519196
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(StatusIcon, {
519976
519197
  status: "warning",
519977
519198
  withSpace: true
519978
519199
  }, undefined, false, undefined, this),
@@ -519994,7 +519215,7 @@ function SetupNotes(t0) {
519994
519215
  }
519995
519216
  let t3;
519996
519217
  if ($2[3] !== t2) {
519997
- t3 = /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519218
+ t3 = /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
519998
519219
  flexDirection: "column",
519999
519220
  gap: 0,
520000
519221
  marginBottom: 1,
@@ -520011,9 +519232,9 @@ function SetupNotes(t0) {
520011
519232
  return t3;
520012
519233
  }
520013
519234
  function _temp307(message, index) {
520014
- return /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519235
+ return /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520015
519236
  marginLeft: 2,
520016
- children: /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519237
+ children: /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520017
519238
  dimColor: true,
520018
519239
  children: [
520019
519240
  "• ",
@@ -520027,10 +519248,10 @@ function Install({
520027
519248
  force,
520028
519249
  target
520029
519250
  }) {
520030
- const [state2, setState] = import_react335.useState({
519251
+ const [state2, setState] = import_react331.useState({
520031
519252
  type: "checking"
520032
519253
  });
520033
- import_react335.useEffect(() => {
519254
+ import_react331.useEffect(() => {
520034
519255
  async function run() {
520035
519256
  try {
520036
519257
  logForDebugging(`Install: Starting installation process (force=${force}, target=${target})`);
@@ -520118,7 +519339,7 @@ function Install({
520118
519339
  }
520119
519340
  run();
520120
519341
  }, [force, target]);
520121
- import_react335.useEffect(() => {
519342
+ import_react331.useEffect(() => {
520122
519343
  if (state2.type === "success") {
520123
519344
  setTimeout(onDone, 2000, "localclawd installation completed successfully", {
520124
519345
  display: "system"
@@ -520129,19 +519350,19 @@ function Install({
520129
519350
  });
520130
519351
  }
520131
519352
  }, [state2, onDone]);
520132
- return /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519353
+ return /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520133
519354
  flexDirection: "column",
520134
519355
  marginTop: 1,
520135
519356
  children: [
520136
- state2.type === "checking" && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519357
+ state2.type === "checking" && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520137
519358
  color: "claude",
520138
519359
  children: "Checking installation status..."
520139
519360
  }, undefined, false, undefined, this),
520140
- state2.type === "cleaning-npm" && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519361
+ state2.type === "cleaning-npm" && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520141
519362
  color: "warning",
520142
519363
  children: "Cleaning up old npm installations..."
520143
519364
  }, undefined, false, undefined, this),
520144
- state2.type === "installing" && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519365
+ state2.type === "installing" && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520145
519366
  color: "claude",
520146
519367
  children: [
520147
519368
  "Installing localclawd native build ",
@@ -520149,54 +519370,54 @@ function Install({
520149
519370
  "..."
520150
519371
  ]
520151
519372
  }, undefined, true, undefined, this),
520152
- state2.type === "setting-up" && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519373
+ state2.type === "setting-up" && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520153
519374
  color: "claude",
520154
519375
  children: "Setting up launcher and shell integration..."
520155
519376
  }, undefined, false, undefined, this),
520156
- state2.type === "set-up" && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(SetupNotes, {
519377
+ state2.type === "set-up" && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(SetupNotes, {
520157
519378
  messages: state2.messages
520158
519379
  }, undefined, false, undefined, this),
520159
- state2.type === "success" && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519380
+ state2.type === "success" && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520160
519381
  flexDirection: "column",
520161
519382
  gap: 1,
520162
519383
  children: [
520163
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519384
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520164
519385
  children: [
520165
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(StatusIcon, {
519386
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(StatusIcon, {
520166
519387
  status: "success",
520167
519388
  withSpace: true
520168
519389
  }, undefined, false, undefined, this),
520169
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519390
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520170
519391
  color: "success",
520171
519392
  bold: true,
520172
519393
  children: "localclawd successfully installed!"
520173
519394
  }, undefined, false, undefined, this)
520174
519395
  ]
520175
519396
  }, undefined, true, undefined, this),
520176
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519397
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520177
519398
  marginLeft: 2,
520178
519399
  flexDirection: "column",
520179
519400
  gap: 1,
520180
519401
  children: [
520181
- state2.version !== "current" && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519402
+ state2.version !== "current" && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520182
519403
  children: [
520183
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519404
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520184
519405
  dimColor: true,
520185
519406
  children: "Version: "
520186
519407
  }, undefined, false, undefined, this),
520187
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519408
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520188
519409
  color: "claude",
520189
519410
  children: state2.version
520190
519411
  }, undefined, false, undefined, this)
520191
519412
  ]
520192
519413
  }, undefined, true, undefined, this),
520193
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519414
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520194
519415
  children: [
520195
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519416
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520196
519417
  dimColor: true,
520197
519418
  children: "Location: "
520198
519419
  }, undefined, false, undefined, this),
520199
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519420
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520200
519421
  color: "text",
520201
519422
  children: getInstallationPath2()
520202
519423
  }, undefined, false, undefined, this)
@@ -520204,57 +519425,57 @@ function Install({
520204
519425
  }, undefined, true, undefined, this)
520205
519426
  ]
520206
519427
  }, undefined, true, undefined, this),
520207
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519428
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520208
519429
  marginLeft: 2,
520209
519430
  flexDirection: "column",
520210
519431
  gap: 1,
520211
- children: /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519432
+ children: /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520212
519433
  marginTop: 1,
520213
519434
  children: [
520214
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519435
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520215
519436
  dimColor: true,
520216
519437
  children: "Next: Run "
520217
519438
  }, undefined, false, undefined, this),
520218
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519439
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520219
519440
  color: "claude",
520220
519441
  bold: true,
520221
519442
  children: "localclawd --help"
520222
519443
  }, undefined, false, undefined, this),
520223
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519444
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520224
519445
  dimColor: true,
520225
519446
  children: " to get started"
520226
519447
  }, undefined, false, undefined, this)
520227
519448
  ]
520228
519449
  }, undefined, true, undefined, this)
520229
519450
  }, undefined, false, undefined, this),
520230
- state2.setupMessages && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(SetupNotes, {
519451
+ state2.setupMessages && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(SetupNotes, {
520231
519452
  messages: state2.setupMessages
520232
519453
  }, undefined, false, undefined, this)
520233
519454
  ]
520234
519455
  }, undefined, true, undefined, this),
520235
- state2.type === "error" && /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519456
+ state2.type === "error" && /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520236
519457
  flexDirection: "column",
520237
519458
  gap: 1,
520238
519459
  children: [
520239
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519460
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520240
519461
  children: [
520241
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(StatusIcon, {
519462
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(StatusIcon, {
520242
519463
  status: "error",
520243
519464
  withSpace: true
520244
519465
  }, undefined, false, undefined, this),
520245
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519466
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520246
519467
  color: "error",
520247
519468
  children: "Installation failed"
520248
519469
  }, undefined, false, undefined, this)
520249
519470
  ]
520250
519471
  }, undefined, true, undefined, this),
520251
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519472
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520252
519473
  color: "error",
520253
519474
  children: state2.message
520254
519475
  }, undefined, false, undefined, this),
520255
- /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedBox_default, {
519476
+ /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedBox_default, {
520256
519477
  marginTop: 1,
520257
- children: /* @__PURE__ */ jsx_dev_runtime500.jsxDEV(ThemedText, {
519478
+ children: /* @__PURE__ */ jsx_dev_runtime496.jsxDEV(ThemedText, {
520258
519479
  dimColor: true,
520259
519480
  children: "Try running with --force to override checks"
520260
519481
  }, undefined, false, undefined, this)
@@ -520264,7 +519485,7 @@ function Install({
520264
519485
  ]
520265
519486
  }, undefined, true, undefined, this);
520266
519487
  }
520267
- var import_react335, jsx_dev_runtime500, install;
519488
+ var import_react331, jsx_dev_runtime496, install;
520268
519489
  var init_install = __esm(() => {
520269
519490
  init_StatusIcon();
520270
519491
  init_ink2();
@@ -520273,8 +519494,8 @@ var init_install = __esm(() => {
520273
519494
  init_errors();
520274
519495
  init_nativeInstaller();
520275
519496
  init_settings2();
520276
- import_react335 = __toESM(require_react(), 1);
520277
- jsx_dev_runtime500 = __toESM(require_jsx_dev_runtime(), 1);
519497
+ import_react331 = __toESM(require_react(), 1);
519498
+ jsx_dev_runtime496 = __toESM(require_jsx_dev_runtime(), 1);
520278
519499
  install = {
520279
519500
  type: "local-jsx",
520280
519501
  name: "install",
@@ -520286,7 +519507,7 @@ var init_install = __esm(() => {
520286
519507
  const target = nonFlagArgs[0];
520287
519508
  const {
520288
519509
  unmount
520289
- } = await render(/* @__PURE__ */ jsx_dev_runtime500.jsxDEV(Install, {
519510
+ } = await render(/* @__PURE__ */ jsx_dev_runtime496.jsxDEV(Install, {
520290
519511
  onDone: (result, options) => {
520291
519512
  unmount();
520292
519513
  onDone(result, options);
@@ -520313,28 +519534,28 @@ async function setupTokenHandler(root3) {
520313
519534
  ConsoleOAuthFlow: ConsoleOAuthFlow2
520314
519535
  } = await Promise.resolve().then(() => (init_ConsoleOAuthFlow(), exports_ConsoleOAuthFlow));
520315
519536
  await new Promise((resolve40) => {
520316
- root3.render(/* @__PURE__ */ jsx_dev_runtime501.jsxDEV(AppStateProvider, {
519537
+ root3.render(/* @__PURE__ */ jsx_dev_runtime497.jsxDEV(AppStateProvider, {
520317
519538
  onChangeAppState,
520318
- children: /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(KeybindingSetup, {
520319
- children: /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(ThemedBox_default, {
519539
+ children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(KeybindingSetup, {
519540
+ children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedBox_default, {
520320
519541
  flexDirection: "column",
520321
519542
  gap: 1,
520322
519543
  children: [
520323
- /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
520324
- showAuthWarning && /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(ThemedBox_default, {
519544
+ /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
519545
+ showAuthWarning && /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedBox_default, {
520325
519546
  flexDirection: "column",
520326
519547
  children: [
520327
- /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(ThemedText, {
519548
+ /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedText, {
520328
519549
  color: "warning",
520329
519550
  children: "Warning: You already have authentication configured via environment variable or API key helper."
520330
519551
  }, undefined, false, undefined, this),
520331
- /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(ThemedText, {
519552
+ /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ThemedText, {
520332
519553
  color: "warning",
520333
519554
  children: "The setup-token command will create a new OAuth token which you can use instead."
520334
519555
  }, undefined, false, undefined, this)
520335
519556
  ]
520336
519557
  }, undefined, true, undefined, this),
520337
- /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(ConsoleOAuthFlow2, {
519558
+ /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(ConsoleOAuthFlow2, {
520338
519559
  onDone: () => {
520339
519560
  resolve40();
520340
519561
  },
@@ -520357,9 +519578,9 @@ function DoctorWithPlugins(t0) {
520357
519578
  useManagePlugins();
520358
519579
  let t1;
520359
519580
  if ($2[0] !== onDone) {
520360
- t1 = /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(import_react336.default.Suspense, {
519581
+ t1 = /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(import_react332.default.Suspense, {
520361
519582
  fallback: null,
520362
- children: /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(DoctorLazy, {
519583
+ children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(DoctorLazy, {
520363
519584
  onDone
520364
519585
  }, undefined, false, undefined, this)
520365
519586
  }, undefined, false, undefined, this);
@@ -520373,12 +519594,12 @@ function DoctorWithPlugins(t0) {
520373
519594
  async function doctorHandler(root3) {
520374
519595
  logEvent("tengu_doctor_command", {});
520375
519596
  await new Promise((resolve40) => {
520376
- root3.render(/* @__PURE__ */ jsx_dev_runtime501.jsxDEV(AppStateProvider, {
520377
- children: /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(KeybindingSetup, {
520378
- children: /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(MCPConnectionManager, {
519597
+ root3.render(/* @__PURE__ */ jsx_dev_runtime497.jsxDEV(AppStateProvider, {
519598
+ children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(KeybindingSetup, {
519599
+ children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(MCPConnectionManager, {
520379
519600
  dynamicMcpConfig: undefined,
520380
519601
  isStrictMcpConfig: false,
520381
- children: /* @__PURE__ */ jsx_dev_runtime501.jsxDEV(DoctorWithPlugins, {
519602
+ children: /* @__PURE__ */ jsx_dev_runtime497.jsxDEV(DoctorWithPlugins, {
520382
519603
  onDone: () => {
520383
519604
  resolve40();
520384
519605
  }
@@ -520410,7 +519631,7 @@ async function installHandler(target, options) {
520410
519631
  }, {}, args);
520411
519632
  });
520412
519633
  }
520413
- var import_react336, jsx_dev_runtime501, DoctorLazy;
519634
+ var import_react332, jsx_dev_runtime497, DoctorLazy;
520414
519635
  var init_util = __esm(() => {
520415
519636
  init_WelcomeV2();
520416
519637
  init_useManagePlugins();
@@ -520420,9 +519641,9 @@ var init_util = __esm(() => {
520420
519641
  init_AppState();
520421
519642
  init_onChangeAppState();
520422
519643
  init_auth2();
520423
- import_react336 = __toESM(require_react(), 1);
520424
- jsx_dev_runtime501 = __toESM(require_jsx_dev_runtime(), 1);
520425
- DoctorLazy = import_react336.default.lazy(() => Promise.resolve().then(() => (init_Doctor(), exports_Doctor)).then((m2) => ({
519644
+ import_react332 = __toESM(require_react(), 1);
519645
+ jsx_dev_runtime497 = __toESM(require_jsx_dev_runtime(), 1);
519646
+ DoctorLazy = import_react332.default.lazy(() => Promise.resolve().then(() => (init_Doctor(), exports_Doctor)).then((m2) => ({
520426
519647
  default: m2.Doctor
520427
519648
  })));
520428
519649
  });
@@ -520488,7 +519709,7 @@ __export(exports_update, {
520488
519709
  });
520489
519710
  async function update() {
520490
519711
  logEvent("tengu_update_check", {});
520491
- writeToStdout(`Current version: ${"1.1.12"}
519712
+ writeToStdout(`Current version: ${"1.1.14"}
520492
519713
  `);
520493
519714
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
520494
519715
  writeToStdout(`Checking for updates to ${channel} version...
@@ -520563,8 +519784,8 @@ async function update() {
520563
519784
  writeToStdout(`localclawd is managed by Homebrew.
520564
519785
  `);
520565
519786
  const latest = await getLatestVersion(channel);
520566
- if (latest && !gte("1.1.12", latest)) {
520567
- writeToStdout(`Update available: ${"1.1.12"} → ${latest}
519787
+ if (latest && !gte("1.1.14", latest)) {
519788
+ writeToStdout(`Update available: ${"1.1.14"} → ${latest}
520568
519789
  `);
520569
519790
  writeToStdout(`
520570
519791
  `);
@@ -520580,8 +519801,8 @@ async function update() {
520580
519801
  writeToStdout(`localclawd is managed by winget.
520581
519802
  `);
520582
519803
  const latest = await getLatestVersion(channel);
520583
- if (latest && !gte("1.1.12", latest)) {
520584
- writeToStdout(`Update available: ${"1.1.12"} → ${latest}
519804
+ if (latest && !gte("1.1.14", latest)) {
519805
+ writeToStdout(`Update available: ${"1.1.14"} → ${latest}
520585
519806
  `);
520586
519807
  writeToStdout(`
520587
519808
  `);
@@ -520595,8 +519816,8 @@ async function update() {
520595
519816
  writeToStdout(`localclawd is managed by apk.
520596
519817
  `);
520597
519818
  const latest = await getLatestVersion(channel);
520598
- if (latest && !gte("1.1.12", latest)) {
520599
- writeToStdout(`Update available: ${"1.1.12"} → ${latest}
519819
+ if (latest && !gte("1.1.14", latest)) {
519820
+ writeToStdout(`Update available: ${"1.1.14"} → ${latest}
520600
519821
  `);
520601
519822
  writeToStdout(`
520602
519823
  `);
@@ -520661,11 +519882,11 @@ async function update() {
520661
519882
  `);
520662
519883
  await gracefulShutdown(1);
520663
519884
  }
520664
- if (result.latestVersion === "1.1.12") {
520665
- writeToStdout(source_default.green(`localclawd is up to date (${"1.1.12"})`) + `
519885
+ if (result.latestVersion === "1.1.14") {
519886
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.1.14"})`) + `
520666
519887
  `);
520667
519888
  } else {
520668
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.12"} to version ${result.latestVersion}`) + `
519889
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.14"} to version ${result.latestVersion}`) + `
520669
519890
  `);
520670
519891
  await regenerateCompletionCache();
520671
519892
  }
@@ -520725,12 +519946,12 @@ async function update() {
520725
519946
  `);
520726
519947
  await gracefulShutdown(1);
520727
519948
  }
520728
- if (latestVersion === "1.1.12") {
520729
- writeToStdout(source_default.green(`localclawd is up to date (${"1.1.12"})`) + `
519949
+ if (latestVersion === "1.1.14") {
519950
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.1.14"})`) + `
520730
519951
  `);
520731
519952
  await gracefulShutdown(0);
520732
519953
  }
520733
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.12"})
519954
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.14"})
520734
519955
  `);
520735
519956
  writeToStdout(`Installing update...
520736
519957
  `);
@@ -520775,7 +519996,7 @@ async function update() {
520775
519996
  logForDebugging(`update: Installation status: ${status2}`);
520776
519997
  switch (status2) {
520777
519998
  case "success":
520778
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.12"} to version ${latestVersion}`) + `
519999
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.14"} to version ${latestVersion}`) + `
520779
520000
  `);
520780
520001
  await regenerateCompletionCache();
520781
520002
  break;
@@ -522040,7 +521261,7 @@ ${customInstructions}` : customInstructions;
522040
521261
  }
522041
521262
  }
522042
521263
  logForDiagnosticsNoPII("info", "started", {
522043
- version: "1.1.12",
521264
+ version: "1.1.14",
522044
521265
  is_native_binary: isInBundledMode()
522045
521266
  });
522046
521267
  registerCleanup(async () => {
@@ -522824,7 +522045,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
522824
522045
  pendingHookMessages
522825
522046
  }, renderAndRun);
522826
522047
  }
522827
- }).version("1.1.12 (localClawd)", "-v, --version", "Output the version number");
522048
+ }).version("1.1.14 (localClawd)", "-v, --version", "Output the version number");
522828
522049
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
522829
522050
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
522830
522051
  if (canUserConfigureAdvisor()) {
@@ -523332,7 +522553,7 @@ if (false) {}
523332
522553
  async function main2() {
523333
522554
  const args = process.argv.slice(2);
523334
522555
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
523335
- console.log(`${"1.1.12"} (localclawd)`);
522556
+ console.log(`${"1.1.14"} (localclawd)`);
523336
522557
  return;
523337
522558
  }
523338
522559
  const {
@@ -523416,4 +522637,4 @@ async function main2() {
523416
522637
  }
523417
522638
  main2();
523418
522639
 
523419
- //# debugId=3315EDB7491D062464756E2164756E21
522640
+ //# debugId=D2EDD6030256A37964756E2164756E21