localclawd 1.1.34 → 1.1.35
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 +108 -111
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -87696,7 +87696,7 @@ var init_isEqual = __esm(() => {
|
|
|
87696
87696
|
|
|
87697
87697
|
// src/utils/userAgent.ts
|
|
87698
87698
|
function getClaudeCodeUserAgent() {
|
|
87699
|
-
return `claude-code/${"1.1.
|
|
87699
|
+
return `claude-code/${"1.1.35"}`;
|
|
87700
87700
|
}
|
|
87701
87701
|
|
|
87702
87702
|
// src/utils/workloadContext.ts
|
|
@@ -87718,7 +87718,7 @@ function getUserAgent() {
|
|
|
87718
87718
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
87719
87719
|
const workload = getWorkload();
|
|
87720
87720
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
87721
|
-
return `claude-cli/${"1.1.
|
|
87721
|
+
return `claude-cli/${"1.1.35"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
87722
87722
|
}
|
|
87723
87723
|
function getMCPUserAgent() {
|
|
87724
87724
|
const parts = [];
|
|
@@ -87732,7 +87732,7 @@ function getMCPUserAgent() {
|
|
|
87732
87732
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
87733
87733
|
}
|
|
87734
87734
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
87735
|
-
return `claude-code/${"1.1.
|
|
87735
|
+
return `claude-code/${"1.1.35"}${suffix}`;
|
|
87736
87736
|
}
|
|
87737
87737
|
function getWebFetchUserAgent() {
|
|
87738
87738
|
return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -97347,15 +97347,15 @@ function getSubscriptionName() {
|
|
|
97347
97347
|
const subscriptionType = getSubscriptionType();
|
|
97348
97348
|
switch (subscriptionType) {
|
|
97349
97349
|
case "enterprise":
|
|
97350
|
-
return "
|
|
97350
|
+
return "localclawd Enterprise";
|
|
97351
97351
|
case "team":
|
|
97352
|
-
return "
|
|
97352
|
+
return "localclawd Team";
|
|
97353
97353
|
case "max":
|
|
97354
|
-
return "
|
|
97354
|
+
return "localclawd Max";
|
|
97355
97355
|
case "pro":
|
|
97356
|
-
return "
|
|
97356
|
+
return "localclawd Pro";
|
|
97357
97357
|
default:
|
|
97358
|
-
return "
|
|
97358
|
+
return "localclawd API";
|
|
97359
97359
|
}
|
|
97360
97360
|
}
|
|
97361
97361
|
function isUsing3PServices() {
|
|
@@ -98417,9 +98417,9 @@ function renderModelName(model) {
|
|
|
98417
98417
|
function getPublicModelName(model) {
|
|
98418
98418
|
const publicName = getPublicModelDisplayName(model);
|
|
98419
98419
|
if (publicName) {
|
|
98420
|
-
return `
|
|
98420
|
+
return `localclawd ${publicName}`;
|
|
98421
98421
|
}
|
|
98422
|
-
return `
|
|
98422
|
+
return `localclawd (${model})`;
|
|
98423
98423
|
}
|
|
98424
98424
|
function parseUserSpecifiedModel(modelInput) {
|
|
98425
98425
|
const modelInputTrimmed = modelInput.trim();
|
|
@@ -130956,7 +130956,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
130956
130956
|
if (!isAttributionHeaderEnabled()) {
|
|
130957
130957
|
return "";
|
|
130958
130958
|
}
|
|
130959
|
-
const version = `${"1.1.
|
|
130959
|
+
const version = `${"1.1.35"}.${fingerprint}`;
|
|
130960
130960
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
130961
130961
|
const cch = "";
|
|
130962
130962
|
const workload = getWorkload();
|
|
@@ -145224,10 +145224,10 @@ var SEND_MESSAGE_TOOL_NAME = "SendMessage";
|
|
|
145224
145224
|
function getWebSearchPrompt() {
|
|
145225
145225
|
const currentMonthYear = getLocalMonthYear();
|
|
145226
145226
|
return `
|
|
145227
|
-
- Allows
|
|
145227
|
+
- Allows localclawd to search the web and use the results to inform responses
|
|
145228
145228
|
- Provides up-to-date information for current events and recent data
|
|
145229
145229
|
- Returns search result information formatted as search result blocks, including links as markdown hyperlinks
|
|
145230
|
-
- Use this tool for accessing information beyond
|
|
145230
|
+
- Use this tool for accessing information beyond localclawd's knowledge cutoff
|
|
145231
145231
|
- Searches are performed automatically within a single API call
|
|
145232
145232
|
|
|
145233
145233
|
CRITICAL REQUIREMENT - You MUST follow this:
|
|
@@ -145259,15 +145259,15 @@ var init_prompt4 = __esm(() => {
|
|
|
145259
145259
|
// src/tools/AgentTool/built-in/guideAgent.ts
|
|
145260
145260
|
function getClaudeCodeGuideBasePrompt() {
|
|
145261
145261
|
const localSearchHint = hasEmbeddedSearchTools() ? `${FILE_READ_TOOL_NAME}, \`find\`, and \`grep\`` : `${FILE_READ_TOOL_NAME}, ${GLOB_TOOL_NAME}, and ${GREP_TOOL_NAME}`;
|
|
145262
|
-
return `You are the
|
|
145262
|
+
return `You are the localclawd guide agent. Your primary responsibility is helping users understand and use localclawd effectively.
|
|
145263
145263
|
|
|
145264
145264
|
**Your expertise spans three domains:**
|
|
145265
145265
|
|
|
145266
145266
|
1. **localclawd** (the CLI tool): Installation, configuration, hooks, skills, MCP servers, keyboard shortcuts, IDE integrations, settings, and workflows.
|
|
145267
145267
|
|
|
145268
|
-
2. **
|
|
145268
|
+
2. **localclawd Agent SDK**: A framework for building custom AI agents based on localclawd technology. Available for Node.js/TypeScript and Python.
|
|
145269
145269
|
|
|
145270
|
-
3. **
|
|
145270
|
+
3. **localclawd API**: The localclawd API for direct model interaction, tool use, and integrations.
|
|
145271
145271
|
|
|
145272
145272
|
**Documentation sources:**
|
|
145273
145273
|
|
|
@@ -145282,16 +145282,16 @@ function getClaudeCodeGuideBasePrompt() {
|
|
|
145282
145282
|
- Subagents and plugins
|
|
145283
145283
|
- Sandboxing and security
|
|
145284
145284
|
|
|
145285
|
-
- **
|
|
145285
|
+
- **localclawd Agent SDK docs** (${CDP_DOCS_MAP_URL}): Fetch this for questions about building agents with the SDK, including:
|
|
145286
145286
|
- SDK overview and getting started (Python and TypeScript)
|
|
145287
145287
|
- Agent configuration + custom tools
|
|
145288
145288
|
- Session management and permissions
|
|
145289
145289
|
- MCP integration in agents
|
|
145290
145290
|
- Hosting and deployment
|
|
145291
145291
|
- Cost tracking and context management
|
|
145292
|
-
Note: Agent SDK docs are part of the
|
|
145292
|
+
Note: Agent SDK docs are part of the localclawd API documentation at the same URL.
|
|
145293
145293
|
|
|
145294
|
-
- **
|
|
145294
|
+
- **localclawd API docs** (${CDP_DOCS_MAP_URL}): Fetch this for questions about the localclawd API, including:
|
|
145295
145295
|
- Messages API and streaming
|
|
145296
145296
|
- Tool use (function calling) and Anthropic-defined tools (computer use, code execution, web search, text editor, bash, programmatic tool calling, tool search tool, context editing, Files API, structured outputs)
|
|
145297
145297
|
- Vision, PDF support, and citations
|
|
@@ -145334,7 +145334,7 @@ var init_guideAgent = __esm(() => {
|
|
|
145334
145334
|
init_slowOperations();
|
|
145335
145335
|
CLAUDE_CODE_GUIDE_AGENT = {
|
|
145336
145336
|
agentType: CLAUDE_CODE_GUIDE_AGENT_TYPE,
|
|
145337
|
-
whenToUse: `Use this agent when the user asks questions ("Can
|
|
145337
|
+
whenToUse: `Use this agent when the user asks questions ("Can localclawd...", "Does localclawd...", "How do I...") about: (1) localclawd (the CLI tool) - features, hooks, slash commands, MCP servers, settings, IDE integrations, keyboard shortcuts; (2) localclawd Agent SDK - building custom agents; (3) localclawd API - API usage, tool use, SDK usage. **IMPORTANT:** Before spawning a new agent, check if there is already a running or recently completed claude-code-guide agent that you can continue via ${SEND_MESSAGE_TOOL_NAME}.`,
|
|
145338
145338
|
tools: hasEmbeddedSearchTools() ? [
|
|
145339
145339
|
BASH_TOOL_NAME,
|
|
145340
145340
|
FILE_READ_TOOL_NAME,
|
|
@@ -147145,7 +147145,7 @@ var init_metadata = __esm(() => {
|
|
|
147145
147145
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
147146
147146
|
WHITESPACE_REGEX = /\s+/;
|
|
147147
147147
|
getVersionBase = memoize_default(() => {
|
|
147148
|
-
const match = "1.1.
|
|
147148
|
+
const match = "1.1.35".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
147149
147149
|
return match ? match[0] : undefined;
|
|
147150
147150
|
});
|
|
147151
147151
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -147185,9 +147185,9 @@ var init_metadata = __esm(() => {
|
|
|
147185
147185
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
147186
147186
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
147187
147187
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
147188
|
-
version: "1.1.
|
|
147188
|
+
version: "1.1.35",
|
|
147189
147189
|
versionBase: getVersionBase(),
|
|
147190
|
-
buildTime: "2026-04-
|
|
147190
|
+
buildTime: "2026-04-14T13:54:24.741Z",
|
|
147191
147191
|
deploymentEnvironment: env3.detectDeploymentEnvironment(),
|
|
147192
147192
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
147193
147193
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -149147,7 +149147,7 @@ Run /share and post the JSON file to ${MACRO.FEEDBACK_CHANNEL}.`;
|
|
|
149147
149147
|
}
|
|
149148
149148
|
if (isClaudeAISubscriber() && error5 instanceof APIError && error5.status === 400 && error5.message.toLowerCase().includes("invalid model name") && (isNonCustomOpusModel(model) || model === "opus")) {
|
|
149149
149149
|
return createAssistantAPIErrorMessage({
|
|
149150
|
-
content: "
|
|
149150
|
+
content: "Opus is not available with the Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.",
|
|
149151
149151
|
error: "invalid_request"
|
|
149152
149152
|
});
|
|
149153
149153
|
}
|
|
@@ -179543,7 +179543,7 @@ function getTelemetryAttributes() {
|
|
|
179543
179543
|
attributes["session.id"] = sessionId;
|
|
179544
179544
|
}
|
|
179545
179545
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
179546
|
-
attributes["app.version"] = "1.1.
|
|
179546
|
+
attributes["app.version"] = "1.1.35";
|
|
179547
179547
|
}
|
|
179548
179548
|
const oauthAccount = getOauthAccountInfo();
|
|
179549
179549
|
if (oauthAccount) {
|
|
@@ -242267,7 +242267,7 @@ function getInstallationEnv() {
|
|
|
242267
242267
|
return;
|
|
242268
242268
|
}
|
|
242269
242269
|
function getClaudeCodeVersion() {
|
|
242270
|
-
return "1.1.
|
|
242270
|
+
return "1.1.35";
|
|
242271
242271
|
}
|
|
242272
242272
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
242273
242273
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -247541,7 +247541,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
247541
247541
|
const client4 = new Client({
|
|
247542
247542
|
name: "localclawd",
|
|
247543
247543
|
title: "localclawd",
|
|
247544
|
-
version: "1.1.
|
|
247544
|
+
version: "1.1.35",
|
|
247545
247545
|
description: "local-first AI coding tool",
|
|
247546
247546
|
websiteUrl: PRODUCT_URL
|
|
247547
247547
|
}, {
|
|
@@ -247883,7 +247883,7 @@ var init_client9 = __esm(() => {
|
|
|
247883
247883
|
const client4 = new Client({
|
|
247884
247884
|
name: "localclawd",
|
|
247885
247885
|
title: "localclawd",
|
|
247886
|
-
version: "1.1.
|
|
247886
|
+
version: "1.1.35",
|
|
247887
247887
|
description: "local-first AI coding tool",
|
|
247888
247888
|
websiteUrl: PRODUCT_URL
|
|
247889
247889
|
}, {
|
|
@@ -262273,7 +262273,7 @@ function computeFingerprint(messageText, version) {
|
|
|
262273
262273
|
}
|
|
262274
262274
|
function computeFingerprintFromMessages(messages) {
|
|
262275
262275
|
const firstMessageText = extractFirstMessageText(messages);
|
|
262276
|
-
return computeFingerprint(firstMessageText, "1.1.
|
|
262276
|
+
return computeFingerprint(firstMessageText, "1.1.35");
|
|
262277
262277
|
}
|
|
262278
262278
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
262279
262279
|
var init_fingerprint = () => {};
|
|
@@ -262315,7 +262315,7 @@ async function sideQuery(opts) {
|
|
|
262315
262315
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
262316
262316
|
}
|
|
262317
262317
|
const messageText = extractFirstUserMessageText(messages);
|
|
262318
|
-
const fingerprint = computeFingerprint(messageText, "1.1.
|
|
262318
|
+
const fingerprint = computeFingerprint(messageText, "1.1.35");
|
|
262319
262319
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
262320
262320
|
const systemBlocks = [
|
|
262321
262321
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -283039,7 +283039,7 @@ var init_user = __esm(() => {
|
|
|
283039
283039
|
deviceId,
|
|
283040
283040
|
sessionId: getSessionId(),
|
|
283041
283041
|
email: getEmail(),
|
|
283042
|
-
appVersion: "1.1.
|
|
283042
|
+
appVersion: "1.1.35",
|
|
283043
283043
|
platform: getHostPlatformForAnalytics(),
|
|
283044
283044
|
organizationUuid,
|
|
283045
283045
|
accountUuid,
|
|
@@ -284104,7 +284104,7 @@ async function initializeBetaTracing(resource) {
|
|
|
284104
284104
|
});
|
|
284105
284105
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
284106
284106
|
setLoggerProvider(loggerProvider);
|
|
284107
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.
|
|
284107
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.35");
|
|
284108
284108
|
setEventLogger(eventLogger);
|
|
284109
284109
|
process.on("beforeExit", async () => {
|
|
284110
284110
|
await loggerProvider?.forceFlush();
|
|
@@ -284144,7 +284144,7 @@ async function initializeTelemetry() {
|
|
|
284144
284144
|
const platform2 = getPlatform();
|
|
284145
284145
|
const baseAttributes = {
|
|
284146
284146
|
[ATTR_SERVICE_NAME4]: "claude-code",
|
|
284147
|
-
[ATTR_SERVICE_VERSION4]: "1.1.
|
|
284147
|
+
[ATTR_SERVICE_VERSION4]: "1.1.35"
|
|
284148
284148
|
};
|
|
284149
284149
|
if (platform2 === "wsl") {
|
|
284150
284150
|
const wslVersion = getWslVersion();
|
|
@@ -284189,7 +284189,7 @@ async function initializeTelemetry() {
|
|
|
284189
284189
|
} catch {}
|
|
284190
284190
|
};
|
|
284191
284191
|
registerCleanup(shutdownTelemetry2);
|
|
284192
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.
|
|
284192
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.35");
|
|
284193
284193
|
}
|
|
284194
284194
|
const meterProvider = new MeterProvider4({
|
|
284195
284195
|
resource,
|
|
@@ -284209,7 +284209,7 @@ async function initializeTelemetry() {
|
|
|
284209
284209
|
});
|
|
284210
284210
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
284211
284211
|
setLoggerProvider(loggerProvider);
|
|
284212
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.
|
|
284212
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.35");
|
|
284213
284213
|
setEventLogger(eventLogger);
|
|
284214
284214
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
284215
284215
|
process.on("beforeExit", async () => {
|
|
@@ -284271,7 +284271,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
284271
284271
|
}
|
|
284272
284272
|
};
|
|
284273
284273
|
registerCleanup(shutdownTelemetry);
|
|
284274
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "1.1.
|
|
284274
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "1.1.35");
|
|
284275
284275
|
}
|
|
284276
284276
|
async function flushTelemetry() {
|
|
284277
284277
|
const meterProvider = getMeterProvider();
|
|
@@ -285461,7 +285461,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
285461
285461
|
}
|
|
285462
285462
|
async function getDoctorDiagnostic() {
|
|
285463
285463
|
const installationType = await getCurrentInstallationType();
|
|
285464
|
-
const version = typeof MACRO !== "undefined" ? "1.1.
|
|
285464
|
+
const version = typeof MACRO !== "undefined" ? "1.1.35" : "unknown";
|
|
285465
285465
|
const installationPath = await getInstallationPath();
|
|
285466
285466
|
const invokedBinary = getInvokedBinary();
|
|
285467
285467
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -286402,8 +286402,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
286402
286402
|
const maxVersion = await getMaxVersion();
|
|
286403
286403
|
if (maxVersion && gt(version, maxVersion)) {
|
|
286404
286404
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
|
|
286405
|
-
if (gte("1.1.
|
|
286406
|
-
logForDebugging(`Native installer: current version ${"1.1.
|
|
286405
|
+
if (gte("1.1.35", maxVersion)) {
|
|
286406
|
+
logForDebugging(`Native installer: current version ${"1.1.35"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
286407
286407
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
286408
286408
|
latency_ms: Date.now() - startTime,
|
|
286409
286409
|
max_version: maxVersion,
|
|
@@ -286414,7 +286414,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
286414
286414
|
version = maxVersion;
|
|
286415
286415
|
}
|
|
286416
286416
|
}
|
|
286417
|
-
if (!forceReinstall && version === "1.1.
|
|
286417
|
+
if (!forceReinstall && version === "1.1.35" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
|
|
286418
286418
|
logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
|
|
286419
286419
|
logEvent("tengu_native_update_complete", {
|
|
286420
286420
|
latency_ms: Date.now() - startTime,
|
|
@@ -297264,8 +297264,7 @@ function formatPreconditionError(error5) {
|
|
|
297264
297264
|
case "no_git_remote":
|
|
297265
297265
|
return "Background tasks require a GitHub remote. Add one with `git remote add origin REPO_URL`.";
|
|
297266
297266
|
case "github_app_not_installed":
|
|
297267
|
-
return
|
|
297268
|
-
https://github.com/apps/claude/installations/new`;
|
|
297267
|
+
return "The localclawd GitHub app must be installed on this repository first.";
|
|
297269
297268
|
case "policy_blocked":
|
|
297270
297269
|
return "Remote sessions are disabled by your organization's policy. Contact your organization admin to enable them.";
|
|
297271
297270
|
}
|
|
@@ -317926,7 +317925,7 @@ var init_WebFetchTool = __esm(() => {
|
|
|
317926
317925
|
if (askRule) {
|
|
317927
317926
|
return {
|
|
317928
317927
|
behavior: "ask",
|
|
317929
|
-
message: `
|
|
317928
|
+
message: `localclawd requested permissions to use ${WebFetchTool.name}, but you haven't granted it yet.`,
|
|
317930
317929
|
decisionReason: {
|
|
317931
317930
|
type: "rule",
|
|
317932
317931
|
rule: askRule
|
|
@@ -317947,7 +317946,7 @@ var init_WebFetchTool = __esm(() => {
|
|
|
317947
317946
|
}
|
|
317948
317947
|
return {
|
|
317949
317948
|
behavior: "ask",
|
|
317950
|
-
message: `
|
|
317949
|
+
message: `localclawd requested permissions to use ${WebFetchTool.name}, but you haven't granted it yet.`,
|
|
317951
317950
|
suggestions: buildSuggestions(ruleContent)
|
|
317952
317951
|
};
|
|
317953
317952
|
},
|
|
@@ -318577,7 +318576,7 @@ function renderToolResultMessage15(output, _progressMessages, options) {
|
|
|
318577
318576
|
children: [
|
|
318578
318577
|
/* @__PURE__ */ jsx_dev_runtime138.jsxDEV(ThemedText, {
|
|
318579
318578
|
color: "briefLabelClaude",
|
|
318580
|
-
children: "
|
|
318579
|
+
children: "localclawd"
|
|
318581
318580
|
}, undefined, false, undefined, this),
|
|
318582
318581
|
ts ? /* @__PURE__ */ jsx_dev_runtime138.jsxDEV(ThemedText, {
|
|
318583
318582
|
dimColor: true,
|
|
@@ -323626,7 +323625,7 @@ var init_supportedSettings = __esm(() => {
|
|
|
323626
323625
|
language: {
|
|
323627
323626
|
source: "settings",
|
|
323628
323627
|
type: "string",
|
|
323629
|
-
description: 'Preferred language for
|
|
323628
|
+
description: 'Preferred language for localclawd responses and voice dictation (e.g., "japanese", "spanish")'
|
|
323630
323629
|
},
|
|
323631
323630
|
teammateMode: {
|
|
323632
323631
|
source: "global",
|
|
@@ -330804,7 +330803,7 @@ function getAnthropicEnvMetadata() {
|
|
|
330804
330803
|
function getBuildAgeMinutes() {
|
|
330805
330804
|
if (false)
|
|
330806
330805
|
;
|
|
330807
|
-
const buildTime = new Date("2026-04-
|
|
330806
|
+
const buildTime = new Date("2026-04-14T13:54:24.741Z").getTime();
|
|
330808
330807
|
if (isNaN(buildTime))
|
|
330809
330808
|
return;
|
|
330810
330809
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -349511,7 +349510,7 @@ async function computeSimpleEnvInfo(modelId, additionalWorkingDirectories) {
|
|
|
349511
349510
|
`OS Version: ${unameSR}`,
|
|
349512
349511
|
modelDescription,
|
|
349513
349512
|
knowledgeCutoffMessage,
|
|
349514
|
-
process.env.USER_TYPE === "ant" && isUndercover() ? null : `The most recent
|
|
349513
|
+
process.env.USER_TYPE === "ant" && isUndercover() ? null : `The most recent localclawd model family is 4.5/4.6. Model IDs — Opus 4.6: '${CLAUDE_4_5_OR_4_6_MODEL_IDS.opus}', Sonnet 4.6: '${CLAUDE_4_5_OR_4_6_MODEL_IDS.sonnet}', Haiku 4.5: '${CLAUDE_4_5_OR_4_6_MODEL_IDS.haiku}'. When building AI applications, default to the latest and most capable models.`,
|
|
349515
349514
|
process.env.USER_TYPE === "ant" && isUndercover() ? null : `localclawd is available as a terminal CLI and can also integrate with supported IDE workflows.`,
|
|
349516
349515
|
process.env.USER_TYPE === "ant" && isUndercover() ? null : `Fast mode for localclawd uses the same ${FRONTIER_MODEL_NAME} model with faster output. It does NOT switch to a different model. It can be toggled with /fast.`
|
|
349517
349516
|
].filter((item) => item !== null);
|
|
@@ -349600,7 +349599,7 @@ function getFunctionResultClearingSection(model) {
|
|
|
349600
349599
|
|
|
349601
349600
|
Old tool results will be automatically cleared from context to free up space. The ${config.keepRecent} most recent results are always kept.`;
|
|
349602
349601
|
}
|
|
349603
|
-
var getCachedMCConfigForFRC = null, DISCOVER_SKILLS_TOOL_NAME = null, SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__", FRONTIER_MODEL_NAME = "
|
|
349602
|
+
var getCachedMCConfigForFRC = null, DISCOVER_SKILLS_TOOL_NAME = null, SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__", FRONTIER_MODEL_NAME = "localclawd Opus 4.6", CLAUDE_4_5_OR_4_6_MODEL_IDS, DEFAULT_AGENT_PROMPT = `You are an agent for localclawd, a local-first coding CLI running against user-controlled models. Given the user's message, you should use the tools available to complete the task. Complete the task fully—don't gold-plate, but don't leave it half-done. When you complete the task, respond with a concise report covering what was done and any key findings — the caller will relay this to the user, so it only needs the essentials.`, SUMMARIZE_TOOL_RESULTS_SECTION = `When working with tool results, write down any important information you might need later in your response, as the original tool result may be cleared later.`;
|
|
349604
349603
|
var init_prompts3 = __esm(() => {
|
|
349605
349604
|
init_env();
|
|
349606
349605
|
init_git();
|
|
@@ -359180,7 +359179,7 @@ function Feedback({
|
|
|
359180
359179
|
platform: env3.platform,
|
|
359181
359180
|
gitRepo: envInfo.isGit,
|
|
359182
359181
|
terminal: env3.terminal,
|
|
359183
|
-
version: "1.1.
|
|
359182
|
+
version: "1.1.35",
|
|
359184
359183
|
transcript: normalizeMessagesForAPI(messages),
|
|
359185
359184
|
errors: sanitizedErrors,
|
|
359186
359185
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -359372,7 +359371,7 @@ function Feedback({
|
|
|
359372
359371
|
", ",
|
|
359373
359372
|
env3.terminal,
|
|
359374
359373
|
", v",
|
|
359375
|
-
"1.1.
|
|
359374
|
+
"1.1.35"
|
|
359376
359375
|
]
|
|
359377
359376
|
}, undefined, true, undefined, this)
|
|
359378
359377
|
]
|
|
@@ -359478,7 +359477,7 @@ ${sanitizedDescription}
|
|
|
359478
359477
|
` + `**Environment Info**
|
|
359479
359478
|
` + `- Platform: ${env3.platform}
|
|
359480
359479
|
` + `- Terminal: ${env3.terminal}
|
|
359481
|
-
` + `- Version: ${"1.1.
|
|
359480
|
+
` + `- Version: ${"1.1.35"}
|
|
359482
359481
|
` + `- Feedback ID: ${feedbackId}
|
|
359483
359482
|
` + `
|
|
359484
359483
|
**Errors**
|
|
@@ -362106,7 +362105,7 @@ function buildPrimarySection() {
|
|
|
362106
362105
|
}, undefined, false, undefined, this);
|
|
362107
362106
|
return [{
|
|
362108
362107
|
label: "Version",
|
|
362109
|
-
value: "1.1.
|
|
362108
|
+
value: "1.1.35"
|
|
362110
362109
|
}, {
|
|
362111
362110
|
label: "Session name",
|
|
362112
362111
|
value: nameValue
|
|
@@ -366705,7 +366704,7 @@ function Config({
|
|
|
366705
366704
|
}
|
|
366706
366705
|
}, undefined, false, undefined, this)
|
|
366707
366706
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime175.jsxDEV(ChannelDowngradeDialog, {
|
|
366708
|
-
currentVersion: "1.1.
|
|
366707
|
+
currentVersion: "1.1.35",
|
|
366709
366708
|
onChoice: (choice) => {
|
|
366710
366709
|
setShowSubmenu(null);
|
|
366711
366710
|
setTabsHidden(false);
|
|
@@ -366717,7 +366716,7 @@ function Config({
|
|
|
366717
366716
|
autoUpdatesChannel: "stable"
|
|
366718
366717
|
};
|
|
366719
366718
|
if (choice === "stay") {
|
|
366720
|
-
newSettings.minimumVersion = "1.1.
|
|
366719
|
+
newSettings.minimumVersion = "1.1.35";
|
|
366721
366720
|
}
|
|
366722
366721
|
updateSettingsForSource("userSettings", newSettings);
|
|
366723
366722
|
setSettingsData((prev_27) => ({
|
|
@@ -375598,7 +375597,7 @@ function Help(t0) {
|
|
|
375598
375597
|
let t6;
|
|
375599
375598
|
if ($2[31] !== tabs) {
|
|
375600
375599
|
t6 = /* @__PURE__ */ jsx_dev_runtime207.jsxDEV(Tabs, {
|
|
375601
|
-
title: `localclawd v${"1.1.
|
|
375600
|
+
title: `localclawd v${"1.1.35"}`,
|
|
375602
375601
|
color: "professionalBlue",
|
|
375603
375602
|
defaultTab: "general",
|
|
375604
375603
|
children: tabs
|
|
@@ -391831,7 +391830,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
391831
391830
|
return [];
|
|
391832
391831
|
}
|
|
391833
391832
|
}
|
|
391834
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.
|
|
391833
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.35") {
|
|
391835
391834
|
if (process.env.USER_TYPE === "ant") {
|
|
391836
391835
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
391837
391836
|
if (changelog) {
|
|
@@ -391858,7 +391857,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.34")
|
|
|
391858
391857
|
releaseNotes
|
|
391859
391858
|
};
|
|
391860
391859
|
}
|
|
391861
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.
|
|
391860
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.35") {
|
|
391862
391861
|
if (process.env.USER_TYPE === "ant") {
|
|
391863
391862
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
391864
391863
|
if (changelog) {
|
|
@@ -393116,7 +393115,7 @@ function getRecentActivitySync() {
|
|
|
393116
393115
|
return cachedActivity;
|
|
393117
393116
|
}
|
|
393118
393117
|
function getLogoDisplayData() {
|
|
393119
|
-
const version = process.env.DEMO_VERSION ?? "1.1.
|
|
393118
|
+
const version = process.env.DEMO_VERSION ?? "1.1.35";
|
|
393120
393119
|
const serverUrl = getDirectConnectServerUrl();
|
|
393121
393120
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
393122
393121
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -394223,7 +394222,7 @@ function Logo() {
|
|
|
394223
394222
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
394224
394223
|
t2 = () => {
|
|
394225
394224
|
const currentConfig = getGlobalConfig();
|
|
394226
|
-
if (currentConfig.lastReleaseNotesSeen === "1.1.
|
|
394225
|
+
if (currentConfig.lastReleaseNotesSeen === "1.1.35") {
|
|
394227
394226
|
return;
|
|
394228
394227
|
}
|
|
394229
394228
|
saveGlobalConfig(_temp326);
|
|
@@ -394882,12 +394881,12 @@ function Logo() {
|
|
|
394882
394881
|
return t41;
|
|
394883
394882
|
}
|
|
394884
394883
|
function _temp326(current) {
|
|
394885
|
-
if (current.lastReleaseNotesSeen === "1.1.
|
|
394884
|
+
if (current.lastReleaseNotesSeen === "1.1.35") {
|
|
394886
394885
|
return current;
|
|
394887
394886
|
}
|
|
394888
394887
|
return {
|
|
394889
394888
|
...current,
|
|
394890
|
-
lastReleaseNotesSeen: "1.1.
|
|
394889
|
+
lastReleaseNotesSeen: "1.1.35"
|
|
394891
394890
|
};
|
|
394892
394891
|
}
|
|
394893
394892
|
function _temp241(s_0) {
|
|
@@ -425366,7 +425365,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
425366
425365
|
smapsRollup,
|
|
425367
425366
|
platform: process.platform,
|
|
425368
425367
|
nodeVersion: process.version,
|
|
425369
|
-
ccVersion: "1.1.
|
|
425368
|
+
ccVersion: "1.1.35"
|
|
425370
425369
|
};
|
|
425371
425370
|
}
|
|
425372
425371
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -425951,7 +425950,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
425951
425950
|
var call58 = async () => {
|
|
425952
425951
|
return {
|
|
425953
425952
|
type: "text",
|
|
425954
|
-
value: `${"1.1.
|
|
425953
|
+
value: `${"1.1.35"} (built ${"2026-04-14T13:54:24.741Z"})`
|
|
425955
425954
|
};
|
|
425956
425955
|
}, version, version_default;
|
|
425957
425956
|
var init_version = __esm(() => {
|
|
@@ -433895,7 +433894,7 @@ function generateHtmlReport(data, insights) {
|
|
|
433895
433894
|
</html>`;
|
|
433896
433895
|
}
|
|
433897
433896
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
433898
|
-
const version2 = typeof MACRO !== "undefined" ? "1.1.
|
|
433897
|
+
const version2 = typeof MACRO !== "undefined" ? "1.1.35" : "unknown";
|
|
433899
433898
|
const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
|
|
433900
433899
|
const facets_summary = {
|
|
433901
433900
|
total: facets.size,
|
|
@@ -434409,7 +434408,7 @@ Include 3 friction categories with 2 examples each.`,
|
|
|
434409
434408
|
prompt: `Analyze this localclawd usage data and suggest improvements.
|
|
434410
434409
|
|
|
434411
434410
|
## CC FEATURES REFERENCE (pick from these for features_to_try):
|
|
434412
|
-
1. **MCP Servers**: Connect
|
|
434411
|
+
1. **MCP Servers**: Connect localclawd to external tools, databases, and APIs via Model Context Protocol.
|
|
434413
434412
|
- How to use: Run \`claude mcp add <server-name> -- <command>\`
|
|
434414
434413
|
- Good for: database queries, Slack integration, GitHub issue lookup, connecting to internal APIs
|
|
434415
434414
|
|
|
@@ -435101,9 +435100,7 @@ var init_commands2 = __esm(() => {
|
|
|
435101
435100
|
feedback_default,
|
|
435102
435101
|
plan_default,
|
|
435103
435102
|
keybindings_default,
|
|
435104
|
-
statusline_default
|
|
435105
|
-
stickers,
|
|
435106
|
-
mobile
|
|
435103
|
+
statusline_default
|
|
435107
435104
|
]);
|
|
435108
435105
|
BRIDGE_SAFE_COMMANDS = new Set([
|
|
435109
435106
|
compact_default,
|
|
@@ -438041,7 +438038,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
438041
438038
|
init_settings2();
|
|
438042
438039
|
init_slowOperations();
|
|
438043
438040
|
init_uuid();
|
|
438044
|
-
VERSION6 = typeof MACRO !== "undefined" ? "1.1.
|
|
438041
|
+
VERSION6 = typeof MACRO !== "undefined" ? "1.1.35" : "unknown";
|
|
438045
438042
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
438046
438043
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
438047
438044
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -439243,7 +439240,7 @@ var init_filesystem = __esm(() => {
|
|
|
439243
439240
|
});
|
|
439244
439241
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
439245
439242
|
const nonce = randomBytes19(16).toString("hex");
|
|
439246
|
-
return join126(getClaudeTempDir(), "bundled-skills", "1.1.
|
|
439243
|
+
return join126(getClaudeTempDir(), "bundled-skills", "1.1.35", nonce);
|
|
439247
439244
|
});
|
|
439248
439245
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
439249
439246
|
});
|
|
@@ -448528,7 +448525,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
448528
448525
|
slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
|
|
448529
448526
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
448530
448527
|
betas: getSdkBetas(),
|
|
448531
|
-
claude_code_version: "1.1.
|
|
448528
|
+
claude_code_version: "1.1.35",
|
|
448532
448529
|
output_style: outputStyle2,
|
|
448533
448530
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
448534
448531
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -463107,7 +463104,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
463107
463104
|
function getSemverPart(version2) {
|
|
463108
463105
|
return `${import_semver10.major(version2, { loose: true })}.${import_semver10.minor(version2, { loose: true })}.${import_semver10.patch(version2, { loose: true })}`;
|
|
463109
463106
|
}
|
|
463110
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.1.
|
|
463107
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.1.35") {
|
|
463111
463108
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react214.useState(() => getSemverPart(initialVersion));
|
|
463112
463109
|
if (!updatedVersion) {
|
|
463113
463110
|
return null;
|
|
@@ -463147,7 +463144,7 @@ function AutoUpdater({
|
|
|
463147
463144
|
return;
|
|
463148
463145
|
}
|
|
463149
463146
|
if (false) {}
|
|
463150
|
-
const currentVersion = "1.1.
|
|
463147
|
+
const currentVersion = "1.1.35";
|
|
463151
463148
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
463152
463149
|
let latestVersion = await getLatestVersion(channel);
|
|
463153
463150
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -463358,12 +463355,12 @@ function NativeAutoUpdater({
|
|
|
463358
463355
|
logEvent("tengu_native_auto_updater_start", {});
|
|
463359
463356
|
try {
|
|
463360
463357
|
const maxVersion = await getMaxVersion();
|
|
463361
|
-
if (maxVersion && gt("1.1.
|
|
463358
|
+
if (maxVersion && gt("1.1.35", maxVersion)) {
|
|
463362
463359
|
const msg = await getMaxVersionMessage();
|
|
463363
463360
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
463364
463361
|
}
|
|
463365
463362
|
const result = await installLatest(channel);
|
|
463366
|
-
const currentVersion = "1.1.
|
|
463363
|
+
const currentVersion = "1.1.35";
|
|
463367
463364
|
const latencyMs = Date.now() - startTime;
|
|
463368
463365
|
if (result.lockFailed) {
|
|
463369
463366
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -463498,17 +463495,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
463498
463495
|
const maxVersion = await getMaxVersion();
|
|
463499
463496
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
463500
463497
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
463501
|
-
if (gte("1.1.
|
|
463502
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.
|
|
463498
|
+
if (gte("1.1.35", maxVersion)) {
|
|
463499
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.35"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
463503
463500
|
setUpdateAvailable(false);
|
|
463504
463501
|
return;
|
|
463505
463502
|
}
|
|
463506
463503
|
latest = maxVersion;
|
|
463507
463504
|
}
|
|
463508
|
-
const hasUpdate = latest && !gte("1.1.
|
|
463505
|
+
const hasUpdate = latest && !gte("1.1.35", latest) && !shouldSkipVersion(latest);
|
|
463509
463506
|
setUpdateAvailable(!!hasUpdate);
|
|
463510
463507
|
if (hasUpdate) {
|
|
463511
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.
|
|
463508
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.35"} -> ${latest}`);
|
|
463512
463509
|
}
|
|
463513
463510
|
};
|
|
463514
463511
|
$2[0] = t1;
|
|
@@ -463542,7 +463539,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
463542
463539
|
wrap: "truncate",
|
|
463543
463540
|
children: [
|
|
463544
463541
|
"currentVersion: ",
|
|
463545
|
-
"1.1.
|
|
463542
|
+
"1.1.35"
|
|
463546
463543
|
]
|
|
463547
463544
|
}, undefined, true, undefined, this);
|
|
463548
463545
|
$2[3] = verbose;
|
|
@@ -471100,7 +471097,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
471100
471097
|
project_dir: getOriginalCwd(),
|
|
471101
471098
|
added_dirs: addedDirs
|
|
471102
471099
|
},
|
|
471103
|
-
version: "1.1.
|
|
471100
|
+
version: "1.1.35",
|
|
471104
471101
|
output_style: {
|
|
471105
471102
|
name: outputStyleName
|
|
471106
471103
|
},
|
|
@@ -482668,7 +482665,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
482668
482665
|
} catch {}
|
|
482669
482666
|
const data = {
|
|
482670
482667
|
trigger,
|
|
482671
|
-
version: "1.1.
|
|
482668
|
+
version: "1.1.35",
|
|
482672
482669
|
platform: process.platform,
|
|
482673
482670
|
transcript,
|
|
482674
482671
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -497629,7 +497626,7 @@ name: {{skill-name}}
|
|
|
497629
497626
|
description: {{one-line description}}
|
|
497630
497627
|
allowed-tools:
|
|
497631
497628
|
{{list of tool permission patterns observed during session}}
|
|
497632
|
-
when_to_use: {{detailed description of when
|
|
497629
|
+
when_to_use: {{detailed description of when localclawd should automatically invoke this skill, including trigger phrases and example user messages}}
|
|
497633
497630
|
argument-hint: "{{hint showing argument placeholders}}"
|
|
497634
497631
|
arguments:
|
|
497635
497632
|
{{list of argument names}}
|
|
@@ -497779,7 +497776,7 @@ function generateSettingsSchema() {
|
|
|
497779
497776
|
function registerUpdateConfigSkill() {
|
|
497780
497777
|
registerBundledSkill({
|
|
497781
497778
|
name: "update-config",
|
|
497782
|
-
description: 'Use this skill to configure the localclawd harness via settings.json. Automated behaviors ("from now on when X", "each time X", "whenever X", "before/after X") require hooks configured in settings.json - the harness executes these, not
|
|
497779
|
+
description: 'Use this skill to configure the localclawd harness via settings.json. Automated behaviors ("from now on when X", "each time X", "whenever X", "before/after X") require hooks configured in settings.json - the harness executes these, not localclawd, so memory/preferences cannot fulfill them. Also use for: permissions ("allow X", "add permission", "move permission to"), env vars ("set X=Y"), hook troubleshooting, or any changes to settings.json/settings.local.json files. Examples: "allow npm commands", "add bq permission to global settings", "move permission to user settings", "set DEBUG=true", "when localclawd stops show X". For simple settings like theme/model, use Config tool.',
|
|
497783
497780
|
allowedTools: ["Read"],
|
|
497784
497781
|
userInvocable: true,
|
|
497785
497782
|
async getPromptForCommand(args) {
|
|
@@ -497940,7 +497937,7 @@ Hooks run commands at specific points in localclawd's lifecycle.
|
|
|
497940
497937
|
| PostToolUse | Tool name | Run after successful tool |
|
|
497941
497938
|
| PostToolUseFailure | Tool name | Run after tool fails |
|
|
497942
497939
|
| Notification | Notification type | Run on notifications |
|
|
497943
|
-
| Stop | - | Run when
|
|
497940
|
+
| Stop | - | Run when localclawd stops (including clear, resume, compact) |
|
|
497944
497941
|
| PreCompact | "manual"/"auto" | Before compaction |
|
|
497945
497942
|
| PostCompact | "manual"/"auto" | After compaction (receives summary) |
|
|
497946
497943
|
| UserPromptSubmit | - | When user submits |
|
|
@@ -498185,7 +498182,7 @@ ${HOOK_VERIFICATION_FLOW}
|
|
|
498185
498182
|
|
|
498186
498183
|
### Adding a Hook
|
|
498187
498184
|
|
|
498188
|
-
User: "Format my code after
|
|
498185
|
+
User: "Format my code after localclawd writes it"
|
|
498189
498186
|
|
|
498190
498187
|
1. **Clarify**: Which formatter? (prettier, gofmt, etc.)
|
|
498191
498188
|
2. **Read**: \`.claude/settings.json\` (or create if missing)
|
|
@@ -499133,7 +499130,7 @@ function appendToLog(path17, message) {
|
|
|
499133
499130
|
cwd: getFsImplementation().cwd(),
|
|
499134
499131
|
userType: process.env.USER_TYPE,
|
|
499135
499132
|
sessionId: getSessionId(),
|
|
499136
|
-
version: "1.1.
|
|
499133
|
+
version: "1.1.35"
|
|
499137
499134
|
};
|
|
499138
499135
|
getLogWriter(path17).write(messageWithTimestamp);
|
|
499139
499136
|
}
|
|
@@ -503132,8 +503129,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
503132
503129
|
}
|
|
503133
503130
|
async function checkEnvLessBridgeMinVersion() {
|
|
503134
503131
|
const cfg = await getEnvLessBridgeConfig();
|
|
503135
|
-
if (cfg.min_version && lt("1.1.
|
|
503136
|
-
return `Your version of localclawd (${"1.1.
|
|
503132
|
+
if (cfg.min_version && lt("1.1.35", cfg.min_version)) {
|
|
503133
|
+
return `Your version of localclawd (${"1.1.35"}) is too old for Remote Control.
|
|
503137
503134
|
Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
|
|
503138
503135
|
}
|
|
503139
503136
|
return null;
|
|
@@ -503605,7 +503602,7 @@ async function initBridgeCore(params) {
|
|
|
503605
503602
|
const rawApi = createBridgeApiClient({
|
|
503606
503603
|
baseUrl,
|
|
503607
503604
|
getAccessToken,
|
|
503608
|
-
runnerVersion: "1.1.
|
|
503605
|
+
runnerVersion: "1.1.35",
|
|
503609
503606
|
onDebug: logForDebugging,
|
|
503610
503607
|
onAuth401,
|
|
503611
503608
|
getTrustedDeviceToken
|
|
@@ -509324,7 +509321,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
509324
509321
|
setCwd(cwd3);
|
|
509325
509322
|
const server = new Server({
|
|
509326
509323
|
name: "claude/tengu",
|
|
509327
|
-
version: "1.1.
|
|
509324
|
+
version: "1.1.35"
|
|
509328
509325
|
}, {
|
|
509329
509326
|
capabilities: {
|
|
509330
509327
|
tools: {}
|
|
@@ -510405,7 +510402,7 @@ function WelcomeLogo() {
|
|
|
510405
510402
|
dimColor: true,
|
|
510406
510403
|
children: [
|
|
510407
510404
|
"v",
|
|
510408
|
-
"1.1.
|
|
510405
|
+
"1.1.35"
|
|
510409
510406
|
]
|
|
510410
510407
|
}, undefined, true, undefined, this)
|
|
510411
510408
|
]
|
|
@@ -510596,7 +510593,7 @@ __export(exports_update, {
|
|
|
510596
510593
|
});
|
|
510597
510594
|
async function update() {
|
|
510598
510595
|
logEvent("tengu_update_check", {});
|
|
510599
|
-
writeToStdout(`Current version: ${"1.1.
|
|
510596
|
+
writeToStdout(`Current version: ${"1.1.35"}
|
|
510600
510597
|
`);
|
|
510601
510598
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
510602
510599
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -510671,8 +510668,8 @@ async function update() {
|
|
|
510671
510668
|
writeToStdout(`localclawd is managed by Homebrew.
|
|
510672
510669
|
`);
|
|
510673
510670
|
const latest = await getLatestVersion(channel);
|
|
510674
|
-
if (latest && !gte("1.1.
|
|
510675
|
-
writeToStdout(`Update available: ${"1.1.
|
|
510671
|
+
if (latest && !gte("1.1.35", latest)) {
|
|
510672
|
+
writeToStdout(`Update available: ${"1.1.35"} → ${latest}
|
|
510676
510673
|
`);
|
|
510677
510674
|
writeToStdout(`
|
|
510678
510675
|
`);
|
|
@@ -510688,8 +510685,8 @@ async function update() {
|
|
|
510688
510685
|
writeToStdout(`localclawd is managed by winget.
|
|
510689
510686
|
`);
|
|
510690
510687
|
const latest = await getLatestVersion(channel);
|
|
510691
|
-
if (latest && !gte("1.1.
|
|
510692
|
-
writeToStdout(`Update available: ${"1.1.
|
|
510688
|
+
if (latest && !gte("1.1.35", latest)) {
|
|
510689
|
+
writeToStdout(`Update available: ${"1.1.35"} → ${latest}
|
|
510693
510690
|
`);
|
|
510694
510691
|
writeToStdout(`
|
|
510695
510692
|
`);
|
|
@@ -510703,8 +510700,8 @@ async function update() {
|
|
|
510703
510700
|
writeToStdout(`localclawd is managed by apk.
|
|
510704
510701
|
`);
|
|
510705
510702
|
const latest = await getLatestVersion(channel);
|
|
510706
|
-
if (latest && !gte("1.1.
|
|
510707
|
-
writeToStdout(`Update available: ${"1.1.
|
|
510703
|
+
if (latest && !gte("1.1.35", latest)) {
|
|
510704
|
+
writeToStdout(`Update available: ${"1.1.35"} → ${latest}
|
|
510708
510705
|
`);
|
|
510709
510706
|
writeToStdout(`
|
|
510710
510707
|
`);
|
|
@@ -510769,11 +510766,11 @@ async function update() {
|
|
|
510769
510766
|
`);
|
|
510770
510767
|
await gracefulShutdown(1);
|
|
510771
510768
|
}
|
|
510772
|
-
if (result.latestVersion === "1.1.
|
|
510773
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"1.1.
|
|
510769
|
+
if (result.latestVersion === "1.1.35") {
|
|
510770
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"1.1.35"})`) + `
|
|
510774
510771
|
`);
|
|
510775
510772
|
} else {
|
|
510776
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.1.
|
|
510773
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.1.35"} to version ${result.latestVersion}`) + `
|
|
510777
510774
|
`);
|
|
510778
510775
|
await regenerateCompletionCache();
|
|
510779
510776
|
}
|
|
@@ -510833,12 +510830,12 @@ async function update() {
|
|
|
510833
510830
|
`);
|
|
510834
510831
|
await gracefulShutdown(1);
|
|
510835
510832
|
}
|
|
510836
|
-
if (latestVersion === "1.1.
|
|
510837
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"1.1.
|
|
510833
|
+
if (latestVersion === "1.1.35") {
|
|
510834
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"1.1.35"})`) + `
|
|
510838
510835
|
`);
|
|
510839
510836
|
await gracefulShutdown(0);
|
|
510840
510837
|
}
|
|
510841
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.
|
|
510838
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.35"})
|
|
510842
510839
|
`);
|
|
510843
510840
|
writeToStdout(`Installing update...
|
|
510844
510841
|
`);
|
|
@@ -510883,7 +510880,7 @@ async function update() {
|
|
|
510883
510880
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
510884
510881
|
switch (status2) {
|
|
510885
510882
|
case "success":
|
|
510886
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.1.
|
|
510883
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.1.35"} to version ${latestVersion}`) + `
|
|
510887
510884
|
`);
|
|
510888
510885
|
await regenerateCompletionCache();
|
|
510889
510886
|
break;
|
|
@@ -512125,7 +512122,7 @@ Run with --debug for more details.
|
|
|
512125
512122
|
}
|
|
512126
512123
|
}
|
|
512127
512124
|
logForDiagnosticsNoPII("info", "started", {
|
|
512128
|
-
version: "1.1.
|
|
512125
|
+
version: "1.1.35",
|
|
512129
512126
|
is_native_binary: isInBundledMode()
|
|
512130
512127
|
});
|
|
512131
512128
|
registerCleanup(async () => {
|
|
@@ -512909,7 +512906,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
512909
512906
|
pendingHookMessages
|
|
512910
512907
|
}, renderAndRun);
|
|
512911
512908
|
}
|
|
512912
|
-
}).version("1.1.
|
|
512909
|
+
}).version("1.1.35 (localclawd)", "-v, --version", "Output the version number");
|
|
512913
512910
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
512914
512911
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
512915
512912
|
if (canUserConfigureAdvisor()) {
|
|
@@ -513409,7 +513406,7 @@ if (false) {}
|
|
|
513409
513406
|
async function main2() {
|
|
513410
513407
|
const args = process.argv.slice(2);
|
|
513411
513408
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
513412
|
-
console.log(`${"1.1.
|
|
513409
|
+
console.log(`${"1.1.35"} (localclawd)`);
|
|
513413
513410
|
return;
|
|
513414
513411
|
}
|
|
513415
513412
|
const {
|
|
@@ -513492,4 +513489,4 @@ localclawd crashed: ${msg}
|
|
|
513492
513489
|
process.exit(1);
|
|
513493
513490
|
});
|
|
513494
513491
|
|
|
513495
|
-
//# debugId=
|
|
513492
|
+
//# debugId=B3364D9664593D7B64756E2164756E21
|