localclawd 1.8.9 → 1.9.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 +182 -121
  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.9"}`;
87611
+ return `claude-code/${"1.9.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.9"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87633
+ return `claude-cli/${"1.9.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.9"}${suffix}`;
87647
+ return `claude-code/${"1.9.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.9"}.${fingerprint}`;
130843
+ const version = `${"1.9.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.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
147032
+ const match = "1.9.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.9",
147072
+ version: "1.9.1",
147073
147073
  versionBase: getVersionBase(),
147074
- buildTime: "2026-05-07T17:33:40.617Z",
147074
+ buildTime: "2026-05-07T18:03:44.736Z",
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.9";
179650
+ attributes["app.version"] = "1.9.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.9";
242451
+ return "1.9.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.9",
247725
+ version: "1.9.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.9",
248067
+ version: "1.9.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.9");
262469
+ return computeFingerprint(firstMessageText, "1.9.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.9");
262511
+ const fingerprint = computeFingerprint(messageText, "1.9.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.9",
283259
+ appVersion: "1.9.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.9");
284324
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.9.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.9"
284364
+ [ATTR_SERVICE_VERSION4]: "1.9.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.9");
284409
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.9.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.9");
284429
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.9.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.9");
284491
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.9.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.9" : "unknown";
285681
+ const version = typeof MACRO !== "undefined" ? "1.9.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.9", maxVersion)) {
286623
- logForDebugging(`Native installer: current version ${"1.8.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
286622
+ if (gte("1.9.1", maxVersion)) {
286623
+ logForDebugging(`Native installer: current version ${"1.9.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.9" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286634
+ if (!forceReinstall && version === "1.9.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,
@@ -322925,9 +322925,22 @@ function replaceTemplatesDeep(obj, vars) {
322925
322925
  return obj;
322926
322926
  }
322927
322927
  async function loadWorkflow(projectRoot, name) {
322928
+ const wfBase = join79(projectRoot, ".localclawd", "image-pipeline", "workflows");
322928
322929
  const filename = name.endsWith(".json") ? name : `${name}.json`;
322929
322930
  try {
322930
- const data = await readFile26(join79(projectRoot, ".localclawd", "image-pipeline", "workflows", filename), "utf-8");
322931
+ const data = await readFile26(join79(wfBase, filename), "utf-8");
322932
+ return JSON.parse(data);
322933
+ } catch {}
322934
+ const all4 = await listWorkflows(projectRoot);
322935
+ const baseName = name.replace(/\.json$/, "").split(/[\\/]/).pop() ?? name;
322936
+ const match = all4.find((w2) => {
322937
+ const wBaseName = w2.replace(/\.json$/, "").split(/[\\/]/).pop() ?? "";
322938
+ return wBaseName === baseName;
322939
+ });
322940
+ if (!match)
322941
+ return null;
322942
+ try {
322943
+ const data = await readFile26(join79(wfBase, match), "utf-8");
322931
322944
  return JSON.parse(data);
322932
322945
  } catch {
322933
322946
  return null;
@@ -322951,10 +322964,6 @@ async function scaffoldProject(projectRoot) {
322951
322964
  created.push(".localclawd/image-pipeline/config.json");
322952
322965
  await writeFile19(join79(base, "prompts", "example.json"), JSON.stringify(EXAMPLE_PROMPT, null, 2), "utf-8");
322953
322966
  created.push(".localclawd/image-pipeline/prompts/example.json");
322954
- await writeFile19(join79(base, "workflows", "txt2img.json"), JSON.stringify(DEFAULT_WORKFLOW, null, 2), "utf-8");
322955
- created.push(".localclawd/image-pipeline/workflows/txt2img.json");
322956
- await writeFile19(join79(base, "workflows", "z_image_turbo.json"), JSON.stringify(Z_IMAGE_TURBO_WORKFLOW, null, 2), "utf-8");
322957
- created.push(".localclawd/image-pipeline/workflows/z_image_turbo.json");
322958
322967
  await writeFile19(join79(base, "scripts", "generate.sh"), GENERATE_SH, "utf-8");
322959
322968
  created.push(".localclawd/image-pipeline/scripts/generate.sh");
322960
322969
  await writeFile19(join79(base, "scripts", "generate.ps1"), GENERATE_PS1, "utf-8");
@@ -322962,6 +322971,18 @@ async function scaffoldProject(projectRoot) {
322962
322971
  await writeFile19(join79(base, "README.md"), README_CONTENT, "utf-8");
322963
322972
  created.push(".localclawd/image-pipeline/README.md");
322964
322973
  }
322974
+ for (const [wfName, wfContent] of [
322975
+ ["txt2img.json", DEFAULT_WORKFLOW],
322976
+ ["z_image_turbo.json", Z_IMAGE_TURBO_WORKFLOW]
322977
+ ]) {
322978
+ const wfPath = join79(base, "workflows", wfName);
322979
+ try {
322980
+ await access5(wfPath);
322981
+ } catch {
322982
+ await writeFile19(wfPath, JSON.stringify(wfContent, null, 2), "utf-8");
322983
+ created.push(`.localclawd/image-pipeline/workflows/${wfName}`);
322984
+ }
322985
+ }
322965
322986
  return { configPath, created, alreadyExisted };
322966
322987
  }
322967
322988
  async function loadConfig(projectRoot) {
@@ -322986,14 +323007,24 @@ async function listPrompts(projectRoot) {
322986
323007
  }
322987
323008
  }
322988
323009
  async function listWorkflows(projectRoot) {
322989
- try {
322990
- const { readdir: readdir12 } = await import("fs/promises");
322991
- const dir = join79(projectRoot, ".localclawd", "image-pipeline", "workflows");
322992
- const files = await readdir12(dir);
322993
- return files.filter((f) => f.endsWith(".json"));
322994
- } catch {
322995
- return [];
323010
+ const base = join79(projectRoot, ".localclawd", "image-pipeline", "workflows");
323011
+ const results = [];
323012
+ async function scan(dir, rel) {
323013
+ try {
323014
+ const { readdir: rd } = await import("fs/promises");
323015
+ const entries = await rd(dir, { withFileTypes: true });
323016
+ for (const entry of entries) {
323017
+ const entryRel = rel ? `${rel}/${entry.name}` : entry.name;
323018
+ if (entry.isDirectory()) {
323019
+ await scan(join79(dir, entry.name), entryRel);
323020
+ } else if (entry.isFile() && entry.name.endsWith(".json")) {
323021
+ results.push(entryRel);
323022
+ }
323023
+ }
323024
+ } catch {}
322996
323025
  }
323026
+ await scan(base, "");
323027
+ return results;
322997
323028
  }
322998
323029
  var DEFAULT_CONFIG2, EXAMPLE_PROMPT, DEFAULT_WORKFLOW, Z_IMAGE_TURBO_WORKFLOW, GENERATE_SH = `#!/usr/bin/env bash
322999
323030
  # localclawd image pipeline — quick generate helper
@@ -323136,8 +323167,8 @@ var init_imagePipeline = __esm(() => {
323136
323167
  inputs: { samples: ["3", 0], vae: ["4", 2] }
323137
323168
  },
323138
323169
  "9": {
323139
- class_type: "PreviewImage",
323140
- inputs: { images: ["8", 0] }
323170
+ class_type: "SaveImage",
323171
+ inputs: { filename_prefix: "localclawd", images: ["8", 0] }
323141
323172
  }
323142
323173
  };
323143
323174
  Z_IMAGE_TURBO_WORKFLOW = {
@@ -323164,7 +323195,7 @@ var init_imagePipeline = __esm(() => {
323164
323195
  }
323165
323196
  },
323166
323197
  "8": { class_type: "VAEDecode", inputs: { samples: ["3", 0], vae: ["29", 0] } },
323167
- "9": { class_type: "PreviewImage", inputs: { images: ["8", 0] } }
323198
+ "9": { class_type: "SaveImage", inputs: { filename_prefix: "z-image-turbo", images: ["8", 0] } }
323168
323199
  };
323169
323200
  });
323170
323201
 
@@ -323329,16 +323360,27 @@ var init_GenerateImageTool = __esm(() => {
323329
323360
  if (abortController.signal.aborted) {
323330
323361
  return { data: { path: "", filename: "", promptId: "", seed: 0, backend: backendUrl, error: "Aborted" } };
323331
323362
  }
323332
- const model = input.model ?? config?.defaultModel ?? "v1-5-pruned-emaonly.safetensors";
323333
- const width = input.width ?? config?.defaultWidth ?? 512;
323334
- const height = input.height ?? config?.defaultHeight ?? 512;
323335
- const steps = input.steps ?? config?.defaultSteps ?? 20;
323336
- const cfg = input.cfg ?? config?.defaultCfg ?? 7;
323337
323363
  const seed = input.seed ?? Math.floor(Math.random() * 2 ** 32);
323338
323364
  const negativePrompt = input.negative_prompt ?? "blurry, low quality, watermark, deformed";
323339
323365
  const workflowName = input.workflow ?? config?.defaultWorkflow;
323340
323366
  const workflowBase = workflowName ? await loadWorkflow(projectRoot, workflowName) : null;
323341
- const workflow = injectPrompt(workflowBase ?? DEFAULT_WORKFLOW, input.prompt, negativePrompt, { seed, model, width, height, steps, cfg });
323367
+ const usingBuiltIn = !workflowBase;
323368
+ const injectParams = usingBuiltIn ? {
323369
+ seed,
323370
+ model: input.model ?? config?.defaultModel ?? "v1-5-pruned-emaonly.safetensors",
323371
+ width: input.width ?? config?.defaultWidth ?? 512,
323372
+ height: input.height ?? config?.defaultHeight ?? 512,
323373
+ steps: input.steps ?? config?.defaultSteps ?? 20,
323374
+ cfg: input.cfg ?? config?.defaultCfg ?? 7
323375
+ } : {
323376
+ seed,
323377
+ ...input.model && { model: input.model },
323378
+ ...input.width && { width: input.width },
323379
+ ...input.height && { height: input.height },
323380
+ ...input.steps && { steps: input.steps },
323381
+ ...input.cfg && { cfg: input.cfg }
323382
+ };
323383
+ const workflow = injectPrompt(workflowBase ?? DEFAULT_WORKFLOW, input.prompt, negativePrompt, injectParams);
323342
323384
  let queued;
323343
323385
  try {
323344
323386
  queued = await queuePrompt(backendUrl, workflow);
@@ -331884,7 +331926,7 @@ function getAnthropicEnvMetadata() {
331884
331926
  function getBuildAgeMinutes() {
331885
331927
  if (false)
331886
331928
  ;
331887
- const buildTime = new Date("2026-05-07T17:33:40.617Z").getTime();
331929
+ const buildTime = new Date("2026-05-07T18:03:44.736Z").getTime();
331888
331930
  if (isNaN(buildTime))
331889
331931
  return;
331890
331932
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360714,7 +360756,7 @@ function Feedback({
360714
360756
  platform: env3.platform,
360715
360757
  gitRepo: envInfo.isGit,
360716
360758
  terminal: env3.terminal,
360717
- version: "1.8.9",
360759
+ version: "1.9.1",
360718
360760
  transcript: normalizeMessagesForAPI(messages),
360719
360761
  errors: sanitizedErrors,
360720
360762
  lastApiRequest: getLastAPIRequest(),
@@ -360906,7 +360948,7 @@ function Feedback({
360906
360948
  ", ",
360907
360949
  env3.terminal,
360908
360950
  ", v",
360909
- "1.8.9"
360951
+ "1.9.1"
360910
360952
  ]
360911
360953
  }, undefined, true, undefined, this)
360912
360954
  ]
@@ -361012,7 +361054,7 @@ ${sanitizedDescription}
361012
361054
  ` + `**Environment Info**
361013
361055
  ` + `- Platform: ${env3.platform}
361014
361056
  ` + `- Terminal: ${env3.terminal}
361015
- ` + `- Version: ${"1.8.9"}
361057
+ ` + `- Version: ${"1.9.1"}
361016
361058
  ` + `- Feedback ID: ${feedbackId}
361017
361059
  ` + `
361018
361060
  **Errors**
@@ -363640,7 +363682,7 @@ function buildPrimarySection() {
363640
363682
  }, undefined, false, undefined, this);
363641
363683
  return [{
363642
363684
  label: "Version",
363643
- value: "1.8.9"
363685
+ value: "1.9.1"
363644
363686
  }, {
363645
363687
  label: "Session name",
363646
363688
  value: nameValue
@@ -368321,7 +368363,7 @@ function Config({
368321
368363
  }
368322
368364
  }, undefined, false, undefined, this)
368323
368365
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
368324
- currentVersion: "1.8.9",
368366
+ currentVersion: "1.9.1",
368325
368367
  onChoice: (choice) => {
368326
368368
  setShowSubmenu(null);
368327
368369
  setTabsHidden(false);
@@ -368333,7 +368375,7 @@ function Config({
368333
368375
  autoUpdatesChannel: "stable"
368334
368376
  };
368335
368377
  if (choice === "stay") {
368336
- newSettings.minimumVersion = "1.8.9";
368378
+ newSettings.minimumVersion = "1.9.1";
368337
368379
  }
368338
368380
  updateSettingsForSource("userSettings", newSettings);
368339
368381
  setSettingsData((prev_27) => ({
@@ -374759,16 +374801,20 @@ var call19 = async (onDone, _context, args) => {
374759
374801
  ].join(`
374760
374802
  `), { display: "system" });
374761
374803
  }
374804
+ const usingBuiltIn = !workflow;
374762
374805
  if (!workflow)
374763
374806
  workflow = DEFAULT_WORKFLOW;
374764
- const model = config2?.defaultModel || "v1-5-pruned-emaonly.safetensors";
374765
- const width = config2?.defaultWidth ?? 512;
374766
- const height = config2?.defaultHeight ?? 512;
374767
- const steps = config2?.defaultSteps ?? 20;
374768
- const cfg = config2?.defaultCfg ?? 7;
374769
374807
  const seed = Math.floor(Math.random() * 4294967296);
374770
374808
  const negative = "blurry, low quality, watermark, deformed";
374771
- const finalWorkflow = injectPrompt(workflow, promptText, negative, { seed, model, width, height, steps, cfg });
374809
+ const injectParams = usingBuiltIn ? {
374810
+ seed,
374811
+ model: config2?.defaultModel || "v1-5-pruned-emaonly.safetensors",
374812
+ width: config2?.defaultWidth ?? 512,
374813
+ height: config2?.defaultHeight ?? 512,
374814
+ steps: config2?.defaultSteps ?? 20,
374815
+ cfg: config2?.defaultCfg ?? 7
374816
+ } : { seed };
374817
+ const finalWorkflow = injectPrompt(workflow, promptText, negative, injectParams);
374772
374818
  let queued;
374773
374819
  try {
374774
374820
  queued = await queuePrompt(backendUrl, finalWorkflow);
@@ -374816,13 +374862,16 @@ var call19 = async (onDone, _context, args) => {
374816
374862
  "",
374817
374863
  ` Saved to: ${savedPaths.join(`
374818
374864
  `)}`,
374819
- ` Workflow: ${usedWorkflow} · Seed: ${seed} · ${steps} steps · ${width}×${height}`
374865
+ ` Workflow: ${usedWorkflow}`,
374866
+ ` Prompt: ${promptText.length > 80 ? promptText.slice(0, 80) + "…" : promptText}`,
374867
+ ` Seed: ${seed}`
374820
374868
  ] : [
374821
374869
  "◆ /image — Done (download failed)",
374822
374870
  "",
374823
374871
  " Job complete but image download failed.",
374824
374872
  ` ComfyUI filenames: ${comfyImages.join(", ") || "(none)"}`,
374825
- ` Workflow: ${usedWorkflow} · Seed: ${seed}`
374873
+ ` Workflow: ${usedWorkflow} · Seed: ${seed}`,
374874
+ ` Try fetching manually: ${backendUrl}/view?filename=${comfyImages[0] ?? ""}&type=output`
374826
374875
  ];
374827
374876
  onDone(lines.join(`
374828
374877
  `), { display: "system" });
@@ -374920,9 +374969,15 @@ var call20 = async (onDone, _context, args) => {
374920
374969
  lines.push(` Generated images will be saved to:`);
374921
374970
  lines.push(` ${generatedDir}`);
374922
374971
  lines.push("");
374972
+ lines.push(" To add custom workflows:");
374973
+ lines.push(` Export from ComfyUI → Save (API Format) → drop into:`);
374974
+ lines.push(` .localclawd/image-pipeline/workflows/`);
374975
+ lines.push(` .localclawd/image-pipeline/workflows/comfyui/ ← or any subfolder`);
374976
+ lines.push("");
374923
374977
  lines.push(" Next steps:");
374924
374978
  lines.push(" /image-pipeline config http://127.0.0.1:8000 — confirm or change ComfyUI URL");
374925
- lines.push(" /image-pipeline workflow txt2img set default workflow");
374979
+ lines.push(" /image-pipeline list see all available workflows");
374980
+ lines.push(" /image-pipeline workflow z_image_turbo — set default workflow");
374926
374981
  lines.push(" /image a misty forest at dawn — generate an image");
374927
374982
  onDone(lines.join(`
374928
374983
  `), { display: "system" });
@@ -374995,7 +375050,11 @@ var call20 = async (onDone, _context, args) => {
374995
375050
  outputDir: ".localclawd/image-pipeline/generated"
374996
375051
  };
374997
375052
  const workflows = await listWorkflows(projectRoot);
374998
- const match = workflows.find((w2) => w2 === name || w2 === `${name}.json`);
375053
+ const baseName = name.replace(/\.json$/, "").split(/[\\/]/).pop() ?? name;
375054
+ const match = workflows.find((w2) => {
375055
+ const wName = w2.replace(/\.json$/, "");
375056
+ return wName === name.replace(/\.json$/, "") || wName.split(/[\\/]/).pop() === baseName;
375057
+ });
374999
375058
  if (!match) {
375000
375059
  const lines = [
375001
375060
  `◆ Image Pipeline — Workflow not found: "${name}"`,
@@ -375006,13 +375065,16 @@ var call20 = async (onDone, _context, args) => {
375006
375065
  for (const w2 of workflows)
375007
375066
  lines.push(` • ${w2.replace(/\.json$/, "")}`);
375008
375067
  } else {
375009
- lines.push(" No workflows found — run /image-pipeline setup first.");
375068
+ lines.push(" No local workflows found.");
375069
+ lines.push(" Run /image-pipeline setup to add bundled templates.");
375070
+ lines.push(" Or export a workflow from ComfyUI (API Format) and drop it into:");
375071
+ lines.push(` ${join113(projectRoot, ".localclawd", "image-pipeline", "workflows")}`);
375010
375072
  }
375011
375073
  onDone(lines.join(`
375012
375074
  `), { display: "system" });
375013
375075
  return null;
375014
375076
  }
375015
- config2.defaultWorkflow = name.replace(/\.json$/, "");
375077
+ config2.defaultWorkflow = match.replace(/\.json$/, "");
375016
375078
  await saveConfig2(projectRoot, config2);
375017
375079
  onDone([
375018
375080
  "◆ Image Pipeline — Default Workflow Set",
@@ -375094,23 +375156,22 @@ var call20 = async (onDone, _context, args) => {
375094
375156
  }
375095
375157
  const fetchResult = await fetchServerWorkflow(backendUrl, name);
375096
375158
  if ("error" in fetchResult) {
375097
- const wfDir = `${projectRoot}\\.localclawd\\image-pipeline\\workflows`;
375159
+ const wfDir = join113(projectRoot, ".localclawd", "image-pipeline", "workflows", "comfyui");
375098
375160
  onDone([
375099
375161
  `◆ Image Pipeline — Fetch Failed: "${name}"`,
375100
375162
  "",
375101
375163
  ` ${fetchResult.error}`,
375102
375164
  "",
375103
- " Your ComfyUI version may not support workflow download via API.",
375104
- " Export the workflow manually:",
375105
- "",
375165
+ " Export the workflow manually from ComfyUI:",
375106
375166
  ` 1. Open ComfyUI: ${backendUrl}`,
375107
- " 2. Load the workflow from the sidebar",
375108
- " 3. Settings → Enable Dev Mode (gear icon)",
375109
- " 4. Click Save (API Format) — saves a flat JSON file",
375110
- " 5. Copy that file here:",
375111
- ` ${wfDir}\\${name}.json`,
375167
+ " 2. Load the workflow (sidebar or Menu → Open)",
375168
+ " 3. Settings → Enable Dev Mode",
375169
+ " 4. Save (API Format) — exports a flat JSON file",
375170
+ " 5. Drop the JSON file into:",
375171
+ ` ${wfDir}`,
375112
375172
  "",
375113
- " Then use: /image " + name + ": <your prompt>"
375173
+ " Then: /image-pipeline workflow " + name,
375174
+ " /image " + name + ": <your prompt>"
375114
375175
  ].join(`
375115
375176
  `), { display: "system" });
375116
375177
  return null;
@@ -385776,7 +385837,7 @@ function Help(t0) {
385776
385837
  let t6;
385777
385838
  if ($2[31] !== tabs) {
385778
385839
  t6 = /* @__PURE__ */ jsx_dev_runtime221.jsxDEV(Tabs, {
385779
- title: `localclawd v${"1.8.9"}`,
385840
+ title: `localclawd v${"1.9.1"}`,
385780
385841
  color: "professionalBlue",
385781
385842
  defaultTab: "general",
385782
385843
  children: tabs
@@ -403038,7 +403099,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
403038
403099
  }
403039
403100
  return [];
403040
403101
  }
403041
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.9") {
403102
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.9.1") {
403042
403103
  if (process.env.USER_TYPE === "ant") {
403043
403104
  const changelog = MACRO.VERSION_CHANGELOG;
403044
403105
  if (changelog) {
@@ -403065,7 +403126,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.8.9") {
403065
403126
  releaseNotes
403066
403127
  };
403067
403128
  }
403068
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.8.9") {
403129
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.9.1") {
403069
403130
  if (process.env.USER_TYPE === "ant") {
403070
403131
  const changelog = MACRO.VERSION_CHANGELOG;
403071
403132
  if (changelog) {
@@ -403222,7 +403283,7 @@ function getRecentActivitySync() {
403222
403283
  return cachedActivity;
403223
403284
  }
403224
403285
  function getLogoDisplayData() {
403225
- const version = process.env.DEMO_VERSION ?? "1.8.9";
403286
+ const version = process.env.DEMO_VERSION ?? "1.9.1";
403226
403287
  const serverUrl = getDirectConnectServerUrl();
403227
403288
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
403228
403289
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -404322,7 +404383,7 @@ function Logo() {
404322
404383
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
404323
404384
  t2 = () => {
404324
404385
  const currentConfig = getGlobalConfig();
404325
- if (currentConfig.lastReleaseNotesSeen === "1.8.9") {
404386
+ if (currentConfig.lastReleaseNotesSeen === "1.9.1") {
404326
404387
  return;
404327
404388
  }
404328
404389
  saveGlobalConfig(_temp326);
@@ -404981,12 +405042,12 @@ function Logo() {
404981
405042
  return t41;
404982
405043
  }
404983
405044
  function _temp326(current) {
404984
- if (current.lastReleaseNotesSeen === "1.8.9") {
405045
+ if (current.lastReleaseNotesSeen === "1.9.1") {
404985
405046
  return current;
404986
405047
  }
404987
405048
  return {
404988
405049
  ...current,
404989
- lastReleaseNotesSeen: "1.8.9"
405050
+ lastReleaseNotesSeen: "1.9.1"
404990
405051
  };
404991
405052
  }
404992
405053
  function _temp241(s_0) {
@@ -435465,7 +435526,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
435465
435526
  smapsRollup,
435466
435527
  platform: process.platform,
435467
435528
  nodeVersion: process.version,
435468
- ccVersion: "1.8.9"
435529
+ ccVersion: "1.9.1"
435469
435530
  };
435470
435531
  }
435471
435532
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -436050,7 +436111,7 @@ var init_bridge_kick = __esm(() => {
436050
436111
  var call87 = async () => {
436051
436112
  return {
436052
436113
  type: "text",
436053
- value: `${"1.8.9"} (built ${"2026-05-07T17:33:40.617Z"})`
436114
+ value: `${"1.9.1"} (built ${"2026-05-07T18:03:44.736Z"})`
436054
436115
  };
436055
436116
  }, version, version_default;
436056
436117
  var init_version = __esm(() => {
@@ -443994,7 +444055,7 @@ function generateHtmlReport(data, insights) {
443994
444055
  </html>`;
443995
444056
  }
443996
444057
  function buildExportData(data, insights, facets, remoteStats) {
443997
- const version2 = typeof MACRO !== "undefined" ? "1.8.9" : "unknown";
444058
+ const version2 = typeof MACRO !== "undefined" ? "1.9.1" : "unknown";
443998
444059
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
443999
444060
  const facets_summary = {
444000
444061
  total: facets.size,
@@ -448195,7 +448256,7 @@ var init_sessionStorage = __esm(() => {
448195
448256
  init_settings2();
448196
448257
  init_slowOperations();
448197
448258
  init_uuid();
448198
- VERSION6 = typeof MACRO !== "undefined" ? "1.8.9" : "unknown";
448259
+ VERSION6 = typeof MACRO !== "undefined" ? "1.9.1" : "unknown";
448199
448260
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
448200
448261
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
448201
448262
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -449396,7 +449457,7 @@ var init_filesystem = __esm(() => {
449396
449457
  });
449397
449458
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
449398
449459
  const nonce = randomBytes20(16).toString("hex");
449399
- return join151(getClaudeTempDir(), "bundled-skills", "1.8.9", nonce);
449460
+ return join151(getClaudeTempDir(), "bundled-skills", "1.9.1", nonce);
449400
449461
  });
449401
449462
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
449402
449463
  });
@@ -458633,7 +458694,7 @@ function buildSystemInitMessage(inputs) {
458633
458694
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
458634
458695
  apiKeySource: getAnthropicApiKeyWithSource().source,
458635
458696
  betas: getSdkBetas(),
458636
- claude_code_version: "1.8.9",
458697
+ claude_code_version: "1.9.1",
458637
458698
  output_style: outputStyle2,
458638
458699
  agents: inputs.agents.map((agent) => agent.agentType),
458639
458700
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -472790,7 +472851,7 @@ var init_useVoiceEnabled = __esm(() => {
472790
472851
  function getSemverPart(version2) {
472791
472852
  return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
472792
472853
  }
472793
- function useUpdateNotification(updatedVersion, initialVersion = "1.8.9") {
472854
+ function useUpdateNotification(updatedVersion, initialVersion = "1.9.1") {
472794
472855
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
472795
472856
  if (!updatedVersion) {
472796
472857
  return null;
@@ -472830,7 +472891,7 @@ function AutoUpdater({
472830
472891
  return;
472831
472892
  }
472832
472893
  if (false) {}
472833
- const currentVersion = "1.8.9";
472894
+ const currentVersion = "1.9.1";
472834
472895
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
472835
472896
  let latestVersion = await getLatestVersion(channel);
472836
472897
  const isDisabled = isAutoUpdaterDisabled();
@@ -473041,12 +473102,12 @@ function NativeAutoUpdater({
473041
473102
  logEvent("tengu_native_auto_updater_start", {});
473042
473103
  try {
473043
473104
  const maxVersion = await getMaxVersion();
473044
- if (maxVersion && gt("1.8.9", maxVersion)) {
473105
+ if (maxVersion && gt("1.9.1", maxVersion)) {
473045
473106
  const msg = await getMaxVersionMessage();
473046
473107
  setMaxVersionIssue(msg ?? "affects your version");
473047
473108
  }
473048
473109
  const result = await installLatest(channel);
473049
- const currentVersion = "1.8.9";
473110
+ const currentVersion = "1.9.1";
473050
473111
  const latencyMs = Date.now() - startTime;
473051
473112
  if (result.lockFailed) {
473052
473113
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -473181,17 +473242,17 @@ function PackageManagerAutoUpdater(t0) {
473181
473242
  const maxVersion = await getMaxVersion();
473182
473243
  if (maxVersion && latest && gt(latest, maxVersion)) {
473183
473244
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
473184
- if (gte("1.8.9", maxVersion)) {
473185
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.8.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
473245
+ if (gte("1.9.1", maxVersion)) {
473246
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.9.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
473186
473247
  setUpdateAvailable(false);
473187
473248
  return;
473188
473249
  }
473189
473250
  latest = maxVersion;
473190
473251
  }
473191
- const hasUpdate = latest && !gte("1.8.9", latest) && !shouldSkipVersion(latest);
473252
+ const hasUpdate = latest && !gte("1.9.1", latest) && !shouldSkipVersion(latest);
473192
473253
  setUpdateAvailable(!!hasUpdate);
473193
473254
  if (hasUpdate) {
473194
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.8.9"} -> ${latest}`);
473255
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.9.1"} -> ${latest}`);
473195
473256
  }
473196
473257
  };
473197
473258
  $2[0] = t1;
@@ -473225,7 +473286,7 @@ function PackageManagerAutoUpdater(t0) {
473225
473286
  wrap: "truncate",
473226
473287
  children: [
473227
473288
  "currentVersion: ",
473228
- "1.8.9"
473289
+ "1.9.1"
473229
473290
  ]
473230
473291
  }, undefined, true, undefined, this);
473231
473292
  $2[3] = verbose;
@@ -480785,7 +480846,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
480785
480846
  project_dir: getOriginalCwd(),
480786
480847
  added_dirs: addedDirs
480787
480848
  },
480788
- version: "1.8.9",
480849
+ version: "1.9.1",
480789
480850
  output_style: {
480790
480851
  name: outputStyleName
480791
480852
  },
@@ -492357,7 +492418,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
492357
492418
  } catch {}
492358
492419
  const data = {
492359
492420
  trigger,
492360
- version: "1.8.9",
492421
+ version: "1.9.1",
492361
492422
  platform: process.platform,
492362
492423
  transcript,
492363
492424
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -509266,7 +509327,7 @@ function appendToLog(path17, message) {
509266
509327
  cwd: getFsImplementation().cwd(),
509267
509328
  userType: process.env.USER_TYPE,
509268
509329
  sessionId: getSessionId(),
509269
- version: "1.8.9"
509330
+ version: "1.9.1"
509270
509331
  };
509271
509332
  getLogWriter(path17).write(messageWithTimestamp);
509272
509333
  }
@@ -513290,8 +513351,8 @@ async function getEnvLessBridgeConfig() {
513290
513351
  }
513291
513352
  async function checkEnvLessBridgeMinVersion() {
513292
513353
  const cfg = await getEnvLessBridgeConfig();
513293
- if (cfg.min_version && lt("1.8.9", cfg.min_version)) {
513294
- return `Your version of localclawd (${"1.8.9"}) is too old for Remote Control.
513354
+ if (cfg.min_version && lt("1.9.1", cfg.min_version)) {
513355
+ return `Your version of localclawd (${"1.9.1"}) is too old for Remote Control.
513295
513356
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
513296
513357
  }
513297
513358
  return null;
@@ -513763,7 +513824,7 @@ async function initBridgeCore(params) {
513763
513824
  const rawApi = createBridgeApiClient({
513764
513825
  baseUrl,
513765
513826
  getAccessToken,
513766
- runnerVersion: "1.8.9",
513827
+ runnerVersion: "1.9.1",
513767
513828
  onDebug: logForDebugging,
513768
513829
  onAuth401,
513769
513830
  getTrustedDeviceToken
@@ -519482,7 +519543,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
519482
519543
  setCwd(cwd3);
519483
519544
  const server = new Server({
519484
519545
  name: "claude/tengu",
519485
- version: "1.8.9"
519546
+ version: "1.9.1"
519486
519547
  }, {
519487
519548
  capabilities: {
519488
519549
  tools: {}
@@ -520563,7 +520624,7 @@ function WelcomeLogo() {
520563
520624
  dimColor: true,
520564
520625
  children: [
520565
520626
  "v",
520566
- "1.8.9"
520627
+ "1.9.1"
520567
520628
  ]
520568
520629
  }, undefined, true, undefined, this)
520569
520630
  ]
@@ -520754,7 +520815,7 @@ __export(exports_update, {
520754
520815
  });
520755
520816
  async function update() {
520756
520817
  logEvent("tengu_update_check", {});
520757
- writeToStdout(`Current version: ${"1.8.9"}
520818
+ writeToStdout(`Current version: ${"1.9.1"}
520758
520819
  `);
520759
520820
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
520760
520821
  writeToStdout(`Checking for updates to ${channel} version...
@@ -520829,8 +520890,8 @@ async function update() {
520829
520890
  writeToStdout(`localclawd is managed by Homebrew.
520830
520891
  `);
520831
520892
  const latest = await getLatestVersion(channel);
520832
- if (latest && !gte("1.8.9", latest)) {
520833
- writeToStdout(`Update available: ${"1.8.9"} → ${latest}
520893
+ if (latest && !gte("1.9.1", latest)) {
520894
+ writeToStdout(`Update available: ${"1.9.1"} → ${latest}
520834
520895
  `);
520835
520896
  writeToStdout(`
520836
520897
  `);
@@ -520846,8 +520907,8 @@ async function update() {
520846
520907
  writeToStdout(`localclawd is managed by winget.
520847
520908
  `);
520848
520909
  const latest = await getLatestVersion(channel);
520849
- if (latest && !gte("1.8.9", latest)) {
520850
- writeToStdout(`Update available: ${"1.8.9"} → ${latest}
520910
+ if (latest && !gte("1.9.1", latest)) {
520911
+ writeToStdout(`Update available: ${"1.9.1"} → ${latest}
520851
520912
  `);
520852
520913
  writeToStdout(`
520853
520914
  `);
@@ -520861,8 +520922,8 @@ async function update() {
520861
520922
  writeToStdout(`localclawd is managed by apk.
520862
520923
  `);
520863
520924
  const latest = await getLatestVersion(channel);
520864
- if (latest && !gte("1.8.9", latest)) {
520865
- writeToStdout(`Update available: ${"1.8.9"} → ${latest}
520925
+ if (latest && !gte("1.9.1", latest)) {
520926
+ writeToStdout(`Update available: ${"1.9.1"} → ${latest}
520866
520927
  `);
520867
520928
  writeToStdout(`
520868
520929
  `);
@@ -520927,11 +520988,11 @@ async function update() {
520927
520988
  `);
520928
520989
  await gracefulShutdown(1);
520929
520990
  }
520930
- if (result.latestVersion === "1.8.9") {
520931
- writeToStdout(source_default.green(`localclawd is up to date (${"1.8.9"})`) + `
520991
+ if (result.latestVersion === "1.9.1") {
520992
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.9.1"})`) + `
520932
520993
  `);
520933
520994
  } else {
520934
- writeToStdout(source_default.green(`Successfully updated from ${"1.8.9"} to version ${result.latestVersion}`) + `
520995
+ writeToStdout(source_default.green(`Successfully updated from ${"1.9.1"} to version ${result.latestVersion}`) + `
520935
520996
  `);
520936
520997
  await regenerateCompletionCache();
520937
520998
  }
@@ -520991,12 +521052,12 @@ async function update() {
520991
521052
  `);
520992
521053
  await gracefulShutdown(1);
520993
521054
  }
520994
- if (latestVersion === "1.8.9") {
520995
- writeToStdout(source_default.green(`localclawd is up to date (${"1.8.9"})`) + `
521055
+ if (latestVersion === "1.9.1") {
521056
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.9.1"})`) + `
520996
521057
  `);
520997
521058
  await gracefulShutdown(0);
520998
521059
  }
520999
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.8.9"})
521060
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.9.1"})
521000
521061
  `);
521001
521062
  writeToStdout(`Installing update...
521002
521063
  `);
@@ -521041,7 +521102,7 @@ async function update() {
521041
521102
  logForDebugging(`update: Installation status: ${status2}`);
521042
521103
  switch (status2) {
521043
521104
  case "success":
521044
- writeToStdout(source_default.green(`Successfully updated from ${"1.8.9"} to version ${latestVersion}`) + `
521105
+ writeToStdout(source_default.green(`Successfully updated from ${"1.9.1"} to version ${latestVersion}`) + `
521045
521106
  `);
521046
521107
  await regenerateCompletionCache();
521047
521108
  break;
@@ -522283,7 +522344,7 @@ Run with --debug for more details.
522283
522344
  }
522284
522345
  }
522285
522346
  logForDiagnosticsNoPII("info", "started", {
522286
- version: "1.8.9",
522347
+ version: "1.9.1",
522287
522348
  is_native_binary: isInBundledMode()
522288
522349
  });
522289
522350
  registerCleanup(async () => {
@@ -523067,7 +523128,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
523067
523128
  pendingHookMessages
523068
523129
  }, renderAndRun);
523069
523130
  }
523070
- }).version("1.8.9 (localclawd)", "-v, --version", "Output the version number");
523131
+ }).version("1.9.1 (localclawd)", "-v, --version", "Output the version number");
523071
523132
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
523072
523133
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
523073
523134
  if (canUserConfigureAdvisor()) {
@@ -523581,7 +523642,7 @@ if (false) {}
523581
523642
  async function main2() {
523582
523643
  const args = process.argv.slice(2);
523583
523644
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
523584
- console.log(`${"1.8.9"} (localclawd)`);
523645
+ console.log(`${"1.9.1"} (localclawd)`);
523585
523646
  return;
523586
523647
  }
523587
523648
  const {
@@ -523664,4 +523725,4 @@ localclawd crashed: ${msg}
523664
523725
  process.exit(1);
523665
523726
  });
523666
523727
 
523667
- //# debugId=8CAABE705FAA411364756E2164756E21
523728
+ //# debugId=C4269632DEB59EC664756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.8.9",
3
+ "version": "1.9.1",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",