opendevbrowser 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/README.md +51 -27
  2. package/dist/browser/annotation-manager.d.ts +3 -0
  3. package/dist/browser/annotation-manager.d.ts.map +1 -1
  4. package/dist/browser/browser-manager.d.ts +6 -1
  5. package/dist/browser/browser-manager.d.ts.map +1 -1
  6. package/dist/browser/canvas-client.d.ts +53 -0
  7. package/dist/browser/canvas-client.d.ts.map +1 -0
  8. package/dist/browser/canvas-code-sync-manager.d.ts +79 -0
  9. package/dist/browser/canvas-code-sync-manager.d.ts.map +1 -0
  10. package/dist/browser/canvas-manager.d.ts +94 -0
  11. package/dist/browser/canvas-manager.d.ts.map +1 -0
  12. package/dist/browser/canvas-runtime-preview-bridge.d.ts +20 -0
  13. package/dist/browser/canvas-runtime-preview-bridge.d.ts.map +1 -0
  14. package/dist/browser/canvas-session-sync-manager.d.ts +21 -0
  15. package/dist/browser/canvas-session-sync-manager.d.ts.map +1 -0
  16. package/dist/browser/manager-types.d.ts +13 -1
  17. package/dist/browser/manager-types.d.ts.map +1 -1
  18. package/dist/browser/ops-browser-manager.d.ts +11 -1
  19. package/dist/browser/ops-browser-manager.d.ts.map +1 -1
  20. package/dist/canvas/code-sync/apply-tsx.d.ts +23 -0
  21. package/dist/canvas/code-sync/apply-tsx.d.ts.map +1 -0
  22. package/dist/canvas/code-sync/graph.d.ts +5 -0
  23. package/dist/canvas/code-sync/graph.d.ts.map +1 -0
  24. package/dist/canvas/code-sync/hash.d.ts +3 -0
  25. package/dist/canvas/code-sync/hash.d.ts.map +1 -0
  26. package/dist/canvas/code-sync/import.d.ts +18 -0
  27. package/dist/canvas/code-sync/import.d.ts.map +1 -0
  28. package/dist/canvas/code-sync/manifest.d.ts +5 -0
  29. package/dist/canvas/code-sync/manifest.d.ts.map +1 -0
  30. package/dist/canvas/code-sync/tsx-adapter.d.ts +8 -0
  31. package/dist/canvas/code-sync/tsx-adapter.d.ts.map +1 -0
  32. package/dist/canvas/code-sync/types.d.ts +152 -0
  33. package/dist/canvas/code-sync/types.d.ts.map +1 -0
  34. package/dist/canvas/code-sync/write.d.ts +9 -0
  35. package/dist/canvas/code-sync/write.d.ts.map +1 -0
  36. package/dist/canvas/document-store.d.ts +81 -0
  37. package/dist/canvas/document-store.d.ts.map +1 -0
  38. package/dist/canvas/export.d.ts +12 -0
  39. package/dist/canvas/export.d.ts.map +1 -0
  40. package/dist/canvas/repo-store.d.ts +10 -0
  41. package/dist/canvas/repo-store.d.ts.map +1 -0
  42. package/dist/canvas/surface-palette.d.ts +15 -0
  43. package/dist/canvas/surface-palette.d.ts.map +1 -0
  44. package/dist/canvas/types.d.ts +255 -0
  45. package/dist/canvas/types.d.ts.map +1 -0
  46. package/dist/canvas-runtime-preview-bridge-HBEHXM4T.js +7 -0
  47. package/dist/canvas-runtime-preview-bridge-HBEHXM4T.js.map +1 -0
  48. package/dist/{chunk-ST7CO5FA.js → chunk-5J3IFL3X.js} +11577 -13539
  49. package/dist/chunk-5J3IFL3X.js.map +1 -0
  50. package/dist/chunk-D633UO34.js +8149 -0
  51. package/dist/chunk-D633UO34.js.map +1 -0
  52. package/dist/{chunk-7W3SPXIB.js → chunk-FUSXMW3G.js} +4 -1
  53. package/dist/chunk-TBUCZX4A.js +34 -0
  54. package/dist/chunk-TBUCZX4A.js.map +1 -0
  55. package/dist/chunk-V7KUDHDG.js +276 -0
  56. package/dist/chunk-V7KUDHDG.js.map +1 -0
  57. package/dist/chunk-Y2KL55OG.js +59 -0
  58. package/dist/chunk-Y2KL55OG.js.map +1 -0
  59. package/dist/cli/args.d.ts +3 -3
  60. package/dist/cli/args.d.ts.map +1 -1
  61. package/dist/cli/commands/annotate.d.ts +11 -0
  62. package/dist/cli/commands/annotate.d.ts.map +1 -1
  63. package/dist/cli/commands/canvas.d.ts +45 -0
  64. package/dist/cli/commands/canvas.d.ts.map +1 -0
  65. package/dist/cli/commands/devtools/perf.d.ts.map +1 -1
  66. package/dist/cli/commands/devtools/screenshot.d.ts +1 -0
  67. package/dist/cli/commands/devtools/screenshot.d.ts.map +1 -1
  68. package/dist/cli/commands/dom/attr.d.ts.map +1 -1
  69. package/dist/cli/commands/dom/checked.d.ts.map +1 -1
  70. package/dist/cli/commands/dom/enabled.d.ts.map +1 -1
  71. package/dist/cli/commands/dom/html.d.ts.map +1 -1
  72. package/dist/cli/commands/dom/text.d.ts.map +1 -1
  73. package/dist/cli/commands/dom/value.d.ts.map +1 -1
  74. package/dist/cli/commands/dom/visible.d.ts.map +1 -1
  75. package/dist/cli/commands/export/clone-component.d.ts +9 -0
  76. package/dist/cli/commands/export/clone-component.d.ts.map +1 -1
  77. package/dist/cli/commands/export/clone-page.d.ts +8 -0
  78. package/dist/cli/commands/export/clone-page.d.ts.map +1 -1
  79. package/dist/cli/commands/interact/check.d.ts.map +1 -1
  80. package/dist/cli/commands/interact/click.d.ts.map +1 -1
  81. package/dist/cli/commands/interact/hover.d.ts.map +1 -1
  82. package/dist/cli/commands/interact/press.d.ts.map +1 -1
  83. package/dist/cli/commands/interact/scroll-into-view.d.ts.map +1 -1
  84. package/dist/cli/commands/interact/scroll.d.ts.map +1 -1
  85. package/dist/cli/commands/interact/select.d.ts.map +1 -1
  86. package/dist/cli/commands/interact/type.d.ts.map +1 -1
  87. package/dist/cli/commands/interact/uncheck.d.ts.map +1 -1
  88. package/dist/cli/commands/native.d.ts +12 -1
  89. package/dist/cli/commands/native.d.ts.map +1 -1
  90. package/dist/cli/commands/nav/goto.d.ts.map +1 -1
  91. package/dist/cli/commands/nav/snapshot.d.ts.map +1 -1
  92. package/dist/cli/commands/nav/wait.d.ts.map +1 -1
  93. package/dist/cli/commands/serve.d.ts +5 -0
  94. package/dist/cli/commands/serve.d.ts.map +1 -1
  95. package/dist/cli/commands/session/connect.d.ts.map +1 -1
  96. package/dist/cli/commands/status.d.ts +5 -0
  97. package/dist/cli/commands/status.d.ts.map +1 -1
  98. package/dist/cli/daemon-commands.d.ts.map +1 -1
  99. package/dist/cli/help.d.ts +5 -0
  100. package/dist/cli/help.d.ts.map +1 -1
  101. package/dist/cli/index.js +724 -163
  102. package/dist/cli/index.js.map +1 -1
  103. package/dist/cli/remote-canvas-manager.d.ts +8 -0
  104. package/dist/cli/remote-canvas-manager.d.ts.map +1 -0
  105. package/dist/cli/remote-manager.d.ts +3 -1
  106. package/dist/cli/remote-manager.d.ts.map +1 -1
  107. package/dist/cli/remote-relay.d.ts +2 -0
  108. package/dist/cli/remote-relay.d.ts.map +1 -1
  109. package/dist/cli/utils/parse.d.ts +1 -0
  110. package/dist/cli/utils/parse.d.ts.map +1 -1
  111. package/dist/core/bootstrap.d.ts.map +1 -1
  112. package/dist/core/types.d.ts +2 -0
  113. package/dist/core/types.d.ts.map +1 -1
  114. package/dist/fs-UMRKOBNN.js +7 -0
  115. package/dist/fs-UMRKOBNN.js.map +1 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +192 -67
  118. package/dist/index.js.map +1 -1
  119. package/dist/{macros-NUBRM44Y.js → macros-ND2M7LWU.js} +2 -2
  120. package/dist/opendevbrowser.d.ts.map +1 -1
  121. package/dist/opendevbrowser.js +192 -67
  122. package/dist/opendevbrowser.js.map +1 -1
  123. package/dist/providers/index.d.ts.map +1 -1
  124. package/dist/providers/shopping/index.d.ts.map +1 -1
  125. package/dist/providers-G3LRHQXX.js +121 -0
  126. package/dist/providers-G3LRHQXX.js.map +1 -0
  127. package/dist/relay/protocol.d.ts +85 -3
  128. package/dist/relay/protocol.d.ts.map +1 -1
  129. package/dist/relay/relay-server.d.ts +14 -1
  130. package/dist/relay/relay-server.d.ts.map +1 -1
  131. package/dist/relay/relay-types.d.ts +3 -0
  132. package/dist/relay/relay-types.d.ts.map +1 -1
  133. package/dist/runtime-factory-BICHDPE7.js +13 -0
  134. package/dist/runtime-factory-BICHDPE7.js.map +1 -0
  135. package/dist/tools/annotate.d.ts.map +1 -1
  136. package/dist/tools/canvas.d.ts +4 -0
  137. package/dist/tools/canvas.d.ts.map +1 -0
  138. package/dist/tools/check.d.ts.map +1 -1
  139. package/dist/tools/click.d.ts.map +1 -1
  140. package/dist/tools/clone_component.d.ts.map +1 -1
  141. package/dist/tools/clone_page.d.ts.map +1 -1
  142. package/dist/tools/connect.d.ts.map +1 -1
  143. package/dist/tools/deps.d.ts +2 -0
  144. package/dist/tools/deps.d.ts.map +1 -1
  145. package/dist/tools/dom_get_html.d.ts.map +1 -1
  146. package/dist/tools/dom_get_text.d.ts.map +1 -1
  147. package/dist/tools/get_attr.d.ts.map +1 -1
  148. package/dist/tools/get_value.d.ts.map +1 -1
  149. package/dist/tools/goto.d.ts.map +1 -1
  150. package/dist/tools/hover.d.ts.map +1 -1
  151. package/dist/tools/index.d.ts.map +1 -1
  152. package/dist/tools/is_checked.d.ts.map +1 -1
  153. package/dist/tools/is_enabled.d.ts.map +1 -1
  154. package/dist/tools/is_visible.d.ts.map +1 -1
  155. package/dist/tools/launch.d.ts.map +1 -1
  156. package/dist/tools/macro_resolve.d.ts.map +1 -1
  157. package/dist/tools/perf.d.ts.map +1 -1
  158. package/dist/tools/press.d.ts.map +1 -1
  159. package/dist/tools/product_video_run.d.ts.map +1 -1
  160. package/dist/tools/research_run.d.ts.map +1 -1
  161. package/dist/tools/response.d.ts +4 -1
  162. package/dist/tools/response.d.ts.map +1 -1
  163. package/dist/tools/screenshot.d.ts.map +1 -1
  164. package/dist/tools/scroll.d.ts.map +1 -1
  165. package/dist/tools/scroll_into_view.d.ts.map +1 -1
  166. package/dist/tools/select.d.ts.map +1 -1
  167. package/dist/tools/shopping_run.d.ts.map +1 -1
  168. package/dist/tools/snapshot.d.ts.map +1 -1
  169. package/dist/tools/type.d.ts.map +1 -1
  170. package/dist/tools/uncheck.d.ts.map +1 -1
  171. package/dist/tools/wait.d.ts.map +1 -1
  172. package/dist/tools/workflow-runtime.d.ts +1 -2
  173. package/dist/tools/workflow-runtime.d.ts.map +1 -1
  174. package/extension/canvas.html +636 -0
  175. package/extension/dist/annotate-content.css +15 -6
  176. package/extension/dist/annotate-content.js +119 -9
  177. package/extension/dist/annotation-payload.js +163 -0
  178. package/extension/dist/background.js +148 -18
  179. package/extension/dist/canvas/canvas-runtime.js +1061 -0
  180. package/extension/dist/canvas/model.js +213 -0
  181. package/extension/dist/canvas/viewport-fit.js +67 -0
  182. package/extension/dist/canvas-page.js +1801 -0
  183. package/extension/dist/ops/dom-bridge.js +116 -3
  184. package/extension/dist/ops/ops-runtime.js +508 -44
  185. package/extension/dist/ops/ops-session-store.js +21 -114
  186. package/extension/dist/ops/target-session-coordinator.js +157 -0
  187. package/extension/dist/popup.js +155 -31
  188. package/extension/dist/services/ConnectionManager.js +17 -0
  189. package/extension/dist/services/RelayClient.js +9 -0
  190. package/extension/dist/services/TabManager.js +35 -12
  191. package/extension/dist/types.js +2 -0
  192. package/extension/manifest.json +1 -1
  193. package/extension/popup.html +52 -0
  194. package/package.json +6 -4
  195. package/skills/AGENTS.md +5 -2
  196. package/skills/opendevbrowser-best-practices/SKILL.md +71 -3
  197. package/skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md +141 -0
  198. package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +113 -17
  199. package/skills/opendevbrowser-best-practices/assets/templates/canvas-blocker-checklist.json +70 -0
  200. package/skills/opendevbrowser-best-practices/assets/templates/canvas-feedback-eval.json +73 -0
  201. package/skills/opendevbrowser-best-practices/assets/templates/canvas-generation-plan.v1.json +67 -0
  202. package/skills/opendevbrowser-best-practices/assets/templates/canvas-handshake-example.json +126 -0
  203. package/skills/opendevbrowser-best-practices/assets/templates/robustness-checklist.json +57 -0
  204. package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +7 -3
  205. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +26 -0
  206. package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +82 -1
  207. package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +225 -84
  208. package/dist/chunk-ST7CO5FA.js.map +0 -1
  209. /package/dist/{chunk-7W3SPXIB.js.map → chunk-FUSXMW3G.js.map} +0 -0
  210. /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)
@@ -43,12 +43,13 @@ Distribution split (current target state):
43
43
  | **Stable refs** | Elements identified by `backendNodeId`, not fragile selectors |
44
44
  | **Security by default** | CDP localhost-only, timing-safe auth, HTML sanitization |
45
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 |
46
+ | **Ops + Canvas + CDP channels** | High-level multi-client `/ops`, dedicated `/canvas`, plus legacy `/cdp` compatibility |
47
47
  | **Relay Hub (FIFO leases)** | Single-owner CDP binding with a FIFO queue for multi-client safety |
48
48
  | **Flat-session routing** | Extension relay uses DebuggerSession sessionId routing (Chrome 125+) |
49
+ | **Design canvas + code sync** | Persist repo-native design documents, attach same-session observers, round-trip bound TSX files, and drive preview tabs with `canvas_html` or opted-in `bound_app_runtime` reconciliation |
49
50
  | **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 |
51
+ | **10 bundled skill directories** | Best practices plus login, forms, data extraction, research, shopping, and product asset workflows |
52
+ | **49 tools** | Complete browser automation coverage, including the design-canvas command surface |
52
53
  | **97% test coverage** | Production-ready with strict TypeScript |
53
54
 
54
55
  ---
@@ -86,13 +87,14 @@ npm pack
86
87
  WORKDIR=$(mktemp -d /tmp/opendevbrowser-first-run-XXXXXX)
87
88
  cd "$WORKDIR"
88
89
  npm init -y
89
- npm install <public-repo-root>/opendevbrowser-0.0.16.tgz
90
+ npm install <public-repo-root>/opendevbrowser-0.0.17.tgz
90
91
  npx --no-install opendevbrowser --help
91
92
  npx --no-install opendevbrowser help
92
93
  ```
93
94
 
94
95
  Full validated flow: [`docs/FIRST_RUN_ONBOARDING.md`](docs/FIRST_RUN_ONBOARDING.md).
95
96
  Dependency/runtime inventory: [`docs/DEPENDENCIES.md`](docs/DEPENDENCIES.md).
97
+ Live CLI inventory/help surface: `npx opendevbrowser --help` or `npx opendevbrowser help`.
96
98
 
97
99
  Use OpenCode only if you want plugin tools. CLI and extension workflows work without OpenCode.
98
100
 
@@ -235,7 +237,13 @@ Use `--output-format json|stream-json` for automation-friendly output.
235
237
 
236
238
  ## Recent Features
237
239
 
238
- ### v0.0.16 (Latest)
240
+ ### v0.0.17 (Latest)
241
+
242
+ - **Design canvas runtime is now shipped end-to-end** across core, CLI, tool, relay, and extension surfaces, including `canvas.html`, overlay control, preview feedback, and repo-backed code sync.
243
+ - **Canvas surface governance and skill-pack coverage** now include current `/canvas` inventories, handshake/blocker templates, and feedback-evaluation artifacts.
244
+ - **Release packaging/docs were refreshed for v0.0.17**, including current tarball examples, extension version sync, release evidence, and public/private cutover guidance.
245
+
246
+ ### v0.0.16
239
247
 
240
248
  - **Release-gate hardening** with dedicated audit/compliance scripts (`audit-zombie-files`, `docs-drift-check`, `chrome-store-compliance-check`) and grouped release-gate tests.
241
249
  - **Live matrix robustness upgrades** across `live-regression-matrix` and `provider-live-matrix` (strict `--release-gate`, extension/CDP recovery paths, deterministic strict-mode semantics).
@@ -296,9 +304,9 @@ See [CHANGELOG.md](CHANGELOG.md) for complete version history.
296
304
 
297
305
  ## Tool Reference
298
306
 
299
- OpenDevBrowser provides **48 tools** organized by category:
307
+ OpenDevBrowser provides **49 tools** organized by category:
300
308
  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).
309
+ Complete source-accurate inventory (tools + CLI + `/ops` + `/canvas` + `/cdp`): [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
302
310
 
303
311
  ### Session Management
304
312
  | Tool | Description |
@@ -371,7 +379,12 @@ Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFAC
371
379
  ### Annotation
372
380
  | Tool | Description |
373
381
  |------|-------------|
374
- | `opendevbrowser_annotate` | Capture interactive annotations via extension relay |
382
+ | `opendevbrowser_annotate` | Capture interactive annotations via direct (CDP) or relay transport |
383
+
384
+ ### Design Canvas
385
+ | Tool | Description |
386
+ |------|-------------|
387
+ | `opendevbrowser_canvas` | Execute typed design-canvas session, attach, code-sync, preview, feedback, and overlay commands |
375
388
 
376
389
  ### Export & Cloning
377
390
  | Tool | Description |
@@ -389,7 +402,7 @@ Complete source-accurate inventory (tools + CLI + `/ops` + `/cdp`): [docs/SURFAC
389
402
 
390
403
  ## Bundled Skills
391
404
 
392
- OpenDevBrowser includes **8 task-specific skill packs**:
405
+ OpenDevBrowser includes **8 OpenDevBrowser-specific skill packs** plus shared `research` and `shopping` compatibility directories that are synced by the installer:
393
406
 
394
407
  | Skill | Purpose |
395
408
  |-------|---------|
@@ -402,6 +415,9 @@ OpenDevBrowser includes **8 task-specific skill packs**:
402
415
  | `opendevbrowser-shopping` | Deterministic multi-provider deal comparison workflows |
403
416
  | `opendevbrowser-product-presentation-asset` | Product screenshot/copy asset collection for presentation pipelines |
404
417
 
418
+ Installer note:
419
+ - `--skills-global` and `--skills-local` copy every directory under `skills/`, including the shared `research/` and `shopping/` packs.
420
+
405
421
  Skills are discovered from (priority order):
406
422
  1. `.opencode/skill/` (project)
407
423
  2. `~/.config/opencode/skill/` (global)
@@ -431,18 +447,20 @@ Extension relay relies on **flat CDP sessions (Chrome 125+)** and uses DebuggerS
431
447
 
432
448
  Relay ops endpoint: `ws://127.0.0.1:<relayPort>/ops`.
433
449
  The connect command also accepts base relay WS URLs (`ws://127.0.0.1:<relayPort>` or `ws://localhost:<relayPort>`) and normalizes them to `/ops`.
450
+ Relay canvas endpoint: `ws://127.0.0.1:<relayPort>/canvas` for design-canvas editor, session attach/lease flow, code-sync, preview, feedback, and overlay flows.
434
451
  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.
452
+ When pairing is enabled, `/ops`, `/canvas`, and `/cdp` require a relay token (`?token=<relayToken>`). Tools and the CLI auto-fetch relay config and tokens.
436
453
 
437
- ## Ops vs CDP
454
+ ## Relay Channels
438
455
 
439
456
  | Channel | What It Does | When to Use It |
440
457
  |---------|---------------|----------------|
441
458
  | **`/ops` (default)** | High-level automation protocol with session ownership, event streaming, and multi-client handling | Preferred extension relay path for modern workflows |
459
+ | **`/canvas`** | Typed design-canvas protocol for session handshakes/attach, live editor sync, TSX code sync, preview tabs, feedback streams, and overlay selection | Use with `opendevbrowser_canvas` or `opendevbrowser canvas` during design-canvas workflows |
442
460
  | **`/cdp` (legacy)** | Low-level CDP relay path with compatibility-focused behavior | Opt-in compatibility mode (`--extension-legacy`) |
443
461
  | **Direct CDP connect** | Attach to Chrome started with `--remote-debugging-port` | Existing debug/browser setups without extension relay |
444
462
 
445
- For full `/ops` command names, `/cdp` envelope details, and mode/flag matrices, see [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
463
+ For full `/ops` and `/canvas` command names, `/cdp` envelope details, and mode/flag matrices, see [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md).
446
464
 
447
465
  ---
448
466
 
@@ -600,10 +618,10 @@ All fields are optional. OpenDevBrowser works with sensible defaults.
600
618
 
601
619
  ## CLI Commands
602
620
 
603
- The CLI is agent-agnostic and supports the full automation surface (session, navigation, interaction, DOM, targets, pages, export, devtools, and annotate).
621
+ The CLI is agent-agnostic and supports the full automation surface (session, navigation, interaction, DOM, targets, pages, export, devtools, annotate, and canvas).
604
622
  All commands listed in the CLI reference are implemented and available in the current codebase.
605
623
  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).
624
+ See [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the source-accurate inventory matrix (CLI commands, 49 tools, `/ops`, `/canvas`, and `/cdp` channel contracts).
607
625
 
608
626
  ### CLI Category Matrix (core command groups)
609
627
 
@@ -615,6 +633,7 @@ See [docs/SURFACE_REFERENCE.md](docs/SURFACE_REFERENCE.md) for the source-accura
615
633
  | Interaction | `click`, `hover`, `press`, `check`, `uncheck`, `type`, `select`, `scroll`, `scroll-into-view` |
616
634
  | Targets/pages | `targets-list`, `target-use`, `target-new`, `target-close`, `page`, `pages`, `page-close` |
617
635
  | DOM | `dom-html`, `dom-text`, `dom-attr`, `dom-value`, `dom-visible`, `dom-enabled`, `dom-checked` |
636
+ | Design canvas | `canvas` |
618
637
  | Export/diagnostics/macro/annotation/power | `clone-page`, `clone-component`, `perf`, `screenshot`, `console-poll`, `network-poll`, `debug-trace-snapshot`, `macro-resolve`, `annotate`, `rpc` |
619
638
 
620
639
  ### Install/Management
@@ -649,6 +668,7 @@ Start the daemon with `npx opendevbrowser serve`, then use:
649
668
  | `npx opendevbrowser select` | Select dropdown option by ref |
650
669
  | `npx opendevbrowser scroll` | Scroll page or element |
651
670
  | `npx opendevbrowser run` | Run a JSON script |
671
+ | `npx opendevbrowser canvas --command canvas.session.open --params '{...}'` | Start or continue a design-canvas workflow through the daemon |
652
672
  | `npx opendevbrowser macro-resolve --expression '@media.search("youtube transcript parity", "youtube", 5)' --execute --timeout-ms 120000` | Execute macro plans with extended timeout for slow runs |
653
673
 
654
674
  Workflow cookie controls (`research run`, `shopping run`, `product-video run`):
@@ -666,7 +686,7 @@ OpenDevBrowser is **secure by default** with defense-in-depth protections:
666
686
  |------------|---------|
667
687
  | **CDP Localhost-Only** | Remote endpoints blocked; hostname normalized to prevent bypass |
668
688
  | **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 |
689
+ | **Origin Validation** | `/extension` requires `chrome-extension://` origin; `/ops`, `/canvas`, `/cdp`, `/annotation`, and `/config`/`/status`/`/pair` allow loopback no-Origin requests |
670
690
  | **PNA Preflights** | HTTP preflights include `Access-Control-Allow-Private-Network: true` when requested |
671
691
  | **Rate Limiting** | 5 handshake attempts/minute per IP, plus HTTP rate limiting for `/config`, `/status`, `/pair` |
672
692
  | **Data Redaction** | Tokens, API keys, sensitive paths auto-redacted |
@@ -752,17 +772,18 @@ Tool Call → Zod Validation → Manager/Runner → CDP/Playwright → Response
752
772
  │ ├── cache/ # Chrome executable resolution
753
773
  │ ├── cli/ # CLI commands, daemon, installers
754
774
  │ ├── core/ # Bootstrap, runtime wiring, ToolDeps
775
+ │ ├── canvas/ # Design-canvas document store, repo IO, export helpers
755
776
  │ ├── devtools/ # Console/network trackers with redaction
756
777
  │ ├── export/ # DOM capture, React emitter, CSS extraction
757
778
  │ ├── relay/ # Extension relay server, protocol types
758
779
  │ ├── skills/ # SkillLoader for skill pack discovery
759
780
  │ ├── snapshot/ # AX-tree snapshots, ref management
760
- │ ├── tools/ # 48 opendevbrowser_* tool definitions
781
+ │ ├── tools/ # 49 opendevbrowser_* tool definitions
761
782
  │ ├── annotate/ # Annotation transports + output shaping
762
783
  │ └── utils/ # Shared utilities
763
784
  ├── extension/ # Chrome extension (relay client)
764
785
  ├── scripts/ # Operational scripts (build/sync/smoke)
765
- ├── skills/ # Bundled skill packs (8 total)
786
+ ├── skills/ # Bundled skill directories (10 total; 8 canonical OpenDevBrowser packs + 2 shared compatibility packs)
766
787
  ├── tests/ # Vitest tests (97% coverage required)
767
788
  └── docs/ # Architecture, CLI, extension, distribution plans
768
789
  ```
@@ -790,19 +811,22 @@ Uniform versioning is required (source of truth: `package.json`):
790
811
  1. Bump `package.json` version.
791
812
  2. Run: `npm run extension:sync`
792
813
  3. Run: `npm run version:check`
793
- 4. Run: `npm run build`
794
- 5. Run: `npm run extension:build`
795
- 6. Run release audits:
814
+ 4. Run: `npm run test:release-gate`
815
+ 5. Run: `npm run build`
816
+ 6. Run: `npm run extension:build`
817
+ 7. Run release audits:
796
818
  - `node scripts/audit-zombie-files.mjs`
797
819
  - `node scripts/docs-drift-check.mjs`
798
820
  - `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`
821
+ - `./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh`
822
+ 8. Run strict live release gates:
823
+ - `node scripts/provider-live-matrix.mjs --release-gate --out artifacts/release/vX.Y.Z/provider-live-matrix.json`
801
824
  - `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`.
825
+ 9. Run first-time global install dry run checklist from `docs/FIRST_RUN_ONBOARDING.md`.
826
+ 10. Run: `npm run extension:pack` (outputs `./opendevbrowser-extension.zip`)
827
+ 11. Run: `npm pack`
828
+ 12. Tag `vX.Y.Z` and let `.github/workflows/release-public.yml` publish npm + GitHub release artifacts.
829
+ 13. Dispatch website content sync to private repo through `.github/workflows/dispatch-private-sync.yml`.
806
830
 
807
831
  Runbooks:
808
832
  - `docs/DISTRIBUTION_PLAN.md`
@@ -7,6 +7,8 @@ export type AnnotationRequestOptions = {
7
7
  targetId?: string;
8
8
  tabId?: number;
9
9
  transport?: AnnotationTransport;
10
+ stored?: boolean;
11
+ includeScreenshots?: boolean;
10
12
  url?: string;
11
13
  screenshotMode?: AnnotationScreenshotMode;
12
14
  debug?: boolean;
@@ -22,6 +24,7 @@ export declare class AnnotationManager {
22
24
  setRelay(relay: RelayLike | undefined): void;
23
25
  setBrowserManager(manager?: BrowserManagerLike): void;
24
26
  requestAnnotation(options: AnnotationRequestOptions): Promise<AnnotationResponse>;
27
+ private requestStored;
25
28
  private canFallbackToRelay;
26
29
  private getRelayEndpoint;
27
30
  private requestDirect;
@@ -1 +1 @@
1
- {"version":3,"file":"annotation-manager.d.ts","sourceRoot":"","sources":["../../src/browser/annotation-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAEV,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EAIpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAqB;gBAEzB,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAMpG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAI5C,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAI/C,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YA4BzE,kBAAkB;IAehC,OAAO,CAAC,gBAAgB;YAKV,aAAa;YAoDb,YAAY;CA+J3B"}
1
+ {"version":3,"file":"annotation-manager.d.ts","sourceRoot":"","sources":["../../src/browser/annotation-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAEV,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EAIpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAqB;gBAEzB,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAMpG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAI5C,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAI/C,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YA+BzE,aAAa;YAmBb,kBAAkB;IAehC,OAAO,CAAC,gBAAgB;YAKV,aAAa;YAoDb,YAAY;CAoM3B"}
@@ -13,6 +13,7 @@ import { type Tier2RuntimeState } from "./fingerprint/tier2-runtime";
13
13
  import { type Tier3RuntimeState } from "./fingerprint/tier3-adaptive";
14
14
  import { type BrowserMode } from "./session-store";
15
15
  import { TargetManager, type TargetInfo } from "./target-manager";
16
+ import { type RuntimePreviewBridgeInput, type RuntimePreviewBridgeResult } from "./canvas-runtime-preview-bridge";
16
17
  export type LaunchOptions = {
17
18
  profile?: string;
18
19
  headless?: boolean;
@@ -26,6 +27,7 @@ export type ConnectOptions = {
26
27
  wsEndpoint?: string;
27
28
  host?: string;
28
29
  port?: number;
30
+ startUrl?: string;
29
31
  };
30
32
  export type ManagedSession = {
31
33
  sessionId: string;
@@ -97,7 +99,9 @@ export declare class BrowserManager {
97
99
  warnings: string[];
98
100
  wsEndpoint?: string;
99
101
  }>;
100
- connectRelay(wsEndpoint: string): Promise<{
102
+ connectRelay(wsEndpoint: string, options?: {
103
+ startUrl?: string;
104
+ }): Promise<{
101
105
  sessionId: string;
102
106
  mode: BrowserMode;
103
107
  activeTargetId: string | null;
@@ -124,6 +128,7 @@ export declare class BrowserManager {
124
128
  };
125
129
  }>;
126
130
  withPage<T>(sessionId: string, targetId: string | null, fn: (page: Page) => Promise<T>): Promise<T>;
131
+ applyRuntimePreviewBridge(sessionId: string, targetId: string | null, input: RuntimePreviewBridgeInput): Promise<RuntimePreviewBridgeResult>;
127
132
  listTargets(sessionId: string, includeUrls?: boolean): Promise<{
128
133
  activeTargetId: string | null;
129
134
  targets: TargetInfo[];
@@ -1 +1 @@
1
- {"version":3,"file":"browser-manager.d.ts","sourceRoot":"","sources":["../../src/browser/browser-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-manager.d.ts","sourceRoot":"","sources":["../../src/browser/browser-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAKtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAyB,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASlE,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE;QACX,KAAK,EAAE,oBAAoB,CAAC;QAC5B,KAAK,EAAE,iBAAiB,CAAC;QACzB,KAAK,EAAE,iBAAiB,CAAC;QACzB,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH,CAAC;AAwCF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC,CAAC;AA6DF,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,0BAA0B,CAAiC;IACnE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,MAAM,CAAmC;gBAErC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IAK1D,OAAO,CAAC,gBAAgB;IA2BxB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAoC1C,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA4IzJ,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAU3J,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAWxI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyFlE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,IAAI,EAAE,WAAW,CAAC;QAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YACL,OAAO,CAAC,EAAE,eAAe,CAAC;YAC1B,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;YAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,iBAAiB,CAAC,EAAE;gBAClB,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;gBAC/C,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;gBACxG,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;KACH,CAAC;IAsBI,QAAQ,CAAC,CAAC,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IASP,yBAAyB,CAC7B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,0BAA0B,CAAC;IAWhC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAWtH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkDlI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAiBzH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBjH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAwEzE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/D,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,kBAAkB,GAAG,MAAM,GAAG,aAAsB,EAC/D,SAAS,SAAQ,EACjB,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,EACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE;YACL,OAAO,CAAC,EAAE,eAAe,CAAC;YAC1B,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;YAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,iBAAiB,CAAC,EAAE;gBAClB,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;gBAC/C,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;gBACxG,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;KACH,CAAC;IAqMI,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,aAAa,EAClD,SAAS,SAAQ,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE;YACL,OAAO,CAAC,EAAE,eAAe,CAAC;YAC1B,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;YAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,iBAAiB,CAAC,EAAE;gBAClB,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;gBAC/C,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;gBACxG,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;KACH,CAAC;IAsBI,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,UAAU,GAAG,SAAS,GAAG,QAAqB,EACrD,SAAS,SAAQ,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE;YACL,OAAO,CAAC,EAAE,eAAe,CAAC;YAC1B,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;YAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,iBAAiB,CAAC,EAAE;gBAClB,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;gBAC/C,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;gBACxG,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;KACH,CAAC;IAuBI,QAAQ,CACZ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,GAAG,aAAa,EAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAWhC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAWlH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAS9F,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAY5G,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAS9F,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAShG,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,UAAQ,EACb,MAAM,UAAQ,EACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB1B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5F,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IASvG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,SAAO,EACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ/C,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,SAAO,EACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ1C,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IA2B9B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAwBjG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAwBnG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAwBnG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAwBnG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAc5E,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAe9F,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAUtH,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAW7D,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,SAAK,GACP,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAKpG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,SAAK,GACP,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAKtG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,SAAK,GACP,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAKpG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACP,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GACL,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE;YAAE,IAAI,EAAE,WAAW,CAAC;YAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzF,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAC,CAAC;gBAC/G,OAAO,EAAE,MAAM,CAAC;gBAChB,SAAS,CAAC,EAAE,OAAO,CAAC;aACrB,CAAC;YACF,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAC,CAAC;gBAC/G,OAAO,EAAE,MAAM,CAAC;gBAChB,SAAS,CAAC,EAAE,OAAO,CAAC;aACrB,CAAC;YACF,SAAS,EAAE;gBACT,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAC,CAAC;gBACjH,OAAO,EAAE,MAAM,CAAC;gBAChB,SAAS,CAAC,EAAE,OAAO,CAAC;aACrB,CAAC;SACH,CAAC;QACF,WAAW,EAAE,UAAU,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE;YACL,OAAO,CAAC,EAAE,eAAe,CAAC;YAC1B,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;YAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,iBAAiB,CAAC,EAAE;gBAClB,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;gBAC/C,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;gBACxG,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;YACF,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;SAC7D,CAAC;KACH,CAAC;IAgEI,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,MAAM,UAAO,EACb,SAAS,SAAoB,GAC5B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAsCjG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,SAAS,SAAoB,GAC5B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAkC7E,OAAO,CAAC,0BAA0B;IAyElC,OAAO,CAAC,uBAAuB;IAmL/B,OAAO,CAAC,kCAAkC;IAyB1C,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,sBAAsB;IAqC9B,OAAO,CAAC,uBAAuB;IAkE/B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,uBAAuB;IAqF/B,OAAO,CAAC,oBAAoB;IA+F5B,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,uBAAuB;IAoC/B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,WAAW;YA2BL,mBAAmB;IA0CjC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,cAAc;YAIR,eAAe;YAsCf,aAAa;IAK3B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,oBAAoB;YAgBd,6BAA6B;IAoD3C,OAAO,CAAC,6BAA6B;YAkBvB,aAAa;IAkB3B,OAAO,CAAC,WAAW;YAUL,mBAAmB;YAkBnB,2BAA2B;IA+BzC,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,6BAA6B;IAKrC,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,4BAA4B;YAsBtB,iBAAiB;YA0BjB,mBAAmB;YAkInB,qBAAqB;IAKnC,OAAO,CAAC,2BAA2B;CAGpC"}
@@ -0,0 +1,53 @@
1
+ import { type CanvasEvent, type CanvasHelloAck } from "../relay/protocol";
2
+ export type CanvasClientOptions = {
3
+ handshakeTimeoutMs?: number;
4
+ pingIntervalMs?: number;
5
+ pingTimeoutMs?: number;
6
+ maxPayloadBytes?: number;
7
+ autoReconnect?: boolean;
8
+ reconnectBaseDelayMs?: number;
9
+ reconnectMaxDelayMs?: number;
10
+ maxMissedPongs?: number;
11
+ onEvent?: (event: CanvasEvent) => void;
12
+ onClose?: (detail?: {
13
+ code?: number;
14
+ reason?: string;
15
+ }) => void;
16
+ };
17
+ export declare class CanvasClient {
18
+ private readonly url;
19
+ private socket;
20
+ private lastHelloAck;
21
+ private connectPromise;
22
+ private pendingRequests;
23
+ private pendingChunks;
24
+ private pendingPings;
25
+ private heartbeatTimer;
26
+ private readonly handshakeTimeoutMs;
27
+ private readonly pingIntervalMs;
28
+ private readonly pingTimeoutMs;
29
+ private readonly maxPayloadBytes;
30
+ private readonly onEvent?;
31
+ private readonly onClose?;
32
+ private autoReconnect;
33
+ private readonly reconnectBaseDelayMs;
34
+ private readonly reconnectMaxDelayMs;
35
+ private reconnectAttempts;
36
+ private reconnectTimer;
37
+ private shouldReconnectOnClose;
38
+ private missedPongs;
39
+ private readonly maxMissedPongs;
40
+ constructor(url: string, options?: CanvasClientOptions);
41
+ connect(): Promise<CanvasHelloAck>;
42
+ disconnect(): void;
43
+ request<T>(command: string, payload?: unknown, canvasSessionId?: string, timeoutMs?: number, leaseId?: string): Promise<T>;
44
+ private handleMessage;
45
+ private handleClose;
46
+ private startHeartbeat;
47
+ private stopHeartbeat;
48
+ private sendPing;
49
+ private send;
50
+ private sendRaw;
51
+ private clearReconnectTimer;
52
+ }
53
+ //# sourceMappingURL=canvas-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-client.d.ts","sourceRoot":"","sources":["../../src/browser/canvas-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,WAAW,EAEhB,KAAK,cAAc,EAKpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAAG;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACjE,CAAC;AAmBF,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAwD;IACjF,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,sBAAsB,CAAQ;IACtC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IAcpD,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAsHxC,UAAU,IAAI,IAAI;IAsBZ,OAAO,CAAC,CAAC,EACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,EACjB,eAAe,CAAC,EAAE,MAAM,EACxB,SAAS,SAAQ,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC;IAkCb,OAAO,CAAC,aAAa;IA0ErB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;YAMP,QAAQ;IA2BtB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,mBAAmB;CAK5B"}
@@ -0,0 +1,79 @@
1
+ import type { CanvasBinding, CanvasDocument, CanvasPatch } from "../canvas/types";
2
+ import type { CodeSyncBindingStatus, CodeSyncConflict, CodeSyncManifest, CodeSyncResolutionPolicy, CodeSyncSessionStatus, CodeSyncUnsupportedFragment } from "../canvas/code-sync/types";
3
+ type ApplyPatches = (patches: CanvasPatch[]) => Promise<{
4
+ documentRevision: number;
5
+ }>;
6
+ export type CanvasCodeSyncPullResult = {
7
+ ok: true;
8
+ bindingStatus: CodeSyncBindingStatus;
9
+ manifest: CodeSyncManifest;
10
+ patchesApplied: number;
11
+ changedNodeIds: string[];
12
+ unsupportedRegions: CodeSyncUnsupportedFragment[];
13
+ documentRevision: number;
14
+ repoPath: string;
15
+ } | {
16
+ ok: false;
17
+ bindingStatus: CodeSyncBindingStatus;
18
+ conflicts: CodeSyncConflict[];
19
+ };
20
+ export type CanvasCodeSyncPushResult = {
21
+ ok: true;
22
+ bindingStatus: CodeSyncBindingStatus;
23
+ manifest: CodeSyncManifest;
24
+ changedNodeIds: string[];
25
+ repoPath: string;
26
+ } | {
27
+ ok: false;
28
+ bindingStatus: CodeSyncBindingStatus;
29
+ conflicts: CodeSyncConflict[];
30
+ };
31
+ export declare class CanvasCodeSyncManager {
32
+ private readonly worktree;
33
+ private readonly onWatchedSourceChanged;
34
+ private readonly sessions;
35
+ constructor(options: {
36
+ worktree: string;
37
+ onWatchedSourceChanged: (canvasSessionId: string, bindingId: string) => Promise<void>;
38
+ });
39
+ bind(options: {
40
+ canvasSessionId: string;
41
+ document: CanvasDocument;
42
+ documentRevision: number;
43
+ binding: CanvasBinding;
44
+ }): Promise<CodeSyncBindingStatus>;
45
+ unbind(canvasSessionId: string, bindingId: string): void;
46
+ getBindingStatus(canvasSessionId: string, documentId: string, binding: CanvasBinding, documentRevision: number): Promise<CodeSyncBindingStatus>;
47
+ getSessionStatus(canvasSessionId: string, attachedClients: number, leaseHolderClientId: string | null): CodeSyncSessionStatus;
48
+ pull(options: {
49
+ canvasSessionId: string;
50
+ document: CanvasDocument;
51
+ documentRevision: number;
52
+ binding: CanvasBinding;
53
+ resolutionPolicy?: CodeSyncResolutionPolicy;
54
+ applyPatches: ApplyPatches;
55
+ }): Promise<CanvasCodeSyncPullResult>;
56
+ push(options: {
57
+ canvasSessionId: string;
58
+ document: CanvasDocument;
59
+ documentRevision: number;
60
+ binding: CanvasBinding;
61
+ resolutionPolicy?: CodeSyncResolutionPolicy;
62
+ }): Promise<CanvasCodeSyncPushResult>;
63
+ resolve(options: {
64
+ canvasSessionId: string;
65
+ document: CanvasDocument;
66
+ documentRevision: number;
67
+ binding: CanvasBinding;
68
+ resolutionPolicy: CodeSyncResolutionPolicy;
69
+ applyPatches: ApplyPatches;
70
+ }): Promise<CanvasCodeSyncPullResult | CanvasCodeSyncPushResult>;
71
+ disposeSession(canvasSessionId: string): void;
72
+ private ensureSession;
73
+ private ensureBindingState;
74
+ private refreshBindingStatus;
75
+ private ensureWatch;
76
+ private recomputeSession;
77
+ }
78
+ export {};
79
+ //# sourceMappingURL=canvas-code-sync-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-code-sync-manager.d.ts","sourceRoot":"","sources":["../../src/browser/canvas-code-sync-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAUlF,OAAO,KAAK,EAEV,qBAAqB,EACrB,gBAAgB,EAEhB,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EAErB,2BAA2B,EAE5B,MAAM,2BAA2B,CAAC;AAwBnC,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtF,MAAM,MAAM,wBAAwB,GAChC;IACA,EAAE,EAAE,IAAI,CAAC;IACT,aAAa,EAAE,qBAAqB,CAAC;IACrC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,2BAA2B,EAAE,CAAC;IAClD,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACC;IACA,EAAE,EAAE,KAAK,CAAC;IACV,aAAa,EAAE,qBAAqB,CAAC;IACrC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC;AAEJ,MAAM,MAAM,wBAAwB,GAChC;IACA,EAAE,EAAE,IAAI,CAAC;IACT,aAAa,EAAE,qBAAqB,CAAC;IACrC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACC;IACA,EAAE,EAAE,KAAK,CAAC;IACV,aAAa,EAAE,qBAAqB,CAAC;IACrC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC;AAEJ,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAgE;IACvG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;gBAEvD,OAAO,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACvF;IAKK,IAAI,CAAC,OAAO,EAAE;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,cAAc,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;KACxB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBlC,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAWlD,gBAAgB,CACpB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,qBAAqB,CAAC;IAMjC,gBAAgB,CACd,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,GACjC,qBAAqB;IAiBlB,IAAI,CAAC,OAAO,EAAE;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,cAAc,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;QAC5C,YAAY,EAAE,YAAY,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAgF/B,IAAI,CAAC,OAAO,EAAE;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,cAAc,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;KAC7C,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA0F/B,OAAO,CAAC,OAAO,EAAE;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,cAAc,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,gBAAgB,EAAE,wBAAwB,CAAC;QAC3C,YAAY,EAAE,YAAY,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IA2BhE,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAc7C,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,kBAAkB;YAsBZ,oBAAoB;IA6ClC,OAAO,CAAC,WAAW;IAwCnB,OAAO,CAAC,gBAAgB;CAkCzB"}
@@ -0,0 +1,94 @@
1
+ import type { OpenDevBrowserConfig } from "../config";
2
+ import type { RelayLike } from "../relay/relay-types";
3
+ import type { BrowserManagerLike } from "./manager-types";
4
+ type CanvasCommandParams = Record<string, unknown>;
5
+ export declare const PUBLIC_CANVAS_COMMANDS: readonly ["canvas.session.open", "canvas.session.attach", "canvas.session.status", "canvas.session.close", "canvas.capabilities.get", "canvas.plan.set", "canvas.plan.get", "canvas.document.load", "canvas.document.patch", "canvas.document.save", "canvas.document.export", "canvas.tab.open", "canvas.tab.close", "canvas.overlay.mount", "canvas.overlay.unmount", "canvas.overlay.select", "canvas.preview.render", "canvas.preview.refresh", "canvas.feedback.poll", "canvas.feedback.subscribe", "canvas.code.bind", "canvas.code.unbind", "canvas.code.pull", "canvas.code.push", "canvas.code.status", "canvas.code.resolve"];
6
+ export type CanvasManagerLike = {
7
+ execute: (command: string, params?: CanvasCommandParams) => Promise<unknown>;
8
+ };
9
+ export declare class CanvasManager implements CanvasManagerLike {
10
+ private readonly worktree;
11
+ private readonly browserManager;
12
+ private readonly config;
13
+ private readonly relay?;
14
+ private readonly sessionSyncManager;
15
+ private readonly codeSyncManager;
16
+ private readonly sessions;
17
+ private canvasClient;
18
+ private canvasEndpoint;
19
+ constructor(options: {
20
+ worktree: string;
21
+ browserManager: BrowserManagerLike;
22
+ config: OpenDevBrowserConfig;
23
+ relay?: RelayLike;
24
+ });
25
+ execute(command: string, params?: CanvasCommandParams): Promise<unknown>;
26
+ private openSession;
27
+ private attachSession;
28
+ private getSessionStatus;
29
+ private closeSession;
30
+ private getCapabilities;
31
+ private setPlan;
32
+ private getPlan;
33
+ private loadDocument;
34
+ private patchDocument;
35
+ private applyDocumentPatches;
36
+ private bindCodeSync;
37
+ private unbindCodeSync;
38
+ private pullCodeSync;
39
+ private pushCodeSync;
40
+ private codeSyncStatus;
41
+ private resolveCodeSync;
42
+ private registerDocumentCodeSyncBindings;
43
+ private handleWatchedSourceChange;
44
+ private saveDocument;
45
+ private exportDocument;
46
+ private openTab;
47
+ private closeTab;
48
+ private mountOverlay;
49
+ private unmountOverlay;
50
+ private selectOverlay;
51
+ private renderPreview;
52
+ private refreshPreview;
53
+ private renderPreviewTarget;
54
+ private pollFeedback;
55
+ private subscribeFeedback;
56
+ private createFeedbackStream;
57
+ private enqueueFeedbackEvent;
58
+ private flushSubscriptionWaiters;
59
+ private completeFeedbackSubscription;
60
+ private completeFeedbackSubscriptions;
61
+ private buildHandshake;
62
+ private buildSessionSummary;
63
+ private requireSession;
64
+ private assertLease;
65
+ private planRequired;
66
+ private revisionConflict;
67
+ private policyViolation;
68
+ private unsupportedTarget;
69
+ private leaseReclaimRequired;
70
+ private emitWarnings;
71
+ private filterFeedback;
72
+ private buildPreflightFeedback;
73
+ private pushFeedback;
74
+ private subscriptionMatchesItem;
75
+ private buildFeedbackSnapshot;
76
+ private getLatestFeedbackCursor;
77
+ private allocatePreviewTarget;
78
+ private collectPerfMetrics;
79
+ private syncLiveViews;
80
+ private syncDesignTab;
81
+ private syncOverlays;
82
+ private syncPreviewTargets;
83
+ private requirePrototype;
84
+ private buildPreviewHtml;
85
+ private requestCanvasExtension;
86
+ private ensureCanvasClient;
87
+ private handleCanvasEvent;
88
+ private mountDirectOverlay;
89
+ private unmountDirectOverlay;
90
+ private syncDirectOverlay;
91
+ private selectDirectOverlay;
92
+ }
93
+ export {};
94
+ //# sourceMappingURL=canvas-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-manager.d.ts","sourceRoot":"","sources":["../../src/browser/canvas-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { CanvasParityArtifact } from "../canvas/types";
2
+ type RuntimePreviewPageLike = {
3
+ evaluate: <TArg, TResult>(pageFunction: (arg: TArg) => TResult | Promise<TResult>, arg: TArg) => Promise<TResult>;
4
+ };
5
+ export type RuntimePreviewBridgeInput = {
6
+ bindingId: string;
7
+ rootSelector: string;
8
+ html: string;
9
+ };
10
+ export type RuntimePreviewBridgeResult = {
11
+ ok: true;
12
+ artifact: CanvasParityArtifact;
13
+ } | {
14
+ ok: false;
15
+ fallbackReason: "runtime_bridge_unavailable" | "runtime_projection_unsupported" | "runtime_projection_failed" | "runtime_instrumentation_missing" | "fallback_canvas_html";
16
+ message: string;
17
+ };
18
+ export declare function applyRuntimePreviewBridge(page: RuntimePreviewPageLike, input: RuntimePreviewBridgeInput): Promise<RuntimePreviewBridgeResult>;
19
+ export {};
20
+ //# sourceMappingURL=canvas-runtime-preview-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-runtime-preview-bridge.d.ts","sourceRoot":"","sources":["../../src/browser/canvas-runtime-preview-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC;IACA,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GACC;IACA,EAAE,EAAE,KAAK,CAAC;IACV,cAAc,EACV,4BAA4B,GAC5B,gCAAgC,GAChC,2BAA2B,GAC3B,iCAAiC,GACjC,sBAAsB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAwDrC"}
@@ -0,0 +1,21 @@
1
+ import type { CanvasAttachedClient } from "../canvas/types";
2
+ import type { CodeSyncAttachMode, CodeSyncLeaseRole } from "../canvas/code-sync/types";
3
+ export type CanvasSessionAttachResult = {
4
+ clientId: string;
5
+ leaseId: string;
6
+ leaseHolderClientId: string;
7
+ attachedClients: CanvasAttachedClient[];
8
+ role: CodeSyncLeaseRole;
9
+ attachMode: CodeSyncAttachMode;
10
+ };
11
+ export declare class CanvasSessionSyncManager {
12
+ private readonly sessions;
13
+ initializeSession(canvasSessionId: string, leaseId: string, clientId?: string | null): CanvasSessionAttachResult;
14
+ attach(canvasSessionId: string, leaseId: string, clientId?: string | null, attachMode?: CodeSyncAttachMode): CanvasSessionAttachResult;
15
+ touch(canvasSessionId: string, clientId?: string | null): void;
16
+ updateLease(canvasSessionId: string, leaseId: string): void;
17
+ listAttachedClients(canvasSessionId: string): CanvasAttachedClient[];
18
+ getLeaseHolderClientId(canvasSessionId: string): string | null;
19
+ removeSession(canvasSessionId: string): void;
20
+ }
21
+ //# sourceMappingURL=canvas-session-sync-manager.d.ts.map