@duheso/zerocli 1.1.7 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.mjs +107 -109
  2. package/package.json +3 -3
package/dist/cli.mjs CHANGED
@@ -119226,7 +119226,7 @@ function buildProviderInfoLines() {
119226
119226
  const sLen = ` ● ${sL} ${sReady}`.length;
119227
119227
  out.push(boxRow(sRow, W2, sLen));
119228
119228
  out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
119229
- out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"1.1.7"}${RESET}`);
119229
+ out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"1.1.9"}${RESET}`);
119230
119230
  return out;
119231
119231
  }
119232
119232
  function printStartupScreen() {}
@@ -147417,7 +147417,7 @@ function getAttributionHeader(fingerprint) {
147417
147417
  if (!isAttributionHeaderEnabled()) {
147418
147418
  return "";
147419
147419
  }
147420
- const version2 = `${"1.1.7"}.${fingerprint}`;
147420
+ const version2 = `${"1.1.8"}.${fingerprint}`;
147421
147421
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
147422
147422
  const cch = "";
147423
147423
  const workload = getWorkload();
@@ -190435,7 +190435,7 @@ var init_imageValidation = __esm(() => {
190435
190435
 
190436
190436
  // src/utils/userAgent.ts
190437
190437
  function getZeroCodeUserAgent() {
190438
- return `claude-code/${"1.1.7"}`;
190438
+ return `claude-code/${"1.1.8"}`;
190439
190439
  }
190440
190440
 
190441
190441
  // src/utils/http.ts
@@ -190444,7 +190444,7 @@ function getUserAgent() {
190444
190444
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
190445
190445
  const workload = getWorkload();
190446
190446
  const workloadSuffix = workload ? `, workload/${workload}` : "";
190447
- return `claude-cli/${"1.1.7"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
190447
+ return `claude-cli/${"1.1.8"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
190448
190448
  }
190449
190449
  function getMCPUserAgent() {
190450
190450
  const parts = [];
@@ -190458,7 +190458,7 @@ function getMCPUserAgent() {
190458
190458
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
190459
190459
  }
190460
190460
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
190461
- return `claude-code/${"1.1.7"}${suffix}`;
190461
+ return `claude-code/${"1.1.8"}${suffix}`;
190462
190462
  }
190463
190463
  function getWebFetchUserAgent() {
190464
190464
  const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/Duheso/ZeroCLI";
@@ -244944,7 +244944,7 @@ function getTelemetryAttributes() {
244944
244944
  attributes["session.id"] = sessionId;
244945
244945
  }
244946
244946
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
244947
- attributes["app.version"] = "1.1.7";
244947
+ attributes["app.version"] = "1.1.8";
244948
244948
  }
244949
244949
  const oauthAccount = getOauthAccountInfo();
244950
244950
  if (oauthAccount) {
@@ -257183,7 +257183,7 @@ function computeFingerprint(messageText, version2) {
257183
257183
  }
257184
257184
  function computeFingerprintFromMessages(messages) {
257185
257185
  const firstMessageText = extractFirstMessageText(messages);
257186
- return computeFingerprint(firstMessageText, "1.1.7");
257186
+ return computeFingerprint(firstMessageText, "1.1.8");
257187
257187
  }
257188
257188
  var FINGERPRINT_SALT = "59cf53e54c78";
257189
257189
  var init_fingerprint = () => {};
@@ -257225,7 +257225,7 @@ async function sideQuery(opts) {
257225
257225
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
257226
257226
  }
257227
257227
  const messageText = extractFirstUserMessageText(messages);
257228
- const fingerprint = computeFingerprint(messageText, "1.1.7");
257228
+ const fingerprint = computeFingerprint(messageText, "1.1.8");
257229
257229
  const attributionHeader = getAttributionHeader(fingerprint);
257230
257230
  const systemBlocks = [
257231
257231
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -266127,7 +266127,7 @@ var init_user = __esm(() => {
266127
266127
  deviceId,
266128
266128
  sessionId: getSessionId(),
266129
266129
  email: getEmail(),
266130
- appVersion: "1.1.7",
266130
+ appVersion: "1.1.8",
266131
266131
  platform: getHostPlatformForAnalytics(),
266132
266132
  organizationUuid,
266133
266133
  accountUuid,
@@ -266521,7 +266521,7 @@ async function initializeBetaTracing(resource) {
266521
266521
  });
266522
266522
  logs.setGlobalLoggerProvider(loggerProvider);
266523
266523
  setLoggerProvider(loggerProvider);
266524
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.7");
266524
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.8");
266525
266525
  setEventLogger(eventLogger);
266526
266526
  process.on("beforeExit", async () => {
266527
266527
  await loggerProvider?.forceFlush();
@@ -266561,7 +266561,7 @@ async function initializeTelemetry() {
266561
266561
  const platform3 = getPlatform();
266562
266562
  const baseAttributes = {
266563
266563
  [ATTR_SERVICE_NAME3]: "claude-code",
266564
- [ATTR_SERVICE_VERSION3]: "1.1.7"
266564
+ [ATTR_SERVICE_VERSION3]: "1.1.8"
266565
266565
  };
266566
266566
  if (platform3 === "wsl") {
266567
266567
  const wslVersion = getWslVersion();
@@ -266606,7 +266606,7 @@ async function initializeTelemetry() {
266606
266606
  } catch {}
266607
266607
  };
266608
266608
  registerCleanup(shutdownTelemetry2);
266609
- return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.7");
266609
+ return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.8");
266610
266610
  }
266611
266611
  const meterProvider = new MeterProvider3({
266612
266612
  resource,
@@ -266626,7 +266626,7 @@ async function initializeTelemetry() {
266626
266626
  });
266627
266627
  logs.setGlobalLoggerProvider(loggerProvider);
266628
266628
  setLoggerProvider(loggerProvider);
266629
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.7");
266629
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.8");
266630
266630
  setEventLogger(eventLogger);
266631
266631
  logForDebugging("[3P telemetry] Event logger set successfully");
266632
266632
  process.on("beforeExit", async () => {
@@ -266688,7 +266688,7 @@ Current timeout: ${timeoutMs}ms
266688
266688
  }
266689
266689
  };
266690
266690
  registerCleanup(shutdownTelemetry);
266691
- return meterProvider.getMeter("com.anthropic.claude_code", "1.1.7");
266691
+ return meterProvider.getMeter("com.anthropic.claude_code", "1.1.8");
266692
266692
  }
266693
266693
  async function flushTelemetry() {
266694
266694
  const meterProvider = getMeterProvider();
@@ -267500,9 +267500,9 @@ async function assertMinVersion() {
267500
267500
  }
267501
267501
  try {
267502
267502
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
267503
- if (versionConfig.minVersion && lt("1.1.7", versionConfig.minVersion)) {
267503
+ if (versionConfig.minVersion && lt("1.1.8", versionConfig.minVersion)) {
267504
267504
  console.error(`
267505
- It looks like your version of ZeroCLI (${"1.1.7"}) needs an update.
267505
+ It looks like your version of ZeroCLI (${"1.1.8"}) needs an update.
267506
267506
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
267507
267507
 
267508
267508
  To update, please run:
@@ -267718,7 +267718,7 @@ async function installGlobalPackage(specificVersion) {
267718
267718
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
267719
267719
  logEvent("tengu_auto_updater_lock_contention", {
267720
267720
  pid: process.pid,
267721
- currentVersion: "1.1.7"
267721
+ currentVersion: "1.1.8"
267722
267722
  });
267723
267723
  return "in_progress";
267724
267724
  }
@@ -267727,7 +267727,7 @@ async function installGlobalPackage(specificVersion) {
267727
267727
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
267728
267728
  logError2(new Error("Windows NPM detected in WSL environment"));
267729
267729
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
267730
- currentVersion: "1.1.7"
267730
+ currentVersion: "1.1.8"
267731
267731
  });
267732
267732
  console.error(`
267733
267733
  Error: Windows NPM detected in WSL
@@ -268281,7 +268281,7 @@ async function getDoctorDiagnostic() {
268281
268281
  const installationType = await getCurrentInstallationType();
268282
268282
  let version2;
268283
268283
  try {
268284
- version2 = "1.1.7";
268284
+ version2 = "1.1.8";
268285
268285
  } catch {
268286
268286
  version2 = "unknown";
268287
268287
  }
@@ -269775,7 +269775,7 @@ function getInstallationEnv() {
269775
269775
  return;
269776
269776
  }
269777
269777
  function getZeroCodeVersion() {
269778
- return "1.1.7";
269778
+ return "1.1.8";
269779
269779
  }
269780
269780
  async function getInstalledVSCodeExtensionVersion(command) {
269781
269781
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -271142,8 +271142,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271142
271142
  const maxVersion = await getMaxVersion();
271143
271143
  if (maxVersion && gt(version2, maxVersion)) {
271144
271144
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
271145
- if (gte("1.1.7", maxVersion)) {
271146
- logForDebugging(`Native installer: current version ${"1.1.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
271145
+ if (gte("1.1.8", maxVersion)) {
271146
+ logForDebugging(`Native installer: current version ${"1.1.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
271147
271147
  logEvent("tengu_native_update_skipped_max_version", {
271148
271148
  latency_ms: Date.now() - startTime2,
271149
271149
  max_version: maxVersion,
@@ -271154,7 +271154,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271154
271154
  version2 = maxVersion;
271155
271155
  }
271156
271156
  }
271157
- if (!forceReinstall && version2 === "1.1.7" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271157
+ if (!forceReinstall && version2 === "1.1.8" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271158
271158
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
271159
271159
  logEvent("tengu_native_update_complete", {
271160
271160
  latency_ms: Date.now() - startTime2,
@@ -365596,7 +365596,7 @@ __export(exports_VerifyPlanExecutionTool, {
365596
365596
  var VerifyPlanExecutionTool_default = null, VerifyPlanExecutionTool = null;
365597
365597
 
365598
365598
  // src/tools/WindowsControlTool/constants.ts
365599
- var TOOL_NAME = "windows_control", DEFAULT_WS_PORT2 = 50052, DEFAULT_QUALITY = 75, DEFAULT_SCALE = 0.5, RECONNECT_INTERVAL_MS = 5000, PING_INTERVAL_MS = 1e4, ENV_WINDOWS_HOST = "WINDOWS_CONTROL_HOST", ENV_WINDOWS_PORT = "WINDOWS_CONTROL_PORT", ENV_WINDOWS_TOKEN = "WINDOWS_CONTROL_TOKEN";
365599
+ var TOOL_NAME = "windows_control", DEFAULT_WS_PORT = 50052, DEFAULT_REST_PORT = 50051, DEFAULT_QUALITY = 75, DEFAULT_SCALE = 0.5, RECONNECT_INTERVAL_MS = 5000, PING_INTERVAL_MS = 1e4, ENV_WINDOWS_HOST = "WINDOWS_CONTROL_HOST", ENV_WINDOWS_PORT = "WINDOWS_CONTROL_PORT", ENV_WINDOWS_TOKEN = "WINDOWS_CONTROL_TOKEN";
365600
365600
 
365601
365601
  // src/tools/WindowsControlTool/prompt.ts
365602
365602
  var WINDOWS_CONTROL_PROMPT = `
@@ -365633,7 +365633,7 @@ in their .env file. That's it.
365633
365633
 
365634
365634
  **Screen:**
365635
365635
  - \`screenshot\` — See the screen (ALWAYS start with this). Returns the actual image.
365636
- - \`extract_text\`OCR: read text visible on screen or a region
365636
+ **To read text on screen:** just take a screenshot YOU (the LLM) can read it directly via vision. No OCR needed.
365637
365637
  - \`list_monitors\` — Multi-monitor layout info
365638
365638
 
365639
365639
  **Mouse:**
@@ -365691,7 +365691,7 @@ in their .env file. That's it.
365691
365691
  key_combo(["ctrl","s"]) to save, key_combo(["alt","f4"]) to close, etc.
365692
365692
 
365693
365693
  **Find and click by text (when you can't see coordinates):**
365694
- extract_textfind position of target text → mouse_click at that position
365694
+ screenshotread text from the imageidentify position → mouse_click at that position
365695
365695
 
365696
365696
  **Navigate menus:**
365697
365697
  mouse_click on menu → screenshot → mouse_click on menu item
@@ -365718,7 +365718,7 @@ class ConnectionManager {
365718
365718
  get isConnected() {
365719
365719
  return this._state.connected;
365720
365720
  }
365721
- async connect(host, grpcPort, wsPort = DEFAULT_WS_PORT2, token) {
365721
+ async connect(host, grpcPort, wsPort = DEFAULT_WS_PORT, token) {
365722
365722
  this._token = token;
365723
365723
  this._restClient = new RestApiClient(host, wsPort);
365724
365724
  const response = await this._restClient.command({
@@ -365810,6 +365810,19 @@ class ConnectionManager {
365810
365810
  }
365811
365811
  }
365812
365812
  }
365813
+ function snakeToCamel(obj) {
365814
+ if (Array.isArray(obj))
365815
+ return obj.map(snakeToCamel);
365816
+ if (obj !== null && typeof obj === "object") {
365817
+ const out = {};
365818
+ for (const [key, val] of Object.entries(obj)) {
365819
+ const camel = key.replace(/_([a-z])/g, (_, c6) => c6.toUpperCase());
365820
+ out[camel] = snakeToCamel(val);
365821
+ }
365822
+ return out;
365823
+ }
365824
+ return obj;
365825
+ }
365813
365826
 
365814
365827
  class RestApiClient {
365815
365828
  baseUrl;
@@ -365819,6 +365832,7 @@ class RestApiClient {
365819
365832
  async command(params) {
365820
365833
  const url4 = `${this.baseUrl}/api/command`;
365821
365834
  const body = JSON.stringify(params);
365835
+ let json2;
365822
365836
  if (typeof fetch !== "undefined") {
365823
365837
  const res = await fetch(url4, {
365824
365838
  method: "POST",
@@ -365829,9 +365843,11 @@ class RestApiClient {
365829
365843
  if (!res.ok) {
365830
365844
  throw new Error(`HTTP ${res.status}: ${res.statusText}`);
365831
365845
  }
365832
- return res.json();
365846
+ json2 = await res.json();
365847
+ } else {
365848
+ json2 = await this._httpPost(url4, body);
365833
365849
  }
365834
- return this._httpPost(url4, body);
365850
+ return snakeToCamel(json2);
365835
365851
  }
365836
365852
  _httpPost(url4, body) {
365837
365853
  return new Promise((resolve32, reject) => {
@@ -366157,7 +366173,7 @@ async function handleCaptureAction(input, connection) {
366157
366173
  if (!response.success) {
366158
366174
  return { success: false, error: response.error || "Screenshot failed" };
366159
366175
  }
366160
- const imageBase64 = Buffer.from(response.imageData).toString("base64");
366176
+ const imageBase64 = response.imageData;
366161
366177
  return {
366162
366178
  success: true,
366163
366179
  message: `Screenshot captured: ${response.width}x${response.height}`,
@@ -366165,8 +366181,8 @@ async function handleCaptureAction(input, connection) {
366165
366181
  imageBase64,
366166
366182
  width: response.width,
366167
366183
  height: response.height,
366168
- cursor: response.cursor,
366169
- format: "jpeg"
366184
+ cursor: { x: response.cursorX, y: response.cursorY },
366185
+ format: response.imageFormat || "jpeg"
366170
366186
  }
366171
366187
  };
366172
366188
  }
@@ -366218,22 +366234,6 @@ async function handleAutomationAction(input, connection) {
366218
366234
  value: input.value
366219
366235
  });
366220
366236
  return { success: true, message: `Set value on element ${input.runtime_id}` };
366221
- case "extract_text": {
366222
- const response = await connection.sendCommand("ExtractText", {
366223
- region: input.region || null,
366224
- monitorIndex: input.monitor_index ?? 0,
366225
- language: input.language || "en-US"
366226
- });
366227
- return {
366228
- success: true,
366229
- message: `OCR extracted ${response.lines?.length || 0} lines`,
366230
- data: {
366231
- fullText: response.fullText,
366232
- lines: response.lines,
366233
- languageDetected: response.languageDetected
366234
- }
366235
- };
366236
- }
366237
366237
  default:
366238
366238
  return { success: false, error: `Unknown automation action: ${input.action}` };
366239
366239
  }
@@ -366360,7 +366360,7 @@ async function ensureConnected() {
366360
366360
  }
366361
366361
  const host = process.env[ENV_WINDOWS_HOST];
366362
366362
  const token = process.env[ENV_WINDOWS_TOKEN];
366363
- const wsPort = process.env[ENV_WINDOWS_PORT] ? parseInt(process.env[ENV_WINDOWS_PORT], 10) : DEFAULT_WS_PORT;
366363
+ const wsPort = process.env[ENV_WINDOWS_PORT] ? parseInt(process.env[ENV_WINDOWS_PORT], 10) : DEFAULT_REST_PORT;
366364
366364
  if (!host) {
366365
366365
  return {
366366
366366
  connected: false,
@@ -366382,7 +366382,7 @@ async function routeAction(input) {
366382
366382
  if (action === "connect") {
366383
366383
  const host = input.host || process.env[ENV_WINDOWS_HOST];
366384
366384
  const token = input.token || process.env[ENV_WINDOWS_TOKEN];
366385
- const wsPort = input.port || (process.env[ENV_WINDOWS_PORT] ? parseInt(process.env[ENV_WINDOWS_PORT], 10) : DEFAULT_WS_PORT);
366385
+ const wsPort = input.port || (process.env[ENV_WINDOWS_PORT] ? parseInt(process.env[ENV_WINDOWS_PORT], 10) : DEFAULT_REST_PORT);
366386
366386
  if (!host) {
366387
366387
  return { success: false, error: "host is required for connect. Set WINDOWS_CONTROL_HOST env var or pass host parameter." };
366388
366388
  }
@@ -366484,7 +366484,6 @@ var init_WindowsControlTool = __esm(() => {
366484
366484
  "get_ui_elements",
366485
366485
  "click_element",
366486
366486
  "set_element_value",
366487
- "extract_text",
366488
366487
  "get_clipboard",
366489
366488
  "set_clipboard",
366490
366489
  "upload_file",
@@ -366499,7 +366498,7 @@ var init_WindowsControlTool = __esm(() => {
366499
366498
  KEYBOARD_ACTIONS = new Set(["key_press", "key_combo", "key_hold", "type_text"]);
366500
366499
  WINDOW_ACTIONS = new Set(["list_windows", "focus_window", "move_window", "resize_window", "minimize", "maximize", "restore", "close_window", "snap_window"]);
366501
366500
  CAPTURE_ACTIONS = new Set(["screenshot", "list_monitors"]);
366502
- AUTOMATION_ACTIONS = new Set(["get_ui_elements", "click_element", "set_element_value", "extract_text"]);
366501
+ AUTOMATION_ACTIONS = new Set(["get_ui_elements", "click_element", "set_element_value"]);
366503
366502
  CLIPBOARD_ACTIONS = new Set(["get_clipboard", "set_clipboard"]);
366504
366503
  DESKTOP_ACTIONS = new Set(["list_desktops", "switch_desktop", "create_desktop", "delete_desktop"]);
366505
366504
  FILE_PROCESS_ACTIONS = new Set(["upload_file", "download_file", "list_files", "list_processes", "kill_process", "launch_process"]);
@@ -366543,7 +366542,6 @@ var init_WindowsControlTool = __esm(() => {
366543
366542
  value: exports_external.string().optional().describe("Value to set on UI element"),
366544
366543
  max_depth: exports_external.number().optional().describe("UI tree traversal depth"),
366545
366544
  control_type_filter: exports_external.string().optional().describe("Filter UI elements by type"),
366546
- language: exports_external.string().optional().describe("OCR language (e.g. en-US, pt-BR)"),
366547
366545
  clipboard_text: exports_external.string().optional().describe("Text to set in clipboard"),
366548
366546
  include_image: exports_external.boolean().optional().describe("Include image from clipboard"),
366549
366547
  file_path: exports_external.string().optional().describe("File path on Windows"),
@@ -379549,7 +379547,7 @@ function getAnthropicEnvMetadata() {
379549
379547
  function getBuildAgeMinutes() {
379550
379548
  if (false)
379551
379549
  ;
379552
- const buildTime = new Date("2026-05-23T20:33:14.820Z").getTime();
379550
+ const buildTime = new Date("2026-05-23T22:06:41.109Z").getTime();
379553
379551
  if (isNaN(buildTime))
379554
379552
  return;
379555
379553
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -407032,7 +407030,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
407032
407030
  const client2 = new Client({
407033
407031
  name: "claude-code",
407034
407032
  title: "ZeroCLI",
407035
- version: "1.1.7",
407033
+ version: "1.1.8",
407036
407034
  description: "Anthropic's agentic coding tool",
407037
407035
  websiteUrl: PRODUCT_URL
407038
407036
  }, {
@@ -407384,7 +407382,7 @@ var init_client7 = __esm(() => {
407384
407382
  const client2 = new Client({
407385
407383
  name: "claude-code",
407386
407384
  title: "ZeroCLI",
407387
- version: "1.1.7",
407385
+ version: "1.1.8",
407388
407386
  description: "Anthropic's agentic coding tool",
407389
407387
  websiteUrl: PRODUCT_URL
407390
407388
  }, {
@@ -418119,7 +418117,7 @@ function Feedback({
418119
418117
  platform: env2.platform,
418120
418118
  gitRepo: envInfo.isGit,
418121
418119
  terminal: env2.terminal,
418122
- version: "1.1.7",
418120
+ version: "1.1.8",
418123
418121
  transcript: normalizeMessagesForAPI(messages),
418124
418122
  errors: sanitizedErrors,
418125
418123
  lastApiRequest: getLastAPIRequest(),
@@ -418312,7 +418310,7 @@ function Feedback({
418312
418310
  ", ",
418313
418311
  env2.terminal,
418314
418312
  ", v",
418315
- "1.1.7"
418313
+ "1.1.8"
418316
418314
  ]
418317
418315
  })
418318
418316
  ]
@@ -418420,7 +418418,7 @@ ${sanitizedDescription}
418420
418418
  ` + `**Environment Info**
418421
418419
  ` + `- Platform: ${env2.platform}
418422
418420
  ` + `- Terminal: ${env2.terminal}
418423
- ` + `- Version: ${"1.1.7"}
418421
+ ` + `- Version: ${"1.1.8"}
418424
418422
  ` + feedbackIdLine + `
418425
418423
  **Errors**
418426
418424
  \`\`\`json
@@ -421573,7 +421571,7 @@ function buildPrimarySection() {
421573
421571
  });
421574
421572
  return [{
421575
421573
  label: "Version",
421576
- value: "1.1.7"
421574
+ value: "1.1.9"
421577
421575
  }, {
421578
421576
  label: "Session name",
421579
421577
  value: nameValue
@@ -426343,7 +426341,7 @@ function Config({
426343
426341
  }
426344
426342
  })
426345
426343
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime183.jsx(ChannelDowngradeDialog, {
426346
- currentVersion: "1.1.7",
426344
+ currentVersion: "1.1.8",
426347
426345
  onChoice: (choice) => {
426348
426346
  setShowSubmenu(null);
426349
426347
  setTabsHidden(false);
@@ -426355,7 +426353,7 @@ function Config({
426355
426353
  autoUpdatesChannel: "stable"
426356
426354
  };
426357
426355
  if (choice === "stay") {
426358
- newSettings.minimumVersion = "1.1.7";
426356
+ newSettings.minimumVersion = "1.1.8";
426359
426357
  }
426360
426358
  updateSettingsForSource("userSettings", newSettings);
426361
426359
  setSettingsData((prev_27) => ({
@@ -433339,7 +433337,7 @@ function UpdateScreen({ onDone }) {
433339
433337
  setState({ type: "dev-build" });
433340
433338
  return;
433341
433339
  }
433342
- const currentVersion = "1.1.7";
433340
+ const currentVersion = "1.1.8";
433343
433341
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
433344
433342
  const latestVersion = await getLatestVersion(channel2);
433345
433343
  if (!latestVersion) {
@@ -435450,7 +435448,7 @@ function HelpV2(t0) {
435450
435448
  let t6;
435451
435449
  if ($2[31] !== tabs) {
435452
435450
  t6 = /* @__PURE__ */ jsx_runtime213.jsx(Tabs, {
435453
- title: `ZeroCLI v${"1.1.7"}`,
435451
+ title: `ZeroCLI v${"1.1.8"}`,
435454
435452
  color: "professionalBlue",
435455
435453
  defaultTab: "general",
435456
435454
  children: tabs
@@ -460294,7 +460292,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
460294
460292
  return [];
460295
460293
  }
460296
460294
  }
460297
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.7") {
460295
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.8") {
460298
460296
  if (process.env.USER_TYPE === "ant") {
460299
460297
  const changelog = MACRO.VERSION_CHANGELOG;
460300
460298
  if (changelog) {
@@ -489332,7 +489330,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
489332
489330
  smapsRollup,
489333
489331
  platform: process.platform,
489334
489332
  nodeVersion: process.version,
489335
- ccVersion: "1.1.7"
489333
+ ccVersion: "1.1.8"
489336
489334
  };
489337
489335
  }
489338
489336
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -489919,7 +489917,7 @@ var init_bridge_kick = __esm(() => {
489919
489917
  var call60 = async () => {
489920
489918
  return {
489921
489919
  type: "text",
489922
- value: `${"1.1.7"} (built ${"2026-05-23T20:33:14.820Z"})`
489920
+ value: `${"1.1.8"} (built ${"2026-05-23T22:06:41.109Z"})`
489923
489921
  };
489924
489922
  }, version2, version_default;
489925
489923
  var init_version = __esm(() => {
@@ -500233,7 +500231,7 @@ function generateHtmlReport(data, insights) {
500233
500231
  function buildExportData(data, insights, facets) {
500234
500232
  let version3;
500235
500233
  try {
500236
- version3 = "1.1.7";
500234
+ version3 = "1.1.8";
500237
500235
  } catch {
500238
500236
  version3 = "unknown";
500239
500237
  }
@@ -504433,7 +504431,7 @@ var init_sessionStorage = __esm(() => {
504433
504431
  init_slowOperations();
504434
504432
  init_uuid();
504435
504433
  try {
504436
- VERSION7 = "1.1.7";
504434
+ VERSION7 = "1.1.8";
504437
504435
  } catch {
504438
504436
  VERSION7 = "unknown";
504439
504437
  }
@@ -505754,7 +505752,7 @@ var init_filesystem = __esm(() => {
505754
505752
  });
505755
505753
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
505756
505754
  const nonce = randomBytes17(16).toString("hex");
505757
- return join137(getZeroTempDir(), "bundled-skills", "1.1.7", nonce);
505755
+ return join137(getZeroTempDir(), "bundled-skills", "1.1.8", nonce);
505758
505756
  });
505759
505757
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
505760
505758
  });
@@ -516614,7 +516612,7 @@ function buildSystemInitMessage(inputs) {
516614
516612
  slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
516615
516613
  apiKeySource: getAnthropicApiKeyWithSource().source,
516616
516614
  betas: getSdkBetas(),
516617
- claude_code_version: "1.1.7",
516615
+ claude_code_version: "1.1.8",
516618
516616
  output_style: outputStyle2,
516619
516617
  agents: inputs.agents.map((agent2) => agent2.agentType),
516620
516618
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -531929,7 +531927,7 @@ var init_useVoiceEnabled = __esm(() => {
531929
531927
  function getSemverPart(version3) {
531930
531928
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
531931
531929
  }
531932
- function useUpdateNotification(updatedVersion, initialVersion = "1.1.7") {
531930
+ function useUpdateNotification(updatedVersion, initialVersion = "1.1.8") {
531933
531931
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
531934
531932
  if (!updatedVersion) {
531935
531933
  return null;
@@ -531972,7 +531970,7 @@ function AutoUpdater({
531972
531970
  return;
531973
531971
  }
531974
531972
  if (false) {}
531975
- const currentVersion = "1.1.7";
531973
+ const currentVersion = "1.1.8";
531976
531974
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
531977
531975
  let latestVersion = await getLatestVersion(channel2);
531978
531976
  const isDisabled = isAutoUpdaterDisabled();
@@ -532193,12 +532191,12 @@ function NativeAutoUpdater({
532193
532191
  logEvent("tengu_native_auto_updater_start", {});
532194
532192
  try {
532195
532193
  const maxVersion = await getMaxVersion();
532196
- if (maxVersion && gt("1.1.7", maxVersion)) {
532194
+ if (maxVersion && gt("1.1.8", maxVersion)) {
532197
532195
  const msg = await getMaxVersionMessage();
532198
532196
  setMaxVersionIssue(msg ?? "affects your version");
532199
532197
  }
532200
532198
  const result = await installLatest(channel2);
532201
- const currentVersion = "1.1.7";
532199
+ const currentVersion = "1.1.8";
532202
532200
  const latencyMs = Date.now() - startTime2;
532203
532201
  if (result.lockFailed) {
532204
532202
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -532340,17 +532338,17 @@ function PackageManagerAutoUpdater(t0) {
532340
532338
  const maxVersion = await getMaxVersion();
532341
532339
  if (maxVersion && latest && gt(latest, maxVersion)) {
532342
532340
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
532343
- if (gte("1.1.7", maxVersion)) {
532344
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
532341
+ if (gte("1.1.8", maxVersion)) {
532342
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
532345
532343
  setUpdateAvailable(false);
532346
532344
  return;
532347
532345
  }
532348
532346
  latest = maxVersion;
532349
532347
  }
532350
- const hasUpdate = latest && !gte("1.1.7", latest) && !shouldSkipVersion(latest);
532348
+ const hasUpdate = latest && !gte("1.1.8", latest) && !shouldSkipVersion(latest);
532351
532349
  setUpdateAvailable(!!hasUpdate);
532352
532350
  if (hasUpdate) {
532353
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.7"} -> ${latest}`);
532351
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.8"} -> ${latest}`);
532354
532352
  }
532355
532353
  };
532356
532354
  $2[0] = t1;
@@ -532384,7 +532382,7 @@ function PackageManagerAutoUpdater(t0) {
532384
532382
  wrap: "truncate",
532385
532383
  children: [
532386
532384
  "currentVersion: ",
532387
- "1.1.7"
532385
+ "1.1.8"
532388
532386
  ]
532389
532387
  });
532390
532388
  $2[3] = verbose;
@@ -541440,7 +541438,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
541440
541438
  project_dir: getOriginalCwd(),
541441
541439
  added_dirs: addedDirs
541442
541440
  },
541443
- version: "1.1.7",
541441
+ version: "1.1.8",
541444
541442
  output_style: {
541445
541443
  name: outputStyleName
541446
541444
  },
@@ -565943,7 +565941,7 @@ function WelcomeV2() {
565943
565941
  dimColor: true,
565944
565942
  children: [
565945
565943
  "v",
565946
- "1.1.7",
565944
+ "1.1.9",
565947
565945
  " "
565948
565946
  ]
565949
565947
  })
@@ -566177,7 +566175,7 @@ function WelcomeV2() {
566177
566175
  dimColor: true,
566178
566176
  children: [
566179
566177
  "v",
566180
- "1.1.7",
566178
+ "1.1.9",
566181
566179
  " "
566182
566180
  ]
566183
566181
  })
@@ -566424,7 +566422,7 @@ function AppleTerminalWelcomeV2(t0) {
566424
566422
  dimColor: true,
566425
566423
  children: [
566426
566424
  "v",
566427
- "1.1.7",
566425
+ "1.1.9",
566428
566426
  " "
566429
566427
  ]
566430
566428
  });
@@ -566697,7 +566695,7 @@ function AppleTerminalWelcomeV2(t0) {
566697
566695
  dimColor: true,
566698
566696
  children: [
566699
566697
  "v",
566700
- "1.1.7",
566698
+ "1.1.9",
566701
566699
  " "
566702
566700
  ]
566703
566701
  });
@@ -568209,7 +568207,7 @@ function completeOnboarding() {
568209
568207
  saveGlobalConfig((current) => ({
568210
568208
  ...current,
568211
568209
  hasCompletedOnboarding: true,
568212
- lastOnboardingVersion: "1.1.7"
568210
+ lastOnboardingVersion: "1.1.8"
568213
568211
  }));
568214
568212
  }
568215
568213
  function showDialog(root2, renderer) {
@@ -572460,7 +572458,7 @@ function appendToLog(path24, message) {
572460
572458
  cwd: getFsImplementation().cwd(),
572461
572459
  userType: process.env.USER_TYPE,
572462
572460
  sessionId: getSessionId(),
572463
- version: "1.1.7"
572461
+ version: "1.1.8"
572464
572462
  };
572465
572463
  getLogWriter(path24).write(messageWithTimestamp);
572466
572464
  }
@@ -573066,7 +573064,7 @@ async function startMCPServer(cwd2, debug, verbose) {
573066
573064
  setCwd(cwd2);
573067
573065
  const server = new Server({
573068
573066
  name: "claude/tengu",
573069
- version: "1.1.7"
573067
+ version: "1.1.8"
573070
573068
  }, {
573071
573069
  capabilities: {
573072
573070
  tools: {}
@@ -577705,8 +577703,8 @@ async function getEnvLessBridgeConfig() {
577705
577703
  }
577706
577704
  async function checkEnvLessBridgeMinVersion() {
577707
577705
  const cfg = await getEnvLessBridgeConfig();
577708
- if (cfg.min_version && lt("1.1.7", cfg.min_version)) {
577709
- return `Your version of ZeroCLI (${"1.1.7"}) is too old for Remote Control.
577706
+ if (cfg.min_version && lt("1.1.8", cfg.min_version)) {
577707
+ return `Your version of ZeroCLI (${"1.1.8"}) is too old for Remote Control.
577710
577708
  Version ${cfg.min_version} or higher is required. Run \`zero update\` to update.`;
577711
577709
  }
577712
577710
  return null;
@@ -578181,7 +578179,7 @@ async function initBridgeCore(params) {
578181
578179
  const rawApi = createBridgeApiClient({
578182
578180
  baseUrl,
578183
578181
  getAccessToken,
578184
- runnerVersion: "1.1.7",
578182
+ runnerVersion: "1.1.8",
578185
578183
  onDebug: logForDebugging,
578186
578184
  onAuth401,
578187
578185
  getTrustedDeviceToken
@@ -584469,7 +584467,7 @@ __export(exports_update2, {
584469
584467
  });
584470
584468
  async function update2() {
584471
584469
  logEvent("tengu_update_check", {});
584472
- writeToStdout(`Current version: ${"1.1.7"}
584470
+ writeToStdout(`Current version: ${"1.1.8"}
584473
584471
  `);
584474
584472
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
584475
584473
  writeToStdout(`Checking for updates to ${channel2} version...
@@ -584544,8 +584542,8 @@ async function update2() {
584544
584542
  writeToStdout(`Zero is managed by Homebrew.
584545
584543
  `);
584546
584544
  const latest = await getLatestVersion(channel2);
584547
- if (latest && !gte("1.1.7", latest)) {
584548
- writeToStdout(`Update available: ${"1.1.7"} → ${latest}
584545
+ if (latest && !gte("1.1.8", latest)) {
584546
+ writeToStdout(`Update available: ${"1.1.8"} → ${latest}
584549
584547
  `);
584550
584548
  writeToStdout(`
584551
584549
  `);
@@ -584561,8 +584559,8 @@ async function update2() {
584561
584559
  writeToStdout(`Zero is managed by winget.
584562
584560
  `);
584563
584561
  const latest = await getLatestVersion(channel2);
584564
- if (latest && !gte("1.1.7", latest)) {
584565
- writeToStdout(`Update available: ${"1.1.7"} → ${latest}
584562
+ if (latest && !gte("1.1.8", latest)) {
584563
+ writeToStdout(`Update available: ${"1.1.8"} → ${latest}
584566
584564
  `);
584567
584565
  writeToStdout(`
584568
584566
  `);
@@ -584578,8 +584576,8 @@ async function update2() {
584578
584576
  writeToStdout(`Zero is managed by apk.
584579
584577
  `);
584580
584578
  const latest = await getLatestVersion(channel2);
584581
- if (latest && !gte("1.1.7", latest)) {
584582
- writeToStdout(`Update available: ${"1.1.7"} → ${latest}
584579
+ if (latest && !gte("1.1.8", latest)) {
584580
+ writeToStdout(`Update available: ${"1.1.8"} → ${latest}
584583
584581
  `);
584584
584582
  writeToStdout(`
584585
584583
  `);
@@ -584644,11 +584642,11 @@ async function update2() {
584644
584642
  `);
584645
584643
  await gracefulShutdown(1);
584646
584644
  }
584647
- if (result.latestVersion === "1.1.7") {
584648
- writeToStdout(source_default.green(`Zero CLI is up to date (${"1.1.7"})`) + `
584645
+ if (result.latestVersion === "1.1.8") {
584646
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"1.1.8"})`) + `
584649
584647
  `);
584650
584648
  } else {
584651
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.7"} to version ${result.latestVersion}`) + `
584649
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.8"} to version ${result.latestVersion}`) + `
584652
584650
  `);
584653
584651
  await regenerateCompletionCache();
584654
584652
  }
@@ -584708,12 +584706,12 @@ async function update2() {
584708
584706
  `);
584709
584707
  await gracefulShutdown(1);
584710
584708
  }
584711
- if (latestVersion === "1.1.7") {
584712
- writeToStdout(source_default.green(`Zero CLI is up to date (${"1.1.7"})`) + `
584709
+ if (latestVersion === "1.1.8") {
584710
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"1.1.8"})`) + `
584713
584711
  `);
584714
584712
  await gracefulShutdown(0);
584715
584713
  }
584716
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.7"})
584714
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.8"})
584717
584715
  `);
584718
584716
  writeToStdout(`Installing update...
584719
584717
  `);
@@ -584758,7 +584756,7 @@ async function update2() {
584758
584756
  logForDebugging(`update: Installation status: ${status2}`);
584759
584757
  switch (status2) {
584760
584758
  case "success":
584761
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.7"} to version ${latestVersion}`) + `
584759
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.8"} to version ${latestVersion}`) + `
584762
584760
  `);
584763
584761
  await regenerateCompletionCache();
584764
584762
  break;
@@ -586059,7 +586057,7 @@ ${customInstructions}` : customInstructions;
586059
586057
  }
586060
586058
  }
586061
586059
  logForDiagnosticsNoPII("info", "started", {
586062
- version: "1.1.7",
586060
+ version: "1.1.8",
586063
586061
  is_native_binary: isInBundledMode()
586064
586062
  });
586065
586063
  registerCleanup(async () => {
@@ -586942,7 +586940,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
586942
586940
  pendingHookMessages
586943
586941
  }, renderAndRun);
586944
586942
  }
586945
- }).version("1.1.7", "-v, --version", "Output the version number");
586943
+ }).version("1.1.9", "-v, --version", "Output the version number");
586946
586944
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
586947
586945
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
586948
586946
  if (canUserConfigureAdvisor()) {
@@ -587608,7 +587606,7 @@ if (false) {}
587608
587606
  async function main2() {
587609
587607
  const args = process.argv.slice(2);
587610
587608
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
587611
- console.log(`${"1.1.7"} (ZeroCLI)`);
587609
+ console.log(`${"1.1.9"} (ZeroCLI)`);
587612
587610
  return;
587613
587611
  }
587614
587612
  if (args.includes("--provider")) {
@@ -587750,4 +587748,4 @@ async function main2() {
587750
587748
  }
587751
587749
  main2();
587752
587750
 
587753
- //# debugId=8FC919A5F23D41FA64756E2164756E21
587751
+ //# debugId=BF2C7F73642C225064756E2164756E21
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@duheso/zerocli",
3
- "version": "1.1.7",
4
- "description": "Zero CLI to any LLM \u2014 OpenAI, Gemini, DeepSeek, Ollama, and 200+ models",
3
+ "version": "1.1.9",
4
+ "description": "Zero CLI to any LLM OpenAI, Gemini, DeepSeek, Ollama, and 200+ models",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "zero": "bin/zero"
@@ -171,4 +171,4 @@
171
171
  "overrides": {
172
172
  "lodash-es": "4.18.1"
173
173
  }
174
- }
174
+ }