localclawd 1.2.2 → 1.2.3
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 +215 -214
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -87564,7 +87564,7 @@ var init_isEqual = __esm(() => {
|
|
|
87564
87564
|
|
|
87565
87565
|
// src/utils/userAgent.ts
|
|
87566
87566
|
function getClaudeCodeUserAgent() {
|
|
87567
|
-
return `claude-code/${"1.2.
|
|
87567
|
+
return `claude-code/${"1.2.3"}`;
|
|
87568
87568
|
}
|
|
87569
87569
|
|
|
87570
87570
|
// src/utils/workloadContext.ts
|
|
@@ -87586,7 +87586,7 @@ function getUserAgent() {
|
|
|
87586
87586
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
87587
87587
|
const workload = getWorkload();
|
|
87588
87588
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
87589
|
-
return `claude-cli/${"1.2.
|
|
87589
|
+
return `claude-cli/${"1.2.3"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
87590
87590
|
}
|
|
87591
87591
|
function getMCPUserAgent() {
|
|
87592
87592
|
const parts = [];
|
|
@@ -87600,7 +87600,7 @@ function getMCPUserAgent() {
|
|
|
87600
87600
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
87601
87601
|
}
|
|
87602
87602
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
87603
|
-
return `claude-code/${"1.2.
|
|
87603
|
+
return `claude-code/${"1.2.3"}${suffix}`;
|
|
87604
87604
|
}
|
|
87605
87605
|
function getWebFetchUserAgent() {
|
|
87606
87606
|
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 = `${"1.2.
|
|
130794
|
+
const version = `${"1.2.3"}.${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 = "1.2.
|
|
146983
|
+
const match = "1.2.3".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: "1.2.
|
|
147023
|
+
version: "1.2.3",
|
|
147024
147024
|
versionBase: getVersionBase(),
|
|
147025
|
-
buildTime: "2026-04-
|
|
147025
|
+
buildTime: "2026-04-18T19:07:42.573Z",
|
|
147026
147026
|
deploymentEnvironment: env3.detectDeploymentEnvironment(),
|
|
147027
147027
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
147028
147028
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -179501,7 +179501,7 @@ function getTelemetryAttributes() {
|
|
|
179501
179501
|
attributes["session.id"] = sessionId;
|
|
179502
179502
|
}
|
|
179503
179503
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
179504
|
-
attributes["app.version"] = "1.2.
|
|
179504
|
+
attributes["app.version"] = "1.2.3";
|
|
179505
179505
|
}
|
|
179506
179506
|
const oauthAccount = getOauthAccountInfo();
|
|
179507
179507
|
if (oauthAccount) {
|
|
@@ -242293,7 +242293,7 @@ function getInstallationEnv() {
|
|
|
242293
242293
|
return;
|
|
242294
242294
|
}
|
|
242295
242295
|
function getClaudeCodeVersion() {
|
|
242296
|
-
return "1.2.
|
|
242296
|
+
return "1.2.3";
|
|
242297
242297
|
}
|
|
242298
242298
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
242299
242299
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -247567,7 +247567,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
247567
247567
|
const client4 = new Client({
|
|
247568
247568
|
name: "localclawd",
|
|
247569
247569
|
title: "localclawd",
|
|
247570
|
-
version: "1.2.
|
|
247570
|
+
version: "1.2.3",
|
|
247571
247571
|
description: "local-first AI coding tool",
|
|
247572
247572
|
websiteUrl: PRODUCT_URL
|
|
247573
247573
|
}, {
|
|
@@ -247909,7 +247909,7 @@ var init_client9 = __esm(() => {
|
|
|
247909
247909
|
const client4 = new Client({
|
|
247910
247910
|
name: "localclawd",
|
|
247911
247911
|
title: "localclawd",
|
|
247912
|
-
version: "1.2.
|
|
247912
|
+
version: "1.2.3",
|
|
247913
247913
|
description: "local-first AI coding tool",
|
|
247914
247914
|
websiteUrl: PRODUCT_URL
|
|
247915
247915
|
}, {
|
|
@@ -262299,7 +262299,7 @@ function computeFingerprint(messageText, version) {
|
|
|
262299
262299
|
}
|
|
262300
262300
|
function computeFingerprintFromMessages(messages) {
|
|
262301
262301
|
const firstMessageText = extractFirstMessageText(messages);
|
|
262302
|
-
return computeFingerprint(firstMessageText, "1.2.
|
|
262302
|
+
return computeFingerprint(firstMessageText, "1.2.3");
|
|
262303
262303
|
}
|
|
262304
262304
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
262305
262305
|
var init_fingerprint = () => {};
|
|
@@ -262341,7 +262341,7 @@ async function sideQuery(opts) {
|
|
|
262341
262341
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
262342
262342
|
}
|
|
262343
262343
|
const messageText = extractFirstUserMessageText(messages);
|
|
262344
|
-
const fingerprint = computeFingerprint(messageText, "1.2.
|
|
262344
|
+
const fingerprint = computeFingerprint(messageText, "1.2.3");
|
|
262345
262345
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
262346
262346
|
const systemBlocks = [
|
|
262347
262347
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -283065,7 +283065,7 @@ var init_user = __esm(() => {
|
|
|
283065
283065
|
deviceId,
|
|
283066
283066
|
sessionId: getSessionId(),
|
|
283067
283067
|
email: getEmail(),
|
|
283068
|
-
appVersion: "1.2.
|
|
283068
|
+
appVersion: "1.2.3",
|
|
283069
283069
|
platform: getHostPlatformForAnalytics(),
|
|
283070
283070
|
organizationUuid,
|
|
283071
283071
|
accountUuid,
|
|
@@ -284130,7 +284130,7 @@ async function initializeBetaTracing(resource) {
|
|
|
284130
284130
|
});
|
|
284131
284131
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
284132
284132
|
setLoggerProvider(loggerProvider);
|
|
284133
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.2.
|
|
284133
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.2.3");
|
|
284134
284134
|
setEventLogger(eventLogger);
|
|
284135
284135
|
process.on("beforeExit", async () => {
|
|
284136
284136
|
await loggerProvider?.forceFlush();
|
|
@@ -284170,7 +284170,7 @@ async function initializeTelemetry() {
|
|
|
284170
284170
|
const platform2 = getPlatform();
|
|
284171
284171
|
const baseAttributes = {
|
|
284172
284172
|
[ATTR_SERVICE_NAME4]: "claude-code",
|
|
284173
|
-
[ATTR_SERVICE_VERSION4]: "1.2.
|
|
284173
|
+
[ATTR_SERVICE_VERSION4]: "1.2.3"
|
|
284174
284174
|
};
|
|
284175
284175
|
if (platform2 === "wsl") {
|
|
284176
284176
|
const wslVersion = getWslVersion();
|
|
@@ -284215,7 +284215,7 @@ async function initializeTelemetry() {
|
|
|
284215
284215
|
} catch {}
|
|
284216
284216
|
};
|
|
284217
284217
|
registerCleanup(shutdownTelemetry2);
|
|
284218
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "1.2.
|
|
284218
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "1.2.3");
|
|
284219
284219
|
}
|
|
284220
284220
|
const meterProvider = new MeterProvider4({
|
|
284221
284221
|
resource,
|
|
@@ -284235,7 +284235,7 @@ async function initializeTelemetry() {
|
|
|
284235
284235
|
});
|
|
284236
284236
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
284237
284237
|
setLoggerProvider(loggerProvider);
|
|
284238
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.2.
|
|
284238
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.2.3");
|
|
284239
284239
|
setEventLogger(eventLogger);
|
|
284240
284240
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
284241
284241
|
process.on("beforeExit", async () => {
|
|
@@ -284297,7 +284297,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
284297
284297
|
}
|
|
284298
284298
|
};
|
|
284299
284299
|
registerCleanup(shutdownTelemetry);
|
|
284300
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "1.2.
|
|
284300
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "1.2.3");
|
|
284301
284301
|
}
|
|
284302
284302
|
async function flushTelemetry() {
|
|
284303
284303
|
const meterProvider = getMeterProvider();
|
|
@@ -285487,7 +285487,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
285487
285487
|
}
|
|
285488
285488
|
async function getDoctorDiagnostic() {
|
|
285489
285489
|
const installationType = await getCurrentInstallationType();
|
|
285490
|
-
const version = typeof MACRO !== "undefined" ? "1.2.
|
|
285490
|
+
const version = typeof MACRO !== "undefined" ? "1.2.3" : "unknown";
|
|
285491
285491
|
const installationPath = await getInstallationPath();
|
|
285492
285492
|
const invokedBinary = getInvokedBinary();
|
|
285493
285493
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -286428,8 +286428,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
286428
286428
|
const maxVersion = await getMaxVersion();
|
|
286429
286429
|
if (maxVersion && gt(version, maxVersion)) {
|
|
286430
286430
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
|
|
286431
|
-
if (gte("1.2.
|
|
286432
|
-
logForDebugging(`Native installer: current version ${"1.2.
|
|
286431
|
+
if (gte("1.2.3", maxVersion)) {
|
|
286432
|
+
logForDebugging(`Native installer: current version ${"1.2.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
286433
286433
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
286434
286434
|
latency_ms: Date.now() - startTime,
|
|
286435
286435
|
max_version: maxVersion,
|
|
@@ -286440,7 +286440,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
286440
286440
|
version = maxVersion;
|
|
286441
286441
|
}
|
|
286442
286442
|
}
|
|
286443
|
-
if (!forceReinstall && version === "1.2.
|
|
286443
|
+
if (!forceReinstall && version === "1.2.3" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
|
|
286444
286444
|
logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
|
|
286445
286445
|
logEvent("tengu_native_update_complete", {
|
|
286446
286446
|
latency_ms: Date.now() - startTime,
|
|
@@ -330829,7 +330829,7 @@ function getAnthropicEnvMetadata() {
|
|
|
330829
330829
|
function getBuildAgeMinutes() {
|
|
330830
330830
|
if (false)
|
|
330831
330831
|
;
|
|
330832
|
-
const buildTime = new Date("2026-04-
|
|
330832
|
+
const buildTime = new Date("2026-04-18T19:07:42.573Z").getTime();
|
|
330833
330833
|
if (isNaN(buildTime))
|
|
330834
330834
|
return;
|
|
330835
330835
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -359154,7 +359154,7 @@ function Feedback({
|
|
|
359154
359154
|
platform: env3.platform,
|
|
359155
359155
|
gitRepo: envInfo.isGit,
|
|
359156
359156
|
terminal: env3.terminal,
|
|
359157
|
-
version: "1.2.
|
|
359157
|
+
version: "1.2.3",
|
|
359158
359158
|
transcript: normalizeMessagesForAPI(messages),
|
|
359159
359159
|
errors: sanitizedErrors,
|
|
359160
359160
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -359346,7 +359346,7 @@ function Feedback({
|
|
|
359346
359346
|
", ",
|
|
359347
359347
|
env3.terminal,
|
|
359348
359348
|
", v",
|
|
359349
|
-
"1.2.
|
|
359349
|
+
"1.2.3"
|
|
359350
359350
|
]
|
|
359351
359351
|
}, undefined, true, undefined, this)
|
|
359352
359352
|
]
|
|
@@ -359452,7 +359452,7 @@ ${sanitizedDescription}
|
|
|
359452
359452
|
` + `**Environment Info**
|
|
359453
359453
|
` + `- Platform: ${env3.platform}
|
|
359454
359454
|
` + `- Terminal: ${env3.terminal}
|
|
359455
|
-
` + `- Version: ${"1.2.
|
|
359455
|
+
` + `- Version: ${"1.2.3"}
|
|
359456
359456
|
` + `- Feedback ID: ${feedbackId}
|
|
359457
359457
|
` + `
|
|
359458
359458
|
**Errors**
|
|
@@ -362080,7 +362080,7 @@ function buildPrimarySection() {
|
|
|
362080
362080
|
}, undefined, false, undefined, this);
|
|
362081
362081
|
return [{
|
|
362082
362082
|
label: "Version",
|
|
362083
|
-
value: "1.2.
|
|
362083
|
+
value: "1.2.3"
|
|
362084
362084
|
}, {
|
|
362085
362085
|
label: "Session name",
|
|
362086
362086
|
value: nameValue
|
|
@@ -366679,7 +366679,7 @@ function Config({
|
|
|
366679
366679
|
}
|
|
366680
366680
|
}, undefined, false, undefined, this)
|
|
366681
366681
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime175.jsxDEV(ChannelDowngradeDialog, {
|
|
366682
|
-
currentVersion: "1.2.
|
|
366682
|
+
currentVersion: "1.2.3",
|
|
366683
366683
|
onChoice: (choice) => {
|
|
366684
366684
|
setShowSubmenu(null);
|
|
366685
366685
|
setTabsHidden(false);
|
|
@@ -366691,7 +366691,7 @@ function Config({
|
|
|
366691
366691
|
autoUpdatesChannel: "stable"
|
|
366692
366692
|
};
|
|
366693
366693
|
if (choice === "stay") {
|
|
366694
|
-
newSettings.minimumVersion = "1.2.
|
|
366694
|
+
newSettings.minimumVersion = "1.2.3";
|
|
366695
366695
|
}
|
|
366696
366696
|
updateSettingsForSource("userSettings", newSettings);
|
|
366697
366697
|
setSettingsData((prev_27) => ({
|
|
@@ -372629,9 +372629,17 @@ function createEmptyState() {
|
|
|
372629
372629
|
import { mkdir as mkdir27, readdir as readdir21, readFile as readFile36, stat as stat37, writeFile as writeFile29 } from "fs/promises";
|
|
372630
372630
|
import { basename as basename34, join as join105, resolve as resolve36 } from "path";
|
|
372631
372631
|
import { homedir as homedir26 } from "os";
|
|
372632
|
+
function setDirectorProjectRoot(projectPath) {
|
|
372633
|
+
_projectStateDir = join105(projectPath, ".claude");
|
|
372634
|
+
}
|
|
372635
|
+
function getStatePath() {
|
|
372636
|
+
if (_projectStateDir)
|
|
372637
|
+
return join105(_projectStateDir, "director-memory.json");
|
|
372638
|
+
return join105(GLOBAL_DIRECTOR_DIR, "state.json");
|
|
372639
|
+
}
|
|
372632
372640
|
async function loadDirectorState() {
|
|
372633
372641
|
try {
|
|
372634
|
-
const raw = await readFile36(
|
|
372642
|
+
const raw = await readFile36(getStatePath(), "utf-8");
|
|
372635
372643
|
const parsed = JSON.parse(raw);
|
|
372636
372644
|
if (parsed.version !== 1)
|
|
372637
372645
|
return createEmptyState();
|
|
@@ -372641,8 +372649,9 @@ async function loadDirectorState() {
|
|
|
372641
372649
|
}
|
|
372642
372650
|
}
|
|
372643
372651
|
async function saveDirectorState(state) {
|
|
372644
|
-
|
|
372645
|
-
await
|
|
372652
|
+
const dir = _projectStateDir || GLOBAL_DIRECTOR_DIR;
|
|
372653
|
+
await mkdir27(dir, { recursive: true });
|
|
372654
|
+
await writeFile29(getStatePath(), JSON.stringify(state, null, 2), "utf-8");
|
|
372646
372655
|
}
|
|
372647
372656
|
function slugify(path12) {
|
|
372648
372657
|
return basename34(resolve36(path12)).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
@@ -372818,12 +372827,11 @@ function getProjectContext(state, projectId) {
|
|
|
372818
372827
|
return lines.join(`
|
|
372819
372828
|
`);
|
|
372820
372829
|
}
|
|
372821
|
-
var
|
|
372830
|
+
var GLOBAL_DIRECTOR_DIR, DIRECTOR_MEMORY_DIR, _projectStateDir = "", KEY_FILES, MAX_FILE_ENTRIES = 100, MAX_TASKS = 200, PRUNE_INTERVAL_MS, PROJECT_STALE_MS, IMPORTANCE_DECAY = 0.95;
|
|
372822
372831
|
var init_directorMemoryOps = __esm(() => {
|
|
372823
372832
|
init_debug();
|
|
372824
|
-
|
|
372825
|
-
|
|
372826
|
-
DIRECTOR_MEMORY_DIR = join105(DIRECTOR_DIR, "memory");
|
|
372833
|
+
GLOBAL_DIRECTOR_DIR = join105(homedir26(), ".claude", "director");
|
|
372834
|
+
DIRECTOR_MEMORY_DIR = join105(GLOBAL_DIRECTOR_DIR, "memory");
|
|
372827
372835
|
KEY_FILES = [
|
|
372828
372836
|
"package.json",
|
|
372829
372837
|
"README.md",
|
|
@@ -372882,17 +372890,20 @@ function buildDirectorReviewPrompt(round, maxRounds, reviewNotes, telegramMsg) {
|
|
|
372882
372890
|
const telegramSection = telegramMsg ? `
|
|
372883
372891
|
━━━ MESSAGE FROM USER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
372884
372892
|
${telegramMsg}
|
|
372885
|
-
━━━
|
|
372893
|
+
━━━ Respond to this message, then continue your work. ━━━━━━━━━━━━━━
|
|
372886
372894
|
` : "";
|
|
372887
372895
|
return `[DIRECTOR REVIEW — ${roundInfo}]
|
|
372888
372896
|
|
|
372889
372897
|
The director reviewed your last response:
|
|
372890
372898
|
${reviewNotes}
|
|
372891
372899
|
${telegramSection}
|
|
372892
|
-
|
|
372893
|
-
|
|
372894
|
-
|
|
372895
|
-
|
|
372900
|
+
━━━ INSTRUCTIONS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
372901
|
+
1. Continue working — do not re-explain what was already done
|
|
372902
|
+
2. Use the Agent tool to spawn subagents for independent parallel work
|
|
372903
|
+
3. Run builds/tests after significant changes to verify correctness
|
|
372904
|
+
4. Assess whether the task is complete:
|
|
372905
|
+
- If YES → emit: TASK COMPLETE: <summary of all work done>
|
|
372906
|
+
- If NO → proceed with the next action immediately`;
|
|
372896
372907
|
}
|
|
372897
372908
|
function buildDirectorStatusText(projects, recentTasks) {
|
|
372898
372909
|
const lines = [];
|
|
@@ -372972,22 +372983,6 @@ var init_telegramKill = __esm(() => {
|
|
|
372972
372983
|
});
|
|
372973
372984
|
|
|
372974
372985
|
// src/services/telegram/telegramBot.ts
|
|
372975
|
-
var exports_telegramBot = {};
|
|
372976
|
-
__export(exports_telegramBot, {
|
|
372977
|
-
validateTelegramToken: () => validateTelegramToken,
|
|
372978
|
-
stopTypingIndicator: () => stopTypingIndicator,
|
|
372979
|
-
stopTelegram: () => stopTelegram,
|
|
372980
|
-
startTypingIndicator: () => startTypingIndicator,
|
|
372981
|
-
sendTypingIndicator: () => sendTypingIndicator,
|
|
372982
|
-
sendTelegramMessage: () => sendTelegramMessage,
|
|
372983
|
-
onTelegramMessage: () => onTelegramMessage,
|
|
372984
|
-
isTelegramConfigured: () => isTelegramConfigured,
|
|
372985
|
-
isTelegramActive: () => isTelegramActive,
|
|
372986
|
-
initTelegramWithCredentials: () => initTelegramWithCredentials,
|
|
372987
|
-
initTelegram: () => initTelegram,
|
|
372988
|
-
getTelegramChatId: () => getTelegramChatId,
|
|
372989
|
-
getPendingTelegramMessage: () => getPendingTelegramMessage
|
|
372990
|
-
});
|
|
372991
372986
|
async function api(method, body = {}) {
|
|
372992
372987
|
const url3 = `https://api.telegram.org/bot${_token}/${method}`;
|
|
372993
372988
|
const res = await fetch(url3, {
|
|
@@ -373046,14 +373041,6 @@ function stopTypingIndicator() {
|
|
|
373046
373041
|
function getPendingTelegramMessage() {
|
|
373047
373042
|
return _queue.shift() ?? null;
|
|
373048
373043
|
}
|
|
373049
|
-
function onTelegramMessage(cb) {
|
|
373050
|
-
_listeners.push(cb);
|
|
373051
|
-
return () => {
|
|
373052
|
-
const i2 = _listeners.indexOf(cb);
|
|
373053
|
-
if (i2 !== -1)
|
|
373054
|
-
_listeners.splice(i2, 1);
|
|
373055
|
-
};
|
|
373056
|
-
}
|
|
373057
373044
|
function getTelegramChatId() {
|
|
373058
373045
|
return _chatId;
|
|
373059
373046
|
}
|
|
@@ -373137,9 +373124,6 @@ Ready to receive commands.`);
|
|
|
373137
373124
|
logForDebugging(`[telegram] Init failed: ${e}`, { level: "warn" });
|
|
373138
373125
|
}
|
|
373139
373126
|
}
|
|
373140
|
-
function stopTelegram() {
|
|
373141
|
-
_polling = false;
|
|
373142
|
-
}
|
|
373143
373127
|
async function pollLoop() {
|
|
373144
373128
|
while (_polling) {
|
|
373145
373129
|
try {
|
|
@@ -373266,6 +373250,7 @@ var init_telegramBot = __esm(() => {
|
|
|
373266
373250
|
var exports_directorEngine = {};
|
|
373267
373251
|
__export(exports_directorEngine, {
|
|
373268
373252
|
startDirectorTask: () => startDirectorTask,
|
|
373253
|
+
sendTurnStatus: () => sendTurnStatus,
|
|
373269
373254
|
sendDirectorNotification: () => sendDirectorNotification,
|
|
373270
373255
|
reviewAndContinue: () => reviewAndContinue,
|
|
373271
373256
|
resetDirector: () => resetDirector,
|
|
@@ -373314,6 +373299,7 @@ async function startDirectorTask(task, projectPath, maxRounds, medium) {
|
|
|
373314
373299
|
boostProject(state, project.id);
|
|
373315
373300
|
await indexProjectFiles(state, project.id, projectPath);
|
|
373316
373301
|
await saveDirectorState(state);
|
|
373302
|
+
setDirectorProjectRoot(projectPath);
|
|
373317
373303
|
_round = 1;
|
|
373318
373304
|
_task = task;
|
|
373319
373305
|
_projectId = project.id;
|
|
@@ -373321,7 +373307,6 @@ async function startDirectorTask(task, projectPath, maxRounds, medium) {
|
|
|
373321
373307
|
_projectPath = projectPath;
|
|
373322
373308
|
_notifyMedium = medium ?? (isTelegramActive() ? "telegram" : "desktop");
|
|
373323
373309
|
_startGitRef = await captureGitRef(projectPath);
|
|
373324
|
-
startHeartbeat();
|
|
373325
373310
|
const context7 = getProjectContext(state, project.id);
|
|
373326
373311
|
const prompt = buildDirectorTaskPrompt(task, context7, _round, _maxRounds, _notifyMedium);
|
|
373327
373312
|
logForDebugging(`[director] Starting task in ${project.id}: ${task.slice(0, 80)}`);
|
|
@@ -373368,12 +373353,16 @@ async function recordTaskOutcome(outcome, summary) {
|
|
|
373368
373353
|
logForDebugging(`[director] Failed to record task: ${e}`);
|
|
373369
373354
|
}
|
|
373370
373355
|
}
|
|
373371
|
-
function
|
|
373372
|
-
|
|
373373
|
-
|
|
373374
|
-
|
|
373375
|
-
|
|
373376
|
-
|
|
373356
|
+
async function sendTurnStatus(lastText) {
|
|
373357
|
+
const elapsed = Math.round((Date.now() - _taskStartTime) / (1000 * 60));
|
|
373358
|
+
const completedLines = lastText.split(`
|
|
373359
|
+
`).filter((l) => /^Completed:/i.test(l.trim())).map((l) => l.trim().slice(0, 120));
|
|
373360
|
+
const progress = completedLines.length > 0 ? completedLines.join(`
|
|
373361
|
+
`) : lastText.slice(0, 200).replace(/\n/g, " ");
|
|
373362
|
+
const msg = `Round ${_round}/${isFinite(_maxRounds) ? _maxRounds : "∞"} · ${elapsed}m elapsed
|
|
373363
|
+
${progress}`;
|
|
373364
|
+
await sendDirectorNotification("Director", msg);
|
|
373365
|
+
logForDebugging(`[director] Turn status sent: round ${_round}`);
|
|
373377
373366
|
}
|
|
373378
373367
|
function stopHeartbeat() {
|
|
373379
373368
|
if (_heartbeatTimer) {
|
|
@@ -373381,15 +373370,6 @@ function stopHeartbeat() {
|
|
|
373381
373370
|
_heartbeatTimer = null;
|
|
373382
373371
|
}
|
|
373383
373372
|
}
|
|
373384
|
-
async function sendHeartbeatUpdate() {
|
|
373385
|
-
const elapsed = Math.round((Date.now() - _taskStartTime) / (1000 * 60));
|
|
373386
|
-
const msg = `Director heartbeat — still working
|
|
373387
|
-
Task: ${_task.slice(0, 100)}
|
|
373388
|
-
Round: ${_round}/${isFinite(_maxRounds) ? _maxRounds : "∞"}
|
|
373389
|
-
Elapsed: ${elapsed} min`;
|
|
373390
|
-
await sendDirectorNotification("localclawd Director — Heartbeat", msg);
|
|
373391
|
-
logForDebugging(`[director] Heartbeat sent at ${elapsed}min`);
|
|
373392
|
-
}
|
|
373393
373373
|
async function sendDirectorNotification(title, message) {
|
|
373394
373374
|
if (_notifyMedium === "telegram" && isTelegramActive()) {
|
|
373395
373375
|
sendTelegramMessage(`*${title}*
|
|
@@ -373501,7 +373481,7 @@ ${status}`;
|
|
|
373501
373481
|
return "Unable to generate change summary.";
|
|
373502
373482
|
}
|
|
373503
373483
|
}
|
|
373504
|
-
var _round = 0, _task = "", _projectId = "", _maxRounds = 20, _startGitRef = "", _projectPath = "", _heartbeatTimer = null, _taskStartTime = 0, _notifyMedium = "desktop", STOP_PATTERNS
|
|
373484
|
+
var _round = 0, _task = "", _projectId = "", _maxRounds = 20, _startGitRef = "", _projectPath = "", _heartbeatTimer = null, _taskStartTime = 0, _notifyMedium = "desktop", STOP_PATTERNS;
|
|
373505
373485
|
var init_directorEngine = __esm(() => {
|
|
373506
373486
|
init_directorMemoryOps();
|
|
373507
373487
|
init_debug();
|
|
@@ -373513,7 +373493,6 @@ var init_directorEngine = __esm(() => {
|
|
|
373513
373493
|
{ pattern: /ALL[_ ]DONE\b/i, label: "all done" },
|
|
373514
373494
|
{ pattern: /WORK[_ ]COMPLETE:/i, label: "work complete" }
|
|
373515
373495
|
];
|
|
373516
|
-
HEARTBEAT_INTERVAL_MS2 = 30 * 60 * 1000;
|
|
373517
373496
|
});
|
|
373518
373497
|
|
|
373519
373498
|
// src/commands/director/director.tsx
|
|
@@ -373658,13 +373637,14 @@ ${task.slice(0, 200)}`);
|
|
|
373658
373637
|
maxRounds: DEFAULT_MAX_ROUNDS,
|
|
373659
373638
|
task,
|
|
373660
373639
|
telegram: isTelegramActive(),
|
|
373661
|
-
onReady: () =>
|
|
373662
|
-
|
|
373663
|
-
|
|
373664
|
-
|
|
373665
|
-
|
|
373666
|
-
|
|
373667
|
-
|
|
373640
|
+
onReady: () => {
|
|
373641
|
+
enqueue({ value: "/director", mode: "prompt", isMeta: true });
|
|
373642
|
+
onDone(undefined, {
|
|
373643
|
+
display: "system",
|
|
373644
|
+
shouldQuery: true,
|
|
373645
|
+
metaMessages: [prompt]
|
|
373646
|
+
});
|
|
373647
|
+
}
|
|
373668
373648
|
}, undefined, false, undefined, this);
|
|
373669
373649
|
}
|
|
373670
373650
|
if (isTelegramActive())
|
|
@@ -373692,15 +373672,7 @@ ${changeSummary}` : "";
|
|
|
373692
373672
|
return prev;
|
|
373693
373673
|
});
|
|
373694
373674
|
if (lastText.trim()) {
|
|
373695
|
-
|
|
373696
|
-
const preview = lastText.slice(0, 1200);
|
|
373697
|
-
const suffix = lastText.length > 1200 ? `
|
|
373698
|
-
...(truncated)` : "";
|
|
373699
|
-
if (getNotifyMedium() === "telegram" && isTelegramActive()) {
|
|
373700
|
-
const { sendTelegramMessage: sendTelegramMessage2 } = await Promise.resolve().then(() => (init_telegramBot(), exports_telegramBot));
|
|
373701
|
-
sendTelegramMessage2(`Director round ${round2}:
|
|
373702
|
-
${preview}${suffix}`);
|
|
373703
|
-
}
|
|
373675
|
+
sendTurnStatus(lastText);
|
|
373704
373676
|
}
|
|
373705
373677
|
const telegramMsg = getPendingTelegramMessage();
|
|
373706
373678
|
const result = await reviewAndContinue(lastText, telegramMsg);
|
|
@@ -373732,13 +373704,14 @@ ${changeSummary}` : "";
|
|
|
373732
373704
|
maxRounds: DEFAULT_MAX_ROUNDS,
|
|
373733
373705
|
task: currentTask,
|
|
373734
373706
|
telegram: isTelegramActive(),
|
|
373735
|
-
onReady: () =>
|
|
373736
|
-
|
|
373737
|
-
|
|
373738
|
-
|
|
373739
|
-
|
|
373740
|
-
|
|
373741
|
-
|
|
373707
|
+
onReady: () => {
|
|
373708
|
+
enqueue({ value: "/director", mode: "prompt", isMeta: true });
|
|
373709
|
+
onDone(undefined, {
|
|
373710
|
+
display: "system",
|
|
373711
|
+
shouldQuery: true,
|
|
373712
|
+
metaMessages: [result.prompt]
|
|
373713
|
+
});
|
|
373714
|
+
}
|
|
373742
373715
|
}, undefined, false, undefined, this);
|
|
373743
373716
|
};
|
|
373744
373717
|
var init_director = __esm(() => {
|
|
@@ -373747,6 +373720,7 @@ var init_director = __esm(() => {
|
|
|
373747
373720
|
init_telegramBot();
|
|
373748
373721
|
init_telegramSignals();
|
|
373749
373722
|
init_state();
|
|
373723
|
+
init_messageQueueManager();
|
|
373750
373724
|
React58 = __toESM(require_react(), 1);
|
|
373751
373725
|
jsx_dev_runtime195 = __toESM(require_jsx_dev_runtime(), 1);
|
|
373752
373726
|
});
|
|
@@ -374014,12 +373988,11 @@ Round cap ${finalRound}/${maxRounds} reached.`);
|
|
|
374014
373988
|
const nextCmd = `/keepgoing${nextArgs.length ? " " + nextArgs.join(" ") : ""}`;
|
|
374015
373989
|
const metaMessages = [prompt];
|
|
374016
373990
|
const handleReady = () => {
|
|
373991
|
+
enqueue({ value: nextCmd, mode: "prompt", isMeta: true });
|
|
374017
373992
|
onDone(undefined, {
|
|
374018
373993
|
display: "system",
|
|
374019
373994
|
shouldQuery: true,
|
|
374020
|
-
metaMessages
|
|
374021
|
-
nextInput: nextCmd,
|
|
374022
|
-
submitNextInput: true
|
|
373995
|
+
metaMessages
|
|
374023
373996
|
});
|
|
374024
373997
|
};
|
|
374025
373998
|
return /* @__PURE__ */ jsx_dev_runtime196.jsxDEV(KeepGoingBanner, {
|
|
@@ -374036,6 +374009,7 @@ var init_keepgoing = __esm(() => {
|
|
|
374036
374009
|
init_thinkharder();
|
|
374037
374010
|
init_telegramBot();
|
|
374038
374011
|
init_telegramSignals();
|
|
374012
|
+
init_messageQueueManager();
|
|
374039
374013
|
React59 = __toESM(require_react(), 1);
|
|
374040
374014
|
jsx_dev_runtime196 = __toESM(require_jsx_dev_runtime(), 1);
|
|
374041
374015
|
STOP_PATTERNS2 = [
|
|
@@ -374348,36 +374322,37 @@ async function saveTelegramConfig(token, chatId) {
|
|
|
374348
374322
|
const configPath = join107(configDir, "telegram.json");
|
|
374349
374323
|
await writeFile30(configPath, JSON.stringify({ token, chatId }, null, 2), "utf-8");
|
|
374350
374324
|
}
|
|
374351
|
-
function TelegramStatus({
|
|
374325
|
+
function TelegramStatus({
|
|
374326
|
+
onDone
|
|
374327
|
+
}) {
|
|
374352
374328
|
const active = isTelegramActive();
|
|
374353
374329
|
const configured = isTelegramConfigured();
|
|
374354
|
-
React60.
|
|
374355
|
-
|
|
374356
|
-
return
|
|
374357
|
-
|
|
374330
|
+
const [showSetup, setShowSetup] = React60.useState(false);
|
|
374331
|
+
if (showSetup) {
|
|
374332
|
+
return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(TelegramSetup, {
|
|
374333
|
+
onDone
|
|
374334
|
+
}, undefined, false, undefined, this);
|
|
374335
|
+
}
|
|
374358
374336
|
if (active) {
|
|
374359
|
-
return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(
|
|
374360
|
-
|
|
374361
|
-
|
|
374337
|
+
return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(Dialog, {
|
|
374338
|
+
title: "Telegram Bridge",
|
|
374339
|
+
onCancel: () => onDone(),
|
|
374340
|
+
hideInputGuide: true,
|
|
374362
374341
|
children: [
|
|
374363
|
-
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374364
|
-
bold: true,
|
|
374365
|
-
color: "#6366f1",
|
|
374366
|
-
children: "◆ Telegram Bridge"
|
|
374367
|
-
}, undefined, false, undefined, this),
|
|
374368
|
-
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374369
|
-
color: "green",
|
|
374370
|
-
children: " ● Active — bot is polling"
|
|
374371
|
-
}, undefined, false, undefined, this),
|
|
374372
|
-
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374373
|
-
dimColor: true,
|
|
374374
|
-
children: ` Chat ID: ${getTelegramChatId()}`
|
|
374375
|
-
}, undefined, false, undefined, this),
|
|
374376
374342
|
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedBox_default, {
|
|
374377
374343
|
flexDirection: "column",
|
|
374378
|
-
marginLeft: 2,
|
|
374379
|
-
marginTop: 1,
|
|
374380
374344
|
children: [
|
|
374345
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374346
|
+
color: "green",
|
|
374347
|
+
children: "● Active — bot is polling"
|
|
374348
|
+
}, undefined, false, undefined, this),
|
|
374349
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374350
|
+
dimColor: true,
|
|
374351
|
+
children: `Chat ID: ${getTelegramChatId()}`
|
|
374352
|
+
}, undefined, false, undefined, this),
|
|
374353
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374354
|
+
children: ""
|
|
374355
|
+
}, undefined, false, undefined, this),
|
|
374381
374356
|
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374382
374357
|
dimColor: true,
|
|
374383
374358
|
children: "Messages from Telegram are injected into /keepgoing and /director rounds."
|
|
@@ -374391,23 +374366,55 @@ function TelegramStatus({ onReady }) {
|
|
|
374391
374366
|
children: "Send /stop to stop current task, /kill to stop all instances."
|
|
374392
374367
|
}, undefined, false, undefined, this)
|
|
374393
374368
|
]
|
|
374394
|
-
}, undefined, true, undefined, this)
|
|
374369
|
+
}, undefined, true, undefined, this),
|
|
374370
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(Select, {
|
|
374371
|
+
options: [
|
|
374372
|
+
{ label: "OK", value: "ok" },
|
|
374373
|
+
{ label: "Reconfigure — run setup again", value: "setup" }
|
|
374374
|
+
],
|
|
374375
|
+
onChange: (v2) => {
|
|
374376
|
+
if (v2 === "setup")
|
|
374377
|
+
setShowSetup(true);
|
|
374378
|
+
else
|
|
374379
|
+
onDone(undefined);
|
|
374380
|
+
}
|
|
374381
|
+
}, undefined, false, undefined, this)
|
|
374395
374382
|
]
|
|
374396
374383
|
}, undefined, true, undefined, this);
|
|
374397
374384
|
}
|
|
374398
374385
|
if (configured) {
|
|
374399
|
-
return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(
|
|
374400
|
-
|
|
374401
|
-
|
|
374386
|
+
return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(Dialog, {
|
|
374387
|
+
title: "Telegram Bridge",
|
|
374388
|
+
onCancel: () => onDone(),
|
|
374389
|
+
hideInputGuide: true,
|
|
374402
374390
|
children: [
|
|
374403
|
-
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(
|
|
374404
|
-
|
|
374405
|
-
|
|
374406
|
-
|
|
374407
|
-
|
|
374408
|
-
|
|
374409
|
-
|
|
374410
|
-
|
|
374391
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedBox_default, {
|
|
374392
|
+
flexDirection: "column",
|
|
374393
|
+
children: [
|
|
374394
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374395
|
+
color: "yellow",
|
|
374396
|
+
children: "◌ Configured but not active (init failed — check token/chat ID)"
|
|
374397
|
+
}, undefined, false, undefined, this),
|
|
374398
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374399
|
+
children: ""
|
|
374400
|
+
}, undefined, false, undefined, this),
|
|
374401
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(ThemedText, {
|
|
374402
|
+
dimColor: true,
|
|
374403
|
+
children: "The saved credentials may be invalid or expired."
|
|
374404
|
+
}, undefined, false, undefined, this)
|
|
374405
|
+
]
|
|
374406
|
+
}, undefined, true, undefined, this),
|
|
374407
|
+
/* @__PURE__ */ jsx_dev_runtime197.jsxDEV(Select, {
|
|
374408
|
+
options: [
|
|
374409
|
+
{ label: "Reconfigure — run setup again", value: "setup" },
|
|
374410
|
+
{ label: "Cancel", value: "cancel" }
|
|
374411
|
+
],
|
|
374412
|
+
onChange: (v2) => {
|
|
374413
|
+
if (v2 === "setup")
|
|
374414
|
+
setShowSetup(true);
|
|
374415
|
+
else
|
|
374416
|
+
onDone(undefined);
|
|
374417
|
+
}
|
|
374411
374418
|
}, undefined, false, undefined, this)
|
|
374412
374419
|
]
|
|
374413
374420
|
}, undefined, true, undefined, this);
|
|
@@ -374468,7 +374475,7 @@ var React60, jsx_dev_runtime197, call21 = async (onDone, _context, args) => {
|
|
|
374468
374475
|
}, undefined, false, undefined, this);
|
|
374469
374476
|
}
|
|
374470
374477
|
return /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(TelegramStatus, {
|
|
374471
|
-
|
|
374478
|
+
onDone: (msg) => onDone(msg)
|
|
374472
374479
|
}, undefined, false, undefined, this);
|
|
374473
374480
|
}
|
|
374474
374481
|
if (!isTelegramActive()) {
|
|
@@ -376876,7 +376883,7 @@ function Help(t0) {
|
|
|
376876
376883
|
let t6;
|
|
376877
376884
|
if ($2[31] !== tabs) {
|
|
376878
376885
|
t6 = /* @__PURE__ */ jsx_dev_runtime208.jsxDEV(Tabs, {
|
|
376879
|
-
title: `localclawd v${"1.2.
|
|
376886
|
+
title: `localclawd v${"1.2.3"}`,
|
|
376880
376887
|
color: "professionalBlue",
|
|
376881
376888
|
defaultTab: "general",
|
|
376882
376889
|
children: tabs
|
|
@@ -393109,7 +393116,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
393109
393116
|
return [];
|
|
393110
393117
|
}
|
|
393111
393118
|
}
|
|
393112
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.2.
|
|
393119
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.2.3") {
|
|
393113
393120
|
if (process.env.USER_TYPE === "ant") {
|
|
393114
393121
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
393115
393122
|
if (changelog) {
|
|
@@ -393136,7 +393143,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.2.2") {
|
|
|
393136
393143
|
releaseNotes
|
|
393137
393144
|
};
|
|
393138
393145
|
}
|
|
393139
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.2.
|
|
393146
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.2.3") {
|
|
393140
393147
|
if (process.env.USER_TYPE === "ant") {
|
|
393141
393148
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
393142
393149
|
if (changelog) {
|
|
@@ -394394,7 +394401,7 @@ function getRecentActivitySync() {
|
|
|
394394
394401
|
return cachedActivity;
|
|
394395
394402
|
}
|
|
394396
394403
|
function getLogoDisplayData() {
|
|
394397
|
-
const version = process.env.DEMO_VERSION ?? "1.2.
|
|
394404
|
+
const version = process.env.DEMO_VERSION ?? "1.2.3";
|
|
394398
394405
|
const serverUrl = getDirectConnectServerUrl();
|
|
394399
394406
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
394400
394407
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -395501,7 +395508,7 @@ function Logo() {
|
|
|
395501
395508
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
395502
395509
|
t2 = () => {
|
|
395503
395510
|
const currentConfig = getGlobalConfig();
|
|
395504
|
-
if (currentConfig.lastReleaseNotesSeen === "1.2.
|
|
395511
|
+
if (currentConfig.lastReleaseNotesSeen === "1.2.3") {
|
|
395505
395512
|
return;
|
|
395506
395513
|
}
|
|
395507
395514
|
saveGlobalConfig(_temp326);
|
|
@@ -396160,12 +396167,12 @@ function Logo() {
|
|
|
396160
396167
|
return t41;
|
|
396161
396168
|
}
|
|
396162
396169
|
function _temp326(current) {
|
|
396163
|
-
if (current.lastReleaseNotesSeen === "1.2.
|
|
396170
|
+
if (current.lastReleaseNotesSeen === "1.2.3") {
|
|
396164
396171
|
return current;
|
|
396165
396172
|
}
|
|
396166
396173
|
return {
|
|
396167
396174
|
...current,
|
|
396168
|
-
lastReleaseNotesSeen: "1.2.
|
|
396175
|
+
lastReleaseNotesSeen: "1.2.3"
|
|
396169
396176
|
};
|
|
396170
396177
|
}
|
|
396171
396178
|
function _temp241(s_0) {
|
|
@@ -426644,7 +426651,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
426644
426651
|
smapsRollup,
|
|
426645
426652
|
platform: process.platform,
|
|
426646
426653
|
nodeVersion: process.version,
|
|
426647
|
-
ccVersion: "1.2.
|
|
426654
|
+
ccVersion: "1.2.3"
|
|
426648
426655
|
};
|
|
426649
426656
|
}
|
|
426650
426657
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -427229,7 +427236,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
427229
427236
|
var call60 = async () => {
|
|
427230
427237
|
return {
|
|
427231
427238
|
type: "text",
|
|
427232
|
-
value: `${"1.2.
|
|
427239
|
+
value: `${"1.2.3"} (built ${"2026-04-18T19:07:42.573Z"})`
|
|
427233
427240
|
};
|
|
427234
427241
|
}, version, version_default;
|
|
427235
427242
|
var init_version = __esm(() => {
|
|
@@ -435173,7 +435180,7 @@ function generateHtmlReport(data, insights) {
|
|
|
435173
435180
|
</html>`;
|
|
435174
435181
|
}
|
|
435175
435182
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
435176
|
-
const version2 = typeof MACRO !== "undefined" ? "1.2.
|
|
435183
|
+
const version2 = typeof MACRO !== "undefined" ? "1.2.3" : "unknown";
|
|
435177
435184
|
const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
|
|
435178
435185
|
const facets_summary = {
|
|
435179
435186
|
total: facets.size,
|
|
@@ -439321,7 +439328,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
439321
439328
|
init_settings2();
|
|
439322
439329
|
init_slowOperations();
|
|
439323
439330
|
init_uuid();
|
|
439324
|
-
VERSION6 = typeof MACRO !== "undefined" ? "1.2.
|
|
439331
|
+
VERSION6 = typeof MACRO !== "undefined" ? "1.2.3" : "unknown";
|
|
439325
439332
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
439326
439333
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
439327
439334
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -440523,7 +440530,7 @@ var init_filesystem = __esm(() => {
|
|
|
440523
440530
|
});
|
|
440524
440531
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
440525
440532
|
const nonce = randomBytes19(16).toString("hex");
|
|
440526
|
-
return join129(getClaudeTempDir(), "bundled-skills", "1.2.
|
|
440533
|
+
return join129(getClaudeTempDir(), "bundled-skills", "1.2.3", nonce);
|
|
440527
440534
|
});
|
|
440528
440535
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
440529
440536
|
});
|
|
@@ -449808,7 +449815,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
449808
449815
|
slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
|
|
449809
449816
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
449810
449817
|
betas: getSdkBetas(),
|
|
449811
|
-
claude_code_version: "1.2.
|
|
449818
|
+
claude_code_version: "1.2.3",
|
|
449812
449819
|
output_style: outputStyle2,
|
|
449813
449820
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
449814
449821
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -464387,7 +464394,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
464387
464394
|
function getSemverPart(version2) {
|
|
464388
464395
|
return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
|
|
464389
464396
|
}
|
|
464390
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.2.
|
|
464397
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.2.3") {
|
|
464391
464398
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
|
|
464392
464399
|
if (!updatedVersion) {
|
|
464393
464400
|
return null;
|
|
@@ -464427,7 +464434,7 @@ function AutoUpdater({
|
|
|
464427
464434
|
return;
|
|
464428
464435
|
}
|
|
464429
464436
|
if (false) {}
|
|
464430
|
-
const currentVersion = "1.2.
|
|
464437
|
+
const currentVersion = "1.2.3";
|
|
464431
464438
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
464432
464439
|
let latestVersion = await getLatestVersion(channel);
|
|
464433
464440
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -464638,12 +464645,12 @@ function NativeAutoUpdater({
|
|
|
464638
464645
|
logEvent("tengu_native_auto_updater_start", {});
|
|
464639
464646
|
try {
|
|
464640
464647
|
const maxVersion = await getMaxVersion();
|
|
464641
|
-
if (maxVersion && gt("1.2.
|
|
464648
|
+
if (maxVersion && gt("1.2.3", maxVersion)) {
|
|
464642
464649
|
const msg = await getMaxVersionMessage();
|
|
464643
464650
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
464644
464651
|
}
|
|
464645
464652
|
const result = await installLatest(channel);
|
|
464646
|
-
const currentVersion = "1.2.
|
|
464653
|
+
const currentVersion = "1.2.3";
|
|
464647
464654
|
const latencyMs = Date.now() - startTime;
|
|
464648
464655
|
if (result.lockFailed) {
|
|
464649
464656
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -464778,17 +464785,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
464778
464785
|
const maxVersion = await getMaxVersion();
|
|
464779
464786
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
464780
464787
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
464781
|
-
if (gte("1.2.
|
|
464782
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.2.
|
|
464788
|
+
if (gte("1.2.3", maxVersion)) {
|
|
464789
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.2.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
464783
464790
|
setUpdateAvailable(false);
|
|
464784
464791
|
return;
|
|
464785
464792
|
}
|
|
464786
464793
|
latest = maxVersion;
|
|
464787
464794
|
}
|
|
464788
|
-
const hasUpdate = latest && !gte("1.2.
|
|
464795
|
+
const hasUpdate = latest && !gte("1.2.3", latest) && !shouldSkipVersion(latest);
|
|
464789
464796
|
setUpdateAvailable(!!hasUpdate);
|
|
464790
464797
|
if (hasUpdate) {
|
|
464791
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.2.
|
|
464798
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.2.3"} -> ${latest}`);
|
|
464792
464799
|
}
|
|
464793
464800
|
};
|
|
464794
464801
|
$2[0] = t1;
|
|
@@ -464822,7 +464829,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
464822
464829
|
wrap: "truncate",
|
|
464823
464830
|
children: [
|
|
464824
464831
|
"currentVersion: ",
|
|
464825
|
-
"1.2.
|
|
464832
|
+
"1.2.3"
|
|
464826
464833
|
]
|
|
464827
464834
|
}, undefined, true, undefined, this);
|
|
464828
464835
|
$2[3] = verbose;
|
|
@@ -472380,7 +472387,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
472380
472387
|
project_dir: getOriginalCwd(),
|
|
472381
472388
|
added_dirs: addedDirs
|
|
472382
472389
|
},
|
|
472383
|
-
version: "1.2.
|
|
472390
|
+
version: "1.2.3",
|
|
472384
472391
|
output_style: {
|
|
472385
472392
|
name: outputStyleName
|
|
472386
472393
|
},
|
|
@@ -479591,15 +479598,15 @@ function CancelRequestHandler(props) {
|
|
|
479591
479598
|
setToolUseConfirmQueue(() => []);
|
|
479592
479599
|
if (hasCommandsInQueue()) {
|
|
479593
479600
|
globalStopSignal.set(true);
|
|
479601
|
+
clearCommandQueue();
|
|
479594
479602
|
}
|
|
479595
479603
|
onCancel();
|
|
479596
479604
|
return;
|
|
479597
479605
|
}
|
|
479598
479606
|
if (hasCommandsInQueue()) {
|
|
479599
|
-
|
|
479600
|
-
|
|
479601
|
-
|
|
479602
|
-
}
|
|
479607
|
+
globalStopSignal.set(true);
|
|
479608
|
+
clearCommandQueue();
|
|
479609
|
+
return;
|
|
479603
479610
|
}
|
|
479604
479611
|
logEvent("tengu_cancel", cancelProps);
|
|
479605
479612
|
setToolUseConfirmQueue(() => []);
|
|
@@ -483952,7 +483959,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
483952
483959
|
} catch {}
|
|
483953
483960
|
const data = {
|
|
483954
483961
|
trigger,
|
|
483955
|
-
version: "1.2.
|
|
483962
|
+
version: "1.2.3",
|
|
483956
483963
|
platform: process.platform,
|
|
483957
483964
|
transcript,
|
|
483958
483965
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -486217,7 +486224,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
486217
486224
|
},
|
|
486218
486225
|
{
|
|
486219
486226
|
id: "git-worktrees",
|
|
486220
|
-
content: async () => "Use git worktrees to run multiple
|
|
486227
|
+
content: async () => "Use git worktrees to run multiple localclawd sessions in parallel.",
|
|
486221
486228
|
cooldownSessions: 10,
|
|
486222
486229
|
isRelevant: async () => {
|
|
486223
486230
|
try {
|
|
@@ -486231,7 +486238,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
486231
486238
|
},
|
|
486232
486239
|
{
|
|
486233
486240
|
id: "color-when-multi-clauding",
|
|
486234
|
-
content: async () => "Running multiple
|
|
486241
|
+
content: async () => "Running multiple localclawd sessions? Use /color and /rename to tell them apart at a glance.",
|
|
486235
486242
|
cooldownSessions: 10,
|
|
486236
486243
|
isRelevant: async () => {
|
|
486237
486244
|
if (getCurrentSessionAgentColor())
|
|
@@ -486275,7 +486282,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
486275
486282
|
},
|
|
486276
486283
|
{
|
|
486277
486284
|
id: "memory-command",
|
|
486278
|
-
content: async () => "Use /memory to view and manage
|
|
486285
|
+
content: async () => "Use /memory to view and manage localclawd memory",
|
|
486279
486286
|
cooldownSessions: 15,
|
|
486280
486287
|
async isRelevant() {
|
|
486281
486288
|
const config2 = getGlobalConfig();
|
|
@@ -486352,7 +486359,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
486352
486359
|
},
|
|
486353
486360
|
{
|
|
486354
486361
|
id: "ide-upsell-external-terminal",
|
|
486355
|
-
content: async () => "Connect
|
|
486362
|
+
content: async () => "Connect localclawd to your IDE · /ide",
|
|
486356
486363
|
cooldownSessions: 4,
|
|
486357
486364
|
async isRelevant() {
|
|
486358
486365
|
if (isSupportedTerminal()) {
|
|
@@ -486366,12 +486373,6 @@ var init_tipRegistry = __esm(() => {
|
|
|
486366
486373
|
return runningIDEs.length > 0;
|
|
486367
486374
|
}
|
|
486368
486375
|
},
|
|
486369
|
-
{
|
|
486370
|
-
id: "install-slack-app",
|
|
486371
|
-
content: async () => "Run /install-slack-app to use Claude in Slack",
|
|
486372
|
-
cooldownSessions: 10,
|
|
486373
|
-
isRelevant: async () => !getGlobalConfig().slackAppInstallCount
|
|
486374
|
-
},
|
|
486375
486376
|
{
|
|
486376
486377
|
id: "permissions",
|
|
486377
486378
|
content: async () => "Use /permissions to pre-approve and pre-deny bash, edit, and MCP tools",
|
|
@@ -486407,7 +486408,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
486407
486408
|
},
|
|
486408
486409
|
{
|
|
486409
486410
|
id: "continue",
|
|
486410
|
-
content: async () => "Run
|
|
486411
|
+
content: async () => "Run localclawd --continue or localclawd --resume to resume a conversation",
|
|
486411
486412
|
cooldownSessions: 10,
|
|
486412
486413
|
isRelevant: async () => true
|
|
486413
486414
|
},
|
|
@@ -486489,7 +486490,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
486489
486490
|
},
|
|
486490
486491
|
{
|
|
486491
486492
|
id: "opusplan-mode-reminder",
|
|
486492
|
-
content: async () => `
|
|
486493
|
+
content: async () => `Press ${getShortcutDisplay("chat:cycleMode", "Chat", "shift+tab")} twice to activate Plan Mode.`,
|
|
486493
486494
|
cooldownSessions: 2,
|
|
486494
486495
|
async isRelevant() {
|
|
486495
486496
|
if (process.env.USER_TYPE === "ant")
|
|
@@ -486532,7 +486533,7 @@ ${blue(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
|
|
|
486532
486533
|
const blue = color("suggestion", ctx2.theme);
|
|
486533
486534
|
const cmd = blue("/effort high");
|
|
486534
486535
|
const variant = getFeatureValue_CACHED_MAY_BE_STALE("tengu_tide_elm", "off");
|
|
486535
|
-
return variant === "copy_b" ? `Use ${cmd} for better one-shot answers
|
|
486536
|
+
return variant === "copy_b" ? `Use ${cmd} for better one-shot answers.` : `Working on something tricky? ${cmd} gives better first answers`;
|
|
486536
486537
|
},
|
|
486537
486538
|
cooldownSessions: 3,
|
|
486538
486539
|
isRelevant: async () => {
|
|
@@ -500417,7 +500418,7 @@ function appendToLog(path17, message) {
|
|
|
500417
500418
|
cwd: getFsImplementation().cwd(),
|
|
500418
500419
|
userType: process.env.USER_TYPE,
|
|
500419
500420
|
sessionId: getSessionId(),
|
|
500420
|
-
version: "1.2.
|
|
500421
|
+
version: "1.2.3"
|
|
500421
500422
|
};
|
|
500422
500423
|
getLogWriter(path17).write(messageWithTimestamp);
|
|
500423
500424
|
}
|
|
@@ -504416,8 +504417,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
504416
504417
|
}
|
|
504417
504418
|
async function checkEnvLessBridgeMinVersion() {
|
|
504418
504419
|
const cfg = await getEnvLessBridgeConfig();
|
|
504419
|
-
if (cfg.min_version && lt("1.2.
|
|
504420
|
-
return `Your version of localclawd (${"1.2.
|
|
504420
|
+
if (cfg.min_version && lt("1.2.3", cfg.min_version)) {
|
|
504421
|
+
return `Your version of localclawd (${"1.2.3"}) is too old for Remote Control.
|
|
504421
504422
|
Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
|
|
504422
504423
|
}
|
|
504423
504424
|
return null;
|
|
@@ -504889,7 +504890,7 @@ async function initBridgeCore(params) {
|
|
|
504889
504890
|
const rawApi = createBridgeApiClient({
|
|
504890
504891
|
baseUrl,
|
|
504891
504892
|
getAccessToken,
|
|
504892
|
-
runnerVersion: "1.2.
|
|
504893
|
+
runnerVersion: "1.2.3",
|
|
504893
504894
|
onDebug: logForDebugging,
|
|
504894
504895
|
onAuth401,
|
|
504895
504896
|
getTrustedDeviceToken
|
|
@@ -510608,7 +510609,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
510608
510609
|
setCwd(cwd3);
|
|
510609
510610
|
const server = new Server({
|
|
510610
510611
|
name: "claude/tengu",
|
|
510611
|
-
version: "1.2.
|
|
510612
|
+
version: "1.2.3"
|
|
510612
510613
|
}, {
|
|
510613
510614
|
capabilities: {
|
|
510614
510615
|
tools: {}
|
|
@@ -511689,7 +511690,7 @@ function WelcomeLogo() {
|
|
|
511689
511690
|
dimColor: true,
|
|
511690
511691
|
children: [
|
|
511691
511692
|
"v",
|
|
511692
|
-
"1.2.
|
|
511693
|
+
"1.2.3"
|
|
511693
511694
|
]
|
|
511694
511695
|
}, undefined, true, undefined, this)
|
|
511695
511696
|
]
|
|
@@ -511880,7 +511881,7 @@ __export(exports_update, {
|
|
|
511880
511881
|
});
|
|
511881
511882
|
async function update() {
|
|
511882
511883
|
logEvent("tengu_update_check", {});
|
|
511883
|
-
writeToStdout(`Current version: ${"1.2.
|
|
511884
|
+
writeToStdout(`Current version: ${"1.2.3"}
|
|
511884
511885
|
`);
|
|
511885
511886
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
511886
511887
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -511955,8 +511956,8 @@ async function update() {
|
|
|
511955
511956
|
writeToStdout(`localclawd is managed by Homebrew.
|
|
511956
511957
|
`);
|
|
511957
511958
|
const latest = await getLatestVersion(channel);
|
|
511958
|
-
if (latest && !gte("1.2.
|
|
511959
|
-
writeToStdout(`Update available: ${"1.2.
|
|
511959
|
+
if (latest && !gte("1.2.3", latest)) {
|
|
511960
|
+
writeToStdout(`Update available: ${"1.2.3"} → ${latest}
|
|
511960
511961
|
`);
|
|
511961
511962
|
writeToStdout(`
|
|
511962
511963
|
`);
|
|
@@ -511972,8 +511973,8 @@ async function update() {
|
|
|
511972
511973
|
writeToStdout(`localclawd is managed by winget.
|
|
511973
511974
|
`);
|
|
511974
511975
|
const latest = await getLatestVersion(channel);
|
|
511975
|
-
if (latest && !gte("1.2.
|
|
511976
|
-
writeToStdout(`Update available: ${"1.2.
|
|
511976
|
+
if (latest && !gte("1.2.3", latest)) {
|
|
511977
|
+
writeToStdout(`Update available: ${"1.2.3"} → ${latest}
|
|
511977
511978
|
`);
|
|
511978
511979
|
writeToStdout(`
|
|
511979
511980
|
`);
|
|
@@ -511987,8 +511988,8 @@ async function update() {
|
|
|
511987
511988
|
writeToStdout(`localclawd is managed by apk.
|
|
511988
511989
|
`);
|
|
511989
511990
|
const latest = await getLatestVersion(channel);
|
|
511990
|
-
if (latest && !gte("1.2.
|
|
511991
|
-
writeToStdout(`Update available: ${"1.2.
|
|
511991
|
+
if (latest && !gte("1.2.3", latest)) {
|
|
511992
|
+
writeToStdout(`Update available: ${"1.2.3"} → ${latest}
|
|
511992
511993
|
`);
|
|
511993
511994
|
writeToStdout(`
|
|
511994
511995
|
`);
|
|
@@ -512053,11 +512054,11 @@ async function update() {
|
|
|
512053
512054
|
`);
|
|
512054
512055
|
await gracefulShutdown(1);
|
|
512055
512056
|
}
|
|
512056
|
-
if (result.latestVersion === "1.2.
|
|
512057
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"1.2.
|
|
512057
|
+
if (result.latestVersion === "1.2.3") {
|
|
512058
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"1.2.3"})`) + `
|
|
512058
512059
|
`);
|
|
512059
512060
|
} else {
|
|
512060
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.2.
|
|
512061
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.2.3"} to version ${result.latestVersion}`) + `
|
|
512061
512062
|
`);
|
|
512062
512063
|
await regenerateCompletionCache();
|
|
512063
512064
|
}
|
|
@@ -512117,12 +512118,12 @@ async function update() {
|
|
|
512117
512118
|
`);
|
|
512118
512119
|
await gracefulShutdown(1);
|
|
512119
512120
|
}
|
|
512120
|
-
if (latestVersion === "1.2.
|
|
512121
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"1.2.
|
|
512121
|
+
if (latestVersion === "1.2.3") {
|
|
512122
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"1.2.3"})`) + `
|
|
512122
512123
|
`);
|
|
512123
512124
|
await gracefulShutdown(0);
|
|
512124
512125
|
}
|
|
512125
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.2.
|
|
512126
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.2.3"})
|
|
512126
512127
|
`);
|
|
512127
512128
|
writeToStdout(`Installing update...
|
|
512128
512129
|
`);
|
|
@@ -512167,7 +512168,7 @@ async function update() {
|
|
|
512167
512168
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
512168
512169
|
switch (status2) {
|
|
512169
512170
|
case "success":
|
|
512170
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.2.
|
|
512171
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.2.3"} to version ${latestVersion}`) + `
|
|
512171
512172
|
`);
|
|
512172
512173
|
await regenerateCompletionCache();
|
|
512173
512174
|
break;
|
|
@@ -513409,7 +513410,7 @@ Run with --debug for more details.
|
|
|
513409
513410
|
}
|
|
513410
513411
|
}
|
|
513411
513412
|
logForDiagnosticsNoPII("info", "started", {
|
|
513412
|
-
version: "1.2.
|
|
513413
|
+
version: "1.2.3",
|
|
513413
513414
|
is_native_binary: isInBundledMode()
|
|
513414
513415
|
});
|
|
513415
513416
|
registerCleanup(async () => {
|
|
@@ -514193,7 +514194,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
514193
514194
|
pendingHookMessages
|
|
514194
514195
|
}, renderAndRun);
|
|
514195
514196
|
}
|
|
514196
|
-
}).version("1.2.
|
|
514197
|
+
}).version("1.2.3 (localclawd)", "-v, --version", "Output the version number");
|
|
514197
514198
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
514198
514199
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
514199
514200
|
if (canUserConfigureAdvisor()) {
|
|
@@ -514693,7 +514694,7 @@ if (false) {}
|
|
|
514693
514694
|
async function main2() {
|
|
514694
514695
|
const args = process.argv.slice(2);
|
|
514695
514696
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
514696
|
-
console.log(`${"1.2.
|
|
514697
|
+
console.log(`${"1.2.3"} (localclawd)`);
|
|
514697
514698
|
return;
|
|
514698
514699
|
}
|
|
514699
514700
|
const {
|
|
@@ -514776,4 +514777,4 @@ localclawd crashed: ${msg}
|
|
|
514776
514777
|
process.exit(1);
|
|
514777
514778
|
});
|
|
514778
514779
|
|
|
514779
|
-
//# debugId=
|
|
514780
|
+
//# debugId=D9814C9770A3639464756E2164756E21
|