@costrict/csc 4.2.23 → 4.2.24
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 +145 -95
- package/dist/services/rawDump/batchWorker.js +7 -7
- package/package.json +1 -1
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.
|
|
66717
|
-
cached = "4.2.
|
|
66716
|
+
if ("4.2.24") {
|
|
66717
|
+
cached = "4.2.24";
|
|
66718
66718
|
return cached;
|
|
66719
66719
|
}
|
|
66720
66720
|
} catch {}
|
|
@@ -220503,7 +220503,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
|
|
|
220503
220503
|
headers: {
|
|
220504
220504
|
Authorization: `Bearer ${accessToken}`,
|
|
220505
220505
|
Accept: "application/json",
|
|
220506
|
-
"User-Agent": `csc/${"4.2.
|
|
220506
|
+
"User-Agent": `csc/${"4.2.24"}`
|
|
220507
220507
|
},
|
|
220508
220508
|
signal: controller.signal
|
|
220509
220509
|
});
|
|
@@ -222540,7 +222540,7 @@ var init_auth7 = __esm(() => {
|
|
|
222540
222540
|
|
|
222541
222541
|
// src/utils/userAgent.ts
|
|
222542
222542
|
function getClaudeCodeUserAgent() {
|
|
222543
|
-
return `costrict/${"4.2.
|
|
222543
|
+
return `costrict/${"4.2.24"}`;
|
|
222544
222544
|
}
|
|
222545
222545
|
|
|
222546
222546
|
// src/utils/workloadContext.ts
|
|
@@ -222562,7 +222562,7 @@ function getUserAgent() {
|
|
|
222562
222562
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
222563
222563
|
const workload = getWorkload();
|
|
222564
222564
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
222565
|
-
return `csc/${"4.2.
|
|
222565
|
+
return `csc/${"4.2.24"}`;
|
|
222566
222566
|
}
|
|
222567
222567
|
function getMCPUserAgent() {
|
|
222568
222568
|
const parts = [];
|
|
@@ -222576,7 +222576,7 @@ function getMCPUserAgent() {
|
|
|
222576
222576
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
222577
222577
|
}
|
|
222578
222578
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
222579
|
-
return `csc/${"4.2.
|
|
222579
|
+
return `csc/${"4.2.24"}${suffix}`;
|
|
222580
222580
|
}
|
|
222581
222581
|
function getWebFetchUserAgent() {
|
|
222582
222582
|
return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -222696,7 +222696,7 @@ var init_user = __esm(() => {
|
|
|
222696
222696
|
deviceId,
|
|
222697
222697
|
sessionId: getSessionId(),
|
|
222698
222698
|
email: getEmail(),
|
|
222699
|
-
appVersion: "4.2.
|
|
222699
|
+
appVersion: "4.2.24",
|
|
222700
222700
|
platform: getHostPlatformForAnalytics(),
|
|
222701
222701
|
organizationUuid,
|
|
222702
222702
|
accountUuid,
|
|
@@ -233744,7 +233744,7 @@ var init_metadata = __esm(() => {
|
|
|
233744
233744
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
233745
233745
|
WHITESPACE_REGEX = /\s+/;
|
|
233746
233746
|
getVersionBase = memoize_default(() => {
|
|
233747
|
-
const match = "4.2.
|
|
233747
|
+
const match = "4.2.24".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
233748
233748
|
return match ? match[0] : undefined;
|
|
233749
233749
|
});
|
|
233750
233750
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -233784,9 +233784,9 @@ var init_metadata = __esm(() => {
|
|
|
233784
233784
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
233785
233785
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
233786
233786
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
233787
|
-
version: "4.2.
|
|
233787
|
+
version: "4.2.24",
|
|
233788
233788
|
versionBase: getVersionBase(),
|
|
233789
|
-
buildTime: "2026-08-
|
|
233789
|
+
buildTime: "2026-08-04T09:20:56.936Z",
|
|
233790
233790
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
233791
233791
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
233792
233792
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -234457,7 +234457,7 @@ function initialize1PEventLogging() {
|
|
|
234457
234457
|
const platform3 = getPlatform();
|
|
234458
234458
|
const attributes = {
|
|
234459
234459
|
[import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
|
|
234460
|
-
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.
|
|
234460
|
+
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.24"
|
|
234461
234461
|
};
|
|
234462
234462
|
if (platform3 === "wsl") {
|
|
234463
234463
|
const wslVersion = getWslVersion();
|
|
@@ -234484,7 +234484,7 @@ function initialize1PEventLogging() {
|
|
|
234484
234484
|
})
|
|
234485
234485
|
]
|
|
234486
234486
|
});
|
|
234487
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
234487
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.24");
|
|
234488
234488
|
}
|
|
234489
234489
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
234490
234490
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -434502,7 +434502,7 @@ function getTelemetryAttributes() {
|
|
|
434502
434502
|
attributes["session.id"] = sessionId;
|
|
434503
434503
|
}
|
|
434504
434504
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
434505
|
-
attributes["app.version"] = "4.2.
|
|
434505
|
+
attributes["app.version"] = "4.2.24";
|
|
434506
434506
|
}
|
|
434507
434507
|
const oauthAccount = getOauthAccountInfo();
|
|
434508
434508
|
if (oauthAccount) {
|
|
@@ -468022,7 +468022,7 @@ function initLangfuse() {
|
|
|
468022
468022
|
flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
|
|
468023
468023
|
mask: maskFn,
|
|
468024
468024
|
environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
|
|
468025
|
-
release: "4.2.
|
|
468025
|
+
release: "4.2.24",
|
|
468026
468026
|
exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
|
|
468027
468027
|
timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
|
|
468028
468028
|
});
|
|
@@ -499922,7 +499922,7 @@ function initSentry() {
|
|
|
499922
499922
|
}
|
|
499923
499923
|
init3({
|
|
499924
499924
|
dsn,
|
|
499925
|
-
release: typeof MACRO !== "undefined" ? "4.2.
|
|
499925
|
+
release: typeof MACRO !== "undefined" ? "4.2.24" : undefined,
|
|
499926
499926
|
environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
|
|
499927
499927
|
maxBreadcrumbs: 20,
|
|
499928
499928
|
sampleRate: 1,
|
|
@@ -527819,7 +527819,7 @@ async function initializeBetaTracing(resource) {
|
|
|
527819
527819
|
});
|
|
527820
527820
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
527821
527821
|
setLoggerProvider(loggerProvider);
|
|
527822
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
527822
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.24");
|
|
527823
527823
|
setEventLogger(eventLogger);
|
|
527824
527824
|
process.on("beforeExit", async () => {
|
|
527825
527825
|
await loggerProvider?.forceFlush();
|
|
@@ -527859,7 +527859,7 @@ async function initializeTelemetry() {
|
|
|
527859
527859
|
const platform5 = getPlatform();
|
|
527860
527860
|
const baseAttributes = {
|
|
527861
527861
|
[import_semantic_conventions29.ATTR_SERVICE_NAME]: "claude-code",
|
|
527862
|
-
[import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.
|
|
527862
|
+
[import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.24"
|
|
527863
527863
|
};
|
|
527864
527864
|
if (platform5 === "wsl") {
|
|
527865
527865
|
const wslVersion = getWslVersion();
|
|
@@ -527904,7 +527904,7 @@ async function initializeTelemetry() {
|
|
|
527904
527904
|
} catch {}
|
|
527905
527905
|
};
|
|
527906
527906
|
registerCleanup(shutdownTelemetry2);
|
|
527907
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.
|
|
527907
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.24");
|
|
527908
527908
|
}
|
|
527909
527909
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
527910
527910
|
resource,
|
|
@@ -527924,7 +527924,7 @@ async function initializeTelemetry() {
|
|
|
527924
527924
|
});
|
|
527925
527925
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
527926
527926
|
setLoggerProvider(loggerProvider);
|
|
527927
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
527927
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.24");
|
|
527928
527928
|
setEventLogger(eventLogger);
|
|
527929
527929
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
527930
527930
|
process.on("beforeExit", async () => {
|
|
@@ -527986,7 +527986,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
527986
527986
|
}
|
|
527987
527987
|
};
|
|
527988
527988
|
registerCleanup(shutdownTelemetry);
|
|
527989
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "4.2.
|
|
527989
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "4.2.24");
|
|
527990
527990
|
}
|
|
527991
527991
|
async function flushTelemetry() {
|
|
527992
527992
|
const meterProvider = getMeterProvider();
|
|
@@ -529045,7 +529045,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
529045
529045
|
logError3(new AutoUpdaterError("Another process is currently installing an update"));
|
|
529046
529046
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
529047
529047
|
pid: process.pid,
|
|
529048
|
-
currentVersion: "4.2.
|
|
529048
|
+
currentVersion: "4.2.24"
|
|
529049
529049
|
});
|
|
529050
529050
|
return { status: "in_progress" };
|
|
529051
529051
|
}
|
|
@@ -529054,7 +529054,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
529054
529054
|
if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
|
|
529055
529055
|
logError3(new Error("Windows NPM detected in WSL environment"));
|
|
529056
529056
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
529057
|
-
currentVersion: "4.2.
|
|
529057
|
+
currentVersion: "4.2.24"
|
|
529058
529058
|
});
|
|
529059
529059
|
return {
|
|
529060
529060
|
status: "install_failed",
|
|
@@ -529600,7 +529600,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
529600
529600
|
}
|
|
529601
529601
|
async function getDoctorDiagnostic() {
|
|
529602
529602
|
const installationType = await getCurrentInstallationType();
|
|
529603
|
-
const version9 = typeof MACRO !== "undefined" ? "4.2.
|
|
529603
|
+
const version9 = typeof MACRO !== "undefined" ? "4.2.24" : "unknown";
|
|
529604
529604
|
const installationPath = await getInstallationPath();
|
|
529605
529605
|
const invokedBinary = getInvokedBinary();
|
|
529606
529606
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -567787,7 +567787,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
567787
567787
|
const client10 = new Client3({
|
|
567788
567788
|
name: "claude-code",
|
|
567789
567789
|
title: "CoStrict",
|
|
567790
|
-
version: "4.2.
|
|
567790
|
+
version: "4.2.24",
|
|
567791
567791
|
description: "CoStrict agentic coding tool",
|
|
567792
567792
|
websiteUrl: PRODUCT_URL
|
|
567793
567793
|
}, {
|
|
@@ -568158,7 +568158,7 @@ var init_client18 = __esm(() => {
|
|
|
568158
568158
|
const client10 = new Client3({
|
|
568159
568159
|
name: "claude-code",
|
|
568160
568160
|
title: "CoStrict",
|
|
568161
|
-
version: "4.2.
|
|
568161
|
+
version: "4.2.24",
|
|
568162
568162
|
description: "CoStrict agentic coding tool",
|
|
568163
568163
|
websiteUrl: PRODUCT_URL
|
|
568164
568164
|
}, {
|
|
@@ -569548,7 +569548,7 @@ function getInstallationEnv() {
|
|
|
569548
569548
|
return;
|
|
569549
569549
|
}
|
|
569550
569550
|
function getClaudeCodeVersion() {
|
|
569551
|
-
return "4.2.
|
|
569551
|
+
return "4.2.24";
|
|
569552
569552
|
}
|
|
569553
569553
|
async function getInstalledVSCodeExtensionVersion(command4) {
|
|
569554
569554
|
const { stdout } = await execFileNoThrow2(command4, ["--list-extensions", "--show-versions"], {
|
|
@@ -570912,8 +570912,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
570912
570912
|
const maxVersion = await getMaxVersion();
|
|
570913
570913
|
if (maxVersion && gt(version10, maxVersion)) {
|
|
570914
570914
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version10} to ${maxVersion}`);
|
|
570915
|
-
if (gte2("4.2.
|
|
570916
|
-
logForDebugging(`Native installer: current version ${"4.2.
|
|
570915
|
+
if (gte2("4.2.24", maxVersion)) {
|
|
570916
|
+
logForDebugging(`Native installer: current version ${"4.2.24"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
570917
570917
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
570918
570918
|
latency_ms: Date.now() - startTime2,
|
|
570919
570919
|
max_version: maxVersion,
|
|
@@ -570924,7 +570924,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
570924
570924
|
version10 = maxVersion;
|
|
570925
570925
|
}
|
|
570926
570926
|
}
|
|
570927
|
-
if (!forceReinstall && version10 === "4.2.
|
|
570927
|
+
if (!forceReinstall && version10 === "4.2.24" && await versionIsAvailable(version10) && await isPossibleClaudeBinary(executablePath)) {
|
|
570928
570928
|
logForDebugging(`Found ${version10} at ${executablePath}, skipping install`);
|
|
570929
570929
|
logEvent("tengu_native_update_complete", {
|
|
570930
570930
|
latency_ms: Date.now() - startTime2,
|
|
@@ -708992,7 +708992,7 @@ function Feedback({
|
|
|
708992
708992
|
platform: env4.platform,
|
|
708993
708993
|
gitRepo: envInfo.isGit,
|
|
708994
708994
|
terminal: env4.terminal,
|
|
708995
|
-
version: "4.2.
|
|
708995
|
+
version: "4.2.24",
|
|
708996
708996
|
transcript: normalizeMessagesForAPI(messages),
|
|
708997
708997
|
errors: sanitizedErrors,
|
|
708998
708998
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -709175,7 +709175,7 @@ function Feedback({
|
|
|
709175
709175
|
", ",
|
|
709176
709176
|
env4.terminal,
|
|
709177
709177
|
", v",
|
|
709178
|
-
"4.2.
|
|
709178
|
+
"4.2.24"
|
|
709179
709179
|
]
|
|
709180
709180
|
})
|
|
709181
709181
|
]
|
|
@@ -709272,7 +709272,7 @@ ${sanitizedDescription}
|
|
|
709272
709272
|
` + `**Environment Info**
|
|
709273
709273
|
` + `- Platform: ${env4.platform}
|
|
709274
709274
|
` + `- Terminal: ${env4.terminal}
|
|
709275
|
-
` + `- Version: ${"4.2.
|
|
709275
|
+
` + `- Version: ${"4.2.24"}
|
|
709276
709276
|
` + `- Feedback ID: ${feedbackId}
|
|
709277
709277
|
` + `
|
|
709278
709278
|
**Errors**
|
|
@@ -711511,7 +711511,7 @@ function buildPrimarySection() {
|
|
|
711511
711511
|
children: t("settings.status.renameHint")
|
|
711512
711512
|
});
|
|
711513
711513
|
return [
|
|
711514
|
-
{ label: t("settings.status.version"), value: "4.2.
|
|
711514
|
+
{ label: t("settings.status.version"), value: "4.2.24" },
|
|
711515
711515
|
{ label: t("settings.status.sessionName"), value: nameValue },
|
|
711516
711516
|
{ label: t("settings.status.sessionId"), value: sessionId },
|
|
711517
711517
|
{ label: t("settings.status.cwd"), value: getCwd() },
|
|
@@ -714369,7 +714369,7 @@ function Config({
|
|
|
714369
714369
|
}
|
|
714370
714370
|
})
|
|
714371
714371
|
}) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime191.jsx(ChannelDowngradeDialog, {
|
|
714372
|
-
currentVersion: "4.2.
|
|
714372
|
+
currentVersion: "4.2.24",
|
|
714373
714373
|
onChoice: (choice) => {
|
|
714374
714374
|
setShowSubmenu(null);
|
|
714375
714375
|
setTabsHidden(false);
|
|
@@ -714381,7 +714381,7 @@ function Config({
|
|
|
714381
714381
|
autoUpdatesChannel: "stable"
|
|
714382
714382
|
};
|
|
714383
714383
|
if (choice === "stay") {
|
|
714384
|
-
newSettings.minimumVersion = "4.2.
|
|
714384
|
+
newSettings.minimumVersion = "4.2.24";
|
|
714385
714385
|
}
|
|
714386
714386
|
updateSettingsForSource("userSettings", newSettings);
|
|
714387
714387
|
setSettingsData((prev) => ({
|
|
@@ -719850,7 +719850,7 @@ function HelpV2({ onClose, commands: commands11 }) {
|
|
|
719850
719850
|
color: "professionalBlue",
|
|
719851
719851
|
children: [
|
|
719852
719852
|
/* @__PURE__ */ jsx_runtime218.jsx(Tabs, {
|
|
719853
|
-
title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.
|
|
719853
|
+
title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.24"}`,
|
|
719854
719854
|
color: "professionalBlue",
|
|
719855
719855
|
defaultTab: "general",
|
|
719856
719856
|
children: tabs
|
|
@@ -742851,7 +742851,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
742851
742851
|
return [];
|
|
742852
742852
|
}
|
|
742853
742853
|
}
|
|
742854
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.
|
|
742854
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.24") {
|
|
742855
742855
|
if (process.env.USER_TYPE === "sf") {
|
|
742856
742856
|
const changelog = "";
|
|
742857
742857
|
if (changelog) {
|
|
@@ -742878,7 +742878,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.23")
|
|
|
742878
742878
|
releaseNotes
|
|
742879
742879
|
};
|
|
742880
742880
|
}
|
|
742881
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.
|
|
742881
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.24") {
|
|
742882
742882
|
if (process.env.USER_TYPE === "sf") {
|
|
742883
742883
|
const changelog = "";
|
|
742884
742884
|
if (changelog) {
|
|
@@ -745391,7 +745391,7 @@ function isNotLoggedIn() {
|
|
|
745391
745391
|
return true;
|
|
745392
745392
|
}
|
|
745393
745393
|
function getLogoDisplayData() {
|
|
745394
|
-
const version10 = process.env.DEMO_VERSION ?? "4.2.
|
|
745394
|
+
const version10 = process.env.DEMO_VERSION ?? "4.2.24";
|
|
745395
745395
|
const serverUrl = getDirectConnectServerUrl();
|
|
745396
745396
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
745397
745397
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -745969,7 +745969,7 @@ var init_MatrixMessageLine = __esm(() => {
|
|
|
745969
745969
|
// src/components/matrix-tactical/MatrixWelcome.tsx
|
|
745970
745970
|
import { basename as basename47 } from "path";
|
|
745971
745971
|
function MatrixWelcome({
|
|
745972
|
-
version: version10 = "4.2.
|
|
745972
|
+
version: version10 = "4.2.24",
|
|
745973
745973
|
projectName,
|
|
745974
745974
|
cwd: cwd2,
|
|
745975
745975
|
modelDisplayName,
|
|
@@ -746604,13 +746604,13 @@ function LogoV2() {
|
|
|
746604
746604
|
const { hasReleaseNotes } = checkForReleaseNotesSync(config13.lastReleaseNotesSeen);
|
|
746605
746605
|
import_react167.useEffect(() => {
|
|
746606
746606
|
const currentConfig = getGlobalConfig();
|
|
746607
|
-
if (currentConfig.lastReleaseNotesSeen === "4.2.
|
|
746607
|
+
if (currentConfig.lastReleaseNotesSeen === "4.2.24") {
|
|
746608
746608
|
return;
|
|
746609
746609
|
}
|
|
746610
746610
|
saveGlobalConfig((current2) => {
|
|
746611
|
-
if (current2.lastReleaseNotesSeen === "4.2.
|
|
746611
|
+
if (current2.lastReleaseNotesSeen === "4.2.24")
|
|
746612
746612
|
return current2;
|
|
746613
|
-
return { ...current2, lastReleaseNotesSeen: "4.2.
|
|
746613
|
+
return { ...current2, lastReleaseNotesSeen: "4.2.24" };
|
|
746614
746614
|
});
|
|
746615
746615
|
if (showOnboarding) {
|
|
746616
746616
|
incrementProjectOnboardingSeenCount();
|
|
@@ -769140,7 +769140,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
769140
769140
|
smapsRollup,
|
|
769141
769141
|
platform: process.platform,
|
|
769142
769142
|
nodeVersion: process.version,
|
|
769143
|
-
ccVersion: "4.2.
|
|
769143
|
+
ccVersion: "4.2.24"
|
|
769144
769144
|
};
|
|
769145
769145
|
}
|
|
769146
769146
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -769256,7 +769256,7 @@ var init_mock_limits = __esm(() => {
|
|
|
769256
769256
|
var call55 = async () => {
|
|
769257
769257
|
return {
|
|
769258
769258
|
type: "text",
|
|
769259
|
-
value: `${"4.2.
|
|
769259
|
+
value: `${"4.2.24"} (built ${"2026-08-04T09:20:56.936Z"})`
|
|
769260
769260
|
};
|
|
769261
769261
|
}, version10, version_default;
|
|
769262
769262
|
var init_version2 = __esm(() => {
|
|
@@ -776503,6 +776503,34 @@ function agentsDir() {
|
|
|
776503
776503
|
function commandsDir() {
|
|
776504
776504
|
return path54.join(getClaudeConfigHomeDir(), "commands");
|
|
776505
776505
|
}
|
|
776506
|
+
function assertSafeSlug(slug) {
|
|
776507
|
+
if (!slug || typeof slug !== "string") {
|
|
776508
|
+
throw new Error("Invalid favorite slug: empty or non-string");
|
|
776509
|
+
}
|
|
776510
|
+
if (slug.includes("/") || slug.includes("\\") || slug.includes("\x00") || slug === "." || slug === ".." || slug.startsWith(".") || slug.startsWith(" ") || slug.endsWith(" ") || !SAFE_SLUG_RE.test(slug)) {
|
|
776511
|
+
throw new Error(`Invalid favorite slug: ${slug}`);
|
|
776512
|
+
}
|
|
776513
|
+
}
|
|
776514
|
+
function resolveFavoritePath(baseDir, slug) {
|
|
776515
|
+
assertSafeSlug(slug);
|
|
776516
|
+
const resolvedBase = path54.resolve(baseDir);
|
|
776517
|
+
const resolvedTarget = path54.resolve(path54.join(resolvedBase, slug));
|
|
776518
|
+
const rel = path54.relative(resolvedBase, resolvedTarget);
|
|
776519
|
+
if (rel === "" || rel.startsWith("..") || path54.isAbsolute(rel)) {
|
|
776520
|
+
throw new Error(`Path traversal detected for favorite slug: ${slug}`);
|
|
776521
|
+
}
|
|
776522
|
+
return resolvedTarget;
|
|
776523
|
+
}
|
|
776524
|
+
function resolveFavoriteFilePath(baseDir, slug, suffix) {
|
|
776525
|
+
assertSafeSlug(slug);
|
|
776526
|
+
const resolvedBase = path54.resolve(baseDir);
|
|
776527
|
+
const resolvedTarget = path54.resolve(path54.join(resolvedBase, `${slug}${suffix}`));
|
|
776528
|
+
const rel = path54.relative(resolvedBase, resolvedTarget);
|
|
776529
|
+
if (rel.startsWith("..") || path54.isAbsolute(rel)) {
|
|
776530
|
+
throw new Error(`Path traversal detected for favorite slug: ${slug}`);
|
|
776531
|
+
}
|
|
776532
|
+
return resolvedTarget;
|
|
776533
|
+
}
|
|
776506
776534
|
async function readState() {
|
|
776507
776535
|
try {
|
|
776508
776536
|
const text2 = await readFile76(favoriteStatePath(), "utf-8");
|
|
@@ -776597,11 +776625,18 @@ function parseFavoriteListItem(data) {
|
|
|
776597
776625
|
const localType = STORE_TYPE_MAP[storeType];
|
|
776598
776626
|
if (!localType)
|
|
776599
776627
|
return;
|
|
776628
|
+
const slug = String(data.slug ?? data.id);
|
|
776629
|
+
try {
|
|
776630
|
+
assertSafeSlug(slug);
|
|
776631
|
+
} catch {
|
|
776632
|
+
logForDebugging(`[favorite] skipping candidate with unsafe slug: ${slug}`);
|
|
776633
|
+
return;
|
|
776634
|
+
}
|
|
776600
776635
|
const favorited = typeof data.favorited === "boolean" ? data.favorited : data.favorited === "true" || data.favorited === 1;
|
|
776601
776636
|
logForDebugging(`[favorite] name=${data.name} score=${data.score} experienceScore=${data.experienceScore} favoriteCount=${data.favoriteCount} createdBy=${data.createdBy} fields=[${Object.keys(data).join(",")}]`);
|
|
776602
776637
|
return {
|
|
776603
776638
|
id: String(data.id),
|
|
776604
|
-
slug
|
|
776639
|
+
slug,
|
|
776605
776640
|
name: String(data.name ?? data.slug ?? data.id),
|
|
776606
776641
|
description: String(data.description ?? ""),
|
|
776607
776642
|
itemType: localType,
|
|
@@ -776631,9 +776666,11 @@ async function getRemoteItem(id) {
|
|
|
776631
776666
|
if (!localType) {
|
|
776632
776667
|
throw new Error(`Unsupported item type: ${storeType} (${String(data.slug ?? id)})`);
|
|
776633
776668
|
}
|
|
776669
|
+
const slug = String(data.slug);
|
|
776670
|
+
assertSafeSlug(slug);
|
|
776634
776671
|
return {
|
|
776635
776672
|
id: String(data.id),
|
|
776636
|
-
slug
|
|
776673
|
+
slug,
|
|
776637
776674
|
name: String(data.name),
|
|
776638
776675
|
description: String(data.description ?? ""),
|
|
776639
776676
|
itemType: localType,
|
|
@@ -776701,7 +776738,7 @@ function deriveStatus(state3, activeSkillSlugs, activeAgentNames, activeCommandN
|
|
|
776701
776738
|
}
|
|
776702
776739
|
async function persistInstalledItem(item) {
|
|
776703
776740
|
const typeRoot = favoriteTypeRoot(item.itemType);
|
|
776704
|
-
const dir =
|
|
776741
|
+
const dir = resolveFavoritePath(typeRoot, item.slug);
|
|
776705
776742
|
const itemJson = JSON.stringify({
|
|
776706
776743
|
id: item.id,
|
|
776707
776744
|
slug: item.slug,
|
|
@@ -776879,7 +776916,7 @@ async function copyDir2(src, dest) {
|
|
|
776879
776916
|
async function addItemToConfig(item, localPath) {
|
|
776880
776917
|
switch (item.itemType) {
|
|
776881
776918
|
case "skill": {
|
|
776882
|
-
const destDir =
|
|
776919
|
+
const destDir = resolveFavoritePath(skillsDir(), item.slug);
|
|
776883
776920
|
const fingerprint = await readBundleFingerprint(localPath);
|
|
776884
776921
|
await replaceDirectoryAtomically(destDir, (stagingDir) => copyDir2(localPath, stagingDir), fingerprint === null ? {} : { fingerprint });
|
|
776885
776922
|
clearCommandsCache();
|
|
@@ -776902,7 +776939,7 @@ async function addItemToConfig(item, localPath) {
|
|
|
776902
776939
|
}));
|
|
776903
776940
|
const agentDestDir = agentsDir();
|
|
776904
776941
|
await mkdir62(agentDestDir, { recursive: true });
|
|
776905
|
-
await copyFile10(mdPath,
|
|
776942
|
+
await copyFile10(mdPath, resolveFavoriteFilePath(agentDestDir, item.slug, ".md"));
|
|
776906
776943
|
clearAgentDefinitionsCache();
|
|
776907
776944
|
break;
|
|
776908
776945
|
}
|
|
@@ -776922,7 +776959,7 @@ async function addItemToConfig(item, localPath) {
|
|
|
776922
776959
|
}));
|
|
776923
776960
|
const commandDestDir = commandsDir();
|
|
776924
776961
|
await mkdir62(commandDestDir, { recursive: true });
|
|
776925
|
-
await copyFile10(mdPath,
|
|
776962
|
+
await copyFile10(mdPath, resolveFavoriteFilePath(commandDestDir, item.slug, ".md"));
|
|
776926
776963
|
clearCommandsCache();
|
|
776927
776964
|
skillChangeDetector.notify();
|
|
776928
776965
|
break;
|
|
@@ -776951,7 +776988,7 @@ Supported formats: opencode native, VS Code / Claude Desktop style, or simplifie
|
|
|
776951
776988
|
async function removeItemFromConfig(itemType, slug, _localPath) {
|
|
776952
776989
|
switch (itemType) {
|
|
776953
776990
|
case "skill": {
|
|
776954
|
-
const destDir =
|
|
776991
|
+
const destDir = resolveFavoritePath(skillsDir(), slug);
|
|
776955
776992
|
await withTargetDirLock(destDir, () => rm16(destDir, { recursive: true, force: true }));
|
|
776956
776993
|
clearCommandsCache();
|
|
776957
776994
|
skillChangeDetector.notify();
|
|
@@ -776963,7 +777000,9 @@ async function removeItemFromConfig(itemType, slug, _localPath) {
|
|
|
776963
777000
|
delete agents2[slug];
|
|
776964
777001
|
return { ...cfg, agents: agents2 };
|
|
776965
777002
|
});
|
|
776966
|
-
await rm16(
|
|
777003
|
+
await rm16(resolveFavoriteFilePath(agentsDir(), slug, ".md"), {
|
|
777004
|
+
force: true
|
|
777005
|
+
});
|
|
776967
777006
|
clearAgentDefinitionsCache();
|
|
776968
777007
|
break;
|
|
776969
777008
|
}
|
|
@@ -776973,7 +777012,9 @@ async function removeItemFromConfig(itemType, slug, _localPath) {
|
|
|
776973
777012
|
delete commands11[slug];
|
|
776974
777013
|
return { ...cfg, commands: commands11 };
|
|
776975
777014
|
});
|
|
776976
|
-
await rm16(
|
|
777015
|
+
await rm16(resolveFavoriteFilePath(commandsDir(), slug, ".md"), {
|
|
777016
|
+
force: true
|
|
777017
|
+
});
|
|
776977
777018
|
clearCommandsCache();
|
|
776978
777019
|
skillChangeDetector.notify();
|
|
776979
777020
|
break;
|
|
@@ -777235,7 +777276,8 @@ function hasUpdate(item, localVersion) {
|
|
|
777235
777276
|
async function updateFavoriteItem(slugOrId) {
|
|
777236
777277
|
const installed = await ensureInstalled(slugOrId);
|
|
777237
777278
|
const remote = await getRemoteItem(installed.id);
|
|
777238
|
-
const
|
|
777279
|
+
const backupBase = path54.join(path54.dirname(installed.localPath), ".backup");
|
|
777280
|
+
const backupDir = path54.join(resolveFavoritePath(backupBase, installed.slug), new Date().toISOString().replace(/[:.]/gu, "-"));
|
|
777239
777281
|
await copyDir2(installed.localPath, backupDir);
|
|
777240
777282
|
await persistInstalledItem(remote);
|
|
777241
777283
|
if (installed.lifecycle === "active") {
|
|
@@ -777319,7 +777361,7 @@ async function batchUpdateFavoriteItems(slugs) {
|
|
|
777319
777361
|
}
|
|
777320
777362
|
return { updated, errors: errors14 };
|
|
777321
777363
|
}
|
|
777322
|
-
var FAVORITE_PAGE_SIZE = 20, FAVORITE_MAX_PAGES = 20, FAVORITE_LIST_CACHE_TTL_MS = 30000, _listFavoriteItemsCache = null, STORE_TYPE_MAP, LOCAL_TO_STORE_TYPE, FETCH_TIMEOUT_MS7 = 15000, RemoteListHttpError, _untypedListUnsupported = false, SUPPORTED_MCP_TYPES;
|
|
777364
|
+
var FAVORITE_PAGE_SIZE = 20, FAVORITE_MAX_PAGES = 20, FAVORITE_LIST_CACHE_TTL_MS = 30000, _listFavoriteItemsCache = null, STORE_TYPE_MAP, LOCAL_TO_STORE_TYPE, SAFE_SLUG_RE, FETCH_TIMEOUT_MS7 = 15000, RemoteListHttpError, _untypedListUnsupported = false, SUPPORTED_MCP_TYPES;
|
|
777323
777365
|
var init_favorite = __esm(() => {
|
|
777324
777366
|
init_fetch2();
|
|
777325
777367
|
init_auth();
|
|
@@ -777345,6 +777387,7 @@ var init_favorite = __esm(() => {
|
|
|
777345
777387
|
command: "command",
|
|
777346
777388
|
mcp: "mcp"
|
|
777347
777389
|
};
|
|
777390
|
+
SAFE_SLUG_RE = /^[a-zA-Z0-9._-]+$/u;
|
|
777348
777391
|
RemoteListHttpError = class RemoteListHttpError extends Error {
|
|
777349
777392
|
status;
|
|
777350
777393
|
constructor(status2, message2) {
|
|
@@ -787180,7 +787223,7 @@ function generateHtmlReport(data, insights) {
|
|
|
787180
787223
|
</html>`;
|
|
787181
787224
|
}
|
|
787182
787225
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
787183
|
-
const version11 = typeof MACRO !== "undefined" ? "4.2.
|
|
787226
|
+
const version11 = typeof MACRO !== "undefined" ? "4.2.24" : "unknown";
|
|
787184
787227
|
const remote_hosts_collected = remoteStats?.hosts.filter((h8) => h8.sessionCount > 0).map((h8) => h8.name);
|
|
787185
787228
|
const facets_summary = {
|
|
787186
787229
|
total: facets.size,
|
|
@@ -791630,7 +791673,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
791630
791673
|
init_settings2();
|
|
791631
791674
|
init_slowOperations();
|
|
791632
791675
|
init_uuid();
|
|
791633
|
-
VERSION11 = typeof MACRO !== "undefined" ? "4.2.
|
|
791676
|
+
VERSION11 = typeof MACRO !== "undefined" ? "4.2.24" : "unknown";
|
|
791634
791677
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
791635
791678
|
SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
791636
791679
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -792971,7 +793014,7 @@ var init_filesystem = __esm(() => {
|
|
|
792971
793014
|
});
|
|
792972
793015
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
792973
793016
|
const nonce = randomBytes24(16).toString("hex");
|
|
792974
|
-
return join204(getCostrictTempDir(), "bundled-skills", "4.2.
|
|
793017
|
+
return join204(getCostrictTempDir(), "bundled-skills", "4.2.24", nonce);
|
|
792975
793018
|
});
|
|
792976
793019
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
792977
793020
|
});
|
|
@@ -799241,7 +799284,7 @@ function computeFingerprint(messageText, version11) {
|
|
|
799241
799284
|
}
|
|
799242
799285
|
function computeFingerprintFromMessages(messages) {
|
|
799243
799286
|
const firstMessageText = extractFirstMessageText(messages);
|
|
799244
|
-
return computeFingerprint(firstMessageText, "4.2.
|
|
799287
|
+
return computeFingerprint(firstMessageText, "4.2.24");
|
|
799245
799288
|
}
|
|
799246
799289
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
799247
799290
|
var init_fingerprint = () => {};
|
|
@@ -799651,7 +799694,7 @@ function getAnthropicEnvMetadata() {
|
|
|
799651
799694
|
function getBuildAgeMinutes() {
|
|
799652
799695
|
if (false)
|
|
799653
799696
|
;
|
|
799654
|
-
const buildTime = new Date("2026-08-
|
|
799697
|
+
const buildTime = new Date("2026-08-04T09:20:56.936Z").getTime();
|
|
799655
799698
|
if (isNaN(buildTime))
|
|
799656
799699
|
return;
|
|
799657
799700
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -805175,7 +805218,7 @@ async function sideQuery(opts) {
|
|
|
805175
805218
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
805176
805219
|
}
|
|
805177
805220
|
const messageText = extractFirstUserMessageText(messages);
|
|
805178
|
-
const fingerprint = computeFingerprint(messageText, "4.2.
|
|
805221
|
+
const fingerprint = computeFingerprint(messageText, "4.2.24");
|
|
805179
805222
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
805180
805223
|
const systemBlocks = [
|
|
805181
805224
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -808571,7 +808614,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
808571
808614
|
slash_commands: inputs.commands.filter((c10) => c10.userInvocable !== false).map((c10) => c10.name),
|
|
808572
808615
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
808573
808616
|
betas: getSdkBetas(),
|
|
808574
|
-
claude_code_version: "4.2.
|
|
808617
|
+
claude_code_version: "4.2.24",
|
|
808575
808618
|
output_style: outputStyle2,
|
|
808576
808619
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
808577
808620
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -812115,7 +812158,7 @@ function appendToLog(path57, message2) {
|
|
|
812115
812158
|
cwd: getFsImplementation().cwd(),
|
|
812116
812159
|
userType: process.env.USER_TYPE,
|
|
812117
812160
|
sessionId: getSessionId(),
|
|
812118
|
-
version: "4.2.
|
|
812161
|
+
version: "4.2.24"
|
|
812119
812162
|
};
|
|
812120
812163
|
getLogWriter(path57).write(messageWithTimestamp);
|
|
812121
812164
|
}
|
|
@@ -833171,7 +833214,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
833171
833214
|
project_dir: getOriginalCwd(),
|
|
833172
833215
|
added_dirs: addedDirs
|
|
833173
833216
|
},
|
|
833174
|
-
version: "4.2.
|
|
833217
|
+
version: "4.2.24",
|
|
833175
833218
|
output_style: {
|
|
833176
833219
|
name: outputStyleName
|
|
833177
833220
|
},
|
|
@@ -851796,7 +851839,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
851796
851839
|
} catch {}
|
|
851797
851840
|
const data = {
|
|
851798
851841
|
trigger,
|
|
851799
|
-
version: "4.2.
|
|
851842
|
+
version: "4.2.24",
|
|
851800
851843
|
platform: process.platform,
|
|
851801
851844
|
transcript,
|
|
851802
851845
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -853051,7 +853094,7 @@ function getReleaseType(current2, latest) {
|
|
|
853051
853094
|
return "patch";
|
|
853052
853095
|
}
|
|
853053
853096
|
async function checkNewAutoUpdate(callbacks) {
|
|
853054
|
-
const currentVersion = "4.2.
|
|
853097
|
+
const currentVersion = "4.2.24";
|
|
853055
853098
|
logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
|
|
853056
853099
|
if (isNewAutoUpdaterDisabled()) {
|
|
853057
853100
|
return { action: "skip", currentVersion, latestVersion: null };
|
|
@@ -864274,7 +864317,7 @@ function WelcomeV2() {
|
|
|
864274
864317
|
dimColor: true,
|
|
864275
864318
|
children: [
|
|
864276
864319
|
"v",
|
|
864277
|
-
"4.2.
|
|
864320
|
+
"4.2.24",
|
|
864278
864321
|
" "
|
|
864279
864322
|
]
|
|
864280
864323
|
})
|
|
@@ -864340,7 +864383,7 @@ function WelcomeV2() {
|
|
|
864340
864383
|
dimColor: true,
|
|
864341
864384
|
children: [
|
|
864342
864385
|
"v",
|
|
864343
|
-
"4.2.
|
|
864386
|
+
"4.2.24",
|
|
864344
864387
|
" "
|
|
864345
864388
|
]
|
|
864346
864389
|
})
|
|
@@ -864442,7 +864485,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
|
|
|
864442
864485
|
dimColor: true,
|
|
864443
864486
|
children: [
|
|
864444
864487
|
"v",
|
|
864445
|
-
"4.2.
|
|
864488
|
+
"4.2.24",
|
|
864446
864489
|
" "
|
|
864447
864490
|
]
|
|
864448
864491
|
})
|
|
@@ -864508,7 +864551,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
|
|
|
864508
864551
|
dimColor: true,
|
|
864509
864552
|
children: [
|
|
864510
864553
|
"v",
|
|
864511
|
-
"4.2.
|
|
864554
|
+
"4.2.24",
|
|
864512
864555
|
" "
|
|
864513
864556
|
]
|
|
864514
864557
|
})
|
|
@@ -865448,7 +865491,7 @@ function completeOnboarding() {
|
|
|
865448
865491
|
saveGlobalConfig((current2) => ({
|
|
865449
865492
|
...current2,
|
|
865450
865493
|
hasCompletedOnboarding: true,
|
|
865451
|
-
lastOnboardingVersion: "4.2.
|
|
865494
|
+
lastOnboardingVersion: "4.2.24"
|
|
865452
865495
|
}));
|
|
865453
865496
|
}
|
|
865454
865497
|
function showDialog(root9, renderer) {
|
|
@@ -880530,7 +880573,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
|
|
|
880530
880573
|
setCwd(cwd3);
|
|
880531
880574
|
const server2 = new Server({
|
|
880532
880575
|
name: "claude/tengu",
|
|
880533
|
-
version: "4.2.
|
|
880576
|
+
version: "4.2.24"
|
|
880534
880577
|
}, {
|
|
880535
880578
|
capabilities: {
|
|
880536
880579
|
tools: {}
|
|
@@ -882815,7 +882858,7 @@ function createHealthRoutes(sessionManager) {
|
|
|
882815
882858
|
const uptime2 = process.uptime() * 1000;
|
|
882816
882859
|
return c10.json({
|
|
882817
882860
|
status: "ok",
|
|
882818
|
-
version: "4.2.
|
|
882861
|
+
version: "4.2.24",
|
|
882819
882862
|
uptime_ms: Math.round(uptime2),
|
|
882820
882863
|
active_sessions: sessionManager.getActiveCount()
|
|
882821
882864
|
});
|
|
@@ -883087,7 +883130,7 @@ function getMacroDefines() {
|
|
|
883087
883130
|
commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
|
|
883088
883131
|
} catch {}
|
|
883089
883132
|
return {
|
|
883090
|
-
"MACRO.VERSION": JSON.stringify("4.2.
|
|
883133
|
+
"MACRO.VERSION": JSON.stringify("4.2.24"),
|
|
883091
883134
|
"MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
|
|
883092
883135
|
"MACRO.COMMIT": JSON.stringify(commit),
|
|
883093
883136
|
"MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
|
|
@@ -887003,6 +887046,11 @@ var init_find = __esm(() => {
|
|
|
887003
887046
|
});
|
|
887004
887047
|
|
|
887005
887048
|
// src/server/routes/favorite.ts
|
|
887049
|
+
function validateRouteId(id) {
|
|
887050
|
+
if (id.includes("/") || id.includes("\\") || id.includes("\x00") || id === ".." || id === ".") {
|
|
887051
|
+
throw new Error(`Invalid favorite id: ${id}`);
|
|
887052
|
+
}
|
|
887053
|
+
}
|
|
887006
887054
|
function createFavoriteRoutes() {
|
|
887007
887055
|
return new Hono2().get("/global/favorite/skills", async (c10) => {
|
|
887008
887056
|
try {
|
|
@@ -887016,6 +887064,7 @@ function createFavoriteRoutes() {
|
|
|
887016
887064
|
}).post("/global/favorite/skills/:id/load", async (c10) => {
|
|
887017
887065
|
const id = c10.req.param("id");
|
|
887018
887066
|
try {
|
|
887067
|
+
validateRouteId(id);
|
|
887019
887068
|
const result = await loadFavoriteItem(id);
|
|
887020
887069
|
return c10.json({ success: true, item: result });
|
|
887021
887070
|
} catch (error100) {
|
|
@@ -887028,6 +887077,7 @@ function createFavoriteRoutes() {
|
|
|
887028
887077
|
}).post("/global/favorite/skills/:id/unload", async (c10) => {
|
|
887029
887078
|
const id = c10.req.param("id");
|
|
887030
887079
|
try {
|
|
887080
|
+
validateRouteId(id);
|
|
887031
887081
|
const result = await unloadFavoriteItem(id);
|
|
887032
887082
|
return c10.json({ success: true, item: result });
|
|
887033
887083
|
} catch (error100) {
|
|
@@ -890080,7 +890130,7 @@ __export(exports_update, {
|
|
|
890080
890130
|
});
|
|
890081
890131
|
async function update() {
|
|
890082
890132
|
logEvent("tengu_update_check", {});
|
|
890083
|
-
writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.
|
|
890133
|
+
writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.24"}
|
|
890084
890134
|
`);
|
|
890085
890135
|
const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
890086
890136
|
writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
|
|
@@ -890155,8 +890205,8 @@ async function update() {
|
|
|
890155
890205
|
writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
|
|
890156
890206
|
`);
|
|
890157
890207
|
const latest = await getLatestVersion(channel5);
|
|
890158
|
-
if (latest && !gte2("4.2.
|
|
890159
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
890208
|
+
if (latest && !gte2("4.2.24", latest)) {
|
|
890209
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.24", latest }, "Update available: {current} \u2192 {latest}")}
|
|
890160
890210
|
`);
|
|
890161
890211
|
writeToStdout(`
|
|
890162
890212
|
`);
|
|
@@ -890172,8 +890222,8 @@ async function update() {
|
|
|
890172
890222
|
writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
|
|
890173
890223
|
`);
|
|
890174
890224
|
const latest = await getLatestVersion(channel5);
|
|
890175
|
-
if (latest && !gte2("4.2.
|
|
890176
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
890225
|
+
if (latest && !gte2("4.2.24", latest)) {
|
|
890226
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.24", latest }, "Update available: {current} \u2192 {latest}")}
|
|
890177
890227
|
`);
|
|
890178
890228
|
writeToStdout(`
|
|
890179
890229
|
`);
|
|
@@ -890189,8 +890239,8 @@ async function update() {
|
|
|
890189
890239
|
writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
|
|
890190
890240
|
`);
|
|
890191
890241
|
const latest = await getLatestVersion(channel5);
|
|
890192
|
-
if (latest && !gte2("4.2.
|
|
890193
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
890242
|
+
if (latest && !gte2("4.2.24", latest)) {
|
|
890243
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.24", latest }, "Update available: {current} \u2192 {latest}")}
|
|
890194
890244
|
`);
|
|
890195
890245
|
writeToStdout(`
|
|
890196
890246
|
`);
|
|
@@ -890255,11 +890305,11 @@ async function update() {
|
|
|
890255
890305
|
`);
|
|
890256
890306
|
await gracefulShutdown(1);
|
|
890257
890307
|
}
|
|
890258
|
-
if (result2.latestVersion === "4.2.
|
|
890259
|
-
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.
|
|
890308
|
+
if (result2.latestVersion === "4.2.24") {
|
|
890309
|
+
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.24" }, "CoStrict is up to date ({version})")) + `
|
|
890260
890310
|
`);
|
|
890261
890311
|
} else {
|
|
890262
|
-
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.
|
|
890312
|
+
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.24", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
|
|
890263
890313
|
`);
|
|
890264
890314
|
regenerateCompletionCache();
|
|
890265
890315
|
}
|
|
@@ -890319,12 +890369,12 @@ async function update() {
|
|
|
890319
890369
|
`);
|
|
890320
890370
|
await gracefulShutdown(1);
|
|
890321
890371
|
}
|
|
890322
|
-
if (latestVersion === "4.2.
|
|
890323
|
-
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.
|
|
890372
|
+
if (latestVersion === "4.2.24") {
|
|
890373
|
+
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.24" }, "CoStrict is up to date ({version})")) + `
|
|
890324
890374
|
`);
|
|
890325
890375
|
await gracefulShutdown(0);
|
|
890326
890376
|
}
|
|
890327
|
-
writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.
|
|
890377
|
+
writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.24" }, "New version available: {latest} (current: {current})")}
|
|
890328
890378
|
`);
|
|
890329
890379
|
writeToStdout(`${t("cli.update.installing", "Installing update...")}
|
|
890330
890380
|
`);
|
|
@@ -890369,7 +890419,7 @@ async function update() {
|
|
|
890369
890419
|
logForDebugging(`update: Installation status: ${result.status}`);
|
|
890370
890420
|
switch (result.status) {
|
|
890371
890421
|
case "success":
|
|
890372
|
-
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.
|
|
890422
|
+
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.24", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
|
|
890373
890423
|
`);
|
|
890374
890424
|
regenerateCompletionCache();
|
|
890375
890425
|
break;
|
|
@@ -892573,7 +892623,7 @@ ${assistantAddendum}` : assistantAddendum;
|
|
|
892573
892623
|
}
|
|
892574
892624
|
}
|
|
892575
892625
|
logForDiagnosticsNoPII("info", "started", {
|
|
892576
|
-
version: "4.2.
|
|
892626
|
+
version: "4.2.24",
|
|
892577
892627
|
is_native_binary: isInBundledMode()
|
|
892578
892628
|
});
|
|
892579
892629
|
registerCleanup(async () => {
|
|
@@ -893064,7 +893114,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
|
|
|
893064
893114
|
sshSession = await createSSHSession2({
|
|
893065
893115
|
host: _pendingSSH.host,
|
|
893066
893116
|
cwd: _pendingSSH.cwd,
|
|
893067
|
-
localVersion: "4.2.
|
|
893117
|
+
localVersion: "4.2.24",
|
|
893068
893118
|
permissionMode: _pendingSSH.permissionMode,
|
|
893069
893119
|
dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
|
|
893070
893120
|
extraCliArgs: _pendingSSH.extraCliArgs,
|
|
@@ -893533,7 +893583,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
893533
893583
|
pendingHookMessages
|
|
893534
893584
|
}, renderAndRun);
|
|
893535
893585
|
}
|
|
893536
|
-
}).version("4.2.
|
|
893586
|
+
}).version("4.2.24 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
|
|
893537
893587
|
program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
|
|
893538
893588
|
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());
|
|
893539
893589
|
if (canUserConfigureAdvisor()) {
|
|
@@ -894276,10 +894326,10 @@ if (process.env.CLAUDE_CODE_REMOTE === "true") {
|
|
|
894276
894326
|
async function main2() {
|
|
894277
894327
|
const args = process.argv.slice(2);
|
|
894278
894328
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
894279
|
-
const d7 = new Date("2026-08-
|
|
894329
|
+
const d7 = new Date("2026-08-04T09:20:56.936Z");
|
|
894280
894330
|
const p2 = (n3) => String(n3).padStart(2, "0");
|
|
894281
894331
|
const buildTime = `${d7.getFullYear()}/${p2(d7.getMonth() + 1)}/${p2(d7.getDate())} ${p2(d7.getHours())}:${p2(d7.getMinutes())}:${p2(d7.getSeconds())}`;
|
|
894282
|
-
console.log(`${"4.2.
|
|
894332
|
+
console.log(`${"4.2.24"} (commit: ${"bf82163cc"}, built: ${buildTime})`);
|
|
894283
894333
|
return;
|
|
894284
894334
|
}
|
|
894285
894335
|
let stopServeParentWatchdog;
|
|
@@ -894455,5 +894505,5 @@ async function main2() {
|
|
|
894455
894505
|
}
|
|
894456
894506
|
main2();
|
|
894457
894507
|
|
|
894458
|
-
//# debugId=
|
|
894508
|
+
//# debugId=D85CD535754BCE3164756E2164756E21
|
|
894459
894509
|
|
|
@@ -736,8 +736,8 @@ function getClientVersion() {
|
|
|
736
736
|
if (cached)
|
|
737
737
|
return cached;
|
|
738
738
|
try {
|
|
739
|
-
if ("4.2.
|
|
740
|
-
cached = "4.2.
|
|
739
|
+
if ("4.2.24") {
|
|
740
|
+
cached = "4.2.24";
|
|
741
741
|
return cached;
|
|
742
742
|
}
|
|
743
743
|
} catch {}
|
|
@@ -138557,7 +138557,7 @@ var init_user = __esm(() => {
|
|
|
138557
138557
|
deviceId,
|
|
138558
138558
|
sessionId: getSessionId(),
|
|
138559
138559
|
email: getEmail(),
|
|
138560
|
-
appVersion: "4.2.
|
|
138560
|
+
appVersion: "4.2.24",
|
|
138561
138561
|
platform: getHostPlatformForAnalytics(),
|
|
138562
138562
|
organizationUuid,
|
|
138563
138563
|
accountUuid,
|
|
@@ -138844,7 +138844,7 @@ var init_metadata = __esm(() => {
|
|
|
138844
138844
|
"sed"
|
|
138845
138845
|
]);
|
|
138846
138846
|
getVersionBase = memoize_default(() => {
|
|
138847
|
-
const match = "4.2.
|
|
138847
|
+
const match = "4.2.24".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
138848
138848
|
return match ? match[0] : undefined;
|
|
138849
138849
|
});
|
|
138850
138850
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -138884,9 +138884,9 @@ var init_metadata = __esm(() => {
|
|
|
138884
138884
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
138885
138885
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
138886
138886
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
138887
|
-
version: "4.2.
|
|
138887
|
+
version: "4.2.24",
|
|
138888
138888
|
versionBase: getVersionBase(),
|
|
138889
|
-
buildTime: "2026-08-
|
|
138889
|
+
buildTime: "2026-08-04T09:20:59.781Z",
|
|
138890
138890
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
138891
138891
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
138892
138892
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -143224,5 +143224,5 @@ export {
|
|
|
143224
143224
|
isParentHeartbeatValid
|
|
143225
143225
|
};
|
|
143226
143226
|
|
|
143227
|
-
//# debugId=
|
|
143227
|
+
//# debugId=3B86544BA0122FB764756E2164756E21
|
|
143228
143228
|
|