opendevbrowser 0.0.15 → 0.0.16
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 +229 -34
- 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 +30 -0
- package/dist/browser/annotation-manager.d.ts.map +1 -0
- package/dist/browser/browser-manager.d.ts +397 -0
- package/dist/browser/browser-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 +3 -0
- package/dist/browser/manager-types.d.ts.map +1 -0
- package/dist/browser/ops-browser-manager.d.ts +131 -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/chunk-7W3SPXIB.js +166 -0
- package/dist/chunk-7W3SPXIB.js.map +1 -0
- package/dist/chunk-ST7CO5FA.js +18668 -0
- package/dist/chunk-ST7CO5FA.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 +27 -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/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 +17 -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 +7 -0
- package/dist/cli/commands/export/clone-component.d.ts.map +1 -0
- package/dist/cli/commands/export/clone-page.d.ts +7 -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 +82 -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 +59 -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 +19 -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 +28 -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 +2205 -267
- 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-manager.d.ts +96 -0
- package/dist/cli/remote-manager.d.ts.map +1 -0
- package/dist/cli/remote-relay.d.ts +17 -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 +8 -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 +34 -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/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +867 -87
- 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-NUBRM44Y.js +399 -0
- package/dist/macros-NUBRM44Y.js.map +1 -0
- package/dist/opendevbrowser.d.ts +3 -4
- package/dist/opendevbrowser.d.ts.map +1 -0
- package/dist/opendevbrowser.js +867 -87
- 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/relay/protocol.d.ts +317 -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 +111 -0
- package/dist/relay/relay-server.d.ts.map +1 -0
- package/dist/relay/relay-types.d.ts +9 -0
- package/dist/relay/relay-types.d.ts.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/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 +26 -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 +16 -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 +4 -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/dist/background.js +10 -4
- package/extension/dist/ops/ops-runtime.js +506 -4
- package/extension/dist/ops/ops-session-store.js +16 -2
- package/extension/dist/ops/parallelism-governor.js +117 -0
- package/extension/dist/ops/snapshot-shared.js +21 -5
- package/extension/dist/services/CDPRouter.js +70 -5
- package/extension/dist/services/ConnectionManager.js +5 -3
- 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/package.json +25 -16
- 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 +17 -8
- package/skills/opendevbrowser-best-practices/SKILL.md +178 -72
- package/skills/opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md +44 -0
- package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +95 -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/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 +79 -0
- package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +24 -0
- package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +144 -0
- package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +83 -0
- package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +93 -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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
+
skills_root="$(cd "$root/.." && pwd)"
|
|
6
|
+
matrix_ref="../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md"
|
|
7
|
+
|
|
8
|
+
usage() {
|
|
9
|
+
cat <<'HELP'
|
|
10
|
+
Run robustness audit checks across opendevbrowser workflow skill packs.
|
|
11
|
+
|
|
12
|
+
Usage:
|
|
13
|
+
./skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh [skill-name]
|
|
14
|
+
|
|
15
|
+
Examples:
|
|
16
|
+
./skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh
|
|
17
|
+
./skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh opendevbrowser-shopping
|
|
18
|
+
HELP
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
skills=(
|
|
22
|
+
"opendevbrowser-login-automation:ISSUE-01 ISSUE-02 ISSUE-03 ISSUE-04 ISSUE-05 ISSUE-06 ISSUE-07"
|
|
23
|
+
"opendevbrowser-form-testing:ISSUE-01 ISSUE-02 ISSUE-05 ISSUE-06 ISSUE-08"
|
|
24
|
+
"opendevbrowser-data-extraction:ISSUE-01 ISSUE-06 ISSUE-08 ISSUE-09 ISSUE-10"
|
|
25
|
+
"opendevbrowser-shopping:ISSUE-06 ISSUE-09 ISSUE-10 ISSUE-11 ISSUE-12"
|
|
26
|
+
"opendevbrowser-product-presentation-asset:ISSUE-10 ISSUE-11 ISSUE-12"
|
|
27
|
+
"opendevbrowser-research:ISSUE-06 ISSUE-09 ISSUE-10 ISSUE-12"
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
status=0
|
|
31
|
+
target="${1:-all}"
|
|
32
|
+
|
|
33
|
+
if [[ "$target" == "-h" || "$target" == "--help" ]]; then
|
|
34
|
+
usage
|
|
35
|
+
exit 0
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
found_target=0
|
|
39
|
+
for entry in "${skills[@]}"; do
|
|
40
|
+
skill="${entry%%:*}"
|
|
41
|
+
expected="${entry#*:}"
|
|
42
|
+
if [[ "$target" != "all" && "$skill" != "$target" ]]; then
|
|
43
|
+
continue
|
|
44
|
+
fi
|
|
45
|
+
found_target=1
|
|
46
|
+
|
|
47
|
+
skill_file="$skills_root/$skill/SKILL.md"
|
|
48
|
+
if [[ ! -f "$skill_file" ]]; then
|
|
49
|
+
echo "Missing SKILL.md: $skill_file" >&2
|
|
50
|
+
status=1
|
|
51
|
+
continue
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
if ! grep -Fq "Robustness Coverage (Known-Issue Matrix)" "$skill_file"; then
|
|
55
|
+
echo "[$skill] missing robustness coverage section" >&2
|
|
56
|
+
status=1
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
if ! grep -Fq "$matrix_ref" "$skill_file"; then
|
|
60
|
+
echo "[$skill] missing matrix reference: $matrix_ref" >&2
|
|
61
|
+
status=1
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
for issue_id in $expected; do
|
|
65
|
+
if ! grep -Fq "$issue_id" "$skill_file"; then
|
|
66
|
+
echo "[$skill] missing issue id: $issue_id" >&2
|
|
67
|
+
status=1
|
|
68
|
+
fi
|
|
69
|
+
done
|
|
70
|
+
|
|
71
|
+
done
|
|
72
|
+
|
|
73
|
+
if [[ "$target" != "all" && $found_target -eq 0 ]]; then
|
|
74
|
+
echo "Unknown skill: $target" >&2
|
|
75
|
+
usage
|
|
76
|
+
exit 2
|
|
77
|
+
fi
|
|
78
|
+
|
|
79
|
+
if [[ $status -ne 0 ]]; then
|
|
80
|
+
exit $status
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
echo "Robustness audit checks passed for ${target}."
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
skill_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
+
skill_file="$skill_root/SKILL.md"
|
|
6
|
+
|
|
7
|
+
required_paths=(
|
|
8
|
+
"artifacts/provider-workflows.md"
|
|
9
|
+
"artifacts/parity-gates.md"
|
|
10
|
+
"artifacts/debug-trace-playbook.md"
|
|
11
|
+
"artifacts/fingerprint-tiers.md"
|
|
12
|
+
"artifacts/macro-workflows.md"
|
|
13
|
+
"artifacts/browser-agent-known-issues-matrix.md"
|
|
14
|
+
"artifacts/command-channel-reference.md"
|
|
15
|
+
"assets/templates/mode-flag-matrix.json"
|
|
16
|
+
"assets/templates/ops-request-envelope.json"
|
|
17
|
+
"assets/templates/cdp-forward-envelope.json"
|
|
18
|
+
"assets/templates/robustness-checklist.json"
|
|
19
|
+
"assets/templates/surface-audit-checklist.json"
|
|
20
|
+
"scripts/odb-workflow.sh"
|
|
21
|
+
"scripts/run-robustness-audit.sh"
|
|
22
|
+
"scripts/validate-skill-assets.sh"
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
json_templates=(
|
|
26
|
+
"assets/templates/mode-flag-matrix.json"
|
|
27
|
+
"assets/templates/ops-request-envelope.json"
|
|
28
|
+
"assets/templates/cdp-forward-envelope.json"
|
|
29
|
+
"assets/templates/robustness-checklist.json"
|
|
30
|
+
"assets/templates/surface-audit-checklist.json"
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
command_ref_markers=(
|
|
34
|
+
'CLI commands: `55`'
|
|
35
|
+
'Plugin tools: `48`'
|
|
36
|
+
'`/ops` command names: `38`'
|
|
37
|
+
'docs/SURFACE_REFERENCE.md'
|
|
38
|
+
'opencode'
|
|
39
|
+
'codex'
|
|
40
|
+
'claudecode'
|
|
41
|
+
'ampcli'
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
status=0
|
|
45
|
+
|
|
46
|
+
for rel_path in "${required_paths[@]}"; do
|
|
47
|
+
full_path="$skill_root/$rel_path"
|
|
48
|
+
if [[ ! -f "$full_path" ]]; then
|
|
49
|
+
echo "Missing required asset: $rel_path" >&2
|
|
50
|
+
status=1
|
|
51
|
+
fi
|
|
52
|
+
done
|
|
53
|
+
|
|
54
|
+
for rel_path in "scripts/odb-workflow.sh" "scripts/run-robustness-audit.sh" "scripts/validate-skill-assets.sh"; do
|
|
55
|
+
full_path="$skill_root/$rel_path"
|
|
56
|
+
if [[ -f "$full_path" && ! -x "$full_path" ]]; then
|
|
57
|
+
echo "Script is not executable: $rel_path" >&2
|
|
58
|
+
status=1
|
|
59
|
+
fi
|
|
60
|
+
done
|
|
61
|
+
|
|
62
|
+
for rel_path in "${json_templates[@]}"; do
|
|
63
|
+
full_path="$skill_root/$rel_path"
|
|
64
|
+
if [[ -f "$full_path" ]]; then
|
|
65
|
+
if ! node -e 'const fs=require("fs"); JSON.parse(fs.readFileSync(process.argv[1], "utf8"));' "$full_path" >/dev/null 2>&1; then
|
|
66
|
+
echo "Invalid JSON template: $rel_path" >&2
|
|
67
|
+
status=1
|
|
68
|
+
fi
|
|
69
|
+
fi
|
|
70
|
+
done
|
|
71
|
+
|
|
72
|
+
for rel_path in "${required_paths[@]}"; do
|
|
73
|
+
if ! grep -Fq "$rel_path" "$skill_file"; then
|
|
74
|
+
echo "SKILL.md missing reference: $rel_path" >&2
|
|
75
|
+
status=1
|
|
76
|
+
fi
|
|
77
|
+
done
|
|
78
|
+
|
|
79
|
+
command_ref_path="$skill_root/artifacts/command-channel-reference.md"
|
|
80
|
+
if [[ -f "$command_ref_path" ]]; then
|
|
81
|
+
for marker in "${command_ref_markers[@]}"; do
|
|
82
|
+
if ! grep -Fq "$marker" "$command_ref_path"; then
|
|
83
|
+
echo "Command/channel reference missing marker: $marker" >&2
|
|
84
|
+
status=1
|
|
85
|
+
fi
|
|
86
|
+
done
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
if [[ $status -ne 0 ]]; then
|
|
90
|
+
exit $status
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
echo "Skill assets validated: ${#required_paths[@]} files referenced/present, ${#json_templates[@]} JSON templates parsed."
|
|
@@ -8,6 +8,16 @@ version: 1.1.0
|
|
|
8
8
|
|
|
9
9
|
Use this guide to maintain compaction-safe project state in `CONTINUITY.md`.
|
|
10
10
|
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
Use this skill when any of these are true:
|
|
14
|
+
|
|
15
|
+
- Work is multi-step or long-running.
|
|
16
|
+
- Context compaction or session handoff is likely.
|
|
17
|
+
- Multiple agents are coordinating the same task.
|
|
18
|
+
|
|
19
|
+
Start with `opendevbrowser-best-practices` quick start for execution. Switch here once continuity tracking is required.
|
|
20
|
+
|
|
11
21
|
## Ownership Rules
|
|
12
22
|
|
|
13
23
|
Apply these rules exactly:
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opendevbrowser-data-extraction
|
|
3
|
+
description: This skill should be used when the user asks to "extract data from a page", "scrape tables", "collect paginated results", "parse list/card content", or "export structured web data" with OpenDevBrowser.
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Data Extraction Skill
|
|
8
|
+
|
|
9
|
+
Use this skill to extract structured, auditable datasets from dynamic pages with compliance-aware workflows.
|
|
10
|
+
|
|
11
|
+
## Pack Contents
|
|
12
|
+
|
|
13
|
+
- `artifacts/extraction-workflows.md`
|
|
14
|
+
- `assets/templates/extraction-schema.json`
|
|
15
|
+
- `assets/templates/pagination-state.json`
|
|
16
|
+
- `assets/templates/quality-gates.json`
|
|
17
|
+
- `assets/templates/compliance-checklist.md`
|
|
18
|
+
- `scripts/run-extraction-workflow.sh`
|
|
19
|
+
- `scripts/validate-skill-assets.sh`
|
|
20
|
+
- Shared robustness matrix: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
|
|
21
|
+
|
|
22
|
+
## Fast Start
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
./skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh
|
|
26
|
+
./skills/opendevbrowser-data-extraction/scripts/run-extraction-workflow.sh list
|
|
27
|
+
./skills/opendevbrowser-data-extraction/scripts/run-extraction-workflow.sh pagination
|
|
28
|
+
./skills/opendevbrowser-data-extraction/scripts/run-extraction-workflow.sh infinite-scroll
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Core Rules
|
|
32
|
+
|
|
33
|
+
- Define schema before extraction.
|
|
34
|
+
- Track provenance for each record (`source_url`, `provider`, `captured_at`, `page`).
|
|
35
|
+
- Prefer embedded structured data (JSON-LD/microdata) where available.
|
|
36
|
+
- Stop on sustained anti-bot pressure (repeated 403/429/challenge loops).
|
|
37
|
+
- Honor `Retry-After` and preserve checkpoint state before retrying pagination.
|
|
38
|
+
|
|
39
|
+
## Parallel Multitab Alignment
|
|
40
|
+
|
|
41
|
+
- Apply shared concurrency policy from `../opendevbrowser-best-practices/SKILL.md` ("Parallel Operations").
|
|
42
|
+
- Run extraction acceptance on `managed`, `extension`, and `cdpConnect` before claiming mode parity.
|
|
43
|
+
- Keep one session per worker; avoid interleaving `target-use` streams inside a single session.
|
|
44
|
+
|
|
45
|
+
## Robustness Coverage (Known-Issue Matrix)
|
|
46
|
+
|
|
47
|
+
Matrix source: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
|
|
48
|
+
|
|
49
|
+
- `ISSUE-01`: stale refs after dynamic content updates
|
|
50
|
+
- `ISSUE-06`: 429/backoff and retry budgeting
|
|
51
|
+
- `ISSUE-08`: blocked/restricted origins and policy checks
|
|
52
|
+
- `ISSUE-09`: pagination drift, duplicate accumulation, terminal detection
|
|
53
|
+
- `ISSUE-10`: locale/currency parsing consistency
|
|
54
|
+
|
|
55
|
+
## Extraction Planning
|
|
56
|
+
|
|
57
|
+
1. Define required fields and null policy.
|
|
58
|
+
2. Snapshot and map refs to schema.
|
|
59
|
+
3. Choose pagination strategy.
|
|
60
|
+
4. Apply quality gates each page.
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Structured Data First
|
|
67
|
+
|
|
68
|
+
Attempt extraction in this order:
|
|
69
|
+
1. JSON-LD product/article blocks
|
|
70
|
+
2. semantic table/list/card DOM
|
|
71
|
+
3. fallback text parsing
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
opendevbrowser_dom_get_text sessionId="<session-id>" ref="<json-ld-ref>"
|
|
75
|
+
opendevbrowser_dom_get_html sessionId="<session-id>" ref="<table-ref>"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Pagination Patterns
|
|
79
|
+
|
|
80
|
+
### Numbered/Next pagination
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
opendevbrowser_click sessionId="<session-id>" ref="<next-ref>"
|
|
84
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
85
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Infinite scroll
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
opendevbrowser_scroll sessionId="<session-id>" dy=1000
|
|
92
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Load more
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
opendevbrowser_click sessionId="<session-id>" ref="<load-more-ref>"
|
|
99
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Quality Gates
|
|
103
|
+
|
|
104
|
+
Apply per page:
|
|
105
|
+
- dedupe by stable key (URL or canonical ID)
|
|
106
|
+
- null-rate check for required fields
|
|
107
|
+
- count delta check (new records must increase)
|
|
108
|
+
- consistency check for currency/units
|
|
109
|
+
- max consecutive challenge/429 loops before stop
|
|
110
|
+
|
|
111
|
+
Use `assets/templates/quality-gates.json`.
|
|
112
|
+
|
|
113
|
+
## Compliance and Safety
|
|
114
|
+
|
|
115
|
+
- Respect robots and site terms.
|
|
116
|
+
- Use pacing; do not flood endpoints.
|
|
117
|
+
- Treat robots as policy guidance, not auth.
|
|
118
|
+
- Stop or back off on repeated 429/403 and challenges.
|
|
119
|
+
|
|
120
|
+
## References
|
|
121
|
+
|
|
122
|
+
- RFC 9309 (robots protocol): https://www.rfc-editor.org/rfc/rfc9309
|
|
123
|
+
- Google robots docs: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
|
|
124
|
+
- Schema.org Offer: https://schema.org/Offer
|
|
125
|
+
- Google Product structured data: https://developers.google.com/search/docs/appearance/structured-data/product-snippet
|
|
126
|
+
- Playwright best practices: https://playwright.dev/docs/best-practices
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Extraction Workflows
|
|
2
|
+
|
|
3
|
+
## List/Card workflow
|
|
4
|
+
|
|
5
|
+
1. Snapshot actionables
|
|
6
|
+
2. Map repeating nodes
|
|
7
|
+
3. Extract title/price/link fields
|
|
8
|
+
4. Normalize and dedupe records
|
|
9
|
+
5. Record parse confidence and currency normalization status
|
|
10
|
+
|
|
11
|
+
## Table workflow
|
|
12
|
+
|
|
13
|
+
1. Wait for table visibility
|
|
14
|
+
2. Extract table HTML
|
|
15
|
+
3. Parse rows/cells in host process
|
|
16
|
+
4. Validate schema completeness
|
|
17
|
+
|
|
18
|
+
## Pagination workflow
|
|
19
|
+
|
|
20
|
+
1. Extract current page
|
|
21
|
+
2. Advance page
|
|
22
|
+
3. Wait + snapshot
|
|
23
|
+
4. Repeat until terminal condition
|
|
24
|
+
5. Persist checkpoint state every page
|
|
25
|
+
|
|
26
|
+
## Anti-bot pressure workflow
|
|
27
|
+
|
|
28
|
+
1. Detect repeated 403/429/challenge
|
|
29
|
+
2. Parse and honor `Retry-After` if present
|
|
30
|
+
3. Slow down / cooldown and resume from last checkpoint
|
|
31
|
+
4. Stop and report if pressure persists after bounded retries
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"max_required_null_rate": 0.05,
|
|
3
|
+
"max_duplicate_rate": 0.02,
|
|
4
|
+
"require_positive_page_delta": true,
|
|
5
|
+
"max_consecutive_empty_pages": 2,
|
|
6
|
+
"max_consecutive_challenge_loops": 2,
|
|
7
|
+
"max_retries_per_page": 2,
|
|
8
|
+
"respect_retry_after": true,
|
|
9
|
+
"stop_on_repeated_anti_bot_signals": true
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dataset": "shopping_offers",
|
|
3
|
+
"required_fields": [
|
|
4
|
+
"title",
|
|
5
|
+
"url",
|
|
6
|
+
"price"
|
|
7
|
+
],
|
|
8
|
+
"optional_fields": [
|
|
9
|
+
"rating",
|
|
10
|
+
"reviews_count",
|
|
11
|
+
"availability"
|
|
12
|
+
],
|
|
13
|
+
"field_types": {
|
|
14
|
+
"title": "string",
|
|
15
|
+
"url": "string",
|
|
16
|
+
"price": "number",
|
|
17
|
+
"rating": "number"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
print_help() {
|
|
5
|
+
cat <<'HELP'
|
|
6
|
+
Data extraction workflow router
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
./skills/opendevbrowser-data-extraction/scripts/run-extraction-workflow.sh <workflow>
|
|
10
|
+
|
|
11
|
+
Workflows:
|
|
12
|
+
list
|
|
13
|
+
table
|
|
14
|
+
pagination
|
|
15
|
+
infinite-scroll
|
|
16
|
+
load-more
|
|
17
|
+
anti-bot-pressure
|
|
18
|
+
checkpoint-resume
|
|
19
|
+
list-workflows
|
|
20
|
+
HELP
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
workflow="${1:-list-workflows}"
|
|
24
|
+
|
|
25
|
+
case "$workflow" in
|
|
26
|
+
list-workflows)
|
|
27
|
+
print_help
|
|
28
|
+
;;
|
|
29
|
+
list)
|
|
30
|
+
cat <<'FLOW'
|
|
31
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
32
|
+
opendevbrowser_dom_get_text sessionId="<session-id>" ref="<item-title-ref>"
|
|
33
|
+
opendevbrowser_get_attr sessionId="<session-id>" ref="<item-link-ref>" name="href"
|
|
34
|
+
FLOW
|
|
35
|
+
;;
|
|
36
|
+
table)
|
|
37
|
+
cat <<'FLOW'
|
|
38
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
39
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
40
|
+
opendevbrowser_dom_get_html sessionId="<session-id>" ref="<table-ref>"
|
|
41
|
+
FLOW
|
|
42
|
+
;;
|
|
43
|
+
pagination)
|
|
44
|
+
cat <<'FLOW'
|
|
45
|
+
opendevbrowser_click sessionId="<session-id>" ref="<next-ref>"
|
|
46
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
47
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
48
|
+
FLOW
|
|
49
|
+
;;
|
|
50
|
+
infinite-scroll)
|
|
51
|
+
cat <<'FLOW'
|
|
52
|
+
opendevbrowser_scroll sessionId="<session-id>" dy=1000
|
|
53
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
54
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
55
|
+
FLOW
|
|
56
|
+
;;
|
|
57
|
+
load-more)
|
|
58
|
+
cat <<'FLOW'
|
|
59
|
+
opendevbrowser_click sessionId="<session-id>" ref="<load-more-ref>"
|
|
60
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
61
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
62
|
+
FLOW
|
|
63
|
+
;;
|
|
64
|
+
anti-bot-pressure)
|
|
65
|
+
cat <<'FLOW'
|
|
66
|
+
opendevbrowser_network_poll sessionId="<session-id>" max=100
|
|
67
|
+
# Stop or back off on repeated 403/429/challenge signals; honor Retry-After.
|
|
68
|
+
FLOW
|
|
69
|
+
;;
|
|
70
|
+
checkpoint-resume)
|
|
71
|
+
cat <<'FLOW'
|
|
72
|
+
# Resume from stored pagination checkpoint token/page index.
|
|
73
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
74
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
75
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
76
|
+
FLOW
|
|
77
|
+
;;
|
|
78
|
+
*)
|
|
79
|
+
echo "Unknown workflow: $workflow" >&2
|
|
80
|
+
print_help
|
|
81
|
+
exit 2
|
|
82
|
+
;;
|
|
83
|
+
esac
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
+
skill_file="$root/SKILL.md"
|
|
6
|
+
|
|
7
|
+
required=(
|
|
8
|
+
"artifacts/extraction-workflows.md"
|
|
9
|
+
"assets/templates/extraction-schema.json"
|
|
10
|
+
"assets/templates/pagination-state.json"
|
|
11
|
+
"assets/templates/quality-gates.json"
|
|
12
|
+
"assets/templates/compliance-checklist.md"
|
|
13
|
+
"scripts/run-extraction-workflow.sh"
|
|
14
|
+
"scripts/validate-skill-assets.sh"
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
status=0
|
|
18
|
+
for rel in "${required[@]}"; do
|
|
19
|
+
if [[ ! -f "$root/$rel" ]]; then
|
|
20
|
+
echo "Missing required asset: $rel" >&2
|
|
21
|
+
status=1
|
|
22
|
+
fi
|
|
23
|
+
if ! grep -Fq "$rel" "$skill_file"; then
|
|
24
|
+
echo "SKILL.md missing reference: $rel" >&2
|
|
25
|
+
status=1
|
|
26
|
+
fi
|
|
27
|
+
done
|
|
28
|
+
|
|
29
|
+
for rel in scripts/run-extraction-workflow.sh scripts/validate-skill-assets.sh; do
|
|
30
|
+
if [[ -f "$root/$rel" && ! -x "$root/$rel" ]]; then
|
|
31
|
+
echo "Script is not executable: $rel" >&2
|
|
32
|
+
status=1
|
|
33
|
+
fi
|
|
34
|
+
done
|
|
35
|
+
|
|
36
|
+
for rel in assets/templates/extraction-schema.json assets/templates/pagination-state.json assets/templates/quality-gates.json; do
|
|
37
|
+
if [[ -f "$root/$rel" ]]; then
|
|
38
|
+
if ! node -e 'const fs=require("fs"); JSON.parse(fs.readFileSync(process.argv[1], "utf8"));' "$root/$rel" >/dev/null 2>&1; then
|
|
39
|
+
echo "Invalid JSON template: $rel" >&2
|
|
40
|
+
status=1
|
|
41
|
+
fi
|
|
42
|
+
fi
|
|
43
|
+
done
|
|
44
|
+
|
|
45
|
+
if [[ $status -ne 0 ]]; then
|
|
46
|
+
exit $status
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
echo "Data extraction skill assets validated."
|