localclawd 1.0.5 → 1.0.6

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 +718 -399
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -14629,6 +14629,7 @@ var init_exports = __esm(() => {
14629
14629
  init_array();
14630
14630
  init_array_buffer();
14631
14631
  init_string();
14632
+ init_contents();
14632
14633
  });
14633
14634
 
14634
14635
  // node_modules/get-stream/source/index.js
@@ -14642,7 +14643,7 @@ var init_source2 = __esm(() => {
14642
14643
 
14643
14644
  // node_modules/execa/lib/io/max-buffer.js
14644
14645
  var handleMaxBuffer = ({ error: error2, stream, readableObjectMode, lines, encoding, fdNumber }) => {
14645
- if (!(error2 instanceof MaxBufferError2)) {
14646
+ if (!(error2 instanceof MaxBufferError)) {
14646
14647
  throw error2;
14647
14648
  }
14648
14649
  if (fdNumber === "all") {
@@ -14667,7 +14668,7 @@ var handleMaxBuffer = ({ error: error2, stream, readableObjectMode, lines, encod
14667
14668
  if (ipcOutput.length !== maxBuffer) {
14668
14669
  return;
14669
14670
  }
14670
- const error2 = new MaxBufferError2;
14671
+ const error2 = new MaxBufferError;
14671
14672
  error2.maxBufferInfo = { fdNumber: "ipc" };
14672
14673
  throw error2;
14673
14674
  }, getMaxBufferMessage = (error2, maxBuffer) => {
@@ -18542,7 +18543,7 @@ var execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested) => {
18542
18543
  timedOut: context2.terminationReason === "timeout",
18543
18544
  isCanceled: context2.terminationReason === "cancel" || context2.terminationReason === "gracefulCancel",
18544
18545
  isGracefullyCanceled: context2.terminationReason === "gracefulCancel",
18545
- isMaxBuffer: errorInfo.error instanceof MaxBufferError2,
18546
+ isMaxBuffer: errorInfo.error instanceof MaxBufferError,
18546
18547
  isForcefullyTerminated: context2.isForcefullyTerminated,
18547
18548
  exitCode,
18548
18549
  signal,
@@ -94396,6 +94397,23 @@ var init_config = __esm(() => {
94396
94397
  });
94397
94398
 
94398
94399
  // src/utils/model/providers.ts
94400
+ var exports_providers = {};
94401
+ __export(exports_providers, {
94402
+ setSessionLocalLLMConfigOverride: () => setSessionLocalLLMConfigOverride,
94403
+ normalizeLocalLLMConfig: () => normalizeLocalLLMConfig,
94404
+ isLocalLLMProviderEnabled: () => isLocalLLMProviderEnabled,
94405
+ isFirstPartyAnthropicBaseUrl: () => isFirstPartyAnthropicBaseUrl,
94406
+ getSessionLocalLLMConfigOverride: () => getSessionLocalLLMConfigOverride,
94407
+ getLocalLLMProviderLabel: () => getLocalLLMProviderLabel,
94408
+ getLocalLLMProvider: () => getLocalLLMProvider,
94409
+ getLocalLLMModel: () => getLocalLLMModel,
94410
+ getLocalLLMBaseUrl: () => getLocalLLMBaseUrl,
94411
+ getLocalLLMApiKey: () => getLocalLLMApiKey,
94412
+ getDefaultLocalLLMConfig: () => getDefaultLocalLLMConfig,
94413
+ getAPIProviderForStatsig: () => getAPIProviderForStatsig,
94414
+ getAPIProvider: () => getAPIProvider,
94415
+ clearSessionLocalLLMConfigOverride: () => clearSessionLocalLLMConfigOverride
94416
+ });
94399
94417
  function getEnvAlias(localKey, legacyKey) {
94400
94418
  return process.env[localKey] ?? process.env[legacyKey];
94401
94419
  }
@@ -94444,8 +94462,17 @@ function normalizeLocalLLMConfig(config) {
94444
94462
  apiKey: config?.apiKey?.trim() || defaults2.apiKey
94445
94463
  };
94446
94464
  }
94465
+ function setSessionLocalLLMConfigOverride(config) {
94466
+ sessionLocalLLMConfigOverride = config ? normalizeLocalLLMConfig(config) : null;
94467
+ }
94468
+ function clearSessionLocalLLMConfigOverride() {
94469
+ sessionLocalLLMConfigOverride = null;
94470
+ }
94471
+ function getSessionLocalLLMConfigOverride() {
94472
+ return sessionLocalLLMConfigOverride;
94473
+ }
94447
94474
  function getLocalLLMProvider() {
94448
- return getLocalLLMProviderFromEnv() ?? getConfiguredLocalLLMProvider() ?? "vllm";
94475
+ return getLocalLLMProviderFromEnv() ?? sessionLocalLLMConfigOverride?.provider ?? getConfiguredLocalLLMProvider() ?? "vllm";
94449
94476
  }
94450
94477
  function isLocalLLMProviderEnabled() {
94451
94478
  return true;
@@ -94456,6 +94483,9 @@ function getLocalLLMBaseUrl(provider = getLocalLLMProvider()) {
94456
94483
  return configuredFromEnv;
94457
94484
  }
94458
94485
  const defaults2 = getDefaultLocalLLMConfig(provider);
94486
+ if (sessionLocalLLMConfigOverride?.provider === provider) {
94487
+ return sessionLocalLLMConfigOverride.baseUrl;
94488
+ }
94459
94489
  const globalConfig = getGlobalConfig();
94460
94490
  const configuredProvider = getConfiguredLocalLLMProvider();
94461
94491
  if (configuredProvider === provider && globalConfig.localBackendBaseUrl?.trim()) {
@@ -94469,6 +94499,9 @@ function getLocalLLMApiKey(provider = getLocalLLMProvider()) {
94469
94499
  return configuredFromEnv;
94470
94500
  }
94471
94501
  const defaults2 = getDefaultLocalLLMConfig(provider);
94502
+ if (sessionLocalLLMConfigOverride?.provider === provider) {
94503
+ return sessionLocalLLMConfigOverride.apiKey;
94504
+ }
94472
94505
  const globalConfig = getGlobalConfig();
94473
94506
  const configuredProvider = getConfiguredLocalLLMProvider();
94474
94507
  if (configuredProvider === provider) {
@@ -94482,6 +94515,9 @@ function getLocalLLMModel(provider = getLocalLLMProvider()) {
94482
94515
  return model;
94483
94516
  }
94484
94517
  const defaults2 = getDefaultLocalLLMConfig(provider);
94518
+ if (sessionLocalLLMConfigOverride?.provider === provider) {
94519
+ return sessionLocalLLMConfigOverride.model;
94520
+ }
94485
94521
  const globalConfig = getGlobalConfig();
94486
94522
  const configuredProvider = getConfiguredLocalLLMProvider();
94487
94523
  if (configuredProvider === provider && globalConfig.localBackendModel?.trim()) {
@@ -94514,7 +94550,7 @@ function isFirstPartyAnthropicBaseUrl() {
94514
94550
  return false;
94515
94551
  }
94516
94552
  }
94517
- var LOCAL_LLM_DEFAULTS;
94553
+ var sessionLocalLLMConfigOverride = null, LOCAL_LLM_DEFAULTS;
94518
94554
  var init_providers = __esm(() => {
94519
94555
  init_config();
94520
94556
  init_envUtils();
@@ -96073,6 +96109,10 @@ function getRuntimeMainLoopModel(params) {
96073
96109
  return mainLoopModel;
96074
96110
  }
96075
96111
  function getDefaultMainLoopModelSetting() {
96112
+ const provider = getAPIProvider();
96113
+ if (provider === "local") {
96114
+ return getLocalLLMModel() ?? "qwen2.5-coder-32b-instruct";
96115
+ }
96076
96116
  if (process.env.USER_TYPE === "ant") {
96077
96117
  return getAntModelOverrideConfig()?.defaultModel ?? getDefaultOpusModel() + "[1m]";
96078
96118
  }
@@ -96391,7 +96431,7 @@ var init_isEqual = __esm(() => {
96391
96431
 
96392
96432
  // src/utils/userAgent.ts
96393
96433
  function getClaudeCodeUserAgent() {
96394
- return `claude-code/${"1.0.5"}`;
96434
+ return `claude-code/${"1.0.6"}`;
96395
96435
  }
96396
96436
 
96397
96437
  // src/utils/workloadContext.ts
@@ -96413,7 +96453,7 @@ function getUserAgent() {
96413
96453
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
96414
96454
  const workload = getWorkload();
96415
96455
  const workloadSuffix = workload ? `, workload/${workload}` : "";
96416
- return `claude-cli/${"1.0.5"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
96456
+ return `claude-cli/${"1.0.6"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
96417
96457
  }
96418
96458
  function getMCPUserAgent() {
96419
96459
  const parts = [];
@@ -96427,7 +96467,7 @@ function getMCPUserAgent() {
96427
96467
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
96428
96468
  }
96429
96469
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
96430
- return `claude-code/${"1.0.5"}${suffix}`;
96470
+ return `claude-code/${"1.0.6"}${suffix}`;
96431
96471
  }
96432
96472
  function getWebFetchUserAgent() {
96433
96473
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -106248,7 +106288,7 @@ function getAttributionHeader(fingerprint) {
106248
106288
  if (!isAttributionHeaderEnabled()) {
106249
106289
  return "";
106250
106290
  }
106251
- const version = `${"1.0.5"}.${fingerprint}`;
106291
+ const version = `${"1.0.6"}.${fingerprint}`;
106252
106292
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
106253
106293
  const cch = "";
106254
106294
  const workload = getWorkload();
@@ -139293,7 +139333,7 @@ var init_metadata = __esm(() => {
139293
139333
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
139294
139334
  WHITESPACE_REGEX = /\s+/;
139295
139335
  getVersionBase = memoize_default(() => {
139296
- const match = "1.0.5".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
139336
+ const match = "1.0.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
139297
139337
  return match ? match[0] : undefined;
139298
139338
  });
139299
139339
  buildEnvContext = memoize_default(async () => {
@@ -139333,9 +139373,9 @@ var init_metadata = __esm(() => {
139333
139373
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
139334
139374
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
139335
139375
  isClaudeAiAuth: isClaudeAISubscriber(),
139336
- version: "1.0.5",
139376
+ version: "1.0.6",
139337
139377
  versionBase: getVersionBase(),
139338
- buildTime: "2026-04-05T16:12:56.094Z",
139378
+ buildTime: "2026-04-05T19:01:49.000Z",
139339
139379
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
139340
139380
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
139341
139381
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -203889,7 +203929,7 @@ function getTelemetryAttributes() {
203889
203929
  attributes["session.id"] = sessionId;
203890
203930
  }
203891
203931
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
203892
- attributes["app.version"] = "1.0.5";
203932
+ attributes["app.version"] = "1.0.6";
203893
203933
  }
203894
203934
  const oauthAccount = getOauthAccountInfo();
203895
203935
  if (oauthAccount) {
@@ -235493,7 +235533,7 @@ function getInstallationEnv() {
235493
235533
  return;
235494
235534
  }
235495
235535
  function getClaudeCodeVersion() {
235496
- return "1.0.5";
235536
+ return "1.0.6";
235497
235537
  }
235498
235538
  async function getInstalledVSCodeExtensionVersion(command) {
235499
235539
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -241096,7 +241136,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
241096
241136
  const client4 = new Client({
241097
241137
  name: "claude-code",
241098
241138
  title: "Claude Code",
241099
- version: "1.0.5",
241139
+ version: "1.0.6",
241100
241140
  description: "Anthropic's agentic coding tool",
241101
241141
  websiteUrl: PRODUCT_URL
241102
241142
  }, {
@@ -241449,7 +241489,7 @@ var init_client9 = __esm(() => {
241449
241489
  const client4 = new Client({
241450
241490
  name: "claude-code",
241451
241491
  title: "Claude Code",
241452
- version: "1.0.5",
241492
+ version: "1.0.6",
241453
241493
  description: "Anthropic's agentic coding tool",
241454
241494
  websiteUrl: PRODUCT_URL
241455
241495
  }, {
@@ -264640,7 +264680,7 @@ var init_user = __esm(() => {
264640
264680
  deviceId,
264641
264681
  sessionId: getSessionId(),
264642
264682
  email: getEmail(),
264643
- appVersion: "1.0.5",
264683
+ appVersion: "1.0.6",
264644
264684
  platform: getHostPlatformForAnalytics(),
264645
264685
  organizationUuid,
264646
264686
  accountUuid,
@@ -265964,7 +266004,7 @@ async function initializeBetaTracing(resource) {
265964
266004
  });
265965
266005
  logs.setGlobalLoggerProvider(loggerProvider);
265966
266006
  setLoggerProvider(loggerProvider);
265967
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0.5");
266007
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0.6");
265968
266008
  setEventLogger(eventLogger);
265969
266009
  process.on("beforeExit", async () => {
265970
266010
  await loggerProvider?.forceFlush();
@@ -266004,7 +266044,7 @@ async function initializeTelemetry() {
266004
266044
  const platform4 = getPlatform();
266005
266045
  const baseAttributes = {
266006
266046
  [ATTR_SERVICE_NAME5]: "claude-code",
266007
- [ATTR_SERVICE_VERSION5]: "1.0.5"
266047
+ [ATTR_SERVICE_VERSION5]: "1.0.6"
266008
266048
  };
266009
266049
  if (platform4 === "wsl") {
266010
266050
  const wslVersion = getWslVersion();
@@ -266049,7 +266089,7 @@ async function initializeTelemetry() {
266049
266089
  } catch {}
266050
266090
  };
266051
266091
  registerCleanup(shutdownTelemetry2);
266052
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.0.5");
266092
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.0.6");
266053
266093
  }
266054
266094
  const meterProvider = new MeterProvider5({
266055
266095
  resource,
@@ -266069,7 +266109,7 @@ async function initializeTelemetry() {
266069
266109
  });
266070
266110
  logs.setGlobalLoggerProvider(loggerProvider);
266071
266111
  setLoggerProvider(loggerProvider);
266072
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0.5");
266112
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0.6");
266073
266113
  setEventLogger(eventLogger);
266074
266114
  logForDebugging("[3P telemetry] Event logger set successfully");
266075
266115
  process.on("beforeExit", async () => {
@@ -266131,7 +266171,7 @@ Current timeout: ${timeoutMs}ms
266131
266171
  }
266132
266172
  };
266133
266173
  registerCleanup(shutdownTelemetry);
266134
- return meterProvider.getMeter("com.anthropic.claude_code", "1.0.5");
266174
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.0.6");
266135
266175
  }
266136
266176
  async function flushTelemetry() {
266137
266177
  const meterProvider = getMeterProvider();
@@ -267353,7 +267393,7 @@ function detectLinuxGlobPatternWarnings() {
267353
267393
  }
267354
267394
  async function getDoctorDiagnostic() {
267355
267395
  const installationType = await getCurrentInstallationType();
267356
- const version = typeof MACRO !== "undefined" ? "1.0.5" : "unknown";
267396
+ const version = typeof MACRO !== "undefined" ? "1.0.6" : "unknown";
267357
267397
  const installationPath = await getInstallationPath();
267358
267398
  const invokedBinary = getInvokedBinary();
267359
267399
  const multipleInstallations = await detectMultipleInstallations();
@@ -268295,8 +268335,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
268295
268335
  const maxVersion = await getMaxVersion();
268296
268336
  if (maxVersion && gt(version, maxVersion)) {
268297
268337
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
268298
- if (gte("1.0.5", maxVersion)) {
268299
- logForDebugging(`Native installer: current version ${"1.0.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
268338
+ if (gte("1.0.6", maxVersion)) {
268339
+ logForDebugging(`Native installer: current version ${"1.0.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
268300
268340
  logEvent("tengu_native_update_skipped_max_version", {
268301
268341
  latency_ms: Date.now() - startTime,
268302
268342
  max_version: maxVersion,
@@ -268307,7 +268347,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
268307
268347
  version = maxVersion;
268308
268348
  }
268309
268349
  }
268310
- if (!forceReinstall && version === "1.0.5" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
268350
+ if (!forceReinstall && version === "1.0.6" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
268311
268351
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
268312
268352
  logEvent("tengu_native_update_complete", {
268313
268353
  latency_ms: Date.now() - startTime,
@@ -321654,6 +321694,9 @@ var init_WebSearchTool = __esm(() => {
321654
321694
  },
321655
321695
  isEnabled() {
321656
321696
  const provider = getAPIProvider();
321697
+ if (provider === "local") {
321698
+ return false;
321699
+ }
321657
321700
  const model = getMainLoopModel();
321658
321701
  if (provider === "firstParty") {
321659
321702
  return true;
@@ -328428,7 +328471,7 @@ var REPLTool2, SuggestBackgroundPRTool2, SleepTool = null, cronTools, RemoteTrig
328428
328471
  allowedTools = allowedTools.filter((tool) => !REPL_ONLY_TOOLS.has(tool.name));
328429
328472
  }
328430
328473
  }
328431
- const isEnabled2 = allowedTools.map((_2) => _2.isEnabled());
328474
+ const isEnabled2 = allowedTools.map((tool) => tool.isEnabled());
328432
328475
  return allowedTools.filter((_2, i3) => isEnabled2[i3]);
328433
328476
  };
328434
328477
  var init_tools2 = __esm(() => {
@@ -339380,7 +339423,7 @@ function getAnthropicEnvMetadata() {
339380
339423
  function getBuildAgeMinutes() {
339381
339424
  if (false)
339382
339425
  ;
339383
- const buildTime = new Date("2026-04-05T16:12:56.094Z").getTime();
339426
+ const buildTime = new Date("2026-04-05T19:01:49.000Z").getTime();
339384
339427
  if (isNaN(buildTime))
339385
339428
  return;
339386
339429
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -363088,7 +363131,7 @@ function Feedback({
363088
363131
  platform: env4.platform,
363089
363132
  gitRepo: envInfo.isGit,
363090
363133
  terminal: env4.terminal,
363091
- version: "1.0.5",
363134
+ version: "1.0.6",
363092
363135
  transcript: normalizeMessagesForAPI(messages),
363093
363136
  errors: sanitizedErrors,
363094
363137
  lastApiRequest: getLastAPIRequest(),
@@ -363280,7 +363323,7 @@ function Feedback({
363280
363323
  ", ",
363281
363324
  env4.terminal,
363282
363325
  ", v",
363283
- "1.0.5"
363326
+ "1.0.6"
363284
363327
  ]
363285
363328
  }, undefined, true, undefined, this)
363286
363329
  ]
@@ -363386,7 +363429,7 @@ ${sanitizedDescription}
363386
363429
  ` + `**Environment Info**
363387
363430
  ` + `- Platform: ${env4.platform}
363388
363431
  ` + `- Terminal: ${env4.terminal}
363389
- ` + `- Version: ${"1.0.5"}
363432
+ ` + `- Version: ${"1.0.6"}
363390
363433
  ` + `- Feedback ID: ${feedbackId}
363391
363434
  ` + `
363392
363435
  **Errors**
@@ -366499,7 +366542,7 @@ function buildPrimarySection() {
366499
366542
  }, undefined, false, undefined, this);
366500
366543
  return [{
366501
366544
  label: "Version",
366502
- value: "1.0.5"
366545
+ value: "1.0.6"
366503
366546
  }, {
366504
366547
  label: "Session name",
366505
366548
  value: nameValue
@@ -367873,6 +367916,10 @@ var init_ModelPicker = __esm(() => {
367873
367916
  });
367874
367917
 
367875
367918
  // src/components/LocalBackendSetup.tsx
367919
+ var exports_LocalBackendSetup = {};
367920
+ __export(exports_LocalBackendSetup, {
367921
+ LocalBackendSetup: () => LocalBackendSetup
367922
+ });
367876
367923
  function getProviderGuidance(provider) {
367877
367924
  switch (provider) {
367878
367925
  case "vllm":
@@ -367900,7 +367947,8 @@ function LocalBackendSetup({
367900
367947
  onComplete,
367901
367948
  onCancel,
367902
367949
  title = "Configure your model backend",
367903
- description = "localclawd speaks to OpenAI-compatible chat completion APIs. Pick a backend, then confirm the endpoint and model to use."
367950
+ description = "localclawd speaks to OpenAI-compatible chat completion APIs. Pick a backend, then confirm the endpoint and model to use.",
367951
+ showSaveGloballyOption = false
367904
367952
  }) {
367905
367953
  const normalizedInitial = import_react99.useMemo(() => normalizeLocalLLMConfig(initialConfig), [initialConfig]);
367906
367954
  const [step, setStep] = import_react99.useState("provider");
@@ -367950,11 +367998,20 @@ function LocalBackendSetup({
367950
367998
  setStep("apiKey");
367951
367999
  }
367952
368000
  function submitApiKey(value) {
367953
- onComplete({
368001
+ const nextConfig = {
367954
368002
  provider,
367955
368003
  baseUrl,
367956
368004
  model,
367957
368005
  apiKey: value.trim()
368006
+ };
368007
+ setApiKey(nextConfig.apiKey);
368008
+ setError(null);
368009
+ if (showSaveGloballyOption) {
368010
+ setStep("saveScope");
368011
+ return;
368012
+ }
368013
+ onComplete(nextConfig, {
368014
+ saveGlobally: true
367958
368015
  });
367959
368016
  }
367960
368017
  const providerLabel = getLocalLLMProviderLabel(provider);
@@ -368069,6 +368126,41 @@ function LocalBackendSetup({
368069
368126
  }, undefined, false, undefined, this)
368070
368127
  ]
368071
368128
  }, undefined, true, undefined, this) : null,
368129
+ step === "saveScope" ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(jsx_dev_runtime171.Fragment, {
368130
+ children: [
368131
+ /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
368132
+ children: "How should localclawd use this backend?"
368133
+ }, undefined, false, undefined, this),
368134
+ /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
368135
+ dimColor: true,
368136
+ wrap: "wrap",
368137
+ children: "Save it globally if you want this backend to be the default every time localclawd starts. Choose this launch only if you want a temporary override."
368138
+ }, undefined, false, undefined, this),
368139
+ /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(Select, {
368140
+ options: [
368141
+ {
368142
+ label: "Save as global default (recommended)",
368143
+ value: "global"
368144
+ },
368145
+ {
368146
+ label: "Use only for this launch",
368147
+ value: "session"
368148
+ }
368149
+ ],
368150
+ onChange: (value) => {
368151
+ onComplete({
368152
+ provider,
368153
+ baseUrl,
368154
+ model,
368155
+ apiKey
368156
+ }, {
368157
+ saveGlobally: value === "global"
368158
+ });
368159
+ },
368160
+ onCancel: () => setStep("apiKey")
368161
+ }, undefined, false, undefined, this)
368162
+ ]
368163
+ }, undefined, true, undefined, this) : null,
368072
368164
  error5 ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
368073
368165
  color: "error",
368074
368166
  children: error5
@@ -370564,7 +370656,7 @@ function Config({
370564
370656
  }
370565
370657
  }, undefined, false, undefined, this)
370566
370658
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
370567
- currentVersion: "1.0.5",
370659
+ currentVersion: "1.0.6",
370568
370660
  onChoice: (choice) => {
370569
370661
  setShowSubmenu(null);
370570
370662
  setTabsHidden(false);
@@ -370576,7 +370668,7 @@ function Config({
370576
370668
  autoUpdatesChannel: "stable"
370577
370669
  };
370578
370670
  if (choice === "stay") {
370579
- newSettings.minimumVersion = "1.0.5";
370671
+ newSettings.minimumVersion = "1.0.6";
370580
370672
  }
370581
370673
  updateSettingsForSource("userSettings", newSettings);
370582
370674
  setSettingsData((prev_27) => ({
@@ -379123,7 +379215,7 @@ function HelpV2(t0) {
379123
379215
  let t6;
379124
379216
  if ($3[31] !== tabs) {
379125
379217
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
379126
- title: `localclawd v${"1.0.5"}`,
379218
+ title: `localclawd v${"1.0.6"}`,
379127
379219
  color: "professionalBlue",
379128
379220
  defaultTab: "general",
379129
379221
  children: tabs
@@ -403281,7 +403373,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
403281
403373
  return [];
403282
403374
  }
403283
403375
  }
403284
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.5") {
403376
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.6") {
403285
403377
  if (process.env.USER_TYPE === "ant") {
403286
403378
  const changelog = MACRO.VERSION_CHANGELOG;
403287
403379
  if (changelog) {
@@ -403308,7 +403400,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.5") {
403308
403400
  releaseNotes
403309
403401
  };
403310
403402
  }
403311
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.5") {
403403
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.6") {
403312
403404
  if (process.env.USER_TYPE === "ant") {
403313
403405
  const changelog = MACRO.VERSION_CHANGELOG;
403314
403406
  if (changelog) {
@@ -404475,7 +404567,7 @@ function getRecentActivitySync() {
404475
404567
  return cachedActivity;
404476
404568
  }
404477
404569
  function getLogoDisplayData() {
404478
- const version = process.env.DEMO_VERSION ?? "1.0.5";
404570
+ const version = process.env.DEMO_VERSION ?? "1.0.6";
404479
404571
  const serverUrl = getDirectConnectServerUrl();
404480
404572
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
404481
404573
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -405749,7 +405841,7 @@ function LogoV2() {
405749
405841
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
405750
405842
  t2 = () => {
405751
405843
  const currentConfig = getGlobalConfig();
405752
- if (currentConfig.lastReleaseNotesSeen === "1.0.5") {
405844
+ if (currentConfig.lastReleaseNotesSeen === "1.0.6") {
405753
405845
  return;
405754
405846
  }
405755
405847
  saveGlobalConfig(_temp327);
@@ -406425,12 +406517,12 @@ function LogoV2() {
406425
406517
  return t41;
406426
406518
  }
406427
406519
  function _temp327(current) {
406428
- if (current.lastReleaseNotesSeen === "1.0.5") {
406520
+ if (current.lastReleaseNotesSeen === "1.0.6") {
406429
406521
  return current;
406430
406522
  }
406431
406523
  return {
406432
406524
  ...current,
406433
- lastReleaseNotesSeen: "1.0.5"
406525
+ lastReleaseNotesSeen: "1.0.6"
406434
406526
  };
406435
406527
  }
406436
406528
  function _temp245(s_0) {
@@ -432638,7 +432730,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
432638
432730
  smapsRollup,
432639
432731
  platform: process.platform,
432640
432732
  nodeVersion: process.version,
432641
- ccVersion: "1.0.5"
432733
+ ccVersion: "1.0.6"
432642
432734
  };
432643
432735
  }
432644
432736
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -433223,7 +433315,7 @@ var init_bridge_kick = __esm(() => {
433223
433315
  var call57 = async () => {
433224
433316
  return {
433225
433317
  type: "text",
433226
- value: `${"1.0.5"} (built ${"2026-04-05T16:12:56.094Z"})`
433318
+ value: `${"1.0.6"} (built ${"2026-04-05T19:01:49.000Z"})`
433227
433319
  };
433228
433320
  }, version, version_default;
433229
433321
  var init_version = __esm(() => {
@@ -442159,7 +442251,7 @@ function generateHtmlReport(data, insights) {
442159
442251
  </html>`;
442160
442252
  }
442161
442253
  function buildExportData(data, insights, facets, remoteStats) {
442162
- const version2 = typeof MACRO !== "undefined" ? "1.0.5" : "unknown";
442254
+ const version2 = typeof MACRO !== "undefined" ? "1.0.6" : "unknown";
442163
442255
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
442164
442256
  const facets_summary = {
442165
442257
  total: facets.size,
@@ -446272,7 +446364,7 @@ var init_sessionStorage = __esm(() => {
446272
446364
  init_settings2();
446273
446365
  init_slowOperations();
446274
446366
  init_uuid();
446275
- VERSION5 = typeof MACRO !== "undefined" ? "1.0.5" : "unknown";
446367
+ VERSION5 = typeof MACRO !== "undefined" ? "1.0.6" : "unknown";
446276
446368
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
446277
446369
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
446278
446370
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -447474,7 +447566,7 @@ var init_filesystem = __esm(() => {
447474
447566
  });
447475
447567
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
447476
447568
  const nonce = randomBytes18(16).toString("hex");
447477
- return join128(getClaudeTempDir(), "bundled-skills", "1.0.5", nonce);
447569
+ return join128(getClaudeTempDir(), "bundled-skills", "1.0.6", nonce);
447478
447570
  });
447479
447571
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
447480
447572
  });
@@ -453472,7 +453564,7 @@ function computeFingerprint(messageText, version2) {
453472
453564
  }
453473
453565
  function computeFingerprintFromMessages(messages) {
453474
453566
  const firstMessageText = extractFirstMessageText(messages);
453475
- return computeFingerprint(firstMessageText, "1.0.5");
453567
+ return computeFingerprint(firstMessageText, "1.0.6");
453476
453568
  }
453477
453569
  var FINGERPRINT_SALT = "59cf53e54c78";
453478
453570
  var init_fingerprint = () => {};
@@ -455327,7 +455419,7 @@ async function sideQuery(opts) {
455327
455419
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
455328
455420
  }
455329
455421
  const messageText = extractFirstUserMessageText(messages);
455330
- const fingerprint = computeFingerprint(messageText, "1.0.5");
455422
+ const fingerprint = computeFingerprint(messageText, "1.0.6");
455331
455423
  const attributionHeader = getAttributionHeader(fingerprint);
455332
455424
  const systemBlocks = [
455333
455425
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -460125,7 +460217,7 @@ function buildSystemInitMessage(inputs) {
460125
460217
  slash_commands: inputs.commands.filter((c7) => c7.userInvocable !== false).map((c7) => c7.name),
460126
460218
  apiKeySource: getAnthropicApiKeyWithSource().source,
460127
460219
  betas: getSdkBetas(),
460128
- claude_code_version: "1.0.5",
460220
+ claude_code_version: "1.0.6",
460129
460221
  output_style: outputStyle2,
460130
460222
  agents: inputs.agents.map((agent) => agent.agentType),
460131
460223
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -474704,7 +474796,7 @@ var init_useVoiceEnabled = __esm(() => {
474704
474796
  function getSemverPart(version2) {
474705
474797
  return `${import_semver12.major(version2, { loose: true })}.${import_semver12.minor(version2, { loose: true })}.${import_semver12.patch(version2, { loose: true })}`;
474706
474798
  }
474707
- function useUpdateNotification(updatedVersion, initialVersion = "1.0.5") {
474799
+ function useUpdateNotification(updatedVersion, initialVersion = "1.0.6") {
474708
474800
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
474709
474801
  if (!updatedVersion) {
474710
474802
  return null;
@@ -474744,7 +474836,7 @@ function AutoUpdater({
474744
474836
  return;
474745
474837
  }
474746
474838
  if (false) {}
474747
- const currentVersion = "1.0.5";
474839
+ const currentVersion = "1.0.6";
474748
474840
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
474749
474841
  let latestVersion = await getLatestVersion(channel);
474750
474842
  const isDisabled = isAutoUpdaterDisabled();
@@ -474955,12 +475047,12 @@ function NativeAutoUpdater({
474955
475047
  logEvent("tengu_native_auto_updater_start", {});
474956
475048
  try {
474957
475049
  const maxVersion = await getMaxVersion();
474958
- if (maxVersion && gt("1.0.5", maxVersion)) {
475050
+ if (maxVersion && gt("1.0.6", maxVersion)) {
474959
475051
  const msg = await getMaxVersionMessage();
474960
475052
  setMaxVersionIssue(msg ?? "affects your version");
474961
475053
  }
474962
475054
  const result = await installLatest(channel);
474963
- const currentVersion = "1.0.5";
475055
+ const currentVersion = "1.0.6";
474964
475056
  const latencyMs = Date.now() - startTime;
474965
475057
  if (result.lockFailed) {
474966
475058
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -475095,17 +475187,17 @@ function PackageManagerAutoUpdater(t0) {
475095
475187
  const maxVersion = await getMaxVersion();
475096
475188
  if (maxVersion && latest && gt(latest, maxVersion)) {
475097
475189
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
475098
- if (gte("1.0.5", maxVersion)) {
475099
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
475190
+ if (gte("1.0.6", maxVersion)) {
475191
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
475100
475192
  setUpdateAvailable(false);
475101
475193
  return;
475102
475194
  }
475103
475195
  latest = maxVersion;
475104
475196
  }
475105
- const hasUpdate = latest && !gte("1.0.5", latest) && !shouldSkipVersion(latest);
475197
+ const hasUpdate = latest && !gte("1.0.6", latest) && !shouldSkipVersion(latest);
475106
475198
  setUpdateAvailable(!!hasUpdate);
475107
475199
  if (hasUpdate) {
475108
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.5"} -> ${latest}`);
475200
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.6"} -> ${latest}`);
475109
475201
  }
475110
475202
  };
475111
475203
  $3[0] = t1;
@@ -475139,7 +475231,7 @@ function PackageManagerAutoUpdater(t0) {
475139
475231
  wrap: "truncate",
475140
475232
  children: [
475141
475233
  "currentVersion: ",
475142
- "1.0.5"
475234
+ "1.0.6"
475143
475235
  ]
475144
475236
  }, undefined, true, undefined, this);
475145
475237
  $3[3] = verbose;
@@ -482697,7 +482789,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
482697
482789
  project_dir: getOriginalCwd(),
482698
482790
  added_dirs: addedDirs
482699
482791
  },
482700
- version: "1.0.5",
482792
+ version: "1.0.6",
482701
482793
  output_style: {
482702
482794
  name: outputStyleName
482703
482795
  },
@@ -494243,7 +494335,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
494243
494335
  } catch {}
494244
494336
  const data = {
494245
494337
  trigger,
494246
- version: "1.0.5",
494338
+ version: "1.0.6",
494247
494339
  platform: process.platform,
494248
494340
  transcript,
494249
494341
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -505828,7 +505920,7 @@ function WelcomeV2() {
505828
505920
  dimColor: true,
505829
505921
  children: [
505830
505922
  "v",
505831
- "1.0.5"
505923
+ "1.0.6"
505832
505924
  ]
505833
505925
  }, undefined, true, undefined, this)
505834
505926
  ]
@@ -505878,6 +505970,104 @@ var init_WelcomeV2 = __esm(() => {
505878
505970
  ];
505879
505971
  });
505880
505972
 
505973
+ // src/components/StartPage.tsx
505974
+ var exports_StartPage = {};
505975
+ __export(exports_StartPage, {
505976
+ StartPage: () => StartPage
505977
+ });
505978
+ function hasSavedBackendConfig(config2) {
505979
+ return Boolean(config2?.provider && config2?.baseUrl?.trim() && config2?.model?.trim());
505980
+ }
505981
+ function StartPage({ currentConfig, onDone }) {
505982
+ const hasSavedConfig = hasSavedBackendConfig(currentConfig);
505983
+ return /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedBox_default, {
505984
+ flexDirection: "column",
505985
+ gap: 1,
505986
+ children: [
505987
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
505988
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedBox_default, {
505989
+ flexDirection: "column",
505990
+ gap: 1,
505991
+ paddingLeft: 1,
505992
+ width: 78,
505993
+ children: [
505994
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
505995
+ bold: true,
505996
+ children: "Connect a model backend"
505997
+ }, undefined, false, undefined, this),
505998
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
505999
+ dimColor: true,
506000
+ wrap: "wrap",
506001
+ children: "localclawd works with vLLM, Ollama, and other OpenAI-compatible endpoints. Start your model server, then configure the endpoint and model you want to use."
506002
+ }, undefined, false, undefined, this),
506003
+ hasSavedConfig ? /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedBox_default, {
506004
+ flexDirection: "column",
506005
+ children: [
506006
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
506007
+ children: [
506008
+ "Saved default:",
506009
+ " ",
506010
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
506011
+ bold: true,
506012
+ children: getLocalLLMProviderLabel(currentConfig.provider)
506013
+ }, undefined, false, undefined, this)
506014
+ ]
506015
+ }, undefined, true, undefined, this),
506016
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
506017
+ dimColor: true,
506018
+ wrap: "wrap",
506019
+ children: [
506020
+ "Model: ",
506021
+ currentConfig.model
506022
+ ]
506023
+ }, undefined, true, undefined, this),
506024
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
506025
+ dimColor: true,
506026
+ wrap: "wrap",
506027
+ children: [
506028
+ "Endpoint: ",
506029
+ currentConfig.baseUrl
506030
+ ]
506031
+ }, undefined, true, undefined, this)
506032
+ ]
506033
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
506034
+ dimColor: true,
506035
+ wrap: "wrap",
506036
+ children: "No global backend is saved yet. You can configure one now, or continue and come back later with /provider."
506037
+ }, undefined, false, undefined, this),
506038
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
506039
+ dimColor: true,
506040
+ wrap: "wrap",
506041
+ children: "Choose Configure model backend to set a backend for just this launch or save it as your global default. Environment variables still override saved defaults when present."
506042
+ }, undefined, false, undefined, this),
506043
+ /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(Select, {
506044
+ options: [
506045
+ {
506046
+ label: "Continue to dashboard",
506047
+ value: "continue"
506048
+ },
506049
+ {
506050
+ label: "Configure model backend",
506051
+ value: "configure-backend"
506052
+ }
506053
+ ],
506054
+ onChange: (value) => onDone(value),
506055
+ onCancel: () => onDone("continue")
506056
+ }, undefined, false, undefined, this)
506057
+ ]
506058
+ }, undefined, true, undefined, this)
506059
+ ]
506060
+ }, undefined, true, undefined, this);
506061
+ }
506062
+ var jsx_dev_runtime475;
506063
+ var init_StartPage = __esm(() => {
506064
+ init_ink2();
506065
+ init_providers();
506066
+ init_select();
506067
+ init_WelcomeV2();
506068
+ jsx_dev_runtime475 = __toESM(require_jsx_dev_runtime(), 1);
506069
+ });
506070
+
505881
506071
  // src/components/ui/OrderedListItem.tsx
505882
506072
  function OrderedListItem(t0) {
505883
506073
  const $3 = c5(7);
@@ -505889,7 +506079,7 @@ function OrderedListItem(t0) {
505889
506079
  } = import_react320.useContext(OrderedListItemContext);
505890
506080
  let t1;
505891
506081
  if ($3[0] !== marker) {
505892
- t1 = /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
506082
+ t1 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedText, {
505893
506083
  dimColor: true,
505894
506084
  children: marker
505895
506085
  }, undefined, false, undefined, this);
@@ -505900,7 +506090,7 @@ function OrderedListItem(t0) {
505900
506090
  }
505901
506091
  let t2;
505902
506092
  if ($3[2] !== children) {
505903
- t2 = /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedBox_default, {
506093
+ t2 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedBox_default, {
505904
506094
  flexDirection: "column",
505905
506095
  children
505906
506096
  }, undefined, false, undefined, this);
@@ -505911,7 +506101,7 @@ function OrderedListItem(t0) {
505911
506101
  }
505912
506102
  let t3;
505913
506103
  if ($3[4] !== t1 || $3[5] !== t2) {
505914
- t3 = /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedBox_default, {
506104
+ t3 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedBox_default, {
505915
506105
  gap: 1,
505916
506106
  children: [
505917
506107
  t1,
@@ -505926,11 +506116,11 @@ function OrderedListItem(t0) {
505926
506116
  }
505927
506117
  return t3;
505928
506118
  }
505929
- var import_react320, jsx_dev_runtime475, OrderedListItemContext;
506119
+ var import_react320, jsx_dev_runtime476, OrderedListItemContext;
505930
506120
  var init_OrderedListItem = __esm(() => {
505931
506121
  init_ink2();
505932
506122
  import_react320 = __toESM(require_react(), 1);
505933
- jsx_dev_runtime475 = __toESM(require_jsx_dev_runtime(), 1);
506123
+ jsx_dev_runtime476 = __toESM(require_jsx_dev_runtime(), 1);
505934
506124
  OrderedListItemContext = import_react320.createContext({
505935
506125
  marker: ""
505936
506126
  });
@@ -505963,11 +506153,11 @@ function OrderedListComponent(t0) {
505963
506153
  }
505964
506154
  const paddedMarker = `${String(index + 1).padStart(maxMarkerWidth)}.`;
505965
506155
  const marker = `${parentMarker}${paddedMarker}`;
505966
- return /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(OrderedListContext.Provider, {
506156
+ return /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedListContext.Provider, {
505967
506157
  value: {
505968
506158
  marker
505969
506159
  },
505970
- children: /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(OrderedListItemContext.Provider, {
506160
+ children: /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedListItemContext.Provider, {
505971
506161
  value: {
505972
506162
  marker
505973
506163
  },
@@ -505991,7 +506181,7 @@ function OrderedListComponent(t0) {
505991
506181
  }
505992
506182
  let t2;
505993
506183
  if ($3[7] !== t1) {
505994
- t2 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedBox_default, {
506184
+ t2 = /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
505995
506185
  flexDirection: "column",
505996
506186
  children: t1
505997
506187
  }, undefined, false, undefined, this);
@@ -506002,12 +506192,12 @@ function OrderedListComponent(t0) {
506002
506192
  }
506003
506193
  return t2;
506004
506194
  }
506005
- var import_react321, jsx_dev_runtime476, OrderedListContext, OrderedList;
506195
+ var import_react321, jsx_dev_runtime477, OrderedListContext, OrderedList;
506006
506196
  var init_OrderedList = __esm(() => {
506007
506197
  init_ink2();
506008
506198
  init_OrderedListItem();
506009
506199
  import_react321 = __toESM(require_react(), 1);
506010
- jsx_dev_runtime476 = __toESM(require_jsx_dev_runtime(), 1);
506200
+ jsx_dev_runtime477 = __toESM(require_jsx_dev_runtime(), 1);
506011
506201
  OrderedListContext = import_react321.createContext({
506012
506202
  marker: ""
506013
506203
  });
@@ -506020,7 +506210,7 @@ var exports_Onboarding = {};
506020
506210
  __export(exports_Onboarding, {
506021
506211
  Onboarding: () => Onboarding
506022
506212
  });
506023
- function Onboarding({ onDone }) {
506213
+ function Onboarding({ onDone, showWelcome = true }) {
506024
506214
  const [currentStepIndex, setCurrentStepIndex] = import_react322.useState(0);
506025
506215
  const [theme2, setTheme] = useTheme();
506026
506216
  const exitState = useExitOnCtrlCDWithKeybindings();
@@ -506047,21 +506237,26 @@ function Onboarding({ onDone }) {
506047
506237
  setTheme(newTheme);
506048
506238
  goToNextStep();
506049
506239
  }, [goToNextStep, setTheme]);
506050
- const handleLocalBackendSetup = import_react322.useCallback((config2) => {
506051
- saveGlobalConfig((current) => ({
506052
- ...current,
506053
- localBackendProvider: config2.provider,
506054
- localBackendBaseUrl: config2.baseUrl,
506055
- localBackendModel: config2.model,
506056
- localBackendApiKey: config2.apiKey
506057
- }));
506240
+ const handleLocalBackendSetup = import_react322.useCallback((config2, options) => {
506241
+ if (options?.saveGlobally === false) {
506242
+ setSessionLocalLLMConfigOverride(config2);
506243
+ } else {
506244
+ clearSessionLocalLLMConfigOverride();
506245
+ saveGlobalConfig((current) => ({
506246
+ ...current,
506247
+ localBackendProvider: config2.provider,
506248
+ localBackendBaseUrl: config2.baseUrl,
506249
+ localBackendModel: config2.model,
506250
+ localBackendApiKey: config2.apiKey
506251
+ }));
506252
+ }
506058
506253
  goToNextStep();
506059
506254
  }, [goToNextStep]);
506060
506255
  const steps = import_react322.useMemo(() => {
506061
506256
  const config2 = getGlobalConfig();
506062
- const themeStep = /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506257
+ const themeStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506063
506258
  marginX: 1,
506064
- children: /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemePicker, {
506259
+ children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemePicker, {
506065
506260
  onThemeSelect: handleThemeSelection,
506066
506261
  showIntroText: true,
506067
506262
  helpText: "To change this later, run /theme",
@@ -506069,22 +506264,22 @@ function Onboarding({ onDone }) {
506069
506264
  skipExitHandling: true
506070
506265
  }, undefined, false, undefined, this)
506071
506266
  }, undefined, false, undefined, this);
506072
- const compactContextStep = /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506267
+ const compactContextStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506073
506268
  flexDirection: "column",
506074
506269
  gap: 1,
506075
506270
  paddingLeft: 1,
506076
506271
  width: 70,
506077
506272
  children: [
506078
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506273
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506079
506274
  bold: true,
506080
506275
  children: "Choose a compact context window"
506081
506276
  }, undefined, false, undefined, this),
506082
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506277
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506083
506278
  dimColor: true,
506084
506279
  wrap: "wrap",
506085
506280
  children: "localclawd can compact earlier than the model's full advertised window. This is useful for local models that degrade before hitting their theoretical limit."
506086
506281
  }, undefined, false, undefined, this),
506087
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(Select, {
506282
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Select, {
506088
506283
  options: [
506089
506284
  {
506090
506285
  label: `${formatCompactContextWindowOption(undefined)} (recommended)`,
@@ -506105,13 +506300,13 @@ function Onboarding({ onDone }) {
506105
506300
  },
506106
506301
  onCancel: goToNextStep
506107
506302
  }, undefined, false, undefined, this),
506108
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506303
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506109
506304
  dimColor: true,
506110
506305
  children: "Change this later in /config under Compact context window."
506111
506306
  }, undefined, false, undefined, this)
506112
506307
  ]
506113
506308
  }, undefined, true, undefined, this);
506114
- const localBackendStep = /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(LocalBackendSetup, {
506309
+ const localBackendStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(LocalBackendSetup, {
506115
506310
  initialConfig: {
506116
506311
  provider: config2.localBackendProvider,
506117
506312
  baseUrl: config2.localBackendBaseUrl,
@@ -506121,51 +506316,52 @@ function Onboarding({ onDone }) {
506121
506316
  onComplete: handleLocalBackendSetup,
506122
506317
  onCancel: goToNextStep,
506123
506318
  title: "Choose your local backend",
506124
- description: "Set the OpenAI-compatible endpoint and model localclawd should use by default. You can point vLLM at a local server, Ollama, or any other compatible host."
506319
+ description: "Set the OpenAI-compatible endpoint and model localclawd should use by default. You can point vLLM at a local server, Ollama, or any other compatible host.",
506320
+ showSaveGloballyOption: true
506125
506321
  }, undefined, false, undefined, this);
506126
- const securityStep = /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506322
+ const securityStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506127
506323
  flexDirection: "column",
506128
506324
  gap: 1,
506129
506325
  paddingLeft: 1,
506130
506326
  children: [
506131
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506327
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506132
506328
  bold: true,
506133
506329
  children: "Security notes:"
506134
506330
  }, undefined, false, undefined, this),
506135
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506331
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506136
506332
  flexDirection: "column",
506137
506333
  width: 70,
506138
- children: /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedList, {
506334
+ children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList, {
506139
506335
  children: [
506140
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedList.Item, {
506336
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList.Item, {
506141
506337
  children: [
506142
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506338
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506143
506339
  children: "localclawd can make mistakes"
506144
506340
  }, undefined, false, undefined, this),
506145
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506341
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506146
506342
  dimColor: true,
506147
506343
  wrap: "wrap",
506148
506344
  children: [
506149
506345
  "You should always review localclawd's responses, especially when",
506150
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(Newline, {}, undefined, false, undefined, this),
506346
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
506151
506347
  "running code.",
506152
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(Newline, {}, undefined, false, undefined, this)
506348
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this)
506153
506349
  ]
506154
506350
  }, undefined, true, undefined, this)
506155
506351
  ]
506156
506352
  }, undefined, true, undefined, this),
506157
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedList.Item, {
506353
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList.Item, {
506158
506354
  children: [
506159
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506355
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506160
506356
  children: "Due to prompt injection risks, only use it with code you trust"
506161
506357
  }, undefined, false, undefined, this),
506162
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506358
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506163
506359
  dimColor: true,
506164
506360
  wrap: "wrap",
506165
506361
  children: [
506166
506362
  "For more details see:",
506167
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(Newline, {}, undefined, false, undefined, this),
506168
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(Link, {
506363
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
506364
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Link, {
506169
506365
  url: "https://github.com/chromebookwiz/localclawd"
506170
506366
  }, undefined, false, undefined, this)
506171
506367
  ]
@@ -506175,7 +506371,7 @@ function Onboarding({ onDone }) {
506175
506371
  ]
506176
506372
  }, undefined, true, undefined, this)
506177
506373
  }, undefined, false, undefined, this),
506178
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(PressEnterToContinue, {}, undefined, false, undefined, this)
506374
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(PressEnterToContinue, {}, undefined, false, undefined, this)
506179
506375
  ]
506180
506376
  }, undefined, true, undefined, this);
506181
506377
  const nextSteps = [
@@ -506187,30 +506383,30 @@ function Onboarding({ onDone }) {
506187
506383
  if (shouldOfferTerminalSetup()) {
506188
506384
  nextSteps.push({
506189
506385
  id: "terminal-setup",
506190
- component: /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506386
+ component: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506191
506387
  flexDirection: "column",
506192
506388
  gap: 1,
506193
506389
  paddingLeft: 1,
506194
506390
  children: [
506195
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506391
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506196
506392
  bold: true,
506197
506393
  children: "Use localclawd's terminal setup?"
506198
506394
  }, undefined, false, undefined, this),
506199
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506395
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506200
506396
  flexDirection: "column",
506201
506397
  width: 70,
506202
506398
  gap: 1,
506203
506399
  children: [
506204
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506400
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506205
506401
  children: [
506206
506402
  "For the optimal coding experience, enable the recommended settings",
506207
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(Newline, {}, undefined, false, undefined, this),
506403
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
506208
506404
  "for your terminal:",
506209
506405
  " ",
506210
506406
  env4.terminal === "Apple_Terminal" ? "Option+Enter for newlines and visual bell" : "Shift+Enter for newlines"
506211
506407
  ]
506212
506408
  }, undefined, true, undefined, this),
506213
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(Select, {
506409
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Select, {
506214
506410
  options: [
506215
506411
  {
506216
506412
  label: "Yes, use recommended settings",
@@ -506230,15 +506426,15 @@ function Onboarding({ onDone }) {
506230
506426
  },
506231
506427
  onCancel: goToNextStep
506232
506428
  }, undefined, false, undefined, this),
506233
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506429
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506234
506430
  dimColor: true,
506235
- children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(jsx_dev_runtime477.Fragment, {
506431
+ children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(jsx_dev_runtime478.Fragment, {
506236
506432
  children: [
506237
506433
  "Press ",
506238
506434
  exitState.keyName,
506239
506435
  " again to exit"
506240
506436
  ]
506241
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(jsx_dev_runtime477.Fragment, {
506437
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(jsx_dev_runtime478.Fragment, {
506242
506438
  children: "Enter to confirm · Esc to skip"
506243
506439
  }, undefined, false, undefined, this)
506244
506440
  }, undefined, false, undefined, this)
@@ -506273,18 +506469,18 @@ function Onboarding({ onDone }) {
506273
506469
  context: "Confirmation",
506274
506470
  isActive: currentStep?.id === "terminal-setup"
506275
506471
  });
506276
- return /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506472
+ return /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506277
506473
  flexDirection: "column",
506278
506474
  children: [
506279
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
506280
- /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506475
+ showWelcome ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this) : null,
506476
+ /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506281
506477
  flexDirection: "column",
506282
506478
  marginTop: 1,
506283
506479
  children: [
506284
506480
  currentStep?.component,
506285
- exitState.pending ? /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
506481
+ exitState.pending ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506286
506482
  padding: 1,
506287
- children: /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedText, {
506483
+ children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506288
506484
  dimColor: true,
506289
506485
  children: [
506290
506486
  "Press ",
@@ -506298,7 +506494,7 @@ function Onboarding({ onDone }) {
506298
506494
  ]
506299
506495
  }, undefined, true, undefined, this);
506300
506496
  }
506301
- var import_react322, jsx_dev_runtime477;
506497
+ var import_react322, jsx_dev_runtime478;
506302
506498
  var init_Onboarding = __esm(() => {
506303
506499
  init_terminalSetup();
506304
506500
  init_useExitOnCtrlCDWithKeybindings();
@@ -506307,6 +506503,7 @@ var init_Onboarding = __esm(() => {
506307
506503
  init_config();
506308
506504
  init_context();
506309
506505
  init_env();
506506
+ init_providers();
506310
506507
  init_select();
506311
506508
  init_LocalBackendSetup();
506312
506509
  init_WelcomeV2();
@@ -506314,7 +506511,7 @@ var init_Onboarding = __esm(() => {
506314
506511
  init_ThemePicker();
506315
506512
  init_OrderedList();
506316
506513
  import_react322 = __toESM(require_react(), 1);
506317
- jsx_dev_runtime477 = __toESM(require_jsx_dev_runtime(), 1);
506514
+ jsx_dev_runtime478 = __toESM(require_jsx_dev_runtime(), 1);
506318
506515
  });
506319
506516
 
506320
506517
  // src/components/TrustDialog/utils.ts
@@ -506639,18 +506836,18 @@ function TrustDialog(t0) {
506639
506836
  let t17;
506640
506837
  let t18;
506641
506838
  if ($3[20] === Symbol.for("react.memo_cache_sentinel")) {
506642
- t16 = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506839
+ t16 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
506643
506840
  bold: true,
506644
506841
  children: getFsImplementation().cwd()
506645
506842
  }, undefined, false, undefined, this);
506646
- t17 = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506843
+ t17 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
506647
506844
  children: [
506648
506845
  "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",
506649
506846
  "'",
506650
506847
  "s in this folder first."
506651
506848
  ]
506652
506849
  }, undefined, true, undefined, this);
506653
- t18 = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506850
+ t18 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
506654
506851
  children: [
506655
506852
  "Claude Code",
506656
506853
  "'",
@@ -506667,9 +506864,9 @@ function TrustDialog(t0) {
506667
506864
  }
506668
506865
  let t19;
506669
506866
  if ($3[23] === Symbol.for("react.memo_cache_sentinel")) {
506670
- t19 = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506867
+ t19 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
506671
506868
  dimColor: true,
506672
- children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Link, {
506869
+ children: /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Link, {
506673
506870
  url: "https://code.claude.com/docs/en/security",
506674
506871
  children: "Security guide"
506675
506872
  }, undefined, false, undefined, this)
@@ -506693,7 +506890,7 @@ function TrustDialog(t0) {
506693
506890
  }
506694
506891
  let t21;
506695
506892
  if ($3[25] !== onChange) {
506696
- t21 = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Select, {
506893
+ t21 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Select, {
506697
506894
  options: t20,
506698
506895
  onChange: (value_0) => onChange(value_0),
506699
506896
  onCancel: () => onChange("exit")
@@ -506705,15 +506902,15 @@ function TrustDialog(t0) {
506705
506902
  }
506706
506903
  let t22;
506707
506904
  if ($3[27] !== exitState.keyName || $3[28] !== exitState.pending) {
506708
- t22 = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
506905
+ t22 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
506709
506906
  dimColor: true,
506710
- children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(jsx_dev_runtime478.Fragment, {
506907
+ children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(jsx_dev_runtime479.Fragment, {
506711
506908
  children: [
506712
506909
  "Press ",
506713
506910
  exitState.keyName,
506714
506911
  " again to exit"
506715
506912
  ]
506716
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(jsx_dev_runtime478.Fragment, {
506913
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(jsx_dev_runtime479.Fragment, {
506717
506914
  children: "Enter to confirm · Esc to cancel"
506718
506915
  }, undefined, false, undefined, this)
506719
506916
  }, undefined, false, undefined, this);
@@ -506725,11 +506922,11 @@ function TrustDialog(t0) {
506725
506922
  }
506726
506923
  let t23;
506727
506924
  if ($3[30] !== t21 || $3[31] !== t22) {
506728
- t23 = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(PermissionDialog, {
506925
+ t23 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(PermissionDialog, {
506729
506926
  color: "warning",
506730
506927
  titleColor: "warning",
506731
506928
  title: "Accessing workspace:",
506732
- children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
506929
+ children: /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedBox_default, {
506733
506930
  flexDirection: "column",
506734
506931
  gap: 1,
506735
506932
  paddingTop: 1,
@@ -506775,7 +506972,7 @@ function _temp2101(command8) {
506775
506972
  function _temp303(tool) {
506776
506973
  return tool === BASH_TOOL_NAME || tool.startsWith(BASH_TOOL_NAME + "(");
506777
506974
  }
506778
- var import_react323, jsx_dev_runtime478;
506975
+ var import_react323, jsx_dev_runtime479;
506779
506976
  var init_TrustDialog = __esm(() => {
506780
506977
  init_state();
506781
506978
  init_useExitOnCtrlCDWithKeybindings();
@@ -506790,7 +506987,7 @@ var init_TrustDialog = __esm(() => {
506790
506987
  init_PermissionDialog();
506791
506988
  init_utils14();
506792
506989
  import_react323 = __toESM(require_react(), 1);
506793
- jsx_dev_runtime478 = __toESM(require_jsx_dev_runtime(), 1);
506990
+ jsx_dev_runtime479 = __toESM(require_jsx_dev_runtime(), 1);
506794
506991
  });
506795
506992
 
506796
506993
  // src/components/BypassPermissionsModeDialog.tsx
@@ -506838,21 +507035,21 @@ function BypassPermissionsModeDialog(t0) {
506838
507035
  const handleEscape = _temp2102;
506839
507036
  let t3;
506840
507037
  if ($3[3] === Symbol.for("react.memo_cache_sentinel")) {
506841
- t3 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedBox_default, {
507038
+ t3 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedBox_default, {
506842
507039
  flexDirection: "column",
506843
507040
  gap: 1,
506844
507041
  children: [
506845
- /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
507042
+ /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
506846
507043
  children: [
506847
507044
  "In Bypass Permissions mode, localclawd will not ask for your approval before running potentially dangerous commands.",
506848
- /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Newline, {}, undefined, false, undefined, this),
507045
+ /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Newline, {}, undefined, false, undefined, this),
506849
507046
  "This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."
506850
507047
  ]
506851
507048
  }, undefined, true, undefined, this),
506852
- /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
507049
+ /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
506853
507050
  children: "By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."
506854
507051
  }, undefined, false, undefined, this),
506855
- /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Link, {
507052
+ /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Link, {
506856
507053
  url: "https://github.com/chromebookwiz/localclawd"
506857
507054
  }, undefined, false, undefined, this)
506858
507055
  ]
@@ -506876,13 +507073,13 @@ function BypassPermissionsModeDialog(t0) {
506876
507073
  }
506877
507074
  let t5;
506878
507075
  if ($3[5] !== onChange) {
506879
- t5 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Dialog, {
507076
+ t5 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Dialog, {
506880
507077
  title: "WARNING: localclawd running in Bypass Permissions mode",
506881
507078
  color: "error",
506882
507079
  onCancel: handleEscape,
506883
507080
  children: [
506884
507081
  t3,
506885
- /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Select, {
507082
+ /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Select, {
506886
507083
  options: t4,
506887
507084
  onChange: (value_0) => onChange(value_0)
506888
507085
  }, undefined, false, undefined, this)
@@ -506901,7 +507098,7 @@ function _temp2102() {
506901
507098
  function _temp304() {
506902
507099
  logEvent("tengu_bypass_permissions_mode_dialog_shown", {});
506903
507100
  }
506904
- var import_react324, jsx_dev_runtime479;
507101
+ var import_react324, jsx_dev_runtime480;
506905
507102
  var init_BypassPermissionsModeDialog = __esm(() => {
506906
507103
  init_ink2();
506907
507104
  init_gracefulShutdown();
@@ -506909,7 +507106,7 @@ var init_BypassPermissionsModeDialog = __esm(() => {
506909
507106
  init_CustomSelect();
506910
507107
  init_Dialog();
506911
507108
  import_react324 = __toESM(require_react(), 1);
506912
- jsx_dev_runtime479 = __toESM(require_jsx_dev_runtime(), 1);
507109
+ jsx_dev_runtime480 = __toESM(require_jsx_dev_runtime(), 1);
506913
507110
  });
506914
507111
 
506915
507112
  // src/components/ClaudeInChromeOnboarding.tsx
@@ -506954,13 +507151,13 @@ function ClaudeInChromeOnboarding(t0) {
506954
507151
  use_input_default(t3);
506955
507152
  let t4;
506956
507153
  if ($3[4] !== isExtensionInstalled) {
506957
- t4 = !isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(jsx_dev_runtime480.Fragment, {
507154
+ t4 = !isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(jsx_dev_runtime481.Fragment, {
506958
507155
  children: [
506959
- /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Newline, {}, undefined, false, undefined, this),
506960
- /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Newline, {}, undefined, false, undefined, this),
507156
+ /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Newline, {}, undefined, false, undefined, this),
507157
+ /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Newline, {}, undefined, false, undefined, this),
506961
507158
  "Requires the Chrome extension. Get started at",
506962
507159
  " ",
506963
- /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Link, {
507160
+ /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
506964
507161
  url: CHROME_EXTENSION_URL2
506965
507162
  }, undefined, false, undefined, this)
506966
507163
  ]
@@ -506972,7 +507169,7 @@ function ClaudeInChromeOnboarding(t0) {
506972
507169
  }
506973
507170
  let t5;
506974
507171
  if ($3[6] !== t4) {
506975
- t5 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
507172
+ t5 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
506976
507173
  children: [
506977
507174
  "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.",
506978
507175
  t4
@@ -506985,11 +507182,11 @@ function ClaudeInChromeOnboarding(t0) {
506985
507182
  }
506986
507183
  let t6;
506987
507184
  if ($3[8] !== isExtensionInstalled) {
506988
- t6 = isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(jsx_dev_runtime480.Fragment, {
507185
+ t6 = isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(jsx_dev_runtime481.Fragment, {
506989
507186
  children: [
506990
507187
  " ",
506991
507188
  "(",
506992
- /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Link, {
507189
+ /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
506993
507190
  url: CHROME_PERMISSIONS_URL2
506994
507191
  }, undefined, false, undefined, this),
506995
507192
  ")"
@@ -507002,7 +507199,7 @@ function ClaudeInChromeOnboarding(t0) {
507002
507199
  }
507003
507200
  let t7;
507004
507201
  if ($3[10] !== t6) {
507005
- t7 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
507202
+ t7 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
507006
507203
  dimColor: true,
507007
507204
  children: [
507008
507205
  "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",
@@ -507017,7 +507214,7 @@ function ClaudeInChromeOnboarding(t0) {
507017
507214
  }
507018
507215
  let t8;
507019
507216
  if ($3[12] === Symbol.for("react.memo_cache_sentinel")) {
507020
- t8 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
507217
+ t8 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
507021
507218
  bold: true,
507022
507219
  color: "chromeYellow",
507023
507220
  children: "/chrome"
@@ -507028,7 +507225,7 @@ function ClaudeInChromeOnboarding(t0) {
507028
507225
  }
507029
507226
  let t9;
507030
507227
  if ($3[13] === Symbol.for("react.memo_cache_sentinel")) {
507031
- t9 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
507228
+ t9 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
507032
507229
  dimColor: true,
507033
507230
  children: [
507034
507231
  "For more info, use",
@@ -507036,7 +507233,7 @@ function ClaudeInChromeOnboarding(t0) {
507036
507233
  t8,
507037
507234
  " ",
507038
507235
  "or visit ",
507039
- /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Link, {
507236
+ /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
507040
507237
  url: "https://github.com/chromebookwiz/localclawd"
507041
507238
  }, undefined, false, undefined, this)
507042
507239
  ]
@@ -507047,7 +507244,7 @@ function ClaudeInChromeOnboarding(t0) {
507047
507244
  }
507048
507245
  let t10;
507049
507246
  if ($3[14] !== t5 || $3[15] !== t7) {
507050
- t10 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedBox_default, {
507247
+ t10 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedBox_default, {
507051
507248
  flexDirection: "column",
507052
507249
  gap: 1,
507053
507250
  children: [
@@ -507064,7 +507261,7 @@ function ClaudeInChromeOnboarding(t0) {
507064
507261
  }
507065
507262
  let t11;
507066
507263
  if ($3[17] !== onDone || $3[18] !== t10) {
507067
- t11 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Dialog, {
507264
+ t11 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Dialog, {
507068
507265
  title: "localclawd in Chrome (Beta)",
507069
507266
  onCancel: onDone,
507070
507267
  color: "chromeYellow",
@@ -507084,14 +507281,14 @@ function _temp305(current) {
507084
507281
  hasCompletedClaudeInChromeOnboarding: true
507085
507282
  };
507086
507283
  }
507087
- var import_react325, jsx_dev_runtime480, CHROME_EXTENSION_URL2 = "https://github.com/chromebookwiz/localclawd", CHROME_PERMISSIONS_URL2 = "https://clau.de/chrome/permissions";
507284
+ var import_react325, jsx_dev_runtime481, CHROME_EXTENSION_URL2 = "https://github.com/chromebookwiz/localclawd", CHROME_PERMISSIONS_URL2 = "https://clau.de/chrome/permissions";
507088
507285
  var init_ClaudeInChromeOnboarding = __esm(() => {
507089
507286
  init_ink2();
507090
507287
  init_setup2();
507091
507288
  init_config();
507092
507289
  init_Dialog();
507093
507290
  import_react325 = __toESM(require_react(), 1);
507094
- jsx_dev_runtime480 = __toESM(require_jsx_dev_runtime(), 1);
507291
+ jsx_dev_runtime481 = __toESM(require_jsx_dev_runtime(), 1);
507095
507292
  });
507096
507293
 
507097
507294
  // src/interactiveHelpers.tsx
@@ -507100,7 +507297,7 @@ function completeOnboarding() {
507100
507297
  saveGlobalConfig((current) => ({
507101
507298
  ...current,
507102
507299
  hasCompletedOnboarding: true,
507103
- lastOnboardingVersion: "1.0.5"
507300
+ lastOnboardingVersion: "1.0.6"
507104
507301
  }));
507105
507302
  }
507106
507303
  function showDialog(root2, renderer) {
@@ -507121,10 +507318,10 @@ async function exitWithMessage2(root2, message, options) {
507121
507318
  } = await Promise.resolve().then(() => (init_ink2(), exports_ink));
507122
507319
  const color3 = options?.color;
507123
507320
  const exitCode = options?.exitCode ?? 1;
507124
- root2.render(color3 ? /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Text6, {
507321
+ root2.render(color3 ? /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Text6, {
507125
507322
  color: color3,
507126
507323
  children: message
507127
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Text6, {
507324
+ }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Text6, {
507128
507325
  children: message
507129
507326
  }, undefined, false, undefined, this));
507130
507327
  root2.unmount();
@@ -507132,9 +507329,9 @@ async function exitWithMessage2(root2, message, options) {
507132
507329
  process.exit(exitCode);
507133
507330
  }
507134
507331
  function showSetupDialog(root2, renderer, options) {
507135
- return showDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(AppStateProvider, {
507332
+ return showDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(AppStateProvider, {
507136
507333
  onChangeAppState: options?.onChangeAppState,
507137
- children: /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(KeybindingSetup, {
507334
+ children: /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(KeybindingSetup, {
507138
507335
  children: renderer(done)
507139
507336
  }, undefined, false, undefined, this)
507140
507337
  }, undefined, false, undefined, this));
@@ -507150,13 +507347,68 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
507150
507347
  return false;
507151
507348
  }
507152
507349
  const config2 = getGlobalConfig();
507350
+ const {
507351
+ StartPage: StartPage2
507352
+ } = await Promise.resolve().then(() => (init_StartPage(), exports_StartPage));
507353
+ const startAction = await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(StartPage2, {
507354
+ currentConfig: {
507355
+ provider: config2.localBackendProvider,
507356
+ baseUrl: config2.localBackendBaseUrl,
507357
+ model: config2.localBackendModel,
507358
+ apiKey: config2.localBackendApiKey
507359
+ },
507360
+ onDone: done
507361
+ }, undefined, false, undefined, this), {
507362
+ onChangeAppState
507363
+ });
507364
+ if (startAction === "configure-backend") {
507365
+ const {
507366
+ LocalBackendSetup: LocalBackendSetup2
507367
+ } = await Promise.resolve().then(() => (init_LocalBackendSetup(), exports_LocalBackendSetup));
507368
+ const {
507369
+ clearSessionLocalLLMConfigOverride: clearSessionLocalLLMConfigOverride2,
507370
+ setSessionLocalLLMConfigOverride: setSessionLocalLLMConfigOverride2
507371
+ } = await Promise.resolve().then(() => (init_providers(), exports_providers));
507372
+ await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(LocalBackendSetup2, {
507373
+ initialConfig: {
507374
+ provider: config2.localBackendProvider,
507375
+ baseUrl: config2.localBackendBaseUrl,
507376
+ model: config2.localBackendModel,
507377
+ apiKey: config2.localBackendApiKey
507378
+ },
507379
+ onComplete: (nextConfig, options) => {
507380
+ if (options?.saveGlobally === false) {
507381
+ setSessionLocalLLMConfigOverride2(nextConfig);
507382
+ } else {
507383
+ clearSessionLocalLLMConfigOverride2();
507384
+ saveGlobalConfig((current) => ({
507385
+ ...current,
507386
+ localBackendProvider: nextConfig.provider,
507387
+ localBackendBaseUrl: nextConfig.baseUrl,
507388
+ localBackendModel: nextConfig.model,
507389
+ localBackendApiKey: nextConfig.apiKey
507390
+ }));
507391
+ }
507392
+ done();
507393
+ },
507394
+ onCancel: () => {
507395
+ done();
507396
+ },
507397
+ title: "Connect your model backend",
507398
+ 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.",
507399
+ showSaveGloballyOption: true
507400
+ }, undefined, false, undefined, this), {
507401
+ onChangeAppState
507402
+ });
507403
+ }
507153
507404
  let onboardingShown = false;
507154
507405
  if (!config2.theme || !config2.hasCompletedOnboarding) {
507155
507406
  onboardingShown = true;
507156
507407
  const {
507157
507408
  Onboarding: Onboarding2
507158
507409
  } = await Promise.resolve().then(() => (init_Onboarding(), exports_Onboarding));
507159
- await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Onboarding2, {
507410
+ await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Onboarding2, {
507411
+ showWelcome: false,
507160
507412
  onDone: () => {
507161
507413
  completeOnboarding();
507162
507414
  done();
@@ -507170,7 +507422,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
507170
507422
  const {
507171
507423
  TrustDialog: TrustDialog2
507172
507424
  } = await Promise.resolve().then(() => (init_TrustDialog(), exports_TrustDialog));
507173
- await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(TrustDialog2, {
507425
+ await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(TrustDialog2, {
507174
507426
  commands,
507175
507427
  onDone: done
507176
507428
  }, undefined, false, undefined, this));
@@ -507190,7 +507442,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
507190
507442
  const {
507191
507443
  ClaudeMdExternalIncludesDialog: ClaudeMdExternalIncludesDialog2
507192
507444
  } = await Promise.resolve().then(() => (init_ClaudeMdExternalIncludesDialog(), exports_ClaudeMdExternalIncludesDialog));
507193
- await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ClaudeMdExternalIncludesDialog2, {
507445
+ await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ClaudeMdExternalIncludesDialog2, {
507194
507446
  onDone: done,
507195
507447
  isStandaloneDialog: true,
507196
507448
  externalIncludes
@@ -507205,7 +507457,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
507205
507457
  const {
507206
507458
  GroveDialog: GroveDialog2
507207
507459
  } = await Promise.resolve().then(() => (init_Grove(), exports_Grove));
507208
- const decision = await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(GroveDialog2, {
507460
+ const decision = await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(GroveDialog2, {
507209
507461
  showIfAlreadyViewed: false,
507210
507462
  location: onboardingShown ? "onboarding" : "policy_update_modal",
507211
507463
  onDone: done
@@ -507220,7 +507472,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
507220
507472
  const {
507221
507473
  BypassPermissionsModeDialog: BypassPermissionsModeDialog2
507222
507474
  } = await Promise.resolve().then(() => (init_BypassPermissionsModeDialog(), exports_BypassPermissionsModeDialog));
507223
- await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(BypassPermissionsModeDialog2, {
507475
+ await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(BypassPermissionsModeDialog2, {
507224
507476
  onAccept: done
507225
507477
  }, undefined, false, undefined, this));
507226
507478
  }
@@ -507230,7 +507482,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
507230
507482
  const {
507231
507483
  ClaudeInChromeOnboarding: ClaudeInChromeOnboarding2
507232
507484
  } = await Promise.resolve().then(() => (init_ClaudeInChromeOnboarding(), exports_ClaudeInChromeOnboarding));
507233
- await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ClaudeInChromeOnboarding2, {
507485
+ await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ClaudeInChromeOnboarding2, {
507234
507486
  onDone: done
507235
507487
  }, undefined, false, undefined, this));
507236
507488
  }
@@ -507285,7 +507537,7 @@ function getRenderContext(exitOnCtrlC) {
507285
507537
  }
507286
507538
  };
507287
507539
  }
507288
- var jsx_dev_runtime481;
507540
+ var jsx_dev_runtime482;
507289
507541
  var init_interactiveHelpers = __esm(() => {
507290
507542
  init_gracefulShutdown();
507291
507543
  init_state();
@@ -507308,7 +507560,7 @@ var init_interactiveHelpers = __esm(() => {
507308
507560
  init_renderOptions();
507309
507561
  init_allErrors();
507310
507562
  init_settings2();
507311
- jsx_dev_runtime481 = __toESM(require_jsx_dev_runtime(), 1);
507563
+ jsx_dev_runtime482 = __toESM(require_jsx_dev_runtime(), 1);
507312
507564
  });
507313
507565
 
507314
507566
  // src/components/InvalidSettingsDialog.tsx
@@ -507341,7 +507593,7 @@ function InvalidSettingsDialog(t0) {
507341
507593
  const handleSelect = t1;
507342
507594
  let t2;
507343
507595
  if ($3[3] !== settingsErrors) {
507344
- t2 = /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ValidationErrorsList, {
507596
+ t2 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ValidationErrorsList, {
507345
507597
  errors: settingsErrors
507346
507598
  }, undefined, false, undefined, this);
507347
507599
  $3[3] = settingsErrors;
@@ -507351,7 +507603,7 @@ function InvalidSettingsDialog(t0) {
507351
507603
  }
507352
507604
  let t3;
507353
507605
  if ($3[5] === Symbol.for("react.memo_cache_sentinel")) {
507354
- t3 = /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ThemedText, {
507606
+ t3 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507355
507607
  dimColor: true,
507356
507608
  children: "Files with errors are skipped entirely, not just the invalid settings."
507357
507609
  }, undefined, false, undefined, this);
@@ -507374,7 +507626,7 @@ function InvalidSettingsDialog(t0) {
507374
507626
  }
507375
507627
  let t5;
507376
507628
  if ($3[7] !== handleSelect) {
507377
- t5 = /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Select, {
507629
+ t5 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Select, {
507378
507630
  options: t4,
507379
507631
  onChange: handleSelect
507380
507632
  }, undefined, false, undefined, this);
@@ -507385,7 +507637,7 @@ function InvalidSettingsDialog(t0) {
507385
507637
  }
507386
507638
  let t6;
507387
507639
  if ($3[9] !== onExit2 || $3[10] !== t2 || $3[11] !== t5) {
507388
- t6 = /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Dialog, {
507640
+ t6 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Dialog, {
507389
507641
  title: "Settings Error",
507390
507642
  onCancel: onExit2,
507391
507643
  color: "warning",
@@ -507404,13 +507656,13 @@ function InvalidSettingsDialog(t0) {
507404
507656
  }
507405
507657
  return t6;
507406
507658
  }
507407
- var jsx_dev_runtime482;
507659
+ var jsx_dev_runtime483;
507408
507660
  var init_InvalidSettingsDialog = __esm(() => {
507409
507661
  init_ink2();
507410
507662
  init_CustomSelect();
507411
507663
  init_Dialog();
507412
507664
  init_ValidationErrorsList();
507413
- jsx_dev_runtime482 = __toESM(require_jsx_dev_runtime(), 1);
507665
+ jsx_dev_runtime483 = __toESM(require_jsx_dev_runtime(), 1);
507414
507666
  });
507415
507667
 
507416
507668
  // src/hooks/useTeleportResume.tsx
@@ -507567,26 +507819,26 @@ function ResumeTask({
507567
507819
  loadSessions();
507568
507820
  }, [setHasCompletedTeleportErrorFlow, loadSessions]);
507569
507821
  if (!hasCompletedTeleportErrorFlow) {
507570
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(TeleportError, {
507822
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(TeleportError, {
507571
507823
  onComplete: handleErrorComplete
507572
507824
  }, undefined, false, undefined, this);
507573
507825
  }
507574
507826
  if (loading) {
507575
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507827
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507576
507828
  flexDirection: "column",
507577
507829
  padding: 1,
507578
507830
  children: [
507579
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507831
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507580
507832
  flexDirection: "row",
507581
507833
  children: [
507582
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Spinner, {}, undefined, false, undefined, this),
507583
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507834
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Spinner, {}, undefined, false, undefined, this),
507835
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507584
507836
  bold: true,
507585
507837
  children: "Loading localclawd sessions…"
507586
507838
  }, undefined, false, undefined, this)
507587
507839
  ]
507588
507840
  }, undefined, true, undefined, this),
507589
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507841
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507590
507842
  dimColor: true,
507591
507843
  children: retrying ? "Retrying…" : "Fetching your localclawd sessions…"
507592
507844
  }, undefined, false, undefined, this)
@@ -507594,27 +507846,27 @@ function ResumeTask({
507594
507846
  }, undefined, true, undefined, this);
507595
507847
  }
507596
507848
  if (loadErrorType) {
507597
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507849
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507598
507850
  flexDirection: "column",
507599
507851
  padding: 1,
507600
507852
  children: [
507601
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507853
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507602
507854
  bold: true,
507603
507855
  color: "error",
507604
507856
  children: "Error loading localclawd sessions"
507605
507857
  }, undefined, false, undefined, this),
507606
507858
  renderErrorSpecificGuidance(loadErrorType),
507607
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507859
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507608
507860
  dimColor: true,
507609
507861
  children: [
507610
507862
  "Press ",
507611
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507863
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507612
507864
  bold: true,
507613
507865
  children: "Ctrl+R"
507614
507866
  }, undefined, false, undefined, this),
507615
507867
  " to retry · Press",
507616
507868
  " ",
507617
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507869
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507618
507870
  bold: true,
507619
507871
  children: escKey
507620
507872
  }, undefined, false, undefined, this),
@@ -507625,15 +507877,15 @@ function ResumeTask({
507625
507877
  }, undefined, true, undefined, this);
507626
507878
  }
507627
507879
  if (sessions.length === 0) {
507628
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507880
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507629
507881
  flexDirection: "column",
507630
507882
  padding: 1,
507631
507883
  children: [
507632
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507884
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507633
507885
  bold: true,
507634
507886
  children: [
507635
507887
  "No localclawd sessions found",
507636
- currentRepo && /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507888
+ currentRepo && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507637
507889
  children: [
507638
507890
  " for ",
507639
507891
  currentRepo
@@ -507641,13 +507893,13 @@ function ResumeTask({
507641
507893
  }, undefined, true, undefined, this)
507642
507894
  ]
507643
507895
  }, undefined, true, undefined, this),
507644
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507896
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507645
507897
  marginTop: 1,
507646
- children: /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507898
+ children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507647
507899
  dimColor: true,
507648
507900
  children: [
507649
507901
  "Press ",
507650
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507902
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507651
507903
  bold: true,
507652
507904
  children: escKey
507653
507905
  }, undefined, false, undefined, this),
@@ -507678,16 +507930,16 @@ function ResumeTask({
507678
507930
  const maxVisibleOptions = Math.max(1, isEmbedded ? Math.min(sessions.length, 5, rows - 6 - layoutOverhead) : Math.min(sessions.length, rows - 1 - layoutOverhead));
507679
507931
  const maxHeight = maxVisibleOptions + layoutOverhead;
507680
507932
  const showScrollPosition = sessions.length > maxVisibleOptions;
507681
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507933
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507682
507934
  flexDirection: "column",
507683
507935
  padding: 1,
507684
507936
  height: maxHeight,
507685
507937
  children: [
507686
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507938
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507687
507939
  bold: true,
507688
507940
  children: [
507689
507941
  "Select a session to resume",
507690
- showScrollPosition && /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507942
+ showScrollPosition && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507691
507943
  dimColor: true,
507692
507944
  children: [
507693
507945
  " ",
@@ -507698,7 +507950,7 @@ function ResumeTask({
507698
507950
  ")"
507699
507951
  ]
507700
507952
  }, undefined, true, undefined, this),
507701
- currentRepo && /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507953
+ currentRepo && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507702
507954
  dimColor: true,
507703
507955
  children: [
507704
507956
  " (",
@@ -507709,14 +507961,14 @@ function ResumeTask({
507709
507961
  ":"
507710
507962
  ]
507711
507963
  }, undefined, true, undefined, this),
507712
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507964
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507713
507965
  flexDirection: "column",
507714
507966
  marginTop: 1,
507715
507967
  flexGrow: 1,
507716
507968
  children: [
507717
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507969
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507718
507970
  marginLeft: 2,
507719
- children: /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
507971
+ children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507720
507972
  bold: true,
507721
507973
  children: [
507722
507974
  UPDATED_STRING.padEnd(maxTimeStringLength, " "),
@@ -507725,7 +507977,7 @@ function ResumeTask({
507725
507977
  ]
507726
507978
  }, undefined, true, undefined, this)
507727
507979
  }, undefined, false, undefined, this),
507728
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Select, {
507980
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Select, {
507729
507981
  visibleOptionCount: maxVisibleOptions,
507730
507982
  options,
507731
507983
  onChange: (value) => {
@@ -507743,21 +507995,21 @@ function ResumeTask({
507743
507995
  }, undefined, false, undefined, this)
507744
507996
  ]
507745
507997
  }, undefined, true, undefined, this),
507746
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
507998
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507747
507999
  flexDirection: "row",
507748
- children: /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
508000
+ children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507749
508001
  dimColor: true,
507750
- children: /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Byline, {
508002
+ children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Byline, {
507751
508003
  children: [
507752
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(KeyboardShortcutHint, {
508004
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(KeyboardShortcutHint, {
507753
508005
  shortcut: "↑/↓",
507754
508006
  action: "select"
507755
508007
  }, undefined, false, undefined, this),
507756
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(KeyboardShortcutHint, {
508008
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(KeyboardShortcutHint, {
507757
508009
  shortcut: "Enter",
507758
508010
  action: "confirm"
507759
508011
  }, undefined, false, undefined, this),
507760
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ConfigurableShortcutHint, {
508012
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ConfigurableShortcutHint, {
507761
508013
  action: "confirm:no",
507762
508014
  context: "Confirmation",
507763
508015
  fallback: "Esc",
@@ -507786,28 +508038,28 @@ function determineErrorType(errorMessage4) {
507786
508038
  function renderErrorSpecificGuidance(errorType) {
507787
508039
  switch (errorType) {
507788
508040
  case "network":
507789
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
508041
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507790
508042
  marginY: 1,
507791
508043
  flexDirection: "column",
507792
- children: /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
508044
+ children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507793
508045
  dimColor: true,
507794
508046
  children: "Check your internet connection"
507795
508047
  }, undefined, false, undefined, this)
507796
508048
  }, undefined, false, undefined, this);
507797
508049
  case "auth":
507798
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
508050
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507799
508051
  marginY: 1,
507800
508052
  flexDirection: "column",
507801
508053
  children: [
507802
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
508054
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507803
508055
  dimColor: true,
507804
508056
  children: "Remote web sessions are disabled in this local-first build"
507805
508057
  }, undefined, false, undefined, this),
507806
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
508058
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507807
508059
  dimColor: true,
507808
508060
  children: [
507809
508061
  "Use ",
507810
- /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
508062
+ /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507811
508063
  bold: true,
507812
508064
  children: "/provider"
507813
508065
  }, undefined, false, undefined, this),
@@ -507817,26 +508069,26 @@ function renderErrorSpecificGuidance(errorType) {
507817
508069
  ]
507818
508070
  }, undefined, true, undefined, this);
507819
508071
  case "api":
507820
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
508072
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507821
508073
  marginY: 1,
507822
508074
  flexDirection: "column",
507823
- children: /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
508075
+ children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507824
508076
  dimColor: true,
507825
508077
  children: "Sorry, Claude encountered an error"
507826
508078
  }, undefined, false, undefined, this)
507827
508079
  }, undefined, false, undefined, this);
507828
508080
  case "other":
507829
- return /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedBox_default, {
508081
+ return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
507830
508082
  marginY: 1,
507831
508083
  flexDirection: "row",
507832
- children: /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
508084
+ children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
507833
508085
  dimColor: true,
507834
508086
  children: "Sorry, Claude Code encountered an error"
507835
508087
  }, undefined, false, undefined, this)
507836
508088
  }, undefined, false, undefined, this);
507837
508089
  }
507838
508090
  }
507839
- var import_react327, jsx_dev_runtime483, UPDATED_STRING = "Updated", SPACE_BETWEEN_TABLE_COLUMNS = " ";
508091
+ var import_react327, jsx_dev_runtime484, UPDATED_STRING = "Updated", SPACE_BETWEEN_TABLE_COLUMNS = " ";
507840
508092
  var init_ResumeTask = __esm(() => {
507841
508093
  init_useTerminalSize();
507842
508094
  init_api();
@@ -507853,7 +508105,7 @@ var init_ResumeTask = __esm(() => {
507853
508105
  init_Spinner2();
507854
508106
  init_TeleportError();
507855
508107
  import_react327 = __toESM(require_react(), 1);
507856
- jsx_dev_runtime483 = __toESM(require_jsx_dev_runtime(), 1);
508108
+ jsx_dev_runtime484 = __toESM(require_jsx_dev_runtime(), 1);
507857
508109
  });
507858
508110
 
507859
508111
  // src/components/TeleportResumeWrapper.tsx
@@ -507945,11 +508197,11 @@ function TeleportResumeWrapper(t0) {
507945
508197
  if (isResuming && selectedSession) {
507946
508198
  let t82;
507947
508199
  if ($3[12] === Symbol.for("react.memo_cache_sentinel")) {
507948
- t82 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
508200
+ t82 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
507949
508201
  flexDirection: "row",
507950
508202
  children: [
507951
- /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Spinner, {}, undefined, false, undefined, this),
507952
- /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
508203
+ /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(Spinner, {}, undefined, false, undefined, this),
508204
+ /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
507953
508205
  bold: true,
507954
508206
  children: "Resuming session…"
507955
508207
  }, undefined, false, undefined, this)
@@ -507961,12 +508213,12 @@ function TeleportResumeWrapper(t0) {
507961
508213
  }
507962
508214
  let t9;
507963
508215
  if ($3[13] !== selectedSession.title) {
507964
- t9 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
508216
+ t9 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
507965
508217
  flexDirection: "column",
507966
508218
  padding: 1,
507967
508219
  children: [
507968
508220
  t82,
507969
- /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
508221
+ /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
507970
508222
  dimColor: true,
507971
508223
  children: [
507972
508224
  'Loading "',
@@ -507986,7 +508238,7 @@ function TeleportResumeWrapper(t0) {
507986
508238
  if (error5 && !onError) {
507987
508239
  let t82;
507988
508240
  if ($3[15] === Symbol.for("react.memo_cache_sentinel")) {
507989
- t82 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
508241
+ t82 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
507990
508242
  bold: true,
507991
508243
  color: "error",
507992
508244
  children: "Failed to resume session"
@@ -507997,7 +508249,7 @@ function TeleportResumeWrapper(t0) {
507997
508249
  }
507998
508250
  let t9;
507999
508251
  if ($3[16] !== error5.message) {
508000
- t9 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
508252
+ t9 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508001
508253
  dimColor: true,
508002
508254
  children: error5.message
508003
508255
  }, undefined, false, undefined, this);
@@ -508008,13 +508260,13 @@ function TeleportResumeWrapper(t0) {
508008
508260
  }
508009
508261
  let t10;
508010
508262
  if ($3[18] === Symbol.for("react.memo_cache_sentinel")) {
508011
- t10 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
508263
+ t10 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
508012
508264
  marginTop: 1,
508013
- children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
508265
+ children: /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508014
508266
  dimColor: true,
508015
508267
  children: [
508016
508268
  "Press ",
508017
- /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
508269
+ /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508018
508270
  bold: true,
508019
508271
  children: "Esc"
508020
508272
  }, undefined, false, undefined, this),
@@ -508028,7 +508280,7 @@ function TeleportResumeWrapper(t0) {
508028
508280
  }
508029
508281
  let t11;
508030
508282
  if ($3[19] !== t9) {
508031
- t11 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
508283
+ t11 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
508032
508284
  flexDirection: "column",
508033
508285
  padding: 1,
508034
508286
  children: [
@@ -508046,7 +508298,7 @@ function TeleportResumeWrapper(t0) {
508046
508298
  }
508047
508299
  let t8;
508048
508300
  if ($3[21] !== handleCancel || $3[22] !== handleSelect || $3[23] !== isEmbedded) {
508049
- t8 = /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ResumeTask, {
508301
+ t8 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ResumeTask, {
508050
508302
  onSelect: handleSelect,
508051
508303
  onCancel: handleCancel,
508052
508304
  isEmbedded
@@ -508060,7 +508312,7 @@ function TeleportResumeWrapper(t0) {
508060
508312
  }
508061
508313
  return t8;
508062
508314
  }
508063
- var import_react328, jsx_dev_runtime484;
508315
+ var import_react328, jsx_dev_runtime485;
508064
508316
  var init_TeleportResumeWrapper = __esm(() => {
508065
508317
  init_useTeleportResume();
508066
508318
  init_ink2();
@@ -508068,7 +508320,7 @@ var init_TeleportResumeWrapper = __esm(() => {
508068
508320
  init_ResumeTask();
508069
508321
  init_Spinner2();
508070
508322
  import_react328 = __toESM(require_react(), 1);
508071
- jsx_dev_runtime484 = __toESM(require_jsx_dev_runtime(), 1);
508323
+ jsx_dev_runtime485 = __toESM(require_jsx_dev_runtime(), 1);
508072
508324
  });
508073
508325
 
508074
508326
  // src/components/TeleportRepoMismatchDialog.tsx
@@ -508137,20 +508389,20 @@ function TeleportRepoMismatchDialog(t0) {
508137
508389
  const options = t2;
508138
508390
  let t3;
508139
508391
  if ($3[8] !== availablePaths.length || $3[9] !== errorMessage4 || $3[10] !== handleChange4 || $3[11] !== options || $3[12] !== targetRepo || $3[13] !== validating) {
508140
- t3 = availablePaths.length > 0 ? /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(jsx_dev_runtime485.Fragment, {
508392
+ t3 = availablePaths.length > 0 ? /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(jsx_dev_runtime486.Fragment, {
508141
508393
  children: [
508142
- /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
508394
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
508143
508395
  flexDirection: "column",
508144
508396
  gap: 1,
508145
508397
  children: [
508146
- errorMessage4 && /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508398
+ errorMessage4 && /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508147
508399
  color: "error",
508148
508400
  children: errorMessage4
508149
508401
  }, undefined, false, undefined, this),
508150
- /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508402
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508151
508403
  children: [
508152
508404
  "Open Claude Code in ",
508153
- /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508405
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508154
508406
  bold: true,
508155
508407
  children: targetRepo
508156
508408
  }, undefined, false, undefined, this),
@@ -508159,27 +508411,27 @@ function TeleportRepoMismatchDialog(t0) {
508159
508411
  }, undefined, true, undefined, this)
508160
508412
  ]
508161
508413
  }, undefined, true, undefined, this),
508162
- validating ? /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
508414
+ validating ? /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
508163
508415
  children: [
508164
- /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(Spinner, {}, undefined, false, undefined, this),
508165
- /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508416
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Spinner, {}, undefined, false, undefined, this),
508417
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508166
508418
  children: " Validating repository…"
508167
508419
  }, undefined, false, undefined, this)
508168
508420
  ]
508169
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(Select, {
508421
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Select, {
508170
508422
  options,
508171
508423
  onChange: (value_0) => void handleChange4(value_0)
508172
508424
  }, undefined, false, undefined, this)
508173
508425
  ]
508174
- }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
508426
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
508175
508427
  flexDirection: "column",
508176
508428
  gap: 1,
508177
508429
  children: [
508178
- errorMessage4 && /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508430
+ errorMessage4 && /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508179
508431
  color: "error",
508180
508432
  children: errorMessage4
508181
508433
  }, undefined, false, undefined, this),
508182
- /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508434
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508183
508435
  dimColor: true,
508184
508436
  children: [
508185
508437
  "Run claude --teleport from a checkout of ",
@@ -508200,7 +508452,7 @@ function TeleportRepoMismatchDialog(t0) {
508200
508452
  }
508201
508453
  let t4;
508202
508454
  if ($3[15] !== onCancel || $3[16] !== t3) {
508203
- t4 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(Dialog, {
508455
+ t4 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Dialog, {
508204
508456
  title: "Teleport to Repo",
508205
508457
  onCancel,
508206
508458
  color: "background",
@@ -508216,10 +508468,10 @@ function TeleportRepoMismatchDialog(t0) {
508216
508468
  }
508217
508469
  function _temp306(path22) {
508218
508470
  return {
508219
- label: /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508471
+ label: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508220
508472
  children: [
508221
508473
  "Use ",
508222
- /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
508474
+ /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508223
508475
  bold: true,
508224
508476
  children: getDisplayPath(path22)
508225
508477
  }, undefined, false, undefined, this)
@@ -508228,7 +508480,7 @@ function _temp306(path22) {
508228
508480
  value: path22
508229
508481
  };
508230
508482
  }
508231
- var import_react329, jsx_dev_runtime485;
508483
+ var import_react329, jsx_dev_runtime486;
508232
508484
  var init_TeleportRepoMismatchDialog = __esm(() => {
508233
508485
  init_ink2();
508234
508486
  init_file();
@@ -508237,7 +508489,7 @@ var init_TeleportRepoMismatchDialog = __esm(() => {
508237
508489
  init_Dialog();
508238
508490
  init_Spinner2();
508239
508491
  import_react329 = __toESM(require_react(), 1);
508240
- jsx_dev_runtime485 = __toESM(require_jsx_dev_runtime(), 1);
508492
+ jsx_dev_runtime486 = __toESM(require_jsx_dev_runtime(), 1);
508241
508493
  });
508242
508494
 
508243
508495
  // src/screens/ResumeConversation.tsx
@@ -508435,12 +508687,12 @@ function ResumeConversation({
508435
508687
  }
508436
508688
  }
508437
508689
  if (crossProjectCommand) {
508438
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(CrossProjectMessage, {
508690
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(CrossProjectMessage, {
508439
508691
  command: crossProjectCommand
508440
508692
  }, undefined, false, undefined, this);
508441
508693
  }
508442
508694
  if (resumeData) {
508443
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(REPL, {
508695
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(REPL, {
508444
508696
  debug: debug3,
508445
508697
  commands,
508446
508698
  initialTools,
@@ -508463,29 +508715,29 @@ function ResumeConversation({
508463
508715
  }, undefined, false, undefined, this);
508464
508716
  }
508465
508717
  if (loading) {
508466
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
508718
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
508467
508719
  children: [
508468
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Spinner, {}, undefined, false, undefined, this),
508469
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508720
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Spinner, {}, undefined, false, undefined, this),
508721
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
508470
508722
  children: " Loading conversations…"
508471
508723
  }, undefined, false, undefined, this)
508472
508724
  ]
508473
508725
  }, undefined, true, undefined, this);
508474
508726
  }
508475
508727
  if (resuming) {
508476
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
508728
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
508477
508729
  children: [
508478
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Spinner, {}, undefined, false, undefined, this),
508479
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508730
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Spinner, {}, undefined, false, undefined, this),
508731
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
508480
508732
  children: " Resuming conversation…"
508481
508733
  }, undefined, false, undefined, this)
508482
508734
  ]
508483
508735
  }, undefined, true, undefined, this);
508484
508736
  }
508485
508737
  if (filteredLogs.length === 0) {
508486
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(NoConversationsMessage, {}, undefined, false, undefined, this);
508738
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(NoConversationsMessage, {}, undefined, false, undefined, this);
508487
508739
  }
508488
- return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(LogSelector, {
508740
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(LogSelector, {
508489
508741
  logs: filteredLogs,
508490
508742
  maxHeight: rows,
508491
508743
  onCancel,
@@ -508512,13 +508764,13 @@ function NoConversationsMessage() {
508512
508764
  useKeybinding("app:interrupt", _temp307, t0);
508513
508765
  let t1;
508514
508766
  if ($3[1] === Symbol.for("react.memo_cache_sentinel")) {
508515
- t1 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
508767
+ t1 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
508516
508768
  flexDirection: "column",
508517
508769
  children: [
508518
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508770
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
508519
508771
  children: "No conversations found to resume."
508520
508772
  }, undefined, false, undefined, this),
508521
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508773
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
508522
508774
  dimColor: true,
508523
508775
  children: "Press Ctrl+C to exit and start a new conversation."
508524
508776
  }, undefined, false, undefined, this)
@@ -508548,7 +508800,7 @@ function CrossProjectMessage(t0) {
508548
508800
  import_react330.default.useEffect(_temp357, t1);
508549
508801
  let t2;
508550
508802
  if ($3[1] === Symbol.for("react.memo_cache_sentinel")) {
508551
- t2 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508803
+ t2 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
508552
508804
  children: "This conversation is from a different directory."
508553
508805
  }, undefined, false, undefined, this);
508554
508806
  $3[1] = t2;
@@ -508557,7 +508809,7 @@ function CrossProjectMessage(t0) {
508557
508809
  }
508558
508810
  let t3;
508559
508811
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
508560
- t3 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508812
+ t3 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
508561
508813
  children: "To resume, run:"
508562
508814
  }, undefined, false, undefined, this);
508563
508815
  $3[2] = t3;
@@ -508566,11 +508818,11 @@ function CrossProjectMessage(t0) {
508566
508818
  }
508567
508819
  let t4;
508568
508820
  if ($3[3] !== command8) {
508569
- t4 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
508821
+ t4 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
508570
508822
  flexDirection: "column",
508571
508823
  children: [
508572
508824
  t3,
508573
- /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508825
+ /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
508574
508826
  children: [
508575
508827
  " ",
508576
508828
  command8
@@ -508585,7 +508837,7 @@ function CrossProjectMessage(t0) {
508585
508837
  }
508586
508838
  let t5;
508587
508839
  if ($3[5] === Symbol.for("react.memo_cache_sentinel")) {
508588
- t5 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
508840
+ t5 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
508589
508841
  dimColor: true,
508590
508842
  children: "(Command copied to clipboard)"
508591
508843
  }, undefined, false, undefined, this);
@@ -508595,7 +508847,7 @@ function CrossProjectMessage(t0) {
508595
508847
  }
508596
508848
  let t6;
508597
508849
  if ($3[6] !== t4) {
508598
- t6 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
508850
+ t6 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
508599
508851
  flexDirection: "column",
508600
508852
  gap: 1,
508601
508853
  children: [
@@ -508618,7 +508870,7 @@ function _temp357() {
508618
508870
  function _temp2103() {
508619
508871
  process.exit(0);
508620
508872
  }
508621
- var import_react330, jsx_dev_runtime486;
508873
+ var import_react330, jsx_dev_runtime487;
508622
508874
  var init_ResumeConversation = __esm(() => {
508623
508875
  init_useTerminalSize();
508624
508876
  init_state();
@@ -508641,7 +508893,7 @@ var init_ResumeConversation = __esm(() => {
508641
508893
  init_sessionStorage();
508642
508894
  init_REPL();
508643
508895
  import_react330 = __toESM(require_react(), 1);
508644
- jsx_dev_runtime486 = __toESM(require_jsx_dev_runtime(), 1);
508896
+ jsx_dev_runtime487 = __toESM(require_jsx_dev_runtime(), 1);
508645
508897
  });
508646
508898
 
508647
508899
  // src/dialogLaunchers.tsx
@@ -508649,7 +508901,7 @@ async function launchInvalidSettingsDialog(root2, props) {
508649
508901
  const {
508650
508902
  InvalidSettingsDialog: InvalidSettingsDialog2
508651
508903
  } = await Promise.resolve().then(() => (init_InvalidSettingsDialog(), exports_InvalidSettingsDialog));
508652
- return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(InvalidSettingsDialog2, {
508904
+ return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(InvalidSettingsDialog2, {
508653
508905
  settingsErrors: props.settingsErrors,
508654
508906
  onContinue: done,
508655
508907
  onExit: props.onExit
@@ -508659,7 +508911,7 @@ async function launchTeleportResumeWrapper(root2) {
508659
508911
  const {
508660
508912
  TeleportResumeWrapper: TeleportResumeWrapper2
508661
508913
  } = await Promise.resolve().then(() => (init_TeleportResumeWrapper(), exports_TeleportResumeWrapper));
508662
- return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(TeleportResumeWrapper2, {
508914
+ return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(TeleportResumeWrapper2, {
508663
508915
  onComplete: done,
508664
508916
  onCancel: () => done(null),
508665
508917
  source: "cliArg"
@@ -508669,7 +508921,7 @@ async function launchTeleportRepoMismatchDialog(root2, props) {
508669
508921
  const {
508670
508922
  TeleportRepoMismatchDialog: TeleportRepoMismatchDialog2
508671
508923
  } = await Promise.resolve().then(() => (init_TeleportRepoMismatchDialog(), exports_TeleportRepoMismatchDialog));
508672
- return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(TeleportRepoMismatchDialog2, {
508924
+ return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(TeleportRepoMismatchDialog2, {
508673
508925
  targetRepo: props.targetRepo,
508674
508926
  initialPaths: props.initialPaths,
508675
508927
  onSelectPath: done,
@@ -508682,23 +508934,23 @@ async function launchResumeChooser(root2, appProps, worktreePathsPromise, resume
508682
508934
  }, {
508683
508935
  App: App3
508684
508936
  }] = await Promise.all([worktreePathsPromise, Promise.resolve().then(() => (init_ResumeConversation(), exports_ResumeConversation)), Promise.resolve().then(() => (init_App2(), exports_App))]);
508685
- await renderAndRun(root2, /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(App3, {
508937
+ await renderAndRun(root2, /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(App3, {
508686
508938
  getFpsMetrics: appProps.getFpsMetrics,
508687
508939
  stats: appProps.stats,
508688
508940
  initialState: appProps.initialState,
508689
- children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(KeybindingSetup, {
508690
- children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ResumeConversation2, {
508941
+ children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(KeybindingSetup, {
508942
+ children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ResumeConversation2, {
508691
508943
  ...resumeProps,
508692
508944
  worktreePaths
508693
508945
  }, undefined, false, undefined, this)
508694
508946
  }, undefined, false, undefined, this)
508695
508947
  }, undefined, false, undefined, this));
508696
508948
  }
508697
- var jsx_dev_runtime487;
508949
+ var jsx_dev_runtime488;
508698
508950
  var init_dialogLaunchers = __esm(() => {
508699
508951
  init_interactiveHelpers();
508700
508952
  init_KeybindingProviderSetup();
508701
- jsx_dev_runtime487 = __toESM(require_jsx_dev_runtime(), 1);
508953
+ jsx_dev_runtime488 = __toESM(require_jsx_dev_runtime(), 1);
508702
508954
  });
508703
508955
 
508704
508956
  // src/plugins/bundled/index.ts
@@ -511146,6 +511398,64 @@ function eagerParseCliFlag(flagName, argv = process.argv) {
511146
511398
  return;
511147
511399
  }
511148
511400
 
511401
+ // src/utils/startupLoading.ts
511402
+ function canRenderStartupLoadingIndicator() {
511403
+ return process.stderr.isTTY === true && !process.argv.includes("--debug-to-stderr");
511404
+ }
511405
+ function startStartupLoadingIndicator(initialMessage = "Starting localclawd") {
511406
+ if (!canRenderStartupLoadingIndicator()) {
511407
+ return {
511408
+ update() {},
511409
+ stop() {}
511410
+ };
511411
+ }
511412
+ let frameIndex = 0;
511413
+ let message = initialMessage;
511414
+ let stopped = false;
511415
+ const clear2 = () => {
511416
+ writeToStderr(`\r${CURSOR_LEFT}${ERASE_LINE}${SHOW_CURSOR}`);
511417
+ };
511418
+ const render3 = () => {
511419
+ const frame = source_default.blue(FRAMES[frameIndex % FRAMES.length]);
511420
+ const suffix = source_default.dim(" loading...");
511421
+ writeToStderr(`\r${HIDE_CURSOR}${CURSOR_LEFT}${ERASE_LINE}${frame} ${message}${suffix}`);
511422
+ frameIndex += 1;
511423
+ };
511424
+ const onExit2 = () => {
511425
+ if (!stopped) {
511426
+ clear2();
511427
+ }
511428
+ };
511429
+ render3();
511430
+ const interval = setInterval(render3, 80);
511431
+ process.on("exit", onExit2);
511432
+ return {
511433
+ update(nextMessage) {
511434
+ if (stopped) {
511435
+ return;
511436
+ }
511437
+ message = nextMessage;
511438
+ render3();
511439
+ },
511440
+ stop() {
511441
+ if (stopped) {
511442
+ return;
511443
+ }
511444
+ stopped = true;
511445
+ clearInterval(interval);
511446
+ process.off("exit", onExit2);
511447
+ clear2();
511448
+ }
511449
+ };
511450
+ }
511451
+ var FRAMES;
511452
+ var init_startupLoading = __esm(() => {
511453
+ init_source();
511454
+ init_dec();
511455
+ init_csi();
511456
+ FRAMES = ["|", "/", "-", "\\"];
511457
+ });
511458
+
511149
511459
  // src/migrations/migrateAutoUpdatesToSettings.ts
511150
511460
  function migrateAutoUpdatesToSettings() {
511151
511461
  const globalConfig = getGlobalConfig();
@@ -511535,7 +511845,7 @@ function appendToLog(path22, message) {
511535
511845
  cwd: getFsImplementation().cwd(),
511536
511846
  userType: process.env.USER_TYPE,
511537
511847
  sessionId: getSessionId(),
511538
- version: "1.0.5"
511848
+ version: "1.0.6"
511539
511849
  };
511540
511850
  getLogWriter(path22).write(messageWithTimestamp);
511541
511851
  }
@@ -515512,8 +515822,8 @@ async function getEnvLessBridgeConfig() {
515512
515822
  }
515513
515823
  async function checkEnvLessBridgeMinVersion() {
515514
515824
  const cfg = await getEnvLessBridgeConfig();
515515
- if (cfg.min_version && lt("1.0.5", cfg.min_version)) {
515516
- return `Your version of localclawd (${"1.0.5"}) is too old for Remote Control.
515825
+ if (cfg.min_version && lt("1.0.6", cfg.min_version)) {
515826
+ return `Your version of localclawd (${"1.0.6"}) is too old for Remote Control.
515517
515827
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
515518
515828
  }
515519
515829
  return null;
@@ -515985,7 +516295,7 @@ async function initBridgeCore(params) {
515985
516295
  const rawApi = createBridgeApiClient({
515986
516296
  baseUrl,
515987
516297
  getAccessToken,
515988
- runnerVersion: "1.0.5",
516298
+ runnerVersion: "1.0.6",
515989
516299
  onDebug: logForDebugging,
515990
516300
  onAuth401,
515991
516301
  getTrustedDeviceToken
@@ -520797,9 +521107,9 @@ function TeleportProgress(t0) {
520797
521107
  const t2 = SPINNER_FRAMES3[frame];
520798
521108
  let t3;
520799
521109
  if ($3[2] !== t2) {
520800
- t3 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
521110
+ t3 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
520801
521111
  marginBottom: 1,
520802
- children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
521112
+ children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
520803
521113
  bold: true,
520804
521114
  color: "claude",
520805
521115
  children: [
@@ -520815,9 +521125,9 @@ function TeleportProgress(t0) {
520815
521125
  }
520816
521126
  let t4;
520817
521127
  if ($3[4] !== sessionId) {
520818
- t4 = sessionId && /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
521128
+ t4 = sessionId && /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
520819
521129
  marginBottom: 1,
520820
- children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
521130
+ children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
520821
521131
  dimColor: true,
520822
521132
  children: sessionId
520823
521133
  }, undefined, false, undefined, this)
@@ -520847,18 +521157,18 @@ function TeleportProgress(t0) {
520847
521157
  color3 = undefined;
520848
521158
  }
520849
521159
  }
520850
- return /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
521160
+ return /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
520851
521161
  flexDirection: "row",
520852
521162
  children: [
520853
- /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
521163
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
520854
521164
  width: 2,
520855
- children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
521165
+ children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
520856
521166
  color: color3,
520857
521167
  dimColor: isPending,
520858
521168
  children: icon
520859
521169
  }, undefined, false, undefined, this)
520860
521170
  }, undefined, false, undefined, this),
520861
- /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedText, {
521171
+ /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
520862
521172
  dimColor: isPending,
520863
521173
  bold: isCurrent,
520864
521174
  children: step.label
@@ -520874,7 +521184,7 @@ function TeleportProgress(t0) {
520874
521184
  }
520875
521185
  let t6;
520876
521186
  if ($3[9] !== t5) {
520877
- t6 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
521187
+ t6 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
520878
521188
  flexDirection: "column",
520879
521189
  marginLeft: 2,
520880
521190
  children: t5
@@ -520886,7 +521196,7 @@ function TeleportProgress(t0) {
520886
521196
  }
520887
521197
  let t7;
520888
521198
  if ($3[11] !== ref || $3[12] !== t3 || $3[13] !== t4 || $3[14] !== t6) {
520889
- t7 = /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ThemedBox_default, {
521199
+ t7 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
520890
521200
  ref,
520891
521201
  flexDirection: "column",
520892
521202
  paddingX: 1,
@@ -520912,13 +521222,13 @@ async function teleportWithProgress(root2, sessionId) {
520912
521222
  function TeleportProgressWrapper() {
520913
521223
  const [step, _setStep] = import_react331.useState("validating");
520914
521224
  setStep = _setStep;
520915
- return /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(TeleportProgress, {
521225
+ return /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(TeleportProgress, {
520916
521226
  currentStep: step,
520917
521227
  sessionId
520918
521228
  }, undefined, false, undefined, this);
520919
521229
  }
520920
- root2.render(/* @__PURE__ */ jsx_dev_runtime488.jsxDEV(AppStateProvider, {
520921
- children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(TeleportProgressWrapper, {}, undefined, false, undefined, this)
521230
+ root2.render(/* @__PURE__ */ jsx_dev_runtime489.jsxDEV(AppStateProvider, {
521231
+ children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(TeleportProgressWrapper, {}, undefined, false, undefined, this)
520922
521232
  }, undefined, false, undefined, this));
520923
521233
  const result = await teleportResumeCodeSession(sessionId, setStep);
520924
521234
  setStep("checking_out");
@@ -520931,14 +521241,14 @@ async function teleportWithProgress(root2, sessionId) {
520931
521241
  branchName
520932
521242
  };
520933
521243
  }
520934
- var import_react331, jsx_dev_runtime488, SPINNER_FRAMES3, STEPS;
521244
+ var import_react331, jsx_dev_runtime489, SPINNER_FRAMES3, STEPS;
520935
521245
  var init_TeleportProgress = __esm(() => {
520936
521246
  init_figures();
520937
521247
  init_ink2();
520938
521248
  init_AppState();
520939
521249
  init_teleport();
520940
521250
  import_react331 = __toESM(require_react(), 1);
520941
- jsx_dev_runtime488 = __toESM(require_jsx_dev_runtime(), 1);
521251
+ jsx_dev_runtime489 = __toESM(require_jsx_dev_runtime(), 1);
520942
521252
  SPINNER_FRAMES3 = ["◐", "◓", "◑", "◒"];
520943
521253
  STEPS = [{
520944
521254
  key: "validating",
@@ -521074,7 +521384,7 @@ No servers were imported.`);
521074
521384
  const t10 = `Found ${t8} MCP ${t9} in Claude Desktop.`;
521075
521385
  let t11;
521076
521386
  if ($3[16] !== collisions.length) {
521077
- t11 = collisions.length > 0 && /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
521387
+ t11 = collisions.length > 0 && /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
521078
521388
  color: "warning",
521079
521389
  children: "Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."
521080
521390
  }, undefined, false, undefined, this);
@@ -521085,7 +521395,7 @@ No servers were imported.`);
521085
521395
  }
521086
521396
  let t12;
521087
521397
  if ($3[18] === Symbol.for("react.memo_cache_sentinel")) {
521088
- t12 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
521398
+ t12 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
521089
521399
  children: "Please select the servers you want to import:"
521090
521400
  }, undefined, false, undefined, this);
521091
521401
  $3[18] = t12;
@@ -521110,7 +521420,7 @@ No servers were imported.`);
521110
521420
  }
521111
521421
  let t15;
521112
521422
  if ($3[23] !== handleEscCancel || $3[24] !== onSubmit || $3[25] !== t13 || $3[26] !== t14) {
521113
- t15 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(SelectMulti, {
521423
+ t15 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(SelectMulti, {
521114
521424
  options: t13,
521115
521425
  defaultValue: t14,
521116
521426
  onSubmit,
@@ -521127,7 +521437,7 @@ No servers were imported.`);
521127
521437
  }
521128
521438
  let t16;
521129
521439
  if ($3[28] !== handleEscCancel || $3[29] !== t10 || $3[30] !== t11 || $3[31] !== t15) {
521130
- t16 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Dialog, {
521440
+ t16 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Dialog, {
521131
521441
  title: "Import MCP Servers from Claude Desktop",
521132
521442
  subtitle: t10,
521133
521443
  color: "success",
@@ -521149,22 +521459,22 @@ No servers were imported.`);
521149
521459
  }
521150
521460
  let t17;
521151
521461
  if ($3[33] === Symbol.for("react.memo_cache_sentinel")) {
521152
- t17 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
521462
+ t17 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedBox_default, {
521153
521463
  paddingX: 1,
521154
- children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
521464
+ children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
521155
521465
  dimColor: true,
521156
521466
  italic: true,
521157
- children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(Byline, {
521467
+ children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Byline, {
521158
521468
  children: [
521159
- /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(KeyboardShortcutHint, {
521469
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(KeyboardShortcutHint, {
521160
521470
  shortcut: "Space",
521161
521471
  action: "select"
521162
521472
  }, undefined, false, undefined, this),
521163
- /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(KeyboardShortcutHint, {
521473
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(KeyboardShortcutHint, {
521164
521474
  shortcut: "Enter",
521165
521475
  action: "confirm"
521166
521476
  }, undefined, false, undefined, this),
521167
- /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ConfigurableShortcutHint, {
521477
+ /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ConfigurableShortcutHint, {
521168
521478
  action: "confirm:no",
521169
521479
  context: "Confirmation",
521170
521480
  fallback: "Esc",
@@ -521180,7 +521490,7 @@ No servers were imported.`);
521180
521490
  }
521181
521491
  let t18;
521182
521492
  if ($3[34] !== t16) {
521183
- t18 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(jsx_dev_runtime489.Fragment, {
521493
+ t18 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(jsx_dev_runtime490.Fragment, {
521184
521494
  children: [
521185
521495
  t16,
521186
521496
  t17
@@ -521193,7 +521503,7 @@ No servers were imported.`);
521193
521503
  }
521194
521504
  return t18;
521195
521505
  }
521196
- var import_react332, jsx_dev_runtime489;
521506
+ var import_react332, jsx_dev_runtime490;
521197
521507
  var init_MCPServerDesktopImportDialog = __esm(() => {
521198
521508
  init_gracefulShutdown();
521199
521509
  init_ink2();
@@ -521205,7 +521515,7 @@ var init_MCPServerDesktopImportDialog = __esm(() => {
521205
521515
  init_Dialog();
521206
521516
  init_KeyboardShortcutHint();
521207
521517
  import_react332 = __toESM(require_react(), 1);
521208
- jsx_dev_runtime489 = __toESM(require_jsx_dev_runtime(), 1);
521518
+ jsx_dev_runtime490 = __toESM(require_jsx_dev_runtime(), 1);
521209
521519
  });
521210
521520
 
521211
521521
  // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
@@ -521641,7 +521951,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
521641
521951
  setCwd(cwd3);
521642
521952
  const server = new Server({
521643
521953
  name: "claude/tengu",
521644
- version: "1.0.5"
521954
+ version: "1.0.6"
521645
521955
  }, {
521646
521956
  capabilities: {
521647
521957
  tools: {}
@@ -522129,9 +522439,9 @@ async function mcpAddFromDesktopHandler(options) {
522129
522439
  }
522130
522440
  const {
522131
522441
  unmount
522132
- } = await render(/* @__PURE__ */ jsx_dev_runtime490.jsxDEV(AppStateProvider, {
522133
- children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(KeybindingSetup, {
522134
- children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(MCPServerDesktopImportDialog, {
522442
+ } = await render(/* @__PURE__ */ jsx_dev_runtime491.jsxDEV(AppStateProvider, {
522443
+ children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(KeybindingSetup, {
522444
+ children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(MCPServerDesktopImportDialog, {
522135
522445
  servers,
522136
522446
  scope,
522137
522447
  onDone: () => {
@@ -522157,7 +522467,7 @@ async function mcpResetChoicesHandler() {
522157
522467
  cliOk(`All project-scoped (.mcp.json) server approvals and rejections have been reset.
522158
522468
  You will be prompted for approval next time you start localclawd.`);
522159
522469
  }
522160
- var jsx_dev_runtime490;
522470
+ var jsx_dev_runtime491;
522161
522471
  var init_mcp5 = __esm(() => {
522162
522472
  init_p_map();
522163
522473
  init_MCPServerDesktopImportDialog();
@@ -522173,7 +522483,7 @@ var init_mcp5 = __esm(() => {
522173
522483
  init_gracefulShutdown();
522174
522484
  init_json();
522175
522485
  init_platform();
522176
- jsx_dev_runtime490 = __toESM(require_jsx_dev_runtime(), 1);
522486
+ jsx_dev_runtime491 = __toESM(require_jsx_dev_runtime(), 1);
522177
522487
  });
522178
522488
 
522179
522489
  // src/cli/handlers/plugins.ts
@@ -522726,11 +523036,11 @@ function SetupNotes(t0) {
522726
523036
  }
522727
523037
  let t1;
522728
523038
  if ($3[0] === Symbol.for("react.memo_cache_sentinel")) {
522729
- t1 = /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
522730
- children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523039
+ t1 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
523040
+ children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522731
523041
  color: "warning",
522732
523042
  children: [
522733
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(StatusIcon, {
523043
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
522734
523044
  status: "warning",
522735
523045
  withSpace: true
522736
523046
  }, undefined, false, undefined, this),
@@ -522752,7 +523062,7 @@ function SetupNotes(t0) {
522752
523062
  }
522753
523063
  let t3;
522754
523064
  if ($3[3] !== t2) {
522755
- t3 = /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523065
+ t3 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522756
523066
  flexDirection: "column",
522757
523067
  gap: 0,
522758
523068
  marginBottom: 1,
@@ -522769,9 +523079,9 @@ function SetupNotes(t0) {
522769
523079
  return t3;
522770
523080
  }
522771
523081
  function _temp308(message, index) {
522772
- return /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523082
+ return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522773
523083
  marginLeft: 2,
522774
- children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523084
+ children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522775
523085
  dimColor: true,
522776
523086
  children: [
522777
523087
  "• ",
@@ -522887,19 +523197,19 @@ function Install({
522887
523197
  });
522888
523198
  }
522889
523199
  }, [state2, onDone]);
522890
- return /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523200
+ return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522891
523201
  flexDirection: "column",
522892
523202
  marginTop: 1,
522893
523203
  children: [
522894
- state2.type === "checking" && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523204
+ state2.type === "checking" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522895
523205
  color: "claude",
522896
523206
  children: "Checking installation status..."
522897
523207
  }, undefined, false, undefined, this),
522898
- state2.type === "cleaning-npm" && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523208
+ state2.type === "cleaning-npm" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522899
523209
  color: "warning",
522900
523210
  children: "Cleaning up old npm installations..."
522901
523211
  }, undefined, false, undefined, this),
522902
- state2.type === "installing" && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523212
+ state2.type === "installing" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522903
523213
  color: "claude",
522904
523214
  children: [
522905
523215
  "Installing localclawd native build ",
@@ -522907,54 +523217,54 @@ function Install({
522907
523217
  "..."
522908
523218
  ]
522909
523219
  }, undefined, true, undefined, this),
522910
- state2.type === "setting-up" && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523220
+ state2.type === "setting-up" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522911
523221
  color: "claude",
522912
523222
  children: "Setting up launcher and shell integration..."
522913
523223
  }, undefined, false, undefined, this),
522914
- state2.type === "set-up" && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(SetupNotes, {
523224
+ state2.type === "set-up" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(SetupNotes, {
522915
523225
  messages: state2.messages
522916
523226
  }, undefined, false, undefined, this),
522917
- state2.type === "success" && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523227
+ state2.type === "success" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522918
523228
  flexDirection: "column",
522919
523229
  gap: 1,
522920
523230
  children: [
522921
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523231
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522922
523232
  children: [
522923
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(StatusIcon, {
523233
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
522924
523234
  status: "success",
522925
523235
  withSpace: true
522926
523236
  }, undefined, false, undefined, this),
522927
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523237
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522928
523238
  color: "success",
522929
523239
  bold: true,
522930
523240
  children: "localclawd successfully installed!"
522931
523241
  }, undefined, false, undefined, this)
522932
523242
  ]
522933
523243
  }, undefined, true, undefined, this),
522934
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523244
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522935
523245
  marginLeft: 2,
522936
523246
  flexDirection: "column",
522937
523247
  gap: 1,
522938
523248
  children: [
522939
- state2.version !== "current" && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523249
+ state2.version !== "current" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522940
523250
  children: [
522941
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523251
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522942
523252
  dimColor: true,
522943
523253
  children: "Version: "
522944
523254
  }, undefined, false, undefined, this),
522945
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523255
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522946
523256
  color: "claude",
522947
523257
  children: state2.version
522948
523258
  }, undefined, false, undefined, this)
522949
523259
  ]
522950
523260
  }, undefined, true, undefined, this),
522951
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523261
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522952
523262
  children: [
522953
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523263
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522954
523264
  dimColor: true,
522955
523265
  children: "Location: "
522956
523266
  }, undefined, false, undefined, this),
522957
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523267
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522958
523268
  color: "text",
522959
523269
  children: getInstallationPath2()
522960
523270
  }, undefined, false, undefined, this)
@@ -522962,57 +523272,57 @@ function Install({
522962
523272
  }, undefined, true, undefined, this)
522963
523273
  ]
522964
523274
  }, undefined, true, undefined, this),
522965
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523275
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522966
523276
  marginLeft: 2,
522967
523277
  flexDirection: "column",
522968
523278
  gap: 1,
522969
- children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523279
+ children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522970
523280
  marginTop: 1,
522971
523281
  children: [
522972
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523282
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522973
523283
  dimColor: true,
522974
523284
  children: "Next: Run "
522975
523285
  }, undefined, false, undefined, this),
522976
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523286
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522977
523287
  color: "claude",
522978
523288
  bold: true,
522979
523289
  children: "localclawd --help"
522980
523290
  }, undefined, false, undefined, this),
522981
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523291
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
522982
523292
  dimColor: true,
522983
523293
  children: " to get started"
522984
523294
  }, undefined, false, undefined, this)
522985
523295
  ]
522986
523296
  }, undefined, true, undefined, this)
522987
523297
  }, undefined, false, undefined, this),
522988
- state2.setupMessages && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(SetupNotes, {
523298
+ state2.setupMessages && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(SetupNotes, {
522989
523299
  messages: state2.setupMessages
522990
523300
  }, undefined, false, undefined, this)
522991
523301
  ]
522992
523302
  }, undefined, true, undefined, this),
522993
- state2.type === "error" && /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523303
+ state2.type === "error" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522994
523304
  flexDirection: "column",
522995
523305
  gap: 1,
522996
523306
  children: [
522997
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523307
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
522998
523308
  children: [
522999
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(StatusIcon, {
523309
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
523000
523310
  status: "error",
523001
523311
  withSpace: true
523002
523312
  }, undefined, false, undefined, this),
523003
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523313
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
523004
523314
  color: "error",
523005
523315
  children: "Installation failed"
523006
523316
  }, undefined, false, undefined, this)
523007
523317
  ]
523008
523318
  }, undefined, true, undefined, this),
523009
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523319
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
523010
523320
  color: "error",
523011
523321
  children: state2.message
523012
523322
  }, undefined, false, undefined, this),
523013
- /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedBox_default, {
523323
+ /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
523014
523324
  marginTop: 1,
523015
- children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ThemedText, {
523325
+ children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
523016
523326
  dimColor: true,
523017
523327
  children: "Try running with --force to override checks"
523018
523328
  }, undefined, false, undefined, this)
@@ -523022,7 +523332,7 @@ function Install({
523022
523332
  ]
523023
523333
  }, undefined, true, undefined, this);
523024
523334
  }
523025
- var import_react333, jsx_dev_runtime491, install;
523335
+ var import_react333, jsx_dev_runtime492, install;
523026
523336
  var init_install = __esm(() => {
523027
523337
  init_StatusIcon();
523028
523338
  init_ink2();
@@ -523032,7 +523342,7 @@ var init_install = __esm(() => {
523032
523342
  init_nativeInstaller();
523033
523343
  init_settings2();
523034
523344
  import_react333 = __toESM(require_react(), 1);
523035
- jsx_dev_runtime491 = __toESM(require_jsx_dev_runtime(), 1);
523345
+ jsx_dev_runtime492 = __toESM(require_jsx_dev_runtime(), 1);
523036
523346
  install = {
523037
523347
  type: "local-jsx",
523038
523348
  name: "install",
@@ -523044,7 +523354,7 @@ var init_install = __esm(() => {
523044
523354
  const target = nonFlagArgs[0];
523045
523355
  const {
523046
523356
  unmount
523047
- } = await render(/* @__PURE__ */ jsx_dev_runtime491.jsxDEV(Install, {
523357
+ } = await render(/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(Install, {
523048
523358
  onDone: (result, options) => {
523049
523359
  unmount();
523050
523360
  onDone(result, options);
@@ -523071,28 +523381,28 @@ async function setupTokenHandler(root2) {
523071
523381
  ConsoleOAuthFlow: ConsoleOAuthFlow2
523072
523382
  } = await Promise.resolve().then(() => (init_ConsoleOAuthFlow(), exports_ConsoleOAuthFlow));
523073
523383
  await new Promise((resolve40) => {
523074
- root2.render(/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(AppStateProvider, {
523384
+ root2.render(/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(AppStateProvider, {
523075
523385
  onChangeAppState,
523076
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(KeybindingSetup, {
523077
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
523386
+ children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(KeybindingSetup, {
523387
+ children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
523078
523388
  flexDirection: "column",
523079
523389
  gap: 1,
523080
523390
  children: [
523081
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
523082
- showAuthWarning && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
523391
+ /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
523392
+ showAuthWarning && /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
523083
523393
  flexDirection: "column",
523084
523394
  children: [
523085
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
523395
+ /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
523086
523396
  color: "warning",
523087
523397
  children: "Warning: You already have authentication configured via environment variable or API key helper."
523088
523398
  }, undefined, false, undefined, this),
523089
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
523399
+ /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
523090
523400
  color: "warning",
523091
523401
  children: "The setup-token command will create a new OAuth token which you can use instead."
523092
523402
  }, undefined, false, undefined, this)
523093
523403
  ]
523094
523404
  }, undefined, true, undefined, this),
523095
- /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ConsoleOAuthFlow2, {
523405
+ /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ConsoleOAuthFlow2, {
523096
523406
  onDone: () => {
523097
523407
  resolve40();
523098
523408
  },
@@ -523115,9 +523425,9 @@ function DoctorWithPlugins(t0) {
523115
523425
  useManagePlugins();
523116
523426
  let t1;
523117
523427
  if ($3[0] !== onDone) {
523118
- t1 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(import_react334.default.Suspense, {
523428
+ t1 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(import_react334.default.Suspense, {
523119
523429
  fallback: null,
523120
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(DoctorLazy, {
523430
+ children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(DoctorLazy, {
523121
523431
  onDone
523122
523432
  }, undefined, false, undefined, this)
523123
523433
  }, undefined, false, undefined, this);
@@ -523131,12 +523441,12 @@ function DoctorWithPlugins(t0) {
523131
523441
  async function doctorHandler(root2) {
523132
523442
  logEvent("tengu_doctor_command", {});
523133
523443
  await new Promise((resolve40) => {
523134
- root2.render(/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(AppStateProvider, {
523135
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(KeybindingSetup, {
523136
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(MCPConnectionManager, {
523444
+ root2.render(/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(AppStateProvider, {
523445
+ children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(KeybindingSetup, {
523446
+ children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(MCPConnectionManager, {
523137
523447
  dynamicMcpConfig: undefined,
523138
523448
  isStrictMcpConfig: false,
523139
- children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(DoctorWithPlugins, {
523449
+ children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(DoctorWithPlugins, {
523140
523450
  onDone: () => {
523141
523451
  resolve40();
523142
523452
  }
@@ -523168,7 +523478,7 @@ async function installHandler(target, options) {
523168
523478
  }, {}, args);
523169
523479
  });
523170
523480
  }
523171
- var import_react334, jsx_dev_runtime492, DoctorLazy;
523481
+ var import_react334, jsx_dev_runtime493, DoctorLazy;
523172
523482
  var init_util = __esm(() => {
523173
523483
  init_WelcomeV2();
523174
523484
  init_useManagePlugins();
@@ -523179,7 +523489,7 @@ var init_util = __esm(() => {
523179
523489
  init_onChangeAppState();
523180
523490
  init_auth2();
523181
523491
  import_react334 = __toESM(require_react(), 1);
523182
- jsx_dev_runtime492 = __toESM(require_jsx_dev_runtime(), 1);
523492
+ jsx_dev_runtime493 = __toESM(require_jsx_dev_runtime(), 1);
523183
523493
  DoctorLazy = import_react334.default.lazy(() => Promise.resolve().then(() => (init_Doctor(), exports_Doctor)).then((m2) => ({
523184
523494
  default: m2.Doctor
523185
523495
  })));
@@ -523246,7 +523556,7 @@ __export(exports_update, {
523246
523556
  });
523247
523557
  async function update() {
523248
523558
  logEvent("tengu_update_check", {});
523249
- writeToStdout(`Current version: ${"1.0.5"}
523559
+ writeToStdout(`Current version: ${"1.0.6"}
523250
523560
  `);
523251
523561
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
523252
523562
  writeToStdout(`Checking for updates to ${channel} version...
@@ -523321,8 +523631,8 @@ async function update() {
523321
523631
  writeToStdout(`localclawd is managed by Homebrew.
523322
523632
  `);
523323
523633
  const latest = await getLatestVersion(channel);
523324
- if (latest && !gte("1.0.5", latest)) {
523325
- writeToStdout(`Update available: ${"1.0.5"} → ${latest}
523634
+ if (latest && !gte("1.0.6", latest)) {
523635
+ writeToStdout(`Update available: ${"1.0.6"} → ${latest}
523326
523636
  `);
523327
523637
  writeToStdout(`
523328
523638
  `);
@@ -523338,8 +523648,8 @@ async function update() {
523338
523648
  writeToStdout(`localclawd is managed by winget.
523339
523649
  `);
523340
523650
  const latest = await getLatestVersion(channel);
523341
- if (latest && !gte("1.0.5", latest)) {
523342
- writeToStdout(`Update available: ${"1.0.5"} → ${latest}
523651
+ if (latest && !gte("1.0.6", latest)) {
523652
+ writeToStdout(`Update available: ${"1.0.6"} → ${latest}
523343
523653
  `);
523344
523654
  writeToStdout(`
523345
523655
  `);
@@ -523353,8 +523663,8 @@ async function update() {
523353
523663
  writeToStdout(`localclawd is managed by apk.
523354
523664
  `);
523355
523665
  const latest = await getLatestVersion(channel);
523356
- if (latest && !gte("1.0.5", latest)) {
523357
- writeToStdout(`Update available: ${"1.0.5"} → ${latest}
523666
+ if (latest && !gte("1.0.6", latest)) {
523667
+ writeToStdout(`Update available: ${"1.0.6"} → ${latest}
523358
523668
  `);
523359
523669
  writeToStdout(`
523360
523670
  `);
@@ -523419,11 +523729,11 @@ async function update() {
523419
523729
  `);
523420
523730
  await gracefulShutdown(1);
523421
523731
  }
523422
- if (result.latestVersion === "1.0.5") {
523423
- writeToStdout(source_default.green(`localclawd is up to date (${"1.0.5"})`) + `
523732
+ if (result.latestVersion === "1.0.6") {
523733
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.0.6"})`) + `
523424
523734
  `);
523425
523735
  } else {
523426
- writeToStdout(source_default.green(`Successfully updated from ${"1.0.5"} to version ${result.latestVersion}`) + `
523736
+ writeToStdout(source_default.green(`Successfully updated from ${"1.0.6"} to version ${result.latestVersion}`) + `
523427
523737
  `);
523428
523738
  await regenerateCompletionCache();
523429
523739
  }
@@ -523483,12 +523793,12 @@ async function update() {
523483
523793
  `);
523484
523794
  await gracefulShutdown(1);
523485
523795
  }
523486
- if (latestVersion === "1.0.5") {
523487
- writeToStdout(source_default.green(`localclawd is up to date (${"1.0.5"})`) + `
523796
+ if (latestVersion === "1.0.6") {
523797
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.0.6"})`) + `
523488
523798
  `);
523489
523799
  await gracefulShutdown(0);
523490
523800
  }
523491
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.5"})
523801
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.6"})
523492
523802
  `);
523493
523803
  writeToStdout(`Installing update...
523494
523804
  `);
@@ -523533,7 +523843,7 @@ async function update() {
523533
523843
  logForDebugging(`update: Installation status: ${status2}`);
523534
523844
  switch (status2) {
523535
523845
  case "success":
523536
- writeToStdout(source_default.green(`Successfully updated from ${"1.0.5"} to version ${latestVersion}`) + `
523846
+ writeToStdout(source_default.green(`Successfully updated from ${"1.0.6"} to version ${latestVersion}`) + `
523537
523847
  `);
523538
523848
  await regenerateCompletionCache();
523539
523849
  break;
@@ -524143,6 +524453,7 @@ ${getTmuxInstallInstructions2()}
524143
524453
  }
524144
524454
  }
524145
524455
  const isNonInteractiveSession = getIsNonInteractiveSession();
524456
+ const startupLoadingIndicator = !isNonInteractiveSession ? startStartupLoadingIndicator("Loading model and MCP configuration") : null;
524146
524457
  if (fallbackModel && options.model && fallbackModel === options.model) {
524147
524458
  process.stderr.write(source_default.red(`Error: Fallback model cannot be the same as the main model. Please specify a different model for --fallback-model.
524148
524459
  `));
@@ -524388,7 +524699,6 @@ ${hint}` : hint;
524388
524699
  }
524389
524700
  return allowed;
524390
524701
  }) : Promise.resolve({});
524391
- logForDebugging("[STARTUP] Loading MCP configs...");
524392
524702
  const mcpConfigStart = Date.now();
524393
524703
  let mcpConfigResolvedMs;
524394
524704
  const mcpConfigPromise = (strictMcpConfig || isBareMode() ? Promise.resolve({
@@ -524398,38 +524708,46 @@ ${hint}` : hint;
524398
524708
  return result;
524399
524709
  });
524400
524710
  if (inputFormat && inputFormat !== "text" && inputFormat !== "stream-json") {
524711
+ startupLoadingIndicator?.stop();
524401
524712
  console.error(`Error: Invalid input format "${inputFormat}".`);
524402
524713
  process.exit(1);
524403
524714
  }
524404
524715
  if (inputFormat === "stream-json" && outputFormat !== "stream-json") {
524716
+ startupLoadingIndicator?.stop();
524405
524717
  console.error(`Error: --input-format=stream-json requires output-format=stream-json.`);
524406
524718
  process.exit(1);
524407
524719
  }
524408
524720
  if (sdkUrl) {
524409
524721
  if (inputFormat !== "stream-json" || outputFormat !== "stream-json") {
524722
+ startupLoadingIndicator?.stop();
524410
524723
  console.error(`Error: --sdk-url requires both --input-format=stream-json and --output-format=stream-json.`);
524411
524724
  process.exit(1);
524412
524725
  }
524413
524726
  }
524414
524727
  if (options.replayUserMessages) {
524415
524728
  if (inputFormat !== "stream-json" || outputFormat !== "stream-json") {
524729
+ startupLoadingIndicator?.stop();
524416
524730
  console.error(`Error: --replay-user-messages requires both --input-format=stream-json and --output-format=stream-json.`);
524417
524731
  process.exit(1);
524418
524732
  }
524419
524733
  }
524420
524734
  if (effectiveIncludePartialMessages) {
524421
524735
  if (!isNonInteractiveSession || outputFormat !== "stream-json") {
524736
+ startupLoadingIndicator?.stop();
524422
524737
  writeToStderr(`Error: --include-partial-messages requires --print and --output-format=stream-json.`);
524423
524738
  process.exit(1);
524424
524739
  }
524425
524740
  }
524426
524741
  if (options.sessionPersistence === false && !isNonInteractiveSession) {
524742
+ startupLoadingIndicator?.stop();
524427
524743
  writeToStderr(`Error: --no-session-persistence can only be used with --print mode.`);
524428
524744
  process.exit(1);
524429
524745
  }
524430
524746
  const effectivePrompt = prompt || "";
524747
+ startupLoadingIndicator?.update("Reading startup input");
524431
524748
  let inputPrompt = await getInputPrompt(effectivePrompt, inputFormat ?? "text");
524432
524749
  profileCheckpoint("action_after_input_prompt");
524750
+ startupLoadingIndicator?.update("Checking available tools");
524433
524751
  maybeActivateProactive(options);
524434
524752
  let tools = getTools(toolPermissionContext);
524435
524753
  if (false) {}
@@ -524455,7 +524773,7 @@ ${hint}` : hint;
524455
524773
  }
524456
524774
  }
524457
524775
  profileCheckpoint("action_before_setup");
524458
- logForDebugging("[STARTUP] Running setup()...");
524776
+ startupLoadingIndicator?.update("Preparing workspace");
524459
524777
  const setupStart = Date.now();
524460
524778
  const {
524461
524779
  setup: setup2
@@ -524472,7 +524790,6 @@ ${hint}` : hint;
524472
524790
  commandsPromise?.catch(() => {});
524473
524791
  agentDefsPromise?.catch(() => {});
524474
524792
  await setupPromise;
524475
- logForDebugging(`[STARTUP] setup() completed in ${Date.now() - setupStart}ms`);
524476
524793
  profileCheckpoint("action_after_setup");
524477
524794
  let effectiveReplayUserMessages = !!options.replayUserMessages;
524478
524795
  if (false) {}
@@ -524491,10 +524808,9 @@ ${hint}` : hint;
524491
524808
  const userSpecifiedModel = options.model === "default" ? getDefaultMainLoopModel() : options.model;
524492
524809
  const userSpecifiedFallbackModel = fallbackModel === "default" ? getDefaultMainLoopModel() : fallbackModel;
524493
524810
  const currentCwd2 = worktreeEnabled ? getCwd() : preSetupCwd;
524494
- logForDebugging("[STARTUP] Loading commands and agents...");
524811
+ startupLoadingIndicator?.update("Loading commands and agents");
524495
524812
  const commandsStart = Date.now();
524496
524813
  const [commands, agentDefinitionsResult] = await Promise.all([commandsPromise ?? getCommands(currentCwd2), agentDefsPromise ?? getAgentDefinitionsWithOverrides(currentCwd2)]);
524497
- logForDebugging(`[STARTUP] Commands and agents loaded in ${Date.now() - commandsStart}ms`);
524498
524814
  profileCheckpoint("action_commands_loaded");
524499
524815
  let cliAgents = [];
524500
524816
  if (agentsJson) {
@@ -524562,12 +524878,14 @@ ${inputPrompt}` : mainThreadAgentDefinition.initialPrompt;
524562
524878
  if (advisorOption) {
524563
524879
  logForDebugging(`[AdvisorTool] --advisor ${advisorOption}`);
524564
524880
  if (!modelSupportsAdvisor(resolvedInitialModel)) {
524881
+ startupLoadingIndicator?.stop();
524565
524882
  process.stderr.write(source_default.red(`Error: The model "${resolvedInitialModel}" does not support the advisor tool.
524566
524883
  `));
524567
524884
  process.exit(1);
524568
524885
  }
524569
524886
  const normalizedAdvisorModel = normalizeModelStringForAPI(parseUserSpecifiedModel(advisorOption));
524570
524887
  if (!isValidAdvisorModel(normalizedAdvisorModel)) {
524888
+ startupLoadingIndicator?.stop();
524571
524889
  process.stderr.write(source_default.red(`Error: The model "${advisorOption}" cannot be used as an advisor.
524572
524890
  `));
524573
524891
  process.exit(1);
@@ -524614,6 +524932,7 @@ ${customInstructions}` : customInstructions;
524614
524932
  let getFpsMetrics;
524615
524933
  let stats2;
524616
524934
  if (!isNonInteractiveSession) {
524935
+ startupLoadingIndicator?.update("Launching dashboard");
524617
524936
  const ctx = getRenderContext(false);
524618
524937
  getFpsMetrics = ctx.getFpsMetrics;
524619
524938
  stats2 = ctx.stats;
@@ -524621,15 +524940,14 @@ ${customInstructions}` : customInstructions;
524621
524940
  const {
524622
524941
  createRoot: createRoot3
524623
524942
  } = await Promise.resolve().then(() => (init_ink2(), exports_ink));
524943
+ startupLoadingIndicator?.stop();
524624
524944
  root2 = await createRoot3(ctx.renderOptions);
524625
524945
  logEvent("tengu_timer", {
524626
524946
  event: "startup",
524627
524947
  durationMs: Math.round(process.uptime() * 1000)
524628
524948
  });
524629
- logForDebugging("[STARTUP] Running showSetupScreens()...");
524630
524949
  const setupScreensStart = Date.now();
524631
524950
  const onboardingShown = await showSetupScreens(root2, permissionMode, allowDangerouslySkipPermissions, commands, enableClaudeInChrome, devChannels);
524632
- logForDebugging(`[STARTUP] showSetupScreens() completed in ${Date.now() - setupScreensStart}ms`);
524633
524951
  if (false) {}
524634
524952
  if (false) {}
524635
524953
  if (onboardingShown && prompt?.trim().toLowerCase() === "/login") {
@@ -524775,7 +525093,7 @@ ${customInstructions}` : customInstructions;
524775
525093
  }
524776
525094
  }
524777
525095
  logForDiagnosticsNoPII("info", "started", {
524778
- version: "1.0.5",
525096
+ version: "1.0.6",
524779
525097
  is_native_binary: isInBundledMode()
524780
525098
  });
524781
525099
  registerCleanup(async () => {
@@ -525559,7 +525877,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
525559
525877
  pendingHookMessages
525560
525878
  }, renderAndRun);
525561
525879
  }
525562
- }).version("1.0.5 (localClawd)", "-v, --version", "Output the version number");
525880
+ }).version("1.0.6 (localClawd)", "-v, --version", "Output the version number");
525563
525881
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
525564
525882
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
525565
525883
  if (canUserConfigureAdvisor()) {
@@ -526016,6 +526334,7 @@ var init_main3 = __esm(() => {
526016
526334
  init_Shell();
526017
526335
  init_sessionRestore();
526018
526336
  init_constants2();
526337
+ init_startupLoading();
526019
526338
  init_stringUtils();
526020
526339
  init_state();
526021
526340
  init_migrateAutoUpdatesToSettings();
@@ -526066,7 +526385,7 @@ if (false) {}
526066
526385
  async function main2() {
526067
526386
  const args = process.argv.slice(2);
526068
526387
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
526069
- console.log(`${"1.0.5"} (localclawd)`);
526388
+ console.log(`${"1.0.6"} (localclawd)`);
526070
526389
  return;
526071
526390
  }
526072
526391
  const {
@@ -526150,4 +526469,4 @@ async function main2() {
526150
526469
  }
526151
526470
  main2();
526152
526471
 
526153
- //# debugId=70B44E2C5951F6D564756E2164756E21
526472
+ //# debugId=53D85FDAF878BEF864756E2164756E21