opendevbrowser 0.0.12 → 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 +21 -0
- package/README.md +425 -42
- 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 +4604 -769
- 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 +1905 -262
- 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 +1905 -262
- 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/annotate-content.css +237 -0
- package/extension/dist/annotate-content.js +934 -0
- package/extension/dist/background.js +1203 -35
- package/extension/dist/logging.js +50 -0
- package/extension/dist/ops/dom-bridge.js +355 -0
- package/extension/dist/ops/ops-runtime.js +1751 -0
- package/extension/dist/ops/ops-session-store.js +203 -0
- package/extension/dist/ops/parallelism-governor.js +117 -0
- package/extension/dist/ops/redaction.js +52 -0
- package/extension/dist/ops/snapshot-builder.js +4 -0
- package/extension/dist/ops/snapshot-shared.js +236 -0
- package/extension/dist/popup.js +370 -25
- package/extension/dist/relay-settings.js +1 -0
- package/extension/dist/services/CDPRouter.js +567 -104
- package/extension/dist/services/ConnectionManager.js +469 -60
- package/extension/dist/services/NativePortManager.js +182 -0
- package/extension/dist/services/RelayClient.js +227 -26
- package/extension/dist/services/TabManager.js +81 -0
- package/extension/dist/services/TargetSessionMap.js +146 -0
- package/extension/dist/services/cdp-router-commands.js +203 -0
- package/extension/dist/services/url-restrictions.js +41 -0
- package/extension/dist/types.js +3 -1
- 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 +17 -3
- package/extension/popup.html +144 -0
- package/package.json +26 -17
- 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 +47 -66
- package/skills/opendevbrowser-best-practices/SKILL.md +196 -49
- 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 +67 -23
- 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-WTFSMBVH.js +0 -2815
- package/dist/chunk-WTFSMBVH.js.map +0 -1
- package/extension/dist/popup.jsx +0 -150
- package/skills/data-extraction/SKILL.md +0 -136
- package/skills/form-testing/SKILL.md +0 -113
- package/skills/login-automation/SKILL.md +0 -98
|
@@ -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"
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opendevbrowser-research
|
|
3
|
+
description: Deterministic multi-source research workflow with strict timebox and artifact outputs.
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Research Skill
|
|
8
|
+
|
|
9
|
+
Use this skill when you need benchmark-style research across `web|community|social|shopping` with strict timebox semantics and stable output modes.
|
|
10
|
+
|
|
11
|
+
## Pack Contents
|
|
12
|
+
|
|
13
|
+
- `artifacts/research-workflows.md`
|
|
14
|
+
- `assets/templates/compact.md`
|
|
15
|
+
- `assets/templates/context.json`
|
|
16
|
+
- `assets/templates/report.md`
|
|
17
|
+
- `scripts/run-research.sh`
|
|
18
|
+
- `scripts/render-output.sh`
|
|
19
|
+
- `scripts/write-artifacts.sh`
|
|
20
|
+
- `scripts/validate-skill-assets.sh`
|
|
21
|
+
- Shared robustness matrix: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
|
|
22
|
+
|
|
23
|
+
## Fast Start
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
./skills/opendevbrowser-research/scripts/validate-skill-assets.sh
|
|
27
|
+
./skills/opendevbrowser-research/scripts/run-research.sh "browser automation" 30 context
|
|
28
|
+
./skills/opendevbrowser-research/scripts/render-output.sh "browser automation" compact
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Core Rules
|
|
32
|
+
|
|
33
|
+
- Define timebox first (`--days` or `--from/--to`).
|
|
34
|
+
- Prefer explicit sources for high-stakes claims.
|
|
35
|
+
- Persist artifacts and return reproducible paths.
|
|
36
|
+
- Mark unsupported claims as tentative; do not overstate certainty.
|
|
37
|
+
- Honor bounded retries and backoff windows under 429 pressure.
|
|
38
|
+
|
|
39
|
+
## Parallel Multitab Alignment
|
|
40
|
+
|
|
41
|
+
- Apply shared concurrency policy from `../opendevbrowser-best-practices/SKILL.md` ("Parallel Operations").
|
|
42
|
+
- Run research acceptance in `managed`, `extension`, and `cdpConnect` where browser-backed evidence capture is used.
|
|
43
|
+
- Keep provider query orchestration mode-agnostic; isolate browser interaction per session worker.
|
|
44
|
+
|
|
45
|
+
## Robustness Coverage (Known-Issue Matrix)
|
|
46
|
+
|
|
47
|
+
Matrix source: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
|
|
48
|
+
|
|
49
|
+
- `ISSUE-06`: upstream throttling and retry discipline
|
|
50
|
+
- `ISSUE-09`: pagination/result drift across sources
|
|
51
|
+
- `ISSUE-10`: locale/currency normalization consistency
|
|
52
|
+
- `ISSUE-12`: stale evidence and claim traceability
|
|
53
|
+
|
|
54
|
+
## Workflow
|
|
55
|
+
|
|
56
|
+
1. Resolve timebox (`days` or `from/to`).
|
|
57
|
+
2. Choose sources (`auto|web|community|social|shopping|all`).
|
|
58
|
+
3. Run `opendevbrowser research run`.
|
|
59
|
+
4. Return requested mode output and artifact path.
|
|
60
|
+
|
|
61
|
+
## Commands
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
opendevbrowser research run --topic "<topic>" --days 30 --mode context
|
|
65
|
+
opendevbrowser research run --topic "<topic>" --source-selection all --mode json
|
|
66
|
+
opendevbrowser research run --topic "<topic>" --sources web,shopping --mode md
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Notes
|
|
70
|
+
|
|
71
|
+
- `auto` resolves to `web|community|social` in v1.
|
|
72
|
+
- Use `--source-selection all` or `--sources shopping,...` to include shopping.
|
|
73
|
+
- Use `--mode path` with `scripts/write-artifacts.sh` when you need replayable handoff bundles.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Research Workflows
|
|
2
|
+
|
|
3
|
+
## Deterministic baseline workflow
|
|
4
|
+
|
|
5
|
+
1. Define topic and strict time window
|
|
6
|
+
2. Resolve source selection (`auto|all|explicit`)
|
|
7
|
+
3. Run research workflow command
|
|
8
|
+
4. Persist context/report artifacts
|
|
9
|
+
5. Validate source diversity and freshness
|
|
10
|
+
|
|
11
|
+
## Cross-source corroboration workflow
|
|
12
|
+
|
|
13
|
+
1. Identify claims from first-pass output
|
|
14
|
+
2. Require at least two independent source records for critical claims
|
|
15
|
+
3. Mark unsupported claims as tentative
|
|
16
|
+
4. Escalate when corroboration is missing
|
|
17
|
+
|
|
18
|
+
## Backoff/retry workflow
|
|
19
|
+
|
|
20
|
+
1. Detect repeated 429/upstream throttling
|
|
21
|
+
2. Honor retry windows and bounded retries
|
|
22
|
+
3. Resume from persisted context artifact
|
|
23
|
+
4. Report partial coverage when limits persist
|
|
24
|
+
|
|
25
|
+
## Compact handoff workflow
|
|
26
|
+
|
|
27
|
+
1. Produce compact summary with key findings
|
|
28
|
+
2. Include unresolved risks and missing evidence
|
|
29
|
+
3. Attach artifact paths for replay
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if [[ $# -lt 1 ]]; then
|
|
5
|
+
echo "Usage: run-research.sh <topic> [days] [mode] [source-selection] [sources]"
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
TOPIC="$1"
|
|
10
|
+
DAYS="${2:-30}"
|
|
11
|
+
MODE="${3:-context}"
|
|
12
|
+
SOURCE_SELECTION="${4:-}"
|
|
13
|
+
SOURCES="${5:-}"
|
|
14
|
+
|
|
15
|
+
cmd=(opendevbrowser research run --topic "$TOPIC" --days "$DAYS" --mode "$MODE")
|
|
16
|
+
if [[ -n "$SOURCE_SELECTION" ]]; then
|
|
17
|
+
cmd+=(--source-selection "$SOURCE_SELECTION")
|
|
18
|
+
fi
|
|
19
|
+
if [[ -n "$SOURCES" ]]; then
|
|
20
|
+
cmd+=(--sources "$SOURCES")
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
"${cmd[@]}"
|
|
@@ -0,0 +1,48 @@
|
|
|
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/research-workflows.md"
|
|
9
|
+
"assets/templates/compact.md"
|
|
10
|
+
"assets/templates/context.json"
|
|
11
|
+
"assets/templates/report.md"
|
|
12
|
+
"scripts/run-research.sh"
|
|
13
|
+
"scripts/render-output.sh"
|
|
14
|
+
"scripts/write-artifacts.sh"
|
|
15
|
+
"scripts/validate-skill-assets.sh"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
status=0
|
|
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-research.sh scripts/render-output.sh scripts/write-artifacts.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
|
+
if [[ -f "$root/assets/templates/context.json" ]]; then
|
|
38
|
+
if ! node -e 'const fs=require("fs"); JSON.parse(fs.readFileSync(process.argv[1], "utf8"));' "$root/assets/templates/context.json" >/dev/null 2>&1; then
|
|
39
|
+
echo "Invalid JSON template: assets/templates/context.json" >&2
|
|
40
|
+
status=1
|
|
41
|
+
fi
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
if [[ $status -ne 0 ]]; then
|
|
45
|
+
exit $status
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
echo "Research skill assets validated."
|