opendevbrowser 0.0.27 → 0.0.29

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 (345) hide show
  1. package/README.md +2 -2
  2. package/dist/accessibility-snapshot-PA6NWNS7.js +39 -0
  3. package/dist/accessibility-snapshot-PA6NWNS7.js.map +1 -0
  4. package/dist/active-window-YNYTIPZN.js +37 -0
  5. package/dist/active-window-YNYTIPZN.js.map +1 -0
  6. package/dist/annotate-STYHXZYJ.js +205 -0
  7. package/dist/annotate-STYHXZYJ.js.map +1 -0
  8. package/dist/artifacts-KJ6RNDO2.js +120 -0
  9. package/dist/artifacts-KJ6RNDO2.js.map +1 -0
  10. package/dist/attr-GHFZZ4SA.js +84 -0
  11. package/dist/attr-GHFZZ4SA.js.map +1 -0
  12. package/dist/browser/canvas-manager.d.ts.map +1 -1
  13. package/dist/browser/ops-client.d.ts +1 -0
  14. package/dist/browser/ops-client.d.ts.map +1 -1
  15. package/dist/canvas/document-store.d.ts.map +1 -1
  16. package/dist/canvas/guidance.d.ts +22 -0
  17. package/dist/canvas/guidance.d.ts.map +1 -0
  18. package/dist/canvas-54FBOEGP.js +309 -0
  19. package/dist/canvas-54FBOEGP.js.map +1 -0
  20. package/dist/capture-desktop-SNABC24E.js +38 -0
  21. package/dist/capture-desktop-SNABC24E.js.map +1 -0
  22. package/dist/capture-window-UJSB5AMP.js +40 -0
  23. package/dist/capture-window-UJSB5AMP.js.map +1 -0
  24. package/dist/check-ST5UQ2F5.js +71 -0
  25. package/dist/check-ST5UQ2F5.js.map +1 -0
  26. package/dist/checked-IEMWI5CU.js +71 -0
  27. package/dist/checked-IEMWI5CU.js.map +1 -0
  28. package/dist/chunk-2CG4SW3E.js +64 -0
  29. package/dist/chunk-2CG4SW3E.js.map +1 -0
  30. package/dist/chunk-2SIMIPLY.js +67 -0
  31. package/dist/chunk-2SIMIPLY.js.map +1 -0
  32. package/dist/chunk-37VSRUW4.js +141 -0
  33. package/dist/chunk-37VSRUW4.js.map +1 -0
  34. package/dist/chunk-5SWZDVOW.js +144 -0
  35. package/dist/chunk-5SWZDVOW.js.map +1 -0
  36. package/dist/chunk-6PVZ2ABC.js +429 -0
  37. package/dist/chunk-6PVZ2ABC.js.map +1 -0
  38. package/dist/chunk-7GVOUZMQ.js +64 -0
  39. package/dist/chunk-7GVOUZMQ.js.map +1 -0
  40. package/dist/chunk-7THCPS52.js +84 -0
  41. package/dist/chunk-7THCPS52.js.map +1 -0
  42. package/dist/chunk-ASMHEEKY.js +10 -0
  43. package/dist/chunk-ASMHEEKY.js.map +1 -0
  44. package/dist/chunk-DBF5OKH3.js +111 -0
  45. package/dist/chunk-DBF5OKH3.js.map +1 -0
  46. package/dist/chunk-DW4TX7MU.js +54 -0
  47. package/dist/chunk-DW4TX7MU.js.map +1 -0
  48. package/dist/chunk-IPE7TF2P.js +54 -0
  49. package/dist/chunk-IPE7TF2P.js.map +1 -0
  50. package/dist/chunk-IQTJHXZJ.js +126 -0
  51. package/dist/chunk-IQTJHXZJ.js.map +1 -0
  52. package/dist/chunk-J47N77VG.js +2969 -0
  53. package/dist/chunk-J47N77VG.js.map +1 -0
  54. package/dist/chunk-JZXD6FWR.js +25 -0
  55. package/dist/chunk-JZXD6FWR.js.map +1 -0
  56. package/dist/{chunk-QVWOPIZJ.js → chunk-KDSNXS6N.js} +75 -149
  57. package/dist/chunk-KDSNXS6N.js.map +1 -0
  58. package/dist/chunk-KZ2IXVQT.js +219 -0
  59. package/dist/chunk-KZ2IXVQT.js.map +1 -0
  60. package/dist/chunk-LBPELU7L.js +3649 -0
  61. package/dist/chunk-LBPELU7L.js.map +1 -0
  62. package/dist/chunk-MX3NFLCE.js +940 -0
  63. package/dist/chunk-MX3NFLCE.js.map +1 -0
  64. package/dist/chunk-N44UXKIB.js +26 -0
  65. package/dist/chunk-N44UXKIB.js.map +1 -0
  66. package/dist/chunk-OW5HMYMI.js +19 -0
  67. package/dist/chunk-OW5HMYMI.js.map +1 -0
  68. package/dist/chunk-OYNLAZQU.js +838 -0
  69. package/dist/chunk-OYNLAZQU.js.map +1 -0
  70. package/dist/chunk-PDPJN2OP.js +17 -0
  71. package/dist/chunk-PDPJN2OP.js.map +1 -0
  72. package/dist/chunk-RCZZGGJS.js +226 -0
  73. package/dist/chunk-RCZZGGJS.js.map +1 -0
  74. package/dist/chunk-RJNI3BHT.js +1 -0
  75. package/dist/chunk-RPXWUCQQ.js +112 -0
  76. package/dist/chunk-RPXWUCQQ.js.map +1 -0
  77. package/dist/chunk-S5KZQJJI.js +107 -0
  78. package/dist/chunk-S5KZQJJI.js.map +1 -0
  79. package/dist/{chunk-V5DJUSPV.js → chunk-S6S2UP6U.js} +2255 -1577
  80. package/dist/chunk-S6S2UP6U.js.map +1 -0
  81. package/dist/{chunk-MWBDO2L5.js → chunk-SXAGSEKZ.js} +1369 -9584
  82. package/dist/chunk-SXAGSEKZ.js.map +1 -0
  83. package/dist/chunk-T4GMCW6Z.js +46 -0
  84. package/dist/chunk-T4GMCW6Z.js.map +1 -0
  85. package/dist/chunk-WHQZBUNY.js +982 -0
  86. package/dist/chunk-WHQZBUNY.js.map +1 -0
  87. package/dist/chunk-WOXBLP7V.js +610 -0
  88. package/dist/chunk-WOXBLP7V.js.map +1 -0
  89. package/dist/cli/commands/inspiredesign.d.ts +2 -0
  90. package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
  91. package/dist/cli/commands/macro-resolve.d.ts +5 -0
  92. package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
  93. package/dist/cli/commands/product-video.d.ts +2 -0
  94. package/dist/cli/commands/product-video.d.ts.map +1 -1
  95. package/dist/cli/commands/research.d.ts +2 -0
  96. package/dist/cli/commands/research.d.ts.map +1 -1
  97. package/dist/cli/commands/serve.d.ts.map +1 -1
  98. package/dist/cli/commands/shopping.d.ts.map +1 -1
  99. package/dist/cli/commands/workflow-output.d.ts +2 -0
  100. package/dist/cli/commands/workflow-output.d.ts.map +1 -0
  101. package/dist/cli/daemon-commands.d.ts.map +1 -1
  102. package/dist/cli/daemon.d.ts.map +1 -1
  103. package/dist/cli/help.d.ts.map +1 -1
  104. package/dist/cli/index.js +207 -8029
  105. package/dist/cli/index.js.map +1 -1
  106. package/dist/cli/installers/postinstall-skill-sync.js +2 -1
  107. package/dist/cli/installers/postinstall-skill-sync.js.map +1 -1
  108. package/dist/cli/remote-relay.d.ts.map +1 -1
  109. package/dist/cli/utils/workflow-message.d.ts +3 -0
  110. package/dist/cli/utils/workflow-message.d.ts.map +1 -1
  111. package/dist/click-TENZA3Y6.js +81 -0
  112. package/dist/click-TENZA3Y6.js.map +1 -0
  113. package/dist/clone-component-STH5AR6M.js +82 -0
  114. package/dist/clone-component-STH5AR6M.js.map +1 -0
  115. package/dist/clone-page-BSTWAPAJ.js +69 -0
  116. package/dist/clone-page-BSTWAPAJ.js.map +1 -0
  117. package/dist/close-CEMMAAM7.js +63 -0
  118. package/dist/close-CEMMAAM7.js.map +1 -0
  119. package/dist/close-QCWUNRAI.js +63 -0
  120. package/dist/close-QCWUNRAI.js.map +1 -0
  121. package/dist/connect-J3RVSEZF.js +107 -0
  122. package/dist/connect-J3RVSEZF.js.map +1 -0
  123. package/dist/console-poll-HL7BVIVX.js +76 -0
  124. package/dist/console-poll-HL7BVIVX.js.map +1 -0
  125. package/dist/cookie-import-WMUCIIHN.js +177 -0
  126. package/dist/cookie-import-WMUCIIHN.js.map +1 -0
  127. package/dist/cookie-list-PB2N4RPH.js +117 -0
  128. package/dist/cookie-list-PB2N4RPH.js.map +1 -0
  129. package/dist/daemon-5KSVMGN4.js +194 -0
  130. package/dist/daemon-5KSVMGN4.js.map +1 -0
  131. package/dist/daemon-fingerprint.json +1 -1
  132. package/dist/debug-trace-snapshot-RK7KDXA5.js +136 -0
  133. package/dist/debug-trace-snapshot-RK7KDXA5.js.map +1 -0
  134. package/dist/dialog-P6P4U7XE.js +75 -0
  135. package/dist/dialog-P6P4U7XE.js.map +1 -0
  136. package/dist/disconnect-32F7IDIP.js +58 -0
  137. package/dist/disconnect-32F7IDIP.js.map +1 -0
  138. package/dist/enabled-A6C6ZM2O.js +71 -0
  139. package/dist/enabled-A6C6ZM2O.js.map +1 -0
  140. package/dist/extension-extractor-GKWSFHPN.js +11 -0
  141. package/dist/extension-extractor-GKWSFHPN.js.map +1 -0
  142. package/dist/global-D6WLWBXA.js +56 -0
  143. package/dist/global-D6WLWBXA.js.map +1 -0
  144. package/dist/goto-ULTSABDM.js +98 -0
  145. package/dist/goto-ULTSABDM.js.map +1 -0
  146. package/dist/help-EKKKEDL5.js +491 -0
  147. package/dist/help-EKKKEDL5.js.map +1 -0
  148. package/dist/hover-UF2ZUMTQ.js +71 -0
  149. package/dist/hover-UF2ZUMTQ.js.map +1 -0
  150. package/dist/html-B6TX7GK7.js +84 -0
  151. package/dist/html-B6TX7GK7.js.map +1 -0
  152. package/dist/index.js +100 -42
  153. package/dist/index.js.map +1 -1
  154. package/dist/inspector-6S5FKUZQ.js +62 -0
  155. package/dist/inspector-6S5FKUZQ.js.map +1 -0
  156. package/dist/inspector-audit-ARGEGOS7.js +84 -0
  157. package/dist/inspector-audit-ARGEGOS7.js.map +1 -0
  158. package/dist/inspector-plan-CSG5HZOC.js +69 -0
  159. package/dist/inspector-plan-CSG5HZOC.js.map +1 -0
  160. package/dist/inspiredesign/contract.d.ts +52 -1
  161. package/dist/inspiredesign/contract.d.ts.map +1 -1
  162. package/dist/inspiredesign/handoff.d.ts +12 -0
  163. package/dist/inspiredesign/handoff.d.ts.map +1 -1
  164. package/dist/inspiredesign/reference-pattern-board.d.ts +1 -0
  165. package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
  166. package/dist/inspiredesign-7VRMMZN4.js +234 -0
  167. package/dist/inspiredesign-7VRMMZN4.js.map +1 -0
  168. package/dist/install-autostart-output-5DOMKCQL.js +41 -0
  169. package/dist/install-autostart-output-5DOMKCQL.js.map +1 -0
  170. package/dist/install-autostart-reconciliation-NHKOFYTD.js +73 -0
  171. package/dist/install-autostart-reconciliation-NHKOFYTD.js.map +1 -0
  172. package/dist/launch-REYCIR3Z.js +225 -0
  173. package/dist/launch-REYCIR3Z.js.map +1 -0
  174. package/dist/list-NPRXRQY2.js +51 -0
  175. package/dist/list-NPRXRQY2.js.map +1 -0
  176. package/dist/list-STYD2ZWA.js +54 -0
  177. package/dist/list-STYD2ZWA.js.map +1 -0
  178. package/dist/local-HXJLUUNT.js +54 -0
  179. package/dist/local-HXJLUUNT.js.map +1 -0
  180. package/dist/macro-resolve-ZIJZ65QI.js +253 -0
  181. package/dist/macro-resolve-ZIJZ65QI.js.map +1 -0
  182. package/dist/macros/execute-runtime.d.ts +4 -1
  183. package/dist/macros/execute-runtime.d.ts.map +1 -1
  184. package/dist/macros/execute.d.ts +6 -2
  185. package/dist/macros/execute.d.ts.map +1 -1
  186. package/dist/native-UPLVQ2SG.js +22 -0
  187. package/dist/native-UPLVQ2SG.js.map +1 -0
  188. package/dist/network-poll-HLDOSC72.js +76 -0
  189. package/dist/network-poll-HLDOSC72.js.map +1 -0
  190. package/dist/new-HXLLN6UT.js +69 -0
  191. package/dist/new-HXLLN6UT.js.map +1 -0
  192. package/dist/onboarding-metadata-7E3KLYSZ.js +27 -0
  193. package/dist/onboarding-metadata-7E3KLYSZ.js.map +1 -0
  194. package/dist/open-KDR25LQZ.js +81 -0
  195. package/dist/open-KDR25LQZ.js.map +1 -0
  196. package/dist/opendevbrowser.js +100 -42
  197. package/dist/opendevbrowser.js.map +1 -1
  198. package/dist/perf-EM6SWFJ6.js +58 -0
  199. package/dist/perf-EM6SWFJ6.js.map +1 -0
  200. package/dist/pointer-down-ZYWRZNCH.js +55 -0
  201. package/dist/pointer-down-ZYWRZNCH.js.map +1 -0
  202. package/dist/pointer-drag-LVEAVJO4.js +54 -0
  203. package/dist/pointer-drag-LVEAVJO4.js.map +1 -0
  204. package/dist/pointer-move-7SRKUS66.js +52 -0
  205. package/dist/pointer-move-7SRKUS66.js.map +1 -0
  206. package/dist/pointer-up-KLDBSK37.js +55 -0
  207. package/dist/pointer-up-KLDBSK37.js.map +1 -0
  208. package/dist/press-UIIXFTD7.js +83 -0
  209. package/dist/press-UIIXFTD7.js.map +1 -0
  210. package/dist/product-video-PYOXJVAI.js +235 -0
  211. package/dist/product-video-PYOXJVAI.js.map +1 -0
  212. package/dist/providers/artifacts.d.ts +0 -2
  213. package/dist/providers/artifacts.d.ts.map +1 -1
  214. package/dist/providers/blocker.d.ts.map +1 -1
  215. package/dist/providers/bounded-map.d.ts +2 -0
  216. package/dist/providers/bounded-map.d.ts.map +1 -0
  217. package/dist/providers/browser-fallback.d.ts +7 -0
  218. package/dist/providers/browser-fallback.d.ts.map +1 -1
  219. package/dist/providers/community/index.d.ts.map +1 -1
  220. package/dist/providers/constraint.d.ts.map +1 -1
  221. package/dist/providers/index.d.ts +1 -0
  222. package/dist/providers/index.d.ts.map +1 -1
  223. package/dist/providers/renderer.d.ts.map +1 -1
  224. package/dist/providers/research-compiler.d.ts +1 -1
  225. package/dist/providers/research-compiler.d.ts.map +1 -1
  226. package/dist/providers/research-executor.d.ts.map +1 -1
  227. package/dist/providers/runtime-bundle.d.ts +1 -1
  228. package/dist/providers/runtime-bundle.d.ts.map +1 -1
  229. package/dist/providers/runtime-factory.d.ts.map +1 -1
  230. package/dist/providers/shared/traversal-url.d.ts +3 -0
  231. package/dist/providers/shared/traversal-url.d.ts.map +1 -1
  232. package/dist/providers/shopping/index.d.ts.map +1 -1
  233. package/dist/providers/social/platform.d.ts.map +1 -1
  234. package/dist/providers/social/search-quality.d.ts.map +1 -1
  235. package/dist/providers/social/youtube.d.ts.map +1 -1
  236. package/dist/providers/workflow-handoff.d.ts +22 -1
  237. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  238. package/dist/providers/workflows.d.ts +3 -0
  239. package/dist/providers/workflows.d.ts.map +1 -1
  240. package/dist/{providers-TR3DUJZV.js → providers-4YY2BLXG.js} +19 -14
  241. package/dist/providers-4YY2BLXG.js.map +1 -0
  242. package/dist/public-surface/generated-manifest.d.ts +6 -6
  243. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  244. package/dist/public-surface/source.d.ts +8 -8
  245. package/dist/public-surface/source.d.ts.map +1 -1
  246. package/dist/relay/protocol.d.ts +3 -1
  247. package/dist/relay/protocol.d.ts.map +1 -1
  248. package/dist/relay/relay-server.d.ts +6 -0
  249. package/dist/relay/relay-server.d.ts.map +1 -1
  250. package/dist/research-CKXMJ2DK.js +295 -0
  251. package/dist/research-CKXMJ2DK.js.map +1 -0
  252. package/dist/review-7HWJPZOD.js +48 -0
  253. package/dist/review-7HWJPZOD.js.map +1 -0
  254. package/dist/review-desktop-2IBJHFB5.js +54 -0
  255. package/dist/review-desktop-2IBJHFB5.js.map +1 -0
  256. package/dist/rpc-3HGIEJUO.js +159 -0
  257. package/dist/rpc-3HGIEJUO.js.map +1 -0
  258. package/dist/run-ADRYI3MS.js +180 -0
  259. package/dist/run-ADRYI3MS.js.map +1 -0
  260. package/dist/screencast-start-DTLUHD5H.js +67 -0
  261. package/dist/screencast-start-DTLUHD5H.js.map +1 -0
  262. package/dist/screencast-stop-54C5LRSS.js +59 -0
  263. package/dist/screencast-stop-54C5LRSS.js.map +1 -0
  264. package/dist/screenshot-HOAKR7P7.js +68 -0
  265. package/dist/screenshot-HOAKR7P7.js.map +1 -0
  266. package/dist/scroll-IAOO5COY.js +84 -0
  267. package/dist/scroll-IAOO5COY.js.map +1 -0
  268. package/dist/scroll-into-view-RKWSLAPH.js +71 -0
  269. package/dist/scroll-into-view-RKWSLAPH.js.map +1 -0
  270. package/dist/select-IGD3T6X4.js +86 -0
  271. package/dist/select-IGD3T6X4.js.map +1 -0
  272. package/dist/serve-7X4INUCU.js +498 -0
  273. package/dist/serve-7X4INUCU.js.map +1 -0
  274. package/dist/shopping-FC6DRW76.js +273 -0
  275. package/dist/shopping-FC6DRW76.js.map +1 -0
  276. package/dist/skill-lifecycle-5UAZGKSN.js +89 -0
  277. package/dist/skill-lifecycle-5UAZGKSN.js.map +1 -0
  278. package/dist/skills-NSXDX6YM.js +26 -0
  279. package/dist/skills-NSXDX6YM.js.map +1 -0
  280. package/dist/snapshot-X22GG324.js +113 -0
  281. package/dist/snapshot-X22GG324.js.map +1 -0
  282. package/dist/status-SP55LMNW.js +132 -0
  283. package/dist/status-SP55LMNW.js.map +1 -0
  284. package/dist/status-VH2WXIDG.js +35 -0
  285. package/dist/status-VH2WXIDG.js.map +1 -0
  286. package/dist/status-capabilities-YBERLRRA.js +57 -0
  287. package/dist/status-capabilities-YBERLRRA.js.map +1 -0
  288. package/dist/text-6TB5WNLI.js +84 -0
  289. package/dist/text-6TB5WNLI.js.map +1 -0
  290. package/dist/tools/inspiredesign_run.d.ts.map +1 -1
  291. package/dist/tools/macro_resolve.d.ts.map +1 -1
  292. package/dist/tools/product_video_run.d.ts.map +1 -1
  293. package/dist/tools/research_run.d.ts.map +1 -1
  294. package/dist/tools/shopping_run.d.ts.map +1 -1
  295. package/dist/type-3UI3TQH3.js +94 -0
  296. package/dist/type-3UI3TQH3.js.map +1 -0
  297. package/dist/uncheck-5L3D2D4U.js +71 -0
  298. package/dist/uncheck-5L3D2D4U.js.map +1 -0
  299. package/dist/uninstall-KYKGJAX7.js +91 -0
  300. package/dist/uninstall-KYKGJAX7.js.map +1 -0
  301. package/dist/update-SMXPYGXS.js +305 -0
  302. package/dist/update-SMXPYGXS.js.map +1 -0
  303. package/dist/update-skill-modes-BVX7IVMW.js +38 -0
  304. package/dist/update-skill-modes-BVX7IVMW.js.map +1 -0
  305. package/dist/upload-YG4J2EMI.js +56 -0
  306. package/dist/upload-YG4J2EMI.js.map +1 -0
  307. package/dist/use-V3LGFP3K.js +63 -0
  308. package/dist/use-V3LGFP3K.js.map +1 -0
  309. package/dist/value-3247D57X.js +71 -0
  310. package/dist/value-3247D57X.js.map +1 -0
  311. package/dist/visible-A7HEV36U.js +71 -0
  312. package/dist/visible-A7HEV36U.js.map +1 -0
  313. package/dist/wait-UZPP4Y4R.js +109 -0
  314. package/dist/wait-UZPP4Y4R.js.map +1 -0
  315. package/dist/windows-76TR3AIP.js +37 -0
  316. package/dist/windows-76TR3AIP.js.map +1 -0
  317. package/extension/dist/background.js +99 -22
  318. package/extension/dist/ops/ops-runtime.js +85 -7
  319. package/extension/dist/ops/ops-session-store.js +3 -0
  320. package/extension/dist/ops/target-session-coordinator.js +3 -0
  321. package/extension/dist/services/CDPRouter.js +9 -0
  322. package/extension/manifest.json +1 -1
  323. package/package.json +1 -1
  324. package/skills/opendevbrowser-best-practices/SKILL.md +13 -11
  325. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +1 -1
  326. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +3 -2
  327. package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +39 -2
  328. package/skills/opendevbrowser-design-agent/SKILL.md +5 -0
  329. package/skills/opendevbrowser-design-agent/artifacts/design-contract-playbook.md +6 -1
  330. package/skills/opendevbrowser-design-agent/assets/templates/design-contract.v1.json +15 -1
  331. package/skills/opendevbrowser-design-agent/assets/templates/inspiredesign-advanced-brief.v1.json +5 -2
  332. package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +2 -0
  333. package/skills/opendevbrowser-research/SKILL.md +64 -12
  334. package/skills/opendevbrowser-research/artifacts/research-workflows.md +56 -19
  335. package/skills/opendevbrowser-research/assets/templates/compact.md +31 -5
  336. package/skills/opendevbrowser-research/assets/templates/context.json +52 -1
  337. package/skills/opendevbrowser-research/assets/templates/report.md +57 -4
  338. package/skills/opendevbrowser-research/examples/sample-input.json +1 -1
  339. package/skills/opendevbrowser-research/examples/sample-output.md +27 -2
  340. package/skills/opendevbrowser-research/scripts/run-research.sh +2 -6
  341. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +115 -1
  342. package/dist/chunk-MWBDO2L5.js.map +0 -1
  343. package/dist/chunk-QVWOPIZJ.js.map +0 -1
  344. package/dist/chunk-V5DJUSPV.js.map +0 -1
  345. /package/dist/{providers-TR3DUJZV.js.map → chunk-RJNI3BHT.js.map} +0 -0
@@ -1,29 +1,66 @@
1
1
  # Research Workflows
2
2
 
3
- ## Deterministic baseline workflow
3
+ Use these workflows to plan evidence first, run provider-constrained collection second, and publish only claims that pass review.
4
4
 
5
- 1. Define topic and strict time window
6
- 2. Resolve source selection (`auto|all|explicit`)
7
- 3. Run research workflow command
8
- 4. Persist context/report artifacts
9
- 5. Validate source diversity and freshness
5
+ ## Evidence-gated baseline workflow
10
6
 
11
- ## Cross-source corroboration workflow
7
+ 1. Define topic, scope, and strict time window.
8
+ 2. Choose explicit source families before invoking the CLI primitive. Prefer `--sources web,community` for broad public research when both destination pages and community corroboration are useful.
9
+ 3. Record why each source family is in scope and which families are intentionally excluded.
10
+ 4. Run `opendevbrowser research run` as a low-level best-effort primitive.
11
+ 5. Inspect candidates and follow useful destination pages before synthesis. Never treat account, privacy, cookie, login, consent, search shell, not-found, or JavaScript shell pages as final evidence.
12
+ 6. If a selected destination is blocked, record the blocker and continue to the next relevant candidate before escalating to cookies or authenticated browser recovery.
13
+ 7. Persist `summary.md`, `report.md`, `records.json`, `context.json`, `meta.json`, and `bundle-manifest.json`.
14
+ 8. Review `records.json`, `context.json`, and `meta.json` before using `report.md`.
15
+ 9. If the selected evidence page itself proves auth, token, challenge, or cookie gating after public candidate triage, rerun through user-authorized browser recovery only after relevant public destination pages are exhausted: `--browser-mode extension` for an existing signed-in relay session, `--use-cookies` only when legitimate cookies are available, and `--challenge-automation-mode browser_with_helper` for browser-scoped assistance.
16
+ 10. Publish supported claims, mark weak claims as tentative, and exclude unsupported claims.
12
17
 
13
- 1. Identify claims from first-pass output
14
- 2. Require at least two independent source records for critical claims
15
- 3. Mark unsupported claims as tentative
16
- 4. Escalate when corroboration is missing
18
+ ## Iterative destination-follow workflow
17
19
 
18
- ## Backoff/retry workflow
20
+ Use this when the first pass returns shells, login pages, privacy/cookie pages, or search result pages.
19
21
 
20
- 1. Detect repeated 429/upstream throttling
21
- 2. Honor retry windows and bounded retries
22
- 3. Resume from persisted context artifact
23
- 4. Report partial coverage when limits persist
22
+ 1. Build a candidate queue from provider output or search-engine discovery: URL, rank, source family, title, and blocker notes.
23
+ 2. Remove dead-end routes from the queue: `/login`, `/account`, `/submit`, privacy preference pages, cookie preference pages, search result pages, consent-only pages, static assets, and not-found URLs.
24
+ 3. Open the highest-value remaining destination page with OpenDevBrowser.
25
+ 4. Extract text, source URL, title, timestamp, and visible limitations.
26
+ 5. If extraction returns a shell or blocker, mark that candidate rejected and continue with the next candidate.
27
+ 6. If extraction succeeds, add it to the claim map and decide whether more evidence is needed for corroboration.
28
+ 7. Stop only when accepted evidence is sufficient or every relevant candidate has a recorded rejection reason.
29
+
30
+ ## Claim-to-source review workflow
31
+
32
+ 1. Extract the claims that the final answer would make.
33
+ 2. Map each claim to accepted destination evidence in `records.json`.
34
+ 3. Check source date, fetch date, provider, extraction quality, and source independence.
35
+ 4. Require corroboration for critical claims when the topic allows it.
36
+ 5. Record evidence gaps, stale pages, login walls, challenge pages, rate limits, and extraction limits.
37
+ 6. Do not use shell-only, stale-only, login-only, not-found-only, or zero-source-evidence runs as final support.
38
+
39
+ ## Search Engine Discovery Lane
40
+
41
+ This optional lane is skill-guided, provider-constrained, and discovery-only. It is for richer candidate discovery, not for runtime source-family expansion.
42
+
43
+ 1. Choose up to five engines based on topic and availability: Google, Bing, Brave, DuckDuckGo or Yahoo, Yandex, Baidu, and Kagi only with user account access.
44
+ 2. Record search_engine_passes with engine, query, region, language, rationale, cookie or auth needs, and blockers.
45
+ 3. Collect up to 10 SERP candidate URLs per engine with engine, query, rank, URL, title if available, and retrieval notes.
46
+ 4. Dedupe canonical URLs across engines.
47
+ 5. Select the strongest 5 to 10 destination pages for extraction.
48
+ 6. Fetch selected destination pages with OpenDevBrowser browsing primitives when useful, including DOM interaction and screenshots. Use cookies or authenticated browsing only after destination-candidate triage shows the selected evidence page itself requires legitimate user-authorized access.
49
+ 7. Stand down on robots restrictions, login walls, consent gates, CAPTCHAs, rate limits, anti-bot controls, and access controls. Record the limitation instead.
50
+ 8. Keep SERPs discovery-only. SERP snippets, search result pages, shells, and blocked pages cannot be final evidence.
51
+ 9. Cite destination-page evidence or other fetched evidence that passed review.
52
+
53
+ ## Backoff and blocker workflow
54
+
55
+ 1. Detect repeated 429 responses, provider throttling, challenge pages, login walls, token gates, consent gates, cookie diagnostics, or extraction failures.
56
+ 2. Honor retry windows and bounded retries.
57
+ 3. For gated providers such as Reddit, prefer a skill-first recovery rerun with an existing signed-in relay session, legitimate cookies only when available, and browser-scoped challenge assistance only after concrete result URLs from the candidate queue have been attempted or rejected with reasons.
58
+ 4. Resume from persisted artifacts only when the next run can add evidence without violating controls.
59
+ 5. Report partial coverage, provider constraints, and skipped lanes when limits persist.
24
60
 
25
61
  ## Compact handoff workflow
26
62
 
27
- 1. Produce compact summary with key findings
28
- 2. Include unresolved risks and missing evidence
29
- 3. Attach artifact paths for replay
63
+ 1. Produce a compact summary with accepted claims only.
64
+ 2. Include evidence gaps, provider constraints, and limitations.
65
+ 3. Attach artifact paths for replay and review.
66
+ 4. Name unsupported claims that were excluded or left tentative.
@@ -1,7 +1,33 @@
1
1
  # Compact Research Template
2
2
 
3
- - Top findings:
4
- - Source diversity:
5
- - Key risks:
6
- - Rate-limit/backoff notes:
7
- - Open evidence gaps:
3
+ - Topic and timebox:
4
+ - Source families used:
5
+ - Evidence-gated status:
6
+ - Accepted claims:
7
+ - Tentative or excluded claims:
8
+ - Evidence gaps:
9
+ - Provider constraints:
10
+ - Staleness checks:
11
+ - Search engine discovery, if used:
12
+ - direction from providers/search:
13
+ - candidate_triage:
14
+ - rejected_candidates:
15
+ - rejected privacy/login/shell pages:
16
+ - replacement destination followed:
17
+ - remaining candidate queue:
18
+ - deep-dive pages:
19
+ - next query or evidence gap:
20
+ - search_engine_passes:
21
+ - serp_candidates reviewed:
22
+ - selected_destination_pages:
23
+ - engine_failures:
24
+ - provenance:
25
+ - synthesis_feedback:
26
+ - Limitations:
27
+ - Artifact paths:
28
+ - summary.md:
29
+ - report.md:
30
+ - records.json:
31
+ - context.json:
32
+ - meta.json:
33
+ - bundle-manifest.json:
@@ -1,8 +1,59 @@
1
1
  {
2
2
  "topic": "",
3
3
  "timebox": {
4
- "days": 30
4
+ "days": 30,
5
+ "from": null,
6
+ "to": null
5
7
  },
8
+ "source_families": [],
9
+ "evidence_gate": {
10
+ "status": "pending_review",
11
+ "reviewed_artifacts": [],
12
+ "accepted_claims": [],
13
+ "tentative_claims": [],
14
+ "unsupported_claims": [],
15
+ "blockers": []
16
+ },
17
+ "artifact_files": [
18
+ "summary.md",
19
+ "report.md",
20
+ "records.json",
21
+ "context.json",
22
+ "meta.json",
23
+ "bundle-manifest.json"
24
+ ],
25
+ "source_ledger": [],
26
+ "search_direction_notes": [],
27
+ "candidate_triage_schema": {
28
+ "url": "",
29
+ "rank": 0,
30
+ "engine": "",
31
+ "query": "",
32
+ "source_family": "",
33
+ "title": "",
34
+ "status": "pending|accepted|rejected",
35
+ "blocker_notes": "",
36
+ "rejection_reason": "",
37
+ "replacement_url": "",
38
+ "retrieval_notes": "",
39
+ "extraction_status": "pending|fetched|blocked|shell|stale|irrelevant"
40
+ },
41
+ "candidate_triage": {
42
+ "accepted_destination_records": 0,
43
+ "rejected_shell_or_dead_end_candidates": 0
44
+ },
45
+ "rejected_candidates": [],
46
+ "deep_dive_pages": [],
47
+ "iteration_log": [],
48
+ "synthesis_feedback": "",
49
+ "staleness_checks": [],
50
+ "provider_constraints": [],
51
+ "search_engine_passes": [],
52
+ "serp_candidates": [],
53
+ "selected_destination_pages": [],
54
+ "engine_failures": [],
55
+ "provenance": [],
56
+ "limitations": [],
6
57
  "issue_ids": [
7
58
  "ISSUE-06",
8
59
  "ISSUE-09",
@@ -1,9 +1,62 @@
1
1
  # Research Report
2
2
 
3
- ## Executive Summary
3
+ ## Topic and Scope
4
4
 
5
- ## Findings
5
+ ## Evidence Gate Status
6
6
 
7
- ## Confidence and Gaps
7
+ State whether the run passed evidence review. Do not publish shell-only, stale-only, login-only, not-found-only, or zero-source-evidence claims.
8
8
 
9
- ## Sources
9
+ ## Claim Map
10
+
11
+ | Claim | Status | Evidence | Notes |
12
+ |---|---|---|---|
13
+ | | accepted, tentative, or excluded | destination URL or artifact record id | |
14
+
15
+ ## Evidence
16
+
17
+ Summarize accepted destination-page evidence from `records.json`, with source date, fetch date, provider, and extraction quality.
18
+
19
+ ## Confidence
20
+
21
+ Explain confidence by claim, including corroboration quality and independence.
22
+
23
+ ## Provider Constraints and Limitations
24
+
25
+ Record provider blockers, rate limits, login walls, challenge pages, stale pages, extraction limits, and unsupported claims.
26
+
27
+ ## Search Engine Discovery
28
+
29
+ If used, summarize search_engine_passes, serp_candidates, selected_destination_pages, engine_failures, provenance, and limitations. SERPs are discovery-only and cannot be final evidence.
30
+
31
+ ## Search Direction
32
+
33
+ Summarize what the provider or search-engine pass suggested and which follow-up direction was chosen.
34
+
35
+ ## Candidate Triage
36
+
37
+ List useful destinations, duplicates, privacy or terms pages, login or account pages, blocked pages, shells, stale pages, and off-topic pages.
38
+
39
+ ## Rejected Candidates
40
+
41
+ Record rejected_candidates with URL, source, reason, and whether another candidate replaced it.
42
+
43
+ ## Deep Dives
44
+
45
+ Summarize deep_dive_pages opened after triage, including destination URL, accepted evidence, and remaining uncertainty.
46
+
47
+ ## Synthesis Feedback
48
+
49
+ Explain how the evidence changed the research direction, what gaps remain, and what the next query or source should be if more work is needed.
50
+
51
+ ## Final Answer
52
+
53
+ Provide only claims supported by reviewed destination evidence. Label unresolved points as tentative or omit them.
54
+
55
+ ## Artifact Paths
56
+
57
+ - `summary.md`:
58
+ - `report.md`:
59
+ - `records.json`:
60
+ - `context.json`:
61
+ - `meta.json`:
62
+ - `bundle-manifest.json`:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "topic": "ai browser automation",
3
3
  "days": 30,
4
- "sourceSelection": "auto",
4
+ "sources": ["web", "community"],
5
5
  "mode": "context"
6
6
  }
@@ -1,4 +1,29 @@
1
1
  # Sample Output
2
2
 
3
- 1. Example finding one
4
- 2. Example finding two
3
+ ## Search Direction
4
+
5
+ - Provider pass produced destination candidates; accepted evidence came from following usable destination pages before considering browser recovery.
6
+
7
+ ## Candidate Triage
8
+
9
+ - Accepted: `https://example.com/browser-automation-evidence`
10
+ - Rejected: `https://example.com/login` as login_or_account; replacement destination followed: `https://example.com/browser-automation-evidence`
11
+ - Rejected: `https://example.com/privacy/choices` as privacy_or_terms; replacement destination followed: `https://example.com/browser-automation-evidence`
12
+ - Remaining candidate queue: `https://example.org/challenge-recovery-field-notes`
13
+
14
+ ## Deep Dives
15
+
16
+ - Opened `https://example.com/browser-automation-evidence`; extracted destination-page evidence, blocker notes, and artifact review guidance.
17
+
18
+ ## Synthesis Feedback
19
+
20
+ - The first accepted page shifted the next query toward challenge recovery handoff evidence.
21
+ - Next query or evidence gap: find corroborating field notes from an independent browser automation source.
22
+
23
+ ## Evidence
24
+
25
+ - Accepted claim: Browser automation research needs destination-page evidence, blocker notes, and artifact review before synthesis.
26
+
27
+ ## Limitations
28
+
29
+ - Reddit evidence was excluded when only login or shell pages were available.
@@ -2,24 +2,20 @@
2
2
  set -euo pipefail
3
3
 
4
4
  if [[ $# -lt 1 ]]; then
5
- echo "Usage: run-research.sh <topic> [days] [mode] [source-selection] [sources]"
5
+ echo "Usage: run-research.sh <topic> [days] [mode] [sources]"
6
6
  exit 1
7
7
  fi
8
8
 
9
9
  TOPIC="$1"
10
10
  DAYS="${2:-30}"
11
11
  MODE="${3:-context}"
12
- SOURCE_SELECTION="${4:-}"
13
- SOURCES="${5:-}"
12
+ SOURCES="${4:-}"
14
13
 
15
14
  script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16
15
  # shellcheck source=../../opendevbrowser-best-practices/scripts/resolve-odb-cli.sh
17
16
  source "$script_dir/../../opendevbrowser-best-practices/scripts/resolve-odb-cli.sh"
18
17
 
19
18
  cmd=("${ODB_CLI[@]}" research run --topic "$TOPIC" --days "$DAYS" --mode "$MODE")
20
- if [[ -n "$SOURCE_SELECTION" ]]; then
21
- cmd+=(--source-selection "$SOURCE_SELECTION")
22
- fi
23
19
  if [[ -n "$SOURCES" ]]; then
24
20
  cmd+=(--sources "$SOURCES")
25
21
  fi
@@ -15,6 +15,65 @@ required=(
15
15
  "scripts/validate-skill-assets.sh"
16
16
  )
17
17
 
18
+ posture_files=(
19
+ "SKILL.md"
20
+ "artifacts/research-workflows.md"
21
+ "assets/templates/compact.md"
22
+ "assets/templates/context.json"
23
+ "assets/templates/report.md"
24
+ )
25
+
26
+ required_markers=(
27
+ "evidence-gated"
28
+ "provider-constrained"
29
+ "discovery-only"
30
+ "candidate_triage"
31
+ "rejected_candidates"
32
+ "deep_dive_pages"
33
+ "synthesis_feedback"
34
+ "search_engine_passes"
35
+ "summary.md"
36
+ "report.md"
37
+ "records.json"
38
+ "context.json"
39
+ "meta.json"
40
+ "bundle-manifest.json"
41
+ )
42
+
43
+ required_file_markers=(
44
+ "SKILL.md|Search Engine Discovery Lane"
45
+ "SKILL.md|Guided Research Loop"
46
+ "SKILL.md|privacy"
47
+ "SKILL.md|login"
48
+ "SKILL.md|Keep SERPs discovery-only"
49
+ "SKILL.md|bundle-manifest.json"
50
+ "artifacts/research-workflows.md|Search Engine Discovery Lane"
51
+ "artifacts/research-workflows.md|Iterative destination-follow workflow"
52
+ "artifacts/research-workflows.md|candidate queue"
53
+ "artifacts/research-workflows.md|Keep SERPs discovery-only"
54
+ "artifacts/research-workflows.md|search_engine_passes"
55
+ "assets/templates/context.json|bundle-manifest.json"
56
+ "assets/templates/context.json|rejected_candidates"
57
+ "assets/templates/context.json|deep_dive_pages"
58
+ "assets/templates/context.json|search_engine_passes"
59
+ "assets/templates/context.json|blocker_notes"
60
+ "assets/templates/context.json|retrieval_notes"
61
+ "assets/templates/report.md|SERPs are discovery-only"
62
+ "assets/templates/report.md|Deep Dives"
63
+ "assets/templates/report.md|Synthesis Feedback"
64
+ "assets/templates/report.md|bundle-manifest.json"
65
+ "assets/templates/compact.md|deep-dive pages"
66
+ )
67
+
68
+ forbidden_markers=(
69
+ "research_reliable"
70
+ "auto is the recommended default"
71
+ "generic topical research is currently safest"
72
+ "privacy pages can support final claims"
73
+ "login pages can support final claims"
74
+ "SERP snippets are evidence"
75
+ )
76
+
18
77
  status=0
19
78
  validator_cli="$root/../opendevbrowser-best-practices/scripts/validator-fixture-cli.sh"
20
79
  export ODB_CLI_VALIDATOR_OVERRIDE="$validator_cli"
@@ -28,6 +87,44 @@ require_marker() {
28
87
  status=1
29
88
  fi
30
89
  }
90
+
91
+ require_file_marker() {
92
+ local marker="$1"
93
+ local found=0
94
+ local rel
95
+ for rel in "${posture_files[@]}"; do
96
+ if [[ -f "$root/$rel" ]] && grep -Fq "$marker" "$root/$rel"; then
97
+ found=1
98
+ break
99
+ fi
100
+ done
101
+ if [[ $found -eq 0 ]]; then
102
+ echo "Research assets missing required marker: $marker" >&2
103
+ status=1
104
+ fi
105
+ }
106
+
107
+ require_marker_in_file() {
108
+ local entry="$1"
109
+ local rel="${entry%%|*}"
110
+ local marker="${entry#*|}"
111
+ if [[ ! -f "$root/$rel" ]] || ! grep -Fq "$marker" "$root/$rel"; then
112
+ echo "Research asset $rel missing required marker: $marker" >&2
113
+ status=1
114
+ fi
115
+ }
116
+
117
+ reject_forbidden_marker() {
118
+ local marker="$1"
119
+ local rel
120
+ for rel in "${posture_files[@]}"; do
121
+ if [[ -f "$root/$rel" ]] && tr -d '`' < "$root/$rel" | grep -Fq "$marker"; then
122
+ echo "Research assets contain forbidden marker in $rel: $marker" >&2
123
+ status=1
124
+ fi
125
+ done
126
+ }
127
+
31
128
  for rel in "${required[@]}"; do
32
129
  if [[ ! -f "$root/$rel" ]]; then
33
130
  echo "Missing required asset: $rel" >&2
@@ -59,6 +156,18 @@ for rel in scripts/run-research.sh scripts/render-output.sh scripts/write-artifa
59
156
  fi
60
157
  done
61
158
 
159
+ for marker in "${required_markers[@]}"; do
160
+ require_file_marker "$marker"
161
+ done
162
+
163
+ for marker in "${required_file_markers[@]}"; do
164
+ require_marker_in_file "$marker"
165
+ done
166
+
167
+ for marker in "${forbidden_markers[@]}"; do
168
+ reject_forbidden_marker "$marker"
169
+ done
170
+
62
171
  if [[ -f "$root/assets/templates/context.json" ]]; then
63
172
  if ! node -e 'const fs=require("fs"); JSON.parse(fs.readFileSync(process.argv[1], "utf8"));' "$root/assets/templates/context.json" >/dev/null 2>&1; then
64
173
  echo "Invalid JSON template: assets/templates/context.json" >&2
@@ -66,13 +175,18 @@ if [[ -f "$root/assets/templates/context.json" ]]; then
66
175
  fi
67
176
  fi
68
177
 
69
- context_output="$("$root/scripts/run-research.sh" "ai browser automation" 30 context auto "web,docs")"
178
+ context_output="$("$root/scripts/run-research.sh" "ai browser automation" 30 context "web,docs")"
70
179
  require_marker "run-research context" "$context_output" "# Research Context"
71
180
  require_marker "run-research context" "$context_output" "ISSUE-09"
72
181
 
73
182
  report_output="$("$root/scripts/render-output.sh" "ai browser automation" report)"
74
183
  require_marker "render-output report" "$report_output" "# Research Report"
75
184
  require_marker "render-output report" "$report_output" "Source selection"
185
+ require_marker "render-output report" "$report_output" "Search Direction"
186
+ require_marker "render-output report" "$report_output" "Candidate Triage"
187
+ require_marker "render-output report" "$report_output" "Rejected Candidates"
188
+ require_marker "render-output report" "$report_output" "Deep Dives"
189
+ require_marker "render-output report" "$report_output" "Synthesis Feedback"
76
190
 
77
191
  tmpdir="$(mktemp -d)"
78
192
  trap 'rm -rf "$tmpdir"' EXIT