localclawd 1.8.0 → 1.8.1

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 +116 -92
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -87608,7 +87608,7 @@ var init_isEqual = __esm(() => {
87608
87608
 
87609
87609
  // src/utils/userAgent.ts
87610
87610
  function getClaudeCodeUserAgent() {
87611
- return `claude-code/${"1.8.0"}`;
87611
+ return `claude-code/${"1.8.1"}`;
87612
87612
  }
87613
87613
 
87614
87614
  // src/utils/workloadContext.ts
@@ -87630,7 +87630,7 @@ function getUserAgent() {
87630
87630
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
87631
87631
  const workload = getWorkload();
87632
87632
  const workloadSuffix = workload ? `, workload/${workload}` : "";
87633
- return `claude-cli/${"1.8.0"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87633
+ return `claude-cli/${"1.8.1"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87634
87634
  }
87635
87635
  function getMCPUserAgent() {
87636
87636
  const parts = [];
@@ -87644,7 +87644,7 @@ function getMCPUserAgent() {
87644
87644
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
87645
87645
  }
87646
87646
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
87647
- return `claude-code/${"1.8.0"}${suffix}`;
87647
+ return `claude-code/${"1.8.1"}${suffix}`;
87648
87648
  }
87649
87649
  function getWebFetchUserAgent() {
87650
87650
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -130840,7 +130840,7 @@ function getAttributionHeader(fingerprint) {
130840
130840
  if (!isAttributionHeaderEnabled()) {
130841
130841
  return "";
130842
130842
  }
130843
- const version = `${"1.8.0"}.${fingerprint}`;
130843
+ const version = `${"1.8.1"}.${fingerprint}`;
130844
130844
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
130845
130845
  const cch = "";
130846
130846
  const workload = getWorkload();
@@ -147029,7 +147029,7 @@ var init_metadata = __esm(() => {
147029
147029
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
147030
147030
  WHITESPACE_REGEX = /\s+/;
147031
147031
  getVersionBase = memoize_default(() => {
147032
- const match = "1.8.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147032
+ const match = "1.8.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147033
147033
  return match ? match[0] : undefined;
147034
147034
  });
147035
147035
  buildEnvContext = memoize_default(async () => {
@@ -147069,9 +147069,9 @@ var init_metadata = __esm(() => {
147069
147069
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
147070
147070
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
147071
147071
  isClaudeAiAuth: isClaudeAISubscriber(),
147072
- version: "1.8.0",
147072
+ version: "1.8.1",
147073
147073
  versionBase: getVersionBase(),
147074
- buildTime: "2026-05-07T15:13:54.479Z",
147074
+ buildTime: "2026-05-07T15:19:47.253Z",
147075
147075
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
147076
147076
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
147077
147077
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -179647,7 +179647,7 @@ function getTelemetryAttributes() {
179647
179647
  attributes["session.id"] = sessionId;
179648
179648
  }
179649
179649
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
179650
- attributes["app.version"] = "1.8.0";
179650
+ attributes["app.version"] = "1.8.1";
179651
179651
  }
179652
179652
  const oauthAccount = getOauthAccountInfo();
179653
179653
  if (oauthAccount) {
@@ -242448,7 +242448,7 @@ function getInstallationEnv() {
242448
242448
  return;
242449
242449
  }
242450
242450
  function getClaudeCodeVersion() {
242451
- return "1.8.0";
242451
+ return "1.8.1";
242452
242452
  }
242453
242453
  async function getInstalledVSCodeExtensionVersion(command) {
242454
242454
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -247722,7 +247722,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
247722
247722
  const client4 = new Client({
247723
247723
  name: "localclawd",
247724
247724
  title: "localclawd",
247725
- version: "1.8.0",
247725
+ version: "1.8.1",
247726
247726
  description: "local-first AI coding tool",
247727
247727
  websiteUrl: PRODUCT_URL
247728
247728
  }, {
@@ -248064,7 +248064,7 @@ var init_client9 = __esm(() => {
248064
248064
  const client4 = new Client({
248065
248065
  name: "localclawd",
248066
248066
  title: "localclawd",
248067
- version: "1.8.0",
248067
+ version: "1.8.1",
248068
248068
  description: "local-first AI coding tool",
248069
248069
  websiteUrl: PRODUCT_URL
248070
248070
  }, {
@@ -262466,7 +262466,7 @@ function computeFingerprint(messageText, version) {
262466
262466
  }
262467
262467
  function computeFingerprintFromMessages(messages) {
262468
262468
  const firstMessageText = extractFirstMessageText(messages);
262469
- return computeFingerprint(firstMessageText, "1.8.0");
262469
+ return computeFingerprint(firstMessageText, "1.8.1");
262470
262470
  }
262471
262471
  var FINGERPRINT_SALT = "59cf53e54c78";
262472
262472
  var init_fingerprint = () => {};
@@ -262508,7 +262508,7 @@ async function sideQuery(opts) {
262508
262508
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
262509
262509
  }
262510
262510
  const messageText = extractFirstUserMessageText(messages);
262511
- const fingerprint = computeFingerprint(messageText, "1.8.0");
262511
+ const fingerprint = computeFingerprint(messageText, "1.8.1");
262512
262512
  const attributionHeader = getAttributionHeader(fingerprint);
262513
262513
  const systemBlocks = [
262514
262514
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -283256,7 +283256,7 @@ var init_user = __esm(() => {
283256
283256
  deviceId,
283257
283257
  sessionId: getSessionId(),
283258
283258
  email: getEmail(),
283259
- appVersion: "1.8.0",
283259
+ appVersion: "1.8.1",
283260
283260
  platform: getHostPlatformForAnalytics(),
283261
283261
  organizationUuid,
283262
283262
  accountUuid,
@@ -284321,7 +284321,7 @@ async function initializeBetaTracing(resource) {
284321
284321
  });
284322
284322
  logs.setGlobalLoggerProvider(loggerProvider);
284323
284323
  setLoggerProvider(loggerProvider);
284324
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.0");
284324
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.1");
284325
284325
  setEventLogger(eventLogger);
284326
284326
  process.on("beforeExit", async () => {
284327
284327
  await loggerProvider?.forceFlush();
@@ -284361,7 +284361,7 @@ async function initializeTelemetry() {
284361
284361
  const platform2 = getPlatform();
284362
284362
  const baseAttributes = {
284363
284363
  [ATTR_SERVICE_NAME4]: "claude-code",
284364
- [ATTR_SERVICE_VERSION4]: "1.8.0"
284364
+ [ATTR_SERVICE_VERSION4]: "1.8.1"
284365
284365
  };
284366
284366
  if (platform2 === "wsl") {
284367
284367
  const wslVersion = getWslVersion();
@@ -284406,7 +284406,7 @@ async function initializeTelemetry() {
284406
284406
  } catch {}
284407
284407
  };
284408
284408
  registerCleanup(shutdownTelemetry2);
284409
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.8.0");
284409
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.8.1");
284410
284410
  }
284411
284411
  const meterProvider = new MeterProvider4({
284412
284412
  resource,
@@ -284426,7 +284426,7 @@ async function initializeTelemetry() {
284426
284426
  });
284427
284427
  logs.setGlobalLoggerProvider(loggerProvider);
284428
284428
  setLoggerProvider(loggerProvider);
284429
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.0");
284429
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.8.1");
284430
284430
  setEventLogger(eventLogger);
284431
284431
  logForDebugging("[3P telemetry] Event logger set successfully");
284432
284432
  process.on("beforeExit", async () => {
@@ -284488,7 +284488,7 @@ Current timeout: ${timeoutMs}ms
284488
284488
  }
284489
284489
  };
284490
284490
  registerCleanup(shutdownTelemetry);
284491
- return meterProvider.getMeter("com.anthropic.claude_code", "1.8.0");
284491
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.8.1");
284492
284492
  }
284493
284493
  async function flushTelemetry() {
284494
284494
  const meterProvider = getMeterProvider();
@@ -285678,7 +285678,7 @@ function detectLinuxGlobPatternWarnings() {
285678
285678
  }
285679
285679
  async function getDoctorDiagnostic() {
285680
285680
  const installationType = await getCurrentInstallationType();
285681
- const version = typeof MACRO !== "undefined" ? "1.8.0" : "unknown";
285681
+ const version = typeof MACRO !== "undefined" ? "1.8.1" : "unknown";
285682
285682
  const installationPath = await getInstallationPath();
285683
285683
  const invokedBinary = getInvokedBinary();
285684
285684
  const multipleInstallations = await detectMultipleInstallations();
@@ -286619,8 +286619,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286619
286619
  const maxVersion = await getMaxVersion();
286620
286620
  if (maxVersion && gt(version, maxVersion)) {
286621
286621
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
286622
- if (gte("1.8.0", maxVersion)) {
286623
- logForDebugging(`Native installer: current version ${"1.8.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
286622
+ if (gte("1.8.1", maxVersion)) {
286623
+ logForDebugging(`Native installer: current version ${"1.8.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
286624
286624
  logEvent("tengu_native_update_skipped_max_version", {
286625
286625
  latency_ms: Date.now() - startTime,
286626
286626
  max_version: maxVersion,
@@ -286631,7 +286631,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286631
286631
  version = maxVersion;
286632
286632
  }
286633
286633
  }
286634
- if (!forceReinstall && version === "1.8.0" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286634
+ if (!forceReinstall && version === "1.8.1" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286635
286635
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
286636
286636
  logEvent("tengu_native_update_complete", {
286637
286637
  latency_ms: Date.now() - startTime,
@@ -323042,9 +323042,17 @@ var init_imagePipeline = __esm(() => {
323042
323042
  });
323043
323043
 
323044
323044
  // src/tools/GenerateImageTool/prompt.ts
323045
- var GENERATE_IMAGE_TOOL_NAME = "GenerateImage", DESCRIPTION13 = `Generate an image using a local ComfyUI backend and save it to ~/generatedimages/.
323045
+ var GENERATE_IMAGE_TOOL_NAME = "GenerateImage", DESCRIPTION13 = `Generate an image using a local ComfyUI backend.
323046
323046
 
323047
- Auto-detects ComfyUI at http://127.0.0.1:8188. Falls back to the backendUrl set in the project's .localclawd/image-pipeline/config.json when present.
323047
+ Backend resolution order:
323048
+ 1. http://127.0.0.1:8188 (localhost default)
323049
+ 2. backendUrl in .localclawd/image-pipeline/config.json (set via /image-pipeline config <url>)
323050
+
323051
+ Output directory:
323052
+ - .localclawd/image-pipeline/generated/ when the pipeline is scaffolded (run /image-pipeline setup)
323053
+ - ~/generatedimages/ otherwise
323054
+
323055
+ If ComfyUI is not reachable, ask the user to run /image-pipeline config <url> with their ComfyUI address.
323048
323056
 
323049
323057
  After generating, the image is returned visually in the tool result so you can review it.
323050
323058
 
@@ -323088,7 +323096,7 @@ var init_UI20 = __esm(() => {
323088
323096
  // src/tools/GenerateImageTool/GenerateImageTool.ts
323089
323097
  import { z as z62 } from "zod/v4";
323090
323098
  import { homedir as homedir23 } from "os";
323091
- import { mkdir as mkdir20, readFile as readFile27, writeFile as writeFile20 } from "fs/promises";
323099
+ import { access as access6, mkdir as mkdir20, readFile as readFile27, writeFile as writeFile20 } from "fs/promises";
323092
323100
  import { join as join80 } from "path";
323093
323101
  function slugify(text, maxLen = 40) {
323094
323102
  return text.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, maxLen);
@@ -323260,7 +323268,9 @@ var init_GenerateImageTool = __esm(() => {
323260
323268
  rawBytes = Buffer.from(await res.arrayBuffer());
323261
323269
  }
323262
323270
  } catch {}
323263
- const outputDir = join80(homedir23(), "generatedimages");
323271
+ const projectGenDir = join80(getCwd(), ".localclawd", "image-pipeline", "generated");
323272
+ const useProjectDir = await access6(projectGenDir).then(() => true).catch(() => false);
323273
+ const outputDir = useProjectDir ? projectGenDir : join80(homedir23(), "generatedimages");
323264
323274
  await mkdir20(outputDir, { recursive: true });
323265
323275
  const outName = `${timestamp()}_${slugify(input.prompt)}.png`;
323266
323276
  const savedPath = join80(outputDir, outName);
@@ -331760,7 +331770,7 @@ function getAnthropicEnvMetadata() {
331760
331770
  function getBuildAgeMinutes() {
331761
331771
  if (false)
331762
331772
  ;
331763
- const buildTime = new Date("2026-05-07T15:13:54.479Z").getTime();
331773
+ const buildTime = new Date("2026-05-07T15:19:47.253Z").getTime();
331764
331774
  if (isNaN(buildTime))
331765
331775
  return;
331766
331776
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360590,7 +360600,7 @@ function Feedback({
360590
360600
  platform: env3.platform,
360591
360601
  gitRepo: envInfo.isGit,
360592
360602
  terminal: env3.terminal,
360593
- version: "1.8.0",
360603
+ version: "1.8.1",
360594
360604
  transcript: normalizeMessagesForAPI(messages),
360595
360605
  errors: sanitizedErrors,
360596
360606
  lastApiRequest: getLastAPIRequest(),
@@ -360782,7 +360792,7 @@ function Feedback({
360782
360792
  ", ",
360783
360793
  env3.terminal,
360784
360794
  ", v",
360785
- "1.8.0"
360795
+ "1.8.1"
360786
360796
  ]
360787
360797
  }, undefined, true, undefined, this)
360788
360798
  ]
@@ -360888,7 +360898,7 @@ ${sanitizedDescription}
360888
360898
  ` + `**Environment Info**
360889
360899
  ` + `- Platform: ${env3.platform}
360890
360900
  ` + `- Terminal: ${env3.terminal}
360891
- ` + `- Version: ${"1.8.0"}
360901
+ ` + `- Version: ${"1.8.1"}
360892
360902
  ` + `- Feedback ID: ${feedbackId}
360893
360903
  ` + `
360894
360904
  **Errors**
@@ -363516,7 +363526,7 @@ function buildPrimarySection() {
363516
363526
  }, undefined, false, undefined, this);
363517
363527
  return [{
363518
363528
  label: "Version",
363519
- value: "1.8.0"
363529
+ value: "1.8.1"
363520
363530
  }, {
363521
363531
  label: "Session name",
363522
363532
  value: nameValue
@@ -368197,7 +368207,7 @@ function Config({
368197
368207
  }
368198
368208
  }, undefined, false, undefined, this)
368199
368209
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
368200
- currentVersion: "1.8.0",
368210
+ currentVersion: "1.8.1",
368201
368211
  onChoice: (choice) => {
368202
368212
  setShowSubmenu(null);
368203
368213
  setTabsHidden(false);
@@ -368209,7 +368219,7 @@ function Config({
368209
368219
  autoUpdatesChannel: "stable"
368210
368220
  };
368211
368221
  if (choice === "stay") {
368212
- newSettings.minimumVersion = "1.8.0";
368222
+ newSettings.minimumVersion = "1.8.1";
368213
368223
  }
368214
368224
  updateSettingsForSource("userSettings", newSettings);
368215
368225
  setSettingsData((prev_27) => ({
@@ -374787,15 +374797,28 @@ var React59, jsx_dev_runtime197, call20 = async (onDone, _context, args) => {
374787
374797
  const prompts = await listPrompts(projectRoot);
374788
374798
  const workflows = await listWorkflows(projectRoot);
374789
374799
  const scaffolded = config3 !== null;
374790
- const lines2 = [
374791
- active ? `● ComfyUI active at ${backendUrl}` : `○ ComfyUI not found at ${backendUrl}`,
374792
- scaffolded ? ` Scaffold: .localclawd/image-pipeline/ (${prompts.length} prompts, ${workflows.length} workflows)` : " Not scaffolded — run /image-pipeline setup",
374793
- "",
374794
- " /image-pipeline setup scaffold project dirs",
374795
- " /image-pipeline generate <prompt> generate and save image",
374796
- " /image-pipeline config <url> set ComfyUI URL",
374797
- " /image-pipeline list list templates"
374798
- ];
374800
+ const lines2 = [];
374801
+ if (active) {
374802
+ lines2.push(`● ComfyUI active at ${backendUrl}`);
374803
+ } else {
374804
+ lines2.push(`○ ComfyUI not found at ${backendUrl}`);
374805
+ lines2.push("");
374806
+ lines2.push(" To connect:");
374807
+ lines2.push(" /image-pipeline config http://<host>:8188");
374808
+ lines2.push(" Then scaffold the project:");
374809
+ lines2.push(" /image-pipeline setup");
374810
+ }
374811
+ if (scaffolded) {
374812
+ lines2.push(` Scaffold: .localclawd/image-pipeline/ (${prompts.length} prompts, ${workflows.length} workflows)`);
374813
+ lines2.push(` Output dir: .localclawd/image-pipeline/generated/`);
374814
+ } else if (active) {
374815
+ lines2.push(" Not scaffolded — run /image-pipeline setup");
374816
+ }
374817
+ lines2.push("");
374818
+ lines2.push(" /image-pipeline setup scaffold project dirs");
374819
+ lines2.push(" /image-pipeline generate <prompt> generate and save image");
374820
+ lines2.push(" /image-pipeline config <url> set ComfyUI URL");
374821
+ lines2.push(" /image-pipeline list list templates");
374799
374822
  return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(PipelineCard, {
374800
374823
  title: "◆ Image Pipeline",
374801
374824
  lines: lines2,
@@ -374835,11 +374858,12 @@ var React59, jsx_dev_runtime197, call20 = async (onDone, _context, args) => {
374835
374858
  if (!newUrl || !newUrl.startsWith("http")) {
374836
374859
  return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(PipelineCard, {
374837
374860
  title: "◆ Image Pipeline — Config",
374838
- lines: ["Usage: /image-pipeline config http://<host>:8188"],
374861
+ lines: [" Usage: /image-pipeline config http://<host>:8188"],
374839
374862
  color: "yellow",
374840
374863
  onReady: () => onDone(undefined)
374841
374864
  }, undefined, false, undefined, this);
374842
374865
  }
374866
+ await scaffoldProject(projectRoot);
374843
374867
  const existing = await loadConfig(projectRoot) ?? {
374844
374868
  backendUrl: DEFAULT_COMFYUI_URL,
374845
374869
  defaultWidth: 512,
@@ -386569,7 +386593,7 @@ function Help(t0) {
386569
386593
  let t6;
386570
386594
  if ($2[31] !== tabs) {
386571
386595
  t6 = /* @__PURE__ */ jsx_dev_runtime238.jsxDEV(Tabs, {
386572
- title: `localclawd v${"1.8.0"}`,
386596
+ title: `localclawd v${"1.8.1"}`,
386573
386597
  color: "professionalBlue",
386574
386598
  defaultTab: "general",
386575
386599
  children: tabs
@@ -403831,7 +403855,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
403831
403855
  }
403832
403856
  return [];
403833
403857
  }
403834
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.0") {
403858
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.1") {
403835
403859
  if (process.env.USER_TYPE === "ant") {
403836
403860
  const changelog = MACRO.VERSION_CHANGELOG;
403837
403861
  if (changelog) {
@@ -403858,7 +403882,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.0") {
403858
403882
  releaseNotes
403859
403883
  };
403860
403884
  }
403861
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.8.0") {
403885
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.8.1") {
403862
403886
  if (process.env.USER_TYPE === "ant") {
403863
403887
  const changelog = MACRO.VERSION_CHANGELOG;
403864
403888
  if (changelog) {
@@ -404015,7 +404039,7 @@ function getRecentActivitySync() {
404015
404039
  return cachedActivity;
404016
404040
  }
404017
404041
  function getLogoDisplayData() {
404018
- const version = process.env.DEMO_VERSION ?? "1.8.0";
404042
+ const version = process.env.DEMO_VERSION ?? "1.8.1";
404019
404043
  const serverUrl = getDirectConnectServerUrl();
404020
404044
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
404021
404045
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -405115,7 +405139,7 @@ function Logo() {
405115
405139
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
405116
405140
  t2 = () => {
405117
405141
  const currentConfig = getGlobalConfig();
405118
- if (currentConfig.lastReleaseNotesSeen === "1.8.0") {
405142
+ if (currentConfig.lastReleaseNotesSeen === "1.8.1") {
405119
405143
  return;
405120
405144
  }
405121
405145
  saveGlobalConfig(_temp326);
@@ -405774,12 +405798,12 @@ function Logo() {
405774
405798
  return t41;
405775
405799
  }
405776
405800
  function _temp326(current) {
405777
- if (current.lastReleaseNotesSeen === "1.8.0") {
405801
+ if (current.lastReleaseNotesSeen === "1.8.1") {
405778
405802
  return current;
405779
405803
  }
405780
405804
  return {
405781
405805
  ...current,
405782
- lastReleaseNotesSeen: "1.8.0"
405806
+ lastReleaseNotesSeen: "1.8.1"
405783
405807
  };
405784
405808
  }
405785
405809
  function _temp241(s_0) {
@@ -436258,7 +436282,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
436258
436282
  smapsRollup,
436259
436283
  platform: process.platform,
436260
436284
  nodeVersion: process.version,
436261
- ccVersion: "1.8.0"
436285
+ ccVersion: "1.8.1"
436262
436286
  };
436263
436287
  }
436264
436288
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -436843,7 +436867,7 @@ var init_bridge_kick = __esm(() => {
436843
436867
  var call87 = async () => {
436844
436868
  return {
436845
436869
  type: "text",
436846
- value: `${"1.8.0"} (built ${"2026-05-07T15:13:54.479Z"})`
436870
+ value: `${"1.8.1"} (built ${"2026-05-07T15:19:47.253Z"})`
436847
436871
  };
436848
436872
  }, version, version_default;
436849
436873
  var init_version = __esm(() => {
@@ -444787,7 +444811,7 @@ function generateHtmlReport(data, insights) {
444787
444811
  </html>`;
444788
444812
  }
444789
444813
  function buildExportData(data, insights, facets, remoteStats) {
444790
- const version2 = typeof MACRO !== "undefined" ? "1.8.0" : "unknown";
444814
+ const version2 = typeof MACRO !== "undefined" ? "1.8.1" : "unknown";
444791
444815
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
444792
444816
  const facets_summary = {
444793
444817
  total: facets.size,
@@ -448988,7 +449012,7 @@ var init_sessionStorage = __esm(() => {
448988
449012
  init_settings2();
448989
449013
  init_slowOperations();
448990
449014
  init_uuid();
448991
- VERSION6 = typeof MACRO !== "undefined" ? "1.8.0" : "unknown";
449015
+ VERSION6 = typeof MACRO !== "undefined" ? "1.8.1" : "unknown";
448992
449016
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
448993
449017
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
448994
449018
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -450189,7 +450213,7 @@ var init_filesystem = __esm(() => {
450189
450213
  });
450190
450214
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
450191
450215
  const nonce = randomBytes20(16).toString("hex");
450192
- return join151(getClaudeTempDir(), "bundled-skills", "1.8.0", nonce);
450216
+ return join151(getClaudeTempDir(), "bundled-skills", "1.8.1", nonce);
450193
450217
  });
450194
450218
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
450195
450219
  });
@@ -459426,7 +459450,7 @@ function buildSystemInitMessage(inputs) {
459426
459450
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
459427
459451
  apiKeySource: getAnthropicApiKeyWithSource().source,
459428
459452
  betas: getSdkBetas(),
459429
- claude_code_version: "1.8.0",
459453
+ claude_code_version: "1.8.1",
459430
459454
  output_style: outputStyle2,
459431
459455
  agents: inputs.agents.map((agent) => agent.agentType),
459432
459456
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -473583,7 +473607,7 @@ var init_useVoiceEnabled = __esm(() => {
473583
473607
  function getSemverPart(version2) {
473584
473608
  return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
473585
473609
  }
473586
- function useUpdateNotification(updatedVersion, initialVersion = "1.8.0") {
473610
+ function useUpdateNotification(updatedVersion, initialVersion = "1.8.1") {
473587
473611
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
473588
473612
  if (!updatedVersion) {
473589
473613
  return null;
@@ -473623,7 +473647,7 @@ function AutoUpdater({
473623
473647
  return;
473624
473648
  }
473625
473649
  if (false) {}
473626
- const currentVersion = "1.8.0";
473650
+ const currentVersion = "1.8.1";
473627
473651
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
473628
473652
  let latestVersion = await getLatestVersion(channel);
473629
473653
  const isDisabled = isAutoUpdaterDisabled();
@@ -473834,12 +473858,12 @@ function NativeAutoUpdater({
473834
473858
  logEvent("tengu_native_auto_updater_start", {});
473835
473859
  try {
473836
473860
  const maxVersion = await getMaxVersion();
473837
- if (maxVersion && gt("1.8.0", maxVersion)) {
473861
+ if (maxVersion && gt("1.8.1", maxVersion)) {
473838
473862
  const msg = await getMaxVersionMessage();
473839
473863
  setMaxVersionIssue(msg ?? "affects your version");
473840
473864
  }
473841
473865
  const result = await installLatest(channel);
473842
- const currentVersion = "1.8.0";
473866
+ const currentVersion = "1.8.1";
473843
473867
  const latencyMs = Date.now() - startTime;
473844
473868
  if (result.lockFailed) {
473845
473869
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -473974,17 +473998,17 @@ function PackageManagerAutoUpdater(t0) {
473974
473998
  const maxVersion = await getMaxVersion();
473975
473999
  if (maxVersion && latest && gt(latest, maxVersion)) {
473976
474000
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
473977
- if (gte("1.8.0", maxVersion)) {
473978
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.8.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
474001
+ if (gte("1.8.1", maxVersion)) {
474002
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.8.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
473979
474003
  setUpdateAvailable(false);
473980
474004
  return;
473981
474005
  }
473982
474006
  latest = maxVersion;
473983
474007
  }
473984
- const hasUpdate = latest && !gte("1.8.0", latest) && !shouldSkipVersion(latest);
474008
+ const hasUpdate = latest && !gte("1.8.1", latest) && !shouldSkipVersion(latest);
473985
474009
  setUpdateAvailable(!!hasUpdate);
473986
474010
  if (hasUpdate) {
473987
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.8.0"} -> ${latest}`);
474011
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.8.1"} -> ${latest}`);
473988
474012
  }
473989
474013
  };
473990
474014
  $2[0] = t1;
@@ -474018,7 +474042,7 @@ function PackageManagerAutoUpdater(t0) {
474018
474042
  wrap: "truncate",
474019
474043
  children: [
474020
474044
  "currentVersion: ",
474021
- "1.8.0"
474045
+ "1.8.1"
474022
474046
  ]
474023
474047
  }, undefined, true, undefined, this);
474024
474048
  $2[3] = verbose;
@@ -481578,7 +481602,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
481578
481602
  project_dir: getOriginalCwd(),
481579
481603
  added_dirs: addedDirs
481580
481604
  },
481581
- version: "1.8.0",
481605
+ version: "1.8.1",
481582
481606
  output_style: {
481583
481607
  name: outputStyleName
481584
481608
  },
@@ -493150,7 +493174,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
493150
493174
  } catch {}
493151
493175
  const data = {
493152
493176
  trigger,
493153
- version: "1.8.0",
493177
+ version: "1.8.1",
493154
493178
  platform: process.platform,
493155
493179
  transcript,
493156
493180
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -510059,7 +510083,7 @@ function appendToLog(path17, message) {
510059
510083
  cwd: getFsImplementation().cwd(),
510060
510084
  userType: process.env.USER_TYPE,
510061
510085
  sessionId: getSessionId(),
510062
- version: "1.8.0"
510086
+ version: "1.8.1"
510063
510087
  };
510064
510088
  getLogWriter(path17).write(messageWithTimestamp);
510065
510089
  }
@@ -514083,8 +514107,8 @@ async function getEnvLessBridgeConfig() {
514083
514107
  }
514084
514108
  async function checkEnvLessBridgeMinVersion() {
514085
514109
  const cfg = await getEnvLessBridgeConfig();
514086
- if (cfg.min_version && lt("1.8.0", cfg.min_version)) {
514087
- return `Your version of localclawd (${"1.8.0"}) is too old for Remote Control.
514110
+ if (cfg.min_version && lt("1.8.1", cfg.min_version)) {
514111
+ return `Your version of localclawd (${"1.8.1"}) is too old for Remote Control.
514088
514112
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
514089
514113
  }
514090
514114
  return null;
@@ -514556,7 +514580,7 @@ async function initBridgeCore(params) {
514556
514580
  const rawApi = createBridgeApiClient({
514557
514581
  baseUrl,
514558
514582
  getAccessToken,
514559
- runnerVersion: "1.8.0",
514583
+ runnerVersion: "1.8.1",
514560
514584
  onDebug: logForDebugging,
514561
514585
  onAuth401,
514562
514586
  getTrustedDeviceToken
@@ -520275,7 +520299,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
520275
520299
  setCwd(cwd3);
520276
520300
  const server = new Server({
520277
520301
  name: "claude/tengu",
520278
- version: "1.8.0"
520302
+ version: "1.8.1"
520279
520303
  }, {
520280
520304
  capabilities: {
520281
520305
  tools: {}
@@ -521356,7 +521380,7 @@ function WelcomeLogo() {
521356
521380
  dimColor: true,
521357
521381
  children: [
521358
521382
  "v",
521359
- "1.8.0"
521383
+ "1.8.1"
521360
521384
  ]
521361
521385
  }, undefined, true, undefined, this)
521362
521386
  ]
@@ -521547,7 +521571,7 @@ __export(exports_update, {
521547
521571
  });
521548
521572
  async function update() {
521549
521573
  logEvent("tengu_update_check", {});
521550
- writeToStdout(`Current version: ${"1.8.0"}
521574
+ writeToStdout(`Current version: ${"1.8.1"}
521551
521575
  `);
521552
521576
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
521553
521577
  writeToStdout(`Checking for updates to ${channel} version...
@@ -521622,8 +521646,8 @@ async function update() {
521622
521646
  writeToStdout(`localclawd is managed by Homebrew.
521623
521647
  `);
521624
521648
  const latest = await getLatestVersion(channel);
521625
- if (latest && !gte("1.8.0", latest)) {
521626
- writeToStdout(`Update available: ${"1.8.0"} → ${latest}
521649
+ if (latest && !gte("1.8.1", latest)) {
521650
+ writeToStdout(`Update available: ${"1.8.1"} → ${latest}
521627
521651
  `);
521628
521652
  writeToStdout(`
521629
521653
  `);
@@ -521639,8 +521663,8 @@ async function update() {
521639
521663
  writeToStdout(`localclawd is managed by winget.
521640
521664
  `);
521641
521665
  const latest = await getLatestVersion(channel);
521642
- if (latest && !gte("1.8.0", latest)) {
521643
- writeToStdout(`Update available: ${"1.8.0"} → ${latest}
521666
+ if (latest && !gte("1.8.1", latest)) {
521667
+ writeToStdout(`Update available: ${"1.8.1"} → ${latest}
521644
521668
  `);
521645
521669
  writeToStdout(`
521646
521670
  `);
@@ -521654,8 +521678,8 @@ async function update() {
521654
521678
  writeToStdout(`localclawd is managed by apk.
521655
521679
  `);
521656
521680
  const latest = await getLatestVersion(channel);
521657
- if (latest && !gte("1.8.0", latest)) {
521658
- writeToStdout(`Update available: ${"1.8.0"} → ${latest}
521681
+ if (latest && !gte("1.8.1", latest)) {
521682
+ writeToStdout(`Update available: ${"1.8.1"} → ${latest}
521659
521683
  `);
521660
521684
  writeToStdout(`
521661
521685
  `);
@@ -521720,11 +521744,11 @@ async function update() {
521720
521744
  `);
521721
521745
  await gracefulShutdown(1);
521722
521746
  }
521723
- if (result.latestVersion === "1.8.0") {
521724
- writeToStdout(source_default.green(`localclawd is up to date (${"1.8.0"})`) + `
521747
+ if (result.latestVersion === "1.8.1") {
521748
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.8.1"})`) + `
521725
521749
  `);
521726
521750
  } else {
521727
- writeToStdout(source_default.green(`Successfully updated from ${"1.8.0"} to version ${result.latestVersion}`) + `
521751
+ writeToStdout(source_default.green(`Successfully updated from ${"1.8.1"} to version ${result.latestVersion}`) + `
521728
521752
  `);
521729
521753
  await regenerateCompletionCache();
521730
521754
  }
@@ -521784,12 +521808,12 @@ async function update() {
521784
521808
  `);
521785
521809
  await gracefulShutdown(1);
521786
521810
  }
521787
- if (latestVersion === "1.8.0") {
521788
- writeToStdout(source_default.green(`localclawd is up to date (${"1.8.0"})`) + `
521811
+ if (latestVersion === "1.8.1") {
521812
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.8.1"})`) + `
521789
521813
  `);
521790
521814
  await gracefulShutdown(0);
521791
521815
  }
521792
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.8.0"})
521816
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.8.1"})
521793
521817
  `);
521794
521818
  writeToStdout(`Installing update...
521795
521819
  `);
@@ -521834,7 +521858,7 @@ async function update() {
521834
521858
  logForDebugging(`update: Installation status: ${status2}`);
521835
521859
  switch (status2) {
521836
521860
  case "success":
521837
- writeToStdout(source_default.green(`Successfully updated from ${"1.8.0"} to version ${latestVersion}`) + `
521861
+ writeToStdout(source_default.green(`Successfully updated from ${"1.8.1"} to version ${latestVersion}`) + `
521838
521862
  `);
521839
521863
  await regenerateCompletionCache();
521840
521864
  break;
@@ -523076,7 +523100,7 @@ Run with --debug for more details.
523076
523100
  }
523077
523101
  }
523078
523102
  logForDiagnosticsNoPII("info", "started", {
523079
- version: "1.8.0",
523103
+ version: "1.8.1",
523080
523104
  is_native_binary: isInBundledMode()
523081
523105
  });
523082
523106
  registerCleanup(async () => {
@@ -523860,7 +523884,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
523860
523884
  pendingHookMessages
523861
523885
  }, renderAndRun);
523862
523886
  }
523863
- }).version("1.8.0 (localclawd)", "-v, --version", "Output the version number");
523887
+ }).version("1.8.1 (localclawd)", "-v, --version", "Output the version number");
523864
523888
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
523865
523889
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
523866
523890
  if (canUserConfigureAdvisor()) {
@@ -524374,7 +524398,7 @@ if (false) {}
524374
524398
  async function main2() {
524375
524399
  const args = process.argv.slice(2);
524376
524400
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
524377
- console.log(`${"1.8.0"} (localclawd)`);
524401
+ console.log(`${"1.8.1"} (localclawd)`);
524378
524402
  return;
524379
524403
  }
524380
524404
  const {
@@ -524457,4 +524481,4 @@ localclawd crashed: ${msg}
524457
524481
  process.exit(1);
524458
524482
  });
524459
524483
 
524460
- //# debugId=83EC49A6660FF49E64756E2164756E21
524484
+ //# debugId=0B4A3C92707D29B164756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.8.0",
3
+ "version": "1.8.1",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",