@duheso/zerocli 0.7.7 → 0.7.8

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.
Files changed (3) hide show
  1. package/bin/zero +103 -96
  2. package/dist/cli.mjs +74 -74
  3. package/package.json +1 -1
package/bin/zero CHANGED
@@ -1,96 +1,103 @@
1
- #!/usr/bin/env bash
2
-
3
- # Zero CLI — Shell wrapper for env var mapping and V8 heap configuration
4
- #
5
- # Maps COPILOT_PROVIDER_* / COPILOT_MODEL vars to the native OpenAI-shim
6
- # vars, then boots the app.
7
- #
8
- # Internal (localhost):
9
- # export COPILOT_PROVIDER_BASE_URL=http://localhost:3052/v1
10
- # export COPILOT_PROVIDER_TYPE=openai
11
- # export COPILOT_PROVIDER_API_KEY=not-required
12
- # export COPILOT_MODEL=gemma4:code
13
- # zero
14
- #
15
- # External (remote server):
16
- # export COPILOT_PROVIDER_BASE_URL=http://10.11.36.131:3052/v1
17
- # export COPILOT_PROVIDER_TYPE=openai
18
- # export COPILOT_PROVIDER_API_KEY=not-required
19
- # export COPILOT_MODEL=gemma4:code
20
- # zero
21
-
22
- # ── COPILOT_* native env var mapping ──────────────────────────────────────
23
-
24
- providerType="${COPILOT_PROVIDER_TYPE,,}"
25
-
26
- if [[ "$providerType" == "openai" ]] && [[ -n "$COPILOT_PROVIDER_BASE_URL" ]]; then
27
- export CLAUDE_CODE_USE_OPENAI=1
28
- fi
29
-
30
- if [[ -n "$COPILOT_PROVIDER_BASE_URL" ]] && [[ -z "$OPENAI_BASE_URL" ]]; then
31
- export OPENAI_BASE_URL="$COPILOT_PROVIDER_BASE_URL"
32
- fi
33
-
34
- if [[ -n "$COPILOT_PROVIDER_API_KEY" ]] && [[ -z "$OPENAI_API_KEY" ]]; then
35
- export OPENAI_API_KEY="$COPILOT_PROVIDER_API_KEY"
36
- fi
37
-
38
- if [[ -n "$COPILOT_MODEL" ]] && [[ -z "$OPENAI_MODEL" ]]; then
39
- export OPENAI_MODEL="$COPILOT_MODEL"
40
- fi
41
-
42
- # COPILOT_TOOLLESS=1 → disable tool calling (text-only mode).
43
- if [[ -n "$COPILOT_TOOLLESS" ]] && [[ -z "$OPENAI_TOOLLESS" ]]; then
44
- export OPENAI_TOOLLESS="$COPILOT_TOOLLESS"
45
- fi
46
-
47
- # ── V8 heap configuration ────────────────────────────────────────────────────
48
- #
49
- # Prevent "JavaScript heap out of memory" crashes during long-running
50
- # sessions (large context windows, agent waves, file editing). The default
51
- # V8 heap limit (~4GB) is insufficient for the Zero CLI's context buildup.
52
- #
53
- # When running in CCR (remote containers), use 8GB. Otherwise, allocate
54
- # 8GB on machines with enough RAM, falling back to 6GB as minimum.
55
-
56
- if [[ "$CLAUDE_CODE_REMOTE" == "true" ]]; then
57
- HEAP_SIZE=8192
58
- else
59
- totalMemMB=$(free -m 2>/dev/null | awk '/^Mem:/{print $2}')
60
- if [[ -n "$totalMemMB" ]] && [[ "$totalMemMB" -gt 16384 ]]; then
61
- HEAP_SIZE=8192
62
- else
63
- HEAP_SIZE=6144
64
- fi
65
- fi
66
-
67
- # Preserve existing NODE_OPTIONS (user may set --inspect, etc.)
68
- if [[ -n "$NODE_OPTIONS" ]]; then
69
- export NODE_OPTIONS="${NODE_OPTIONS} --max-old-space-size=${HEAP_SIZE}"
70
- else
71
- export NODE_OPTIONS="--max-old-space-size=${HEAP_SIZE}"
72
- fi
73
-
74
- # ── Boot the compiled bundle ─────────────────────────────────────────────────
75
-
76
- # Resolve through symlinks (npm link creates symlink chains)
77
- RESOLVED="$(cd -P "$(dirname "$0")" && pwd)"
78
- SCRIPT_DIR="$(dirname "$(realpath "$0")" 2>/dev/null || echo "$RESOLVED")"
79
- DIST_PATH="${SCRIPT_DIR}/../dist/cli.mjs"
80
-
81
- if [[ -f "$DIST_PATH" ]]; then
82
- exec node "$DIST_PATH" "$@"
83
- else
84
- cat >&2 <<'USAGE'
85
- zero: dist/cli.mjs not found.
86
-
87
- Build first:
88
- bun run build
89
-
90
- Or run directly with Bun:
91
- bun run dev
92
-
93
- See README.md for setup instructions.
94
- USAGE
95
- exit 1
96
- fi
1
+ #!/usr/bin/env node
2
+
3
+ // Zero CLI — Cross-platform wrapper for env var mapping and V8 heap configuration
4
+ //
5
+ // Maps COPILOT_PROVIDER_* / COPILOT_MODEL vars to the native OpenAI-shim
6
+ // vars, then boots the app.
7
+ //
8
+ // Internal (localhost):
9
+ // export COPILOT_PROVIDER_BASE_URL=http://localhost:3052/v1
10
+ // export COPILOT_PROVIDER_TYPE=openai
11
+ // export COPILOT_PROVIDER_API_KEY=not-required
12
+ // export COPILOT_MODEL=gemma4:code
13
+ // zero
14
+ //
15
+ // External (remote server):
16
+ // export COPILOT_PROVIDER_BASE_URL=http://10.11.36.131:3052/v1
17
+ // export COPILOT_PROVIDER_TYPE=openai
18
+ // export COPILOT_PROVIDER_API_KEY=not-required
19
+ // export COPILOT_MODEL=gemma4:code
20
+ // zero
21
+
22
+ import { spawn } from 'child_process';
23
+ import { existsSync } from 'fs';
24
+ import { fileURLToPath } from 'url';
25
+ import { dirname, join } from 'path';
26
+ import os from 'os';
27
+
28
+ const __dirname = dirname(fileURLToPath(import.meta.url));
29
+ const env = { ...process.env };
30
+
31
+ // ── COPILOT_* → native env var mapping ──────────────────────────────────────
32
+
33
+ const providerType = (env.COPILOT_PROVIDER_TYPE ?? '').toLowerCase();
34
+
35
+ if (providerType === 'openai' && env.COPILOT_PROVIDER_BASE_URL) {
36
+ env.CLAUDE_CODE_USE_OPENAI = '1';
37
+ }
38
+
39
+ if (env.COPILOT_PROVIDER_BASE_URL && !env.OPENAI_BASE_URL) {
40
+ env.OPENAI_BASE_URL = env.COPILOT_PROVIDER_BASE_URL;
41
+ }
42
+
43
+ if (env.COPILOT_PROVIDER_API_KEY && !env.OPENAI_API_KEY) {
44
+ env.OPENAI_API_KEY = env.COPILOT_PROVIDER_API_KEY;
45
+ }
46
+
47
+ if (env.COPILOT_MODEL && !env.OPENAI_MODEL) {
48
+ env.OPENAI_MODEL = env.COPILOT_MODEL;
49
+ }
50
+
51
+ // COPILOT_TOOLLESS=1 disable tool calling (text-only mode).
52
+ if (env.COPILOT_TOOLLESS && !env.OPENAI_TOOLLESS) {
53
+ env.OPENAI_TOOLLESS = env.COPILOT_TOOLLESS;
54
+ }
55
+
56
+ // ── V8 heap configuration ────────────────────────────────────────────────────
57
+ //
58
+ // Prevent "JavaScript heap out of memory" crashes during long-running
59
+ // sessions (large context windows, agent waves, file editing). The default
60
+ // V8 heap limit (~4GB) is insufficient for the Zero CLI's context buildup.
61
+ //
62
+ // When running in CCR (remote containers), use 8GB. Otherwise, allocate
63
+ // 8GB on machines with enough RAM, falling back to 6GB as minimum.
64
+
65
+ let heapSize;
66
+ if (env.CLAUDE_CODE_REMOTE === 'true') {
67
+ heapSize = 8192;
68
+ } else {
69
+ const totalMemMB = os.totalmem() / (1024 * 1024);
70
+ heapSize = totalMemMB > 16384 ? 8192 : 6144;
71
+ }
72
+
73
+ // Preserve existing NODE_OPTIONS (user may set --inspect, etc.)
74
+ env.NODE_OPTIONS = env.NODE_OPTIONS
75
+ ? `${env.NODE_OPTIONS} --max-old-space-size=${heapSize}`
76
+ : `--max-old-space-size=${heapSize}`;
77
+
78
+ // ── Boot the compiled bundle ─────────────────────────────────────────────────
79
+
80
+ const distPath = join(__dirname, '..', 'dist', 'cli.mjs');
81
+
82
+ if (!existsSync(distPath)) {
83
+ process.stderr.write(
84
+ ' zero: dist/cli.mjs not found.\n\n' +
85
+ ' Build first:\n bun run build\n\n' +
86
+ ' Or run directly with Bun:\n bun run dev\n\n' +
87
+ ' See README.md for setup instructions.\n'
88
+ );
89
+ process.exit(1);
90
+ }
91
+
92
+ const child = spawn(process.execPath, [distPath, ...process.argv.slice(2)], {
93
+ stdio: 'inherit',
94
+ env,
95
+ });
96
+
97
+ child.on('exit', (code, signal) => {
98
+ if (signal) {
99
+ process.kill(process.pid, signal);
100
+ } else {
101
+ process.exit(code ?? 0);
102
+ }
103
+ });
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.7.7"}${RESET}`);
119196
+ out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.7.8"}${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.7.7"}.${fingerprint}`;
151707
+ const version2 = `${"0.7.8"}.${fingerprint}`;
151708
151708
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
151709
151709
  const cch = "";
151710
151710
  const workload = getWorkload();
@@ -194519,7 +194519,7 @@ var init_imageValidation = __esm(() => {
194519
194519
 
194520
194520
  // src/utils/userAgent.ts
194521
194521
  function getClaudeCodeUserAgent() {
194522
- return `claude-code/${"0.7.7"}`;
194522
+ return `claude-code/${"0.7.8"}`;
194523
194523
  }
194524
194524
 
194525
194525
  // src/utils/http.ts
@@ -194528,7 +194528,7 @@ function getUserAgent() {
194528
194528
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
194529
194529
  const workload = getWorkload();
194530
194530
  const workloadSuffix = workload ? `, workload/${workload}` : "";
194531
- return `claude-cli/${"0.7.7"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
194531
+ return `claude-cli/${"0.7.8"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
194532
194532
  }
194533
194533
  function getMCPUserAgent() {
194534
194534
  const parts = [];
@@ -194542,7 +194542,7 @@ function getMCPUserAgent() {
194542
194542
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
194543
194543
  }
194544
194544
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
194545
- return `claude-code/${"0.7.7"}${suffix}`;
194545
+ return `claude-code/${"0.7.8"}${suffix}`;
194546
194546
  }
194547
194547
  function getWebFetchUserAgent() {
194548
194548
  const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/Duheso/ZeroCLI";
@@ -248971,7 +248971,7 @@ function getTelemetryAttributes() {
248971
248971
  attributes["session.id"] = sessionId;
248972
248972
  }
248973
248973
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
248974
- attributes["app.version"] = "0.7.7";
248974
+ attributes["app.version"] = "0.7.8";
248975
248975
  }
248976
248976
  const oauthAccount = getOauthAccountInfo();
248977
248977
  if (oauthAccount) {
@@ -261210,7 +261210,7 @@ function computeFingerprint(messageText, version2) {
261210
261210
  }
261211
261211
  function computeFingerprintFromMessages(messages) {
261212
261212
  const firstMessageText = extractFirstMessageText(messages);
261213
- return computeFingerprint(firstMessageText, "0.7.7");
261213
+ return computeFingerprint(firstMessageText, "0.7.8");
261214
261214
  }
261215
261215
  var FINGERPRINT_SALT = "59cf53e54c78";
261216
261216
  var init_fingerprint = () => {};
@@ -261252,7 +261252,7 @@ async function sideQuery(opts) {
261252
261252
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
261253
261253
  }
261254
261254
  const messageText = extractFirstUserMessageText(messages);
261255
- const fingerprint = computeFingerprint(messageText, "0.7.7");
261255
+ const fingerprint = computeFingerprint(messageText, "0.7.8");
261256
261256
  const attributionHeader = getAttributionHeader(fingerprint);
261257
261257
  const systemBlocks = [
261258
261258
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -270154,7 +270154,7 @@ var init_user = __esm(() => {
270154
270154
  deviceId,
270155
270155
  sessionId: getSessionId(),
270156
270156
  email: getEmail(),
270157
- appVersion: "0.7.7",
270157
+ appVersion: "0.7.8",
270158
270158
  platform: getHostPlatformForAnalytics(),
270159
270159
  organizationUuid,
270160
270160
  accountUuid,
@@ -270548,7 +270548,7 @@ async function initializeBetaTracing(resource) {
270548
270548
  });
270549
270549
  logs.setGlobalLoggerProvider(loggerProvider);
270550
270550
  setLoggerProvider(loggerProvider);
270551
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.7.7");
270551
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.7.8");
270552
270552
  setEventLogger(eventLogger);
270553
270553
  process.on("beforeExit", async () => {
270554
270554
  await loggerProvider?.forceFlush();
@@ -270588,7 +270588,7 @@ async function initializeTelemetry() {
270588
270588
  const platform3 = getPlatform();
270589
270589
  const baseAttributes = {
270590
270590
  [ATTR_SERVICE_NAME3]: "claude-code",
270591
- [ATTR_SERVICE_VERSION3]: "0.7.7"
270591
+ [ATTR_SERVICE_VERSION3]: "0.7.8"
270592
270592
  };
270593
270593
  if (platform3 === "wsl") {
270594
270594
  const wslVersion = getWslVersion();
@@ -270633,7 +270633,7 @@ async function initializeTelemetry() {
270633
270633
  } catch {}
270634
270634
  };
270635
270635
  registerCleanup(shutdownTelemetry2);
270636
- return meterProvider2.getMeter("com.anthropic.claude_code", "0.7.7");
270636
+ return meterProvider2.getMeter("com.anthropic.claude_code", "0.7.8");
270637
270637
  }
270638
270638
  const meterProvider = new MeterProvider3({
270639
270639
  resource,
@@ -270653,7 +270653,7 @@ async function initializeTelemetry() {
270653
270653
  });
270654
270654
  logs.setGlobalLoggerProvider(loggerProvider);
270655
270655
  setLoggerProvider(loggerProvider);
270656
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.7.7");
270656
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.7.8");
270657
270657
  setEventLogger(eventLogger);
270658
270658
  logForDebugging("[3P telemetry] Event logger set successfully");
270659
270659
  process.on("beforeExit", async () => {
@@ -270715,7 +270715,7 @@ Current timeout: ${timeoutMs}ms
270715
270715
  }
270716
270716
  };
270717
270717
  registerCleanup(shutdownTelemetry);
270718
- return meterProvider.getMeter("com.anthropic.claude_code", "0.7.7");
270718
+ return meterProvider.getMeter("com.anthropic.claude_code", "0.7.8");
270719
270719
  }
270720
270720
  async function flushTelemetry() {
270721
270721
  const meterProvider = getMeterProvider();
@@ -272007,7 +272007,7 @@ function detectLinuxGlobPatternWarnings() {
272007
272007
  }
272008
272008
  async function getDoctorDiagnostic() {
272009
272009
  const installationType = await getCurrentInstallationType();
272010
- const version2 = typeof MACRO !== "undefined" ? "0.7.7" : "unknown";
272010
+ const version2 = typeof MACRO !== "undefined" ? "0.7.8" : "unknown";
272011
272011
  const installationPath = await getInstallationPath();
272012
272012
  const invokedBinary = getInvokedBinary();
272013
272013
  const multipleInstallations = await detectMultipleInstallations();
@@ -273492,7 +273492,7 @@ function getInstallationEnv() {
273492
273492
  return;
273493
273493
  }
273494
273494
  function getClaudeCodeVersion() {
273495
- return "0.7.7";
273495
+ return "0.7.8";
273496
273496
  }
273497
273497
  async function getInstalledVSCodeExtensionVersion(command) {
273498
273498
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -274859,8 +274859,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
274859
274859
  const maxVersion = await getMaxVersion();
274860
274860
  if (maxVersion && gt(version2, maxVersion)) {
274861
274861
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
274862
- if (gte("0.7.7", maxVersion)) {
274863
- logForDebugging(`Native installer: current version ${"0.7.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
274862
+ if (gte("0.7.8", maxVersion)) {
274863
+ logForDebugging(`Native installer: current version ${"0.7.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
274864
274864
  logEvent("tengu_native_update_skipped_max_version", {
274865
274865
  latency_ms: Date.now() - startTime,
274866
274866
  max_version: maxVersion,
@@ -274871,7 +274871,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
274871
274871
  version2 = maxVersion;
274872
274872
  }
274873
274873
  }
274874
- if (!forceReinstall && version2 === "0.7.7" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
274874
+ if (!forceReinstall && version2 === "0.7.8" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
274875
274875
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
274876
274876
  logEvent("tengu_native_update_complete", {
274877
274877
  latency_ms: Date.now() - startTime,
@@ -380077,7 +380077,7 @@ function getAnthropicEnvMetadata() {
380077
380077
  function getBuildAgeMinutes() {
380078
380078
  if (false)
380079
380079
  ;
380080
- const buildTime = new Date("2026-05-04T17:51:54.195Z").getTime();
380080
+ const buildTime = new Date("2026-05-04T18:54:06.580Z").getTime();
380081
380081
  if (isNaN(buildTime))
380082
380082
  return;
380083
380083
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -406195,7 +406195,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
406195
406195
  const client2 = new Client({
406196
406196
  name: "claude-code",
406197
406197
  title: "ZeroCLI",
406198
- version: "0.7.7",
406198
+ version: "0.7.8",
406199
406199
  description: "Anthropic's agentic coding tool",
406200
406200
  websiteUrl: PRODUCT_URL
406201
406201
  }, {
@@ -406549,7 +406549,7 @@ var init_client7 = __esm(() => {
406549
406549
  const client2 = new Client({
406550
406550
  name: "claude-code",
406551
406551
  title: "ZeroCLI",
406552
- version: "0.7.7",
406552
+ version: "0.7.8",
406553
406553
  description: "Anthropic's agentic coding tool",
406554
406554
  websiteUrl: PRODUCT_URL
406555
406555
  }, {
@@ -417212,7 +417212,7 @@ function Feedback({
417212
417212
  platform: env2.platform,
417213
417213
  gitRepo: envInfo.isGit,
417214
417214
  terminal: env2.terminal,
417215
- version: "0.7.7",
417215
+ version: "0.7.8",
417216
417216
  transcript: normalizeMessagesForAPI(messages),
417217
417217
  errors: sanitizedErrors,
417218
417218
  lastApiRequest: getLastAPIRequest(),
@@ -417405,7 +417405,7 @@ function Feedback({
417405
417405
  ", ",
417406
417406
  env2.terminal,
417407
417407
  ", v",
417408
- "0.7.7"
417408
+ "0.7.8"
417409
417409
  ]
417410
417410
  }, undefined, true, undefined, this)
417411
417411
  ]
@@ -417513,7 +417513,7 @@ ${sanitizedDescription}
417513
417513
  ` + `**Environment Info**
417514
417514
  ` + `- Platform: ${env2.platform}
417515
417515
  ` + `- Terminal: ${env2.terminal}
417516
- ` + `- Version: ${"0.7.7"}
417516
+ ` + `- Version: ${"0.7.8"}
417517
417517
  ` + feedbackIdLine + `
417518
417518
  **Errors**
417519
417519
  \`\`\`json
@@ -420668,7 +420668,7 @@ function buildPrimarySection() {
420668
420668
  }, undefined, false, undefined, this);
420669
420669
  return [{
420670
420670
  label: "Version",
420671
- value: "0.7.7"
420671
+ value: "0.7.8"
420672
420672
  }, {
420673
420673
  label: "Session name",
420674
420674
  value: nameValue
@@ -425438,7 +425438,7 @@ function Config({
425438
425438
  }
425439
425439
  }, undefined, false, undefined, this)
425440
425440
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime181.jsxDEV(ChannelDowngradeDialog, {
425441
- currentVersion: "0.7.7",
425441
+ currentVersion: "0.7.8",
425442
425442
  onChoice: (choice) => {
425443
425443
  setShowSubmenu(null);
425444
425444
  setTabsHidden(false);
@@ -425450,7 +425450,7 @@ function Config({
425450
425450
  autoUpdatesChannel: "stable"
425451
425451
  };
425452
425452
  if (choice === "stay") {
425453
- newSettings.minimumVersion = "0.7.7";
425453
+ newSettings.minimumVersion = "0.7.8";
425454
425454
  }
425455
425455
  updateSettingsForSource("userSettings", newSettings);
425456
425456
  setSettingsData((prev_27) => ({
@@ -434346,7 +434346,7 @@ function HelpV2(t0) {
434346
434346
  let t6;
434347
434347
  if ($2[31] !== tabs) {
434348
434348
  t6 = /* @__PURE__ */ jsx_dev_runtime210.jsxDEV(Tabs, {
434349
- title: `ZeroCLI v${"0.7.7"}`,
434349
+ title: `ZeroCLI v${"0.7.8"}`,
434350
434350
  color: "professionalBlue",
434351
434351
  defaultTab: "general",
434352
434352
  children: tabs
@@ -459190,7 +459190,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
459190
459190
  return [];
459191
459191
  }
459192
459192
  }
459193
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.7.7") {
459193
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.7.8") {
459194
459194
  if (process.env.USER_TYPE === "ant") {
459195
459195
  const changelog = MACRO.VERSION_CHANGELOG;
459196
459196
  if (changelog) {
@@ -488228,7 +488228,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
488228
488228
  smapsRollup,
488229
488229
  platform: process.platform,
488230
488230
  nodeVersion: process.version,
488231
- ccVersion: "0.7.7"
488231
+ ccVersion: "0.7.8"
488232
488232
  };
488233
488233
  }
488234
488234
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -488815,7 +488815,7 @@ var init_bridge_kick = __esm(() => {
488815
488815
  var call59 = async () => {
488816
488816
  return {
488817
488817
  type: "text",
488818
- value: `${"0.7.7"} (built ${"2026-05-04T17:51:54.195Z"})`
488818
+ value: `${"0.7.8"} (built ${"2026-05-04T18:54:06.580Z"})`
488819
488819
  };
488820
488820
  }, version2, version_default;
488821
488821
  var init_version = __esm(() => {
@@ -498981,7 +498981,7 @@ function generateHtmlReport(data, insights) {
498981
498981
  </html>`;
498982
498982
  }
498983
498983
  function buildExportData(data, insights, facets) {
498984
- const version3 = typeof MACRO !== "undefined" ? "0.7.7" : "unknown";
498984
+ const version3 = typeof MACRO !== "undefined" ? "0.7.8" : "unknown";
498985
498985
  const facets_summary = {
498986
498986
  total: facets.size,
498987
498987
  goal_categories: {},
@@ -503171,7 +503171,7 @@ var init_sessionStorage = __esm(() => {
503171
503171
  init_settings2();
503172
503172
  init_slowOperations();
503173
503173
  init_uuid();
503174
- VERSION7 = typeof MACRO !== "undefined" ? "0.7.7" : "unknown";
503174
+ VERSION7 = typeof MACRO !== "undefined" ? "0.7.8" : "unknown";
503175
503175
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
503176
503176
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
503177
503177
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -504481,7 +504481,7 @@ var init_filesystem = __esm(() => {
504481
504481
  });
504482
504482
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
504483
504483
  const nonce = randomBytes17(16).toString("hex");
504484
- return join136(getClaudeTempDir(), "bundled-skills", "0.7.7", nonce);
504484
+ return join136(getClaudeTempDir(), "bundled-skills", "0.7.8", nonce);
504485
504485
  });
504486
504486
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
504487
504487
  });
@@ -515484,7 +515484,7 @@ function buildSystemInitMessage(inputs) {
515484
515484
  slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
515485
515485
  apiKeySource: getAnthropicApiKeyWithSource().source,
515486
515486
  betas: getSdkBetas(),
515487
- claude_code_version: "0.7.7",
515487
+ claude_code_version: "0.7.8",
515488
515488
  output_style: outputStyle2,
515489
515489
  agents: inputs.agents.map((agent2) => agent2.agentType),
515490
515490
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -530799,7 +530799,7 @@ var init_useVoiceEnabled = __esm(() => {
530799
530799
  function getSemverPart(version3) {
530800
530800
  return `${import_semver10.major(version3, { loose: true })}.${import_semver10.minor(version3, { loose: true })}.${import_semver10.patch(version3, { loose: true })}`;
530801
530801
  }
530802
- function useUpdateNotification(updatedVersion, initialVersion = "0.7.7") {
530802
+ function useUpdateNotification(updatedVersion, initialVersion = "0.7.8") {
530803
530803
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
530804
530804
  if (!updatedVersion) {
530805
530805
  return null;
@@ -530839,7 +530839,7 @@ function AutoUpdater({
530839
530839
  return;
530840
530840
  }
530841
530841
  if (false) {}
530842
- const currentVersion = "0.7.7";
530842
+ const currentVersion = "0.7.8";
530843
530843
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
530844
530844
  let latestVersion = await getLatestVersion(channel);
530845
530845
  const isDisabled = isAutoUpdaterDisabled();
@@ -531053,12 +531053,12 @@ function NativeAutoUpdater({
531053
531053
  logEvent("tengu_native_auto_updater_start", {});
531054
531054
  try {
531055
531055
  const maxVersion = await getMaxVersion();
531056
- if (maxVersion && gt("0.7.7", maxVersion)) {
531056
+ if (maxVersion && gt("0.7.8", maxVersion)) {
531057
531057
  const msg = await getMaxVersionMessage();
531058
531058
  setMaxVersionIssue(msg ?? "affects your version");
531059
531059
  }
531060
531060
  const result = await installLatest(channel);
531061
- const currentVersion = "0.7.7";
531061
+ const currentVersion = "0.7.8";
531062
531062
  const latencyMs = Date.now() - startTime;
531063
531063
  if (result.lockFailed) {
531064
531064
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -531192,17 +531192,17 @@ function PackageManagerAutoUpdater(t0) {
531192
531192
  const maxVersion = await getMaxVersion();
531193
531193
  if (maxVersion && latest && gt(latest, maxVersion)) {
531194
531194
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
531195
- if (gte("0.7.7", maxVersion)) {
531196
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.7.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
531195
+ if (gte("0.7.8", maxVersion)) {
531196
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"0.7.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
531197
531197
  setUpdateAvailable(false);
531198
531198
  return;
531199
531199
  }
531200
531200
  latest = maxVersion;
531201
531201
  }
531202
- const hasUpdate = latest && !gte("0.7.7", latest) && !shouldSkipVersion(latest);
531202
+ const hasUpdate = latest && !gte("0.7.8", latest) && !shouldSkipVersion(latest);
531203
531203
  setUpdateAvailable(!!hasUpdate);
531204
531204
  if (hasUpdate) {
531205
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.7.7"} -> ${latest}`);
531205
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.7.8"} -> ${latest}`);
531206
531206
  }
531207
531207
  };
531208
531208
  $2[0] = t1;
@@ -531236,7 +531236,7 @@ function PackageManagerAutoUpdater(t0) {
531236
531236
  wrap: "truncate",
531237
531237
  children: [
531238
531238
  "currentVersion: ",
531239
- "0.7.7"
531239
+ "0.7.8"
531240
531240
  ]
531241
531241
  }, undefined, true, undefined, this);
531242
531242
  $2[3] = verbose;
@@ -540266,7 +540266,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
540266
540266
  project_dir: getOriginalCwd(),
540267
540267
  added_dirs: addedDirs
540268
540268
  },
540269
- version: "0.7.7",
540269
+ version: "0.7.8",
540270
540270
  output_style: {
540271
540271
  name: outputStyleName
540272
540272
  },
@@ -564793,7 +564793,7 @@ function WelcomeV2() {
564793
564793
  dimColor: true,
564794
564794
  children: [
564795
564795
  "v",
564796
- "0.7.7",
564796
+ "0.7.8",
564797
564797
  " "
564798
564798
  ]
564799
564799
  }, undefined, true, undefined, this)
@@ -564993,7 +564993,7 @@ function WelcomeV2() {
564993
564993
  dimColor: true,
564994
564994
  children: [
564995
564995
  "v",
564996
- "0.7.7",
564996
+ "0.7.8",
564997
564997
  " "
564998
564998
  ]
564999
564999
  }, undefined, true, undefined, this)
@@ -565219,7 +565219,7 @@ function AppleTerminalWelcomeV2(t0) {
565219
565219
  dimColor: true,
565220
565220
  children: [
565221
565221
  "v",
565222
- "0.7.7",
565222
+ "0.7.8",
565223
565223
  " "
565224
565224
  ]
565225
565225
  }, undefined, true, undefined, this);
@@ -565473,7 +565473,7 @@ function AppleTerminalWelcomeV2(t0) {
565473
565473
  dimColor: true,
565474
565474
  children: [
565475
565475
  "v",
565476
- "0.7.7",
565476
+ "0.7.8",
565477
565477
  " "
565478
565478
  ]
565479
565479
  }, undefined, true, undefined, this);
@@ -566979,7 +566979,7 @@ function completeOnboarding() {
566979
566979
  saveGlobalConfig((current) => ({
566980
566980
  ...current,
566981
566981
  hasCompletedOnboarding: true,
566982
- lastOnboardingVersion: "0.7.7"
566982
+ lastOnboardingVersion: "0.7.8"
566983
566983
  }));
566984
566984
  }
566985
566985
  function showDialog(root2, renderer) {
@@ -571230,7 +571230,7 @@ function appendToLog(path24, message) {
571230
571230
  cwd: getFsImplementation().cwd(),
571231
571231
  userType: process.env.USER_TYPE,
571232
571232
  sessionId: getSessionId(),
571233
- version: "0.7.7"
571233
+ version: "0.7.8"
571234
571234
  };
571235
571235
  getLogWriter(path24).write(messageWithTimestamp);
571236
571236
  }
@@ -572258,7 +572258,7 @@ async function startMCPServer(cwd2, debug, verbose) {
572258
572258
  setCwd(cwd2);
572259
572259
  const server = new Server({
572260
572260
  name: "claude/tengu",
572261
- version: "0.7.7"
572261
+ version: "0.7.8"
572262
572262
  }, {
572263
572263
  capabilities: {
572264
572264
  tools: {}
@@ -576897,8 +576897,8 @@ async function getEnvLessBridgeConfig() {
576897
576897
  }
576898
576898
  async function checkEnvLessBridgeMinVersion() {
576899
576899
  const cfg = await getEnvLessBridgeConfig();
576900
- if (cfg.min_version && lt("0.7.7", cfg.min_version)) {
576901
- return `Your version of ZeroCLI (${"0.7.7"}) is too old for Remote Control.
576900
+ if (cfg.min_version && lt("0.7.8", cfg.min_version)) {
576901
+ return `Your version of ZeroCLI (${"0.7.8"}) is too old for Remote Control.
576902
576902
  Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
576903
576903
  }
576904
576904
  return null;
@@ -577373,7 +577373,7 @@ async function initBridgeCore(params) {
577373
577373
  const rawApi = createBridgeApiClient({
577374
577374
  baseUrl,
577375
577375
  getAccessToken,
577376
- runnerVersion: "0.7.7",
577376
+ runnerVersion: "0.7.8",
577377
577377
  onDebug: logForDebugging,
577378
577378
  onAuth401,
577379
577379
  getTrustedDeviceToken
@@ -583661,7 +583661,7 @@ __export(exports_update, {
583661
583661
  });
583662
583662
  async function update() {
583663
583663
  logEvent("tengu_update_check", {});
583664
- writeToStdout(`Current version: ${"0.7.7"}
583664
+ writeToStdout(`Current version: ${"0.7.8"}
583665
583665
  `);
583666
583666
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
583667
583667
  writeToStdout(`Checking for updates to ${channel} version...
@@ -583736,8 +583736,8 @@ async function update() {
583736
583736
  writeToStdout(`Claude is managed by Homebrew.
583737
583737
  `);
583738
583738
  const latest = await getLatestVersion(channel);
583739
- if (latest && !gte("0.7.7", latest)) {
583740
- writeToStdout(`Update available: ${"0.7.7"} → ${latest}
583739
+ if (latest && !gte("0.7.8", latest)) {
583740
+ writeToStdout(`Update available: ${"0.7.8"} → ${latest}
583741
583741
  `);
583742
583742
  writeToStdout(`
583743
583743
  `);
@@ -583753,8 +583753,8 @@ async function update() {
583753
583753
  writeToStdout(`Claude is managed by winget.
583754
583754
  `);
583755
583755
  const latest = await getLatestVersion(channel);
583756
- if (latest && !gte("0.7.7", latest)) {
583757
- writeToStdout(`Update available: ${"0.7.7"} → ${latest}
583756
+ if (latest && !gte("0.7.8", latest)) {
583757
+ writeToStdout(`Update available: ${"0.7.8"} → ${latest}
583758
583758
  `);
583759
583759
  writeToStdout(`
583760
583760
  `);
@@ -583770,8 +583770,8 @@ async function update() {
583770
583770
  writeToStdout(`Claude is managed by apk.
583771
583771
  `);
583772
583772
  const latest = await getLatestVersion(channel);
583773
- if (latest && !gte("0.7.7", latest)) {
583774
- writeToStdout(`Update available: ${"0.7.7"} → ${latest}
583773
+ if (latest && !gte("0.7.8", latest)) {
583774
+ writeToStdout(`Update available: ${"0.7.8"} → ${latest}
583775
583775
  `);
583776
583776
  writeToStdout(`
583777
583777
  `);
@@ -583836,11 +583836,11 @@ async function update() {
583836
583836
  `);
583837
583837
  await gracefulShutdown(1);
583838
583838
  }
583839
- if (result.latestVersion === "0.7.7") {
583840
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.7.7"})`) + `
583839
+ if (result.latestVersion === "0.7.8") {
583840
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.7.8"})`) + `
583841
583841
  `);
583842
583842
  } else {
583843
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.7"} to version ${result.latestVersion}`) + `
583843
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.8"} to version ${result.latestVersion}`) + `
583844
583844
  `);
583845
583845
  await regenerateCompletionCache();
583846
583846
  }
@@ -583900,12 +583900,12 @@ async function update() {
583900
583900
  `);
583901
583901
  await gracefulShutdown(1);
583902
583902
  }
583903
- if (latestVersion === "0.7.7") {
583904
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.7.7"})`) + `
583903
+ if (latestVersion === "0.7.8") {
583904
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.7.8"})`) + `
583905
583905
  `);
583906
583906
  await gracefulShutdown(0);
583907
583907
  }
583908
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.7"})
583908
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.8"})
583909
583909
  `);
583910
583910
  writeToStdout(`Installing update...
583911
583911
  `);
@@ -583950,7 +583950,7 @@ async function update() {
583950
583950
  logForDebugging(`update: Installation status: ${status2}`);
583951
583951
  switch (status2) {
583952
583952
  case "success":
583953
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.7"} to version ${latestVersion}`) + `
583953
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.8"} to version ${latestVersion}`) + `
583954
583954
  `);
583955
583955
  await regenerateCompletionCache();
583956
583956
  break;
@@ -585250,7 +585250,7 @@ ${customInstructions}` : customInstructions;
585250
585250
  }
585251
585251
  }
585252
585252
  logForDiagnosticsNoPII("info", "started", {
585253
- version: "0.7.7",
585253
+ version: "0.7.8",
585254
585254
  is_native_binary: isInBundledMode()
585255
585255
  });
585256
585256
  registerCleanup(async () => {
@@ -586133,7 +586133,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
586133
586133
  pendingHookMessages
586134
586134
  }, renderAndRun);
586135
586135
  }
586136
- }).version("0.7.7", "-v, --version", "Output the version number");
586136
+ }).version("0.7.8", "-v, --version", "Output the version number");
586137
586137
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
586138
586138
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
586139
586139
  if (canUserConfigureAdvisor()) {
@@ -586798,7 +586798,7 @@ if (false) {}
586798
586798
  async function main2() {
586799
586799
  const args = process.argv.slice(2);
586800
586800
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
586801
- console.log(`${"0.7.7"} (ZeroCLI)`);
586801
+ console.log(`${"0.7.8"} (ZeroCLI)`);
586802
586802
  return;
586803
586803
  }
586804
586804
  if (args.includes("--provider")) {
@@ -586940,4 +586940,4 @@ async function main2() {
586940
586940
  }
586941
586941
  main2();
586942
586942
 
586943
- //# debugId=EAC8ACAA5F0A7A0964756E2164756E21
586943
+ //# debugId=E2E07FBA0C12396E64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duheso/zerocli",
3
- "version": "0.7.7",
3
+ "version": "0.7.8",
4
4
  "description": "Zero Cli to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models",
5
5
  "type": "module",
6
6
  "bin": {