localclawd 1.3.9 → 1.4.0

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 +87 -79
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -87564,7 +87564,7 @@ var init_isEqual = __esm(() => {
87564
87564
 
87565
87565
  // src/utils/userAgent.ts
87566
87566
  function getClaudeCodeUserAgent() {
87567
- return `claude-code/${"1.3.9"}`;
87567
+ return `claude-code/${"1.4.0"}`;
87568
87568
  }
87569
87569
 
87570
87570
  // src/utils/workloadContext.ts
@@ -87586,7 +87586,7 @@ function getUserAgent() {
87586
87586
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
87587
87587
  const workload = getWorkload();
87588
87588
  const workloadSuffix = workload ? `, workload/${workload}` : "";
87589
- return `claude-cli/${"1.3.9"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87589
+ return `claude-cli/${"1.4.0"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
87590
87590
  }
87591
87591
  function getMCPUserAgent() {
87592
87592
  const parts = [];
@@ -87600,7 +87600,7 @@ function getMCPUserAgent() {
87600
87600
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
87601
87601
  }
87602
87602
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
87603
- return `claude-code/${"1.3.9"}${suffix}`;
87603
+ return `claude-code/${"1.4.0"}${suffix}`;
87604
87604
  }
87605
87605
  function getWebFetchUserAgent() {
87606
87606
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -98018,6 +98018,11 @@ __export(exports_model, {
98018
98018
  firstPartyNameToCanonical: () => firstPartyNameToCanonical
98019
98019
  });
98020
98020
  function getSmallFastModel() {
98021
+ if (getAPIProvider() === "local") {
98022
+ const localModel = getLocalLLMModel();
98023
+ if (localModel)
98024
+ return localModel;
98025
+ }
98021
98026
  return process.env.ANTHROPIC_SMALL_FAST_MODEL || getDefaultHaikuModel();
98022
98027
  }
98023
98028
  function isNonCustomOpusModel(model) {
@@ -130791,7 +130796,7 @@ function getAttributionHeader(fingerprint) {
130791
130796
  if (!isAttributionHeaderEnabled()) {
130792
130797
  return "";
130793
130798
  }
130794
- const version = `${"1.3.9"}.${fingerprint}`;
130799
+ const version = `${"1.4.0"}.${fingerprint}`;
130795
130800
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
130796
130801
  const cch = "";
130797
130802
  const workload = getWorkload();
@@ -146980,7 +146985,7 @@ var init_metadata = __esm(() => {
146980
146985
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
146981
146986
  WHITESPACE_REGEX = /\s+/;
146982
146987
  getVersionBase = memoize_default(() => {
146983
- const match = "1.3.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
146988
+ const match = "1.4.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
146984
146989
  return match ? match[0] : undefined;
146985
146990
  });
146986
146991
  buildEnvContext = memoize_default(async () => {
@@ -147020,9 +147025,9 @@ var init_metadata = __esm(() => {
147020
147025
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
147021
147026
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
147022
147027
  isClaudeAiAuth: isClaudeAISubscriber(),
147023
- version: "1.3.9",
147028
+ version: "1.4.0",
147024
147029
  versionBase: getVersionBase(),
147025
- buildTime: "2026-04-26T12:40:09.729Z",
147030
+ buildTime: "2026-04-26T12:47:25.253Z",
147026
147031
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
147027
147032
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
147028
147033
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -179501,7 +179506,7 @@ function getTelemetryAttributes() {
179501
179506
  attributes["session.id"] = sessionId;
179502
179507
  }
179503
179508
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
179504
- attributes["app.version"] = "1.3.9";
179509
+ attributes["app.version"] = "1.4.0";
179505
179510
  }
179506
179511
  const oauthAccount = getOauthAccountInfo();
179507
179512
  if (oauthAccount) {
@@ -242293,7 +242298,7 @@ function getInstallationEnv() {
242293
242298
  return;
242294
242299
  }
242295
242300
  function getClaudeCodeVersion() {
242296
- return "1.3.9";
242301
+ return "1.4.0";
242297
242302
  }
242298
242303
  async function getInstalledVSCodeExtensionVersion(command) {
242299
242304
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -247567,7 +247572,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
247567
247572
  const client4 = new Client({
247568
247573
  name: "localclawd",
247569
247574
  title: "localclawd",
247570
- version: "1.3.9",
247575
+ version: "1.4.0",
247571
247576
  description: "local-first AI coding tool",
247572
247577
  websiteUrl: PRODUCT_URL
247573
247578
  }, {
@@ -247909,7 +247914,7 @@ var init_client9 = __esm(() => {
247909
247914
  const client4 = new Client({
247910
247915
  name: "localclawd",
247911
247916
  title: "localclawd",
247912
- version: "1.3.9",
247917
+ version: "1.4.0",
247913
247918
  description: "local-first AI coding tool",
247914
247919
  websiteUrl: PRODUCT_URL
247915
247920
  }, {
@@ -253509,6 +253514,9 @@ function formatModelUsage() {
253509
253514
  }
253510
253515
  let result = "Usage by model:";
253511
253516
  for (const [shortName, usage] of Object.entries(usageByShortName)) {
253517
+ const hasAnyUse = usage.inputTokens > 0 || usage.outputTokens > 0 || usage.cacheReadInputTokens > 0 || usage.cacheCreationInputTokens > 0 || usage.webSearchRequests > 0;
253518
+ if (!hasAnyUse)
253519
+ continue;
253512
253520
  const usageString = ` ${formatNumber(usage.inputTokens)} input, ` + `${formatNumber(usage.outputTokens)} output, ` + `${formatNumber(usage.cacheReadInputTokens)} cache read, ` + `${formatNumber(usage.cacheCreationInputTokens)} cache write` + (usage.webSearchRequests > 0 ? `, ${formatNumber(usage.webSearchRequests)} web search` : "");
253513
253521
  result += `
253514
253522
  ` + `${shortName}:`.padStart(21) + usageString;
@@ -262299,7 +262307,7 @@ function computeFingerprint(messageText, version) {
262299
262307
  }
262300
262308
  function computeFingerprintFromMessages(messages) {
262301
262309
  const firstMessageText = extractFirstMessageText(messages);
262302
- return computeFingerprint(firstMessageText, "1.3.9");
262310
+ return computeFingerprint(firstMessageText, "1.4.0");
262303
262311
  }
262304
262312
  var FINGERPRINT_SALT = "59cf53e54c78";
262305
262313
  var init_fingerprint = () => {};
@@ -262341,7 +262349,7 @@ async function sideQuery(opts) {
262341
262349
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
262342
262350
  }
262343
262351
  const messageText = extractFirstUserMessageText(messages);
262344
- const fingerprint = computeFingerprint(messageText, "1.3.9");
262352
+ const fingerprint = computeFingerprint(messageText, "1.4.0");
262345
262353
  const attributionHeader = getAttributionHeader(fingerprint);
262346
262354
  const systemBlocks = [
262347
262355
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -283065,7 +283073,7 @@ var init_user = __esm(() => {
283065
283073
  deviceId,
283066
283074
  sessionId: getSessionId(),
283067
283075
  email: getEmail(),
283068
- appVersion: "1.3.9",
283076
+ appVersion: "1.4.0",
283069
283077
  platform: getHostPlatformForAnalytics(),
283070
283078
  organizationUuid,
283071
283079
  accountUuid,
@@ -284130,7 +284138,7 @@ async function initializeBetaTracing(resource) {
284130
284138
  });
284131
284139
  logs.setGlobalLoggerProvider(loggerProvider);
284132
284140
  setLoggerProvider(loggerProvider);
284133
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.3.9");
284141
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.4.0");
284134
284142
  setEventLogger(eventLogger);
284135
284143
  process.on("beforeExit", async () => {
284136
284144
  await loggerProvider?.forceFlush();
@@ -284170,7 +284178,7 @@ async function initializeTelemetry() {
284170
284178
  const platform2 = getPlatform();
284171
284179
  const baseAttributes = {
284172
284180
  [ATTR_SERVICE_NAME4]: "claude-code",
284173
- [ATTR_SERVICE_VERSION4]: "1.3.9"
284181
+ [ATTR_SERVICE_VERSION4]: "1.4.0"
284174
284182
  };
284175
284183
  if (platform2 === "wsl") {
284176
284184
  const wslVersion = getWslVersion();
@@ -284215,7 +284223,7 @@ async function initializeTelemetry() {
284215
284223
  } catch {}
284216
284224
  };
284217
284225
  registerCleanup(shutdownTelemetry2);
284218
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.3.9");
284226
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.4.0");
284219
284227
  }
284220
284228
  const meterProvider = new MeterProvider4({
284221
284229
  resource,
@@ -284235,7 +284243,7 @@ async function initializeTelemetry() {
284235
284243
  });
284236
284244
  logs.setGlobalLoggerProvider(loggerProvider);
284237
284245
  setLoggerProvider(loggerProvider);
284238
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.3.9");
284246
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.4.0");
284239
284247
  setEventLogger(eventLogger);
284240
284248
  logForDebugging("[3P telemetry] Event logger set successfully");
284241
284249
  process.on("beforeExit", async () => {
@@ -284297,7 +284305,7 @@ Current timeout: ${timeoutMs}ms
284297
284305
  }
284298
284306
  };
284299
284307
  registerCleanup(shutdownTelemetry);
284300
- return meterProvider.getMeter("com.anthropic.claude_code", "1.3.9");
284308
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.4.0");
284301
284309
  }
284302
284310
  async function flushTelemetry() {
284303
284311
  const meterProvider = getMeterProvider();
@@ -285487,7 +285495,7 @@ function detectLinuxGlobPatternWarnings() {
285487
285495
  }
285488
285496
  async function getDoctorDiagnostic() {
285489
285497
  const installationType = await getCurrentInstallationType();
285490
- const version = typeof MACRO !== "undefined" ? "1.3.9" : "unknown";
285498
+ const version = typeof MACRO !== "undefined" ? "1.4.0" : "unknown";
285491
285499
  const installationPath = await getInstallationPath();
285492
285500
  const invokedBinary = getInvokedBinary();
285493
285501
  const multipleInstallations = await detectMultipleInstallations();
@@ -286428,8 +286436,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286428
286436
  const maxVersion = await getMaxVersion();
286429
286437
  if (maxVersion && gt(version, maxVersion)) {
286430
286438
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
286431
- if (gte("1.3.9", maxVersion)) {
286432
- logForDebugging(`Native installer: current version ${"1.3.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
286439
+ if (gte("1.4.0", maxVersion)) {
286440
+ logForDebugging(`Native installer: current version ${"1.4.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
286433
286441
  logEvent("tengu_native_update_skipped_max_version", {
286434
286442
  latency_ms: Date.now() - startTime,
286435
286443
  max_version: maxVersion,
@@ -286440,7 +286448,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
286440
286448
  version = maxVersion;
286441
286449
  }
286442
286450
  }
286443
- if (!forceReinstall && version === "1.3.9" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286451
+ if (!forceReinstall && version === "1.4.0" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
286444
286452
  logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
286445
286453
  logEvent("tengu_native_update_complete", {
286446
286454
  latency_ms: Date.now() - startTime,
@@ -330723,7 +330731,7 @@ async function* queryLoop(params, consumedCommandUuids) {
330723
330731
  __callDispose(__stack, _err, _hasErr);
330724
330732
  }
330725
330733
  }
330726
- var reactiveCompact = null, skillPrefetch = null, MAX_OUTPUT_TOKENS_RECOVERY_LIMIT = 3;
330734
+ var reactiveCompact = null, skillPrefetch = null, MAX_OUTPUT_TOKENS_RECOVERY_LIMIT = 8;
330727
330735
  var init_query2 = __esm(() => {
330728
330736
  init_withRetry();
330729
330737
  init_autoCompact();
@@ -330829,7 +330837,7 @@ function getAnthropicEnvMetadata() {
330829
330837
  function getBuildAgeMinutes() {
330830
330838
  if (false)
330831
330839
  ;
330832
- const buildTime = new Date("2026-04-26T12:40:09.729Z").getTime();
330840
+ const buildTime = new Date("2026-04-26T12:47:25.253Z").getTime();
330833
330841
  if (isNaN(buildTime))
330834
330842
  return;
330835
330843
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -359154,7 +359162,7 @@ function Feedback({
359154
359162
  platform: env3.platform,
359155
359163
  gitRepo: envInfo.isGit,
359156
359164
  terminal: env3.terminal,
359157
- version: "1.3.9",
359165
+ version: "1.4.0",
359158
359166
  transcript: normalizeMessagesForAPI(messages),
359159
359167
  errors: sanitizedErrors,
359160
359168
  lastApiRequest: getLastAPIRequest(),
@@ -359346,7 +359354,7 @@ function Feedback({
359346
359354
  ", ",
359347
359355
  env3.terminal,
359348
359356
  ", v",
359349
- "1.3.9"
359357
+ "1.4.0"
359350
359358
  ]
359351
359359
  }, undefined, true, undefined, this)
359352
359360
  ]
@@ -359452,7 +359460,7 @@ ${sanitizedDescription}
359452
359460
  ` + `**Environment Info**
359453
359461
  ` + `- Platform: ${env3.platform}
359454
359462
  ` + `- Terminal: ${env3.terminal}
359455
- ` + `- Version: ${"1.3.9"}
359463
+ ` + `- Version: ${"1.4.0"}
359456
359464
  ` + `- Feedback ID: ${feedbackId}
359457
359465
  ` + `
359458
359466
  **Errors**
@@ -362080,7 +362088,7 @@ function buildPrimarySection() {
362080
362088
  }, undefined, false, undefined, this);
362081
362089
  return [{
362082
362090
  label: "Version",
362083
- value: "1.3.9"
362091
+ value: "1.4.0"
362084
362092
  }, {
362085
362093
  label: "Session name",
362086
362094
  value: nameValue
@@ -366761,7 +366769,7 @@ function Config({
366761
366769
  }
366762
366770
  }, undefined, false, undefined, this)
366763
366771
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime175.jsxDEV(ChannelDowngradeDialog, {
366764
- currentVersion: "1.3.9",
366772
+ currentVersion: "1.4.0",
366765
366773
  onChoice: (choice) => {
366766
366774
  setShowSubmenu(null);
366767
366775
  setTabsHidden(false);
@@ -366773,7 +366781,7 @@ function Config({
366773
366781
  autoUpdatesChannel: "stable"
366774
366782
  };
366775
366783
  if (choice === "stay") {
366776
- newSettings.minimumVersion = "1.3.9";
366784
+ newSettings.minimumVersion = "1.4.0";
366777
366785
  }
366778
366786
  updateSettingsForSource("userSettings", newSettings);
366779
366787
  setSettingsData((prev_27) => ({
@@ -383211,7 +383219,7 @@ function Help(t0) {
383211
383219
  let t6;
383212
383220
  if ($2[31] !== tabs) {
383213
383221
  t6 = /* @__PURE__ */ jsx_dev_runtime232.jsxDEV(Tabs, {
383214
- title: `localclawd v${"1.3.9"}`,
383222
+ title: `localclawd v${"1.4.0"}`,
383215
383223
  color: "professionalBlue",
383216
383224
  defaultTab: "general",
383217
383225
  children: tabs
@@ -400473,7 +400481,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
400473
400481
  }
400474
400482
  return [];
400475
400483
  }
400476
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.9") {
400484
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.4.0") {
400477
400485
  if (process.env.USER_TYPE === "ant") {
400478
400486
  const changelog = MACRO.VERSION_CHANGELOG;
400479
400487
  if (changelog) {
@@ -400500,7 +400508,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.9") {
400500
400508
  releaseNotes
400501
400509
  };
400502
400510
  }
400503
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.3.9") {
400511
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.4.0") {
400504
400512
  if (process.env.USER_TYPE === "ant") {
400505
400513
  const changelog = MACRO.VERSION_CHANGELOG;
400506
400514
  if (changelog) {
@@ -400657,7 +400665,7 @@ function getRecentActivitySync() {
400657
400665
  return cachedActivity;
400658
400666
  }
400659
400667
  function getLogoDisplayData() {
400660
- const version = process.env.DEMO_VERSION ?? "1.3.9";
400668
+ const version = process.env.DEMO_VERSION ?? "1.4.0";
400661
400669
  const serverUrl = getDirectConnectServerUrl();
400662
400670
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
400663
400671
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -401757,7 +401765,7 @@ function Logo() {
401757
401765
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
401758
401766
  t2 = () => {
401759
401767
  const currentConfig = getGlobalConfig();
401760
- if (currentConfig.lastReleaseNotesSeen === "1.3.9") {
401768
+ if (currentConfig.lastReleaseNotesSeen === "1.4.0") {
401761
401769
  return;
401762
401770
  }
401763
401771
  saveGlobalConfig(_temp326);
@@ -402416,12 +402424,12 @@ function Logo() {
402416
402424
  return t41;
402417
402425
  }
402418
402426
  function _temp326(current) {
402419
- if (current.lastReleaseNotesSeen === "1.3.9") {
402427
+ if (current.lastReleaseNotesSeen === "1.4.0") {
402420
402428
  return current;
402421
402429
  }
402422
402430
  return {
402423
402431
  ...current,
402424
- lastReleaseNotesSeen: "1.3.9"
402432
+ lastReleaseNotesSeen: "1.4.0"
402425
402433
  };
402426
402434
  }
402427
402435
  function _temp241(s_0) {
@@ -432900,7 +432908,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
432900
432908
  smapsRollup,
432901
432909
  platform: process.platform,
432902
432910
  nodeVersion: process.version,
432903
- ccVersion: "1.3.9"
432911
+ ccVersion: "1.4.0"
432904
432912
  };
432905
432913
  }
432906
432914
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -433485,7 +433493,7 @@ var init_bridge_kick = __esm(() => {
433485
433493
  var call82 = async () => {
433486
433494
  return {
433487
433495
  type: "text",
433488
- value: `${"1.3.9"} (built ${"2026-04-26T12:40:09.729Z"})`
433496
+ value: `${"1.4.0"} (built ${"2026-04-26T12:47:25.253Z"})`
433489
433497
  };
433490
433498
  }, version, version_default;
433491
433499
  var init_version = __esm(() => {
@@ -441429,7 +441437,7 @@ function generateHtmlReport(data, insights) {
441429
441437
  </html>`;
441430
441438
  }
441431
441439
  function buildExportData(data, insights, facets, remoteStats) {
441432
- const version2 = typeof MACRO !== "undefined" ? "1.3.9" : "unknown";
441440
+ const version2 = typeof MACRO !== "undefined" ? "1.4.0" : "unknown";
441433
441441
  const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
441434
441442
  const facets_summary = {
441435
441443
  total: facets.size,
@@ -445620,7 +445628,7 @@ var init_sessionStorage = __esm(() => {
445620
445628
  init_settings2();
445621
445629
  init_slowOperations();
445622
445630
  init_uuid();
445623
- VERSION6 = typeof MACRO !== "undefined" ? "1.3.9" : "unknown";
445631
+ VERSION6 = typeof MACRO !== "undefined" ? "1.4.0" : "unknown";
445624
445632
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
445625
445633
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
445626
445634
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -446822,7 +446830,7 @@ var init_filesystem = __esm(() => {
446822
446830
  });
446823
446831
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
446824
446832
  const nonce = randomBytes19(16).toString("hex");
446825
- return join142(getClaudeTempDir(), "bundled-skills", "1.3.9", nonce);
446833
+ return join142(getClaudeTempDir(), "bundled-skills", "1.4.0", nonce);
446826
446834
  });
446827
446835
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
446828
446836
  });
@@ -456107,7 +456115,7 @@ function buildSystemInitMessage(inputs) {
456107
456115
  slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
456108
456116
  apiKeySource: getAnthropicApiKeyWithSource().source,
456109
456117
  betas: getSdkBetas(),
456110
- claude_code_version: "1.3.9",
456118
+ claude_code_version: "1.4.0",
456111
456119
  output_style: outputStyle2,
456112
456120
  agents: inputs.agents.map((agent) => agent.agentType),
456113
456121
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -470686,7 +470694,7 @@ var init_useVoiceEnabled = __esm(() => {
470686
470694
  function getSemverPart(version2) {
470687
470695
  return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
470688
470696
  }
470689
- function useUpdateNotification(updatedVersion, initialVersion = "1.3.9") {
470697
+ function useUpdateNotification(updatedVersion, initialVersion = "1.4.0") {
470690
470698
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
470691
470699
  if (!updatedVersion) {
470692
470700
  return null;
@@ -470726,7 +470734,7 @@ function AutoUpdater({
470726
470734
  return;
470727
470735
  }
470728
470736
  if (false) {}
470729
- const currentVersion = "1.3.9";
470737
+ const currentVersion = "1.4.0";
470730
470738
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
470731
470739
  let latestVersion = await getLatestVersion(channel);
470732
470740
  const isDisabled = isAutoUpdaterDisabled();
@@ -470937,12 +470945,12 @@ function NativeAutoUpdater({
470937
470945
  logEvent("tengu_native_auto_updater_start", {});
470938
470946
  try {
470939
470947
  const maxVersion = await getMaxVersion();
470940
- if (maxVersion && gt("1.3.9", maxVersion)) {
470948
+ if (maxVersion && gt("1.4.0", maxVersion)) {
470941
470949
  const msg = await getMaxVersionMessage();
470942
470950
  setMaxVersionIssue(msg ?? "affects your version");
470943
470951
  }
470944
470952
  const result = await installLatest(channel);
470945
- const currentVersion = "1.3.9";
470953
+ const currentVersion = "1.4.0";
470946
470954
  const latencyMs = Date.now() - startTime;
470947
470955
  if (result.lockFailed) {
470948
470956
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -471077,17 +471085,17 @@ function PackageManagerAutoUpdater(t0) {
471077
471085
  const maxVersion = await getMaxVersion();
471078
471086
  if (maxVersion && latest && gt(latest, maxVersion)) {
471079
471087
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
471080
- if (gte("1.3.9", maxVersion)) {
471081
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.3.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
471088
+ if (gte("1.4.0", maxVersion)) {
471089
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.4.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
471082
471090
  setUpdateAvailable(false);
471083
471091
  return;
471084
471092
  }
471085
471093
  latest = maxVersion;
471086
471094
  }
471087
- const hasUpdate = latest && !gte("1.3.9", latest) && !shouldSkipVersion(latest);
471095
+ const hasUpdate = latest && !gte("1.4.0", latest) && !shouldSkipVersion(latest);
471088
471096
  setUpdateAvailable(!!hasUpdate);
471089
471097
  if (hasUpdate) {
471090
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.3.9"} -> ${latest}`);
471098
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.4.0"} -> ${latest}`);
471091
471099
  }
471092
471100
  };
471093
471101
  $2[0] = t1;
@@ -471121,7 +471129,7 @@ function PackageManagerAutoUpdater(t0) {
471121
471129
  wrap: "truncate",
471122
471130
  children: [
471123
471131
  "currentVersion: ",
471124
- "1.3.9"
471132
+ "1.4.0"
471125
471133
  ]
471126
471134
  }, undefined, true, undefined, this);
471127
471135
  $2[3] = verbose;
@@ -478679,7 +478687,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
478679
478687
  project_dir: getOriginalCwd(),
478680
478688
  added_dirs: addedDirs
478681
478689
  },
478682
- version: "1.3.9",
478690
+ version: "1.4.0",
478683
478691
  output_style: {
478684
478692
  name: outputStyleName
478685
478693
  },
@@ -490251,7 +490259,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
490251
490259
  } catch {}
490252
490260
  const data = {
490253
490261
  trigger,
490254
- version: "1.3.9",
490262
+ version: "1.4.0",
490255
490263
  platform: process.platform,
490256
490264
  transcript,
490257
490265
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -506710,7 +506718,7 @@ function appendToLog(path17, message) {
506710
506718
  cwd: getFsImplementation().cwd(),
506711
506719
  userType: process.env.USER_TYPE,
506712
506720
  sessionId: getSessionId(),
506713
- version: "1.3.9"
506721
+ version: "1.4.0"
506714
506722
  };
506715
506723
  getLogWriter(path17).write(messageWithTimestamp);
506716
506724
  }
@@ -510724,8 +510732,8 @@ async function getEnvLessBridgeConfig() {
510724
510732
  }
510725
510733
  async function checkEnvLessBridgeMinVersion() {
510726
510734
  const cfg = await getEnvLessBridgeConfig();
510727
- if (cfg.min_version && lt("1.3.9", cfg.min_version)) {
510728
- return `Your version of localclawd (${"1.3.9"}) is too old for Remote Control.
510735
+ if (cfg.min_version && lt("1.4.0", cfg.min_version)) {
510736
+ return `Your version of localclawd (${"1.4.0"}) is too old for Remote Control.
510729
510737
  Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
510730
510738
  }
510731
510739
  return null;
@@ -511197,7 +511205,7 @@ async function initBridgeCore(params) {
511197
511205
  const rawApi = createBridgeApiClient({
511198
511206
  baseUrl,
511199
511207
  getAccessToken,
511200
- runnerVersion: "1.3.9",
511208
+ runnerVersion: "1.4.0",
511201
511209
  onDebug: logForDebugging,
511202
511210
  onAuth401,
511203
511211
  getTrustedDeviceToken
@@ -516916,7 +516924,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
516916
516924
  setCwd(cwd3);
516917
516925
  const server = new Server({
516918
516926
  name: "claude/tengu",
516919
- version: "1.3.9"
516927
+ version: "1.4.0"
516920
516928
  }, {
516921
516929
  capabilities: {
516922
516930
  tools: {}
@@ -517997,7 +518005,7 @@ function WelcomeLogo() {
517997
518005
  dimColor: true,
517998
518006
  children: [
517999
518007
  "v",
518000
- "1.3.9"
518008
+ "1.4.0"
518001
518009
  ]
518002
518010
  }, undefined, true, undefined, this)
518003
518011
  ]
@@ -518188,7 +518196,7 @@ __export(exports_update, {
518188
518196
  });
518189
518197
  async function update() {
518190
518198
  logEvent("tengu_update_check", {});
518191
- writeToStdout(`Current version: ${"1.3.9"}
518199
+ writeToStdout(`Current version: ${"1.4.0"}
518192
518200
  `);
518193
518201
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
518194
518202
  writeToStdout(`Checking for updates to ${channel} version...
@@ -518263,8 +518271,8 @@ async function update() {
518263
518271
  writeToStdout(`localclawd is managed by Homebrew.
518264
518272
  `);
518265
518273
  const latest = await getLatestVersion(channel);
518266
- if (latest && !gte("1.3.9", latest)) {
518267
- writeToStdout(`Update available: ${"1.3.9"} → ${latest}
518274
+ if (latest && !gte("1.4.0", latest)) {
518275
+ writeToStdout(`Update available: ${"1.4.0"} → ${latest}
518268
518276
  `);
518269
518277
  writeToStdout(`
518270
518278
  `);
@@ -518280,8 +518288,8 @@ async function update() {
518280
518288
  writeToStdout(`localclawd is managed by winget.
518281
518289
  `);
518282
518290
  const latest = await getLatestVersion(channel);
518283
- if (latest && !gte("1.3.9", latest)) {
518284
- writeToStdout(`Update available: ${"1.3.9"} → ${latest}
518291
+ if (latest && !gte("1.4.0", latest)) {
518292
+ writeToStdout(`Update available: ${"1.4.0"} → ${latest}
518285
518293
  `);
518286
518294
  writeToStdout(`
518287
518295
  `);
@@ -518295,8 +518303,8 @@ async function update() {
518295
518303
  writeToStdout(`localclawd is managed by apk.
518296
518304
  `);
518297
518305
  const latest = await getLatestVersion(channel);
518298
- if (latest && !gte("1.3.9", latest)) {
518299
- writeToStdout(`Update available: ${"1.3.9"} → ${latest}
518306
+ if (latest && !gte("1.4.0", latest)) {
518307
+ writeToStdout(`Update available: ${"1.4.0"} → ${latest}
518300
518308
  `);
518301
518309
  writeToStdout(`
518302
518310
  `);
@@ -518361,11 +518369,11 @@ async function update() {
518361
518369
  `);
518362
518370
  await gracefulShutdown(1);
518363
518371
  }
518364
- if (result.latestVersion === "1.3.9") {
518365
- writeToStdout(source_default.green(`localclawd is up to date (${"1.3.9"})`) + `
518372
+ if (result.latestVersion === "1.4.0") {
518373
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.4.0"})`) + `
518366
518374
  `);
518367
518375
  } else {
518368
- writeToStdout(source_default.green(`Successfully updated from ${"1.3.9"} to version ${result.latestVersion}`) + `
518376
+ writeToStdout(source_default.green(`Successfully updated from ${"1.4.0"} to version ${result.latestVersion}`) + `
518369
518377
  `);
518370
518378
  await regenerateCompletionCache();
518371
518379
  }
@@ -518425,12 +518433,12 @@ async function update() {
518425
518433
  `);
518426
518434
  await gracefulShutdown(1);
518427
518435
  }
518428
- if (latestVersion === "1.3.9") {
518429
- writeToStdout(source_default.green(`localclawd is up to date (${"1.3.9"})`) + `
518436
+ if (latestVersion === "1.4.0") {
518437
+ writeToStdout(source_default.green(`localclawd is up to date (${"1.4.0"})`) + `
518430
518438
  `);
518431
518439
  await gracefulShutdown(0);
518432
518440
  }
518433
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.3.9"})
518441
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.4.0"})
518434
518442
  `);
518435
518443
  writeToStdout(`Installing update...
518436
518444
  `);
@@ -518475,7 +518483,7 @@ async function update() {
518475
518483
  logForDebugging(`update: Installation status: ${status2}`);
518476
518484
  switch (status2) {
518477
518485
  case "success":
518478
- writeToStdout(source_default.green(`Successfully updated from ${"1.3.9"} to version ${latestVersion}`) + `
518486
+ writeToStdout(source_default.green(`Successfully updated from ${"1.4.0"} to version ${latestVersion}`) + `
518479
518487
  `);
518480
518488
  await regenerateCompletionCache();
518481
518489
  break;
@@ -519717,7 +519725,7 @@ Run with --debug for more details.
519717
519725
  }
519718
519726
  }
519719
519727
  logForDiagnosticsNoPII("info", "started", {
519720
- version: "1.3.9",
519728
+ version: "1.4.0",
519721
519729
  is_native_binary: isInBundledMode()
519722
519730
  });
519723
519731
  registerCleanup(async () => {
@@ -520501,7 +520509,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
520501
520509
  pendingHookMessages
520502
520510
  }, renderAndRun);
520503
520511
  }
520504
- }).version("1.3.9 (localclawd)", "-v, --version", "Output the version number");
520512
+ }).version("1.4.0 (localclawd)", "-v, --version", "Output the version number");
520505
520513
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
520506
520514
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
520507
520515
  if (canUserConfigureAdvisor()) {
@@ -521001,7 +521009,7 @@ if (false) {}
521001
521009
  async function main2() {
521002
521010
  const args = process.argv.slice(2);
521003
521011
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
521004
- console.log(`${"1.3.9"} (localclawd)`);
521012
+ console.log(`${"1.4.0"} (localclawd)`);
521005
521013
  return;
521006
521014
  }
521007
521015
  const {
@@ -521084,4 +521092,4 @@ localclawd crashed: ${msg}
521084
521092
  process.exit(1);
521085
521093
  });
521086
521094
 
521087
- //# debugId=E06EF2A5E2FDE86C64756E2164756E21
521095
+ //# debugId=FAF82BEC60ED8E1564756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "localclawd",
3
- "version": "1.3.9",
3
+ "version": "1.4.0",
4
4
  "description": "Local-first coding CLI for vLLM, Ollama, and OpenAI-compatible backends.",
5
5
  "private": false,
6
6
  "type": "module",