@phnx-labs/agents-cli 1.18.3 → 1.18.5

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/CHANGELOG.md CHANGED
@@ -1,5 +1,94 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.18.5
4
+
5
+ **Browser**
6
+
7
+ - **Breaking:** action commands no longer accept a leading `<task>` positional.
8
+ Bind the task once per shell via `AGENTS_BROWSER_TASK`, or pass `--task <name>`
9
+ for a per-call override:
10
+ ```bash
11
+ export AGENTS_BROWSER_TASK=$(agents browser start --profile work)
12
+ agents browser navigate --url https://example.com
13
+ agents browser click 42
14
+ agents browser screenshot
15
+ ```
16
+ Env vars are per-process, so parallel agents in different shells never collide.
17
+ - **Breaking:** URL/text/expression/scroll arguments are now flag-only — positional forms removed:
18
+ - `navigate --url <url>` (was `navigate <url>`)
19
+ - `tab add --url <url>` (was `tab add <url>`)
20
+ - `type <ref> --text "..."` (was `type <ref> "..."`)
21
+ - `evaluate --expression "..."` or `--file <path>` (was `evaluate "..."`)
22
+ - `scroll --dx <n> --dy <n>` (was `scroll <dx> <dy>` — fixes negative-value parser collision)
23
+ - `screenshot` prints a one-line auto-save tip on stderr when `--output` is not passed,
24
+ so agents see the directory without having to dirname() the path.
25
+
26
+ ## 1.18.4
27
+
28
+ **Browser**
29
+
30
+ - `agents browser start` writes the resolved task name to **stdout** as a
31
+ single line (e.g. `swift-crab-falcon-a3f92b1c`), and routes the human
32
+ commentary ("Started task ... with tab ...", "Tip: export
33
+ AGENTS_BROWSER_TASK=...") to **stderr**. This makes
34
+ `T=$(agents browser start --profile X)` Just Work — no `--quiet` flag needed.
35
+ - Auto-generated task names are now three English words plus an 8-char hex
36
+ suffix, e.g. `swift-crab-falcon-a3f92b1c`. Memorable, distinct, 32 bits of
37
+ entropy so parallel agents never collide. Daemon retries on the (vanishingly
38
+ rare) name clash and rejects explicit `--task <name>` values that already
39
+ exist.
40
+ - `agents browser start --profile <name>` now pre-validates the profile
41
+ locally before touching the daemon. Missing profile prints the list of
42
+ available profiles plus the create-command hint instead of a generic error.
43
+ - `agents browser tab list` is now `agents browser tabs` (top-level), pairing
44
+ cleanly with `agents browser tab focus <id>`. The old `tab list` form is
45
+ removed.
46
+ - `agents browser --help` is reorganized by mental model — *Session lifecycle*,
47
+ *Drive the page*, *Capture evidence* — instead of an alphabetical dump.
48
+ Rare commands stay under a trailing *Commands* section.
49
+ - BREAKING: `agents browser profiles prime` and `agents browser profiles launch`
50
+ are removed. Both were thin duplicates of `start`. For first-run
51
+ onboarding, just `agents browser start --profile <name>` and complete the
52
+ interactive screens in the browser; the user-data-dir persists across
53
+ runs. The daemon's `launch-profile` IPC action is also gone.
54
+ - Named endpoint presets per profile. One profile can now cover the local
55
+ and remote variants of the same app instead of forcing two parallel
56
+ profiles. YAML supports both the legacy `endpoints: [url]` shape and the
57
+ new map form:
58
+ ```yaml
59
+ name: rush
60
+ browser: custom
61
+ electron: true
62
+ endpoints:
63
+ local:
64
+ target: cdp://127.0.0.1:9223
65
+ binary: /Applications/Rush.app/Contents/MacOS/Rush
66
+ mac-mini:
67
+ target: ssh://mac-mini?port=9223
68
+ # no binary — daemon attaches only
69
+ defaultEndpoint: local
70
+ ```
71
+ `agents browser start --profile rush --endpoint mac-mini` picks a specific
72
+ preset; `--endpoint` falls back to `defaultEndpoint` or the first preset.
73
+ Pre-validated client-side so a typo doesn't waste an IPC round-trip.
74
+ Per-endpoint `binary` and `targetFilter` override the profile-level
75
+ fields. `agents browser profiles show` lists every preset, marks the
76
+ default, and shows per-endpoint overrides.
77
+ - The daemon's runtime identity is now `<profile>@<endpoint>` so the same
78
+ profile can run at multiple endpoints concurrently without colliding on
79
+ pid/port files. `agents browser status` and `tasks` show the composite
80
+ name, so you can tell at a glance which variant a task is using.
81
+ - `agents browser screenshot --quality raw` captures pixel-faithful PNG
82
+ (no downscale) for archived QA evidence. Default stays `compressed`
83
+ (JPEG, capped near 100 KB) for chat-injected screenshots.
84
+ - New `agents browser record start` / `agents browser record stop`
85
+ recording verbs. Captures via CDP `Page.startScreencast`, pipes frames
86
+ into ffmpeg (image2pipe → libvpx-vp9) and writes a webm under
87
+ `sessions/<task>/recordings/`. Bounded three ways — `--fps` (default
88
+ 5), `--duration` (hard cap, default 60s), `--max-mb` (default 25);
89
+ whichever fires first auto-finalizes the file. Requires ffmpeg on
90
+ PATH (`brew install ffmpeg`).
91
+
3
92
  ## 1.18.3
4
93
 
5
94
  **Plugins** ([#22](https://github.com/phnx-labs/agents-cli/issues/22))
package/README.md CHANGED
@@ -304,13 +304,20 @@ Give agents access to a real browser — no relay extension, no cloud service, n
304
304
  # Create an isolated profile for automation
305
305
  agents browser profiles create work --browser chrome
306
306
 
307
- # Start a task, navigate, interact
308
- agents browser start --profile work --task login-flow --url https://app.example.com
309
- agents browser refs login-flow # Get interactive element refs
310
- agents browser click login-flow 42 # Click element ref 42
311
- agents browser type login-flow 15 "hello" # Type into element ref 15
312
- agents browser screenshot login-flow # Smart resizing, token-efficient
313
- agents browser done login-flow # Close task's tabs when finished
307
+ # Start a task once, then bind it to this shell — every later command picks it up.
308
+ # `start` writes the resolved name (e.g. `swift-crab-falcon-a3f92b1c`) to stdout
309
+ # and human-friendly commentary to stderr, so $(...) capture stays clean.
310
+ export AGENTS_BROWSER_TASK=$(agents browser start --profile work --url https://app.example.com)
311
+ agents browser refs # Get interactive element refs
312
+ agents browser click 42 # Click element ref 42
313
+ agents browser type 15 --text "hello" # Type into element ref 15
314
+ agents browser screenshot # Smart resizing, token-efficient
315
+ agents browser tabs # List tabs open for the current task
316
+ agents browser tab focus tab123 # Switch focus to another tab
317
+ agents browser done # Close task's tabs when finished
318
+
319
+ # Need to address a different task in the same shell? Override per call:
320
+ agents browser screenshot --task other-flow
314
321
  ```
315
322
 
316
323
  ### Why this works where Playwright fails