opendevbrowser 0.0.15 → 0.0.17
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/LICENSE +1 -1
- package/README.md +262 -43
- package/dist/annotate/direct-annotator.d.ts +22 -0
- package/dist/annotate/direct-annotator.d.ts.map +1 -0
- package/dist/annotate/output.d.ts +10 -0
- package/dist/annotate/output.d.ts.map +1 -0
- package/dist/browser/annotation-manager.d.ts +33 -0
- package/dist/browser/annotation-manager.d.ts.map +1 -0
- package/dist/browser/browser-manager.d.ts +402 -0
- package/dist/browser/browser-manager.d.ts.map +1 -0
- package/dist/browser/canvas-client.d.ts +53 -0
- package/dist/browser/canvas-client.d.ts.map +1 -0
- package/dist/browser/canvas-code-sync-manager.d.ts +79 -0
- package/dist/browser/canvas-code-sync-manager.d.ts.map +1 -0
- package/dist/browser/canvas-manager.d.ts +94 -0
- package/dist/browser/canvas-manager.d.ts.map +1 -0
- package/dist/browser/canvas-runtime-preview-bridge.d.ts +20 -0
- package/dist/browser/canvas-runtime-preview-bridge.d.ts.map +1 -0
- package/dist/browser/canvas-session-sync-manager.d.ts +21 -0
- package/dist/browser/canvas-session-sync-manager.d.ts.map +1 -0
- package/dist/browser/fingerprint/adapters.d.ts +26 -0
- package/dist/browser/fingerprint/adapters.d.ts.map +1 -0
- package/dist/browser/fingerprint/canary.d.ts +25 -0
- package/dist/browser/fingerprint/canary.d.ts.map +1 -0
- package/dist/browser/fingerprint/profiles.d.ts +16 -0
- package/dist/browser/fingerprint/profiles.d.ts.map +1 -0
- package/dist/browser/fingerprint/tier1-coherence.d.ts +36 -0
- package/dist/browser/fingerprint/tier1-coherence.d.ts.map +1 -0
- package/dist/browser/fingerprint/tier2-runtime.d.ts +40 -0
- package/dist/browser/fingerprint/tier2-runtime.d.ts.map +1 -0
- package/dist/browser/fingerprint/tier3-adaptive.d.ts +30 -0
- package/dist/browser/fingerprint/tier3-adaptive.d.ts.map +1 -0
- package/dist/browser/manager-types.d.ts +15 -0
- package/dist/browser/manager-types.d.ts.map +1 -0
- package/dist/browser/ops-browser-manager.d.ts +141 -0
- package/dist/browser/ops-browser-manager.d.ts.map +1 -0
- package/dist/browser/ops-client.d.ts +56 -0
- package/dist/browser/ops-client.d.ts.map +1 -0
- package/dist/browser/parallelism-governor.d.ts +31 -0
- package/dist/browser/parallelism-governor.d.ts.map +1 -0
- package/dist/browser/script-runner.d.ts +23 -0
- package/dist/browser/script-runner.d.ts.map +1 -0
- package/dist/browser/session-store.d.ts +63 -0
- package/dist/browser/session-store.d.ts.map +1 -0
- package/dist/browser/target-manager.d.ts +36 -0
- package/dist/browser/target-manager.d.ts.map +1 -0
- package/dist/cache/chrome-locator.d.ts +2 -0
- package/dist/cache/chrome-locator.d.ts.map +1 -0
- package/dist/cache/downloader.d.ts +6 -0
- package/dist/cache/downloader.d.ts.map +1 -0
- package/dist/cache/paths.d.ts +9 -0
- package/dist/cache/paths.d.ts.map +1 -0
- package/dist/canvas/code-sync/apply-tsx.d.ts +23 -0
- package/dist/canvas/code-sync/apply-tsx.d.ts.map +1 -0
- package/dist/canvas/code-sync/graph.d.ts +5 -0
- package/dist/canvas/code-sync/graph.d.ts.map +1 -0
- package/dist/canvas/code-sync/hash.d.ts +3 -0
- package/dist/canvas/code-sync/hash.d.ts.map +1 -0
- package/dist/canvas/code-sync/import.d.ts +18 -0
- package/dist/canvas/code-sync/import.d.ts.map +1 -0
- package/dist/canvas/code-sync/manifest.d.ts +5 -0
- package/dist/canvas/code-sync/manifest.d.ts.map +1 -0
- package/dist/canvas/code-sync/tsx-adapter.d.ts +8 -0
- package/dist/canvas/code-sync/tsx-adapter.d.ts.map +1 -0
- package/dist/canvas/code-sync/types.d.ts +152 -0
- package/dist/canvas/code-sync/types.d.ts.map +1 -0
- package/dist/canvas/code-sync/write.d.ts +9 -0
- package/dist/canvas/code-sync/write.d.ts.map +1 -0
- package/dist/canvas/document-store.d.ts +81 -0
- package/dist/canvas/document-store.d.ts.map +1 -0
- package/dist/canvas/export.d.ts +12 -0
- package/dist/canvas/export.d.ts.map +1 -0
- package/dist/canvas/repo-store.d.ts +10 -0
- package/dist/canvas/repo-store.d.ts.map +1 -0
- package/dist/canvas/surface-palette.d.ts +15 -0
- package/dist/canvas/surface-palette.d.ts.map +1 -0
- package/dist/canvas/types.d.ts +255 -0
- package/dist/canvas/types.d.ts.map +1 -0
- package/dist/canvas-runtime-preview-bridge-HBEHXM4T.js +7 -0
- package/dist/canvas-runtime-preview-bridge-HBEHXM4T.js.map +1 -0
- package/dist/chunk-5J3IFL3X.js +16706 -0
- package/dist/chunk-5J3IFL3X.js.map +1 -0
- package/dist/chunk-D633UO34.js +8149 -0
- package/dist/chunk-D633UO34.js.map +1 -0
- package/dist/chunk-FUSXMW3G.js +169 -0
- package/dist/chunk-FUSXMW3G.js.map +1 -0
- package/dist/chunk-TBUCZX4A.js +34 -0
- package/dist/chunk-TBUCZX4A.js.map +1 -0
- package/dist/chunk-V7KUDHDG.js +276 -0
- package/dist/chunk-V7KUDHDG.js.map +1 -0
- package/dist/chunk-Y2KL55OG.js +59 -0
- package/dist/chunk-Y2KL55OG.js.map +1 -0
- package/dist/cli/args.d.ts +25 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/client.d.ts +2 -0
- package/dist/cli/client.d.ts.map +1 -0
- package/dist/cli/commands/annotate.d.ts +38 -0
- package/dist/cli/commands/annotate.d.ts.map +1 -0
- package/dist/cli/commands/artifacts.d.ts +24 -0
- package/dist/cli/commands/artifacts.d.ts.map +1 -0
- package/dist/cli/commands/canvas.d.ts +45 -0
- package/dist/cli/commands/canvas.d.ts.map +1 -0
- package/dist/cli/commands/daemon.d.ts +35 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -0
- package/dist/cli/commands/devtools/console-poll.d.ts +7 -0
- package/dist/cli/commands/devtools/console-poll.d.ts.map +1 -0
- package/dist/cli/commands/devtools/debug-trace-snapshot.d.ts +20 -0
- package/dist/cli/commands/devtools/debug-trace-snapshot.d.ts.map +1 -0
- package/dist/cli/commands/devtools/network-poll.d.ts +7 -0
- package/dist/cli/commands/devtools/network-poll.d.ts.map +1 -0
- package/dist/cli/commands/devtools/perf.d.ts +7 -0
- package/dist/cli/commands/devtools/perf.d.ts.map +1 -0
- package/dist/cli/commands/devtools/screenshot.d.ts +18 -0
- package/dist/cli/commands/devtools/screenshot.d.ts.map +1 -0
- package/dist/cli/commands/dom/attr.d.ts +7 -0
- package/dist/cli/commands/dom/attr.d.ts.map +1 -0
- package/dist/cli/commands/dom/checked.d.ts +7 -0
- package/dist/cli/commands/dom/checked.d.ts.map +1 -0
- package/dist/cli/commands/dom/enabled.d.ts +7 -0
- package/dist/cli/commands/dom/enabled.d.ts.map +1 -0
- package/dist/cli/commands/dom/html.d.ts +7 -0
- package/dist/cli/commands/dom/html.d.ts.map +1 -0
- package/dist/cli/commands/dom/text.d.ts +7 -0
- package/dist/cli/commands/dom/text.d.ts.map +1 -0
- package/dist/cli/commands/dom/value.d.ts +7 -0
- package/dist/cli/commands/dom/value.d.ts.map +1 -0
- package/dist/cli/commands/dom/visible.d.ts +7 -0
- package/dist/cli/commands/dom/visible.d.ts.map +1 -0
- package/dist/cli/commands/export/clone-component.d.ts +16 -0
- package/dist/cli/commands/export/clone-component.d.ts.map +1 -0
- package/dist/cli/commands/export/clone-page.d.ts +15 -0
- package/dist/cli/commands/export/clone-page.d.ts.map +1 -0
- package/dist/cli/commands/interact/check.d.ts +7 -0
- package/dist/cli/commands/interact/check.d.ts.map +1 -0
- package/dist/cli/commands/interact/click.d.ts +7 -0
- package/dist/cli/commands/interact/click.d.ts.map +1 -0
- package/dist/cli/commands/interact/hover.d.ts +7 -0
- package/dist/cli/commands/interact/hover.d.ts.map +1 -0
- package/dist/cli/commands/interact/press.d.ts +7 -0
- package/dist/cli/commands/interact/press.d.ts.map +1 -0
- package/dist/cli/commands/interact/scroll-into-view.d.ts +7 -0
- package/dist/cli/commands/interact/scroll-into-view.d.ts.map +1 -0
- package/dist/cli/commands/interact/scroll.d.ts +7 -0
- package/dist/cli/commands/interact/scroll.d.ts.map +1 -0
- package/dist/cli/commands/interact/select.d.ts +7 -0
- package/dist/cli/commands/interact/select.d.ts.map +1 -0
- package/dist/cli/commands/interact/type.d.ts +7 -0
- package/dist/cli/commands/interact/type.d.ts.map +1 -0
- package/dist/cli/commands/interact/uncheck.d.ts +7 -0
- package/dist/cli/commands/interact/uncheck.d.ts.map +1 -0
- package/dist/cli/commands/macro-resolve.d.ts +18 -0
- package/dist/cli/commands/macro-resolve.d.ts.map +1 -0
- package/dist/cli/commands/native.d.ts +93 -0
- package/dist/cli/commands/native.d.ts.map +1 -0
- package/dist/cli/commands/nav/goto.d.ts +7 -0
- package/dist/cli/commands/nav/goto.d.ts.map +1 -0
- package/dist/cli/commands/nav/snapshot.d.ts +7 -0
- package/dist/cli/commands/nav/snapshot.d.ts.map +1 -0
- package/dist/cli/commands/nav/wait.d.ts +7 -0
- package/dist/cli/commands/nav/wait.d.ts.map +1 -0
- package/dist/cli/commands/pages/close.d.ts +6 -0
- package/dist/cli/commands/pages/close.d.ts.map +1 -0
- package/dist/cli/commands/pages/list.d.ts +7 -0
- package/dist/cli/commands/pages/list.d.ts.map +1 -0
- package/dist/cli/commands/pages/open.d.ts +7 -0
- package/dist/cli/commands/pages/open.d.ts.map +1 -0
- package/dist/cli/commands/product-video.d.ts +25 -0
- package/dist/cli/commands/product-video.d.ts.map +1 -0
- package/dist/cli/commands/registry.d.ts +5 -0
- package/dist/cli/commands/registry.d.ts.map +1 -0
- package/dist/cli/commands/research.d.ts +27 -0
- package/dist/cli/commands/research.d.ts.map +1 -0
- package/dist/cli/commands/rpc.d.ts +28 -0
- package/dist/cli/commands/rpc.d.ts.map +1 -0
- package/dist/cli/commands/run.d.ts +17 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/serve.d.ts +64 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/session/connect.d.ts +9 -0
- package/dist/cli/commands/session/connect.d.ts.map +1 -0
- package/dist/cli/commands/session/cookie-import.d.ts +31 -0
- package/dist/cli/commands/session/cookie-import.d.ts.map +1 -0
- package/dist/cli/commands/session/cookie-list.d.ts +17 -0
- package/dist/cli/commands/session/cookie-list.d.ts.map +1 -0
- package/dist/cli/commands/session/disconnect.d.ts +6 -0
- package/dist/cli/commands/session/disconnect.d.ts.map +1 -0
- package/dist/cli/commands/session/launch.d.ts +29 -0
- package/dist/cli/commands/session/launch.d.ts.map +1 -0
- package/dist/cli/commands/session/status.d.ts +7 -0
- package/dist/cli/commands/session/status.d.ts.map +1 -0
- package/dist/cli/commands/shopping.d.ts +25 -0
- package/dist/cli/commands/shopping.d.ts.map +1 -0
- package/dist/cli/commands/status.d.ts +24 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/targets/close.d.ts +6 -0
- package/dist/cli/commands/targets/close.d.ts.map +1 -0
- package/dist/cli/commands/targets/list.d.ts +7 -0
- package/dist/cli/commands/targets/list.d.ts.map +1 -0
- package/dist/cli/commands/targets/new.d.ts +7 -0
- package/dist/cli/commands/targets/new.d.ts.map +1 -0
- package/dist/cli/commands/targets/use.d.ts +7 -0
- package/dist/cli/commands/targets/use.d.ts.map +1 -0
- package/dist/cli/commands/types.d.ts +13 -0
- package/dist/cli/commands/types.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +14 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/update.d.ts +7 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/daemon-autostart.d.ts +46 -0
- package/dist/cli/daemon-autostart.d.ts.map +1 -0
- package/dist/cli/daemon-client.d.ts +33 -0
- package/dist/cli/daemon-client.d.ts.map +1 -0
- package/dist/cli/daemon-commands.d.ts +7 -0
- package/dist/cli/daemon-commands.d.ts.map +1 -0
- package/dist/cli/daemon-state.d.ts +56 -0
- package/dist/cli/daemon-state.d.ts.map +1 -0
- package/dist/cli/daemon-status.d.ts +19 -0
- package/dist/cli/daemon-status.d.ts.map +1 -0
- package/dist/cli/daemon.d.ts +29 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/errors.d.ts +20 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/help.d.ts +33 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2825 -326
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/installers/global.d.ts +9 -0
- package/dist/cli/installers/global.d.ts.map +1 -0
- package/dist/cli/installers/local.d.ts +9 -0
- package/dist/cli/installers/local.d.ts.map +1 -0
- package/dist/cli/installers/skills.d.ts +19 -0
- package/dist/cli/installers/skills.d.ts.map +1 -0
- package/dist/cli/output.d.ts +7 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/remote-canvas-manager.d.ts +8 -0
- package/dist/cli/remote-canvas-manager.d.ts.map +1 -0
- package/dist/cli/remote-manager.d.ts +98 -0
- package/dist/cli/remote-manager.d.ts.map +1 -0
- package/dist/cli/remote-relay.d.ts +19 -0
- package/dist/cli/remote-relay.d.ts.map +1 -0
- package/dist/cli/templates/config.d.ts +7 -0
- package/dist/cli/templates/config.d.ts.map +1 -0
- package/dist/cli/utils/config.d.ts +20 -0
- package/dist/cli/utils/config.d.ts.map +1 -0
- package/dist/cli/utils/http.d.ts +5 -0
- package/dist/cli/utils/http.d.ts.map +1 -0
- package/dist/cli/utils/parse.d.ts +9 -0
- package/dist/cli/utils/parse.d.ts.map +1 -0
- package/dist/cli/utils/skills.d.ts +12 -0
- package/dist/cli/utils/skills.d.ts.map +1 -0
- package/dist/config.d.ts +208 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/core/bootstrap.d.ts +3 -0
- package/dist/core/bootstrap.d.ts.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/logging.d.ts +34 -0
- package/dist/core/logging.d.ts.map +1 -0
- package/dist/core/types.d.ts +36 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/devtools/console-tracker.d.ts +44 -0
- package/dist/devtools/console-tracker.d.ts.map +1 -0
- package/dist/devtools/exception-tracker.d.ts +42 -0
- package/dist/devtools/exception-tracker.d.ts.map +1 -0
- package/dist/devtools/network-tracker.d.ts +34 -0
- package/dist/devtools/network-tracker.d.ts.map +1 -0
- package/dist/export/css-extract.d.ts +5 -0
- package/dist/export/css-extract.d.ts.map +1 -0
- package/dist/export/dom-capture.d.ts +15 -0
- package/dist/export/dom-capture.d.ts.map +1 -0
- package/dist/export/react-emitter.d.ts +11 -0
- package/dist/export/react-emitter.d.ts.map +1 -0
- package/dist/extension-extractor.d.ts +3 -0
- package/dist/extension-extractor.d.ts.map +1 -0
- package/dist/fs-UMRKOBNN.js +7 -0
- package/dist/fs-UMRKOBNN.js.map +1 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1028 -123
- package/dist/index.js.map +1 -1
- package/dist/macros/execute.d.ts +44 -0
- package/dist/macros/execute.d.ts.map +1 -0
- package/dist/macros/index.d.ts +9 -0
- package/dist/macros/index.d.ts.map +1 -0
- package/dist/macros/packs/core.d.ts +3 -0
- package/dist/macros/packs/core.d.ts.map +1 -0
- package/dist/macros/registry.d.ts +48 -0
- package/dist/macros/registry.d.ts.map +1 -0
- package/dist/macros-ND2M7LWU.js +399 -0
- package/dist/macros-ND2M7LWU.js.map +1 -0
- package/dist/opendevbrowser.d.ts +3 -4
- package/dist/opendevbrowser.d.ts.map +1 -0
- package/dist/opendevbrowser.js +1028 -123
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/providers/adaptive-concurrency.d.ts +42 -0
- package/dist/providers/adaptive-concurrency.d.ts.map +1 -0
- package/dist/providers/artifacts.d.ts +34 -0
- package/dist/providers/artifacts.d.ts.map +1 -0
- package/dist/providers/blocker.d.ts +47 -0
- package/dist/providers/blocker.d.ts.map +1 -0
- package/dist/providers/community/index.d.ts +44 -0
- package/dist/providers/community/index.d.ts.map +1 -0
- package/dist/providers/enrichment.d.ts +33 -0
- package/dist/providers/enrichment.d.ts.map +1 -0
- package/dist/providers/errors.d.ts +41 -0
- package/dist/providers/errors.d.ts.map +1 -0
- package/dist/providers/index.d.ts +121 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/normalize.d.ts +39 -0
- package/dist/providers/normalize.d.ts.map +1 -0
- package/dist/providers/policy.d.ts +5 -0
- package/dist/providers/policy.d.ts.map +1 -0
- package/dist/providers/registry.d.ts +22 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/renderer.d.ts +49 -0
- package/dist/providers/renderer.d.ts.map +1 -0
- package/dist/providers/runtime-factory.d.ts +20 -0
- package/dist/providers/runtime-factory.d.ts.map +1 -0
- package/dist/providers/safety/prompt-guard.d.ts +34 -0
- package/dist/providers/safety/prompt-guard.d.ts.map +1 -0
- package/dist/providers/shared/anti-bot-policy.d.ts +51 -0
- package/dist/providers/shared/anti-bot-policy.d.ts.map +1 -0
- package/dist/providers/shared/post-policy.d.ts +31 -0
- package/dist/providers/shared/post-policy.d.ts.map +1 -0
- package/dist/providers/shared/request-headers.d.ts +5 -0
- package/dist/providers/shared/request-headers.d.ts.map +1 -0
- package/dist/providers/shared/traversal-url.d.ts +2 -0
- package/dist/providers/shared/traversal-url.d.ts.map +1 -0
- package/dist/providers/shopping/index.d.ts +63 -0
- package/dist/providers/shopping/index.d.ts.map +1 -0
- package/dist/providers/social/bluesky.d.ts +3 -0
- package/dist/providers/social/bluesky.d.ts.map +1 -0
- package/dist/providers/social/facebook.d.ts +3 -0
- package/dist/providers/social/facebook.d.ts.map +1 -0
- package/dist/providers/social/index.d.ts +31 -0
- package/dist/providers/social/index.d.ts.map +1 -0
- package/dist/providers/social/instagram.d.ts +3 -0
- package/dist/providers/social/instagram.d.ts.map +1 -0
- package/dist/providers/social/linkedin.d.ts +3 -0
- package/dist/providers/social/linkedin.d.ts.map +1 -0
- package/dist/providers/social/platform.d.ts +40 -0
- package/dist/providers/social/platform.d.ts.map +1 -0
- package/dist/providers/social/reddit.d.ts +3 -0
- package/dist/providers/social/reddit.d.ts.map +1 -0
- package/dist/providers/social/threads.d.ts +3 -0
- package/dist/providers/social/threads.d.ts.map +1 -0
- package/dist/providers/social/tiktok.d.ts +3 -0
- package/dist/providers/social/tiktok.d.ts.map +1 -0
- package/dist/providers/social/x.d.ts +3 -0
- package/dist/providers/social/x.d.ts.map +1 -0
- package/dist/providers/social/youtube-resolver.d.ts +78 -0
- package/dist/providers/social/youtube-resolver.d.ts.map +1 -0
- package/dist/providers/social/youtube.d.ts +34 -0
- package/dist/providers/social/youtube.d.ts.map +1 -0
- package/dist/providers/tier-router.d.ts +30 -0
- package/dist/providers/tier-router.d.ts.map +1 -0
- package/dist/providers/timebox.d.ts +20 -0
- package/dist/providers/timebox.d.ts.map +1 -0
- package/dist/providers/types.d.ts +344 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/web/crawl-worker.d.ts +36 -0
- package/dist/providers/web/crawl-worker.d.ts.map +1 -0
- package/dist/providers/web/crawler.d.ts +101 -0
- package/dist/providers/web/crawler.d.ts.map +1 -0
- package/dist/providers/web/extract.d.ts +11 -0
- package/dist/providers/web/extract.d.ts.map +1 -0
- package/dist/providers/web/index.d.ts +24 -0
- package/dist/providers/web/index.d.ts.map +1 -0
- package/dist/providers/web/policy.d.ts +14 -0
- package/dist/providers/web/policy.d.ts.map +1 -0
- package/dist/providers/workflows.d.ts +67 -0
- package/dist/providers/workflows.d.ts.map +1 -0
- package/dist/providers-G3LRHQXX.js +121 -0
- package/dist/providers-G3LRHQXX.js.map +1 -0
- package/dist/relay/protocol.d.ts +399 -0
- package/dist/relay/protocol.d.ts.map +1 -0
- package/dist/relay/relay-endpoints.d.ts +16 -0
- package/dist/relay/relay-endpoints.d.ts.map +1 -0
- package/dist/relay/relay-server.d.ts +124 -0
- package/dist/relay/relay-server.d.ts.map +1 -0
- package/dist/relay/relay-types.d.ts +12 -0
- package/dist/relay/relay-types.d.ts.map +1 -0
- package/dist/runtime-factory-BICHDPE7.js +13 -0
- package/dist/runtime-factory-BICHDPE7.js.map +1 -0
- package/dist/skills/continuity-nudge.d.ts +12 -0
- package/dist/skills/continuity-nudge.d.ts.map +1 -0
- package/dist/skills/skill-loader.d.ts +20 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-nudge.d.ts +18 -0
- package/dist/skills/skill-nudge.d.ts.map +1 -0
- package/dist/skills/types.d.ts +12 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/snapshot/ops-snapshot.d.ts +16 -0
- package/dist/snapshot/ops-snapshot.d.ts.map +1 -0
- package/dist/snapshot/refs.d.ts +23 -0
- package/dist/snapshot/refs.d.ts.map +1 -0
- package/dist/snapshot/snapshotter.d.ts +27 -0
- package/dist/snapshot/snapshotter.d.ts.map +1 -0
- package/dist/tools/annotate.d.ts +4 -0
- package/dist/tools/annotate.d.ts.map +1 -0
- package/dist/tools/canvas.d.ts +4 -0
- package/dist/tools/canvas.d.ts.map +1 -0
- package/dist/tools/check.d.ts +4 -0
- package/dist/tools/check.d.ts.map +1 -0
- package/dist/tools/click.d.ts +4 -0
- package/dist/tools/click.d.ts.map +1 -0
- package/dist/tools/clone_component.d.ts +4 -0
- package/dist/tools/clone_component.d.ts.map +1 -0
- package/dist/tools/clone_page.d.ts +4 -0
- package/dist/tools/clone_page.d.ts.map +1 -0
- package/dist/tools/close.d.ts +4 -0
- package/dist/tools/close.d.ts.map +1 -0
- package/dist/tools/connect.d.ts +4 -0
- package/dist/tools/connect.d.ts.map +1 -0
- package/dist/tools/console_poll.d.ts +4 -0
- package/dist/tools/console_poll.d.ts.map +1 -0
- package/dist/tools/cookie_import.d.ts +25 -0
- package/dist/tools/cookie_import.d.ts.map +1 -0
- package/dist/tools/cookie_list.d.ts +9 -0
- package/dist/tools/cookie_list.d.ts.map +1 -0
- package/dist/tools/debug_trace_snapshot.d.ts +4 -0
- package/dist/tools/debug_trace_snapshot.d.ts.map +1 -0
- package/dist/tools/deps.d.ts +28 -0
- package/dist/tools/deps.d.ts.map +1 -0
- package/dist/tools/disconnect.d.ts +4 -0
- package/dist/tools/disconnect.d.ts.map +1 -0
- package/dist/tools/dom_get_html.d.ts +4 -0
- package/dist/tools/dom_get_html.d.ts.map +1 -0
- package/dist/tools/dom_get_text.d.ts +4 -0
- package/dist/tools/dom_get_text.d.ts.map +1 -0
- package/dist/tools/get_attr.d.ts +4 -0
- package/dist/tools/get_attr.d.ts.map +1 -0
- package/dist/tools/get_value.d.ts +4 -0
- package/dist/tools/get_value.d.ts.map +1 -0
- package/dist/tools/goto.d.ts +4 -0
- package/dist/tools/goto.d.ts.map +1 -0
- package/dist/tools/hover.d.ts +4 -0
- package/dist/tools/hover.d.ts.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/is_checked.d.ts +4 -0
- package/dist/tools/is_checked.d.ts.map +1 -0
- package/dist/tools/is_enabled.d.ts +4 -0
- package/dist/tools/is_enabled.d.ts.map +1 -0
- package/dist/tools/is_visible.d.ts +4 -0
- package/dist/tools/is_visible.d.ts.map +1 -0
- package/dist/tools/launch.d.ts +4 -0
- package/dist/tools/launch.d.ts.map +1 -0
- package/dist/tools/list.d.ts +4 -0
- package/dist/tools/list.d.ts.map +1 -0
- package/dist/tools/macro_resolve.d.ts +25 -0
- package/dist/tools/macro_resolve.d.ts.map +1 -0
- package/dist/tools/network_poll.d.ts +4 -0
- package/dist/tools/network_poll.d.ts.map +1 -0
- package/dist/tools/page.d.ts +4 -0
- package/dist/tools/page.d.ts.map +1 -0
- package/dist/tools/perf.d.ts +4 -0
- package/dist/tools/perf.d.ts.map +1 -0
- package/dist/tools/press.d.ts +4 -0
- package/dist/tools/press.d.ts.map +1 -0
- package/dist/tools/product_video_run.d.ts +4 -0
- package/dist/tools/product_video_run.d.ts.map +1 -0
- package/dist/tools/prompting_guide.d.ts +4 -0
- package/dist/tools/prompting_guide.d.ts.map +1 -0
- package/dist/tools/research_run.d.ts +4 -0
- package/dist/tools/research_run.d.ts.map +1 -0
- package/dist/tools/response.d.ts +19 -0
- package/dist/tools/response.d.ts.map +1 -0
- package/dist/tools/run.d.ts +4 -0
- package/dist/tools/run.d.ts.map +1 -0
- package/dist/tools/screenshot.d.ts +4 -0
- package/dist/tools/screenshot.d.ts.map +1 -0
- package/dist/tools/scroll.d.ts +4 -0
- package/dist/tools/scroll.d.ts.map +1 -0
- package/dist/tools/scroll_into_view.d.ts +4 -0
- package/dist/tools/scroll_into_view.d.ts.map +1 -0
- package/dist/tools/select.d.ts +4 -0
- package/dist/tools/select.d.ts.map +1 -0
- package/dist/tools/shopping_run.d.ts +4 -0
- package/dist/tools/shopping_run.d.ts.map +1 -0
- package/dist/tools/skill_list.d.ts +4 -0
- package/dist/tools/skill_list.d.ts.map +1 -0
- package/dist/tools/skill_load.d.ts +4 -0
- package/dist/tools/skill_load.d.ts.map +1 -0
- package/dist/tools/snapshot.d.ts +4 -0
- package/dist/tools/snapshot.d.ts.map +1 -0
- package/dist/tools/status.d.ts +4 -0
- package/dist/tools/status.d.ts.map +1 -0
- package/dist/tools/target_close.d.ts +4 -0
- package/dist/tools/target_close.d.ts.map +1 -0
- package/dist/tools/target_new.d.ts +4 -0
- package/dist/tools/target_new.d.ts.map +1 -0
- package/dist/tools/target_use.d.ts +4 -0
- package/dist/tools/target_use.d.ts.map +1 -0
- package/dist/tools/targets_list.d.ts +4 -0
- package/dist/tools/targets_list.d.ts.map +1 -0
- package/dist/tools/type.d.ts +4 -0
- package/dist/tools/type.d.ts.map +1 -0
- package/dist/tools/uncheck.d.ts +4 -0
- package/dist/tools/uncheck.d.ts.map +1 -0
- package/dist/tools/wait.d.ts +4 -0
- package/dist/tools/wait.d.ts.map +1 -0
- package/dist/tools/workflow-runtime.d.ts +3 -0
- package/dist/tools/workflow-runtime.d.ts.map +1 -0
- package/dist/utils/crypto.d.ts +2 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/endpoint-validation.d.ts +2 -0
- package/dist/utils/endpoint-validation.d.ts.map +1 -0
- package/dist/utils/fs.d.ts +5 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/hub-enabled.d.ts +3 -0
- package/dist/utils/hub-enabled.d.ts.map +1 -0
- package/extension/canvas.html +636 -0
- package/extension/dist/annotate-content.css +15 -6
- package/extension/dist/annotate-content.js +119 -9
- package/extension/dist/annotation-payload.js +163 -0
- package/extension/dist/background.js +158 -22
- package/extension/dist/canvas/canvas-runtime.js +1061 -0
- package/extension/dist/canvas/model.js +213 -0
- package/extension/dist/canvas/viewport-fit.js +67 -0
- package/extension/dist/canvas-page.js +1801 -0
- package/extension/dist/ops/dom-bridge.js +116 -3
- package/extension/dist/ops/ops-runtime.js +1014 -48
- package/extension/dist/ops/ops-session-store.js +37 -116
- package/extension/dist/ops/parallelism-governor.js +117 -0
- package/extension/dist/ops/snapshot-shared.js +21 -5
- package/extension/dist/ops/target-session-coordinator.js +157 -0
- package/extension/dist/popup.js +155 -31
- package/extension/dist/services/CDPRouter.js +70 -5
- package/extension/dist/services/ConnectionManager.js +22 -3
- package/extension/dist/services/RelayClient.js +9 -0
- package/extension/dist/services/TabManager.js +35 -12
- package/extension/dist/types.js +2 -0
- package/extension/icons/icon128.png +0 -0
- package/extension/icons/icon16.png +0 -0
- package/extension/icons/icon32.png +0 -0
- package/extension/icons/icon48.png +0 -0
- package/extension/manifest.json +1 -1
- package/extension/popup.html +52 -0
- package/package.json +30 -19
- package/scripts/native/host.cjs +230 -0
- package/scripts/native/install.ps1 +73 -0
- package/scripts/native/install.sh +66 -0
- package/scripts/native/uninstall.ps1 +25 -0
- package/scripts/native/uninstall.sh +26 -0
- package/skills/AGENTS.md +20 -8
- package/skills/opendevbrowser-best-practices/SKILL.md +248 -74
- package/skills/opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md +44 -0
- package/skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md +141 -0
- package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +191 -0
- package/skills/opendevbrowser-best-practices/artifacts/debug-trace-playbook.md +36 -0
- package/skills/opendevbrowser-best-practices/artifacts/fingerprint-tiers.md +36 -0
- package/skills/opendevbrowser-best-practices/artifacts/macro-workflows.md +43 -0
- package/skills/opendevbrowser-best-practices/artifacts/parity-gates.md +36 -0
- package/skills/opendevbrowser-best-practices/artifacts/provider-workflows.md +89 -0
- package/skills/opendevbrowser-best-practices/assets/templates/canvas-blocker-checklist.json +70 -0
- package/skills/opendevbrowser-best-practices/assets/templates/canvas-feedback-eval.json +73 -0
- package/skills/opendevbrowser-best-practices/assets/templates/canvas-generation-plan.v1.json +67 -0
- package/skills/opendevbrowser-best-practices/assets/templates/canvas-handshake-example.json +126 -0
- package/skills/opendevbrowser-best-practices/assets/templates/cdp-forward-envelope.json +11 -0
- package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +56 -0
- package/skills/opendevbrowser-best-practices/assets/templates/ops-request-envelope.json +9 -0
- package/skills/opendevbrowser-best-practices/assets/templates/robustness-checklist.json +136 -0
- package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +28 -0
- package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +170 -0
- package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +164 -0
- package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +234 -0
- package/skills/opendevbrowser-continuity-ledger/SKILL.md +10 -0
- package/skills/opendevbrowser-data-extraction/SKILL.md +126 -0
- package/skills/opendevbrowser-data-extraction/artifacts/extraction-workflows.md +31 -0
- package/skills/opendevbrowser-data-extraction/assets/templates/compliance-checklist.md +7 -0
- package/skills/opendevbrowser-data-extraction/assets/templates/extraction-schema.json +17 -0
- package/skills/opendevbrowser-data-extraction/assets/templates/pagination-state.json +11 -0
- package/skills/opendevbrowser-data-extraction/assets/templates/quality-gates.json +10 -0
- package/skills/opendevbrowser-data-extraction/examples/sample-schema.json +19 -0
- package/skills/opendevbrowser-data-extraction/scripts/run-extraction-workflow.sh +83 -0
- package/skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh +49 -0
- package/skills/opendevbrowser-form-testing/SKILL.md +143 -0
- package/skills/opendevbrowser-form-testing/artifacts/form-workflows.md +37 -0
- package/skills/opendevbrowser-form-testing/assets/templates/a11y-assertions.md +7 -0
- package/skills/opendevbrowser-form-testing/assets/templates/challenge-decision-tree.json +16 -0
- package/skills/opendevbrowser-form-testing/assets/templates/multi-step-state.json +11 -0
- package/skills/opendevbrowser-form-testing/assets/templates/validation-matrix.json +24 -0
- package/skills/opendevbrowser-form-testing/examples/sample-validation-matrix.json +29 -0
- package/skills/opendevbrowser-form-testing/scripts/run-form-workflow.sh +82 -0
- package/skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh +49 -0
- package/skills/opendevbrowser-login-automation/SKILL.md +159 -0
- package/skills/opendevbrowser-login-automation/artifacts/login-workflows.md +39 -0
- package/skills/opendevbrowser-login-automation/assets/templates/auth-signals.json +21 -0
- package/skills/opendevbrowser-login-automation/assets/templates/challenge-checkpoint.md +10 -0
- package/skills/opendevbrowser-login-automation/assets/templates/login-scenario-matrix.json +26 -0
- package/skills/opendevbrowser-login-automation/examples/sample-auth-signals.json +14 -0
- package/skills/opendevbrowser-login-automation/scripts/record-auth-signals.sh +18 -0
- package/skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh +99 -0
- package/skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh +50 -0
- package/skills/opendevbrowser-product-presentation-asset/SKILL.md +98 -0
- package/skills/opendevbrowser-product-presentation-asset/artifacts/asset-pack-assembly.md +23 -0
- package/skills/opendevbrowser-product-presentation-asset/artifacts/ugc-creative-guide.md +21 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/claims-evidence-map.md +5 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/copy.md +5 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/features.md +4 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/manifest.schema.json +14 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/shot-list.md +7 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/ugc-concepts.md +17 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/user-actions.md +7 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/video-assembly.md +18 -0
- package/skills/opendevbrowser-product-presentation-asset/examples/sample-input.json +6 -0
- package/skills/opendevbrowser-product-presentation-asset/examples/sample-manifest.json +18 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/capture-screenshots.sh +9 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh +14 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/download-images.sh +9 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh +96 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh +56 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh +43 -0
- package/skills/opendevbrowser-research/SKILL.md +73 -0
- package/skills/opendevbrowser-research/artifacts/research-workflows.md +29 -0
- package/skills/opendevbrowser-research/assets/templates/compact.md +7 -0
- package/skills/opendevbrowser-research/assets/templates/context.json +18 -0
- package/skills/opendevbrowser-research/assets/templates/report.md +9 -0
- package/skills/opendevbrowser-research/examples/sample-input.json +6 -0
- package/skills/opendevbrowser-research/examples/sample-output.md +4 -0
- package/skills/opendevbrowser-research/scripts/render-output.sh +12 -0
- package/skills/opendevbrowser-research/scripts/run-research.sh +23 -0
- package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +48 -0
- package/skills/opendevbrowser-research/scripts/write-artifacts.sh +29 -0
- package/skills/opendevbrowser-shopping/SKILL.md +118 -0
- package/skills/opendevbrowser-shopping/artifacts/deal-hunting-workflows.md +37 -0
- package/skills/opendevbrowser-shopping/assets/templates/deal-thresholds.json +8 -0
- package/skills/opendevbrowser-shopping/assets/templates/deals-context.json +9 -0
- package/skills/opendevbrowser-shopping/assets/templates/deals-table.md +4 -0
- package/skills/opendevbrowser-shopping/assets/templates/market-analysis.json +30 -0
- package/skills/opendevbrowser-shopping/examples/sample-deals.md +4 -0
- package/skills/opendevbrowser-shopping/examples/sample-query.json +5 -0
- package/skills/opendevbrowser-shopping/scripts/analyze-market.sh +307 -0
- package/skills/opendevbrowser-shopping/scripts/normalize-offers.sh +28 -0
- package/skills/opendevbrowser-shopping/scripts/render-deals.sh +13 -0
- package/skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh +32 -0
- package/skills/opendevbrowser-shopping/scripts/run-shopping.sh +19 -0
- package/skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh +53 -0
- package/dist/chunk-JVBMT2O5.js +0 -7173
- package/dist/chunk-JVBMT2O5.js.map +0 -1
- package/skills/data-extraction/SKILL.md +0 -128
- package/skills/form-testing/SKILL.md +0 -106
- package/skills/login-automation/SKILL.md +0 -108
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2026 OpenDevBrowser contributors
|
|
3
|
+
Copyright (c) 2024-2026 OpenDevBrowser contributors
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://registry.npmjs.org/opendevbrowser)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://www.typescriptlang.org/)
|
|
6
6
|
[](https://opencode.ai)
|
|
7
7
|
[](docs/CLI.md)
|
|
8
8
|
[](docs/EXTENSION.md)
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
> **Script-first browser automation for AI agents.** Snapshot → Refs → Actions.
|
|
12
12
|
|
|
13
|
-
OpenDevBrowser is an agent-agnostic browser automation runtime. You can use it as an [OpenCode](https://opencode.ai) plugin, as a standalone CLI, or through the Chrome extension relay for logged-in browser sessions. It supports managed sessions, direct CDP attach, and extension-backed Ops sessions.
|
|
13
|
+
OpenDevBrowser is an agent-agnostic browser automation runtime. You can use it as an [OpenCode](https://opencode.ai) plugin, as a standalone CLI, or through the Chrome extension relay for logged-in browser sessions. It supports managed sessions, direct CDP attach, and extension-backed Ops sessions. Frontend website source and deployment are maintained in the private repo `opendevbrowser-website-deploy`.
|
|
14
14
|
|
|
15
15
|
<p align="center">
|
|
16
|
-
<img src="assets/
|
|
16
|
+
<img src="assets/hero-image.png" alt="OpenDevBrowser hero image showing AI-assisted annotation and browser automation workflow" width="920" />
|
|
17
17
|
<br />
|
|
18
18
|
<em>AI-assisted annotation and browser automation workflow</em>
|
|
19
19
|
</p>
|
|
@@ -25,8 +25,14 @@ OpenDevBrowser is an agent-agnostic browser automation runtime. You can use it a
|
|
|
25
25
|
| **CLI (`npx opendevbrowser ...`)** | No | Any agent/workflow that can run shell commands |
|
|
26
26
|
| **Chrome Extension + Relay** | No | Reusing existing logged-in tabs without launching a new browser |
|
|
27
27
|
| **OpenCode Plugin Tools** | Yes | Native tool-calling inside OpenCode (`opendevbrowser_*`) |
|
|
28
|
+
| **Frontend Website (private repo)** | No | Product website and generated docs routes |
|
|
28
29
|
|
|
29
30
|
All core automation flows are available through the CLI command surface and the plugin tool surface.
|
|
31
|
+
Private website docs routes are generated from public repository source-of-truth docs and skill packs.
|
|
32
|
+
|
|
33
|
+
Distribution split (current target state):
|
|
34
|
+
- Public repo (`opendevbrowser`): runtime, CLI, extension, docs, npm, release artifacts.
|
|
35
|
+
- Private repo (`opendevbrowser-website-deploy`): website deployment (`website-production` branch).
|
|
30
36
|
|
|
31
37
|
## Why OpenDevBrowser?
|
|
32
38
|
|
|
@@ -37,17 +43,21 @@ All core automation flows are available through the CLI command surface and the
|
|
|
37
43
|
| **Stable refs** | Elements identified by `backendNodeId`, not fragile selectors |
|
|
38
44
|
| **Security by default** | CDP localhost-only, timing-safe auth, HTML sanitization |
|
|
39
45
|
| **3 browser modes** | Managed, CDP connect, or extension relay for logged-in sessions |
|
|
40
|
-
| **Ops + CDP channels** | High-level multi-client `/ops
|
|
46
|
+
| **Ops + Canvas + CDP channels** | High-level multi-client `/ops`, dedicated `/canvas`, plus legacy `/cdp` compatibility |
|
|
41
47
|
| **Relay Hub (FIFO leases)** | Single-owner CDP binding with a FIFO queue for multi-client safety |
|
|
42
48
|
| **Flat-session routing** | Extension relay uses DebuggerSession sessionId routing (Chrome 125+) |
|
|
43
|
-
| **
|
|
44
|
-
| **
|
|
49
|
+
| **Design canvas + code sync** | Persist repo-native design documents, attach same-session observers, round-trip bound TSX files, and drive preview tabs with `canvas_html` or opted-in `bound_app_runtime` reconciliation |
|
|
50
|
+
| **Loop-closure diagnostics** | Console/network polling + unified debug trace snapshots for verification workflows |
|
|
51
|
+
| **10 bundled skill directories** | Best practices plus login, forms, data extraction, research, shopping, and product asset workflows |
|
|
52
|
+
| **49 tools** | Complete browser automation coverage, including the design-canvas command surface |
|
|
45
53
|
| **97% test coverage** | Production-ready with strict TypeScript |
|
|
46
54
|
|
|
47
55
|
---
|
|
48
56
|
|
|
49
57
|
## Installation
|
|
50
58
|
|
|
59
|
+
Requires Node.js `>=18`.
|
|
60
|
+
|
|
51
61
|
### For Humans
|
|
52
62
|
|
|
53
63
|
```bash
|
|
@@ -60,14 +70,46 @@ npx opendevbrowser --local # ./opencode.json
|
|
|
60
70
|
|
|
61
71
|
# Full install (config + extension assets)
|
|
62
72
|
npx opendevbrowser --full
|
|
73
|
+
|
|
74
|
+
# Optional: persistent global CLI
|
|
75
|
+
npm install -g opendevbrowser
|
|
76
|
+
opendevbrowser --version
|
|
63
77
|
```
|
|
64
78
|
|
|
79
|
+
### Pre-release Local Package (No npm publish required)
|
|
80
|
+
|
|
81
|
+
Use this path to validate first-run onboarding before public distribution:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
cd <public-repo-root>
|
|
85
|
+
npm pack
|
|
86
|
+
|
|
87
|
+
WORKDIR=$(mktemp -d /tmp/opendevbrowser-first-run-XXXXXX)
|
|
88
|
+
cd "$WORKDIR"
|
|
89
|
+
npm init -y
|
|
90
|
+
npm install <public-repo-root>/opendevbrowser-0.0.17.tgz
|
|
91
|
+
npx --no-install opendevbrowser --help
|
|
92
|
+
npx --no-install opendevbrowser help
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Full validated flow: [`docs/FIRST_RUN_ONBOARDING.md`](docs/FIRST_RUN_ONBOARDING.md).
|
|
96
|
+
Dependency/runtime inventory: [`docs/DEPENDENCIES.md`](docs/DEPENDENCIES.md).
|
|
97
|
+
Live CLI inventory/help surface: `npx opendevbrowser --help` or `npx opendevbrowser help`.
|
|
98
|
+
|
|
65
99
|
Use OpenCode only if you want plugin tools. CLI and extension workflows work without OpenCode.
|
|
66
100
|
|
|
67
101
|
On first successful install, the CLI attempts to install daemon auto-start on supported platforms so the relay is available on login.
|
|
68
102
|
You can remove it later with `npx opendevbrowser daemon uninstall`.
|
|
69
103
|
|
|
70
|
-
|
|
104
|
+
During install, bundled skills are synced for **OpenCode, Codex, ClaudeCode, and AmpCLI**.
|
|
105
|
+
Default `--skills-global` targets:
|
|
106
|
+
- `~/.config/opencode/skill` (OpenCode)
|
|
107
|
+
- `$CODEX_HOME/skills` (fallback `~/.codex/skills`)
|
|
108
|
+
- `$CLAUDECODE_HOME/skills` or `$CLAUDE_HOME/skills` (fallback `~/.claude/skills`)
|
|
109
|
+
- `$AMPCLI_HOME/skills` or `$AMP_CLI_HOME/skills` or `$AMP_HOME/skills` (fallback `~/.amp/skills`)
|
|
110
|
+
|
|
111
|
+
Use `--skills-local` for project-local targets:
|
|
112
|
+
- `./.opencode/skill`, `./.codex/skills`, `./.claude/skills`, `./.amp/skills`
|
|
71
113
|
|
|
72
114
|
### CLI + Extension (No OpenCode)
|
|
73
115
|
|
|
@@ -82,6 +124,22 @@ npx opendevbrowser launch --extension-only --wait-for-extension
|
|
|
82
124
|
npx opendevbrowser launch --no-extension
|
|
83
125
|
```
|
|
84
126
|
|
|
127
|
+
Unpacked extension load path after local install:
|
|
128
|
+
- `<WORKDIR>/node_modules/opendevbrowser/extension`
|
|
129
|
+
|
|
130
|
+
### Frontend Website (Private Repo)
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
git clone https://github.com/freshtechbro/opendevbrowser-website-deploy.git
|
|
134
|
+
cd opendevbrowser-website-deploy/frontend
|
|
135
|
+
npm install
|
|
136
|
+
npm run dev
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Website build/data pipeline lives in the private repo:
|
|
140
|
+
- `npm run sync:assets` copies mirrored assets into private `frontend/public/brand`.
|
|
141
|
+
- `npm run generate:docs` regenerates docs, metrics, and roadmap JSON consumed by `/docs`.
|
|
142
|
+
|
|
85
143
|
### Agent Installation (OpenCode)
|
|
86
144
|
|
|
87
145
|
Recommended (CLI, installs plugin + config + bundled skills + extension assets):
|
|
@@ -123,6 +181,11 @@ OpenDevBrowser uses the same automation model across plugin tools and CLI comman
|
|
|
123
181
|
5. Re-snapshot after navigation
|
|
124
182
|
```
|
|
125
183
|
|
|
184
|
+
Shipping checklist for first-time users (local-package install, daemon, extension, first task, multi-tab auth/cookies):
|
|
185
|
+
- [`docs/FIRST_RUN_ONBOARDING.md`](docs/FIRST_RUN_ONBOARDING.md)
|
|
186
|
+
|
|
187
|
+
Parallel execution is target-scoped (`ExecutionKey = (sessionId,targetId)`): same target is FIFO, different targets can run concurrently up to the governor cap. `session-per-worker` remains the safest baseline for strict isolation. See [`docs/CLI.md`](docs/CLI.md) (Concurrency semantics) and [`skills/opendevbrowser-best-practices/artifacts/provider-workflows.md`](skills/opendevbrowser-best-practices/artifacts/provider-workflows.md) (Workflow E).
|
|
188
|
+
|
|
126
189
|
### Core Workflow (Plugin Tools)
|
|
127
190
|
|
|
128
191
|
| Step | Tool | Purpose |
|
|
@@ -159,6 +222,9 @@ npx opendevbrowser snapshot --session-id <session-id>
|
|
|
159
222
|
npx opendevbrowser click --session-id <session-id> --ref r12
|
|
160
223
|
```
|
|
161
224
|
|
|
225
|
+
`opendevbrowser serve` includes stale-daemon preflight cleanup by default, so orphan daemon processes are terminated automatically
|
|
226
|
+
before startup while preserving the active daemon on the requested port.
|
|
227
|
+
|
|
162
228
|
For single-shot scripts:
|
|
163
229
|
|
|
164
230
|
```bash
|
|
@@ -171,7 +237,21 @@ Use `--output-format json|stream-json` for automation-friendly output.
|
|
|
171
237
|
|
|
172
238
|
## Recent Features
|
|
173
239
|
|
|
174
|
-
### v0.0.
|
|
240
|
+
### v0.0.17 (Latest)
|
|
241
|
+
|
|
242
|
+
- **Design canvas runtime is now shipped end-to-end** across core, CLI, tool, relay, and extension surfaces, including `canvas.html`, overlay control, preview feedback, and repo-backed code sync.
|
|
243
|
+
- **Canvas surface governance and skill-pack coverage** now include current `/canvas` inventories, handshake/blocker templates, and feedback-evaluation artifacts.
|
|
244
|
+
- **Release packaging/docs were refreshed for v0.0.17**, including current tarball examples, extension version sync, release evidence, and public/private cutover guidance.
|
|
245
|
+
|
|
246
|
+
### v0.0.16
|
|
247
|
+
|
|
248
|
+
- **Release-gate hardening** with dedicated audit/compliance scripts (`audit-zombie-files`, `docs-drift-check`, `chrome-store-compliance-check`) and grouped release-gate tests.
|
|
249
|
+
- **Live matrix robustness upgrades** across `live-regression-matrix` and `provider-live-matrix` (strict `--release-gate`, extension/CDP recovery paths, deterministic strict-mode semantics).
|
|
250
|
+
- **CLI/runtime reliability fixes** including launch RPC timeout derivation from wait hints, bounded macro execute timeouts, and stale extension `/cdp` attach retry handling.
|
|
251
|
+
- **Version/distribution integrity checks** now enforce parity across `package.json`, `extension/manifest.json`, and `extension/package.json`.
|
|
252
|
+
- **Dependency and docs refresh** for v0.0.16 release readiness, onboarding parity, and public/private distribution operations.
|
|
253
|
+
|
|
254
|
+
### v0.0.15
|
|
175
255
|
|
|
176
256
|
- **Documentation and release readiness refresh** across README/CLI/extension guidance.
|
|
177
257
|
- **Extension mode stabilization** with stronger native host flow and recovery paths.
|
|
@@ -206,9 +286,15 @@ See [CHANGELOG.md](CHANGELOG.md) for complete version history.
|
|
|
206
286
|
### DevTools Integration
|
|
207
287
|
- **Console Capture** - Monitor console.log, errors, warnings
|
|
208
288
|
- **Network Tracking** - Request/response metadata (method, url, status)
|
|
289
|
+
- **Debug Trace Snapshot** - Combined page/console/network/exception diagnostics with blocker metadata
|
|
209
290
|
- **Screenshot** - Viewport PNG screenshot (file or base64)
|
|
210
291
|
- **Performance** - Page load metrics
|
|
211
292
|
|
|
293
|
+
### Session & Macro Utilities
|
|
294
|
+
- **Cookie Import** - Validate and import cookies into active sessions
|
|
295
|
+
- **Cookie List** - First-class cookie inspection with optional URL filters
|
|
296
|
+
- **Macro Resolve/Execute** - Expand macro expressions into provider actions with optional execution
|
|
297
|
+
|
|
212
298
|
### Export & Clone
|
|
213
299
|
- **DOM Capture** - Extract sanitized HTML with inline styles
|
|
214
300
|
- **React Emitter** - Generate React component code from pages
|
|
@@ -218,8 +304,9 @@ See [CHANGELOG.md](CHANGELOG.md) for complete version history.
|
|
|
218
304
|
|
|
219
305
|
## Tool Reference
|
|
220
306
|
|
|
221
|
-
OpenDevBrowser provides **
|
|
307
|
+
OpenDevBrowser provides **49 tools** organized by category:
|
|
222
308
|
Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/CLI.md)).
|
|
309
|
+
Complete source-accurate inventory (tools + CLI + `/ops` + `/canvas` + `/cdp`): [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
|
|
223
310
|
|
|
224
311
|
### Session Management
|
|
225
312
|
| Tool | Description |
|
|
@@ -228,6 +315,8 @@ Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/C
|
|
|
228
315
|
| `opendevbrowser_connect` | Connect to existing Chrome CDP endpoint (or relay `/ops`; legacy `/cdp` via `--extension-legacy`) |
|
|
229
316
|
| `opendevbrowser_disconnect` | Disconnect browser session |
|
|
230
317
|
| `opendevbrowser_status` | Get session status and connection info (daemon status in hub mode) |
|
|
318
|
+
| `opendevbrowser_cookie_import` | Import validated cookies into the current session |
|
|
319
|
+
| `opendevbrowser_cookie_list` | List session cookies with optional URL filters |
|
|
231
320
|
|
|
232
321
|
### Tab/Target Management
|
|
233
322
|
| Tool | Description |
|
|
@@ -277,14 +366,25 @@ Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/C
|
|
|
277
366
|
|------|-------------|
|
|
278
367
|
| `opendevbrowser_console_poll` | Poll console logs since sequence |
|
|
279
368
|
| `opendevbrowser_network_poll` | Poll network requests since sequence |
|
|
369
|
+
| `opendevbrowser_debug_trace_snapshot` | Capture a unified page + console + network + exception diagnostic bundle |
|
|
280
370
|
| `opendevbrowser_screenshot` | Capture page screenshot |
|
|
281
371
|
| `opendevbrowser_perf` | Get page performance metrics |
|
|
282
372
|
| `opendevbrowser_prompting_guide` | Get best-practice prompting guidance |
|
|
283
373
|
|
|
374
|
+
### Macro Workflows
|
|
375
|
+
| Tool | Description |
|
|
376
|
+
|------|-------------|
|
|
377
|
+
| `opendevbrowser_macro_resolve` | Resolve macro expressions into provider action/provenance (optionally execute) |
|
|
378
|
+
|
|
284
379
|
### Annotation
|
|
285
380
|
| Tool | Description |
|
|
286
381
|
|------|-------------|
|
|
287
|
-
| `opendevbrowser_annotate` | Capture interactive annotations via
|
|
382
|
+
| `opendevbrowser_annotate` | Capture interactive annotations via direct (CDP) or relay transport |
|
|
383
|
+
|
|
384
|
+
### Design Canvas
|
|
385
|
+
| Tool | Description |
|
|
386
|
+
|------|-------------|
|
|
387
|
+
| `opendevbrowser_canvas` | Execute typed design-canvas session, attach, code-sync, preview, feedback, and overlay commands |
|
|
288
388
|
|
|
289
389
|
### Export & Cloning
|
|
290
390
|
| Tool | Description |
|
|
@@ -302,22 +402,32 @@ Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/C
|
|
|
302
402
|
|
|
303
403
|
## Bundled Skills
|
|
304
404
|
|
|
305
|
-
OpenDevBrowser includes **
|
|
405
|
+
OpenDevBrowser includes **8 OpenDevBrowser-specific skill packs** plus shared `research` and `shopping` compatibility directories that are synced by the installer:
|
|
306
406
|
|
|
307
407
|
| Skill | Purpose |
|
|
308
408
|
|-------|---------|
|
|
309
409
|
| `opendevbrowser-best-practices` | Core prompting patterns and workflow guidance |
|
|
310
410
|
| `opendevbrowser-continuity-ledger` | Long-running task state management |
|
|
311
|
-
| `login-automation` | Authentication flow patterns |
|
|
312
|
-
| `form-testing` | Form validation and submission workflows |
|
|
313
|
-
| `data-extraction` | Structured data scraping patterns |
|
|
411
|
+
| `opendevbrowser-login-automation` | Authentication flow patterns |
|
|
412
|
+
| `opendevbrowser-form-testing` | Form validation and submission workflows |
|
|
413
|
+
| `opendevbrowser-data-extraction` | Structured data scraping patterns |
|
|
414
|
+
| `opendevbrowser-research` | Deterministic multi-source research workflows |
|
|
415
|
+
| `opendevbrowser-shopping` | Deterministic multi-provider deal comparison workflows |
|
|
416
|
+
| `opendevbrowser-product-presentation-asset` | Product screenshot/copy asset collection for presentation pipelines |
|
|
417
|
+
|
|
418
|
+
Installer note:
|
|
419
|
+
- `--skills-global` and `--skills-local` copy every directory under `skills/`, including the shared `research/` and `shopping/` packs.
|
|
314
420
|
|
|
315
421
|
Skills are discovered from (priority order):
|
|
316
422
|
1. `.opencode/skill/` (project)
|
|
317
423
|
2. `~/.config/opencode/skill/` (global)
|
|
318
|
-
3. `.
|
|
319
|
-
4.
|
|
320
|
-
5.
|
|
424
|
+
3. `.codex/skills/` (project compatibility)
|
|
425
|
+
4. `$CODEX_HOME/skills` (global compatibility; fallback `~/.codex/skills`)
|
|
426
|
+
5. `.claude/skills/` (ClaudeCode project compatibility)
|
|
427
|
+
6. `$CLAUDECODE_HOME/skills` or `$CLAUDE_HOME/skills` (ClaudeCode global compatibility; fallback `~/.claude/skills`)
|
|
428
|
+
7. `.amp/skills/` (AmpCLI project compatibility)
|
|
429
|
+
8. `$AMPCLI_HOME/skills` or `$AMP_CLI_HOME/skills` or `$AMP_HOME/skills` (AmpCLI global compatibility; fallback `~/.amp/skills`)
|
|
430
|
+
9. Custom paths via `skillPaths` config
|
|
321
431
|
|
|
322
432
|
Load a skill: `opendevbrowser_skill_load` with `name` and optional `topic` filter.
|
|
323
433
|
|
|
@@ -337,17 +447,21 @@ Extension relay relies on **flat CDP sessions (Chrome 125+)** and uses DebuggerS
|
|
|
337
447
|
|
|
338
448
|
Relay ops endpoint: `ws://127.0.0.1:<relayPort>/ops`.
|
|
339
449
|
The connect command also accepts base relay WS URLs (`ws://127.0.0.1:<relayPort>` or `ws://localhost:<relayPort>`) and normalizes them to `/ops`.
|
|
450
|
+
Relay canvas endpoint: `ws://127.0.0.1:<relayPort>/canvas` for design-canvas editor, session attach/lease flow, code-sync, preview, feedback, and overlay flows.
|
|
340
451
|
Legacy relay `/cdp` remains available with explicit opt-in (`--extension-legacy`).
|
|
341
|
-
When pairing is enabled,
|
|
452
|
+
When pairing is enabled, `/ops`, `/canvas`, and `/cdp` require a relay token (`?token=<relayToken>`). Tools and the CLI auto-fetch relay config and tokens.
|
|
342
453
|
|
|
343
|
-
##
|
|
454
|
+
## Relay Channels
|
|
344
455
|
|
|
345
456
|
| Channel | What It Does | When to Use It |
|
|
346
457
|
|---------|---------------|----------------|
|
|
347
458
|
| **`/ops` (default)** | High-level automation protocol with session ownership, event streaming, and multi-client handling | Preferred extension relay path for modern workflows |
|
|
459
|
+
| **`/canvas`** | Typed design-canvas protocol for session handshakes/attach, live editor sync, TSX code sync, preview tabs, feedback streams, and overlay selection | Use with `opendevbrowser_canvas` or `opendevbrowser canvas` during design-canvas workflows |
|
|
348
460
|
| **`/cdp` (legacy)** | Low-level CDP relay path with compatibility-focused behavior | Opt-in compatibility mode (`--extension-legacy`) |
|
|
349
461
|
| **Direct CDP connect** | Attach to Chrome started with `--remote-debugging-port` | Existing debug/browser setups without extension relay |
|
|
350
462
|
|
|
463
|
+
For full `/ops` and `/canvas` command names, `/cdp` envelope details, and mode/flag matrices, see [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
|
|
464
|
+
|
|
351
465
|
---
|
|
352
466
|
|
|
353
467
|
## Breaking Changes (latest)
|
|
@@ -370,7 +484,7 @@ The runtime (plugin or CLI daemon) and extension can automatically pair:
|
|
|
370
484
|
3. Extension fetches relay port from discovery, then fetches token from the relay server
|
|
371
485
|
4. Connection established with color indicator (green = connected)
|
|
372
486
|
|
|
373
|
-
**Auto-connect** and **Auto-pair** are enabled by default for a seamless setup. The extension badge shows status (
|
|
487
|
+
**Auto-connect** and **Auto-pair** are enabled by default for a seamless setup. The extension badge shows a small status dot (green = connected, red = disconnected).
|
|
374
488
|
If the relay is unavailable, the background worker retries `/config` + `/pair` with exponential backoff (using `chrome.alarms`).
|
|
375
489
|
|
|
376
490
|
### Default Settings (Extension)
|
|
@@ -455,6 +569,15 @@ Optional config file: `~/.config/opencode/opendevbrowser.jsonc`
|
|
|
455
569
|
"allowUnsafeExport": false
|
|
456
570
|
},
|
|
457
571
|
|
|
572
|
+
// Provider workflow cookie defaults (optional)
|
|
573
|
+
"providers": {
|
|
574
|
+
"cookiePolicy": "auto",
|
|
575
|
+
"cookieSource": {
|
|
576
|
+
"type": "file",
|
|
577
|
+
"value": "~/.config/opencode/opendevbrowser.provider-cookies.json"
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
|
|
458
581
|
// Skills configuration
|
|
459
582
|
"skills": {
|
|
460
583
|
"nudge": {
|
|
@@ -495,9 +618,23 @@ All fields are optional. OpenDevBrowser works with sensible defaults.
|
|
|
495
618
|
|
|
496
619
|
## CLI Commands
|
|
497
620
|
|
|
498
|
-
The CLI is agent-agnostic and supports the full automation surface (session, navigation, interaction, DOM, targets, pages, export, devtools, and
|
|
621
|
+
The CLI is agent-agnostic and supports the full automation surface (session, navigation, interaction, DOM, targets, pages, export, devtools, annotate, and canvas).
|
|
499
622
|
All commands listed in the CLI reference are implemented and available in the current codebase.
|
|
500
623
|
See [docs/CLI.md](docs/CLI.md) for the full command and flag matrix.
|
|
624
|
+
See [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the source-accurate inventory matrix (CLI commands, 49 tools, `/ops`, `/canvas`, and `/cdp` channel contracts).
|
|
625
|
+
|
|
626
|
+
### CLI Category Matrix (core command groups)
|
|
627
|
+
|
|
628
|
+
| Category | Commands |
|
|
629
|
+
|---------|----------|
|
|
630
|
+
| Install/runtime | `install`, `update`, `uninstall`, `help`, `version`, `serve`, `daemon`, `native`, `run` |
|
|
631
|
+
| Session/connection | `launch`, `connect`, `disconnect`, `status`, `cookie-import`, `cookie-list` |
|
|
632
|
+
| Navigation | `goto`, `wait`, `snapshot` |
|
|
633
|
+
| Interaction | `click`, `hover`, `press`, `check`, `uncheck`, `type`, `select`, `scroll`, `scroll-into-view` |
|
|
634
|
+
| Targets/pages | `targets-list`, `target-use`, `target-new`, `target-close`, `page`, `pages`, `page-close` |
|
|
635
|
+
| DOM | `dom-html`, `dom-text`, `dom-attr`, `dom-value`, `dom-visible`, `dom-enabled`, `dom-checked` |
|
|
636
|
+
| Design canvas | `canvas` |
|
|
637
|
+
| Export/diagnostics/macro/annotation/power | `clone-page`, `clone-component`, `perf`, `screenshot`, `console-poll`, `network-poll`, `debug-trace-snapshot`, `macro-resolve`, `annotate`, `rpc` |
|
|
501
638
|
|
|
502
639
|
### Install/Management
|
|
503
640
|
|
|
@@ -508,6 +645,7 @@ See [docs/CLI.md](docs/CLI.md) for the full command and flag matrix.
|
|
|
508
645
|
| `npx opendevbrowser --local` | Install to project config |
|
|
509
646
|
| `npx opendevbrowser --with-config` | Also create opendevbrowser.jsonc |
|
|
510
647
|
| `npx opendevbrowser --full` | Full install (config + extension assets) |
|
|
648
|
+
| `npm install -g opendevbrowser` | Install persistent global CLI |
|
|
511
649
|
| `npx opendevbrowser --update` | Clear cache, trigger reinstall |
|
|
512
650
|
| `npx opendevbrowser --uninstall` | Remove from config |
|
|
513
651
|
| `npx opendevbrowser --version` | Show version |
|
|
@@ -530,6 +668,13 @@ Start the daemon with `npx opendevbrowser serve`, then use:
|
|
|
530
668
|
| `npx opendevbrowser select` | Select dropdown option by ref |
|
|
531
669
|
| `npx opendevbrowser scroll` | Scroll page or element |
|
|
532
670
|
| `npx opendevbrowser run` | Run a JSON script |
|
|
671
|
+
| `npx opendevbrowser canvas --command canvas.session.open --params '{...}'` | Start or continue a design-canvas workflow through the daemon |
|
|
672
|
+
| `npx opendevbrowser macro-resolve --expression '@media.search("youtube transcript parity", "youtube", 5)' --execute --timeout-ms 120000` | Execute macro plans with extended timeout for slow runs |
|
|
673
|
+
|
|
674
|
+
Workflow cookie controls (`research run`, `shopping run`, `product-video run`):
|
|
675
|
+
- Defaults come from `providers.cookiePolicy` (`off|auto|required`) and `providers.cookieSource` (`file|env|inline`).
|
|
676
|
+
- Per-run overrides: `--use-cookies`, `--cookie-policy-override` (alias `--cookie-policy`).
|
|
677
|
+
- `auto` is non-blocking when cookies are unavailable; `required` fails fast with `reasonCode=auth_required`.
|
|
533
678
|
|
|
534
679
|
---
|
|
535
680
|
|
|
@@ -541,7 +686,7 @@ OpenDevBrowser is **secure by default** with defense-in-depth protections:
|
|
|
541
686
|
|------------|---------|
|
|
542
687
|
| **CDP Localhost-Only** | Remote endpoints blocked; hostname normalized to prevent bypass |
|
|
543
688
|
| **Timing-Safe Auth** | `crypto.timingSafeEqual()` for token comparison |
|
|
544
|
-
| **Origin Validation** | `/extension` requires `chrome-extension://` origin; `/ops`, `/cdp`, `/annotation`, and `/config`/`/status`/`/pair` allow loopback no-Origin requests |
|
|
689
|
+
| **Origin Validation** | `/extension` requires `chrome-extension://` origin; `/ops`, `/canvas`, `/cdp`, `/annotation`, and `/config`/`/status`/`/pair` allow loopback no-Origin requests |
|
|
545
690
|
| **PNA Preflights** | HTTP preflights include `Access-Control-Allow-Private-Network: true` when requested |
|
|
546
691
|
| **Rate Limiting** | 5 handshake attempts/minute per IP, plus HTTP rate limiting for `/config`, `/status`, `/pair` |
|
|
547
692
|
| **Data Redaction** | Tokens, API keys, sensitive paths auto-redacted |
|
|
@@ -564,28 +709,86 @@ npx opendevbrowser --update
|
|
|
564
709
|
|
|
565
710
|
Architecture overview: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
|
|
566
711
|
Release checklist: [docs/DISTRIBUTION_PLAN.md](docs/DISTRIBUTION_PLAN.md)
|
|
712
|
+
Documentation index: [docs/README.md](docs/README.md)
|
|
713
|
+
Frontend docs: [docs/FRONTEND.md](docs/FRONTEND.md)
|
|
714
|
+
Dependency inventory: [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md)
|
|
567
715
|
|
|
568
716
|
---
|
|
569
717
|
|
|
570
718
|
## Architecture
|
|
571
719
|
|
|
572
720
|
```
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
721
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
722
|
+
│ Distribution Layer │
|
|
723
|
+
├──────────────────┬──────────────────┬──────────────────┬──────────────────────────┤
|
|
724
|
+
│ OpenCode Plugin │ CLI │ Hub Daemon │ Chrome Extension │
|
|
725
|
+
│ (src/index.ts) │ (src/cli/index) │ (opendevbrowser │ (extension/src/) │
|
|
726
|
+
│ │ │ serve) │ │
|
|
727
|
+
└────────┬─────────┴────────┬─────────┴─────────┬────────┴──────────────┬────────────┘
|
|
728
|
+
│ │ │ │
|
|
729
|
+
▼ ▼ ▼ ▼
|
|
730
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
731
|
+
│ Core Runtime (src/core/) │
|
|
732
|
+
│ bootstrap.ts → wires managers, injects ToolDeps │
|
|
733
|
+
└────────┬────────────────────────────────────────────────────────┘
|
|
734
|
+
│
|
|
735
|
+
┌────┴────┬─────────────┬──────────────┬──────────────┬──────────────┐
|
|
736
|
+
▼ ▼ ▼ ▼ ▼ ▼
|
|
737
|
+
┌────────┐ ┌────────┐ ┌──────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐
|
|
738
|
+
│Browser │ │Script │ │Snapshot │ │ Annotation │ │ Relay │ │ Skills │
|
|
739
|
+
│Manager │ │Runner │ │Pipeline │ │ Manager │ │ Server │ │ Loader │
|
|
740
|
+
└───┬────┘ └────────┘ └──────────┘ └────────────┘ └─────┬──────┘ └────────────┘
|
|
741
|
+
│ │
|
|
742
|
+
▼ ▼
|
|
743
|
+
┌────────┐ ┌────────────┐
|
|
744
|
+
│Target │ │ Extension │
|
|
745
|
+
│Manager │ │ (WS relay) │
|
|
746
|
+
└────────┘ └────────────┘
|
|
747
|
+
```
|
|
748
|
+
|
|
749
|
+
### Data Flow
|
|
750
|
+
|
|
751
|
+
```
|
|
752
|
+
Tool Call → Zod Validation → Manager/Runner → CDP/Playwright → Response
|
|
753
|
+
↓
|
|
754
|
+
Snapshot (AX-tree → refs)
|
|
755
|
+
↓
|
|
756
|
+
Action (ref → backendNodeId → DOM)
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
### System Workflow (Happy Path)
|
|
760
|
+
|
|
761
|
+
1. `launch` (extension or managed) -> `sessionId`
|
|
762
|
+
2. `snapshot` -> refs
|
|
763
|
+
3. Action commands (`click`, `type`, `press`, `hover`, `check`, etc.) -> repeat snapshot
|
|
764
|
+
4. `disconnect` on completion
|
|
765
|
+
|
|
766
|
+
### Repository Layout
|
|
767
|
+
|
|
768
|
+
```
|
|
769
|
+
.
|
|
770
|
+
├── src/ # Plugin implementation
|
|
771
|
+
│ ├── browser/ # BrowserManager, TargetManager, CDP lifecycle
|
|
772
|
+
│ ├── cache/ # Chrome executable resolution
|
|
773
|
+
│ ├── cli/ # CLI commands, daemon, installers
|
|
774
|
+
│ ├── core/ # Bootstrap, runtime wiring, ToolDeps
|
|
775
|
+
│ ├── canvas/ # Design-canvas document store, repo IO, export helpers
|
|
776
|
+
│ ├── devtools/ # Console/network trackers with redaction
|
|
777
|
+
│ ├── export/ # DOM capture, React emitter, CSS extraction
|
|
778
|
+
│ ├── relay/ # Extension relay server, protocol types
|
|
779
|
+
│ ├── skills/ # SkillLoader for skill pack discovery
|
|
780
|
+
│ ├── snapshot/ # AX-tree snapshots, ref management
|
|
781
|
+
│ ├── tools/ # 49 opendevbrowser_* tool definitions
|
|
782
|
+
│ ├── annotate/ # Annotation transports + output shaping
|
|
783
|
+
│ └── utils/ # Shared utilities
|
|
784
|
+
├── extension/ # Chrome extension (relay client)
|
|
785
|
+
├── scripts/ # Operational scripts (build/sync/smoke)
|
|
786
|
+
├── skills/ # Bundled skill directories (10 total; 8 canonical OpenDevBrowser packs + 2 shared compatibility packs)
|
|
787
|
+
├── tests/ # Vitest tests (97% coverage required)
|
|
788
|
+
└── docs/ # Architecture, CLI, extension, distribution plans
|
|
584
789
|
```
|
|
585
790
|
|
|
586
|
-
Extension relay uses flat CDP sessions (Chrome 125+) with DebuggerSession `sessionId` routing for multi-tab support.
|
|
587
|
-
When hub mode is enabled, the hub daemon is the sole relay owner and enforces a FIFO lease queue for multi-client safety.
|
|
588
|
-
See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for detailed component diagrams.
|
|
791
|
+
Extension relay uses flat CDP sessions (Chrome 125+) with DebuggerSession `sessionId` routing for multi-tab support. When hub mode is enabled, the hub daemon is the sole relay owner and enforces a FIFO lease queue for multi-client safety. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full architecture reference.
|
|
589
792
|
|
|
590
793
|
---
|
|
591
794
|
|
|
@@ -601,19 +804,35 @@ npm run version:check # Verify package/extension version alignment
|
|
|
601
804
|
npm run extension:pack # Build extension zip for releases
|
|
602
805
|
```
|
|
603
806
|
|
|
604
|
-
### Packaging & Distribution (
|
|
807
|
+
### Packaging & Distribution (Public + Private)
|
|
605
808
|
|
|
606
809
|
Uniform versioning is required (source of truth: `package.json`):
|
|
607
810
|
|
|
608
811
|
1. Bump `package.json` version.
|
|
609
812
|
2. Run: `npm run extension:sync`
|
|
610
813
|
3. Run: `npm run version:check`
|
|
611
|
-
4. Run: `npm run
|
|
612
|
-
5. Run: `npm run
|
|
613
|
-
6. Run: `npm run extension:
|
|
614
|
-
7.
|
|
615
|
-
|
|
616
|
-
|
|
814
|
+
4. Run: `npm run test:release-gate`
|
|
815
|
+
5. Run: `npm run build`
|
|
816
|
+
6. Run: `npm run extension:build`
|
|
817
|
+
7. Run release audits:
|
|
818
|
+
- `node scripts/audit-zombie-files.mjs`
|
|
819
|
+
- `node scripts/docs-drift-check.mjs`
|
|
820
|
+
- `node scripts/chrome-store-compliance-check.mjs`
|
|
821
|
+
- `./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh`
|
|
822
|
+
8. Run strict live release gates:
|
|
823
|
+
- `node scripts/provider-live-matrix.mjs --release-gate --out artifacts/release/vX.Y.Z/provider-live-matrix.json`
|
|
824
|
+
- `node scripts/live-regression-matrix.mjs --release-gate`
|
|
825
|
+
9. Run first-time global install dry run checklist from `docs/FIRST_RUN_ONBOARDING.md`.
|
|
826
|
+
10. Run: `npm run extension:pack` (outputs `./opendevbrowser-extension.zip`)
|
|
827
|
+
11. Run: `npm pack`
|
|
828
|
+
12. Tag `vX.Y.Z` and let `.github/workflows/release-public.yml` publish npm + GitHub release artifacts.
|
|
829
|
+
13. Dispatch website content sync to private repo through `.github/workflows/dispatch-private-sync.yml`.
|
|
830
|
+
|
|
831
|
+
Runbooks:
|
|
832
|
+
- `docs/DISTRIBUTION_PLAN.md`
|
|
833
|
+
- `docs/RELEASE_RUNBOOK.md`
|
|
834
|
+
- `docs/EXTENSION_RELEASE_RUNBOOK.md`
|
|
835
|
+
- `docs/CUTOVER_CHECKLIST.md`
|
|
617
836
|
|
|
618
837
|
---
|
|
619
838
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { BrowserManagerLike } from "../browser/manager-types";
|
|
2
|
+
import type { AnnotationResponse, AnnotationScreenshotMode } from "../relay/protocol";
|
|
3
|
+
export type DirectAnnotateAssets = {
|
|
4
|
+
scriptPath: string;
|
|
5
|
+
stylePath: string;
|
|
6
|
+
};
|
|
7
|
+
export type DirectAnnotateRequest = {
|
|
8
|
+
sessionId: string;
|
|
9
|
+
targetId?: string;
|
|
10
|
+
url?: string;
|
|
11
|
+
screenshotMode?: AnnotationScreenshotMode;
|
|
12
|
+
debug?: boolean;
|
|
13
|
+
context?: string;
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
signal?: AbortSignal;
|
|
16
|
+
};
|
|
17
|
+
export declare function resolveDirectAnnotateAssets(resolvePath?: () => string | null): {
|
|
18
|
+
assets?: DirectAnnotateAssets;
|
|
19
|
+
error?: string;
|
|
20
|
+
};
|
|
21
|
+
export declare function runDirectAnnotate(manager: BrowserManagerLike, assets: DirectAnnotateAssets, request: DirectAnnotateRequest): Promise<AnnotationResponse>;
|
|
22
|
+
//# sourceMappingURL=direct-annotator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-annotator.d.ts","sourceRoot":"","sources":["../../src/annotate/direct-annotator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAGV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAeF,wBAAgB,2BAA2B,CACzC,WAAW,GAAE,MAAM,MAAM,GAAG,IAAuB,GAClD;IAAE,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAWnD;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA4E7B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AnnotationPayload } from "../relay/protocol";
|
|
2
|
+
export declare const buildAnnotateResult: (payload: AnnotationPayload) => Promise<{
|
|
3
|
+
message: string;
|
|
4
|
+
details: AnnotationPayload;
|
|
5
|
+
screenshots: Array<{
|
|
6
|
+
id: string;
|
|
7
|
+
path: string;
|
|
8
|
+
}>;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/annotate/output.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,mBAAmB,CAAC;AA+HjG,eAAO,MAAM,mBAAmB,GAC9B,SAAS,iBAAiB,KACzB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAS3G,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { OpenDevBrowserConfig } from "../config";
|
|
2
|
+
import type { RelayLike } from "../relay/relay-types";
|
|
3
|
+
import type { BrowserManagerLike } from "./manager-types";
|
|
4
|
+
import type { AnnotationResponse, AnnotationScreenshotMode, AnnotationTransport } from "../relay/protocol";
|
|
5
|
+
export type AnnotationRequestOptions = {
|
|
6
|
+
sessionId?: string;
|
|
7
|
+
targetId?: string;
|
|
8
|
+
tabId?: number;
|
|
9
|
+
transport?: AnnotationTransport;
|
|
10
|
+
stored?: boolean;
|
|
11
|
+
includeScreenshots?: boolean;
|
|
12
|
+
url?: string;
|
|
13
|
+
screenshotMode?: AnnotationScreenshotMode;
|
|
14
|
+
debug?: boolean;
|
|
15
|
+
context?: string;
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
};
|
|
19
|
+
export declare class AnnotationManager {
|
|
20
|
+
private relay;
|
|
21
|
+
private config;
|
|
22
|
+
private manager?;
|
|
23
|
+
constructor(relay: RelayLike | undefined, config: OpenDevBrowserConfig, manager?: BrowserManagerLike);
|
|
24
|
+
setRelay(relay: RelayLike | undefined): void;
|
|
25
|
+
setBrowserManager(manager?: BrowserManagerLike): void;
|
|
26
|
+
requestAnnotation(options: AnnotationRequestOptions): Promise<AnnotationResponse>;
|
|
27
|
+
private requestStored;
|
|
28
|
+
private canFallbackToRelay;
|
|
29
|
+
private getRelayEndpoint;
|
|
30
|
+
private requestDirect;
|
|
31
|
+
private requestRelay;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=annotation-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-manager.d.ts","sourceRoot":"","sources":["../../src/browser/annotation-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAEV,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EAIpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAqB;gBAEzB,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAMpG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAI5C,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAI/C,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YA+BzE,aAAa;YAmBb,kBAAkB;IAehC,OAAO,CAAC,gBAAgB;YAKV,aAAa;YAoDb,YAAY;CAoM3B"}
|