opendevbrowser 0.0.17 → 0.0.19

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 (529) hide show
  1. package/README.md +172 -73
  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 +4 -1
  12. package/dist/browser/annotation-manager.d.ts.map +1 -1
  13. package/dist/browser/browser-manager.d.ts +147 -47
  14. package/dist/browser/browser-manager.d.ts.map +1 -1
  15. package/dist/browser/canvas-client.d.ts +1 -0
  16. package/dist/browser/canvas-client.d.ts.map +1 -1
  17. package/dist/browser/canvas-code-sync-manager.d.ts +9 -1
  18. package/dist/browser/canvas-code-sync-manager.d.ts.map +1 -1
  19. package/dist/browser/canvas-manager.d.ts +29 -1
  20. package/dist/browser/canvas-manager.d.ts.map +1 -1
  21. package/dist/browser/global-challenge-coordinator.d.ts +27 -0
  22. package/dist/browser/global-challenge-coordinator.d.ts.map +1 -0
  23. package/dist/browser/manager-types.d.ts +167 -1
  24. package/dist/browser/manager-types.d.ts.map +1 -1
  25. package/dist/browser/ops-browser-manager.d.ts +103 -3
  26. package/dist/browser/ops-browser-manager.d.ts.map +1 -1
  27. package/dist/browser/ops-client.d.ts +17 -1
  28. package/dist/browser/ops-client.d.ts.map +1 -1
  29. package/dist/browser/playwright-runtime.d.ts +4 -0
  30. package/dist/browser/playwright-runtime.d.ts.map +1 -0
  31. package/dist/browser/review-surface.d.ts +9 -0
  32. package/dist/browser/review-surface.d.ts.map +1 -0
  33. package/dist/browser/screencast-recorder.d.ts +57 -0
  34. package/dist/browser/screencast-recorder.d.ts.map +1 -0
  35. package/dist/browser/session-inspector.d.ts +71 -0
  36. package/dist/browser/session-inspector.d.ts.map +1 -0
  37. package/dist/browser/session-store.d.ts +5 -1
  38. package/dist/browser/session-store.d.ts.map +1 -1
  39. package/dist/browser/system-chrome-cookies.d.ts +46 -0
  40. package/dist/browser/system-chrome-cookies.d.ts.map +1 -0
  41. package/dist/browser/target-manager.d.ts +1 -0
  42. package/dist/browser/target-manager.d.ts.map +1 -1
  43. package/dist/cache/chrome-locator.d.ts.map +1 -1
  44. package/dist/cache/chrome-user-data.d.ts +17 -0
  45. package/dist/cache/chrome-user-data.d.ts.map +1 -0
  46. package/dist/canvas/adapter-plugins/loader.d.ts +13 -0
  47. package/dist/canvas/adapter-plugins/loader.d.ts.map +1 -0
  48. package/dist/canvas/adapter-plugins/manifest.d.ts +146 -0
  49. package/dist/canvas/adapter-plugins/manifest.d.ts.map +1 -0
  50. package/dist/canvas/adapter-plugins/types.d.ts +83 -0
  51. package/dist/canvas/adapter-plugins/types.d.ts.map +1 -0
  52. package/dist/canvas/adapter-plugins/validator.d.ts +10 -0
  53. package/dist/canvas/adapter-plugins/validator.d.ts.map +1 -0
  54. package/dist/canvas/code-sync/apply-tsx.d.ts +3 -1
  55. package/dist/canvas/code-sync/apply-tsx.d.ts.map +1 -1
  56. package/dist/canvas/code-sync/import.d.ts +1 -0
  57. package/dist/canvas/code-sync/import.d.ts.map +1 -1
  58. package/dist/canvas/code-sync/manifest.d.ts +2 -1
  59. package/dist/canvas/code-sync/manifest.d.ts.map +1 -1
  60. package/dist/canvas/code-sync/tsx-adapter.d.ts.map +1 -1
  61. package/dist/canvas/code-sync/types.d.ts +102 -10
  62. package/dist/canvas/code-sync/types.d.ts.map +1 -1
  63. package/dist/canvas/document-store.d.ts +11 -1
  64. package/dist/canvas/document-store.d.ts.map +1 -1
  65. package/dist/canvas/export.d.ts.map +1 -1
  66. package/dist/canvas/framework-adapters/custom-elements-v1.d.ts +3 -0
  67. package/dist/canvas/framework-adapters/custom-elements-v1.d.ts.map +1 -0
  68. package/dist/canvas/framework-adapters/html-static-v1.d.ts +3 -0
  69. package/dist/canvas/framework-adapters/html-static-v1.d.ts.map +1 -0
  70. package/dist/canvas/framework-adapters/markup.d.ts +9 -0
  71. package/dist/canvas/framework-adapters/markup.d.ts.map +1 -0
  72. package/dist/canvas/framework-adapters/react-tsx-v2.d.ts +3 -0
  73. package/dist/canvas/framework-adapters/react-tsx-v2.d.ts.map +1 -0
  74. package/dist/canvas/framework-adapters/registry.d.ts +12 -0
  75. package/dist/canvas/framework-adapters/registry.d.ts.map +1 -0
  76. package/dist/canvas/framework-adapters/svelte-sfc-v1.d.ts +3 -0
  77. package/dist/canvas/framework-adapters/svelte-sfc-v1.d.ts.map +1 -0
  78. package/dist/canvas/framework-adapters/types.d.ts +57 -0
  79. package/dist/canvas/framework-adapters/types.d.ts.map +1 -0
  80. package/dist/canvas/framework-adapters/vue-sfc-v1.d.ts +3 -0
  81. package/dist/canvas/framework-adapters/vue-sfc-v1.d.ts.map +1 -0
  82. package/dist/canvas/kits/catalog.d.ts +5 -0
  83. package/dist/canvas/kits/catalog.d.ts.map +1 -0
  84. package/dist/canvas/library-adapters/react/index.d.ts +3 -0
  85. package/dist/canvas/library-adapters/react/index.d.ts.map +1 -0
  86. package/dist/canvas/library-adapters/registry.d.ts +11 -0
  87. package/dist/canvas/library-adapters/registry.d.ts.map +1 -0
  88. package/dist/canvas/library-adapters/types.d.ts +43 -0
  89. package/dist/canvas/library-adapters/types.d.ts.map +1 -0
  90. package/dist/canvas/repo-store.d.ts +2 -0
  91. package/dist/canvas/repo-store.d.ts.map +1 -1
  92. package/dist/canvas/starters/catalog.d.ts +34 -0
  93. package/dist/canvas/starters/catalog.d.ts.map +1 -0
  94. package/dist/canvas/token-references.d.ts +22 -0
  95. package/dist/canvas/token-references.d.ts.map +1 -0
  96. package/dist/canvas/types.d.ts +345 -6
  97. package/dist/canvas/types.d.ts.map +1 -1
  98. package/dist/challenges/action-loop.d.ts +13 -0
  99. package/dist/challenges/action-loop.d.ts.map +1 -0
  100. package/dist/challenges/capability-matrix.d.ts +3 -0
  101. package/dist/challenges/capability-matrix.d.ts.map +1 -0
  102. package/dist/challenges/evidence-bundle.d.ts +48 -0
  103. package/dist/challenges/evidence-bundle.d.ts.map +1 -0
  104. package/dist/challenges/governed-adapter-gateway.d.ts +4 -0
  105. package/dist/challenges/governed-adapter-gateway.d.ts.map +1 -0
  106. package/dist/challenges/human-yield-gate.d.ts +20 -0
  107. package/dist/challenges/human-yield-gate.d.ts.map +1 -0
  108. package/dist/challenges/index.d.ts +15 -0
  109. package/dist/challenges/index.d.ts.map +1 -0
  110. package/dist/challenges/interpreter.d.ts +3 -0
  111. package/dist/challenges/interpreter.d.ts.map +1 -0
  112. package/dist/challenges/optional-computer-use-bridge.d.ts +9 -0
  113. package/dist/challenges/optional-computer-use-bridge.d.ts.map +1 -0
  114. package/dist/challenges/orchestrator.d.ts +32 -0
  115. package/dist/challenges/orchestrator.d.ts.map +1 -0
  116. package/dist/challenges/outcome-recorder.d.ts +8 -0
  117. package/dist/challenges/outcome-recorder.d.ts.map +1 -0
  118. package/dist/challenges/owned-environment-lane.d.ts +3 -0
  119. package/dist/challenges/owned-environment-lane.d.ts.map +1 -0
  120. package/dist/challenges/policy-gate.d.ts +9 -0
  121. package/dist/challenges/policy-gate.d.ts.map +1 -0
  122. package/dist/challenges/sanctioned-identity-lane.d.ts +3 -0
  123. package/dist/challenges/sanctioned-identity-lane.d.ts.map +1 -0
  124. package/dist/challenges/service-adapter-lane.d.ts +3 -0
  125. package/dist/challenges/service-adapter-lane.d.ts.map +1 -0
  126. package/dist/challenges/strategy-selector.d.ts +10 -0
  127. package/dist/challenges/strategy-selector.d.ts.map +1 -0
  128. package/dist/challenges/types.d.ts +277 -0
  129. package/dist/challenges/types.d.ts.map +1 -0
  130. package/dist/challenges/verification-gate.d.ts +15 -0
  131. package/dist/challenges/verification-gate.d.ts.map +1 -0
  132. package/dist/chunk-5FZQJRBQ.js +15256 -0
  133. package/dist/chunk-5FZQJRBQ.js.map +1 -0
  134. package/dist/chunk-W4IHGDXV.js +33519 -0
  135. package/dist/chunk-W4IHGDXV.js.map +1 -0
  136. package/dist/chunk-YBQECXZX.js +409 -0
  137. package/dist/chunk-YBQECXZX.js.map +1 -0
  138. package/dist/cli/args.d.ts +4 -4
  139. package/dist/cli/args.d.ts.map +1 -1
  140. package/dist/cli/commands/artifacts.d.ts.map +1 -1
  141. package/dist/cli/commands/canvas.d.ts +7 -7
  142. package/dist/cli/commands/canvas.d.ts.map +1 -1
  143. package/dist/cli/commands/daemon.d.ts +7 -0
  144. package/dist/cli/commands/daemon.d.ts.map +1 -1
  145. package/dist/cli/commands/desktop/accessibility-snapshot.d.ts +3 -0
  146. package/dist/cli/commands/desktop/accessibility-snapshot.d.ts.map +1 -0
  147. package/dist/cli/commands/desktop/active-window.d.ts +3 -0
  148. package/dist/cli/commands/desktop/active-window.d.ts.map +1 -0
  149. package/dist/cli/commands/desktop/capture-desktop.d.ts +3 -0
  150. package/dist/cli/commands/desktop/capture-desktop.d.ts.map +1 -0
  151. package/dist/cli/commands/desktop/capture-window.d.ts +3 -0
  152. package/dist/cli/commands/desktop/capture-window.d.ts.map +1 -0
  153. package/dist/cli/commands/desktop/shared.d.ts +19 -0
  154. package/dist/cli/commands/desktop/shared.d.ts.map +1 -0
  155. package/dist/cli/commands/desktop/status.d.ts +3 -0
  156. package/dist/cli/commands/desktop/status.d.ts.map +1 -0
  157. package/dist/cli/commands/desktop/windows.d.ts +3 -0
  158. package/dist/cli/commands/desktop/windows.d.ts.map +1 -0
  159. package/dist/cli/commands/devtools/dialog.d.ts +19 -0
  160. package/dist/cli/commands/devtools/dialog.d.ts.map +1 -0
  161. package/dist/cli/commands/devtools/screencast-start.d.ts +20 -0
  162. package/dist/cli/commands/devtools/screencast-start.d.ts.map +1 -0
  163. package/dist/cli/commands/devtools/screencast-stop.d.ts +17 -0
  164. package/dist/cli/commands/devtools/screencast-stop.d.ts.map +1 -0
  165. package/dist/cli/commands/devtools/screenshot.d.ts +2 -0
  166. package/dist/cli/commands/devtools/screenshot.d.ts.map +1 -1
  167. package/dist/cli/commands/interact/click.d.ts.map +1 -1
  168. package/dist/cli/commands/interact/pointer-down.d.ts +7 -0
  169. package/dist/cli/commands/interact/pointer-down.d.ts.map +1 -0
  170. package/dist/cli/commands/interact/pointer-drag.d.ts +7 -0
  171. package/dist/cli/commands/interact/pointer-drag.d.ts.map +1 -0
  172. package/dist/cli/commands/interact/pointer-move.d.ts +7 -0
  173. package/dist/cli/commands/interact/pointer-move.d.ts.map +1 -0
  174. package/dist/cli/commands/interact/pointer-shared.d.ts +6 -0
  175. package/dist/cli/commands/interact/pointer-shared.d.ts.map +1 -0
  176. package/dist/cli/commands/interact/pointer-up.d.ts +7 -0
  177. package/dist/cli/commands/interact/pointer-up.d.ts.map +1 -0
  178. package/dist/cli/commands/interact/upload.d.ts +18 -0
  179. package/dist/cli/commands/interact/upload.d.ts.map +1 -0
  180. package/dist/cli/commands/macro-resolve.d.ts +2 -0
  181. package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
  182. package/dist/cli/commands/native.d.ts +10 -7
  183. package/dist/cli/commands/native.d.ts.map +1 -1
  184. package/dist/cli/commands/nav/review.d.ts +7 -0
  185. package/dist/cli/commands/nav/review.d.ts.map +1 -0
  186. package/dist/cli/commands/nav/snapshot.d.ts.map +1 -1
  187. package/dist/cli/commands/pages/open.d.ts.map +1 -1
  188. package/dist/cli/commands/product-video.d.ts +2 -0
  189. package/dist/cli/commands/product-video.d.ts.map +1 -1
  190. package/dist/cli/commands/research.d.ts +3 -0
  191. package/dist/cli/commands/research.d.ts.map +1 -1
  192. package/dist/cli/commands/run.d.ts +14 -0
  193. package/dist/cli/commands/run.d.ts.map +1 -1
  194. package/dist/cli/commands/serve.d.ts +1 -26
  195. package/dist/cli/commands/serve.d.ts.map +1 -1
  196. package/dist/cli/commands/session/connect.d.ts.map +1 -1
  197. package/dist/cli/commands/session/disconnect.d.ts.map +1 -1
  198. package/dist/cli/commands/session/inspector.d.ts +21 -0
  199. package/dist/cli/commands/session/inspector.d.ts.map +1 -0
  200. package/dist/cli/commands/session/launch.d.ts.map +1 -1
  201. package/dist/cli/commands/shopping.d.ts +5 -0
  202. package/dist/cli/commands/shopping.d.ts.map +1 -1
  203. package/dist/cli/commands/status.d.ts +2 -14
  204. package/dist/cli/commands/status.d.ts.map +1 -1
  205. package/dist/cli/commands/targets/new.d.ts.map +1 -1
  206. package/dist/cli/daemon-autostart.d.ts +11 -0
  207. package/dist/cli/daemon-autostart.d.ts.map +1 -1
  208. package/dist/cli/daemon-client.d.ts +3 -0
  209. package/dist/cli/daemon-client.d.ts.map +1 -1
  210. package/dist/cli/daemon-commands.d.ts.map +1 -1
  211. package/dist/cli/daemon-state.d.ts +16 -0
  212. package/dist/cli/daemon-state.d.ts.map +1 -1
  213. package/dist/cli/daemon-status.d.ts +7 -2
  214. package/dist/cli/daemon-status.d.ts.map +1 -1
  215. package/dist/cli/daemon.d.ts +1 -0
  216. package/dist/cli/daemon.d.ts.map +1 -1
  217. package/dist/cli/help.d.ts +15 -4
  218. package/dist/cli/help.d.ts.map +1 -1
  219. package/dist/cli/index.js +2476 -1036
  220. package/dist/cli/index.js.map +1 -1
  221. package/dist/cli/install-autostart-output.d.ts +6 -0
  222. package/dist/cli/install-autostart-output.d.ts.map +1 -0
  223. package/dist/cli/install-autostart-reconciliation.d.ts +23 -0
  224. package/dist/cli/install-autostart-reconciliation.d.ts.map +1 -0
  225. package/dist/cli/installers/skills.d.ts +42 -6
  226. package/dist/cli/installers/skills.d.ts.map +1 -1
  227. package/dist/cli/output.d.ts +3 -0
  228. package/dist/cli/output.d.ts.map +1 -1
  229. package/dist/cli/remote-desktop-runtime.d.ts +15 -0
  230. package/dist/cli/remote-desktop-runtime.d.ts.map +1 -0
  231. package/dist/cli/remote-manager.d.ts +24 -2
  232. package/dist/cli/remote-manager.d.ts.map +1 -1
  233. package/dist/cli/transport-timeouts.d.ts +8 -0
  234. package/dist/cli/transport-timeouts.d.ts.map +1 -0
  235. package/dist/cli/utils/http.d.ts +9 -0
  236. package/dist/cli/utils/http.d.ts.map +1 -1
  237. package/dist/cli/utils/parse.d.ts +2 -0
  238. package/dist/cli/utils/parse.d.ts.map +1 -1
  239. package/dist/cli/utils/skills.d.ts +1 -2
  240. package/dist/cli/utils/skills.d.ts.map +1 -1
  241. package/dist/cli/utils/workflow-message.d.ts +2 -0
  242. package/dist/cli/utils/workflow-message.d.ts.map +1 -0
  243. package/dist/config.d.ts +47 -0
  244. package/dist/config.d.ts.map +1 -1
  245. package/dist/core/bootstrap.d.ts.map +1 -1
  246. package/dist/core/index.d.ts +1 -0
  247. package/dist/core/index.d.ts.map +1 -1
  248. package/dist/core/logging.d.ts +3 -1
  249. package/dist/core/logging.d.ts.map +1 -1
  250. package/dist/core/runtime-assemblies.d.ts +22 -0
  251. package/dist/core/runtime-assemblies.d.ts.map +1 -0
  252. package/dist/core/types.d.ts +15 -0
  253. package/dist/core/types.d.ts.map +1 -1
  254. package/dist/desktop/audit.d.ts +37 -0
  255. package/dist/desktop/audit.d.ts.map +1 -0
  256. package/dist/desktop/errors.d.ts +7 -0
  257. package/dist/desktop/errors.d.ts.map +1 -0
  258. package/dist/desktop/index.d.ts +6 -0
  259. package/dist/desktop/index.d.ts.map +1 -0
  260. package/dist/desktop/runtime.d.ts +26 -0
  261. package/dist/desktop/runtime.d.ts.map +1 -0
  262. package/dist/desktop/types.d.ts +76 -0
  263. package/dist/desktop/types.d.ts.map +1 -0
  264. package/dist/extension-extractor.d.ts +6 -0
  265. package/dist/extension-extractor.d.ts.map +1 -1
  266. package/dist/index.d.ts.map +1 -1
  267. package/dist/index.js +1103 -467
  268. package/dist/index.js.map +1 -1
  269. package/dist/integrations/figma/assets.d.ts +13 -0
  270. package/dist/integrations/figma/assets.d.ts.map +1 -0
  271. package/dist/integrations/figma/auth.d.ts +3 -0
  272. package/dist/integrations/figma/auth.d.ts.map +1 -0
  273. package/dist/integrations/figma/client.d.ts +42 -0
  274. package/dist/integrations/figma/client.d.ts.map +1 -0
  275. package/dist/integrations/figma/mappers.d.ts +23 -0
  276. package/dist/integrations/figma/mappers.d.ts.map +1 -0
  277. package/dist/integrations/figma/normalize.d.ts +99 -0
  278. package/dist/integrations/figma/normalize.d.ts.map +1 -0
  279. package/dist/integrations/figma/url.d.ts +17 -0
  280. package/dist/integrations/figma/url.d.ts.map +1 -0
  281. package/dist/integrations/figma/variables.d.ts +21 -0
  282. package/dist/integrations/figma/variables.d.ts.map +1 -0
  283. package/dist/macros/execute-runtime.d.ts +19 -0
  284. package/dist/macros/execute-runtime.d.ts.map +1 -0
  285. package/dist/macros/execute.d.ts +3 -1
  286. package/dist/macros/execute.d.ts.map +1 -1
  287. package/dist/opendevbrowser.d.ts.map +1 -1
  288. package/dist/opendevbrowser.js +1103 -467
  289. package/dist/opendevbrowser.js.map +1 -1
  290. package/dist/providers/blocker.d.ts.map +1 -1
  291. package/dist/providers/browser-fallback.d.ts +30 -0
  292. package/dist/providers/browser-fallback.d.ts.map +1 -0
  293. package/dist/providers/constraint.d.ts +45 -0
  294. package/dist/providers/constraint.d.ts.map +1 -0
  295. package/dist/providers/index.d.ts +11 -2
  296. package/dist/providers/index.d.ts.map +1 -1
  297. package/dist/providers/policy.d.ts.map +1 -1
  298. package/dist/providers/product-video-compiler.d.ts +92 -0
  299. package/dist/providers/product-video-compiler.d.ts.map +1 -0
  300. package/dist/providers/registry.d.ts +37 -1
  301. package/dist/providers/registry.d.ts.map +1 -1
  302. package/dist/providers/renderer.d.ts.map +1 -1
  303. package/dist/providers/research-compiler.d.ts +64 -0
  304. package/dist/providers/research-compiler.d.ts.map +1 -0
  305. package/dist/providers/research-executor.d.ts +27 -0
  306. package/dist/providers/research-executor.d.ts.map +1 -0
  307. package/dist/providers/runtime-bundle.d.ts +26 -0
  308. package/dist/providers/runtime-bundle.d.ts.map +1 -0
  309. package/dist/providers/runtime-factory.d.ts +6 -1
  310. package/dist/providers/runtime-factory.d.ts.map +1 -1
  311. package/dist/providers/runtime-policy.d.ts +24 -0
  312. package/dist/providers/runtime-policy.d.ts.map +1 -0
  313. package/dist/providers/shared/anti-bot-policy.d.ts +3 -2
  314. package/dist/providers/shared/anti-bot-policy.d.ts.map +1 -1
  315. package/dist/providers/shopping/index.d.ts +11 -1
  316. package/dist/providers/shopping/index.d.ts.map +1 -1
  317. package/dist/providers/shopping-compiler.d.ts +51 -0
  318. package/dist/providers/shopping-compiler.d.ts.map +1 -0
  319. package/dist/providers/shopping-executor.d.ts +18 -0
  320. package/dist/providers/shopping-executor.d.ts.map +1 -0
  321. package/dist/providers/shopping-postprocess.d.ts +46 -0
  322. package/dist/providers/shopping-postprocess.d.ts.map +1 -0
  323. package/dist/providers/shopping-workflow.d.ts +33 -0
  324. package/dist/providers/shopping-workflow.d.ts.map +1 -0
  325. package/dist/providers/social/platform.d.ts +2 -1
  326. package/dist/providers/social/platform.d.ts.map +1 -1
  327. package/dist/providers/social/search-quality.d.ts +16 -0
  328. package/dist/providers/social/search-quality.d.ts.map +1 -0
  329. package/dist/providers/social/youtube-resolver.d.ts +2 -1
  330. package/dist/providers/social/youtube-resolver.d.ts.map +1 -1
  331. package/dist/providers/social/youtube.d.ts.map +1 -1
  332. package/dist/providers/types.d.ts +116 -4
  333. package/dist/providers/types.d.ts.map +1 -1
  334. package/dist/providers/web/crawl-worker.d.ts.map +1 -1
  335. package/dist/providers/web/extract.d.ts +16 -0
  336. package/dist/providers/web/extract.d.ts.map +1 -1
  337. package/dist/providers/web/index.d.ts.map +1 -1
  338. package/dist/providers/workflow-contracts.d.ts +53 -0
  339. package/dist/providers/workflow-contracts.d.ts.map +1 -0
  340. package/dist/providers/workflows.d.ts +30 -6
  341. package/dist/providers/workflows.d.ts.map +1 -1
  342. package/dist/{providers-G3LRHQXX.js → providers-G36AM3Z2.js} +2 -2
  343. package/dist/public-surface/generated-manifest.d.ts +1168 -0
  344. package/dist/public-surface/generated-manifest.d.ts.map +1 -0
  345. package/dist/public-surface/source.d.ts +437 -0
  346. package/dist/public-surface/source.d.ts.map +1 -0
  347. package/dist/relay/protocol.d.ts +25 -3
  348. package/dist/relay/protocol.d.ts.map +1 -1
  349. package/dist/relay/relay-endpoints.d.ts +21 -0
  350. package/dist/relay/relay-endpoints.d.ts.map +1 -1
  351. package/dist/relay/relay-server.d.ts +18 -0
  352. package/dist/relay/relay-server.d.ts.map +1 -1
  353. package/dist/skills/bundled-skill-directories.d.ts +8 -0
  354. package/dist/skills/bundled-skill-directories.d.ts.map +1 -0
  355. package/dist/skills/skill-loader.d.ts +9 -1
  356. package/dist/skills/skill-loader.d.ts.map +1 -1
  357. package/dist/skills/skill-loader.js +7 -0
  358. package/dist/skills/skill-nudge.d.ts.map +1 -1
  359. package/dist/skills/types.d.ts +31 -0
  360. package/dist/skills/types.d.ts.map +1 -1
  361. package/dist/snapshot/ops-snapshot.d.ts +1 -1
  362. package/dist/snapshot/ops-snapshot.d.ts.map +1 -1
  363. package/dist/snapshot/refs.d.ts +6 -1
  364. package/dist/snapshot/refs.d.ts.map +1 -1
  365. package/dist/snapshot/snapshotter.d.ts.map +1 -1
  366. package/dist/tools/connect.d.ts.map +1 -1
  367. package/dist/tools/deps.d.ts +4 -0
  368. package/dist/tools/deps.d.ts.map +1 -1
  369. package/dist/tools/desktop-shared.d.ts +6 -0
  370. package/dist/tools/desktop-shared.d.ts.map +1 -0
  371. package/dist/tools/desktop_accessibility_snapshot.d.ts +4 -0
  372. package/dist/tools/desktop_accessibility_snapshot.d.ts.map +1 -0
  373. package/dist/tools/desktop_active_window.d.ts +4 -0
  374. package/dist/tools/desktop_active_window.d.ts.map +1 -0
  375. package/dist/tools/desktop_capture_desktop.d.ts +4 -0
  376. package/dist/tools/desktop_capture_desktop.d.ts.map +1 -0
  377. package/dist/tools/desktop_capture_window.d.ts +4 -0
  378. package/dist/tools/desktop_capture_window.d.ts.map +1 -0
  379. package/dist/tools/desktop_status.d.ts +4 -0
  380. package/dist/tools/desktop_status.d.ts.map +1 -0
  381. package/dist/tools/desktop_windows.d.ts +4 -0
  382. package/dist/tools/desktop_windows.d.ts.map +1 -0
  383. package/dist/tools/dialog.d.ts +4 -0
  384. package/dist/tools/dialog.d.ts.map +1 -0
  385. package/dist/tools/index.d.ts +3 -0
  386. package/dist/tools/index.d.ts.map +1 -1
  387. package/dist/tools/launch.d.ts.map +1 -1
  388. package/dist/tools/macro_resolve.d.ts.map +1 -1
  389. package/dist/tools/pointer_down.d.ts +4 -0
  390. package/dist/tools/pointer_down.d.ts.map +1 -0
  391. package/dist/tools/pointer_drag.d.ts +4 -0
  392. package/dist/tools/pointer_drag.d.ts.map +1 -0
  393. package/dist/tools/pointer_move.d.ts +4 -0
  394. package/dist/tools/pointer_move.d.ts.map +1 -0
  395. package/dist/tools/pointer_up.d.ts +4 -0
  396. package/dist/tools/pointer_up.d.ts.map +1 -0
  397. package/dist/tools/product_video_run.d.ts.map +1 -1
  398. package/dist/tools/prompting_guide.d.ts.map +1 -1
  399. package/dist/tools/research_run.d.ts.map +1 -1
  400. package/dist/tools/review.d.ts +4 -0
  401. package/dist/tools/review.d.ts.map +1 -0
  402. package/dist/tools/screencast_start.d.ts +4 -0
  403. package/dist/tools/screencast_start.d.ts.map +1 -0
  404. package/dist/tools/screencast_stop.d.ts +4 -0
  405. package/dist/tools/screencast_stop.d.ts.map +1 -0
  406. package/dist/tools/screenshot.d.ts.map +1 -1
  407. package/dist/tools/session_inspector.d.ts +4 -0
  408. package/dist/tools/session_inspector.d.ts.map +1 -0
  409. package/dist/tools/shopping_run.d.ts.map +1 -1
  410. package/dist/tools/skill_list.d.ts.map +1 -1
  411. package/dist/tools/skill_load.d.ts.map +1 -1
  412. package/dist/tools/upload.d.ts +4 -0
  413. package/dist/tools/upload.d.ts.map +1 -0
  414. package/dist/tools/workflow-runtime.d.ts +4 -1
  415. package/dist/tools/workflow-runtime.d.ts.map +1 -1
  416. package/dist/utils/package-assets.d.ts +4 -0
  417. package/dist/utils/package-assets.d.ts.map +1 -0
  418. package/extension/canvas.html +379 -9
  419. package/extension/dist/annotate-content.js +62 -32
  420. package/extension/dist/annotation-payload.js +57 -21
  421. package/extension/dist/background.js +406 -61
  422. package/extension/dist/canvas/canvas-runtime.js +481 -52
  423. package/extension/dist/canvas/model.js +129 -1
  424. package/extension/dist/canvas-page.js +1882 -74
  425. package/extension/dist/ops/dom-bridge.js +139 -0
  426. package/extension/dist/ops/ops-runtime.js +2854 -295
  427. package/extension/dist/ops/ops-session-store.js +83 -5
  428. package/extension/dist/ops/snapshot-builder.js +2 -2
  429. package/extension/dist/ops/snapshot-shared.js +2 -2
  430. package/extension/dist/ops/target-session-coordinator.js +5 -3
  431. package/extension/dist/popup.js +50 -15
  432. package/extension/dist/services/CDPRouter.js +1567 -63
  433. package/extension/dist/services/ConnectionManager.js +436 -78
  434. package/extension/dist/services/RelayClient.js +70 -30
  435. package/extension/dist/services/TabManager.js +83 -10
  436. package/extension/dist/services/TargetSessionMap.js +127 -3
  437. package/extension/dist/services/attach-errors.js +20 -0
  438. package/extension/dist/services/cdp-router-commands.js +135 -8
  439. package/extension/dist/services/url-restrictions.js +9 -13
  440. package/extension/manifest.json +2 -2
  441. package/extension/popup.html +7 -6
  442. package/package.json +15 -7
  443. package/skills/AGENTS.md +9 -8
  444. package/skills/opendevbrowser-best-practices/SKILL.md +118 -9
  445. package/skills/opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md +1 -0
  446. package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +26 -12
  447. package/skills/opendevbrowser-best-practices/artifacts/parity-gates.md +9 -2
  448. package/skills/opendevbrowser-best-practices/artifacts/provider-workflows.md +6 -0
  449. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +58 -0
  450. package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +674 -0
  451. package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +9 -4
  452. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +89 -20
  453. package/skills/opendevbrowser-best-practices/scripts/resolve-odb-cli.sh +100 -0
  454. package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +1 -0
  455. package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +256 -116
  456. package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +208 -0
  457. package/skills/opendevbrowser-continuity-ledger/SKILL.md +14 -1
  458. package/skills/opendevbrowser-continuity-ledger/scripts/validate-skill-assets.sh +61 -0
  459. package/skills/opendevbrowser-data-extraction/SKILL.md +6 -0
  460. package/skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh +112 -0
  461. package/skills/opendevbrowser-design-agent/SKILL.md +275 -0
  462. package/skills/opendevbrowser-design-agent/artifacts/app-shell-and-state-wiring.md +84 -0
  463. package/skills/opendevbrowser-design-agent/artifacts/async-search-state-ownership.md +58 -0
  464. package/skills/opendevbrowser-design-agent/artifacts/component-pattern-index.md +130 -0
  465. package/skills/opendevbrowser-design-agent/artifacts/design-contract-playbook.md +157 -0
  466. package/skills/opendevbrowser-design-agent/artifacts/design-release-gate.md +40 -0
  467. package/skills/opendevbrowser-design-agent/artifacts/design-workflows.md +153 -0
  468. package/skills/opendevbrowser-design-agent/artifacts/existing-surface-adaptation.md +56 -0
  469. package/skills/opendevbrowser-design-agent/artifacts/external-pattern-synthesis.md +103 -0
  470. package/skills/opendevbrowser-design-agent/artifacts/frontend-evaluation-rubric.md +61 -0
  471. package/skills/opendevbrowser-design-agent/artifacts/implementation-anti-patterns.md +163 -0
  472. package/skills/opendevbrowser-design-agent/artifacts/isolated-preview-validation.md +68 -0
  473. package/skills/opendevbrowser-design-agent/artifacts/loading-and-feedback-surfaces.md +56 -0
  474. package/skills/opendevbrowser-design-agent/artifacts/opendevbrowser-ui-example-map.md +44 -0
  475. package/skills/opendevbrowser-design-agent/artifacts/performance-audit-playbook.md +70 -0
  476. package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +81 -0
  477. package/skills/opendevbrowser-design-agent/artifacts/scroll-reveal-surface-planning.md +64 -0
  478. package/skills/opendevbrowser-design-agent/artifacts/state-ownership-matrix.md +36 -0
  479. package/skills/opendevbrowser-design-agent/artifacts/theming-and-token-ownership.md +43 -0
  480. package/skills/opendevbrowser-design-agent/assets/templates/canvas-generation-plan.design.v1.json +58 -0
  481. package/skills/opendevbrowser-design-agent/assets/templates/design-audit-report.v1.md +34 -0
  482. package/skills/opendevbrowser-design-agent/assets/templates/design-brief.v1.md +40 -0
  483. package/skills/opendevbrowser-design-agent/assets/templates/design-contract.v1.json +226 -0
  484. package/skills/opendevbrowser-design-agent/assets/templates/design-release-gate.v1.json +35 -0
  485. package/skills/opendevbrowser-design-agent/assets/templates/design-review-checklist.json +57 -0
  486. package/skills/opendevbrowser-design-agent/assets/templates/real-surface-design-matrix.json +32 -0
  487. package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +31 -0
  488. package/skills/opendevbrowser-design-agent/scripts/design-workflow.sh +171 -0
  489. package/skills/opendevbrowser-design-agent/scripts/extract-canvas-plan.sh +56 -0
  490. package/skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh +223 -0
  491. package/skills/opendevbrowser-form-testing/SKILL.md +19 -3
  492. package/skills/opendevbrowser-form-testing/artifacts/form-workflows.md +5 -4
  493. package/skills/opendevbrowser-form-testing/assets/templates/challenge-decision-tree.json +2 -0
  494. package/skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh +109 -0
  495. package/skills/opendevbrowser-login-automation/SKILL.md +21 -3
  496. package/skills/opendevbrowser-login-automation/artifacts/login-workflows.md +5 -4
  497. package/skills/opendevbrowser-login-automation/assets/templates/auth-signals.json +5 -0
  498. package/skills/opendevbrowser-login-automation/assets/templates/login-scenario-matrix.json +3 -2
  499. package/skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh +17 -1
  500. package/skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh +133 -0
  501. package/skills/opendevbrowser-product-presentation-asset/SKILL.md +23 -11
  502. package/skills/opendevbrowser-product-presentation-asset/artifacts/asset-pack-assembly.md +5 -3
  503. package/skills/opendevbrowser-product-presentation-asset/assets/templates/shot-list.md +2 -0
  504. package/skills/opendevbrowser-product-presentation-asset/assets/templates/video-assembly.md +3 -2
  505. package/skills/opendevbrowser-product-presentation-asset/scripts/capture-screenshots.sh +5 -1
  506. package/skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh +6 -2
  507. package/skills/opendevbrowser-product-presentation-asset/scripts/download-images.sh +5 -1
  508. package/skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh +20 -7
  509. package/skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh +39 -0
  510. package/skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh +5 -1
  511. package/skills/opendevbrowser-research/SKILL.md +14 -6
  512. package/skills/opendevbrowser-research/scripts/render-output.sh +5 -1
  513. package/skills/opendevbrowser-research/scripts/run-research.sh +5 -1
  514. package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +45 -0
  515. package/skills/opendevbrowser-research/scripts/write-artifacts.sh +5 -1
  516. package/skills/opendevbrowser-shopping/SKILL.md +20 -1
  517. package/skills/opendevbrowser-shopping/scripts/normalize-offers.sh +6 -2
  518. package/skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh +5 -1
  519. package/skills/opendevbrowser-shopping/scripts/run-shopping.sh +5 -1
  520. package/skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh +54 -0
  521. package/dist/chunk-5J3IFL3X.js +0 -16706
  522. package/dist/chunk-5J3IFL3X.js.map +0 -1
  523. package/dist/chunk-D633UO34.js +0 -8149
  524. package/dist/chunk-D633UO34.js.map +0 -1
  525. package/dist/chunk-V7KUDHDG.js +0 -276
  526. package/dist/chunk-V7KUDHDG.js.map +0 -1
  527. package/dist/runtime-factory-BICHDPE7.js +0 -13
  528. /package/dist/{providers-G3LRHQXX.js.map → providers-G36AM3Z2.js.map} +0 -0
  529. /package/dist/{runtime-factory-BICHDPE7.js.map → skills/skill-loader.js.map} +0 -0
@@ -384,14 +384,39 @@
384
384
  color: var(--muted);
385
385
  }
386
386
 
387
+ .canvas-panel-header {
388
+ display: flex;
389
+ align-items: center;
390
+ justify-content: space-between;
391
+ gap: 12px;
392
+ }
393
+
394
+ .canvas-panel-subtitle,
395
+ .canvas-history-status {
396
+ font-size: 0.78rem;
397
+ color: var(--muted);
398
+ line-height: 1.35;
399
+ }
400
+
401
+ .canvas-page-select {
402
+ width: 100%;
403
+ border: 1px solid rgba(143, 164, 187, 0.18);
404
+ background: rgba(4, 11, 18, 0.64);
405
+ color: var(--text);
406
+ padding: 10px 12px;
407
+ border-radius: 12px;
408
+ }
409
+
387
410
  .canvas-summary-list,
388
- .canvas-feedback-list {
411
+ .canvas-feedback-list,
412
+ .canvas-token-list {
389
413
  display: grid;
390
414
  gap: 10px;
391
415
  }
392
416
 
393
417
  .canvas-summary-item,
394
- .canvas-feedback-item {
418
+ .canvas-feedback-item,
419
+ .canvas-token-item {
395
420
  display: grid;
396
421
  gap: 4px;
397
422
  padding-bottom: 10px;
@@ -462,6 +487,128 @@
462
487
  resize: vertical;
463
488
  }
464
489
 
490
+ .canvas-field-grid,
491
+ .canvas-property-grid {
492
+ display: grid;
493
+ gap: 10px;
494
+ grid-template-columns: repeat(2, minmax(0, 1fr));
495
+ }
496
+
497
+ .canvas-properties-grid {
498
+ display: grid;
499
+ gap: 12px;
500
+ }
501
+
502
+ .canvas-property-section {
503
+ display: grid;
504
+ gap: 10px;
505
+ padding: 12px;
506
+ border-radius: 16px;
507
+ border: 1px solid rgba(148, 163, 184, 0.12);
508
+ background: rgba(4, 11, 18, 0.42);
509
+ }
510
+
511
+ .canvas-property-section h3 {
512
+ margin: 0;
513
+ font-size: 0.76rem;
514
+ letter-spacing: 0.08em;
515
+ text-transform: uppercase;
516
+ color: var(--muted);
517
+ }
518
+
519
+ .canvas-layer-list,
520
+ .canvas-layer-children {
521
+ display: grid;
522
+ gap: 8px;
523
+ }
524
+
525
+ .canvas-layer-row {
526
+ display: grid;
527
+ gap: 8px;
528
+ padding: 10px;
529
+ border-radius: 14px;
530
+ border: 1px solid rgba(148, 163, 184, 0.12);
531
+ background: rgba(4, 11, 18, 0.44);
532
+ }
533
+
534
+ .canvas-layer-row[data-selected="true"] {
535
+ border-color: rgba(32, 213, 198, 0.3);
536
+ background: rgba(32, 213, 198, 0.08);
537
+ }
538
+
539
+ .canvas-layer-row[data-hidden="true"] {
540
+ opacity: 0.7;
541
+ }
542
+
543
+ .canvas-layer-head,
544
+ .canvas-layer-main,
545
+ .canvas-history-row,
546
+ .canvas-annotation-mode {
547
+ display: flex;
548
+ align-items: center;
549
+ gap: 8px;
550
+ }
551
+
552
+ .canvas-layer-main {
553
+ flex: 1 1 auto;
554
+ min-width: 0;
555
+ }
556
+
557
+ .canvas-layer-toggle,
558
+ .canvas-layer-visibility {
559
+ width: 32px;
560
+ min-width: 32px;
561
+ padding: 6px 0;
562
+ text-align: center;
563
+ }
564
+
565
+ .canvas-layer-name-input {
566
+ flex: 1 1 auto;
567
+ min-width: 0;
568
+ border: 1px solid rgba(143, 164, 187, 0.18);
569
+ background: rgba(4, 11, 18, 0.5);
570
+ color: var(--text);
571
+ padding: 8px 10px;
572
+ border-radius: 10px;
573
+ }
574
+
575
+ .canvas-layer-meta,
576
+ .canvas-empty-inline {
577
+ font-size: 0.76rem;
578
+ color: var(--muted);
579
+ line-height: 1.35;
580
+ }
581
+
582
+ .canvas-pill-list {
583
+ display: flex;
584
+ flex-wrap: wrap;
585
+ gap: 8px;
586
+ }
587
+
588
+ .canvas-pill {
589
+ display: inline-flex;
590
+ align-items: center;
591
+ padding: 5px 9px;
592
+ border-radius: 999px;
593
+ background: rgba(143, 164, 187, 0.12);
594
+ color: var(--text);
595
+ font-size: 0.76rem;
596
+ }
597
+
598
+ .canvas-stage-overlay {
599
+ position: absolute;
600
+ inset: 0;
601
+ pointer-events: none;
602
+ }
603
+
604
+ .canvas-stage-marquee {
605
+ position: absolute;
606
+ border: 1px solid rgba(32, 213, 198, 0.85);
607
+ background: rgba(32, 213, 198, 0.14);
608
+ border-radius: 12px;
609
+ box-shadow: inset 0 0 0 1px rgba(14, 165, 233, 0.28);
610
+ }
611
+
465
612
  .canvas-annotation-list {
466
613
  display: grid;
467
614
  gap: 10px;
@@ -558,6 +705,9 @@
558
705
 
559
706
  <section class="canvas-toolbar">
560
707
  <div class="canvas-actions">
708
+ <button class="canvas-button" id="canvas-history-undo" type="button">Undo</button>
709
+ <button class="canvas-button" id="canvas-history-redo" type="button">Redo</button>
710
+ <button class="canvas-button" id="canvas-duplicate-node" type="button">Duplicate</button>
561
711
  <button class="canvas-button canvas-button-primary" id="canvas-add-note" type="button">Add Note</button>
562
712
  <button class="canvas-button" id="canvas-reset-view" type="button">Reset View</button>
563
713
  <button class="canvas-button canvas-button-danger" id="canvas-delete-node" type="button">Delete Selected</button>
@@ -572,16 +722,15 @@
572
722
  <div class="canvas-summary-list" id="canvas-summary"></div>
573
723
  </section>
574
724
  <section class="canvas-panel">
575
- <h2>Inspector</h2>
576
- <div class="canvas-field">
577
- <label for="canvas-node-name">Node Name</label>
578
- <input class="canvas-input" id="canvas-node-name" type="text" />
725
+ <div class="canvas-panel-header">
726
+ <h2>Pages & Layers</h2>
727
+ <span class="canvas-panel-subtitle" id="canvas-page-details">No page selected.</span>
579
728
  </div>
580
729
  <div class="canvas-field">
581
- <label for="canvas-node-text">Node Text</label>
582
- <textarea class="canvas-textarea" id="canvas-node-text"></textarea>
730
+ <label for="canvas-page-select">Active Page</label>
731
+ <select class="canvas-page-select" id="canvas-page-select"></select>
583
732
  </div>
584
- <div class="canvas-summary-list" id="canvas-selection-meta"></div>
733
+ <div class="canvas-layer-list" id="canvas-layers-tree"></div>
585
734
  </section>
586
735
  <section class="canvas-panel">
587
736
  <h2>Feedback</h2>
@@ -589,6 +738,13 @@
589
738
  </section>
590
739
  <section class="canvas-panel">
591
740
  <h2>Annotations</h2>
741
+ <div class="canvas-annotation-mode">
742
+ <label for="canvas-annotation-mode">Capture Mode</label>
743
+ <select class="canvas-page-select" id="canvas-annotation-mode">
744
+ <option value="selected">Selected node</option>
745
+ <option value="region">Stage region</option>
746
+ </select>
747
+ </div>
592
748
  <div class="canvas-actions-grid">
593
749
  <button class="canvas-button canvas-button-primary" id="canvas-annotation-add" type="button">Add Selected</button>
594
750
  <button class="canvas-button" id="canvas-annotation-copy" type="button">Copy All</button>
@@ -614,10 +770,224 @@
614
770
  </div>
615
771
  <div class="canvas-stage" id="canvas-stage">
616
772
  <div class="canvas-stage-inner" id="canvas-stage-inner"></div>
773
+ <div class="canvas-stage-overlay" id="canvas-stage-overlay"></div>
617
774
  </div>
618
775
  </section>
619
776
 
620
777
  <section class="canvas-preview-card">
778
+ <section class="canvas-panel">
779
+ <div class="canvas-panel-header">
780
+ <h2>History</h2>
781
+ <span class="canvas-history-status" id="canvas-history-status">No history yet.</span>
782
+ </div>
783
+ <div class="canvas-history-row">
784
+ <button class="canvas-button" id="canvas-history-panel-undo" type="button">Undo</button>
785
+ <button class="canvas-button" id="canvas-history-panel-redo" type="button">Redo</button>
786
+ </div>
787
+ </section>
788
+ <section class="canvas-panel">
789
+ <div class="canvas-panel-header">
790
+ <h2>Properties</h2>
791
+ <span class="canvas-panel-subtitle" id="canvas-properties-status">No node selected.</span>
792
+ </div>
793
+ <div class="canvas-properties-grid">
794
+ <div class="canvas-property-section">
795
+ <h3>Identity</h3>
796
+ <div class="canvas-field">
797
+ <label for="canvas-node-name">Node Name</label>
798
+ <input class="canvas-input" id="canvas-node-name" type="text" />
799
+ </div>
800
+ <div class="canvas-field">
801
+ <label for="canvas-node-text">Node Text</label>
802
+ <textarea class="canvas-textarea" id="canvas-node-text"></textarea>
803
+ </div>
804
+ </div>
805
+ <div class="canvas-property-section">
806
+ <h3>Layout</h3>
807
+ <div class="canvas-property-grid">
808
+ <div class="canvas-field">
809
+ <label for="canvas-node-x">X</label>
810
+ <input class="canvas-input" id="canvas-node-x" type="number" />
811
+ </div>
812
+ <div class="canvas-field">
813
+ <label for="canvas-node-y">Y</label>
814
+ <input class="canvas-input" id="canvas-node-y" type="number" />
815
+ </div>
816
+ <div class="canvas-field">
817
+ <label for="canvas-node-width">Width</label>
818
+ <input class="canvas-input" id="canvas-node-width" type="number" min="1" />
819
+ </div>
820
+ <div class="canvas-field">
821
+ <label for="canvas-node-height">Height</label>
822
+ <input class="canvas-input" id="canvas-node-height" type="number" min="1" />
823
+ </div>
824
+ <div class="canvas-field">
825
+ <label for="canvas-style-padding">Padding</label>
826
+ <input class="canvas-input" id="canvas-style-padding" type="text" />
827
+ </div>
828
+ <div class="canvas-field">
829
+ <label for="canvas-style-gap">Gap</label>
830
+ <input class="canvas-input" id="canvas-style-gap" type="text" />
831
+ </div>
832
+ </div>
833
+ </div>
834
+ <div class="canvas-property-section">
835
+ <h3>Typography</h3>
836
+ <div class="canvas-property-grid">
837
+ <div class="canvas-field">
838
+ <label for="canvas-style-font-size">Font Size</label>
839
+ <input class="canvas-input" id="canvas-style-font-size" type="text" />
840
+ </div>
841
+ <div class="canvas-field">
842
+ <label for="canvas-style-font-weight">Weight</label>
843
+ <input class="canvas-input" id="canvas-style-font-weight" type="text" />
844
+ </div>
845
+ <div class="canvas-field">
846
+ <label for="canvas-style-line-height">Line Height</label>
847
+ <input class="canvas-input" id="canvas-style-line-height" type="text" />
848
+ </div>
849
+ <div class="canvas-field">
850
+ <label for="canvas-style-color">Text Color</label>
851
+ <input class="canvas-input" id="canvas-style-color" type="text" />
852
+ </div>
853
+ </div>
854
+ </div>
855
+ <div class="canvas-property-section">
856
+ <h3>Surface</h3>
857
+ <div class="canvas-property-grid">
858
+ <div class="canvas-field">
859
+ <label for="canvas-style-background">Background</label>
860
+ <input class="canvas-input" id="canvas-style-background" type="text" />
861
+ </div>
862
+ <div class="canvas-field">
863
+ <label for="canvas-style-border-color">Border Color</label>
864
+ <input class="canvas-input" id="canvas-style-border-color" type="text" />
865
+ </div>
866
+ <div class="canvas-field">
867
+ <label for="canvas-style-border-width">Border Width</label>
868
+ <input class="canvas-input" id="canvas-style-border-width" type="text" />
869
+ </div>
870
+ <div class="canvas-field">
871
+ <label for="canvas-style-border-radius">Border Radius</label>
872
+ <input class="canvas-input" id="canvas-style-border-radius" type="text" />
873
+ </div>
874
+ <div class="canvas-field">
875
+ <label for="canvas-style-shadow">Shadow</label>
876
+ <input class="canvas-input" id="canvas-style-shadow" type="text" />
877
+ </div>
878
+ </div>
879
+ </div>
880
+ <div class="canvas-property-section">
881
+ <h3>Binding & Accessibility</h3>
882
+ <div class="canvas-property-grid">
883
+ <div class="canvas-field">
884
+ <label for="canvas-binding-kind">Binding Kind</label>
885
+ <input class="canvas-input" id="canvas-binding-kind" type="text" />
886
+ </div>
887
+ <div class="canvas-field">
888
+ <label for="canvas-binding-component">Component Name</label>
889
+ <input class="canvas-input" id="canvas-binding-component" type="text" />
890
+ </div>
891
+ <div class="canvas-field">
892
+ <label for="canvas-binding-selector">Selector</label>
893
+ <input class="canvas-input" id="canvas-binding-selector" type="text" />
894
+ </div>
895
+ <div class="canvas-field">
896
+ <label for="canvas-a11y-role">A11y Role</label>
897
+ <input class="canvas-input" id="canvas-a11y-role" type="text" />
898
+ </div>
899
+ <div class="canvas-field">
900
+ <label for="canvas-a11y-label">A11y Label</label>
901
+ <input class="canvas-input" id="canvas-a11y-label" type="text" />
902
+ </div>
903
+ </div>
904
+ </div>
905
+ <div class="canvas-property-section">
906
+ <h3>Selection Metadata</h3>
907
+ <div class="canvas-summary-list" id="canvas-selection-meta"></div>
908
+ </div>
909
+ </div>
910
+ </section>
911
+ <section class="canvas-panel">
912
+ <div class="canvas-panel-header">
913
+ <h2>Tokens</h2>
914
+ <span class="canvas-panel-subtitle" id="canvas-token-status">Edit collections, modes, aliases, and bindings.</span>
915
+ </div>
916
+ <div class="canvas-property-section">
917
+ <h3>Collections & Modes</h3>
918
+ <div class="canvas-property-grid">
919
+ <div class="canvas-field">
920
+ <label for="canvas-token-collection-select">Collection</label>
921
+ <select class="canvas-page-select" id="canvas-token-collection-select"></select>
922
+ </div>
923
+ <div class="canvas-field">
924
+ <label for="canvas-token-collection-name">New Collection</label>
925
+ <input class="canvas-input" id="canvas-token-collection-name" type="text" placeholder="brand" />
926
+ </div>
927
+ <div class="canvas-field">
928
+ <label>&nbsp;</label>
929
+ <button class="canvas-button" id="canvas-token-collection-create" type="button">Create Collection</button>
930
+ </div>
931
+ <div class="canvas-field">
932
+ <label for="canvas-token-mode-select">Mode</label>
933
+ <select class="canvas-page-select" id="canvas-token-mode-select"></select>
934
+ </div>
935
+ <div class="canvas-field">
936
+ <label for="canvas-token-mode-name">New Mode</label>
937
+ <input class="canvas-input" id="canvas-token-mode-name" type="text" placeholder="night" />
938
+ </div>
939
+ <div class="canvas-field">
940
+ <label>&nbsp;</label>
941
+ <button class="canvas-button" id="canvas-token-mode-create" type="button">Create Mode</button>
942
+ </div>
943
+ </div>
944
+ </div>
945
+ <div class="canvas-property-section">
946
+ <h3>Token Editor</h3>
947
+ <div class="canvas-property-grid">
948
+ <div class="canvas-field">
949
+ <label for="canvas-token-path">Token Path</label>
950
+ <input class="canvas-input" id="canvas-token-path" type="text" placeholder="theme.primary" />
951
+ </div>
952
+ <div class="canvas-field">
953
+ <label for="canvas-token-value">Value</label>
954
+ <input class="canvas-input" id="canvas-token-value" type="text" placeholder="#111827" />
955
+ </div>
956
+ <div class="canvas-field">
957
+ <label for="canvas-token-alias">Alias Target</label>
958
+ <input class="canvas-input" id="canvas-token-alias" type="text" placeholder="theme.primary" />
959
+ </div>
960
+ <div class="canvas-field">
961
+ <label for="canvas-token-binding-property">Bind Property</label>
962
+ <select class="canvas-page-select" id="canvas-token-binding-property">
963
+ <option value="backgroundColor">backgroundColor</option>
964
+ <option value="color">color</option>
965
+ <option value="borderColor">borderColor</option>
966
+ <option value="borderRadius">borderRadius</option>
967
+ <option value="boxShadow">boxShadow</option>
968
+ <option value="fontSize">fontSize</option>
969
+ </select>
970
+ </div>
971
+ <div class="canvas-field">
972
+ <label>&nbsp;</label>
973
+ <button class="canvas-button canvas-button-primary" id="canvas-token-save" type="button">Save Token</button>
974
+ </div>
975
+ <div class="canvas-field">
976
+ <label>&nbsp;</label>
977
+ <button class="canvas-button" id="canvas-token-bind" type="button">Bind Selected Node</button>
978
+ </div>
979
+ <div class="canvas-field">
980
+ <label>&nbsp;</label>
981
+ <button class="canvas-button" id="canvas-token-binding-clear" type="button">Clear Binding</button>
982
+ </div>
983
+ </div>
984
+ </div>
985
+ <div class="canvas-property-section">
986
+ <h3>Usage</h3>
987
+ <div class="canvas-token-list" id="canvas-token-summary"></div>
988
+ <div class="canvas-summary-list" id="canvas-token-usage"></div>
989
+ </div>
990
+ </section>
621
991
  <section class="canvas-panel">
622
992
  <h2>Live Preview</h2>
623
993
  <iframe
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ // This file is injected with chrome.scripting.executeScript, so keep runtime helpers local.
2
3
  const logError = (context, error, options) => {
3
4
  const detail = error instanceof Error
4
5
  ? { message: error.message, name: error.name, stack: error.stack }
@@ -27,6 +28,8 @@ const DEFAULT_OPTIONS = {
27
28
  includeScreenshots: false,
28
29
  debug: true
29
30
  };
31
+ const BOOT_ID = crypto.randomUUID();
32
+ const annotationWindow = window;
30
33
  const state = {
31
34
  session: { requestId: null, options: DEFAULT_OPTIONS, active: false, completed: false },
32
35
  selections: new Map(),
@@ -166,6 +169,7 @@ const teardown = () => {
166
169
  state.hoverIndex = 0;
167
170
  state.session.active = false;
168
171
  state.session.completed = false;
172
+ syncBridgeActive();
169
173
  if (state.root) {
170
174
  state.root.remove();
171
175
  }
@@ -201,6 +205,16 @@ const removeListeners = () => {
201
205
  window.removeEventListener("scroll", scheduleConnectorUpdate, true);
202
206
  window.removeEventListener("resize", scheduleConnectorUpdate, true);
203
207
  };
208
+ const syncBridgeActive = () => {
209
+ if (annotationWindow.__odbAnnotate) {
210
+ annotationWindow.__odbAnnotate.active = state.session.active;
211
+ }
212
+ };
213
+ const buildBridgeStatus = () => ({
214
+ ok: true,
215
+ bootId: BOOT_ID,
216
+ active: state.session.active
217
+ });
204
218
  const isUiElement = (element) => {
205
219
  if (!element)
206
220
  return false;
@@ -221,6 +235,7 @@ const startSession = (requestId, options) => {
221
235
  state.globalNote.value = state.session.options.context;
222
236
  }
223
237
  state.session.active = true;
238
+ syncBridgeActive();
224
239
  addListeners();
225
240
  scheduleConnectorUpdate();
226
241
  };
@@ -253,6 +268,7 @@ const submitSession = async () => {
253
268
  const finalizeSubmission = () => {
254
269
  state.session.completed = true;
255
270
  state.session.active = false;
271
+ syncBridgeActive();
256
272
  removeListeners();
257
273
  if (state.highlight) {
258
274
  state.highlight.style.opacity = "0";
@@ -914,6 +930,15 @@ const describeAnnotationItem = (item) => {
914
930
  const label = item.note?.trim().length ? item.note.trim() : item.text?.trim();
915
931
  return label ? `${selector} — ${label}` : selector;
916
932
  };
933
+ const formatAnnotationDispatchReceipt = (receipt) => {
934
+ if (!receipt) {
935
+ return "Stored only; fetch with annotate --stored";
936
+ }
937
+ if (receipt.deliveryState === "delivered" || receipt.deliveryState === "consumed") {
938
+ return "Delivered to agent";
939
+ }
940
+ return "Stored only; fetch with annotate --stored";
941
+ };
917
942
  const copyPayload = async (annotationIds, button) => {
918
943
  const payload = await buildPayload(annotationIds);
919
944
  const text = JSON.stringify(payload);
@@ -926,7 +951,7 @@ const copyPayload = async (annotationIds, button) => {
926
951
  };
927
952
  const sendPayload = async (annotationIds, source, label, button) => {
928
953
  const payload = await buildPayload(annotationIds);
929
- await new Promise((resolve, reject) => {
954
+ const response = await new Promise((resolve, reject) => {
930
955
  chrome.runtime.sendMessage({
931
956
  type: "annotation:sendPayload",
932
957
  payload,
@@ -938,18 +963,19 @@ const sendPayload = async (annotationIds, source, label, button) => {
938
963
  reject(new Error(lastError.message));
939
964
  return;
940
965
  }
941
- if (!response || response.ok !== true) {
942
- reject(new Error(response?.error?.message ?? "Send failed"));
966
+ const typed = response;
967
+ if (!typed || typed.ok !== true) {
968
+ reject(new Error(typed?.error?.message ?? "Send failed"));
943
969
  return;
944
970
  }
945
- resolve();
971
+ resolve(typed);
946
972
  });
947
973
  });
948
974
  if (button) {
949
- setButtonFeedback(button, "Sent");
975
+ setButtonFeedback(button, formatAnnotationDispatchReceipt(response.receipt));
950
976
  return;
951
977
  }
952
- setCopyFeedback("Sent");
978
+ setCopyFeedback(formatAnnotationDispatchReceipt(response.receipt));
953
979
  };
954
980
  const writeClipboard = async (value) => {
955
981
  if (navigator.clipboard?.writeText) {
@@ -996,11 +1022,30 @@ const setButtonFeedback = (button, label, useSharedTimer = false) => {
996
1022
  state.copyTimeout = restore;
997
1023
  }
998
1024
  };
999
- const bootstrap = () => {
1000
- if (window.__odbAnnotate) {
1001
- return;
1025
+ const handleRuntimeMessage = (message, _sender, sendResponse) => {
1026
+ if (message.type === "annotation:ping") {
1027
+ sendResponse(buildBridgeStatus());
1028
+ return true;
1029
+ }
1030
+ if (message.type === "annotation:toggle") {
1031
+ annotationWindow.__odbAnnotate?.toggle();
1032
+ sendResponse(buildBridgeStatus());
1033
+ return true;
1034
+ }
1035
+ if (message.type === "annotation:start") {
1036
+ annotationWindow.__odbAnnotate?.start(message.requestId, message.options);
1037
+ sendResponse(buildBridgeStatus());
1038
+ return true;
1002
1039
  }
1003
- window.__odbAnnotate = {
1040
+ if (message.type === "annotation:cancel") {
1041
+ annotationWindow.__odbAnnotate?.cancel(message.requestId);
1042
+ sendResponse(buildBridgeStatus());
1043
+ return true;
1044
+ }
1045
+ return false;
1046
+ };
1047
+ const bootstrap = () => {
1048
+ annotationWindow.__odbAnnotate = {
1004
1049
  active: false,
1005
1050
  toggle: () => {
1006
1051
  if (state.session.active) {
@@ -1018,27 +1063,12 @@ const bootstrap = () => {
1018
1063
  },
1019
1064
  cancel: () => cancelSession()
1020
1065
  };
1021
- chrome.runtime.onMessage.addListener((message, _sender, sendResponse) => {
1022
- if (message.type === "annotation:ping") {
1023
- sendResponse({ ok: true });
1024
- return true;
1025
- }
1026
- if (message.type === "annotation:toggle") {
1027
- window.__odbAnnotate?.toggle();
1028
- sendResponse({ ok: true });
1029
- return true;
1030
- }
1031
- if (message.type === "annotation:start") {
1032
- window.__odbAnnotate?.start(message.requestId, message.options);
1033
- sendResponse({ ok: true });
1034
- return true;
1035
- }
1036
- if (message.type === "annotation:cancel") {
1037
- window.__odbAnnotate?.cancel(message.requestId);
1038
- sendResponse({ ok: true });
1039
- return true;
1040
- }
1041
- return false;
1042
- });
1066
+ syncBridgeActive();
1067
+ const previousListener = annotationWindow.__odbAnnotateMessageListener;
1068
+ if (previousListener) {
1069
+ chrome.runtime.onMessage.removeListener?.(previousListener);
1070
+ }
1071
+ annotationWindow.__odbAnnotateMessageListener = handleRuntimeMessage;
1072
+ chrome.runtime.onMessage.addListener(handleRuntimeMessage);
1043
1073
  };
1044
1074
  bootstrap();