opendevbrowser 0.0.15 → 0.0.17

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 (646) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +262 -43
  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 +33 -0
  8. package/dist/browser/annotation-manager.d.ts.map +1 -0
  9. package/dist/browser/browser-manager.d.ts +402 -0
  10. package/dist/browser/browser-manager.d.ts.map +1 -0
  11. package/dist/browser/canvas-client.d.ts +53 -0
  12. package/dist/browser/canvas-client.d.ts.map +1 -0
  13. package/dist/browser/canvas-code-sync-manager.d.ts +79 -0
  14. package/dist/browser/canvas-code-sync-manager.d.ts.map +1 -0
  15. package/dist/browser/canvas-manager.d.ts +94 -0
  16. package/dist/browser/canvas-manager.d.ts.map +1 -0
  17. package/dist/browser/canvas-runtime-preview-bridge.d.ts +20 -0
  18. package/dist/browser/canvas-runtime-preview-bridge.d.ts.map +1 -0
  19. package/dist/browser/canvas-session-sync-manager.d.ts +21 -0
  20. package/dist/browser/canvas-session-sync-manager.d.ts.map +1 -0
  21. package/dist/browser/fingerprint/adapters.d.ts +26 -0
  22. package/dist/browser/fingerprint/adapters.d.ts.map +1 -0
  23. package/dist/browser/fingerprint/canary.d.ts +25 -0
  24. package/dist/browser/fingerprint/canary.d.ts.map +1 -0
  25. package/dist/browser/fingerprint/profiles.d.ts +16 -0
  26. package/dist/browser/fingerprint/profiles.d.ts.map +1 -0
  27. package/dist/browser/fingerprint/tier1-coherence.d.ts +36 -0
  28. package/dist/browser/fingerprint/tier1-coherence.d.ts.map +1 -0
  29. package/dist/browser/fingerprint/tier2-runtime.d.ts +40 -0
  30. package/dist/browser/fingerprint/tier2-runtime.d.ts.map +1 -0
  31. package/dist/browser/fingerprint/tier3-adaptive.d.ts +30 -0
  32. package/dist/browser/fingerprint/tier3-adaptive.d.ts.map +1 -0
  33. package/dist/browser/manager-types.d.ts +15 -0
  34. package/dist/browser/manager-types.d.ts.map +1 -0
  35. package/dist/browser/ops-browser-manager.d.ts +141 -0
  36. package/dist/browser/ops-browser-manager.d.ts.map +1 -0
  37. package/dist/browser/ops-client.d.ts +56 -0
  38. package/dist/browser/ops-client.d.ts.map +1 -0
  39. package/dist/browser/parallelism-governor.d.ts +31 -0
  40. package/dist/browser/parallelism-governor.d.ts.map +1 -0
  41. package/dist/browser/script-runner.d.ts +23 -0
  42. package/dist/browser/script-runner.d.ts.map +1 -0
  43. package/dist/browser/session-store.d.ts +63 -0
  44. package/dist/browser/session-store.d.ts.map +1 -0
  45. package/dist/browser/target-manager.d.ts +36 -0
  46. package/dist/browser/target-manager.d.ts.map +1 -0
  47. package/dist/cache/chrome-locator.d.ts +2 -0
  48. package/dist/cache/chrome-locator.d.ts.map +1 -0
  49. package/dist/cache/downloader.d.ts +6 -0
  50. package/dist/cache/downloader.d.ts.map +1 -0
  51. package/dist/cache/paths.d.ts +9 -0
  52. package/dist/cache/paths.d.ts.map +1 -0
  53. package/dist/canvas/code-sync/apply-tsx.d.ts +23 -0
  54. package/dist/canvas/code-sync/apply-tsx.d.ts.map +1 -0
  55. package/dist/canvas/code-sync/graph.d.ts +5 -0
  56. package/dist/canvas/code-sync/graph.d.ts.map +1 -0
  57. package/dist/canvas/code-sync/hash.d.ts +3 -0
  58. package/dist/canvas/code-sync/hash.d.ts.map +1 -0
  59. package/dist/canvas/code-sync/import.d.ts +18 -0
  60. package/dist/canvas/code-sync/import.d.ts.map +1 -0
  61. package/dist/canvas/code-sync/manifest.d.ts +5 -0
  62. package/dist/canvas/code-sync/manifest.d.ts.map +1 -0
  63. package/dist/canvas/code-sync/tsx-adapter.d.ts +8 -0
  64. package/dist/canvas/code-sync/tsx-adapter.d.ts.map +1 -0
  65. package/dist/canvas/code-sync/types.d.ts +152 -0
  66. package/dist/canvas/code-sync/types.d.ts.map +1 -0
  67. package/dist/canvas/code-sync/write.d.ts +9 -0
  68. package/dist/canvas/code-sync/write.d.ts.map +1 -0
  69. package/dist/canvas/document-store.d.ts +81 -0
  70. package/dist/canvas/document-store.d.ts.map +1 -0
  71. package/dist/canvas/export.d.ts +12 -0
  72. package/dist/canvas/export.d.ts.map +1 -0
  73. package/dist/canvas/repo-store.d.ts +10 -0
  74. package/dist/canvas/repo-store.d.ts.map +1 -0
  75. package/dist/canvas/surface-palette.d.ts +15 -0
  76. package/dist/canvas/surface-palette.d.ts.map +1 -0
  77. package/dist/canvas/types.d.ts +255 -0
  78. package/dist/canvas/types.d.ts.map +1 -0
  79. package/dist/canvas-runtime-preview-bridge-HBEHXM4T.js +7 -0
  80. package/dist/canvas-runtime-preview-bridge-HBEHXM4T.js.map +1 -0
  81. package/dist/chunk-5J3IFL3X.js +16706 -0
  82. package/dist/chunk-5J3IFL3X.js.map +1 -0
  83. package/dist/chunk-D633UO34.js +8149 -0
  84. package/dist/chunk-D633UO34.js.map +1 -0
  85. package/dist/chunk-FUSXMW3G.js +169 -0
  86. package/dist/chunk-FUSXMW3G.js.map +1 -0
  87. package/dist/chunk-TBUCZX4A.js +34 -0
  88. package/dist/chunk-TBUCZX4A.js.map +1 -0
  89. package/dist/chunk-V7KUDHDG.js +276 -0
  90. package/dist/chunk-V7KUDHDG.js.map +1 -0
  91. package/dist/chunk-Y2KL55OG.js +59 -0
  92. package/dist/chunk-Y2KL55OG.js.map +1 -0
  93. package/dist/cli/args.d.ts +25 -0
  94. package/dist/cli/args.d.ts.map +1 -0
  95. package/dist/cli/client.d.ts +2 -0
  96. package/dist/cli/client.d.ts.map +1 -0
  97. package/dist/cli/commands/annotate.d.ts +38 -0
  98. package/dist/cli/commands/annotate.d.ts.map +1 -0
  99. package/dist/cli/commands/artifacts.d.ts +24 -0
  100. package/dist/cli/commands/artifacts.d.ts.map +1 -0
  101. package/dist/cli/commands/canvas.d.ts +45 -0
  102. package/dist/cli/commands/canvas.d.ts.map +1 -0
  103. package/dist/cli/commands/daemon.d.ts +35 -0
  104. package/dist/cli/commands/daemon.d.ts.map +1 -0
  105. package/dist/cli/commands/devtools/console-poll.d.ts +7 -0
  106. package/dist/cli/commands/devtools/console-poll.d.ts.map +1 -0
  107. package/dist/cli/commands/devtools/debug-trace-snapshot.d.ts +20 -0
  108. package/dist/cli/commands/devtools/debug-trace-snapshot.d.ts.map +1 -0
  109. package/dist/cli/commands/devtools/network-poll.d.ts +7 -0
  110. package/dist/cli/commands/devtools/network-poll.d.ts.map +1 -0
  111. package/dist/cli/commands/devtools/perf.d.ts +7 -0
  112. package/dist/cli/commands/devtools/perf.d.ts.map +1 -0
  113. package/dist/cli/commands/devtools/screenshot.d.ts +18 -0
  114. package/dist/cli/commands/devtools/screenshot.d.ts.map +1 -0
  115. package/dist/cli/commands/dom/attr.d.ts +7 -0
  116. package/dist/cli/commands/dom/attr.d.ts.map +1 -0
  117. package/dist/cli/commands/dom/checked.d.ts +7 -0
  118. package/dist/cli/commands/dom/checked.d.ts.map +1 -0
  119. package/dist/cli/commands/dom/enabled.d.ts +7 -0
  120. package/dist/cli/commands/dom/enabled.d.ts.map +1 -0
  121. package/dist/cli/commands/dom/html.d.ts +7 -0
  122. package/dist/cli/commands/dom/html.d.ts.map +1 -0
  123. package/dist/cli/commands/dom/text.d.ts +7 -0
  124. package/dist/cli/commands/dom/text.d.ts.map +1 -0
  125. package/dist/cli/commands/dom/value.d.ts +7 -0
  126. package/dist/cli/commands/dom/value.d.ts.map +1 -0
  127. package/dist/cli/commands/dom/visible.d.ts +7 -0
  128. package/dist/cli/commands/dom/visible.d.ts.map +1 -0
  129. package/dist/cli/commands/export/clone-component.d.ts +16 -0
  130. package/dist/cli/commands/export/clone-component.d.ts.map +1 -0
  131. package/dist/cli/commands/export/clone-page.d.ts +15 -0
  132. package/dist/cli/commands/export/clone-page.d.ts.map +1 -0
  133. package/dist/cli/commands/interact/check.d.ts +7 -0
  134. package/dist/cli/commands/interact/check.d.ts.map +1 -0
  135. package/dist/cli/commands/interact/click.d.ts +7 -0
  136. package/dist/cli/commands/interact/click.d.ts.map +1 -0
  137. package/dist/cli/commands/interact/hover.d.ts +7 -0
  138. package/dist/cli/commands/interact/hover.d.ts.map +1 -0
  139. package/dist/cli/commands/interact/press.d.ts +7 -0
  140. package/dist/cli/commands/interact/press.d.ts.map +1 -0
  141. package/dist/cli/commands/interact/scroll-into-view.d.ts +7 -0
  142. package/dist/cli/commands/interact/scroll-into-view.d.ts.map +1 -0
  143. package/dist/cli/commands/interact/scroll.d.ts +7 -0
  144. package/dist/cli/commands/interact/scroll.d.ts.map +1 -0
  145. package/dist/cli/commands/interact/select.d.ts +7 -0
  146. package/dist/cli/commands/interact/select.d.ts.map +1 -0
  147. package/dist/cli/commands/interact/type.d.ts +7 -0
  148. package/dist/cli/commands/interact/type.d.ts.map +1 -0
  149. package/dist/cli/commands/interact/uncheck.d.ts +7 -0
  150. package/dist/cli/commands/interact/uncheck.d.ts.map +1 -0
  151. package/dist/cli/commands/macro-resolve.d.ts +18 -0
  152. package/dist/cli/commands/macro-resolve.d.ts.map +1 -0
  153. package/dist/cli/commands/native.d.ts +93 -0
  154. package/dist/cli/commands/native.d.ts.map +1 -0
  155. package/dist/cli/commands/nav/goto.d.ts +7 -0
  156. package/dist/cli/commands/nav/goto.d.ts.map +1 -0
  157. package/dist/cli/commands/nav/snapshot.d.ts +7 -0
  158. package/dist/cli/commands/nav/snapshot.d.ts.map +1 -0
  159. package/dist/cli/commands/nav/wait.d.ts +7 -0
  160. package/dist/cli/commands/nav/wait.d.ts.map +1 -0
  161. package/dist/cli/commands/pages/close.d.ts +6 -0
  162. package/dist/cli/commands/pages/close.d.ts.map +1 -0
  163. package/dist/cli/commands/pages/list.d.ts +7 -0
  164. package/dist/cli/commands/pages/list.d.ts.map +1 -0
  165. package/dist/cli/commands/pages/open.d.ts +7 -0
  166. package/dist/cli/commands/pages/open.d.ts.map +1 -0
  167. package/dist/cli/commands/product-video.d.ts +25 -0
  168. package/dist/cli/commands/product-video.d.ts.map +1 -0
  169. package/dist/cli/commands/registry.d.ts +5 -0
  170. package/dist/cli/commands/registry.d.ts.map +1 -0
  171. package/dist/cli/commands/research.d.ts +27 -0
  172. package/dist/cli/commands/research.d.ts.map +1 -0
  173. package/dist/cli/commands/rpc.d.ts +28 -0
  174. package/dist/cli/commands/rpc.d.ts.map +1 -0
  175. package/dist/cli/commands/run.d.ts +17 -0
  176. package/dist/cli/commands/run.d.ts.map +1 -0
  177. package/dist/cli/commands/serve.d.ts +64 -0
  178. package/dist/cli/commands/serve.d.ts.map +1 -0
  179. package/dist/cli/commands/session/connect.d.ts +9 -0
  180. package/dist/cli/commands/session/connect.d.ts.map +1 -0
  181. package/dist/cli/commands/session/cookie-import.d.ts +31 -0
  182. package/dist/cli/commands/session/cookie-import.d.ts.map +1 -0
  183. package/dist/cli/commands/session/cookie-list.d.ts +17 -0
  184. package/dist/cli/commands/session/cookie-list.d.ts.map +1 -0
  185. package/dist/cli/commands/session/disconnect.d.ts +6 -0
  186. package/dist/cli/commands/session/disconnect.d.ts.map +1 -0
  187. package/dist/cli/commands/session/launch.d.ts +29 -0
  188. package/dist/cli/commands/session/launch.d.ts.map +1 -0
  189. package/dist/cli/commands/session/status.d.ts +7 -0
  190. package/dist/cli/commands/session/status.d.ts.map +1 -0
  191. package/dist/cli/commands/shopping.d.ts +25 -0
  192. package/dist/cli/commands/shopping.d.ts.map +1 -0
  193. package/dist/cli/commands/status.d.ts +24 -0
  194. package/dist/cli/commands/status.d.ts.map +1 -0
  195. package/dist/cli/commands/targets/close.d.ts +6 -0
  196. package/dist/cli/commands/targets/close.d.ts.map +1 -0
  197. package/dist/cli/commands/targets/list.d.ts +7 -0
  198. package/dist/cli/commands/targets/list.d.ts.map +1 -0
  199. package/dist/cli/commands/targets/new.d.ts +7 -0
  200. package/dist/cli/commands/targets/new.d.ts.map +1 -0
  201. package/dist/cli/commands/targets/use.d.ts +7 -0
  202. package/dist/cli/commands/targets/use.d.ts.map +1 -0
  203. package/dist/cli/commands/types.d.ts +13 -0
  204. package/dist/cli/commands/types.d.ts.map +1 -0
  205. package/dist/cli/commands/uninstall.d.ts +14 -0
  206. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  207. package/dist/cli/commands/update.d.ts +7 -0
  208. package/dist/cli/commands/update.d.ts.map +1 -0
  209. package/dist/cli/daemon-autostart.d.ts +46 -0
  210. package/dist/cli/daemon-autostart.d.ts.map +1 -0
  211. package/dist/cli/daemon-client.d.ts +33 -0
  212. package/dist/cli/daemon-client.d.ts.map +1 -0
  213. package/dist/cli/daemon-commands.d.ts +7 -0
  214. package/dist/cli/daemon-commands.d.ts.map +1 -0
  215. package/dist/cli/daemon-state.d.ts +56 -0
  216. package/dist/cli/daemon-state.d.ts.map +1 -0
  217. package/dist/cli/daemon-status.d.ts +19 -0
  218. package/dist/cli/daemon-status.d.ts.map +1 -0
  219. package/dist/cli/daemon.d.ts +29 -0
  220. package/dist/cli/daemon.d.ts.map +1 -0
  221. package/dist/cli/errors.d.ts +20 -0
  222. package/dist/cli/errors.d.ts.map +1 -0
  223. package/dist/cli/help.d.ts +33 -0
  224. package/dist/cli/help.d.ts.map +1 -0
  225. package/dist/cli/index.d.ts +2 -0
  226. package/dist/cli/index.d.ts.map +1 -0
  227. package/dist/cli/index.js +2825 -326
  228. package/dist/cli/index.js.map +1 -1
  229. package/dist/cli/installers/global.d.ts +9 -0
  230. package/dist/cli/installers/global.d.ts.map +1 -0
  231. package/dist/cli/installers/local.d.ts +9 -0
  232. package/dist/cli/installers/local.d.ts.map +1 -0
  233. package/dist/cli/installers/skills.d.ts +19 -0
  234. package/dist/cli/installers/skills.d.ts.map +1 -0
  235. package/dist/cli/output.d.ts +7 -0
  236. package/dist/cli/output.d.ts.map +1 -0
  237. package/dist/cli/remote-canvas-manager.d.ts +8 -0
  238. package/dist/cli/remote-canvas-manager.d.ts.map +1 -0
  239. package/dist/cli/remote-manager.d.ts +98 -0
  240. package/dist/cli/remote-manager.d.ts.map +1 -0
  241. package/dist/cli/remote-relay.d.ts +19 -0
  242. package/dist/cli/remote-relay.d.ts.map +1 -0
  243. package/dist/cli/templates/config.d.ts +7 -0
  244. package/dist/cli/templates/config.d.ts.map +1 -0
  245. package/dist/cli/utils/config.d.ts +20 -0
  246. package/dist/cli/utils/config.d.ts.map +1 -0
  247. package/dist/cli/utils/http.d.ts +5 -0
  248. package/dist/cli/utils/http.d.ts.map +1 -0
  249. package/dist/cli/utils/parse.d.ts +9 -0
  250. package/dist/cli/utils/parse.d.ts.map +1 -0
  251. package/dist/cli/utils/skills.d.ts +12 -0
  252. package/dist/cli/utils/skills.d.ts.map +1 -0
  253. package/dist/config.d.ts +208 -0
  254. package/dist/config.d.ts.map +1 -0
  255. package/dist/core/bootstrap.d.ts +3 -0
  256. package/dist/core/bootstrap.d.ts.map +1 -0
  257. package/dist/core/index.d.ts +3 -0
  258. package/dist/core/index.d.ts.map +1 -0
  259. package/dist/core/logging.d.ts +34 -0
  260. package/dist/core/logging.d.ts.map +1 -0
  261. package/dist/core/types.d.ts +36 -0
  262. package/dist/core/types.d.ts.map +1 -0
  263. package/dist/devtools/console-tracker.d.ts +44 -0
  264. package/dist/devtools/console-tracker.d.ts.map +1 -0
  265. package/dist/devtools/exception-tracker.d.ts +42 -0
  266. package/dist/devtools/exception-tracker.d.ts.map +1 -0
  267. package/dist/devtools/network-tracker.d.ts +34 -0
  268. package/dist/devtools/network-tracker.d.ts.map +1 -0
  269. package/dist/export/css-extract.d.ts +5 -0
  270. package/dist/export/css-extract.d.ts.map +1 -0
  271. package/dist/export/dom-capture.d.ts +15 -0
  272. package/dist/export/dom-capture.d.ts.map +1 -0
  273. package/dist/export/react-emitter.d.ts +11 -0
  274. package/dist/export/react-emitter.d.ts.map +1 -0
  275. package/dist/extension-extractor.d.ts +3 -0
  276. package/dist/extension-extractor.d.ts.map +1 -0
  277. package/dist/fs-UMRKOBNN.js +7 -0
  278. package/dist/fs-UMRKOBNN.js.map +1 -0
  279. package/dist/index.d.ts +3 -4
  280. package/dist/index.d.ts.map +1 -0
  281. package/dist/index.js +1028 -123
  282. package/dist/index.js.map +1 -1
  283. package/dist/macros/execute.d.ts +44 -0
  284. package/dist/macros/execute.d.ts.map +1 -0
  285. package/dist/macros/index.d.ts +9 -0
  286. package/dist/macros/index.d.ts.map +1 -0
  287. package/dist/macros/packs/core.d.ts +3 -0
  288. package/dist/macros/packs/core.d.ts.map +1 -0
  289. package/dist/macros/registry.d.ts +48 -0
  290. package/dist/macros/registry.d.ts.map +1 -0
  291. package/dist/macros-ND2M7LWU.js +399 -0
  292. package/dist/macros-ND2M7LWU.js.map +1 -0
  293. package/dist/opendevbrowser.d.ts +3 -4
  294. package/dist/opendevbrowser.d.ts.map +1 -0
  295. package/dist/opendevbrowser.js +1028 -123
  296. package/dist/opendevbrowser.js.map +1 -1
  297. package/dist/providers/adaptive-concurrency.d.ts +42 -0
  298. package/dist/providers/adaptive-concurrency.d.ts.map +1 -0
  299. package/dist/providers/artifacts.d.ts +34 -0
  300. package/dist/providers/artifacts.d.ts.map +1 -0
  301. package/dist/providers/blocker.d.ts +47 -0
  302. package/dist/providers/blocker.d.ts.map +1 -0
  303. package/dist/providers/community/index.d.ts +44 -0
  304. package/dist/providers/community/index.d.ts.map +1 -0
  305. package/dist/providers/enrichment.d.ts +33 -0
  306. package/dist/providers/enrichment.d.ts.map +1 -0
  307. package/dist/providers/errors.d.ts +41 -0
  308. package/dist/providers/errors.d.ts.map +1 -0
  309. package/dist/providers/index.d.ts +121 -0
  310. package/dist/providers/index.d.ts.map +1 -0
  311. package/dist/providers/normalize.d.ts +39 -0
  312. package/dist/providers/normalize.d.ts.map +1 -0
  313. package/dist/providers/policy.d.ts +5 -0
  314. package/dist/providers/policy.d.ts.map +1 -0
  315. package/dist/providers/registry.d.ts +22 -0
  316. package/dist/providers/registry.d.ts.map +1 -0
  317. package/dist/providers/renderer.d.ts +49 -0
  318. package/dist/providers/renderer.d.ts.map +1 -0
  319. package/dist/providers/runtime-factory.d.ts +20 -0
  320. package/dist/providers/runtime-factory.d.ts.map +1 -0
  321. package/dist/providers/safety/prompt-guard.d.ts +34 -0
  322. package/dist/providers/safety/prompt-guard.d.ts.map +1 -0
  323. package/dist/providers/shared/anti-bot-policy.d.ts +51 -0
  324. package/dist/providers/shared/anti-bot-policy.d.ts.map +1 -0
  325. package/dist/providers/shared/post-policy.d.ts +31 -0
  326. package/dist/providers/shared/post-policy.d.ts.map +1 -0
  327. package/dist/providers/shared/request-headers.d.ts +5 -0
  328. package/dist/providers/shared/request-headers.d.ts.map +1 -0
  329. package/dist/providers/shared/traversal-url.d.ts +2 -0
  330. package/dist/providers/shared/traversal-url.d.ts.map +1 -0
  331. package/dist/providers/shopping/index.d.ts +63 -0
  332. package/dist/providers/shopping/index.d.ts.map +1 -0
  333. package/dist/providers/social/bluesky.d.ts +3 -0
  334. package/dist/providers/social/bluesky.d.ts.map +1 -0
  335. package/dist/providers/social/facebook.d.ts +3 -0
  336. package/dist/providers/social/facebook.d.ts.map +1 -0
  337. package/dist/providers/social/index.d.ts +31 -0
  338. package/dist/providers/social/index.d.ts.map +1 -0
  339. package/dist/providers/social/instagram.d.ts +3 -0
  340. package/dist/providers/social/instagram.d.ts.map +1 -0
  341. package/dist/providers/social/linkedin.d.ts +3 -0
  342. package/dist/providers/social/linkedin.d.ts.map +1 -0
  343. package/dist/providers/social/platform.d.ts +40 -0
  344. package/dist/providers/social/platform.d.ts.map +1 -0
  345. package/dist/providers/social/reddit.d.ts +3 -0
  346. package/dist/providers/social/reddit.d.ts.map +1 -0
  347. package/dist/providers/social/threads.d.ts +3 -0
  348. package/dist/providers/social/threads.d.ts.map +1 -0
  349. package/dist/providers/social/tiktok.d.ts +3 -0
  350. package/dist/providers/social/tiktok.d.ts.map +1 -0
  351. package/dist/providers/social/x.d.ts +3 -0
  352. package/dist/providers/social/x.d.ts.map +1 -0
  353. package/dist/providers/social/youtube-resolver.d.ts +78 -0
  354. package/dist/providers/social/youtube-resolver.d.ts.map +1 -0
  355. package/dist/providers/social/youtube.d.ts +34 -0
  356. package/dist/providers/social/youtube.d.ts.map +1 -0
  357. package/dist/providers/tier-router.d.ts +30 -0
  358. package/dist/providers/tier-router.d.ts.map +1 -0
  359. package/dist/providers/timebox.d.ts +20 -0
  360. package/dist/providers/timebox.d.ts.map +1 -0
  361. package/dist/providers/types.d.ts +344 -0
  362. package/dist/providers/types.d.ts.map +1 -0
  363. package/dist/providers/web/crawl-worker.d.ts +36 -0
  364. package/dist/providers/web/crawl-worker.d.ts.map +1 -0
  365. package/dist/providers/web/crawler.d.ts +101 -0
  366. package/dist/providers/web/crawler.d.ts.map +1 -0
  367. package/dist/providers/web/extract.d.ts +11 -0
  368. package/dist/providers/web/extract.d.ts.map +1 -0
  369. package/dist/providers/web/index.d.ts +24 -0
  370. package/dist/providers/web/index.d.ts.map +1 -0
  371. package/dist/providers/web/policy.d.ts +14 -0
  372. package/dist/providers/web/policy.d.ts.map +1 -0
  373. package/dist/providers/workflows.d.ts +67 -0
  374. package/dist/providers/workflows.d.ts.map +1 -0
  375. package/dist/providers-G3LRHQXX.js +121 -0
  376. package/dist/providers-G3LRHQXX.js.map +1 -0
  377. package/dist/relay/protocol.d.ts +399 -0
  378. package/dist/relay/protocol.d.ts.map +1 -0
  379. package/dist/relay/relay-endpoints.d.ts +16 -0
  380. package/dist/relay/relay-endpoints.d.ts.map +1 -0
  381. package/dist/relay/relay-server.d.ts +124 -0
  382. package/dist/relay/relay-server.d.ts.map +1 -0
  383. package/dist/relay/relay-types.d.ts +12 -0
  384. package/dist/relay/relay-types.d.ts.map +1 -0
  385. package/dist/runtime-factory-BICHDPE7.js +13 -0
  386. package/dist/runtime-factory-BICHDPE7.js.map +1 -0
  387. package/dist/skills/continuity-nudge.d.ts +12 -0
  388. package/dist/skills/continuity-nudge.d.ts.map +1 -0
  389. package/dist/skills/skill-loader.d.ts +20 -0
  390. package/dist/skills/skill-loader.d.ts.map +1 -0
  391. package/dist/skills/skill-nudge.d.ts +18 -0
  392. package/dist/skills/skill-nudge.d.ts.map +1 -0
  393. package/dist/skills/types.d.ts +12 -0
  394. package/dist/skills/types.d.ts.map +1 -0
  395. package/dist/snapshot/ops-snapshot.d.ts +16 -0
  396. package/dist/snapshot/ops-snapshot.d.ts.map +1 -0
  397. package/dist/snapshot/refs.d.ts +23 -0
  398. package/dist/snapshot/refs.d.ts.map +1 -0
  399. package/dist/snapshot/snapshotter.d.ts +27 -0
  400. package/dist/snapshot/snapshotter.d.ts.map +1 -0
  401. package/dist/tools/annotate.d.ts +4 -0
  402. package/dist/tools/annotate.d.ts.map +1 -0
  403. package/dist/tools/canvas.d.ts +4 -0
  404. package/dist/tools/canvas.d.ts.map +1 -0
  405. package/dist/tools/check.d.ts +4 -0
  406. package/dist/tools/check.d.ts.map +1 -0
  407. package/dist/tools/click.d.ts +4 -0
  408. package/dist/tools/click.d.ts.map +1 -0
  409. package/dist/tools/clone_component.d.ts +4 -0
  410. package/dist/tools/clone_component.d.ts.map +1 -0
  411. package/dist/tools/clone_page.d.ts +4 -0
  412. package/dist/tools/clone_page.d.ts.map +1 -0
  413. package/dist/tools/close.d.ts +4 -0
  414. package/dist/tools/close.d.ts.map +1 -0
  415. package/dist/tools/connect.d.ts +4 -0
  416. package/dist/tools/connect.d.ts.map +1 -0
  417. package/dist/tools/console_poll.d.ts +4 -0
  418. package/dist/tools/console_poll.d.ts.map +1 -0
  419. package/dist/tools/cookie_import.d.ts +25 -0
  420. package/dist/tools/cookie_import.d.ts.map +1 -0
  421. package/dist/tools/cookie_list.d.ts +9 -0
  422. package/dist/tools/cookie_list.d.ts.map +1 -0
  423. package/dist/tools/debug_trace_snapshot.d.ts +4 -0
  424. package/dist/tools/debug_trace_snapshot.d.ts.map +1 -0
  425. package/dist/tools/deps.d.ts +28 -0
  426. package/dist/tools/deps.d.ts.map +1 -0
  427. package/dist/tools/disconnect.d.ts +4 -0
  428. package/dist/tools/disconnect.d.ts.map +1 -0
  429. package/dist/tools/dom_get_html.d.ts +4 -0
  430. package/dist/tools/dom_get_html.d.ts.map +1 -0
  431. package/dist/tools/dom_get_text.d.ts +4 -0
  432. package/dist/tools/dom_get_text.d.ts.map +1 -0
  433. package/dist/tools/get_attr.d.ts +4 -0
  434. package/dist/tools/get_attr.d.ts.map +1 -0
  435. package/dist/tools/get_value.d.ts +4 -0
  436. package/dist/tools/get_value.d.ts.map +1 -0
  437. package/dist/tools/goto.d.ts +4 -0
  438. package/dist/tools/goto.d.ts.map +1 -0
  439. package/dist/tools/hover.d.ts +4 -0
  440. package/dist/tools/hover.d.ts.map +1 -0
  441. package/dist/tools/index.d.ts +4 -0
  442. package/dist/tools/index.d.ts.map +1 -0
  443. package/dist/tools/is_checked.d.ts +4 -0
  444. package/dist/tools/is_checked.d.ts.map +1 -0
  445. package/dist/tools/is_enabled.d.ts +4 -0
  446. package/dist/tools/is_enabled.d.ts.map +1 -0
  447. package/dist/tools/is_visible.d.ts +4 -0
  448. package/dist/tools/is_visible.d.ts.map +1 -0
  449. package/dist/tools/launch.d.ts +4 -0
  450. package/dist/tools/launch.d.ts.map +1 -0
  451. package/dist/tools/list.d.ts +4 -0
  452. package/dist/tools/list.d.ts.map +1 -0
  453. package/dist/tools/macro_resolve.d.ts +25 -0
  454. package/dist/tools/macro_resolve.d.ts.map +1 -0
  455. package/dist/tools/network_poll.d.ts +4 -0
  456. package/dist/tools/network_poll.d.ts.map +1 -0
  457. package/dist/tools/page.d.ts +4 -0
  458. package/dist/tools/page.d.ts.map +1 -0
  459. package/dist/tools/perf.d.ts +4 -0
  460. package/dist/tools/perf.d.ts.map +1 -0
  461. package/dist/tools/press.d.ts +4 -0
  462. package/dist/tools/press.d.ts.map +1 -0
  463. package/dist/tools/product_video_run.d.ts +4 -0
  464. package/dist/tools/product_video_run.d.ts.map +1 -0
  465. package/dist/tools/prompting_guide.d.ts +4 -0
  466. package/dist/tools/prompting_guide.d.ts.map +1 -0
  467. package/dist/tools/research_run.d.ts +4 -0
  468. package/dist/tools/research_run.d.ts.map +1 -0
  469. package/dist/tools/response.d.ts +19 -0
  470. package/dist/tools/response.d.ts.map +1 -0
  471. package/dist/tools/run.d.ts +4 -0
  472. package/dist/tools/run.d.ts.map +1 -0
  473. package/dist/tools/screenshot.d.ts +4 -0
  474. package/dist/tools/screenshot.d.ts.map +1 -0
  475. package/dist/tools/scroll.d.ts +4 -0
  476. package/dist/tools/scroll.d.ts.map +1 -0
  477. package/dist/tools/scroll_into_view.d.ts +4 -0
  478. package/dist/tools/scroll_into_view.d.ts.map +1 -0
  479. package/dist/tools/select.d.ts +4 -0
  480. package/dist/tools/select.d.ts.map +1 -0
  481. package/dist/tools/shopping_run.d.ts +4 -0
  482. package/dist/tools/shopping_run.d.ts.map +1 -0
  483. package/dist/tools/skill_list.d.ts +4 -0
  484. package/dist/tools/skill_list.d.ts.map +1 -0
  485. package/dist/tools/skill_load.d.ts +4 -0
  486. package/dist/tools/skill_load.d.ts.map +1 -0
  487. package/dist/tools/snapshot.d.ts +4 -0
  488. package/dist/tools/snapshot.d.ts.map +1 -0
  489. package/dist/tools/status.d.ts +4 -0
  490. package/dist/tools/status.d.ts.map +1 -0
  491. package/dist/tools/target_close.d.ts +4 -0
  492. package/dist/tools/target_close.d.ts.map +1 -0
  493. package/dist/tools/target_new.d.ts +4 -0
  494. package/dist/tools/target_new.d.ts.map +1 -0
  495. package/dist/tools/target_use.d.ts +4 -0
  496. package/dist/tools/target_use.d.ts.map +1 -0
  497. package/dist/tools/targets_list.d.ts +4 -0
  498. package/dist/tools/targets_list.d.ts.map +1 -0
  499. package/dist/tools/type.d.ts +4 -0
  500. package/dist/tools/type.d.ts.map +1 -0
  501. package/dist/tools/uncheck.d.ts +4 -0
  502. package/dist/tools/uncheck.d.ts.map +1 -0
  503. package/dist/tools/wait.d.ts +4 -0
  504. package/dist/tools/wait.d.ts.map +1 -0
  505. package/dist/tools/workflow-runtime.d.ts +3 -0
  506. package/dist/tools/workflow-runtime.d.ts.map +1 -0
  507. package/dist/utils/crypto.d.ts +2 -0
  508. package/dist/utils/crypto.d.ts.map +1 -0
  509. package/dist/utils/endpoint-validation.d.ts +2 -0
  510. package/dist/utils/endpoint-validation.d.ts.map +1 -0
  511. package/dist/utils/fs.d.ts +5 -0
  512. package/dist/utils/fs.d.ts.map +1 -0
  513. package/dist/utils/hub-enabled.d.ts +3 -0
  514. package/dist/utils/hub-enabled.d.ts.map +1 -0
  515. package/extension/canvas.html +636 -0
  516. package/extension/dist/annotate-content.css +15 -6
  517. package/extension/dist/annotate-content.js +119 -9
  518. package/extension/dist/annotation-payload.js +163 -0
  519. package/extension/dist/background.js +158 -22
  520. package/extension/dist/canvas/canvas-runtime.js +1061 -0
  521. package/extension/dist/canvas/model.js +213 -0
  522. package/extension/dist/canvas/viewport-fit.js +67 -0
  523. package/extension/dist/canvas-page.js +1801 -0
  524. package/extension/dist/ops/dom-bridge.js +116 -3
  525. package/extension/dist/ops/ops-runtime.js +1014 -48
  526. package/extension/dist/ops/ops-session-store.js +37 -116
  527. package/extension/dist/ops/parallelism-governor.js +117 -0
  528. package/extension/dist/ops/snapshot-shared.js +21 -5
  529. package/extension/dist/ops/target-session-coordinator.js +157 -0
  530. package/extension/dist/popup.js +155 -31
  531. package/extension/dist/services/CDPRouter.js +70 -5
  532. package/extension/dist/services/ConnectionManager.js +22 -3
  533. package/extension/dist/services/RelayClient.js +9 -0
  534. package/extension/dist/services/TabManager.js +35 -12
  535. package/extension/dist/types.js +2 -0
  536. package/extension/icons/icon128.png +0 -0
  537. package/extension/icons/icon16.png +0 -0
  538. package/extension/icons/icon32.png +0 -0
  539. package/extension/icons/icon48.png +0 -0
  540. package/extension/manifest.json +1 -1
  541. package/extension/popup.html +52 -0
  542. package/package.json +30 -19
  543. package/scripts/native/host.cjs +230 -0
  544. package/scripts/native/install.ps1 +73 -0
  545. package/scripts/native/install.sh +66 -0
  546. package/scripts/native/uninstall.ps1 +25 -0
  547. package/scripts/native/uninstall.sh +26 -0
  548. package/skills/AGENTS.md +20 -8
  549. package/skills/opendevbrowser-best-practices/SKILL.md +248 -74
  550. package/skills/opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md +44 -0
  551. package/skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md +141 -0
  552. package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +191 -0
  553. package/skills/opendevbrowser-best-practices/artifacts/debug-trace-playbook.md +36 -0
  554. package/skills/opendevbrowser-best-practices/artifacts/fingerprint-tiers.md +36 -0
  555. package/skills/opendevbrowser-best-practices/artifacts/macro-workflows.md +43 -0
  556. package/skills/opendevbrowser-best-practices/artifacts/parity-gates.md +36 -0
  557. package/skills/opendevbrowser-best-practices/artifacts/provider-workflows.md +89 -0
  558. package/skills/opendevbrowser-best-practices/assets/templates/canvas-blocker-checklist.json +70 -0
  559. package/skills/opendevbrowser-best-practices/assets/templates/canvas-feedback-eval.json +73 -0
  560. package/skills/opendevbrowser-best-practices/assets/templates/canvas-generation-plan.v1.json +67 -0
  561. package/skills/opendevbrowser-best-practices/assets/templates/canvas-handshake-example.json +126 -0
  562. package/skills/opendevbrowser-best-practices/assets/templates/cdp-forward-envelope.json +11 -0
  563. package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +56 -0
  564. package/skills/opendevbrowser-best-practices/assets/templates/ops-request-envelope.json +9 -0
  565. package/skills/opendevbrowser-best-practices/assets/templates/robustness-checklist.json +136 -0
  566. package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +28 -0
  567. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +170 -0
  568. package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +164 -0
  569. package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +234 -0
  570. package/skills/opendevbrowser-continuity-ledger/SKILL.md +10 -0
  571. package/skills/opendevbrowser-data-extraction/SKILL.md +126 -0
  572. package/skills/opendevbrowser-data-extraction/artifacts/extraction-workflows.md +31 -0
  573. package/skills/opendevbrowser-data-extraction/assets/templates/compliance-checklist.md +7 -0
  574. package/skills/opendevbrowser-data-extraction/assets/templates/extraction-schema.json +17 -0
  575. package/skills/opendevbrowser-data-extraction/assets/templates/pagination-state.json +11 -0
  576. package/skills/opendevbrowser-data-extraction/assets/templates/quality-gates.json +10 -0
  577. package/skills/opendevbrowser-data-extraction/examples/sample-schema.json +19 -0
  578. package/skills/opendevbrowser-data-extraction/scripts/run-extraction-workflow.sh +83 -0
  579. package/skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh +49 -0
  580. package/skills/opendevbrowser-form-testing/SKILL.md +143 -0
  581. package/skills/opendevbrowser-form-testing/artifacts/form-workflows.md +37 -0
  582. package/skills/opendevbrowser-form-testing/assets/templates/a11y-assertions.md +7 -0
  583. package/skills/opendevbrowser-form-testing/assets/templates/challenge-decision-tree.json +16 -0
  584. package/skills/opendevbrowser-form-testing/assets/templates/multi-step-state.json +11 -0
  585. package/skills/opendevbrowser-form-testing/assets/templates/validation-matrix.json +24 -0
  586. package/skills/opendevbrowser-form-testing/examples/sample-validation-matrix.json +29 -0
  587. package/skills/opendevbrowser-form-testing/scripts/run-form-workflow.sh +82 -0
  588. package/skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh +49 -0
  589. package/skills/opendevbrowser-login-automation/SKILL.md +159 -0
  590. package/skills/opendevbrowser-login-automation/artifacts/login-workflows.md +39 -0
  591. package/skills/opendevbrowser-login-automation/assets/templates/auth-signals.json +21 -0
  592. package/skills/opendevbrowser-login-automation/assets/templates/challenge-checkpoint.md +10 -0
  593. package/skills/opendevbrowser-login-automation/assets/templates/login-scenario-matrix.json +26 -0
  594. package/skills/opendevbrowser-login-automation/examples/sample-auth-signals.json +14 -0
  595. package/skills/opendevbrowser-login-automation/scripts/record-auth-signals.sh +18 -0
  596. package/skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh +99 -0
  597. package/skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh +50 -0
  598. package/skills/opendevbrowser-product-presentation-asset/SKILL.md +98 -0
  599. package/skills/opendevbrowser-product-presentation-asset/artifacts/asset-pack-assembly.md +23 -0
  600. package/skills/opendevbrowser-product-presentation-asset/artifacts/ugc-creative-guide.md +21 -0
  601. package/skills/opendevbrowser-product-presentation-asset/assets/templates/claims-evidence-map.md +5 -0
  602. package/skills/opendevbrowser-product-presentation-asset/assets/templates/copy.md +5 -0
  603. package/skills/opendevbrowser-product-presentation-asset/assets/templates/features.md +4 -0
  604. package/skills/opendevbrowser-product-presentation-asset/assets/templates/manifest.schema.json +14 -0
  605. package/skills/opendevbrowser-product-presentation-asset/assets/templates/shot-list.md +7 -0
  606. package/skills/opendevbrowser-product-presentation-asset/assets/templates/ugc-concepts.md +17 -0
  607. package/skills/opendevbrowser-product-presentation-asset/assets/templates/user-actions.md +7 -0
  608. package/skills/opendevbrowser-product-presentation-asset/assets/templates/video-assembly.md +18 -0
  609. package/skills/opendevbrowser-product-presentation-asset/examples/sample-input.json +6 -0
  610. package/skills/opendevbrowser-product-presentation-asset/examples/sample-manifest.json +18 -0
  611. package/skills/opendevbrowser-product-presentation-asset/scripts/capture-screenshots.sh +9 -0
  612. package/skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh +14 -0
  613. package/skills/opendevbrowser-product-presentation-asset/scripts/download-images.sh +9 -0
  614. package/skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh +96 -0
  615. package/skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh +56 -0
  616. package/skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh +43 -0
  617. package/skills/opendevbrowser-research/SKILL.md +73 -0
  618. package/skills/opendevbrowser-research/artifacts/research-workflows.md +29 -0
  619. package/skills/opendevbrowser-research/assets/templates/compact.md +7 -0
  620. package/skills/opendevbrowser-research/assets/templates/context.json +18 -0
  621. package/skills/opendevbrowser-research/assets/templates/report.md +9 -0
  622. package/skills/opendevbrowser-research/examples/sample-input.json +6 -0
  623. package/skills/opendevbrowser-research/examples/sample-output.md +4 -0
  624. package/skills/opendevbrowser-research/scripts/render-output.sh +12 -0
  625. package/skills/opendevbrowser-research/scripts/run-research.sh +23 -0
  626. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +48 -0
  627. package/skills/opendevbrowser-research/scripts/write-artifacts.sh +29 -0
  628. package/skills/opendevbrowser-shopping/SKILL.md +118 -0
  629. package/skills/opendevbrowser-shopping/artifacts/deal-hunting-workflows.md +37 -0
  630. package/skills/opendevbrowser-shopping/assets/templates/deal-thresholds.json +8 -0
  631. package/skills/opendevbrowser-shopping/assets/templates/deals-context.json +9 -0
  632. package/skills/opendevbrowser-shopping/assets/templates/deals-table.md +4 -0
  633. package/skills/opendevbrowser-shopping/assets/templates/market-analysis.json +30 -0
  634. package/skills/opendevbrowser-shopping/examples/sample-deals.md +4 -0
  635. package/skills/opendevbrowser-shopping/examples/sample-query.json +5 -0
  636. package/skills/opendevbrowser-shopping/scripts/analyze-market.sh +307 -0
  637. package/skills/opendevbrowser-shopping/scripts/normalize-offers.sh +28 -0
  638. package/skills/opendevbrowser-shopping/scripts/render-deals.sh +13 -0
  639. package/skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh +32 -0
  640. package/skills/opendevbrowser-shopping/scripts/run-shopping.sh +19 -0
  641. package/skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh +53 -0
  642. package/dist/chunk-JVBMT2O5.js +0 -7173
  643. package/dist/chunk-JVBMT2O5.js.map +0 -1
  644. package/skills/data-extraction/SKILL.md +0 -128
  645. package/skills/form-testing/SKILL.md +0 -106
  646. package/skills/login-automation/SKILL.md +0 -108
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 OpenDevBrowser contributors
3
+ Copyright (c) 2024-2026 OpenDevBrowser contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/opendevbrowser.svg?style=flat-square)](https://registry.npmjs.org/opendevbrowser)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](https://opensource.org/licenses/MIT)
5
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg?style=flat-square)](https://www.typescriptlang.org/)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg?style=flat-square)](https://www.typescriptlang.org/)
6
6
  [![OpenCode Plugin](https://img.shields.io/badge/OpenCode-Plugin-green.svg?style=flat-square)](https://opencode.ai)
7
7
  [![CLI](https://img.shields.io/badge/Interface-CLI-orange.svg?style=flat-square)](docs/CLI.md)
8
8
  [![Chrome Extension](https://img.shields.io/badge/Chrome-Extension-blue.svg?style=flat-square)](docs/EXTENSION.md)
@@ -10,10 +10,10 @@
10
10
 
11
11
  > **Script-first browser automation for AI agents.** Snapshot → Refs → Actions.
12
12
 
13
- OpenDevBrowser is an agent-agnostic browser automation runtime. You can use it as an [OpenCode](https://opencode.ai) plugin, as a standalone CLI, or through the Chrome extension relay for logged-in browser sessions. It supports managed sessions, direct CDP attach, and extension-backed Ops sessions.
13
+ OpenDevBrowser is an agent-agnostic browser automation runtime. You can use it as an [OpenCode](https://opencode.ai) plugin, as a standalone CLI, or through the Chrome extension relay for logged-in browser sessions. It supports managed sessions, direct CDP attach, and extension-backed Ops sessions. Frontend website source and deployment are maintained in the private repo `opendevbrowser-website-deploy`.
14
14
 
15
15
  <p align="center">
16
- <img src="assets/readme-image-candidates/2026-02-08/04-annotation-automation-scene.jpg" alt="OpenDevBrowser hero image showing AI-assisted annotation and browser automation workflow" width="920" />
16
+ <img src="assets/hero-image.png" alt="OpenDevBrowser hero image showing AI-assisted annotation and browser automation workflow" width="920" />
17
17
  <br />
18
18
  <em>AI-assisted annotation and browser automation workflow</em>
19
19
  </p>
@@ -25,8 +25,14 @@ OpenDevBrowser is an agent-agnostic browser automation runtime. You can use it a
25
25
  | **CLI (`npx opendevbrowser ...`)** | No | Any agent/workflow that can run shell commands |
26
26
  | **Chrome Extension + Relay** | No | Reusing existing logged-in tabs without launching a new browser |
27
27
  | **OpenCode Plugin Tools** | Yes | Native tool-calling inside OpenCode (`opendevbrowser_*`) |
28
+ | **Frontend Website (private repo)** | No | Product website and generated docs routes |
28
29
 
29
30
  All core automation flows are available through the CLI command surface and the plugin tool surface.
31
+ Private website docs routes are generated from public repository source-of-truth docs and skill packs.
32
+
33
+ Distribution split (current target state):
34
+ - Public repo (`opendevbrowser`): runtime, CLI, extension, docs, npm, release artifacts.
35
+ - Private repo (`opendevbrowser-website-deploy`): website deployment (`website-production` branch).
30
36
 
31
37
  ## Why OpenDevBrowser?
32
38
 
@@ -37,17 +43,21 @@ All core automation flows are available through the CLI command surface and the
37
43
  | **Stable refs** | Elements identified by `backendNodeId`, not fragile selectors |
38
44
  | **Security by default** | CDP localhost-only, timing-safe auth, HTML sanitization |
39
45
  | **3 browser modes** | Managed, CDP connect, or extension relay for logged-in sessions |
40
- | **Ops + CDP channels** | High-level multi-client `/ops` plus legacy `/cdp` compatibility |
46
+ | **Ops + Canvas + CDP channels** | High-level multi-client `/ops`, dedicated `/canvas`, plus legacy `/cdp` compatibility |
41
47
  | **Relay Hub (FIFO leases)** | Single-owner CDP binding with a FIFO queue for multi-client safety |
42
48
  | **Flat-session routing** | Extension relay uses DebuggerSession sessionId routing (Chrome 125+) |
43
- | **5 bundled skill packs** | Best practices for login, forms, data extraction |
44
- | **41 tools** | Complete browser automation coverage |
49
+ | **Design canvas + code sync** | Persist repo-native design documents, attach same-session observers, round-trip bound TSX files, and drive preview tabs with `canvas_html` or opted-in `bound_app_runtime` reconciliation |
50
+ | **Loop-closure diagnostics** | Console/network polling + unified debug trace snapshots for verification workflows |
51
+ | **10 bundled skill directories** | Best practices plus login, forms, data extraction, research, shopping, and product asset workflows |
52
+ | **49 tools** | Complete browser automation coverage, including the design-canvas command surface |
45
53
  | **97% test coverage** | Production-ready with strict TypeScript |
46
54
 
47
55
  ---
48
56
 
49
57
  ## Installation
50
58
 
59
+ Requires Node.js `>=18`.
60
+
51
61
  ### For Humans
52
62
 
53
63
  ```bash
@@ -60,14 +70,46 @@ npx opendevbrowser --local # ./opencode.json
60
70
 
61
71
  # Full install (config + extension assets)
62
72
  npx opendevbrowser --full
73
+
74
+ # Optional: persistent global CLI
75
+ npm install -g opendevbrowser
76
+ opendevbrowser --version
63
77
  ```
64
78
 
79
+ ### Pre-release Local Package (No npm publish required)
80
+
81
+ Use this path to validate first-run onboarding before public distribution:
82
+
83
+ ```bash
84
+ cd <public-repo-root>
85
+ npm pack
86
+
87
+ WORKDIR=$(mktemp -d /tmp/opendevbrowser-first-run-XXXXXX)
88
+ cd "$WORKDIR"
89
+ npm init -y
90
+ npm install <public-repo-root>/opendevbrowser-0.0.17.tgz
91
+ npx --no-install opendevbrowser --help
92
+ npx --no-install opendevbrowser help
93
+ ```
94
+
95
+ Full validated flow: [`docs/FIRST_RUN_ONBOARDING.md`](docs/FIRST_RUN_ONBOARDING.md).
96
+ Dependency/runtime inventory: [`docs/DEPENDENCIES.md`](docs/DEPENDENCIES.md).
97
+ Live CLI inventory/help surface: `npx opendevbrowser --help` or `npx opendevbrowser help`.
98
+
65
99
  Use OpenCode only if you want plugin tools. CLI and extension workflows work without OpenCode.
66
100
 
67
101
  On first successful install, the CLI attempts to install daemon auto-start on supported platforms so the relay is available on login.
68
102
  You can remove it later with `npx opendevbrowser daemon uninstall`.
69
103
 
70
- OpenCode discovers skills in `.opencode/skill` (project) and `~/.config/opencode/skill` (global) first; `.claude/skills` is compatibility-only. The CLI installs bundled skills into the OpenCode-native locations by default.
104
+ During install, bundled skills are synced for **OpenCode, Codex, ClaudeCode, and AmpCLI**.
105
+ Default `--skills-global` targets:
106
+ - `~/.config/opencode/skill` (OpenCode)
107
+ - `$CODEX_HOME/skills` (fallback `~/.codex/skills`)
108
+ - `$CLAUDECODE_HOME/skills` or `$CLAUDE_HOME/skills` (fallback `~/.claude/skills`)
109
+ - `$AMPCLI_HOME/skills` or `$AMP_CLI_HOME/skills` or `$AMP_HOME/skills` (fallback `~/.amp/skills`)
110
+
111
+ Use `--skills-local` for project-local targets:
112
+ - `./.opencode/skill`, `./.codex/skills`, `./.claude/skills`, `./.amp/skills`
71
113
 
72
114
  ### CLI + Extension (No OpenCode)
73
115
 
@@ -82,6 +124,22 @@ npx opendevbrowser launch --extension-only --wait-for-extension
82
124
  npx opendevbrowser launch --no-extension
83
125
  ```
84
126
 
127
+ Unpacked extension load path after local install:
128
+ - `<WORKDIR>/node_modules/opendevbrowser/extension`
129
+
130
+ ### Frontend Website (Private Repo)
131
+
132
+ ```bash
133
+ git clone https://github.com/freshtechbro/opendevbrowser-website-deploy.git
134
+ cd opendevbrowser-website-deploy/frontend
135
+ npm install
136
+ npm run dev
137
+ ```
138
+
139
+ Website build/data pipeline lives in the private repo:
140
+ - `npm run sync:assets` copies mirrored assets into private `frontend/public/brand`.
141
+ - `npm run generate:docs` regenerates docs, metrics, and roadmap JSON consumed by `/docs`.
142
+
85
143
  ### Agent Installation (OpenCode)
86
144
 
87
145
  Recommended (CLI, installs plugin + config + bundled skills + extension assets):
@@ -123,6 +181,11 @@ OpenDevBrowser uses the same automation model across plugin tools and CLI comman
123
181
  5. Re-snapshot after navigation
124
182
  ```
125
183
 
184
+ Shipping checklist for first-time users (local-package install, daemon, extension, first task, multi-tab auth/cookies):
185
+ - [`docs/FIRST_RUN_ONBOARDING.md`](docs/FIRST_RUN_ONBOARDING.md)
186
+
187
+ Parallel execution is target-scoped (`ExecutionKey = (sessionId,targetId)`): same target is FIFO, different targets can run concurrently up to the governor cap. `session-per-worker` remains the safest baseline for strict isolation. See [`docs/CLI.md`](docs/CLI.md) (Concurrency semantics) and [`skills/opendevbrowser-best-practices/artifacts/provider-workflows.md`](skills/opendevbrowser-best-practices/artifacts/provider-workflows.md) (Workflow E).
188
+
126
189
  ### Core Workflow (Plugin Tools)
127
190
 
128
191
  | Step | Tool | Purpose |
@@ -159,6 +222,9 @@ npx opendevbrowser snapshot --session-id <session-id>
159
222
  npx opendevbrowser click --session-id <session-id> --ref r12
160
223
  ```
161
224
 
225
+ `opendevbrowser serve` includes stale-daemon preflight cleanup by default, so orphan daemon processes are terminated automatically
226
+ before startup while preserving the active daemon on the requested port.
227
+
162
228
  For single-shot scripts:
163
229
 
164
230
  ```bash
@@ -171,7 +237,21 @@ Use `--output-format json|stream-json` for automation-friendly output.
171
237
 
172
238
  ## Recent Features
173
239
 
174
- ### v0.0.15 (Latest)
240
+ ### v0.0.17 (Latest)
241
+
242
+ - **Design canvas runtime is now shipped end-to-end** across core, CLI, tool, relay, and extension surfaces, including `canvas.html`, overlay control, preview feedback, and repo-backed code sync.
243
+ - **Canvas surface governance and skill-pack coverage** now include current `/canvas` inventories, handshake/blocker templates, and feedback-evaluation artifacts.
244
+ - **Release packaging/docs were refreshed for v0.0.17**, including current tarball examples, extension version sync, release evidence, and public/private cutover guidance.
245
+
246
+ ### v0.0.16
247
+
248
+ - **Release-gate hardening** with dedicated audit/compliance scripts (`audit-zombie-files`, `docs-drift-check`, `chrome-store-compliance-check`) and grouped release-gate tests.
249
+ - **Live matrix robustness upgrades** across `live-regression-matrix` and `provider-live-matrix` (strict `--release-gate`, extension/CDP recovery paths, deterministic strict-mode semantics).
250
+ - **CLI/runtime reliability fixes** including launch RPC timeout derivation from wait hints, bounded macro execute timeouts, and stale extension `/cdp` attach retry handling.
251
+ - **Version/distribution integrity checks** now enforce parity across `package.json`, `extension/manifest.json`, and `extension/package.json`.
252
+ - **Dependency and docs refresh** for v0.0.16 release readiness, onboarding parity, and public/private distribution operations.
253
+
254
+ ### v0.0.15
175
255
 
176
256
  - **Documentation and release readiness refresh** across README/CLI/extension guidance.
177
257
  - **Extension mode stabilization** with stronger native host flow and recovery paths.
@@ -206,9 +286,15 @@ See [CHANGELOG.md](CHANGELOG.md) for complete version history.
206
286
  ### DevTools Integration
207
287
  - **Console Capture** - Monitor console.log, errors, warnings
208
288
  - **Network Tracking** - Request/response metadata (method, url, status)
289
+ - **Debug Trace Snapshot** - Combined page/console/network/exception diagnostics with blocker metadata
209
290
  - **Screenshot** - Viewport PNG screenshot (file or base64)
210
291
  - **Performance** - Page load metrics
211
292
 
293
+ ### Session & Macro Utilities
294
+ - **Cookie Import** - Validate and import cookies into active sessions
295
+ - **Cookie List** - First-class cookie inspection with optional URL filters
296
+ - **Macro Resolve/Execute** - Expand macro expressions into provider actions with optional execution
297
+
212
298
  ### Export & Clone
213
299
  - **DOM Capture** - Extract sanitized HTML with inline styles
214
300
  - **React Emitter** - Generate React component code from pages
@@ -218,8 +304,9 @@ See [CHANGELOG.md](CHANGELOG.md) for complete version history.
218
304
 
219
305
  ## Tool Reference
220
306
 
221
- OpenDevBrowser provides **41 tools** organized by category:
307
+ OpenDevBrowser provides **49 tools** organized by category:
222
308
  Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/CLI.md)).
309
+ Complete source-accurate inventory (tools + CLI + `/ops` + `/canvas` + `/cdp`): [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
223
310
 
224
311
  ### Session Management
225
312
  | Tool | Description |
@@ -228,6 +315,8 @@ Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/C
228
315
  | `opendevbrowser_connect` | Connect to existing Chrome CDP endpoint (or relay `/ops`; legacy `/cdp` via `--extension-legacy`) |
229
316
  | `opendevbrowser_disconnect` | Disconnect browser session |
230
317
  | `opendevbrowser_status` | Get session status and connection info (daemon status in hub mode) |
318
+ | `opendevbrowser_cookie_import` | Import validated cookies into the current session |
319
+ | `opendevbrowser_cookie_list` | List session cookies with optional URL filters |
231
320
 
232
321
  ### Tab/Target Management
233
322
  | Tool | Description |
@@ -277,14 +366,25 @@ Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/C
277
366
  |------|-------------|
278
367
  | `opendevbrowser_console_poll` | Poll console logs since sequence |
279
368
  | `opendevbrowser_network_poll` | Poll network requests since sequence |
369
+ | `opendevbrowser_debug_trace_snapshot` | Capture a unified page + console + network + exception diagnostic bundle |
280
370
  | `opendevbrowser_screenshot` | Capture page screenshot |
281
371
  | `opendevbrowser_perf` | Get page performance metrics |
282
372
  | `opendevbrowser_prompting_guide` | Get best-practice prompting guidance |
283
373
 
374
+ ### Macro Workflows
375
+ | Tool | Description |
376
+ |------|-------------|
377
+ | `opendevbrowser_macro_resolve` | Resolve macro expressions into provider action/provenance (optionally execute) |
378
+
284
379
  ### Annotation
285
380
  | Tool | Description |
286
381
  |------|-------------|
287
- | `opendevbrowser_annotate` | Capture interactive annotations via extension relay |
382
+ | `opendevbrowser_annotate` | Capture interactive annotations via direct (CDP) or relay transport |
383
+
384
+ ### Design Canvas
385
+ | Tool | Description |
386
+ |------|-------------|
387
+ | `opendevbrowser_canvas` | Execute typed design-canvas session, attach, code-sync, preview, feedback, and overlay commands |
288
388
 
289
389
  ### Export & Cloning
290
390
  | Tool | Description |
@@ -302,22 +402,32 @@ Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/C
302
402
 
303
403
  ## Bundled Skills
304
404
 
305
- OpenDevBrowser includes **5 task-specific skill packs**:
405
+ OpenDevBrowser includes **8 OpenDevBrowser-specific skill packs** plus shared `research` and `shopping` compatibility directories that are synced by the installer:
306
406
 
307
407
  | Skill | Purpose |
308
408
  |-------|---------|
309
409
  | `opendevbrowser-best-practices` | Core prompting patterns and workflow guidance |
310
410
  | `opendevbrowser-continuity-ledger` | Long-running task state management |
311
- | `login-automation` | Authentication flow patterns |
312
- | `form-testing` | Form validation and submission workflows |
313
- | `data-extraction` | Structured data scraping patterns |
411
+ | `opendevbrowser-login-automation` | Authentication flow patterns |
412
+ | `opendevbrowser-form-testing` | Form validation and submission workflows |
413
+ | `opendevbrowser-data-extraction` | Structured data scraping patterns |
414
+ | `opendevbrowser-research` | Deterministic multi-source research workflows |
415
+ | `opendevbrowser-shopping` | Deterministic multi-provider deal comparison workflows |
416
+ | `opendevbrowser-product-presentation-asset` | Product screenshot/copy asset collection for presentation pipelines |
417
+
418
+ Installer note:
419
+ - `--skills-global` and `--skills-local` copy every directory under `skills/`, including the shared `research/` and `shopping/` packs.
314
420
 
315
421
  Skills are discovered from (priority order):
316
422
  1. `.opencode/skill/` (project)
317
423
  2. `~/.config/opencode/skill/` (global)
318
- 3. `.claude/skills/` (compatibility)
319
- 4. `~/.claude/skills/` (compatibility)
320
- 5. Custom paths via `skillPaths` config
424
+ 3. `.codex/skills/` (project compatibility)
425
+ 4. `$CODEX_HOME/skills` (global compatibility; fallback `~/.codex/skills`)
426
+ 5. `.claude/skills/` (ClaudeCode project compatibility)
427
+ 6. `$CLAUDECODE_HOME/skills` or `$CLAUDE_HOME/skills` (ClaudeCode global compatibility; fallback `~/.claude/skills`)
428
+ 7. `.amp/skills/` (AmpCLI project compatibility)
429
+ 8. `$AMPCLI_HOME/skills` or `$AMP_CLI_HOME/skills` or `$AMP_HOME/skills` (AmpCLI global compatibility; fallback `~/.amp/skills`)
430
+ 9. Custom paths via `skillPaths` config
321
431
 
322
432
  Load a skill: `opendevbrowser_skill_load` with `name` and optional `topic` filter.
323
433
 
@@ -337,17 +447,21 @@ Extension relay relies on **flat CDP sessions (Chrome 125+)** and uses DebuggerS
337
447
 
338
448
  Relay ops endpoint: `ws://127.0.0.1:<relayPort>/ops`.
339
449
  The connect command also accepts base relay WS URLs (`ws://127.0.0.1:<relayPort>` or `ws://localhost:<relayPort>`) and normalizes them to `/ops`.
450
+ Relay canvas endpoint: `ws://127.0.0.1:<relayPort>/canvas` for design-canvas editor, session attach/lease flow, code-sync, preview, feedback, and overlay flows.
340
451
  Legacy relay `/cdp` remains available with explicit opt-in (`--extension-legacy`).
341
- When pairing is enabled, both `/ops` and `/cdp` require a relay token (`?token=<relayToken>`). Tools and the CLI auto-fetch relay config and tokens.
452
+ When pairing is enabled, `/ops`, `/canvas`, and `/cdp` require a relay token (`?token=<relayToken>`). Tools and the CLI auto-fetch relay config and tokens.
342
453
 
343
- ## Ops vs CDP
454
+ ## Relay Channels
344
455
 
345
456
  | Channel | What It Does | When to Use It |
346
457
  |---------|---------------|----------------|
347
458
  | **`/ops` (default)** | High-level automation protocol with session ownership, event streaming, and multi-client handling | Preferred extension relay path for modern workflows |
459
+ | **`/canvas`** | Typed design-canvas protocol for session handshakes/attach, live editor sync, TSX code sync, preview tabs, feedback streams, and overlay selection | Use with `opendevbrowser_canvas` or `opendevbrowser canvas` during design-canvas workflows |
348
460
  | **`/cdp` (legacy)** | Low-level CDP relay path with compatibility-focused behavior | Opt-in compatibility mode (`--extension-legacy`) |
349
461
  | **Direct CDP connect** | Attach to Chrome started with `--remote-debugging-port` | Existing debug/browser setups without extension relay |
350
462
 
463
+ For full `/ops` and `/canvas` command names, `/cdp` envelope details, and mode/flag matrices, see [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
464
+
351
465
  ---
352
466
 
353
467
  ## Breaking Changes (latest)
@@ -370,7 +484,7 @@ The runtime (plugin or CLI daemon) and extension can automatically pair:
370
484
  3. Extension fetches relay port from discovery, then fetches token from the relay server
371
485
  4. Connection established with color indicator (green = connected)
372
486
 
373
- **Auto-connect** and **Auto-pair** are enabled by default for a seamless setup. The extension badge shows status (ON/OFF).
487
+ **Auto-connect** and **Auto-pair** are enabled by default for a seamless setup. The extension badge shows a small status dot (green = connected, red = disconnected).
374
488
  If the relay is unavailable, the background worker retries `/config` + `/pair` with exponential backoff (using `chrome.alarms`).
375
489
 
376
490
  ### Default Settings (Extension)
@@ -455,6 +569,15 @@ Optional config file: `~/.config/opencode/opendevbrowser.jsonc`
455
569
  "allowUnsafeExport": false
456
570
  },
457
571
 
572
+ // Provider workflow cookie defaults (optional)
573
+ "providers": {
574
+ "cookiePolicy": "auto",
575
+ "cookieSource": {
576
+ "type": "file",
577
+ "value": "~/.config/opencode/opendevbrowser.provider-cookies.json"
578
+ }
579
+ },
580
+
458
581
  // Skills configuration
459
582
  "skills": {
460
583
  "nudge": {
@@ -495,9 +618,23 @@ All fields are optional. OpenDevBrowser works with sensible defaults.
495
618
 
496
619
  ## CLI Commands
497
620
 
498
- The CLI is agent-agnostic and supports the full automation surface (session, navigation, interaction, DOM, targets, pages, export, devtools, and annotate).
621
+ The CLI is agent-agnostic and supports the full automation surface (session, navigation, interaction, DOM, targets, pages, export, devtools, annotate, and canvas).
499
622
  All commands listed in the CLI reference are implemented and available in the current codebase.
500
623
  See [docs/CLI.md](docs/CLI.md) for the full command and flag matrix.
624
+ See [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the source-accurate inventory matrix (CLI commands, 49 tools, `/ops`, `/canvas`, and `/cdp` channel contracts).
625
+
626
+ ### CLI Category Matrix (core command groups)
627
+
628
+ | Category | Commands |
629
+ |---------|----------|
630
+ | Install/runtime | `install`, `update`, `uninstall`, `help`, `version`, `serve`, `daemon`, `native`, `run` |
631
+ | Session/connection | `launch`, `connect`, `disconnect`, `status`, `cookie-import`, `cookie-list` |
632
+ | Navigation | `goto`, `wait`, `snapshot` |
633
+ | Interaction | `click`, `hover`, `press`, `check`, `uncheck`, `type`, `select`, `scroll`, `scroll-into-view` |
634
+ | Targets/pages | `targets-list`, `target-use`, `target-new`, `target-close`, `page`, `pages`, `page-close` |
635
+ | DOM | `dom-html`, `dom-text`, `dom-attr`, `dom-value`, `dom-visible`, `dom-enabled`, `dom-checked` |
636
+ | Design canvas | `canvas` |
637
+ | Export/diagnostics/macro/annotation/power | `clone-page`, `clone-component`, `perf`, `screenshot`, `console-poll`, `network-poll`, `debug-trace-snapshot`, `macro-resolve`, `annotate`, `rpc` |
501
638
 
502
639
  ### Install/Management
503
640
 
@@ -508,6 +645,7 @@ See [docs/CLI.md](docs/CLI.md) for the full command and flag matrix.
508
645
  | `npx opendevbrowser --local` | Install to project config |
509
646
  | `npx opendevbrowser --with-config` | Also create opendevbrowser.jsonc |
510
647
  | `npx opendevbrowser --full` | Full install (config + extension assets) |
648
+ | `npm install -g opendevbrowser` | Install persistent global CLI |
511
649
  | `npx opendevbrowser --update` | Clear cache, trigger reinstall |
512
650
  | `npx opendevbrowser --uninstall` | Remove from config |
513
651
  | `npx opendevbrowser --version` | Show version |
@@ -530,6 +668,13 @@ Start the daemon with `npx opendevbrowser serve`, then use:
530
668
  | `npx opendevbrowser select` | Select dropdown option by ref |
531
669
  | `npx opendevbrowser scroll` | Scroll page or element |
532
670
  | `npx opendevbrowser run` | Run a JSON script |
671
+ | `npx opendevbrowser canvas --command canvas.session.open --params '{...}'` | Start or continue a design-canvas workflow through the daemon |
672
+ | `npx opendevbrowser macro-resolve --expression '@media.search("youtube transcript parity", "youtube", 5)' --execute --timeout-ms 120000` | Execute macro plans with extended timeout for slow runs |
673
+
674
+ Workflow cookie controls (`research run`, `shopping run`, `product-video run`):
675
+ - Defaults come from `providers.cookiePolicy` (`off|auto|required`) and `providers.cookieSource` (`file|env|inline`).
676
+ - Per-run overrides: `--use-cookies`, `--cookie-policy-override` (alias `--cookie-policy`).
677
+ - `auto` is non-blocking when cookies are unavailable; `required` fails fast with `reasonCode=auth_required`.
533
678
 
534
679
  ---
535
680
 
@@ -541,7 +686,7 @@ OpenDevBrowser is **secure by default** with defense-in-depth protections:
541
686
  |------------|---------|
542
687
  | **CDP Localhost-Only** | Remote endpoints blocked; hostname normalized to prevent bypass |
543
688
  | **Timing-Safe Auth** | `crypto.timingSafeEqual()` for token comparison |
544
- | **Origin Validation** | `/extension` requires `chrome-extension://` origin; `/ops`, `/cdp`, `/annotation`, and `/config`/`/status`/`/pair` allow loopback no-Origin requests |
689
+ | **Origin Validation** | `/extension` requires `chrome-extension://` origin; `/ops`, `/canvas`, `/cdp`, `/annotation`, and `/config`/`/status`/`/pair` allow loopback no-Origin requests |
545
690
  | **PNA Preflights** | HTTP preflights include `Access-Control-Allow-Private-Network: true` when requested |
546
691
  | **Rate Limiting** | 5 handshake attempts/minute per IP, plus HTTP rate limiting for `/config`, `/status`, `/pair` |
547
692
  | **Data Redaction** | Tokens, API keys, sensitive paths auto-redacted |
@@ -564,28 +709,86 @@ npx opendevbrowser --update
564
709
 
565
710
  Architecture overview: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
566
711
  Release checklist: [docs/DISTRIBUTION_PLAN.md](docs/DISTRIBUTION_PLAN.md)
712
+ Documentation index: [docs/README.md](docs/README.md)
713
+ Frontend docs: [docs/FRONTEND.md](docs/FRONTEND.md)
714
+ Dependency inventory: [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md)
567
715
 
568
716
  ---
569
717
 
570
718
  ## Architecture
571
719
 
572
720
  ```
573
- src/
574
- ├── browser/ # BrowserManager, TargetManager, CDP lifecycle
575
- ├── cli/ # CLI commands and installers
576
- ├── core/ # Bootstrap, runtime wiring
577
- ├── devtools/ # Console/network trackers with redaction
578
- ├── export/ # DOM capture, React emitter, CSS extraction
579
- ├── relay/ # Extension relay server, protocol types
580
- ├── skills/ # SkillLoader for skill pack discovery
581
- ├── snapshot/ # AX-tree snapshots, ref management
582
- ├── tools/ # 41 opendevbrowser_* tool definitions
583
- └── utils/ # Shared utilities
721
+ ┌─────────────────────────────────────────────────────────────────┐
722
+ │ Distribution Layer │
723
+ ├──────────────────┬──────────────────┬──────────────────┬──────────────────────────┤
724
+ │ OpenCode Plugin │ CLI │ Hub Daemon │ Chrome Extension │
725
+ │ (src/index.ts) │ (src/cli/index) │ (opendevbrowser │ (extension/src/) │
726
+ │ │ │ serve) │ │
727
+ └────────┬─────────┴────────┬─────────┴─────────┬────────┴──────────────┬────────────┘
728
+ │ │ │ │
729
+ ▼ ▼ ▼ ▼
730
+ ┌─────────────────────────────────────────────────────────────────┐
731
+ │ Core Runtime (src/core/) │
732
+ │ bootstrap.ts → wires managers, injects ToolDeps │
733
+ └────────┬────────────────────────────────────────────────────────┘
734
+
735
+ ┌────┴────┬─────────────┬──────────────┬──────────────┬──────────────┐
736
+ ▼ ▼ ▼ ▼ ▼ ▼
737
+ ┌────────┐ ┌────────┐ ┌──────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐
738
+ │Browser │ │Script │ │Snapshot │ │ Annotation │ │ Relay │ │ Skills │
739
+ │Manager │ │Runner │ │Pipeline │ │ Manager │ │ Server │ │ Loader │
740
+ └───┬────┘ └────────┘ └──────────┘ └────────────┘ └─────┬──────┘ └────────────┘
741
+ │ │
742
+ ▼ ▼
743
+ ┌────────┐ ┌────────────┐
744
+ │Target │ │ Extension │
745
+ │Manager │ │ (WS relay) │
746
+ └────────┘ └────────────┘
747
+ ```
748
+
749
+ ### Data Flow
750
+
751
+ ```
752
+ Tool Call → Zod Validation → Manager/Runner → CDP/Playwright → Response
753
+
754
+ Snapshot (AX-tree → refs)
755
+
756
+ Action (ref → backendNodeId → DOM)
757
+ ```
758
+
759
+ ### System Workflow (Happy Path)
760
+
761
+ 1. `launch` (extension or managed) -> `sessionId`
762
+ 2. `snapshot` -> refs
763
+ 3. Action commands (`click`, `type`, `press`, `hover`, `check`, etc.) -> repeat snapshot
764
+ 4. `disconnect` on completion
765
+
766
+ ### Repository Layout
767
+
768
+ ```
769
+ .
770
+ ├── src/ # Plugin implementation
771
+ │ ├── browser/ # BrowserManager, TargetManager, CDP lifecycle
772
+ │ ├── cache/ # Chrome executable resolution
773
+ │ ├── cli/ # CLI commands, daemon, installers
774
+ │ ├── core/ # Bootstrap, runtime wiring, ToolDeps
775
+ │ ├── canvas/ # Design-canvas document store, repo IO, export helpers
776
+ │ ├── devtools/ # Console/network trackers with redaction
777
+ │ ├── export/ # DOM capture, React emitter, CSS extraction
778
+ │ ├── relay/ # Extension relay server, protocol types
779
+ │ ├── skills/ # SkillLoader for skill pack discovery
780
+ │ ├── snapshot/ # AX-tree snapshots, ref management
781
+ │ ├── tools/ # 49 opendevbrowser_* tool definitions
782
+ │ ├── annotate/ # Annotation transports + output shaping
783
+ │ └── utils/ # Shared utilities
784
+ ├── extension/ # Chrome extension (relay client)
785
+ ├── scripts/ # Operational scripts (build/sync/smoke)
786
+ ├── skills/ # Bundled skill directories (10 total; 8 canonical OpenDevBrowser packs + 2 shared compatibility packs)
787
+ ├── tests/ # Vitest tests (97% coverage required)
788
+ └── docs/ # Architecture, CLI, extension, distribution plans
584
789
  ```
585
790
 
586
- Extension relay uses flat CDP sessions (Chrome 125+) with DebuggerSession `sessionId` routing for multi-tab support.
587
- When hub mode is enabled, the hub daemon is the sole relay owner and enforces a FIFO lease queue for multi-client safety.
588
- See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for detailed component diagrams.
791
+ Extension relay uses flat CDP sessions (Chrome 125+) with DebuggerSession `sessionId` routing for multi-tab support. When hub mode is enabled, the hub daemon is the sole relay owner and enforces a FIFO lease queue for multi-client safety. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full architecture reference.
589
792
 
590
793
  ---
591
794
 
@@ -601,19 +804,35 @@ npm run version:check # Verify package/extension version alignment
601
804
  npm run extension:pack # Build extension zip for releases
602
805
  ```
603
806
 
604
- ### Packaging & Distribution (NPM + GitHub + Extension)
807
+ ### Packaging & Distribution (Public + Private)
605
808
 
606
809
  Uniform versioning is required (source of truth: `package.json`):
607
810
 
608
811
  1. Bump `package.json` version.
609
812
  2. Run: `npm run extension:sync`
610
813
  3. Run: `npm run version:check`
611
- 4. Run: `npm run build`
612
- 5. Run: `npm run extension:build`
613
- 6. Run: `npm run extension:pack` (outputs `./opendevbrowser-extension.zip`)
614
- 7. Publish to NPM and attach the zip to the GitHub release tag (`vX.Y.Z`).
615
-
616
- Release checklist: `docs/DISTRIBUTION_PLAN.md`
814
+ 4. Run: `npm run test:release-gate`
815
+ 5. Run: `npm run build`
816
+ 6. Run: `npm run extension:build`
817
+ 7. Run release audits:
818
+ - `node scripts/audit-zombie-files.mjs`
819
+ - `node scripts/docs-drift-check.mjs`
820
+ - `node scripts/chrome-store-compliance-check.mjs`
821
+ - `./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh`
822
+ 8. Run strict live release gates:
823
+ - `node scripts/provider-live-matrix.mjs --release-gate --out artifacts/release/vX.Y.Z/provider-live-matrix.json`
824
+ - `node scripts/live-regression-matrix.mjs --release-gate`
825
+ 9. Run first-time global install dry run checklist from `docs/FIRST_RUN_ONBOARDING.md`.
826
+ 10. Run: `npm run extension:pack` (outputs `./opendevbrowser-extension.zip`)
827
+ 11. Run: `npm pack`
828
+ 12. Tag `vX.Y.Z` and let `.github/workflows/release-public.yml` publish npm + GitHub release artifacts.
829
+ 13. Dispatch website content sync to private repo through `.github/workflows/dispatch-private-sync.yml`.
830
+
831
+ Runbooks:
832
+ - `docs/DISTRIBUTION_PLAN.md`
833
+ - `docs/RELEASE_RUNBOOK.md`
834
+ - `docs/EXTENSION_RELEASE_RUNBOOK.md`
835
+ - `docs/CUTOVER_CHECKLIST.md`
617
836
 
618
837
  ---
619
838
 
@@ -0,0 +1,22 @@
1
+ import type { BrowserManagerLike } from "../browser/manager-types";
2
+ import type { AnnotationResponse, AnnotationScreenshotMode } from "../relay/protocol";
3
+ export type DirectAnnotateAssets = {
4
+ scriptPath: string;
5
+ stylePath: string;
6
+ };
7
+ export type DirectAnnotateRequest = {
8
+ sessionId: string;
9
+ targetId?: string;
10
+ url?: string;
11
+ screenshotMode?: AnnotationScreenshotMode;
12
+ debug?: boolean;
13
+ context?: string;
14
+ timeoutMs?: number;
15
+ signal?: AbortSignal;
16
+ };
17
+ export declare function resolveDirectAnnotateAssets(resolvePath?: () => string | null): {
18
+ assets?: DirectAnnotateAssets;
19
+ error?: string;
20
+ };
21
+ export declare function runDirectAnnotate(manager: BrowserManagerLike, assets: DirectAnnotateAssets, request: DirectAnnotateRequest): Promise<AnnotationResponse>;
22
+ //# sourceMappingURL=direct-annotator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-annotator.d.ts","sourceRoot":"","sources":["../../src/annotate/direct-annotator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAGV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAeF,wBAAgB,2BAA2B,CACzC,WAAW,GAAE,MAAM,MAAM,GAAG,IAAuB,GAClD;IAAE,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAWnD;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA4E7B"}
@@ -0,0 +1,10 @@
1
+ import type { AnnotationPayload } from "../relay/protocol";
2
+ export declare const buildAnnotateResult: (payload: AnnotationPayload) => Promise<{
3
+ message: string;
4
+ details: AnnotationPayload;
5
+ screenshots: Array<{
6
+ id: string;
7
+ path: string;
8
+ }>;
9
+ }>;
10
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/annotate/output.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAwC,MAAM,mBAAmB,CAAC;AA+HjG,eAAO,MAAM,mBAAmB,GAC9B,SAAS,iBAAiB,KACzB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAS3G,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { OpenDevBrowserConfig } from "../config";
2
+ import type { RelayLike } from "../relay/relay-types";
3
+ import type { BrowserManagerLike } from "./manager-types";
4
+ import type { AnnotationResponse, AnnotationScreenshotMode, AnnotationTransport } from "../relay/protocol";
5
+ export type AnnotationRequestOptions = {
6
+ sessionId?: string;
7
+ targetId?: string;
8
+ tabId?: number;
9
+ transport?: AnnotationTransport;
10
+ stored?: boolean;
11
+ includeScreenshots?: boolean;
12
+ url?: string;
13
+ screenshotMode?: AnnotationScreenshotMode;
14
+ debug?: boolean;
15
+ context?: string;
16
+ timeoutMs?: number;
17
+ signal?: AbortSignal;
18
+ };
19
+ export declare class AnnotationManager {
20
+ private relay;
21
+ private config;
22
+ private manager?;
23
+ constructor(relay: RelayLike | undefined, config: OpenDevBrowserConfig, manager?: BrowserManagerLike);
24
+ setRelay(relay: RelayLike | undefined): void;
25
+ setBrowserManager(manager?: BrowserManagerLike): void;
26
+ requestAnnotation(options: AnnotationRequestOptions): Promise<AnnotationResponse>;
27
+ private requestStored;
28
+ private canFallbackToRelay;
29
+ private getRelayEndpoint;
30
+ private requestDirect;
31
+ private requestRelay;
32
+ }
33
+ //# sourceMappingURL=annotation-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation-manager.d.ts","sourceRoot":"","sources":["../../src/browser/annotation-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAEV,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EAIpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAqB;gBAEzB,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAMpG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAI5C,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAI/C,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YA+BzE,aAAa;YAmBb,kBAAkB;IAehC,OAAO,CAAC,gBAAgB;YAKV,aAAa;YAoDb,YAAY;CAoM3B"}