@costrict/csc 4.2.8 → 4.2.9

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
@@ -63721,8 +63721,8 @@ var init_credentials = __esm(() => {
63721
63721
  import { createRequire } from "module";
63722
63722
  function getVersion() {
63723
63723
  try {
63724
- if (typeof MACRO !== "undefined" && "4.2.8")
63725
- return "4.2.8";
63724
+ if (typeof MACRO !== "undefined" && "4.2.9")
63725
+ return "4.2.9";
63726
63726
  } catch {}
63727
63727
  try {
63728
63728
  const require2 = createRequire(import.meta.url);
@@ -184019,7 +184019,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
184019
184019
  headers: {
184020
184020
  Authorization: `Bearer ${accessToken}`,
184021
184021
  Accept: "application/json",
184022
- "User-Agent": `csc/${"4.2.8"}`
184022
+ "User-Agent": `csc/${"4.2.9"}`
184023
184023
  },
184024
184024
  signal: controller.signal
184025
184025
  });
@@ -187605,7 +187605,7 @@ var init_auth7 = __esm(() => {
187605
187605
 
187606
187606
  // src/utils/userAgent.ts
187607
187607
  function getClaudeCodeUserAgent() {
187608
- return `costrict/${"4.2.8"}`;
187608
+ return `costrict/${"4.2.9"}`;
187609
187609
  }
187610
187610
 
187611
187611
  // src/utils/workloadContext.ts
@@ -187627,7 +187627,7 @@ function getUserAgent() {
187627
187627
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
187628
187628
  const workload = getWorkload();
187629
187629
  const workloadSuffix = workload ? `, workload/${workload}` : "";
187630
- return `csc/${"4.2.8"}`;
187630
+ return `csc/${"4.2.9"}`;
187631
187631
  }
187632
187632
  function getMCPUserAgent() {
187633
187633
  const parts = [];
@@ -187641,7 +187641,7 @@ function getMCPUserAgent() {
187641
187641
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
187642
187642
  }
187643
187643
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
187644
- return `csc/${"4.2.8"}${suffix}`;
187644
+ return `csc/${"4.2.9"}${suffix}`;
187645
187645
  }
187646
187646
  function getWebFetchUserAgent() {
187647
187647
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -187761,7 +187761,7 @@ var init_user = __esm(() => {
187761
187761
  deviceId,
187762
187762
  sessionId: getSessionId(),
187763
187763
  email: getEmail(),
187764
- appVersion: "4.2.8",
187764
+ appVersion: "4.2.9",
187765
187765
  platform: getHostPlatformForAnalytics(),
187766
187766
  organizationUuid,
187767
187767
  accountUuid,
@@ -198842,7 +198842,7 @@ var init_metadata = __esm(() => {
198842
198842
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
198843
198843
  WHITESPACE_REGEX = /\s+/;
198844
198844
  getVersionBase = memoize_default(() => {
198845
- const match = "4.2.8".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
198845
+ const match = "4.2.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
198846
198846
  return match ? match[0] : undefined;
198847
198847
  });
198848
198848
  buildEnvContext = memoize_default(async () => {
@@ -198882,9 +198882,9 @@ var init_metadata = __esm(() => {
198882
198882
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
198883
198883
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
198884
198884
  isClaudeAiAuth: isClaudeAISubscriber(),
198885
- version: "4.2.8",
198885
+ version: "4.2.9",
198886
198886
  versionBase: getVersionBase(),
198887
- buildTime: "2026-07-01T09:41:30.503Z",
198887
+ buildTime: "2026-07-01T10:19:03.218Z",
198888
198888
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
198889
198889
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
198890
198890
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -199555,7 +199555,7 @@ function initialize1PEventLogging() {
199555
199555
  const platform3 = getPlatform();
199556
199556
  const attributes = {
199557
199557
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
199558
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.8"
199558
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.9"
199559
199559
  };
199560
199560
  if (platform3 === "wsl") {
199561
199561
  const wslVersion = getWslVersion();
@@ -199582,7 +199582,7 @@ function initialize1PEventLogging() {
199582
199582
  })
199583
199583
  ]
199584
199584
  });
199585
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.8");
199585
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.9");
199586
199586
  }
199587
199587
  async function reinitialize1PEventLoggingIfConfigChanged() {
199588
199588
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -397179,7 +397179,7 @@ function getTelemetryAttributes() {
397179
397179
  attributes["session.id"] = sessionId;
397180
397180
  }
397181
397181
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
397182
- attributes["app.version"] = "4.2.8";
397182
+ attributes["app.version"] = "4.2.9";
397183
397183
  }
397184
397184
  const oauthAccount = getOauthAccountInfo();
397185
397185
  if (oauthAccount) {
@@ -429634,7 +429634,7 @@ function initLangfuse() {
429634
429634
  flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
429635
429635
  mask: maskFn,
429636
429636
  environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
429637
- release: "4.2.8",
429637
+ release: "4.2.9",
429638
429638
  exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
429639
429639
  timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
429640
429640
  });
@@ -467870,7 +467870,7 @@ function initSentry() {
467870
467870
  }
467871
467871
  init3({
467872
467872
  dsn,
467873
- release: typeof MACRO !== "undefined" ? "4.2.8" : undefined,
467873
+ release: typeof MACRO !== "undefined" ? "4.2.9" : undefined,
467874
467874
  environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
467875
467875
  maxBreadcrumbs: 20,
467876
467876
  sampleRate: 1,
@@ -495761,7 +495761,7 @@ async function initializeBetaTracing(resource) {
495761
495761
  });
495762
495762
  import_api_logs5.logs.setGlobalLoggerProvider(loggerProvider);
495763
495763
  setLoggerProvider(loggerProvider);
495764
- const eventLogger = import_api_logs5.logs.getLogger("com.anthropic.claude_code.events", "4.2.8");
495764
+ const eventLogger = import_api_logs5.logs.getLogger("com.anthropic.claude_code.events", "4.2.9");
495765
495765
  setEventLogger(eventLogger);
495766
495766
  process.on("beforeExit", async () => {
495767
495767
  await loggerProvider?.forceFlush();
@@ -495801,7 +495801,7 @@ async function initializeTelemetry() {
495801
495801
  const platform5 = getPlatform();
495802
495802
  const baseAttributes = {
495803
495803
  [import_semantic_conventions14.ATTR_SERVICE_NAME]: "claude-code",
495804
- [import_semantic_conventions14.ATTR_SERVICE_VERSION]: "4.2.8"
495804
+ [import_semantic_conventions14.ATTR_SERVICE_VERSION]: "4.2.9"
495805
495805
  };
495806
495806
  if (platform5 === "wsl") {
495807
495807
  const wslVersion = getWslVersion();
@@ -495846,7 +495846,7 @@ async function initializeTelemetry() {
495846
495846
  } catch {}
495847
495847
  };
495848
495848
  registerCleanup(shutdownTelemetry2);
495849
- return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.8");
495849
+ return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.9");
495850
495850
  }
495851
495851
  const meterProvider = new import_sdk_metrics2.MeterProvider({
495852
495852
  resource,
@@ -495866,7 +495866,7 @@ async function initializeTelemetry() {
495866
495866
  });
495867
495867
  import_api_logs5.logs.setGlobalLoggerProvider(loggerProvider);
495868
495868
  setLoggerProvider(loggerProvider);
495869
- const eventLogger = import_api_logs5.logs.getLogger("com.anthropic.claude_code.events", "4.2.8");
495869
+ const eventLogger = import_api_logs5.logs.getLogger("com.anthropic.claude_code.events", "4.2.9");
495870
495870
  setEventLogger(eventLogger);
495871
495871
  logForDebugging("[3P telemetry] Event logger set successfully");
495872
495872
  process.on("beforeExit", async () => {
@@ -495928,7 +495928,7 @@ Current timeout: ${timeoutMs}ms
495928
495928
  }
495929
495929
  };
495930
495930
  registerCleanup(shutdownTelemetry);
495931
- return meterProvider.getMeter("com.anthropic.claude_code", "4.2.8");
495931
+ return meterProvider.getMeter("com.anthropic.claude_code", "4.2.9");
495932
495932
  }
495933
495933
  async function flushTelemetry() {
495934
495934
  const meterProvider = getMeterProvider();
@@ -496987,7 +496987,7 @@ async function installGlobalPackage(specificVersion) {
496987
496987
  logError3(new AutoUpdaterError("Another process is currently installing an update"));
496988
496988
  logEvent("tengu_auto_updater_lock_contention", {
496989
496989
  pid: process.pid,
496990
- currentVersion: "4.2.8"
496990
+ currentVersion: "4.2.9"
496991
496991
  });
496992
496992
  return { status: "in_progress" };
496993
496993
  }
@@ -496996,7 +496996,7 @@ async function installGlobalPackage(specificVersion) {
496996
496996
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
496997
496997
  logError3(new Error("Windows NPM detected in WSL environment"));
496998
496998
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
496999
- currentVersion: "4.2.8"
496999
+ currentVersion: "4.2.9"
497000
497000
  });
497001
497001
  return {
497002
497002
  status: "install_failed",
@@ -497542,7 +497542,7 @@ function detectLinuxGlobPatternWarnings() {
497542
497542
  }
497543
497543
  async function getDoctorDiagnostic() {
497544
497544
  const installationType = await getCurrentInstallationType();
497545
- const version7 = typeof MACRO !== "undefined" ? "4.2.8" : "unknown";
497545
+ const version7 = typeof MACRO !== "undefined" ? "4.2.9" : "unknown";
497546
497546
  const installationPath = await getInstallationPath();
497547
497547
  const invokedBinary = getInvokedBinary();
497548
497548
  const multipleInstallations = await detectMultipleInstallations();
@@ -535698,7 +535698,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
535698
535698
  const client8 = new Client3({
535699
535699
  name: "claude-code",
535700
535700
  title: "CoStrict",
535701
- version: "4.2.8",
535701
+ version: "4.2.9",
535702
535702
  description: "CoStrict agentic coding tool",
535703
535703
  websiteUrl: PRODUCT_URL
535704
535704
  }, {
@@ -536069,7 +536069,7 @@ var init_client17 = __esm(() => {
536069
536069
  const client8 = new Client3({
536070
536070
  name: "claude-code",
536071
536071
  title: "CoStrict",
536072
- version: "4.2.8",
536072
+ version: "4.2.9",
536073
536073
  description: "CoStrict agentic coding tool",
536074
536074
  websiteUrl: PRODUCT_URL
536075
536075
  }, {
@@ -537447,7 +537447,7 @@ function getInstallationEnv() {
537447
537447
  return;
537448
537448
  }
537449
537449
  function getClaudeCodeVersion() {
537450
- return "4.2.8";
537450
+ return "4.2.9";
537451
537451
  }
537452
537452
  async function getInstalledVSCodeExtensionVersion(command4) {
537453
537453
  const { stdout } = await execFileNoThrow2(command4, ["--list-extensions", "--show-versions"], {
@@ -538811,8 +538811,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
538811
538811
  const maxVersion = await getMaxVersion();
538812
538812
  if (maxVersion && gt(version8, maxVersion)) {
538813
538813
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version8} to ${maxVersion}`);
538814
- if (gte2("4.2.8", maxVersion)) {
538815
- logForDebugging(`Native installer: current version ${"4.2.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
538814
+ if (gte2("4.2.9", maxVersion)) {
538815
+ logForDebugging(`Native installer: current version ${"4.2.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
538816
538816
  logEvent("tengu_native_update_skipped_max_version", {
538817
538817
  latency_ms: Date.now() - startTime2,
538818
538818
  max_version: maxVersion,
@@ -538823,7 +538823,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
538823
538823
  version8 = maxVersion;
538824
538824
  }
538825
538825
  }
538826
- if (!forceReinstall && version8 === "4.2.8" && await versionIsAvailable(version8) && await isPossibleClaudeBinary(executablePath)) {
538826
+ if (!forceReinstall && version8 === "4.2.9" && await versionIsAvailable(version8) && await isPossibleClaudeBinary(executablePath)) {
538827
538827
  logForDebugging(`Found ${version8} at ${executablePath}, skipping install`);
538828
538828
  logEvent("tengu_native_update_complete", {
538829
538829
  latency_ms: Date.now() - startTime2,
@@ -673095,7 +673095,7 @@ function Feedback({
673095
673095
  platform: env4.platform,
673096
673096
  gitRepo: envInfo.isGit,
673097
673097
  terminal: env4.terminal,
673098
- version: "4.2.8",
673098
+ version: "4.2.9",
673099
673099
  transcript: normalizeMessagesForAPI(messages),
673100
673100
  errors: sanitizedErrors,
673101
673101
  lastApiRequest: getLastAPIRequest(),
@@ -673278,7 +673278,7 @@ function Feedback({
673278
673278
  ", ",
673279
673279
  env4.terminal,
673280
673280
  ", v",
673281
- "4.2.8"
673281
+ "4.2.9"
673282
673282
  ]
673283
673283
  })
673284
673284
  ]
@@ -673375,7 +673375,7 @@ ${sanitizedDescription}
673375
673375
  ` + `**Environment Info**
673376
673376
  ` + `- Platform: ${env4.platform}
673377
673377
  ` + `- Terminal: ${env4.terminal}
673378
- ` + `- Version: ${"4.2.8"}
673378
+ ` + `- Version: ${"4.2.9"}
673379
673379
  ` + `- Feedback ID: ${feedbackId}
673380
673380
  ` + `
673381
673381
  **Errors**
@@ -675611,7 +675611,7 @@ function buildPrimarySection() {
675611
675611
  children: t("settings.status.renameHint")
675612
675612
  });
675613
675613
  return [
675614
- { label: t("settings.status.version"), value: "4.2.8" },
675614
+ { label: t("settings.status.version"), value: "4.2.9" },
675615
675615
  { label: t("settings.status.sessionName"), value: nameValue },
675616
675616
  { label: t("settings.status.sessionId"), value: sessionId },
675617
675617
  { label: t("settings.status.cwd"), value: getCwd() },
@@ -678433,7 +678433,7 @@ function Config({
678433
678433
  }
678434
678434
  })
678435
678435
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime190.jsx(ChannelDowngradeDialog, {
678436
- currentVersion: "4.2.8",
678436
+ currentVersion: "4.2.9",
678437
678437
  onChoice: (choice) => {
678438
678438
  setShowSubmenu(null);
678439
678439
  setTabsHidden(false);
@@ -678445,7 +678445,7 @@ function Config({
678445
678445
  autoUpdatesChannel: "stable"
678446
678446
  };
678447
678447
  if (choice === "stay") {
678448
- newSettings.minimumVersion = "4.2.8";
678448
+ newSettings.minimumVersion = "4.2.9";
678449
678449
  }
678450
678450
  updateSettingsForSource("userSettings", newSettings);
678451
678451
  setSettingsData((prev) => ({
@@ -683914,7 +683914,7 @@ function HelpV2({ onClose, commands: commands7 }) {
683914
683914
  color: "professionalBlue",
683915
683915
  children: [
683916
683916
  /* @__PURE__ */ jsx_runtime217.jsx(Tabs, {
683917
- title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.8"}`,
683917
+ title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.9"}`,
683918
683918
  color: "professionalBlue",
683919
683919
  defaultTab: "general",
683920
683920
  children: tabs
@@ -774512,7 +774512,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
774512
774512
  return [];
774513
774513
  }
774514
774514
  }
774515
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.8") {
774515
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.9") {
774516
774516
  if (process.env.USER_TYPE === "sf") {
774517
774517
  const changelog = "";
774518
774518
  if (changelog) {
@@ -774539,7 +774539,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.8") {
774539
774539
  releaseNotes
774540
774540
  };
774541
774541
  }
774542
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.8") {
774542
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.9") {
774543
774543
  if (process.env.USER_TYPE === "sf") {
774544
774544
  const changelog = "";
774545
774545
  if (changelog) {
@@ -777300,7 +777300,7 @@ function isNotLoggedIn() {
777300
777300
  return true;
777301
777301
  }
777302
777302
  function getLogoDisplayData() {
777303
- const version8 = process.env.DEMO_VERSION ?? "4.2.8";
777303
+ const version8 = process.env.DEMO_VERSION ?? "4.2.9";
777304
777304
  const serverUrl = getDirectConnectServerUrl();
777305
777305
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
777306
777306
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -777878,7 +777878,7 @@ var init_MatrixMessageLine = __esm(() => {
777878
777878
  // src/components/matrix-tactical/MatrixWelcome.tsx
777879
777879
  import { basename as basename47 } from "path";
777880
777880
  function MatrixWelcome({
777881
- version: version8 = "4.2.8",
777881
+ version: version8 = "4.2.9",
777882
777882
  projectName,
777883
777883
  cwd: cwd2,
777884
777884
  modelDisplayName,
@@ -778513,13 +778513,13 @@ function LogoV2() {
778513
778513
  const { hasReleaseNotes } = checkForReleaseNotesSync(config11.lastReleaseNotesSeen);
778514
778514
  import_react167.useEffect(() => {
778515
778515
  const currentConfig = getGlobalConfig();
778516
- if (currentConfig.lastReleaseNotesSeen === "4.2.8") {
778516
+ if (currentConfig.lastReleaseNotesSeen === "4.2.9") {
778517
778517
  return;
778518
778518
  }
778519
778519
  saveGlobalConfig((current2) => {
778520
- if (current2.lastReleaseNotesSeen === "4.2.8")
778520
+ if (current2.lastReleaseNotesSeen === "4.2.9")
778521
778521
  return current2;
778522
- return { ...current2, lastReleaseNotesSeen: "4.2.8" };
778522
+ return { ...current2, lastReleaseNotesSeen: "4.2.9" };
778523
778523
  });
778524
778524
  if (showOnboarding) {
778525
778525
  incrementProjectOnboardingSeenCount();
@@ -800457,7 +800457,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
800457
800457
  smapsRollup,
800458
800458
  platform: process.platform,
800459
800459
  nodeVersion: process.version,
800460
- ccVersion: "4.2.8"
800460
+ ccVersion: "4.2.9"
800461
800461
  };
800462
800462
  }
800463
800463
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -800573,7 +800573,7 @@ var init_mock_limits = __esm(() => {
800573
800573
  var call54 = async () => {
800574
800574
  return {
800575
800575
  type: "text",
800576
- value: `${"4.2.8"} (built ${"2026-07-01T09:41:30.503Z"})`
800576
+ value: `${"4.2.9"} (built ${"2026-07-01T10:19:03.218Z"})`
800577
800577
  };
800578
800578
  }, version8, version_default;
800579
800579
  var init_version2 = __esm(() => {
@@ -806991,8 +806991,8 @@ var init_tag2 = __esm(() => {
806991
806991
  import { createRequire as createRequire4 } from "module";
806992
806992
  function getVersion2() {
806993
806993
  try {
806994
- if (typeof MACRO !== "undefined" && "4.2.8")
806995
- return "4.2.8";
806994
+ if (typeof MACRO !== "undefined" && "4.2.9")
806995
+ return "4.2.9";
806996
806996
  } catch {}
806997
806997
  try {
806998
806998
  const require3 = createRequire4(import.meta.url);
@@ -817329,7 +817329,7 @@ function generateHtmlReport(data, insights) {
817329
817329
  </html>`;
817330
817330
  }
817331
817331
  function buildExportData(data, insights, facets, remoteStats) {
817332
- const version9 = typeof MACRO !== "undefined" ? "4.2.8" : "unknown";
817332
+ const version9 = typeof MACRO !== "undefined" ? "4.2.9" : "unknown";
817333
817333
  const remote_hosts_collected = remoteStats?.hosts.filter((h5) => h5.sessionCount > 0).map((h5) => h5.name);
817334
817334
  const facets_summary = {
817335
817335
  total: facets.size,
@@ -821643,7 +821643,7 @@ var init_sessionStorage = __esm(() => {
821643
821643
  init_settings2();
821644
821644
  init_slowOperations();
821645
821645
  init_uuid();
821646
- VERSION10 = typeof MACRO !== "undefined" ? "4.2.8" : "unknown";
821646
+ VERSION10 = typeof MACRO !== "undefined" ? "4.2.9" : "unknown";
821647
821647
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
821648
821648
  SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
821649
821649
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -822984,7 +822984,7 @@ var init_filesystem = __esm(() => {
822984
822984
  });
822985
822985
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
822986
822986
  const nonce = randomBytes24(16).toString("hex");
822987
- return join195(getCostrictTempDir(), "bundled-skills", "4.2.8", nonce);
822987
+ return join195(getCostrictTempDir(), "bundled-skills", "4.2.9", nonce);
822988
822988
  });
822989
822989
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
822990
822990
  });
@@ -829182,7 +829182,7 @@ function computeFingerprint(messageText, version9) {
829182
829182
  }
829183
829183
  function computeFingerprintFromMessages(messages) {
829184
829184
  const firstMessageText = extractFirstMessageText(messages);
829185
- return computeFingerprint(firstMessageText, "4.2.8");
829185
+ return computeFingerprint(firstMessageText, "4.2.9");
829186
829186
  }
829187
829187
  var FINGERPRINT_SALT = "59cf53e54c78";
829188
829188
  var init_fingerprint = () => {};
@@ -829592,7 +829592,7 @@ function getAnthropicEnvMetadata() {
829592
829592
  function getBuildAgeMinutes() {
829593
829593
  if (false)
829594
829594
  ;
829595
- const buildTime = new Date("2026-07-01T09:41:30.503Z").getTime();
829595
+ const buildTime = new Date("2026-07-01T10:19:03.218Z").getTime();
829596
829596
  if (isNaN(buildTime))
829597
829597
  return;
829598
829598
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -831094,6 +831094,7 @@ async function* consumeOpenAIStream(adaptedStream, openaiModel, tools, options,
831094
831094
  const contentBlocks = {};
831095
831095
  const collectedMessages = [];
831096
831096
  let partialMessage;
831097
+ let hasProducedOutput = false;
831097
831098
  let stopReason = null;
831098
831099
  let usage2 = {
831099
831100
  input_tokens: 0,
@@ -831108,6 +831109,7 @@ async function* consumeOpenAIStream(adaptedStream, openaiModel, tools, options,
831108
831109
  switch (event.type) {
831109
831110
  case "message_start": {
831110
831111
  partialMessage = event.message;
831112
+ hasProducedOutput = true;
831111
831113
  ttftMs = Date.now() - start;
831112
831114
  if (event.message?.usage) {
831113
831115
  usage2 = {
@@ -831222,10 +831224,10 @@ async function* consumeOpenAIStream(adaptedStream, openaiModel, tools, options,
831222
831224
  yield output;
831223
831225
  }
831224
831226
  }
831225
- return !!partialMessage;
831227
+ return hasProducedOutput;
831226
831228
  } catch (error99) {
831227
831229
  if (error99 instanceof Error) {
831228
- error99.__streamProducedOutput = !!partialMessage;
831230
+ error99.__streamProducedOutput = hasProducedOutput;
831229
831231
  }
831230
831232
  throw error99;
831231
831233
  }
@@ -832599,6 +832601,7 @@ async function* consumeCoStrictStream(adaptedStream, costrictModel, tools, optio
832599
832601
  const contentBlocks = {};
832600
832602
  const toolCallStates = new Map;
832601
832603
  let partialMessage;
832604
+ let hasProducedOutput = false;
832602
832605
  let stopReason = null;
832603
832606
  let usage2 = {
832604
832607
  input_tokens: 0,
@@ -832668,6 +832671,7 @@ async function* consumeCoStrictStream(adaptedStream, costrictModel, tools, optio
832668
832671
  switch (event.type) {
832669
832672
  case "message_start": {
832670
832673
  partialMessage = event.message;
832674
+ hasProducedOutput = true;
832671
832675
  ttftMs = Date.now() - start;
832672
832676
  if (event.message?.usage) {
832673
832677
  usage2 = { ...usage2, ...event.message.usage };
@@ -832761,10 +832765,10 @@ async function* consumeCoStrictStream(adaptedStream, costrictModel, tools, optio
832761
832765
  yield output;
832762
832766
  }
832763
832767
  }
832764
- return !!partialMessage;
832768
+ return hasProducedOutput;
832765
832769
  } catch (error99) {
832766
832770
  if (error99 instanceof Error) {
832767
- error99.__streamProducedOutput = !!partialMessage;
832771
+ error99.__streamProducedOutput = hasProducedOutput;
832768
832772
  }
832769
832773
  throw error99;
832770
832774
  }
@@ -834939,7 +834943,7 @@ async function sideQuery(opts) {
834939
834943
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
834940
834944
  }
834941
834945
  const messageText = extractFirstUserMessageText(messages);
834942
- const fingerprint = computeFingerprint(messageText, "4.2.8");
834946
+ const fingerprint = computeFingerprint(messageText, "4.2.9");
834943
834947
  const attributionHeader = getAttributionHeader(fingerprint);
834944
834948
  const systemBlocks = [
834945
834949
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -838314,7 +838318,7 @@ function buildSystemInitMessage(inputs) {
838314
838318
  slash_commands: inputs.commands.filter((c7) => c7.userInvocable !== false).map((c7) => c7.name),
838315
838319
  apiKeySource: getAnthropicApiKeyWithSource().source,
838316
838320
  betas: getSdkBetas(),
838317
- claude_code_version: "4.2.8",
838321
+ claude_code_version: "4.2.9",
838318
838322
  output_style: outputStyle2,
838319
838323
  agents: inputs.agents.map((agent) => agent.agentType),
838320
838324
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -843163,7 +843167,7 @@ function appendToLog(path50, message2) {
843163
843167
  cwd: getFsImplementation().cwd(),
843164
843168
  userType: process.env.USER_TYPE,
843165
843169
  sessionId: getSessionId(),
843166
- version: "4.2.8"
843170
+ version: "4.2.9"
843167
843171
  };
843168
843172
  getLogWriter(path50).write(messageWithTimestamp);
843169
843173
  }
@@ -863965,7 +863969,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
863965
863969
  project_dir: getOriginalCwd(),
863966
863970
  added_dirs: addedDirs
863967
863971
  },
863968
- version: "4.2.8",
863972
+ version: "4.2.9",
863969
863973
  output_style: {
863970
863974
  name: outputStyleName
863971
863975
  },
@@ -882544,7 +882548,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
882544
882548
  } catch {}
882545
882549
  const data = {
882546
882550
  trigger,
882547
- version: "4.2.8",
882551
+ version: "4.2.9",
882548
882552
  platform: process.platform,
882549
882553
  transcript,
882550
882554
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -883799,7 +883803,7 @@ function getReleaseType(current2, latest) {
883799
883803
  return "patch";
883800
883804
  }
883801
883805
  async function checkNewAutoUpdate(callbacks) {
883802
- const currentVersion = "4.2.8";
883806
+ const currentVersion = "4.2.9";
883803
883807
  logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
883804
883808
  if (isNewAutoUpdaterDisabled()) {
883805
883809
  return { action: "skip", currentVersion, latestVersion: null };
@@ -894675,7 +894679,7 @@ function WelcomeV2() {
894675
894679
  dimColor: true,
894676
894680
  children: [
894677
894681
  "v",
894678
- "4.2.8",
894682
+ "4.2.9",
894679
894683
  " "
894680
894684
  ]
894681
894685
  })
@@ -894741,7 +894745,7 @@ function WelcomeV2() {
894741
894745
  dimColor: true,
894742
894746
  children: [
894743
894747
  "v",
894744
- "4.2.8",
894748
+ "4.2.9",
894745
894749
  " "
894746
894750
  ]
894747
894751
  })
@@ -894843,7 +894847,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
894843
894847
  dimColor: true,
894844
894848
  children: [
894845
894849
  "v",
894846
- "4.2.8",
894850
+ "4.2.9",
894847
894851
  " "
894848
894852
  ]
894849
894853
  })
@@ -894909,7 +894913,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
894909
894913
  dimColor: true,
894910
894914
  children: [
894911
894915
  "v",
894912
- "4.2.8",
894916
+ "4.2.9",
894913
894917
  " "
894914
894918
  ]
894915
894919
  })
@@ -895849,7 +895853,7 @@ function completeOnboarding() {
895849
895853
  saveGlobalConfig((current2) => ({
895850
895854
  ...current2,
895851
895855
  hasCompletedOnboarding: true,
895852
- lastOnboardingVersion: "4.2.8"
895856
+ lastOnboardingVersion: "4.2.9"
895853
895857
  }));
895854
895858
  }
895855
895859
  function showDialog(root6, renderer) {
@@ -897228,7 +897232,7 @@ function registerWeixinBuiltinPlugin() {
897228
897232
  registerBuiltinPlugin({
897229
897233
  name: "weixin",
897230
897234
  description: "WeChat channel integration. Enables inbound WeChat messages via channels and provides reply/send_typing MCP tools. Configure with `ccb weixin login` and enable for a session with `--channels plugin:weixin@builtin`.",
897231
- version: "4.2.8",
897235
+ version: "4.2.9",
897232
897236
  defaultEnabled: true,
897233
897237
  mcpServers: {
897234
897238
  weixin: {
@@ -909712,7 +909716,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
909712
909716
  setCwd(cwd3);
909713
909717
  const server2 = new Server({
909714
909718
  name: "claude/tengu",
909715
- version: "4.2.8"
909719
+ version: "4.2.9"
909716
909720
  }, {
909717
909721
  capabilities: {
909718
909722
  tools: {}
@@ -911991,7 +911995,7 @@ function createHealthRoutes(sessionManager) {
911991
911995
  const uptime2 = process.uptime() * 1000;
911992
911996
  return c7.json({
911993
911997
  status: "ok",
911994
- version: "4.2.8",
911998
+ version: "4.2.9",
911995
911999
  uptime_ms: Math.round(uptime2),
911996
912000
  active_sessions: sessionManager.getActiveCount()
911997
912001
  });
@@ -912261,7 +912265,7 @@ function getMacroDefines() {
912261
912265
  commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
912262
912266
  } catch {}
912263
912267
  return {
912264
- "MACRO.VERSION": JSON.stringify("4.2.8"),
912268
+ "MACRO.VERSION": JSON.stringify("4.2.9"),
912265
912269
  "MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
912266
912270
  "MACRO.COMMIT": JSON.stringify(commit),
912267
912271
  "MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
@@ -918176,7 +918180,7 @@ __export(exports_update, {
918176
918180
  });
918177
918181
  async function update() {
918178
918182
  logEvent("tengu_update_check", {});
918179
- writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.8"}
918183
+ writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.9"}
918180
918184
  `);
918181
918185
  const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
918182
918186
  writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
@@ -918251,8 +918255,8 @@ async function update() {
918251
918255
  writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
918252
918256
  `);
918253
918257
  const latest = await getLatestVersion(channel5);
918254
- if (latest && !gte2("4.2.8", latest)) {
918255
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8", latest }, "Update available: {current} \u2192 {latest}")}
918258
+ if (latest && !gte2("4.2.9", latest)) {
918259
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.9", latest }, "Update available: {current} \u2192 {latest}")}
918256
918260
  `);
918257
918261
  writeToStdout(`
918258
918262
  `);
@@ -918268,8 +918272,8 @@ async function update() {
918268
918272
  writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
918269
918273
  `);
918270
918274
  const latest = await getLatestVersion(channel5);
918271
- if (latest && !gte2("4.2.8", latest)) {
918272
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8", latest }, "Update available: {current} \u2192 {latest}")}
918275
+ if (latest && !gte2("4.2.9", latest)) {
918276
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.9", latest }, "Update available: {current} \u2192 {latest}")}
918273
918277
  `);
918274
918278
  writeToStdout(`
918275
918279
  `);
@@ -918285,8 +918289,8 @@ async function update() {
918285
918289
  writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
918286
918290
  `);
918287
918291
  const latest = await getLatestVersion(channel5);
918288
- if (latest && !gte2("4.2.8", latest)) {
918289
- writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.8", latest }, "Update available: {current} \u2192 {latest}")}
918292
+ if (latest && !gte2("4.2.9", latest)) {
918293
+ writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.9", latest }, "Update available: {current} \u2192 {latest}")}
918290
918294
  `);
918291
918295
  writeToStdout(`
918292
918296
  `);
@@ -918351,11 +918355,11 @@ async function update() {
918351
918355
  `);
918352
918356
  await gracefulShutdown(1);
918353
918357
  }
918354
- if (result2.latestVersion === "4.2.8") {
918355
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.8" }, "CoStrict is up to date ({version})")) + `
918358
+ if (result2.latestVersion === "4.2.9") {
918359
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.9" }, "CoStrict is up to date ({version})")) + `
918356
918360
  `);
918357
918361
  } else {
918358
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.8", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
918362
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.9", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
918359
918363
  `);
918360
918364
  regenerateCompletionCache();
918361
918365
  }
@@ -918415,12 +918419,12 @@ async function update() {
918415
918419
  `);
918416
918420
  await gracefulShutdown(1);
918417
918421
  }
918418
- if (latestVersion === "4.2.8") {
918419
- writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.8" }, "CoStrict is up to date ({version})")) + `
918422
+ if (latestVersion === "4.2.9") {
918423
+ writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.9" }, "CoStrict is up to date ({version})")) + `
918420
918424
  `);
918421
918425
  await gracefulShutdown(0);
918422
918426
  }
918423
- writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.8" }, "New version available: {latest} (current: {current})")}
918427
+ writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.9" }, "New version available: {latest} (current: {current})")}
918424
918428
  `);
918425
918429
  writeToStdout(`${t("cli.update.installing", "Installing update...")}
918426
918430
  `);
@@ -918465,7 +918469,7 @@ async function update() {
918465
918469
  logForDebugging(`update: Installation status: ${result.status}`);
918466
918470
  switch (result.status) {
918467
918471
  case "success":
918468
- writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.8", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
918472
+ writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.9", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
918469
918473
  `);
918470
918474
  regenerateCompletionCache();
918471
918475
  break;
@@ -920685,7 +920689,7 @@ ${assistantAddendum}` : assistantAddendum;
920685
920689
  }
920686
920690
  }
920687
920691
  logForDiagnosticsNoPII("info", "started", {
920688
- version: "4.2.8",
920692
+ version: "4.2.9",
920689
920693
  is_native_binary: isInBundledMode()
920690
920694
  });
920691
920695
  registerCleanup(async () => {
@@ -921166,7 +921170,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
921166
921170
  sshSession = await createSSHSession2({
921167
921171
  host: _pendingSSH.host,
921168
921172
  cwd: _pendingSSH.cwd,
921169
- localVersion: "4.2.8",
921173
+ localVersion: "4.2.9",
921170
921174
  permissionMode: _pendingSSH.permissionMode,
921171
921175
  dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
921172
921176
  extraCliArgs: _pendingSSH.extraCliArgs,
@@ -921638,7 +921642,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
921638
921642
  pendingHookMessages
921639
921643
  }, renderAndRun);
921640
921644
  }
921641
- }).version("4.2.8 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
921645
+ }).version("4.2.9 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
921642
921646
  program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
921643
921647
  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());
921644
921648
  if (canUserConfigureAdvisor()) {
@@ -922354,10 +922358,10 @@ if (process.env.CLAUDE_CODE_REMOTE === "true") {
922354
922358
  async function main2() {
922355
922359
  const args = process.argv.slice(2);
922356
922360
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
922357
- const d4 = new Date("2026-07-01T09:41:30.503Z");
922361
+ const d4 = new Date("2026-07-01T10:19:03.218Z");
922358
922362
  const p2 = (n3) => String(n3).padStart(2, "0");
922359
922363
  const buildTime = `${d4.getFullYear()}/${p2(d4.getMonth() + 1)}/${p2(d4.getDate())} ${p2(d4.getHours())}:${p2(d4.getMinutes())}:${p2(d4.getSeconds())}`;
922360
- console.log(`${"4.2.8"} (commit: ${"353b792d4"}, built: ${buildTime})`);
922364
+ console.log(`${"4.2.9"} (commit: ${"d82db46ae"}, built: ${buildTime})`);
922361
922365
  return;
922362
922366
  }
922363
922367
  const { terminateBatchWorker: terminateBatchWorker2 } = await Promise.resolve().then(() => (init_spawn(), exports_spawn));
@@ -922427,7 +922431,7 @@ async function main2() {
922427
922431
  registerPermissionHandler(server2, handler) {
922428
922432
  server2.setNotificationHandler(ChannelPermissionRequestNotificationSchema2(), async (notification) => handler(notification.params));
922429
922433
  }
922430
- }, "4.2.8");
922434
+ }, "4.2.9");
922431
922435
  return;
922432
922436
  }
922433
922437
  if (args[0] === "--daemon-worker" || args[0]?.startsWith("--daemon-worker=")) {
@@ -922525,5 +922529,5 @@ async function main2() {
922525
922529
  }
922526
922530
  main2();
922527
922531
 
922528
- //# debugId=13ED2747AD1152AF64756E2164756E21
922532
+ //# debugId=0497C5BFE61AA00664756E2164756E21
922529
922533
  //# sourceMappingURL=cli.js.map
@@ -508,8 +508,8 @@ async function saveCoStrictCredentials(credentials) {
508
508
  import { createRequire } from "module";
509
509
  function getVersion() {
510
510
  try {
511
- if (typeof MACRO !== "undefined" && "4.2.8")
512
- return "4.2.8";
511
+ if (typeof MACRO !== "undefined" && "4.2.9")
512
+ return "4.2.9";
513
513
  } catch {}
514
514
  try {
515
515
  const require2 = createRequire(import.meta.url);
@@ -2790,5 +2790,5 @@ export {
2790
2790
  startBatchWorker
2791
2791
  };
2792
2792
 
2793
- //# debugId=DEF8126068895F0964756E2164756E21
2793
+ //# debugId=D410A8B64FA27F9E64756E2164756E21
2794
2794
  //# sourceMappingURL=batchWorker.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@costrict/csc",
3
- "version": "4.2.8",
3
+ "version": "4.2.9",
4
4
  "description": "costrict",
5
5
  "type": "module",
6
6
  "author": "costrict",