@costrict/csc 4.2.37 → 4.2.38
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 +222 -138
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -31759,8 +31759,8 @@ function getClientVersion() {
|
|
|
31759
31759
|
if (cached)
|
|
31760
31760
|
return cached;
|
|
31761
31761
|
try {
|
|
31762
|
-
if ("4.2.
|
|
31763
|
-
cached = "4.2.
|
|
31762
|
+
if ("4.2.38") {
|
|
31763
|
+
cached = "4.2.38";
|
|
31764
31764
|
return cached;
|
|
31765
31765
|
}
|
|
31766
31766
|
} catch {}
|
|
@@ -224376,7 +224376,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
|
|
|
224376
224376
|
headers: {
|
|
224377
224377
|
Authorization: `Bearer ${accessToken}`,
|
|
224378
224378
|
Accept: "application/json",
|
|
224379
|
-
"User-Agent": `csc/${"4.2.
|
|
224379
|
+
"User-Agent": `csc/${"4.2.38"}`
|
|
224380
224380
|
},
|
|
224381
224381
|
signal: controller.signal
|
|
224382
224382
|
});
|
|
@@ -226416,7 +226416,7 @@ var init_auth7 = __esm(() => {
|
|
|
226416
226416
|
|
|
226417
226417
|
// src/utils/userAgent.ts
|
|
226418
226418
|
function getClaudeCodeUserAgent() {
|
|
226419
|
-
return `costrict/${"4.2.
|
|
226419
|
+
return `costrict/${"4.2.38"}`;
|
|
226420
226420
|
}
|
|
226421
226421
|
|
|
226422
226422
|
// src/utils/workloadContext.ts
|
|
@@ -226438,7 +226438,7 @@ function getUserAgent() {
|
|
|
226438
226438
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
226439
226439
|
const workload = getWorkload();
|
|
226440
226440
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
226441
|
-
return `csc/${"4.2.
|
|
226441
|
+
return `csc/${"4.2.38"}`;
|
|
226442
226442
|
}
|
|
226443
226443
|
function getMCPUserAgent() {
|
|
226444
226444
|
const parts = [];
|
|
@@ -226452,7 +226452,7 @@ function getMCPUserAgent() {
|
|
|
226452
226452
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
226453
226453
|
}
|
|
226454
226454
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
226455
|
-
return `csc/${"4.2.
|
|
226455
|
+
return `csc/${"4.2.38"}${suffix}`;
|
|
226456
226456
|
}
|
|
226457
226457
|
function getWebFetchUserAgent() {
|
|
226458
226458
|
return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -226572,7 +226572,7 @@ var init_user = __esm(() => {
|
|
|
226572
226572
|
deviceId,
|
|
226573
226573
|
sessionId: getSessionId(),
|
|
226574
226574
|
email: getEmail(),
|
|
226575
|
-
appVersion: "4.2.
|
|
226575
|
+
appVersion: "4.2.38",
|
|
226576
226576
|
platform: getHostPlatformForAnalytics(),
|
|
226577
226577
|
organizationUuid,
|
|
226578
226578
|
accountUuid,
|
|
@@ -237620,7 +237620,7 @@ var init_metadata = __esm(() => {
|
|
|
237620
237620
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
237621
237621
|
WHITESPACE_REGEX = /\s+/;
|
|
237622
237622
|
getVersionBase = memoize_default(() => {
|
|
237623
|
-
const match = "4.2.
|
|
237623
|
+
const match = "4.2.38".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
237624
237624
|
return match ? match[0] : undefined;
|
|
237625
237625
|
});
|
|
237626
237626
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -237660,9 +237660,9 @@ var init_metadata = __esm(() => {
|
|
|
237660
237660
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
237661
237661
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
237662
237662
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
237663
|
-
version: "4.2.
|
|
237663
|
+
version: "4.2.38",
|
|
237664
237664
|
versionBase: getVersionBase(),
|
|
237665
|
-
buildTime: "2026-09-
|
|
237665
|
+
buildTime: "2026-09-14T02:57:33.042Z",
|
|
237666
237666
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
237667
237667
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
237668
237668
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -238333,7 +238333,7 @@ function initialize1PEventLogging() {
|
|
|
238333
238333
|
const platform3 = getPlatform();
|
|
238334
238334
|
const attributes = {
|
|
238335
238335
|
[import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
|
|
238336
|
-
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.
|
|
238336
|
+
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.38"
|
|
238337
238337
|
};
|
|
238338
238338
|
if (platform3 === "wsl") {
|
|
238339
238339
|
const wslVersion = getWslVersion();
|
|
@@ -238360,7 +238360,7 @@ function initialize1PEventLogging() {
|
|
|
238360
238360
|
})
|
|
238361
238361
|
]
|
|
238362
238362
|
});
|
|
238363
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
238363
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.38");
|
|
238364
238364
|
}
|
|
238365
238365
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
238366
238366
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -354165,7 +354165,7 @@ function getTelemetryAttributes() {
|
|
|
354165
354165
|
attributes["session.id"] = sessionId;
|
|
354166
354166
|
}
|
|
354167
354167
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
354168
|
-
attributes["app.version"] = "4.2.
|
|
354168
|
+
attributes["app.version"] = "4.2.38";
|
|
354169
354169
|
}
|
|
354170
354170
|
const oauthAccount = getOauthAccountInfo();
|
|
354171
354171
|
if (oauthAccount) {
|
|
@@ -469291,7 +469291,7 @@ function getInstallationEnv() {
|
|
|
469291
469291
|
return;
|
|
469292
469292
|
}
|
|
469293
469293
|
function getClaudeCodeVersion() {
|
|
469294
|
-
return "4.2.
|
|
469294
|
+
return "4.2.38";
|
|
469295
469295
|
}
|
|
469296
469296
|
async function getInstalledVSCodeExtensionVersion(command4) {
|
|
469297
469297
|
const { stdout } = await execFileNoThrow(command4, ["--list-extensions", "--show-versions"], {
|
|
@@ -523008,7 +523008,7 @@ function initLangfuse() {
|
|
|
523008
523008
|
flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
|
|
523009
523009
|
mask: maskFn,
|
|
523010
523010
|
environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
|
|
523011
|
-
release: "4.2.
|
|
523011
|
+
release: "4.2.38",
|
|
523012
523012
|
exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
|
|
523013
523013
|
timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
|
|
523014
523014
|
});
|
|
@@ -523567,7 +523567,7 @@ function computeFingerprint(messageText2, version11) {
|
|
|
523567
523567
|
}
|
|
523568
523568
|
function computeFingerprintFromMessages(messages) {
|
|
523569
523569
|
const firstMessageText = extractFirstMessageText(messages);
|
|
523570
|
-
return computeFingerprint(firstMessageText, "4.2.
|
|
523570
|
+
return computeFingerprint(firstMessageText, "4.2.38");
|
|
523571
523571
|
}
|
|
523572
523572
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
523573
523573
|
var init_fingerprint = () => {};
|
|
@@ -524140,7 +524140,7 @@ async function sideQuery(opts) {
|
|
|
524140
524140
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
524141
524141
|
}
|
|
524142
524142
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
524143
|
-
const fingerprint = computeFingerprint(messageText2, "4.2.
|
|
524143
|
+
const fingerprint = computeFingerprint(messageText2, "4.2.38");
|
|
524144
524144
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
524145
524145
|
const systemBlocks = [
|
|
524146
524146
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -525567,7 +525567,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
525567
525567
|
const client10 = new Client({
|
|
525568
525568
|
name: "claude-code",
|
|
525569
525569
|
title: "CoStrict",
|
|
525570
|
-
version: "4.2.
|
|
525570
|
+
version: "4.2.38",
|
|
525571
525571
|
description: "CoStrict agentic coding tool",
|
|
525572
525572
|
websiteUrl: PRODUCT_URL
|
|
525573
525573
|
}, {
|
|
@@ -525939,7 +525939,7 @@ var init_client17 = __esm(() => {
|
|
|
525939
525939
|
const client10 = new Client({
|
|
525940
525940
|
name: "claude-code",
|
|
525941
525941
|
title: "CoStrict",
|
|
525942
|
-
version: "4.2.
|
|
525942
|
+
version: "4.2.38",
|
|
525943
525943
|
description: "CoStrict agentic coding tool",
|
|
525944
525944
|
websiteUrl: PRODUCT_URL
|
|
525945
525945
|
}, {
|
|
@@ -624841,7 +624841,7 @@ function initSentry() {
|
|
|
624841
624841
|
}
|
|
624842
624842
|
init3({
|
|
624843
624843
|
dsn,
|
|
624844
|
-
release: typeof MACRO !== "undefined" ? "4.2.
|
|
624844
|
+
release: typeof MACRO !== "undefined" ? "4.2.38" : undefined,
|
|
624845
624845
|
environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
|
|
624846
624846
|
maxBreadcrumbs: 20,
|
|
624847
624847
|
sampleRate: 1,
|
|
@@ -652490,7 +652490,7 @@ async function initializeBetaTracing(resource) {
|
|
|
652490
652490
|
});
|
|
652491
652491
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
652492
652492
|
setLoggerProvider(loggerProvider);
|
|
652493
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
652493
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.38");
|
|
652494
652494
|
setEventLogger(eventLogger);
|
|
652495
652495
|
process.on("beforeExit", async () => {
|
|
652496
652496
|
await loggerProvider?.forceFlush();
|
|
@@ -652530,7 +652530,7 @@ async function initializeTelemetry() {
|
|
|
652530
652530
|
const platform10 = getPlatform();
|
|
652531
652531
|
const baseAttributes = {
|
|
652532
652532
|
[import_semantic_conventions29.ATTR_SERVICE_NAME]: "claude-code",
|
|
652533
|
-
[import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.
|
|
652533
|
+
[import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.38"
|
|
652534
652534
|
};
|
|
652535
652535
|
if (platform10 === "wsl") {
|
|
652536
652536
|
const wslVersion = getWslVersion();
|
|
@@ -652575,7 +652575,7 @@ async function initializeTelemetry() {
|
|
|
652575
652575
|
} catch {}
|
|
652576
652576
|
};
|
|
652577
652577
|
registerCleanup(shutdownTelemetry2);
|
|
652578
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.
|
|
652578
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.38");
|
|
652579
652579
|
}
|
|
652580
652580
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
652581
652581
|
resource,
|
|
@@ -652595,7 +652595,7 @@ async function initializeTelemetry() {
|
|
|
652595
652595
|
});
|
|
652596
652596
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
652597
652597
|
setLoggerProvider(loggerProvider);
|
|
652598
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
652598
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.38");
|
|
652599
652599
|
setEventLogger(eventLogger);
|
|
652600
652600
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
652601
652601
|
process.on("beforeExit", async () => {
|
|
@@ -652657,7 +652657,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
652657
652657
|
}
|
|
652658
652658
|
};
|
|
652659
652659
|
registerCleanup(shutdownTelemetry);
|
|
652660
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "4.2.
|
|
652660
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "4.2.38");
|
|
652661
652661
|
}
|
|
652662
652662
|
async function flushTelemetry() {
|
|
652663
652663
|
const meterProvider = getMeterProvider();
|
|
@@ -653627,7 +653627,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
653627
653627
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
653628
653628
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
653629
653629
|
pid: process.pid,
|
|
653630
|
-
currentVersion: "4.2.
|
|
653630
|
+
currentVersion: "4.2.38"
|
|
653631
653631
|
});
|
|
653632
653632
|
return { status: "in_progress" };
|
|
653633
653633
|
}
|
|
@@ -653636,7 +653636,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
653636
653636
|
if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
|
|
653637
653637
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
653638
653638
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
653639
|
-
currentVersion: "4.2.
|
|
653639
|
+
currentVersion: "4.2.38"
|
|
653640
653640
|
});
|
|
653641
653641
|
return {
|
|
653642
653642
|
status: "install_failed",
|
|
@@ -654182,7 +654182,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
654182
654182
|
}
|
|
654183
654183
|
async function getDoctorDiagnostic() {
|
|
654184
654184
|
const installationType = await getCurrentInstallationType();
|
|
654185
|
-
const version11 = typeof MACRO !== "undefined" ? "4.2.
|
|
654185
|
+
const version11 = typeof MACRO !== "undefined" ? "4.2.38" : "unknown";
|
|
654186
654186
|
const installationPath = await getInstallationPath();
|
|
654187
654187
|
const invokedBinary = getInvokedBinary();
|
|
654188
654188
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -655124,8 +655124,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
655124
655124
|
const maxVersion = await getMaxVersion();
|
|
655125
655125
|
if (maxVersion && gt(version11, maxVersion)) {
|
|
655126
655126
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version11} to ${maxVersion}`);
|
|
655127
|
-
if (gte2("4.2.
|
|
655128
|
-
logForDebugging(`Native installer: current version ${"4.2.
|
|
655127
|
+
if (gte2("4.2.38", maxVersion)) {
|
|
655128
|
+
logForDebugging(`Native installer: current version ${"4.2.38"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
655129
655129
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
655130
655130
|
latency_ms: Date.now() - startTime2,
|
|
655131
655131
|
max_version: maxVersion,
|
|
@@ -655136,7 +655136,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
655136
655136
|
version11 = maxVersion;
|
|
655137
655137
|
}
|
|
655138
655138
|
}
|
|
655139
|
-
if (!forceReinstall && version11 === "4.2.
|
|
655139
|
+
if (!forceReinstall && version11 === "4.2.38" && await versionIsAvailable(version11) && await isPossibleClaudeBinary(executablePath)) {
|
|
655140
655140
|
logForDebugging(`Found ${version11} at ${executablePath}, skipping install`);
|
|
655141
655141
|
logEvent("tengu_native_update_complete", {
|
|
655142
655142
|
latency_ms: Date.now() - startTime2,
|
|
@@ -741383,13 +741383,132 @@ async function getParsedSession(taskDir, sessionId, preferredTranscriptPath) {
|
|
|
741383
741383
|
const cacheEntry = sessionMessagesCache.get(cacheKey);
|
|
741384
741384
|
return cacheEntry;
|
|
741385
741385
|
}
|
|
741386
|
-
|
|
741386
|
+
async function streamSessionStatistics(taskDir, sessionId, opts) {
|
|
741387
|
+
const chunkSize = opts?.chunkSize ?? STREAM_DEFAULT_CHUNK_BYTES;
|
|
741388
|
+
const maxLineBytes = opts?.maxLineBytes ?? STREAM_DEFAULT_MAX_LINE_BYTES;
|
|
741389
|
+
const sessionFile = await resolveTranscriptPath(taskDir, sessionId);
|
|
741390
|
+
if (!sessionFile) {
|
|
741391
|
+
throw new Error(`session transcript not found for session ${sessionId} under ${taskDir}`);
|
|
741392
|
+
}
|
|
741393
|
+
const agg = {
|
|
741394
|
+
lineCount: 0,
|
|
741395
|
+
conversationCount: 0,
|
|
741396
|
+
upstreamTokens: 0,
|
|
741397
|
+
downstreamTokens: 0,
|
|
741398
|
+
firstTimestamp: 0,
|
|
741399
|
+
lastTimestamp: 0,
|
|
741400
|
+
skippedOversizeLines: 0
|
|
741401
|
+
};
|
|
741402
|
+
const consumeLine = (line) => {
|
|
741403
|
+
let value;
|
|
741404
|
+
try {
|
|
741405
|
+
value = JSON.parse(line);
|
|
741406
|
+
} catch {
|
|
741407
|
+
return;
|
|
741408
|
+
}
|
|
741409
|
+
if (value === null)
|
|
741410
|
+
return;
|
|
741411
|
+
agg.lineCount++;
|
|
741412
|
+
if (typeof value !== "object")
|
|
741413
|
+
return;
|
|
741414
|
+
const msg = value;
|
|
741415
|
+
if (msg.type === "user") {
|
|
741416
|
+
agg.conversationCount++;
|
|
741417
|
+
}
|
|
741418
|
+
const usage2 = msg.message?.usage;
|
|
741419
|
+
if (usage2) {
|
|
741420
|
+
agg.upstreamTokens += (usage2.input_tokens ?? 0) + (usage2.cache_read_input_tokens ?? 0) + (usage2.cache_creation_input_tokens ?? 0);
|
|
741421
|
+
agg.downstreamTokens += usage2.output_tokens ?? 0;
|
|
741422
|
+
}
|
|
741423
|
+
if (msg.timestamp) {
|
|
741424
|
+
const ts = new Date(msg.timestamp).getTime();
|
|
741425
|
+
if (agg.firstTimestamp === 0 || ts < agg.firstTimestamp) {
|
|
741426
|
+
agg.firstTimestamp = ts;
|
|
741427
|
+
}
|
|
741428
|
+
if (agg.lastTimestamp === 0 || ts > agg.lastTimestamp) {
|
|
741429
|
+
agg.lastTimestamp = ts;
|
|
741430
|
+
}
|
|
741431
|
+
}
|
|
741432
|
+
};
|
|
741433
|
+
let warnedOversize = false;
|
|
741434
|
+
const noteOversize = () => {
|
|
741435
|
+
agg.skippedOversizeLines++;
|
|
741436
|
+
if (!warnedOversize) {
|
|
741437
|
+
warnedOversize = true;
|
|
741438
|
+
log10.warn("transcript \u5B58\u5728\u8D85\u957F\u884C\uFF0C\u7EDF\u8BA1\u5DF2\u8DF3\u8FC7\u8BE5\u884C", {
|
|
741439
|
+
sessionId,
|
|
741440
|
+
maxLineBytes
|
|
741441
|
+
});
|
|
741442
|
+
}
|
|
741443
|
+
};
|
|
741444
|
+
const fd3 = await fs29.open(sessionFile, "r");
|
|
741445
|
+
try {
|
|
741446
|
+
const chunk = Buffer.allocUnsafe(chunkSize);
|
|
741447
|
+
let carry;
|
|
741448
|
+
let discarding = false;
|
|
741449
|
+
for (;; ) {
|
|
741450
|
+
const { bytesRead } = await fd3.read(chunk, 0, chunkSize, null);
|
|
741451
|
+
if (bytesRead === 0)
|
|
741452
|
+
break;
|
|
741453
|
+
const view = chunk.subarray(0, bytesRead);
|
|
741454
|
+
let buf;
|
|
741455
|
+
let lineStart;
|
|
741456
|
+
if (discarding) {
|
|
741457
|
+
const nl = view.indexOf(10);
|
|
741458
|
+
if (nl === -1)
|
|
741459
|
+
continue;
|
|
741460
|
+
discarding = false;
|
|
741461
|
+
carry = undefined;
|
|
741462
|
+
lineStart = nl + 1;
|
|
741463
|
+
buf = view;
|
|
741464
|
+
} else {
|
|
741465
|
+
buf = carry ? Buffer.concat([carry, view]) : view;
|
|
741466
|
+
lineStart = 0;
|
|
741467
|
+
}
|
|
741468
|
+
for (;; ) {
|
|
741469
|
+
const nl = buf.indexOf(10, lineStart);
|
|
741470
|
+
if (nl === -1)
|
|
741471
|
+
break;
|
|
741472
|
+
if (nl - lineStart > maxLineBytes) {
|
|
741473
|
+
noteOversize();
|
|
741474
|
+
} else {
|
|
741475
|
+
consumeLine(buf.toString("utf8", lineStart, nl));
|
|
741476
|
+
}
|
|
741477
|
+
lineStart = nl + 1;
|
|
741478
|
+
}
|
|
741479
|
+
const tailLen = buf.length - lineStart;
|
|
741480
|
+
if (tailLen > maxLineBytes) {
|
|
741481
|
+
noteOversize();
|
|
741482
|
+
discarding = true;
|
|
741483
|
+
carry = undefined;
|
|
741484
|
+
} else if (tailLen > 0) {
|
|
741485
|
+
carry = Buffer.from(buf.subarray(lineStart));
|
|
741486
|
+
} else {
|
|
741487
|
+
carry = undefined;
|
|
741488
|
+
}
|
|
741489
|
+
}
|
|
741490
|
+
if (!discarding && carry) {
|
|
741491
|
+
consumeLine(carry.toString("utf8"));
|
|
741492
|
+
}
|
|
741493
|
+
} finally {
|
|
741494
|
+
await fd3.close();
|
|
741495
|
+
}
|
|
741496
|
+
log10.debug("streamed session statistics", {
|
|
741497
|
+
sessionId,
|
|
741498
|
+
lineCount: agg.lineCount,
|
|
741499
|
+
skippedOversizeLines: agg.skippedOversizeLines
|
|
741500
|
+
});
|
|
741501
|
+
return agg;
|
|
741502
|
+
}
|
|
741503
|
+
var log10, sessionMessagesCache, STREAM_DEFAULT_CHUNK_BYTES, STREAM_DEFAULT_MAX_LINE_BYTES;
|
|
741387
741504
|
var init_session2 = __esm(() => {
|
|
741388
741505
|
init_parse12();
|
|
741389
741506
|
init_logger6();
|
|
741390
741507
|
init_dirs();
|
|
741391
741508
|
log10 = createLogger("session");
|
|
741392
741509
|
sessionMessagesCache = new Map;
|
|
741510
|
+
STREAM_DEFAULT_CHUNK_BYTES = 1024 * 1024;
|
|
741511
|
+
STREAM_DEFAULT_MAX_LINE_BYTES = 32 * 1024 * 1024;
|
|
741393
741512
|
});
|
|
741394
741513
|
|
|
741395
741514
|
// src/services/rawDump/statistics.ts
|
|
@@ -741433,7 +741552,7 @@ async function statHistorySessions() {
|
|
|
741433
741552
|
});
|
|
741434
741553
|
const sessionDateMap = new Map;
|
|
741435
741554
|
for (const item of uniqueItems) {
|
|
741436
|
-
const
|
|
741555
|
+
const r7 = await streamSessionStatistics(item.project, item.sessionId).catch((err3) => {
|
|
741437
741556
|
log11.warn("statistics: \u8DF3\u8FC7\u4F1A\u8BDD\uFF08transcript \u672A\u89E3\u6790\uFF09", {
|
|
741438
741557
|
sessionId: item.sessionId,
|
|
741439
741558
|
project: item.project,
|
|
@@ -741441,52 +741560,17 @@ async function statHistorySessions() {
|
|
|
741441
741560
|
});
|
|
741442
741561
|
return null;
|
|
741443
741562
|
});
|
|
741444
|
-
if (!
|
|
741563
|
+
if (!r7)
|
|
741445
741564
|
continue;
|
|
741446
|
-
|
|
741447
|
-
if (!messages || messages.length === 0)
|
|
741565
|
+
if (r7.lineCount === 0)
|
|
741448
741566
|
continue;
|
|
741449
|
-
|
|
741450
|
-
let sessionUpstreamTokens = 0;
|
|
741451
|
-
let sessionDownstreamTokens = 0;
|
|
741452
|
-
for (const msg of messages) {
|
|
741453
|
-
if (msg.timestamp) {
|
|
741454
|
-
const ts = new Date(msg.timestamp).getTime();
|
|
741455
|
-
if (sessionTimestamp === 0 || ts < sessionTimestamp) {
|
|
741456
|
-
sessionTimestamp = ts;
|
|
741457
|
-
}
|
|
741458
|
-
}
|
|
741459
|
-
const usage2 = msg.message?.usage;
|
|
741460
|
-
if (usage2) {
|
|
741461
|
-
sessionUpstreamTokens += (usage2.input_tokens ?? 0) + (usage2.cache_read_input_tokens ?? 0) + (usage2.cache_creation_input_tokens ?? 0);
|
|
741462
|
-
sessionDownstreamTokens += usage2.output_tokens ?? 0;
|
|
741463
|
-
}
|
|
741464
|
-
}
|
|
741465
|
-
const sessionDateKey = sessionTimestamp ? new Date(sessionTimestamp).toISOString().slice(0, 10) : new Date().toISOString().slice(0, 10);
|
|
741567
|
+
const sessionDateKey = r7.firstTimestamp ? new Date(r7.firstTimestamp).toISOString().slice(0, 10) : new Date().toISOString().slice(0, 10);
|
|
741466
741568
|
sessionDateMap.set(item.sessionId, sessionDateKey);
|
|
741467
|
-
|
|
741468
|
-
|
|
741469
|
-
|
|
741470
|
-
|
|
741471
|
-
|
|
741472
|
-
for (const msg of messages) {
|
|
741473
|
-
if (msg.type === "user") {
|
|
741474
|
-
conversationCount++;
|
|
741475
|
-
}
|
|
741476
|
-
const usage2 = msg.message?.usage;
|
|
741477
|
-
if (usage2) {
|
|
741478
|
-
upstreamTokens += (usage2.input_tokens ?? 0) + (usage2.cache_read_input_tokens ?? 0) + (usage2.cache_creation_input_tokens ?? 0);
|
|
741479
|
-
downstreamTokens += usage2.output_tokens ?? 0;
|
|
741480
|
-
}
|
|
741481
|
-
if (msg.timestamp) {
|
|
741482
|
-
const ts = new Date(msg.timestamp).getTime();
|
|
741483
|
-
if (startTime2 === 0 || ts < startTime2) {
|
|
741484
|
-
startTime2 = ts;
|
|
741485
|
-
}
|
|
741486
|
-
if (endTime === 0 || ts > endTime) {
|
|
741487
|
-
endTime = ts;
|
|
741488
|
-
}
|
|
741489
|
-
}
|
|
741569
|
+
if (r7.skippedOversizeLines > 0) {
|
|
741570
|
+
log11.warn("statistics: transcript \u5B58\u5728\u8D85\u957F\u884C\u5DF2\u8DF3\u8FC7\u7EDF\u8BA1", {
|
|
741571
|
+
sessionId: item.sessionId,
|
|
741572
|
+
skipped: r7.skippedOversizeLines
|
|
741573
|
+
});
|
|
741490
741574
|
}
|
|
741491
741575
|
const dateKey = sessionDateKey;
|
|
741492
741576
|
if (!dailyStats.has(dateKey)) {
|
|
@@ -741501,17 +741585,17 @@ async function statHistorySessions() {
|
|
|
741501
741585
|
});
|
|
741502
741586
|
}
|
|
741503
741587
|
const stats3 = dailyStats.get(dateKey);
|
|
741504
|
-
stats3.conversationCount += conversationCount;
|
|
741505
|
-
stats3.upstreamTokens += upstreamTokens;
|
|
741506
|
-
stats3.downstreamTokens += downstreamTokens;
|
|
741507
|
-
if (
|
|
741508
|
-
if (stats3.startTime === 0 ||
|
|
741509
|
-
stats3.startTime =
|
|
741588
|
+
stats3.conversationCount += r7.conversationCount;
|
|
741589
|
+
stats3.upstreamTokens += r7.upstreamTokens;
|
|
741590
|
+
stats3.downstreamTokens += r7.downstreamTokens;
|
|
741591
|
+
if (r7.firstTimestamp > 0) {
|
|
741592
|
+
if (stats3.startTime === 0 || r7.firstTimestamp < stats3.startTime) {
|
|
741593
|
+
stats3.startTime = r7.firstTimestamp;
|
|
741510
741594
|
}
|
|
741511
741595
|
}
|
|
741512
|
-
if (
|
|
741513
|
-
if (stats3.endTime === 0 ||
|
|
741514
|
-
stats3.endTime =
|
|
741596
|
+
if (r7.lastTimestamp > 0) {
|
|
741597
|
+
if (stats3.endTime === 0 || r7.lastTimestamp > stats3.endTime) {
|
|
741598
|
+
stats3.endTime = r7.lastTimestamp;
|
|
741515
741599
|
}
|
|
741516
741600
|
}
|
|
741517
741601
|
}
|
|
@@ -763941,7 +764025,7 @@ function getAnthropicEnvMetadata() {
|
|
|
763941
764025
|
function getBuildAgeMinutes() {
|
|
763942
764026
|
if (false)
|
|
763943
764027
|
;
|
|
763944
|
-
const buildTime = new Date("2026-09-
|
|
764028
|
+
const buildTime = new Date("2026-09-14T02:57:33.042Z").getTime();
|
|
763945
764029
|
if (isNaN(buildTime))
|
|
763946
764030
|
return;
|
|
763947
764031
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -778439,7 +778523,7 @@ function Feedback({
|
|
|
778439
778523
|
platform: env4.platform,
|
|
778440
778524
|
gitRepo: envInfo.isGit,
|
|
778441
778525
|
terminal: env4.terminal,
|
|
778442
|
-
version: "4.2.
|
|
778526
|
+
version: "4.2.38",
|
|
778443
778527
|
transcript: normalizeMessagesForAPI(messages),
|
|
778444
778528
|
errors: sanitizedErrors,
|
|
778445
778529
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -778622,7 +778706,7 @@ function Feedback({
|
|
|
778622
778706
|
", ",
|
|
778623
778707
|
env4.terminal,
|
|
778624
778708
|
", v",
|
|
778625
|
-
"4.2.
|
|
778709
|
+
"4.2.38"
|
|
778626
778710
|
]
|
|
778627
778711
|
})
|
|
778628
778712
|
]
|
|
@@ -778719,7 +778803,7 @@ ${sanitizedDescription}
|
|
|
778719
778803
|
` + `**Environment Info**
|
|
778720
778804
|
` + `- Platform: ${env4.platform}
|
|
778721
778805
|
` + `- Terminal: ${env4.terminal}
|
|
778722
|
-
` + `- Version: ${"4.2.
|
|
778806
|
+
` + `- Version: ${"4.2.38"}
|
|
778723
778807
|
` + `- Feedback ID: ${feedbackId}
|
|
778724
778808
|
` + `
|
|
778725
778809
|
**Errors**
|
|
@@ -780958,7 +781042,7 @@ function buildPrimarySection() {
|
|
|
780958
781042
|
children: t("settings.status.renameHint")
|
|
780959
781043
|
});
|
|
780960
781044
|
return [
|
|
780961
|
-
{ label: t("settings.status.version"), value: "4.2.
|
|
781045
|
+
{ label: t("settings.status.version"), value: "4.2.38" },
|
|
780962
781046
|
{ label: t("settings.status.sessionName"), value: nameValue },
|
|
780963
781047
|
{ label: t("settings.status.sessionId"), value: sessionId },
|
|
780964
781048
|
{ label: t("settings.status.cwd"), value: getCwd() },
|
|
@@ -783836,7 +783920,7 @@ function Config({
|
|
|
783836
783920
|
}
|
|
783837
783921
|
})
|
|
783838
783922
|
}) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime192.jsx(ChannelDowngradeDialog, {
|
|
783839
|
-
currentVersion: "4.2.
|
|
783923
|
+
currentVersion: "4.2.38",
|
|
783840
783924
|
onChoice: (choice) => {
|
|
783841
783925
|
setShowSubmenu(null);
|
|
783842
783926
|
setTabsHidden(false);
|
|
@@ -783848,7 +783932,7 @@ function Config({
|
|
|
783848
783932
|
autoUpdatesChannel: "stable"
|
|
783849
783933
|
};
|
|
783850
783934
|
if (choice === "stay") {
|
|
783851
|
-
newSettings.minimumVersion = "4.2.
|
|
783935
|
+
newSettings.minimumVersion = "4.2.38";
|
|
783852
783936
|
}
|
|
783853
783937
|
updateSettingsForSource("userSettings", newSettings);
|
|
783854
783938
|
setSettingsData((prev) => ({
|
|
@@ -789317,7 +789401,7 @@ function HelpV2({ onClose, commands: commands11 }) {
|
|
|
789317
789401
|
color: "professionalBlue",
|
|
789318
789402
|
children: [
|
|
789319
789403
|
/* @__PURE__ */ jsx_runtime219.jsx(Tabs, {
|
|
789320
|
-
title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.
|
|
789404
|
+
title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.38"}`,
|
|
789321
789405
|
color: "professionalBlue",
|
|
789322
789406
|
defaultTab: "general",
|
|
789323
789407
|
children: tabs
|
|
@@ -812032,7 +812116,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
812032
812116
|
return [];
|
|
812033
812117
|
}
|
|
812034
812118
|
}
|
|
812035
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.
|
|
812119
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.38") {
|
|
812036
812120
|
if (process.env.USER_TYPE === "sf") {
|
|
812037
812121
|
const changelog = "";
|
|
812038
812122
|
if (changelog) {
|
|
@@ -812059,7 +812143,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.37")
|
|
|
812059
812143
|
releaseNotes
|
|
812060
812144
|
};
|
|
812061
812145
|
}
|
|
812062
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.
|
|
812146
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.38") {
|
|
812063
812147
|
if (process.env.USER_TYPE === "sf") {
|
|
812064
812148
|
const changelog = "";
|
|
812065
812149
|
if (changelog) {
|
|
@@ -814572,7 +814656,7 @@ function isNotLoggedIn() {
|
|
|
814572
814656
|
return true;
|
|
814573
814657
|
}
|
|
814574
814658
|
function getLogoDisplayData() {
|
|
814575
|
-
const version11 = process.env.DEMO_VERSION ?? "4.2.
|
|
814659
|
+
const version11 = process.env.DEMO_VERSION ?? "4.2.38";
|
|
814576
814660
|
const serverUrl = getDirectConnectServerUrl();
|
|
814577
814661
|
const displayPath2 = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
814578
814662
|
const cwd2 = serverUrl ? `${displayPath2} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath2;
|
|
@@ -815150,7 +815234,7 @@ var init_MatrixMessageLine = __esm(() => {
|
|
|
815150
815234
|
// src/components/matrix-tactical/MatrixWelcome.tsx
|
|
815151
815235
|
import { basename as basename48 } from "path";
|
|
815152
815236
|
function MatrixWelcome({
|
|
815153
|
-
version: version11 = "4.2.
|
|
815237
|
+
version: version11 = "4.2.38",
|
|
815154
815238
|
projectName,
|
|
815155
815239
|
cwd: cwd2,
|
|
815156
815240
|
modelDisplayName,
|
|
@@ -815785,13 +815869,13 @@ function LogoV2() {
|
|
|
815785
815869
|
const { hasReleaseNotes } = checkForReleaseNotesSync(config13.lastReleaseNotesSeen);
|
|
815786
815870
|
import_react167.useEffect(() => {
|
|
815787
815871
|
const currentConfig = getGlobalConfig();
|
|
815788
|
-
if (currentConfig.lastReleaseNotesSeen === "4.2.
|
|
815872
|
+
if (currentConfig.lastReleaseNotesSeen === "4.2.38") {
|
|
815789
815873
|
return;
|
|
815790
815874
|
}
|
|
815791
815875
|
saveGlobalConfig((current2) => {
|
|
815792
|
-
if (current2.lastReleaseNotesSeen === "4.2.
|
|
815876
|
+
if (current2.lastReleaseNotesSeen === "4.2.38")
|
|
815793
815877
|
return current2;
|
|
815794
|
-
return { ...current2, lastReleaseNotesSeen: "4.2.
|
|
815878
|
+
return { ...current2, lastReleaseNotesSeen: "4.2.38" };
|
|
815795
815879
|
});
|
|
815796
815880
|
if (showOnboarding) {
|
|
815797
815881
|
incrementProjectOnboardingSeenCount();
|
|
@@ -839356,7 +839440,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
839356
839440
|
smapsRollup,
|
|
839357
839441
|
platform: process.platform,
|
|
839358
839442
|
nodeVersion: process.version,
|
|
839359
|
-
ccVersion: "4.2.
|
|
839443
|
+
ccVersion: "4.2.38"
|
|
839360
839444
|
};
|
|
839361
839445
|
}
|
|
839362
839446
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -839472,7 +839556,7 @@ var init_mock_limits = __esm(() => {
|
|
|
839472
839556
|
var call56 = async () => {
|
|
839473
839557
|
return {
|
|
839474
839558
|
type: "text",
|
|
839475
|
-
value: `${"4.2.
|
|
839559
|
+
value: `${"4.2.38"} (built ${"2026-09-14T02:57:33.042Z"})`
|
|
839476
839560
|
};
|
|
839477
839561
|
}, version11, version_default;
|
|
839478
839562
|
var init_version2 = __esm(() => {
|
|
@@ -859352,7 +859436,7 @@ function generateHtmlReport(data, insights) {
|
|
|
859352
859436
|
</html>`;
|
|
859353
859437
|
}
|
|
859354
859438
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
859355
|
-
const version12 = typeof MACRO !== "undefined" ? "4.2.
|
|
859439
|
+
const version12 = typeof MACRO !== "undefined" ? "4.2.38" : "unknown";
|
|
859356
859440
|
const remote_hosts_collected = remoteStats?.hosts.filter((h8) => h8.sessionCount > 0).map((h8) => h8.name);
|
|
859357
859441
|
const facets_summary = {
|
|
859358
859442
|
total: facets.size,
|
|
@@ -863844,7 +863928,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
863844
863928
|
init_settings2();
|
|
863845
863929
|
init_slowOperations();
|
|
863846
863930
|
init_uuid();
|
|
863847
|
-
VERSION11 = typeof MACRO !== "undefined" ? "4.2.
|
|
863931
|
+
VERSION11 = typeof MACRO !== "undefined" ? "4.2.38" : "unknown";
|
|
863848
863932
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
863849
863933
|
SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
863850
863934
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -865185,7 +865269,7 @@ var init_filesystem = __esm(() => {
|
|
|
865185
865269
|
});
|
|
865186
865270
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
865187
865271
|
const nonce = randomBytes24(16).toString("hex");
|
|
865188
|
-
return join219(getCostrictTempDir(), "bundled-skills", "4.2.
|
|
865272
|
+
return join219(getCostrictTempDir(), "bundled-skills", "4.2.38", nonce);
|
|
865189
865273
|
});
|
|
865190
865274
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
865191
865275
|
});
|
|
@@ -876683,7 +876767,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
876683
876767
|
slash_commands: inputs.commands.filter((c10) => c10.userInvocable !== false).map((c10) => c10.name),
|
|
876684
876768
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
876685
876769
|
betas: getSdkBetas(),
|
|
876686
|
-
claude_code_version: "4.2.
|
|
876770
|
+
claude_code_version: "4.2.38",
|
|
876687
876771
|
output_style: outputStyle2,
|
|
876688
876772
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
876689
876773
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -880227,7 +880311,7 @@ function appendToLog(path61, message2) {
|
|
|
880227
880311
|
cwd: getFsImplementation().cwd(),
|
|
880228
880312
|
userType: process.env.USER_TYPE,
|
|
880229
880313
|
sessionId: getSessionId(),
|
|
880230
|
-
version: "4.2.
|
|
880314
|
+
version: "4.2.38"
|
|
880231
880315
|
};
|
|
880232
880316
|
getLogWriter(path61).write(messageWithTimestamp);
|
|
880233
880317
|
}
|
|
@@ -901288,7 +901372,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
901288
901372
|
project_dir: getOriginalCwd(),
|
|
901289
901373
|
added_dirs: addedDirs
|
|
901290
901374
|
},
|
|
901291
|
-
version: "4.2.
|
|
901375
|
+
version: "4.2.38",
|
|
901292
901376
|
output_style: {
|
|
901293
901377
|
name: outputStyleName
|
|
901294
901378
|
},
|
|
@@ -919954,7 +920038,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
919954
920038
|
} catch {}
|
|
919955
920039
|
const data = {
|
|
919956
920040
|
trigger,
|
|
919957
|
-
version: "4.2.
|
|
920041
|
+
version: "4.2.38",
|
|
919958
920042
|
platform: process.platform,
|
|
919959
920043
|
transcript,
|
|
919960
920044
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -921209,7 +921293,7 @@ function getReleaseType(current2, latest) {
|
|
|
921209
921293
|
return "patch";
|
|
921210
921294
|
}
|
|
921211
921295
|
async function checkNewAutoUpdate(callbacks) {
|
|
921212
|
-
const currentVersion = "4.2.
|
|
921296
|
+
const currentVersion = "4.2.38";
|
|
921213
921297
|
logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
|
|
921214
921298
|
if (isNewAutoUpdaterDisabled()) {
|
|
921215
921299
|
return { action: "skip", currentVersion, latestVersion: null };
|
|
@@ -933466,7 +933550,7 @@ function WelcomeV2() {
|
|
|
933466
933550
|
dimColor: true,
|
|
933467
933551
|
children: [
|
|
933468
933552
|
"v",
|
|
933469
|
-
"4.2.
|
|
933553
|
+
"4.2.38",
|
|
933470
933554
|
" "
|
|
933471
933555
|
]
|
|
933472
933556
|
})
|
|
@@ -933532,7 +933616,7 @@ function WelcomeV2() {
|
|
|
933532
933616
|
dimColor: true,
|
|
933533
933617
|
children: [
|
|
933534
933618
|
"v",
|
|
933535
|
-
"4.2.
|
|
933619
|
+
"4.2.38",
|
|
933536
933620
|
" "
|
|
933537
933621
|
]
|
|
933538
933622
|
})
|
|
@@ -933634,7 +933718,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
|
|
|
933634
933718
|
dimColor: true,
|
|
933635
933719
|
children: [
|
|
933636
933720
|
"v",
|
|
933637
|
-
"4.2.
|
|
933721
|
+
"4.2.38",
|
|
933638
933722
|
" "
|
|
933639
933723
|
]
|
|
933640
933724
|
})
|
|
@@ -933700,7 +933784,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
|
|
|
933700
933784
|
dimColor: true,
|
|
933701
933785
|
children: [
|
|
933702
933786
|
"v",
|
|
933703
|
-
"4.2.
|
|
933787
|
+
"4.2.38",
|
|
933704
933788
|
" "
|
|
933705
933789
|
]
|
|
933706
933790
|
})
|
|
@@ -934640,7 +934724,7 @@ function completeOnboarding() {
|
|
|
934640
934724
|
saveGlobalConfig((current2) => ({
|
|
934641
934725
|
...current2,
|
|
934642
934726
|
hasCompletedOnboarding: true,
|
|
934643
|
-
lastOnboardingVersion: "4.2.
|
|
934727
|
+
lastOnboardingVersion: "4.2.38"
|
|
934644
934728
|
}));
|
|
934645
934729
|
}
|
|
934646
934730
|
function showDialog(root9, renderer) {
|
|
@@ -951107,7 +951191,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
|
|
|
951107
951191
|
setCwd(cwd3);
|
|
951108
951192
|
const server2 = new Server({
|
|
951109
951193
|
name: "claude/tengu",
|
|
951110
|
-
version: "4.2.
|
|
951194
|
+
version: "4.2.38"
|
|
951111
951195
|
}, {
|
|
951112
951196
|
capabilities: {
|
|
951113
951197
|
tools: {}
|
|
@@ -953392,7 +953476,7 @@ function createHealthRoutes(sessionManager) {
|
|
|
953392
953476
|
const uptime2 = process.uptime() * 1000;
|
|
953393
953477
|
return c10.json({
|
|
953394
953478
|
status: "ok",
|
|
953395
|
-
version: "4.2.
|
|
953479
|
+
version: "4.2.38",
|
|
953396
953480
|
uptime_ms: Math.round(uptime2),
|
|
953397
953481
|
active_sessions: sessionManager.getActiveCount()
|
|
953398
953482
|
});
|
|
@@ -953664,7 +953748,7 @@ function getMacroDefines() {
|
|
|
953664
953748
|
commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
|
|
953665
953749
|
} catch {}
|
|
953666
953750
|
return {
|
|
953667
|
-
"MACRO.VERSION": JSON.stringify("4.2.
|
|
953751
|
+
"MACRO.VERSION": JSON.stringify("4.2.38"),
|
|
953668
953752
|
"MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
|
|
953669
953753
|
"MACRO.COMMIT": JSON.stringify(commit),
|
|
953670
953754
|
"MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
|
|
@@ -960802,7 +960886,7 @@ __export(exports_update, {
|
|
|
960802
960886
|
});
|
|
960803
960887
|
async function update() {
|
|
960804
960888
|
logEvent("tengu_update_check", {});
|
|
960805
|
-
writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.
|
|
960889
|
+
writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.38"}
|
|
960806
960890
|
`);
|
|
960807
960891
|
const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
960808
960892
|
writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
|
|
@@ -960877,8 +960961,8 @@ async function update() {
|
|
|
960877
960961
|
writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
|
|
960878
960962
|
`);
|
|
960879
960963
|
const latest = await getLatestVersion(channel5);
|
|
960880
|
-
if (latest && !gte2("4.2.
|
|
960881
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
960964
|
+
if (latest && !gte2("4.2.38", latest)) {
|
|
960965
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.38", latest }, "Update available: {current} \u2192 {latest}")}
|
|
960882
960966
|
`);
|
|
960883
960967
|
writeToStdout(`
|
|
960884
960968
|
`);
|
|
@@ -960894,8 +960978,8 @@ async function update() {
|
|
|
960894
960978
|
writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
|
|
960895
960979
|
`);
|
|
960896
960980
|
const latest = await getLatestVersion(channel5);
|
|
960897
|
-
if (latest && !gte2("4.2.
|
|
960898
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
960981
|
+
if (latest && !gte2("4.2.38", latest)) {
|
|
960982
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.38", latest }, "Update available: {current} \u2192 {latest}")}
|
|
960899
960983
|
`);
|
|
960900
960984
|
writeToStdout(`
|
|
960901
960985
|
`);
|
|
@@ -960911,8 +960995,8 @@ async function update() {
|
|
|
960911
960995
|
writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
|
|
960912
960996
|
`);
|
|
960913
960997
|
const latest = await getLatestVersion(channel5);
|
|
960914
|
-
if (latest && !gte2("4.2.
|
|
960915
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
960998
|
+
if (latest && !gte2("4.2.38", latest)) {
|
|
960999
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.38", latest }, "Update available: {current} \u2192 {latest}")}
|
|
960916
961000
|
`);
|
|
960917
961001
|
writeToStdout(`
|
|
960918
961002
|
`);
|
|
@@ -960977,11 +961061,11 @@ async function update() {
|
|
|
960977
961061
|
`);
|
|
960978
961062
|
await gracefulShutdown(1);
|
|
960979
961063
|
}
|
|
960980
|
-
if (result2.latestVersion === "4.2.
|
|
960981
|
-
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.
|
|
961064
|
+
if (result2.latestVersion === "4.2.38") {
|
|
961065
|
+
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.38" }, "CoStrict is up to date ({version})")) + `
|
|
960982
961066
|
`);
|
|
960983
961067
|
} else {
|
|
960984
|
-
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.
|
|
961068
|
+
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.38", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
|
|
960985
961069
|
`);
|
|
960986
961070
|
regenerateCompletionCache();
|
|
960987
961071
|
}
|
|
@@ -961041,12 +961125,12 @@ async function update() {
|
|
|
961041
961125
|
`);
|
|
961042
961126
|
await gracefulShutdown(1);
|
|
961043
961127
|
}
|
|
961044
|
-
if (latestVersion === "4.2.
|
|
961045
|
-
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.
|
|
961128
|
+
if (latestVersion === "4.2.38") {
|
|
961129
|
+
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.38" }, "CoStrict is up to date ({version})")) + `
|
|
961046
961130
|
`);
|
|
961047
961131
|
await gracefulShutdown(0);
|
|
961048
961132
|
}
|
|
961049
|
-
writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.
|
|
961133
|
+
writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.38" }, "New version available: {latest} (current: {current})")}
|
|
961050
961134
|
`);
|
|
961051
961135
|
writeToStdout(`${t("cli.update.installing", "Installing update...")}
|
|
961052
961136
|
`);
|
|
@@ -961091,7 +961175,7 @@ async function update() {
|
|
|
961091
961175
|
logForDebugging(`update: Installation status: ${result.status}`);
|
|
961092
961176
|
switch (result.status) {
|
|
961093
961177
|
case "success":
|
|
961094
|
-
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.
|
|
961178
|
+
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.38", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
|
|
961095
961179
|
`);
|
|
961096
961180
|
regenerateCompletionCache();
|
|
961097
961181
|
break;
|
|
@@ -963310,7 +963394,7 @@ ${assistantAddendum}` : assistantAddendum;
|
|
|
963310
963394
|
}
|
|
963311
963395
|
}
|
|
963312
963396
|
logForDiagnosticsNoPII("info", "started", {
|
|
963313
|
-
version: "4.2.
|
|
963397
|
+
version: "4.2.38",
|
|
963314
963398
|
is_native_binary: isInBundledMode()
|
|
963315
963399
|
});
|
|
963316
963400
|
registerCleanup(async () => {
|
|
@@ -963801,7 +963885,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
|
|
|
963801
963885
|
sshSession = await createSSHSession2({
|
|
963802
963886
|
host: _pendingSSH.host,
|
|
963803
963887
|
cwd: _pendingSSH.cwd,
|
|
963804
|
-
localVersion: "4.2.
|
|
963888
|
+
localVersion: "4.2.38",
|
|
963805
963889
|
permissionMode: _pendingSSH.permissionMode,
|
|
963806
963890
|
dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
|
|
963807
963891
|
extraCliArgs: _pendingSSH.extraCliArgs,
|
|
@@ -964270,7 +964354,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
964270
964354
|
pendingHookMessages
|
|
964271
964355
|
}, renderAndRun);
|
|
964272
964356
|
}
|
|
964273
|
-
}).version("4.2.
|
|
964357
|
+
}).version("4.2.38 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
|
|
964274
964358
|
program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
|
|
964275
964359
|
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());
|
|
964276
964360
|
if (canUserConfigureAdvisor()) {
|
|
@@ -965039,10 +965123,10 @@ function getCouncilArgs(args) {
|
|
|
965039
965123
|
async function main2() {
|
|
965040
965124
|
const args = process.argv.slice(2);
|
|
965041
965125
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
965042
|
-
const d7 = new Date("2026-09-
|
|
965126
|
+
const d7 = new Date("2026-09-14T02:57:33.042Z");
|
|
965043
965127
|
const p2 = (n3) => String(n3).padStart(2, "0");
|
|
965044
965128
|
const buildTime = `${d7.getFullYear()}/${p2(d7.getMonth() + 1)}/${p2(d7.getDate())} ${p2(d7.getHours())}:${p2(d7.getMinutes())}:${p2(d7.getSeconds())}`;
|
|
965045
|
-
console.log(`${"4.2.
|
|
965129
|
+
console.log(`${"4.2.38"} (commit: ${"66df21796"}, built: ${buildTime})`);
|
|
965046
965130
|
return;
|
|
965047
965131
|
}
|
|
965048
965132
|
if (true) {
|
|
@@ -965223,5 +965307,5 @@ async function main2() {
|
|
|
965223
965307
|
}
|
|
965224
965308
|
main2();
|
|
965225
965309
|
|
|
965226
|
-
//# debugId=
|
|
965310
|
+
//# debugId=737638D9532C20B764756E2164756E21
|
|
965227
965311
|
|