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