@costrict/csc 4.2.36 → 4.2.37
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 +188 -109
- 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.37") {
|
|
31763
|
+
cached = "4.2.37";
|
|
31764
31764
|
return cached;
|
|
31765
31765
|
}
|
|
31766
31766
|
} catch {}
|
|
@@ -31810,7 +31810,8 @@ __export(exports_token, {
|
|
|
31810
31810
|
refreshCoStrictToken: () => refreshCoStrictToken,
|
|
31811
31811
|
parseJWT: () => parseJWT,
|
|
31812
31812
|
isCoStrictTokenValid: () => isCoStrictTokenValid,
|
|
31813
|
-
extractExpiryFromJWT: () => extractExpiryFromJWT
|
|
31813
|
+
extractExpiryFromJWT: () => extractExpiryFromJWT,
|
|
31814
|
+
CoStrictAuthTerminalError: () => CoStrictAuthTerminalError
|
|
31814
31815
|
});
|
|
31815
31816
|
function parseJWT(token) {
|
|
31816
31817
|
const parts = token.split(".");
|
|
@@ -31881,22 +31882,28 @@ async function refreshCoStrictToken(params) {
|
|
|
31881
31882
|
try {
|
|
31882
31883
|
parsed = JSON.parse(raw);
|
|
31883
31884
|
} catch {
|
|
31884
|
-
throw new
|
|
31885
|
+
throw new CoStrictAuthTerminalError(formatRefreshError(response.status, null, raw));
|
|
31885
31886
|
}
|
|
31886
31887
|
const tokens = unwrapCoStrictRefreshResponse(parsed);
|
|
31887
31888
|
if (!tokens) {
|
|
31888
31889
|
const serverFailed = isRecord(parsed) && parsed.success === false;
|
|
31889
|
-
throw new
|
|
31890
|
+
throw new CoStrictAuthTerminalError(formatRefreshError(response.status, parsed, raw) + (serverFailed ? "" : ": Token refresh response is missing required fields"));
|
|
31890
31891
|
}
|
|
31891
31892
|
if (!response.ok) {
|
|
31892
|
-
throw new
|
|
31893
|
+
throw new CoStrictAuthTerminalError(formatRefreshError(response.status, parsed, raw));
|
|
31893
31894
|
}
|
|
31894
31895
|
return tokens;
|
|
31895
31896
|
}
|
|
31896
|
-
var ACCESS_TOKEN_REFRESH_BUFFER_MS;
|
|
31897
|
+
var ACCESS_TOKEN_REFRESH_BUFFER_MS, CoStrictAuthTerminalError;
|
|
31897
31898
|
var init_token = __esm(() => {
|
|
31898
31899
|
init_oauth_params();
|
|
31899
31900
|
ACCESS_TOKEN_REFRESH_BUFFER_MS = 30 * 60 * 1000;
|
|
31901
|
+
CoStrictAuthTerminalError = class CoStrictAuthTerminalError extends Error {
|
|
31902
|
+
constructor(message) {
|
|
31903
|
+
super(message);
|
|
31904
|
+
this.name = "CoStrictAuthTerminalError";
|
|
31905
|
+
}
|
|
31906
|
+
};
|
|
31900
31907
|
});
|
|
31901
31908
|
|
|
31902
31909
|
// src/costrict/provider/auth.ts
|
|
@@ -224369,7 +224376,7 @@ async function fetchCoStrictModels(baseUrl, accessToken) {
|
|
|
224369
224376
|
headers: {
|
|
224370
224377
|
Authorization: `Bearer ${accessToken}`,
|
|
224371
224378
|
Accept: "application/json",
|
|
224372
|
-
"User-Agent": `csc/${"4.2.
|
|
224379
|
+
"User-Agent": `csc/${"4.2.37"}`
|
|
224373
224380
|
},
|
|
224374
224381
|
signal: controller.signal
|
|
224375
224382
|
});
|
|
@@ -226409,7 +226416,7 @@ var init_auth7 = __esm(() => {
|
|
|
226409
226416
|
|
|
226410
226417
|
// src/utils/userAgent.ts
|
|
226411
226418
|
function getClaudeCodeUserAgent() {
|
|
226412
|
-
return `costrict/${"4.2.
|
|
226419
|
+
return `costrict/${"4.2.37"}`;
|
|
226413
226420
|
}
|
|
226414
226421
|
|
|
226415
226422
|
// src/utils/workloadContext.ts
|
|
@@ -226431,7 +226438,7 @@ function getUserAgent() {
|
|
|
226431
226438
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
226432
226439
|
const workload = getWorkload();
|
|
226433
226440
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
226434
|
-
return `csc/${"4.2.
|
|
226441
|
+
return `csc/${"4.2.37"}`;
|
|
226435
226442
|
}
|
|
226436
226443
|
function getMCPUserAgent() {
|
|
226437
226444
|
const parts = [];
|
|
@@ -226445,7 +226452,7 @@ function getMCPUserAgent() {
|
|
|
226445
226452
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
226446
226453
|
}
|
|
226447
226454
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
226448
|
-
return `csc/${"4.2.
|
|
226455
|
+
return `csc/${"4.2.37"}${suffix}`;
|
|
226449
226456
|
}
|
|
226450
226457
|
function getWebFetchUserAgent() {
|
|
226451
226458
|
return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -226565,7 +226572,7 @@ var init_user = __esm(() => {
|
|
|
226565
226572
|
deviceId,
|
|
226566
226573
|
sessionId: getSessionId(),
|
|
226567
226574
|
email: getEmail(),
|
|
226568
|
-
appVersion: "4.2.
|
|
226575
|
+
appVersion: "4.2.37",
|
|
226569
226576
|
platform: getHostPlatformForAnalytics(),
|
|
226570
226577
|
organizationUuid,
|
|
226571
226578
|
accountUuid,
|
|
@@ -237613,7 +237620,7 @@ var init_metadata = __esm(() => {
|
|
|
237613
237620
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
237614
237621
|
WHITESPACE_REGEX = /\s+/;
|
|
237615
237622
|
getVersionBase = memoize_default(() => {
|
|
237616
|
-
const match = "4.2.
|
|
237623
|
+
const match = "4.2.37".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
237617
237624
|
return match ? match[0] : undefined;
|
|
237618
237625
|
});
|
|
237619
237626
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -237653,9 +237660,9 @@ var init_metadata = __esm(() => {
|
|
|
237653
237660
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
237654
237661
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
237655
237662
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
237656
|
-
version: "4.2.
|
|
237663
|
+
version: "4.2.37",
|
|
237657
237664
|
versionBase: getVersionBase(),
|
|
237658
|
-
buildTime: "2026-09-
|
|
237665
|
+
buildTime: "2026-09-09T12:10:12.753Z",
|
|
237659
237666
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
237660
237667
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
237661
237668
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -238326,7 +238333,7 @@ function initialize1PEventLogging() {
|
|
|
238326
238333
|
const platform3 = getPlatform();
|
|
238327
238334
|
const attributes = {
|
|
238328
238335
|
[import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
|
|
238329
|
-
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.
|
|
238336
|
+
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "4.2.37"
|
|
238330
238337
|
};
|
|
238331
238338
|
if (platform3 === "wsl") {
|
|
238332
238339
|
const wslVersion = getWslVersion();
|
|
@@ -238353,7 +238360,7 @@ function initialize1PEventLogging() {
|
|
|
238353
238360
|
})
|
|
238354
238361
|
]
|
|
238355
238362
|
});
|
|
238356
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
238363
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "4.2.37");
|
|
238357
238364
|
}
|
|
238358
238365
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
238359
238366
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -278274,7 +278281,8 @@ var exports_tokenManager = {};
|
|
|
278274
278281
|
__export(exports_tokenManager, {
|
|
278275
278282
|
recoverFrom401: () => recoverFrom401,
|
|
278276
278283
|
ensureValidCredentials: () => ensureValidCredentials,
|
|
278277
|
-
_resetInflightRefresh: () => _resetInflightRefresh
|
|
278284
|
+
_resetInflightRefresh: () => _resetInflightRefresh,
|
|
278285
|
+
CoStrictAuthTerminalError: () => CoStrictAuthTerminalError
|
|
278278
278286
|
});
|
|
278279
278287
|
function resolveBaseUrl(credentialsBaseUrl) {
|
|
278280
278288
|
const envUrl = process.env.COSTRICT_BASE_URL;
|
|
@@ -278300,25 +278308,25 @@ async function ensureValidCredentials(forceRefresh = false) {
|
|
|
278300
278308
|
async function doRefresh(forceRefresh = false) {
|
|
278301
278309
|
const decision = await updateCredentialsAtomically((creds) => {
|
|
278302
278310
|
if (!creds) {
|
|
278303
|
-
throw new
|
|
278311
|
+
throw new CoStrictAuthTerminalError(t("errors.costrict.credentialsNotFound"));
|
|
278304
278312
|
}
|
|
278305
278313
|
if (!forceRefresh && isCoStrictTokenValid(creds)) {
|
|
278306
278314
|
return null;
|
|
278307
278315
|
}
|
|
278308
278316
|
if (!creds.refresh_token) {
|
|
278309
|
-
throw new
|
|
278317
|
+
throw new CoStrictAuthTerminalError(t("errors.costrict.noRefreshToken"));
|
|
278310
278318
|
}
|
|
278311
278319
|
return creds;
|
|
278312
278320
|
});
|
|
278313
278321
|
if (!decision) {
|
|
278314
278322
|
const finalCreds = await loadCoStrictCredentials();
|
|
278315
278323
|
if (!finalCreds) {
|
|
278316
|
-
throw new
|
|
278324
|
+
throw new CoStrictAuthTerminalError(t("errors.costrict.refreshFailed"));
|
|
278317
278325
|
}
|
|
278318
278326
|
return { credentials: finalCreds, refreshed: false };
|
|
278319
278327
|
}
|
|
278320
278328
|
if (!decision.refresh_token) {
|
|
278321
|
-
throw new
|
|
278329
|
+
throw new CoStrictAuthTerminalError(t("errors.costrict.noRefreshToken"));
|
|
278322
278330
|
}
|
|
278323
278331
|
const baseUrl = resolveBaseUrl(decision.base_url);
|
|
278324
278332
|
const refreshed2 = await refreshCoStrictToken({
|
|
@@ -354157,7 +354165,7 @@ function getTelemetryAttributes() {
|
|
|
354157
354165
|
attributes["session.id"] = sessionId;
|
|
354158
354166
|
}
|
|
354159
354167
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
354160
|
-
attributes["app.version"] = "4.2.
|
|
354168
|
+
attributes["app.version"] = "4.2.37";
|
|
354161
354169
|
}
|
|
354162
354170
|
const oauthAccount = getOauthAccountInfo();
|
|
354163
354171
|
if (oauthAccount) {
|
|
@@ -469283,7 +469291,7 @@ function getInstallationEnv() {
|
|
|
469283
469291
|
return;
|
|
469284
469292
|
}
|
|
469285
469293
|
function getClaudeCodeVersion() {
|
|
469286
|
-
return "4.2.
|
|
469294
|
+
return "4.2.37";
|
|
469287
469295
|
}
|
|
469288
469296
|
async function getInstalledVSCodeExtensionVersion(command4) {
|
|
469289
469297
|
const { stdout } = await execFileNoThrow(command4, ["--list-extensions", "--show-versions"], {
|
|
@@ -523000,7 +523008,7 @@ function initLangfuse() {
|
|
|
523000
523008
|
flushInterval: parseInt(process.env.LANGFUSE_FLUSH_INTERVAL ?? "10", 10),
|
|
523001
523009
|
mask: maskFn,
|
|
523002
523010
|
environment: process.env.LANGFUSE_TRACING_ENVIRONMENT ?? "development",
|
|
523003
|
-
release: "4.2.
|
|
523011
|
+
release: "4.2.37",
|
|
523004
523012
|
exportMode: process.env.LANGFUSE_EXPORT_MODE ?? "batched",
|
|
523005
523013
|
timeout: parseInt(process.env.LANGFUSE_TIMEOUT ?? "5", 10)
|
|
523006
523014
|
});
|
|
@@ -523559,7 +523567,7 @@ function computeFingerprint(messageText2, version11) {
|
|
|
523559
523567
|
}
|
|
523560
523568
|
function computeFingerprintFromMessages(messages) {
|
|
523561
523569
|
const firstMessageText = extractFirstMessageText(messages);
|
|
523562
|
-
return computeFingerprint(firstMessageText, "4.2.
|
|
523570
|
+
return computeFingerprint(firstMessageText, "4.2.37");
|
|
523563
523571
|
}
|
|
523564
523572
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
523565
523573
|
var init_fingerprint = () => {};
|
|
@@ -524002,7 +524010,27 @@ function toKebabCase(s) {
|
|
|
524002
524010
|
function createCoStrictFetch(options) {
|
|
524003
524011
|
const agentType = toKebabCase(options?.agentType) || "build";
|
|
524004
524012
|
const costrictFetch = async (input4, init2) => {
|
|
524005
|
-
|
|
524013
|
+
let creds;
|
|
524014
|
+
try {
|
|
524015
|
+
({ credentials: creds } = await ensureValidCredentials());
|
|
524016
|
+
} catch (authError) {
|
|
524017
|
+
if (authError instanceof CoStrictAuthTerminalError) {
|
|
524018
|
+
logError2(authError);
|
|
524019
|
+
return new Response(JSON.stringify({
|
|
524020
|
+
error: {
|
|
524021
|
+
message: authError.message,
|
|
524022
|
+
type: "authentication_error"
|
|
524023
|
+
}
|
|
524024
|
+
}), {
|
|
524025
|
+
status: 401,
|
|
524026
|
+
headers: {
|
|
524027
|
+
"content-type": "application/json",
|
|
524028
|
+
"x-should-retry": "false"
|
|
524029
|
+
}
|
|
524030
|
+
});
|
|
524031
|
+
}
|
|
524032
|
+
throw authError;
|
|
524033
|
+
}
|
|
524006
524034
|
const headers = new Headers(init2?.headers);
|
|
524007
524035
|
headers.set("Authorization", `Bearer ${creds.access_token}`);
|
|
524008
524036
|
headers.set("User-Agent", `csc/${VERSION9}`);
|
|
@@ -524045,6 +524073,7 @@ function createCoStrictFetch(options) {
|
|
|
524045
524073
|
var VERSION9;
|
|
524046
524074
|
var init_fetch2 = __esm(() => {
|
|
524047
524075
|
init_tokenManager();
|
|
524076
|
+
init_log3();
|
|
524048
524077
|
init_uuid();
|
|
524049
524078
|
init_clientVersion();
|
|
524050
524079
|
VERSION9 = getClientVersion();
|
|
@@ -524111,7 +524140,7 @@ async function sideQuery(opts) {
|
|
|
524111
524140
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
524112
524141
|
}
|
|
524113
524142
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
524114
|
-
const fingerprint = computeFingerprint(messageText2, "4.2.
|
|
524143
|
+
const fingerprint = computeFingerprint(messageText2, "4.2.37");
|
|
524115
524144
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
524116
524145
|
const systemBlocks = [
|
|
524117
524146
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -525538,7 +525567,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
525538
525567
|
const client10 = new Client({
|
|
525539
525568
|
name: "claude-code",
|
|
525540
525569
|
title: "CoStrict",
|
|
525541
|
-
version: "4.2.
|
|
525570
|
+
version: "4.2.37",
|
|
525542
525571
|
description: "CoStrict agentic coding tool",
|
|
525543
525572
|
websiteUrl: PRODUCT_URL
|
|
525544
525573
|
}, {
|
|
@@ -525910,7 +525939,7 @@ var init_client17 = __esm(() => {
|
|
|
525910
525939
|
const client10 = new Client({
|
|
525911
525940
|
name: "claude-code",
|
|
525912
525941
|
title: "CoStrict",
|
|
525913
|
-
version: "4.2.
|
|
525942
|
+
version: "4.2.37",
|
|
525914
525943
|
description: "CoStrict agentic coding tool",
|
|
525915
525944
|
websiteUrl: PRODUCT_URL
|
|
525916
525945
|
}, {
|
|
@@ -624812,7 +624841,7 @@ function initSentry() {
|
|
|
624812
624841
|
}
|
|
624813
624842
|
init3({
|
|
624814
624843
|
dsn,
|
|
624815
|
-
release: typeof MACRO !== "undefined" ? "4.2.
|
|
624844
|
+
release: typeof MACRO !== "undefined" ? "4.2.37" : undefined,
|
|
624816
624845
|
environment: typeof BUILD_ENV !== "undefined" ? BUILD_ENV : "production",
|
|
624817
624846
|
maxBreadcrumbs: 20,
|
|
624818
624847
|
sampleRate: 1,
|
|
@@ -652461,7 +652490,7 @@ async function initializeBetaTracing(resource) {
|
|
|
652461
652490
|
});
|
|
652462
652491
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
652463
652492
|
setLoggerProvider(loggerProvider);
|
|
652464
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
652493
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.37");
|
|
652465
652494
|
setEventLogger(eventLogger);
|
|
652466
652495
|
process.on("beforeExit", async () => {
|
|
652467
652496
|
await loggerProvider?.forceFlush();
|
|
@@ -652501,7 +652530,7 @@ async function initializeTelemetry() {
|
|
|
652501
652530
|
const platform10 = getPlatform();
|
|
652502
652531
|
const baseAttributes = {
|
|
652503
652532
|
[import_semantic_conventions29.ATTR_SERVICE_NAME]: "claude-code",
|
|
652504
|
-
[import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.
|
|
652533
|
+
[import_semantic_conventions29.ATTR_SERVICE_VERSION]: "4.2.37"
|
|
652505
652534
|
};
|
|
652506
652535
|
if (platform10 === "wsl") {
|
|
652507
652536
|
const wslVersion = getWslVersion();
|
|
@@ -652546,7 +652575,7 @@ async function initializeTelemetry() {
|
|
|
652546
652575
|
} catch {}
|
|
652547
652576
|
};
|
|
652548
652577
|
registerCleanup(shutdownTelemetry2);
|
|
652549
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.
|
|
652578
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "4.2.37");
|
|
652550
652579
|
}
|
|
652551
652580
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
652552
652581
|
resource,
|
|
@@ -652566,7 +652595,7 @@ async function initializeTelemetry() {
|
|
|
652566
652595
|
});
|
|
652567
652596
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
652568
652597
|
setLoggerProvider(loggerProvider);
|
|
652569
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.
|
|
652598
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "4.2.37");
|
|
652570
652599
|
setEventLogger(eventLogger);
|
|
652571
652600
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
652572
652601
|
process.on("beforeExit", async () => {
|
|
@@ -652628,7 +652657,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
652628
652657
|
}
|
|
652629
652658
|
};
|
|
652630
652659
|
registerCleanup(shutdownTelemetry);
|
|
652631
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "4.2.
|
|
652660
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "4.2.37");
|
|
652632
652661
|
}
|
|
652633
652662
|
async function flushTelemetry() {
|
|
652634
652663
|
const meterProvider = getMeterProvider();
|
|
@@ -653598,7 +653627,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
653598
653627
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
653599
653628
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
653600
653629
|
pid: process.pid,
|
|
653601
|
-
currentVersion: "4.2.
|
|
653630
|
+
currentVersion: "4.2.37"
|
|
653602
653631
|
});
|
|
653603
653632
|
return { status: "in_progress" };
|
|
653604
653633
|
}
|
|
@@ -653607,7 +653636,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
653607
653636
|
if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
|
|
653608
653637
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
653609
653638
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
653610
|
-
currentVersion: "4.2.
|
|
653639
|
+
currentVersion: "4.2.37"
|
|
653611
653640
|
});
|
|
653612
653641
|
return {
|
|
653613
653642
|
status: "install_failed",
|
|
@@ -654153,7 +654182,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
654153
654182
|
}
|
|
654154
654183
|
async function getDoctorDiagnostic() {
|
|
654155
654184
|
const installationType = await getCurrentInstallationType();
|
|
654156
|
-
const version11 = typeof MACRO !== "undefined" ? "4.2.
|
|
654185
|
+
const version11 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
|
|
654157
654186
|
const installationPath = await getInstallationPath();
|
|
654158
654187
|
const invokedBinary = getInvokedBinary();
|
|
654159
654188
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -655095,8 +655124,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
655095
655124
|
const maxVersion = await getMaxVersion();
|
|
655096
655125
|
if (maxVersion && gt(version11, maxVersion)) {
|
|
655097
655126
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version11} to ${maxVersion}`);
|
|
655098
|
-
if (gte2("4.2.
|
|
655099
|
-
logForDebugging(`Native installer: current version ${"4.2.
|
|
655127
|
+
if (gte2("4.2.37", maxVersion)) {
|
|
655128
|
+
logForDebugging(`Native installer: current version ${"4.2.37"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
655100
655129
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
655101
655130
|
latency_ms: Date.now() - startTime2,
|
|
655102
655131
|
max_version: maxVersion,
|
|
@@ -655107,7 +655136,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
655107
655136
|
version11 = maxVersion;
|
|
655108
655137
|
}
|
|
655109
655138
|
}
|
|
655110
|
-
if (!forceReinstall && version11 === "4.2.
|
|
655139
|
+
if (!forceReinstall && version11 === "4.2.37" && await versionIsAvailable(version11) && await isPossibleClaudeBinary(executablePath)) {
|
|
655111
655140
|
logForDebugging(`Found ${version11} at ${executablePath}, skipping install`);
|
|
655112
655141
|
logEvent("tengu_native_update_complete", {
|
|
655113
655142
|
latency_ms: Date.now() - startTime2,
|
|
@@ -763912,7 +763941,7 @@ function getAnthropicEnvMetadata() {
|
|
|
763912
763941
|
function getBuildAgeMinutes() {
|
|
763913
763942
|
if (false)
|
|
763914
763943
|
;
|
|
763915
|
-
const buildTime = new Date("2026-09-
|
|
763944
|
+
const buildTime = new Date("2026-09-09T12:10:12.753Z").getTime();
|
|
763916
763945
|
if (isNaN(buildTime))
|
|
763917
763946
|
return;
|
|
763918
763947
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -778410,7 +778439,7 @@ function Feedback({
|
|
|
778410
778439
|
platform: env4.platform,
|
|
778411
778440
|
gitRepo: envInfo.isGit,
|
|
778412
778441
|
terminal: env4.terminal,
|
|
778413
|
-
version: "4.2.
|
|
778442
|
+
version: "4.2.37",
|
|
778414
778443
|
transcript: normalizeMessagesForAPI(messages),
|
|
778415
778444
|
errors: sanitizedErrors,
|
|
778416
778445
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -778593,7 +778622,7 @@ function Feedback({
|
|
|
778593
778622
|
", ",
|
|
778594
778623
|
env4.terminal,
|
|
778595
778624
|
", v",
|
|
778596
|
-
"4.2.
|
|
778625
|
+
"4.2.37"
|
|
778597
778626
|
]
|
|
778598
778627
|
})
|
|
778599
778628
|
]
|
|
@@ -778690,7 +778719,7 @@ ${sanitizedDescription}
|
|
|
778690
778719
|
` + `**Environment Info**
|
|
778691
778720
|
` + `- Platform: ${env4.platform}
|
|
778692
778721
|
` + `- Terminal: ${env4.terminal}
|
|
778693
|
-
` + `- Version: ${"4.2.
|
|
778722
|
+
` + `- Version: ${"4.2.37"}
|
|
778694
778723
|
` + `- Feedback ID: ${feedbackId}
|
|
778695
778724
|
` + `
|
|
778696
778725
|
**Errors**
|
|
@@ -780929,7 +780958,7 @@ function buildPrimarySection() {
|
|
|
780929
780958
|
children: t("settings.status.renameHint")
|
|
780930
780959
|
});
|
|
780931
780960
|
return [
|
|
780932
|
-
{ label: t("settings.status.version"), value: "4.2.
|
|
780961
|
+
{ label: t("settings.status.version"), value: "4.2.37" },
|
|
780933
780962
|
{ label: t("settings.status.sessionName"), value: nameValue },
|
|
780934
780963
|
{ label: t("settings.status.sessionId"), value: sessionId },
|
|
780935
780964
|
{ label: t("settings.status.cwd"), value: getCwd() },
|
|
@@ -783807,7 +783836,7 @@ function Config({
|
|
|
783807
783836
|
}
|
|
783808
783837
|
})
|
|
783809
783838
|
}) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime192.jsx(ChannelDowngradeDialog, {
|
|
783810
|
-
currentVersion: "4.2.
|
|
783839
|
+
currentVersion: "4.2.37",
|
|
783811
783840
|
onChoice: (choice) => {
|
|
783812
783841
|
setShowSubmenu(null);
|
|
783813
783842
|
setTabsHidden(false);
|
|
@@ -783819,7 +783848,7 @@ function Config({
|
|
|
783819
783848
|
autoUpdatesChannel: "stable"
|
|
783820
783849
|
};
|
|
783821
783850
|
if (choice === "stay") {
|
|
783822
|
-
newSettings.minimumVersion = "4.2.
|
|
783851
|
+
newSettings.minimumVersion = "4.2.37";
|
|
783823
783852
|
}
|
|
783824
783853
|
updateSettingsForSource("userSettings", newSettings);
|
|
783825
783854
|
setSettingsData((prev) => ({
|
|
@@ -789288,7 +789317,7 @@ function HelpV2({ onClose, commands: commands11 }) {
|
|
|
789288
789317
|
color: "professionalBlue",
|
|
789289
789318
|
children: [
|
|
789290
789319
|
/* @__PURE__ */ jsx_runtime219.jsx(Tabs, {
|
|
789291
|
-
title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.
|
|
789320
|
+
title: process.env.USER_TYPE === "sf" ? "/help" : `CoStrict v${"4.2.37"}`,
|
|
789292
789321
|
color: "professionalBlue",
|
|
789293
789322
|
defaultTab: "general",
|
|
789294
789323
|
children: tabs
|
|
@@ -812003,7 +812032,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
812003
812032
|
return [];
|
|
812004
812033
|
}
|
|
812005
812034
|
}
|
|
812006
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.
|
|
812035
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.37") {
|
|
812007
812036
|
if (process.env.USER_TYPE === "sf") {
|
|
812008
812037
|
const changelog = "";
|
|
812009
812038
|
if (changelog) {
|
|
@@ -812030,7 +812059,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "4.2.36")
|
|
|
812030
812059
|
releaseNotes
|
|
812031
812060
|
};
|
|
812032
812061
|
}
|
|
812033
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.
|
|
812062
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "4.2.37") {
|
|
812034
812063
|
if (process.env.USER_TYPE === "sf") {
|
|
812035
812064
|
const changelog = "";
|
|
812036
812065
|
if (changelog) {
|
|
@@ -814543,7 +814572,7 @@ function isNotLoggedIn() {
|
|
|
814543
814572
|
return true;
|
|
814544
814573
|
}
|
|
814545
814574
|
function getLogoDisplayData() {
|
|
814546
|
-
const version11 = process.env.DEMO_VERSION ?? "4.2.
|
|
814575
|
+
const version11 = process.env.DEMO_VERSION ?? "4.2.37";
|
|
814547
814576
|
const serverUrl = getDirectConnectServerUrl();
|
|
814548
814577
|
const displayPath2 = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
814549
814578
|
const cwd2 = serverUrl ? `${displayPath2} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath2;
|
|
@@ -815121,7 +815150,7 @@ var init_MatrixMessageLine = __esm(() => {
|
|
|
815121
815150
|
// src/components/matrix-tactical/MatrixWelcome.tsx
|
|
815122
815151
|
import { basename as basename48 } from "path";
|
|
815123
815152
|
function MatrixWelcome({
|
|
815124
|
-
version: version11 = "4.2.
|
|
815153
|
+
version: version11 = "4.2.37",
|
|
815125
815154
|
projectName,
|
|
815126
815155
|
cwd: cwd2,
|
|
815127
815156
|
modelDisplayName,
|
|
@@ -815756,13 +815785,13 @@ function LogoV2() {
|
|
|
815756
815785
|
const { hasReleaseNotes } = checkForReleaseNotesSync(config13.lastReleaseNotesSeen);
|
|
815757
815786
|
import_react167.useEffect(() => {
|
|
815758
815787
|
const currentConfig = getGlobalConfig();
|
|
815759
|
-
if (currentConfig.lastReleaseNotesSeen === "4.2.
|
|
815788
|
+
if (currentConfig.lastReleaseNotesSeen === "4.2.37") {
|
|
815760
815789
|
return;
|
|
815761
815790
|
}
|
|
815762
815791
|
saveGlobalConfig((current2) => {
|
|
815763
|
-
if (current2.lastReleaseNotesSeen === "4.2.
|
|
815792
|
+
if (current2.lastReleaseNotesSeen === "4.2.37")
|
|
815764
815793
|
return current2;
|
|
815765
|
-
return { ...current2, lastReleaseNotesSeen: "4.2.
|
|
815794
|
+
return { ...current2, lastReleaseNotesSeen: "4.2.37" };
|
|
815766
815795
|
});
|
|
815767
815796
|
if (showOnboarding) {
|
|
815768
815797
|
incrementProjectOnboardingSeenCount();
|
|
@@ -839327,7 +839356,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
839327
839356
|
smapsRollup,
|
|
839328
839357
|
platform: process.platform,
|
|
839329
839358
|
nodeVersion: process.version,
|
|
839330
|
-
ccVersion: "4.2.
|
|
839359
|
+
ccVersion: "4.2.37"
|
|
839331
839360
|
};
|
|
839332
839361
|
}
|
|
839333
839362
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -839443,7 +839472,7 @@ var init_mock_limits = __esm(() => {
|
|
|
839443
839472
|
var call56 = async () => {
|
|
839444
839473
|
return {
|
|
839445
839474
|
type: "text",
|
|
839446
|
-
value: `${"4.2.
|
|
839475
|
+
value: `${"4.2.37"} (built ${"2026-09-09T12:10:12.753Z"})`
|
|
839447
839476
|
};
|
|
839448
839477
|
}, version11, version_default;
|
|
839449
839478
|
var init_version2 = __esm(() => {
|
|
@@ -859323,7 +859352,7 @@ function generateHtmlReport(data, insights) {
|
|
|
859323
859352
|
</html>`;
|
|
859324
859353
|
}
|
|
859325
859354
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
859326
|
-
const version12 = typeof MACRO !== "undefined" ? "4.2.
|
|
859355
|
+
const version12 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
|
|
859327
859356
|
const remote_hosts_collected = remoteStats?.hosts.filter((h8) => h8.sessionCount > 0).map((h8) => h8.name);
|
|
859328
859357
|
const facets_summary = {
|
|
859329
859358
|
total: facets.size,
|
|
@@ -863815,7 +863844,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
863815
863844
|
init_settings2();
|
|
863816
863845
|
init_slowOperations();
|
|
863817
863846
|
init_uuid();
|
|
863818
|
-
VERSION11 = typeof MACRO !== "undefined" ? "4.2.
|
|
863847
|
+
VERSION11 = typeof MACRO !== "undefined" ? "4.2.37" : "unknown";
|
|
863819
863848
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
863820
863849
|
SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
863821
863850
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -865156,7 +865185,7 @@ var init_filesystem = __esm(() => {
|
|
|
865156
865185
|
});
|
|
865157
865186
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
865158
865187
|
const nonce = randomBytes24(16).toString("hex");
|
|
865159
|
-
return join219(getCostrictTempDir(), "bundled-skills", "4.2.
|
|
865188
|
+
return join219(getCostrictTempDir(), "bundled-skills", "4.2.37", nonce);
|
|
865160
865189
|
});
|
|
865161
865190
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
865162
865191
|
});
|
|
@@ -876654,7 +876683,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
876654
876683
|
slash_commands: inputs.commands.filter((c10) => c10.userInvocable !== false).map((c10) => c10.name),
|
|
876655
876684
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
876656
876685
|
betas: getSdkBetas(),
|
|
876657
|
-
claude_code_version: "4.2.
|
|
876686
|
+
claude_code_version: "4.2.37",
|
|
876658
876687
|
output_style: outputStyle2,
|
|
876659
876688
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
876660
876689
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -880198,7 +880227,7 @@ function appendToLog(path61, message2) {
|
|
|
880198
880227
|
cwd: getFsImplementation().cwd(),
|
|
880199
880228
|
userType: process.env.USER_TYPE,
|
|
880200
880229
|
sessionId: getSessionId(),
|
|
880201
|
-
version: "4.2.
|
|
880230
|
+
version: "4.2.37"
|
|
880202
880231
|
};
|
|
880203
880232
|
getLogWriter(path61).write(messageWithTimestamp);
|
|
880204
880233
|
}
|
|
@@ -901259,7 +901288,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
901259
901288
|
project_dir: getOriginalCwd(),
|
|
901260
901289
|
added_dirs: addedDirs
|
|
901261
901290
|
},
|
|
901262
|
-
version: "4.2.
|
|
901291
|
+
version: "4.2.37",
|
|
901263
901292
|
output_style: {
|
|
901264
901293
|
name: outputStyleName
|
|
901265
901294
|
},
|
|
@@ -915465,10 +915494,66 @@ var init_useAfterFirstRender = __esm(() => {
|
|
|
915465
915494
|
import_react307 = __toESM(require_react(), 1);
|
|
915466
915495
|
});
|
|
915467
915496
|
|
|
915497
|
+
// src/hooks/deferredHookMessagesGate.ts
|
|
915498
|
+
class DeferredHookGate {
|
|
915499
|
+
pending;
|
|
915500
|
+
resolved = false;
|
|
915501
|
+
constructor(pending3) {
|
|
915502
|
+
this.pending = pending3 ?? null;
|
|
915503
|
+
if (!pending3)
|
|
915504
|
+
this.resolved = true;
|
|
915505
|
+
}
|
|
915506
|
+
async wait(timeoutMs = HOOK_WAIT_TIMEOUT_MS) {
|
|
915507
|
+
const promise4 = this.pending;
|
|
915508
|
+
if (this.resolved || !promise4)
|
|
915509
|
+
return null;
|
|
915510
|
+
let timer3;
|
|
915511
|
+
const timeout3 = new Promise((resolve72) => {
|
|
915512
|
+
timer3 = setTimeout(() => resolve72("timeout"), timeoutMs);
|
|
915513
|
+
});
|
|
915514
|
+
try {
|
|
915515
|
+
const outcome = await Promise.race([
|
|
915516
|
+
promise4.then(() => "done"),
|
|
915517
|
+
timeout3
|
|
915518
|
+
]);
|
|
915519
|
+
if (outcome === "timeout") {
|
|
915520
|
+
if (this.resolved)
|
|
915521
|
+
return null;
|
|
915522
|
+
this.resolved = true;
|
|
915523
|
+
this.pending = null;
|
|
915524
|
+
logForDebugging(`SessionStart hooks did not complete within ${timeoutMs}ms; proceeding without hook context`, { level: "warn" });
|
|
915525
|
+
return null;
|
|
915526
|
+
}
|
|
915527
|
+
if (this.resolved)
|
|
915528
|
+
return null;
|
|
915529
|
+
this.resolved = true;
|
|
915530
|
+
this.pending = null;
|
|
915531
|
+
return await promise4;
|
|
915532
|
+
} finally {
|
|
915533
|
+
if (timer3)
|
|
915534
|
+
clearTimeout(timer3);
|
|
915535
|
+
}
|
|
915536
|
+
}
|
|
915537
|
+
takeBackgroundMessages(msgs) {
|
|
915538
|
+
if (this.resolved)
|
|
915539
|
+
return null;
|
|
915540
|
+
this.resolved = true;
|
|
915541
|
+
this.pending = null;
|
|
915542
|
+
return msgs;
|
|
915543
|
+
}
|
|
915544
|
+
}
|
|
915545
|
+
var HOOK_WAIT_TIMEOUT_MS = 3000;
|
|
915546
|
+
var init_deferredHookMessagesGate = __esm(() => {
|
|
915547
|
+
init_debug();
|
|
915548
|
+
});
|
|
915549
|
+
|
|
915468
915550
|
// src/hooks/useDeferredHookMessages.ts
|
|
915469
915551
|
function useDeferredHookMessages(pendingHookMessages, setMessages) {
|
|
915470
915552
|
const pendingRef = import_react308.useRef(pendingHookMessages ?? null);
|
|
915471
|
-
const
|
|
915553
|
+
const gateRef = import_react308.useRef(null);
|
|
915554
|
+
if (gateRef.current === null) {
|
|
915555
|
+
gateRef.current = new DeferredHookGate(pendingRef.current ?? undefined);
|
|
915556
|
+
}
|
|
915472
915557
|
import_react308.useEffect(() => {
|
|
915473
915558
|
const promise4 = pendingRef.current;
|
|
915474
915559
|
if (!promise4)
|
|
@@ -915477,10 +915562,9 @@ function useDeferredHookMessages(pendingHookMessages, setMessages) {
|
|
|
915477
915562
|
promise4.then((msgs) => {
|
|
915478
915563
|
if (cancelled)
|
|
915479
915564
|
return;
|
|
915480
|
-
|
|
915481
|
-
|
|
915482
|
-
|
|
915483
|
-
setMessages((prev) => [...msgs, ...prev]);
|
|
915565
|
+
const inject = gateRef.current.takeBackgroundMessages(msgs);
|
|
915566
|
+
if (inject && inject.length > 0) {
|
|
915567
|
+
setMessages((prev) => [...inject, ...prev]);
|
|
915484
915568
|
}
|
|
915485
915569
|
});
|
|
915486
915570
|
return () => {
|
|
@@ -915488,20 +915572,15 @@ function useDeferredHookMessages(pendingHookMessages, setMessages) {
|
|
|
915488
915572
|
};
|
|
915489
915573
|
}, [setMessages]);
|
|
915490
915574
|
return import_react308.useCallback(async () => {
|
|
915491
|
-
|
|
915492
|
-
|
|
915493
|
-
|
|
915494
|
-
if (resolvedRef.current)
|
|
915495
|
-
return;
|
|
915496
|
-
resolvedRef.current = true;
|
|
915497
|
-
pendingRef.current = null;
|
|
915498
|
-
if (msgs.length > 0) {
|
|
915499
|
-
setMessages((prev) => [...msgs, ...prev]);
|
|
915575
|
+
const inject = await gateRef.current.wait();
|
|
915576
|
+
if (inject && inject.length > 0) {
|
|
915577
|
+
setMessages((prev) => [...inject, ...prev]);
|
|
915500
915578
|
}
|
|
915501
915579
|
}, [setMessages]);
|
|
915502
915580
|
}
|
|
915503
915581
|
var import_react308;
|
|
915504
915582
|
var init_useDeferredHookMessages = __esm(() => {
|
|
915583
|
+
init_deferredHookMessagesGate();
|
|
915505
915584
|
import_react308 = __toESM(require_react(), 1);
|
|
915506
915585
|
});
|
|
915507
915586
|
|
|
@@ -919875,7 +919954,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
919875
919954
|
} catch {}
|
|
919876
919955
|
const data = {
|
|
919877
919956
|
trigger,
|
|
919878
|
-
version: "4.2.
|
|
919957
|
+
version: "4.2.37",
|
|
919879
919958
|
platform: process.platform,
|
|
919880
919959
|
transcript,
|
|
919881
919960
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -921130,7 +921209,7 @@ function getReleaseType(current2, latest) {
|
|
|
921130
921209
|
return "patch";
|
|
921131
921210
|
}
|
|
921132
921211
|
async function checkNewAutoUpdate(callbacks) {
|
|
921133
|
-
const currentVersion = "4.2.
|
|
921212
|
+
const currentVersion = "4.2.37";
|
|
921134
921213
|
logForDebugging(`[newAutoUpdater] checking, current: ${currentVersion}`);
|
|
921135
921214
|
if (isNewAutoUpdaterDisabled()) {
|
|
921136
921215
|
return { action: "skip", currentVersion, latestVersion: null };
|
|
@@ -933387,7 +933466,7 @@ function WelcomeV2() {
|
|
|
933387
933466
|
dimColor: true,
|
|
933388
933467
|
children: [
|
|
933389
933468
|
"v",
|
|
933390
|
-
"4.2.
|
|
933469
|
+
"4.2.37",
|
|
933391
933470
|
" "
|
|
933392
933471
|
]
|
|
933393
933472
|
})
|
|
@@ -933453,7 +933532,7 @@ function WelcomeV2() {
|
|
|
933453
933532
|
dimColor: true,
|
|
933454
933533
|
children: [
|
|
933455
933534
|
"v",
|
|
933456
|
-
"4.2.
|
|
933535
|
+
"4.2.37",
|
|
933457
933536
|
" "
|
|
933458
933537
|
]
|
|
933459
933538
|
})
|
|
@@ -933555,7 +933634,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
|
|
|
933555
933634
|
dimColor: true,
|
|
933556
933635
|
children: [
|
|
933557
933636
|
"v",
|
|
933558
|
-
"4.2.
|
|
933637
|
+
"4.2.37",
|
|
933559
933638
|
" "
|
|
933560
933639
|
]
|
|
933561
933640
|
})
|
|
@@ -933621,7 +933700,7 @@ function AppleTerminalWelcomeV2({ theme: theme2, welcomeMessage }) {
|
|
|
933621
933700
|
dimColor: true,
|
|
933622
933701
|
children: [
|
|
933623
933702
|
"v",
|
|
933624
|
-
"4.2.
|
|
933703
|
+
"4.2.37",
|
|
933625
933704
|
" "
|
|
933626
933705
|
]
|
|
933627
933706
|
})
|
|
@@ -934561,7 +934640,7 @@ function completeOnboarding() {
|
|
|
934561
934640
|
saveGlobalConfig((current2) => ({
|
|
934562
934641
|
...current2,
|
|
934563
934642
|
hasCompletedOnboarding: true,
|
|
934564
|
-
lastOnboardingVersion: "4.2.
|
|
934643
|
+
lastOnboardingVersion: "4.2.37"
|
|
934565
934644
|
}));
|
|
934566
934645
|
}
|
|
934567
934646
|
function showDialog(root9, renderer) {
|
|
@@ -951028,7 +951107,7 @@ async function startMCPServer(cwd3, debug5, verbose) {
|
|
|
951028
951107
|
setCwd(cwd3);
|
|
951029
951108
|
const server2 = new Server({
|
|
951030
951109
|
name: "claude/tengu",
|
|
951031
|
-
version: "4.2.
|
|
951110
|
+
version: "4.2.37"
|
|
951032
951111
|
}, {
|
|
951033
951112
|
capabilities: {
|
|
951034
951113
|
tools: {}
|
|
@@ -953313,7 +953392,7 @@ function createHealthRoutes(sessionManager) {
|
|
|
953313
953392
|
const uptime2 = process.uptime() * 1000;
|
|
953314
953393
|
return c10.json({
|
|
953315
953394
|
status: "ok",
|
|
953316
|
-
version: "4.2.
|
|
953395
|
+
version: "4.2.37",
|
|
953317
953396
|
uptime_ms: Math.round(uptime2),
|
|
953318
953397
|
active_sessions: sessionManager.getActiveCount()
|
|
953319
953398
|
});
|
|
@@ -953585,7 +953664,7 @@ function getMacroDefines() {
|
|
|
953585
953664
|
commit = execSync3("git rev-parse --short HEAD", { encoding: "utf-8", cwd: __dirname }).trim();
|
|
953586
953665
|
} catch {}
|
|
953587
953666
|
return {
|
|
953588
|
-
"MACRO.VERSION": JSON.stringify("4.2.
|
|
953667
|
+
"MACRO.VERSION": JSON.stringify("4.2.37"),
|
|
953589
953668
|
"MACRO.BUILD_TIME": JSON.stringify(new Date().toISOString()),
|
|
953590
953669
|
"MACRO.COMMIT": JSON.stringify(commit),
|
|
953591
953670
|
"MACRO.FEEDBACK_CHANNEL": JSON.stringify(""),
|
|
@@ -960723,7 +960802,7 @@ __export(exports_update, {
|
|
|
960723
960802
|
});
|
|
960724
960803
|
async function update() {
|
|
960725
960804
|
logEvent("tengu_update_check", {});
|
|
960726
|
-
writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.
|
|
960805
|
+
writeToStdout(`${t("cli.update.currentVersion", "Current version")}: ${"4.2.37"}
|
|
960727
960806
|
`);
|
|
960728
960807
|
const channel5 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
960729
960808
|
writeToStdout(`${t("cli.update.checkingUpdates", { channel: channel5 }, "Checking for updates to {channel} version...")}
|
|
@@ -960798,8 +960877,8 @@ async function update() {
|
|
|
960798
960877
|
writeToStdout(`${t("cli.update.managedByHomebrew", "CoStrict is managed by Homebrew.")}
|
|
960799
960878
|
`);
|
|
960800
960879
|
const latest = await getLatestVersion(channel5);
|
|
960801
|
-
if (latest && !gte2("4.2.
|
|
960802
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
960880
|
+
if (latest && !gte2("4.2.37", latest)) {
|
|
960881
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
|
|
960803
960882
|
`);
|
|
960804
960883
|
writeToStdout(`
|
|
960805
960884
|
`);
|
|
@@ -960815,8 +960894,8 @@ async function update() {
|
|
|
960815
960894
|
writeToStdout(`${t("cli.update.managedByWinget", "CoStrict is managed by winget.")}
|
|
960816
960895
|
`);
|
|
960817
960896
|
const latest = await getLatestVersion(channel5);
|
|
960818
|
-
if (latest && !gte2("4.2.
|
|
960819
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
960897
|
+
if (latest && !gte2("4.2.37", latest)) {
|
|
960898
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
|
|
960820
960899
|
`);
|
|
960821
960900
|
writeToStdout(`
|
|
960822
960901
|
`);
|
|
@@ -960832,8 +960911,8 @@ async function update() {
|
|
|
960832
960911
|
writeToStdout(`${t("cli.update.managedByApk", "CoStrict is managed by apk.")}
|
|
960833
960912
|
`);
|
|
960834
960913
|
const latest = await getLatestVersion(channel5);
|
|
960835
|
-
if (latest && !gte2("4.2.
|
|
960836
|
-
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.
|
|
960914
|
+
if (latest && !gte2("4.2.37", latest)) {
|
|
960915
|
+
writeToStdout(`${t("cli.update.updateAvailable", { current: "4.2.37", latest }, "Update available: {current} \u2192 {latest}")}
|
|
960837
960916
|
`);
|
|
960838
960917
|
writeToStdout(`
|
|
960839
960918
|
`);
|
|
@@ -960898,11 +960977,11 @@ async function update() {
|
|
|
960898
960977
|
`);
|
|
960899
960978
|
await gracefulShutdown(1);
|
|
960900
960979
|
}
|
|
960901
|
-
if (result2.latestVersion === "4.2.
|
|
960902
|
-
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.
|
|
960980
|
+
if (result2.latestVersion === "4.2.37") {
|
|
960981
|
+
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.37" }, "CoStrict is up to date ({version})")) + `
|
|
960903
960982
|
`);
|
|
960904
960983
|
} else {
|
|
960905
|
-
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.
|
|
960984
|
+
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.37", to: String(result2.latestVersion) }, "Successfully updated from {from} to version {to}")) + `
|
|
960906
960985
|
`);
|
|
960907
960986
|
regenerateCompletionCache();
|
|
960908
960987
|
}
|
|
@@ -960962,12 +961041,12 @@ async function update() {
|
|
|
960962
961041
|
`);
|
|
960963
961042
|
await gracefulShutdown(1);
|
|
960964
961043
|
}
|
|
960965
|
-
if (latestVersion === "4.2.
|
|
960966
|
-
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.
|
|
961044
|
+
if (latestVersion === "4.2.37") {
|
|
961045
|
+
writeToStdout(source_default.green(t("cli.update.upToDateVersion", { version: "4.2.37" }, "CoStrict is up to date ({version})")) + `
|
|
960967
961046
|
`);
|
|
960968
961047
|
await gracefulShutdown(0);
|
|
960969
961048
|
}
|
|
960970
|
-
writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.
|
|
961049
|
+
writeToStdout(`${t("cli.update.newVersionAvailable", { latest: String(latestVersion), current: "4.2.37" }, "New version available: {latest} (current: {current})")}
|
|
960971
961050
|
`);
|
|
960972
961051
|
writeToStdout(`${t("cli.update.installing", "Installing update...")}
|
|
960973
961052
|
`);
|
|
@@ -961012,7 +961091,7 @@ async function update() {
|
|
|
961012
961091
|
logForDebugging(`update: Installation status: ${result.status}`);
|
|
961013
961092
|
switch (result.status) {
|
|
961014
961093
|
case "success":
|
|
961015
|
-
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.
|
|
961094
|
+
writeToStdout(source_default.green(t("cli.update.successfullyUpdated", { from: "4.2.37", to: String(latestVersion) }, "Successfully updated from {from} to version {to}")) + `
|
|
961016
961095
|
`);
|
|
961017
961096
|
regenerateCompletionCache();
|
|
961018
961097
|
break;
|
|
@@ -963231,7 +963310,7 @@ ${assistantAddendum}` : assistantAddendum;
|
|
|
963231
963310
|
}
|
|
963232
963311
|
}
|
|
963233
963312
|
logForDiagnosticsNoPII("info", "started", {
|
|
963234
|
-
version: "4.2.
|
|
963313
|
+
version: "4.2.37",
|
|
963235
963314
|
is_native_binary: isInBundledMode()
|
|
963236
963315
|
});
|
|
963237
963316
|
registerCleanup(async () => {
|
|
@@ -963722,7 +963801,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
|
|
|
963722
963801
|
sshSession = await createSSHSession2({
|
|
963723
963802
|
host: _pendingSSH.host,
|
|
963724
963803
|
cwd: _pendingSSH.cwd,
|
|
963725
|
-
localVersion: "4.2.
|
|
963804
|
+
localVersion: "4.2.37",
|
|
963726
963805
|
permissionMode: _pendingSSH.permissionMode,
|
|
963727
963806
|
dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
|
|
963728
963807
|
extraCliArgs: _pendingSSH.extraCliArgs,
|
|
@@ -964191,7 +964270,7 @@ Usage: csc --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
964191
964270
|
pendingHookMessages
|
|
964192
964271
|
}, renderAndRun);
|
|
964193
964272
|
}
|
|
964194
|
-
}).version("4.2.
|
|
964273
|
+
}).version("4.2.37 (CoStrict)", "-v, --version", cliDesc("cli.option.version", "Output the version number"));
|
|
964195
964274
|
program2.addOption(new Option("-w, --worktree [name]", cliDesc("cli.option.worktree", "Create a new git worktree for this session (optionally specify a name)")).hideHelp());
|
|
964196
964275
|
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());
|
|
964197
964276
|
if (canUserConfigureAdvisor()) {
|
|
@@ -964960,10 +965039,10 @@ function getCouncilArgs(args) {
|
|
|
964960
965039
|
async function main2() {
|
|
964961
965040
|
const args = process.argv.slice(2);
|
|
964962
965041
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
964963
|
-
const d7 = new Date("2026-09-
|
|
965042
|
+
const d7 = new Date("2026-09-09T12:10:12.753Z");
|
|
964964
965043
|
const p2 = (n3) => String(n3).padStart(2, "0");
|
|
964965
965044
|
const buildTime = `${d7.getFullYear()}/${p2(d7.getMonth() + 1)}/${p2(d7.getDate())} ${p2(d7.getHours())}:${p2(d7.getMinutes())}:${p2(d7.getSeconds())}`;
|
|
964966
|
-
console.log(`${"4.2.
|
|
965045
|
+
console.log(`${"4.2.37"} (commit: ${"f32f6afe3"}, built: ${buildTime})`);
|
|
964967
965046
|
return;
|
|
964968
965047
|
}
|
|
964969
965048
|
if (true) {
|
|
@@ -965144,5 +965223,5 @@ async function main2() {
|
|
|
965144
965223
|
}
|
|
965145
965224
|
main2();
|
|
965146
965225
|
|
|
965147
|
-
//# debugId=
|
|
965226
|
+
//# debugId=A9AB373C0DE5E63864756E2164756E21
|
|
965148
965227
|
|