localclawd 1.7.6 → 1.7.8

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 +108 -150
  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.7.6"}`;
87611
+ return `claude-code/${"1.7.8"}`;
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.7.6"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87633
+ return `claude-cli/${"1.7.8"} (${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.7.6"}${suffix}`;
87647
+ return `claude-code/${"1.7.8"}${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.7.6"}.${fingerprint}`;
130843
+ const version = `${"1.7.8"}.${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.7.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147032
+ const match = "1.7.8".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.7.6",
147072
+ version: "1.7.8",
147073
147073
  versionBase: getVersionBase(),
147074
- buildTime: "2026-05-07T14:50:22.043Z",
147074
+ buildTime: "2026-05-07T15:04:15.342Z",
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.7.6";
179650
+ attributes["app.version"] = "1.7.8";
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.7.6";
242451
+ return "1.7.8";
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.7.6",
247725
+ version: "1.7.8",
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.7.6",
248067
+ version: "1.7.8",
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.7.6");
262469
+ return computeFingerprint(firstMessageText, "1.7.8");
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.7.6");
262511
+ const fingerprint = computeFingerprint(messageText, "1.7.8");
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.7.6",
283259
+ appVersion: "1.7.8",
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.7.6");
284324
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.7.8");
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.7.6"
284364
+ [ATTR_SERVICE_VERSION4]: "1.7.8"
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.7.6");
284409
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.7.8");
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.7.6");
284429
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.7.8");
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.7.6");
284491
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.7.8");
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.7.6" : "unknown";
285681
+ const version = typeof MACRO !== "undefined" ? "1.7.8" : "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.7.6", maxVersion)) {
286623
- logForDebugging(`Native installer: current version ${"1.7.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
286622
+ if (gte("1.7.8", maxVersion)) {
286623
+ logForDebugging(`Native installer: current version ${"1.7.8"} 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.7.6" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286634
+ if (!forceReinstall && version === "1.7.8" && 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,
@@ -331760,7 +331760,7 @@ function getAnthropicEnvMetadata() {
331760
331760
  function getBuildAgeMinutes() {
331761
331761
  if (false)
331762
331762
  ;
331763
- const buildTime = new Date("2026-05-07T14:50:22.043Z").getTime();
331763
+ const buildTime = new Date("2026-05-07T15:04:15.342Z").getTime();
331764
331764
  if (isNaN(buildTime))
331765
331765
  return;
331766
331766
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360590,7 +360590,7 @@ function Feedback({
360590
360590
  platform: env3.platform,
360591
360591
  gitRepo: envInfo.isGit,
360592
360592
  terminal: env3.terminal,
360593
- version: "1.7.6",
360593
+ version: "1.7.8",
360594
360594
  transcript: normalizeMessagesForAPI(messages),
360595
360595
  errors: sanitizedErrors,
360596
360596
  lastApiRequest: getLastAPIRequest(),
@@ -360782,7 +360782,7 @@ function Feedback({
360782
360782
  ", ",
360783
360783
  env3.terminal,
360784
360784
  ", v",
360785
- "1.7.6"
360785
+ "1.7.8"
360786
360786
  ]
360787
360787
  }, undefined, true, undefined, this)
360788
360788
  ]
@@ -360888,7 +360888,7 @@ ${sanitizedDescription}
360888
360888
  ` + `**Environment Info**
360889
360889
  ` + `- Platform: ${env3.platform}
360890
360890
  ` + `- Terminal: ${env3.terminal}
360891
- ` + `- Version: ${"1.7.6"}
360891
+ ` + `- Version: ${"1.7.8"}
360892
360892
  ` + `- Feedback ID: ${feedbackId}
360893
360893
  ` + `
360894
360894
  **Errors**
@@ -363516,7 +363516,7 @@ function buildPrimarySection() {
363516
363516
  }, undefined, false, undefined, this);
363517
363517
  return [{
363518
363518
  label: "Version",
363519
- value: "1.7.6"
363519
+ value: "1.7.8"
363520
363520
  }, {
363521
363521
  label: "Session name",
363522
363522
  value: nameValue
@@ -368197,7 +368197,7 @@ function Config({
368197
368197
  }
368198
368198
  }, undefined, false, undefined, this)
368199
368199
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
368200
- currentVersion: "1.7.6",
368200
+ currentVersion: "1.7.8",
368201
368201
  onChoice: (choice) => {
368202
368202
  setShowSubmenu(null);
368203
368203
  setTabsHidden(false);
@@ -368209,7 +368209,7 @@ function Config({
368209
368209
  autoUpdatesChannel: "stable"
368210
368210
  };
368211
368211
  if (choice === "stay") {
368212
- newSettings.minimumVersion = "1.7.6";
368212
+ newSettings.minimumVersion = "1.7.8";
368213
368213
  }
368214
368214
  updateSettingsForSource("userSettings", newSettings);
368215
368215
  setSettingsData((prev_27) => ({
@@ -374934,12 +374934,34 @@ async function updateConfig(onDone, projectRoot, newUrl) {
374934
374934
  onReady: () => onDone(undefined)
374935
374935
  }, undefined, false, undefined, this);
374936
374936
  }
374937
- function SetupReady({ onReady }) {
374938
- React59.useEffect(() => {
374939
- const id = setTimeout(onReady, 0);
374940
- return () => clearTimeout(id);
374941
- }, [onReady]);
374942
- return null;
374937
+ async function runSetup(onDone, projectRoot) {
374938
+ const { created, alreadyExisted } = await scaffoldProject(projectRoot);
374939
+ const config2 = await loadConfig(projectRoot);
374940
+ const configuredUrl = config2?.backendUrl ?? DEFAULT_COMFYUI_URL;
374941
+ const localActive = await detectComfyUI(DEFAULT_COMFYUI_URL);
374942
+ let activeUrl = null;
374943
+ if (localActive) {
374944
+ activeUrl = DEFAULT_COMFYUI_URL;
374945
+ } else if (configuredUrl !== DEFAULT_COMFYUI_URL && await detectComfyUI(configuredUrl)) {
374946
+ activeUrl = configuredUrl;
374947
+ }
374948
+ const comfyLine = activeUrl ? `● ComfyUI active at ${activeUrl}` : `○ ComfyUI not detected — run: /image-pipeline config <url>`;
374949
+ const lines = [
374950
+ comfyLine,
374951
+ "",
374952
+ alreadyExisted ? " Pipeline already scaffolded." : ` Created ${created.length} files under .localclawd/image-pipeline/`
374953
+ ];
374954
+ if (!alreadyExisted) {
374955
+ for (const f of created)
374956
+ lines.push(` + ${f}`);
374957
+ }
374958
+ lines.push("", " Commands:", " /image-pipeline — status", " /image-pipeline generate <prompt> — submit to ComfyUI", " /image-pipeline config <url> — set backend URL", " /image-pipeline list — list templates", " /image <prompt> — quick generate + save to ~/generatedimages/");
374959
+ return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(Banner, {
374960
+ title: "◆ Image Pipeline — Setup",
374961
+ lines,
374962
+ color: activeUrl ? "green" : "yellow",
374963
+ onReady: () => onDone(undefined)
374964
+ }, undefined, false, undefined, this);
374943
374965
  }
374944
374966
  var React59, jsx_dev_runtime197, call20 = async (onDone, _context, args) => {
374945
374967
  const { getOriginalCwd: getOriginalCwd2 } = await Promise.resolve().then(() => (init_state(), exports_state));
@@ -374960,71 +374982,7 @@ var React59, jsx_dev_runtime197, call20 = async (onDone, _context, args) => {
374960
374982
  const promptText = restText || rawArgs;
374961
374983
  return runGenerate(onDone, projectRoot, promptText);
374962
374984
  }
374963
- const brief = subcmd === "setup" ? restText : rawArgs;
374964
- const { created, alreadyExisted } = await scaffoldProject(projectRoot);
374965
- let config2 = await loadConfig(projectRoot);
374966
- const configuredUrl = config2?.backendUrl ?? DEFAULT_COMFYUI_URL;
374967
- const localActive = await detectComfyUI(DEFAULT_COMFYUI_URL);
374968
- let activeUrl = null;
374969
- if (localActive) {
374970
- activeUrl = DEFAULT_COMFYUI_URL;
374971
- if (config2 && config2.backendUrl !== DEFAULT_COMFYUI_URL) {
374972
- config2.backendUrl = DEFAULT_COMFYUI_URL;
374973
- await saveConfig2(projectRoot, config2);
374974
- }
374975
- } else if (configuredUrl !== DEFAULT_COMFYUI_URL) {
374976
- if (await detectComfyUI(configuredUrl))
374977
- activeUrl = configuredUrl;
374978
- }
374979
- const prompts = await listPrompts(projectRoot);
374980
- const workflows = await listWorkflows(projectRoot);
374981
- const comfyStatus = activeUrl ? `ComfyUI is ACTIVE at ${activeUrl}` : `ComfyUI not detected at ${configuredUrl}. User can run: /image-pipeline config <url> to point to a remote backend.`;
374982
- const systemContext = `[IMAGE PIPELINE — Project Context Loaded]
374983
-
374984
- ComfyUI Status: ${comfyStatus}
374985
- Backend URL: ${activeUrl ?? configuredUrl}
374986
- Scaffold: ${alreadyExisted ? "already existed" : `created ${created.length} files under .localclawd/image-pipeline/`}
374987
- Templates available:
374988
- Prompts: ${prompts.length} (${prompts.map((p) => `prompts/${p}`).join(", ") || "none"})
374989
- Workflows: ${workflows.length} (${workflows.map((w2) => `workflows/${w2}`).join(", ") || "none"})
374990
- Helper scripts:
374991
- .localclawd/image-pipeline/scripts/generate.sh — bash (Linux/macOS/WSL)
374992
- .localclawd/image-pipeline/scripts/generate.ps1 — PowerShell (Windows)
374993
- Config file: .localclawd/image-pipeline/config.json (edit backendUrl to point to remote ComfyUI)
374994
-
374995
- Task brief from user: ${brief || "Set up the image generation pipeline for this project."}
374996
-
374997
- Continue now. If ComfyUI is active, demonstrate a test generation. If not, guide the user to connect it. Customize the prompt and workflow templates to fit this project's needs.`;
374998
- const scaffoldLines = alreadyExisted ? [`Pipeline already scaffolded at .localclawd/image-pipeline/`] : created.map((f) => ` + ${f}`);
374999
- const handleReady = () => {
375000
- onDone(undefined, {
375001
- display: "system",
375002
- shouldQuery: true,
375003
- metaMessages: [systemContext]
375004
- });
375005
- };
375006
- return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedBox_default, {
375007
- flexDirection: "column",
375008
- marginTop: 1,
375009
- children: [
375010
- /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
375011
- bold: true,
375012
- color: "cyan",
375013
- children: "◆ Image Pipeline"
375014
- }, undefined, false, undefined, this),
375015
- /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
375016
- color: activeUrl ? "green" : "yellow",
375017
- children: activeUrl ? ` ● ComfyUI active at ${activeUrl}` : ` ○ ComfyUI not detected (${configuredUrl})`
375018
- }, undefined, false, undefined, this),
375019
- scaffoldLines.map((line, i2) => /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
375020
- dimColor: true,
375021
- children: line
375022
- }, i2, false, undefined, this)),
375023
- /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(SetupReady, {
375024
- onReady: handleReady
375025
- }, undefined, false, undefined, this)
375026
- ]
375027
- }, undefined, true, undefined, this);
374985
+ return runSetup(onDone, projectRoot);
375028
374986
  };
375029
374987
  var init_image_pipeline = __esm(() => {
375030
374988
  init_ink2();
@@ -386600,7 +386558,7 @@ function Help(t0) {
386600
386558
  let t6;
386601
386559
  if ($2[31] !== tabs) {
386602
386560
  t6 = /* @__PURE__ */ jsx_dev_runtime238.jsxDEV(Tabs, {
386603
- title: `localclawd v${"1.7.6"}`,
386561
+ title: `localclawd v${"1.7.8"}`,
386604
386562
  color: "professionalBlue",
386605
386563
  defaultTab: "general",
386606
386564
  children: tabs
@@ -403862,7 +403820,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
403862
403820
  }
403863
403821
  return [];
403864
403822
  }
403865
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.7.6") {
403823
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.7.8") {
403866
403824
  if (process.env.USER_TYPE === "ant") {
403867
403825
  const changelog = MACRO.VERSION_CHANGELOG;
403868
403826
  if (changelog) {
@@ -403889,7 +403847,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.7.6") {
403889
403847
  releaseNotes
403890
403848
  };
403891
403849
  }
403892
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.7.6") {
403850
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.7.8") {
403893
403851
  if (process.env.USER_TYPE === "ant") {
403894
403852
  const changelog = MACRO.VERSION_CHANGELOG;
403895
403853
  if (changelog) {
@@ -404046,7 +404004,7 @@ function getRecentActivitySync() {
404046
404004
  return cachedActivity;
404047
404005
  }
404048
404006
  function getLogoDisplayData() {
404049
- const version = process.env.DEMO_VERSION ?? "1.7.6";
404007
+ const version = process.env.DEMO_VERSION ?? "1.7.8";
404050
404008
  const serverUrl = getDirectConnectServerUrl();
404051
404009
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
404052
404010
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -405146,7 +405104,7 @@ function Logo() {
405146
405104
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
405147
405105
  t2 = () => {
405148
405106
  const currentConfig = getGlobalConfig();
405149
- if (currentConfig.lastReleaseNotesSeen === "1.7.6") {
405107
+ if (currentConfig.lastReleaseNotesSeen === "1.7.8") {
405150
405108
  return;
405151
405109
  }
405152
405110
  saveGlobalConfig(_temp326);
@@ -405805,12 +405763,12 @@ function Logo() {
405805
405763
  return t41;
405806
405764
  }
405807
405765
  function _temp326(current) {
405808
- if (current.lastReleaseNotesSeen === "1.7.6") {
405766
+ if (current.lastReleaseNotesSeen === "1.7.8") {
405809
405767
  return current;
405810
405768
  }
405811
405769
  return {
405812
405770
  ...current,
405813
- lastReleaseNotesSeen: "1.7.6"
405771
+ lastReleaseNotesSeen: "1.7.8"
405814
405772
  };
405815
405773
  }
405816
405774
  function _temp241(s_0) {
@@ -436289,7 +436247,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
436289
436247
  smapsRollup,
436290
436248
  platform: process.platform,
436291
436249
  nodeVersion: process.version,
436292
- ccVersion: "1.7.6"
436250
+ ccVersion: "1.7.8"
436293
436251
  };
436294
436252
  }
436295
436253
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -436874,7 +436832,7 @@ var init_bridge_kick = __esm(() => {
436874
436832
  var call87 = async () => {
436875
436833
  return {
436876
436834
  type: "text",
436877
- value: `${"1.7.6"} (built ${"2026-05-07T14:50:22.043Z"})`
436835
+ value: `${"1.7.8"} (built ${"2026-05-07T15:04:15.342Z"})`
436878
436836
  };
436879
436837
  }, version, version_default;
436880
436838
  var init_version = __esm(() => {
@@ -444818,7 +444776,7 @@ function generateHtmlReport(data, insights) {
444818
444776
  </html>`;
444819
444777
  }
444820
444778
  function buildExportData(data, insights, facets, remoteStats) {
444821
- const version2 = typeof MACRO !== "undefined" ? "1.7.6" : "unknown";
444779
+ const version2 = typeof MACRO !== "undefined" ? "1.7.8" : "unknown";
444822
444780
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
444823
444781
  const facets_summary = {
444824
444782
  total: facets.size,
@@ -449019,7 +448977,7 @@ var init_sessionStorage = __esm(() => {
449019
448977
  init_settings2();
449020
448978
  init_slowOperations();
449021
448979
  init_uuid();
449022
- VERSION6 = typeof MACRO !== "undefined" ? "1.7.6" : "unknown";
448980
+ VERSION6 = typeof MACRO !== "undefined" ? "1.7.8" : "unknown";
449023
448981
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
449024
448982
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
449025
448983
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -450220,7 +450178,7 @@ var init_filesystem = __esm(() => {
450220
450178
  });
450221
450179
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
450222
450180
  const nonce = randomBytes20(16).toString("hex");
450223
- return join150(getClaudeTempDir(), "bundled-skills", "1.7.6", nonce);
450181
+ return join150(getClaudeTempDir(), "bundled-skills", "1.7.8", nonce);
450224
450182
  });
450225
450183
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
450226
450184
  });
@@ -459457,7 +459415,7 @@ function buildSystemInitMessage(inputs) {
459457
459415
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
459458
459416
  apiKeySource: getAnthropicApiKeyWithSource().source,
459459
459417
  betas: getSdkBetas(),
459460
- claude_code_version: "1.7.6",
459418
+ claude_code_version: "1.7.8",
459461
459419
  output_style: outputStyle2,
459462
459420
  agents: inputs.agents.map((agent) => agent.agentType),
459463
459421
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -473614,7 +473572,7 @@ var init_useVoiceEnabled = __esm(() => {
473614
473572
  function getSemverPart(version2) {
473615
473573
  return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
473616
473574
  }
473617
- function useUpdateNotification(updatedVersion, initialVersion = "1.7.6") {
473575
+ function useUpdateNotification(updatedVersion, initialVersion = "1.7.8") {
473618
473576
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
473619
473577
  if (!updatedVersion) {
473620
473578
  return null;
@@ -473654,7 +473612,7 @@ function AutoUpdater({
473654
473612
  return;
473655
473613
  }
473656
473614
  if (false) {}
473657
- const currentVersion = "1.7.6";
473615
+ const currentVersion = "1.7.8";
473658
473616
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
473659
473617
  let latestVersion = await getLatestVersion(channel);
473660
473618
  const isDisabled = isAutoUpdaterDisabled();
@@ -473865,12 +473823,12 @@ function NativeAutoUpdater({
473865
473823
  logEvent("tengu_native_auto_updater_start", {});
473866
473824
  try {
473867
473825
  const maxVersion = await getMaxVersion();
473868
- if (maxVersion && gt("1.7.6", maxVersion)) {
473826
+ if (maxVersion && gt("1.7.8", maxVersion)) {
473869
473827
  const msg = await getMaxVersionMessage();
473870
473828
  setMaxVersionIssue(msg ?? "affects your version");
473871
473829
  }
473872
473830
  const result = await installLatest(channel);
473873
- const currentVersion = "1.7.6";
473831
+ const currentVersion = "1.7.8";
473874
473832
  const latencyMs = Date.now() - startTime;
473875
473833
  if (result.lockFailed) {
473876
473834
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -474005,17 +473963,17 @@ function PackageManagerAutoUpdater(t0) {
474005
473963
  const maxVersion = await getMaxVersion();
474006
473964
  if (maxVersion && latest && gt(latest, maxVersion)) {
474007
473965
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
474008
- if (gte("1.7.6", maxVersion)) {
474009
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.7.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
473966
+ if (gte("1.7.8", maxVersion)) {
473967
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.7.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
474010
473968
  setUpdateAvailable(false);
474011
473969
  return;
474012
473970
  }
474013
473971
  latest = maxVersion;
474014
473972
  }
474015
- const hasUpdate = latest && !gte("1.7.6", latest) && !shouldSkipVersion(latest);
473973
+ const hasUpdate = latest && !gte("1.7.8", latest) && !shouldSkipVersion(latest);
474016
473974
  setUpdateAvailable(!!hasUpdate);
474017
473975
  if (hasUpdate) {
474018
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.7.6"} -> ${latest}`);
473976
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.7.8"} -> ${latest}`);
474019
473977
  }
474020
473978
  };
474021
473979
  $2[0] = t1;
@@ -474049,7 +474007,7 @@ function PackageManagerAutoUpdater(t0) {
474049
474007
  wrap: "truncate",
474050
474008
  children: [
474051
474009
  "currentVersion: ",
474052
- "1.7.6"
474010
+ "1.7.8"
474053
474011
  ]
474054
474012
  }, undefined, true, undefined, this);
474055
474013
  $2[3] = verbose;
@@ -481609,7 +481567,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
481609
481567
  project_dir: getOriginalCwd(),
481610
481568
  added_dirs: addedDirs
481611
481569
  },
481612
- version: "1.7.6",
481570
+ version: "1.7.8",
481613
481571
  output_style: {
481614
481572
  name: outputStyleName
481615
481573
  },
@@ -493181,7 +493139,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
493181
493139
  } catch {}
493182
493140
  const data = {
493183
493141
  trigger,
493184
- version: "1.7.6",
493142
+ version: "1.7.8",
493185
493143
  platform: process.platform,
493186
493144
  transcript,
493187
493145
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -507165,7 +507123,7 @@ function registerImagePipelineSkill() {
507165
507123
  POWERSHELL_TOOL_NAME,
507166
507124
  ASK_USER_QUESTION_TOOL_NAME
507167
507125
  ],
507168
- userInvocable: true,
507126
+ userInvocable: false,
507169
507127
  files: SKILL_FILES,
507170
507128
  async getPromptForCommand(args) {
507171
507129
  const parts = [IMAGE_PIPELINE_PROMPT];
@@ -510090,7 +510048,7 @@ function appendToLog(path17, message) {
510090
510048
  cwd: getFsImplementation().cwd(),
510091
510049
  userType: process.env.USER_TYPE,
510092
510050
  sessionId: getSessionId(),
510093
- version: "1.7.6"
510051
+ version: "1.7.8"
510094
510052
  };
510095
510053
  getLogWriter(path17).write(messageWithTimestamp);
510096
510054
  }
@@ -514114,8 +514072,8 @@ async function getEnvLessBridgeConfig() {
514114
514072
  }
514115
514073
  async function checkEnvLessBridgeMinVersion() {
514116
514074
  const cfg = await getEnvLessBridgeConfig();
514117
- if (cfg.min_version && lt("1.7.6", cfg.min_version)) {
514118
- return `Your version of localclawd (${"1.7.6"}) is too old for Remote Control.
514075
+ if (cfg.min_version && lt("1.7.8", cfg.min_version)) {
514076
+ return `Your version of localclawd (${"1.7.8"}) is too old for Remote Control.
514119
514077
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
514120
514078
  }
514121
514079
  return null;
@@ -514587,7 +514545,7 @@ async function initBridgeCore(params) {
514587
514545
  const rawApi = createBridgeApiClient({
514588
514546
  baseUrl,
514589
514547
  getAccessToken,
514590
- runnerVersion: "1.7.6",
514548
+ runnerVersion: "1.7.8",
514591
514549
  onDebug: logForDebugging,
514592
514550
  onAuth401,
514593
514551
  getTrustedDeviceToken
@@ -520306,7 +520264,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
520306
520264
  setCwd(cwd3);
520307
520265
  const server = new Server({
520308
520266
  name: "claude/tengu",
520309
- version: "1.7.6"
520267
+ version: "1.7.8"
520310
520268
  }, {
520311
520269
  capabilities: {
520312
520270
  tools: {}
@@ -521387,7 +521345,7 @@ function WelcomeLogo() {
521387
521345
  dimColor: true,
521388
521346
  children: [
521389
521347
  "v",
521390
- "1.7.6"
521348
+ "1.7.8"
521391
521349
  ]
521392
521350
  }, undefined, true, undefined, this)
521393
521351
  ]
@@ -521578,7 +521536,7 @@ __export(exports_update, {
521578
521536
  });
521579
521537
  async function update() {
521580
521538
  logEvent("tengu_update_check", {});
521581
- writeToStdout(`Current version: ${"1.7.6"}
521539
+ writeToStdout(`Current version: ${"1.7.8"}
521582
521540
  `);
521583
521541
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
521584
521542
  writeToStdout(`Checking for updates to ${channel} version...
@@ -521653,8 +521611,8 @@ async function update() {
521653
521611
  writeToStdout(`localclawd is managed by Homebrew.
521654
521612
  `);
521655
521613
  const latest = await getLatestVersion(channel);
521656
- if (latest && !gte("1.7.6", latest)) {
521657
- writeToStdout(`Update available: ${"1.7.6"} → ${latest}
521614
+ if (latest && !gte("1.7.8", latest)) {
521615
+ writeToStdout(`Update available: ${"1.7.8"} → ${latest}
521658
521616
  `);
521659
521617
  writeToStdout(`
521660
521618
  `);
@@ -521670,8 +521628,8 @@ async function update() {
521670
521628
  writeToStdout(`localclawd is managed by winget.
521671
521629
  `);
521672
521630
  const latest = await getLatestVersion(channel);
521673
- if (latest && !gte("1.7.6", latest)) {
521674
- writeToStdout(`Update available: ${"1.7.6"} → ${latest}
521631
+ if (latest && !gte("1.7.8", latest)) {
521632
+ writeToStdout(`Update available: ${"1.7.8"} → ${latest}
521675
521633
  `);
521676
521634
  writeToStdout(`
521677
521635
  `);
@@ -521685,8 +521643,8 @@ async function update() {
521685
521643
  writeToStdout(`localclawd is managed by apk.
521686
521644
  `);
521687
521645
  const latest = await getLatestVersion(channel);
521688
- if (latest && !gte("1.7.6", latest)) {
521689
- writeToStdout(`Update available: ${"1.7.6"} → ${latest}
521646
+ if (latest && !gte("1.7.8", latest)) {
521647
+ writeToStdout(`Update available: ${"1.7.8"} → ${latest}
521690
521648
  `);
521691
521649
  writeToStdout(`
521692
521650
  `);
@@ -521751,11 +521709,11 @@ async function update() {
521751
521709
  `);
521752
521710
  await gracefulShutdown(1);
521753
521711
  }
521754
- if (result.latestVersion === "1.7.6") {
521755
- writeToStdout(source_default.green(`localclawd is up to date (${"1.7.6"})`) + `
521712
+ if (result.latestVersion === "1.7.8") {
521713
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.7.8"})`) + `
521756
521714
  `);
521757
521715
  } else {
521758
- writeToStdout(source_default.green(`Successfully updated from ${"1.7.6"} to version ${result.latestVersion}`) + `
521716
+ writeToStdout(source_default.green(`Successfully updated from ${"1.7.8"} to version ${result.latestVersion}`) + `
521759
521717
  `);
521760
521718
  await regenerateCompletionCache();
521761
521719
  }
@@ -521815,12 +521773,12 @@ async function update() {
521815
521773
  `);
521816
521774
  await gracefulShutdown(1);
521817
521775
  }
521818
- if (latestVersion === "1.7.6") {
521819
- writeToStdout(source_default.green(`localclawd is up to date (${"1.7.6"})`) + `
521776
+ if (latestVersion === "1.7.8") {
521777
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.7.8"})`) + `
521820
521778
  `);
521821
521779
  await gracefulShutdown(0);
521822
521780
  }
521823
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.7.6"})
521781
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.7.8"})
521824
521782
  `);
521825
521783
  writeToStdout(`Installing update...
521826
521784
  `);
@@ -521865,7 +521823,7 @@ async function update() {
521865
521823
  logForDebugging(`update: Installation status: ${status2}`);
521866
521824
  switch (status2) {
521867
521825
  case "success":
521868
- writeToStdout(source_default.green(`Successfully updated from ${"1.7.6"} to version ${latestVersion}`) + `
521826
+ writeToStdout(source_default.green(`Successfully updated from ${"1.7.8"} to version ${latestVersion}`) + `
521869
521827
  `);
521870
521828
  await regenerateCompletionCache();
521871
521829
  break;
@@ -523107,7 +523065,7 @@ Run with --debug for more details.
523107
523065
  }
523108
523066
  }
523109
523067
  logForDiagnosticsNoPII("info", "started", {
523110
- version: "1.7.6",
523068
+ version: "1.7.8",
523111
523069
  is_native_binary: isInBundledMode()
523112
523070
  });
523113
523071
  registerCleanup(async () => {
@@ -523891,7 +523849,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
523891
523849
  pendingHookMessages
523892
523850
  }, renderAndRun);
523893
523851
  }
523894
- }).version("1.7.6 (localclawd)", "-v, --version", "Output the version number");
523852
+ }).version("1.7.8 (localclawd)", "-v, --version", "Output the version number");
523895
523853
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
523896
523854
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
523897
523855
  if (canUserConfigureAdvisor()) {
@@ -524405,7 +524363,7 @@ if (false) {}
524405
524363
  async function main2() {
524406
524364
  const args = process.argv.slice(2);
524407
524365
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
524408
- console.log(`${"1.7.6"} (localclawd)`);
524366
+ console.log(`${"1.7.8"} (localclawd)`);
524409
524367
  return;
524410
524368
  }
524411
524369
  const {
@@ -524488,4 +524446,4 @@ localclawd crashed: ${msg}
524488
524446
  process.exit(1);
524489
524447
  });
524490
524448
 
524491
- //# debugId=A85085BBE751C07F64756E2164756E21
524449
+ //# debugId=5E6DF3FB4EDA637264756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.7.6",
3
+ "version": "1.7.8",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",