aihand 0.1.0 → 0.1.1

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/README.md CHANGED
@@ -22,6 +22,22 @@ The bottleneck in agentic coding isn't the model — it's the **round-trips**. E
22
22
 
23
23
  It's fully self-contained — a static code-analysis engine (tree-sitter) and a runtime browser probe + AST refactorer (ts-morph), both vendored in. No peer tools to install.
24
24
 
25
+ ## vs. Playwright (in an agent loop)
26
+
27
+ The engine isn't the bottleneck — `page.evaluate` is ~0–1ms, CDP ~0.3ms, an HTTP curl ~7ms. Playwright's engine is just as fast. What costs ~11s is **every agent round-trip** (read the last result, think, emit the next call). So the only number that matters is *how many round-trips the tool forces*.
28
+
29
+ Same task — *open a page → see it → click a link → know where it went* — measured same machine, same site, browser already warm:
30
+
31
+ | metric | aihand | Playwright MCP |
32
+ |---|---|---|
33
+ | agent round-trips | **2** | **4** |
34
+ | round-trip time (~11s each) | ~22s | ~44s |
35
+ | **full-chain wall-clock** | **~24s** | **~46s** — **~2× slower** |
36
+
37
+ Playwright needs 4 because its tools were built for human scripts: `open` returns `{title,url}` (no page), so you must `snapshot` to get a clickable `ref`; `click` returns `{clicked:"e2"}` (no result), so you must `snapshot` *again* to learn you navigated. aihand fuses each: `open` returns the page (semantic tree + addressable knobs), and `click` returns the delta (`navigated: from → to` + the new page) — see-and-act in one round each.
38
+
39
+ And when the steps are known up front (login `fill→fill→click`, search `fill→press`), `POST /chain` collapses an N-step sequence into **one round-trip** — Playwright pays one per step. The win scales with round-trips, not milliseconds.
40
+
25
41
  ## Install
26
42
 
27
43
  ```sh
@@ -59,8 +59,8 @@ var _webtreesitter = require('web-tree-sitter');
59
59
  // package.json
60
60
  var package_default = {
61
61
  name: "aihand",
62
- version: "0.1.0",
63
- description: "The hand of AI \u2014 read code, drive the live UI, and refactor source from one CLI (fuses repodex + aipeek + AST refactor)",
62
+ version: "0.1.1",
63
+ description: "The hand of AI \u2014 read code, drive the live UI (and any website), and refactor source, from one CLI",
64
64
  type: "module",
65
65
  main: "./dist/index.cjs",
66
66
  module: "./dist/index.js",
@@ -57,8 +57,8 @@ import { Parser } from "web-tree-sitter";
57
57
  // package.json
58
58
  var package_default = {
59
59
  name: "aihand",
60
- version: "0.1.0",
61
- description: "The hand of AI \u2014 read code, drive the live UI, and refactor source from one CLI (fuses repodex + aipeek + AST refactor)",
60
+ version: "0.1.1",
61
+ description: "The hand of AI \u2014 read code, drive the live UI (and any website), and refactor source, from one CLI",
62
62
  type: "module",
63
63
  main: "./dist/index.cjs",
64
64
  module: "./dist/index.js",
package/dist/cli.cjs CHANGED
@@ -53,7 +53,7 @@ async function main() {
53
53
  refuse("refactor");
54
54
  if (mod === "read" && !config.read.enabled)
55
55
  refuse("read");
56
- const { runCli } = await Promise.resolve().then(() => _interopRequireWildcard(require("./cli-FDS2C2CZ.cjs")));
56
+ const { runCli } = await Promise.resolve().then(() => _interopRequireWildcard(require("./cli-3J7EYI6G.cjs")));
57
57
  await runCli(rest);
58
58
  return;
59
59
  }
package/dist/cli.js CHANGED
@@ -53,7 +53,7 @@ async function main() {
53
53
  refuse("refactor");
54
54
  if (mod === "read" && !config.read.enabled)
55
55
  refuse("read");
56
- const { runCli } = await import("./cli-HHRGYPSM.js");
56
+ const { runCli } = await import("./cli-FIJLKAGI.js");
57
57
  await runCli(rest);
58
58
  return;
59
59
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "aihand",
3
- "version": "0.1.0",
4
- "description": "The hand of AI — read code, drive the live UI, and refactor source from one CLI (fuses repodex + aipeek + AST refactor)",
3
+ "version": "0.1.1",
4
+ "description": "The hand of AI — read code, drive the live UI (and any website), and refactor source, from one CLI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
7
7
  "module": "./dist/index.js",