opendevbrowser 0.0.15 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +229 -34
  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 +2205 -267
  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 +867 -87
  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 +867 -87
  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/background.js +10 -4
  458. package/extension/dist/ops/ops-runtime.js +506 -4
  459. package/extension/dist/ops/ops-session-store.js +16 -2
  460. package/extension/dist/ops/parallelism-governor.js +117 -0
  461. package/extension/dist/ops/snapshot-shared.js +21 -5
  462. package/extension/dist/services/CDPRouter.js +70 -5
  463. package/extension/dist/services/ConnectionManager.js +5 -3
  464. package/extension/icons/icon128.png +0 -0
  465. package/extension/icons/icon16.png +0 -0
  466. package/extension/icons/icon32.png +0 -0
  467. package/extension/icons/icon48.png +0 -0
  468. package/extension/manifest.json +1 -1
  469. package/package.json +25 -16
  470. package/scripts/native/host.cjs +230 -0
  471. package/scripts/native/install.ps1 +73 -0
  472. package/scripts/native/install.sh +66 -0
  473. package/scripts/native/uninstall.ps1 +25 -0
  474. package/scripts/native/uninstall.sh +26 -0
  475. package/skills/AGENTS.md +17 -8
  476. package/skills/opendevbrowser-best-practices/SKILL.md +178 -72
  477. package/skills/opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md +44 -0
  478. package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +95 -0
  479. package/skills/opendevbrowser-best-practices/artifacts/debug-trace-playbook.md +36 -0
  480. package/skills/opendevbrowser-best-practices/artifacts/fingerprint-tiers.md +36 -0
  481. package/skills/opendevbrowser-best-practices/artifacts/macro-workflows.md +43 -0
  482. package/skills/opendevbrowser-best-practices/artifacts/parity-gates.md +36 -0
  483. package/skills/opendevbrowser-best-practices/artifacts/provider-workflows.md +89 -0
  484. package/skills/opendevbrowser-best-practices/assets/templates/cdp-forward-envelope.json +11 -0
  485. package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +56 -0
  486. package/skills/opendevbrowser-best-practices/assets/templates/ops-request-envelope.json +9 -0
  487. package/skills/opendevbrowser-best-practices/assets/templates/robustness-checklist.json +79 -0
  488. package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +24 -0
  489. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +144 -0
  490. package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +83 -0
  491. package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +93 -0
  492. package/skills/opendevbrowser-continuity-ledger/SKILL.md +10 -0
  493. package/skills/opendevbrowser-data-extraction/SKILL.md +126 -0
  494. package/skills/opendevbrowser-data-extraction/artifacts/extraction-workflows.md +31 -0
  495. package/skills/opendevbrowser-data-extraction/assets/templates/compliance-checklist.md +7 -0
  496. package/skills/opendevbrowser-data-extraction/assets/templates/extraction-schema.json +17 -0
  497. package/skills/opendevbrowser-data-extraction/assets/templates/pagination-state.json +11 -0
  498. package/skills/opendevbrowser-data-extraction/assets/templates/quality-gates.json +10 -0
  499. package/skills/opendevbrowser-data-extraction/examples/sample-schema.json +19 -0
  500. package/skills/opendevbrowser-data-extraction/scripts/run-extraction-workflow.sh +83 -0
  501. package/skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh +49 -0
  502. package/skills/opendevbrowser-form-testing/SKILL.md +143 -0
  503. package/skills/opendevbrowser-form-testing/artifacts/form-workflows.md +37 -0
  504. package/skills/opendevbrowser-form-testing/assets/templates/a11y-assertions.md +7 -0
  505. package/skills/opendevbrowser-form-testing/assets/templates/challenge-decision-tree.json +16 -0
  506. package/skills/opendevbrowser-form-testing/assets/templates/multi-step-state.json +11 -0
  507. package/skills/opendevbrowser-form-testing/assets/templates/validation-matrix.json +24 -0
  508. package/skills/opendevbrowser-form-testing/examples/sample-validation-matrix.json +29 -0
  509. package/skills/opendevbrowser-form-testing/scripts/run-form-workflow.sh +82 -0
  510. package/skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh +49 -0
  511. package/skills/opendevbrowser-login-automation/SKILL.md +159 -0
  512. package/skills/opendevbrowser-login-automation/artifacts/login-workflows.md +39 -0
  513. package/skills/opendevbrowser-login-automation/assets/templates/auth-signals.json +21 -0
  514. package/skills/opendevbrowser-login-automation/assets/templates/challenge-checkpoint.md +10 -0
  515. package/skills/opendevbrowser-login-automation/assets/templates/login-scenario-matrix.json +26 -0
  516. package/skills/opendevbrowser-login-automation/examples/sample-auth-signals.json +14 -0
  517. package/skills/opendevbrowser-login-automation/scripts/record-auth-signals.sh +18 -0
  518. package/skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh +99 -0
  519. package/skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh +50 -0
  520. package/skills/opendevbrowser-product-presentation-asset/SKILL.md +98 -0
  521. package/skills/opendevbrowser-product-presentation-asset/artifacts/asset-pack-assembly.md +23 -0
  522. package/skills/opendevbrowser-product-presentation-asset/artifacts/ugc-creative-guide.md +21 -0
  523. package/skills/opendevbrowser-product-presentation-asset/assets/templates/claims-evidence-map.md +5 -0
  524. package/skills/opendevbrowser-product-presentation-asset/assets/templates/copy.md +5 -0
  525. package/skills/opendevbrowser-product-presentation-asset/assets/templates/features.md +4 -0
  526. package/skills/opendevbrowser-product-presentation-asset/assets/templates/manifest.schema.json +14 -0
  527. package/skills/opendevbrowser-product-presentation-asset/assets/templates/shot-list.md +7 -0
  528. package/skills/opendevbrowser-product-presentation-asset/assets/templates/ugc-concepts.md +17 -0
  529. package/skills/opendevbrowser-product-presentation-asset/assets/templates/user-actions.md +7 -0
  530. package/skills/opendevbrowser-product-presentation-asset/assets/templates/video-assembly.md +18 -0
  531. package/skills/opendevbrowser-product-presentation-asset/examples/sample-input.json +6 -0
  532. package/skills/opendevbrowser-product-presentation-asset/examples/sample-manifest.json +18 -0
  533. package/skills/opendevbrowser-product-presentation-asset/scripts/capture-screenshots.sh +9 -0
  534. package/skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh +14 -0
  535. package/skills/opendevbrowser-product-presentation-asset/scripts/download-images.sh +9 -0
  536. package/skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh +96 -0
  537. package/skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh +56 -0
  538. package/skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh +43 -0
  539. package/skills/opendevbrowser-research/SKILL.md +73 -0
  540. package/skills/opendevbrowser-research/artifacts/research-workflows.md +29 -0
  541. package/skills/opendevbrowser-research/assets/templates/compact.md +7 -0
  542. package/skills/opendevbrowser-research/assets/templates/context.json +18 -0
  543. package/skills/opendevbrowser-research/assets/templates/report.md +9 -0
  544. package/skills/opendevbrowser-research/examples/sample-input.json +6 -0
  545. package/skills/opendevbrowser-research/examples/sample-output.md +4 -0
  546. package/skills/opendevbrowser-research/scripts/render-output.sh +12 -0
  547. package/skills/opendevbrowser-research/scripts/run-research.sh +23 -0
  548. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +48 -0
  549. package/skills/opendevbrowser-research/scripts/write-artifacts.sh +29 -0
  550. package/skills/opendevbrowser-shopping/SKILL.md +118 -0
  551. package/skills/opendevbrowser-shopping/artifacts/deal-hunting-workflows.md +37 -0
  552. package/skills/opendevbrowser-shopping/assets/templates/deal-thresholds.json +8 -0
  553. package/skills/opendevbrowser-shopping/assets/templates/deals-context.json +9 -0
  554. package/skills/opendevbrowser-shopping/assets/templates/deals-table.md +4 -0
  555. package/skills/opendevbrowser-shopping/assets/templates/market-analysis.json +30 -0
  556. package/skills/opendevbrowser-shopping/examples/sample-deals.md +4 -0
  557. package/skills/opendevbrowser-shopping/examples/sample-query.json +5 -0
  558. package/skills/opendevbrowser-shopping/scripts/analyze-market.sh +307 -0
  559. package/skills/opendevbrowser-shopping/scripts/normalize-offers.sh +28 -0
  560. package/skills/opendevbrowser-shopping/scripts/render-deals.sh +13 -0
  561. package/skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh +32 -0
  562. package/skills/opendevbrowser-shopping/scripts/run-shopping.sh +19 -0
  563. package/skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh +53 -0
  564. package/dist/chunk-JVBMT2O5.js +0 -7173
  565. package/dist/chunk-JVBMT2O5.js.map +0 -1
  566. package/skills/data-extraction/SKILL.md +0 -128
  567. package/skills/form-testing/SKILL.md +0 -106
  568. package/skills/login-automation/SKILL.md +0 -108
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [[ $# -lt 2 ]]; then
5
+ echo "Usage: record-auth-signals.sh <template-json> <output-json>" >&2
6
+ exit 1
7
+ fi
8
+
9
+ template="$1"
10
+ output="$2"
11
+
12
+ if [[ ! -f "$template" ]]; then
13
+ echo "Missing template: $template" >&2
14
+ exit 1
15
+ fi
16
+
17
+ cp "$template" "$output"
18
+ echo "Auth signal template copied to $output"
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ print_help() {
5
+ cat <<'HELP'
6
+ Login automation workflow router
7
+
8
+ Usage:
9
+ ./skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh <workflow>
10
+
11
+ Workflows:
12
+ password
13
+ mfa
14
+ sso-popup
15
+ challenge-checkpoint
16
+ challenge-loop-guard
17
+ lockout-recovery
18
+ session-persistence
19
+ list
20
+ HELP
21
+ }
22
+
23
+ workflow="${1:-list}"
24
+
25
+ case "$workflow" in
26
+ list)
27
+ print_help
28
+ ;;
29
+ password)
30
+ cat <<'FLOW'
31
+ opendevbrowser_goto sessionId="<session-id>" url="<login-url>"
32
+ opendevbrowser_wait sessionId="<session-id>" until="networkidle"
33
+ opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
34
+ opendevbrowser_type sessionId="<session-id>" ref="<identifier-ref>" text="<identifier>"
35
+ opendevbrowser_type sessionId="<session-id>" ref="<password-ref>" text="<password>"
36
+ opendevbrowser_click sessionId="<session-id>" ref="<submit-ref>"
37
+ opendevbrowser_wait sessionId="<session-id>" until="networkidle"
38
+ opendevbrowser_snapshot sessionId="<session-id>" format="outline"
39
+ opendevbrowser_network_poll sessionId="<session-id>" max=50
40
+ FLOW
41
+ ;;
42
+ mfa)
43
+ cat <<'FLOW'
44
+ # Run password workflow first.
45
+ opendevbrowser_wait sessionId="<session-id>" ref="<mfa-input-ref>" state="visible"
46
+ opendevbrowser_type sessionId="<session-id>" ref="<mfa-input-ref>" text="<otp>"
47
+ opendevbrowser_click sessionId="<session-id>" ref="<mfa-submit-ref>"
48
+ opendevbrowser_wait sessionId="<session-id>" until="networkidle"
49
+ opendevbrowser_snapshot sessionId="<session-id>" format="outline"
50
+ FLOW
51
+ ;;
52
+ sso-popup)
53
+ cat <<'FLOW'
54
+ opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
55
+ opendevbrowser_click sessionId="<session-id>" ref="<sso-provider-ref>"
56
+ # Rebind to popup/new target before continuing auth steps.
57
+ opendevbrowser_targets_list sessionId="<session-id>"
58
+ opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
59
+ FLOW
60
+ ;;
61
+ challenge-checkpoint)
62
+ cat <<'FLOW'
63
+ # Detect challenge state, then pause automated actions.
64
+ opendevbrowser_snapshot sessionId="<session-id>" format="outline"
65
+ # Manual checkpoint required: solve challenge with approved flow/test keys.
66
+ # Resume only after challenge is solved.
67
+ opendevbrowser_snapshot sessionId="<session-id>" format="actionables"
68
+ opendevbrowser_click sessionId="<session-id>" ref="<continue-ref>"
69
+ opendevbrowser_wait sessionId="<session-id>" until="networkidle"
70
+ FLOW
71
+ ;;
72
+ challenge-loop-guard)
73
+ cat <<'FLOW'
74
+ # If challenge reappears twice, stop and escalate.
75
+ opendevbrowser_network_poll sessionId="<session-id>" max=100
76
+ # Honor Retry-After before any retry when present.
77
+ opendevbrowser_snapshot sessionId="<session-id>" format="outline"
78
+ FLOW
79
+ ;;
80
+ lockout-recovery)
81
+ cat <<'FLOW'
82
+ opendevbrowser_snapshot sessionId="<session-id>" format="outline"
83
+ # If lockout/rate-limit banner present: stop retries and cooldown.
84
+ opendevbrowser_network_poll sessionId="<session-id>" max=50
85
+ FLOW
86
+ ;;
87
+ session-persistence)
88
+ cat <<'FLOW'
89
+ opendevbrowser_launch profile="auth-test" persistProfile=true noExtension=true
90
+ # Authenticate once, close, relaunch same profile, then assert auth state.
91
+ opendevbrowser_snapshot sessionId="<session-id>" format="outline"
92
+ FLOW
93
+ ;;
94
+ *)
95
+ echo "Unknown workflow: $workflow" >&2
96
+ print_help
97
+ exit 2
98
+ ;;
99
+ esac
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+ skill_file="$root/SKILL.md"
6
+
7
+ required=(
8
+ "artifacts/login-workflows.md"
9
+ "assets/templates/login-scenario-matrix.json"
10
+ "assets/templates/challenge-checkpoint.md"
11
+ "assets/templates/auth-signals.json"
12
+ "scripts/run-login-workflow.sh"
13
+ "scripts/record-auth-signals.sh"
14
+ "scripts/validate-skill-assets.sh"
15
+ )
16
+
17
+ status=0
18
+
19
+ for rel in "${required[@]}"; do
20
+ if [[ ! -f "$root/$rel" ]]; then
21
+ echo "Missing required asset: $rel" >&2
22
+ status=1
23
+ fi
24
+ if ! grep -Fq "$rel" "$skill_file"; then
25
+ echo "SKILL.md missing reference: $rel" >&2
26
+ status=1
27
+ fi
28
+ done
29
+
30
+ for rel in scripts/run-login-workflow.sh scripts/record-auth-signals.sh scripts/validate-skill-assets.sh; do
31
+ if [[ -f "$root/$rel" && ! -x "$root/$rel" ]]; then
32
+ echo "Script is not executable: $rel" >&2
33
+ status=1
34
+ fi
35
+ done
36
+
37
+ for rel in assets/templates/login-scenario-matrix.json assets/templates/auth-signals.json; do
38
+ if [[ -f "$root/$rel" ]]; then
39
+ if ! node -e 'const fs=require("fs"); JSON.parse(fs.readFileSync(process.argv[1], "utf8"));' "$root/$rel" >/dev/null 2>&1; then
40
+ echo "Invalid JSON template: $rel" >&2
41
+ status=1
42
+ fi
43
+ fi
44
+ done
45
+
46
+ if [[ $status -ne 0 ]]; then
47
+ exit $status
48
+ fi
49
+
50
+ echo "Login automation skill assets validated."
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: opendevbrowser-product-presentation-asset
3
+ description: Collects product screenshots, images, copy, and metadata into a local folder pack for video workflows.
4
+ version: 2.0.0
5
+ ---
6
+
7
+ # Product Presentation Asset Skill
8
+
9
+ Use this skill to build complete product-video input packs and assembly instructions for UGC-style content production.
10
+
11
+ ## Pack Contents
12
+
13
+ - `artifacts/asset-pack-assembly.md`
14
+ - `artifacts/ugc-creative-guide.md`
15
+ - `assets/templates/manifest.schema.json`
16
+ - `assets/templates/copy.md`
17
+ - `assets/templates/features.md`
18
+ - `assets/templates/video-assembly.md`
19
+ - `assets/templates/user-actions.md`
20
+ - `assets/templates/ugc-concepts.md`
21
+ - `assets/templates/shot-list.md`
22
+ - `assets/templates/claims-evidence-map.md`
23
+ - `scripts/collect-product.sh`
24
+ - `scripts/capture-screenshots.sh`
25
+ - `scripts/download-images.sh`
26
+ - `scripts/write-manifest.sh`
27
+ - `scripts/render-video-brief.sh`
28
+ - `scripts/validate-skill-assets.sh`
29
+ - Shared robustness matrix: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
30
+
31
+ ## Fast Start
32
+
33
+ ```bash
34
+ ./skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh
35
+ ./skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh "https://example.com/product/123"
36
+ ./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh /path/to/manifest.json /tmp/product-video-brief
37
+ ```
38
+
39
+ ## Final Assets Produced
40
+
41
+ Expected output pack includes:
42
+ - `manifest.json` with canonical product metadata
43
+ - `product.json` and `pricing.json`
44
+ - `images/` for product stills
45
+ - `screenshots/` for page context and UI proof
46
+ - `copy.md` and `features.md`
47
+ - `raw/source-record.json` for auditability
48
+
49
+ The `render-video-brief.sh` helper adds:
50
+ - `video-brief.md`
51
+ - `shot-list.md`
52
+ - `ugc-brief.md`
53
+ - `claims-evidence-map.md`
54
+
55
+ ## What the User Should Do
56
+
57
+ 1. Pick product URL or product name.
58
+ 2. Run collection workflow and confirm output pack path.
59
+ 3. Review generated manifest/copy/features for accuracy.
60
+ 4. Run `render-video-brief.sh` to generate production instructions.
61
+ 5. Hand the brief and assets to editor/creator pipeline.
62
+
63
+ ## Parallel Multitab Alignment
64
+
65
+ - Apply shared concurrency policy from `../opendevbrowser-best-practices/SKILL.md` ("Parallel Operations").
66
+ - Validate asset capture flows across `managed`, `extension`, and `cdpConnect` when browser capture is involved.
67
+ - Keep one session per worker for concurrent product-page captures; avoid target-switch thrash in one session.
68
+
69
+ ## How to Combine the Assets
70
+
71
+ 1. Use `manifest.json` as source of truth.
72
+ 2. Build hooks and claims from `copy.md` + `features.md`.
73
+ 3. Pair each claim with supporting asset (`images` or `screenshots`).
74
+ 4. Sequence assets using `shot-list.md`.
75
+ 5. Validate pricing/availability freshness before publishing.
76
+ 6. Validate every claim appears in `claims-evidence-map.md` before publish.
77
+
78
+ ## Robustness Coverage (Known-Issue Matrix)
79
+
80
+ Matrix source: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
81
+
82
+ - `ISSUE-10`: normalized price/currency fields for claims
83
+ - `ISSUE-11`: anchor discount context for pricing claims
84
+ - `ISSUE-12`: stale price and unsupported-claim prevention via evidence mapping
85
+
86
+ ## UGC Key Concepts
87
+
88
+ - Hook in first 2 seconds with user problem + payoff.
89
+ - Show real product usage context before polished close-ups.
90
+ - Keep claims concrete and verifiable from captured assets.
91
+ - Use one CTA and one primary value proposition per short clip.
92
+ - Preserve authenticity: avoid over-produced voice/style mismatches.
93
+
94
+ ## References
95
+
96
+ - FTC pricing guidance (deceptive pricing): https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-233
97
+ - Schema.org Offer metadata: https://schema.org/Offer
98
+ - NIST unit pricing/value comparison guide: https://www.nist.gov/publications/unit-pricing-guide
@@ -0,0 +1,23 @@
1
+ # Asset Pack Assembly
2
+
3
+ ## Inputs
4
+
5
+ - product URL or product name
6
+ - provider hint (optional)
7
+ - output directory (optional)
8
+
9
+ ## Build sequence
10
+
11
+ 1. Collect base product pack (`collect-product.sh`)
12
+ 2. Ensure screenshots/images exist
13
+ 3. Validate manifest schema fields
14
+ 4. Generate video brief (`render-video-brief.sh`)
15
+ 5. Review claim-to-evidence mapping (`claims-evidence-map.md`)
16
+ 6. Review shot sequence and CTA consistency
17
+
18
+ ## Release checks
19
+
20
+ - pricing timestamp is recent
21
+ - screenshot/image files are present and readable
22
+ - copy claims map to feature evidence
23
+ - every promoted claim is backed by a concrete asset path
@@ -0,0 +1,21 @@
1
+ # UGC Creative Guide
2
+
3
+ ## Creative pillars
4
+
5
+ - Authenticity over polish
6
+ - Problem-first storytelling
7
+ - Demonstrable product proof
8
+
9
+ ## Shot rhythm
10
+
11
+ 1. Hook (problem + promise)
12
+ 2. Product reveal
13
+ 3. Feature demonstration
14
+ 4. Outcome proof
15
+ 5. CTA
16
+
17
+ ## Message constraints
18
+
19
+ - Keep one primary benefit per short
20
+ - Keep language conversational
21
+ - Avoid unsupported superlatives
@@ -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"