smooth-operator-mcp 2.3.1 → 2.4.0
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 +1 -1
- package/dist/smooth-operator.mjs +1046 -270
- package/dist/smooth-operator.mjs.map +2 -2
- package/docs/harnesses.md +1 -1
- package/docs/mcp-server.md +32 -0
- package/package.json +1 -1
package/docs/harnesses.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Interactive wizard (one-command)
|
|
4
4
|
|
|
5
|
-
`smooth-operator install <harness>` is interactive by default — it asks
|
|
5
|
+
`smooth-operator install <harness>` is interactive by default — it asks 7 curated questions (browser mode, browser executable, headless, allowed domains, blocked domains, page JavaScript, and data directory) with recommended defaults in brackets. Omitting `<harness>` is allowed too: on a TTY the installer prompts for the target first (default `opencode`), while piped or CI environments print usage and exit instead. Use `smooth-operator install opencode --yes` to skip prompts and use recommended defaults. The wizard saves its choices to `~/.smooth-operator/config.json` (0600, symlink-safe) — mode, executable path, headless, domains, and allowEval are written exactly as answered on every run — and then registers the harness. Personal-Chrome mode derives `browserUrl` after launching the helper on port 9222; it is not a separate prompt.
|
|
6
6
|
|
|
7
7
|
### Personal Chrome (connect) helper
|
|
8
8
|
|
package/docs/mcp-server.md
CHANGED
|
@@ -297,6 +297,11 @@ are always applied, with explicit opt-ins where documented:
|
|
|
297
297
|
redirects that leave policy. The browser's own later DNS resolution is not
|
|
298
298
|
fully controllable by this process; DNS rebinding is therefore a limitation,
|
|
299
299
|
not a guarantee that a network firewall can be omitted.
|
|
300
|
+
- New page and worker targets are paused at the DevTools boundary until their
|
|
301
|
+
request guard is installed. HTTP(S) and normalized WS(S) requests receive
|
|
302
|
+
the same policy checks; `about:blank` is allowed, data/blob URLs are limited
|
|
303
|
+
to non-frame subresources, and file, browser-internal, extension, and
|
|
304
|
+
unknown schemes are rejected.
|
|
300
305
|
- Upload and PDF destinations must stay within configured file roots after
|
|
301
306
|
realpath and symlink checks. Download paths and generated files are bounded.
|
|
302
307
|
- Page JavaScript is disabled by default. It is available only when the full
|
|
@@ -349,6 +354,33 @@ confirmation. `browser_wait_for_human` pauses for an operator to complete a
|
|
|
349
354
|
visible sign-in or challenge, and `browser_close_session` closes the one
|
|
350
355
|
native browser session by its explicit session identifier.
|
|
351
356
|
|
|
357
|
+
Actions that leave a usable page—navigation, click, input, select, scroll, key,
|
|
358
|
+
back, forward, and reload—accept optional `includeSnapshot: true`. The action
|
|
359
|
+
result then includes one bounded trailing snapshot with current refs and a DOM
|
|
360
|
+
revision. A snapshot failure is reported as `snapshot: null` with a bounded
|
|
361
|
+
`snapshotError`; the completed mutation remains a success. `browser_batch`
|
|
362
|
+
accepts the same option at the top level and captures only one snapshot after
|
|
363
|
+
the final action.
|
|
364
|
+
|
|
365
|
+
`browser_extract` returns `offset`, `nextOffset`, `hasMore`, and `revision`.
|
|
366
|
+
Use `browser_page_next` with the returned offset and revision; a stale revision
|
|
367
|
+
returns the retryable `STALE_PAGE_SLICE` error instead of silently overlapping
|
|
368
|
+
or skipping text. `browser_search_page` reports `totalMatches` and
|
|
369
|
+
`matchesTruncated`. Page slices, matches, evaluate output, network entries,
|
|
370
|
+
and research URLs are bounded, redacted, and marked as untrusted data.
|
|
371
|
+
|
|
372
|
+
Batch inputs accept canonical action names plus compatibility aliases such as
|
|
373
|
+
`key`, `select`, `back`, `forward`, `page_info`, `challenge`, `interactive`,
|
|
374
|
+
`frames`, `downloads`, `upload`, and `pdf`. Grouped cookie, storage, dialog,
|
|
375
|
+
network-log, and console-log operations are normalized before validation;
|
|
376
|
+
conflicting alias and canonical fields fail with their action index and field
|
|
377
|
+
names. A failed batch preserves bounded completed results and reports
|
|
378
|
+
`failedIndex`, `failedAction`, and `completedActions`.
|
|
379
|
+
|
|
380
|
+
If browser teardown times out or fails, later browser work returns the
|
|
381
|
+
retryable `BROWSER_RECOVERY_REQUIRED` error. Call `browser_close_session` to
|
|
382
|
+
retry cleanup; the recovery latch clears only after teardown is confirmed.
|
|
383
|
+
|
|
352
384
|
`web_search` performs bounded DuckDuckGo retrieval. Search titles, URLs, and
|
|
353
385
|
snippets are untrusted observations, not instructions or proof of claims. Its
|
|
354
386
|
`maxResults` input is capped at 10, and `maxChars` (500–4,000 through the MCP
|