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
|
@@ -1,122 +1,296 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: opendevbrowser-best-practices
|
|
3
|
-
description: This skill should be used when the user asks to
|
|
4
|
-
version:
|
|
3
|
+
description: This skill should be used when the user asks to design or run OpenDevBrowser provider workflows, scraping pipelines, QA/debug automation, parity checks across modes, or resilient browser operations with codified scripts and artifacts.
|
|
4
|
+
version: 2.5.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# OpenDevBrowser Best Practices
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
This is the primary battery pack for OpenDevBrowser operations.
|
|
10
|
+
|
|
11
|
+
Use this skill when you need:
|
|
12
|
+
- provider-oriented workflows (`web`, `community`, `social`),
|
|
13
|
+
- script-first runbooks,
|
|
14
|
+
- parity across `managed`, `extension`, `cdpConnect`,
|
|
15
|
+
- diagnostics for QA/debug (`console`, `network`, trace context),
|
|
16
|
+
- safe write flows with explicit policy notice.
|
|
17
|
+
|
|
18
|
+
## Pack Contents
|
|
19
|
+
|
|
20
|
+
- `artifacts/provider-workflows.md` — canonical provider execution flows.
|
|
21
|
+
- `artifacts/parity-gates.md` — mode/surface parity matrix and acceptance gates.
|
|
22
|
+
- `artifacts/debug-trace-playbook.md` — diagnostics workflow and trace bundle model.
|
|
23
|
+
- `artifacts/fingerprint-tiers.md` — hardening tiers and when to use each.
|
|
24
|
+
- `artifacts/macro-workflows.md` — macro design and expansion standards.
|
|
25
|
+
- `artifacts/browser-agent-known-issues-matrix.md` — known browser-agent failure modes mapped to required controls.
|
|
26
|
+
- `artifacts/command-channel-reference.md` — CLI/tool/`/ops`/`/canvas`/`/cdp` surface map plus cross-agent skill-sync targets.
|
|
27
|
+
- `artifacts/canvas-governance-playbook.md` — `/canvas` preflight, blocker, and feedback-evaluation guidance.
|
|
28
|
+
- `assets/templates/mode-flag-matrix.json` — mode + flag verification template.
|
|
29
|
+
- `assets/templates/ops-request-envelope.json` — `/ops` request envelope template.
|
|
30
|
+
- `assets/templates/cdp-forward-envelope.json` — `/cdp` relay envelope template.
|
|
31
|
+
- `assets/templates/robustness-checklist.json` — shared issue-status checklist for workflow robustness audits.
|
|
32
|
+
- `assets/templates/surface-audit-checklist.json` — docs/surface audit checklist template.
|
|
33
|
+
- `assets/templates/canvas-handshake-example.json` — canonical `/canvas` handshake example.
|
|
34
|
+
- `assets/templates/canvas-generation-plan.v1.json` — required `canvas.plan.set` request skeleton.
|
|
35
|
+
- `assets/templates/canvas-feedback-eval.json` — target-attributed feedback evaluation checklist.
|
|
36
|
+
- `assets/templates/canvas-blocker-checklist.json` — machine-readable blocker and warning audit map.
|
|
37
|
+
- `scripts/odb-workflow.sh` — prints codified command sequences by workflow.
|
|
38
|
+
- `scripts/run-robustness-audit.sh` — validates workflow skill coverage against known issue IDs.
|
|
39
|
+
- `scripts/validate-skill-assets.sh` — validates required artifacts/templates.
|
|
40
|
+
|
|
41
|
+
## Fast Start
|
|
42
|
+
|
|
43
|
+
1. Validate the skill pack:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh
|
|
47
|
+
```
|
|
10
48
|
|
|
11
|
-
|
|
49
|
+
2. Pick a workflow:
|
|
12
50
|
|
|
13
|
-
|
|
51
|
+
```bash
|
|
52
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh provider-crawl
|
|
53
|
+
```
|
|
14
54
|
|
|
15
|
-
|
|
16
|
-
2. Capture `opendevbrowser_snapshot`.
|
|
17
|
-
3. Select refs from that snapshot.
|
|
18
|
-
4. Execute one or more actions using refs.
|
|
19
|
-
5. Re-snapshot after navigation or major DOM change.
|
|
55
|
+
3. Execute the printed sequence with session-specific values.
|
|
20
56
|
|
|
21
|
-
|
|
57
|
+
4. Surface full controls directly from CLI help when auditing runtime accessibility:
|
|
22
58
|
|
|
23
|
-
|
|
59
|
+
```bash
|
|
60
|
+
npx opendevbrowser --help
|
|
61
|
+
npx opendevbrowser help
|
|
62
|
+
```
|
|
24
63
|
|
|
25
|
-
|
|
64
|
+
5. Run robustness coverage checks across workflow skills:
|
|
26
65
|
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
66
|
+
```bash
|
|
67
|
+
./skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh
|
|
68
|
+
```
|
|
30
69
|
|
|
31
|
-
|
|
70
|
+
## Agent Sync Targets
|
|
32
71
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
72
|
+
Skill-pack installation and discovery are synchronized for:
|
|
73
|
+
- `opencode` (`~/.config/opencode/skill`, project `./.opencode/skill`)
|
|
74
|
+
- `codex` (`$CODEX_HOME/skills` fallback `~/.codex/skills`, project `./.codex/skills`)
|
|
75
|
+
- `claudecode` (`$CLAUDECODE_HOME/skills` or `$CLAUDE_HOME/skills` fallback `~/.claude/skills`, project `./.claude/skills`)
|
|
76
|
+
- `ampcli` (`$AMPCLI_HOME/skills` or `$AMP_CLI_HOME/skills` or `$AMP_HOME/skills` fallback `~/.amp/skills`, project `./.amp/skills`)
|
|
38
77
|
|
|
39
|
-
|
|
78
|
+
Legacy compatibility aliases `claude` and `amp` are preserved in installer target metadata.
|
|
40
79
|
|
|
41
|
-
|
|
80
|
+
## Required Operating Rules
|
|
42
81
|
|
|
43
|
-
-
|
|
44
|
-
- Use
|
|
45
|
-
-
|
|
82
|
+
- Prefer refs from `opendevbrowser_snapshot` over raw selectors.
|
|
83
|
+
- Use one action per decision loop: snapshot -> action -> snapshot.
|
|
84
|
+
- Keep a single correlation context (`requestId`, `sessionId`) across a run.
|
|
85
|
+
- Run the same workflow shape across all three modes before claiming parity.
|
|
86
|
+
- Default to read/research workflows. Social posting probes remain disabled unless explicitly requested via matrix opt-in (`--include-social-posts`).
|
|
87
|
+
- Apply rate-limit/backoff discipline (`Retry-After` aware) whenever 429 pressure appears.
|
|
88
|
+
- Re-check extension readiness on resume when a run crosses idle windows.
|
|
46
89
|
|
|
47
|
-
|
|
48
|
-
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
49
|
-
```
|
|
90
|
+
## Parallel Operations (Reliable As-Is)
|
|
50
91
|
|
|
51
|
-
|
|
92
|
+
- Safe parallelism today is `session-per-worker` (one session per page/tab command stream).
|
|
93
|
+
- Keep each session single-writer for target/page actions; run commands serially inside that session.
|
|
94
|
+
- Do not run independent concurrent streams that alternate `target-use` within one session.
|
|
95
|
+
- Use default extension `/ops` for relay-backed concurrency; use `/cdp` only for legacy compatibility paths.
|
|
96
|
+
- For managed parallel runs with persisted profiles, use unique profile paths per session (or disable persistence) to avoid profile lock collisions.
|
|
97
|
+
- Treat extension headless attempts (`--extension-only --headless`) as expected `unsupported_mode`; route headless workloads through managed/cdpConnect instead.
|
|
98
|
+
- Before extension-mode runs, preflight `npx opendevbrowser status --daemon` and require `extensionConnected=true` plus `extensionHandshakeComplete=true`.
|
|
52
99
|
|
|
53
|
-
|
|
100
|
+
Operational references:
|
|
101
|
+
- `artifacts/provider-workflows.md` (see Workflow E)
|
|
102
|
+
- `scripts/odb-workflow.sh parallel-multipage-safe`
|
|
103
|
+
- `docs/CLI.md` (concurrency semantics)
|
|
104
|
+
- `docs/SURFACE_REFERENCE.md` (transport and policy constraints)
|
|
105
|
+
- `docs/TROUBLESHOOTING.md` (parallel crosstalk and profile-lock remediation)
|
|
54
106
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
107
|
+
## Known-Issue Robustness Baseline
|
|
108
|
+
|
|
109
|
+
- Source matrix: `artifacts/browser-agent-known-issues-matrix.md`
|
|
110
|
+
- Reusable checklist: `assets/templates/robustness-checklist.json`
|
|
111
|
+
- Coverage validator: `scripts/run-robustness-audit.sh`
|
|
112
|
+
|
|
113
|
+
Use issue IDs from the matrix in each workflow skill (`ISSUE-01` ... `ISSUE-12`) so robustness checks stay machine-verifiable and DRY.
|
|
114
|
+
|
|
115
|
+
## Provider Workflows (Codified)
|
|
116
|
+
|
|
117
|
+
### Provider Search Workflow
|
|
118
|
+
|
|
119
|
+
Goal: deterministic query + extraction from one provider.
|
|
58
120
|
|
|
59
121
|
```text
|
|
122
|
+
opendevbrowser_launch noExtension=true
|
|
123
|
+
opendevbrowser_goto sessionId="<session-id>" url="<provider-search-url>"
|
|
60
124
|
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
61
|
-
|
|
125
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
126
|
+
# extract targeted results using refs
|
|
127
|
+
opendevbrowser_network_poll sessionId="<session-id>" max=50
|
|
62
128
|
```
|
|
63
129
|
|
|
64
|
-
|
|
130
|
+
### Provider Crawl Workflow
|
|
131
|
+
|
|
132
|
+
Goal: multipage fetch + extraction with bounded depth.
|
|
65
133
|
|
|
66
134
|
```text
|
|
67
|
-
|
|
135
|
+
opendevbrowser_launch noExtension=true
|
|
136
|
+
opendevbrowser_goto sessionId="<session-id>" url="<seed-url>"
|
|
137
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
138
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
139
|
+
# capture links/data, enqueue next pages in host logic
|
|
140
|
+
opendevbrowser_scroll sessionId="<session-id>" dy=1000
|
|
141
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
68
142
|
```
|
|
69
143
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
Keep output scoped and cheap:
|
|
144
|
+
### QA Debug Workflow
|
|
73
145
|
|
|
74
|
-
|
|
75
|
-
- Use `opendevbrowser_dom_get_html` only for small targeted fragments.
|
|
76
|
-
- Use `opendevbrowser_get_attr` and `opendevbrowser_get_value` for structured field data.
|
|
146
|
+
Goal: isolate frontend regressions quickly.
|
|
77
147
|
|
|
78
148
|
```text
|
|
79
|
-
|
|
80
|
-
|
|
149
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
150
|
+
opendevbrowser_console_poll sessionId="<session-id>" max=100
|
|
151
|
+
opendevbrowser_network_poll sessionId="<session-id>" max=100
|
|
152
|
+
opendevbrowser_screenshot sessionId="<session-id>"
|
|
81
153
|
```
|
|
82
154
|
|
|
83
|
-
|
|
155
|
+
### Read-Only Social Validation Workflow
|
|
84
156
|
|
|
85
|
-
|
|
157
|
+
Goal: validate authenticated read/search capability without posting.
|
|
86
158
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
159
|
+
1. Connect and verify extension readiness (`extensionConnected` + handshake).
|
|
160
|
+
2. Navigate/search target social surface.
|
|
161
|
+
3. Capture `debug-trace-snapshot` and `network-poll` evidence.
|
|
162
|
+
4. Record blocker/auth status only (no write action).
|
|
90
163
|
|
|
91
|
-
|
|
92
|
-
opendevbrowser_console_poll sessionId="<session-id>"
|
|
93
|
-
opendevbrowser_network_poll sessionId="<session-id>" max=50
|
|
94
|
-
```
|
|
164
|
+
## Workflow Router Script
|
|
95
165
|
|
|
96
|
-
|
|
166
|
+
Use the router script to avoid retyping flows:
|
|
97
167
|
|
|
98
|
-
|
|
168
|
+
```bash
|
|
169
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh provider-search
|
|
170
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh provider-crawl
|
|
171
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh qa-debug
|
|
172
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh social-readonly-check
|
|
173
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh parity-check
|
|
174
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh surface-audit
|
|
175
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh ops-channel-check
|
|
176
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh cdp-channel-check
|
|
177
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh mode-flag-matrix
|
|
178
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh robustness-audit
|
|
179
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh canvas-preflight
|
|
180
|
+
./skills/opendevbrowser-best-practices/scripts/odb-workflow.sh canvas-feedback-eval
|
|
181
|
+
```
|
|
99
182
|
|
|
100
|
-
|
|
101
|
-
2. Re-wait for load or element state.
|
|
102
|
-
3. Retry action once with fresh refs.
|
|
103
|
-
4. Change mode (managed vs extension) only if failure is mode-specific.
|
|
183
|
+
## Modes and Surface Parity
|
|
104
184
|
|
|
105
|
-
|
|
185
|
+
Always run acceptance on:
|
|
186
|
+
- Modes: `managed`, `extension`, `cdpConnect`
|
|
187
|
+
- Surfaces: tool API, CLI, daemon RPC
|
|
106
188
|
|
|
107
|
-
|
|
189
|
+
Reference: `artifacts/parity-gates.md`
|
|
108
190
|
|
|
109
|
-
|
|
110
|
-
- Do not place secrets in scripts, skill files, or logs.
|
|
111
|
-
- Prefer minimal extraction over full-page dumps when handling sensitive pages.
|
|
191
|
+
Parity gate test:
|
|
112
192
|
|
|
113
|
-
|
|
193
|
+
```bash
|
|
194
|
+
npm run test -- tests/parity-matrix.test.ts
|
|
195
|
+
```
|
|
114
196
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
# interact with refs
|
|
121
|
-
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
197
|
+
Real-world provider+mode scenario harness (soak replacement):
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
npm run build
|
|
201
|
+
node scripts/provider-live-matrix.mjs --use-global-env --skip-live-regression --out artifacts/provider-live-realworld.json
|
|
122
202
|
```
|
|
203
|
+
|
|
204
|
+
Surface inventory source of truth:
|
|
205
|
+
- `docs/SURFACE_REFERENCE.md` (56 CLI commands, 49 tools, 38 `/ops` commands, 26 `/canvas` commands, `/cdp` envelope contracts; mirrored by `npx opendevbrowser --help` and `npx opendevbrowser help`)
|
|
206
|
+
- `artifacts/command-channel-reference.md` (skill-pack operational digest)
|
|
207
|
+
|
|
208
|
+
## Canvas Governance Handshake
|
|
209
|
+
|
|
210
|
+
Use the design-canvas surface when the workflow needs persisted design documents, explicit governance state, preview tabs, or overlay selection.
|
|
211
|
+
|
|
212
|
+
Recommended command order:
|
|
213
|
+
1. `opendevbrowser_canvas` or `opendevbrowser canvas --command canvas.session.open` to get `canvasSessionId`, `leaseId`, `preflightState`, governance block states, and generation-plan requirements.
|
|
214
|
+
2. Read the handshake before mutating. The handshake is the source of truth for:
|
|
215
|
+
- `governanceRequirements.requiredBeforeMutation`
|
|
216
|
+
- `governanceRequirements.requiredBeforeSave`
|
|
217
|
+
- `generationPlanRequirements.requiredBeforeMutation`
|
|
218
|
+
- `allowedLibraries`
|
|
219
|
+
- `mutationPolicy.allowedBeforePlan`
|
|
220
|
+
- treat `allowedLibraries.components`, `allowedLibraries.icons`, and `allowedLibraries.styling` as separate policy lanes:
|
|
221
|
+
`components` are reusable UI adapters such as `shadcn`,
|
|
222
|
+
`icons` are approved icon families,
|
|
223
|
+
`styling` is for utility/theme adapters such as `tailwindcss`
|
|
224
|
+
3. Submit `canvas.plan.set` with all required non-empty objects:
|
|
225
|
+
- `targetOutcome`
|
|
226
|
+
- `visualDirection`
|
|
227
|
+
- `layoutStrategy`
|
|
228
|
+
- `contentStrategy`
|
|
229
|
+
- `componentStrategy`
|
|
230
|
+
- `motionPosture`
|
|
231
|
+
- `responsivePosture`
|
|
232
|
+
- `accessibilityPosture`
|
|
233
|
+
- `validationTargets`
|
|
234
|
+
4. Only after the plan is accepted, call `canvas.document.patch`.
|
|
235
|
+
5. Use `canvas.preview.render`, `canvas.tab.open`, `canvas.overlay.mount`, and `canvas.overlay.select` when a browser-backed live view is required.
|
|
236
|
+
6. Use `canvas.feedback.poll` between mutation rounds and `canvas.document.save` or `canvas.document.export` to persist artifacts.
|
|
237
|
+
|
|
238
|
+
Code-sync surface:
|
|
239
|
+
- `canvas.session.attach` joins an existing canvas session as an `observer` or reclaims the write lease with `attachMode=lease_reclaim`.
|
|
240
|
+
- `canvas.code.bind`, `canvas.code.unbind`, `canvas.code.pull`, `canvas.code.push`, `canvas.code.status`, and `canvas.code.resolve` manage TSX-first document bindings when a canvas file is round-tripped to repo code.
|
|
241
|
+
|
|
242
|
+
Current `/canvas` parity notes:
|
|
243
|
+
- All 26 public `canvas.*` commands are agent-callable through `opendevbrowser_canvas` and `opendevbrowser canvas --command ...`.
|
|
244
|
+
- `canvas.feedback.subscribe` live streaming is public through the CLI only: use `--output-format stream-json` for the built-in polling bridge.
|
|
245
|
+
- Tool-driven agents can achieve the same behavior by calling `canvas.feedback.subscribe` once and then looping on `canvas.feedback.poll` with the returned cursor.
|
|
246
|
+
- `canvas.tab.sync` and `canvas.overlay.sync` are internal extension runtime helpers, not public commands.
|
|
247
|
+
- `canvas_html` is still the default preview/export contract. `bound_app_runtime` is opt-in and only valid when runtime preflight and app-side instrumentation succeed.
|
|
248
|
+
- Component and icon libraries currently render semantically, not package-faithfully. Treat `shadcn`, `tailwindcss`, `tabler`, `microsoft-fluent-ui-system-icons`, `3dicons`, and `@lobehub/fluent-emoji-3d` as metadata and constrained render lanes, not as general library import/export parity.
|
|
249
|
+
- Annotation remains a separate surface today, but popup and canvas both ship per-item and combined `Copy` / `Send` actions. The remaining gap is that `Send` persists payloads for later `annotate --stored` retrieval instead of proactively injecting them into the active agent chat.
|
|
250
|
+
|
|
251
|
+
Tailwind usage rule:
|
|
252
|
+
- When `allowedLibraries.styling` includes `tailwindcss`, use it for layout, spacing, responsive, and state styling over canonical tokens/theme variables.
|
|
253
|
+
- Do not treat Tailwind as a component inventory source or mix it into `componentStrategy.approvedLibraries`.
|
|
254
|
+
- Preview/export should materialize a deterministic utility-class layer and stay self-contained; do not depend on a remote Tailwind CDN for canvas preview correctness.
|
|
255
|
+
|
|
256
|
+
Failure handling:
|
|
257
|
+
- `plan_required`: immediately call `canvas.plan.set`.
|
|
258
|
+
- `revision_conflict`: reload with `canvas.document.load` and replay the patch batch against the latest revision.
|
|
259
|
+
- `unsupported_target` or `restricted_url`: move the preview to a normal http(s) tab or fall back to managed mode.
|
|
260
|
+
|
|
261
|
+
Operational references:
|
|
262
|
+
- `artifacts/canvas-governance-playbook.md`
|
|
263
|
+
- `assets/templates/canvas-handshake-example.json`
|
|
264
|
+
- `assets/templates/canvas-generation-plan.v1.json`
|
|
265
|
+
- `assets/templates/canvas-feedback-eval.json`
|
|
266
|
+
- `assets/templates/canvas-blocker-checklist.json`
|
|
267
|
+
|
|
268
|
+
## Diagnostics and Traceability
|
|
269
|
+
|
|
270
|
+
Current diagnostics tools:
|
|
271
|
+
- `opendevbrowser_console_poll`
|
|
272
|
+
- `opendevbrowser_network_poll`
|
|
273
|
+
- `opendevbrowser_debug_trace_snapshot` (combined page + console + network + exception channels)
|
|
274
|
+
|
|
275
|
+
Reference: `artifacts/debug-trace-playbook.md`
|
|
276
|
+
|
|
277
|
+
## Fingerprint Hardening
|
|
278
|
+
|
|
279
|
+
Apply the minimum tier that meets reliability goals.
|
|
280
|
+
|
|
281
|
+
- Tier 0: baseline deterministic automation.
|
|
282
|
+
- Tier 1: coherence profile (default recommended).
|
|
283
|
+
- Tier 2: runtime hardening.
|
|
284
|
+
- Tier 3: adaptive managed hardening (optional).
|
|
285
|
+
|
|
286
|
+
Reference: `artifacts/fingerprint-tiers.md`
|
|
287
|
+
|
|
288
|
+
## Macro Guidance
|
|
289
|
+
|
|
290
|
+
Use macros as normalized entrypoints for provider workflows.
|
|
291
|
+
|
|
292
|
+
- Keep macro definitions declarative and typed.
|
|
293
|
+
- Expand macros to canonical provider queries.
|
|
294
|
+
- Emit provenance metadata (`macro`, `resolvedQuery`, `provider`).
|
|
295
|
+
|
|
296
|
+
Reference: `artifacts/macro-workflows.md`
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Browser Agent Known-Issues Matrix
|
|
2
|
+
|
|
3
|
+
This matrix defines the minimum robustness controls for OpenDevBrowser workflow skills.
|
|
4
|
+
|
|
5
|
+
## Issue Controls
|
|
6
|
+
|
|
7
|
+
| ID | Known issue | Typical signals | Required controls | Evidence to capture |
|
|
8
|
+
|---|---|---|---|---|
|
|
9
|
+
| `ISSUE-01` | DOM churn invalidates refs | action fails after render, detached/stale element behavior, missing ref | enforce `snapshot -> one action -> snapshot`, retry once after fresh snapshot, avoid reusing refs across navigation | before/after snapshots + failing action + retry outcome |
|
|
10
|
+
| `ISSUE-02` | Frame/iframe boundaries hide interactive targets | expected refs not found in top document, challenge widget rendered in iframe | detect frame context before action, route frame-specific steps, checkpoint when cross-origin challenge frame blocks continuation | snapshot outline showing frame branch + checkpoint note |
|
|
11
|
+
| `ISSUE-03` | Popup/new-tab auth flows break linear scripts | click triggers new tab/popup, current tab loses focus | detect target/page changes, rebind to active auth target, verify post-auth return target | target/page list before and after auth click |
|
|
12
|
+
| `ISSUE-04` | Step-up auth and session expiry alter login path | MFA/passkey prompt appears, unexpected redirect to reauth | branch login state machine explicitly, validate >=2 independent auth success signals, validate reauth policy separately | auth signal log with URL, element, network confirmation |
|
|
13
|
+
| `ISSUE-05` | Anti-bot challenge loops stall automation | repeated challenge pages/widgets, repeated 403/429 around auth/submit | treat as checkpoint, never bypass, set loop budget, escalate after repeated challenge loops | challenge checkpoint log with timestamps and outcome |
|
|
14
|
+
| `ISSUE-06` | Rate-limit pressure and server backoff ignored | 429 responses, throttle banners, `Retry-After` headers | stop aggressive retries, honor `Retry-After`, bounded retry budget with cooldown windows | network poll evidence with status + backoff decision |
|
|
15
|
+
| `ISSUE-07` | MV3 extension service worker suspends state | extension relay disconnects after idle, handshake drop | re-check extension readiness before critical steps, include reconnect path and resumed snapshot checkpoint | daemon status (`extensionConnected`, `extensionHandshakeComplete`) before resume |
|
|
16
|
+
| `ISSUE-08` | Restricted origins and policy blocks | `chrome://` / extension pages blocked, unsupported origin errors | validate URL/domain eligibility before workflow, fail fast with actionable reason | blocked-origin decision in run log |
|
|
17
|
+
| `ISSUE-09` | Pagination drift and duplicate extraction | duplicate records across pages, endless loop/no page delta | canonical dedupe keys, terminal conditions, positive delta gate, checkpoint/resume metadata | pagination state + quality-gate report |
|
|
18
|
+
| `ISSUE-10` | Locale/currency parsing inconsistency | mixed currency symbols, malformed numbers | normalize currency/amount explicitly, avoid cross-currency comparison without conversion context | normalized records with currency and parse confidence |
|
|
19
|
+
| `ISSUE-11` | Discount anchor is weak or misleading | anchor price missing/untrusted, “sale” not below market | separate anchor discount from market discount, tag anchor confidence, require market-baseline confirmation | market analysis with anchor coverage and warnings |
|
|
20
|
+
| `ISSUE-12` | Stale price or unsupported claims in presentation assets | captured price outdated, marketing claims not traceable | enforce freshness checks, claim-to-evidence mapping, block unsupported superlatives | claims-evidence map + pricing timestamp |
|
|
21
|
+
|
|
22
|
+
## Skill Coverage Targets
|
|
23
|
+
|
|
24
|
+
- `opendevbrowser-login-automation`: `ISSUE-01`, `ISSUE-02`, `ISSUE-03`, `ISSUE-04`, `ISSUE-05`, `ISSUE-06`, `ISSUE-07`
|
|
25
|
+
- `opendevbrowser-form-testing`: `ISSUE-01`, `ISSUE-02`, `ISSUE-05`, `ISSUE-06`, `ISSUE-08`
|
|
26
|
+
- `opendevbrowser-data-extraction`: `ISSUE-01`, `ISSUE-06`, `ISSUE-08`, `ISSUE-09`, `ISSUE-10`
|
|
27
|
+
- `opendevbrowser-shopping`: `ISSUE-06`, `ISSUE-09`, `ISSUE-10`, `ISSUE-11`, `ISSUE-12`
|
|
28
|
+
- `opendevbrowser-product-presentation-asset`: `ISSUE-10`, `ISSUE-11`, `ISSUE-12`
|
|
29
|
+
- `opendevbrowser-research`: `ISSUE-06`, `ISSUE-09`, `ISSUE-10`, `ISSUE-12`
|
|
30
|
+
|
|
31
|
+
## Source Notes
|
|
32
|
+
|
|
33
|
+
- Playwright best practices (locator and timing stability): https://playwright.dev/docs/best-practices
|
|
34
|
+
- Playwright frames guidance: https://playwright.dev/docs/frames
|
|
35
|
+
- Playwright pages/popups guidance: https://playwright.dev/docs/pages
|
|
36
|
+
- Chrome extension MV3 service worker lifecycle: https://developer.chrome.com/docs/extensions/develop/concepts/service-workers/lifecycle
|
|
37
|
+
- HTTP 429 semantics and `Retry-After`: https://www.rfc-editor.org/rfc/rfc6585
|
|
38
|
+
- OWASP Authentication Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
|
|
39
|
+
- WCAG 2.2 (accessible authentication): https://www.w3.org/TR/WCAG22/
|
|
40
|
+
- Cloudflare Turnstile testing keys: https://developers.cloudflare.com/turnstile/tutorials/testing/
|
|
41
|
+
- reCAPTCHA testing keys: https://developers.google.com/recaptcha/docs/faq
|
|
42
|
+
- hCaptcha docs: https://docs.hcaptcha.com/
|
|
43
|
+
- RFC 9309 robots protocol: https://www.rfc-editor.org/rfc/rfc9309
|
|
44
|
+
- FTC deceptive pricing guide: https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-233
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Canvas Governance Playbook
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Use this playbook before any `/canvas` mutation and during every design-feedback loop. It keeps the runtime handshake, governance state, and evaluation rules aligned with the design-canvas spec.
|
|
6
|
+
|
|
7
|
+
## Required command order
|
|
8
|
+
|
|
9
|
+
1. `canvas.session.open`
|
|
10
|
+
2. Read the handshake and confirm `preflightState: "handshake_read"`
|
|
11
|
+
3. `canvas.plan.set`
|
|
12
|
+
4. `canvas.plan.get` or `canvas.capabilities.get` until the runtime reports `plan_accepted`
|
|
13
|
+
5. `canvas.document.patch`
|
|
14
|
+
6. `canvas.preview.render` or `canvas.tab.open`
|
|
15
|
+
7. `canvas.feedback.poll`
|
|
16
|
+
8. `canvas.document.save` or `canvas.document.export`
|
|
17
|
+
|
|
18
|
+
Mutation is blocked until the handshake has been read and the plan is accepted. A save is still invalid when required governance blocks remain missing in `requiredBeforeSave`.
|
|
19
|
+
|
|
20
|
+
## Handshake requirements
|
|
21
|
+
|
|
22
|
+
Every `canvas.session.open` response is the runtime contract. Read these fields before sending a patch:
|
|
23
|
+
|
|
24
|
+
- `canvasSessionId`
|
|
25
|
+
- `browserSessionId`
|
|
26
|
+
- `documentId`
|
|
27
|
+
- `leaseId`
|
|
28
|
+
- `preflightState`
|
|
29
|
+
- `governanceRequirements.requiredBeforeMutation`
|
|
30
|
+
- `governanceRequirements.requiredBeforeSave`
|
|
31
|
+
- `generationPlanRequirements.requiredBeforeMutation`
|
|
32
|
+
- `allowedLibraries`
|
|
33
|
+
- `allowedBeforePlan`
|
|
34
|
+
|
|
35
|
+
Interpret `allowedLibraries` by lane:
|
|
36
|
+
- `components` are reusable UI adapters such as `shadcn`
|
|
37
|
+
- `icons` are approved icon families
|
|
38
|
+
- `styling` is for utility/theme adapters such as `tailwindcss`
|
|
39
|
+
- do not mix icon or styling libraries into `componentStrategy.approvedLibraries`
|
|
40
|
+
|
|
41
|
+
Preflight states:
|
|
42
|
+
- `handshake_read`
|
|
43
|
+
- `plan_submitted`
|
|
44
|
+
- `plan_accepted`
|
|
45
|
+
- `patching_enabled`
|
|
46
|
+
|
|
47
|
+
## Governance blocks
|
|
48
|
+
|
|
49
|
+
The document must declare `designGovernance` with at least:
|
|
50
|
+
|
|
51
|
+
- `intent`
|
|
52
|
+
- `designLanguage`
|
|
53
|
+
- `contentModel`
|
|
54
|
+
- `layoutSystem`
|
|
55
|
+
- `typographySystem`
|
|
56
|
+
- `colorSystem`
|
|
57
|
+
- `surfaceSystem`
|
|
58
|
+
- `iconSystem`
|
|
59
|
+
- `motionSystem`
|
|
60
|
+
- `responsiveSystem`
|
|
61
|
+
- `accessibilityPolicy`
|
|
62
|
+
- `libraryPolicy`
|
|
63
|
+
- `runtimeBudgets`
|
|
64
|
+
|
|
65
|
+
The first accepted `generationPlan` must include:
|
|
66
|
+
|
|
67
|
+
- `targetOutcome`
|
|
68
|
+
- `visualDirection`
|
|
69
|
+
- `layoutStrategy`
|
|
70
|
+
- `contentStrategy`
|
|
71
|
+
- `componentStrategy`
|
|
72
|
+
- `motionPosture`
|
|
73
|
+
- `responsivePosture`
|
|
74
|
+
- `accessibilityPosture`
|
|
75
|
+
- `validationTargets`
|
|
76
|
+
|
|
77
|
+
## Blocker handling
|
|
78
|
+
|
|
79
|
+
Canonical blocker path:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"code": "plan_required",
|
|
84
|
+
"blockingCommand": "canvas.document.patch",
|
|
85
|
+
"requiredNextCommands": ["canvas.plan.set"],
|
|
86
|
+
"details": { "auditId": "CANVAS-01" }
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
If `canvas.document.patch` or `canvas.document.save` returns a blocker, stop mutating and fix the missing handshake, governance, or plan requirement before retrying.
|
|
91
|
+
|
|
92
|
+
## Canvas robustness issue classes
|
|
93
|
+
|
|
94
|
+
| Audit ID | Failure class | Typical signal | Required response |
|
|
95
|
+
|---|---|---|---|
|
|
96
|
+
| `CANVAS-01` | Handshake missing or unread before mutation | `plan_required`, missing `handshake_read` evidence | Re-run `canvas.session.open` or `canvas.capabilities.get`, then `canvas.plan.set` |
|
|
97
|
+
| `CANVAS-02` | Required governance block missing | save blocker, empty `requiredBeforeSave`, validation warning | Fill missing `designGovernance.*` fields before save/export |
|
|
98
|
+
| `CANVAS-03` | Required `generationPlan` field missing or malformed | `canvas.plan.set` rejected or warnings retained | Submit a complete plan and wait for acceptance |
|
|
99
|
+
| `CANVAS-04` | Library or icon-policy violation | validation warning, policy blocker, downgraded export | Adjust component/library choice to match `libraryPolicy` and `iconSystem` |
|
|
100
|
+
| `CANVAS-05` | Unsupported target or overlay mount failure | `unsupported_target`, `restricted_url`, overlay mount error | Move to a normal http(s) preview target or managed mode |
|
|
101
|
+
| `CANVAS-06` | Runtime budget exceeded or preview downgrade ignored | degrade warning, overflowed media/fonts/telemetry budget | Reduce preview cost or accept the downgrade before proceeding |
|
|
102
|
+
| `CANVAS-07` | Feedback missing target attribution or validation metadata | feedback lacks `targetId`, `pageId`, `class`, or `evidenceRefs` | Re-poll or fix the feedback source before trusting the result |
|
|
103
|
+
|
|
104
|
+
## Feedback evaluation loop
|
|
105
|
+
|
|
106
|
+
Required categories:
|
|
107
|
+
|
|
108
|
+
- `render`
|
|
109
|
+
- `console`
|
|
110
|
+
- `network`
|
|
111
|
+
- `validation`
|
|
112
|
+
- `performance`
|
|
113
|
+
- `asset`
|
|
114
|
+
- `export`
|
|
115
|
+
|
|
116
|
+
Required fields per feedback item:
|
|
117
|
+
|
|
118
|
+
- `documentId`
|
|
119
|
+
- `pageId`
|
|
120
|
+
- `prototypeId`
|
|
121
|
+
- `targetId`
|
|
122
|
+
- `documentRevision`
|
|
123
|
+
- `severity`
|
|
124
|
+
- `class`
|
|
125
|
+
- `message`
|
|
126
|
+
- `evidenceRefs`
|
|
127
|
+
|
|
128
|
+
Streaming checks:
|
|
129
|
+
|
|
130
|
+
- `feedback.item` carries the canonical feedback payload
|
|
131
|
+
- `feedback.heartbeat` proves the subscription is still alive
|
|
132
|
+
- `feedback.complete` explains why the stream ended
|
|
133
|
+
|
|
134
|
+
## Router and template references
|
|
135
|
+
|
|
136
|
+
- `scripts/odb-workflow.sh canvas-preflight`
|
|
137
|
+
- `scripts/odb-workflow.sh canvas-feedback-eval`
|
|
138
|
+
- `assets/templates/canvas-handshake-example.json`
|
|
139
|
+
- `assets/templates/canvas-generation-plan.v1.json`
|
|
140
|
+
- `assets/templates/canvas-feedback-eval.json`
|
|
141
|
+
- `assets/templates/canvas-blocker-checklist.json`
|