@duheso/zerocli 1.1.8 → 1.1.10

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 +27 -35
  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.8"}${RESET}`);
119229
+ out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"1.1.10"}${RESET}`);
119230
119230
  return out;
119231
119231
  }
119232
119232
  function printStartupScreen() {}
@@ -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_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";
365599
+ var TOOL_NAME = "windows_control", DEFAULT_WS_PORT = 50052, DEFAULT_REST_PORT = 50051, DEFAULT_QUALITY = 75, DEFAULT_SCALE = 1, 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:**
@@ -365673,7 +365673,13 @@ in their .env file. That's it.
365673
365673
 
365674
365674
  ### Coordinate System
365675
365675
  - (0,0) = top-left corner of primary monitor
365676
- - Screenshot response includes cursor position and screen dimensions
365676
+ - **Screenshots are taken at scale=1.0 by default** (native resolution, 1:1 pixel mapping).
365677
+ Coordinates you read from the screenshot can be passed directly to mouse_click/mouse_move.
365678
+ - If you use \`scale: 0.5\` for smaller images, the screenshot will be half-size.
365679
+ In that case, **multiply all coordinates by 2** before passing to mouse actions.
365680
+ The response includes \`nativeWidth\`, \`nativeHeight\`, and \`scale\` to help you calculate.
365681
+ Formula: \`real_x = screenshot_x * (nativeWidth / width)\`
365682
+ - Cursor position in the response is always in **native screen coordinates**.
365677
365683
  - Use \`list_monitors\` for multi-monitor setups
365678
365684
 
365679
365685
  ### Common Patterns
@@ -365691,7 +365697,7 @@ in their .env file. That's it.
365691
365697
  key_combo(["ctrl","s"]) to save, key_combo(["alt","f4"]) to close, etc.
365692
365698
 
365693
365699
  **Find and click by text (when you can't see coordinates):**
365694
- extract_textfind position of target text → mouse_click at that position
365700
+ screenshotread text from the imageidentify position → mouse_click at that position
365695
365701
 
365696
365702
  **Navigate menus:**
365697
365703
  mouse_click on menu → screenshot → mouse_click on menu item
@@ -366174,13 +366180,17 @@ async function handleCaptureAction(input, connection) {
366174
366180
  return { success: false, error: response.error || "Screenshot failed" };
366175
366181
  }
366176
366182
  const imageBase64 = response.imageData;
366183
+ const scale = input.scale || DEFAULT_SCALE;
366177
366184
  return {
366178
366185
  success: true,
366179
- message: `Screenshot captured: ${response.width}x${response.height}`,
366186
+ message: `Screenshot captured: ${response.width}x${response.height}` + (scale < 1 ? ` (scaled ${Math.round(scale * 100)}% — multiply coordinates by ${Math.round(1 / scale)} for clicks)` : ""),
366180
366187
  data: {
366181
366188
  imageBase64,
366182
366189
  width: response.width,
366183
366190
  height: response.height,
366191
+ nativeWidth: Math.round(response.width / scale),
366192
+ nativeHeight: Math.round(response.height / scale),
366193
+ scale,
366184
366194
  cursor: { x: response.cursorX, y: response.cursorY },
366185
366195
  format: response.imageFormat || "jpeg"
366186
366196
  }
@@ -366234,22 +366244,6 @@ async function handleAutomationAction(input, connection) {
366234
366244
  value: input.value
366235
366245
  });
366236
366246
  return { success: true, message: `Set value on element ${input.runtime_id}` };
366237
- case "extract_text": {
366238
- const response = await connection.sendCommand("ExtractText", {
366239
- region: input.region || null,
366240
- monitorIndex: input.monitor_index ?? 0,
366241
- language: input.language || "en-US"
366242
- });
366243
- return {
366244
- success: true,
366245
- message: `OCR extracted ${response.lines?.length || 0} lines`,
366246
- data: {
366247
- fullText: response.fullText,
366248
- lines: response.lines,
366249
- languageDetected: response.languageDetected
366250
- }
366251
- };
366252
- }
366253
366247
  default:
366254
366248
  return { success: false, error: `Unknown automation action: ${input.action}` };
366255
366249
  }
@@ -366500,7 +366494,6 @@ var init_WindowsControlTool = __esm(() => {
366500
366494
  "get_ui_elements",
366501
366495
  "click_element",
366502
366496
  "set_element_value",
366503
- "extract_text",
366504
366497
  "get_clipboard",
366505
366498
  "set_clipboard",
366506
366499
  "upload_file",
@@ -366515,7 +366508,7 @@ var init_WindowsControlTool = __esm(() => {
366515
366508
  KEYBOARD_ACTIONS = new Set(["key_press", "key_combo", "key_hold", "type_text"]);
366516
366509
  WINDOW_ACTIONS = new Set(["list_windows", "focus_window", "move_window", "resize_window", "minimize", "maximize", "restore", "close_window", "snap_window"]);
366517
366510
  CAPTURE_ACTIONS = new Set(["screenshot", "list_monitors"]);
366518
- AUTOMATION_ACTIONS = new Set(["get_ui_elements", "click_element", "set_element_value", "extract_text"]);
366511
+ AUTOMATION_ACTIONS = new Set(["get_ui_elements", "click_element", "set_element_value"]);
366519
366512
  CLIPBOARD_ACTIONS = new Set(["get_clipboard", "set_clipboard"]);
366520
366513
  DESKTOP_ACTIONS = new Set(["list_desktops", "switch_desktop", "create_desktop", "delete_desktop"]);
366521
366514
  FILE_PROCESS_ACTIONS = new Set(["upload_file", "download_file", "list_files", "list_processes", "kill_process", "launch_process"]);
@@ -366559,7 +366552,6 @@ var init_WindowsControlTool = __esm(() => {
366559
366552
  value: exports_external.string().optional().describe("Value to set on UI element"),
366560
366553
  max_depth: exports_external.number().optional().describe("UI tree traversal depth"),
366561
366554
  control_type_filter: exports_external.string().optional().describe("Filter UI elements by type"),
366562
- language: exports_external.string().optional().describe("OCR language (e.g. en-US, pt-BR)"),
366563
366555
  clipboard_text: exports_external.string().optional().describe("Text to set in clipboard"),
366564
366556
  include_image: exports_external.boolean().optional().describe("Include image from clipboard"),
366565
366557
  file_path: exports_external.string().optional().describe("File path on Windows"),
@@ -379565,7 +379557,7 @@ function getAnthropicEnvMetadata() {
379565
379557
  function getBuildAgeMinutes() {
379566
379558
  if (false)
379567
379559
  ;
379568
- const buildTime = new Date("2026-05-23T21:39:04.216Z").getTime();
379560
+ const buildTime = new Date("2026-05-23T22:30:05.775Z").getTime();
379569
379561
  if (isNaN(buildTime))
379570
379562
  return;
379571
379563
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -421589,7 +421581,7 @@ function buildPrimarySection() {
421589
421581
  });
421590
421582
  return [{
421591
421583
  label: "Version",
421592
- value: "1.1.8"
421584
+ value: "1.1.10"
421593
421585
  }, {
421594
421586
  label: "Session name",
421595
421587
  value: nameValue
@@ -489935,7 +489927,7 @@ var init_bridge_kick = __esm(() => {
489935
489927
  var call60 = async () => {
489936
489928
  return {
489937
489929
  type: "text",
489938
- value: `${"1.1.8"} (built ${"2026-05-23T21:39:04.216Z"})`
489930
+ value: `${"1.1.8"} (built ${"2026-05-23T22:30:05.775Z"})`
489939
489931
  };
489940
489932
  }, version2, version_default;
489941
489933
  var init_version = __esm(() => {
@@ -565959,7 +565951,7 @@ function WelcomeV2() {
565959
565951
  dimColor: true,
565960
565952
  children: [
565961
565953
  "v",
565962
- "1.1.8",
565954
+ "1.1.10",
565963
565955
  " "
565964
565956
  ]
565965
565957
  })
@@ -566193,7 +566185,7 @@ function WelcomeV2() {
566193
566185
  dimColor: true,
566194
566186
  children: [
566195
566187
  "v",
566196
- "1.1.8",
566188
+ "1.1.10",
566197
566189
  " "
566198
566190
  ]
566199
566191
  })
@@ -566440,7 +566432,7 @@ function AppleTerminalWelcomeV2(t0) {
566440
566432
  dimColor: true,
566441
566433
  children: [
566442
566434
  "v",
566443
- "1.1.8",
566435
+ "1.1.10",
566444
566436
  " "
566445
566437
  ]
566446
566438
  });
@@ -566713,7 +566705,7 @@ function AppleTerminalWelcomeV2(t0) {
566713
566705
  dimColor: true,
566714
566706
  children: [
566715
566707
  "v",
566716
- "1.1.8",
566708
+ "1.1.10",
566717
566709
  " "
566718
566710
  ]
566719
566711
  });
@@ -586958,7 +586950,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
586958
586950
  pendingHookMessages
586959
586951
  }, renderAndRun);
586960
586952
  }
586961
- }).version("1.1.8", "-v, --version", "Output the version number");
586953
+ }).version("1.1.10", "-v, --version", "Output the version number");
586962
586954
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
586963
586955
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
586964
586956
  if (canUserConfigureAdvisor()) {
@@ -587624,7 +587616,7 @@ if (false) {}
587624
587616
  async function main2() {
587625
587617
  const args = process.argv.slice(2);
587626
587618
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
587627
- console.log(`${"1.1.8"} (ZeroCLI)`);
587619
+ console.log(`${"1.1.10"} (ZeroCLI)`);
587628
587620
  return;
587629
587621
  }
587630
587622
  if (args.includes("--provider")) {
@@ -587766,4 +587758,4 @@ async function main2() {
587766
587758
  }
587767
587759
  main2();
587768
587760
 
587769
- //# debugId=5E2ECDA4E7219CF964756E2164756E21
587761
+ //# debugId=BCBBAE4846FEE42064756E2164756E21
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@duheso/zerocli",
3
- "version": "1.1.8",
4
- "description": "Zero CLI to any LLM \u2014 OpenAI, Gemini, DeepSeek, Ollama, and 200+ models",
3
+ "version": "1.1.10",
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
+ }