opendevbrowser 0.0.16 → 0.0.18

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 (616) hide show
  1. package/README.md +201 -79
  2. package/dist/annotate/agent-inbox-store.d.ts +58 -0
  3. package/dist/annotate/agent-inbox-store.d.ts.map +1 -0
  4. package/dist/annotate/agent-inbox.d.ts +25 -0
  5. package/dist/annotate/agent-inbox.d.ts.map +1 -0
  6. package/dist/annotate/direct-annotator.d.ts.map +1 -1
  7. package/dist/annotate/timeout-messages.d.ts +4 -0
  8. package/dist/annotate/timeout-messages.d.ts.map +1 -0
  9. package/dist/automation/coordinator.d.ts +55 -0
  10. package/dist/automation/coordinator.d.ts.map +1 -0
  11. package/dist/browser/annotation-manager.d.ts +7 -1
  12. package/dist/browser/annotation-manager.d.ts.map +1 -1
  13. package/dist/browser/browser-manager.d.ts +153 -48
  14. package/dist/browser/browser-manager.d.ts.map +1 -1
  15. package/dist/browser/canvas-client.d.ts +54 -0
  16. package/dist/browser/canvas-client.d.ts.map +1 -0
  17. package/dist/browser/canvas-code-sync-manager.d.ts +87 -0
  18. package/dist/browser/canvas-code-sync-manager.d.ts.map +1 -0
  19. package/dist/browser/canvas-manager.d.ts +122 -0
  20. package/dist/browser/canvas-manager.d.ts.map +1 -0
  21. package/dist/browser/canvas-runtime-preview-bridge.d.ts +20 -0
  22. package/dist/browser/canvas-runtime-preview-bridge.d.ts.map +1 -0
  23. package/dist/browser/canvas-session-sync-manager.d.ts +21 -0
  24. package/dist/browser/canvas-session-sync-manager.d.ts.map +1 -0
  25. package/dist/browser/global-challenge-coordinator.d.ts +27 -0
  26. package/dist/browser/global-challenge-coordinator.d.ts.map +1 -0
  27. package/dist/browser/manager-types.d.ts +179 -1
  28. package/dist/browser/manager-types.d.ts.map +1 -1
  29. package/dist/browser/ops-browser-manager.d.ts +114 -4
  30. package/dist/browser/ops-browser-manager.d.ts.map +1 -1
  31. package/dist/browser/ops-client.d.ts +17 -1
  32. package/dist/browser/ops-client.d.ts.map +1 -1
  33. package/dist/browser/playwright-runtime.d.ts +4 -0
  34. package/dist/browser/playwright-runtime.d.ts.map +1 -0
  35. package/dist/browser/review-surface.d.ts +9 -0
  36. package/dist/browser/review-surface.d.ts.map +1 -0
  37. package/dist/browser/screencast-recorder.d.ts +57 -0
  38. package/dist/browser/screencast-recorder.d.ts.map +1 -0
  39. package/dist/browser/session-inspector.d.ts +71 -0
  40. package/dist/browser/session-inspector.d.ts.map +1 -0
  41. package/dist/browser/session-store.d.ts +5 -1
  42. package/dist/browser/session-store.d.ts.map +1 -1
  43. package/dist/browser/system-chrome-cookies.d.ts +46 -0
  44. package/dist/browser/system-chrome-cookies.d.ts.map +1 -0
  45. package/dist/browser/target-manager.d.ts +1 -0
  46. package/dist/browser/target-manager.d.ts.map +1 -1
  47. package/dist/cache/chrome-locator.d.ts.map +1 -1
  48. package/dist/cache/chrome-user-data.d.ts +17 -0
  49. package/dist/cache/chrome-user-data.d.ts.map +1 -0
  50. package/dist/canvas/adapter-plugins/loader.d.ts +13 -0
  51. package/dist/canvas/adapter-plugins/loader.d.ts.map +1 -0
  52. package/dist/canvas/adapter-plugins/manifest.d.ts +146 -0
  53. package/dist/canvas/adapter-plugins/manifest.d.ts.map +1 -0
  54. package/dist/canvas/adapter-plugins/types.d.ts +83 -0
  55. package/dist/canvas/adapter-plugins/types.d.ts.map +1 -0
  56. package/dist/canvas/adapter-plugins/validator.d.ts +10 -0
  57. package/dist/canvas/adapter-plugins/validator.d.ts.map +1 -0
  58. package/dist/canvas/code-sync/apply-tsx.d.ts +25 -0
  59. package/dist/canvas/code-sync/apply-tsx.d.ts.map +1 -0
  60. package/dist/canvas/code-sync/graph.d.ts +5 -0
  61. package/dist/canvas/code-sync/graph.d.ts.map +1 -0
  62. package/dist/canvas/code-sync/hash.d.ts +3 -0
  63. package/dist/canvas/code-sync/hash.d.ts.map +1 -0
  64. package/dist/canvas/code-sync/import.d.ts +19 -0
  65. package/dist/canvas/code-sync/import.d.ts.map +1 -0
  66. package/dist/canvas/code-sync/manifest.d.ts +6 -0
  67. package/dist/canvas/code-sync/manifest.d.ts.map +1 -0
  68. package/dist/canvas/code-sync/tsx-adapter.d.ts +8 -0
  69. package/dist/canvas/code-sync/tsx-adapter.d.ts.map +1 -0
  70. package/dist/canvas/code-sync/types.d.ts +244 -0
  71. package/dist/canvas/code-sync/types.d.ts.map +1 -0
  72. package/dist/canvas/code-sync/write.d.ts +9 -0
  73. package/dist/canvas/code-sync/write.d.ts.map +1 -0
  74. package/dist/canvas/document-store.d.ts +91 -0
  75. package/dist/canvas/document-store.d.ts.map +1 -0
  76. package/dist/canvas/export.d.ts +12 -0
  77. package/dist/canvas/export.d.ts.map +1 -0
  78. package/dist/canvas/framework-adapters/custom-elements-v1.d.ts +3 -0
  79. package/dist/canvas/framework-adapters/custom-elements-v1.d.ts.map +1 -0
  80. package/dist/canvas/framework-adapters/html-static-v1.d.ts +3 -0
  81. package/dist/canvas/framework-adapters/html-static-v1.d.ts.map +1 -0
  82. package/dist/canvas/framework-adapters/markup.d.ts +9 -0
  83. package/dist/canvas/framework-adapters/markup.d.ts.map +1 -0
  84. package/dist/canvas/framework-adapters/react-tsx-v2.d.ts +3 -0
  85. package/dist/canvas/framework-adapters/react-tsx-v2.d.ts.map +1 -0
  86. package/dist/canvas/framework-adapters/registry.d.ts +12 -0
  87. package/dist/canvas/framework-adapters/registry.d.ts.map +1 -0
  88. package/dist/canvas/framework-adapters/svelte-sfc-v1.d.ts +3 -0
  89. package/dist/canvas/framework-adapters/svelte-sfc-v1.d.ts.map +1 -0
  90. package/dist/canvas/framework-adapters/types.d.ts +57 -0
  91. package/dist/canvas/framework-adapters/types.d.ts.map +1 -0
  92. package/dist/canvas/framework-adapters/vue-sfc-v1.d.ts +3 -0
  93. package/dist/canvas/framework-adapters/vue-sfc-v1.d.ts.map +1 -0
  94. package/dist/canvas/kits/catalog.d.ts +5 -0
  95. package/dist/canvas/kits/catalog.d.ts.map +1 -0
  96. package/dist/canvas/library-adapters/react/index.d.ts +3 -0
  97. package/dist/canvas/library-adapters/react/index.d.ts.map +1 -0
  98. package/dist/canvas/library-adapters/registry.d.ts +11 -0
  99. package/dist/canvas/library-adapters/registry.d.ts.map +1 -0
  100. package/dist/canvas/library-adapters/types.d.ts +43 -0
  101. package/dist/canvas/library-adapters/types.d.ts.map +1 -0
  102. package/dist/canvas/repo-store.d.ts +12 -0
  103. package/dist/canvas/repo-store.d.ts.map +1 -0
  104. package/dist/canvas/starters/catalog.d.ts +34 -0
  105. package/dist/canvas/starters/catalog.d.ts.map +1 -0
  106. package/dist/canvas/surface-palette.d.ts +15 -0
  107. package/dist/canvas/surface-palette.d.ts.map +1 -0
  108. package/dist/canvas/token-references.d.ts +22 -0
  109. package/dist/canvas/token-references.d.ts.map +1 -0
  110. package/dist/canvas/types.d.ts +594 -0
  111. package/dist/canvas/types.d.ts.map +1 -0
  112. package/dist/canvas-runtime-preview-bridge-HBEHXM4T.js +7 -0
  113. package/dist/canvas-runtime-preview-bridge-HBEHXM4T.js.map +1 -0
  114. package/dist/challenges/action-loop.d.ts +13 -0
  115. package/dist/challenges/action-loop.d.ts.map +1 -0
  116. package/dist/challenges/capability-matrix.d.ts +3 -0
  117. package/dist/challenges/capability-matrix.d.ts.map +1 -0
  118. package/dist/challenges/evidence-bundle.d.ts +48 -0
  119. package/dist/challenges/evidence-bundle.d.ts.map +1 -0
  120. package/dist/challenges/governed-adapter-gateway.d.ts +4 -0
  121. package/dist/challenges/governed-adapter-gateway.d.ts.map +1 -0
  122. package/dist/challenges/human-yield-gate.d.ts +20 -0
  123. package/dist/challenges/human-yield-gate.d.ts.map +1 -0
  124. package/dist/challenges/index.d.ts +15 -0
  125. package/dist/challenges/index.d.ts.map +1 -0
  126. package/dist/challenges/interpreter.d.ts +3 -0
  127. package/dist/challenges/interpreter.d.ts.map +1 -0
  128. package/dist/challenges/optional-computer-use-bridge.d.ts +9 -0
  129. package/dist/challenges/optional-computer-use-bridge.d.ts.map +1 -0
  130. package/dist/challenges/orchestrator.d.ts +32 -0
  131. package/dist/challenges/orchestrator.d.ts.map +1 -0
  132. package/dist/challenges/outcome-recorder.d.ts +8 -0
  133. package/dist/challenges/outcome-recorder.d.ts.map +1 -0
  134. package/dist/challenges/owned-environment-lane.d.ts +3 -0
  135. package/dist/challenges/owned-environment-lane.d.ts.map +1 -0
  136. package/dist/challenges/policy-gate.d.ts +9 -0
  137. package/dist/challenges/policy-gate.d.ts.map +1 -0
  138. package/dist/challenges/sanctioned-identity-lane.d.ts +3 -0
  139. package/dist/challenges/sanctioned-identity-lane.d.ts.map +1 -0
  140. package/dist/challenges/service-adapter-lane.d.ts +3 -0
  141. package/dist/challenges/service-adapter-lane.d.ts.map +1 -0
  142. package/dist/challenges/strategy-selector.d.ts +10 -0
  143. package/dist/challenges/strategy-selector.d.ts.map +1 -0
  144. package/dist/challenges/types.d.ts +277 -0
  145. package/dist/challenges/types.d.ts.map +1 -0
  146. package/dist/challenges/verification-gate.d.ts +15 -0
  147. package/dist/challenges/verification-gate.d.ts.map +1 -0
  148. package/dist/chunk-5FZQJRBQ.js +15256 -0
  149. package/dist/chunk-5FZQJRBQ.js.map +1 -0
  150. package/dist/{chunk-7W3SPXIB.js → chunk-FUSXMW3G.js} +4 -1
  151. package/dist/chunk-L57D35TB.js +33513 -0
  152. package/dist/chunk-L57D35TB.js.map +1 -0
  153. package/dist/chunk-TBUCZX4A.js +34 -0
  154. package/dist/chunk-TBUCZX4A.js.map +1 -0
  155. package/dist/chunk-Y2KL55OG.js +59 -0
  156. package/dist/chunk-Y2KL55OG.js.map +1 -0
  157. package/dist/chunk-YBQECXZX.js +409 -0
  158. package/dist/chunk-YBQECXZX.js.map +1 -0
  159. package/dist/cli/args.d.ts +4 -4
  160. package/dist/cli/args.d.ts.map +1 -1
  161. package/dist/cli/commands/annotate.d.ts +11 -0
  162. package/dist/cli/commands/annotate.d.ts.map +1 -1
  163. package/dist/cli/commands/artifacts.d.ts.map +1 -1
  164. package/dist/cli/commands/canvas.d.ts +45 -0
  165. package/dist/cli/commands/canvas.d.ts.map +1 -0
  166. package/dist/cli/commands/daemon.d.ts +7 -0
  167. package/dist/cli/commands/daemon.d.ts.map +1 -1
  168. package/dist/cli/commands/desktop/accessibility-snapshot.d.ts +3 -0
  169. package/dist/cli/commands/desktop/accessibility-snapshot.d.ts.map +1 -0
  170. package/dist/cli/commands/desktop/active-window.d.ts +3 -0
  171. package/dist/cli/commands/desktop/active-window.d.ts.map +1 -0
  172. package/dist/cli/commands/desktop/capture-desktop.d.ts +3 -0
  173. package/dist/cli/commands/desktop/capture-desktop.d.ts.map +1 -0
  174. package/dist/cli/commands/desktop/capture-window.d.ts +3 -0
  175. package/dist/cli/commands/desktop/capture-window.d.ts.map +1 -0
  176. package/dist/cli/commands/desktop/shared.d.ts +19 -0
  177. package/dist/cli/commands/desktop/shared.d.ts.map +1 -0
  178. package/dist/cli/commands/desktop/status.d.ts +3 -0
  179. package/dist/cli/commands/desktop/status.d.ts.map +1 -0
  180. package/dist/cli/commands/desktop/windows.d.ts +3 -0
  181. package/dist/cli/commands/desktop/windows.d.ts.map +1 -0
  182. package/dist/cli/commands/devtools/dialog.d.ts +19 -0
  183. package/dist/cli/commands/devtools/dialog.d.ts.map +1 -0
  184. package/dist/cli/commands/devtools/perf.d.ts.map +1 -1
  185. package/dist/cli/commands/devtools/screencast-start.d.ts +20 -0
  186. package/dist/cli/commands/devtools/screencast-start.d.ts.map +1 -0
  187. package/dist/cli/commands/devtools/screencast-stop.d.ts +17 -0
  188. package/dist/cli/commands/devtools/screencast-stop.d.ts.map +1 -0
  189. package/dist/cli/commands/devtools/screenshot.d.ts +3 -0
  190. package/dist/cli/commands/devtools/screenshot.d.ts.map +1 -1
  191. package/dist/cli/commands/dom/attr.d.ts.map +1 -1
  192. package/dist/cli/commands/dom/checked.d.ts.map +1 -1
  193. package/dist/cli/commands/dom/enabled.d.ts.map +1 -1
  194. package/dist/cli/commands/dom/html.d.ts.map +1 -1
  195. package/dist/cli/commands/dom/text.d.ts.map +1 -1
  196. package/dist/cli/commands/dom/value.d.ts.map +1 -1
  197. package/dist/cli/commands/dom/visible.d.ts.map +1 -1
  198. package/dist/cli/commands/export/clone-component.d.ts +9 -0
  199. package/dist/cli/commands/export/clone-component.d.ts.map +1 -1
  200. package/dist/cli/commands/export/clone-page.d.ts +8 -0
  201. package/dist/cli/commands/export/clone-page.d.ts.map +1 -1
  202. package/dist/cli/commands/interact/check.d.ts.map +1 -1
  203. package/dist/cli/commands/interact/click.d.ts.map +1 -1
  204. package/dist/cli/commands/interact/hover.d.ts.map +1 -1
  205. package/dist/cli/commands/interact/pointer-down.d.ts +7 -0
  206. package/dist/cli/commands/interact/pointer-down.d.ts.map +1 -0
  207. package/dist/cli/commands/interact/pointer-drag.d.ts +7 -0
  208. package/dist/cli/commands/interact/pointer-drag.d.ts.map +1 -0
  209. package/dist/cli/commands/interact/pointer-move.d.ts +7 -0
  210. package/dist/cli/commands/interact/pointer-move.d.ts.map +1 -0
  211. package/dist/cli/commands/interact/pointer-shared.d.ts +6 -0
  212. package/dist/cli/commands/interact/pointer-shared.d.ts.map +1 -0
  213. package/dist/cli/commands/interact/pointer-up.d.ts +7 -0
  214. package/dist/cli/commands/interact/pointer-up.d.ts.map +1 -0
  215. package/dist/cli/commands/interact/press.d.ts.map +1 -1
  216. package/dist/cli/commands/interact/scroll-into-view.d.ts.map +1 -1
  217. package/dist/cli/commands/interact/scroll.d.ts.map +1 -1
  218. package/dist/cli/commands/interact/select.d.ts.map +1 -1
  219. package/dist/cli/commands/interact/type.d.ts.map +1 -1
  220. package/dist/cli/commands/interact/uncheck.d.ts.map +1 -1
  221. package/dist/cli/commands/interact/upload.d.ts +18 -0
  222. package/dist/cli/commands/interact/upload.d.ts.map +1 -0
  223. package/dist/cli/commands/macro-resolve.d.ts +2 -0
  224. package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
  225. package/dist/cli/commands/native.d.ts +22 -8
  226. package/dist/cli/commands/native.d.ts.map +1 -1
  227. package/dist/cli/commands/nav/goto.d.ts.map +1 -1
  228. package/dist/cli/commands/nav/review.d.ts +7 -0
  229. package/dist/cli/commands/nav/review.d.ts.map +1 -0
  230. package/dist/cli/commands/nav/snapshot.d.ts.map +1 -1
  231. package/dist/cli/commands/nav/wait.d.ts.map +1 -1
  232. package/dist/cli/commands/pages/open.d.ts.map +1 -1
  233. package/dist/cli/commands/product-video.d.ts +2 -0
  234. package/dist/cli/commands/product-video.d.ts.map +1 -1
  235. package/dist/cli/commands/research.d.ts +3 -0
  236. package/dist/cli/commands/research.d.ts.map +1 -1
  237. package/dist/cli/commands/run.d.ts +14 -0
  238. package/dist/cli/commands/run.d.ts.map +1 -1
  239. package/dist/cli/commands/serve.d.ts +1 -21
  240. package/dist/cli/commands/serve.d.ts.map +1 -1
  241. package/dist/cli/commands/session/connect.d.ts.map +1 -1
  242. package/dist/cli/commands/session/disconnect.d.ts.map +1 -1
  243. package/dist/cli/commands/session/inspector.d.ts +21 -0
  244. package/dist/cli/commands/session/inspector.d.ts.map +1 -0
  245. package/dist/cli/commands/session/launch.d.ts.map +1 -1
  246. package/dist/cli/commands/shopping.d.ts +5 -0
  247. package/dist/cli/commands/shopping.d.ts.map +1 -1
  248. package/dist/cli/commands/status.d.ts +2 -9
  249. package/dist/cli/commands/status.d.ts.map +1 -1
  250. package/dist/cli/commands/targets/new.d.ts.map +1 -1
  251. package/dist/cli/daemon-autostart.d.ts +11 -0
  252. package/dist/cli/daemon-autostart.d.ts.map +1 -1
  253. package/dist/cli/daemon-client.d.ts +3 -0
  254. package/dist/cli/daemon-client.d.ts.map +1 -1
  255. package/dist/cli/daemon-commands.d.ts.map +1 -1
  256. package/dist/cli/daemon-state.d.ts +16 -0
  257. package/dist/cli/daemon-state.d.ts.map +1 -1
  258. package/dist/cli/daemon-status.d.ts +7 -2
  259. package/dist/cli/daemon-status.d.ts.map +1 -1
  260. package/dist/cli/daemon.d.ts +1 -0
  261. package/dist/cli/daemon.d.ts.map +1 -1
  262. package/dist/cli/help.d.ts +19 -3
  263. package/dist/cli/help.d.ts.map +1 -1
  264. package/dist/cli/index.js +2927 -932
  265. package/dist/cli/index.js.map +1 -1
  266. package/dist/cli/install-autostart-output.d.ts +6 -0
  267. package/dist/cli/install-autostart-output.d.ts.map +1 -0
  268. package/dist/cli/install-autostart-reconciliation.d.ts +23 -0
  269. package/dist/cli/install-autostart-reconciliation.d.ts.map +1 -0
  270. package/dist/cli/installers/skills.d.ts +42 -6
  271. package/dist/cli/installers/skills.d.ts.map +1 -1
  272. package/dist/cli/output.d.ts +3 -0
  273. package/dist/cli/output.d.ts.map +1 -1
  274. package/dist/cli/remote-canvas-manager.d.ts +8 -0
  275. package/dist/cli/remote-canvas-manager.d.ts.map +1 -0
  276. package/dist/cli/remote-desktop-runtime.d.ts +15 -0
  277. package/dist/cli/remote-desktop-runtime.d.ts.map +1 -0
  278. package/dist/cli/remote-manager.d.ts +27 -3
  279. package/dist/cli/remote-manager.d.ts.map +1 -1
  280. package/dist/cli/remote-relay.d.ts +2 -0
  281. package/dist/cli/remote-relay.d.ts.map +1 -1
  282. package/dist/cli/transport-timeouts.d.ts +8 -0
  283. package/dist/cli/transport-timeouts.d.ts.map +1 -0
  284. package/dist/cli/utils/http.d.ts +9 -0
  285. package/dist/cli/utils/http.d.ts.map +1 -1
  286. package/dist/cli/utils/parse.d.ts +3 -0
  287. package/dist/cli/utils/parse.d.ts.map +1 -1
  288. package/dist/cli/utils/skills.d.ts +1 -2
  289. package/dist/cli/utils/skills.d.ts.map +1 -1
  290. package/dist/cli/utils/workflow-message.d.ts +2 -0
  291. package/dist/cli/utils/workflow-message.d.ts.map +1 -0
  292. package/dist/config.d.ts +47 -0
  293. package/dist/config.d.ts.map +1 -1
  294. package/dist/core/bootstrap.d.ts.map +1 -1
  295. package/dist/core/index.d.ts +1 -0
  296. package/dist/core/index.d.ts.map +1 -1
  297. package/dist/core/logging.d.ts +3 -1
  298. package/dist/core/logging.d.ts.map +1 -1
  299. package/dist/core/runtime-assemblies.d.ts +22 -0
  300. package/dist/core/runtime-assemblies.d.ts.map +1 -0
  301. package/dist/core/types.d.ts +17 -0
  302. package/dist/core/types.d.ts.map +1 -1
  303. package/dist/desktop/audit.d.ts +37 -0
  304. package/dist/desktop/audit.d.ts.map +1 -0
  305. package/dist/desktop/errors.d.ts +7 -0
  306. package/dist/desktop/errors.d.ts.map +1 -0
  307. package/dist/desktop/index.d.ts +6 -0
  308. package/dist/desktop/index.d.ts.map +1 -0
  309. package/dist/desktop/runtime.d.ts +26 -0
  310. package/dist/desktop/runtime.d.ts.map +1 -0
  311. package/dist/desktop/types.d.ts +76 -0
  312. package/dist/desktop/types.d.ts.map +1 -0
  313. package/dist/extension-extractor.d.ts +6 -0
  314. package/dist/extension-extractor.d.ts.map +1 -1
  315. package/dist/fs-UMRKOBNN.js +7 -0
  316. package/dist/fs-UMRKOBNN.js.map +1 -0
  317. package/dist/index.d.ts.map +1 -1
  318. package/dist/index.js +1221 -460
  319. package/dist/index.js.map +1 -1
  320. package/dist/integrations/figma/assets.d.ts +13 -0
  321. package/dist/integrations/figma/assets.d.ts.map +1 -0
  322. package/dist/integrations/figma/auth.d.ts +3 -0
  323. package/dist/integrations/figma/auth.d.ts.map +1 -0
  324. package/dist/integrations/figma/client.d.ts +42 -0
  325. package/dist/integrations/figma/client.d.ts.map +1 -0
  326. package/dist/integrations/figma/mappers.d.ts +23 -0
  327. package/dist/integrations/figma/mappers.d.ts.map +1 -0
  328. package/dist/integrations/figma/normalize.d.ts +99 -0
  329. package/dist/integrations/figma/normalize.d.ts.map +1 -0
  330. package/dist/integrations/figma/url.d.ts +17 -0
  331. package/dist/integrations/figma/url.d.ts.map +1 -0
  332. package/dist/integrations/figma/variables.d.ts +21 -0
  333. package/dist/integrations/figma/variables.d.ts.map +1 -0
  334. package/dist/macros/execute-runtime.d.ts +19 -0
  335. package/dist/macros/execute-runtime.d.ts.map +1 -0
  336. package/dist/macros/execute.d.ts +3 -1
  337. package/dist/macros/execute.d.ts.map +1 -1
  338. package/dist/{macros-NUBRM44Y.js → macros-ND2M7LWU.js} +2 -2
  339. package/dist/opendevbrowser.d.ts.map +1 -1
  340. package/dist/opendevbrowser.js +1221 -460
  341. package/dist/opendevbrowser.js.map +1 -1
  342. package/dist/providers/blocker.d.ts.map +1 -1
  343. package/dist/providers/browser-fallback.d.ts +30 -0
  344. package/dist/providers/browser-fallback.d.ts.map +1 -0
  345. package/dist/providers/constraint.d.ts +45 -0
  346. package/dist/providers/constraint.d.ts.map +1 -0
  347. package/dist/providers/index.d.ts +11 -2
  348. package/dist/providers/index.d.ts.map +1 -1
  349. package/dist/providers/policy.d.ts.map +1 -1
  350. package/dist/providers/product-video-compiler.d.ts +92 -0
  351. package/dist/providers/product-video-compiler.d.ts.map +1 -0
  352. package/dist/providers/registry.d.ts +37 -1
  353. package/dist/providers/registry.d.ts.map +1 -1
  354. package/dist/providers/renderer.d.ts.map +1 -1
  355. package/dist/providers/research-compiler.d.ts +64 -0
  356. package/dist/providers/research-compiler.d.ts.map +1 -0
  357. package/dist/providers/research-executor.d.ts +27 -0
  358. package/dist/providers/research-executor.d.ts.map +1 -0
  359. package/dist/providers/runtime-bundle.d.ts +26 -0
  360. package/dist/providers/runtime-bundle.d.ts.map +1 -0
  361. package/dist/providers/runtime-factory.d.ts +6 -1
  362. package/dist/providers/runtime-factory.d.ts.map +1 -1
  363. package/dist/providers/runtime-policy.d.ts +24 -0
  364. package/dist/providers/runtime-policy.d.ts.map +1 -0
  365. package/dist/providers/shared/anti-bot-policy.d.ts +3 -2
  366. package/dist/providers/shared/anti-bot-policy.d.ts.map +1 -1
  367. package/dist/providers/shopping/index.d.ts +11 -1
  368. package/dist/providers/shopping/index.d.ts.map +1 -1
  369. package/dist/providers/shopping-compiler.d.ts +51 -0
  370. package/dist/providers/shopping-compiler.d.ts.map +1 -0
  371. package/dist/providers/shopping-executor.d.ts +18 -0
  372. package/dist/providers/shopping-executor.d.ts.map +1 -0
  373. package/dist/providers/shopping-postprocess.d.ts +46 -0
  374. package/dist/providers/shopping-postprocess.d.ts.map +1 -0
  375. package/dist/providers/shopping-workflow.d.ts +33 -0
  376. package/dist/providers/shopping-workflow.d.ts.map +1 -0
  377. package/dist/providers/social/platform.d.ts +2 -1
  378. package/dist/providers/social/platform.d.ts.map +1 -1
  379. package/dist/providers/social/search-quality.d.ts +16 -0
  380. package/dist/providers/social/search-quality.d.ts.map +1 -0
  381. package/dist/providers/social/youtube-resolver.d.ts +2 -1
  382. package/dist/providers/social/youtube-resolver.d.ts.map +1 -1
  383. package/dist/providers/social/youtube.d.ts.map +1 -1
  384. package/dist/providers/types.d.ts +116 -4
  385. package/dist/providers/types.d.ts.map +1 -1
  386. package/dist/providers/web/crawl-worker.d.ts.map +1 -1
  387. package/dist/providers/web/extract.d.ts +16 -0
  388. package/dist/providers/web/extract.d.ts.map +1 -1
  389. package/dist/providers/web/index.d.ts.map +1 -1
  390. package/dist/providers/workflow-contracts.d.ts +53 -0
  391. package/dist/providers/workflow-contracts.d.ts.map +1 -0
  392. package/dist/providers/workflows.d.ts +30 -6
  393. package/dist/providers/workflows.d.ts.map +1 -1
  394. package/dist/providers-G36AM3Z2.js +121 -0
  395. package/dist/providers-G36AM3Z2.js.map +1 -0
  396. package/dist/public-surface/generated-manifest.d.ts +1168 -0
  397. package/dist/public-surface/generated-manifest.d.ts.map +1 -0
  398. package/dist/public-surface/source.d.ts +437 -0
  399. package/dist/public-surface/source.d.ts.map +1 -0
  400. package/dist/relay/protocol.d.ts +108 -4
  401. package/dist/relay/protocol.d.ts.map +1 -1
  402. package/dist/relay/relay-endpoints.d.ts +21 -0
  403. package/dist/relay/relay-endpoints.d.ts.map +1 -1
  404. package/dist/relay/relay-server.d.ts +32 -1
  405. package/dist/relay/relay-server.d.ts.map +1 -1
  406. package/dist/relay/relay-types.d.ts +3 -0
  407. package/dist/relay/relay-types.d.ts.map +1 -1
  408. package/dist/skills/bundled-skill-directories.d.ts +8 -0
  409. package/dist/skills/bundled-skill-directories.d.ts.map +1 -0
  410. package/dist/skills/skill-loader.d.ts +9 -1
  411. package/dist/skills/skill-loader.d.ts.map +1 -1
  412. package/dist/skills/skill-loader.js +7 -0
  413. package/dist/skills/skill-loader.js.map +1 -0
  414. package/dist/skills/skill-nudge.d.ts.map +1 -1
  415. package/dist/skills/types.d.ts +31 -0
  416. package/dist/skills/types.d.ts.map +1 -1
  417. package/dist/snapshot/ops-snapshot.d.ts +1 -1
  418. package/dist/snapshot/ops-snapshot.d.ts.map +1 -1
  419. package/dist/snapshot/refs.d.ts +6 -1
  420. package/dist/snapshot/refs.d.ts.map +1 -1
  421. package/dist/snapshot/snapshotter.d.ts.map +1 -1
  422. package/dist/tools/annotate.d.ts.map +1 -1
  423. package/dist/tools/canvas.d.ts +4 -0
  424. package/dist/tools/canvas.d.ts.map +1 -0
  425. package/dist/tools/check.d.ts.map +1 -1
  426. package/dist/tools/click.d.ts.map +1 -1
  427. package/dist/tools/clone_component.d.ts.map +1 -1
  428. package/dist/tools/clone_page.d.ts.map +1 -1
  429. package/dist/tools/connect.d.ts.map +1 -1
  430. package/dist/tools/deps.d.ts +6 -0
  431. package/dist/tools/deps.d.ts.map +1 -1
  432. package/dist/tools/desktop-shared.d.ts +6 -0
  433. package/dist/tools/desktop-shared.d.ts.map +1 -0
  434. package/dist/tools/desktop_accessibility_snapshot.d.ts +4 -0
  435. package/dist/tools/desktop_accessibility_snapshot.d.ts.map +1 -0
  436. package/dist/tools/desktop_active_window.d.ts +4 -0
  437. package/dist/tools/desktop_active_window.d.ts.map +1 -0
  438. package/dist/tools/desktop_capture_desktop.d.ts +4 -0
  439. package/dist/tools/desktop_capture_desktop.d.ts.map +1 -0
  440. package/dist/tools/desktop_capture_window.d.ts +4 -0
  441. package/dist/tools/desktop_capture_window.d.ts.map +1 -0
  442. package/dist/tools/desktop_status.d.ts +4 -0
  443. package/dist/tools/desktop_status.d.ts.map +1 -0
  444. package/dist/tools/desktop_windows.d.ts +4 -0
  445. package/dist/tools/desktop_windows.d.ts.map +1 -0
  446. package/dist/tools/dialog.d.ts +4 -0
  447. package/dist/tools/dialog.d.ts.map +1 -0
  448. package/dist/tools/dom_get_html.d.ts.map +1 -1
  449. package/dist/tools/dom_get_text.d.ts.map +1 -1
  450. package/dist/tools/get_attr.d.ts.map +1 -1
  451. package/dist/tools/get_value.d.ts.map +1 -1
  452. package/dist/tools/goto.d.ts.map +1 -1
  453. package/dist/tools/hover.d.ts.map +1 -1
  454. package/dist/tools/index.d.ts +3 -0
  455. package/dist/tools/index.d.ts.map +1 -1
  456. package/dist/tools/is_checked.d.ts.map +1 -1
  457. package/dist/tools/is_enabled.d.ts.map +1 -1
  458. package/dist/tools/is_visible.d.ts.map +1 -1
  459. package/dist/tools/launch.d.ts.map +1 -1
  460. package/dist/tools/macro_resolve.d.ts.map +1 -1
  461. package/dist/tools/perf.d.ts.map +1 -1
  462. package/dist/tools/pointer_down.d.ts +4 -0
  463. package/dist/tools/pointer_down.d.ts.map +1 -0
  464. package/dist/tools/pointer_drag.d.ts +4 -0
  465. package/dist/tools/pointer_drag.d.ts.map +1 -0
  466. package/dist/tools/pointer_move.d.ts +4 -0
  467. package/dist/tools/pointer_move.d.ts.map +1 -0
  468. package/dist/tools/pointer_up.d.ts +4 -0
  469. package/dist/tools/pointer_up.d.ts.map +1 -0
  470. package/dist/tools/press.d.ts.map +1 -1
  471. package/dist/tools/product_video_run.d.ts.map +1 -1
  472. package/dist/tools/prompting_guide.d.ts.map +1 -1
  473. package/dist/tools/research_run.d.ts.map +1 -1
  474. package/dist/tools/response.d.ts +4 -1
  475. package/dist/tools/response.d.ts.map +1 -1
  476. package/dist/tools/review.d.ts +4 -0
  477. package/dist/tools/review.d.ts.map +1 -0
  478. package/dist/tools/screencast_start.d.ts +4 -0
  479. package/dist/tools/screencast_start.d.ts.map +1 -0
  480. package/dist/tools/screencast_stop.d.ts +4 -0
  481. package/dist/tools/screencast_stop.d.ts.map +1 -0
  482. package/dist/tools/screenshot.d.ts.map +1 -1
  483. package/dist/tools/scroll.d.ts.map +1 -1
  484. package/dist/tools/scroll_into_view.d.ts.map +1 -1
  485. package/dist/tools/select.d.ts.map +1 -1
  486. package/dist/tools/session_inspector.d.ts +4 -0
  487. package/dist/tools/session_inspector.d.ts.map +1 -0
  488. package/dist/tools/shopping_run.d.ts.map +1 -1
  489. package/dist/tools/skill_list.d.ts.map +1 -1
  490. package/dist/tools/skill_load.d.ts.map +1 -1
  491. package/dist/tools/snapshot.d.ts.map +1 -1
  492. package/dist/tools/type.d.ts.map +1 -1
  493. package/dist/tools/uncheck.d.ts.map +1 -1
  494. package/dist/tools/upload.d.ts +4 -0
  495. package/dist/tools/upload.d.ts.map +1 -0
  496. package/dist/tools/wait.d.ts.map +1 -1
  497. package/dist/tools/workflow-runtime.d.ts +4 -2
  498. package/dist/tools/workflow-runtime.d.ts.map +1 -1
  499. package/dist/utils/package-assets.d.ts +4 -0
  500. package/dist/utils/package-assets.d.ts.map +1 -0
  501. package/extension/canvas.html +1006 -0
  502. package/extension/dist/annotate-content.css +15 -6
  503. package/extension/dist/annotate-content.js +175 -35
  504. package/extension/dist/annotation-payload.js +199 -0
  505. package/extension/dist/background.js +544 -69
  506. package/extension/dist/canvas/canvas-runtime.js +1490 -0
  507. package/extension/dist/canvas/model.js +341 -0
  508. package/extension/dist/canvas/viewport-fit.js +67 -0
  509. package/extension/dist/canvas-page.js +3609 -0
  510. package/extension/dist/ops/dom-bridge.js +255 -3
  511. package/extension/dist/ops/ops-runtime.js +3324 -301
  512. package/extension/dist/ops/ops-session-store.js +97 -112
  513. package/extension/dist/ops/snapshot-builder.js +2 -2
  514. package/extension/dist/ops/snapshot-shared.js +2 -2
  515. package/extension/dist/ops/target-session-coordinator.js +159 -0
  516. package/extension/dist/popup.js +201 -42
  517. package/extension/dist/services/CDPRouter.js +1567 -63
  518. package/extension/dist/services/ConnectionManager.js +453 -78
  519. package/extension/dist/services/RelayClient.js +79 -30
  520. package/extension/dist/services/TabManager.js +118 -22
  521. package/extension/dist/services/TargetSessionMap.js +127 -3
  522. package/extension/dist/services/attach-errors.js +20 -0
  523. package/extension/dist/services/cdp-router-commands.js +135 -8
  524. package/extension/dist/services/url-restrictions.js +9 -13
  525. package/extension/dist/types.js +2 -0
  526. package/extension/manifest.json +2 -2
  527. package/extension/popup.html +59 -6
  528. package/package.json +19 -9
  529. package/skills/AGENTS.md +8 -4
  530. package/skills/opendevbrowser-best-practices/SKILL.md +183 -6
  531. package/skills/opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md +1 -0
  532. package/skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md +141 -0
  533. package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +129 -19
  534. package/skills/opendevbrowser-best-practices/artifacts/parity-gates.md +9 -2
  535. package/skills/opendevbrowser-best-practices/artifacts/provider-workflows.md +6 -0
  536. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +58 -0
  537. package/skills/opendevbrowser-best-practices/assets/templates/canvas-blocker-checklist.json +70 -0
  538. package/skills/opendevbrowser-best-practices/assets/templates/canvas-feedback-eval.json +73 -0
  539. package/skills/opendevbrowser-best-practices/assets/templates/canvas-generation-plan.v1.json +67 -0
  540. package/skills/opendevbrowser-best-practices/assets/templates/canvas-handshake-example.json +126 -0
  541. package/skills/opendevbrowser-best-practices/assets/templates/robustness-checklist.json +57 -0
  542. package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +674 -0
  543. package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +12 -3
  544. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +107 -12
  545. package/skills/opendevbrowser-best-practices/scripts/resolve-odb-cli.sh +100 -0
  546. package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +83 -1
  547. package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +365 -84
  548. package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +208 -0
  549. package/skills/opendevbrowser-continuity-ledger/SKILL.md +14 -1
  550. package/skills/opendevbrowser-continuity-ledger/scripts/validate-skill-assets.sh +61 -0
  551. package/skills/opendevbrowser-data-extraction/SKILL.md +6 -0
  552. package/skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh +112 -0
  553. package/skills/opendevbrowser-design-agent/SKILL.md +275 -0
  554. package/skills/opendevbrowser-design-agent/artifacts/app-shell-and-state-wiring.md +84 -0
  555. package/skills/opendevbrowser-design-agent/artifacts/async-search-state-ownership.md +58 -0
  556. package/skills/opendevbrowser-design-agent/artifacts/component-pattern-index.md +130 -0
  557. package/skills/opendevbrowser-design-agent/artifacts/design-contract-playbook.md +157 -0
  558. package/skills/opendevbrowser-design-agent/artifacts/design-release-gate.md +40 -0
  559. package/skills/opendevbrowser-design-agent/artifacts/design-workflows.md +153 -0
  560. package/skills/opendevbrowser-design-agent/artifacts/existing-surface-adaptation.md +56 -0
  561. package/skills/opendevbrowser-design-agent/artifacts/external-pattern-synthesis.md +103 -0
  562. package/skills/opendevbrowser-design-agent/artifacts/frontend-evaluation-rubric.md +61 -0
  563. package/skills/opendevbrowser-design-agent/artifacts/implementation-anti-patterns.md +163 -0
  564. package/skills/opendevbrowser-design-agent/artifacts/isolated-preview-validation.md +68 -0
  565. package/skills/opendevbrowser-design-agent/artifacts/loading-and-feedback-surfaces.md +56 -0
  566. package/skills/opendevbrowser-design-agent/artifacts/opendevbrowser-ui-example-map.md +44 -0
  567. package/skills/opendevbrowser-design-agent/artifacts/performance-audit-playbook.md +70 -0
  568. package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +81 -0
  569. package/skills/opendevbrowser-design-agent/artifacts/scroll-reveal-surface-planning.md +64 -0
  570. package/skills/opendevbrowser-design-agent/artifacts/state-ownership-matrix.md +36 -0
  571. package/skills/opendevbrowser-design-agent/artifacts/theming-and-token-ownership.md +43 -0
  572. package/skills/opendevbrowser-design-agent/assets/templates/canvas-generation-plan.design.v1.json +58 -0
  573. package/skills/opendevbrowser-design-agent/assets/templates/design-audit-report.v1.md +34 -0
  574. package/skills/opendevbrowser-design-agent/assets/templates/design-brief.v1.md +40 -0
  575. package/skills/opendevbrowser-design-agent/assets/templates/design-contract.v1.json +226 -0
  576. package/skills/opendevbrowser-design-agent/assets/templates/design-release-gate.v1.json +35 -0
  577. package/skills/opendevbrowser-design-agent/assets/templates/design-review-checklist.json +57 -0
  578. package/skills/opendevbrowser-design-agent/assets/templates/real-surface-design-matrix.json +32 -0
  579. package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +31 -0
  580. package/skills/opendevbrowser-design-agent/scripts/design-workflow.sh +171 -0
  581. package/skills/opendevbrowser-design-agent/scripts/extract-canvas-plan.sh +56 -0
  582. package/skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh +223 -0
  583. package/skills/opendevbrowser-form-testing/SKILL.md +19 -3
  584. package/skills/opendevbrowser-form-testing/artifacts/form-workflows.md +5 -4
  585. package/skills/opendevbrowser-form-testing/assets/templates/challenge-decision-tree.json +2 -0
  586. package/skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh +109 -0
  587. package/skills/opendevbrowser-login-automation/SKILL.md +21 -3
  588. package/skills/opendevbrowser-login-automation/artifacts/login-workflows.md +5 -4
  589. package/skills/opendevbrowser-login-automation/assets/templates/auth-signals.json +5 -0
  590. package/skills/opendevbrowser-login-automation/assets/templates/login-scenario-matrix.json +3 -2
  591. package/skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh +17 -1
  592. package/skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh +133 -0
  593. package/skills/opendevbrowser-product-presentation-asset/SKILL.md +23 -11
  594. package/skills/opendevbrowser-product-presentation-asset/artifacts/asset-pack-assembly.md +5 -3
  595. package/skills/opendevbrowser-product-presentation-asset/assets/templates/shot-list.md +2 -0
  596. package/skills/opendevbrowser-product-presentation-asset/assets/templates/video-assembly.md +3 -2
  597. package/skills/opendevbrowser-product-presentation-asset/scripts/capture-screenshots.sh +5 -1
  598. package/skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh +6 -2
  599. package/skills/opendevbrowser-product-presentation-asset/scripts/download-images.sh +5 -1
  600. package/skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh +20 -7
  601. package/skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh +39 -0
  602. package/skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh +5 -1
  603. package/skills/opendevbrowser-research/SKILL.md +14 -6
  604. package/skills/opendevbrowser-research/scripts/render-output.sh +5 -1
  605. package/skills/opendevbrowser-research/scripts/run-research.sh +5 -1
  606. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +45 -0
  607. package/skills/opendevbrowser-research/scripts/write-artifacts.sh +5 -1
  608. package/skills/opendevbrowser-shopping/SKILL.md +20 -1
  609. package/skills/opendevbrowser-shopping/scripts/normalize-offers.sh +6 -2
  610. package/skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh +5 -1
  611. package/skills/opendevbrowser-shopping/scripts/run-shopping.sh +5 -1
  612. package/skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh +54 -0
  613. package/dist/chunk-ST7CO5FA.js +0 -18668
  614. package/dist/chunk-ST7CO5FA.js.map +0 -1
  615. /package/dist/{chunk-7W3SPXIB.js.map → chunk-FUSXMW3G.js.map} +0 -0
  616. /package/dist/{macros-NUBRM44Y.js.map → macros-ND2M7LWU.js.map} +0 -0
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,7 +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. Frontend website source and deployment are maintained in the private repo `opendevbrowser-website-deploy`.
13
+ OpenDevBrowser is an agent-agnostic browser automation runtime for CLI workflows, [OpenCode](https://opencode.ai) tool calls, and Chrome extension relay sessions. It supports managed launches, direct CDP attach, and extension-backed Ops sessions.
14
+
15
+ The current public surface includes [72 CLI commands and 65 `opendevbrowser_*` tools](docs/SURFACE_REFERENCE.md); see [docs/CLI.md](docs/CLI.md) for the operational command guide.
16
+ Generated help is the canonical first-contact discovery surface: `npx opendevbrowser --help` and `npx opendevbrowser help` now lead with a `Find It Fast` block that uses the exact lookup terms `screencast / browser replay`, `desktop observation`, and `computer use / browser-scoped computer use`.
14
17
 
15
18
  <p align="center">
16
19
  <img src="assets/hero-image.png" alt="OpenDevBrowser hero image showing AI-assisted annotation and browser automation workflow" width="920" />
@@ -18,6 +21,30 @@ OpenDevBrowser is an agent-agnostic browser automation runtime. You can use it a
18
21
  <em>AI-assisted annotation and browser automation workflow</em>
19
22
  </p>
20
23
 
24
+ ## Table of Contents
25
+
26
+ - [Use It Your Way](#use-it-your-way)
27
+ - [Why OpenDevBrowser?](#why-opendevbrowser)
28
+ - [Installation](#installation)
29
+ - [Quick Start](#quick-start)
30
+ - [Challenge Handling Boundary](#challenge-handling-boundary)
31
+ - [Recent Features](#recent-features)
32
+ - [Features](#features)
33
+ - [Tool Reference](#tool-reference)
34
+ - [Bundled Skills](#bundled-skills)
35
+ - [Browser Modes](#browser-modes)
36
+ - [Relay Channels](#relay-channels)
37
+ - [Breaking Changes (latest)](#breaking-changes-latest)
38
+ - [Chrome Extension (Optional)](#chrome-extension-optional)
39
+ - [Configuration](#configuration)
40
+ - [CLI Commands](#cli-commands)
41
+ - [Security](#security)
42
+ - [Updating](#updating)
43
+ - [Architecture](#architecture)
44
+ - [Development](#development)
45
+ - [Privacy](#privacy)
46
+ - [License](#license)
47
+
21
48
  ## Use It Your Way
22
49
 
23
50
  | Interface | OpenCode Required | Best For |
@@ -27,29 +54,16 @@ OpenDevBrowser is an agent-agnostic browser automation runtime. You can use it a
27
54
  | **OpenCode Plugin Tools** | Yes | Native tool-calling inside OpenCode (`opendevbrowser_*`) |
28
55
  | **Frontend Website (private repo)** | No | Product website and generated docs routes |
29
56
 
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).
57
+ The public repo owns the automation runtime and canonical docs; see [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the full surface inventory.
36
58
 
37
59
  ## Why OpenDevBrowser?
38
60
 
39
- | Feature | Benefit |
40
- |---------|---------|
41
- | **Script-first UX** | Snapshot Refs Actions workflow optimized for AI agents |
42
- | **Accessibility-tree snapshots** | Token-efficient page representation (not raw DOM) |
43
- | **Stable refs** | Elements identified by `backendNodeId`, not fragile selectors |
44
- | **Security by default** | CDP localhost-only, timing-safe auth, HTML sanitization |
45
- | **3 browser modes** | Managed, CDP connect, or extension relay for logged-in sessions |
46
- | **Ops + CDP channels** | High-level multi-client `/ops` plus legacy `/cdp` compatibility |
47
- | **Relay Hub (FIFO leases)** | Single-owner CDP binding with a FIFO queue for multi-client safety |
48
- | **Flat-session routing** | Extension relay uses DebuggerSession sessionId routing (Chrome 125+) |
49
- | **Loop-closure diagnostics** | Console/network polling + unified debug trace snapshots for verification workflows |
50
- | **8 bundled skill packs** | Best practices plus login, forms, data extraction, research, shopping, and product asset workflows |
51
- | **48 tools** | Complete browser automation coverage |
52
- | **97% test coverage** | Production-ready with strict TypeScript |
61
+ - **Script-first automation model**: snapshot → refs → actions, built around accessibility-tree capture instead of brittle selector-first workflows.
62
+ - **Stable interaction primitives**: refs resolve through `backendNodeId`, and low-level pointer commands remain available when normal DOM actions are not enough.
63
+ - **Flexible session control**: run managed sessions, attach through direct CDP, or reuse logged-in tabs through the extension relay and `/ops`.
64
+ - **Design and review workflows**: use the design canvas, shared annotation inbox, and repo-backed code-sync flows without leaving the runtime surface.
65
+ - **Diagnostics and bounded challenge handling**: start with `session-inspector`, then drop to console or network polling and unified debug traces when you need channel-level detail.
66
+ - **Production guardrails**: local-only CDP by default, timing-safe auth, sanitized exports, strict TypeScript, and branch coverage held at 97% or higher.
53
67
 
54
68
  ---
55
69
 
@@ -77,7 +91,7 @@ opendevbrowser --version
77
91
 
78
92
  ### Pre-release Local Package (No npm publish required)
79
93
 
80
- Use this path to validate first-run onboarding before public distribution:
94
+ Use this flow to validate first-run local package onboarding before npm publish.
81
95
 
82
96
  ```bash
83
97
  cd <public-repo-root>
@@ -86,28 +100,16 @@ npm pack
86
100
  WORKDIR=$(mktemp -d /tmp/opendevbrowser-first-run-XXXXXX)
87
101
  cd "$WORKDIR"
88
102
  npm init -y
89
- npm install <public-repo-root>/opendevbrowser-0.0.16.tgz
103
+ npm install <public-repo-root>/opendevbrowser-0.0.18.tgz
90
104
  npx --no-install opendevbrowser --help
91
105
  npx --no-install opendevbrowser help
92
106
  ```
93
107
 
94
- Full validated flow: [`docs/FIRST_RUN_ONBOARDING.md`](docs/FIRST_RUN_ONBOARDING.md).
95
- Dependency/runtime inventory: [`docs/DEPENDENCIES.md`](docs/DEPENDENCIES.md).
108
+ See [docs/FIRST_RUN_ONBOARDING.md](docs/FIRST_RUN_ONBOARDING.md) for the full onboarding checklist, [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md) for runtime inventory, and [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the live CLI and tool surface.
96
109
 
97
- Use OpenCode only if you want plugin tools. CLI and extension workflows work without OpenCode.
110
+ Successful installs reconcile daemon auto-start on supported platforms so the relay is available on login. If the current CLI entrypoint lives under a transient temp-root path such as a first-run `/tmp` or `/private/tmp` workspace, OpenDevBrowser refuses to persist that path as auto-start. Rerun `opendevbrowser daemon install`, or `npx --no-install opendevbrowser daemon install` from a persistent local package install, from a stable install location if you want login auto-start; remove it later with `opendevbrowser daemon uninstall`.
98
111
 
99
- On first successful install, the CLI attempts to install daemon auto-start on supported platforms so the relay is available on login.
100
- You can remove it later with `npx opendevbrowser daemon uninstall`.
101
-
102
- During install, bundled skills are synced for **OpenCode, Codex, ClaudeCode, and AmpCLI**.
103
- Default `--skills-global` targets:
104
- - `~/.config/opencode/skill` (OpenCode)
105
- - `$CODEX_HOME/skills` (fallback `~/.codex/skills`)
106
- - `$CLAUDECODE_HOME/skills` or `$CLAUDE_HOME/skills` (fallback `~/.claude/skills`)
107
- - `$AMPCLI_HOME/skills` or `$AMP_CLI_HOME/skills` or `$AMP_HOME/skills` (fallback `~/.amp/skills`)
108
-
109
- Use `--skills-local` for project-local targets:
110
- - `./.opencode/skill`, `./.codex/skills`, `./.claude/skills`, `./.amp/skills`
112
+ Bundled skills sync to **OpenCode, Codex, ClaudeCode, and AmpCLI** targets during install. Use `--skills-global` for user-wide installs or `--skills-local` for project-local installs; see [docs/CLI.md](docs/CLI.md) for exact target paths.
111
113
 
112
114
  ### CLI + Extension (No OpenCode)
113
115
 
@@ -140,6 +142,8 @@ Website build/data pipeline lives in the private repo:
140
142
 
141
143
  ### Agent Installation (OpenCode)
142
144
 
145
+ Use OpenCode only when you want native `opendevbrowser_*` tool calls; the CLI and extension workflows work without it.
146
+
143
147
  Recommended (CLI, installs plugin + config + bundled skills + extension assets):
144
148
 
145
149
  ```bash
@@ -174,9 +178,9 @@ OpenDevBrowser uses the same automation model across plugin tools and CLI comman
174
178
  ```
175
179
  1. Launch a browser session
176
180
  2. Navigate to a URL
177
- 3. Take a snapshot to get element refs
181
+ 3. Take a review to get target-aware actionables and refs
178
182
  4. Interact using refs (click, type, select)
179
- 5. Re-snapshot after navigation
183
+ 5. Re-review or re-snapshot after navigation
180
184
  ```
181
185
 
182
186
  Shipping checklist for first-time users (local-package install, daemon, extension, first task, multi-tab auth/cookies):
@@ -190,9 +194,10 @@ Parallel execution is target-scoped (`ExecutionKey = (sessionId,targetId)`): sam
190
194
  |------|------|---------|
191
195
  | 1 | `opendevbrowser_launch` | Launch a session (extension relay first; managed fallback is explicit) |
192
196
  | 2 | `opendevbrowser_goto` | Navigate to URL |
193
- | 3 | `opendevbrowser_snapshot` | Get page structure with refs |
197
+ | 3 | `opendevbrowser_review` | Inspect the active target and capture fresh actionables before acting |
194
198
  | 4 | `opendevbrowser_click` / `opendevbrowser_type` | Interact with elements |
195
- | 5 | `opendevbrowser_disconnect` | Clean up session |
199
+ | 5 | `opendevbrowser_snapshot` | Re-capture refs after navigation or DOM changes |
200
+ | 6 | `opendevbrowser_disconnect` | Clean up session |
196
201
 
197
202
  ---
198
203
 
@@ -205,7 +210,7 @@ Run a local daemon for persistent sessions, then drive automation via CLI comman
205
210
  npx opendevbrowser serve
206
211
 
207
212
  # Install auto-start (recommended for resilience)
208
- npx opendevbrowser daemon install
213
+ opendevbrowser daemon install
209
214
 
210
215
  # Stop/kill the daemon before restarting
211
216
  npx opendevbrowser serve --stop
@@ -213,8 +218,8 @@ npx opendevbrowser serve --stop
213
218
  # Launch a session
214
219
  npx opendevbrowser launch --start-url https://example.com
215
220
 
216
- # Capture a snapshot
217
- npx opendevbrowser snapshot --session-id <session-id>
221
+ # Review the active target and capture fresh refs
222
+ npx opendevbrowser review --session-id <session-id>
218
223
 
219
224
  # Interact by ref
220
225
  npx opendevbrowser click --session-id <session-id> --ref r12
@@ -222,6 +227,8 @@ npx opendevbrowser click --session-id <session-id> --ref r12
222
227
 
223
228
  `opendevbrowser serve` includes stale-daemon preflight cleanup by default, so orphan daemon processes are terminated automatically
224
229
  before startup while preserving the active daemon on the requested port.
230
+ If you are running from a temporary onboarding workspace, rerun `opendevbrowser daemon install` from a stable install location
231
+ before expecting auto-start to survive login.
225
232
 
226
233
  For single-shot scripts:
227
234
 
@@ -231,14 +238,43 @@ npx opendevbrowser run --script ./script.json --output-format json
231
238
 
232
239
  Use `--output-format json|stream-json` for automation-friendly output.
233
240
 
241
+ ### Help-Led Discovery
242
+
243
+ Start every surface check from generated help when you need the current public lanes. The terminal help now uses these exact phrases so agents can search by intent instead of guessing command names:
244
+
245
+ - `screencast / browser replay`: `screencast-start`, `screencast-stop`
246
+ - `desktop observation`: `desktop-status`, `desktop-windows`, `desktop-active-window`, `desktop-capture-desktop`, `desktop-capture-window`, `desktop-accessibility-snapshot`
247
+ - `computer use / browser-scoped computer use`: `--challenge-automation-mode off|browser|browser_with_helper` on `research run`, `shopping run`, `product-video run`, and `macro-resolve --execute`; `review` and `session-inspector` remain the quickest proof surfaces, and the optional helper stays browser-scoped rather than becoming a desktop agent
248
+
249
+ ## Challenge Handling Boundary
250
+
251
+ - `SessionStore` remains the blocker FSM source of truth. Managed and `/ops`-backed responses keep `meta.blocker`, `meta.blockerState`, and `meta.blockerResolution` stable and may append additive `meta.challenge` plus `meta.challengeOrchestration`.
252
+ - Direct browser, `/ops`, and provider fallback paths now share one bounded challenge orchestration plane. It can try auth navigation, legitimate session or cookie reuse, non-secret field fill, and bounded interaction exploration before yielding to a human.
253
+ - Workflow and manager callers can set `challengeAutomationMode` to `off`, `browser`, or `browser_with_helper`. Effective precedence is `run > session > config`, and hard gates still apply after resolution.
254
+ - The optional helper bridge is browser-scoped, not a desktop agent. `browser` forces it to stand down, and `browser_with_helper` only evaluates it after the existing helper hard gates pass.
255
+ - Shipped builds also expose a public read-only desktop observation plane under separate `desktop.*` config. It is enabled by default, does not widen `/ops` or `ChallengeRuntimeHandle`, and the internal composed path still routes desktop observation back through browser-owned review when challenge automation needs it.
256
+ - Browser fallback returns explicit transport `disposition` values: `completed`, `challenge_preserved`, `deferred`, or `failed`. When orchestration runs during fallback, decision evidence is recorded under `details.challengeOrchestration`.
257
+ - `ProviderRegistry` is the only durable anti-bot pressure authority. Shared runtime and policy own fallback ordering and resume policy; provider modules only contribute extraction logic and `recoveryHints()`.
258
+ - In scope: preserved sessions, normal browser controls, bounded interaction experimentation, human yield packets for secret or human-authority boundaries, and owned-environment fixtures that use vendor test keys only.
259
+ - Out of scope: hidden bypasses, CAPTCHA-solving services, token harvesting, or autonomous unsandboxed solving of third-party anti-bot systems.
260
+
234
261
  ---
235
262
 
236
263
  ## Recent Features
237
264
 
238
- ### v0.0.16 (Latest)
265
+ ### v0.0.18 (Latest)
266
+
267
+ - **Canvas and workflow surfaces are materially stronger after `v0.0.17`**: adapter-plugin validation, starter or inventory lanes, framework-adapter code sync, review/session-inspector flows, and direct-run release probes all landed on `main`.
268
+ - **Generated public-surface manifests and onboarding metadata now drive help, docs parity, release evidence, and mirrored website inputs** instead of leaving those surfaces hand-maintained.
269
+ - **Challenge automation and browser-scoped computer-use controls are tighter** with explicit `challengeAutomationMode` precedence and a clearer browser-only helper boundary.
270
+ - **Browser replay screencasts and public desktop observation now ship on the active public surface** with manager-owned replay artifacts, dedicated desktop permission or audit coverage, and no desktop agent claim.
271
+ - **Public read-only desktop observation now ships as a sibling runtime** with dedicated permission and audit coverage while staying outside the public relay or `/ops` plane.
272
+ - **Release and distribution operations were refreshed for `v0.0.18`** across GitHub release assets, npm packaging, Chrome Web Store prep, regenerated live store assets, and private website sync inputs.
273
+
274
+ ### v0.0.16
239
275
 
240
276
  - **Release-gate hardening** with dedicated audit/compliance scripts (`audit-zombie-files`, `docs-drift-check`, `chrome-store-compliance-check`) and grouped release-gate tests.
241
- - **Live matrix robustness upgrades** across `live-regression-matrix` and `provider-live-matrix` (strict `--release-gate`, extension/CDP recovery paths, deterministic strict-mode semantics).
277
+ - **Live direct-run release gates** across provider-by-provider and scenario-by-scenario scripts with explicit artifacts instead of broad matrix evidence.
242
278
  - **CLI/runtime reliability fixes** including launch RPC timeout derivation from wait hints, bounded macro execute timeouts, and stale extension `/cdp` attach retry handling.
243
279
  - **Version/distribution integrity checks** now enforce parity across `package.json`, `extension/manifest.json`, and `extension/package.json`.
244
280
  - **Dependency and docs refresh** for v0.0.16 release readiness, onboarding parity, and public/private distribution operations.
@@ -272,6 +308,7 @@ See [CHANGELOG.md](CHANGELOG.md) for complete version history.
272
308
  - **Click** - Click elements by ref
273
309
  - **Type** - Enter text into inputs
274
310
  - **Select** - Choose dropdown options
311
+ - **Upload** - Send files to a file input or chooser by ref
275
312
  - **Scroll** - Scroll page or elements
276
313
  - **Wait** - Wait for selectors or navigation
277
314
 
@@ -279,12 +316,14 @@ See [CHANGELOG.md](CHANGELOG.md) for complete version history.
279
316
  - **Console Capture** - Monitor console.log, errors, warnings
280
317
  - **Network Tracking** - Request/response metadata (method, url, status)
281
318
  - **Debug Trace Snapshot** - Combined page/console/network/exception diagnostics with blocker metadata
282
- - **Screenshot** - Viewport PNG screenshot (file or base64)
319
+ - **Screenshot** - Visible, ref-targeted, or full-page PNG capture (file or base64)
320
+ - **Dialog** - Inspect or handle JavaScript dialogs per target
283
321
  - **Performance** - Page load metrics
284
322
 
285
323
  ### Session & Macro Utilities
286
324
  - **Cookie Import** - Validate and import cookies into active sessions
287
325
  - **Cookie List** - First-class cookie inspection with optional URL filters
326
+ - **Session Inspector** - Session-first diagnostics with relay health, trace proof, and a suggested next action
288
327
  - **Macro Resolve/Execute** - Expand macro expressions into provider actions with optional execution
289
328
 
290
329
  ### Export & Clone
@@ -296,9 +335,11 @@ See [CHANGELOG.md](CHANGELOG.md) for complete version history.
296
335
 
297
336
  ## Tool Reference
298
337
 
299
- OpenDevBrowser provides **48 tools** organized by category:
338
+ OpenDevBrowser provides **65 tools** organized by category:
300
339
  Most runtime actions also have CLI command equivalents (see [docs/CLI.md](docs/CLI.md)).
301
- Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
340
+ Complete source-accurate inventory (tools + CLI + `/ops` + `/canvas` + `/cdp`): [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
341
+ Terminal help now mirrors the generated public-surface manifest rooted at `src/public-surface/source.ts` and refreshed by `scripts/generate-public-surface-manifest.mjs`. `npx opendevbrowser --help` and `npx opendevbrowser help` both show every command with its usage and primary flags, every grouped CLI flag, and every bundled `opendevbrowser_*` tool with its CLI equivalent or tool-only scope.
342
+ See [docs/ASSET_INVENTORY.md](docs/ASSET_INVENTORY.md) for the brand and generated help/public-surface asset inventory used by packaging and website-sync flows.
302
343
 
303
344
  ### Session Management
304
345
  | Tool | Description |
@@ -309,6 +350,7 @@ Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFAC
309
350
  | `opendevbrowser_status` | Get session status and connection info (daemon status in hub mode) |
310
351
  | `opendevbrowser_cookie_import` | Import validated cookies into the current session |
311
352
  | `opendevbrowser_cookie_list` | List session cookies with optional URL filters |
353
+ | `opendevbrowser_session_inspector` | Capture a session-first diagnostic bundle with relay health, trace proof, and a suggested next action |
312
354
 
313
355
  ### Tab/Target Management
314
356
  | Tool | Description |
@@ -331,6 +373,7 @@ Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFAC
331
373
  | `opendevbrowser_goto` | Navigate to URL |
332
374
  | `opendevbrowser_wait` | Wait for load state or element |
333
375
  | `opendevbrowser_snapshot` | Capture page accessibility tree with refs |
376
+ | `opendevbrowser_review` | Capture target-aware actionables plus status context before acting |
334
377
  | `opendevbrowser_click` | Click element by ref |
335
378
  | `opendevbrowser_hover` | Hover element by ref |
336
379
  | `opendevbrowser_press` | Press a keyboard key (optionally focusing a ref) |
@@ -340,6 +383,11 @@ Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFAC
340
383
  | `opendevbrowser_select` | Select dropdown option by ref |
341
384
  | `opendevbrowser_scroll` | Scroll page or element |
342
385
  | `opendevbrowser_scroll_into_view` | Scroll element into view by ref |
386
+ | `opendevbrowser_upload` | Upload files to a file input or chooser by ref |
387
+ | `opendevbrowser_pointer_move` | Move the pointer to viewport coordinates |
388
+ | `opendevbrowser_pointer_down` | Press a mouse button at viewport coordinates |
389
+ | `opendevbrowser_pointer_up` | Release a mouse button at viewport coordinates |
390
+ | `opendevbrowser_pointer_drag` | Drag between viewport coordinates |
343
391
  | `opendevbrowser_run` | Execute multiple actions in sequence |
344
392
 
345
393
  ### DOM Inspection
@@ -360,9 +408,24 @@ Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFAC
360
408
  | `opendevbrowser_network_poll` | Poll network requests since sequence |
361
409
  | `opendevbrowser_debug_trace_snapshot` | Capture a unified page + console + network + exception diagnostic bundle |
362
410
  | `opendevbrowser_screenshot` | Capture page screenshot |
411
+ | `opendevbrowser_screencast_start` | Start a browser replay screencast capture |
412
+ | `opendevbrowser_screencast_stop` | Stop a browser replay screencast capture and return artifact metadata |
413
+ | `opendevbrowser_dialog` | Inspect or handle a JavaScript dialog |
363
414
  | `opendevbrowser_perf` | Get page performance metrics |
364
415
  | `opendevbrowser_prompting_guide` | Get best-practice prompting guidance |
365
416
 
417
+ ### Desktop Observation
418
+ | Tool | Description |
419
+ |------|-------------|
420
+ | `opendevbrowser_desktop_status` | Inspect public read-only desktop observation availability |
421
+ | `opendevbrowser_desktop_windows` | List windows exposed by the public read-only desktop observation plane |
422
+ | `opendevbrowser_desktop_active_window` | Inspect the active window through the public read-only desktop observation plane |
423
+ | `opendevbrowser_desktop_capture_desktop` | Capture the current desktop surface through the public read-only desktop observation plane |
424
+ | `opendevbrowser_desktop_capture_window` | Capture a specific window through the public read-only desktop observation plane |
425
+ | `opendevbrowser_desktop_accessibility_snapshot` | Capture desktop accessibility state through the public read-only desktop observation plane |
426
+
427
+ Desktop observation currently ships as a public read-only macOS surface. Availability, window inventory, and accessibility snapshots rely on the local `swift` command, while screenshot capture uses the built-in `screencapture` utility. If `desktop-status` reports `desktop_unsupported` on macOS, install Xcode or a Swift toolchain and retry.
428
+
366
429
  ### Macro Workflows
367
430
  | Tool | Description |
368
431
  |------|-------------|
@@ -371,7 +434,12 @@ Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFAC
371
434
  ### Annotation
372
435
  | Tool | Description |
373
436
  |------|-------------|
374
- | `opendevbrowser_annotate` | Capture interactive annotations via extension relay |
437
+ | `opendevbrowser_annotate` | Capture interactive annotations via direct (CDP) or relay transport |
438
+
439
+ ### Design Canvas
440
+ | Tool | Description |
441
+ |------|-------------|
442
+ | `opendevbrowser_canvas` | Execute typed design-canvas session, attach, code-sync, preview, feedback, and overlay commands |
375
443
 
376
444
  ### Export & Cloning
377
445
  | Tool | Description |
@@ -382,18 +450,19 @@ Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFAC
382
450
  ### Skills
383
451
  | Tool | Description |
384
452
  |------|-------------|
385
- | `opendevbrowser_skill_list` | List available skills |
386
- | `opendevbrowser_skill_load` | Load a skill by name (with optional topic filter) |
453
+ | `opendevbrowser_skill_list` | List available skills before choosing a local workflow lane |
454
+ | `opendevbrowser_skill_load` | Load a skill by name and topic, especially the bundled quick start |
387
455
 
388
456
  ---
389
457
 
390
458
  ## Bundled Skills
391
459
 
392
- OpenDevBrowser includes **8 task-specific skill packs**:
460
+ OpenDevBrowser includes **9 OpenDevBrowser-specific skill packs**. Install, update, and uninstall own the managed skill lifecycle across OpenCode, Codex, ClaudeCode, and AmpCLI targets:
393
461
 
394
462
  | Skill | Purpose |
395
463
  |-------|---------|
396
464
  | `opendevbrowser-best-practices` | Core prompting patterns and workflow guidance |
465
+ | `opendevbrowser-design-agent` | Contract-first, research-backed frontend and `/canvas` design execution |
397
466
  | `opendevbrowser-continuity-ledger` | Long-running task state management |
398
467
  | `opendevbrowser-login-automation` | Authentication flow patterns |
399
468
  | `opendevbrowser-form-testing` | Form validation and submission workflows |
@@ -402,6 +471,11 @@ OpenDevBrowser includes **8 task-specific skill packs**:
402
471
  | `opendevbrowser-shopping` | Deterministic multi-provider deal comparison workflows |
403
472
  | `opendevbrowser-product-presentation-asset` | Product screenshot/copy asset collection for presentation pipelines |
404
473
 
474
+ Installer note:
475
+ - `--skills-global` and `--skills-local` sync the 9 canonical `opendevbrowser-*` packs into managed global or project-local agent directories.
476
+ - Reinstall and update refresh drifted managed copies and leave matching packs unchanged.
477
+ - Uninstall removes managed canonical packs and only prunes legacy `research` or `shopping` leftovers when those directories are empty and clearly obsolete.
478
+
405
479
  Skills are discovered from (priority order):
406
480
  1. `.opencode/skill/` (project)
407
481
  2. `~/.config/opencode/skill/` (global)
@@ -412,8 +486,10 @@ Skills are discovered from (priority order):
412
486
  7. `.amp/skills/` (AmpCLI project compatibility)
413
487
  8. `$AMPCLI_HOME/skills` or `$AMP_CLI_HOME/skills` or `$AMP_HOME/skills` (AmpCLI global compatibility; fallback `~/.amp/skills`)
414
488
  9. Custom paths via `skillPaths` config
489
+ 10. Bundled package fallback: packaged `skills/` directory after `skillPaths` when no installed copy matches
415
490
 
416
491
  Load a skill: `opendevbrowser_skill_load` with `name` and optional `topic` filter.
492
+ `opendevbrowser_prompting_guide`, `opendevbrowser_skill_list`, and `opendevbrowser_skill_load` are local onboarding helpers, so they do not require a browser session, relay, or daemon bootstrap.
417
493
 
418
494
  ---
419
495
 
@@ -431,18 +507,20 @@ Extension relay relies on **flat CDP sessions (Chrome 125+)** and uses DebuggerS
431
507
 
432
508
  Relay ops endpoint: `ws://127.0.0.1:<relayPort>/ops`.
433
509
  The connect command also accepts base relay WS URLs (`ws://127.0.0.1:<relayPort>` or `ws://localhost:<relayPort>`) and normalizes them to `/ops`.
510
+ Relay canvas endpoint: `ws://127.0.0.1:<relayPort>/canvas` for design-canvas editor, session attach/lease flow, code-sync, preview, public feedback pull streams, and overlay flows.
434
511
  Legacy relay `/cdp` remains available with explicit opt-in (`--extension-legacy`).
435
- When pairing is enabled, both `/ops` and `/cdp` require a relay token (`?token=<relayToken>`). Tools and the CLI auto-fetch relay config and tokens.
512
+ When pairing is enabled, `/ops`, `/canvas`, and `/cdp` require a relay token (`?token=<relayToken>`). Tools and the CLI auto-fetch relay config and tokens.
436
513
 
437
- ## Ops vs CDP
514
+ ## Relay Channels
438
515
 
439
516
  | Channel | What It Does | When to Use It |
440
517
  |---------|---------------|----------------|
441
518
  | **`/ops` (default)** | High-level automation protocol with session ownership, event streaming, and multi-client handling | Preferred extension relay path for modern workflows |
519
+ | **`/canvas`** | Typed design-canvas protocol for session handshakes/attach, Figma document import, reusable inventory list/insert, built-in starter list/apply flows, framework-adapter-backed code sync, preview tabs, public feedback pull streams, and overlay selection | Use with `opendevbrowser_canvas` or `opendevbrowser canvas` during design-canvas workflows |
442
520
  | **`/cdp` (legacy)** | Low-level CDP relay path with compatibility-focused behavior | Opt-in compatibility mode (`--extension-legacy`) |
443
521
  | **Direct CDP connect** | Attach to Chrome started with `--remote-debugging-port` | Existing debug/browser setups without extension relay |
444
522
 
445
- For full `/ops` command names, `/cdp` envelope details, and mode/flag matrices, see [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
523
+ For full `/ops` and `/canvas` command names, `/cdp` envelope details, and mode/flag matrices, see [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
446
524
 
447
525
  ---
448
526
 
@@ -495,7 +573,7 @@ If the relay is unavailable, the background worker retries `/config` + `/pair` w
495
573
  - If `relayPort` is `0`, the relay is off.
496
574
  - `relayToken: false` disables relay/hub behavior entirely.
497
575
  - `relayToken: ""` (empty string) keeps relay enabled but disables pairing requirements.
498
- - Install auto-start with `npx opendevbrowser daemon install` so the relay is available on login.
576
+ - Install auto-start with `opendevbrowser daemon install` from a stable install location so the relay is available on login.
499
577
  - Clear extension local data and retry if the token/port seem stuck.
500
578
  - If another process owns the port, change `relayPort` or stop it; `opencode` listening is expected.
501
579
 
@@ -557,9 +635,25 @@ Optional config file: `~/.config/opencode/opendevbrowser.jsonc`
557
635
  "cookieSource": {
558
636
  "type": "file",
559
637
  "value": "~/.config/opencode/opendevbrowser.provider-cookies.json"
638
+ },
639
+ "challengeOrchestration": {
640
+ "mode": "browser_with_helper",
641
+ "optionalComputerUseBridge": {
642
+ "enabled": true
643
+ }
560
644
  }
561
645
  },
562
646
 
647
+ // Public read-only sibling desktop observation runtime (enabled by default; set "off" to opt out)
648
+ // On macOS, availability, window, and accessibility probes require the local swift command.
649
+ "desktop": {
650
+ "permissionLevel": "observe",
651
+ "commandTimeoutMs": 10000,
652
+ "auditArtifactsDir": ".opendevbrowser/desktop-runtime",
653
+ "accessibilityMaxDepth": 2,
654
+ "accessibilityMaxChildren": 25
655
+ },
656
+
563
657
  // Skills configuration
564
658
  "skills": {
565
659
  "nudge": {
@@ -600,10 +694,10 @@ All fields are optional. OpenDevBrowser works with sensible defaults.
600
694
 
601
695
  ## CLI Commands
602
696
 
603
- The CLI is agent-agnostic and supports the full automation surface (session, navigation, interaction, DOM, targets, pages, export, devtools, and annotate).
697
+ The CLI is agent-agnostic and supports the full automation surface (session, navigation, interaction, DOM, browser capture and replay, desktop observation, targets, pages, export, devtools, annotate, and canvas).
604
698
  All commands listed in the CLI reference are implemented and available in the current codebase.
605
699
  See [docs/CLI.md](docs/CLI.md) for the full command and flag matrix.
606
- See [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the source-accurate inventory matrix (CLI commands, 48 tools, `/ops` and `/cdp` channel contracts).
700
+ See [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the source-accurate inventory matrix (72 CLI commands, 65 tools, `/ops`, `/canvas`, and `/cdp` channel contracts).
607
701
 
608
702
  ### CLI Category Matrix (core command groups)
609
703
 
@@ -612,10 +706,13 @@ See [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the source-accura
612
706
  | Install/runtime | `install`, `update`, `uninstall`, `help`, `version`, `serve`, `daemon`, `native`, `run` |
613
707
  | Session/connection | `launch`, `connect`, `disconnect`, `status`, `cookie-import`, `cookie-list` |
614
708
  | Navigation | `goto`, `wait`, `snapshot` |
615
- | Interaction | `click`, `hover`, `press`, `check`, `uncheck`, `type`, `select`, `scroll`, `scroll-into-view` |
709
+ | Interaction | `click`, `hover`, `press`, `check`, `uncheck`, `type`, `select`, `scroll`, `scroll-into-view`, `upload`, `pointer-move`, `pointer-down`, `pointer-up`, `pointer-drag` |
616
710
  | Targets/pages | `targets-list`, `target-use`, `target-new`, `target-close`, `page`, `pages`, `page-close` |
617
711
  | DOM | `dom-html`, `dom-text`, `dom-attr`, `dom-value`, `dom-visible`, `dom-enabled`, `dom-checked` |
618
- | Export/diagnostics/macro/annotation/power | `clone-page`, `clone-component`, `perf`, `screenshot`, `console-poll`, `network-poll`, `debug-trace-snapshot`, `macro-resolve`, `annotate`, `rpc` |
712
+ | Browser capture | `screenshot`, `screencast-start`, `screencast-stop` |
713
+ | Desktop observation | `desktop-status`, `desktop-windows`, `desktop-active-window`, `desktop-capture-desktop`, `desktop-capture-window`, `desktop-accessibility-snapshot` |
714
+ | Design canvas | `canvas` |
715
+ | Export/diagnostics/macro/annotation/power | `clone-page`, `clone-component`, `perf`, `dialog`, `console-poll`, `network-poll`, `debug-trace-snapshot`, `session-inspector`, `macro-resolve`, `annotate`, `rpc` |
619
716
 
620
717
  ### Install/Management
621
718
 
@@ -641,6 +738,7 @@ Start the daemon with `npx opendevbrowser serve`, then use:
641
738
  | `npx opendevbrowser connect` | Connect via relay or direct CDP endpoint |
642
739
  | `npx opendevbrowser disconnect` | Disconnect session |
643
740
  | `npx opendevbrowser status` | Show session status |
741
+ | `npx opendevbrowser session-inspector --session-id <id>` | Capture a session-first diagnostic bundle with relay health, trace proof, and a suggested next action |
644
742
  | `npx opendevbrowser goto` | Navigate to URL |
645
743
  | `npx opendevbrowser wait` | Wait for load or element |
646
744
  | `npx opendevbrowser snapshot` | Capture snapshot with refs |
@@ -649,6 +747,7 @@ Start the daemon with `npx opendevbrowser serve`, then use:
649
747
  | `npx opendevbrowser select` | Select dropdown option by ref |
650
748
  | `npx opendevbrowser scroll` | Scroll page or element |
651
749
  | `npx opendevbrowser run` | Run a JSON script |
750
+ | `npx opendevbrowser canvas --command canvas.session.open --params '{...}'` | Start or continue a design-canvas workflow through the daemon |
652
751
  | `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 |
653
752
 
654
753
  Workflow cookie controls (`research run`, `shopping run`, `product-video run`):
@@ -656,6 +755,14 @@ Workflow cookie controls (`research run`, `shopping run`, `product-video run`):
656
755
  - Per-run overrides: `--use-cookies`, `--cookie-policy-override` (alias `--cookie-policy`).
657
756
  - `auto` is non-blocking when cookies are unavailable; `required` fails fast with `reasonCode=auth_required`.
658
757
 
758
+ Workflow challenge controls (`research run`, `shopping run`, `product-video run`):
759
+ - Per-run override: `--challenge-automation-mode off|browser|browser_with_helper`, which maps to `challengeAutomationMode`.
760
+ - Effective precedence is `run > session > config`.
761
+ - `off` keeps detection and reporting active but stands down challenge actions.
762
+ - `browser` allows browser-native lanes only and keeps the helper bridge disabled.
763
+ - `browser_with_helper` keeps browser-native lanes first and evaluates the browser-scoped helper bridge second when hard gates pass.
764
+ - The helper bridge remains browser-scoped and is not a desktop agent.
765
+
659
766
  ---
660
767
 
661
768
  ## Security
@@ -666,7 +773,7 @@ OpenDevBrowser is **secure by default** with defense-in-depth protections:
666
773
  |------------|---------|
667
774
  | **CDP Localhost-Only** | Remote endpoints blocked; hostname normalized to prevent bypass |
668
775
  | **Timing-Safe Auth** | `crypto.timingSafeEqual()` for token comparison |
669
- | **Origin Validation** | `/extension` requires `chrome-extension://` origin; `/ops`, `/cdp`, `/annotation`, and `/config`/`/status`/`/pair` allow loopback no-Origin requests |
776
+ | **Origin Validation** | `/extension` requires `chrome-extension://` origin; `/ops`, `/canvas`, `/cdp`, `/annotation`, and `/config`/`/status`/`/pair` allow loopback no-Origin requests |
670
777
  | **PNA Preflights** | HTTP preflights include `Access-Control-Allow-Private-Network: true` when requested |
671
778
  | **Rate Limiting** | 5 handshake attempts/minute per IP, plus HTTP rate limiting for `/config`, `/status`, `/pair` |
672
779
  | **Data Redaction** | Tokens, API keys, sensitive paths auto-redacted |
@@ -692,6 +799,7 @@ Release checklist: [docs/DISTRIBUTION_PLAN.md](docs/DISTRIBUTION_PLAN.md)
692
799
  Documentation index: [docs/README.md](docs/README.md)
693
800
  Frontend docs: [docs/FRONTEND.md](docs/FRONTEND.md)
694
801
  Dependency inventory: [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md)
802
+ Local-only generated artifacts such as `prompt-exports/`, root `artifacts/`, `coverage/`, `CONTINUITY*.md`, and `sub_continuity.md` stay uncommitted; `.gitignore` is authoritative.
695
803
 
696
804
  ---
697
805
 
@@ -709,7 +817,8 @@ Dependency inventory: [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md)
709
817
  ▼ ▼ ▼ ▼
710
818
  ┌─────────────────────────────────────────────────────────────────┐
711
819
  │ Core Runtime (src/core/) │
712
- │ bootstrap.ts → wires managers, injects ToolDeps
820
+ │ bootstrap.ts → wires managers, sibling desktop runtime,
821
+ │ automation coordinator, injects ToolDeps │
713
822
  └────────┬────────────────────────────────────────────────────────┘
714
823
 
715
824
  ┌────┴────┬─────────────┬──────────────┬──────────────┬──────────────┐
@@ -726,6 +835,8 @@ Dependency inventory: [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md)
726
835
  └────────┘ └────────────┘
727
836
  ```
728
837
 
838
+ The simplified map above omits the dedicated Challenge Coordinator, Desktop Runtime, and Automation Coordinator that now sit beside the browser managers; see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full component map and ownership boundaries.
839
+
729
840
  ### Data Flow
730
841
 
731
842
  ```
@@ -748,21 +859,29 @@ Tool Call → Zod Validation → Manager/Runner → CDP/Playwright → Response
748
859
  ```
749
860
  .
750
861
  ├── src/ # Plugin implementation
751
- │ ├── browser/ # BrowserManager, TargetManager, CDP lifecycle
862
+ │ ├── annotate/ # Annotation transports + output shaping
863
+ │ ├── automation/ # Automation helpers and coordinator
864
+ │ ├── browser/ # Browser sessions, target orchestration, canvas preview/code-sync
752
865
  │ ├── cache/ # Chrome executable resolution
866
+ │ ├── canvas/ # Design-canvas document store, repo IO, code-sync, export helpers
867
+ │ ├── challenges/ # Bounded challenge orchestration plane, evidence, recovery lanes
753
868
  │ ├── cli/ # CLI commands, daemon, installers
754
869
  │ ├── core/ # Bootstrap, runtime wiring, ToolDeps
870
+ │ ├── desktop/ # Read-only desktop observation runtime
755
871
  │ ├── devtools/ # Console/network trackers with redaction
756
872
  │ ├── export/ # DOM capture, React emitter, CSS extraction
873
+ │ ├── integrations/ # External integration adapters (Figma import, etc.)
874
+ │ ├── macros/ # Macro parsing, resolution, provider-action expansion
875
+ │ ├── providers/ # Provider runtime, policy, workflows, browser fallback
876
+ │ ├── public-surface/ # Generated manifest source, CLI/tool metadata
757
877
  │ ├── relay/ # Extension relay server, protocol types
758
878
  │ ├── skills/ # SkillLoader for skill pack discovery
759
879
  │ ├── snapshot/ # AX-tree snapshots, ref management
760
- │ ├── tools/ # 48 opendevbrowser_* tool definitions
761
- │ ├── annotate/ # Annotation transports + output shaping
880
+ │ ├── tools/ # 65 opendevbrowser_* tool definitions
762
881
  │ └── utils/ # Shared utilities
763
882
  ├── extension/ # Chrome extension (relay client)
764
883
  ├── scripts/ # Operational scripts (build/sync/smoke)
765
- ├── skills/ # Bundled skill packs (8 total)
884
+ ├── skills/ # Bundled skill directories (11 total; 9 canonical OpenDevBrowser packs + 2 shared compatibility packs)
766
885
  ├── tests/ # Vitest tests (97% coverage required)
767
886
  └── docs/ # Architecture, CLI, extension, distribution plans
768
887
  ```
@@ -790,19 +909,22 @@ Uniform versioning is required (source of truth: `package.json`):
790
909
  1. Bump `package.json` version.
791
910
  2. Run: `npm run extension:sync`
792
911
  3. Run: `npm run version:check`
793
- 4. Run: `npm run build`
794
- 5. Run: `npm run extension:build`
795
- 6. Run release audits:
912
+ 4. Run: `npm run test:release-gate`
913
+ 5. Run: `npm run build`
914
+ 6. Run: `npm run extension:build`
915
+ 7. Run release audits:
796
916
  - `node scripts/audit-zombie-files.mjs`
797
917
  - `node scripts/docs-drift-check.mjs`
798
918
  - `node scripts/chrome-store-compliance-check.mjs`
799
- 7. Run strict live release gates:
800
- - `node scripts/provider-live-matrix.mjs --release-gate --out artifacts/release/v0.0.16/provider-live-matrix.json`
801
- - `node scripts/live-regression-matrix.mjs --release-gate`
802
- 8. Run first-time global install dry run checklist from `docs/FIRST_RUN_ONBOARDING.md`.
803
- 9. Run: `npm run extension:pack` (outputs `./opendevbrowser-extension.zip`)
804
- 10. Tag `vX.Y.Z` and let `.github/workflows/release-public.yml` publish npm + GitHub release artifacts.
805
- 11. Dispatch website content sync to private repo through `.github/workflows/dispatch-private-sync.yml`.
919
+ - `./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh`
920
+ 8. Run strict live release gates:
921
+ - `node scripts/provider-direct-runs.mjs --release-gate --out artifacts/release/vX.Y.Z/provider-direct-runs.json`
922
+ - `node scripts/live-regression-direct.mjs --release-gate --out artifacts/release/vX.Y.Z/live-regression-direct.json`
923
+ 9. Run first-time global install dry run checklist from `docs/FIRST_RUN_ONBOARDING.md`.
924
+ 10. Run: `npm run extension:pack` (outputs `./opendevbrowser-extension.zip`)
925
+ 11. Run: `npm pack`
926
+ 12. Tag `vX.Y.Z` and let `.github/workflows/release-public.yml` publish npm + GitHub release artifacts.
927
+ 13. Dispatch website content sync to private repo through `.github/workflows/dispatch-private-sync.yml`.
806
928
 
807
929
  Runbooks:
808
930
  - `docs/DISTRIBUTION_PLAN.md`