opendevbrowser 0.0.30 → 0.0.31
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 +3 -3
- package/dist/{chunk-RCZZGGJS.js → chunk-2I3YS3DV.js} +2 -2
- package/dist/{chunk-J47N77VG.js → chunk-6B5WAQV7.js} +3 -3
- package/dist/chunk-6B5WAQV7.js.map +1 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/index.js +7 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/daemon-fingerprint.json +1 -1
- package/dist/{help-EKKKEDL5.js → help-U7KBQME6.js} +4 -4
- package/dist/help-U7KBQME6.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/opendevbrowser.js +1 -1
- package/dist/public-surface/generated-manifest.d.ts +1 -1
- package/dist/public-surface/source.d.ts +1 -1
- package/dist/{update-SMXPYGXS.js → update-FZGSXB74.js} +6 -2
- package/dist/update-FZGSXB74.js.map +1 -0
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/dist/chunk-J47N77VG.js.map +0 -1
- package/dist/help-EKKKEDL5.js.map +0 -1
- package/dist/update-SMXPYGXS.js.map +0 -1
- /package/dist/{chunk-RCZZGGJS.js.map → chunk-2I3YS3DV.js.map} +0 -0
package/README.md
CHANGED
|
@@ -108,7 +108,7 @@ export CLAUDECODE_HOME="$ISOLATED_ROOT/claudecode-home"
|
|
|
108
108
|
export AMP_CLI_HOME="$ISOLATED_ROOT/ampcli-home"
|
|
109
109
|
cd "$WORKDIR"
|
|
110
110
|
npm init -y
|
|
111
|
-
npm install <public-repo-root>/opendevbrowser-0.0.
|
|
111
|
+
npm install <public-repo-root>/opendevbrowser-0.0.31.tgz
|
|
112
112
|
npx --no-install opendevbrowser --help
|
|
113
113
|
npx --no-install opendevbrowser help
|
|
114
114
|
```
|
|
@@ -740,7 +740,7 @@ See [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the source-accura
|
|
|
740
740
|
| `npx opendevbrowser --with-config` | Also create opendevbrowser.jsonc |
|
|
741
741
|
| `npx opendevbrowser --full` | Full install (config + extension assets) |
|
|
742
742
|
| `npm install -g opendevbrowser` | Install persistent global CLI |
|
|
743
|
-
| `npx opendevbrowser --update` | Repair
|
|
743
|
+
| `npx opendevbrowser --update` | Repair OpenCode package caches and plugin pins |
|
|
744
744
|
| `npx opendevbrowser --uninstall` | Remove from config |
|
|
745
745
|
| `npx opendevbrowser --version` | Show version |
|
|
746
746
|
|
|
@@ -806,7 +806,7 @@ OpenDevBrowser is **secure by default** with defense-in-depth protections:
|
|
|
806
806
|
## Updating
|
|
807
807
|
|
|
808
808
|
```bash
|
|
809
|
-
# Repair OpenCode's cached
|
|
809
|
+
# Repair OpenCode's cached packages, manifest pin, and lockfile, then restart OpenCode
|
|
810
810
|
npx opendevbrowser --update
|
|
811
811
|
```
|
|
812
812
|
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
CLI_COMMANDS,
|
|
3
3
|
VALID_EQUALS_FLAGS,
|
|
4
4
|
VALID_FLAGS
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6B5WAQV7.js";
|
|
6
6
|
import {
|
|
7
7
|
createUsageError
|
|
8
8
|
} from "./chunk-IPE7TF2P.js";
|
|
@@ -223,4 +223,4 @@ export {
|
|
|
223
223
|
parseArgs,
|
|
224
224
|
detectOutputFormat
|
|
225
225
|
};
|
|
226
|
-
//# sourceMappingURL=chunk-
|
|
226
|
+
//# sourceMappingURL=chunk-2I3YS3DV.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/public-surface/generated-manifest.ts
|
|
2
2
|
var PUBLIC_SURFACE_MANIFEST = {
|
|
3
3
|
"schemaVersion": "2026-04-04",
|
|
4
|
-
"generatedAt": "2026-05-
|
|
4
|
+
"generatedAt": "2026-05-17T00:30:43.249Z",
|
|
5
5
|
"cli": {
|
|
6
6
|
"groups": [
|
|
7
7
|
{
|
|
@@ -199,7 +199,7 @@ var PUBLIC_SURFACE_MANIFEST = {
|
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
"name": "update",
|
|
202
|
-
"description": "Repair
|
|
202
|
+
"description": "Repair OpenCode package caches and refresh managed skill packs",
|
|
203
203
|
"usage": "npx opendevbrowser update [--global|--local] [--skills-global|--skills-local|--no-skills]",
|
|
204
204
|
"flags": [
|
|
205
205
|
"--global",
|
|
@@ -2966,4 +2966,4 @@ export {
|
|
|
2966
2966
|
PUBLIC_CLI_COMMAND_GROUPS,
|
|
2967
2967
|
TOOL_SURFACE_ENTRIES
|
|
2968
2968
|
};
|
|
2969
|
-
//# sourceMappingURL=chunk-
|
|
2969
|
+
//# sourceMappingURL=chunk-6B5WAQV7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/public-surface/generated-manifest.ts"],"sourcesContent":["/**\n * Generated by scripts/generate-public-surface-manifest.mjs.\n * Do not edit manually.\n */\n\nimport type {\n CommandHelpDetail,\n PublicSurfaceCliCommandGroupDefinition,\n PublicSurfaceCliCommandName,\n PublicSurfaceFlagName,\n PublicSurfaceManifest,\n ToolSurfaceEntry\n} from \"./source\";\n\nexport const PUBLIC_SURFACE_MANIFEST_SCHEMA_VERSION = \"2026-04-04\" as const;\nexport const PUBLIC_SURFACE_MANIFEST_GENERATED_AT = \"2026-05-17T00:30:43.249Z\" as const;\n\nexport const PUBLIC_SURFACE_MANIFEST = {\n \"schemaVersion\": \"2026-04-04\",\n \"generatedAt\": \"2026-05-17T00:30:43.249Z\",\n \"cli\": {\n \"groups\": [\n {\n \"id\": \"install_lifecycle\",\n \"title\": \"Install & Lifecycle\",\n \"summary\": \"Install, remove, and inspect CLI basics.\",\n \"commands\": [\n \"install\",\n \"update\",\n \"uninstall\",\n \"help\",\n \"version\"\n ]\n },\n {\n \"id\": \"daemon_runtime\",\n \"title\": \"Daemon & Runtime\",\n \"summary\": \"Run daemon services and single-process scripts.\",\n \"commands\": [\n \"serve\",\n \"daemon\",\n \"native\",\n \"run\"\n ]\n },\n {\n \"id\": \"session_lifecycle\",\n \"title\": \"Session Lifecycle\",\n \"summary\": \"Launch, connect, and manage browser session state.\",\n \"commands\": [\n \"launch\",\n \"connect\",\n \"disconnect\",\n \"status\",\n \"status-capabilities\",\n \"cookie-import\",\n \"cookie-list\"\n ]\n },\n {\n \"id\": \"provider_workflows\",\n \"title\": \"Provider Workflows\",\n \"summary\": \"Run research, shopping, media, and artifact workflows.\",\n \"commands\": [\n \"research\",\n \"shopping\",\n \"product-video\",\n \"inspiredesign\",\n \"artifacts\",\n \"macro-resolve\"\n ]\n },\n {\n \"id\": \"design_canvas\",\n \"title\": \"Design Canvas\",\n \"summary\": \"Execute typed /canvas commands for session, document, preview, and code-sync flows.\",\n \"commands\": [\n \"canvas\"\n ]\n },\n {\n \"id\": \"navigation\",\n \"title\": \"Navigation\",\n \"summary\": \"Move through pages and capture fresh refs.\",\n \"commands\": [\n \"goto\",\n \"wait\",\n \"snapshot\",\n \"review\",\n \"review-desktop\"\n ]\n },\n {\n \"id\": \"interaction\",\n \"title\": \"Interaction\",\n \"summary\": \"Perform ref-based interactions in the active page.\",\n \"commands\": [\n \"click\",\n \"hover\",\n \"press\",\n \"check\",\n \"uncheck\",\n \"type\",\n \"select\",\n \"scroll\",\n \"scroll-into-view\",\n \"upload\",\n \"pointer-move\",\n \"pointer-down\",\n \"pointer-up\",\n \"pointer-drag\"\n ]\n },\n {\n \"id\": \"targets_pages\",\n \"title\": \"Targets & Pages\",\n \"summary\": \"Manage tabs, targets, and named pages.\",\n \"commands\": [\n \"targets-list\",\n \"target-use\",\n \"target-new\",\n \"target-close\",\n \"page\",\n \"pages\",\n \"page-close\"\n ]\n },\n {\n \"id\": \"dom_export\",\n \"title\": \"DOM & Export\",\n \"summary\": \"Read DOM state and export page or component code.\",\n \"commands\": [\n \"dom-html\",\n \"dom-text\",\n \"dom-attr\",\n \"dom-value\",\n \"dom-visible\",\n \"dom-enabled\",\n \"dom-checked\",\n \"clone-page\",\n \"clone-component\"\n ]\n },\n {\n \"id\": \"diagnostics_annotation\",\n \"title\": \"Diagnostics & Annotation\",\n \"summary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\",\n \"commands\": [\n \"session-inspector\",\n \"session-inspector-plan\",\n \"session-inspector-audit\",\n \"perf\",\n \"screenshot\",\n \"dialog\",\n \"console-poll\",\n \"network-poll\",\n \"debug-trace-snapshot\",\n \"annotate\"\n ]\n },\n {\n \"id\": \"browser_replay\",\n \"title\": \"Browser Replay\",\n \"summary\": \"Capture temporal replay artifacts through the public browser replay lane for a browser target.\",\n \"commands\": [\n \"screencast-start\",\n \"screencast-stop\"\n ]\n },\n {\n \"id\": \"desktop_observation\",\n \"title\": \"Desktop Observation\",\n \"summary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\",\n \"commands\": [\n \"desktop-status\",\n \"desktop-windows\",\n \"desktop-active-window\",\n \"desktop-capture-desktop\",\n \"desktop-capture-window\",\n \"desktop-accessibility-snapshot\"\n ]\n },\n {\n \"id\": \"power\",\n \"title\": \"Power\",\n \"summary\": \"Unsafe internal daemon passthrough.\",\n \"commands\": [\n \"rpc\"\n ]\n }\n ],\n \"commands\": [\n {\n \"name\": \"install\",\n \"description\": \"Install the plugin and sync bundled skill packs\",\n \"usage\": \"npx opendevbrowser [--global|--local] [--with-config] [--full] [--skills-global|--skills-local|--no-skills] [--no-prompt] [--quiet]\",\n \"flags\": [\n \"--global\",\n \"--local\",\n \"--with-config\",\n \"--full\",\n \"--skills-global\",\n \"--skills-local\",\n \"--no-skills\",\n \"--no-prompt\",\n \"--quiet\"\n ],\n \"examples\": [\n \"npx opendevbrowser install --local --with-config --skills-local\"\n ],\n \"notes\": [],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"update\",\n \"description\": \"Repair OpenCode package caches and refresh managed skill packs\",\n \"usage\": \"npx opendevbrowser update [--global|--local] [--skills-global|--skills-local|--no-skills]\",\n \"flags\": [\n \"--global\",\n \"--local\",\n \"--skills-global\",\n \"--skills-local\",\n \"--no-skills\"\n ],\n \"examples\": [\n \"npx opendevbrowser update --local --skills-local\"\n ],\n \"notes\": [],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"uninstall\",\n \"description\": \"Remove plugin from config and clean managed skill packs\",\n \"usage\": \"npx opendevbrowser uninstall [--global|--local] [--no-skills] [--no-prompt] [--quiet]\",\n \"flags\": [\n \"--global\",\n \"--local\",\n \"--no-skills\",\n \"--no-prompt\",\n \"--quiet\"\n ],\n \"examples\": [\n \"npx opendevbrowser uninstall --local --no-skills --no-prompt\"\n ],\n \"notes\": [],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"help\",\n \"description\": \"Show help\",\n \"usage\": \"npx opendevbrowser --help | npx opendevbrowser help\",\n \"flags\": [\n \"--help\"\n ],\n \"examples\": [\n \"npx opendevbrowser --help\"\n ],\n \"notes\": [\n \"Generated help is the canonical first-contact discovery surface and should stay source-owned.\"\n ],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"version\",\n \"description\": \"Show version\",\n \"usage\": \"npx opendevbrowser --version | npx opendevbrowser version\",\n \"flags\": [\n \"--version\"\n ],\n \"examples\": [\n \"npx opendevbrowser --version\"\n ],\n \"notes\": [],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"serve\",\n \"description\": \"Start or stop the local daemon\",\n \"usage\": \"npx opendevbrowser serve [--port <port>] [--token <token>] [--stop]\",\n \"flags\": [\n \"--port\",\n \"--token\",\n \"--stop\"\n ],\n \"examples\": [\n \"npx opendevbrowser serve --port 8788 --token local-dev-token\"\n ],\n \"notes\": [],\n \"groupId\": \"daemon_runtime\",\n \"groupTitle\": \"Daemon & Runtime\",\n \"groupSummary\": \"Run daemon services and single-process scripts.\"\n },\n {\n \"name\": \"daemon\",\n \"description\": \"Install/uninstall/status daemon auto-start\",\n \"usage\": \"npx opendevbrowser daemon <install|uninstall|status>\",\n \"flags\": [\n \"--output-format\"\n ],\n \"examples\": [\n \"npx opendevbrowser daemon status --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"daemon_runtime\",\n \"groupTitle\": \"Daemon & Runtime\",\n \"groupSummary\": \"Run daemon services and single-process scripts.\"\n },\n {\n \"name\": \"native\",\n \"description\": \"Install/uninstall/status native messaging host\",\n \"usage\": \"npx opendevbrowser native <install|uninstall|status> [extension-id]\",\n \"flags\": [\n \"--output-format\"\n ],\n \"examples\": [\n \"npx opendevbrowser native status --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"daemon_runtime\",\n \"groupTitle\": \"Daemon & Runtime\",\n \"groupSummary\": \"Run daemon services and single-process scripts.\"\n },\n {\n \"name\": \"run\",\n \"description\": \"Execute a JSON script in a single process\",\n \"usage\": \"npx opendevbrowser run --script <path> [--headless] [--profile <name>] [--persist-profile <bool>] [--chrome-path <path>] [--start-url <url>] [--flag <chrome-arg>]\",\n \"flags\": [\n \"--script\",\n \"--headless\",\n \"--profile\",\n \"--persist-profile\",\n \"--chrome-path\",\n \"--start-url\",\n \"--flag\"\n ],\n \"examples\": [\n \"npx opendevbrowser run --script ./workflow.json --headless --output-format json\"\n ],\n \"notes\": [\n \"One-shot run uses a temporary profile unless --persist-profile is explicitly enabled.\"\n ],\n \"groupId\": \"daemon_runtime\",\n \"groupTitle\": \"Daemon & Runtime\",\n \"groupSummary\": \"Run daemon services and single-process scripts.\"\n },\n {\n \"name\": \"launch\",\n \"description\": \"Launch a managed browser session via daemon\",\n \"usage\": \"npx opendevbrowser launch [--headless] [--profile <name>] [--persist-profile <bool>] [--chrome-path <path>] [--start-url <url>] [--flag <chrome-arg>] [--no-extension|--extension-only] [--extension-legacy] [--wait-for-extension] [--wait-timeout-ms <ms>]\",\n \"flags\": [\n \"--headless\",\n \"--profile\",\n \"--persist-profile\",\n \"--chrome-path\",\n \"--start-url\",\n \"--flag\",\n \"--no-extension\",\n \"--extension-only\",\n \"--extension-legacy\",\n \"--wait-for-extension\",\n \"--wait-timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser launch --no-extension --headless --start-url https://example.com --output-format json\"\n ],\n \"notes\": [\n \"Use --wait-for-extension when you need a clean daemon-extension handshake before the next step.\"\n ],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"connect\",\n \"description\": \"Connect to an existing browser via daemon\",\n \"usage\": \"npx opendevbrowser connect (--ws-endpoint <url> | --host <host> --cdp-port <port>) [--start-url <url>] [--extension-legacy]\",\n \"flags\": [\n \"--ws-endpoint\",\n \"--host\",\n \"--cdp-port\",\n \"--start-url\",\n \"--extension-legacy\"\n ],\n \"examples\": [\n \"npx opendevbrowser connect --host 127.0.0.1 --cdp-port 9222 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"disconnect\",\n \"description\": \"Disconnect a daemon session\",\n \"usage\": \"npx opendevbrowser disconnect --session-id <id> [--close-browser]\",\n \"flags\": [\n \"--session-id\",\n \"--close-browser\"\n ],\n \"examples\": [\n \"npx opendevbrowser disconnect --session-id s1 --close-browser --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"status\",\n \"description\": \"Get daemon or session status\",\n \"usage\": \"npx opendevbrowser status [--session-id <id> | --daemon] [--transport <relay|native>]\",\n \"flags\": [\n \"--session-id\",\n \"--daemon\",\n \"--transport\"\n ],\n \"examples\": [\n \"npx opendevbrowser status --daemon --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"status-capabilities\",\n \"description\": \"Inspect runtime capability discovery for the host and an optional session\",\n \"usage\": \"npx opendevbrowser status-capabilities [--session-id <id>] [--target-id <id>] [--challenge-automation-mode <mode>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--challenge-automation-mode\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser status-capabilities --session-id s1 --target-id page-1 --challenge-automation-mode browser_with_helper --timeout-ms 30000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"cookie-import\",\n \"description\": \"Import validated cookies into a session\",\n \"usage\": \"npx opendevbrowser cookie-import --session-id <id> (--cookies <json> | --cookies-file <path>) [--strict <bool>]\",\n \"flags\": [\n \"--session-id\",\n \"--cookies\",\n \"--cookies-file\",\n \"--strict\"\n ],\n \"examples\": [\n \"npx opendevbrowser cookie-import --session-id s1 --cookies-file ./cookies.json --strict true --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"cookie-list\",\n \"description\": \"List cookies for a session (optionally filtered by URL)\",\n \"usage\": \"npx opendevbrowser cookie-list --session-id <id> [--url <url>]\",\n \"flags\": [\n \"--session-id\",\n \"--url\"\n ],\n \"examples\": [\n \"npx opendevbrowser cookie-list --session-id s1 --url https://example.com --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"research\",\n \"description\": \"Run research workflows\",\n \"usage\": \"npx opendevbrowser research run --topic <text> [--days <n>|--from <date> --to <date>] [--source-selection <family>] [--sources <csv>] [--include-engagement] [--limit-per-source <n>] [--browser-mode <mode>] [--mode <mode>] [--timeout-ms <ms>] [--output-dir <path>] [--ttl-hours <n>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>]\",\n \"flags\": [\n \"--topic\",\n \"--days\",\n \"--from\",\n \"--to\",\n \"--source-selection\",\n \"--sources\",\n \"--include-engagement\",\n \"--limit-per-source\",\n \"--browser-mode\",\n \"--mode\",\n \"--timeout-ms\",\n \"--output-dir\",\n \"--ttl-hours\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\"\n ],\n \"examples\": [\n \"npx opendevbrowser research run --topic \\\"Chrome extension debugging workflows\\\" --days 30 --sources web,community --browser-mode managed --mode json --output-format json\"\n ],\n \"notes\": [\n \"Load opendevbrowser-research first, use explicit source families such as --sources web,community, and inspect artifacts before final claims.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"shopping\",\n \"description\": \"Run shopping workflows\",\n \"usage\": \"npx opendevbrowser shopping run --query <text> [--providers <csv>] [--budget <amount>] [--region <region>] [--browser-mode <mode>] [--sort <mode>] [--mode <mode>] [--timeout-ms <ms>] [--output-dir <path>] [--ttl-hours <n>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>]\",\n \"flags\": [\n \"--query\",\n \"--providers\",\n \"--budget\",\n \"--region\",\n \"--browser-mode\",\n \"--sort\",\n \"--mode\",\n \"--timeout-ms\",\n \"--output-dir\",\n \"--ttl-hours\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\"\n ],\n \"examples\": [\n \"npx opendevbrowser shopping run --query \\\"wireless ergonomic mouse\\\" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --mode json --output-format json\"\n ],\n \"notes\": [\n \"Treat --region as advisory unless the workflow output reports region_authoritative=true.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"product-video\",\n \"description\": \"Run product presentation asset workflows\",\n \"usage\": \"npx opendevbrowser product-video run (--product-url <url> | --product-name <name>) [--provider-hint <provider>] [--include-screenshots[=<bool>]] [--include-all-images[=<bool>]] [--include-copy[=<bool>]] [--timeout-ms <ms>] [--browser-mode <mode>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>] [--output-dir <path>] [--ttl-hours <n>]\",\n \"flags\": [\n \"--product-url\",\n \"--product-name\",\n \"--provider-hint\",\n \"--include-screenshots\",\n \"--include-all-images\",\n \"--include-copy\",\n \"--timeout-ms\",\n \"--browser-mode\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\",\n \"--output-dir\",\n \"--ttl-hours\"\n ],\n \"examples\": [\n \"npx opendevbrowser product-video run --product-url \\\"https://example.com/p/1\\\" --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --include-screenshots --output-format json\"\n ],\n \"notes\": [\n \"Confirm whether the returned pack is visual-ready or metadata-first before briefing production.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"inspiredesign\",\n \"description\": \"Run inspiredesign workflows\",\n \"usage\": \"npx opendevbrowser inspiredesign run --brief <text> [--url <url>]... [--capture-mode <mode>] [--include-prototype-guidance[=<bool>]] [--mode <mode>] [--timeout-ms <ms>] [--output-dir <path>] [--ttl-hours <n>] [--browser-mode <mode>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>]\",\n \"flags\": [\n \"--brief\",\n \"--url\",\n \"--capture-mode\",\n \"--include-prototype-guidance\",\n \"--mode\",\n \"--timeout-ms\",\n \"--output-dir\",\n \"--ttl-hours\",\n \"--browser-mode\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\"\n ],\n \"examples\": [\n \"npx opendevbrowser inspiredesign run --brief \\\"Extract a reusable dashboard design contract from live references\\\" --url https://linear.app --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --include-prototype-guidance --output-dir /tmp/inspiredesign --output-format json\"\n ],\n \"notes\": [\n \"Any inspiredesign --url forces deep capture for DOM/layout evidence; without URLs, --capture-mode defaults to off.\",\n \"Repeat --url for multiple references. There is no --urls alias.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"artifacts\",\n \"description\": \"Manage workflow artifact lifecycle\",\n \"usage\": \"npx opendevbrowser artifacts cleanup [--expired-only] [--output-dir <path>]\",\n \"flags\": [\n \"--expired-only\",\n \"--output-dir\"\n ],\n \"examples\": [\n \"npx opendevbrowser artifacts cleanup --expired-only --output-dir /tmp/opendevbrowser --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"macro-resolve\",\n \"description\": \"Resolve or execute a macro expression via provider actions\",\n \"usage\": \"npx opendevbrowser macro-resolve --expression <macro> [--default-provider <provider>] [--include-catalog] [--execute [--timeout-ms <ms>] [--browser-mode <mode>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>]]\",\n \"flags\": [\n \"--expression\",\n \"--default-provider\",\n \"--include-catalog\",\n \"--execute\",\n \"--timeout-ms\",\n \"--browser-mode\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\"\n ],\n \"examples\": [\n \"npx opendevbrowser macro-resolve --expression '@community.search(\\\"browser automation failures\\\", 4)' --execute --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --output-format json\"\n ],\n \"notes\": [\n \"Use --browser-mode and --challenge-automation-mode only with --execute.\",\n \"Use --browser-mode extension --use-cookies --cookie-policy required when provider macros must reuse relay-backed browser state and verify that provider cookies are observable.\",\n \"When --execute is enabled, inspect execution.meta.blocker before trusting a blocked result as complete.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"canvas\",\n \"description\": \"Execute a design-canvas command\",\n \"usage\": \"npx opendevbrowser canvas --command <canvas.command> [--params <json> | --params-file <path>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--command\",\n \"--params\",\n \"--params-file\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser canvas --command canvas.session.open --params '{\\\"label\\\":\\\"design review\\\"}' --timeout-ms 120000 --output-format json\"\n ],\n \"notes\": [\n \"Use --params-file for strict request envelopes such as canvas.plan.set or governance handoff payloads.\"\n ],\n \"groupId\": \"design_canvas\",\n \"groupTitle\": \"Design Canvas\",\n \"groupSummary\": \"Execute typed /canvas commands for session, document, preview, and code-sync flows.\"\n },\n {\n \"name\": \"goto\",\n \"description\": \"Navigate current session to a URL\",\n \"usage\": \"npx opendevbrowser goto --session-id <id> --url <url> [--wait-until <state>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--url\",\n \"--wait-until\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser goto --session-id s1 --url https://example.com --wait-until networkidle --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"wait\",\n \"description\": \"Wait for load or a ref to appear\",\n \"usage\": \"npx opendevbrowser wait --session-id <id> [--ref <ref>] [--state <state>|--until <condition>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--state\",\n \"--until\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser wait --session-id s1 --state networkidle --timeout-ms 30000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"snapshot\",\n \"description\": \"Capture a snapshot of the active page\",\n \"usage\": \"npx opendevbrowser snapshot --session-id <id> [--mode <mode>] [--max-chars <n>] [--cursor <cursor>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--mode\",\n \"--max-chars\",\n \"--cursor\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser snapshot --session-id s1 --mode actionables --max-chars 4000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"review\",\n \"description\": \"Capture a first-class review payload for the active page\",\n \"usage\": \"npx opendevbrowser review --session-id <id> [--target-id <id>] [--max-chars <n>] [--cursor <cursor>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--max-chars\",\n \"--cursor\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser review --session-id s1 --target-id page-1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"review-desktop\",\n \"description\": \"Capture desktop-assisted browser review with read-only desktop evidence\",\n \"usage\": \"npx opendevbrowser review-desktop --session-id <id> [--target-id <id>] [--reason <text>] [--max-chars <n>] [--cursor <cursor>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--reason\",\n \"--max-chars\",\n \"--cursor\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser review-desktop --session-id s1 --reason \\\"trace challenge state\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"click\",\n \"description\": \"Click an element by ref\",\n \"usage\": \"npx opendevbrowser click --session-id <id> --ref <ref> [--target-id <id>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--target-id\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser click --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"hover\",\n \"description\": \"Hover an element by ref\",\n \"usage\": \"npx opendevbrowser hover --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser hover --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"press\",\n \"description\": \"Press a keyboard key\",\n \"usage\": \"npx opendevbrowser press --session-id <id> --key <key> [--ref <ref>]\",\n \"flags\": [\n \"--session-id\",\n \"--key\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser press --session-id s1 --key Enter --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"check\",\n \"description\": \"Check a checkbox by ref\",\n \"usage\": \"npx opendevbrowser check --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser check --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"uncheck\",\n \"description\": \"Uncheck a checkbox by ref\",\n \"usage\": \"npx opendevbrowser uncheck --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser uncheck --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"type\",\n \"description\": \"Type into an element by ref\",\n \"usage\": \"npx opendevbrowser type --session-id <id> --ref <ref> --text <text> [--clear] [--submit]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--text\",\n \"--clear\",\n \"--submit\"\n ],\n \"examples\": [\n \"npx opendevbrowser type --session-id s1 --ref r12 --text \\\"agent@example.com\\\" --clear --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"select\",\n \"description\": \"Select values in a select by ref\",\n \"usage\": \"npx opendevbrowser select --session-id <id> --ref <ref> --values <csv>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--values\"\n ],\n \"examples\": [\n \"npx opendevbrowser select --session-id s1 --ref r12 --values us,ca --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"scroll\",\n \"description\": \"Scroll the page or element by ref\",\n \"usage\": \"npx opendevbrowser scroll --session-id <id> --dy <pixels> [--ref <ref>]\",\n \"flags\": [\n \"--session-id\",\n \"--dy\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser scroll --session-id s1 --dy 1000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"scroll-into-view\",\n \"description\": \"Scroll an element into view by ref\",\n \"usage\": \"npx opendevbrowser scroll-into-view --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser scroll-into-view --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"upload\",\n \"description\": \"Upload files to a file input or chooser by ref\",\n \"usage\": \"npx opendevbrowser upload --session-id <id> --ref <ref> --files <csv> [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--files\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser upload --session-id s1 --ref r12 --files ./draft.pdf,./hero.png --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"pointer-move\",\n \"description\": \"Move the pointer to viewport coordinates\",\n \"usage\": \"npx opendevbrowser pointer-move --session-id <id> --x <n> --y <n> [--steps <n>] [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--x\",\n \"--y\",\n \"--steps\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pointer-move --session-id s1 --x 320 --y 240 --steps 12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"pointer-down\",\n \"description\": \"Press a mouse button at viewport coordinates\",\n \"usage\": \"npx opendevbrowser pointer-down --session-id <id> --x <n> --y <n> [--button <left|middle|right>] [--click-count <n>] [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--x\",\n \"--y\",\n \"--button\",\n \"--click-count\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pointer-down --session-id s1 --x 320 --y 240 --button left --click-count 1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"pointer-up\",\n \"description\": \"Release a mouse button at viewport coordinates\",\n \"usage\": \"npx opendevbrowser pointer-up --session-id <id> --x <n> --y <n> [--button <left|middle|right>] [--click-count <n>] [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--x\",\n \"--y\",\n \"--button\",\n \"--click-count\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pointer-up --session-id s1 --x 320 --y 240 --button left --click-count 1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"pointer-drag\",\n \"description\": \"Drag the pointer between two viewport coordinates\",\n \"usage\": \"npx opendevbrowser pointer-drag --session-id <id> --from-x <n> --from-y <n> --to-x <n> --to-y <n> [--steps <n>] [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--from-x\",\n \"--from-y\",\n \"--to-x\",\n \"--to-y\",\n \"--steps\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pointer-drag --session-id s1 --from-x 320 --from-y 240 --to-x 640 --to-y 240 --steps 18 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"targets-list\",\n \"description\": \"List page targets\",\n \"usage\": \"npx opendevbrowser targets-list --session-id <id> [--include-urls]\",\n \"flags\": [\n \"--session-id\",\n \"--include-urls\"\n ],\n \"examples\": [\n \"npx opendevbrowser targets-list --session-id s1 --include-urls --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"target-use\",\n \"description\": \"Focus a target by id\",\n \"usage\": \"npx opendevbrowser target-use --session-id <id> --target-id <id>\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser target-use --session-id s1 --target-id page-2 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"target-new\",\n \"description\": \"Open a new target\",\n \"usage\": \"npx opendevbrowser target-new --session-id <id> [--url <url>]\",\n \"flags\": [\n \"--session-id\",\n \"--url\"\n ],\n \"examples\": [\n \"npx opendevbrowser target-new --session-id s1 --url https://example.com/docs --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"target-close\",\n \"description\": \"Close a target by id\",\n \"usage\": \"npx opendevbrowser target-close --session-id <id> --target-id <id>\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser target-close --session-id s1 --target-id page-2 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"page\",\n \"description\": \"Open or focus a named page\",\n \"usage\": \"npx opendevbrowser page --session-id <id> --name <page> [--url <url>]\",\n \"flags\": [\n \"--session-id\",\n \"--name\",\n \"--url\"\n ],\n \"examples\": [\n \"npx opendevbrowser page --session-id s1 --name settings --url https://example.com/settings --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"pages\",\n \"description\": \"List named pages\",\n \"usage\": \"npx opendevbrowser pages --session-id <id>\",\n \"flags\": [\n \"--session-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pages --session-id s1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"page-close\",\n \"description\": \"Close a named page\",\n \"usage\": \"npx opendevbrowser page-close --session-id <id> --name <page>\",\n \"flags\": [\n \"--session-id\",\n \"--name\"\n ],\n \"examples\": [\n \"npx opendevbrowser page-close --session-id s1 --name settings --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"dom-html\",\n \"description\": \"Capture HTML for a ref\",\n \"usage\": \"npx opendevbrowser dom-html --session-id <id> [--ref <ref>] [--max-chars <n>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--max-chars\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-html --session-id s1 --ref r12 --max-chars 2000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-text\",\n \"description\": \"Capture text for a ref\",\n \"usage\": \"npx opendevbrowser dom-text --session-id <id> [--ref <ref>] [--max-chars <n>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--max-chars\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-text --session-id s1 --ref r12 --max-chars 500 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-attr\",\n \"description\": \"Capture attribute value for a ref\",\n \"usage\": \"npx opendevbrowser dom-attr --session-id <id> --ref <ref> --attr <name>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--attr\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-attr --session-id s1 --ref r12 --attr aria-label --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-value\",\n \"description\": \"Capture input value for a ref\",\n \"usage\": \"npx opendevbrowser dom-value --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-value --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-visible\",\n \"description\": \"Check visibility for a ref\",\n \"usage\": \"npx opendevbrowser dom-visible --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-visible --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-enabled\",\n \"description\": \"Check enabled state for a ref\",\n \"usage\": \"npx opendevbrowser dom-enabled --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-enabled --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-checked\",\n \"description\": \"Check checked state for a ref\",\n \"usage\": \"npx opendevbrowser dom-checked --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-checked --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"clone-page\",\n \"description\": \"Clone the active page to React\",\n \"usage\": \"npx opendevbrowser clone-page --session-id <id> [--target-id <id>] [--path <file>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--path\"\n ],\n \"examples\": [\n \"npx opendevbrowser clone-page --session-id s1 --target-id page-1 --path ./exports/page.tsx --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"clone-component\",\n \"description\": \"Clone a component by ref\",\n \"usage\": \"npx opendevbrowser clone-component --session-id <id> --ref <ref> [--target-id <id>] [--path <file>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--target-id\",\n \"--path\"\n ],\n \"examples\": [\n \"npx opendevbrowser clone-component --session-id s1 --ref r12 --path ./exports/component.tsx --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"session-inspector\",\n \"description\": \"Capture a session-first diagnostic summary with relay health and trace proof\",\n \"usage\": \"npx opendevbrowser session-inspector --session-id <id> [--include-urls] [--since-console-seq <n>] [--since-network-seq <n>] [--since-exception-seq <n>] [--max <n>] [--request-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--include-urls\",\n \"--since-console-seq\",\n \"--since-network-seq\",\n \"--since-exception-seq\",\n \"--max\",\n \"--request-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser session-inspector --session-id s1 --include-urls --max 20 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"session-inspector-plan\",\n \"description\": \"Inspect browser-scoped computer-use policy and safe suggested steps\",\n \"usage\": \"npx opendevbrowser session-inspector-plan --session-id <id> [--target-id <id>] [--challenge-automation-mode <mode>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--challenge-automation-mode\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser session-inspector-plan --session-id s1 --target-id page-1 --challenge-automation-mode browser_with_helper --output-format json\"\n ],\n \"notes\": [\n \"Inspect browser-scoped challenge automation before enabling browser_with_helper on a live rerun.\"\n ],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"session-inspector-audit\",\n \"description\": \"Capture a correlated audit bundle across desktop evidence, browser review, and policy state\",\n \"usage\": \"npx opendevbrowser session-inspector-audit --session-id <id> [--target-id <id>] [--reason <text>] [--max-chars <n>] [--cursor <cursor>] [--include-urls] [--since-console-seq <n>] [--since-network-seq <n>] [--since-exception-seq <n>] [--max <n>] [--request-id <id>] [--challenge-automation-mode <mode>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--reason\",\n \"--max-chars\",\n \"--cursor\",\n \"--include-urls\",\n \"--since-console-seq\",\n \"--since-network-seq\",\n \"--since-exception-seq\",\n \"--max\",\n \"--request-id\",\n \"--challenge-automation-mode\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser session-inspector-audit --session-id s1 --target-id page-1 --reason \\\"trace challenge state\\\" --include-urls --request-id req-session-audit-001 --challenge-automation-mode browser_with_helper --output-format json\"\n ],\n \"notes\": [\n \"Audit mode is the quickest correlated proof lane when you need desktop evidence plus browser trace state.\"\n ],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"perf\",\n \"description\": \"Capture performance metrics\",\n \"usage\": \"npx opendevbrowser perf --session-id <id>\",\n \"flags\": [\n \"--session-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser perf --session-id s1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"screenshot\",\n \"description\": \"Capture a screenshot\",\n \"usage\": \"npx opendevbrowser screenshot --session-id <id> [--target-id <id>] [--path <file>] [--ref <ref> | --full-page] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--path\",\n \"--ref\",\n \"--full-page\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser screenshot --session-id s1 --path ./artifacts/page.png --full-page --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"dialog\",\n \"description\": \"Inspect or handle a JavaScript dialog\",\n \"usage\": \"npx opendevbrowser dialog --session-id <id> [--target-id <id>] [--action <status|accept|dismiss>] [--prompt-text <text>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--action\",\n \"--prompt-text\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser dialog --session-id s1 --action status --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"console-poll\",\n \"description\": \"Poll console events\",\n \"usage\": \"npx opendevbrowser console-poll --session-id <id> [--since-seq <n>] [--max <n>]\",\n \"flags\": [\n \"--session-id\",\n \"--since-seq\",\n \"--max\"\n ],\n \"examples\": [\n \"npx opendevbrowser console-poll --session-id s1 --max 50 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"network-poll\",\n \"description\": \"Poll network events\",\n \"usage\": \"npx opendevbrowser network-poll --session-id <id> [--since-seq <n>] [--max <n>]\",\n \"flags\": [\n \"--session-id\",\n \"--since-seq\",\n \"--max\"\n ],\n \"examples\": [\n \"npx opendevbrowser network-poll --session-id s1 --max 50 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"debug-trace-snapshot\",\n \"description\": \"Capture page + console + network + exception diagnostics\",\n \"usage\": \"npx opendevbrowser debug-trace-snapshot --session-id <id> [--since-console-seq <n>] [--since-network-seq <n>] [--since-exception-seq <n>] [--max <n>] [--request-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--since-console-seq\",\n \"--since-network-seq\",\n \"--since-exception-seq\",\n \"--max\",\n \"--request-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser debug-trace-snapshot --session-id s1 --max 50 --request-id req-trace-001 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"annotate\",\n \"description\": \"Request interactive annotations via direct or relay transport\",\n \"usage\": \"npx opendevbrowser annotate --session-id <id> [--url <url>] [--transport <auto|direct|relay>] [--target-id <id>] [--tab-id <tab>] [--screenshot-mode <visible|full|none>] [--context <text>] [--debug] [--stored] [--include-screenshots <bool>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--url\",\n \"--transport\",\n \"--target-id\",\n \"--tab-id\",\n \"--screenshot-mode\",\n \"--context\",\n \"--debug\",\n \"--stored\",\n \"--include-screenshots\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser annotate --session-id s1 --transport auto --context \\\"review call to action spacing\\\" --include-screenshots true --output-format json\"\n ],\n \"notes\": [\n \"Use --stored when you want the last delivered annotation payload without starting a new capture.\"\n ],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"screencast-start\",\n \"description\": \"Start a browser replay screencast capture\",\n \"usage\": \"npx opendevbrowser screencast-start --session-id <id> [--target-id <id>] [--output-dir <path>] [--interval-ms <ms>] [--max-frames <n>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--output-dir\",\n \"--interval-ms\",\n \"--max-frames\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser screencast-start --session-id s1 --output-dir ./artifacts/replay --interval-ms 750 --max-frames 40 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"browser_replay\",\n \"groupTitle\": \"Browser Replay\",\n \"groupSummary\": \"Capture temporal replay artifacts through the public browser replay lane for a browser target.\"\n },\n {\n \"name\": \"screencast-stop\",\n \"description\": \"Stop a browser replay screencast capture\",\n \"usage\": \"npx opendevbrowser screencast-stop --session-id <id> --screencast-id <id> [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--screencast-id\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser screencast-stop --session-id s1 --screencast-id cast-1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"browser_replay\",\n \"groupTitle\": \"Browser Replay\",\n \"groupSummary\": \"Capture temporal replay artifacts through the public browser replay lane for a browser target.\"\n },\n {\n \"name\": \"desktop-status\",\n \"description\": \"Inspect public read-only desktop observation availability\",\n \"usage\": \"npx opendevbrowser desktop-status [--timeout-ms <ms>]\",\n \"flags\": [\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-status --timeout-ms 5000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-windows\",\n \"description\": \"List windows exposed by the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-windows [--reason <text>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--reason\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-windows --reason \\\"inventory browser-adjacent windows\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-active-window\",\n \"description\": \"Inspect the active window through the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-active-window [--reason <text>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--reason\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-active-window --reason \\\"capture active browser context\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-capture-desktop\",\n \"description\": \"Capture the current desktop surface through the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-capture-desktop --reason <text> [--timeout-ms <ms>]\",\n \"flags\": [\n \"--reason\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-capture-desktop --reason \\\"capture login checkpoint state\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-capture-window\",\n \"description\": \"Capture a specific window through the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-capture-window --window-id <id> --reason <text> [--timeout-ms <ms>]\",\n \"flags\": [\n \"--window-id\",\n \"--reason\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-capture-window --window-id 101 --reason \\\"capture browser window\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-accessibility-snapshot\",\n \"description\": \"Capture desktop accessibility state through the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-accessibility-snapshot --reason <text> [--window-id <id>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--reason\",\n \"--window-id\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-accessibility-snapshot --reason \\\"inspect current browser-adjacent labels\\\" --window-id 101 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"rpc\",\n \"description\": \"Execute an internal daemon RPC command (power-user)\",\n \"usage\": \"npx opendevbrowser rpc --unsafe-internal --name <daemon.command> [--params <json> | --params-file <path>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--unsafe-internal\",\n \"--name\",\n \"--params\",\n \"--params-file\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser rpc --unsafe-internal --name browser.status --params-file ./rpc-params.json --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"power\",\n \"groupTitle\": \"Power\",\n \"groupSummary\": \"Unsafe internal daemon passthrough.\"\n }\n ],\n \"flags\": [\n {\n \"name\": \"--global\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--local\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--update\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--uninstall\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--help\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--version\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--with-config\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--no-prompt\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--no-interactive\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--quiet\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--output-format\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--full\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--port\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--token\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--stop\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--script\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--headless\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--profile\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--persist-profile\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--chrome-path\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--start-url\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--flag\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--session-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--close-browser\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--ws-endpoint\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--host\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--cdp-port\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--url\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--wait-until\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--timeout-ms\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--ref\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--state\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--until\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--max-chars\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cursor\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--text\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--clear\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--submit\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--values\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--files\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--dy\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--key\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--attr\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--x\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--y\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--from-x\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--from-y\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--to-x\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--to-y\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--steps\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--button\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--click-count\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--name\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--target-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--window-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--tab-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-urls\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--path\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--screencast-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--reason\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--full-page\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--action\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--prompt-text\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--since-seq\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--max\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--interval-ms\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--max-frames\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--since-console-seq\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--since-network-seq\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--since-exception-seq\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--request-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cookies\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cookies-file\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--strict\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--expression\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--default-provider\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-catalog\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--command\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--execute\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--params\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--params-file\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--unsafe-internal\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--daemon\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--transport\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--no-extension\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--extension-only\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--extension-legacy\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--wait-for-extension\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--wait-timeout-ms\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--skills-global\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--skills-local\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--no-skills\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--screenshot-mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--debug\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--context\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--stored\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--topic\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--days\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--from\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--to\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--source-selection\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--sources\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-engagement\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--limit-per-source\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--query\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--providers\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--budget\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--region\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--browser-mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--sort\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--brief\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--capture-mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-prototype-guidance\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--product-url\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--product-name\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--provider-hint\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-screenshots\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-all-images\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-copy\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--use-cookies\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--challenge-automation-mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cookie-policy-override\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cookie-policy\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--output-dir\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--ttl-hours\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--expired-only\",\n \"kind\": \"boolean\"\n }\n ],\n \"equalsFlags\": [\n \"--output-format\",\n \"--transport\",\n \"--session-id\",\n \"--url\",\n \"--screenshot-mode\",\n \"--context\",\n \"--timeout-ms\",\n \"--since-seq\",\n \"--since-console-seq\",\n \"--since-network-seq\",\n \"--since-exception-seq\",\n \"--max\",\n \"--dy\",\n \"--target-id\",\n \"--window-id\",\n \"--tab-id\",\n \"--name\",\n \"--cookies\",\n \"--cookies-file\",\n \"--persist-profile\",\n \"--expression\",\n \"--default-provider\",\n \"--command\",\n \"--request-id\",\n \"--strict\",\n \"--params\",\n \"--params-file\",\n \"--topic\",\n \"--days\",\n \"--from\",\n \"--to\",\n \"--source-selection\",\n \"--sources\",\n \"--mode\",\n \"--ref\",\n \"--path\",\n \"--screencast-id\",\n \"--reason\",\n \"--interval-ms\",\n \"--max-frames\",\n \"--max-chars\",\n \"--cursor\",\n \"--files\",\n \"--action\",\n \"--prompt-text\",\n \"--limit-per-source\",\n \"--query\",\n \"--providers\",\n \"--budget\",\n \"--region\",\n \"--sort\",\n \"--brief\",\n \"--capture-mode\",\n \"--product-url\",\n \"--product-name\",\n \"--provider-hint\",\n \"--include-prototype-guidance\",\n \"--x\",\n \"--y\",\n \"--from-x\",\n \"--from-y\",\n \"--to-x\",\n \"--to-y\",\n \"--steps\",\n \"--button\",\n \"--click-count\",\n \"--include-screenshots\",\n \"--include-all-images\",\n \"--include-copy\",\n \"--use-cookies\",\n \"--browser-mode\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\",\n \"--output-dir\",\n \"--ttl-hours\"\n ]\n },\n \"tools\": {\n \"entries\": [\n {\n \"name\": \"opendevbrowser_launch\",\n \"description\": \"Launch a managed browser session.\",\n \"cliEquivalent\": \"launch\",\n \"example\": \"npx opendevbrowser launch --no-extension --headless --start-url https://example.com --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_connect\",\n \"description\": \"Connect to an existing browser session.\",\n \"cliEquivalent\": \"connect\",\n \"example\": \"npx opendevbrowser connect --host 127.0.0.1 --cdp-port 9222 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_disconnect\",\n \"description\": \"Disconnect a managed or connected session.\",\n \"cliEquivalent\": \"disconnect\",\n \"example\": \"npx opendevbrowser disconnect --session-id s1 --close-browser --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_status\",\n \"description\": \"Inspect session and relay status.\",\n \"cliEquivalent\": \"status\",\n \"example\": \"npx opendevbrowser status --daemon --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_status_capabilities\",\n \"description\": \"Inspect runtime capability discovery for the host and an optional session.\",\n \"cliEquivalent\": \"status-capabilities\",\n \"example\": \"npx opendevbrowser status-capabilities --session-id s1 --target-id page-1 --challenge-automation-mode browser_with_helper --timeout-ms 30000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_session_inspector\",\n \"description\": \"Capture a session-first diagnostic bundle with relay health, trace proof, and a suggested next action.\",\n \"cliEquivalent\": \"session-inspector\",\n \"example\": \"npx opendevbrowser session-inspector --session-id s1 --include-urls --max 20 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_session_inspector_plan\",\n \"description\": \"Inspect browser-scoped computer-use policy, eligibility, and safe suggested steps.\",\n \"cliEquivalent\": \"session-inspector-plan\",\n \"example\": \"npx opendevbrowser session-inspector-plan --session-id s1 --target-id page-1 --challenge-automation-mode browser_with_helper --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_session_inspector_audit\",\n \"description\": \"Capture a correlated audit bundle across desktop evidence, browser review, and policy state.\",\n \"cliEquivalent\": \"session-inspector-audit\",\n \"example\": \"npx opendevbrowser session-inspector-audit --session-id s1 --target-id page-1 --reason \\\"trace challenge state\\\" --include-urls --request-id req-session-audit-001 --challenge-automation-mode browser_with_helper --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_targets_list\",\n \"description\": \"List available page targets/tabs.\",\n \"cliEquivalent\": \"targets-list\",\n \"example\": \"npx opendevbrowser targets-list --session-id s1 --include-urls --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_target_use\",\n \"description\": \"Switch the active target by id.\",\n \"cliEquivalent\": \"target-use\",\n \"example\": \"npx opendevbrowser target-use --session-id s1 --target-id page-2 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_target_new\",\n \"description\": \"Create a new target or tab.\",\n \"cliEquivalent\": \"target-new\",\n \"example\": \"npx opendevbrowser target-new --session-id s1 --url https://example.com/docs --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_target_close\",\n \"description\": \"Close a target or tab by id.\",\n \"cliEquivalent\": \"target-close\",\n \"example\": \"npx opendevbrowser target-close --session-id s1 --target-id page-2 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_page\",\n \"description\": \"Open or focus a named page.\",\n \"cliEquivalent\": \"page\",\n \"example\": \"npx opendevbrowser page --session-id s1 --name settings --url https://example.com/settings --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_list\",\n \"description\": \"List named pages in the session.\",\n \"cliEquivalent\": \"pages\",\n \"example\": \"npx opendevbrowser pages --session-id s1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_close\",\n \"description\": \"Close a named page.\",\n \"cliEquivalent\": \"page-close\",\n \"example\": \"npx opendevbrowser page-close --session-id s1 --name settings --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_goto\",\n \"description\": \"Navigate to a URL.\",\n \"cliEquivalent\": \"goto\",\n \"example\": \"npx opendevbrowser goto --session-id s1 --url https://example.com --wait-until networkidle --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_wait\",\n \"description\": \"Wait for load, ref, or state conditions.\",\n \"cliEquivalent\": \"wait\",\n \"example\": \"npx opendevbrowser wait --session-id s1 --state networkidle --timeout-ms 30000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_snapshot\",\n \"description\": \"Capture AX-tree refs for actions.\",\n \"cliEquivalent\": \"snapshot\",\n \"example\": \"npx opendevbrowser snapshot --session-id s1 --mode actionables --max-chars 4000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_review\",\n \"description\": \"Capture a first-class review payload with status and actionables.\",\n \"cliEquivalent\": \"review\",\n \"example\": \"npx opendevbrowser review --session-id s1 --target-id page-1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_review_desktop\",\n \"description\": \"Capture desktop-assisted browser review with read-only desktop evidence and browser-owned verification.\",\n \"cliEquivalent\": \"review-desktop\",\n \"example\": \"npx opendevbrowser review-desktop --session-id s1 --reason \\\"trace challenge state\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_click\",\n \"description\": \"Click an element by ref.\",\n \"cliEquivalent\": \"click\",\n \"example\": \"npx opendevbrowser click --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_hover\",\n \"description\": \"Hover an element by ref.\",\n \"cliEquivalent\": \"hover\",\n \"example\": \"npx opendevbrowser hover --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_press\",\n \"description\": \"Send a keyboard key.\",\n \"cliEquivalent\": \"press\",\n \"example\": \"npx opendevbrowser press --session-id s1 --key Enter --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_check\",\n \"description\": \"Check a checkbox or radio by ref.\",\n \"cliEquivalent\": \"check\",\n \"example\": \"npx opendevbrowser check --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_uncheck\",\n \"description\": \"Uncheck a checkbox or radio by ref.\",\n \"cliEquivalent\": \"uncheck\",\n \"example\": \"npx opendevbrowser uncheck --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_type\",\n \"description\": \"Type text into an input by ref.\",\n \"cliEquivalent\": \"type\",\n \"example\": \"npx opendevbrowser type --session-id s1 --ref r12 --text \\\"agent@example.com\\\" --clear --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_select\",\n \"description\": \"Set select values by ref.\",\n \"cliEquivalent\": \"select\",\n \"example\": \"npx opendevbrowser select --session-id s1 --ref r12 --values us,ca --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_scroll\",\n \"description\": \"Scroll a page or element.\",\n \"cliEquivalent\": \"scroll\",\n \"example\": \"npx opendevbrowser scroll --session-id s1 --dy 1000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_scroll_into_view\",\n \"description\": \"Scroll a target element into view.\",\n \"cliEquivalent\": \"scroll-into-view\",\n \"example\": \"npx opendevbrowser scroll-into-view --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_upload\",\n \"description\": \"Upload files to a file input or chooser by ref.\",\n \"cliEquivalent\": \"upload\",\n \"example\": \"npx opendevbrowser upload --session-id s1 --ref r12 --files ./draft.pdf,./hero.png --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_pointer_move\",\n \"description\": \"Move the pointer to viewport coordinates.\",\n \"cliEquivalent\": \"pointer-move\",\n \"example\": \"npx opendevbrowser pointer-move --session-id s1 --x 320 --y 240 --steps 12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_pointer_down\",\n \"description\": \"Press a mouse button at viewport coordinates.\",\n \"cliEquivalent\": \"pointer-down\",\n \"example\": \"npx opendevbrowser pointer-down --session-id s1 --x 320 --y 240 --button left --click-count 1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_pointer_up\",\n \"description\": \"Release a mouse button at viewport coordinates.\",\n \"cliEquivalent\": \"pointer-up\",\n \"example\": \"npx opendevbrowser pointer-up --session-id s1 --x 320 --y 240 --button left --click-count 1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_pointer_drag\",\n \"description\": \"Drag the pointer between viewport coordinates.\",\n \"cliEquivalent\": \"pointer-drag\",\n \"example\": \"npx opendevbrowser pointer-drag --session-id s1 --from-x 320 --from-y 240 --to-x 640 --to-y 240 --steps 18 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_dom_get_html\",\n \"description\": \"Get HTML for a page or ref.\",\n \"cliEquivalent\": \"dom-html\",\n \"example\": \"npx opendevbrowser dom-html --session-id s1 --ref r12 --max-chars 2000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_dom_get_text\",\n \"description\": \"Get text for a page or ref.\",\n \"cliEquivalent\": \"dom-text\",\n \"example\": \"npx opendevbrowser dom-text --session-id s1 --ref r12 --max-chars 500 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_get_attr\",\n \"description\": \"Read a DOM attribute by ref.\",\n \"cliEquivalent\": \"dom-attr\",\n \"example\": \"npx opendevbrowser dom-attr --session-id s1 --ref r12 --attr aria-label --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_get_value\",\n \"description\": \"Read a form or control value by ref.\",\n \"cliEquivalent\": \"dom-value\",\n \"example\": \"npx opendevbrowser dom-value --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_is_visible\",\n \"description\": \"Check ref visibility.\",\n \"cliEquivalent\": \"dom-visible\",\n \"example\": \"npx opendevbrowser dom-visible --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_is_enabled\",\n \"description\": \"Check ref enabled state.\",\n \"cliEquivalent\": \"dom-enabled\",\n \"example\": \"npx opendevbrowser dom-enabled --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_is_checked\",\n \"description\": \"Check ref checked state.\",\n \"cliEquivalent\": \"dom-checked\",\n \"example\": \"npx opendevbrowser dom-checked --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_run\",\n \"description\": \"Execute multi-action automation scripts.\",\n \"cliEquivalent\": \"run\",\n \"example\": \"npx opendevbrowser run --script ./workflow.json --headless --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_prompting_guide\",\n \"description\": \"Start here for first-contact OpenDevBrowser guidance and the bundled best-practices quick start.\",\n \"example\": \"{\\\"topic\\\":\\\"quick start\\\"}\",\n \"notes\": [\n \"Tool-only helper. Use it before low-level browser commands when an agent needs the canonical quick start.\"\n ]\n },\n {\n \"name\": \"opendevbrowser_console_poll\",\n \"description\": \"Poll redacted console events.\",\n \"cliEquivalent\": \"console-poll\",\n \"example\": \"npx opendevbrowser console-poll --session-id s1 --max 50 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_network_poll\",\n \"description\": \"Poll redacted network events.\",\n \"cliEquivalent\": \"network-poll\",\n \"example\": \"npx opendevbrowser network-poll --session-id s1 --max 50 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_debug_trace_snapshot\",\n \"description\": \"Capture page, console, and network diagnostics.\",\n \"cliEquivalent\": \"debug-trace-snapshot\",\n \"example\": \"npx opendevbrowser debug-trace-snapshot --session-id s1 --max 50 --request-id req-trace-001 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_cookie_import\",\n \"description\": \"Import validated cookies into a session.\",\n \"cliEquivalent\": \"cookie-import\",\n \"example\": \"npx opendevbrowser cookie-import --session-id s1 --cookies-file ./cookies.json --strict true --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_cookie_list\",\n \"description\": \"List cookies in a session with optional URL filters.\",\n \"cliEquivalent\": \"cookie-list\",\n \"example\": \"npx opendevbrowser cookie-list --session-id s1 --url https://example.com --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_macro_resolve\",\n \"description\": \"Resolve or execute provider macro expressions.\",\n \"cliEquivalent\": \"macro-resolve\",\n \"example\": \"npx opendevbrowser macro-resolve --expression '@community.search(\\\"browser automation failures\\\", 4)' --execute --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_research_run\",\n \"description\": \"Run the research workflow directly.\",\n \"cliEquivalent\": \"research\",\n \"example\": \"npx opendevbrowser research run --topic \\\"Chrome extension debugging workflows\\\" --days 30 --sources web,community --browser-mode managed --mode json --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_shopping_run\",\n \"description\": \"Run the shopping workflow directly.\",\n \"cliEquivalent\": \"shopping\",\n \"example\": \"npx opendevbrowser shopping run --query \\\"wireless ergonomic mouse\\\" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --mode json --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_product_video_run\",\n \"description\": \"Run the product-video asset workflow directly.\",\n \"cliEquivalent\": \"product-video\",\n \"example\": \"npx opendevbrowser product-video run --product-url \\\"https://example.com/p/1\\\" --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --include-screenshots --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_inspiredesign_run\",\n \"description\": \"Run the inspiredesign workflow directly.\",\n \"cliEquivalent\": \"inspiredesign\",\n \"example\": \"npx opendevbrowser inspiredesign run --brief \\\"Extract a reusable dashboard design contract from live references\\\" --url https://linear.app --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --include-prototype-guidance --output-dir /tmp/inspiredesign --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_canvas\",\n \"description\": \"Execute a typed design-canvas command surface call.\",\n \"cliEquivalent\": \"canvas\",\n \"example\": \"npx opendevbrowser canvas --command canvas.session.open --params '{\\\"label\\\":\\\"design review\\\"}' --timeout-ms 120000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_clone_page\",\n \"description\": \"Export the active page into React code.\",\n \"cliEquivalent\": \"clone-page\",\n \"example\": \"npx opendevbrowser clone-page --session-id s1 --target-id page-1 --path ./exports/page.tsx --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_clone_component\",\n \"description\": \"Export a component by ref into React code.\",\n \"cliEquivalent\": \"clone-component\",\n \"example\": \"npx opendevbrowser clone-component --session-id s1 --ref r12 --path ./exports/component.tsx --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_perf\",\n \"description\": \"Collect browser performance metrics.\",\n \"cliEquivalent\": \"perf\",\n \"example\": \"npx opendevbrowser perf --session-id s1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_screenshot\",\n \"description\": \"Capture a page screenshot.\",\n \"cliEquivalent\": \"screenshot\",\n \"example\": \"npx opendevbrowser screenshot --session-id s1 --path ./artifacts/page.png --full-page --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_screencast_start\",\n \"description\": \"Start a browser replay screencast capture.\",\n \"cliEquivalent\": \"screencast-start\",\n \"example\": \"npx opendevbrowser screencast-start --session-id s1 --output-dir ./artifacts/replay --interval-ms 750 --max-frames 40 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_screencast_stop\",\n \"description\": \"Stop a browser replay screencast capture.\",\n \"cliEquivalent\": \"screencast-stop\",\n \"example\": \"npx opendevbrowser screencast-stop --session-id s1 --screencast-id cast-1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_dialog\",\n \"description\": \"Inspect or handle a JavaScript dialog.\",\n \"cliEquivalent\": \"dialog\",\n \"example\": \"npx opendevbrowser dialog --session-id s1 --action status --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_status\",\n \"description\": \"Inspect public read-only desktop observation availability.\",\n \"cliEquivalent\": \"desktop-status\",\n \"example\": \"npx opendevbrowser desktop-status --timeout-ms 5000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_windows\",\n \"description\": \"List windows exposed by the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-windows\",\n \"example\": \"npx opendevbrowser desktop-windows --reason \\\"inventory browser-adjacent windows\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_active_window\",\n \"description\": \"Inspect the active window through the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-active-window\",\n \"example\": \"npx opendevbrowser desktop-active-window --reason \\\"capture active browser context\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_capture_desktop\",\n \"description\": \"Capture the current desktop surface through the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-capture-desktop\",\n \"example\": \"npx opendevbrowser desktop-capture-desktop --reason \\\"capture login checkpoint state\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_capture_window\",\n \"description\": \"Capture a specific window through the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-capture-window\",\n \"example\": \"npx opendevbrowser desktop-capture-window --window-id 101 --reason \\\"capture browser window\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_accessibility_snapshot\",\n \"description\": \"Capture desktop accessibility state through the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-accessibility-snapshot\",\n \"example\": \"npx opendevbrowser desktop-accessibility-snapshot --reason \\\"inspect current browser-adjacent labels\\\" --window-id 101 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_annotate\",\n \"description\": \"Capture interactive annotations.\",\n \"cliEquivalent\": \"annotate\",\n \"example\": \"npx opendevbrowser annotate --session-id s1 --transport auto --context \\\"review call to action spacing\\\" --include-screenshots true --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_skill_list\",\n \"description\": \"List bundled and discovered skill packs before choosing a local onboarding or workflow lane.\",\n \"example\": \"{}\",\n \"notes\": [\n \"Tool-only helper. Use it to inspect local workflow lanes before loading a pack.\"\n ]\n },\n {\n \"name\": \"opendevbrowser_skill_load\",\n \"description\": \"Load a specific skill pack locally, especially the bundled best-practices quick start.\",\n \"example\": \"{\\\"name\\\":\\\"opendevbrowser-best-practices\\\",\\\"topic\\\":\\\"quick start\\\"}\",\n \"notes\": [\n \"Tool-only helper. Use it to load opendevbrowser-best-practices or design-agent guidance directly into the current agent context.\"\n ]\n }\n ],\n \"cliToolPairs\": [\n {\n \"cliCommand\": \"launch\",\n \"toolName\": \"opendevbrowser_launch\"\n },\n {\n \"cliCommand\": \"connect\",\n \"toolName\": \"opendevbrowser_connect\"\n },\n {\n \"cliCommand\": \"disconnect\",\n \"toolName\": \"opendevbrowser_disconnect\"\n },\n {\n \"cliCommand\": \"status\",\n \"toolName\": \"opendevbrowser_status\"\n },\n {\n \"cliCommand\": \"status-capabilities\",\n \"toolName\": \"opendevbrowser_status_capabilities\"\n },\n {\n \"cliCommand\": \"session-inspector\",\n \"toolName\": \"opendevbrowser_session_inspector\"\n },\n {\n \"cliCommand\": \"session-inspector-plan\",\n \"toolName\": \"opendevbrowser_session_inspector_plan\"\n },\n {\n \"cliCommand\": \"session-inspector-audit\",\n \"toolName\": \"opendevbrowser_session_inspector_audit\"\n },\n {\n \"cliCommand\": \"targets-list\",\n \"toolName\": \"opendevbrowser_targets_list\"\n },\n {\n \"cliCommand\": \"target-use\",\n \"toolName\": \"opendevbrowser_target_use\"\n },\n {\n \"cliCommand\": \"target-new\",\n \"toolName\": \"opendevbrowser_target_new\"\n },\n {\n \"cliCommand\": \"target-close\",\n \"toolName\": \"opendevbrowser_target_close\"\n },\n {\n \"cliCommand\": \"page\",\n \"toolName\": \"opendevbrowser_page\"\n },\n {\n \"cliCommand\": \"pages\",\n \"toolName\": \"opendevbrowser_list\"\n },\n {\n \"cliCommand\": \"page-close\",\n \"toolName\": \"opendevbrowser_close\"\n },\n {\n \"cliCommand\": \"goto\",\n \"toolName\": \"opendevbrowser_goto\"\n },\n {\n \"cliCommand\": \"wait\",\n \"toolName\": \"opendevbrowser_wait\"\n },\n {\n \"cliCommand\": \"snapshot\",\n \"toolName\": \"opendevbrowser_snapshot\"\n },\n {\n \"cliCommand\": \"review\",\n \"toolName\": \"opendevbrowser_review\"\n },\n {\n \"cliCommand\": \"review-desktop\",\n \"toolName\": \"opendevbrowser_review_desktop\"\n },\n {\n \"cliCommand\": \"click\",\n \"toolName\": \"opendevbrowser_click\"\n },\n {\n \"cliCommand\": \"hover\",\n \"toolName\": \"opendevbrowser_hover\"\n },\n {\n \"cliCommand\": \"press\",\n \"toolName\": \"opendevbrowser_press\"\n },\n {\n \"cliCommand\": \"check\",\n \"toolName\": \"opendevbrowser_check\"\n },\n {\n \"cliCommand\": \"uncheck\",\n \"toolName\": \"opendevbrowser_uncheck\"\n },\n {\n \"cliCommand\": \"type\",\n \"toolName\": \"opendevbrowser_type\"\n },\n {\n \"cliCommand\": \"select\",\n \"toolName\": \"opendevbrowser_select\"\n },\n {\n \"cliCommand\": \"scroll\",\n \"toolName\": \"opendevbrowser_scroll\"\n },\n {\n \"cliCommand\": \"scroll-into-view\",\n \"toolName\": \"opendevbrowser_scroll_into_view\"\n },\n {\n \"cliCommand\": \"upload\",\n \"toolName\": \"opendevbrowser_upload\"\n },\n {\n \"cliCommand\": \"pointer-move\",\n \"toolName\": \"opendevbrowser_pointer_move\"\n },\n {\n \"cliCommand\": \"pointer-down\",\n \"toolName\": \"opendevbrowser_pointer_down\"\n },\n {\n \"cliCommand\": \"pointer-up\",\n \"toolName\": \"opendevbrowser_pointer_up\"\n },\n {\n \"cliCommand\": \"pointer-drag\",\n \"toolName\": \"opendevbrowser_pointer_drag\"\n },\n {\n \"cliCommand\": \"dom-html\",\n \"toolName\": \"opendevbrowser_dom_get_html\"\n },\n {\n \"cliCommand\": \"dom-text\",\n \"toolName\": \"opendevbrowser_dom_get_text\"\n },\n {\n \"cliCommand\": \"dom-attr\",\n \"toolName\": \"opendevbrowser_get_attr\"\n },\n {\n \"cliCommand\": \"dom-value\",\n \"toolName\": \"opendevbrowser_get_value\"\n },\n {\n \"cliCommand\": \"dom-visible\",\n \"toolName\": \"opendevbrowser_is_visible\"\n },\n {\n \"cliCommand\": \"dom-enabled\",\n \"toolName\": \"opendevbrowser_is_enabled\"\n },\n {\n \"cliCommand\": \"dom-checked\",\n \"toolName\": \"opendevbrowser_is_checked\"\n },\n {\n \"cliCommand\": \"run\",\n \"toolName\": \"opendevbrowser_run\"\n },\n {\n \"cliCommand\": \"console-poll\",\n \"toolName\": \"opendevbrowser_console_poll\"\n },\n {\n \"cliCommand\": \"network-poll\",\n \"toolName\": \"opendevbrowser_network_poll\"\n },\n {\n \"cliCommand\": \"debug-trace-snapshot\",\n \"toolName\": \"opendevbrowser_debug_trace_snapshot\"\n },\n {\n \"cliCommand\": \"cookie-import\",\n \"toolName\": \"opendevbrowser_cookie_import\"\n },\n {\n \"cliCommand\": \"cookie-list\",\n \"toolName\": \"opendevbrowser_cookie_list\"\n },\n {\n \"cliCommand\": \"macro-resolve\",\n \"toolName\": \"opendevbrowser_macro_resolve\"\n },\n {\n \"cliCommand\": \"research\",\n \"toolName\": \"opendevbrowser_research_run\"\n },\n {\n \"cliCommand\": \"shopping\",\n \"toolName\": \"opendevbrowser_shopping_run\"\n },\n {\n \"cliCommand\": \"product-video\",\n \"toolName\": \"opendevbrowser_product_video_run\"\n },\n {\n \"cliCommand\": \"inspiredesign\",\n \"toolName\": \"opendevbrowser_inspiredesign_run\"\n },\n {\n \"cliCommand\": \"canvas\",\n \"toolName\": \"opendevbrowser_canvas\"\n },\n {\n \"cliCommand\": \"clone-page\",\n \"toolName\": \"opendevbrowser_clone_page\"\n },\n {\n \"cliCommand\": \"clone-component\",\n \"toolName\": \"opendevbrowser_clone_component\"\n },\n {\n \"cliCommand\": \"perf\",\n \"toolName\": \"opendevbrowser_perf\"\n },\n {\n \"cliCommand\": \"screenshot\",\n \"toolName\": \"opendevbrowser_screenshot\"\n },\n {\n \"cliCommand\": \"screencast-start\",\n \"toolName\": \"opendevbrowser_screencast_start\"\n },\n {\n \"cliCommand\": \"screencast-stop\",\n \"toolName\": \"opendevbrowser_screencast_stop\"\n },\n {\n \"cliCommand\": \"dialog\",\n \"toolName\": \"opendevbrowser_dialog\"\n },\n {\n \"cliCommand\": \"desktop-status\",\n \"toolName\": \"opendevbrowser_desktop_status\"\n },\n {\n \"cliCommand\": \"desktop-windows\",\n \"toolName\": \"opendevbrowser_desktop_windows\"\n },\n {\n \"cliCommand\": \"desktop-active-window\",\n \"toolName\": \"opendevbrowser_desktop_active_window\"\n },\n {\n \"cliCommand\": \"desktop-capture-desktop\",\n \"toolName\": \"opendevbrowser_desktop_capture_desktop\"\n },\n {\n \"cliCommand\": \"desktop-capture-window\",\n \"toolName\": \"opendevbrowser_desktop_capture_window\"\n },\n {\n \"cliCommand\": \"desktop-accessibility-snapshot\",\n \"toolName\": \"opendevbrowser_desktop_accessibility_snapshot\"\n },\n {\n \"cliCommand\": \"annotate\",\n \"toolName\": \"opendevbrowser_annotate\"\n }\n ]\n },\n \"counts\": {\n \"commandCount\": 77,\n \"toolCount\": 70,\n \"cliToolPairCount\": 67\n }\n} satisfies PublicSurfaceManifest;\n\nexport const VALID_FLAGS = PUBLIC_SURFACE_MANIFEST.cli.flags.map((flag) => flag.name) as PublicSurfaceFlagName[];\nexport const VALID_EQUALS_FLAGS = [...PUBLIC_SURFACE_MANIFEST.cli.equalsFlags] as PublicSurfaceFlagName[];\nexport const CLI_COMMANDS = PUBLIC_SURFACE_MANIFEST.cli.commands.map((command) => command.name) as PublicSurfaceCliCommandName[];\n\nexport const CLI_COMMAND_HELP_DETAILS = Object.fromEntries(\n PUBLIC_SURFACE_MANIFEST.cli.commands.map((command) => [\n command.name,\n {\n description: command.description,\n usage: command.usage,\n flags: [...command.flags],\n examples: [...command.examples],\n notes: [...command.notes]\n } satisfies CommandHelpDetail\n ] as const)\n) as unknown as Record<PublicSurfaceCliCommandName, CommandHelpDetail>;\n\nconst COMMANDS_BY_GROUP = Object.fromEntries(\n PUBLIC_SURFACE_MANIFEST.cli.groups.map((group) => [\n group.id,\n PUBLIC_SURFACE_MANIFEST.cli.commands\n .filter((command) => command.groupId === group.id)\n .map((command) => ({\n name: command.name,\n description: command.description,\n usage: command.usage,\n flags: [...command.flags],\n examples: [...command.examples],\n notes: [...command.notes]\n }))\n ] as const)\n) as Record<string, PublicSurfaceCliCommandGroupDefinition['commands']>;\n\nexport const PUBLIC_CLI_COMMAND_GROUPS = PUBLIC_SURFACE_MANIFEST.cli.groups.map((group) => ({\n id: group.id,\n title: group.title,\n summary: group.summary,\n commands: COMMANDS_BY_GROUP[group.id]\n})) as readonly PublicSurfaceCliCommandGroupDefinition[];\n\nexport const TOOL_SURFACE_ENTRIES = PUBLIC_SURFACE_MANIFEST.tools.entries.map((entry) => ({\n name: entry.name,\n description: entry.description,\n ...(entry.cliEquivalent ? { cliEquivalent: entry.cliEquivalent } : {}),\n example: entry.example,\n ...(entry.notes ? { notes: [...entry.notes] } : {})\n})) as readonly ToolSurfaceEntry[];\n"],"mappings":"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ACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,M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c;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAA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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAgRD,wBAAgB,SAAS,IAAI,YAAY,CAoDxC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
detectOutputFormat,
|
|
11
11
|
parseArgs
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-2I3YS3DV.js";
|
|
13
|
+
import "../chunk-6B5WAQV7.js";
|
|
14
14
|
import {
|
|
15
15
|
EXIT_EXECUTION,
|
|
16
16
|
EXIT_USAGE,
|
|
@@ -36,7 +36,7 @@ function getCommand(name) {
|
|
|
36
36
|
// package.json
|
|
37
37
|
var package_default = {
|
|
38
38
|
name: "opendevbrowser",
|
|
39
|
-
version: "0.0.
|
|
39
|
+
version: "0.0.31",
|
|
40
40
|
description: "Browser automation runtime with snapshot-refs-actions, browser replay screencasts, public read-only desktop observation, and browser-scoped computer-use orchestration",
|
|
41
41
|
type: "module",
|
|
42
42
|
main: "dist/index.js",
|
|
@@ -268,7 +268,7 @@ async function main() {
|
|
|
268
268
|
await flushOutputAndExit(exitCode);
|
|
269
269
|
};
|
|
270
270
|
if (args.command === "help") {
|
|
271
|
-
const { getHelpText } = await import("../help-
|
|
271
|
+
const { getHelpText } = await import("../help-U7KBQME6.js");
|
|
272
272
|
await finishCommand({ success: true, message: getHelpText() });
|
|
273
273
|
return;
|
|
274
274
|
}
|
|
@@ -280,7 +280,7 @@ async function main() {
|
|
|
280
280
|
name: "help",
|
|
281
281
|
description: "Show help",
|
|
282
282
|
run: async () => {
|
|
283
|
-
const { getHelpText } = await import("../help-
|
|
283
|
+
const { getHelpText } = await import("../help-U7KBQME6.js");
|
|
284
284
|
return { success: true, message: getHelpText() };
|
|
285
285
|
}
|
|
286
286
|
});
|
|
@@ -291,7 +291,7 @@ async function main() {
|
|
|
291
291
|
});
|
|
292
292
|
registerCommand({
|
|
293
293
|
name: "update",
|
|
294
|
-
description: "Repair
|
|
294
|
+
description: "Repair OpenCode package caches and refresh managed skill packs",
|
|
295
295
|
run: async () => {
|
|
296
296
|
const [
|
|
297
297
|
{ runUpdate },
|
|
@@ -305,7 +305,7 @@ async function main() {
|
|
|
305
305
|
},
|
|
306
306
|
{ buildUpdateCommandResult }
|
|
307
307
|
] = await Promise.all([
|
|
308
|
-
import("../update-
|
|
308
|
+
import("../update-FZGSXB74.js"),
|
|
309
309
|
import("../update-skill-modes-BVX7IVMW.js"),
|
|
310
310
|
import("../uninstall-KYKGJAX7.js"),
|
|
311
311
|
import("../skills-NSXDX6YM.js"),
|