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.
Files changed (585) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +425 -42
  3. package/dist/annotate/direct-annotator.d.ts +22 -0
  4. package/dist/annotate/direct-annotator.d.ts.map +1 -0
  5. package/dist/annotate/output.d.ts +10 -0
  6. package/dist/annotate/output.d.ts.map +1 -0
  7. package/dist/browser/annotation-manager.d.ts +30 -0
  8. package/dist/browser/annotation-manager.d.ts.map +1 -0
  9. package/dist/browser/browser-manager.d.ts +397 -0
  10. package/dist/browser/browser-manager.d.ts.map +1 -0
  11. package/dist/browser/fingerprint/adapters.d.ts +26 -0
  12. package/dist/browser/fingerprint/adapters.d.ts.map +1 -0
  13. package/dist/browser/fingerprint/canary.d.ts +25 -0
  14. package/dist/browser/fingerprint/canary.d.ts.map +1 -0
  15. package/dist/browser/fingerprint/profiles.d.ts +16 -0
  16. package/dist/browser/fingerprint/profiles.d.ts.map +1 -0
  17. package/dist/browser/fingerprint/tier1-coherence.d.ts +36 -0
  18. package/dist/browser/fingerprint/tier1-coherence.d.ts.map +1 -0
  19. package/dist/browser/fingerprint/tier2-runtime.d.ts +40 -0
  20. package/dist/browser/fingerprint/tier2-runtime.d.ts.map +1 -0
  21. package/dist/browser/fingerprint/tier3-adaptive.d.ts +30 -0
  22. package/dist/browser/fingerprint/tier3-adaptive.d.ts.map +1 -0
  23. package/dist/browser/manager-types.d.ts +3 -0
  24. package/dist/browser/manager-types.d.ts.map +1 -0
  25. package/dist/browser/ops-browser-manager.d.ts +131 -0
  26. package/dist/browser/ops-browser-manager.d.ts.map +1 -0
  27. package/dist/browser/ops-client.d.ts +56 -0
  28. package/dist/browser/ops-client.d.ts.map +1 -0
  29. package/dist/browser/parallelism-governor.d.ts +31 -0
  30. package/dist/browser/parallelism-governor.d.ts.map +1 -0
  31. package/dist/browser/script-runner.d.ts +23 -0
  32. package/dist/browser/script-runner.d.ts.map +1 -0
  33. package/dist/browser/session-store.d.ts +63 -0
  34. package/dist/browser/session-store.d.ts.map +1 -0
  35. package/dist/browser/target-manager.d.ts +36 -0
  36. package/dist/browser/target-manager.d.ts.map +1 -0
  37. package/dist/cache/chrome-locator.d.ts +2 -0
  38. package/dist/cache/chrome-locator.d.ts.map +1 -0
  39. package/dist/cache/downloader.d.ts +6 -0
  40. package/dist/cache/downloader.d.ts.map +1 -0
  41. package/dist/cache/paths.d.ts +9 -0
  42. package/dist/cache/paths.d.ts.map +1 -0
  43. package/dist/chunk-7W3SPXIB.js +166 -0
  44. package/dist/chunk-7W3SPXIB.js.map +1 -0
  45. package/dist/chunk-ST7CO5FA.js +18668 -0
  46. package/dist/chunk-ST7CO5FA.js.map +1 -0
  47. package/dist/cli/args.d.ts +25 -0
  48. package/dist/cli/args.d.ts.map +1 -0
  49. package/dist/cli/client.d.ts +2 -0
  50. package/dist/cli/client.d.ts.map +1 -0
  51. package/dist/cli/commands/annotate.d.ts +27 -0
  52. package/dist/cli/commands/annotate.d.ts.map +1 -0
  53. package/dist/cli/commands/artifacts.d.ts +24 -0
  54. package/dist/cli/commands/artifacts.d.ts.map +1 -0
  55. package/dist/cli/commands/daemon.d.ts +35 -0
  56. package/dist/cli/commands/daemon.d.ts.map +1 -0
  57. package/dist/cli/commands/devtools/console-poll.d.ts +7 -0
  58. package/dist/cli/commands/devtools/console-poll.d.ts.map +1 -0
  59. package/dist/cli/commands/devtools/debug-trace-snapshot.d.ts +20 -0
  60. package/dist/cli/commands/devtools/debug-trace-snapshot.d.ts.map +1 -0
  61. package/dist/cli/commands/devtools/network-poll.d.ts +7 -0
  62. package/dist/cli/commands/devtools/network-poll.d.ts.map +1 -0
  63. package/dist/cli/commands/devtools/perf.d.ts +7 -0
  64. package/dist/cli/commands/devtools/perf.d.ts.map +1 -0
  65. package/dist/cli/commands/devtools/screenshot.d.ts +17 -0
  66. package/dist/cli/commands/devtools/screenshot.d.ts.map +1 -0
  67. package/dist/cli/commands/dom/attr.d.ts +7 -0
  68. package/dist/cli/commands/dom/attr.d.ts.map +1 -0
  69. package/dist/cli/commands/dom/checked.d.ts +7 -0
  70. package/dist/cli/commands/dom/checked.d.ts.map +1 -0
  71. package/dist/cli/commands/dom/enabled.d.ts +7 -0
  72. package/dist/cli/commands/dom/enabled.d.ts.map +1 -0
  73. package/dist/cli/commands/dom/html.d.ts +7 -0
  74. package/dist/cli/commands/dom/html.d.ts.map +1 -0
  75. package/dist/cli/commands/dom/text.d.ts +7 -0
  76. package/dist/cli/commands/dom/text.d.ts.map +1 -0
  77. package/dist/cli/commands/dom/value.d.ts +7 -0
  78. package/dist/cli/commands/dom/value.d.ts.map +1 -0
  79. package/dist/cli/commands/dom/visible.d.ts +7 -0
  80. package/dist/cli/commands/dom/visible.d.ts.map +1 -0
  81. package/dist/cli/commands/export/clone-component.d.ts +7 -0
  82. package/dist/cli/commands/export/clone-component.d.ts.map +1 -0
  83. package/dist/cli/commands/export/clone-page.d.ts +7 -0
  84. package/dist/cli/commands/export/clone-page.d.ts.map +1 -0
  85. package/dist/cli/commands/interact/check.d.ts +7 -0
  86. package/dist/cli/commands/interact/check.d.ts.map +1 -0
  87. package/dist/cli/commands/interact/click.d.ts +7 -0
  88. package/dist/cli/commands/interact/click.d.ts.map +1 -0
  89. package/dist/cli/commands/interact/hover.d.ts +7 -0
  90. package/dist/cli/commands/interact/hover.d.ts.map +1 -0
  91. package/dist/cli/commands/interact/press.d.ts +7 -0
  92. package/dist/cli/commands/interact/press.d.ts.map +1 -0
  93. package/dist/cli/commands/interact/scroll-into-view.d.ts +7 -0
  94. package/dist/cli/commands/interact/scroll-into-view.d.ts.map +1 -0
  95. package/dist/cli/commands/interact/scroll.d.ts +7 -0
  96. package/dist/cli/commands/interact/scroll.d.ts.map +1 -0
  97. package/dist/cli/commands/interact/select.d.ts +7 -0
  98. package/dist/cli/commands/interact/select.d.ts.map +1 -0
  99. package/dist/cli/commands/interact/type.d.ts +7 -0
  100. package/dist/cli/commands/interact/type.d.ts.map +1 -0
  101. package/dist/cli/commands/interact/uncheck.d.ts +7 -0
  102. package/dist/cli/commands/interact/uncheck.d.ts.map +1 -0
  103. package/dist/cli/commands/macro-resolve.d.ts +18 -0
  104. package/dist/cli/commands/macro-resolve.d.ts.map +1 -0
  105. package/dist/cli/commands/native.d.ts +82 -0
  106. package/dist/cli/commands/native.d.ts.map +1 -0
  107. package/dist/cli/commands/nav/goto.d.ts +7 -0
  108. package/dist/cli/commands/nav/goto.d.ts.map +1 -0
  109. package/dist/cli/commands/nav/snapshot.d.ts +7 -0
  110. package/dist/cli/commands/nav/snapshot.d.ts.map +1 -0
  111. package/dist/cli/commands/nav/wait.d.ts +7 -0
  112. package/dist/cli/commands/nav/wait.d.ts.map +1 -0
  113. package/dist/cli/commands/pages/close.d.ts +6 -0
  114. package/dist/cli/commands/pages/close.d.ts.map +1 -0
  115. package/dist/cli/commands/pages/list.d.ts +7 -0
  116. package/dist/cli/commands/pages/list.d.ts.map +1 -0
  117. package/dist/cli/commands/pages/open.d.ts +7 -0
  118. package/dist/cli/commands/pages/open.d.ts.map +1 -0
  119. package/dist/cli/commands/product-video.d.ts +25 -0
  120. package/dist/cli/commands/product-video.d.ts.map +1 -0
  121. package/dist/cli/commands/registry.d.ts +5 -0
  122. package/dist/cli/commands/registry.d.ts.map +1 -0
  123. package/dist/cli/commands/research.d.ts +27 -0
  124. package/dist/cli/commands/research.d.ts.map +1 -0
  125. package/dist/cli/commands/rpc.d.ts +28 -0
  126. package/dist/cli/commands/rpc.d.ts.map +1 -0
  127. package/dist/cli/commands/run.d.ts +17 -0
  128. package/dist/cli/commands/run.d.ts.map +1 -0
  129. package/dist/cli/commands/serve.d.ts +59 -0
  130. package/dist/cli/commands/serve.d.ts.map +1 -0
  131. package/dist/cli/commands/session/connect.d.ts +9 -0
  132. package/dist/cli/commands/session/connect.d.ts.map +1 -0
  133. package/dist/cli/commands/session/cookie-import.d.ts +31 -0
  134. package/dist/cli/commands/session/cookie-import.d.ts.map +1 -0
  135. package/dist/cli/commands/session/cookie-list.d.ts +17 -0
  136. package/dist/cli/commands/session/cookie-list.d.ts.map +1 -0
  137. package/dist/cli/commands/session/disconnect.d.ts +6 -0
  138. package/dist/cli/commands/session/disconnect.d.ts.map +1 -0
  139. package/dist/cli/commands/session/launch.d.ts +29 -0
  140. package/dist/cli/commands/session/launch.d.ts.map +1 -0
  141. package/dist/cli/commands/session/status.d.ts +7 -0
  142. package/dist/cli/commands/session/status.d.ts.map +1 -0
  143. package/dist/cli/commands/shopping.d.ts +25 -0
  144. package/dist/cli/commands/shopping.d.ts.map +1 -0
  145. package/dist/cli/commands/status.d.ts +19 -0
  146. package/dist/cli/commands/status.d.ts.map +1 -0
  147. package/dist/cli/commands/targets/close.d.ts +6 -0
  148. package/dist/cli/commands/targets/close.d.ts.map +1 -0
  149. package/dist/cli/commands/targets/list.d.ts +7 -0
  150. package/dist/cli/commands/targets/list.d.ts.map +1 -0
  151. package/dist/cli/commands/targets/new.d.ts +7 -0
  152. package/dist/cli/commands/targets/new.d.ts.map +1 -0
  153. package/dist/cli/commands/targets/use.d.ts +7 -0
  154. package/dist/cli/commands/targets/use.d.ts.map +1 -0
  155. package/dist/cli/commands/types.d.ts +13 -0
  156. package/dist/cli/commands/types.d.ts.map +1 -0
  157. package/dist/cli/commands/uninstall.d.ts +14 -0
  158. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  159. package/dist/cli/commands/update.d.ts +7 -0
  160. package/dist/cli/commands/update.d.ts.map +1 -0
  161. package/dist/cli/daemon-autostart.d.ts +46 -0
  162. package/dist/cli/daemon-autostart.d.ts.map +1 -0
  163. package/dist/cli/daemon-client.d.ts +33 -0
  164. package/dist/cli/daemon-client.d.ts.map +1 -0
  165. package/dist/cli/daemon-commands.d.ts +7 -0
  166. package/dist/cli/daemon-commands.d.ts.map +1 -0
  167. package/dist/cli/daemon-state.d.ts +56 -0
  168. package/dist/cli/daemon-state.d.ts.map +1 -0
  169. package/dist/cli/daemon-status.d.ts +19 -0
  170. package/dist/cli/daemon-status.d.ts.map +1 -0
  171. package/dist/cli/daemon.d.ts +29 -0
  172. package/dist/cli/daemon.d.ts.map +1 -0
  173. package/dist/cli/errors.d.ts +20 -0
  174. package/dist/cli/errors.d.ts.map +1 -0
  175. package/dist/cli/help.d.ts +28 -0
  176. package/dist/cli/help.d.ts.map +1 -0
  177. package/dist/cli/index.d.ts +2 -0
  178. package/dist/cli/index.d.ts.map +1 -0
  179. package/dist/cli/index.js +4604 -769
  180. package/dist/cli/index.js.map +1 -1
  181. package/dist/cli/installers/global.d.ts +9 -0
  182. package/dist/cli/installers/global.d.ts.map +1 -0
  183. package/dist/cli/installers/local.d.ts +9 -0
  184. package/dist/cli/installers/local.d.ts.map +1 -0
  185. package/dist/cli/installers/skills.d.ts +19 -0
  186. package/dist/cli/installers/skills.d.ts.map +1 -0
  187. package/dist/cli/output.d.ts +7 -0
  188. package/dist/cli/output.d.ts.map +1 -0
  189. package/dist/cli/remote-manager.d.ts +96 -0
  190. package/dist/cli/remote-manager.d.ts.map +1 -0
  191. package/dist/cli/remote-relay.d.ts +17 -0
  192. package/dist/cli/remote-relay.d.ts.map +1 -0
  193. package/dist/cli/templates/config.d.ts +7 -0
  194. package/dist/cli/templates/config.d.ts.map +1 -0
  195. package/dist/cli/utils/config.d.ts +20 -0
  196. package/dist/cli/utils/config.d.ts.map +1 -0
  197. package/dist/cli/utils/http.d.ts +5 -0
  198. package/dist/cli/utils/http.d.ts.map +1 -0
  199. package/dist/cli/utils/parse.d.ts +8 -0
  200. package/dist/cli/utils/parse.d.ts.map +1 -0
  201. package/dist/cli/utils/skills.d.ts +12 -0
  202. package/dist/cli/utils/skills.d.ts.map +1 -0
  203. package/dist/config.d.ts +208 -0
  204. package/dist/config.d.ts.map +1 -0
  205. package/dist/core/bootstrap.d.ts +3 -0
  206. package/dist/core/bootstrap.d.ts.map +1 -0
  207. package/dist/core/index.d.ts +3 -0
  208. package/dist/core/index.d.ts.map +1 -0
  209. package/dist/core/logging.d.ts +34 -0
  210. package/dist/core/logging.d.ts.map +1 -0
  211. package/dist/core/types.d.ts +34 -0
  212. package/dist/core/types.d.ts.map +1 -0
  213. package/dist/devtools/console-tracker.d.ts +44 -0
  214. package/dist/devtools/console-tracker.d.ts.map +1 -0
  215. package/dist/devtools/exception-tracker.d.ts +42 -0
  216. package/dist/devtools/exception-tracker.d.ts.map +1 -0
  217. package/dist/devtools/network-tracker.d.ts +34 -0
  218. package/dist/devtools/network-tracker.d.ts.map +1 -0
  219. package/dist/export/css-extract.d.ts +5 -0
  220. package/dist/export/css-extract.d.ts.map +1 -0
  221. package/dist/export/dom-capture.d.ts +15 -0
  222. package/dist/export/dom-capture.d.ts.map +1 -0
  223. package/dist/export/react-emitter.d.ts +11 -0
  224. package/dist/export/react-emitter.d.ts.map +1 -0
  225. package/dist/extension-extractor.d.ts +3 -0
  226. package/dist/extension-extractor.d.ts.map +1 -0
  227. package/dist/index.d.ts +3 -4
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +1905 -262
  230. package/dist/index.js.map +1 -1
  231. package/dist/macros/execute.d.ts +44 -0
  232. package/dist/macros/execute.d.ts.map +1 -0
  233. package/dist/macros/index.d.ts +9 -0
  234. package/dist/macros/index.d.ts.map +1 -0
  235. package/dist/macros/packs/core.d.ts +3 -0
  236. package/dist/macros/packs/core.d.ts.map +1 -0
  237. package/dist/macros/registry.d.ts +48 -0
  238. package/dist/macros/registry.d.ts.map +1 -0
  239. package/dist/macros-NUBRM44Y.js +399 -0
  240. package/dist/macros-NUBRM44Y.js.map +1 -0
  241. package/dist/opendevbrowser.d.ts +3 -4
  242. package/dist/opendevbrowser.d.ts.map +1 -0
  243. package/dist/opendevbrowser.js +1905 -262
  244. package/dist/opendevbrowser.js.map +1 -1
  245. package/dist/providers/adaptive-concurrency.d.ts +42 -0
  246. package/dist/providers/adaptive-concurrency.d.ts.map +1 -0
  247. package/dist/providers/artifacts.d.ts +34 -0
  248. package/dist/providers/artifacts.d.ts.map +1 -0
  249. package/dist/providers/blocker.d.ts +47 -0
  250. package/dist/providers/blocker.d.ts.map +1 -0
  251. package/dist/providers/community/index.d.ts +44 -0
  252. package/dist/providers/community/index.d.ts.map +1 -0
  253. package/dist/providers/enrichment.d.ts +33 -0
  254. package/dist/providers/enrichment.d.ts.map +1 -0
  255. package/dist/providers/errors.d.ts +41 -0
  256. package/dist/providers/errors.d.ts.map +1 -0
  257. package/dist/providers/index.d.ts +121 -0
  258. package/dist/providers/index.d.ts.map +1 -0
  259. package/dist/providers/normalize.d.ts +39 -0
  260. package/dist/providers/normalize.d.ts.map +1 -0
  261. package/dist/providers/policy.d.ts +5 -0
  262. package/dist/providers/policy.d.ts.map +1 -0
  263. package/dist/providers/registry.d.ts +22 -0
  264. package/dist/providers/registry.d.ts.map +1 -0
  265. package/dist/providers/renderer.d.ts +49 -0
  266. package/dist/providers/renderer.d.ts.map +1 -0
  267. package/dist/providers/runtime-factory.d.ts +20 -0
  268. package/dist/providers/runtime-factory.d.ts.map +1 -0
  269. package/dist/providers/safety/prompt-guard.d.ts +34 -0
  270. package/dist/providers/safety/prompt-guard.d.ts.map +1 -0
  271. package/dist/providers/shared/anti-bot-policy.d.ts +51 -0
  272. package/dist/providers/shared/anti-bot-policy.d.ts.map +1 -0
  273. package/dist/providers/shared/post-policy.d.ts +31 -0
  274. package/dist/providers/shared/post-policy.d.ts.map +1 -0
  275. package/dist/providers/shared/request-headers.d.ts +5 -0
  276. package/dist/providers/shared/request-headers.d.ts.map +1 -0
  277. package/dist/providers/shared/traversal-url.d.ts +2 -0
  278. package/dist/providers/shared/traversal-url.d.ts.map +1 -0
  279. package/dist/providers/shopping/index.d.ts +63 -0
  280. package/dist/providers/shopping/index.d.ts.map +1 -0
  281. package/dist/providers/social/bluesky.d.ts +3 -0
  282. package/dist/providers/social/bluesky.d.ts.map +1 -0
  283. package/dist/providers/social/facebook.d.ts +3 -0
  284. package/dist/providers/social/facebook.d.ts.map +1 -0
  285. package/dist/providers/social/index.d.ts +31 -0
  286. package/dist/providers/social/index.d.ts.map +1 -0
  287. package/dist/providers/social/instagram.d.ts +3 -0
  288. package/dist/providers/social/instagram.d.ts.map +1 -0
  289. package/dist/providers/social/linkedin.d.ts +3 -0
  290. package/dist/providers/social/linkedin.d.ts.map +1 -0
  291. package/dist/providers/social/platform.d.ts +40 -0
  292. package/dist/providers/social/platform.d.ts.map +1 -0
  293. package/dist/providers/social/reddit.d.ts +3 -0
  294. package/dist/providers/social/reddit.d.ts.map +1 -0
  295. package/dist/providers/social/threads.d.ts +3 -0
  296. package/dist/providers/social/threads.d.ts.map +1 -0
  297. package/dist/providers/social/tiktok.d.ts +3 -0
  298. package/dist/providers/social/tiktok.d.ts.map +1 -0
  299. package/dist/providers/social/x.d.ts +3 -0
  300. package/dist/providers/social/x.d.ts.map +1 -0
  301. package/dist/providers/social/youtube-resolver.d.ts +78 -0
  302. package/dist/providers/social/youtube-resolver.d.ts.map +1 -0
  303. package/dist/providers/social/youtube.d.ts +34 -0
  304. package/dist/providers/social/youtube.d.ts.map +1 -0
  305. package/dist/providers/tier-router.d.ts +30 -0
  306. package/dist/providers/tier-router.d.ts.map +1 -0
  307. package/dist/providers/timebox.d.ts +20 -0
  308. package/dist/providers/timebox.d.ts.map +1 -0
  309. package/dist/providers/types.d.ts +344 -0
  310. package/dist/providers/types.d.ts.map +1 -0
  311. package/dist/providers/web/crawl-worker.d.ts +36 -0
  312. package/dist/providers/web/crawl-worker.d.ts.map +1 -0
  313. package/dist/providers/web/crawler.d.ts +101 -0
  314. package/dist/providers/web/crawler.d.ts.map +1 -0
  315. package/dist/providers/web/extract.d.ts +11 -0
  316. package/dist/providers/web/extract.d.ts.map +1 -0
  317. package/dist/providers/web/index.d.ts +24 -0
  318. package/dist/providers/web/index.d.ts.map +1 -0
  319. package/dist/providers/web/policy.d.ts +14 -0
  320. package/dist/providers/web/policy.d.ts.map +1 -0
  321. package/dist/providers/workflows.d.ts +67 -0
  322. package/dist/providers/workflows.d.ts.map +1 -0
  323. package/dist/relay/protocol.d.ts +317 -0
  324. package/dist/relay/protocol.d.ts.map +1 -0
  325. package/dist/relay/relay-endpoints.d.ts +16 -0
  326. package/dist/relay/relay-endpoints.d.ts.map +1 -0
  327. package/dist/relay/relay-server.d.ts +111 -0
  328. package/dist/relay/relay-server.d.ts.map +1 -0
  329. package/dist/relay/relay-types.d.ts +9 -0
  330. package/dist/relay/relay-types.d.ts.map +1 -0
  331. package/dist/skills/continuity-nudge.d.ts +12 -0
  332. package/dist/skills/continuity-nudge.d.ts.map +1 -0
  333. package/dist/skills/skill-loader.d.ts +20 -0
  334. package/dist/skills/skill-loader.d.ts.map +1 -0
  335. package/dist/skills/skill-nudge.d.ts +18 -0
  336. package/dist/skills/skill-nudge.d.ts.map +1 -0
  337. package/dist/skills/types.d.ts +12 -0
  338. package/dist/skills/types.d.ts.map +1 -0
  339. package/dist/snapshot/ops-snapshot.d.ts +16 -0
  340. package/dist/snapshot/ops-snapshot.d.ts.map +1 -0
  341. package/dist/snapshot/refs.d.ts +23 -0
  342. package/dist/snapshot/refs.d.ts.map +1 -0
  343. package/dist/snapshot/snapshotter.d.ts +27 -0
  344. package/dist/snapshot/snapshotter.d.ts.map +1 -0
  345. package/dist/tools/annotate.d.ts +4 -0
  346. package/dist/tools/annotate.d.ts.map +1 -0
  347. package/dist/tools/check.d.ts +4 -0
  348. package/dist/tools/check.d.ts.map +1 -0
  349. package/dist/tools/click.d.ts +4 -0
  350. package/dist/tools/click.d.ts.map +1 -0
  351. package/dist/tools/clone_component.d.ts +4 -0
  352. package/dist/tools/clone_component.d.ts.map +1 -0
  353. package/dist/tools/clone_page.d.ts +4 -0
  354. package/dist/tools/clone_page.d.ts.map +1 -0
  355. package/dist/tools/close.d.ts +4 -0
  356. package/dist/tools/close.d.ts.map +1 -0
  357. package/dist/tools/connect.d.ts +4 -0
  358. package/dist/tools/connect.d.ts.map +1 -0
  359. package/dist/tools/console_poll.d.ts +4 -0
  360. package/dist/tools/console_poll.d.ts.map +1 -0
  361. package/dist/tools/cookie_import.d.ts +25 -0
  362. package/dist/tools/cookie_import.d.ts.map +1 -0
  363. package/dist/tools/cookie_list.d.ts +9 -0
  364. package/dist/tools/cookie_list.d.ts.map +1 -0
  365. package/dist/tools/debug_trace_snapshot.d.ts +4 -0
  366. package/dist/tools/debug_trace_snapshot.d.ts.map +1 -0
  367. package/dist/tools/deps.d.ts +26 -0
  368. package/dist/tools/deps.d.ts.map +1 -0
  369. package/dist/tools/disconnect.d.ts +4 -0
  370. package/dist/tools/disconnect.d.ts.map +1 -0
  371. package/dist/tools/dom_get_html.d.ts +4 -0
  372. package/dist/tools/dom_get_html.d.ts.map +1 -0
  373. package/dist/tools/dom_get_text.d.ts +4 -0
  374. package/dist/tools/dom_get_text.d.ts.map +1 -0
  375. package/dist/tools/get_attr.d.ts +4 -0
  376. package/dist/tools/get_attr.d.ts.map +1 -0
  377. package/dist/tools/get_value.d.ts +4 -0
  378. package/dist/tools/get_value.d.ts.map +1 -0
  379. package/dist/tools/goto.d.ts +4 -0
  380. package/dist/tools/goto.d.ts.map +1 -0
  381. package/dist/tools/hover.d.ts +4 -0
  382. package/dist/tools/hover.d.ts.map +1 -0
  383. package/dist/tools/index.d.ts +4 -0
  384. package/dist/tools/index.d.ts.map +1 -0
  385. package/dist/tools/is_checked.d.ts +4 -0
  386. package/dist/tools/is_checked.d.ts.map +1 -0
  387. package/dist/tools/is_enabled.d.ts +4 -0
  388. package/dist/tools/is_enabled.d.ts.map +1 -0
  389. package/dist/tools/is_visible.d.ts +4 -0
  390. package/dist/tools/is_visible.d.ts.map +1 -0
  391. package/dist/tools/launch.d.ts +4 -0
  392. package/dist/tools/launch.d.ts.map +1 -0
  393. package/dist/tools/list.d.ts +4 -0
  394. package/dist/tools/list.d.ts.map +1 -0
  395. package/dist/tools/macro_resolve.d.ts +25 -0
  396. package/dist/tools/macro_resolve.d.ts.map +1 -0
  397. package/dist/tools/network_poll.d.ts +4 -0
  398. package/dist/tools/network_poll.d.ts.map +1 -0
  399. package/dist/tools/page.d.ts +4 -0
  400. package/dist/tools/page.d.ts.map +1 -0
  401. package/dist/tools/perf.d.ts +4 -0
  402. package/dist/tools/perf.d.ts.map +1 -0
  403. package/dist/tools/press.d.ts +4 -0
  404. package/dist/tools/press.d.ts.map +1 -0
  405. package/dist/tools/product_video_run.d.ts +4 -0
  406. package/dist/tools/product_video_run.d.ts.map +1 -0
  407. package/dist/tools/prompting_guide.d.ts +4 -0
  408. package/dist/tools/prompting_guide.d.ts.map +1 -0
  409. package/dist/tools/research_run.d.ts +4 -0
  410. package/dist/tools/research_run.d.ts.map +1 -0
  411. package/dist/tools/response.d.ts +16 -0
  412. package/dist/tools/response.d.ts.map +1 -0
  413. package/dist/tools/run.d.ts +4 -0
  414. package/dist/tools/run.d.ts.map +1 -0
  415. package/dist/tools/screenshot.d.ts +4 -0
  416. package/dist/tools/screenshot.d.ts.map +1 -0
  417. package/dist/tools/scroll.d.ts +4 -0
  418. package/dist/tools/scroll.d.ts.map +1 -0
  419. package/dist/tools/scroll_into_view.d.ts +4 -0
  420. package/dist/tools/scroll_into_view.d.ts.map +1 -0
  421. package/dist/tools/select.d.ts +4 -0
  422. package/dist/tools/select.d.ts.map +1 -0
  423. package/dist/tools/shopping_run.d.ts +4 -0
  424. package/dist/tools/shopping_run.d.ts.map +1 -0
  425. package/dist/tools/skill_list.d.ts +4 -0
  426. package/dist/tools/skill_list.d.ts.map +1 -0
  427. package/dist/tools/skill_load.d.ts +4 -0
  428. package/dist/tools/skill_load.d.ts.map +1 -0
  429. package/dist/tools/snapshot.d.ts +4 -0
  430. package/dist/tools/snapshot.d.ts.map +1 -0
  431. package/dist/tools/status.d.ts +4 -0
  432. package/dist/tools/status.d.ts.map +1 -0
  433. package/dist/tools/target_close.d.ts +4 -0
  434. package/dist/tools/target_close.d.ts.map +1 -0
  435. package/dist/tools/target_new.d.ts +4 -0
  436. package/dist/tools/target_new.d.ts.map +1 -0
  437. package/dist/tools/target_use.d.ts +4 -0
  438. package/dist/tools/target_use.d.ts.map +1 -0
  439. package/dist/tools/targets_list.d.ts +4 -0
  440. package/dist/tools/targets_list.d.ts.map +1 -0
  441. package/dist/tools/type.d.ts +4 -0
  442. package/dist/tools/type.d.ts.map +1 -0
  443. package/dist/tools/uncheck.d.ts +4 -0
  444. package/dist/tools/uncheck.d.ts.map +1 -0
  445. package/dist/tools/wait.d.ts +4 -0
  446. package/dist/tools/wait.d.ts.map +1 -0
  447. package/dist/tools/workflow-runtime.d.ts +4 -0
  448. package/dist/tools/workflow-runtime.d.ts.map +1 -0
  449. package/dist/utils/crypto.d.ts +2 -0
  450. package/dist/utils/crypto.d.ts.map +1 -0
  451. package/dist/utils/endpoint-validation.d.ts +2 -0
  452. package/dist/utils/endpoint-validation.d.ts.map +1 -0
  453. package/dist/utils/fs.d.ts +5 -0
  454. package/dist/utils/fs.d.ts.map +1 -0
  455. package/dist/utils/hub-enabled.d.ts +3 -0
  456. package/dist/utils/hub-enabled.d.ts.map +1 -0
  457. package/extension/dist/annotate-content.css +237 -0
  458. package/extension/dist/annotate-content.js +934 -0
  459. package/extension/dist/background.js +1203 -35
  460. package/extension/dist/logging.js +50 -0
  461. package/extension/dist/ops/dom-bridge.js +355 -0
  462. package/extension/dist/ops/ops-runtime.js +1751 -0
  463. package/extension/dist/ops/ops-session-store.js +203 -0
  464. package/extension/dist/ops/parallelism-governor.js +117 -0
  465. package/extension/dist/ops/redaction.js +52 -0
  466. package/extension/dist/ops/snapshot-builder.js +4 -0
  467. package/extension/dist/ops/snapshot-shared.js +236 -0
  468. package/extension/dist/popup.js +370 -25
  469. package/extension/dist/relay-settings.js +1 -0
  470. package/extension/dist/services/CDPRouter.js +567 -104
  471. package/extension/dist/services/ConnectionManager.js +469 -60
  472. package/extension/dist/services/NativePortManager.js +182 -0
  473. package/extension/dist/services/RelayClient.js +227 -26
  474. package/extension/dist/services/TabManager.js +81 -0
  475. package/extension/dist/services/TargetSessionMap.js +146 -0
  476. package/extension/dist/services/cdp-router-commands.js +203 -0
  477. package/extension/dist/services/url-restrictions.js +41 -0
  478. package/extension/dist/types.js +3 -1
  479. package/extension/icons/icon128.png +0 -0
  480. package/extension/icons/icon16.png +0 -0
  481. package/extension/icons/icon32.png +0 -0
  482. package/extension/icons/icon48.png +0 -0
  483. package/extension/manifest.json +17 -3
  484. package/extension/popup.html +144 -0
  485. package/package.json +26 -17
  486. package/scripts/native/host.cjs +230 -0
  487. package/scripts/native/install.ps1 +73 -0
  488. package/scripts/native/install.sh +66 -0
  489. package/scripts/native/uninstall.ps1 +25 -0
  490. package/scripts/native/uninstall.sh +26 -0
  491. package/skills/AGENTS.md +47 -66
  492. package/skills/opendevbrowser-best-practices/SKILL.md +196 -49
  493. package/skills/opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md +44 -0
  494. package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +95 -0
  495. package/skills/opendevbrowser-best-practices/artifacts/debug-trace-playbook.md +36 -0
  496. package/skills/opendevbrowser-best-practices/artifacts/fingerprint-tiers.md +36 -0
  497. package/skills/opendevbrowser-best-practices/artifacts/macro-workflows.md +43 -0
  498. package/skills/opendevbrowser-best-practices/artifacts/parity-gates.md +36 -0
  499. package/skills/opendevbrowser-best-practices/artifacts/provider-workflows.md +89 -0
  500. package/skills/opendevbrowser-best-practices/assets/templates/cdp-forward-envelope.json +11 -0
  501. package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +56 -0
  502. package/skills/opendevbrowser-best-practices/assets/templates/ops-request-envelope.json +9 -0
  503. package/skills/opendevbrowser-best-practices/assets/templates/robustness-checklist.json +79 -0
  504. package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +24 -0
  505. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +144 -0
  506. package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +83 -0
  507. package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +93 -0
  508. package/skills/opendevbrowser-continuity-ledger/SKILL.md +67 -23
  509. package/skills/opendevbrowser-data-extraction/SKILL.md +126 -0
  510. package/skills/opendevbrowser-data-extraction/artifacts/extraction-workflows.md +31 -0
  511. package/skills/opendevbrowser-data-extraction/assets/templates/compliance-checklist.md +7 -0
  512. package/skills/opendevbrowser-data-extraction/assets/templates/extraction-schema.json +17 -0
  513. package/skills/opendevbrowser-data-extraction/assets/templates/pagination-state.json +11 -0
  514. package/skills/opendevbrowser-data-extraction/assets/templates/quality-gates.json +10 -0
  515. package/skills/opendevbrowser-data-extraction/examples/sample-schema.json +19 -0
  516. package/skills/opendevbrowser-data-extraction/scripts/run-extraction-workflow.sh +83 -0
  517. package/skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh +49 -0
  518. package/skills/opendevbrowser-form-testing/SKILL.md +143 -0
  519. package/skills/opendevbrowser-form-testing/artifacts/form-workflows.md +37 -0
  520. package/skills/opendevbrowser-form-testing/assets/templates/a11y-assertions.md +7 -0
  521. package/skills/opendevbrowser-form-testing/assets/templates/challenge-decision-tree.json +16 -0
  522. package/skills/opendevbrowser-form-testing/assets/templates/multi-step-state.json +11 -0
  523. package/skills/opendevbrowser-form-testing/assets/templates/validation-matrix.json +24 -0
  524. package/skills/opendevbrowser-form-testing/examples/sample-validation-matrix.json +29 -0
  525. package/skills/opendevbrowser-form-testing/scripts/run-form-workflow.sh +82 -0
  526. package/skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh +49 -0
  527. package/skills/opendevbrowser-login-automation/SKILL.md +159 -0
  528. package/skills/opendevbrowser-login-automation/artifacts/login-workflows.md +39 -0
  529. package/skills/opendevbrowser-login-automation/assets/templates/auth-signals.json +21 -0
  530. package/skills/opendevbrowser-login-automation/assets/templates/challenge-checkpoint.md +10 -0
  531. package/skills/opendevbrowser-login-automation/assets/templates/login-scenario-matrix.json +26 -0
  532. package/skills/opendevbrowser-login-automation/examples/sample-auth-signals.json +14 -0
  533. package/skills/opendevbrowser-login-automation/scripts/record-auth-signals.sh +18 -0
  534. package/skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh +99 -0
  535. package/skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh +50 -0
  536. package/skills/opendevbrowser-product-presentation-asset/SKILL.md +98 -0
  537. package/skills/opendevbrowser-product-presentation-asset/artifacts/asset-pack-assembly.md +23 -0
  538. package/skills/opendevbrowser-product-presentation-asset/artifacts/ugc-creative-guide.md +21 -0
  539. package/skills/opendevbrowser-product-presentation-asset/assets/templates/claims-evidence-map.md +5 -0
  540. package/skills/opendevbrowser-product-presentation-asset/assets/templates/copy.md +5 -0
  541. package/skills/opendevbrowser-product-presentation-asset/assets/templates/features.md +4 -0
  542. package/skills/opendevbrowser-product-presentation-asset/assets/templates/manifest.schema.json +14 -0
  543. package/skills/opendevbrowser-product-presentation-asset/assets/templates/shot-list.md +7 -0
  544. package/skills/opendevbrowser-product-presentation-asset/assets/templates/ugc-concepts.md +17 -0
  545. package/skills/opendevbrowser-product-presentation-asset/assets/templates/user-actions.md +7 -0
  546. package/skills/opendevbrowser-product-presentation-asset/assets/templates/video-assembly.md +18 -0
  547. package/skills/opendevbrowser-product-presentation-asset/examples/sample-input.json +6 -0
  548. package/skills/opendevbrowser-product-presentation-asset/examples/sample-manifest.json +18 -0
  549. package/skills/opendevbrowser-product-presentation-asset/scripts/capture-screenshots.sh +9 -0
  550. package/skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh +14 -0
  551. package/skills/opendevbrowser-product-presentation-asset/scripts/download-images.sh +9 -0
  552. package/skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh +96 -0
  553. package/skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh +56 -0
  554. package/skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh +43 -0
  555. package/skills/opendevbrowser-research/SKILL.md +73 -0
  556. package/skills/opendevbrowser-research/artifacts/research-workflows.md +29 -0
  557. package/skills/opendevbrowser-research/assets/templates/compact.md +7 -0
  558. package/skills/opendevbrowser-research/assets/templates/context.json +18 -0
  559. package/skills/opendevbrowser-research/assets/templates/report.md +9 -0
  560. package/skills/opendevbrowser-research/examples/sample-input.json +6 -0
  561. package/skills/opendevbrowser-research/examples/sample-output.md +4 -0
  562. package/skills/opendevbrowser-research/scripts/render-output.sh +12 -0
  563. package/skills/opendevbrowser-research/scripts/run-research.sh +23 -0
  564. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +48 -0
  565. package/skills/opendevbrowser-research/scripts/write-artifacts.sh +29 -0
  566. package/skills/opendevbrowser-shopping/SKILL.md +118 -0
  567. package/skills/opendevbrowser-shopping/artifacts/deal-hunting-workflows.md +37 -0
  568. package/skills/opendevbrowser-shopping/assets/templates/deal-thresholds.json +8 -0
  569. package/skills/opendevbrowser-shopping/assets/templates/deals-context.json +9 -0
  570. package/skills/opendevbrowser-shopping/assets/templates/deals-table.md +4 -0
  571. package/skills/opendevbrowser-shopping/assets/templates/market-analysis.json +30 -0
  572. package/skills/opendevbrowser-shopping/examples/sample-deals.md +4 -0
  573. package/skills/opendevbrowser-shopping/examples/sample-query.json +5 -0
  574. package/skills/opendevbrowser-shopping/scripts/analyze-market.sh +307 -0
  575. package/skills/opendevbrowser-shopping/scripts/normalize-offers.sh +28 -0
  576. package/skills/opendevbrowser-shopping/scripts/render-deals.sh +13 -0
  577. package/skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh +32 -0
  578. package/skills/opendevbrowser-shopping/scripts/run-shopping.sh +19 -0
  579. package/skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh +53 -0
  580. package/dist/chunk-WTFSMBVH.js +0 -2815
  581. package/dist/chunk-WTFSMBVH.js.map +0 -1
  582. package/extension/dist/popup.jsx +0 -150
  583. package/skills/data-extraction/SKILL.md +0 -136
  584. package/skills/form-testing/SKILL.md +0 -113
  585. 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
@@ -0,0 +1,5 @@
1
+ # Claims Evidence Map
2
+
3
+ | Claim | Evidence Asset | Source Field | Verified |
4
+ |---|---|---|---|
5
+ | | | | no |
@@ -0,0 +1,5 @@
1
+ # Product Copy
2
+
3
+ - Headline:
4
+ - Value proposition:
5
+ - CTA:
@@ -0,0 +1,4 @@
1
+ # Product Features
2
+
3
+ - Feature 1
4
+ - Feature 2
@@ -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,7 @@
1
+ # Shot List
2
+
3
+ | Scene | Goal | Asset | Voiceover | Duration |
4
+ |---|---|---|---|---:|
5
+ | 1 | Hook | screenshots/screenshot-01.png | | 2s |
6
+ | 2 | Feature proof | images/image-01.jpg | | 4s |
7
+ | 3 | Outcome + CTA | images/image-02.jpg | | 4s |
@@ -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,7 @@
1
+ # User Action Checklist
2
+
3
+ - [ ] Collected assets from target product
4
+ - [ ] Reviewed manifest fields for correctness
5
+ - [ ] Generated video brief files
6
+ - [ ] Confirmed pricing recency and currency
7
+ - [ ] Approved shot order and CTA
@@ -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,6 @@
1
+ {
2
+ "product_url": "https://example.com/product/123",
3
+ "include_screenshots": true,
4
+ "include_all_images": true,
5
+ "include_copy": true
6
+ }
@@ -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,9 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [[ $# -lt 1 ]]; then
5
+ echo "Usage: capture-screenshots.sh <product-url>"
6
+ exit 1
7
+ fi
8
+
9
+ opendevbrowser product-video run --product-url "$1" --include-screenshots --include-all-images=false
@@ -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,9 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [[ $# -lt 1 ]]; then
5
+ echo "Usage: download-images.sh <product-url>"
6
+ exit 1
7
+ fi
8
+
9
+ opendevbrowser product-video run --product-url "$1" --include-all-images --include-screenshots=false
@@ -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,7 @@
1
+ # Compact Research Template
2
+
3
+ - Top findings:
4
+ - Source diversity:
5
+ - Key risks:
6
+ - Rate-limit/backoff notes:
7
+ - Open evidence gaps:
@@ -0,0 +1,18 @@
1
+ {
2
+ "topic": "",
3
+ "timebox": {
4
+ "days": 30
5
+ },
6
+ "issue_ids": [
7
+ "ISSUE-06",
8
+ "ISSUE-09",
9
+ "ISSUE-10",
10
+ "ISSUE-12"
11
+ ],
12
+ "highlights": [],
13
+ "records": [],
14
+ "meta": {
15
+ "source_count": 0,
16
+ "warnings": []
17
+ }
18
+ }
@@ -0,0 +1,9 @@
1
+ # Research Report
2
+
3
+ ## Executive Summary
4
+
5
+ ## Findings
6
+
7
+ ## Confidence and Gaps
8
+
9
+ ## Sources
@@ -0,0 +1,6 @@
1
+ {
2
+ "topic": "ai browser automation",
3
+ "days": 30,
4
+ "sourceSelection": "auto",
5
+ "mode": "context"
6
+ }
@@ -0,0 +1,4 @@
1
+ # Sample Output
2
+
3
+ 1. Example finding one
4
+ 2. Example finding two
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [[ $# -lt 2 ]]; then
5
+ echo "Usage: render-output.sh <topic> <mode>"
6
+ exit 1
7
+ fi
8
+
9
+ TOPIC="$1"
10
+ MODE="$2"
11
+
12
+ opendevbrowser research run --topic "$TOPIC" --mode "$MODE"
@@ -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."