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,18 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if [[ $# -lt 2 ]]; then
|
|
5
|
+
echo "Usage: record-auth-signals.sh <template-json> <output-json>" >&2
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
template="$1"
|
|
10
|
+
output="$2"
|
|
11
|
+
|
|
12
|
+
if [[ ! -f "$template" ]]; then
|
|
13
|
+
echo "Missing template: $template" >&2
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
cp "$template" "$output"
|
|
18
|
+
echo "Auth signal template copied to $output"
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
print_help() {
|
|
5
|
+
cat <<'HELP'
|
|
6
|
+
Login automation workflow router
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
./skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh <workflow>
|
|
10
|
+
|
|
11
|
+
Workflows:
|
|
12
|
+
password
|
|
13
|
+
mfa
|
|
14
|
+
sso-popup
|
|
15
|
+
challenge-checkpoint
|
|
16
|
+
challenge-loop-guard
|
|
17
|
+
lockout-recovery
|
|
18
|
+
session-persistence
|
|
19
|
+
list
|
|
20
|
+
HELP
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
workflow="${1:-list}"
|
|
24
|
+
|
|
25
|
+
case "$workflow" in
|
|
26
|
+
list)
|
|
27
|
+
print_help
|
|
28
|
+
;;
|
|
29
|
+
password)
|
|
30
|
+
cat <<'FLOW'
|
|
31
|
+
opendevbrowser_goto sessionId="<session-id>" url="<login-url>"
|
|
32
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
33
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
34
|
+
opendevbrowser_type sessionId="<session-id>" ref="<identifier-ref>" text="<identifier>"
|
|
35
|
+
opendevbrowser_type sessionId="<session-id>" ref="<password-ref>" text="<password>"
|
|
36
|
+
opendevbrowser_click sessionId="<session-id>" ref="<submit-ref>"
|
|
37
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
38
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
39
|
+
opendevbrowser_network_poll sessionId="<session-id>" max=50
|
|
40
|
+
FLOW
|
|
41
|
+
;;
|
|
42
|
+
mfa)
|
|
43
|
+
cat <<'FLOW'
|
|
44
|
+
# Run password workflow first.
|
|
45
|
+
opendevbrowser_wait sessionId="<session-id>" ref="<mfa-input-ref>" state="visible"
|
|
46
|
+
opendevbrowser_type sessionId="<session-id>" ref="<mfa-input-ref>" text="<otp>"
|
|
47
|
+
opendevbrowser_click sessionId="<session-id>" ref="<mfa-submit-ref>"
|
|
48
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
49
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
50
|
+
FLOW
|
|
51
|
+
;;
|
|
52
|
+
sso-popup)
|
|
53
|
+
cat <<'FLOW'
|
|
54
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
55
|
+
opendevbrowser_click sessionId="<session-id>" ref="<sso-provider-ref>"
|
|
56
|
+
# Rebind to popup/new target before continuing auth steps.
|
|
57
|
+
opendevbrowser_targets_list sessionId="<session-id>"
|
|
58
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
59
|
+
FLOW
|
|
60
|
+
;;
|
|
61
|
+
challenge-checkpoint)
|
|
62
|
+
cat <<'FLOW'
|
|
63
|
+
# Detect challenge state, then pause automated actions.
|
|
64
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
65
|
+
# Manual checkpoint required: solve challenge with approved flow/test keys.
|
|
66
|
+
# Resume only after challenge is solved.
|
|
67
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
|
|
68
|
+
opendevbrowser_click sessionId="<session-id>" ref="<continue-ref>"
|
|
69
|
+
opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
70
|
+
FLOW
|
|
71
|
+
;;
|
|
72
|
+
challenge-loop-guard)
|
|
73
|
+
cat <<'FLOW'
|
|
74
|
+
# If challenge reappears twice, stop and escalate.
|
|
75
|
+
opendevbrowser_network_poll sessionId="<session-id>" max=100
|
|
76
|
+
# Honor Retry-After before any retry when present.
|
|
77
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
78
|
+
FLOW
|
|
79
|
+
;;
|
|
80
|
+
lockout-recovery)
|
|
81
|
+
cat <<'FLOW'
|
|
82
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
83
|
+
# If lockout/rate-limit banner present: stop retries and cooldown.
|
|
84
|
+
opendevbrowser_network_poll sessionId="<session-id>" max=50
|
|
85
|
+
FLOW
|
|
86
|
+
;;
|
|
87
|
+
session-persistence)
|
|
88
|
+
cat <<'FLOW'
|
|
89
|
+
opendevbrowser_launch profile="auth-test" persistProfile=true noExtension=true
|
|
90
|
+
# Authenticate once, close, relaunch same profile, then assert auth state.
|
|
91
|
+
opendevbrowser_snapshot sessionId="<session-id>" format="outline"
|
|
92
|
+
FLOW
|
|
93
|
+
;;
|
|
94
|
+
*)
|
|
95
|
+
echo "Unknown workflow: $workflow" >&2
|
|
96
|
+
print_help
|
|
97
|
+
exit 2
|
|
98
|
+
;;
|
|
99
|
+
esac
|
|
@@ -0,0 +1,50 @@
|
|
|
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/login-workflows.md"
|
|
9
|
+
"assets/templates/login-scenario-matrix.json"
|
|
10
|
+
"assets/templates/challenge-checkpoint.md"
|
|
11
|
+
"assets/templates/auth-signals.json"
|
|
12
|
+
"scripts/run-login-workflow.sh"
|
|
13
|
+
"scripts/record-auth-signals.sh"
|
|
14
|
+
"scripts/validate-skill-assets.sh"
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
status=0
|
|
18
|
+
|
|
19
|
+
for rel in "${required[@]}"; do
|
|
20
|
+
if [[ ! -f "$root/$rel" ]]; then
|
|
21
|
+
echo "Missing required asset: $rel" >&2
|
|
22
|
+
status=1
|
|
23
|
+
fi
|
|
24
|
+
if ! grep -Fq "$rel" "$skill_file"; then
|
|
25
|
+
echo "SKILL.md missing reference: $rel" >&2
|
|
26
|
+
status=1
|
|
27
|
+
fi
|
|
28
|
+
done
|
|
29
|
+
|
|
30
|
+
for rel in scripts/run-login-workflow.sh scripts/record-auth-signals.sh scripts/validate-skill-assets.sh; do
|
|
31
|
+
if [[ -f "$root/$rel" && ! -x "$root/$rel" ]]; then
|
|
32
|
+
echo "Script is not executable: $rel" >&2
|
|
33
|
+
status=1
|
|
34
|
+
fi
|
|
35
|
+
done
|
|
36
|
+
|
|
37
|
+
for rel in assets/templates/login-scenario-matrix.json assets/templates/auth-signals.json; do
|
|
38
|
+
if [[ -f "$root/$rel" ]]; then
|
|
39
|
+
if ! node -e 'const fs=require("fs"); JSON.parse(fs.readFileSync(process.argv[1], "utf8"));' "$root/$rel" >/dev/null 2>&1; then
|
|
40
|
+
echo "Invalid JSON template: $rel" >&2
|
|
41
|
+
status=1
|
|
42
|
+
fi
|
|
43
|
+
fi
|
|
44
|
+
done
|
|
45
|
+
|
|
46
|
+
if [[ $status -ne 0 ]]; then
|
|
47
|
+
exit $status
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
echo "Login automation skill assets validated."
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opendevbrowser-product-presentation-asset
|
|
3
|
+
description: Collects product screenshots, images, copy, and metadata into a local folder pack for video workflows.
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Product Presentation Asset Skill
|
|
8
|
+
|
|
9
|
+
Use this skill to build complete product-video input packs and assembly instructions for UGC-style content production.
|
|
10
|
+
|
|
11
|
+
## Pack Contents
|
|
12
|
+
|
|
13
|
+
- `artifacts/asset-pack-assembly.md`
|
|
14
|
+
- `artifacts/ugc-creative-guide.md`
|
|
15
|
+
- `assets/templates/manifest.schema.json`
|
|
16
|
+
- `assets/templates/copy.md`
|
|
17
|
+
- `assets/templates/features.md`
|
|
18
|
+
- `assets/templates/video-assembly.md`
|
|
19
|
+
- `assets/templates/user-actions.md`
|
|
20
|
+
- `assets/templates/ugc-concepts.md`
|
|
21
|
+
- `assets/templates/shot-list.md`
|
|
22
|
+
- `assets/templates/claims-evidence-map.md`
|
|
23
|
+
- `scripts/collect-product.sh`
|
|
24
|
+
- `scripts/capture-screenshots.sh`
|
|
25
|
+
- `scripts/download-images.sh`
|
|
26
|
+
- `scripts/write-manifest.sh`
|
|
27
|
+
- `scripts/render-video-brief.sh`
|
|
28
|
+
- `scripts/validate-skill-assets.sh`
|
|
29
|
+
- Shared robustness matrix: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
|
|
30
|
+
|
|
31
|
+
## Fast Start
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
./skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh
|
|
35
|
+
./skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh "https://example.com/product/123"
|
|
36
|
+
./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh /path/to/manifest.json /tmp/product-video-brief
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Final Assets Produced
|
|
40
|
+
|
|
41
|
+
Expected output pack includes:
|
|
42
|
+
- `manifest.json` with canonical product metadata
|
|
43
|
+
- `product.json` and `pricing.json`
|
|
44
|
+
- `images/` for product stills
|
|
45
|
+
- `screenshots/` for page context and UI proof
|
|
46
|
+
- `copy.md` and `features.md`
|
|
47
|
+
- `raw/source-record.json` for auditability
|
|
48
|
+
|
|
49
|
+
The `render-video-brief.sh` helper adds:
|
|
50
|
+
- `video-brief.md`
|
|
51
|
+
- `shot-list.md`
|
|
52
|
+
- `ugc-brief.md`
|
|
53
|
+
- `claims-evidence-map.md`
|
|
54
|
+
|
|
55
|
+
## What the User Should Do
|
|
56
|
+
|
|
57
|
+
1. Pick product URL or product name.
|
|
58
|
+
2. Run collection workflow and confirm output pack path.
|
|
59
|
+
3. Review generated manifest/copy/features for accuracy.
|
|
60
|
+
4. Run `render-video-brief.sh` to generate production instructions.
|
|
61
|
+
5. Hand the brief and assets to editor/creator pipeline.
|
|
62
|
+
|
|
63
|
+
## Parallel Multitab Alignment
|
|
64
|
+
|
|
65
|
+
- Apply shared concurrency policy from `../opendevbrowser-best-practices/SKILL.md` ("Parallel Operations").
|
|
66
|
+
- Validate asset capture flows across `managed`, `extension`, and `cdpConnect` when browser capture is involved.
|
|
67
|
+
- Keep one session per worker for concurrent product-page captures; avoid target-switch thrash in one session.
|
|
68
|
+
|
|
69
|
+
## How to Combine the Assets
|
|
70
|
+
|
|
71
|
+
1. Use `manifest.json` as source of truth.
|
|
72
|
+
2. Build hooks and claims from `copy.md` + `features.md`.
|
|
73
|
+
3. Pair each claim with supporting asset (`images` or `screenshots`).
|
|
74
|
+
4. Sequence assets using `shot-list.md`.
|
|
75
|
+
5. Validate pricing/availability freshness before publishing.
|
|
76
|
+
6. Validate every claim appears in `claims-evidence-map.md` before publish.
|
|
77
|
+
|
|
78
|
+
## Robustness Coverage (Known-Issue Matrix)
|
|
79
|
+
|
|
80
|
+
Matrix source: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
|
|
81
|
+
|
|
82
|
+
- `ISSUE-10`: normalized price/currency fields for claims
|
|
83
|
+
- `ISSUE-11`: anchor discount context for pricing claims
|
|
84
|
+
- `ISSUE-12`: stale price and unsupported-claim prevention via evidence mapping
|
|
85
|
+
|
|
86
|
+
## UGC Key Concepts
|
|
87
|
+
|
|
88
|
+
- Hook in first 2 seconds with user problem + payoff.
|
|
89
|
+
- Show real product usage context before polished close-ups.
|
|
90
|
+
- Keep claims concrete and verifiable from captured assets.
|
|
91
|
+
- Use one CTA and one primary value proposition per short clip.
|
|
92
|
+
- Preserve authenticity: avoid over-produced voice/style mismatches.
|
|
93
|
+
|
|
94
|
+
## References
|
|
95
|
+
|
|
96
|
+
- FTC pricing guidance (deceptive pricing): https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-233
|
|
97
|
+
- Schema.org Offer metadata: https://schema.org/Offer
|
|
98
|
+
- NIST unit pricing/value comparison guide: https://www.nist.gov/publications/unit-pricing-guide
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Asset Pack Assembly
|
|
2
|
+
|
|
3
|
+
## Inputs
|
|
4
|
+
|
|
5
|
+
- product URL or product name
|
|
6
|
+
- provider hint (optional)
|
|
7
|
+
- output directory (optional)
|
|
8
|
+
|
|
9
|
+
## Build sequence
|
|
10
|
+
|
|
11
|
+
1. Collect base product pack (`collect-product.sh`)
|
|
12
|
+
2. Ensure screenshots/images exist
|
|
13
|
+
3. Validate manifest schema fields
|
|
14
|
+
4. Generate video brief (`render-video-brief.sh`)
|
|
15
|
+
5. Review claim-to-evidence mapping (`claims-evidence-map.md`)
|
|
16
|
+
6. Review shot sequence and CTA consistency
|
|
17
|
+
|
|
18
|
+
## Release checks
|
|
19
|
+
|
|
20
|
+
- pricing timestamp is recent
|
|
21
|
+
- screenshot/image files are present and readable
|
|
22
|
+
- copy claims map to feature evidence
|
|
23
|
+
- every promoted claim is backed by a concrete asset path
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# UGC Creative Guide
|
|
2
|
+
|
|
3
|
+
## Creative pillars
|
|
4
|
+
|
|
5
|
+
- Authenticity over polish
|
|
6
|
+
- Problem-first storytelling
|
|
7
|
+
- Demonstrable product proof
|
|
8
|
+
|
|
9
|
+
## Shot rhythm
|
|
10
|
+
|
|
11
|
+
1. Hook (problem + promise)
|
|
12
|
+
2. Product reveal
|
|
13
|
+
3. Feature demonstration
|
|
14
|
+
4. Outcome proof
|
|
15
|
+
5. CTA
|
|
16
|
+
|
|
17
|
+
## Message constraints
|
|
18
|
+
|
|
19
|
+
- Keep one primary benefit per short
|
|
20
|
+
- Keep language conversational
|
|
21
|
+
- Avoid unsupported superlatives
|
package/skills/opendevbrowser-product-presentation-asset/assets/templates/manifest.schema.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "ProductAssetManifest",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["run_id", "created_at", "source_url", "provider", "product", "assets"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"run_id": { "type": "string" },
|
|
8
|
+
"created_at": { "type": "string", "format": "date-time" },
|
|
9
|
+
"source_url": { "type": "string" },
|
|
10
|
+
"provider": { "type": "string" },
|
|
11
|
+
"product": { "type": "object" },
|
|
12
|
+
"assets": { "type": "object" }
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# UGC Concepts
|
|
2
|
+
|
|
3
|
+
## Hook ideas
|
|
4
|
+
|
|
5
|
+
- "I wish I had this earlier for <problem>."
|
|
6
|
+
- "This fixed my <pain point> in minutes."
|
|
7
|
+
|
|
8
|
+
## Proof patterns
|
|
9
|
+
|
|
10
|
+
- before/after usage
|
|
11
|
+
- side-by-side comparison
|
|
12
|
+
- time-to-result demonstration
|
|
13
|
+
|
|
14
|
+
## CTA patterns
|
|
15
|
+
|
|
16
|
+
- direct value CTA
|
|
17
|
+
- urgency tied to verified pricing window
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Video Assembly Instructions
|
|
2
|
+
|
|
3
|
+
## Assets
|
|
4
|
+
|
|
5
|
+
- Manifest: `manifest.json`
|
|
6
|
+
- Product metadata: `product.json`
|
|
7
|
+
- Pricing: `pricing.json`
|
|
8
|
+
- Copy and features: `copy.md`, `features.md`
|
|
9
|
+
- Visuals: `images/*`, `screenshots/*`
|
|
10
|
+
- Claim evidence map: `claims-evidence-map.md`
|
|
11
|
+
|
|
12
|
+
## Assembly Steps
|
|
13
|
+
|
|
14
|
+
1. Build script from top 3 verified benefits.
|
|
15
|
+
2. Match each line to one visual asset.
|
|
16
|
+
3. Create sequence: hook -> proof -> CTA.
|
|
17
|
+
4. Verify all price/discount statements against `pricing.json`.
|
|
18
|
+
5. Mark `claims-evidence-map.md` rows as verified before publishing.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"run_id": "example-run-id",
|
|
3
|
+
"created_at": "2026-02-16T00:00:00.000Z",
|
|
4
|
+
"source_url": "https://example.com/product/123",
|
|
5
|
+
"provider": "shopping/others",
|
|
6
|
+
"product": {
|
|
7
|
+
"title": "Example Product",
|
|
8
|
+
"brand": "Example",
|
|
9
|
+
"price": { "amount": 29.99, "currency": "USD", "retrieved_at": "2026-02-16T00:00:00.000Z" },
|
|
10
|
+
"features": ["Feature 1", "Feature 2"],
|
|
11
|
+
"copy": "Example copy"
|
|
12
|
+
},
|
|
13
|
+
"assets": {
|
|
14
|
+
"images": ["images/image-01.jpg"],
|
|
15
|
+
"screenshots": ["screenshots/screenshot-01.png"],
|
|
16
|
+
"raw": ["raw/source-record.json"]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if [[ $# -lt 1 ]]; then
|
|
5
|
+
echo "Usage: collect-product.sh <product-url|product-name>"
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
VALUE="$1"
|
|
10
|
+
if [[ "$VALUE" == http* ]]; then
|
|
11
|
+
opendevbrowser product-video run --product-url "$VALUE"
|
|
12
|
+
else
|
|
13
|
+
opendevbrowser product-video run --product-name "$VALUE"
|
|
14
|
+
fi
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if [[ $# -lt 1 ]]; then
|
|
5
|
+
echo "Usage: render-video-brief.sh <manifest-json> [output-dir]" >&2
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
manifest="$1"
|
|
10
|
+
outdir="${2:-$(dirname "$manifest")}"
|
|
11
|
+
mkdir -p "$outdir"
|
|
12
|
+
|
|
13
|
+
node - "$manifest" "$outdir" <<'NODE'
|
|
14
|
+
const fs = require("fs");
|
|
15
|
+
const path = require("path");
|
|
16
|
+
|
|
17
|
+
const manifestPath = process.argv[2];
|
|
18
|
+
const outdir = process.argv[3];
|
|
19
|
+
|
|
20
|
+
const data = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
|
|
21
|
+
const product = data.product || {};
|
|
22
|
+
const pricing = product.price || {};
|
|
23
|
+
|
|
24
|
+
const title = product.title || "Unknown product";
|
|
25
|
+
const brand = product.brand || "Unknown brand";
|
|
26
|
+
const amount = typeof pricing.amount === "number" ? pricing.amount.toFixed(2) : "N/A";
|
|
27
|
+
const currency = pricing.currency || "USD";
|
|
28
|
+
const features = Array.isArray(product.features) ? product.features.slice(0, 5) : [];
|
|
29
|
+
const copy = typeof product.copy === "string" ? product.copy.trim().slice(0, 600) : "";
|
|
30
|
+
const images = Array.isArray(data?.assets?.images) ? data.assets.images : [];
|
|
31
|
+
const screenshots = Array.isArray(data?.assets?.screenshots) ? data.assets.screenshots : [];
|
|
32
|
+
|
|
33
|
+
const claimRows = (features.length ? features : ["Add verified feature claims"]).map((claim, index) => {
|
|
34
|
+
const evidence = screenshots[index] || images[index] || images[0] || screenshots[0] || "<asset>";
|
|
35
|
+
return `| ${claim} | ${evidence} | product.features[${index}] | no |`;
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const videoBrief = [
|
|
39
|
+
"# Video Brief",
|
|
40
|
+
"",
|
|
41
|
+
`- Product: ${title}`,
|
|
42
|
+
`- Brand: ${brand}`,
|
|
43
|
+
`- Price: ${amount} ${currency}`,
|
|
44
|
+
"",
|
|
45
|
+
"## Verified Features",
|
|
46
|
+
...(features.length ? features.map((entry) => `- ${entry}`) : ["- Add verified feature bullets"]),
|
|
47
|
+
"",
|
|
48
|
+
"## Suggested Hook",
|
|
49
|
+
`- "${title} solves <problem> faster with <core benefit>."`,
|
|
50
|
+
"",
|
|
51
|
+
"## Copy Input",
|
|
52
|
+
copy ? copy : "(No copy captured)",
|
|
53
|
+
"",
|
|
54
|
+
"## Assets",
|
|
55
|
+
`- Images: ${images.length}`,
|
|
56
|
+
`- Screenshots: ${screenshots.length}`,
|
|
57
|
+
"- Claims evidence map: claims-evidence-map.md"
|
|
58
|
+
].join("\n");
|
|
59
|
+
|
|
60
|
+
const shotList = [
|
|
61
|
+
"# Shot List",
|
|
62
|
+
"",
|
|
63
|
+
"| Scene | Goal | Asset | Voiceover | Duration |",
|
|
64
|
+
"|---|---|---|---|---:|",
|
|
65
|
+
`| 1 | Hook | ${screenshots[0] || images[0] || "<asset>"} | Problem + promise | 2s |`,
|
|
66
|
+
`| 2 | Feature demo | ${images[0] || screenshots[0] || "<asset>"} | Show proof | 4s |`,
|
|
67
|
+
`| 3 | Outcome + CTA | ${images[1] || screenshots[1] || images[0] || "<asset>"} | Benefit + CTA | 4s |`
|
|
68
|
+
].join("\n");
|
|
69
|
+
|
|
70
|
+
const ugcBrief = [
|
|
71
|
+
"# UGC Brief",
|
|
72
|
+
"",
|
|
73
|
+
"## Creator Direction",
|
|
74
|
+
"- Speak as a real user solving a real problem.",
|
|
75
|
+
"- Show product in use before listing specs.",
|
|
76
|
+
"- Keep claims aligned with captured assets and manifest data.",
|
|
77
|
+
"",
|
|
78
|
+
"## CTA",
|
|
79
|
+
"- Use one clear CTA tied to the strongest verified benefit."
|
|
80
|
+
].join("\n");
|
|
81
|
+
|
|
82
|
+
const claimsEvidenceMap = [
|
|
83
|
+
"# Claims Evidence Map",
|
|
84
|
+
"",
|
|
85
|
+
"| Claim | Evidence Asset | Source Field | Verified |",
|
|
86
|
+
"|---|---|---|---|",
|
|
87
|
+
...claimRows
|
|
88
|
+
].join("\n");
|
|
89
|
+
|
|
90
|
+
fs.writeFileSync(path.join(outdir, "video-brief.md"), videoBrief);
|
|
91
|
+
fs.writeFileSync(path.join(outdir, "shot-list.md"), shotList);
|
|
92
|
+
fs.writeFileSync(path.join(outdir, "ugc-brief.md"), ugcBrief);
|
|
93
|
+
fs.writeFileSync(path.join(outdir, "claims-evidence-map.md"), claimsEvidenceMap);
|
|
94
|
+
|
|
95
|
+
process.stdout.write(`Video brief files written to ${outdir}\n`);
|
|
96
|
+
NODE
|
|
@@ -0,0 +1,56 @@
|
|
|
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/asset-pack-assembly.md"
|
|
9
|
+
"artifacts/ugc-creative-guide.md"
|
|
10
|
+
"assets/templates/manifest.schema.json"
|
|
11
|
+
"assets/templates/copy.md"
|
|
12
|
+
"assets/templates/features.md"
|
|
13
|
+
"assets/templates/video-assembly.md"
|
|
14
|
+
"assets/templates/user-actions.md"
|
|
15
|
+
"assets/templates/ugc-concepts.md"
|
|
16
|
+
"assets/templates/shot-list.md"
|
|
17
|
+
"assets/templates/claims-evidence-map.md"
|
|
18
|
+
"scripts/collect-product.sh"
|
|
19
|
+
"scripts/capture-screenshots.sh"
|
|
20
|
+
"scripts/download-images.sh"
|
|
21
|
+
"scripts/write-manifest.sh"
|
|
22
|
+
"scripts/render-video-brief.sh"
|
|
23
|
+
"scripts/validate-skill-assets.sh"
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
status=0
|
|
27
|
+
for rel in "${required[@]}"; do
|
|
28
|
+
if [[ ! -f "$root/$rel" ]]; then
|
|
29
|
+
echo "Missing required asset: $rel" >&2
|
|
30
|
+
status=1
|
|
31
|
+
fi
|
|
32
|
+
if ! grep -Fq "$rel" "$skill_file"; then
|
|
33
|
+
echo "SKILL.md missing reference: $rel" >&2
|
|
34
|
+
status=1
|
|
35
|
+
fi
|
|
36
|
+
done
|
|
37
|
+
|
|
38
|
+
for rel in scripts/collect-product.sh scripts/capture-screenshots.sh scripts/download-images.sh scripts/write-manifest.sh scripts/render-video-brief.sh scripts/validate-skill-assets.sh; do
|
|
39
|
+
if [[ -f "$root/$rel" && ! -x "$root/$rel" ]]; then
|
|
40
|
+
echo "Script is not executable: $rel" >&2
|
|
41
|
+
status=1
|
|
42
|
+
fi
|
|
43
|
+
done
|
|
44
|
+
|
|
45
|
+
if [[ -f "$root/assets/templates/manifest.schema.json" ]]; then
|
|
46
|
+
if ! node -e 'const fs=require("fs"); JSON.parse(fs.readFileSync(process.argv[1], "utf8"));' "$root/assets/templates/manifest.schema.json" >/dev/null 2>&1; then
|
|
47
|
+
echo "Invalid JSON template: assets/templates/manifest.schema.json" >&2
|
|
48
|
+
status=1
|
|
49
|
+
fi
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
if [[ $status -ne 0 ]]; then
|
|
53
|
+
exit $status
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
echo "Product presentation asset skill pack validated."
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if [[ $# -lt 2 ]]; then
|
|
5
|
+
echo "Usage: write-manifest.sh <product-url|product-name> <output-dir>"
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
VALUE="$1"
|
|
10
|
+
OUTDIR="$2"
|
|
11
|
+
mkdir -p "$OUTDIR"
|
|
12
|
+
|
|
13
|
+
cmd=(opendevbrowser product-video run --output-dir "$OUTDIR" --output-format json)
|
|
14
|
+
if [[ "$VALUE" == http* ]]; then
|
|
15
|
+
cmd+=(--product-url "$VALUE")
|
|
16
|
+
else
|
|
17
|
+
cmd+=(--product-name "$VALUE")
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
json_output="$("${cmd[@]}")"
|
|
21
|
+
printf '%s\n' "$json_output"
|
|
22
|
+
|
|
23
|
+
bundle_path="$(printf '%s\n' "$json_output" | node -e 'const fs=require("fs");const input=fs.readFileSync(0,"utf8").split(/\r?\n/).map((line)=>line.trim()).filter(Boolean);let payload=null;for(const line of input){try{payload=JSON.parse(line);}catch{}}const p=payload?.data?.path; if(typeof p==="string") process.stdout.write(p);')"
|
|
24
|
+
manifest_out="$OUTDIR/manifest.json"
|
|
25
|
+
|
|
26
|
+
if [[ ! -f "$manifest_out" ]]; then
|
|
27
|
+
source_manifest=""
|
|
28
|
+
if [[ -n "$bundle_path" && -f "$bundle_path/manifest.json" ]]; then
|
|
29
|
+
source_manifest="$bundle_path/manifest.json"
|
|
30
|
+
else
|
|
31
|
+
source_manifest="$(find "$OUTDIR" -maxdepth 6 -type f -name manifest.json | head -n 1)"
|
|
32
|
+
fi
|
|
33
|
+
if [[ -n "$source_manifest" && -f "$source_manifest" ]]; then
|
|
34
|
+
cp "$source_manifest" "$manifest_out"
|
|
35
|
+
fi
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
if [[ ! -f "$manifest_out" ]]; then
|
|
39
|
+
echo "Manifest not found in output dir: $OUTDIR" >&2
|
|
40
|
+
exit 2
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
echo "Manifest ready: $manifest_out"
|