localclawd 1.1.19 → 1.1.20

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 (3) hide show
  1. package/README.md +2 -1
  2. package/dist/cli.mjs +83 -83
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -173,9 +173,10 @@ If you want to use the Anthropic API directly, set `ANTHROPIC_API_KEY` in your e
173
173
 
174
174
  ## Release status
175
175
 
176
- `v1.1.19` is live on npm. Install globally with `npm install -g localclawd` or run without installing with `npx localclawd`.
176
+ `v1.1.20` is live on npm. Install globally with `npm install -g localclawd` or run without installing with `npx localclawd`.
177
177
 
178
178
  **Changelog**
179
+ - `1.1.20` — Fix interactive startup crash: hoist `cliAgents` variable to outer scope so it is in scope when building `resumeContext` after the try block; this caused a ReferenceError on every interactive launch.
179
180
  - `1.1.19` — Fix all startup crashes: hoist all try-block-scoped variables (effectiveModel, agentDefinitions, root, etc.) to outer scope; fix undefined model strings for local provider; add missing prompt() methods to custom tools (Secrets, Crypto, LocalWebSearch, WebScreenshot).
180
181
  - `1.1.18` — Fix `commands is not defined` crash: moved commands/agentDefinitions declarations outside try block to fix block-scoping issue; purge remaining mixed-case branding.
181
182
  - `1.1.17` — Fix startup crash: Command.hideHelp() not available in Commander.js v14 — use { hidden: true } option instead.
package/dist/cli.mjs CHANGED
@@ -89228,7 +89228,7 @@ var init_isEqual = __esm(() => {
89228
89228
 
89229
89229
  // src/utils/userAgent.ts
89230
89230
  function getClaudeCodeUserAgent() {
89231
- return `claude-code/${"1.1.19"}`;
89231
+ return `claude-code/${"1.1.20"}`;
89232
89232
  }
89233
89233
 
89234
89234
  // src/utils/workloadContext.ts
@@ -89250,7 +89250,7 @@ function getUserAgent() {
89250
89250
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
89251
89251
  const workload = getWorkload();
89252
89252
  const workloadSuffix = workload ? `, workload/${workload}` : "";
89253
- return `claude-cli/${"1.1.19"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
89253
+ return `claude-cli/${"1.1.20"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
89254
89254
  }
89255
89255
  function getMCPUserAgent() {
89256
89256
  const parts = [];
@@ -89264,7 +89264,7 @@ function getMCPUserAgent() {
89264
89264
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
89265
89265
  }
89266
89266
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
89267
- return `claude-code/${"1.1.19"}${suffix}`;
89267
+ return `claude-code/${"1.1.20"}${suffix}`;
89268
89268
  }
89269
89269
  function getWebFetchUserAgent() {
89270
89270
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -99173,7 +99173,7 @@ function getAttributionHeader(fingerprint) {
99173
99173
  if (!isAttributionHeaderEnabled()) {
99174
99174
  return "";
99175
99175
  }
99176
- const version = `${"1.1.19"}.${fingerprint}`;
99176
+ const version = `${"1.1.20"}.${fingerprint}`;
99177
99177
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
99178
99178
  const cch = "";
99179
99179
  const workload = getWorkload();
@@ -132720,7 +132720,7 @@ var init_metadata = __esm(() => {
132720
132720
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
132721
132721
  WHITESPACE_REGEX = /\s+/;
132722
132722
  getVersionBase = memoize_default(() => {
132723
- const match = "1.1.19".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
132723
+ const match = "1.1.20".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
132724
132724
  return match ? match[0] : undefined;
132725
132725
  });
132726
132726
  buildEnvContext = memoize_default(async () => {
@@ -132760,9 +132760,9 @@ var init_metadata = __esm(() => {
132760
132760
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
132761
132761
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
132762
132762
  isClaudeAiAuth: isClaudeAISubscriber(),
132763
- version: "1.1.19",
132763
+ version: "1.1.20",
132764
132764
  versionBase: getVersionBase(),
132765
- buildTime: "2026-04-09T15:34:14.769Z",
132765
+ buildTime: "2026-04-09T17:12:16.788Z",
132766
132766
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
132767
132767
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
132768
132768
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -197349,7 +197349,7 @@ function getTelemetryAttributes() {
197349
197349
  attributes["session.id"] = sessionId;
197350
197350
  }
197351
197351
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
197352
- attributes["app.version"] = "1.1.19";
197352
+ attributes["app.version"] = "1.1.20";
197353
197353
  }
197354
197354
  const oauthAccount = getOauthAccountInfo();
197355
197355
  if (oauthAccount) {
@@ -229410,7 +229410,7 @@ function getInstallationEnv() {
229410
229410
  return;
229411
229411
  }
229412
229412
  function getClaudeCodeVersion() {
229413
- return "1.1.19";
229413
+ return "1.1.20";
229414
229414
  }
229415
229415
  async function getInstalledVSCodeExtensionVersion(command) {
229416
229416
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -235012,7 +235012,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
235012
235012
  const client4 = new Client({
235013
235013
  name: "localclawd",
235014
235014
  title: "localclawd",
235015
- version: "1.1.19",
235015
+ version: "1.1.20",
235016
235016
  description: "local-first AI coding tool",
235017
235017
  websiteUrl: PRODUCT_URL
235018
235018
  }, {
@@ -235365,7 +235365,7 @@ var init_client9 = __esm(() => {
235365
235365
  const client4 = new Client({
235366
235366
  name: "localclawd",
235367
235367
  title: "localclawd",
235368
- version: "1.1.19",
235368
+ version: "1.1.20",
235369
235369
  description: "local-first AI coding tool",
235370
235370
  websiteUrl: PRODUCT_URL
235371
235371
  }, {
@@ -258557,7 +258557,7 @@ var init_user = __esm(() => {
258557
258557
  deviceId,
258558
258558
  sessionId: getSessionId(),
258559
258559
  email: getEmail(),
258560
- appVersion: "1.1.19",
258560
+ appVersion: "1.1.20",
258561
258561
  platform: getHostPlatformForAnalytics(),
258562
258562
  organizationUuid,
258563
258563
  accountUuid,
@@ -259881,7 +259881,7 @@ async function initializeBetaTracing(resource) {
259881
259881
  });
259882
259882
  logs.setGlobalLoggerProvider(loggerProvider);
259883
259883
  setLoggerProvider(loggerProvider);
259884
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.19");
259884
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.20");
259885
259885
  setEventLogger(eventLogger);
259886
259886
  process.on("beforeExit", async () => {
259887
259887
  await loggerProvider?.forceFlush();
@@ -259921,7 +259921,7 @@ async function initializeTelemetry() {
259921
259921
  const platform3 = getPlatform();
259922
259922
  const baseAttributes = {
259923
259923
  [ATTR_SERVICE_NAME5]: "claude-code",
259924
- [ATTR_SERVICE_VERSION5]: "1.1.19"
259924
+ [ATTR_SERVICE_VERSION5]: "1.1.20"
259925
259925
  };
259926
259926
  if (platform3 === "wsl") {
259927
259927
  const wslVersion = getWslVersion();
@@ -259966,7 +259966,7 @@ async function initializeTelemetry() {
259966
259966
  } catch {}
259967
259967
  };
259968
259968
  registerCleanup(shutdownTelemetry2);
259969
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.19");
259969
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.20");
259970
259970
  }
259971
259971
  const meterProvider = new MeterProvider5({
259972
259972
  resource,
@@ -259986,7 +259986,7 @@ async function initializeTelemetry() {
259986
259986
  });
259987
259987
  logs.setGlobalLoggerProvider(loggerProvider);
259988
259988
  setLoggerProvider(loggerProvider);
259989
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.19");
259989
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.20");
259990
259990
  setEventLogger(eventLogger);
259991
259991
  logForDebugging("[3P telemetry] Event logger set successfully");
259992
259992
  process.on("beforeExit", async () => {
@@ -260048,7 +260048,7 @@ Current timeout: ${timeoutMs}ms
260048
260048
  }
260049
260049
  };
260050
260050
  registerCleanup(shutdownTelemetry);
260051
- return meterProvider.getMeter("com.anthropic.claude_code", "1.1.19");
260051
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.1.20");
260052
260052
  }
260053
260053
  async function flushTelemetry() {
260054
260054
  const meterProvider = getMeterProvider();
@@ -261271,7 +261271,7 @@ function detectLinuxGlobPatternWarnings() {
261271
261271
  }
261272
261272
  async function getDoctorDiagnostic() {
261273
261273
  const installationType = await getCurrentInstallationType();
261274
- const version = typeof MACRO !== "undefined" ? "1.1.19" : "unknown";
261274
+ const version = typeof MACRO !== "undefined" ? "1.1.20" : "unknown";
261275
261275
  const installationPath = await getInstallationPath();
261276
261276
  const invokedBinary = getInvokedBinary();
261277
261277
  const multipleInstallations = await detectMultipleInstallations();
@@ -262212,8 +262212,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
262212
262212
  const maxVersion = await getMaxVersion();
262213
262213
  if (maxVersion && gt(version, maxVersion)) {
262214
262214
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
262215
- if (gte("1.1.19", maxVersion)) {
262216
- logForDebugging(`Native installer: current version ${"1.1.19"} is already at or above maxVersion ${maxVersion}, skipping update`);
262215
+ if (gte("1.1.20", maxVersion)) {
262216
+ logForDebugging(`Native installer: current version ${"1.1.20"} is already at or above maxVersion ${maxVersion}, skipping update`);
262217
262217
  logEvent("tengu_native_update_skipped_max_version", {
262218
262218
  latency_ms: Date.now() - startTime,
262219
262219
  max_version: maxVersion,
@@ -262224,7 +262224,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
262224
262224
  version = maxVersion;
262225
262225
  }
262226
262226
  }
262227
- if (!forceReinstall && version === "1.1.19" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
262227
+ if (!forceReinstall && version === "1.1.20" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
262228
262228
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
262229
262229
  logEvent("tengu_native_update_complete", {
262230
262230
  latency_ms: Date.now() - startTime,
@@ -334474,7 +334474,7 @@ function getAnthropicEnvMetadata() {
334474
334474
  function getBuildAgeMinutes() {
334475
334475
  if (false)
334476
334476
  ;
334477
- const buildTime = new Date("2026-04-09T15:34:14.769Z").getTime();
334477
+ const buildTime = new Date("2026-04-09T17:12:16.788Z").getTime();
334478
334478
  if (isNaN(buildTime))
334479
334479
  return;
334480
334480
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -358540,7 +358540,7 @@ function Feedback({
358540
358540
  platform: env4.platform,
358541
358541
  gitRepo: envInfo.isGit,
358542
358542
  terminal: env4.terminal,
358543
- version: "1.1.19",
358543
+ version: "1.1.20",
358544
358544
  transcript: normalizeMessagesForAPI(messages),
358545
358545
  errors: sanitizedErrors,
358546
358546
  lastApiRequest: getLastAPIRequest(),
@@ -358732,7 +358732,7 @@ function Feedback({
358732
358732
  ", ",
358733
358733
  env4.terminal,
358734
358734
  ", v",
358735
- "1.1.19"
358735
+ "1.1.20"
358736
358736
  ]
358737
358737
  }, undefined, true, undefined, this)
358738
358738
  ]
@@ -358838,7 +358838,7 @@ ${sanitizedDescription}
358838
358838
  ` + `**Environment Info**
358839
358839
  ` + `- Platform: ${env4.platform}
358840
358840
  ` + `- Terminal: ${env4.terminal}
358841
- ` + `- Version: ${"1.1.19"}
358841
+ ` + `- Version: ${"1.1.20"}
358842
358842
  ` + `- Feedback ID: ${feedbackId}
358843
358843
  ` + `
358844
358844
  **Errors**
@@ -361951,7 +361951,7 @@ function buildPrimarySection() {
361951
361951
  }, undefined, false, undefined, this);
361952
361952
  return [{
361953
361953
  label: "Version",
361954
- value: "1.1.19"
361954
+ value: "1.1.20"
361955
361955
  }, {
361956
361956
  label: "Session name",
361957
361957
  value: nameValue
@@ -366569,7 +366569,7 @@ function Config({
366569
366569
  }
366570
366570
  }, undefined, false, undefined, this)
366571
366571
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
366572
- currentVersion: "1.1.19",
366572
+ currentVersion: "1.1.20",
366573
366573
  onChoice: (choice) => {
366574
366574
  setShowSubmenu(null);
366575
366575
  setTabsHidden(false);
@@ -366581,7 +366581,7 @@ function Config({
366581
366581
  autoUpdatesChannel: "stable"
366582
366582
  };
366583
366583
  if (choice === "stay") {
366584
- newSettings.minimumVersion = "1.1.19";
366584
+ newSettings.minimumVersion = "1.1.20";
366585
366585
  }
366586
366586
  updateSettingsForSource("userSettings", newSettings);
366587
366587
  setSettingsData((prev_27) => ({
@@ -376314,7 +376314,7 @@ function HelpV2(t0) {
376314
376314
  let t6;
376315
376315
  if ($2[31] !== tabs) {
376316
376316
  t6 = /* @__PURE__ */ jsx_dev_runtime214.jsxDEV(Tabs, {
376317
- title: `localclawd v${"1.1.19"}`,
376317
+ title: `localclawd v${"1.1.20"}`,
376318
376318
  color: "professionalBlue",
376319
376319
  defaultTab: "general",
376320
376320
  children: tabs
@@ -400472,7 +400472,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
400472
400472
  return [];
400473
400473
  }
400474
400474
  }
400475
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.19") {
400475
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.20") {
400476
400476
  if (process.env.USER_TYPE === "ant") {
400477
400477
  const changelog = MACRO.VERSION_CHANGELOG;
400478
400478
  if (changelog) {
@@ -400499,7 +400499,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.19")
400499
400499
  releaseNotes
400500
400500
  };
400501
400501
  }
400502
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.19") {
400502
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.20") {
400503
400503
  if (process.env.USER_TYPE === "ant") {
400504
400504
  const changelog = MACRO.VERSION_CHANGELOG;
400505
400505
  if (changelog) {
@@ -401666,7 +401666,7 @@ function getRecentActivitySync() {
401666
401666
  return cachedActivity;
401667
401667
  }
401668
401668
  function getLogoDisplayData() {
401669
- const version = process.env.DEMO_VERSION ?? "1.1.19";
401669
+ const version = process.env.DEMO_VERSION ?? "1.1.20";
401670
401670
  const serverUrl = getDirectConnectServerUrl();
401671
401671
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
401672
401672
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -402940,7 +402940,7 @@ function LogoV2() {
402940
402940
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
402941
402941
  t2 = () => {
402942
402942
  const currentConfig = getGlobalConfig();
402943
- if (currentConfig.lastReleaseNotesSeen === "1.1.19") {
402943
+ if (currentConfig.lastReleaseNotesSeen === "1.1.20") {
402944
402944
  return;
402945
402945
  }
402946
402946
  saveGlobalConfig(_temp327);
@@ -403616,12 +403616,12 @@ function LogoV2() {
403616
403616
  return t41;
403617
403617
  }
403618
403618
  function _temp327(current) {
403619
- if (current.lastReleaseNotesSeen === "1.1.19") {
403619
+ if (current.lastReleaseNotesSeen === "1.1.20") {
403620
403620
  return current;
403621
403621
  }
403622
403622
  return {
403623
403623
  ...current,
403624
- lastReleaseNotesSeen: "1.1.19"
403624
+ lastReleaseNotesSeen: "1.1.20"
403625
403625
  };
403626
403626
  }
403627
403627
  function _temp245(s_0) {
@@ -429823,7 +429823,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
429823
429823
  smapsRollup,
429824
429824
  platform: process.platform,
429825
429825
  nodeVersion: process.version,
429826
- ccVersion: "1.1.19"
429826
+ ccVersion: "1.1.20"
429827
429827
  };
429828
429828
  }
429829
429829
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -430408,7 +430408,7 @@ var init_bridge_kick = __esm(() => {
430408
430408
  var call64 = async () => {
430409
430409
  return {
430410
430410
  type: "text",
430411
- value: `${"1.1.19"} (built ${"2026-04-09T15:34:14.769Z"})`
430411
+ value: `${"1.1.20"} (built ${"2026-04-09T17:12:16.788Z"})`
430412
430412
  };
430413
430413
  }, version, version_default;
430414
430414
  var init_version = __esm(() => {
@@ -439346,7 +439346,7 @@ function generateHtmlReport(data, insights) {
439346
439346
  </html>`;
439347
439347
  }
439348
439348
  function buildExportData(data, insights, facets, remoteStats) {
439349
- const version2 = typeof MACRO !== "undefined" ? "1.1.19" : "unknown";
439349
+ const version2 = typeof MACRO !== "undefined" ? "1.1.20" : "unknown";
439350
439350
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
439351
439351
  const facets_summary = {
439352
439352
  total: facets.size,
@@ -443513,7 +443513,7 @@ var init_sessionStorage = __esm(() => {
443513
443513
  init_settings2();
443514
443514
  init_slowOperations();
443515
443515
  init_uuid();
443516
- VERSION6 = typeof MACRO !== "undefined" ? "1.1.19" : "unknown";
443516
+ VERSION6 = typeof MACRO !== "undefined" ? "1.1.20" : "unknown";
443517
443517
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
443518
443518
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
443519
443519
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -444715,7 +444715,7 @@ var init_filesystem = __esm(() => {
444715
444715
  });
444716
444716
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
444717
444717
  const nonce = randomBytes19(16).toString("hex");
444718
- return join130(getClaudeTempDir(), "bundled-skills", "1.1.19", nonce);
444718
+ return join130(getClaudeTempDir(), "bundled-skills", "1.1.20", nonce);
444719
444719
  });
444720
444720
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
444721
444721
  });
@@ -450714,7 +450714,7 @@ function computeFingerprint(messageText, version2) {
450714
450714
  }
450715
450715
  function computeFingerprintFromMessages(messages) {
450716
450716
  const firstMessageText = extractFirstMessageText(messages);
450717
- return computeFingerprint(firstMessageText, "1.1.19");
450717
+ return computeFingerprint(firstMessageText, "1.1.20");
450718
450718
  }
450719
450719
  var FINGERPRINT_SALT = "59cf53e54c78";
450720
450720
  var init_fingerprint = () => {};
@@ -452569,7 +452569,7 @@ async function sideQuery(opts) {
452569
452569
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
452570
452570
  }
452571
452571
  const messageText = extractFirstUserMessageText(messages);
452572
- const fingerprint = computeFingerprint(messageText, "1.1.19");
452572
+ const fingerprint = computeFingerprint(messageText, "1.1.20");
452573
452573
  const attributionHeader = getAttributionHeader(fingerprint);
452574
452574
  const systemBlocks = [
452575
452575
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -457367,7 +457367,7 @@ function buildSystemInitMessage(inputs) {
457367
457367
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
457368
457368
  apiKeySource: getAnthropicApiKeyWithSource().source,
457369
457369
  betas: getSdkBetas(),
457370
- claude_code_version: "1.1.19",
457370
+ claude_code_version: "1.1.20",
457371
457371
  output_style: outputStyle2,
457372
457372
  agents: inputs.agents.map((agent) => agent.agentType),
457373
457373
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -471946,7 +471946,7 @@ var init_useVoiceEnabled = __esm(() => {
471946
471946
  function getSemverPart(version2) {
471947
471947
  return `${import_semver12.major(version2, { loose: true })}.${import_semver12.minor(version2, { loose: true })}.${import_semver12.patch(version2, { loose: true })}`;
471948
471948
  }
471949
- function useUpdateNotification(updatedVersion, initialVersion = "1.1.19") {
471949
+ function useUpdateNotification(updatedVersion, initialVersion = "1.1.20") {
471950
471950
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react228.useState(() => getSemverPart(initialVersion));
471951
471951
  if (!updatedVersion) {
471952
471952
  return null;
@@ -471986,7 +471986,7 @@ function AutoUpdater({
471986
471986
  return;
471987
471987
  }
471988
471988
  if (false) {}
471989
- const currentVersion = "1.1.19";
471989
+ const currentVersion = "1.1.20";
471990
471990
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
471991
471991
  let latestVersion = await getLatestVersion(channel);
471992
471992
  const isDisabled = isAutoUpdaterDisabled();
@@ -472197,12 +472197,12 @@ function NativeAutoUpdater({
472197
472197
  logEvent("tengu_native_auto_updater_start", {});
472198
472198
  try {
472199
472199
  const maxVersion = await getMaxVersion();
472200
- if (maxVersion && gt("1.1.19", maxVersion)) {
472200
+ if (maxVersion && gt("1.1.20", maxVersion)) {
472201
472201
  const msg = await getMaxVersionMessage();
472202
472202
  setMaxVersionIssue(msg ?? "affects your version");
472203
472203
  }
472204
472204
  const result = await installLatest(channel);
472205
- const currentVersion = "1.1.19";
472205
+ const currentVersion = "1.1.20";
472206
472206
  const latencyMs = Date.now() - startTime;
472207
472207
  if (result.lockFailed) {
472208
472208
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -472337,17 +472337,17 @@ function PackageManagerAutoUpdater(t0) {
472337
472337
  const maxVersion = await getMaxVersion();
472338
472338
  if (maxVersion && latest && gt(latest, maxVersion)) {
472339
472339
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
472340
- if (gte("1.1.19", maxVersion)) {
472341
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.19"} is already at or above maxVersion ${maxVersion}, skipping update`);
472340
+ if (gte("1.1.20", maxVersion)) {
472341
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.20"} is already at or above maxVersion ${maxVersion}, skipping update`);
472342
472342
  setUpdateAvailable(false);
472343
472343
  return;
472344
472344
  }
472345
472345
  latest = maxVersion;
472346
472346
  }
472347
- const hasUpdate = latest && !gte("1.1.19", latest) && !shouldSkipVersion(latest);
472347
+ const hasUpdate = latest && !gte("1.1.20", latest) && !shouldSkipVersion(latest);
472348
472348
  setUpdateAvailable(!!hasUpdate);
472349
472349
  if (hasUpdate) {
472350
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.19"} -> ${latest}`);
472350
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.20"} -> ${latest}`);
472351
472351
  }
472352
472352
  };
472353
472353
  $2[0] = t1;
@@ -472381,7 +472381,7 @@ function PackageManagerAutoUpdater(t0) {
472381
472381
  wrap: "truncate",
472382
472382
  children: [
472383
472383
  "currentVersion: ",
472384
- "1.1.19"
472384
+ "1.1.20"
472385
472385
  ]
472386
472386
  }, undefined, true, undefined, this);
472387
472387
  $2[3] = verbose;
@@ -479939,7 +479939,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
479939
479939
  project_dir: getOriginalCwd(),
479940
479940
  added_dirs: addedDirs
479941
479941
  },
479942
- version: "1.1.19",
479942
+ version: "1.1.20",
479943
479943
  output_style: {
479944
479944
  name: outputStyleName
479945
479945
  },
@@ -490077,13 +490077,13 @@ function restoreAgentFromSession(agentSetting2, currentAgentDefinition, agentDef
490077
490077
  }
490078
490078
  return { agentDefinition: resumedAgent, agentType: resumedAgent.agentType };
490079
490079
  }
490080
- async function refreshAgentDefinitionsForModeSwitch(modeWasSwitched, currentCwd2, cliAgents2, currentAgentDefinitions) {
490080
+ async function refreshAgentDefinitionsForModeSwitch(modeWasSwitched, currentCwd2, cliAgents, currentAgentDefinitions) {
490081
490081
  if (true) {
490082
490082
  return currentAgentDefinitions;
490083
490083
  }
490084
490084
  getAgentDefinitionsWithOverrides.cache.clear?.();
490085
490085
  const freshAgentDefs = await getAgentDefinitionsWithOverrides(currentCwd2);
490086
- const freshAllAgents = [...freshAgentDefs.allAgents, ...cliAgents2];
490086
+ const freshAllAgents = [...freshAgentDefs.allAgents, ...cliAgents];
490087
490087
  return {
490088
490088
  ...freshAgentDefs,
490089
490089
  allAgents: freshAllAgents,
@@ -491499,7 +491499,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
491499
491499
  } catch {}
491500
491500
  const data = {
491501
491501
  trigger,
491502
- version: "1.1.19",
491502
+ version: "1.1.20",
491503
491503
  platform: process.platform,
491504
491504
  transcript,
491505
491505
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -507913,7 +507913,7 @@ function appendToLog(path17, message) {
507913
507913
  cwd: getFsImplementation().cwd(),
507914
507914
  userType: process.env.USER_TYPE,
507915
507915
  sessionId: getSessionId(),
507916
- version: "1.1.19"
507916
+ version: "1.1.20"
507917
507917
  };
507918
507918
  getLogWriter(path17).write(messageWithTimestamp);
507919
507919
  }
@@ -511913,8 +511913,8 @@ async function getEnvLessBridgeConfig() {
511913
511913
  }
511914
511914
  async function checkEnvLessBridgeMinVersion() {
511915
511915
  const cfg = await getEnvLessBridgeConfig();
511916
- if (cfg.min_version && lt("1.1.19", cfg.min_version)) {
511917
- return `Your version of localclawd (${"1.1.19"}) is too old for Remote Control.
511916
+ if (cfg.min_version && lt("1.1.20", cfg.min_version)) {
511917
+ return `Your version of localclawd (${"1.1.20"}) is too old for Remote Control.
511918
511918
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
511919
511919
  }
511920
511920
  return null;
@@ -512386,7 +512386,7 @@ async function initBridgeCore(params) {
512386
512386
  const rawApi = createBridgeApiClient({
512387
512387
  baseUrl,
512388
512388
  getAccessToken,
512389
- runnerVersion: "1.1.19",
512389
+ runnerVersion: "1.1.20",
512390
512390
  onDebug: logForDebugging,
512391
512391
  onAuth401,
512392
512392
  getTrustedDeviceToken
@@ -518042,7 +518042,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
518042
518042
  setCwd(cwd3);
518043
518043
  const server = new Server({
518044
518044
  name: "claude/tengu",
518045
- version: "1.1.19"
518045
+ version: "1.1.20"
518046
518046
  }, {
518047
518047
  capabilities: {
518048
518048
  tools: {}
@@ -519123,7 +519123,7 @@ function WelcomeV2() {
519123
519123
  dimColor: true,
519124
519124
  children: [
519125
519125
  "v",
519126
- "1.1.19"
519126
+ "1.1.20"
519127
519127
  ]
519128
519128
  }, undefined, true, undefined, this)
519129
519129
  ]
@@ -519692,7 +519692,7 @@ __export(exports_update, {
519692
519692
  });
519693
519693
  async function update() {
519694
519694
  logEvent("tengu_update_check", {});
519695
- writeToStdout(`Current version: ${"1.1.19"}
519695
+ writeToStdout(`Current version: ${"1.1.20"}
519696
519696
  `);
519697
519697
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
519698
519698
  writeToStdout(`Checking for updates to ${channel} version...
@@ -519767,8 +519767,8 @@ async function update() {
519767
519767
  writeToStdout(`localclawd is managed by Homebrew.
519768
519768
  `);
519769
519769
  const latest = await getLatestVersion(channel);
519770
- if (latest && !gte("1.1.19", latest)) {
519771
- writeToStdout(`Update available: ${"1.1.19"} → ${latest}
519770
+ if (latest && !gte("1.1.20", latest)) {
519771
+ writeToStdout(`Update available: ${"1.1.20"} → ${latest}
519772
519772
  `);
519773
519773
  writeToStdout(`
519774
519774
  `);
@@ -519784,8 +519784,8 @@ async function update() {
519784
519784
  writeToStdout(`localclawd is managed by winget.
519785
519785
  `);
519786
519786
  const latest = await getLatestVersion(channel);
519787
- if (latest && !gte("1.1.19", latest)) {
519788
- writeToStdout(`Update available: ${"1.1.19"} → ${latest}
519787
+ if (latest && !gte("1.1.20", latest)) {
519788
+ writeToStdout(`Update available: ${"1.1.20"} → ${latest}
519789
519789
  `);
519790
519790
  writeToStdout(`
519791
519791
  `);
@@ -519799,8 +519799,8 @@ async function update() {
519799
519799
  writeToStdout(`localclawd is managed by apk.
519800
519800
  `);
519801
519801
  const latest = await getLatestVersion(channel);
519802
- if (latest && !gte("1.1.19", latest)) {
519803
- writeToStdout(`Update available: ${"1.1.19"} → ${latest}
519802
+ if (latest && !gte("1.1.20", latest)) {
519803
+ writeToStdout(`Update available: ${"1.1.20"} → ${latest}
519804
519804
  `);
519805
519805
  writeToStdout(`
519806
519806
  `);
@@ -519865,11 +519865,11 @@ async function update() {
519865
519865
  `);
519866
519866
  await gracefulShutdown(1);
519867
519867
  }
519868
- if (result.latestVersion === "1.1.19") {
519869
- writeToStdout(source_default.green(`localclawd is up to date (${"1.1.19"})`) + `
519868
+ if (result.latestVersion === "1.1.20") {
519869
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.1.20"})`) + `
519870
519870
  `);
519871
519871
  } else {
519872
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.19"} to version ${result.latestVersion}`) + `
519872
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.20"} to version ${result.latestVersion}`) + `
519873
519873
  `);
519874
519874
  await regenerateCompletionCache();
519875
519875
  }
@@ -519929,12 +519929,12 @@ async function update() {
519929
519929
  `);
519930
519930
  await gracefulShutdown(1);
519931
519931
  }
519932
- if (latestVersion === "1.1.19") {
519933
- writeToStdout(source_default.green(`localclawd is up to date (${"1.1.19"})`) + `
519932
+ if (latestVersion === "1.1.20") {
519933
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.1.20"})`) + `
519934
519934
  `);
519935
519935
  await gracefulShutdown(0);
519936
519936
  }
519937
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.19"})
519937
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.20"})
519938
519938
  `);
519939
519939
  writeToStdout(`Installing update...
519940
519940
  `);
@@ -519979,7 +519979,7 @@ async function update() {
519979
519979
  logForDebugging(`update: Installation status: ${status2}`);
519980
519980
  switch (status2) {
519981
519981
  case "success":
519982
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.19"} to version ${latestVersion}`) + `
519982
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.20"} to version ${latestVersion}`) + `
519983
519983
  `);
519984
519984
  await regenerateCompletionCache();
519985
519985
  break;
@@ -520956,6 +520956,7 @@ ${hint}` : hint;
520956
520956
  let root2;
520957
520957
  let getFpsMetrics;
520958
520958
  let stats2;
520959
+ let cliAgents = [];
520959
520960
  try {
520960
520961
  userSpecifiedModel = options.model === "default" ? getDefaultMainLoopModel() : options.model;
520961
520962
  userSpecifiedFallbackModel = fallbackModel === "default" ? getDefaultMainLoopModel() : fallbackModel;
@@ -520967,18 +520968,17 @@ ${hint}` : hint;
520967
520968
  [commands, agentDefinitionsResult] = await Promise.all([commandsPromise ?? getCommands(currentCwd2), agentDefsPromise ?? getAgentDefinitionsWithOverrides(currentCwd2)]);
520968
520969
  logForDebugging(`[STARTUP] Commands and agents loaded in ${Date.now() - commandsStart}ms`);
520969
520970
  profileCheckpoint("action_commands_loaded");
520970
- let cliAgents2 = [];
520971
520971
  if (agentsJson) {
520972
520972
  try {
520973
520973
  const parsedAgents = safeParseJSON(agentsJson);
520974
520974
  if (parsedAgents) {
520975
- cliAgents2 = parseAgentsFromJson(parsedAgents, "flagSettings");
520975
+ cliAgents = parseAgentsFromJson(parsedAgents, "flagSettings");
520976
520976
  }
520977
520977
  } catch (error5) {
520978
520978
  logError(error5);
520979
520979
  }
520980
520980
  }
520981
- const allAgents = [...agentDefinitionsResult.allAgents, ...cliAgents2];
520981
+ const allAgents = [...agentDefinitionsResult.allAgents, ...cliAgents];
520982
520982
  agentDefinitions = {
520983
520983
  ...agentDefinitionsResult,
520984
520984
  allAgents,
@@ -521273,7 +521273,7 @@ Run with --debug for more details.
521273
521273
  }
521274
521274
  }
521275
521275
  logForDiagnosticsNoPII("info", "started", {
521276
- version: "1.1.19",
521276
+ version: "1.1.20",
521277
521277
  is_native_binary: isInBundledMode()
521278
521278
  });
521279
521279
  registerCleanup(async () => {
@@ -522057,7 +522057,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
522057
522057
  pendingHookMessages
522058
522058
  }, renderAndRun);
522059
522059
  }
522060
- }).version("1.1.19 (localclawd)", "-v, --version", "Output the version number");
522060
+ }).version("1.1.20 (localclawd)", "-v, --version", "Output the version number");
522061
522061
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
522062
522062
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
522063
522063
  if (canUserConfigureAdvisor()) {
@@ -522565,7 +522565,7 @@ if (false) {}
522565
522565
  async function main2() {
522566
522566
  const args = process.argv.slice(2);
522567
522567
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
522568
- console.log(`${"1.1.19"} (localclawd)`);
522568
+ console.log(`${"1.1.20"} (localclawd)`);
522569
522569
  return;
522570
522570
  }
522571
522571
  const {
@@ -522662,4 +522662,4 @@ localclawd crashed: ${msg}
522662
522662
  process.exit(1);
522663
522663
  });
522664
522664
 
522665
- //# debugId=1161F95358C9EAB964756E2164756E21
522665
+ //# debugId=D91C9A544979AAFC64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.1.19",
3
+ "version": "1.1.20",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",