localclawd 1.1.11 → 1.1.12

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 +158 -102
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -89253,7 +89253,7 @@ var init_isEqual = __esm(() => {
89253
89253
 
89254
89254
  // src/utils/userAgent.ts
89255
89255
  function getClaudeCodeUserAgent() {
89256
- return `claude-code/${"1.1.11"}`;
89256
+ return `claude-code/${"1.1.12"}`;
89257
89257
  }
89258
89258
 
89259
89259
  // src/utils/workloadContext.ts
@@ -89275,7 +89275,7 @@ function getUserAgent() {
89275
89275
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
89276
89276
  const workload = getWorkload();
89277
89277
  const workloadSuffix = workload ? `, workload/${workload}` : "";
89278
- return `claude-cli/${"1.1.11"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
89278
+ return `claude-cli/${"1.1.12"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
89279
89279
  }
89280
89280
  function getMCPUserAgent() {
89281
89281
  const parts = [];
@@ -89289,7 +89289,7 @@ function getMCPUserAgent() {
89289
89289
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
89290
89290
  }
89291
89291
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
89292
- return `claude-code/${"1.1.11"}${suffix}`;
89292
+ return `claude-code/${"1.1.12"}${suffix}`;
89293
89293
  }
89294
89294
  function getWebFetchUserAgent() {
89295
89295
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -99198,7 +99198,7 @@ function getAttributionHeader(fingerprint) {
99198
99198
  if (!isAttributionHeaderEnabled()) {
99199
99199
  return "";
99200
99200
  }
99201
- const version = `${"1.1.11"}.${fingerprint}`;
99201
+ const version = `${"1.1.12"}.${fingerprint}`;
99202
99202
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
99203
99203
  const cch = "";
99204
99204
  const workload = getWorkload();
@@ -132745,7 +132745,7 @@ var init_metadata = __esm(() => {
132745
132745
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
132746
132746
  WHITESPACE_REGEX = /\s+/;
132747
132747
  getVersionBase = memoize_default(() => {
132748
- const match = "1.1.11".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
132748
+ const match = "1.1.12".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
132749
132749
  return match ? match[0] : undefined;
132750
132750
  });
132751
132751
  buildEnvContext = memoize_default(async () => {
@@ -132785,9 +132785,9 @@ var init_metadata = __esm(() => {
132785
132785
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
132786
132786
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
132787
132787
  isClaudeAiAuth: isClaudeAISubscriber(),
132788
- version: "1.1.11",
132788
+ version: "1.1.12",
132789
132789
  versionBase: getVersionBase(),
132790
- buildTime: "2026-04-07T15:28:04.082Z",
132790
+ buildTime: "2026-04-07T16:21:50.781Z",
132791
132791
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
132792
132792
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
132793
132793
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -197374,7 +197374,7 @@ function getTelemetryAttributes() {
197374
197374
  attributes["session.id"] = sessionId;
197375
197375
  }
197376
197376
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
197377
- attributes["app.version"] = "1.1.11";
197377
+ attributes["app.version"] = "1.1.12";
197378
197378
  }
197379
197379
  const oauthAccount = getOauthAccountInfo();
197380
197380
  if (oauthAccount) {
@@ -229435,7 +229435,7 @@ function getInstallationEnv() {
229435
229435
  return;
229436
229436
  }
229437
229437
  function getClaudeCodeVersion() {
229438
- return "1.1.11";
229438
+ return "1.1.12";
229439
229439
  }
229440
229440
  async function getInstalledVSCodeExtensionVersion(command) {
229441
229441
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -235037,7 +235037,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
235037
235037
  const client4 = new Client({
235038
235038
  name: "claude-code",
235039
235039
  title: "Claude Code",
235040
- version: "1.1.11",
235040
+ version: "1.1.12",
235041
235041
  description: "Anthropic's agentic coding tool",
235042
235042
  websiteUrl: PRODUCT_URL
235043
235043
  }, {
@@ -235390,7 +235390,7 @@ var init_client9 = __esm(() => {
235390
235390
  const client4 = new Client({
235391
235391
  name: "claude-code",
235392
235392
  title: "Claude Code",
235393
- version: "1.1.11",
235393
+ version: "1.1.12",
235394
235394
  description: "Anthropic's agentic coding tool",
235395
235395
  websiteUrl: PRODUCT_URL
235396
235396
  }, {
@@ -258581,7 +258581,7 @@ var init_user = __esm(() => {
258581
258581
  deviceId,
258582
258582
  sessionId: getSessionId(),
258583
258583
  email: getEmail(),
258584
- appVersion: "1.1.11",
258584
+ appVersion: "1.1.12",
258585
258585
  platform: getHostPlatformForAnalytics(),
258586
258586
  organizationUuid,
258587
258587
  accountUuid,
@@ -259905,7 +259905,7 @@ async function initializeBetaTracing(resource) {
259905
259905
  });
259906
259906
  logs.setGlobalLoggerProvider(loggerProvider);
259907
259907
  setLoggerProvider(loggerProvider);
259908
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.11");
259908
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.12");
259909
259909
  setEventLogger(eventLogger);
259910
259910
  process.on("beforeExit", async () => {
259911
259911
  await loggerProvider?.forceFlush();
@@ -259945,7 +259945,7 @@ async function initializeTelemetry() {
259945
259945
  const platform3 = getPlatform();
259946
259946
  const baseAttributes = {
259947
259947
  [ATTR_SERVICE_NAME5]: "claude-code",
259948
- [ATTR_SERVICE_VERSION5]: "1.1.11"
259948
+ [ATTR_SERVICE_VERSION5]: "1.1.12"
259949
259949
  };
259950
259950
  if (platform3 === "wsl") {
259951
259951
  const wslVersion = getWslVersion();
@@ -259990,7 +259990,7 @@ async function initializeTelemetry() {
259990
259990
  } catch {}
259991
259991
  };
259992
259992
  registerCleanup(shutdownTelemetry2);
259993
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.11");
259993
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.12");
259994
259994
  }
259995
259995
  const meterProvider = new MeterProvider5({
259996
259996
  resource,
@@ -260010,7 +260010,7 @@ async function initializeTelemetry() {
260010
260010
  });
260011
260011
  logs.setGlobalLoggerProvider(loggerProvider);
260012
260012
  setLoggerProvider(loggerProvider);
260013
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.11");
260013
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.12");
260014
260014
  setEventLogger(eventLogger);
260015
260015
  logForDebugging("[3P telemetry] Event logger set successfully");
260016
260016
  process.on("beforeExit", async () => {
@@ -260072,7 +260072,7 @@ Current timeout: ${timeoutMs}ms
260072
260072
  }
260073
260073
  };
260074
260074
  registerCleanup(shutdownTelemetry);
260075
- return meterProvider.getMeter("com.anthropic.claude_code", "1.1.11");
260075
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.1.12");
260076
260076
  }
260077
260077
  async function flushTelemetry() {
260078
260078
  const meterProvider = getMeterProvider();
@@ -261295,7 +261295,7 @@ function detectLinuxGlobPatternWarnings() {
261295
261295
  }
261296
261296
  async function getDoctorDiagnostic() {
261297
261297
  const installationType = await getCurrentInstallationType();
261298
- const version = typeof MACRO !== "undefined" ? "1.1.11" : "unknown";
261298
+ const version = typeof MACRO !== "undefined" ? "1.1.12" : "unknown";
261299
261299
  const installationPath = await getInstallationPath();
261300
261300
  const invokedBinary = getInvokedBinary();
261301
261301
  const multipleInstallations = await detectMultipleInstallations();
@@ -262236,8 +262236,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
262236
262236
  const maxVersion = await getMaxVersion();
262237
262237
  if (maxVersion && gt(version, maxVersion)) {
262238
262238
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
262239
- if (gte("1.1.11", maxVersion)) {
262240
- logForDebugging(`Native installer: current version ${"1.1.11"} is already at or above maxVersion ${maxVersion}, skipping update`);
262239
+ if (gte("1.1.12", maxVersion)) {
262240
+ logForDebugging(`Native installer: current version ${"1.1.12"} is already at or above maxVersion ${maxVersion}, skipping update`);
262241
262241
  logEvent("tengu_native_update_skipped_max_version", {
262242
262242
  latency_ms: Date.now() - startTime,
262243
262243
  max_version: maxVersion,
@@ -262248,7 +262248,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
262248
262248
  version = maxVersion;
262249
262249
  }
262250
262250
  }
262251
- if (!forceReinstall && version === "1.1.11" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
262251
+ if (!forceReinstall && version === "1.1.12" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
262252
262252
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
262253
262253
  logEvent("tengu_native_update_complete", {
262254
262254
  latency_ms: Date.now() - startTime,
@@ -334468,7 +334468,7 @@ function getAnthropicEnvMetadata() {
334468
334468
  function getBuildAgeMinutes() {
334469
334469
  if (false)
334470
334470
  ;
334471
- const buildTime = new Date("2026-04-07T15:28:04.082Z").getTime();
334471
+ const buildTime = new Date("2026-04-07T16:21:50.781Z").getTime();
334472
334472
  if (isNaN(buildTime))
334473
334473
  return;
334474
334474
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -358534,7 +358534,7 @@ function Feedback({
358534
358534
  platform: env4.platform,
358535
358535
  gitRepo: envInfo.isGit,
358536
358536
  terminal: env4.terminal,
358537
- version: "1.1.11",
358537
+ version: "1.1.12",
358538
358538
  transcript: normalizeMessagesForAPI(messages),
358539
358539
  errors: sanitizedErrors,
358540
358540
  lastApiRequest: getLastAPIRequest(),
@@ -358726,7 +358726,7 @@ function Feedback({
358726
358726
  ", ",
358727
358727
  env4.terminal,
358728
358728
  ", v",
358729
- "1.1.11"
358729
+ "1.1.12"
358730
358730
  ]
358731
358731
  }, undefined, true, undefined, this)
358732
358732
  ]
@@ -358832,7 +358832,7 @@ ${sanitizedDescription}
358832
358832
  ` + `**Environment Info**
358833
358833
  ` + `- Platform: ${env4.platform}
358834
358834
  ` + `- Terminal: ${env4.terminal}
358835
- ` + `- Version: ${"1.1.11"}
358835
+ ` + `- Version: ${"1.1.12"}
358836
358836
  ` + `- Feedback ID: ${feedbackId}
358837
358837
  ` + `
358838
358838
  **Errors**
@@ -361945,7 +361945,7 @@ function buildPrimarySection() {
361945
361945
  }, undefined, false, undefined, this);
361946
361946
  return [{
361947
361947
  label: "Version",
361948
- value: "1.1.11"
361948
+ value: "1.1.12"
361949
361949
  }, {
361950
361950
  label: "Session name",
361951
361951
  value: nameValue
@@ -363512,11 +363512,18 @@ var exports_LocalBackendSetup = {};
363512
363512
  __export(exports_LocalBackendSetup, {
363513
363513
  LocalBackendSetup: () => LocalBackendSetup
363514
363514
  });
363515
+ function isEnter(input, key) {
363516
+ return key.return || input === "\r" || input === `
363517
+ `;
363518
+ }
363515
363519
  function SimpleMenu({ items, isActive, onSelect, onCancel }) {
363516
363520
  const VISIBLE = Math.min(7, items.length);
363517
363521
  const [focusIdx, setFocusIdx] = import_react100.useState(0);
363518
363522
  const [fromIdx, setFromIdx] = import_react100.useState(0);
363523
+ const [submitted, setSubmitted] = import_react100.useState(false);
363519
363524
  use_input_default((input, key) => {
363525
+ if (!isActive || submitted)
363526
+ return;
363520
363527
  if (key.upArrow) {
363521
363528
  setFocusIdx((prev) => {
363522
363529
  const next = Math.max(0, prev - 1);
@@ -363531,10 +363538,12 @@ function SimpleMenu({ items, isActive, onSelect, onCancel }) {
363531
363538
  setFromIdx(next - VISIBLE + 1);
363532
363539
  return next;
363533
363540
  });
363534
- } else if (key.return) {
363541
+ } else if (isEnter(input, key)) {
363535
363542
  const item = items[focusIdx];
363536
- if (item)
363543
+ if (item) {
363544
+ setSubmitted(true);
363537
363545
  onSelect(item.value);
363546
+ }
363538
363547
  } else if (key.escape || key.ctrl && input === "c") {
363539
363548
  onCancel?.();
363540
363549
  }
@@ -363619,28 +363628,37 @@ function LocalBackendSetup({
363619
363628
  const networkAbortRef = import_react100.useRef(null);
363620
363629
  const modelScanAbortRef = import_react100.useRef(null);
363621
363630
  const discoveredSnapshotRef = import_react100.useRef([]);
363631
+ const scanStepDoneRef = import_react100.useRef(false);
363622
363632
  import_react100.useEffect(() => {
363623
363633
  return () => {
363624
363634
  networkAbortRef.current?.abort();
363625
363635
  modelScanAbortRef.current?.abort();
363626
363636
  };
363627
363637
  }, []);
363638
+ import_react100.useEffect(() => {
363639
+ scanStepDoneRef.current = false;
363640
+ }, [step]);
363628
363641
  import_react100.useEffect(() => {
363629
363642
  const nextValue = step === "baseUrl" ? baseUrl : step === "model" ? model : apiKey;
363630
363643
  setCursorOffset(nextValue.length);
363631
363644
  }, [step, baseUrl, model, apiKey]);
363632
- use_input_default((_input, key) => {
363645
+ use_input_default((input, key) => {
363646
+ if (scanStepDoneRef.current)
363647
+ return;
363633
363648
  if (step === "networkScan") {
363634
- if (key.escape || key.return) {
363649
+ if (key.escape || isEnter(input, key)) {
363650
+ scanStepDoneRef.current = true;
363635
363651
  networkAbortRef.current?.abort();
363636
363652
  setDiscoveredEndpoints(discoveredSnapshotRef.current);
363637
363653
  setStep("selectEndpoint");
363638
363654
  }
363639
363655
  } else if (step === "scanningModels") {
363640
363656
  if (key.escape) {
363657
+ scanStepDoneRef.current = true;
363641
363658
  modelScanAbortRef.current?.abort();
363642
363659
  goBack();
363643
- } else if (key.return) {
363660
+ } else if (isEnter(input, key)) {
363661
+ scanStepDoneRef.current = true;
363644
363662
  modelScanAbortRef.current?.abort();
363645
363663
  setScanError("Model scan skipped. Enter the model name manually.");
363646
363664
  setAvailableModels([]);
@@ -366553,7 +366571,7 @@ function Config({
366553
366571
  }
366554
366572
  }, undefined, false, undefined, this)
366555
366573
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
366556
- currentVersion: "1.1.11",
366574
+ currentVersion: "1.1.12",
366557
366575
  onChoice: (choice) => {
366558
366576
  setShowSubmenu(null);
366559
366577
  setTabsHidden(false);
@@ -366565,7 +366583,7 @@ function Config({
366565
366583
  autoUpdatesChannel: "stable"
366566
366584
  };
366567
366585
  if (choice === "stay") {
366568
- newSettings.minimumVersion = "1.1.11";
366586
+ newSettings.minimumVersion = "1.1.12";
366569
366587
  }
366570
366588
  updateSettingsForSource("userSettings", newSettings);
366571
366589
  setSettingsData((prev_27) => ({
@@ -376298,7 +376316,7 @@ function HelpV2(t0) {
376298
376316
  let t6;
376299
376317
  if ($2[31] !== tabs) {
376300
376318
  t6 = /* @__PURE__ */ jsx_dev_runtime214.jsxDEV(Tabs, {
376301
- title: `localclawd v${"1.1.11"}`,
376319
+ title: `localclawd v${"1.1.12"}`,
376302
376320
  color: "professionalBlue",
376303
376321
  defaultTab: "general",
376304
376322
  children: tabs
@@ -400456,7 +400474,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
400456
400474
  return [];
400457
400475
  }
400458
400476
  }
400459
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.11") {
400477
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.12") {
400460
400478
  if (process.env.USER_TYPE === "ant") {
400461
400479
  const changelog = MACRO.VERSION_CHANGELOG;
400462
400480
  if (changelog) {
@@ -400483,7 +400501,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.11")
400483
400501
  releaseNotes
400484
400502
  };
400485
400503
  }
400486
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.11") {
400504
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.12") {
400487
400505
  if (process.env.USER_TYPE === "ant") {
400488
400506
  const changelog = MACRO.VERSION_CHANGELOG;
400489
400507
  if (changelog) {
@@ -401650,7 +401668,7 @@ function getRecentActivitySync() {
401650
401668
  return cachedActivity;
401651
401669
  }
401652
401670
  function getLogoDisplayData() {
401653
- const version = process.env.DEMO_VERSION ?? "1.1.11";
401671
+ const version = process.env.DEMO_VERSION ?? "1.1.12";
401654
401672
  const serverUrl = getDirectConnectServerUrl();
401655
401673
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
401656
401674
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -402924,7 +402942,7 @@ function LogoV2() {
402924
402942
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
402925
402943
  t2 = () => {
402926
402944
  const currentConfig = getGlobalConfig();
402927
- if (currentConfig.lastReleaseNotesSeen === "1.1.11") {
402945
+ if (currentConfig.lastReleaseNotesSeen === "1.1.12") {
402928
402946
  return;
402929
402947
  }
402930
402948
  saveGlobalConfig(_temp327);
@@ -403600,12 +403618,12 @@ function LogoV2() {
403600
403618
  return t41;
403601
403619
  }
403602
403620
  function _temp327(current) {
403603
- if (current.lastReleaseNotesSeen === "1.1.11") {
403621
+ if (current.lastReleaseNotesSeen === "1.1.12") {
403604
403622
  return current;
403605
403623
  }
403606
403624
  return {
403607
403625
  ...current,
403608
- lastReleaseNotesSeen: "1.1.11"
403626
+ lastReleaseNotesSeen: "1.1.12"
403609
403627
  };
403610
403628
  }
403611
403629
  function _temp245(s_0) {
@@ -429807,7 +429825,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
429807
429825
  smapsRollup,
429808
429826
  platform: process.platform,
429809
429827
  nodeVersion: process.version,
429810
- ccVersion: "1.1.11"
429828
+ ccVersion: "1.1.12"
429811
429829
  };
429812
429830
  }
429813
429831
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -430392,7 +430410,7 @@ var init_bridge_kick = __esm(() => {
430392
430410
  var call64 = async () => {
430393
430411
  return {
430394
430412
  type: "text",
430395
- value: `${"1.1.11"} (built ${"2026-04-07T15:28:04.082Z"})`
430413
+ value: `${"1.1.12"} (built ${"2026-04-07T16:21:50.781Z"})`
430396
430414
  };
430397
430415
  }, version, version_default;
430398
430416
  var init_version = __esm(() => {
@@ -439330,7 +439348,7 @@ function generateHtmlReport(data, insights) {
439330
439348
  </html>`;
439331
439349
  }
439332
439350
  function buildExportData(data, insights, facets, remoteStats) {
439333
- const version2 = typeof MACRO !== "undefined" ? "1.1.11" : "unknown";
439351
+ const version2 = typeof MACRO !== "undefined" ? "1.1.12" : "unknown";
439334
439352
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
439335
439353
  const facets_summary = {
439336
439354
  total: facets.size,
@@ -443497,7 +443515,7 @@ var init_sessionStorage = __esm(() => {
443497
443515
  init_settings2();
443498
443516
  init_slowOperations();
443499
443517
  init_uuid();
443500
- VERSION6 = typeof MACRO !== "undefined" ? "1.1.11" : "unknown";
443518
+ VERSION6 = typeof MACRO !== "undefined" ? "1.1.12" : "unknown";
443501
443519
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
443502
443520
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
443503
443521
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -444699,7 +444717,7 @@ var init_filesystem = __esm(() => {
444699
444717
  });
444700
444718
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
444701
444719
  const nonce = randomBytes19(16).toString("hex");
444702
- return join130(getClaudeTempDir(), "bundled-skills", "1.1.11", nonce);
444720
+ return join130(getClaudeTempDir(), "bundled-skills", "1.1.12", nonce);
444703
444721
  });
444704
444722
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
444705
444723
  });
@@ -450698,7 +450716,7 @@ function computeFingerprint(messageText, version2) {
450698
450716
  }
450699
450717
  function computeFingerprintFromMessages(messages) {
450700
450718
  const firstMessageText = extractFirstMessageText(messages);
450701
- return computeFingerprint(firstMessageText, "1.1.11");
450719
+ return computeFingerprint(firstMessageText, "1.1.12");
450702
450720
  }
450703
450721
  var FINGERPRINT_SALT = "59cf53e54c78";
450704
450722
  var init_fingerprint = () => {};
@@ -452553,7 +452571,7 @@ async function sideQuery(opts) {
452553
452571
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
452554
452572
  }
452555
452573
  const messageText = extractFirstUserMessageText(messages);
452556
- const fingerprint = computeFingerprint(messageText, "1.1.11");
452574
+ const fingerprint = computeFingerprint(messageText, "1.1.12");
452557
452575
  const attributionHeader = getAttributionHeader(fingerprint);
452558
452576
  const systemBlocks = [
452559
452577
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -457351,7 +457369,7 @@ function buildSystemInitMessage(inputs) {
457351
457369
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
457352
457370
  apiKeySource: getAnthropicApiKeyWithSource().source,
457353
457371
  betas: getSdkBetas(),
457354
- claude_code_version: "1.1.11",
457372
+ claude_code_version: "1.1.12",
457355
457373
  output_style: outputStyle2,
457356
457374
  agents: inputs.agents.map((agent) => agent.agentType),
457357
457375
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -471930,7 +471948,7 @@ var init_useVoiceEnabled = __esm(() => {
471930
471948
  function getSemverPart(version2) {
471931
471949
  return `${import_semver12.major(version2, { loose: true })}.${import_semver12.minor(version2, { loose: true })}.${import_semver12.patch(version2, { loose: true })}`;
471932
471950
  }
471933
- function useUpdateNotification(updatedVersion, initialVersion = "1.1.11") {
471951
+ function useUpdateNotification(updatedVersion, initialVersion = "1.1.12") {
471934
471952
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react228.useState(() => getSemverPart(initialVersion));
471935
471953
  if (!updatedVersion) {
471936
471954
  return null;
@@ -471970,7 +471988,7 @@ function AutoUpdater({
471970
471988
  return;
471971
471989
  }
471972
471990
  if (false) {}
471973
- const currentVersion = "1.1.11";
471991
+ const currentVersion = "1.1.12";
471974
471992
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
471975
471993
  let latestVersion = await getLatestVersion(channel);
471976
471994
  const isDisabled = isAutoUpdaterDisabled();
@@ -472181,12 +472199,12 @@ function NativeAutoUpdater({
472181
472199
  logEvent("tengu_native_auto_updater_start", {});
472182
472200
  try {
472183
472201
  const maxVersion = await getMaxVersion();
472184
- if (maxVersion && gt("1.1.11", maxVersion)) {
472202
+ if (maxVersion && gt("1.1.12", maxVersion)) {
472185
472203
  const msg = await getMaxVersionMessage();
472186
472204
  setMaxVersionIssue(msg ?? "affects your version");
472187
472205
  }
472188
472206
  const result = await installLatest(channel);
472189
- const currentVersion = "1.1.11";
472207
+ const currentVersion = "1.1.12";
472190
472208
  const latencyMs = Date.now() - startTime;
472191
472209
  if (result.lockFailed) {
472192
472210
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -472321,17 +472339,17 @@ function PackageManagerAutoUpdater(t0) {
472321
472339
  const maxVersion = await getMaxVersion();
472322
472340
  if (maxVersion && latest && gt(latest, maxVersion)) {
472323
472341
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
472324
- if (gte("1.1.11", maxVersion)) {
472325
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.11"} is already at or above maxVersion ${maxVersion}, skipping update`);
472342
+ if (gte("1.1.12", maxVersion)) {
472343
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.12"} is already at or above maxVersion ${maxVersion}, skipping update`);
472326
472344
  setUpdateAvailable(false);
472327
472345
  return;
472328
472346
  }
472329
472347
  latest = maxVersion;
472330
472348
  }
472331
- const hasUpdate = latest && !gte("1.1.11", latest) && !shouldSkipVersion(latest);
472349
+ const hasUpdate = latest && !gte("1.1.12", latest) && !shouldSkipVersion(latest);
472332
472350
  setUpdateAvailable(!!hasUpdate);
472333
472351
  if (hasUpdate) {
472334
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.11"} -> ${latest}`);
472352
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.12"} -> ${latest}`);
472335
472353
  }
472336
472354
  };
472337
472355
  $2[0] = t1;
@@ -472365,7 +472383,7 @@ function PackageManagerAutoUpdater(t0) {
472365
472383
  wrap: "truncate",
472366
472384
  children: [
472367
472385
  "currentVersion: ",
472368
- "1.1.11"
472386
+ "1.1.12"
472369
472387
  ]
472370
472388
  }, undefined, true, undefined, this);
472371
472389
  $2[3] = verbose;
@@ -479923,7 +479941,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
479923
479941
  project_dir: getOriginalCwd(),
479924
479942
  added_dirs: addedDirs
479925
479943
  },
479926
- version: "1.1.11",
479944
+ version: "1.1.12",
479927
479945
  output_style: {
479928
479946
  name: outputStyleName
479929
479947
  },
@@ -491483,7 +491501,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
491483
491501
  } catch {}
491484
491502
  const data = {
491485
491503
  trigger,
491486
- version: "1.1.11",
491504
+ version: "1.1.12",
491487
491505
  platform: process.platform,
491488
491506
  transcript,
491489
491507
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -503072,7 +503090,7 @@ function WelcomeV2() {
503072
503090
  dimColor: true,
503073
503091
  children: [
503074
503092
  "v",
503075
- "1.1.11"
503093
+ "1.1.12"
503076
503094
  ]
503077
503095
  }, undefined, true, undefined, this)
503078
503096
  ]
@@ -503103,16 +503121,24 @@ __export(exports_StartPage, {
503103
503121
  function hasSavedBackendConfig(config2) {
503104
503122
  return Boolean(config2?.provider && config2?.baseUrl?.trim() && config2?.model?.trim());
503105
503123
  }
503124
+ function isEnter2(input, key) {
503125
+ return key.return || input === "\r" || input === `
503126
+ `;
503127
+ }
503106
503128
  function StartPage({ currentConfig, onDone }) {
503107
503129
  const hasSavedConfig = hasSavedBackendConfig(currentConfig);
503108
503130
  const options = hasSavedConfig ? CONTINUE_OPTIONS : SETUP_OPTIONS;
503109
503131
  const [focusIdx, setFocusIdx] = import_react321.useState(0);
503132
+ const [submitted, setSubmitted] = import_react321.useState(false);
503110
503133
  use_input_default((input, key) => {
503134
+ if (submitted)
503135
+ return;
503111
503136
  if (key.upArrow) {
503112
503137
  setFocusIdx((i2) => (i2 - 1 + options.length) % options.length);
503113
503138
  } else if (key.downArrow) {
503114
503139
  setFocusIdx((i2) => (i2 + 1) % options.length);
503115
- } else if (key.return) {
503140
+ } else if (isEnter2(input, key)) {
503141
+ setSubmitted(true);
503116
503142
  onDone(options[focusIdx].value);
503117
503143
  } else if (key.escape || key.ctrl && input === "c") {
503118
503144
  gracefulShutdownSync(0);
@@ -503393,11 +503419,18 @@ var exports_Onboarding = {};
503393
503419
  __export(exports_Onboarding, {
503394
503420
  Onboarding: () => Onboarding
503395
503421
  });
503422
+ function isEnter3(input, key) {
503423
+ return key.return || input === "\r" || input === `
503424
+ `;
503425
+ }
503396
503426
  function SimpleMenu2({ items, isActive, onSelect, onCancel }) {
503397
503427
  const VISIBLE = Math.min(7, items.length);
503398
503428
  const [focusIdx, setFocusIdx] = import_react324.useState(0);
503399
503429
  const [fromIdx, setFromIdx] = import_react324.useState(0);
503430
+ const [submitted, setSubmitted] = import_react324.useState(false);
503400
503431
  use_input_default((input, key) => {
503432
+ if (!isActive || submitted)
503433
+ return;
503401
503434
  if (key.upArrow) {
503402
503435
  setFocusIdx((prev) => {
503403
503436
  const next = Math.max(0, prev - 1);
@@ -503412,14 +503445,16 @@ function SimpleMenu2({ items, isActive, onSelect, onCancel }) {
503412
503445
  setFromIdx(next - VISIBLE + 1);
503413
503446
  return next;
503414
503447
  });
503415
- } else if (key.return) {
503448
+ } else if (isEnter3(input, key)) {
503416
503449
  const item = items[focusIdx];
503417
- if (item)
503450
+ if (item) {
503451
+ setSubmitted(true);
503418
503452
  onSelect(item.value);
503453
+ }
503419
503454
  } else if (key.escape || key.ctrl && input === "c") {
503420
503455
  onCancel?.();
503421
503456
  }
503422
- }, { isActive });
503457
+ });
503423
503458
  const visible = items.slice(fromIdx, fromIdx + VISIBLE);
503424
503459
  return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
503425
503460
  flexDirection: "column",
@@ -503454,10 +503489,15 @@ function SimpleMenu2({ items, isActive, onSelect, onCancel }) {
503454
503489
  }, undefined, true, undefined, this);
503455
503490
  }
503456
503491
  function PressEnterToContinue2({ isActive, onContinue }) {
503457
- use_input_default((_input, key) => {
503458
- if (key.return)
503492
+ const [done, setDone] = import_react324.useState(false);
503493
+ use_input_default((input, key) => {
503494
+ if (!isActive || done)
503495
+ return;
503496
+ if (isEnter3(input, key)) {
503497
+ setDone(true);
503459
503498
  onContinue();
503460
- }, { isActive });
503499
+ }
503500
+ });
503461
503501
  return /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
503462
503502
  color: "permission",
503463
503503
  children: [
@@ -503725,38 +503765,42 @@ __export(exports_TrustDialog, {
503725
503765
  TrustDialog: () => TrustDialog
503726
503766
  });
503727
503767
  import { homedir as homedir36 } from "os";
503768
+ function isEnter4(input, key) {
503769
+ return key.return || input === "\r" || input === `
503770
+ `;
503771
+ }
503728
503772
  function TrustDialog({ onDone }) {
503729
- const hasTrustDialogAccepted = checkHasTrustDialogAccepted();
503730
503773
  const [focusIdx, setFocusIdx] = import_react325.useState(0);
503774
+ const [accepted, setAccepted] = import_react325.useState(false);
503731
503775
  import_react325.useEffect(() => {
503732
- if (hasTrustDialogAccepted) {
503776
+ if (checkHasTrustDialogAccepted()) {
503733
503777
  setSessionTrustAccepted(true);
503778
+ setAccepted(true);
503734
503779
  onDone();
503735
503780
  }
503736
- }, [hasTrustDialogAccepted, onDone]);
503781
+ }, []);
503737
503782
  use_input_default((input, key) => {
503738
- if (hasTrustDialogAccepted)
503783
+ if (accepted)
503739
503784
  return;
503740
503785
  if (key.upArrow) {
503741
503786
  setFocusIdx((i2) => (i2 - 1 + OPTIONS.length) % OPTIONS.length);
503742
503787
  } else if (key.downArrow) {
503743
503788
  setFocusIdx((i2) => (i2 + 1) % OPTIONS.length);
503744
- } else if (key.return) {
503789
+ } else if (isEnter4(input, key)) {
503745
503790
  const chosen = OPTIONS[focusIdx];
503746
503791
  if (chosen?.value === "exit") {
503747
503792
  gracefulShutdownSync(1);
503748
503793
  } else {
503749
503794
  try {
503750
503795
  const isHomeDir = homedir36() === getCwd();
503751
- if (isHomeDir) {
503752
- setSessionTrustAccepted(true);
503753
- } else {
503796
+ if (!isHomeDir) {
503754
503797
  try {
503755
503798
  saveCurrentProjectConfig((current) => ({ ...current, hasTrustDialogAccepted: true }));
503756
503799
  } catch {}
503757
- setSessionTrustAccepted(true);
503758
503800
  }
503801
+ setSessionTrustAccepted(true);
503759
503802
  } finally {
503803
+ setAccepted(true);
503760
503804
  onDone();
503761
503805
  }
503762
503806
  }
@@ -503764,9 +503808,21 @@ function TrustDialog({ onDone }) {
503764
503808
  gracefulShutdownSync(0);
503765
503809
  }
503766
503810
  });
503767
- if (hasTrustDialogAccepted)
503768
- return null;
503769
503811
  const cwd2 = getFsImplementation().cwd();
503812
+ if (accepted) {
503813
+ return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(PermissionDialog, {
503814
+ color: "warning",
503815
+ titleColor: "warning",
503816
+ title: "Accessing workspace:",
503817
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
503818
+ paddingTop: 1,
503819
+ children: /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
503820
+ dimColor: true,
503821
+ children: "Trusted. Loading…"
503822
+ }, undefined, false, undefined, this)
503823
+ }, undefined, false, undefined, this)
503824
+ }, undefined, false, undefined, this);
503825
+ }
503770
503826
  return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(PermissionDialog, {
503771
503827
  color: "warning",
503772
503828
  titleColor: "warning",
@@ -504139,7 +504195,7 @@ function completeOnboarding() {
504139
504195
  saveGlobalConfig((current) => ({
504140
504196
  ...current,
504141
504197
  hasCompletedOnboarding: true,
504142
- lastOnboardingVersion: "1.1.11"
504198
+ lastOnboardingVersion: "1.1.12"
504143
504199
  }));
504144
504200
  }
504145
504201
  function showDialog(root3, renderer) {
@@ -508698,7 +508754,7 @@ function appendToLog(path17, message) {
508698
508754
  cwd: getFsImplementation().cwd(),
508699
508755
  userType: process.env.USER_TYPE,
508700
508756
  sessionId: getSessionId(),
508701
- version: "1.1.11"
508757
+ version: "1.1.12"
508702
508758
  };
508703
508759
  getLogWriter(path17).write(messageWithTimestamp);
508704
508760
  }
@@ -512698,8 +512754,8 @@ async function getEnvLessBridgeConfig() {
512698
512754
  }
512699
512755
  async function checkEnvLessBridgeMinVersion() {
512700
512756
  const cfg = await getEnvLessBridgeConfig();
512701
- if (cfg.min_version && lt("1.1.11", cfg.min_version)) {
512702
- return `Your version of localclawd (${"1.1.11"}) is too old for Remote Control.
512757
+ if (cfg.min_version && lt("1.1.12", cfg.min_version)) {
512758
+ return `Your version of localclawd (${"1.1.12"}) is too old for Remote Control.
512703
512759
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
512704
512760
  }
512705
512761
  return null;
@@ -513171,7 +513227,7 @@ async function initBridgeCore(params) {
513171
513227
  const rawApi = createBridgeApiClient({
513172
513228
  baseUrl,
513173
513229
  getAccessToken,
513174
- runnerVersion: "1.1.11",
513230
+ runnerVersion: "1.1.12",
513175
513231
  onDebug: logForDebugging,
513176
513232
  onAuth401,
513177
513233
  getTrustedDeviceToken
@@ -518827,7 +518883,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
518827
518883
  setCwd(cwd3);
518828
518884
  const server = new Server({
518829
518885
  name: "claude/tengu",
518830
- version: "1.1.11"
518886
+ version: "1.1.12"
518831
518887
  }, {
518832
518888
  capabilities: {
518833
518889
  tools: {}
@@ -520432,7 +520488,7 @@ __export(exports_update, {
520432
520488
  });
520433
520489
  async function update() {
520434
520490
  logEvent("tengu_update_check", {});
520435
- writeToStdout(`Current version: ${"1.1.11"}
520491
+ writeToStdout(`Current version: ${"1.1.12"}
520436
520492
  `);
520437
520493
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
520438
520494
  writeToStdout(`Checking for updates to ${channel} version...
@@ -520507,8 +520563,8 @@ async function update() {
520507
520563
  writeToStdout(`localclawd is managed by Homebrew.
520508
520564
  `);
520509
520565
  const latest = await getLatestVersion(channel);
520510
- if (latest && !gte("1.1.11", latest)) {
520511
- writeToStdout(`Update available: ${"1.1.11"} → ${latest}
520566
+ if (latest && !gte("1.1.12", latest)) {
520567
+ writeToStdout(`Update available: ${"1.1.12"} → ${latest}
520512
520568
  `);
520513
520569
  writeToStdout(`
520514
520570
  `);
@@ -520524,8 +520580,8 @@ async function update() {
520524
520580
  writeToStdout(`localclawd is managed by winget.
520525
520581
  `);
520526
520582
  const latest = await getLatestVersion(channel);
520527
- if (latest && !gte("1.1.11", latest)) {
520528
- writeToStdout(`Update available: ${"1.1.11"} → ${latest}
520583
+ if (latest && !gte("1.1.12", latest)) {
520584
+ writeToStdout(`Update available: ${"1.1.12"} → ${latest}
520529
520585
  `);
520530
520586
  writeToStdout(`
520531
520587
  `);
@@ -520539,8 +520595,8 @@ async function update() {
520539
520595
  writeToStdout(`localclawd is managed by apk.
520540
520596
  `);
520541
520597
  const latest = await getLatestVersion(channel);
520542
- if (latest && !gte("1.1.11", latest)) {
520543
- writeToStdout(`Update available: ${"1.1.11"} → ${latest}
520598
+ if (latest && !gte("1.1.12", latest)) {
520599
+ writeToStdout(`Update available: ${"1.1.12"} → ${latest}
520544
520600
  `);
520545
520601
  writeToStdout(`
520546
520602
  `);
@@ -520605,11 +520661,11 @@ async function update() {
520605
520661
  `);
520606
520662
  await gracefulShutdown(1);
520607
520663
  }
520608
- if (result.latestVersion === "1.1.11") {
520609
- writeToStdout(source_default.green(`localclawd is up to date (${"1.1.11"})`) + `
520664
+ if (result.latestVersion === "1.1.12") {
520665
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.1.12"})`) + `
520610
520666
  `);
520611
520667
  } else {
520612
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.11"} to version ${result.latestVersion}`) + `
520668
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.12"} to version ${result.latestVersion}`) + `
520613
520669
  `);
520614
520670
  await regenerateCompletionCache();
520615
520671
  }
@@ -520669,12 +520725,12 @@ async function update() {
520669
520725
  `);
520670
520726
  await gracefulShutdown(1);
520671
520727
  }
520672
- if (latestVersion === "1.1.11") {
520673
- writeToStdout(source_default.green(`localclawd is up to date (${"1.1.11"})`) + `
520728
+ if (latestVersion === "1.1.12") {
520729
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.1.12"})`) + `
520674
520730
  `);
520675
520731
  await gracefulShutdown(0);
520676
520732
  }
520677
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.11"})
520733
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.12"})
520678
520734
  `);
520679
520735
  writeToStdout(`Installing update...
520680
520736
  `);
@@ -520719,7 +520775,7 @@ async function update() {
520719
520775
  logForDebugging(`update: Installation status: ${status2}`);
520720
520776
  switch (status2) {
520721
520777
  case "success":
520722
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.11"} to version ${latestVersion}`) + `
520778
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.12"} to version ${latestVersion}`) + `
520723
520779
  `);
520724
520780
  await regenerateCompletionCache();
520725
520781
  break;
@@ -521984,7 +522040,7 @@ ${customInstructions}` : customInstructions;
521984
522040
  }
521985
522041
  }
521986
522042
  logForDiagnosticsNoPII("info", "started", {
521987
- version: "1.1.11",
522043
+ version: "1.1.12",
521988
522044
  is_native_binary: isInBundledMode()
521989
522045
  });
521990
522046
  registerCleanup(async () => {
@@ -522768,7 +522824,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
522768
522824
  pendingHookMessages
522769
522825
  }, renderAndRun);
522770
522826
  }
522771
- }).version("1.1.11 (localClawd)", "-v, --version", "Output the version number");
522827
+ }).version("1.1.12 (localClawd)", "-v, --version", "Output the version number");
522772
522828
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
522773
522829
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
522774
522830
  if (canUserConfigureAdvisor()) {
@@ -523276,7 +523332,7 @@ if (false) {}
523276
523332
  async function main2() {
523277
523333
  const args = process.argv.slice(2);
523278
523334
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
523279
- console.log(`${"1.1.11"} (localclawd)`);
523335
+ console.log(`${"1.1.12"} (localclawd)`);
523280
523336
  return;
523281
523337
  }
523282
523338
  const {
@@ -523360,4 +523416,4 @@ async function main2() {
523360
523416
  }
523361
523417
  main2();
523362
523418
 
523363
- //# debugId=A19C602AE08D364F64756E2164756E21
523419
+ //# debugId=3315EDB7491D062464756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.1.11",
3
+ "version": "1.1.12",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",