@duheso/zerocli 0.8.5 → 0.8.6
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/chrome-extension/README.md +1 -1
- package/dist/cli.mjs +99 -99
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -119193,7 +119193,7 @@ function buildProviderInfoLines() {
|
|
|
119193
119193
|
const sLen = ` ● ${sL} ${sReady}`.length;
|
|
119194
119194
|
out.push(boxRow(sRow, W2, sLen));
|
|
119195
119195
|
out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
|
|
119196
|
-
out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.8.
|
|
119196
|
+
out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.8.6"}${RESET}`);
|
|
119197
119197
|
return out;
|
|
119198
119198
|
}
|
|
119199
119199
|
function printStartupScreen() {}
|
|
@@ -151704,7 +151704,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
151704
151704
|
if (!isAttributionHeaderEnabled()) {
|
|
151705
151705
|
return "";
|
|
151706
151706
|
}
|
|
151707
|
-
const version2 = `${"0.8.
|
|
151707
|
+
const version2 = `${"0.8.6"}.${fingerprint}`;
|
|
151708
151708
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
151709
151709
|
const cch = "";
|
|
151710
151710
|
const workload = getWorkload();
|
|
@@ -189715,7 +189715,7 @@ You are STRICTLY PROHIBITED from:
|
|
|
189715
189715
|
|
|
189716
189716
|
You MAY write ephemeral test scripts to a temp directory (/tmp or $TMPDIR) via ${BASH_TOOL_NAME} redirection when inline commands aren't sufficient — e.g., a multi-step race harness or a Playwright test. Clean up after yourself.
|
|
189717
189717
|
|
|
189718
|
-
Check your ACTUAL available tools rather than assuming from this prompt. You may have browser automation (
|
|
189718
|
+
Check your ACTUAL available tools rather than assuming from this prompt. You may have browser automation (mcp__zero-in-chrome__*, mcp__playwright__*), ${WEB_FETCH_TOOL_NAME}, or other MCP tools depending on the session — do not skip capabilities you didn't think to check for.
|
|
189719
189719
|
|
|
189720
189720
|
=== WHAT YOU RECEIVE ===
|
|
189721
189721
|
You will receive: the original task description, files changed, approach taken, and optionally a plan file path.
|
|
@@ -189723,7 +189723,7 @@ You will receive: the original task description, files changed, approach taken,
|
|
|
189723
189723
|
=== VERIFICATION STRATEGY ===
|
|
189724
189724
|
Adapt your strategy based on what was changed:
|
|
189725
189725
|
|
|
189726
|
-
**Frontend changes**: Start dev server → check your tools for browser automation (
|
|
189726
|
+
**Frontend changes**: Start dev server → check your tools for browser automation (mcp__zero-in-chrome__*, mcp__playwright__*) and USE them to navigate, screenshot, click, and read console — do NOT say "needs a real browser" without attempting → curl a sample of page subresources (image-optimizer URLs like /_next/image, same-origin API routes, static assets) since HTML can serve 200 while everything it references fails → run frontend tests
|
|
189727
189727
|
**Backend/API changes**: Start server → curl/fetch endpoints → verify response shapes against expected values (not just status codes) → test error handling → check edge cases
|
|
189728
189728
|
**CLI/script changes**: Run with representative inputs → verify stdout/stderr/exit codes → test edge inputs (empty, malformed, boundary) → verify --help / usage output is accurate
|
|
189729
189729
|
**Infrastructure/config changes**: Validate syntax → dry-run where possible (terraform plan, kubectl apply --dry-run=server, docker build, nginx -t) → check env vars / secrets are actually referenced, not just defined
|
|
@@ -189752,7 +189752,7 @@ You will feel the urge to skip checks. These are the exact excuses you reach for
|
|
|
189752
189752
|
- "The implementer's tests already pass" — the implementer is an LLM. Verify independently.
|
|
189753
189753
|
- "This is probably fine" — probably is not verified. Run it.
|
|
189754
189754
|
- "Let me start the server and check the code" — no. Start the server and hit the endpoint.
|
|
189755
|
-
- "I don't have a browser" — did you actually check for
|
|
189755
|
+
- "I don't have a browser" — did you actually check for mcp__zero-in-chrome__* / mcp__playwright__*? If present, use them. If an MCP tool fails, troubleshoot (server running? selector right?). The fallback exists so you don't invent your own "can't do this" story.
|
|
189756
189756
|
- "This would take too long" — not your call.
|
|
189757
189757
|
If you catch yourself writing an explanation instead of a command, stop. Run the command.
|
|
189758
189758
|
|
|
@@ -194680,7 +194680,7 @@ var init_imageValidation = __esm(() => {
|
|
|
194680
194680
|
|
|
194681
194681
|
// src/utils/userAgent.ts
|
|
194682
194682
|
function getZeroCodeUserAgent() {
|
|
194683
|
-
return `claude-code/${"0.8.
|
|
194683
|
+
return `claude-code/${"0.8.6"}`;
|
|
194684
194684
|
}
|
|
194685
194685
|
|
|
194686
194686
|
// src/utils/http.ts
|
|
@@ -194689,7 +194689,7 @@ function getUserAgent() {
|
|
|
194689
194689
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
194690
194690
|
const workload = getWorkload();
|
|
194691
194691
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
194692
|
-
return `claude-cli/${"0.8.
|
|
194692
|
+
return `claude-cli/${"0.8.6"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
194693
194693
|
}
|
|
194694
194694
|
function getMCPUserAgent() {
|
|
194695
194695
|
const parts = [];
|
|
@@ -194703,7 +194703,7 @@ function getMCPUserAgent() {
|
|
|
194703
194703
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
194704
194704
|
}
|
|
194705
194705
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
194706
|
-
return `claude-code/${"0.8.
|
|
194706
|
+
return `claude-code/${"0.8.6"}${suffix}`;
|
|
194707
194707
|
}
|
|
194708
194708
|
function getWebFetchUserAgent() {
|
|
194709
194709
|
const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/Duheso/ZeroCLI";
|
|
@@ -249132,7 +249132,7 @@ function getTelemetryAttributes() {
|
|
|
249132
249132
|
attributes["session.id"] = sessionId;
|
|
249133
249133
|
}
|
|
249134
249134
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
249135
|
-
attributes["app.version"] = "0.8.
|
|
249135
|
+
attributes["app.version"] = "0.8.6";
|
|
249136
249136
|
}
|
|
249137
249137
|
const oauthAccount = getOauthAccountInfo();
|
|
249138
249138
|
if (oauthAccount) {
|
|
@@ -258954,7 +258954,7 @@ function getUsername2() {
|
|
|
258954
258954
|
return process.env.USER || process.env.USERNAME || "default";
|
|
258955
258955
|
}
|
|
258956
258956
|
}
|
|
258957
|
-
var CLAUDE_IN_CHROME_MCP_SERVER_NAME = "
|
|
258957
|
+
var CLAUDE_IN_CHROME_MCP_SERVER_NAME = "zero-in-chrome", CHROMIUM_BROWSERS, BROWSER_DETECTION_ORDER, MAX_TRACKED_TABS = 200, trackedTabIds;
|
|
258958
258958
|
var init_common2 = __esm(() => {
|
|
258959
258959
|
init_debug();
|
|
258960
258960
|
init_errors();
|
|
@@ -261371,7 +261371,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
261371
261371
|
}
|
|
261372
261372
|
function computeFingerprintFromMessages(messages) {
|
|
261373
261373
|
const firstMessageText = extractFirstMessageText(messages);
|
|
261374
|
-
return computeFingerprint(firstMessageText, "0.8.
|
|
261374
|
+
return computeFingerprint(firstMessageText, "0.8.6");
|
|
261375
261375
|
}
|
|
261376
261376
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
261377
261377
|
var init_fingerprint = () => {};
|
|
@@ -261413,7 +261413,7 @@ async function sideQuery(opts) {
|
|
|
261413
261413
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
261414
261414
|
}
|
|
261415
261415
|
const messageText = extractFirstUserMessageText(messages);
|
|
261416
|
-
const fingerprint = computeFingerprint(messageText, "0.8.
|
|
261416
|
+
const fingerprint = computeFingerprint(messageText, "0.8.6");
|
|
261417
261417
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
261418
261418
|
const systemBlocks = [
|
|
261419
261419
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -270315,7 +270315,7 @@ var init_user = __esm(() => {
|
|
|
270315
270315
|
deviceId,
|
|
270316
270316
|
sessionId: getSessionId(),
|
|
270317
270317
|
email: getEmail(),
|
|
270318
|
-
appVersion: "0.8.
|
|
270318
|
+
appVersion: "0.8.6",
|
|
270319
270319
|
platform: getHostPlatformForAnalytics(),
|
|
270320
270320
|
organizationUuid,
|
|
270321
270321
|
accountUuid,
|
|
@@ -270709,7 +270709,7 @@ async function initializeBetaTracing(resource) {
|
|
|
270709
270709
|
});
|
|
270710
270710
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
270711
270711
|
setLoggerProvider(loggerProvider);
|
|
270712
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.8.
|
|
270712
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.8.6");
|
|
270713
270713
|
setEventLogger(eventLogger);
|
|
270714
270714
|
process.on("beforeExit", async () => {
|
|
270715
270715
|
await loggerProvider?.forceFlush();
|
|
@@ -270749,7 +270749,7 @@ async function initializeTelemetry() {
|
|
|
270749
270749
|
const platform3 = getPlatform();
|
|
270750
270750
|
const baseAttributes = {
|
|
270751
270751
|
[ATTR_SERVICE_NAME3]: "claude-code",
|
|
270752
|
-
[ATTR_SERVICE_VERSION3]: "0.8.
|
|
270752
|
+
[ATTR_SERVICE_VERSION3]: "0.8.6"
|
|
270753
270753
|
};
|
|
270754
270754
|
if (platform3 === "wsl") {
|
|
270755
270755
|
const wslVersion = getWslVersion();
|
|
@@ -270794,7 +270794,7 @@ async function initializeTelemetry() {
|
|
|
270794
270794
|
} catch {}
|
|
270795
270795
|
};
|
|
270796
270796
|
registerCleanup(shutdownTelemetry2);
|
|
270797
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "0.8.
|
|
270797
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "0.8.6");
|
|
270798
270798
|
}
|
|
270799
270799
|
const meterProvider = new MeterProvider3({
|
|
270800
270800
|
resource,
|
|
@@ -270814,7 +270814,7 @@ async function initializeTelemetry() {
|
|
|
270814
270814
|
});
|
|
270815
270815
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
270816
270816
|
setLoggerProvider(loggerProvider);
|
|
270817
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.8.
|
|
270817
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.8.6");
|
|
270818
270818
|
setEventLogger(eventLogger);
|
|
270819
270819
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
270820
270820
|
process.on("beforeExit", async () => {
|
|
@@ -270876,7 +270876,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
270876
270876
|
}
|
|
270877
270877
|
};
|
|
270878
270878
|
registerCleanup(shutdownTelemetry);
|
|
270879
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "0.8.
|
|
270879
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "0.8.6");
|
|
270880
270880
|
}
|
|
270881
270881
|
async function flushTelemetry() {
|
|
270882
270882
|
const meterProvider = getMeterProvider();
|
|
@@ -272168,7 +272168,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
272168
272168
|
}
|
|
272169
272169
|
async function getDoctorDiagnostic() {
|
|
272170
272170
|
const installationType = await getCurrentInstallationType();
|
|
272171
|
-
const version2 = typeof MACRO !== "undefined" ? "0.8.
|
|
272171
|
+
const version2 = typeof MACRO !== "undefined" ? "0.8.6" : "unknown";
|
|
272172
272172
|
const installationPath = await getInstallationPath();
|
|
272173
272173
|
const invokedBinary = getInvokedBinary();
|
|
272174
272174
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -273653,7 +273653,7 @@ function getInstallationEnv() {
|
|
|
273653
273653
|
return;
|
|
273654
273654
|
}
|
|
273655
273655
|
function getZeroCodeVersion() {
|
|
273656
|
-
return "0.8.
|
|
273656
|
+
return "0.8.6";
|
|
273657
273657
|
}
|
|
273658
273658
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
273659
273659
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -275020,8 +275020,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
275020
275020
|
const maxVersion = await getMaxVersion();
|
|
275021
275021
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
275022
275022
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
275023
|
-
if (gte("0.8.
|
|
275024
|
-
logForDebugging(`Native installer: current version ${"0.8.
|
|
275023
|
+
if (gte("0.8.6", maxVersion)) {
|
|
275024
|
+
logForDebugging(`Native installer: current version ${"0.8.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
275025
275025
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
275026
275026
|
latency_ms: Date.now() - startTime,
|
|
275027
275027
|
max_version: maxVersion,
|
|
@@ -275032,7 +275032,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
275032
275032
|
version2 = maxVersion;
|
|
275033
275033
|
}
|
|
275034
275034
|
}
|
|
275035
|
-
if (!forceReinstall && version2 === "0.8.
|
|
275035
|
+
if (!forceReinstall && version2 === "0.8.6" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
|
|
275036
275036
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
275037
275037
|
logEvent("tengu_native_update_complete", {
|
|
275038
275038
|
latency_ms: Date.now() - startTime,
|
|
@@ -380238,7 +380238,7 @@ function getAnthropicEnvMetadata() {
|
|
|
380238
380238
|
function getBuildAgeMinutes() {
|
|
380239
380239
|
if (false)
|
|
380240
380240
|
;
|
|
380241
|
-
const buildTime = new Date("2026-05-05T13:
|
|
380241
|
+
const buildTime = new Date("2026-05-05T13:41:55.241Z").getTime();
|
|
380242
380242
|
if (isNaN(buildTime))
|
|
380243
380243
|
return;
|
|
380244
380244
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -385656,11 +385656,11 @@ function getChromeSystemPrompt() {
|
|
|
385656
385656
|
}
|
|
385657
385657
|
var BASE_CHROME_PROMPT = `# Zero in Chrome browser automation
|
|
385658
385658
|
|
|
385659
|
-
You have access to browser automation tools (
|
|
385659
|
+
You have access to browser automation tools (mcp__zero-in-chrome__*) for interacting with web pages in Chrome. Follow these guidelines for effective browser automation.
|
|
385660
385660
|
|
|
385661
385661
|
## GIF recording
|
|
385662
385662
|
|
|
385663
|
-
When performing multi-step browser interactions that the user may want to review or share, use
|
|
385663
|
+
When performing multi-step browser interactions that the user may want to review or share, use mcp__zero-in-chrome__gif_creator to record them.
|
|
385664
385664
|
|
|
385665
385665
|
You must ALWAYS:
|
|
385666
385666
|
* Capture extra frames before and after taking actions to ensure smooth playback
|
|
@@ -385668,14 +385668,14 @@ You must ALWAYS:
|
|
|
385668
385668
|
|
|
385669
385669
|
## Console log debugging
|
|
385670
385670
|
|
|
385671
|
-
You can use
|
|
385671
|
+
You can use mcp__zero-in-chrome__read_console_messages to read console output. Console output may be verbose. If you are looking for specific log entries, use the 'pattern' parameter with a regex-compatible pattern. This filters results efficiently and avoids overwhelming output. For example, use pattern: "[MyApp]" to filter for application-specific logs rather than reading all console output.
|
|
385672
385672
|
|
|
385673
385673
|
## Alerts and dialogs
|
|
385674
385674
|
|
|
385675
|
-
IMPORTANT: Do not trigger JavaScript alerts, confirms, prompts, or browser modal dialogs through your actions. These browser dialogs block all further browser events and will prevent the extension from receiving any subsequent commands. Instead, when possible, use console.log for debugging and then use the
|
|
385675
|
+
IMPORTANT: Do not trigger JavaScript alerts, confirms, prompts, or browser modal dialogs through your actions. These browser dialogs block all further browser events and will prevent the extension from receiving any subsequent commands. Instead, when possible, use console.log for debugging and then use the mcp__zero-in-chrome__read_console_messages tool to read those log messages. If a page has dialog-triggering elements:
|
|
385676
385676
|
1. Avoid clicking buttons or links that may trigger alerts (e.g., "Delete" buttons with confirmation dialogs)
|
|
385677
385677
|
2. If you must interact with such elements, warn the user first that this may interrupt the session
|
|
385678
|
-
3. Use
|
|
385678
|
+
3. Use mcp__zero-in-chrome__javascript_tool to check for and dismiss any existing dialogs before proceeding
|
|
385679
385679
|
|
|
385680
385680
|
If you accidentally trigger a dialog and lose responsiveness, inform the user they need to manually dismiss it in the browser.
|
|
385681
385681
|
|
|
@@ -385693,21 +385693,21 @@ Explain what you attempted, what went wrong, and ask how the user would like to
|
|
|
385693
385693
|
|
|
385694
385694
|
## Tab context and session startup
|
|
385695
385695
|
|
|
385696
|
-
IMPORTANT: At the start of each browser automation session, call
|
|
385696
|
+
IMPORTANT: At the start of each browser automation session, call mcp__zero-in-chrome__tabs_context_mcp first to get information about the user's current browser tabs. Use this context to understand what the user might want to work with before creating new tabs.
|
|
385697
385697
|
|
|
385698
385698
|
Never reuse tab IDs from a previous/other session. Follow these guidelines:
|
|
385699
385699
|
1. Only reuse an existing tab if the user explicitly asks to work with it
|
|
385700
|
-
2. Otherwise, create a new tab with
|
|
385700
|
+
2. Otherwise, create a new tab with mcp__zero-in-chrome__tabs_create_mcp
|
|
385701
385701
|
3. If a tool returns an error indicating the tab doesn't exist or is invalid, call tabs_context_mcp to get fresh tab IDs
|
|
385702
385702
|
4. When a tab is closed by the user or a navigation error occurs, call tabs_context_mcp to see what tabs are available`, CHROME_TOOL_SEARCH_INSTRUCTIONS = `**IMPORTANT: Before using any chrome browser tools, you MUST first load them using ToolSearch.**
|
|
385703
385703
|
|
|
385704
|
-
Chrome browser tools are MCP tools that require loading before use. Before calling any
|
|
385705
|
-
1. Use ToolSearch with \`select:
|
|
385704
|
+
Chrome browser tools are MCP tools that require loading before use. Before calling any mcp__zero-in-chrome__* tool:
|
|
385705
|
+
1. Use ToolSearch with \`select:mcp__zero-in-chrome__<tool_name>\` to load the specific tool
|
|
385706
385706
|
2. Then call the tool
|
|
385707
385707
|
|
|
385708
385708
|
For example, to get tab context:
|
|
385709
|
-
1. First: ToolSearch with query "select:
|
|
385710
|
-
2. Then: Call
|
|
385709
|
+
1. First: ToolSearch with query "select:mcp__zero-in-chrome__tabs_context_mcp"
|
|
385710
|
+
2. Then: Call mcp__zero-in-chrome__tabs_context_mcp`, CLAUDE_IN_CHROME_SKILL_HINT = `**Browser Automation**: Chrome browser tools are available via the "zero-in-chrome" skill. CRITICAL: Before using any mcp__zero-in-chrome__* tools, invoke the skill by calling the Skill tool with skill: "zero-in-chrome". The skill provides browser automation instructions and enables the tools.`;
|
|
385711
385711
|
|
|
385712
385712
|
// src/utils/hooks/hookEvents.ts
|
|
385713
385713
|
function registerHookEventHandler(handler5) {
|
|
@@ -407655,7 +407655,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
407655
407655
|
const client2 = new Client({
|
|
407656
407656
|
name: "claude-code",
|
|
407657
407657
|
title: "ZeroCLI",
|
|
407658
|
-
version: "0.8.
|
|
407658
|
+
version: "0.8.6",
|
|
407659
407659
|
description: "Anthropic's agentic coding tool",
|
|
407660
407660
|
websiteUrl: PRODUCT_URL
|
|
407661
407661
|
}, {
|
|
@@ -408007,7 +408007,7 @@ var init_client7 = __esm(() => {
|
|
|
408007
408007
|
const client2 = new Client({
|
|
408008
408008
|
name: "claude-code",
|
|
408009
408009
|
title: "ZeroCLI",
|
|
408010
|
-
version: "0.8.
|
|
408010
|
+
version: "0.8.6",
|
|
408011
408011
|
description: "Anthropic's agentic coding tool",
|
|
408012
408012
|
websiteUrl: PRODUCT_URL
|
|
408013
408013
|
}, {
|
|
@@ -418670,7 +418670,7 @@ function Feedback({
|
|
|
418670
418670
|
platform: env2.platform,
|
|
418671
418671
|
gitRepo: envInfo.isGit,
|
|
418672
418672
|
terminal: env2.terminal,
|
|
418673
|
-
version: "0.8.
|
|
418673
|
+
version: "0.8.6",
|
|
418674
418674
|
transcript: normalizeMessagesForAPI(messages),
|
|
418675
418675
|
errors: sanitizedErrors,
|
|
418676
418676
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -418863,7 +418863,7 @@ function Feedback({
|
|
|
418863
418863
|
", ",
|
|
418864
418864
|
env2.terminal,
|
|
418865
418865
|
", v",
|
|
418866
|
-
"0.8.
|
|
418866
|
+
"0.8.6"
|
|
418867
418867
|
]
|
|
418868
418868
|
}, undefined, true, undefined, this)
|
|
418869
418869
|
]
|
|
@@ -418971,7 +418971,7 @@ ${sanitizedDescription}
|
|
|
418971
418971
|
` + `**Environment Info**
|
|
418972
418972
|
` + `- Platform: ${env2.platform}
|
|
418973
418973
|
` + `- Terminal: ${env2.terminal}
|
|
418974
|
-
` + `- Version: ${"0.8.
|
|
418974
|
+
` + `- Version: ${"0.8.6"}
|
|
418975
418975
|
` + feedbackIdLine + `
|
|
418976
418976
|
**Errors**
|
|
418977
418977
|
\`\`\`json
|
|
@@ -422126,7 +422126,7 @@ function buildPrimarySection() {
|
|
|
422126
422126
|
}, undefined, false, undefined, this);
|
|
422127
422127
|
return [{
|
|
422128
422128
|
label: "Version",
|
|
422129
|
-
value: "0.8.
|
|
422129
|
+
value: "0.8.6"
|
|
422130
422130
|
}, {
|
|
422131
422131
|
label: "Session name",
|
|
422132
422132
|
value: nameValue
|
|
@@ -426896,7 +426896,7 @@ function Config({
|
|
|
426896
426896
|
}
|
|
426897
426897
|
}, undefined, false, undefined, this)
|
|
426898
426898
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime181.jsxDEV(ChannelDowngradeDialog, {
|
|
426899
|
-
currentVersion: "0.8.
|
|
426899
|
+
currentVersion: "0.8.6",
|
|
426900
426900
|
onChoice: (choice) => {
|
|
426901
426901
|
setShowSubmenu(null);
|
|
426902
426902
|
setTabsHidden(false);
|
|
@@ -426908,7 +426908,7 @@ function Config({
|
|
|
426908
426908
|
autoUpdatesChannel: "stable"
|
|
426909
426909
|
};
|
|
426910
426910
|
if (choice === "stay") {
|
|
426911
|
-
newSettings.minimumVersion = "0.8.
|
|
426911
|
+
newSettings.minimumVersion = "0.8.6";
|
|
426912
426912
|
}
|
|
426913
426913
|
updateSettingsForSource("userSettings", newSettings);
|
|
426914
426914
|
setSettingsData((prev_27) => ({
|
|
@@ -435804,7 +435804,7 @@ function HelpV2(t0) {
|
|
|
435804
435804
|
let t6;
|
|
435805
435805
|
if ($2[31] !== tabs) {
|
|
435806
435806
|
t6 = /* @__PURE__ */ jsx_dev_runtime210.jsxDEV(Tabs, {
|
|
435807
|
-
title: `ZeroCLI v${"0.8.
|
|
435807
|
+
title: `ZeroCLI v${"0.8.6"}`,
|
|
435808
435808
|
color: "professionalBlue",
|
|
435809
435809
|
defaultTab: "general",
|
|
435810
435810
|
children: tabs
|
|
@@ -460648,7 +460648,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
460648
460648
|
return [];
|
|
460649
460649
|
}
|
|
460650
460650
|
}
|
|
460651
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.8.
|
|
460651
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.8.6") {
|
|
460652
460652
|
if (process.env.USER_TYPE === "ant") {
|
|
460653
460653
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
460654
460654
|
if (changelog) {
|
|
@@ -489686,7 +489686,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
489686
489686
|
smapsRollup,
|
|
489687
489687
|
platform: process.platform,
|
|
489688
489688
|
nodeVersion: process.version,
|
|
489689
|
-
ccVersion: "0.8.
|
|
489689
|
+
ccVersion: "0.8.6"
|
|
489690
489690
|
};
|
|
489691
489691
|
}
|
|
489692
489692
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -490273,7 +490273,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
490273
490273
|
var call59 = async () => {
|
|
490274
490274
|
return {
|
|
490275
490275
|
type: "text",
|
|
490276
|
-
value: `${"0.8.
|
|
490276
|
+
value: `${"0.8.6"} (built ${"2026-05-05T13:41:55.241Z"})`
|
|
490277
490277
|
};
|
|
490278
490278
|
}, version2, version_default;
|
|
490279
490279
|
var init_version = __esm(() => {
|
|
@@ -492123,7 +492123,7 @@ function shouldAutoEnableZeroInChrome() {
|
|
|
492123
492123
|
}
|
|
492124
492124
|
function setupZeroInChrome() {
|
|
492125
492125
|
const isNativeBuild = isInBundledMode();
|
|
492126
|
-
const allowedTools = ZEROCLI_BROWSER_TOOLS.map((toolName) => `
|
|
492126
|
+
const allowedTools = ZEROCLI_BROWSER_TOOLS.map((toolName) => `mcp__zero-in-chrome__${toolName}`);
|
|
492127
492127
|
const env4 = {};
|
|
492128
492128
|
if (getSessionBypassPermissionsMode()) {
|
|
492129
492129
|
env4.CLAUDE_CHROME_PERMISSION_MODE = "skip_all_permission_checks";
|
|
@@ -492137,7 +492137,7 @@ function setupZeroInChrome() {
|
|
|
492137
492137
|
[CLAUDE_IN_CHROME_MCP_SERVER_NAME]: {
|
|
492138
492138
|
type: "stdio",
|
|
492139
492139
|
command: process.execPath,
|
|
492140
|
-
args: ["--
|
|
492140
|
+
args: ["--zero-in-chrome-mcp"],
|
|
492141
492141
|
scope: "dynamic",
|
|
492142
492142
|
...hasEnv && { env: env4 }
|
|
492143
492143
|
}
|
|
@@ -492152,7 +492152,7 @@ function setupZeroInChrome() {
|
|
|
492152
492152
|
[CLAUDE_IN_CHROME_MCP_SERVER_NAME]: {
|
|
492153
492153
|
type: "stdio",
|
|
492154
492154
|
command: process.execPath,
|
|
492155
|
-
args: [cliPath, "--
|
|
492155
|
+
args: [cliPath, "--zero-in-chrome-mcp"],
|
|
492156
492156
|
scope: "dynamic",
|
|
492157
492157
|
...hasEnv && { env: env4 }
|
|
492158
492158
|
}
|
|
@@ -500428,7 +500428,7 @@ function generateHtmlReport(data, insights) {
|
|
|
500428
500428
|
</html>`;
|
|
500429
500429
|
}
|
|
500430
500430
|
function buildExportData(data, insights, facets) {
|
|
500431
|
-
const version3 = typeof MACRO !== "undefined" ? "0.8.
|
|
500431
|
+
const version3 = typeof MACRO !== "undefined" ? "0.8.6" : "unknown";
|
|
500432
500432
|
const facets_summary = {
|
|
500433
500433
|
total: facets.size,
|
|
500434
500434
|
goal_categories: {},
|
|
@@ -504618,7 +504618,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
504618
504618
|
init_settings2();
|
|
504619
504619
|
init_slowOperations();
|
|
504620
504620
|
init_uuid();
|
|
504621
|
-
VERSION7 = typeof MACRO !== "undefined" ? "0.8.
|
|
504621
|
+
VERSION7 = typeof MACRO !== "undefined" ? "0.8.6" : "unknown";
|
|
504622
504622
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
504623
504623
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
504624
504624
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -505928,7 +505928,7 @@ var init_filesystem = __esm(() => {
|
|
|
505928
505928
|
});
|
|
505929
505929
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
505930
505930
|
const nonce = randomBytes17(16).toString("hex");
|
|
505931
|
-
return join136(getZeroTempDir(), "bundled-skills", "0.8.
|
|
505931
|
+
return join136(getZeroTempDir(), "bundled-skills", "0.8.6", nonce);
|
|
505932
505932
|
});
|
|
505933
505933
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
505934
505934
|
});
|
|
@@ -516947,7 +516947,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
516947
516947
|
slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
|
|
516948
516948
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
516949
516949
|
betas: getSdkBetas(),
|
|
516950
|
-
claude_code_version: "0.8.
|
|
516950
|
+
claude_code_version: "0.8.6",
|
|
516951
516951
|
output_style: outputStyle2,
|
|
516952
516952
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
516953
516953
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -532262,7 +532262,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
532262
532262
|
function getSemverPart(version3) {
|
|
532263
532263
|
return `${import_semver10.major(version3, { loose: true })}.${import_semver10.minor(version3, { loose: true })}.${import_semver10.patch(version3, { loose: true })}`;
|
|
532264
532264
|
}
|
|
532265
|
-
function useUpdateNotification(updatedVersion, initialVersion = "0.8.
|
|
532265
|
+
function useUpdateNotification(updatedVersion, initialVersion = "0.8.6") {
|
|
532266
532266
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
532267
532267
|
if (!updatedVersion) {
|
|
532268
532268
|
return null;
|
|
@@ -532302,7 +532302,7 @@ function AutoUpdater({
|
|
|
532302
532302
|
return;
|
|
532303
532303
|
}
|
|
532304
532304
|
if (false) {}
|
|
532305
|
-
const currentVersion = "0.8.
|
|
532305
|
+
const currentVersion = "0.8.6";
|
|
532306
532306
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
532307
532307
|
let latestVersion = await getLatestVersion(channel);
|
|
532308
532308
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -532516,12 +532516,12 @@ function NativeAutoUpdater({
|
|
|
532516
532516
|
logEvent("tengu_native_auto_updater_start", {});
|
|
532517
532517
|
try {
|
|
532518
532518
|
const maxVersion = await getMaxVersion();
|
|
532519
|
-
if (maxVersion && gt("0.8.
|
|
532519
|
+
if (maxVersion && gt("0.8.6", maxVersion)) {
|
|
532520
532520
|
const msg = await getMaxVersionMessage();
|
|
532521
532521
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
532522
532522
|
}
|
|
532523
532523
|
const result = await installLatest(channel);
|
|
532524
|
-
const currentVersion = "0.8.
|
|
532524
|
+
const currentVersion = "0.8.6";
|
|
532525
532525
|
const latencyMs = Date.now() - startTime;
|
|
532526
532526
|
if (result.lockFailed) {
|
|
532527
532527
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -532655,17 +532655,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
532655
532655
|
const maxVersion = await getMaxVersion();
|
|
532656
532656
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
532657
532657
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
532658
|
-
if (gte("0.8.
|
|
532659
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.8.
|
|
532658
|
+
if (gte("0.8.6", maxVersion)) {
|
|
532659
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.8.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
532660
532660
|
setUpdateAvailable(false);
|
|
532661
532661
|
return;
|
|
532662
532662
|
}
|
|
532663
532663
|
latest = maxVersion;
|
|
532664
532664
|
}
|
|
532665
|
-
const hasUpdate = latest && !gte("0.8.
|
|
532665
|
+
const hasUpdate = latest && !gte("0.8.6", latest) && !shouldSkipVersion(latest);
|
|
532666
532666
|
setUpdateAvailable(!!hasUpdate);
|
|
532667
532667
|
if (hasUpdate) {
|
|
532668
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.8.
|
|
532668
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.8.6"} -> ${latest}`);
|
|
532669
532669
|
}
|
|
532670
532670
|
};
|
|
532671
532671
|
$2[0] = t1;
|
|
@@ -532699,7 +532699,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
532699
532699
|
wrap: "truncate",
|
|
532700
532700
|
children: [
|
|
532701
532701
|
"currentVersion: ",
|
|
532702
|
-
"0.8.
|
|
532702
|
+
"0.8.6"
|
|
532703
532703
|
]
|
|
532704
532704
|
}, undefined, true, undefined, this);
|
|
532705
532705
|
$2[3] = verbose;
|
|
@@ -541729,7 +541729,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
541729
541729
|
project_dir: getOriginalCwd(),
|
|
541730
541730
|
added_dirs: addedDirs
|
|
541731
541731
|
},
|
|
541732
|
-
version: "0.8.
|
|
541732
|
+
version: "0.8.6",
|
|
541733
541733
|
output_style: {
|
|
541734
541734
|
name: outputStyleName
|
|
541735
541735
|
},
|
|
@@ -566248,7 +566248,7 @@ function WelcomeV2() {
|
|
|
566248
566248
|
dimColor: true,
|
|
566249
566249
|
children: [
|
|
566250
566250
|
"v",
|
|
566251
|
-
"0.8.
|
|
566251
|
+
"0.8.6",
|
|
566252
566252
|
" "
|
|
566253
566253
|
]
|
|
566254
566254
|
}, undefined, true, undefined, this)
|
|
@@ -566482,7 +566482,7 @@ function WelcomeV2() {
|
|
|
566482
566482
|
dimColor: true,
|
|
566483
566483
|
children: [
|
|
566484
566484
|
"v",
|
|
566485
|
-
"0.8.
|
|
566485
|
+
"0.8.6",
|
|
566486
566486
|
" "
|
|
566487
566487
|
]
|
|
566488
566488
|
}, undefined, true, undefined, this)
|
|
@@ -566729,7 +566729,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
566729
566729
|
dimColor: true,
|
|
566730
566730
|
children: [
|
|
566731
566731
|
"v",
|
|
566732
|
-
"0.8.
|
|
566732
|
+
"0.8.6",
|
|
566733
566733
|
" "
|
|
566734
566734
|
]
|
|
566735
566735
|
}, undefined, true, undefined, this);
|
|
@@ -567002,7 +567002,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
567002
567002
|
dimColor: true,
|
|
567003
567003
|
children: [
|
|
567004
567004
|
"v",
|
|
567005
|
-
"0.8.
|
|
567005
|
+
"0.8.6",
|
|
567006
567006
|
" "
|
|
567007
567007
|
]
|
|
567008
567008
|
}, undefined, true, undefined, this);
|
|
@@ -568514,7 +568514,7 @@ function completeOnboarding() {
|
|
|
568514
568514
|
saveGlobalConfig((current) => ({
|
|
568515
568515
|
...current,
|
|
568516
568516
|
hasCompletedOnboarding: true,
|
|
568517
|
-
lastOnboardingVersion: "0.8.
|
|
568517
|
+
lastOnboardingVersion: "0.8.6"
|
|
568518
568518
|
}));
|
|
568519
568519
|
}
|
|
568520
568520
|
function showDialog(root2, renderer) {
|
|
@@ -570392,7 +570392,7 @@ Call the \`${ENTER_PLAN_MODE_TOOL_NAME}\` tool now to enter plan mode, then:
|
|
|
570392
570392
|
Scale the count to the actual work: few files → closer to ${MIN_AGENTS}; hundreds of files → closer to ${MAX_AGENTS}. Prefer per-directory or per-module slicing over arbitrary file lists.
|
|
570393
570393
|
|
|
570394
570394
|
3. **Determine the e2e test recipe.** Figure out how a worker can verify its change actually works end-to-end — not just that unit tests pass. Look for:
|
|
570395
|
-
- A \`
|
|
570395
|
+
- A \`zero-in-chrome\` skill or browser-automation tool (for UI changes: click through the affected flow, screenshot the result)
|
|
570396
570396
|
- A \`tmux\` or CLI-verifier skill (for CLI changes: launch the app interactively, exercise the changed behavior)
|
|
570397
570397
|
- A dev-server + curl pattern (for API changes: start the server, hit the affected endpoints)
|
|
570398
570398
|
- An existing e2e/integration test suite the worker can run
|
|
@@ -570484,9 +570484,9 @@ var init_batch = __esm(() => {
|
|
|
570484
570484
|
// src/skills/bundled/claudeInChrome.ts
|
|
570485
570485
|
function registerZeroInChromeSkill() {
|
|
570486
570486
|
registerBundledSkill({
|
|
570487
|
-
name: "
|
|
570487
|
+
name: "zero-in-chrome",
|
|
570488
570488
|
description: "Automates your Chrome browser to interact with web pages - clicking elements, filling forms, capturing screenshots, reading console logs, and navigating sites. Opens pages in new tabs within your existing Chrome session. Requires site-level permissions before executing (configured in the extension).",
|
|
570489
|
-
whenToUse: "When the user wants to interact with web pages, automate browser tasks, capture screenshots, read console logs, or perform any browser-based actions. Always invoke BEFORE attempting to use any
|
|
570489
|
+
whenToUse: "When the user wants to interact with web pages, automate browser tasks, capture screenshots, read console logs, or perform any browser-based actions. Always invoke BEFORE attempting to use any mcp__zero-in-chrome__* tools.",
|
|
570490
570490
|
allowedTools: CLAUDE_IN_CHROME_MCP_TOOLS,
|
|
570491
570491
|
userInvocable: true,
|
|
570492
570492
|
isEnabled: () => shouldAutoEnableZeroInChrome(),
|
|
@@ -570504,15 +570504,15 @@ ${args}`;
|
|
|
570504
570504
|
});
|
|
570505
570505
|
}
|
|
570506
570506
|
var CLAUDE_IN_CHROME_MCP_TOOLS, SKILL_ACTIVATION_MESSAGE = `
|
|
570507
|
-
Now that this skill is invoked, you have access to Chrome browser automation tools. You can now use the
|
|
570507
|
+
Now that this skill is invoked, you have access to Chrome browser automation tools. You can now use the mcp__zero-in-chrome__* tools to interact with web pages.
|
|
570508
570508
|
|
|
570509
|
-
IMPORTANT: Start by calling
|
|
570509
|
+
IMPORTANT: Start by calling mcp__zero-in-chrome__tabs_context_mcp to get information about the user's current browser tabs.
|
|
570510
570510
|
`;
|
|
570511
570511
|
var init_claudeInChrome = __esm(() => {
|
|
570512
570512
|
init_zeroCLIMcpServer();
|
|
570513
570513
|
init_setup2();
|
|
570514
570514
|
init_bundledSkills();
|
|
570515
|
-
CLAUDE_IN_CHROME_MCP_TOOLS = ZEROCLI_BROWSER_TOOLS.map((toolName) => `
|
|
570515
|
+
CLAUDE_IN_CHROME_MCP_TOOLS = ZEROCLI_BROWSER_TOOLS.map((toolName) => `mcp__zero-in-chrome__${toolName}`);
|
|
570516
570516
|
});
|
|
570517
570517
|
|
|
570518
570518
|
// src/skills/bundled/debug.ts
|
|
@@ -572765,7 +572765,7 @@ function appendToLog(path24, message) {
|
|
|
572765
572765
|
cwd: getFsImplementation().cwd(),
|
|
572766
572766
|
userType: process.env.USER_TYPE,
|
|
572767
572767
|
sessionId: getSessionId(),
|
|
572768
|
-
version: "0.8.
|
|
572768
|
+
version: "0.8.6"
|
|
572769
572769
|
};
|
|
572770
572770
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
572771
572771
|
}
|
|
@@ -573371,7 +573371,7 @@ async function startMCPServer(cwd2, debug, verbose) {
|
|
|
573371
573371
|
setCwd(cwd2);
|
|
573372
573372
|
const server = new Server({
|
|
573373
573373
|
name: "claude/tengu",
|
|
573374
|
-
version: "0.8.
|
|
573374
|
+
version: "0.8.6"
|
|
573375
573375
|
}, {
|
|
573376
573376
|
capabilities: {
|
|
573377
573377
|
tools: {}
|
|
@@ -578010,8 +578010,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
578010
578010
|
}
|
|
578011
578011
|
async function checkEnvLessBridgeMinVersion() {
|
|
578012
578012
|
const cfg = await getEnvLessBridgeConfig();
|
|
578013
|
-
if (cfg.min_version && lt("0.8.
|
|
578014
|
-
return `Your version of ZeroCLI (${"0.8.
|
|
578013
|
+
if (cfg.min_version && lt("0.8.6", cfg.min_version)) {
|
|
578014
|
+
return `Your version of ZeroCLI (${"0.8.6"}) is too old for Remote Control.
|
|
578015
578015
|
Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
|
|
578016
578016
|
}
|
|
578017
578017
|
return null;
|
|
@@ -578486,7 +578486,7 @@ async function initBridgeCore(params) {
|
|
|
578486
578486
|
const rawApi = createBridgeApiClient({
|
|
578487
578487
|
baseUrl,
|
|
578488
578488
|
getAccessToken,
|
|
578489
|
-
runnerVersion: "0.8.
|
|
578489
|
+
runnerVersion: "0.8.6",
|
|
578490
578490
|
onDebug: logForDebugging,
|
|
578491
578491
|
onAuth401,
|
|
578492
578492
|
getTrustedDeviceToken
|
|
@@ -584774,7 +584774,7 @@ __export(exports_update, {
|
|
|
584774
584774
|
});
|
|
584775
584775
|
async function update() {
|
|
584776
584776
|
logEvent("tengu_update_check", {});
|
|
584777
|
-
writeToStdout(`Current version: ${"0.8.
|
|
584777
|
+
writeToStdout(`Current version: ${"0.8.6"}
|
|
584778
584778
|
`);
|
|
584779
584779
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
584780
584780
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -584849,8 +584849,8 @@ async function update() {
|
|
|
584849
584849
|
writeToStdout(`Zero is managed by Homebrew.
|
|
584850
584850
|
`);
|
|
584851
584851
|
const latest = await getLatestVersion(channel);
|
|
584852
|
-
if (latest && !gte("0.8.
|
|
584853
|
-
writeToStdout(`Update available: ${"0.8.
|
|
584852
|
+
if (latest && !gte("0.8.6", latest)) {
|
|
584853
|
+
writeToStdout(`Update available: ${"0.8.6"} → ${latest}
|
|
584854
584854
|
`);
|
|
584855
584855
|
writeToStdout(`
|
|
584856
584856
|
`);
|
|
@@ -584866,8 +584866,8 @@ async function update() {
|
|
|
584866
584866
|
writeToStdout(`Zero is managed by winget.
|
|
584867
584867
|
`);
|
|
584868
584868
|
const latest = await getLatestVersion(channel);
|
|
584869
|
-
if (latest && !gte("0.8.
|
|
584870
|
-
writeToStdout(`Update available: ${"0.8.
|
|
584869
|
+
if (latest && !gte("0.8.6", latest)) {
|
|
584870
|
+
writeToStdout(`Update available: ${"0.8.6"} → ${latest}
|
|
584871
584871
|
`);
|
|
584872
584872
|
writeToStdout(`
|
|
584873
584873
|
`);
|
|
@@ -584883,8 +584883,8 @@ async function update() {
|
|
|
584883
584883
|
writeToStdout(`Zero is managed by apk.
|
|
584884
584884
|
`);
|
|
584885
584885
|
const latest = await getLatestVersion(channel);
|
|
584886
|
-
if (latest && !gte("0.8.
|
|
584887
|
-
writeToStdout(`Update available: ${"0.8.
|
|
584886
|
+
if (latest && !gte("0.8.6", latest)) {
|
|
584887
|
+
writeToStdout(`Update available: ${"0.8.6"} → ${latest}
|
|
584888
584888
|
`);
|
|
584889
584889
|
writeToStdout(`
|
|
584890
584890
|
`);
|
|
@@ -584949,11 +584949,11 @@ async function update() {
|
|
|
584949
584949
|
`);
|
|
584950
584950
|
await gracefulShutdown(1);
|
|
584951
584951
|
}
|
|
584952
|
-
if (result.latestVersion === "0.8.
|
|
584953
|
-
writeToStdout(source_default.green(`Zero CLI is up to date (${"0.8.
|
|
584952
|
+
if (result.latestVersion === "0.8.6") {
|
|
584953
|
+
writeToStdout(source_default.green(`Zero CLI is up to date (${"0.8.6"})`) + `
|
|
584954
584954
|
`);
|
|
584955
584955
|
} else {
|
|
584956
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.8.
|
|
584956
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.8.6"} to version ${result.latestVersion}`) + `
|
|
584957
584957
|
`);
|
|
584958
584958
|
await regenerateCompletionCache();
|
|
584959
584959
|
}
|
|
@@ -585013,12 +585013,12 @@ async function update() {
|
|
|
585013
585013
|
`);
|
|
585014
585014
|
await gracefulShutdown(1);
|
|
585015
585015
|
}
|
|
585016
|
-
if (latestVersion === "0.8.
|
|
585017
|
-
writeToStdout(source_default.green(`Zero CLI is up to date (${"0.8.
|
|
585016
|
+
if (latestVersion === "0.8.6") {
|
|
585017
|
+
writeToStdout(source_default.green(`Zero CLI is up to date (${"0.8.6"})`) + `
|
|
585018
585018
|
`);
|
|
585019
585019
|
await gracefulShutdown(0);
|
|
585020
585020
|
}
|
|
585021
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.8.
|
|
585021
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.8.6"})
|
|
585022
585022
|
`);
|
|
585023
585023
|
writeToStdout(`Installing update...
|
|
585024
585024
|
`);
|
|
@@ -585063,7 +585063,7 @@ async function update() {
|
|
|
585063
585063
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
585064
585064
|
switch (status2) {
|
|
585065
585065
|
case "success":
|
|
585066
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.8.
|
|
585066
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.8.6"} to version ${latestVersion}`) + `
|
|
585067
585067
|
`);
|
|
585068
585068
|
await regenerateCompletionCache();
|
|
585069
585069
|
break;
|
|
@@ -586363,7 +586363,7 @@ ${customInstructions}` : customInstructions;
|
|
|
586363
586363
|
}
|
|
586364
586364
|
}
|
|
586365
586365
|
logForDiagnosticsNoPII("info", "started", {
|
|
586366
|
-
version: "0.8.
|
|
586366
|
+
version: "0.8.6",
|
|
586367
586367
|
is_native_binary: isInBundledMode()
|
|
586368
586368
|
});
|
|
586369
586369
|
registerCleanup(async () => {
|
|
@@ -587246,7 +587246,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
587246
587246
|
pendingHookMessages
|
|
587247
587247
|
}, renderAndRun);
|
|
587248
587248
|
}
|
|
587249
|
-
}).version("0.8.
|
|
587249
|
+
}).version("0.8.6", "-v, --version", "Output the version number");
|
|
587250
587250
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
587251
587251
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
587252
587252
|
if (canUserConfigureAdvisor()) {
|
|
@@ -587911,7 +587911,7 @@ if (false) {}
|
|
|
587911
587911
|
async function main2() {
|
|
587912
587912
|
const args = process.argv.slice(2);
|
|
587913
587913
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
587914
|
-
console.log(`${"0.8.
|
|
587914
|
+
console.log(`${"0.8.6"} (ZeroCLI)`);
|
|
587915
587915
|
return;
|
|
587916
587916
|
}
|
|
587917
587917
|
if (args.includes("--provider")) {
|
|
@@ -587975,7 +587975,7 @@ async function main2() {
|
|
|
587975
587975
|
`));
|
|
587976
587976
|
return;
|
|
587977
587977
|
}
|
|
587978
|
-
if (process.argv[2] === "--
|
|
587978
|
+
if (process.argv[2] === "--zero-in-chrome-mcp") {
|
|
587979
587979
|
profileCheckpoint2("cli_claude_in_chrome_mcp_path");
|
|
587980
587980
|
const {
|
|
587981
587981
|
runZeroInChromeMcpServer: runZeroInChromeMcpServer2
|
|
@@ -588053,4 +588053,4 @@ async function main2() {
|
|
|
588053
588053
|
}
|
|
588054
588054
|
main2();
|
|
588055
588055
|
|
|
588056
|
-
//# debugId=
|
|
588056
|
+
//# debugId=B93F9B76E5C0DBCD64756E2164756E21
|