localclawd 2.0.8 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +121 -84
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -87608,7 +87608,7 @@ var init_isEqual = __esm(() => {
|
|
|
87608
87608
|
|
|
87609
87609
|
// src/utils/userAgent.ts
|
|
87610
87610
|
function getClaudeCodeUserAgent() {
|
|
87611
|
-
return `claude-code/${"2.0.
|
|
87611
|
+
return `claude-code/${"2.0.9"}`;
|
|
87612
87612
|
}
|
|
87613
87613
|
|
|
87614
87614
|
// src/utils/workloadContext.ts
|
|
@@ -87630,7 +87630,7 @@ function getUserAgent() {
|
|
|
87630
87630
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
87631
87631
|
const workload = getWorkload();
|
|
87632
87632
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
87633
|
-
return `claude-cli/${"2.0.
|
|
87633
|
+
return `claude-cli/${"2.0.9"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
87634
87634
|
}
|
|
87635
87635
|
function getMCPUserAgent() {
|
|
87636
87636
|
const parts = [];
|
|
@@ -87644,7 +87644,7 @@ function getMCPUserAgent() {
|
|
|
87644
87644
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
87645
87645
|
}
|
|
87646
87646
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
87647
|
-
return `claude-code/${"2.0.
|
|
87647
|
+
return `claude-code/${"2.0.9"}${suffix}`;
|
|
87648
87648
|
}
|
|
87649
87649
|
function getWebFetchUserAgent() {
|
|
87650
87650
|
return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -130791,7 +130791,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
130791
130791
|
if (!isAttributionHeaderEnabled()) {
|
|
130792
130792
|
return "";
|
|
130793
130793
|
}
|
|
130794
|
-
const version = `${"2.0.
|
|
130794
|
+
const version = `${"2.0.9"}.${fingerprint}`;
|
|
130795
130795
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
130796
130796
|
const cch = "";
|
|
130797
130797
|
const workload = getWorkload();
|
|
@@ -146980,7 +146980,7 @@ var init_metadata = __esm(() => {
|
|
|
146980
146980
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
146981
146981
|
WHITESPACE_REGEX = /\s+/;
|
|
146982
146982
|
getVersionBase = memoize_default(() => {
|
|
146983
|
-
const match = "2.0.
|
|
146983
|
+
const match = "2.0.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
146984
146984
|
return match ? match[0] : undefined;
|
|
146985
146985
|
});
|
|
146986
146986
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -147020,9 +147020,9 @@ var init_metadata = __esm(() => {
|
|
|
147020
147020
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
147021
147021
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
147022
147022
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
147023
|
-
version: "2.0.
|
|
147023
|
+
version: "2.0.9",
|
|
147024
147024
|
versionBase: getVersionBase(),
|
|
147025
|
-
buildTime: "2026-05-
|
|
147025
|
+
buildTime: "2026-05-09T16:13:29.495Z",
|
|
147026
147026
|
deploymentEnvironment: env3.detectDeploymentEnvironment(),
|
|
147027
147027
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
147028
147028
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -179598,7 +179598,7 @@ function getTelemetryAttributes() {
|
|
|
179598
179598
|
attributes["session.id"] = sessionId;
|
|
179599
179599
|
}
|
|
179600
179600
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
179601
|
-
attributes["app.version"] = "2.0.
|
|
179601
|
+
attributes["app.version"] = "2.0.9";
|
|
179602
179602
|
}
|
|
179603
179603
|
const oauthAccount = getOauthAccountInfo();
|
|
179604
179604
|
if (oauthAccount) {
|
|
@@ -180498,11 +180498,7 @@ var init_sessionMemoryCompact = __esm(() => {
|
|
|
180498
180498
|
// src/services/compact/autoCompact.ts
|
|
180499
180499
|
function getEffectiveContextWindowSize(model) {
|
|
180500
180500
|
const reservedTokensForSummary = Math.min(getMaxOutputTokensForModel(model), MAX_OUTPUT_TOKENS_FOR_SUMMARY);
|
|
180501
|
-
|
|
180502
|
-
const autoCompactWindow = getConfiguredCompactContextWindow();
|
|
180503
|
-
if (autoCompactWindow) {
|
|
180504
|
-
contextWindow = Math.min(contextWindow, autoCompactWindow);
|
|
180505
|
-
}
|
|
180501
|
+
const contextWindow = getContextWindowForModel(model, getSdkBetas());
|
|
180506
180502
|
const MIN_EFFECTIVE_TOKENS = 4000;
|
|
180507
180503
|
return Math.max(contextWindow - reservedTokensForSummary, Math.max(Math.floor(contextWindow * 0.25), MIN_EFFECTIVE_TOKENS));
|
|
180508
180504
|
}
|
|
@@ -242402,7 +242398,7 @@ function getInstallationEnv() {
|
|
|
242402
242398
|
return;
|
|
242403
242399
|
}
|
|
242404
242400
|
function getClaudeCodeVersion() {
|
|
242405
|
-
return "2.0.
|
|
242401
|
+
return "2.0.9";
|
|
242406
242402
|
}
|
|
242407
242403
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
242408
242404
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -247676,7 +247672,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
247676
247672
|
const client4 = new Client({
|
|
247677
247673
|
name: "localclawd",
|
|
247678
247674
|
title: "localclawd",
|
|
247679
|
-
version: "2.0.
|
|
247675
|
+
version: "2.0.9",
|
|
247680
247676
|
description: "local-first AI coding tool",
|
|
247681
247677
|
websiteUrl: PRODUCT_URL
|
|
247682
247678
|
}, {
|
|
@@ -248018,7 +248014,7 @@ var init_client9 = __esm(() => {
|
|
|
248018
248014
|
const client4 = new Client({
|
|
248019
248015
|
name: "localclawd",
|
|
248020
248016
|
title: "localclawd",
|
|
248021
|
-
version: "2.0.
|
|
248017
|
+
version: "2.0.9",
|
|
248022
248018
|
description: "local-first AI coding tool",
|
|
248023
248019
|
websiteUrl: PRODUCT_URL
|
|
248024
248020
|
}, {
|
|
@@ -262420,7 +262416,7 @@ function computeFingerprint(messageText, version) {
|
|
|
262420
262416
|
}
|
|
262421
262417
|
function computeFingerprintFromMessages(messages) {
|
|
262422
262418
|
const firstMessageText = extractFirstMessageText(messages);
|
|
262423
|
-
return computeFingerprint(firstMessageText, "2.0.
|
|
262419
|
+
return computeFingerprint(firstMessageText, "2.0.9");
|
|
262424
262420
|
}
|
|
262425
262421
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
262426
262422
|
var init_fingerprint = () => {};
|
|
@@ -262462,7 +262458,7 @@ async function sideQuery(opts) {
|
|
|
262462
262458
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
262463
262459
|
}
|
|
262464
262460
|
const messageText = extractFirstUserMessageText(messages);
|
|
262465
|
-
const fingerprint = computeFingerprint(messageText, "2.0.
|
|
262461
|
+
const fingerprint = computeFingerprint(messageText, "2.0.9");
|
|
262466
262462
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
262467
262463
|
const systemBlocks = [
|
|
262468
262464
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -283210,7 +283206,7 @@ var init_user = __esm(() => {
|
|
|
283210
283206
|
deviceId,
|
|
283211
283207
|
sessionId: getSessionId(),
|
|
283212
283208
|
email: getEmail(),
|
|
283213
|
-
appVersion: "2.0.
|
|
283209
|
+
appVersion: "2.0.9",
|
|
283214
283210
|
platform: getHostPlatformForAnalytics(),
|
|
283215
283211
|
organizationUuid,
|
|
283216
283212
|
accountUuid,
|
|
@@ -284275,7 +284271,7 @@ async function initializeBetaTracing(resource) {
|
|
|
284275
284271
|
});
|
|
284276
284272
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
284277
284273
|
setLoggerProvider(loggerProvider);
|
|
284278
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "2.0.
|
|
284274
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "2.0.9");
|
|
284279
284275
|
setEventLogger(eventLogger);
|
|
284280
284276
|
process.on("beforeExit", async () => {
|
|
284281
284277
|
await loggerProvider?.forceFlush();
|
|
@@ -284315,7 +284311,7 @@ async function initializeTelemetry() {
|
|
|
284315
284311
|
const platform2 = getPlatform();
|
|
284316
284312
|
const baseAttributes = {
|
|
284317
284313
|
[ATTR_SERVICE_NAME4]: "claude-code",
|
|
284318
|
-
[ATTR_SERVICE_VERSION4]: "2.0.
|
|
284314
|
+
[ATTR_SERVICE_VERSION4]: "2.0.9"
|
|
284319
284315
|
};
|
|
284320
284316
|
if (platform2 === "wsl") {
|
|
284321
284317
|
const wslVersion = getWslVersion();
|
|
@@ -284360,7 +284356,7 @@ async function initializeTelemetry() {
|
|
|
284360
284356
|
} catch {}
|
|
284361
284357
|
};
|
|
284362
284358
|
registerCleanup(shutdownTelemetry2);
|
|
284363
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "2.0.
|
|
284359
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "2.0.9");
|
|
284364
284360
|
}
|
|
284365
284361
|
const meterProvider = new MeterProvider4({
|
|
284366
284362
|
resource,
|
|
@@ -284380,7 +284376,7 @@ async function initializeTelemetry() {
|
|
|
284380
284376
|
});
|
|
284381
284377
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
284382
284378
|
setLoggerProvider(loggerProvider);
|
|
284383
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "2.0.
|
|
284379
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "2.0.9");
|
|
284384
284380
|
setEventLogger(eventLogger);
|
|
284385
284381
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
284386
284382
|
process.on("beforeExit", async () => {
|
|
@@ -284442,7 +284438,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
284442
284438
|
}
|
|
284443
284439
|
};
|
|
284444
284440
|
registerCleanup(shutdownTelemetry);
|
|
284445
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "2.0.
|
|
284441
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "2.0.9");
|
|
284446
284442
|
}
|
|
284447
284443
|
async function flushTelemetry() {
|
|
284448
284444
|
const meterProvider = getMeterProvider();
|
|
@@ -285632,7 +285628,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
285632
285628
|
}
|
|
285633
285629
|
async function getDoctorDiagnostic() {
|
|
285634
285630
|
const installationType = await getCurrentInstallationType();
|
|
285635
|
-
const version = typeof MACRO !== "undefined" ? "2.0.
|
|
285631
|
+
const version = typeof MACRO !== "undefined" ? "2.0.9" : "unknown";
|
|
285636
285632
|
const installationPath = await getInstallationPath();
|
|
285637
285633
|
const invokedBinary = getInvokedBinary();
|
|
285638
285634
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -286573,8 +286569,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
286573
286569
|
const maxVersion = await getMaxVersion();
|
|
286574
286570
|
if (maxVersion && gt(version, maxVersion)) {
|
|
286575
286571
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
|
|
286576
|
-
if (gte("2.0.
|
|
286577
|
-
logForDebugging(`Native installer: current version ${"2.0.
|
|
286572
|
+
if (gte("2.0.9", maxVersion)) {
|
|
286573
|
+
logForDebugging(`Native installer: current version ${"2.0.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
286578
286574
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
286579
286575
|
latency_ms: Date.now() - startTime,
|
|
286580
286576
|
max_version: maxVersion,
|
|
@@ -286585,7 +286581,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
286585
286581
|
version = maxVersion;
|
|
286586
286582
|
}
|
|
286587
286583
|
}
|
|
286588
|
-
if (!forceReinstall && version === "2.0.
|
|
286584
|
+
if (!forceReinstall && version === "2.0.9" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
|
|
286589
286585
|
logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
|
|
286590
286586
|
logEvent("tengu_native_update_complete", {
|
|
286591
286587
|
latency_ms: Date.now() - startTime,
|
|
@@ -331240,6 +331236,9 @@ async function* queryLoop(params, consumedCommandUuids) {
|
|
|
331240
331236
|
if (reactiveCompact?.isWithheldPromptTooLong(message)) {
|
|
331241
331237
|
withheld = true;
|
|
331242
331238
|
}
|
|
331239
|
+
if (!reactiveCompact && message.type === "assistant" && message.isApiErrorMessage && isPromptTooLongMessage(message)) {
|
|
331240
|
+
withheld = true;
|
|
331241
|
+
}
|
|
331243
331242
|
if (mediaRecoveryEnabled && reactiveCompact?.isWithheldMediaSizeError(message)) {
|
|
331244
331243
|
withheld = true;
|
|
331245
331244
|
}
|
|
@@ -331401,6 +331400,36 @@ async function* queryLoop(params, consumedCommandUuids) {
|
|
|
331401
331400
|
executeStopFailureHooks(lastMessage, toolUseContext);
|
|
331402
331401
|
return { reason: isWithheldMedia ? "image_error" : "prompt_too_long" };
|
|
331403
331402
|
} else if (false) {}
|
|
331403
|
+
if (isWithheld413 && !reactiveCompact && !hasAttemptedReactiveCompact) {
|
|
331404
|
+
try {
|
|
331405
|
+
const compactionResult2 = await compactConversation(messagesForQuery, toolUseContext, {
|
|
331406
|
+
systemPrompt,
|
|
331407
|
+
userContext,
|
|
331408
|
+
systemContext,
|
|
331409
|
+
toolUseContext,
|
|
331410
|
+
forkContextMessages: messagesForQuery
|
|
331411
|
+
}, true, undefined, true);
|
|
331412
|
+
const postCompactMessages = buildPostCompactMessages(compactionResult2);
|
|
331413
|
+
for (const msg of postCompactMessages) {
|
|
331414
|
+
yield msg;
|
|
331415
|
+
}
|
|
331416
|
+
state = {
|
|
331417
|
+
messages: postCompactMessages,
|
|
331418
|
+
toolUseContext,
|
|
331419
|
+
autoCompactTracking: undefined,
|
|
331420
|
+
maxOutputTokensRecoveryCount,
|
|
331421
|
+
hasAttemptedReactiveCompact: true,
|
|
331422
|
+
maxOutputTokensOverride: undefined,
|
|
331423
|
+
pendingToolUseSummary: undefined,
|
|
331424
|
+
stopHookActive: undefined,
|
|
331425
|
+
turnCount,
|
|
331426
|
+
transition: { reason: "reactive_compact_retry" }
|
|
331427
|
+
};
|
|
331428
|
+
continue;
|
|
331429
|
+
} catch (compactErr) {
|
|
331430
|
+
logError(compactErr);
|
|
331431
|
+
}
|
|
331432
|
+
}
|
|
331404
331433
|
if (isWithheldMaxOutputTokens(lastMessage)) {
|
|
331405
331434
|
const capEnabled = getFeatureValue_CACHED_MAY_BE_STALE("tengu_otk_slot_v1", false);
|
|
331406
331435
|
if (capEnabled && maxOutputTokensOverride === undefined && !process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS) {
|
|
@@ -331828,7 +331857,7 @@ function getAnthropicEnvMetadata() {
|
|
|
331828
331857
|
function getBuildAgeMinutes() {
|
|
331829
331858
|
if (false)
|
|
331830
331859
|
;
|
|
331831
|
-
const buildTime = new Date("2026-05-
|
|
331860
|
+
const buildTime = new Date("2026-05-09T16:13:29.495Z").getTime();
|
|
331832
331861
|
if (isNaN(buildTime))
|
|
331833
331862
|
return;
|
|
331834
331863
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -360660,7 +360689,7 @@ function Feedback({
|
|
|
360660
360689
|
platform: env3.platform,
|
|
360661
360690
|
gitRepo: envInfo.isGit,
|
|
360662
360691
|
terminal: env3.terminal,
|
|
360663
|
-
version: "2.0.
|
|
360692
|
+
version: "2.0.9",
|
|
360664
360693
|
transcript: normalizeMessagesForAPI(messages),
|
|
360665
360694
|
errors: sanitizedErrors,
|
|
360666
360695
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -360852,7 +360881,7 @@ function Feedback({
|
|
|
360852
360881
|
", ",
|
|
360853
360882
|
env3.terminal,
|
|
360854
360883
|
", v",
|
|
360855
|
-
"2.0.
|
|
360884
|
+
"2.0.9"
|
|
360856
360885
|
]
|
|
360857
360886
|
}, undefined, true, undefined, this)
|
|
360858
360887
|
]
|
|
@@ -360958,7 +360987,7 @@ ${sanitizedDescription}
|
|
|
360958
360987
|
` + `**Environment Info**
|
|
360959
360988
|
` + `- Platform: ${env3.platform}
|
|
360960
360989
|
` + `- Terminal: ${env3.terminal}
|
|
360961
|
-
` + `- Version: ${"2.0.
|
|
360990
|
+
` + `- Version: ${"2.0.9"}
|
|
360962
360991
|
` + `- Feedback ID: ${feedbackId}
|
|
360963
360992
|
` + `
|
|
360964
360993
|
**Errors**
|
|
@@ -363586,7 +363615,7 @@ function buildPrimarySection() {
|
|
|
363586
363615
|
}, undefined, false, undefined, this);
|
|
363587
363616
|
return [{
|
|
363588
363617
|
label: "Version",
|
|
363589
|
-
value: "2.0.
|
|
363618
|
+
value: "2.0.9"
|
|
363590
363619
|
}, {
|
|
363591
363620
|
label: "Session name",
|
|
363592
363621
|
value: nameValue
|
|
@@ -368267,7 +368296,7 @@ function Config({
|
|
|
368267
368296
|
}
|
|
368268
368297
|
}, undefined, false, undefined, this)
|
|
368269
368298
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
|
|
368270
|
-
currentVersion: "2.0.
|
|
368299
|
+
currentVersion: "2.0.9",
|
|
368271
368300
|
onChoice: (choice) => {
|
|
368272
368301
|
setShowSubmenu(null);
|
|
368273
368302
|
setTabsHidden(false);
|
|
@@ -368279,7 +368308,7 @@ function Config({
|
|
|
368279
368308
|
autoUpdatesChannel: "stable"
|
|
368280
368309
|
};
|
|
368281
368310
|
if (choice === "stay") {
|
|
368282
|
-
newSettings.minimumVersion = "2.0.
|
|
368311
|
+
newSettings.minimumVersion = "2.0.9";
|
|
368283
368312
|
}
|
|
368284
368313
|
updateSettingsForSource("userSettings", newSettings);
|
|
368285
368314
|
setSettingsData((prev_27) => ({
|
|
@@ -377365,7 +377394,11 @@ NEXT: <1–3 sentences describing your specific plan for the next round>
|
|
|
377365
377394
|
|
|
377366
377395
|
Both lines are required every round without exception.
|
|
377367
377396
|
NEXT: becomes your only prompt next round — be precise about files,
|
|
377368
|
-
actions, and outcomes to verify
|
|
377397
|
+
actions, and outcomes to verify.
|
|
377398
|
+
|
|
377399
|
+
⚠ CRITICAL: You MUST write "NEXT: ..." at the end of EVERY response.
|
|
377400
|
+
If you omit NEXT: the system will repeat this entire onboarding prompt
|
|
377401
|
+
next round instead of your directive — you will lose continuity.`;
|
|
377369
377402
|
}
|
|
377370
377403
|
function buildSelfDirectedPrompt(round, directive, focus, externalMsg) {
|
|
377371
377404
|
const modeTag = isThinkHarderMode ? " · \uD83E\uDDE0 THINK HARDER" : "";
|
|
@@ -377534,6 +377567,10 @@ async function callInner3(onDone, context7, args) {
|
|
|
377534
377567
|
const newDirective = extractSelfDirective(lastText);
|
|
377535
377568
|
if (newDirective)
|
|
377536
377569
|
sessionSelfDirective = newDirective;
|
|
377570
|
+
if (!sessionSelfDirective && sessionRound > 1) {
|
|
377571
|
+
const preview = lastText.slice(0, 300).replace(/\n/g, " ").trim();
|
|
377572
|
+
sessionSelfDirective = preview ? `Continue from where you left off: ${preview.slice(0, 200)}` : "Continue with the next most important task.";
|
|
377573
|
+
}
|
|
377537
377574
|
} else {
|
|
377538
377575
|
sessionSelfDirective = "";
|
|
377539
377576
|
}
|
|
@@ -385937,7 +385974,7 @@ function Help(t0) {
|
|
|
385937
385974
|
let t6;
|
|
385938
385975
|
if ($2[31] !== tabs) {
|
|
385939
385976
|
t6 = /* @__PURE__ */ jsx_dev_runtime220.jsxDEV(Tabs, {
|
|
385940
|
-
title: `localclawd v${"2.0.
|
|
385977
|
+
title: `localclawd v${"2.0.9"}`,
|
|
385941
385978
|
color: "professionalBlue",
|
|
385942
385979
|
defaultTab: "general",
|
|
385943
385980
|
children: tabs
|
|
@@ -403199,7 +403236,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
|
|
|
403199
403236
|
}
|
|
403200
403237
|
return [];
|
|
403201
403238
|
}
|
|
403202
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "2.0.
|
|
403239
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "2.0.9") {
|
|
403203
403240
|
if (process.env.USER_TYPE === "ant") {
|
|
403204
403241
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
403205
403242
|
if (changelog) {
|
|
@@ -403226,7 +403263,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "2.0.8") {
|
|
|
403226
403263
|
releaseNotes
|
|
403227
403264
|
};
|
|
403228
403265
|
}
|
|
403229
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "2.0.
|
|
403266
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "2.0.9") {
|
|
403230
403267
|
if (process.env.USER_TYPE === "ant") {
|
|
403231
403268
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
403232
403269
|
if (changelog) {
|
|
@@ -403383,7 +403420,7 @@ function getRecentActivitySync() {
|
|
|
403383
403420
|
return cachedActivity;
|
|
403384
403421
|
}
|
|
403385
403422
|
function getLogoDisplayData() {
|
|
403386
|
-
const version = process.env.DEMO_VERSION ?? "2.0.
|
|
403423
|
+
const version = process.env.DEMO_VERSION ?? "2.0.9";
|
|
403387
403424
|
const serverUrl = getDirectConnectServerUrl();
|
|
403388
403425
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
403389
403426
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -404483,7 +404520,7 @@ function Logo() {
|
|
|
404483
404520
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
404484
404521
|
t2 = () => {
|
|
404485
404522
|
const currentConfig = getGlobalConfig();
|
|
404486
|
-
if (currentConfig.lastReleaseNotesSeen === "2.0.
|
|
404523
|
+
if (currentConfig.lastReleaseNotesSeen === "2.0.9") {
|
|
404487
404524
|
return;
|
|
404488
404525
|
}
|
|
404489
404526
|
saveGlobalConfig(_temp326);
|
|
@@ -405142,12 +405179,12 @@ function Logo() {
|
|
|
405142
405179
|
return t41;
|
|
405143
405180
|
}
|
|
405144
405181
|
function _temp326(current) {
|
|
405145
|
-
if (current.lastReleaseNotesSeen === "2.0.
|
|
405182
|
+
if (current.lastReleaseNotesSeen === "2.0.9") {
|
|
405146
405183
|
return current;
|
|
405147
405184
|
}
|
|
405148
405185
|
return {
|
|
405149
405186
|
...current,
|
|
405150
|
-
lastReleaseNotesSeen: "2.0.
|
|
405187
|
+
lastReleaseNotesSeen: "2.0.9"
|
|
405151
405188
|
};
|
|
405152
405189
|
}
|
|
405153
405190
|
function _temp241(s_0) {
|
|
@@ -435626,7 +435663,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
435626
435663
|
smapsRollup,
|
|
435627
435664
|
platform: process.platform,
|
|
435628
435665
|
nodeVersion: process.version,
|
|
435629
|
-
ccVersion: "2.0.
|
|
435666
|
+
ccVersion: "2.0.9"
|
|
435630
435667
|
};
|
|
435631
435668
|
}
|
|
435632
435669
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -436211,7 +436248,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
436211
436248
|
var call88 = async () => {
|
|
436212
436249
|
return {
|
|
436213
436250
|
type: "text",
|
|
436214
|
-
value: `${"2.0.
|
|
436251
|
+
value: `${"2.0.9"} (built ${"2026-05-09T16:13:29.495Z"})`
|
|
436215
436252
|
};
|
|
436216
436253
|
}, version, version_default;
|
|
436217
436254
|
var init_version = __esm(() => {
|
|
@@ -444155,7 +444192,7 @@ function generateHtmlReport(data, insights) {
|
|
|
444155
444192
|
</html>`;
|
|
444156
444193
|
}
|
|
444157
444194
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
444158
|
-
const version2 = typeof MACRO !== "undefined" ? "2.0.
|
|
444195
|
+
const version2 = typeof MACRO !== "undefined" ? "2.0.9" : "unknown";
|
|
444159
444196
|
const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
|
|
444160
444197
|
const facets_summary = {
|
|
444161
444198
|
total: facets.size,
|
|
@@ -448358,7 +448395,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
448358
448395
|
init_settings2();
|
|
448359
448396
|
init_slowOperations();
|
|
448360
448397
|
init_uuid();
|
|
448361
|
-
VERSION6 = typeof MACRO !== "undefined" ? "2.0.
|
|
448398
|
+
VERSION6 = typeof MACRO !== "undefined" ? "2.0.9" : "unknown";
|
|
448362
448399
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
448363
448400
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
448364
448401
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -449559,7 +449596,7 @@ var init_filesystem = __esm(() => {
|
|
|
449559
449596
|
});
|
|
449560
449597
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
449561
449598
|
const nonce = randomBytes20(16).toString("hex");
|
|
449562
|
-
return join151(getClaudeTempDir(), "bundled-skills", "2.0.
|
|
449599
|
+
return join151(getClaudeTempDir(), "bundled-skills", "2.0.9", nonce);
|
|
449563
449600
|
});
|
|
449564
449601
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
449565
449602
|
});
|
|
@@ -458796,7 +458833,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
458796
458833
|
slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
|
|
458797
458834
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
458798
458835
|
betas: getSdkBetas(),
|
|
458799
|
-
claude_code_version: "2.0.
|
|
458836
|
+
claude_code_version: "2.0.9",
|
|
458800
458837
|
output_style: outputStyle2,
|
|
458801
458838
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
458802
458839
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -472953,7 +472990,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
472953
472990
|
function getSemverPart(version2) {
|
|
472954
472991
|
return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
|
|
472955
472992
|
}
|
|
472956
|
-
function useUpdateNotification(updatedVersion, initialVersion = "2.0.
|
|
472993
|
+
function useUpdateNotification(updatedVersion, initialVersion = "2.0.9") {
|
|
472957
472994
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
|
|
472958
472995
|
if (!updatedVersion) {
|
|
472959
472996
|
return null;
|
|
@@ -472993,7 +473030,7 @@ function AutoUpdater({
|
|
|
472993
473030
|
return;
|
|
472994
473031
|
}
|
|
472995
473032
|
if (false) {}
|
|
472996
|
-
const currentVersion = "2.0.
|
|
473033
|
+
const currentVersion = "2.0.9";
|
|
472997
473034
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
472998
473035
|
let latestVersion = await getLatestVersion(channel);
|
|
472999
473036
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -473204,12 +473241,12 @@ function NativeAutoUpdater({
|
|
|
473204
473241
|
logEvent("tengu_native_auto_updater_start", {});
|
|
473205
473242
|
try {
|
|
473206
473243
|
const maxVersion = await getMaxVersion();
|
|
473207
|
-
if (maxVersion && gt("2.0.
|
|
473244
|
+
if (maxVersion && gt("2.0.9", maxVersion)) {
|
|
473208
473245
|
const msg = await getMaxVersionMessage();
|
|
473209
473246
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
473210
473247
|
}
|
|
473211
473248
|
const result = await installLatest(channel);
|
|
473212
|
-
const currentVersion = "2.0.
|
|
473249
|
+
const currentVersion = "2.0.9";
|
|
473213
473250
|
const latencyMs = Date.now() - startTime;
|
|
473214
473251
|
if (result.lockFailed) {
|
|
473215
473252
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -473344,17 +473381,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
473344
473381
|
const maxVersion = await getMaxVersion();
|
|
473345
473382
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
473346
473383
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
473347
|
-
if (gte("2.0.
|
|
473348
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"2.0.
|
|
473384
|
+
if (gte("2.0.9", maxVersion)) {
|
|
473385
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"2.0.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
473349
473386
|
setUpdateAvailable(false);
|
|
473350
473387
|
return;
|
|
473351
473388
|
}
|
|
473352
473389
|
latest = maxVersion;
|
|
473353
473390
|
}
|
|
473354
|
-
const hasUpdate = latest && !gte("2.0.
|
|
473391
|
+
const hasUpdate = latest && !gte("2.0.9", latest) && !shouldSkipVersion(latest);
|
|
473355
473392
|
setUpdateAvailable(!!hasUpdate);
|
|
473356
473393
|
if (hasUpdate) {
|
|
473357
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"2.0.
|
|
473394
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"2.0.9"} -> ${latest}`);
|
|
473358
473395
|
}
|
|
473359
473396
|
};
|
|
473360
473397
|
$2[0] = t1;
|
|
@@ -473388,7 +473425,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
473388
473425
|
wrap: "truncate",
|
|
473389
473426
|
children: [
|
|
473390
473427
|
"currentVersion: ",
|
|
473391
|
-
"2.0.
|
|
473428
|
+
"2.0.9"
|
|
473392
473429
|
]
|
|
473393
473430
|
}, undefined, true, undefined, this);
|
|
473394
473431
|
$2[3] = verbose;
|
|
@@ -480948,7 +480985,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
480948
480985
|
project_dir: getOriginalCwd(),
|
|
480949
480986
|
added_dirs: addedDirs
|
|
480950
480987
|
},
|
|
480951
|
-
version: "2.0.
|
|
480988
|
+
version: "2.0.9",
|
|
480952
480989
|
output_style: {
|
|
480953
480990
|
name: outputStyleName
|
|
480954
480991
|
},
|
|
@@ -492520,7 +492557,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
492520
492557
|
} catch {}
|
|
492521
492558
|
const data = {
|
|
492522
492559
|
trigger,
|
|
492523
|
-
version: "2.0.
|
|
492560
|
+
version: "2.0.9",
|
|
492524
492561
|
platform: process.platform,
|
|
492525
492562
|
transcript,
|
|
492526
492563
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -509429,7 +509466,7 @@ function appendToLog(path17, message) {
|
|
|
509429
509466
|
cwd: getFsImplementation().cwd(),
|
|
509430
509467
|
userType: process.env.USER_TYPE,
|
|
509431
509468
|
sessionId: getSessionId(),
|
|
509432
|
-
version: "2.0.
|
|
509469
|
+
version: "2.0.9"
|
|
509433
509470
|
};
|
|
509434
509471
|
getLogWriter(path17).write(messageWithTimestamp);
|
|
509435
509472
|
}
|
|
@@ -513443,8 +513480,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
513443
513480
|
}
|
|
513444
513481
|
async function checkEnvLessBridgeMinVersion() {
|
|
513445
513482
|
const cfg = await getEnvLessBridgeConfig();
|
|
513446
|
-
if (cfg.min_version && lt("2.0.
|
|
513447
|
-
return `Your version of localclawd (${"2.0.
|
|
513483
|
+
if (cfg.min_version && lt("2.0.9", cfg.min_version)) {
|
|
513484
|
+
return `Your version of localclawd (${"2.0.9"}) is too old for Remote Control.
|
|
513448
513485
|
Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
|
|
513449
513486
|
}
|
|
513450
513487
|
return null;
|
|
@@ -513916,7 +513953,7 @@ async function initBridgeCore(params) {
|
|
|
513916
513953
|
const rawApi = createBridgeApiClient({
|
|
513917
513954
|
baseUrl,
|
|
513918
513955
|
getAccessToken,
|
|
513919
|
-
runnerVersion: "2.0.
|
|
513956
|
+
runnerVersion: "2.0.9",
|
|
513920
513957
|
onDebug: logForDebugging,
|
|
513921
513958
|
onAuth401,
|
|
513922
513959
|
getTrustedDeviceToken
|
|
@@ -519635,7 +519672,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
519635
519672
|
setCwd(cwd3);
|
|
519636
519673
|
const server = new Server({
|
|
519637
519674
|
name: "claude/tengu",
|
|
519638
|
-
version: "2.0.
|
|
519675
|
+
version: "2.0.9"
|
|
519639
519676
|
}, {
|
|
519640
519677
|
capabilities: {
|
|
519641
519678
|
tools: {}
|
|
@@ -520716,7 +520753,7 @@ function WelcomeLogo() {
|
|
|
520716
520753
|
dimColor: true,
|
|
520717
520754
|
children: [
|
|
520718
520755
|
"v",
|
|
520719
|
-
"2.0.
|
|
520756
|
+
"2.0.9"
|
|
520720
520757
|
]
|
|
520721
520758
|
}, undefined, true, undefined, this)
|
|
520722
520759
|
]
|
|
@@ -520907,7 +520944,7 @@ __export(exports_update, {
|
|
|
520907
520944
|
});
|
|
520908
520945
|
async function update() {
|
|
520909
520946
|
logEvent("tengu_update_check", {});
|
|
520910
|
-
writeToStdout(`Current version: ${"2.0.
|
|
520947
|
+
writeToStdout(`Current version: ${"2.0.9"}
|
|
520911
520948
|
`);
|
|
520912
520949
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
520913
520950
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -520982,8 +521019,8 @@ async function update() {
|
|
|
520982
521019
|
writeToStdout(`localclawd is managed by Homebrew.
|
|
520983
521020
|
`);
|
|
520984
521021
|
const latest = await getLatestVersion(channel);
|
|
520985
|
-
if (latest && !gte("2.0.
|
|
520986
|
-
writeToStdout(`Update available: ${"2.0.
|
|
521022
|
+
if (latest && !gte("2.0.9", latest)) {
|
|
521023
|
+
writeToStdout(`Update available: ${"2.0.9"} → ${latest}
|
|
520987
521024
|
`);
|
|
520988
521025
|
writeToStdout(`
|
|
520989
521026
|
`);
|
|
@@ -520999,8 +521036,8 @@ async function update() {
|
|
|
520999
521036
|
writeToStdout(`localclawd is managed by winget.
|
|
521000
521037
|
`);
|
|
521001
521038
|
const latest = await getLatestVersion(channel);
|
|
521002
|
-
if (latest && !gte("2.0.
|
|
521003
|
-
writeToStdout(`Update available: ${"2.0.
|
|
521039
|
+
if (latest && !gte("2.0.9", latest)) {
|
|
521040
|
+
writeToStdout(`Update available: ${"2.0.9"} → ${latest}
|
|
521004
521041
|
`);
|
|
521005
521042
|
writeToStdout(`
|
|
521006
521043
|
`);
|
|
@@ -521014,8 +521051,8 @@ async function update() {
|
|
|
521014
521051
|
writeToStdout(`localclawd is managed by apk.
|
|
521015
521052
|
`);
|
|
521016
521053
|
const latest = await getLatestVersion(channel);
|
|
521017
|
-
if (latest && !gte("2.0.
|
|
521018
|
-
writeToStdout(`Update available: ${"2.0.
|
|
521054
|
+
if (latest && !gte("2.0.9", latest)) {
|
|
521055
|
+
writeToStdout(`Update available: ${"2.0.9"} → ${latest}
|
|
521019
521056
|
`);
|
|
521020
521057
|
writeToStdout(`
|
|
521021
521058
|
`);
|
|
@@ -521080,11 +521117,11 @@ async function update() {
|
|
|
521080
521117
|
`);
|
|
521081
521118
|
await gracefulShutdown(1);
|
|
521082
521119
|
}
|
|
521083
|
-
if (result.latestVersion === "2.0.
|
|
521084
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"2.0.
|
|
521120
|
+
if (result.latestVersion === "2.0.9") {
|
|
521121
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"2.0.9"})`) + `
|
|
521085
521122
|
`);
|
|
521086
521123
|
} else {
|
|
521087
|
-
writeToStdout(source_default.green(`Successfully updated from ${"2.0.
|
|
521124
|
+
writeToStdout(source_default.green(`Successfully updated from ${"2.0.9"} to version ${result.latestVersion}`) + `
|
|
521088
521125
|
`);
|
|
521089
521126
|
await regenerateCompletionCache();
|
|
521090
521127
|
}
|
|
@@ -521144,12 +521181,12 @@ async function update() {
|
|
|
521144
521181
|
`);
|
|
521145
521182
|
await gracefulShutdown(1);
|
|
521146
521183
|
}
|
|
521147
|
-
if (latestVersion === "2.0.
|
|
521148
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"2.0.
|
|
521184
|
+
if (latestVersion === "2.0.9") {
|
|
521185
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"2.0.9"})`) + `
|
|
521149
521186
|
`);
|
|
521150
521187
|
await gracefulShutdown(0);
|
|
521151
521188
|
}
|
|
521152
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"2.0.
|
|
521189
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"2.0.9"})
|
|
521153
521190
|
`);
|
|
521154
521191
|
writeToStdout(`Installing update...
|
|
521155
521192
|
`);
|
|
@@ -521194,7 +521231,7 @@ async function update() {
|
|
|
521194
521231
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
521195
521232
|
switch (status2) {
|
|
521196
521233
|
case "success":
|
|
521197
|
-
writeToStdout(source_default.green(`Successfully updated from ${"2.0.
|
|
521234
|
+
writeToStdout(source_default.green(`Successfully updated from ${"2.0.9"} to version ${latestVersion}`) + `
|
|
521198
521235
|
`);
|
|
521199
521236
|
await regenerateCompletionCache();
|
|
521200
521237
|
break;
|
|
@@ -522436,7 +522473,7 @@ Run with --debug for more details.
|
|
|
522436
522473
|
}
|
|
522437
522474
|
}
|
|
522438
522475
|
logForDiagnosticsNoPII("info", "started", {
|
|
522439
|
-
version: "2.0.
|
|
522476
|
+
version: "2.0.9",
|
|
522440
522477
|
is_native_binary: isInBundledMode()
|
|
522441
522478
|
});
|
|
522442
522479
|
registerCleanup(async () => {
|
|
@@ -523220,7 +523257,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
523220
523257
|
pendingHookMessages
|
|
523221
523258
|
}, renderAndRun);
|
|
523222
523259
|
}
|
|
523223
|
-
}).version("2.0.
|
|
523260
|
+
}).version("2.0.9 (localclawd)", "-v, --version", "Output the version number");
|
|
523224
523261
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
523225
523262
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
523226
523263
|
if (canUserConfigureAdvisor()) {
|
|
@@ -523734,7 +523771,7 @@ if (false) {}
|
|
|
523734
523771
|
async function main2() {
|
|
523735
523772
|
const args = process.argv.slice(2);
|
|
523736
523773
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
523737
|
-
console.log(`${"2.0.
|
|
523774
|
+
console.log(`${"2.0.9"} (localclawd)`);
|
|
523738
523775
|
return;
|
|
523739
523776
|
}
|
|
523740
523777
|
const {
|
|
@@ -523825,4 +523862,4 @@ localclawd crashed: ${msg}
|
|
|
523825
523862
|
process.exit(1);
|
|
523826
523863
|
});
|
|
523827
523864
|
|
|
523828
|
-
//# debugId=
|
|
523865
|
+
//# debugId=0D369AEA085893C864756E2164756E21
|