@costrict/csc 4.2.21 → 4.2.22

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.
package/dist/cli.js CHANGED
@@ -66713,8 +66713,8 @@ function getClientVersion() {
66713
66713
  if (cached)
66714
66714
  return cached;
66715
66715
  try {
66716
- if ("4.2.21") {
66717
- cached = "4.2.21";
66716
+ if ("4.2.22") {
66717
+ cached = "4.2.22";
66718
66718
  return cached;
66719
66719
  }
66720
66720
  } catch {}
@@ -90538,11 +90538,19 @@ __export(exports_windowsPaths, {
90538
90538
  });
90539
90539
  import { existsSync as existsSync4 } from "fs";
90540
90540
  import * as pathWin32 from "path/win32";
90541
+ function isWslBash(candidatePath) {
90542
+ const lower = candidatePath.toLowerCase();
90543
+ return lower.endsWith("\\bash.exe") && (lower.includes("\\windows\\system32\\") || lower.includes("\\windows\\syswow64\\"));
90544
+ }
90541
90545
  function findExecutableWithDeps(executable, deps) {
90542
90546
  try {
90543
90547
  const paths2 = deps.execCommand(`where.exe ${executable}`).split(/\r?\n/u).map((candidate) => candidate.trim()).filter(Boolean);
90544
90548
  const cwd2 = pathWin32.resolve(deps.cwdFn()).toLowerCase();
90545
90549
  for (const candidatePath of paths2) {
90550
+ if (executable === "bash" && isWslBash(candidatePath)) {
90551
+ logForDebugging(`Skipping WSL bash launcher (incompatible with Windows paths): ${candidatePath}`);
90552
+ continue;
90553
+ }
90546
90554
  const candidateDirectory = pathWin32.dirname(pathWin32.resolve(candidatePath)).toLowerCase();
90547
90555
  const relativeDirectory = pathWin32.relative(cwd2, candidateDirectory);
90548
90556
  const isWithinCwd = relativeDirectory === "" || !relativeDirectory.startsWith("..") && !pathWin32.isAbsolute(relativeDirectory);
@@ -220487,7 +220495,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
220487
220495
  headers: {
220488
220496
  Authorization: `Bearer ${accessToken}`,
220489
220497
  Accept: "application/json",
220490
- "User-Agent": `csc/${"4.2.21"}`
220498
+ "User-Agent": `csc/${"4.2.22"}`
220491
220499
  },
220492
220500
  signal: controller.signal
220493
220501
  });
@@ -222524,7 +222532,7 @@ var init_auth7 = __esm(() => {
222524
222532
 
222525
222533
  // src/utils/userAgent.ts
222526
222534
  function getClaudeCodeUserAgent() {
222527
- return `costrict/${"4.2.21"}`;
222535
+ return `costrict/${"4.2.22"}`;
222528
222536
  }
222529
222537
 
222530
222538
  // src/utils/workloadContext.ts
@@ -222546,7 +222554,7 @@ function getUserAgent() {
222546
222554
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
222547
222555
  const workload = getWorkload();
222548
222556
  const workloadSuffix = workload ? `, workload/${workload}` : "";
222549
- return `csc/${"4.2.21"}`;
222557
+ return `csc/${"4.2.22"}`;
222550
222558
  }
222551
222559
  function getMCPUserAgent() {
222552
222560
  const parts = [];
@@ -222560,7 +222568,7 @@ function getMCPUserAgent() {
222560
222568
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
222561
222569
  }
222562
222570
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
222563
- return `csc/${"4.2.21"}${suffix}`;
222571
+ return `csc/${"4.2.22"}${suffix}`;
222564
222572
  }
222565
222573
  function getWebFetchUserAgent() {
222566
222574
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -222680,7 +222688,7 @@ var init_user = __esm(() => {
222680
222688
  deviceId,
222681
222689
  sessionId: getSessionId(),
222682
222690
  email: getEmail(),
222683
- appVersion: "4.2.21",
222691
+ appVersion: "4.2.22",
222684
222692
  platform: getHostPlatformForAnalytics(),
222685
222693
  organizationUuid,
222686
222694
  accountUuid,
@@ -233728,7 +233736,7 @@ var init_metadata = __esm(() => {
233728
233736
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
233729
233737
  WHITESPACE_REGEX = /\s+/;
233730
233738
  getVersionBase = memoize_default(() => {
233731
- const match = "4.2.21".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
233739
+ const match = "4.2.22".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
233732
233740
  return match ? match[0] : undefined;
233733
233741
  });
233734
233742
  buildEnvContext = memoize_default(async () => {
@@ -233768,9 +233776,9 @@ var init_metadata = __esm(() => {
233768
233776
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
233769
233777
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
233770
233778
  isClaudeAiAuth: isClaudeAISubscriber(),
233771
- version: "4.2.21",
233779
+ version: "4.2.22",
233772
233780
  versionBase: getVersionBase(),
233773
- buildTime: "2026-07-31T12:00:32.834Z",
233781
+ buildTime: "2026-08-03T04:18:00.311Z",
233774
233782
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
233775
233783
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
233776
233784
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -234441,7 +234449,7 @@ function initialize1PEventLogging() {
234441
234449
  const platform3 = getPlatform();
234442
234450
  const attributes = {
234443
234451
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
234444
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.21"
234452
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.22"
234445
234453
  };
234446
234454
  if (platform3 === "wsl") {
234447
234455
  const wslVersion = getWslVersion();
@@ -234468,7 +234476,7 @@ function initialize1PEventLogging() {
234468
234476
  })
234469
234477
  ]
234470
234478
  });
234471
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.21");
234479
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.22");
234472
234480
  }
234473
234481
  async function reinitialize1PEventLoggingIfConfigChanged() {
234474
234482
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -434486,7 +434494,7 @@ function getTelemetryAttributes() {
434486
434494
  attributes["session.id"] = sessionId;
434487
434495
  }
434488
434496
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
434489
- attributes["app.version"] = "4.2.21";
434497
+ attributes["app.version"] = "4.2.22";
434490
434498
  }
434491
434499
  const oauthAccount = getOauthAccountInfo();
434492
434500
  if (oauthAccount) {
@@ -468006,7 +468014,7 @@ function initLangfuse() {
468006
468014
  flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
468007
468015
  mask: maskFn,
468008
468016
  environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
468009
- release: "4.2.21",
468017
+ release: "4.2.22",
468010
468018
  exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
468011
468019
  timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
468012
468020
  });
@@ -499906,7 +499914,7 @@ function initSentry() {
499906
499914
  }
499907
499915
  init3({
499908
499916
  dsn,
499909
- release: typeof MACRO !== "undefined" ? "4.2.21" : undefined,
499917
+ release: typeof MACRO !== "undefined" ? "4.2.22" : undefined,
499910
499918
  environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
499911
499919
  maxBreadcrumbs: 20,
499912
499920
  sampleRate: 1,
@@ -527803,7 +527811,7 @@ async function initializeBetaTracing(resource) {
527803
527811
  });
527804
527812
  logs.setGlobalLoggerProvider(loggerProvider);
527805
527813
  setLoggerProvider(loggerProvider);
527806
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.21");
527814
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.22");
527807
527815
  setEventLogger(eventLogger);
527808
527816
  process.on("beforeExit", async () => {
527809
527817
  await loggerProvider?.forceFlush();
@@ -527843,7 +527851,7 @@ async function initializeTelemetry() {
527843
527851
  const platform5 = getPlatform();
527844
527852
  const baseAttributes = {
527845
527853
  [import_semantic_conventions29.ATTR_SERVICE_NAME]: "claude-code",
527846
- [import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.21"
527854
+ [import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.22"
527847
527855
  };
527848
527856
  if (platform5 === "wsl") {
527849
527857
  const wslVersion = getWslVersion();
@@ -527888,7 +527896,7 @@ async function initializeTelemetry() {
527888
527896
  } catch {}
527889
527897
  };
527890
527898
  registerCleanup(shutdownTelemetry2);
527891
- return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.21");
527899
+ return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.22");
527892
527900
  }
527893
527901
  const meterProvider = new import_sdk_metrics2.MeterProvider({
527894
527902
  resource,
@@ -527908,7 +527916,7 @@ async function initializeTelemetry() {
527908
527916
  });
527909
527917
  logs.setGlobalLoggerProvider(loggerProvider);
527910
527918
  setLoggerProvider(loggerProvider);
527911
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.21");
527919
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.22");
527912
527920
  setEventLogger(eventLogger);
527913
527921
  logForDebugging("[3P telemetry] Event logger set successfully");
527914
527922
  process.on("beforeExit", async () => {
@@ -527970,7 +527978,7 @@ Current timeout: ${timeoutMs}ms
527970
527978
  }
527971
527979
  };
527972
527980
  registerCleanup(shutdownTelemetry);
527973
- return meterProvider.getMeter("com.anthropic.claude_code", "4.2.21");
527981
+ return meterProvider.getMeter("com.anthropic.claude_code", "4.2.22");
527974
527982
  }
527975
527983
  async function flushTelemetry() {
527976
527984
  const meterProvider = getMeterProvider();
@@ -529029,7 +529037,7 @@ async function installGlobalPackage(specificVersion) {
529029
529037
  logError3(new AutoUpdaterError("Another process is currently installing an update"));
529030
529038
  logEvent("tengu_auto_updater_lock_contention", {
529031
529039
  pid: process.pid,
529032
- currentVersion: "4.2.21"
529040
+ currentVersion: "4.2.22"
529033
529041
  });
529034
529042
  return { status: "in_progress" };
529035
529043
  }
@@ -529038,7 +529046,7 @@ async function installGlobalPackage(specificVersion) {
529038
529046
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
529039
529047
  logError3(new Error("Windows NPM detected in WSL environment"));
529040
529048
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
529041
- currentVersion: "4.2.21"
529049
+ currentVersion: "4.2.22"
529042
529050
  });
529043
529051
  return {
529044
529052
  status: "install_failed",
@@ -529584,7 +529592,7 @@ function detectLinuxGlobPatternWarnings() {
529584
529592
  }
529585
529593
  async function getDoctorDiagnostic() {
529586
529594
  const installationType = await getCurrentInstallationType();
529587
- const version9 = typeof MACRO !== "undefined" ? "4.2.21" : "unknown";
529595
+ const version9 = typeof MACRO !== "undefined" ? "4.2.22" : "unknown";
529588
529596
  const installationPath = await getInstallationPath();
529589
529597
  const invokedBinary = getInvokedBinary();
529590
529598
  const multipleInstallations = await detectMultipleInstallations();
@@ -567771,7 +567779,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
567771
567779
  const client10 = new Client3({
567772
567780
  name: "claude-code",
567773
567781
  title: "CoStrict",
567774
- version: "4.2.21",
567782
+ version: "4.2.22",
567775
567783
  description: "CoStrict agentic coding tool",
567776
567784
  websiteUrl: PRODUCT_URL
567777
567785
  }, {
@@ -568142,7 +568150,7 @@ var init_client18 = __esm(() => {
568142
568150
  const client10 = new Client3({
568143
568151
  name: "claude-code",
568144
568152
  title: "CoStrict",
568145
- version: "4.2.21",
568153
+ version: "4.2.22",
568146
568154
  description: "CoStrict agentic coding tool",
568147
568155
  websiteUrl: PRODUCT_URL
568148
568156
  }, {
@@ -569532,7 +569540,7 @@ function getInstallationEnv() {
569532
569540
  return;
569533
569541
  }
569534
569542
  function getClaudeCodeVersion() {
569535
- return "4.2.21";
569543
+ return "4.2.22";
569536
569544
  }
569537
569545
  async function getInstalledVSCodeExtensionVersion(command4) {
569538
569546
  const { stdout } = await execFileNoThrow2(command4, ["--list-extensions", "--show-versions"], {
@@ -570896,8 +570904,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
570896
570904
  const maxVersion = await getMaxVersion();
570897
570905
  if (maxVersion && gt(version10, maxVersion)) {
570898
570906
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version10} to ${maxVersion}`);
570899
- if (gte2("4.2.21", maxVersion)) {
570900
- logForDebugging(`Native installer: current version ${"4.2.21"} is already at or above maxVersion ${maxVersion}, skipping update`);
570907
+ if (gte2("4.2.22", maxVersion)) {
570908
+ logForDebugging(`Native installer: current version ${"4.2.22"} is already at or above maxVersion ${maxVersion}, skipping update`);
570901
570909
  logEvent("tengu_native_update_skipped_max_version", {
570902
570910
  latency_ms: Date.now() - startTime2,
570903
570911
  max_version: maxVersion,
@@ -570908,7 +570916,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
570908
570916
  version10 = maxVersion;
570909
570917
  }
570910
570918
  }
570911
- if (!forceReinstall && version10 === "4.2.21" && await versionIsAvailable(version10) && await isPossibleClaudeBinary(executablePath)) {
570919
+ if (!forceReinstall && version10 === "4.2.22" && await versionIsAvailable(version10) && await isPossibleClaudeBinary(executablePath)) {
570912
570920
  logForDebugging(`Found ${version10} at ${executablePath}, skipping install`);
570913
570921
  logEvent("tengu_native_update_complete", {
570914
570922
  latency_ms: Date.now() - startTime2,
@@ -708976,7 +708984,7 @@ function Feedback({
708976
708984
  platform: env4.platform,
708977
708985
  gitRepo: envInfo.isGit,
708978
708986
  terminal: env4.terminal,
708979
- version: "4.2.21",
708987
+ version: "4.2.22",
708980
708988
  transcript: normalizeMessagesForAPI(messages),
708981
708989
  errors: sanitizedErrors,
708982
708990
  lastApiRequest: getLastAPIRequest(),
@@ -709159,7 +709167,7 @@ function Feedback({
709159
709167
  ", ",
709160
709168
  env4.terminal,
709161
709169
  ", v",
709162
- "4.2.21"
709170
+ "4.2.22"
709163
709171
  ]
709164
709172
  })
709165
709173
  ]
@@ -709256,7 +709264,7 @@ ${sanitizedDescription}
709256
709264
  ` + `**Environment Info**
709257
709265
  ` + `- Platform: ${env4.platform}
709258
709266
  ` + `- Terminal: ${env4.terminal}
709259
- ` + `- Version: ${"4.2.21"}
709267
+ ` + `- Version: ${"4.2.22"}
709260
709268
  ` + `- Feedback ID: ${feedbackId}
709261
709269
  ` + `
709262
709270
  **Errors**
@@ -711495,7 +711503,7 @@ function buildPrimarySection() {
711495
711503
  children: t("settings.status.renameHint")
711496
711504
  });
711497
711505
  return [
711498
- { label: t("settings.status.version"), value: "4.2.21" },
711506
+ { label: t("settings.status.version"), value: "4.2.22" },
711499
711507
  { label: t("settings.status.sessionName"), value: nameValue },
711500
711508
  { label: t("settings.status.sessionId"), value: sessionId },
711501
711509
  { label: t("settings.status.cwd"), value: getCwd() },
@@ -714353,7 +714361,7 @@ function Config({
714353
714361
  }
714354
714362
  })
714355
714363
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime191.jsx(ChannelDowngradeDialog, {
714356
- currentVersion: "4.2.21",
714364
+ currentVersion: "4.2.22",
714357
714365
  onChoice: (choice) => {
714358
714366
  setShowSubmenu(null);
714359
714367
  setTabsHidden(false);
@@ -714365,7 +714373,7 @@ function Config({
714365
714373
  autoUpdatesChannel: "stable"
714366
714374
  };
714367
714375
  if (choice === "stay") {
714368
- newSettings.minimumVersion = "4.2.21";
714376
+ newSettings.minimumVersion = "4.2.22";
714369
714377
  }
714370
714378
  updateSettingsForSource("userSettings", newSettings);
714371
714379
  setSettingsData((prev) => ({
@@ -719834,7 +719842,7 @@ function HelpV2({ onClose, commands: commands11 }) {
719834
719842
  color: "professionalBlue",
719835
719843
  children: [
719836
719844
  /* @__PURE__ */ jsx_runtime218.jsx(Tabs, {
719837
- title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.21"}`,
719845
+ title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.22"}`,
719838
719846
  color: "professionalBlue",
719839
719847
  defaultTab: "general",
719840
719848
  children: tabs
@@ -742835,7 +742843,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
742835
742843
  return [];
742836
742844
  }
742837
742845
  }
742838
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.21") {
742846
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.22") {
742839
742847
  if (process.env.USER_TYPE === "sf") {
742840
742848
  const changelog = "";
742841
742849
  if (changelog) {
@@ -742862,7 +742870,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.21")
742862
742870
  releaseNotes
742863
742871
  };
742864
742872
  }
742865
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.21") {
742873
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.22") {
742866
742874
  if (process.env.USER_TYPE === "sf") {
742867
742875
  const changelog = "";
742868
742876
  if (changelog) {
@@ -745375,7 +745383,7 @@ function isNotLoggedIn() {
745375
745383
  return true;
745376
745384
  }
745377
745385
  function getLogoDisplayData() {
745378
- const version10 = process.env.DEMO_VERSION ?? "4.2.21";
745386
+ const version10 = process.env.DEMO_VERSION ?? "4.2.22";
745379
745387
  const serverUrl = getDirectConnectServerUrl();
745380
745388
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
745381
745389
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -745953,7 +745961,7 @@ var init_MatrixMessageLine = __esm(() => {
745953
745961
  // src/components/matrix-tactical/MatrixWelcome.tsx
745954
745962
  import { basename as basename47 } from "path";
745955
745963
  function MatrixWelcome({
745956
- version: version10 = "4.2.21",
745964
+ version: version10 = "4.2.22",
745957
745965
  projectName,
745958
745966
  cwd: cwd2,
745959
745967
  modelDisplayName,
@@ -746588,13 +746596,13 @@ function LogoV2() {
746588
746596
  const { hasReleaseNotes } = checkForReleaseNotesSync(config13.lastReleaseNotesSeen);
746589
746597
  import_react167.useEffect(() => {
746590
746598
  const currentConfig = getGlobalConfig();
746591
- if (currentConfig.lastReleaseNotesSeen === "4.2.21") {
746599
+ if (currentConfig.lastReleaseNotesSeen === "4.2.22") {
746592
746600
  return;
746593
746601
  }
746594
746602
  saveGlobalConfig((current2) => {
746595
- if (current2.lastReleaseNotesSeen === "4.2.21")
746603
+ if (current2.lastReleaseNotesSeen === "4.2.22")
746596
746604
  return current2;
746597
- return { ...current2, lastReleaseNotesSeen: "4.2.21" };
746605
+ return { ...current2, lastReleaseNotesSeen: "4.2.22" };
746598
746606
  });
746599
746607
  if (showOnboarding) {
746600
746608
  incrementProjectOnboardingSeenCount();
@@ -769124,7 +769132,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
769124
769132
  smapsRollup,
769125
769133
  platform: process.platform,
769126
769134
  nodeVersion: process.version,
769127
- ccVersion: "4.2.21"
769135
+ ccVersion: "4.2.22"
769128
769136
  };
769129
769137
  }
769130
769138
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -769240,7 +769248,7 @@ var init_mock_limits = __esm(() => {
769240
769248
  var call55 = async () => {
769241
769249
  return {
769242
769250
  type: "text",
769243
- value: `${"4.2.21"} (built ${"2026-07-31T12:00:32.834Z"})`
769251
+ value: `${"4.2.22"} (built ${"2026-08-03T04:18:00.311Z"})`
769244
769252
  };
769245
769253
  }, version10, version_default;
769246
769254
  var init_version2 = __esm(() => {
@@ -787163,7 +787171,7 @@ function generateHtmlReport(data, insights) {
787163
787171
  </html>`;
787164
787172
  }
787165
787173
  function buildExportData(data, insights, facets, remoteStats) {
787166
- const version11 = typeof MACRO !== "undefined" ? "4.2.21" : "unknown";
787174
+ const version11 = typeof MACRO !== "undefined" ? "4.2.22" : "unknown";
787167
787175
  const remote_hosts_collected = remoteStats?.hosts.filter((h8) => h8.sessionCount > 0).map((h8) => h8.name);
787168
787176
  const facets_summary = {
787169
787177
  total: facets.size,
@@ -791613,7 +791621,7 @@ var init_sessionStorage = __esm(() => {
791613
791621
  init_settings2();
791614
791622
  init_slowOperations();
791615
791623
  init_uuid();
791616
- VERSION11 = typeof MACRO !== "undefined" ? "4.2.21" : "unknown";
791624
+ VERSION11 = typeof MACRO !== "undefined" ? "4.2.22" : "unknown";
791617
791625
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
791618
791626
  SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
791619
791627
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -792954,7 +792962,7 @@ var init_filesystem = __esm(() => {
792954
792962
  });
792955
792963
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
792956
792964
  const nonce = randomBytes24(16).toString("hex");
792957
- return join204(getCostrictTempDir(), "bundled-skills", "4.2.21", nonce);
792965
+ return join204(getCostrictTempDir(), "bundled-skills", "4.2.22", nonce);
792958
792966
  });
792959
792967
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
792960
792968
  });
@@ -799224,7 +799232,7 @@ function computeFingerprint(messageText, version11) {
799224
799232
  }
799225
799233
  function computeFingerprintFromMessages(messages) {
799226
799234
  const firstMessageText = extractFirstMessageText(messages);
799227
- return computeFingerprint(firstMessageText, "4.2.21");
799235
+ return computeFingerprint(firstMessageText, "4.2.22");
799228
799236
  }
799229
799237
  var FINGERPRINT_SALT = "59cf53e54c78";
799230
799238
  var init_fingerprint = () => {};
@@ -799634,7 +799642,7 @@ function getAnthropicEnvMetadata() {
799634
799642
  function getBuildAgeMinutes() {
799635
799643
  if (false)
799636
799644
  ;
799637
- const buildTime = new Date("2026-07-31T12:00:32.834Z").getTime();
799645
+ const buildTime = new Date("2026-08-03T04:18:00.311Z").getTime();
799638
799646
  if (isNaN(buildTime))
799639
799647
  return;
799640
799648
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -805033,7 +805041,7 @@ async function sideQuery(opts) {
805033
805041
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
805034
805042
  }
805035
805043
  const messageText = extractFirstUserMessageText(messages);
805036
- const fingerprint = computeFingerprint(messageText, "4.2.21");
805044
+ const fingerprint = computeFingerprint(messageText, "4.2.22");
805037
805045
  const attributionHeader = getAttributionHeader(fingerprint);
805038
805046
  const systemBlocks = [
805039
805047
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -808429,7 +808437,7 @@ function buildSystemInitMessage(inputs) {
808429
808437
  slash_commands: inputs.commands.filter((c10) => c10.userInvocable !== false).map((c10) => c10.name),
808430
808438
  apiKeySource: getAnthropicApiKeyWithSource().source,
808431
808439
  betas: getSdkBetas(),
808432
- claude_code_version: "4.2.21",
808440
+ claude_code_version: "4.2.22",
808433
808441
  output_style: outputStyle2,
808434
808442
  agents: inputs.agents.map((agent) => agent.agentType),
808435
808443
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -811973,7 +811981,7 @@ function appendToLog(path57, message2) {
811973
811981
  cwd: getFsImplementation().cwd(),
811974
811982
  userType: process.env.USER_TYPE,
811975
811983
  sessionId: getSessionId(),
811976
- version: "4.2.21"
811984
+ version: "4.2.22"
811977
811985
  };
811978
811986
  getLogWriter(path57).write(messageWithTimestamp);
811979
811987
  }
@@ -833018,7 +833026,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
833018
833026
  project_dir: getOriginalCwd(),
833019
833027
  added_dirs: addedDirs
833020
833028
  },
833021
- version: "4.2.21",
833029
+ version: "4.2.22",
833022
833030
  output_style: {
833023
833031
  name: outputStyleName
833024
833032
  },
@@ -851643,7 +851651,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
851643
851651
  } catch {}
851644
851652
  const data = {
851645
851653
  trigger,
851646
- version: "4.2.21",
851654
+ version: "4.2.22",
851647
851655
  platform: process.platform,
851648
851656
  transcript,
851649
851657
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -852898,7 +852906,7 @@ function getReleaseType(current2, latest) {
852898
852906
  return "patch";
852899
852907
  }
852900
852908
  async function checkNewAutoUpdate(callbacks) {
852901
- const currentVersion = "4.2.21";
852909
+ const currentVersion = "4.2.22";
852902
852910
  logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
852903
852911
  if (isNewAutoUpdaterDisabled()) {
852904
852912
  return { action: "skip", currentVersion, latestVersion: null };
@@ -864121,7 +864129,7 @@ function WelcomeV2() {
864121
864129
  dimColor: true,
864122
864130
  children: [
864123
864131
  "v",
864124
- "4.2.21",
864132
+ "4.2.22",
864125
864133
  " "
864126
864134
  ]
864127
864135
  })
@@ -864187,7 +864195,7 @@ function WelcomeV2() {
864187
864195
  dimColor: true,
864188
864196
  children: [
864189
864197
  "v",
864190
- "4.2.21",
864198
+ "4.2.22",
864191
864199
  " "
864192
864200
  ]
864193
864201
  })
@@ -864289,7 +864297,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
864289
864297
  dimColor: true,
864290
864298
  children: [
864291
864299
  "v",
864292
- "4.2.21",
864300
+ "4.2.22",
864293
864301
  " "
864294
864302
  ]
864295
864303
  })
@@ -864355,7 +864363,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
864355
864363
  dimColor: true,
864356
864364
  children: [
864357
864365
  "v",
864358
- "4.2.21",
864366
+ "4.2.22",
864359
864367
  " "
864360
864368
  ]
864361
864369
  })
@@ -865295,7 +865303,7 @@ function completeOnboarding() {
865295
865303
  saveGlobalConfig((current2) => ({
865296
865304
  ...current2,
865297
865305
  hasCompletedOnboarding: true,
865298
- lastOnboardingVersion: "4.2.21"
865306
+ lastOnboardingVersion: "4.2.22"
865299
865307
  }));
865300
865308
  }
865301
865309
  function showDialog(root9, renderer) {
@@ -880377,7 +880385,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
880377
880385
  setCwd(cwd3);
880378
880386
  const server2 = new Server({
880379
880387
  name: "claude/tengu",
880380
- version: "4.2.21"
880388
+ version: "4.2.22"
880381
880389
  }, {
880382
880390
  capabilities: {
880383
880391
  tools: {}
@@ -882662,7 +882670,7 @@ function createHealthRoutes(sessionManager) {
882662
882670
  const uptime2 = process.uptime() * 1000;
882663
882671
  return c10.json({
882664
882672
  status: "ok",
882665
- version: "4.2.21",
882673
+ version: "4.2.22",
882666
882674
  uptime_ms: Math.round(uptime2),
882667
882675
  active_sessions: sessionManager.getActiveCount()
882668
882676
  });
@@ -882934,7 +882942,7 @@ function getMacroDefines() {
882934
882942
  commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
882935
882943
  } catch {}
882936
882944
  return {
882937
- "MACRO.VERSION": JSON.stringify("4.2.21"),
882945
+ "MACRO.VERSION": JSON.stringify("4.2.22"),
882938
882946
  "MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
882939
882947
  "MACRO.COMMIT": JSON.stringify(commit),
882940
882948
  "MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
@@ -889927,7 +889935,7 @@ __export(exports_update, {
889927
889935
  });
889928
889936
  async function update() {
889929
889937
  logEvent("tengu_update_check", {});
889930
- writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.21"}
889938
+ writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.22"}
889931
889939
  `);
889932
889940
  const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
889933
889941
  writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
@@ -890002,8 +890010,8 @@ async function update() {
890002
890010
  writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
890003
890011
  `);
890004
890012
  const latest = await getLatestVersion(channel5);
890005
- if (latest && !gte2("4.2.21", latest)) {
890006
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.21", latest }, "Update available: {current} \u2192 {latest}")}
890013
+ if (latest && !gte2("4.2.22", latest)) {
890014
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.22", latest }, "Update available: {current} \u2192 {latest}")}
890007
890015
  `);
890008
890016
  writeToStdout(`
890009
890017
  `);
@@ -890019,8 +890027,8 @@ async function update() {
890019
890027
  writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
890020
890028
  `);
890021
890029
  const latest = await getLatestVersion(channel5);
890022
- if (latest && !gte2("4.2.21", latest)) {
890023
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.21", latest }, "Update available: {current} \u2192 {latest}")}
890030
+ if (latest && !gte2("4.2.22", latest)) {
890031
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.22", latest }, "Update available: {current} \u2192 {latest}")}
890024
890032
  `);
890025
890033
  writeToStdout(`
890026
890034
  `);
@@ -890036,8 +890044,8 @@ async function update() {
890036
890044
  writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
890037
890045
  `);
890038
890046
  const latest = await getLatestVersion(channel5);
890039
- if (latest && !gte2("4.2.21", latest)) {
890040
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.21", latest }, "Update available: {current} \u2192 {latest}")}
890047
+ if (latest && !gte2("4.2.22", latest)) {
890048
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.22", latest }, "Update available: {current} \u2192 {latest}")}
890041
890049
  `);
890042
890050
  writeToStdout(`
890043
890051
  `);
@@ -890102,11 +890110,11 @@ async function update() {
890102
890110
  `);
890103
890111
  await gracefulShutdown(1);
890104
890112
  }
890105
- if (result2.latestVersion === "4.2.21") {
890106
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.21" }, "CoStrict is up to date ({version})")) + `
890113
+ if (result2.latestVersion === "4.2.22") {
890114
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.22" }, "CoStrict is up to date ({version})")) + `
890107
890115
  `);
890108
890116
  } else {
890109
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.21", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
890117
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.22", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
890110
890118
  `);
890111
890119
  regenerateCompletionCache();
890112
890120
  }
@@ -890166,12 +890174,12 @@ async function update() {
890166
890174
  `);
890167
890175
  await gracefulShutdown(1);
890168
890176
  }
890169
- if (latestVersion === "4.2.21") {
890170
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.21" }, "CoStrict is up to date ({version})")) + `
890177
+ if (latestVersion === "4.2.22") {
890178
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.22" }, "CoStrict is up to date ({version})")) + `
890171
890179
  `);
890172
890180
  await gracefulShutdown(0);
890173
890181
  }
890174
- writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.21" }, "New version available: {latest} (current: {current})")}
890182
+ writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.22" }, "New version available: {latest} (current: {current})")}
890175
890183
  `);
890176
890184
  writeToStdout(`${t("cli.update.installing", "Installing update...")}
890177
890185
  `);
@@ -890216,7 +890224,7 @@ async function update() {
890216
890224
  logForDebugging(`update: Installation status: ${result.status}`);
890217
890225
  switch (result.status) {
890218
890226
  case "success":
890219
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.21", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
890227
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.22", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
890220
890228
  `);
890221
890229
  regenerateCompletionCache();
890222
890230
  break;
@@ -892420,7 +892428,7 @@ ${assistantAddendum}` : assistantAddendum;
892420
892428
  }
892421
892429
  }
892422
892430
  logForDiagnosticsNoPII("info", "started", {
892423
- version: "4.2.21",
892431
+ version: "4.2.22",
892424
892432
  is_native_binary: isInBundledMode()
892425
892433
  });
892426
892434
  registerCleanup(async () => {
@@ -892911,7 +892919,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
892911
892919
  sshSession = await createSSHSession2({
892912
892920
  host: _pendingSSH.host,
892913
892921
  cwd: _pendingSSH.cwd,
892914
- localVersion: "4.2.21",
892922
+ localVersion: "4.2.22",
892915
892923
  permissionMode: _pendingSSH.permissionMode,
892916
892924
  dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
892917
892925
  extraCliArgs: _pendingSSH.extraCliArgs,
@@ -893380,7 +893388,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
893380
893388
  pendingHookMessages
893381
893389
  }, renderAndRun);
893382
893390
  }
893383
- }).version("4.2.21 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
893391
+ }).version("4.2.22 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
893384
893392
  program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
893385
893393
  program2.addOption(new Option("--tmux", cliDesc("cli.option.tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.")).hideHelp());
893386
893394
  if (canUserConfigureAdvisor()) {
@@ -894123,10 +894131,10 @@ if (process.env.CLAUDE_CODE_REMOTE === "true") {
894123
894131
  async function main2() {
894124
894132
  const args = process.argv.slice(2);
894125
894133
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
894126
- const d7 = new Date("2026-07-31T12:00:32.834Z");
894134
+ const d7 = new Date("2026-08-03T04:18:00.311Z");
894127
894135
  const p2 = (n3) => String(n3).padStart(2, "0");
894128
894136
  const buildTime = `${d7.getFullYear()}/${p2(d7.getMonth() + 1)}/${p2(d7.getDate())} ${p2(d7.getHours())}:${p2(d7.getMinutes())}:${p2(d7.getSeconds())}`;
894129
- console.log(`${"4.2.21"} (commit: ${"a5b8e821b"}, built: ${buildTime})`);
894137
+ console.log(`${"4.2.22"} (commit: ${"3c5da52d8"}, built: ${buildTime})`);
894130
894138
  return;
894131
894139
  }
894132
894140
  let stopServeParentWatchdog;
@@ -894302,5 +894310,5 @@ async function main2() {
894302
894310
  }
894303
894311
  main2();
894304
894312
 
894305
- //# debugId=34E5D0B238E216CF64756E2164756E21
894313
+ //# debugId=BDFFF13975C5A74064756E2164756E21
894306
894314
 
@@ -736,8 +736,8 @@ function getClientVersion() {
736
736
  if (cached)
737
737
  return cached;
738
738
  try {
739
- if ("4.2.21") {
740
- cached = "4.2.21";
739
+ if ("4.2.22") {
740
+ cached = "4.2.22";
741
741
  return cached;
742
742
  }
743
743
  } catch {}
@@ -61589,11 +61589,19 @@ var init_memoize2 = __esm(() => {
61589
61589
  // src/utils/windowsPaths.ts
61590
61590
  import { existsSync as existsSync3 } from "fs";
61591
61591
  import * as pathWin32 from "path/win32";
61592
+ function isWslBash(candidatePath) {
61593
+ const lower = candidatePath.toLowerCase();
61594
+ return lower.endsWith("\\bash.exe") && (lower.includes("\\windows\\system32\\") || lower.includes("\\windows\\syswow64\\"));
61595
+ }
61592
61596
  function findExecutableWithDeps(executable, deps) {
61593
61597
  try {
61594
61598
  const paths2 = deps.execCommand(`where.exe ${executable}`).split(/\r?\n/u).map((candidate) => candidate.trim()).filter(Boolean);
61595
61599
  const cwd2 = pathWin32.resolve(deps.cwdFn()).toLowerCase();
61596
61600
  for (const candidatePath of paths2) {
61601
+ if (executable === "bash" && isWslBash(candidatePath)) {
61602
+ logForDebugging(`Skipping WSL bash launcher (incompatible with Windows paths): ${candidatePath}`);
61603
+ continue;
61604
+ }
61597
61605
  const candidateDirectory = pathWin32.dirname(pathWin32.resolve(candidatePath)).toLowerCase();
61598
61606
  const relativeDirectory = pathWin32.relative(cwd2, candidateDirectory);
61599
61607
  const isWithinCwd = relativeDirectory === "" || !relativeDirectory.startsWith("..") && !pathWin32.isAbsolute(relativeDirectory);
@@ -138541,7 +138549,7 @@ var init_user = __esm(() => {
138541
138549
  deviceId,
138542
138550
  sessionId: getSessionId(),
138543
138551
  email: getEmail(),
138544
- appVersion: "4.2.21",
138552
+ appVersion: "4.2.22",
138545
138553
  platform: getHostPlatformForAnalytics(),
138546
138554
  organizationUuid,
138547
138555
  accountUuid,
@@ -138828,7 +138836,7 @@ var init_metadata = __esm(() => {
138828
138836
  "sed"
138829
138837
  ]);
138830
138838
  getVersionBase = memoize_default(() => {
138831
- const match = "4.2.21".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
138839
+ const match = "4.2.22".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
138832
138840
  return match ? match[0] : undefined;
138833
138841
  });
138834
138842
  buildEnvContext = memoize_default(async () => {
@@ -138868,9 +138876,9 @@ var init_metadata = __esm(() => {
138868
138876
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
138869
138877
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
138870
138878
  isClaudeAiAuth: isClaudeAISubscriber(),
138871
- version: "4.2.21",
138879
+ version: "4.2.22",
138872
138880
  versionBase: getVersionBase(),
138873
- buildTime: "2026-07-31T12:00:35.194Z",
138881
+ buildTime: "2026-08-03T04:18:02.694Z",
138874
138882
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
138875
138883
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
138876
138884
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -143208,5 +143216,5 @@ export {
143208
143216
  isParentHeartbeatValid
143209
143217
  };
143210
143218
 
143211
- //# debugId=8FD1A5954CDBB6BF64756E2164756E21
143219
+ //# debugId=72170B1EA6BB7F1764756E2164756E21
143212
143220
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@costrict/csc",
3
- "version": "4.2.21",
3
+ "version": "4.2.22",
4
4
  "description": "costrict",
5
5
  "type": "module",
6
6
  "author": "costrict",