collabmd 0.1.48 → 0.1.49

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 (268) hide show
  1. package/README.md +61 -5
  2. package/bin/collabmd.js +3 -0
  3. package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-C-nmgL5g.js +1 -0
  4. package/dist/client/assets/abnfDiagram-VCTEODGH-CdVZqicp.js +1 -0
  5. package/dist/client/assets/{architectureDiagram-5GKGNRK7-I39sYjHI.js → architectureDiagram-5GKGNRK7-wUo0bXif.js} +3 -3
  6. package/dist/client/assets/{blockDiagram-NRAW4CY4-C6DtJy5Y.js → blockDiagram-I7D4REHJ-BRSK3m49.js} +4 -4
  7. package/dist/client/assets/browser-utils-DbXSMI-6.js +1 -0
  8. package/dist/client/assets/{c4Diagram-UCG6FXSJ-CtWtxS9_.js → c4Diagram-7LVT6UL2-yD2poxqw.js} +1 -1
  9. package/dist/client/assets/channel-Fa4GS_-F.js +1 -0
  10. package/dist/client/assets/chunk-2E4U76K2-BPnTT-J3.js +2 -0
  11. package/dist/client/assets/{chunk-TEH6E4GO-DVayPj-q.js → chunk-4HAMMTFA-DStbIfJ1.js} +20 -20
  12. package/dist/client/assets/{chunk-75Z2AOVW-CdFSaPjz.js → chunk-75Z2AOVW-C5pGd3W9.js} +1 -1
  13. package/dist/client/assets/{chunk-CLGD4ZFX-DQLgbQrv.js → chunk-CLGD4ZFX-BMeArk03.js} +1 -1
  14. package/dist/client/assets/chunk-DU6HZSFF-Zkp69c6c.js +127 -0
  15. package/dist/client/assets/{chunk-F27PBJKO-CNHIFhjo.js → chunk-F27PBJKO-D4xNct1r.js} +1 -1
  16. package/dist/client/assets/{chunk-GMAD6QVW-CbcBqPM5.js → chunk-GMAD6QVW-NZ6WpDb8.js} +1 -1
  17. package/dist/client/assets/{chunk-OBVCFTLP-BJR7u1jh.js → chunk-GVQU2GXP-D8SDprfX.js} +1 -1
  18. package/dist/client/assets/{chunk-G27WJ6UU-D9-eg537.js → chunk-IMKFNOWR-D8jEuU3Q.js} +2 -2
  19. package/dist/client/assets/{chunk-JQ64N6SF-DSFNH4bh.js → chunk-L3NEJ4N5-aijKP-eh.js} +1 -1
  20. package/dist/client/assets/chunk-OSK3NFVY-CCbLQAMa.js +10 -0
  21. package/dist/client/assets/{chunk-P2QGCYS3-BRpqY32H.js → chunk-P2QGCYS3-Oag_FdCq.js} +1 -1
  22. package/dist/client/assets/{chunk-POPQ4Y6H-Cb4SlVZF.js → chunk-POPQ4Y6H-CYnpIgXT.js} +1 -1
  23. package/dist/client/assets/{chunk-PWAF6VOD-Cz8IwBB5.js → chunk-PWAF6VOD-JSNrcBmP.js} +1 -1
  24. package/dist/client/assets/{chunk-RM4UPSZO-CWRwxNWJ.js → chunk-RM4UPSZO-DOWllDY8.js} +4 -4
  25. package/dist/client/assets/{chunk-RHFEMEQ7-CWY8cf4H.js → chunk-SHT3W25Y-BiQGljao.js} +5 -5
  26. package/dist/client/assets/{chunk-SVP7TREG-CyHOmcac.js → chunk-SVP7TREG-DB485R5x.js} +1 -1
  27. package/dist/client/assets/{chunk-LCL6LL3I-DmDkVukh.js → chunk-TICWLB2K-8rAVvoS3.js} +4 -4
  28. package/dist/client/assets/{chunk-CKBBP62Z-DG26UiBv.js → chunk-TLUHSLCS-DTY5v0aj.js} +2 -2
  29. package/dist/client/assets/classDiagram-ZZMXUADV-BsQWoR3Q.js +1 -0
  30. package/dist/client/assets/classDiagram-v2-VYDZK3BY-BsQWoR3Q.js +1 -0
  31. package/dist/client/assets/{comment-thread-store-CdcwrObc.js → comment-thread-store-CX98zR6q.js} +1 -1
  32. package/dist/client/assets/comment-threads-BnRwo5B9.js +4 -0
  33. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-CdTPi2yO.js → cynefinDiagram-5FMLGOSQ-rTz9RhFH.js} +1 -1
  34. package/dist/client/assets/{dagre-3AP2YEHR-5gtJtd0O.js → dagre-GXQ25YYZ-Cr67wLpQ.js} +2 -2
  35. package/dist/client/assets/{diagram-S7CK7UJ4-BudWz9WU.js → diagram-S7CK7UJ4-DywERe__.js} +2 -2
  36. package/dist/client/assets/{diagram-UQ7AKVKN-3v4rbH-s.js → diagram-UQ7AKVKN-CNYlXtu4.js} +1 -1
  37. package/dist/client/assets/diagram-VSXAHHWV-0H1a61Bn.js +3 -0
  38. package/dist/client/assets/{diagram-VX7I27RA-C_-rj0sw.js → diagram-VX7I27RA-CsJbsx5F.js} +1 -1
  39. package/dist/client/assets/{diagram-Z3DM3KII-B4yxavgj.js → diagram-Z3DM3KII-D0mLxEgI.js} +1 -1
  40. package/dist/client/assets/dist--hk9I5HQ.js +1 -0
  41. package/dist/client/assets/{dist-DutPuFmC.js → dist-B1XEa-Zs.js} +1 -1
  42. package/dist/client/assets/dist-Bd1JucQF.js +1 -0
  43. package/dist/client/assets/{dist-DZAAWTG-.js → dist-C0G3AaXG.js} +1 -1
  44. package/dist/client/assets/dist-Dm4w5UId.js +1 -0
  45. package/dist/client/assets/{dist-B_yQaEv_.js → dist-DpYDHR9p.js} +1 -1
  46. package/dist/client/assets/{dist-CietwTVS.js → dist-DzNmC81X.js} +1 -1
  47. package/dist/client/assets/{dist-DDUn5zTz.js → dist-GvvCNBe4.js} +1 -1
  48. package/dist/client/assets/dist-JaU3aRlD.js +19 -0
  49. package/dist/client/assets/{dist-Bw3VIE_v.js → dist-TW8iFRyW.js} +1 -1
  50. package/dist/client/assets/{dist-Dir5dDKZ.js → dist-jVU5Be5P.js} +1 -1
  51. package/dist/client/assets/document-formatter-rDDjRfZ2.js +2 -0
  52. package/dist/client/assets/drawioEditor-JubEEha7.js +9 -0
  53. package/dist/client/assets/ebnfDiagram-PWID7BFC-HeTxHpCU.js +1 -0
  54. package/dist/client/assets/editor-session-Bk6oIvSr.js +54 -0
  55. package/dist/client/assets/{embedded-editor-base-B3l6Xy65.css → embedded-editor-base-BlCgz6mw.css} +1 -1
  56. package/dist/client/assets/{erDiagram-SSCWMZ5O-C-iy6VkX.js → erDiagram-RLTQ6QDP-CbrDdd5P.js} +2 -2
  57. package/dist/client/assets/{vault-utils-DvoSftJT.js → es-Bfdp096f.js} +13 -13
  58. package/dist/client/assets/excalidraw-element-link-YLIaTnVF.js +7 -0
  59. package/dist/client/assets/{excalidraw-scene-BOben2gr.js → excalidraw-scene-6uROebca.js} +1 -1
  60. package/dist/client/assets/excalidrawEditor-dBMbRX_S.js +9 -0
  61. package/dist/client/assets/export-page-CRRQ2NEl.js +57 -0
  62. package/dist/client/assets/exportDocument-BlQRd9_m.js +2 -0
  63. package/dist/client/assets/exportDocument-CNSbjZwu.css +1 -0
  64. package/dist/client/assets/flowDiagram-HODETNUW-D5Gy0wmg.js +1 -0
  65. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-DtKHAbez.js → ganttDiagram-EL5Y4UJY-BHgOYiZz.js} +1 -1
  66. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-oue8fQ5o.js → gitGraphDiagram-WWUBYQGX-Dl__X3Sk.js} +1 -1
  67. package/dist/client/assets/image-ZVKINSPA-DgzW5zAy.js +1 -0
  68. package/dist/client/assets/index-D3RER1SZ.js +1023 -0
  69. package/dist/client/assets/index-DREVKl_K.css +1 -0
  70. package/dist/client/assets/{infoDiagram-RXCK75RN-BMzo6KIn.js → infoDiagram-27XIBGKW-DBpoANC9.js} +1 -1
  71. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-BIM3h287.js → ishikawaDiagram-5VMMS53U-BMPC6hfp.js} +1 -1
  72. package/dist/client/assets/{journeyDiagram-EYS64GPL-mF6Lh8O-.js → journeyDiagram-3NMN7TZE-B1sApUmM.js} +2 -2
  73. package/dist/client/assets/{kanban-definition-3QL26DDD-DLN2NyoR.js → kanban-definition-UXKFOSKX-C9yP4td1.js} +4 -4
  74. package/dist/client/assets/{line-BfTWJmgf.js → line-BFl3ujec.js} +1 -1
  75. package/dist/client/assets/mermaid.core-BrY09czX.js +11 -0
  76. package/dist/client/assets/mermaid.core-DfcNfOTv.js +1 -0
  77. package/dist/client/assets/{mindmap-definition-FBJOCRG2-CRyHaHTk.js → mindmap-definition-YA3MSWOX-BUQHcYbK.js} +8 -8
  78. package/dist/client/assets/pegDiagram-XKGWAZYB-Bi2Iml7Z.js +1 -0
  79. package/dist/client/assets/{pieDiagram-E7YTZNPT-B5OZPb88.js → pieDiagram-E7YTZNPT-_gYXnMoi.js} +1 -1
  80. package/dist/client/assets/preview-render-compiler-CfxJYldJ.js +41 -0
  81. package/dist/client/assets/preview-render-compiler-Cu8_i9iS.js +1 -0
  82. package/dist/client/assets/{preview-render-worker-_QTxqKvP.js → preview-render-worker-c4Yi93qW.js} +41 -35
  83. package/dist/client/assets/prod-BiJL30sl.js +1 -0
  84. package/dist/client/assets/prod-qAk7rHa4.js +177 -0
  85. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-Drrw14YH.js → quadrantDiagram-AXDQQJYC-DwexhEhd.js} +1 -1
  86. package/dist/client/assets/quick-switcher-controller-BoIK_wuG.js +1 -0
  87. package/dist/client/assets/railroadDiagram-O6MQD6OU-BVA5UbMu.js +1 -0
  88. package/dist/client/assets/{requirementDiagram-EFPCY7ZU-CRZG6mRB.js → requirementDiagram-BXWQKSXE-C4cKwiIw.js} +2 -2
  89. package/dist/client/assets/runtime-config-DcmnGcXU.js +1 -0
  90. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-DvarEJpo.js → sankeyDiagram-P5KCCOFB-B5HHkRT2.js} +1 -1
  91. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-B4oWlb-w.js → sequenceDiagram-WJ2MYXX4-BX6jqJFD.js} +6 -6
  92. package/dist/client/assets/{stateDiagram-HBIQ2CUA-qbHIIqRZ.js → stateDiagram-D77RDMKH-CmqxyRGx.js} +1 -1
  93. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-zoLLQVyh.js +1 -0
  94. package/dist/client/assets/{swimlanes-XN3QIQJK-xB6CtUGj.js → swimlanes-42K2YHIH-Bmgb9Zld.js} +1 -1
  95. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DS-KQN37.js +8 -0
  96. package/dist/client/assets/{timeline-definition-24CTP7MA-Lj_yTNlY.js → timeline-definition-24CTP7MA-BA-lVH6P.js} +1 -1
  97. package/dist/client/assets/vault-api-client-iZLhMJKe.js +6 -0
  98. package/dist/client/assets/{vennDiagram-4TSXK5OY-BekRp5Y0.js → vennDiagram-4TSXK5OY-DNdUC_Xj.js} +1 -1
  99. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-kdnV_Hdm.js → wardleyDiagram-VM6X3IG4-C2oY-YbF.js} +1 -1
  100. package/dist/client/assets/wiki-link-resolver-DFIwErjc.js +1 -0
  101. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-DufGwNSB.js → xychartDiagram-S5SC5T6Z-CoIR8CBX.js} +1 -1
  102. package/dist/client/assets/{yjs-provider-reset-guard-DE0vINDP.js → yjs-provider-reset-guard-9ul1qF6k.js} +1 -1
  103. package/dist/client/drawio-editor.html +11 -3
  104. package/dist/client/excalidraw-editor.html +45 -2
  105. package/dist/client/export-document.html +3 -3
  106. package/dist/client/index.html +67 -35
  107. package/integrations/pi/index.ts +94 -0
  108. package/package.json +41 -32
  109. package/src/client/app/drawio-editor.html +2 -2
  110. package/src/client/app/excalidraw-editor.html +2 -2
  111. package/src/client/app/export-document.html +1 -1
  112. package/src/client/app/index.html +49 -33
  113. package/src/client/app/main-entry.js +15 -1
  114. package/src/client/application/app-shell/chat-feature.js +7 -22
  115. package/src/client/application/app-shell/git-feature.js +23 -5
  116. package/src/client/application/app-shell/presence-feature.js +8 -25
  117. package/src/client/application/app-shell/ui-feature-shell.js +36 -91
  118. package/src/client/application/app-shell/ui-feature-sidebar.js +43 -7
  119. package/src/client/application/app-shell/ui-feature-tab-activity.js +19 -6
  120. package/src/client/application/app-shell/ui-feature-toolbar.js +16 -129
  121. package/src/client/application/app-shell-elements.js +4 -0
  122. package/src/client/application/preview-render-compiler.js +1 -87
  123. package/src/client/application/preview-render-scheduler.js +8 -24
  124. package/src/client/application/preview-renderer.js +2 -2
  125. package/src/client/application/webmcp-diagram-renderer.js +47 -0
  126. package/src/client/application/workspace-coordinator.js +3 -1
  127. package/src/client/application/workspace-route-controller.js +7 -0
  128. package/src/client/bootstrap/collabmd-app-shell.js +78 -1
  129. package/src/client/domain/excalidraw-element-link.js +73 -0
  130. package/src/client/domain/excalidraw-scene.js +21 -0
  131. package/src/client/domain/hash-routes.js +8 -0
  132. package/src/client/domain/room.js +1 -5
  133. package/src/client/domain/runtime-paths.js +5 -0
  134. package/src/client/excalidraw-editor.js +135 -10
  135. package/src/client/export/export-host.js +3 -1
  136. package/src/client/export/export-pipeline.js +4 -17
  137. package/src/client/infrastructure/agent-connection-api-client.js +23 -0
  138. package/src/client/infrastructure/auth-client.js +3 -13
  139. package/src/client/infrastructure/editor-session.js +11 -0
  140. package/src/client/infrastructure/editor-view-adapter.js +13 -0
  141. package/src/client/infrastructure/excalidraw-room-client.js +80 -1
  142. package/src/client/infrastructure/git-api-client.js +39 -33
  143. package/src/client/infrastructure/lobby-presence.js +2 -5
  144. package/src/client/infrastructure/runtime-config.js +11 -1
  145. package/src/client/infrastructure/tab-activity-lock.js +2 -5
  146. package/src/client/infrastructure/vault-api-client.js +33 -26
  147. package/src/client/infrastructure/webmcp-tool-registry.js +283 -0
  148. package/src/client/infrastructure/workspace-sync-client.js +6 -4
  149. package/src/client/presentation/agent-connection-controller.js +255 -0
  150. package/src/client/presentation/backlinks-panel.js +3 -0
  151. package/src/client/presentation/bases-preview-controller.js +27 -18
  152. package/src/client/presentation/comment-ui/comment-ui-card.js +4 -2
  153. package/src/client/presentation/create-menu-presenter.js +19 -16
  154. package/src/client/presentation/excalidraw-embed-controller.js +164 -4
  155. package/src/client/presentation/file-explorer-view.js +70 -12
  156. package/src/client/presentation/file-history-view-controller.js +13 -11
  157. package/src/client/presentation/git-diff-view-controller.js +35 -43
  158. package/src/client/presentation/git-panel-controller.js +77 -27
  159. package/src/client/presentation/image-lightbox-controller.js +20 -16
  160. package/src/client/presentation/layout-controller.js +3 -1
  161. package/src/client/presentation/quick-switcher-controller.js +20 -78
  162. package/src/client/presentation/quick-switcher-text-search.js +10 -14
  163. package/src/client/styles/components/navigation.css +1 -2
  164. package/src/client/styles/features/agent-connection.css +202 -0
  165. package/src/client/styles/features/collaboration-chat.css +8 -1
  166. package/src/client/styles/features/collaboration-dialogs.css +16 -1
  167. package/src/client/styles/features/collaboration-presence.css +17 -4
  168. package/src/client/styles/features/diff-toolbar.css +1 -1
  169. package/src/client/styles/features/media-lightbox.css +12 -3
  170. package/src/client/styles/features/quick-switcher.css +20 -11
  171. package/src/client/styles/foundation/themes.css +2 -0
  172. package/src/client/styles/layout/editor-page.css +25 -11
  173. package/src/client/styles/layout/responsive.css +2 -20
  174. package/src/client/styles/layout/shell.css +1 -0
  175. package/src/client/styles/layout/sidebar.css +7 -4
  176. package/src/client/styles/primitives/controls.css +21 -54
  177. package/src/client/styles/style.css +1 -0
  178. package/src/domain/agent-tool-definitions.js +796 -0
  179. package/src/domain/collabmd-content-capabilities.js +149 -0
  180. package/src/domain/collaboration-protocol.js +2 -0
  181. package/src/domain/comment-threads.js +3 -5
  182. package/src/domain/diagram-source.js +50 -0
  183. package/src/domain/editable-content-revision.js +10 -0
  184. package/src/domain/editable-text.js +3 -0
  185. package/src/domain/exact-text-edits.js +69 -0
  186. package/src/domain/excalidraw-agent-scene.js +522 -0
  187. package/src/domain/excalidraw-agent-verification.js +460 -0
  188. package/src/domain/excalidraw-room-codec.js +1 -5
  189. package/src/domain/video-embed.js +76 -0
  190. package/src/server/application/agent-connection-service.js +178 -0
  191. package/src/server/application/agent-content-service.js +773 -0
  192. package/src/server/application/workspace-reconciliation.js +5 -7
  193. package/src/server/config/env.js +51 -1
  194. package/src/server/create-app-server.js +36 -0
  195. package/src/server/domain/bases/base-query-service.js +1 -5
  196. package/src/server/domain/collaboration/collaboration-room.js +121 -25
  197. package/src/server/domain/collaboration/protocol.js +4 -0
  198. package/src/server/domain/hosted-workspace.js +21 -0
  199. package/src/server/domain/markdown-reference-extractor.js +15 -1
  200. package/src/server/infrastructure/git/git-service.js +19 -1
  201. package/src/server/infrastructure/git/history-service.js +1 -1
  202. package/src/server/infrastructure/git/local-exclude.js +25 -0
  203. package/src/server/infrastructure/git/parsers.js +19 -17
  204. package/src/server/infrastructure/git/path-utils.js +0 -16
  205. package/src/server/infrastructure/git/status-service.js +1 -1
  206. package/src/server/infrastructure/git/untracked-files.js +12 -21
  207. package/src/server/infrastructure/http/create-agent-api-handler.js +171 -0
  208. package/src/server/infrastructure/http/create-git-api-command-handler.js +32 -0
  209. package/src/server/infrastructure/http/create-request-handler.js +28 -0
  210. package/src/server/infrastructure/http/create-static-handler.js +6 -0
  211. package/src/server/infrastructure/mcp/create-agent-mcp-handler.js +199 -0
  212. package/src/server/infrastructure/persistence/agent-connection-store.js +120 -0
  213. package/src/server/infrastructure/persistence/pull-backup-store.js +2 -27
  214. package/src/server/infrastructure/persistence/vault-file-store.js +9 -2
  215. package/src/server/shared/agent-tool-image.js +22 -0
  216. package/src/server/shared/agent-tool-rate-limiter.js +20 -0
  217. package/src/server/startup/git-remote-bootstrap.js +5 -33
  218. package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-BPH4FJkv.js +0 -1
  219. package/dist/client/assets/abnfDiagram-VCTEODGH-BNDLzJ7L.js +0 -1
  220. package/dist/client/assets/browser-utils--H_DkyEF.js +0 -1
  221. package/dist/client/assets/channel-CaoKA_We.js +0 -1
  222. package/dist/client/assets/chunk-DSNCTWBM-8xkug7fQ.js +0 -2
  223. package/dist/client/assets/chunk-DU6HZSFF-COXDzJK1.js +0 -127
  224. package/dist/client/assets/chunk-R7TYR2AO-CTd0Yj98.js +0 -10
  225. package/dist/client/assets/classDiagram-DTDB5LWJ-7fEmn0zV.js +0 -1
  226. package/dist/client/assets/classDiagram-v2-JRS7N3AN-7fEmn0zV.js +0 -1
  227. package/dist/client/assets/comment-threads-9J6Em-_y.js +0 -4
  228. package/dist/client/assets/comment-ui-shared-DuoyznXW.js +0 -7
  229. package/dist/client/assets/diagram-VSXAHHWV-CQRVEZR7.js +0 -3
  230. package/dist/client/assets/dist-73RPdcyU.js +0 -1
  231. package/dist/client/assets/dist-CH-sQu3r.js +0 -1
  232. package/dist/client/assets/document-formatter-Dxl_a8XO.js +0 -2
  233. package/dist/client/assets/drawio-editor-BVaNNtYp.js +0 -9
  234. package/dist/client/assets/drawioEditor-BkIBlXx0.js +0 -2
  235. package/dist/client/assets/ebnfDiagram-PWID7BFC-OXa8VEp1.js +0 -1
  236. package/dist/client/assets/editor-session-DMyVdHLj.js +0 -54
  237. package/dist/client/assets/excalidraw-editor-BjYaNEMY.js +0 -9
  238. package/dist/client/assets/excalidraw-mermaid-stub-BNckbX2n.js +0 -1
  239. package/dist/client/assets/excalidraw-mermaid-stub-DE5FTiZB.js +0 -1
  240. package/dist/client/assets/excalidrawEditor-ChqF_d82.js +0 -2
  241. package/dist/client/assets/export-page-Dyu0XCbu.js +0 -57
  242. package/dist/client/assets/exportDocument-CJBx4Xjx.css +0 -1
  243. package/dist/client/assets/exportDocument-Dgvfa2Sd.js +0 -2
  244. package/dist/client/assets/flowDiagram-A5DVABFB-CiW1eN8C.js +0 -1
  245. package/dist/client/assets/image-ZVKINSPA-0zXSnE7M.js +0 -1
  246. package/dist/client/assets/index-CSNIMyOP.css +0 -1
  247. package/dist/client/assets/index-DG3N2Ps-.js +0 -2
  248. package/dist/client/assets/main-D0wCxpVn.js +0 -903
  249. package/dist/client/assets/mermaid.core-BJRLUQZE.js +0 -11
  250. package/dist/client/assets/pegDiagram-XKGWAZYB-B31fKPR2.js +0 -1
  251. package/dist/client/assets/preview-render-compiler-CrJIooVD.js +0 -35
  252. package/dist/client/assets/preview-render-compiler-O0JxBVNF.js +0 -1
  253. package/dist/client/assets/preview-render-profile-B4RWYWHt.js +0 -1
  254. package/dist/client/assets/prod-BiYPMR1i.js +0 -177
  255. package/dist/client/assets/prod-VxdGZ5Ly.js +0 -1
  256. package/dist/client/assets/quick-switcher-controller-CaEjEtq_.js +0 -1
  257. package/dist/client/assets/railroadDiagram-O6MQD6OU-BPifP0MB.js +0 -1
  258. package/dist/client/assets/runtime-config-BLrEKVO1.js +0 -1
  259. package/dist/client/assets/stateDiagram-v2-4QOOHH4V-B--gjrit.js +0 -1
  260. package/dist/client/assets/swimlanesDiagram-VK2B7HYN-DO8XNXEg.js +0 -8
  261. package/dist/client/assets/vault-api-client-BkwdFjx0.js +0 -6
  262. package/src/client/app/drawio-editor-entry.js +0 -1
  263. package/src/client/app/excalidraw-editor-entry.js +0 -1
  264. package/src/client/excalidraw-mermaid-stub.js +0 -7
  265. package/src/client/main.js +0 -16
  266. /package/dist/client/assets/{drawio-editor-UQQ8XHou.css → drawioEditor-UQQ8XHou.css} +0 -0
  267. /package/dist/client/assets/{excalidraw-editor-BbSbI80a.css → excalidrawEditor-BbSbI80a.css} +0 -0
  268. /package/dist/client/assets/{sizeCapture-X5ZJPWSS-B0uUizjq.js → sizeCapture-INFHLROL-B0uUizjq.js} +0 -0
@@ -7,20 +7,16 @@ export function formatMatchCount(count = 0, { truncated = false } = {}) {
7
7
  }
8
8
 
9
9
  export function flattenTextResults(payload = {}) {
10
- const flattened = [];
11
- (payload.files ?? []).forEach((fileGroup) => {
12
- (fileGroup.snippets ?? []).forEach((snippet) => {
13
- flattened.push({
14
- column: snippet.column,
15
- file: fileGroup.file,
16
- kind: fileGroup.kind,
17
- line: snippet.line,
18
- matchLength: Math.max((snippet.matchEnd ?? 0) - (snippet.matchStart ?? 0), 0),
19
- snippet,
20
- });
21
- });
22
- });
23
- return flattened;
10
+ return (payload.files ?? []).flatMap((fileGroup) => (
11
+ (fileGroup.snippets ?? []).map((snippet) => ({
12
+ column: snippet.column,
13
+ file: fileGroup.file,
14
+ kind: fileGroup.kind,
15
+ line: snippet.line,
16
+ matchLength: Math.max((snippet.matchEnd ?? 0) - (snippet.matchStart ?? 0), 0),
17
+ snippet,
18
+ }))
19
+ ));
24
20
  }
25
21
 
26
22
  export class QuickSwitcherTextSearchRunner {
@@ -1,7 +1,6 @@
1
1
  /* ===== COMPONENTS / NAVIGATION ===== */
2
2
 
3
- .ui-button--toolbar,
4
- .ui-toolbar-button {
3
+ .ui-button--toolbar {
5
4
  display: flex;
6
5
  align-items: center;
7
6
  gap: var(--space-1);
@@ -0,0 +1,202 @@
1
+ .agent-connection-dialog {
2
+ width: min(680px, calc(100vw - var(--space-6)));
3
+ }
4
+
5
+ #agentConnectionContent,
6
+ .agent-connection-form,
7
+ .agent-connection-section,
8
+ .agent-connection-list {
9
+ display: grid;
10
+ gap: var(--space-3);
11
+ }
12
+
13
+ .agent-connection-section h3,
14
+ .agent-connection-scopes legend {
15
+ font-size: var(--text-sm);
16
+ font-weight: 700;
17
+ }
18
+
19
+ .agent-connection-section code,
20
+ .agent-connection-section pre,
21
+ .agent-connection-details > code,
22
+ .agent-connection-details pre {
23
+ overflow: auto;
24
+ padding: var(--space-3);
25
+ border: 1px solid var(--color-border);
26
+ border-radius: var(--radius-md);
27
+ background: var(--color-surface-offset);
28
+ color: var(--color-text);
29
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
30
+ font-size: var(--text-xs);
31
+ white-space: pre-wrap;
32
+ overflow-wrap: anywhere;
33
+ }
34
+
35
+ .agent-connection-section p,
36
+ .agent-connection-note,
37
+ .agent-connection-empty p,
38
+ .agent-connection-status,
39
+ .agent-connection-card span,
40
+ .agent-connection-card small,
41
+ .agent-connection-live,
42
+ .agent-connection-details p,
43
+ .agent-connection-step-header p,
44
+ .agent-connection-steps span {
45
+ color: var(--color-text-muted);
46
+ font-size: var(--text-sm);
47
+ line-height: 1.5;
48
+ }
49
+
50
+ .agent-connection-status.is-error,
51
+ .agent-connection-warning {
52
+ color: var(--color-error);
53
+ }
54
+
55
+ .agent-connection-empty {
56
+ display: grid;
57
+ gap: var(--space-2);
58
+ padding: var(--space-4);
59
+ border-radius: var(--radius-lg);
60
+ background: var(--color-surface-offset);
61
+ }
62
+
63
+ .agent-connection-empty strong,
64
+ .agent-connection-step-header h3,
65
+ .agent-connection-steps strong {
66
+ color: var(--color-text);
67
+ font-size: var(--text-sm);
68
+ }
69
+
70
+ .agent-connection-step-header {
71
+ display: grid;
72
+ gap: var(--space-1);
73
+ }
74
+
75
+ .agent-connection-step-header > span {
76
+ color: var(--color-primary);
77
+ font-size: var(--text-xs);
78
+ font-weight: 700;
79
+ }
80
+
81
+ .agent-connection-steps {
82
+ display: grid;
83
+ gap: var(--space-3);
84
+ margin: 0;
85
+ padding-left: var(--space-5);
86
+ color: var(--color-text-muted);
87
+ font-size: var(--text-sm);
88
+ line-height: 1.5;
89
+ }
90
+
91
+ .agent-connection-steps code {
92
+ color: var(--color-text);
93
+ font-size: var(--text-xs);
94
+ }
95
+
96
+ .agent-connection-steps--setup {
97
+ padding-left: var(--space-6);
98
+ }
99
+
100
+ .agent-connection-steps--setup > li {
101
+ padding-left: var(--space-1);
102
+ }
103
+
104
+ .agent-connection-steps--setup > li::marker {
105
+ color: var(--color-primary);
106
+ font-weight: 700;
107
+ }
108
+
109
+ .agent-connection-steps--setup li > div {
110
+ display: grid;
111
+ gap: var(--space-2);
112
+ }
113
+
114
+ .agent-connection-steps--setup .ui-button {
115
+ justify-self: start;
116
+ margin-top: var(--space-2);
117
+ }
118
+
119
+ .agent-connection-details {
120
+ display: grid;
121
+ gap: var(--space-3);
122
+ color: var(--color-text-muted);
123
+ font-size: var(--text-sm);
124
+ }
125
+
126
+ .agent-connection-details[open] {
127
+ padding-bottom: var(--space-1);
128
+ }
129
+
130
+ .agent-connection-details summary {
131
+ cursor: pointer;
132
+ font-weight: 500;
133
+ }
134
+
135
+ .agent-connection-details > :not(summary) {
136
+ margin-top: var(--space-3);
137
+ }
138
+
139
+ .agent-connection-card {
140
+ display: flex;
141
+ align-items: center;
142
+ justify-content: space-between;
143
+ gap: var(--space-3);
144
+ padding: var(--space-3);
145
+ border: 1px solid var(--color-border);
146
+ border-radius: var(--radius-md);
147
+ background: var(--color-surface-offset);
148
+ }
149
+
150
+ .agent-connection-card > div {
151
+ display: grid;
152
+ gap: var(--space-1);
153
+ min-width: 0;
154
+ }
155
+
156
+ .agent-connection-scopes {
157
+ display: grid;
158
+ gap: var(--space-2);
159
+ padding: var(--space-3);
160
+ border: 1px solid var(--color-border);
161
+ border-radius: var(--radius-md);
162
+ }
163
+
164
+ .agent-connection-scopes label {
165
+ display: flex;
166
+ align-items: center;
167
+ gap: var(--space-2);
168
+ color: var(--color-text);
169
+ font-size: var(--text-sm);
170
+ }
171
+
172
+ .agent-connection-actions {
173
+ display: flex;
174
+ flex-wrap: wrap;
175
+ justify-content: flex-end;
176
+ gap: var(--space-2);
177
+ }
178
+
179
+ .agent-connection-token {
180
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
181
+ }
182
+
183
+ @media (max-width: 640px) {
184
+ .agent-connection-card {
185
+ align-items: stretch;
186
+ flex-direction: column;
187
+ }
188
+
189
+ .agent-connection-actions {
190
+ display: grid;
191
+ }
192
+
193
+ .agent-connection-steps--setup .ui-button {
194
+ justify-self: stretch;
195
+ }
196
+ }
197
+
198
+ @media (prefers-reduced-motion: reduce) {
199
+ .agent-connection-dialog {
200
+ transition: none;
201
+ }
202
+ }
@@ -6,6 +6,7 @@
6
6
 
7
7
  .chat-toggle-btn {
8
8
  position: relative;
9
+ anchor-name: --chat-trigger;
9
10
  }
10
11
 
11
12
  .chat-toggle-btn.is-active {
@@ -35,13 +36,19 @@
35
36
  }
36
37
 
37
38
  .chat-panel {
38
- display: flex;
39
+ top: calc(anchor(--chat-trigger bottom) + var(--space-2));
40
+ right: anchor(--chat-trigger right);
41
+ display: none;
39
42
  flex-direction: column;
40
43
  gap: var(--space-3);
41
44
  max-height: min(70vh, 520px);
42
45
  padding: var(--space-4);
43
46
  }
44
47
 
48
+ .chat-panel:popover-open {
49
+ display: flex;
50
+ }
51
+
45
52
  .chat-container > .chat-toast-container {
46
53
  position: fixed;
47
54
  top: calc(var(--toolbar-h) + var(--space-2));
@@ -111,14 +111,29 @@
111
111
  .tab-lock-overlay {
112
112
  position: fixed;
113
113
  inset: 0;
114
+ box-sizing: border-box;
115
+ width: 100%;
116
+ height: 100%;
117
+ max-width: none;
118
+ max-height: none;
119
+ margin: 0;
114
120
  z-index: 1200;
115
- display: grid;
116
121
  place-items: center;
117
122
  padding: var(--space-6);
123
+ border: none;
118
124
  background: oklch(from var(--color-bg) l c h / 0.86);
125
+ color: var(--color-text);
119
126
  backdrop-filter: blur(10px);
120
127
  }
121
128
 
129
+ .tab-lock-overlay[open] {
130
+ display: grid;
131
+ }
132
+
133
+ .tab-lock-overlay::backdrop {
134
+ background: transparent;
135
+ }
136
+
122
137
  .tab-lock-card {
123
138
  display: grid;
124
139
  gap: var(--space-4);
@@ -137,31 +137,44 @@
137
137
  opacity: 0.85;
138
138
  }
139
139
 
140
+ .user-avatar-overflow-trigger,
141
+ .toolbar-presence-count {
142
+ anchor-name: --presence-trigger;
143
+ }
144
+
140
145
  .user-avatar-overflow-trigger {
141
146
  background: var(--color-surface-dynamic);
142
147
  color: var(--color-text-muted);
143
148
  }
144
149
 
145
150
  .collaboration-popover {
146
- position: absolute;
147
- top: calc(100% + var(--space-2));
148
- right: 0;
151
+ position: fixed;
152
+ inset: auto;
149
153
  z-index: 30;
150
154
  width: min(360px, calc(100vw - var(--space-6)));
155
+ margin: 0;
151
156
  border: 1px solid var(--color-border);
152
157
  border-radius: var(--radius-lg);
153
158
  background: var(--color-surface);
159
+ color: var(--color-text);
154
160
  box-shadow: var(--shadow-lg);
161
+ position-try-fallbacks: flip-block, flip-inline;
155
162
  }
156
163
 
157
164
  .presence-panel {
158
- display: flex;
165
+ top: calc(anchor(--presence-trigger bottom) + var(--space-2));
166
+ right: anchor(--presence-trigger right);
167
+ display: none;
159
168
  flex-direction: column;
160
169
  gap: var(--space-2);
161
170
  max-height: min(72vh, 480px);
162
171
  padding: var(--space-3);
163
172
  }
164
173
 
174
+ .presence-panel:popover-open {
175
+ display: flex;
176
+ }
177
+
165
178
  .presence-panel-header {
166
179
  display: flex;
167
180
  align-items: flex-start;
@@ -62,7 +62,7 @@
62
62
  gap: var(--space-2);
63
63
  }
64
64
 
65
- .diff-file-nav .ui-action-icon:disabled {
65
+ .diff-file-nav .ui-icon-button--action:disabled {
66
66
  opacity: 0.3;
67
67
  }
68
68
 
@@ -3,12 +3,22 @@
3
3
  .image-lightbox-root {
4
4
  position: fixed;
5
5
  inset: 0;
6
+ width: 100%;
7
+ height: 100%;
8
+ max-width: none;
9
+ max-height: none;
10
+ margin: 0;
11
+ padding: 0;
12
+ border: none;
13
+ background: transparent;
6
14
  z-index: 220;
7
- display: grid;
8
- place-items: center;
9
15
  pointer-events: auto;
10
16
  }
11
17
 
18
+ .image-lightbox-root::backdrop {
19
+ background: transparent;
20
+ }
21
+
12
22
  .image-lightbox-root[hidden] {
13
23
  display: none !important;
14
24
  }
@@ -67,7 +77,6 @@
67
77
  }
68
78
 
69
79
  .image-lightbox-btn {
70
- min-width: 0;
71
80
  min-height: var(--control-target-min);
72
81
  min-width: var(--control-target-min);
73
82
  padding: var(--space-2) var(--space-3);
@@ -4,24 +4,33 @@
4
4
  position: fixed;
5
5
  inset: 0;
6
6
  z-index: 9999;
7
- display: flex;
7
+ display: none;
8
+ width: 100%;
9
+ max-width: none;
10
+ height: 100%;
11
+ max-height: none;
12
+ margin: 0;
13
+ padding: min(16vh, 128px) 0 0;
14
+ border: 0;
8
15
  align-items: flex-start;
9
16
  justify-content: center;
10
- padding-top: min(16vh, 128px);
11
- background: var(--surface-scrim);
12
- backdrop-filter: blur(2px);
17
+ background: transparent;
13
18
  opacity: 0;
14
- visibility: hidden;
15
- transition: opacity 120ms ease, visibility 120ms ease, display 120ms ease allow-discrete;
19
+ transition: opacity 120ms ease, display 120ms ease allow-discrete;
16
20
  }
17
21
 
18
- .qs-overlay.visible {
22
+ .qs-overlay[open] {
23
+ display: flex;
19
24
  opacity: 1;
20
- visibility: visible;
25
+ }
26
+
27
+ .qs-overlay::backdrop {
28
+ background: var(--surface-scrim);
29
+ backdrop-filter: blur(2px);
21
30
  }
22
31
 
23
32
  @starting-style {
24
- .qs-overlay.visible {
33
+ .qs-overlay[open] {
25
34
  opacity: 0;
26
35
  }
27
36
  }
@@ -84,12 +93,12 @@
84
93
  opacity: 0.6;
85
94
  }
86
95
 
87
- .qs-overlay.visible .qs-modal {
96
+ .qs-overlay[open] .qs-modal {
88
97
  transform: translateY(0) scale(1);
89
98
  }
90
99
 
91
100
  @starting-style {
92
- .qs-overlay.visible .qs-modal {
101
+ .qs-overlay[open] .qs-modal {
93
102
  transform: translateY(-8px) scale(0.98);
94
103
  }
95
104
  }
@@ -260,6 +260,7 @@
260
260
  --color-text-muted: #9aa7b4;
261
261
  --color-text-faint: #687584;
262
262
  --color-text-inverse: #0b0f14;
263
+ --color-code-text: #abb2bf;
263
264
  --color-primary: #60a5fa;
264
265
  --color-primary-hover: #3b82f6;
265
266
  --color-primary-active: #2563eb;
@@ -270,6 +271,7 @@
270
271
  --color-comment-strong: rgba(96, 165, 250, 0.16);
271
272
  --color-comment-text: #bfdbfe;
272
273
  --color-error: #f87171;
274
+ --color-danger: #f87171;
273
275
  --color-error-highlight: #2a1a1a;
274
276
  --color-success: #4ade80;
275
277
  --color-success-highlight: #1a2a1a;
@@ -241,31 +241,35 @@
241
241
 
242
242
  .toolbar-overflow-toggle {
243
243
  display: inline-flex;
244
+ anchor-name: --toolbar-overflow;
244
245
  }
245
246
 
246
247
  .toolbar-overflow-menu {
247
- position: absolute;
248
- top: calc(100% + 6px);
249
- right: 0;
248
+ position: fixed;
249
+ inset: auto;
250
+ top: calc(anchor(--toolbar-overflow bottom) + 6px);
251
+ right: anchor(--toolbar-overflow right);
250
252
  z-index: 14;
251
253
  display: none;
252
254
  width: min(240px, calc(100vw - 24px));
253
- flex-direction: column;
254
- align-items: stretch;
255
- gap: 0;
255
+ margin: 0;
256
256
  padding: 6px;
257
257
  border: 1px solid var(--color-border);
258
258
  border-radius: var(--radius-lg);
259
+ flex-direction: column;
260
+ align-items: stretch;
261
+ gap: 0;
259
262
  background: oklch(from var(--color-surface) l c h / 0.98);
260
263
  box-shadow: var(--shadow-lg);
261
264
  backdrop-filter: blur(12px);
265
+ position-try-fallbacks: flip-block, flip-inline;
262
266
  }
263
267
 
264
- .toolbar-right.is-overflow-open .toolbar-overflow-menu {
268
+ .toolbar-overflow-menu:popover-open {
265
269
  display: flex;
266
270
  }
267
271
 
268
- .toolbar-overflow-menu .ui-toolbar-button,
272
+ .toolbar-overflow-menu .ui-button--toolbar,
269
273
  .toolbar-overflow-menu .toolbar-overflow-group-toggle {
270
274
  width: 100%;
271
275
  }
@@ -277,7 +281,7 @@
277
281
  text-align: left;
278
282
  }
279
283
 
280
- .toolbar-overflow-menu .ui-toolbar-button {
284
+ .toolbar-overflow-menu .ui-button--toolbar {
281
285
  justify-content: flex-start;
282
286
  min-height: 36px;
283
287
  gap: 8px;
@@ -403,6 +407,7 @@
403
407
  padding: 0 8px;
404
408
  border-radius: var(--radius-sm);
405
409
  white-space: nowrap;
410
+ anchor-name: --markdown-block-trigger;
406
411
  }
407
412
 
408
413
  .markdown-toolbar-block-trigger-label {
@@ -417,15 +422,24 @@
417
422
  transform: scale(0.9);
418
423
  }
419
424
 
420
- .markdown-toolbar.is-menu-open .markdown-toolbar-block-trigger {
425
+ body:has(.markdown-toolbar-popover:popover-open) .markdown-toolbar-block-trigger {
421
426
  background: var(--color-surface-offset);
422
427
  color: var(--color-text);
423
428
  }
424
429
 
425
430
  .markdown-toolbar-popover {
426
- position: absolute;
431
+ position: fixed;
432
+ inset: auto;
433
+ top: calc(anchor(--markdown-block-trigger bottom) + 6px);
434
+ left: anchor(--markdown-block-trigger left);
427
435
  z-index: 12;
428
436
  min-width: 176px;
437
+ margin: 0;
438
+ padding: 0;
439
+ border: 0;
440
+ background: transparent;
441
+ overflow: visible;
442
+ position-try-fallbacks: flip-block, flip-inline;
429
443
  }
430
444
 
431
445
  .markdown-toolbar-menu {
@@ -145,28 +145,10 @@
145
145
  }
146
146
 
147
147
  .toolbar-overflow-menu {
148
- position: absolute;
149
- top: calc(100% + 6px);
150
- right: 0;
151
- z-index: 14;
152
- display: none;
153
148
  width: min(212px, calc(100vw - 20px));
154
- flex-direction: column;
155
- align-items: stretch;
156
- gap: 0;
157
- padding: 6px;
158
- border: 1px solid var(--color-border);
159
- border-radius: var(--radius-lg);
160
- background: oklch(from var(--color-surface) l c h / 0.98);
161
- box-shadow: var(--shadow-lg);
162
- backdrop-filter: blur(12px);
163
- }
164
-
165
- .toolbar-right.is-overflow-open .toolbar-overflow-menu {
166
- display: flex;
167
149
  }
168
150
 
169
- .toolbar-overflow-menu .ui-toolbar-button,
151
+ .toolbar-overflow-menu .ui-button--toolbar,
170
152
  .toolbar-overflow-menu .chat-container {
171
153
  width: 100%;
172
154
  }
@@ -186,7 +168,7 @@
186
168
  display: inline !important;
187
169
  }
188
170
 
189
- .toolbar-overflow-menu .ui-toolbar-button {
171
+ .toolbar-overflow-menu .ui-button--toolbar {
190
172
  justify-content: flex-start;
191
173
  min-height: 36px;
192
174
  gap: 8px;
@@ -7,6 +7,7 @@
7
7
  left: 0;
8
8
  display: flex;
9
9
  width: 100%;
10
+ /* Fallback first; runtime viewport measurements override it when available. */
10
11
  height: 100dvh;
11
12
  height: var(--app-viewport-height, 100dvh);
12
13
  overflow: hidden;
@@ -362,18 +362,21 @@ body.is-file-tree-dragging * {
362
362
  /* Children indentation handled by paddingLeft on items */
363
363
  }
364
364
 
365
- .file-action-sheet-backdrop {
366
- position: fixed;
367
- inset: 0;
368
- z-index: 130;
365
+ .file-action-sheet::backdrop {
369
366
  background: oklch(from var(--color-bg) l c h / 0.44);
367
+ backdrop-filter: blur(12px);
370
368
  }
371
369
 
372
370
  .file-action-sheet {
373
371
  position: fixed;
372
+ top: auto;
374
373
  right: var(--space-3);
375
374
  bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
376
375
  left: var(--space-3);
376
+ width: auto;
377
+ max-width: none;
378
+ max-height: none;
379
+ margin: 0;
377
380
  z-index: 131;
378
381
  display: flex;
379
382
  flex-direction: column;