dorkos 0.122.0 → 0.124.0

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 (320) hide show
  1. package/dist/bin/cli.js +914 -333
  2. package/dist/browser/native/package-manifest.json +1 -1
  3. package/dist/browser/source-manifest.json +1 -1
  4. package/dist/client/assets/{AboutPage-ClN3P9B8.js → AboutPage-BH8Ndn3e.js} +1 -1
  5. package/dist/client/assets/{ActivityErrorState-B2lq1pyE.js → ActivityErrorState-K5Mew9EX.js} +1 -1
  6. package/dist/client/assets/{ActivityPage-htTkSy18.js → ActivityPage-BB20L5HU.js} +1 -1
  7. package/dist/client/assets/{ActivityRow-BqV0B1T0.js → ActivityRow-C5O7rnmS.js} +1 -1
  8. package/dist/client/assets/{AdapterIcon-DlkN0YJo.js → AdapterIcon-Bmybvrzb.js} +1 -1
  9. package/dist/client/assets/{AdapterSetupWizard-RyNPjSmU.js → AdapterSetupWizard-CkdV7Hhh.js} +2 -2
  10. package/dist/client/assets/{AgentOptionRow-DSievGfL.js → AgentOptionRow-BA2cDa7r.js} +1 -1
  11. package/dist/client/assets/{AgentPicker-BCtWrhsA.js → AgentPicker-CsIIPGZJ.js} +1 -1
  12. package/dist/client/assets/{AgentRequestCard-BHIHWNRz.js → AgentRequestCard-0fOxvaoe.js} +3 -3
  13. package/dist/client/assets/{AppearancePage-B2eduuT0.js → AppearancePage-XOjkkoli.js} +1 -1
  14. package/dist/client/assets/{ApplyToOverridesDialog-C7G2t3X2.js → ApplyToOverridesDialog-CoO6V1G4.js} +1 -1
  15. package/dist/client/assets/{AttentionSignalRow-_8thTHYX.js → AttentionSignalRow-CjjZobp7.js} +1 -1
  16. package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-WpZU5xiO.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-9TVHyRPJ.js} +1 -1
  17. package/dist/client/assets/{BindingDialog-BAwbHFq3.js → BindingDialog-DLoAQauL.js} +1 -1
  18. package/dist/client/assets/{BlintzCanvas-BEtRmEbL.js → BlintzCanvas-CYHsXAcY.js} +3 -3
  19. package/dist/client/assets/{CanvasCsvContent--6i2ETyZ.js → CanvasCsvContent--Gr7Fe_U.js} +1 -1
  20. package/dist/client/assets/{CanvasFileContent-C86nyLbI.js → CanvasFileContent-estXyAbr.js} +2 -2
  21. package/dist/client/assets/{CanvasModel3dContent-wYHHAovt.js → CanvasModel3dContent-CkOo930M.js} +2 -2
  22. package/dist/client/assets/{ChatAppsOff-2Wvch1rr.js → ChatAppsOff-D4L1zJVN.js} +1 -1
  23. package/dist/client/assets/{CodeMirrorDiff-s1TWguZ8.js → CodeMirrorDiff-DY_6ju-z.js} +1 -1
  24. package/dist/client/assets/{CodeMirrorEditor-1ndoTbcZ.js → CodeMirrorEditor-BUoDBsBv.js} +1 -1
  25. package/dist/client/assets/{CommitmentList-BK97ndab.js → CommitmentList-wDkcVP9c.js} +1 -1
  26. package/dist/client/assets/{CommitmentsPage-_nd37gVX.js → CommitmentsPage-CzSM6b8R.js} +1 -1
  27. package/dist/client/assets/{ComputerResourceView-C2Broer4.js → ComputerResourceView-cERD9H2L.js} +1 -1
  28. package/dist/client/assets/{ComputerViewer-DgG7t2KZ.js → ComputerViewer-rMcfbk2_.js} +1 -1
  29. package/dist/client/assets/{ConnectionAccessLists-Pbo2lft8.js → ConnectionAccessLists-f7QeQbQo.js} +1 -1
  30. package/dist/client/assets/{ConnectionsPage-Dm2d9owX.js → ConnectionsPage-BmjtA6pw.js} +2 -2
  31. package/dist/client/assets/{ConventionPage-BUltejHJ.js → ConventionPage-CH-ah6nI.js} +1 -1
  32. package/dist/client/assets/{ExtensionPageRoute-DAomCiMw.js → ExtensionPageRoute-CJIxa6ST.js} +2 -2
  33. package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-5fT29ZEV.js → FloatingTanStackRouterDevtools-CqogiFob-BP7EJ2JL.js} +1 -1
  34. package/dist/client/assets/HandlePage-Cg8H3mQS.js +1 -0
  35. package/dist/client/assets/{HeartbeatPage-BW0X4YAL.js → HeartbeatPage-BUsf-qrU.js} +1 -1
  36. package/dist/client/assets/{KeyEntry-ClqAj0dS.js → KeyEntry-C2kWdN8q.js} +1 -1
  37. package/dist/client/assets/{LexicalField-CbswpPQ7.js → LexicalField-CR8ulsI_.js} +1 -1
  38. package/dist/client/assets/{ManagesPage-Daqs8hys.js → ManagesPage-DTtsIOGi.js} +1 -1
  39. package/dist/client/assets/{Marketplace-BNMIm8g_.js → Marketplace-iaV5XAzv.js} +2 -2
  40. package/dist/client/assets/{MarketplaceSourcesView-B4WpzVpr.js → MarketplaceSourcesView-6tgzUfFj.js} +1 -1
  41. package/dist/client/assets/{McpAppFrame-Dbg_Ni39.js → McpAppFrame-C7eYYdI9.js} +1 -1
  42. package/dist/client/assets/McpSigninBody-BDyGbJ7I.js +1 -0
  43. package/dist/client/assets/{Model3dViewer-DT8x0h7T.js → Model3dViewer-BujDNuVS.js} +1 -1
  44. package/dist/client/assets/NamePage-Bx8T98OF.js +1 -0
  45. package/dist/client/assets/{NewDirectMessageMenu-BbehZd6I.js → NewDirectMessageMenu-D4e-z2Jt.js} +1 -1
  46. package/dist/client/assets/{NotificationsPage-B9zEN26O.js → NotificationsPage-CkDeTaJp.js} +1 -1
  47. package/dist/client/assets/{OpenMeshSwitch-D-AYDXjH.js → OpenMeshSwitch-CtbOt3r5.js} +2 -2
  48. package/dist/client/assets/OperatorIdentityForm-Vr4qZnmM.js +1 -0
  49. package/dist/client/assets/PermissionHistory-DzU1rf2B.js +1 -0
  50. package/dist/client/assets/{PermissionsPage-CKfDf5Pj.js → PermissionsPage-f4QaX8oM.js} +1 -1
  51. package/dist/client/assets/{PersonalityPopover-CHPTuHIH.js → PersonalityPopover-BkZruwF-.js} +1 -1
  52. package/dist/client/assets/PhotoPage-CmrOIRjf.js +1 -0
  53. package/dist/client/assets/{PreviewRefusedNotice-BuVUhjq3.js → PreviewRefusedNotice-BXC2K0tx.js} +1 -1
  54. package/dist/client/assets/{ProfileFields-DimHNpR4.js → ProfileFields-BebX5oiv.js} +1 -1
  55. package/dist/client/assets/{ProfilePanelContainer-FRZ5Px2L.js → ProfilePanelContainer-DZoL65zQ.js} +1 -1
  56. package/dist/client/assets/{ProfileRolePicker-UWhM5yuR.js → ProfileRolePicker-D9H7wsuT.js} +1 -1
  57. package/dist/client/assets/{PromptSuggestionChips-DQaDSd7Y.js → PromptSuggestionChips-B5fDmc-g.js} +1 -1
  58. package/dist/client/assets/{ReportsToPopover-BOuCM8il.js → ReportsToPopover-uVYhSqj7.js} +1 -1
  59. package/dist/client/assets/{RoomSurface-Dhv-LkWz.js → RoomSurface-Bg5WV4Ep.js} +7 -7
  60. package/dist/client/assets/{RoomsPage-glKYJBpq.js → RoomsPage-yflYFulU.js} +1 -1
  61. package/dist/client/assets/{RunsOnPopover-BvxoHUeo.js → RunsOnPopover-DtGrX1Vq.js} +1 -1
  62. package/dist/client/assets/{RuntimeConnectFlow-CgB_X5wo.js → RuntimeConnectFlow-DjReuQ-T.js} +1 -1
  63. package/dist/client/assets/{RuntimeSetupDialog-r1Ss_YQW.js → RuntimeSetupDialog-Cr4GRi8c.js} +1 -1
  64. package/dist/client/assets/SeenDevices-SPWkdzoK.js +19 -0
  65. package/dist/client/assets/{SessionsPage-CFLDx-aF.js → SessionsPage-BWu-en78.js} +1 -1
  66. package/dist/client/assets/SettingsDialog-_dEXUhHe.js +12 -0
  67. package/dist/client/assets/{SkillsPage-CUQZ4I_r.js → SkillsPage-BdUb9SZy.js} +1 -1
  68. package/dist/client/assets/TaskDialogWrapper-qYJPEoSR.js +1 -0
  69. package/dist/client/assets/{TasksEmptyState-B4TjUm8G.js → TasksEmptyState-Bgcg9vxF.js} +2 -2
  70. package/dist/client/assets/{TasksPage-D_vFBDA1.js → TasksPage-Ch5W2WQS.js} +1 -1
  71. package/dist/client/assets/{TeamComputerEntry-EQ1fjMRb.js → TeamComputerEntry-CPwSIMRw.js} +1 -1
  72. package/dist/client/assets/ToolsPage-Idimrn3o.js +2 -0
  73. package/dist/client/assets/{TopologyGraph-DsPEpDjt.js → TopologyGraph-I4_mkMHM.js} +14 -14
  74. package/dist/client/assets/{TourHost-D1z2mH5S.js → TourHost-BPaSwh9I.js} +1 -1
  75. package/dist/client/assets/{UnlinkDialog-q-6B4Ftt.js → UnlinkDialog-BUWZUu5P.js} +1 -1
  76. package/dist/client/assets/{WidgetErrorCard-BYMiUiAf.js → WidgetErrorCard-cS8yMCxU.js} +3 -3
  77. package/dist/client/assets/_shell-ClVN2pUj.js +80 -0
  78. package/dist/client/assets/{_shell._home-D-8JcUYq.js → _shell._home-DCA5k-jb.js} +1 -1
  79. package/dist/client/assets/{_shell._home.activity-xJKxWbtL.js → _shell._home.activity-BX4nFLna.js} +1 -1
  80. package/dist/client/assets/{_shell._home.index-C74gh1aE.js → _shell._home.index-C8t8cw72.js} +1 -1
  81. package/dist/client/assets/{_shell._home.tasks-Bh8jwRYJ.js → _shell._home.tasks-BgUeEvhK.js} +1 -1
  82. package/dist/client/assets/{_shell._home.workspaces-BKkUl6wW.js → _shell._home.workspaces-BPBdnkRt.js} +1 -1
  83. package/dist/client/assets/_shell.channels-CX4kki7G.js +10 -0
  84. package/dist/client/assets/_shell.connections-0vP7g7E4.js +1 -0
  85. package/dist/client/assets/{_shell.feedback-requests-Cdbl3oKj.js → _shell.feedback-requests-TsuaO4eR.js} +2 -2
  86. package/dist/client/assets/_shell.marketplace-CiL6YRbl.js +1 -0
  87. package/dist/client/assets/_shell.marketplace_.sources-C0sI8e21.js +1 -0
  88. package/dist/client/assets/_shell.session-_hhBvFc6.js +63 -0
  89. package/dist/client/assets/{_shell.team-Consxq97.js → _shell.team-Bm6cOBhR.js} +4 -4
  90. package/dist/client/assets/_shell.x._extensionId-BWy5v1YE.js +1 -0
  91. package/dist/client/assets/_shell.x._extensionId_._-BWy5v1YE.js +1 -0
  92. package/dist/client/assets/{abnfDiagram-WEYOIA3C-DXTlLd8s.js → abnfDiagram-WEYOIA3C-CrvoN15x.js} +1 -1
  93. package/dist/client/assets/{access-copy-B1SlOYEi.js → access-copy-B3yNZ7Gz.js} +1 -1
  94. package/dist/client/assets/{arc-B3IW5TXq.js → arc-CuT6QA_y.js} +1 -1
  95. package/dist/client/assets/{architectureDiagram-ZHVYKT53-Bx-4szWe.js → architectureDiagram-ZHVYKT53-CPXCZ9H4.js} +1 -1
  96. package/dist/client/assets/{banner-RKoWGrEp.js → banner-DRumuw3F.js} +1 -1
  97. package/dist/client/assets/{blockDiagram-RJAE7QA3-D_B3EDQ1.js → blockDiagram-RJAE7QA3-CM0rka9p.js} +1 -1
  98. package/dist/client/assets/{c4Diagram-XDPPPE54-CSBl4ROD.js → c4Diagram-XDPPPE54-D4j2cXRy.js} +1 -1
  99. package/dist/client/assets/{card-DTMhLU7B.js → card-B3CtfC3R.js} +1 -1
  100. package/dist/client/assets/channel-DjBlTcCV.js +1 -0
  101. package/dist/client/assets/{chunk-2E7WHVMD-QSgLcVHQ.js → chunk-2E7WHVMD-KGyqhVpO.js} +1 -1
  102. package/dist/client/assets/{chunk-2Q5K7J3B-CAEYyBSj.js → chunk-2Q5K7J3B-Dl0BHoqK.js} +1 -1
  103. package/dist/client/assets/{chunk-4EMNKR2T-CQ_90aiz.js → chunk-4EMNKR2T-Da7vH6Kv.js} +1 -1
  104. package/dist/client/assets/{chunk-55XCU76K-jsUyUA3N.js → chunk-55XCU76K-DgBUEROO.js} +1 -1
  105. package/dist/client/assets/{chunk-5VM5RSS4-JHkf15PA.js → chunk-5VM5RSS4-BQ4mn-_I.js} +1 -1
  106. package/dist/client/assets/{chunk-JWPE2WC7-BT-3krv8.js → chunk-JWPE2WC7-8LPR3mXf.js} +1 -1
  107. package/dist/client/assets/{chunk-VQ5W62QI-CJP11I5o.js → chunk-VQ5W62QI-BkIVXi4W.js} +1 -1
  108. package/dist/client/assets/{chunk-XXDRQBXY-BpqBecnj.js → chunk-XXDRQBXY-DQXJx06h.js} +1 -1
  109. package/dist/client/assets/{chunk-ZCHMQSOR-BLb4KcT4.js → chunk-ZCHMQSOR-DzCE7qlD.js} +2 -2
  110. package/dist/client/assets/{classDiagram-v2-4MYWR3UA-DwLyYGkw.js → classDiagram-v2-4MYWR3UA-C_cZra7c.js} +1 -1
  111. package/dist/client/assets/{command-DDSiiJlP.js → command-CDKbyppr.js} +1 -1
  112. package/dist/client/assets/{cose-bilkent-JH36ORCC-CxYTET88.js → cose-bilkent-JH36ORCC-DlXHdGwT.js} +1 -1
  113. package/dist/client/assets/{cpu--56q_Ey0.js → cpu-B7xLO7jn.js} +1 -1
  114. package/dist/client/assets/{cynefin-EF2NZ3EQ-9fHLZRHz.js → cynefin-EF2NZ3EQ-HhP4ArLc.js} +1 -1
  115. package/dist/client/assets/{cynefinDiagram-WF24UDRP-DpfQecff.js → cynefinDiagram-WF24UDRP-D4GgWnZV.js} +1 -1
  116. package/dist/client/assets/{dagre-NK4GIZVX-DuV6buEQ.js → dagre-NK4GIZVX-SZ_OI2Zi.js} +1 -1
  117. package/dist/client/assets/{diagram-CBK3MWTC-B-A9Sx5n.js → diagram-CBK3MWTC-BN-_Ja5m.js} +1 -1
  118. package/dist/client/assets/{diagram-I5XIIV2D-Ds5Hq9aV.js → diagram-I5XIIV2D-t7AK6xnL.js} +1 -1
  119. package/dist/client/assets/{diagram-ODIL2UCW-UUfSjM-R.js → diagram-ODIL2UCW-C1V7szSc.js} +1 -1
  120. package/dist/client/assets/{diagram-PFBEJUXE-CUzSSYf9.js → diagram-PFBEJUXE-DPtraQ2g.js} +1 -1
  121. package/dist/client/assets/{diagram-RJA3I4VV-Cgp6U3q1.js → diagram-RJA3I4VV-D2XNRB2b.js} +1 -1
  122. package/dist/client/assets/{diagram-TYUNFSNR-BxVgzMNE.js → diagram-TYUNFSNR-BieaRy38.js} +1 -1
  123. package/dist/client/assets/{ebnfDiagram-V4P3TTPT-BgDiHzoi.js → ebnfDiagram-V4P3TTPT-Bwki86UY.js} +1 -1
  124. package/dist/client/assets/{elk-QONTBCTQ-BCCN6mFs.js → elk-QONTBCTQ-WEXSAyHB.js} +1 -1
  125. package/dist/client/assets/{empty-state-BsA3jcrO.js → empty-state-J-UJ0BUU.js} +1 -1
  126. package/dist/client/assets/{erDiagram-KYQIGQAA-5RkmUbLz.js → erDiagram-KYQIGQAA-DIKASnoc.js} +1 -1
  127. package/dist/client/assets/{execution-config-CRkSeCj7.js → execution-config-ILQiJAmy.js} +1 -1
  128. package/dist/client/assets/{file-Bg_qGvWR.js → file-D40js1Zx.js} +1 -1
  129. package/dist/client/assets/{file-exclamation-point-BWsLZQVN.js → file-exclamation-point-Dg3ZpiAe.js} +1 -1
  130. package/dist/client/assets/{file-text-DQThCdY3.js → file-text-DgdvRfMk.js} +1 -1
  131. package/dist/client/assets/{find-latest-widget-fence-DFpYPIlS.js → find-latest-widget-fence-D4kBWC_1.js} +1 -1
  132. package/dist/client/assets/{flowDiagram-IUGLLWBU-C2FFT_4u.js → flowDiagram-IUGLLWBU-CoavNw0M.js} +1 -1
  133. package/dist/client/assets/{form-DjMe15QR.js → form-DlPwEgQH.js} +1 -1
  134. package/dist/client/assets/{format-cron-Bo3D4N9C.js → format-cron-BrK8RzgT.js} +1 -1
  135. package/dist/client/assets/{ganttDiagram-R7GPNTJY-BHG-HNDj.js → ganttDiagram-R7GPNTJY-DccKAz7f.js} +1 -1
  136. package/dist/client/assets/{git-branch-CJ1NlVLY.js → git-branch-BpxhecMq.js} +1 -1
  137. package/dist/client/assets/{gitGraphDiagram-PDYL7XHY-D4bvs6_J.js → gitGraphDiagram-PDYL7XHY-DEbo_dgQ.js} +1 -1
  138. package/dist/client/assets/{graph-D8MBmHRU.js → graph-DROgI3M3.js} +1 -1
  139. package/dist/client/assets/{heart-Beze5rli.js → heart-c7u4Ezxt.js} +1 -1
  140. package/dist/client/assets/{highlighted-body-KPVGNVTW-B-za1R0D.js → highlighted-body-KPVGNVTW-CrATNdTR.js} +1 -1
  141. package/dist/client/assets/image-lightbox-DE_fHkw-.js +1 -0
  142. package/dist/client/assets/{image-off-dQCXn9D_.js → image-off-BExgZjfM.js} +2 -2
  143. package/dist/client/assets/{index-Dbt6ttQb.js → index-2wezsLA_.js} +1 -1
  144. package/dist/client/assets/index-7jby-RRg.js +1 -0
  145. package/dist/client/assets/{index-CocSe_I3.js → index-AzyLwYS_.js} +3 -3
  146. package/dist/client/assets/{index-dnaC3n0i.js → index-B3eeEDWj.js} +4 -4
  147. package/dist/client/assets/{index-C38pc-JE.js → index-BEkYBuOq.js} +1 -1
  148. package/dist/client/assets/index-BGqvci3k.js +1 -0
  149. package/dist/client/assets/{index-BJv8b9cZ.js → index-BVqSmajJ.js} +1 -1
  150. package/dist/client/assets/{index-Bk6YahnN.js → index-Be0OJLWK.js} +1 -1
  151. package/dist/client/assets/{index-BTfwunle.js → index-BizvylBV.js} +1 -1
  152. package/dist/client/assets/{index-CPxcbKL6.js → index-BkoMsjtM.js} +2 -2
  153. package/dist/client/assets/{index-CxWJDJW7.js → index-BlyoyIck.js} +1 -1
  154. package/dist/client/assets/{index-hKY0860x.js → index-BqIHtiaE.js} +1 -1
  155. package/dist/client/assets/{index-DfSOcv9s.js → index-C5or4L_3.js} +1 -1
  156. package/dist/client/assets/{index-CDm1XkU1.js → index-C7B3eSOP.js} +1 -1
  157. package/dist/client/assets/{index-vNaWkS8Y.js → index-CD8aw6Jb.js} +1 -1
  158. package/dist/client/assets/{index-D4mYlxG0.js → index-CT_pFeX_.js} +1 -1
  159. package/dist/client/assets/{index-BPa0ZczY.js → index-CYy1cjtq.js} +1 -1
  160. package/dist/client/assets/{index-DFN-GU8r.js → index-CZmqtJWZ.js} +1 -1
  161. package/dist/client/assets/{index-BMhblg3s.js → index-CbHCZsbE.js} +1 -1
  162. package/dist/client/assets/{index-Ds-LCBb6.js → index-Ccf1XBTs.js} +1 -1
  163. package/dist/client/assets/index-Cga0qx1T.js +1033 -0
  164. package/dist/client/assets/{index-CU-gekzq.js → index-CqPRAM_6.js} +1 -1
  165. package/dist/client/assets/index-Ct4At33X.js +1 -0
  166. package/dist/client/assets/{index-CMlVfxJv.js → index-D0eJtRlK.js} +1 -1
  167. package/dist/client/assets/{index-D_KBdkA4.js → index-D150FXCC.js} +22 -20
  168. package/dist/client/assets/{index-BqwfU5a7.js → index-D3YeRrne.js} +1 -1
  169. package/dist/client/assets/index-DCJQGDZk.js +1 -0
  170. package/dist/client/assets/{index-C9qjJR0B.js → index-DDgOoXP1.js} +1 -1
  171. package/dist/client/assets/{index-DpX_xwGs.js → index-DINk1YfD.js} +1 -1
  172. package/dist/client/assets/{index-CAGOE4EU.js → index-DITPwUa9.js} +3 -3
  173. package/dist/client/assets/{index-DnfhvN3q.js → index-DNGNMW3c.js} +1 -1
  174. package/dist/client/assets/{index-DNlhbCX_.js → index-DT7pv2iW.js} +1 -1
  175. package/dist/client/assets/{index-CrflCTqO.css → index-DUZrTFYD.css} +1 -1
  176. package/dist/client/assets/{index-B3VKw60l.js → index-DaZ1I8s-.js} +1 -1
  177. package/dist/client/assets/{index-yDf4EVDy.js → index-DeRDq7bD.js} +1 -1
  178. package/dist/client/assets/{index-BTVsyrd0.js → index-DhHobJd3.js} +1 -1
  179. package/dist/client/assets/{index-CodC2rG4.js → index-DksjixUS.js} +1 -1
  180. package/dist/client/assets/{index-CGVRWEpN.js → index-DswGXheF.js} +1 -1
  181. package/dist/client/assets/{index-BaocSCDH.js → index-DxiRRZRo.js} +1 -1
  182. package/dist/client/assets/index-F-vqXYqa.js +1 -0
  183. package/dist/client/assets/{index-B3ybVnXe.js → index-InEBtYxw.js} +7 -7
  184. package/dist/client/assets/{index-DqD-Sg0W.js → index-J3Hh1MnL.js} +1 -1
  185. package/dist/client/assets/{index-BMktWriw.js → index-dyAahqKe.js} +1 -1
  186. package/dist/client/assets/{index-Ckv0K82u.js → index-mwf7ZNk2.js} +1 -1
  187. package/dist/client/assets/{index.esm-Ruqz-OsH.js → index.esm-BFJ9SG0n.js} +1 -1
  188. package/dist/client/assets/{infoDiagram-MVDRKAX5-CmDlX3lx.js → infoDiagram-MVDRKAX5-VL8q5pKx.js} +1 -1
  189. package/dist/client/assets/{inline-code-plzdKGm9.js → inline-code-BE9ckzPs.js} +1 -1
  190. package/dist/client/assets/{ishikawaDiagram-HPEHV2GE-DZFRAvrx.js → ishikawaDiagram-HPEHV2GE-BLKkPYF-.js} +1 -1
  191. package/dist/client/assets/{journeyDiagram-BOSHW7O7-B140KXYu.js → journeyDiagram-BOSHW7O7-CSYpRobu.js} +1 -1
  192. package/dist/client/assets/{kanban-definition-FNSA4HC5-QCZgRJic.js → kanban-definition-FNSA4HC5-HilAqtZo.js} +1 -1
  193. package/dist/client/assets/{layers-Br3LALac.js → layers-Cm7coqdo.js} +1 -1
  194. package/dist/client/assets/{lightbulb-CeJgUDoT.js → lightbulb-DqdWS75d.js} +1 -1
  195. package/dist/client/assets/{link-2-BXcZwTAC.js → link-2-CDJapTSa.js} +1 -1
  196. package/dist/client/assets/{list-runtime-types-CqKIrt9D.js → list-runtime-types-CP82p1u4.js} +1 -1
  197. package/dist/client/assets/{markdown-content-BKbjOTI2.js → markdown-content-m_qereFc.js} +1 -1
  198. package/dist/client/assets/{mention-pill-B-FgNE6o.js → mention-pill-DV5HIG5Q.js} +1 -1
  199. package/dist/client/assets/{mermaid.core-Br9hJ7FR.js → mermaid.core-zxW6MBr-.js} +4 -4
  200. package/dist/client/assets/{message-square-off-Co0W--np.js → message-square-off-YVtpbaJ0.js} +1 -1
  201. package/dist/client/assets/{mindmap-definition-6OY57UG3-BxjSZAec.js → mindmap-definition-6OY57UG3-IAYemvOg.js} +1 -1
  202. package/dist/client/assets/{more-details-BsdCkGTg.js → more-details-ReA2ZFBn.js} +1 -1
  203. package/dist/client/assets/{owner-notice-BxltHzJH.js → owner-notice-M4hn_1ep.js} +1 -1
  204. package/dist/client/assets/{package-DPgmy9lP.js → package-CUuTl39E.js} +1 -1
  205. package/dist/client/assets/{page-container-HokGbFg_.js → page-container-BnmNikNZ.js} +1 -1
  206. package/dist/client/assets/{paperclip-BDnApT-_.js → paperclip-C6fYq5Zf.js} +1 -1
  207. package/dist/client/assets/{path-input-C22n3ghr.js → path-input-DHn9-XaE.js} +1 -1
  208. package/dist/client/assets/{pegDiagram-ECIUJNBX-utA2pUiu.js → pegDiagram-ECIUJNBX-CojaUwe7.js} +1 -1
  209. package/dist/client/assets/{pieDiagram-GNMPY74T-DjEry_VP.js → pieDiagram-GNMPY74T-CjP3pw6V.js} +1 -1
  210. package/dist/client/assets/{plug-tLTAmXis.js → plug-DHQcxt7N.js} +1 -1
  211. package/dist/client/assets/primer-trigger-BmV5wjek.js +3 -0
  212. package/dist/client/assets/{profile-errors-Dvm4O6MR.js → profile-errors-BSCuj3rT.js} +1 -1
  213. package/dist/client/assets/{progress-BduTwXMX.js → progress-4FQQfnS6.js} +1 -1
  214. package/dist/client/assets/{quadrantDiagram-D57K4MC3-DO9NgnEq.js → quadrantDiagram-D57K4MC3-OP0Z8zcR.js} +1 -1
  215. package/dist/client/assets/{query-error-state-puwJHnzi.js → query-error-state-BkUdxenP.js} +1 -1
  216. package/dist/client/assets/{radio-DR4E05zZ.js → radio-ta5Bw763.js} +1 -1
  217. package/dist/client/assets/{railroadDiagram-Y72NRBL7-BTilAS9p.js → railroadDiagram-Y72NRBL7-CT3NCb9b.js} +1 -1
  218. package/dist/client/assets/registry-Dc102rws.js +1 -0
  219. package/dist/client/assets/{relay-trace-schemas-DwqIIDB9.js → relay-trace-schemas-DwUuyxao.js} +2 -2
  220. package/dist/client/assets/{requirementDiagram-EQYSW5RA-C6rzY7GK.js → requirementDiagram-EQYSW5RA-tde4lYGp.js} +1 -1
  221. package/dist/client/assets/{room-files-source-Duo4oiqX.js → room-files-source-CZWhaaOy.js} +2 -2
  222. package/dist/client/assets/{rotate-ccw-clock-RJuoRE3k.js → rotate-ccw-clock-RfbbgUa4.js} +1 -1
  223. package/dist/client/assets/{rotate-cw-C0EpbK5k.js → rotate-cw-B3rB_YSw.js} +1 -1
  224. package/dist/client/assets/{sankeyDiagram-SY24JHO5-BqpJRY1t.js → sankeyDiagram-SY24JHO5-sdCzIA7-.js} +1 -1
  225. package/dist/client/assets/{scroll-area-07T90PR6.js → scroll-area-B4WB7Q40.js} +1 -1
  226. package/dist/client/assets/{search-x-DQabogEL.js → search-x-DCUmWW2_.js} +1 -1
  227. package/dist/client/assets/{sequenceDiagram-BLEHNHQU-BHfzZpFt.js → sequenceDiagram-BLEHNHQU-DvzTJcKu.js} +1 -1
  228. package/dist/client/assets/{shield-x-Cuo1GTv4.js → shield-x-CANziVLc.js} +1 -1
  229. package/dist/client/assets/signed-in-DctJ2IWe.js +1 -0
  230. package/dist/client/assets/{sizeCapture-INFHLROL-U0MO-4ua.js → sizeCapture-INFHLROL-DuDA7TKE.js} +1 -1
  231. package/dist/client/assets/{soul-file-wKTqbR0Y.js → soul-file-Co_8f1qw.js} +1 -1
  232. package/dist/client/assets/{stateDiagram-v2-A6IESKWZ-fzo1sDsX.js → stateDiagram-v2-A6IESKWZ-BJPX5JTC.js} +1 -1
  233. package/dist/client/assets/{swimlanes-B3ENRKFQ-B7QcCUBU.js → swimlanes-B3ENRKFQ-CiLSffGv.js} +1 -1
  234. package/dist/client/assets/swimlanesDiagram-AYQRV4AK-Dv1-QS9J.js +8 -0
  235. package/dist/client/assets/{table-BjHA85BX.js → table-BSAvOYPp.js} +1 -1
  236. package/dist/client/assets/{terminal-qfxxVZaa.js → terminal-6CdY-T1V.js} +1 -1
  237. package/dist/client/assets/{timeline-definition-JXYKGLGB-okVlmef4.js → timeline-definition-JXYKGLGB-5oq8sl82.js} +1 -1
  238. package/dist/client/assets/{trust-posture-BmW0KVP6.js → trust-posture-D-Yjm6ot.js} +1 -1
  239. package/dist/client/assets/{unplug-BYKBdSMl.js → unplug-Bq_1WdV7.js} +1 -1
  240. package/dist/client/assets/{unverified-catalog-notice-CQHA4Cst.js → unverified-catalog-notice-CEzu54YH.js} +1 -1
  241. package/dist/client/assets/{use-adapter-catalog-rB4qQQ5D.js → use-adapter-catalog-Tn3ZbPAj.js} +1 -1
  242. package/dist/client/assets/{use-bindings-DiFC7kWg.js → use-bindings-Bz9YRgO7.js} +1 -1
  243. package/dist/client/assets/{use-composer-prefs-DHY5vJ0l.js → use-composer-prefs-D9oKJSQN.js} +1 -1
  244. package/dist/client/assets/{use-connector-management-CoinXIID.js → use-connector-management-CLYFraXN.js} +1 -1
  245. package/dist/client/assets/{use-deep-link-scroll-Cm8BRFAE.js → use-deep-link-scroll-DkS713kG.js} +1 -1
  246. package/dist/client/assets/{use-delete-binding-FtM6qPfF.js → use-delete-binding-CukKpHBK.js} +1 -1
  247. package/dist/client/assets/{use-dev-links-TQFCV3vk.js → use-dev-links-DQ32IcGe.js} +1 -1
  248. package/dist/client/assets/{use-external-adapter-catalog-Lx8LZDAa.js → use-external-adapter-catalog-D-FO_XW6.js} +1 -1
  249. package/dist/client/assets/{use-full-activity-feed-CmcBAvUM.js → use-full-activity-feed-BNxcyb1j.js} +1 -1
  250. package/dist/client/assets/use-is-below-desktop-gTvJDvw4.js +1 -0
  251. package/dist/client/assets/use-is-hub-B1vPpkYU.js +1 -0
  252. package/dist/client/assets/{use-jump-back-in-V8G_6fYj.js → use-jump-back-in-Bibj5tVk.js} +3 -3
  253. package/dist/client/assets/{use-local-browser-CbS4typW.js → use-local-browser-xg7WXAVK.js} +1 -1
  254. package/dist/client/assets/{use-mesh-topology-DZ1qMT3J.js → use-mesh-topology-BgCSFw8s.js} +1 -1
  255. package/dist/client/assets/{use-mounted-ref-DUbNzP-m.js → use-mounted-ref-qRbdZfOU.js} +1 -1
  256. package/dist/client/assets/{use-notification-prefs-BAsICJ96.js → use-notification-prefs-B-4kZR7I.js} +1 -1
  257. package/dist/client/assets/{use-panel-tab-placements-ymrpuL_s.js → use-panel-tab-placements-CCq-mZlY.js} +1 -1
  258. package/dist/client/assets/use-pending-read-C8L_v4Zw.js +1 -0
  259. package/dist/client/assets/{use-personality-commit-rJOmDgC2.js → use-personality-commit-DwSisUfF.js} +1 -1
  260. package/dist/client/assets/{use-promo-activation-BKeBloMI.js → use-promo-activation-Botoso6l.js} +3 -3
  261. package/dist/client/assets/{use-promo-dismissals-Cio8QMjL.js → use-promo-dismissals-RJXp-r_J.js} +1 -1
  262. package/dist/client/assets/{use-pulse-freshness-DZkMVbSM.js → use-pulse-freshness-B3390hGg.js} +1 -1
  263. package/dist/client/assets/{use-relay-config-CbZQKFhZ.js → use-relay-config-BV0xcLwS.js} +1 -1
  264. package/dist/client/assets/{use-room-follow-claim-DbJIsuWz.js → use-room-follow-claim-Du4hKHIJ.js} +1 -1
  265. package/dist/client/assets/{use-roving-tab-list-B4nZ7trj.js → use-roving-tab-list-g2hO6Ruz.js} +1 -1
  266. package/dist/client/assets/{use-session-canvas-sAwc2L1A.js → use-session-canvas-i30oMO_Q.js} +3 -3
  267. package/dist/client/assets/{use-session-diagnostics-0gcI762B.js → use-session-diagnostics-a4b83F5J.js} +2 -2
  268. package/dist/client/assets/{use-unclaimed-chats-BWIqOrvs.js → use-unclaimed-chats-B92om889.js} +1 -1
  269. package/dist/client/assets/use-update-config-Tbn3SodN.js +1 -0
  270. package/dist/client/assets/{useMutationState-C9Q5lRej.js → useMutationState-DdOGdpjP.js} +1 -1
  271. package/dist/client/assets/{usecaseDiagram-WPOLBNNX-CMjVaeX9.js → usecaseDiagram-WPOLBNNX-Di5pJvcw.js} +1 -1
  272. package/dist/client/assets/{vennDiagram-Q3Y3IDCW-BajZBf0H.js → vennDiagram-Q3Y3IDCW-K7KAf26T.js} +1 -1
  273. package/dist/client/assets/{wardleyDiagram-IVAIDKWA-BN4xF6JT.js → wardleyDiagram-IVAIDKWA-DVTaxQt9.js} +1 -1
  274. package/dist/client/assets/{xychartDiagram-4URNHDU4-Cy0Z9a28.js → xychartDiagram-4URNHDU4-x-lSJm_B.js} +1 -1
  275. package/dist/client/index.html +2 -2
  276. package/dist/drizzle/20261018123612_session_route.sql +1 -0
  277. package/dist/drizzle/20261018210140_remote_command_agent_computer_kind.sql +21 -0
  278. package/dist/drizzle/20261019142317_turn_marks.sql +3 -0
  279. package/dist/drizzle/meta/20261018123612_snapshot.json +14027 -0
  280. package/dist/drizzle/meta/20261018210140_snapshot.json +14027 -0
  281. package/dist/drizzle/meta/20261019142317_snapshot.json +14048 -0
  282. package/dist/drizzle/meta/_journal.json +21 -0
  283. package/dist/server/index.js +25295 -21133
  284. package/dist/server/index.js.map +2 -2
  285. package/package.json +5 -5
  286. package/dist/client/assets/HandlePage-BoBFGnUB.js +0 -1
  287. package/dist/client/assets/McpSigninBody-ZmmY1BZ4.js +0 -1
  288. package/dist/client/assets/NamePage-bC_9FOtD.js +0 -1
  289. package/dist/client/assets/OperatorIdentityForm-BdAqzVEG.js +0 -1
  290. package/dist/client/assets/PermissionHistory-IOgLQ7qN.js +0 -1
  291. package/dist/client/assets/PhotoPage-BOe3xwyN.js +0 -1
  292. package/dist/client/assets/PresetPicker-BcKF2ds8.js +0 -19
  293. package/dist/client/assets/SettingsDialog-BT5rYJUm.js +0 -12
  294. package/dist/client/assets/TaskDialogWrapper-DWpxyxBb.js +0 -1
  295. package/dist/client/assets/ToolsPage-CyNXCe2l.js +0 -2
  296. package/dist/client/assets/_shell-scIpUrVY.js +0 -80
  297. package/dist/client/assets/_shell.channels-B2A1G9n8.js +0 -10
  298. package/dist/client/assets/_shell.connections-eDlPXmuG.js +0 -1
  299. package/dist/client/assets/_shell.marketplace-FHQpZxgB.js +0 -1
  300. package/dist/client/assets/_shell.marketplace_.sources-DXv90Z-v.js +0 -1
  301. package/dist/client/assets/_shell.session-BNeYm91q.js +0 -63
  302. package/dist/client/assets/_shell.x._extensionId-DirEl_qN.js +0 -1
  303. package/dist/client/assets/_shell.x._extensionId_._-DirEl_qN.js +0 -1
  304. package/dist/client/assets/channel-BlEJg4XA.js +0 -1
  305. package/dist/client/assets/image-lightbox-a4gqhNXS.js +0 -1
  306. package/dist/client/assets/index--vwACals.js +0 -1
  307. package/dist/client/assets/index-BydIKjk5.js +0 -1
  308. package/dist/client/assets/index-D18FqQKB.js +0 -1
  309. package/dist/client/assets/index-DBdO-_iL.js +0 -1023
  310. package/dist/client/assets/index-DLdpa3d4.js +0 -1
  311. package/dist/client/assets/index-vieeLeZH.js +0 -1
  312. package/dist/client/assets/primer-trigger-CfVHNFbe.js +0 -3
  313. package/dist/client/assets/registry-B3Ss4ItQ.js +0 -1
  314. package/dist/client/assets/shield-check-DbbCy17l.js +0 -6
  315. package/dist/client/assets/signed-in-CFtA8gTK.js +0 -1
  316. package/dist/client/assets/swimlanesDiagram-AYQRV4AK-CgZZnzbW.js +0 -8
  317. package/dist/client/assets/use-is-below-desktop-BB9kHnYm.js +0 -1
  318. package/dist/client/assets/use-is-hub-ab4UGRdN.js +0 -1
  319. package/dist/client/assets/use-pending-read-BkCvAuX4.js +0 -1
  320. package/dist/client/assets/use-update-config-DTL7WyZV.js +0 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/BlintzCanvas-BEtRmEbL.js","assets/index-DBdO-_iL.js","assets/index-CrflCTqO.css","assets/index-CodC2rG4.js","assets/index-CocSe_I3.js","assets/BlintzCanvas-DCXOV_yN.css","assets/CanvasFileContent-C86nyLbI.js","assets/rotate-cw-C0EpbK5k.js","assets/query-keys-DeYqUDia.js","assets/index.esm-Ruqz-OsH.js","assets/WidgetErrorCard-BYMiUiAf.js","assets/index-vieeLeZH.js","assets/card-DTMhLU7B.js","assets/progress-BduTwXMX.js","assets/markdown-content-BKbjOTI2.js","assets/table-BjHA85BX.js","assets/terminal-qfxxVZaa.js","assets/package-DPgmy9lP.js","assets/heart-Beze5rli.js","assets/git-branch-CJ1NlVLY.js","assets/file-text-DQThCdY3.js","assets/file-Bg_qGvWR.js","assets/McpAppFrame-Dbg_Ni39.js","assets/more-details-BsdCkGTg.js","assets/CanvasModel3dContent-wYHHAovt.js","assets/CanvasCsvContent--6i2ETyZ.js","assets/index-BMktWriw.js"])))=>i.map(i=>d[i]);
2
- var en=Object.defineProperty;var Qt=e=>{throw TypeError(e)};var tn=(e,t,r)=>t in e?en(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var te=(e,t,r)=>tn(e,typeof t!="symbol"?t+"":t,r),gt=(e,t,r)=>t.has(e)||Qt("Cannot "+r);var Me=(e,t,r)=>(gt(e,t,"read from private field"),r?r.call(e):t.get(e)),qe=(e,t,r)=>t.has(e)?Qt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),ve=(e,t,r,n)=>(gt(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),be=(e,t,r)=>(gt(e,t,"access private method"),r);import{W as ft,a1 as ae,a2 as rn,a3 as nn,r as p,ma as ht,fE as Z,fP as Q,fI as jt,fL as Be,fF as ce,mb as sn,mc as on,md as an,aX as Re,c6 as Mt,me as cn,aW as V,is as un,j as h,hp as ln,hq as dn,e2 as fn,G as qt,I as hn,fp as pn,fG as it,c3 as mn,mf as gn,iS as vn,iV as bn,a7 as wn,mg as xn,mh as yr,mi as Ct,mj as ot,mk as kr,fD as Kt,ml as yn,mm as kn,mn as jn,gD as J,mo as Cn,mp as On,B as rt,J as jr,gp as Cr,C as Rn,as as En,mq as _n,mr as Sn,ms as er}from"./index-DBdO-_iL.js";import{R as Dn}from"./rotate-cw-C0EpbK5k.js";import{d as Ot}from"./query-keys-DeYqUDia.js";import{T as In,a as Nn,u as Tn}from"./index.esm-Ruqz-OsH.js";import{v as An,a as zn,W as Fn}from"./WidgetErrorCard-BYMiUiAf.js";import{M as Mn}from"./McpAppFrame-Dbg_Ni39.js";/**
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/BlintzCanvas-CYHsXAcY.js","assets/index-Cga0qx1T.js","assets/index-DUZrTFYD.css","assets/index-DksjixUS.js","assets/index-AzyLwYS_.js","assets/BlintzCanvas-DCXOV_yN.css","assets/CanvasFileContent-estXyAbr.js","assets/rotate-cw-B3rB_YSw.js","assets/query-keys-DeYqUDia.js","assets/index.esm-BFJ9SG0n.js","assets/WidgetErrorCard-cS8yMCxU.js","assets/index-F-vqXYqa.js","assets/card-B3CtfC3R.js","assets/progress-4FQQfnS6.js","assets/markdown-content-m_qereFc.js","assets/table-BSAvOYPp.js","assets/terminal-6CdY-T1V.js","assets/package-CUuTl39E.js","assets/heart-c7u4Ezxt.js","assets/git-branch-BpxhecMq.js","assets/file-text-DgdvRfMk.js","assets/file-D40js1Zx.js","assets/McpAppFrame-C7eYYdI9.js","assets/more-details-ReA2ZFBn.js","assets/CanvasModel3dContent-CkOo930M.js","assets/CanvasCsvContent--Gr7Fe_U.js","assets/index-dyAahqKe.js"])))=>i.map(i=>d[i]);
2
+ var en=Object.defineProperty;var Qt=e=>{throw TypeError(e)};var tn=(e,t,r)=>t in e?en(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var te=(e,t,r)=>tn(e,typeof t!="symbol"?t+"":t,r),gt=(e,t,r)=>t.has(e)||Qt("Cannot "+r);var Me=(e,t,r)=>(gt(e,t,"read from private field"),r?r.call(e):t.get(e)),qe=(e,t,r)=>t.has(e)?Qt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),ve=(e,t,r,n)=>(gt(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),be=(e,t,r)=>(gt(e,t,"access private method"),r);import{W as ft,a1 as ae,a2 as rn,a3 as nn,r as p,jp as ht,fH as Z,fS as Q,fL as jt,fO as Be,fI as ce,mp as sn,mq as on,mr as an,aX as Re,c8 as Mt,ms as cn,aW as V,ix as un,j as h,ht as ln,hu as dn,e5 as fn,G as qt,I as hn,fs as pn,fJ as it,c5 as mn,mt as gn,iO as vn,iS as bn,a7 as wn,mu as xn,mv as yr,mw as Ct,mx as ot,my as kr,fG as Kt,mz as yn,mA as kn,mB as jn,gG as J,mC as Cn,mD as On,B as rt,J as jr,gs as Cr,C as Rn,as as En,mE as _n,mF as Sn,mG as er}from"./index-Cga0qx1T.js";import{R as Dn}from"./rotate-cw-B3rB_YSw.js";import{d as Ot}from"./query-keys-DeYqUDia.js";import{T as In,a as Nn,u as Tn}from"./index.esm-BFJ9SG0n.js";import{v as An,a as zn,W as Fn}from"./WidgetErrorCard-cS8yMCxU.js";import{M as Mn}from"./McpAppFrame-C7eYYdI9.js";/**
3
3
  * @license lucide-react v1.48.0 - ISC
4
4
  *
5
5
  * This source code is licensed under the ISC license.
@@ -22,4 +22,4 @@ var en=Object.defineProperty;var Qt=e=>{throw TypeError(e)};var tn=(e,t,r)=>t in
22
22
  */const _r={name:"zoom-out",size:24,node:[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]};_r.node;const Pn=ft(_r);function Bn(e,t){const r=ae();return rn({queryKey:Ot.index(e??""),queryFn:()=>r.getDocIndex(e),enabled:t&&e!==null,refetchOnWindowFocus:!0})}function Wn(){const e=nn();return p.useCallback(t=>{e.invalidateQueries({queryKey:t?Ot.index(t):Ot.all})},[e])}const _e={pending:64,queueBytes:1048576,batchMs:300,frames:62,imageChars:9e5,imageEdge:1568,resourceErrors:1e4},at=ce().min(1).max(128),Te={bridgeGeneration:at},Un=Z({...Te,__dorkosDevtools:Q("capture-result"),requestId:at,dataUrl:ce().max(9e5).optional(),error:ce().max(2048).optional()}),$n=sn.omit({hostOutcome:!0}).extend({...Te,__dorkosDevtools:Q("act-result"),dataUrl:ce().max(9e5).optional()}),Gn=on.extend({status:Be().int().min(0).max(599),durationMs:Be().min(0),responseSize:Be().int().min(0).max(Number.MAX_SAFE_INTEGER).optional(),timestamp:Be().min(0)}),Hn=an.refine(e=>e.timestamp>=0),Vn=ht("__dorkosDevtools",[Z({__dorkosDevtools:Q("hello"),pageInstanceId:at,bridgeVersion:Q(2)}),Z({...Te,__dorkosDevtools:Q("ready"),pageInstanceId:at}),Z({...Te,__dorkosDevtools:Q("navigated")}),Z({...Te,__dorkosDevtools:Q("resource-error")}),Z({...Te,__dorkosDevtools:Q("batch"),seq:Be().int().min(0).max(Number.MAX_SAFE_INTEGER),console:jt(Hn).max(500),network:jt(Gn).max(200)}),Un,$n]);function Jn(e){const t=new Set;let r=0,n=0;const s=a=>(n+=a)<=16384;function o(a){if(!s(2))return!1;for(let i=0;i<a.length;i++){const d=a.charCodeAt(i);if(d>=55296&&d<=56319&&i+1<a.length&&a.charCodeAt(i+1)>=56320&&a.charCodeAt(i+1)<=57343){if(!s(2))return!1;i++;continue}const u=d===34||d===92||[8,9,10,12,13].includes(d)?2:d<32||d>=55296&&d<=57343?6:1;if(!s(u))return!1}return!0}function c(a,i){if(++r>2048||i>8)return!1;if(a===null)return s(4);if(typeof a=="boolean")return s(a?4:5);if(typeof a=="string")return o(a);if(typeof a=="number")return Number.isFinite(a)&&s(String(a).length);if(typeof a!="object"||t.has(a))return!1;const d=Object.getPrototypeOf(a);if(d!==Object.prototype&&d!==null&&d!==Array.prototype)return!1;const u=Array.isArray(a);if(u&&a.length>2048||Object.getOwnPropertySymbols(a).length||!s(2))return!1;t.add(a);let f=0;for(const l in a){if(!Object.prototype.hasOwnProperty.call(a,l))continue;if(++f>2048||u&&(!/^\d+$/.test(l)||Number(l)>=a.length))return!1;const m=Object.getOwnPropertyDescriptor(a,l);if(["__proto__","constructor","prototype"].includes(l)||!("value"in m)||!m.enumerable||f>1&&!s(1)||!u&&(!o(l)||!s(1))||!c(m.value,i+1))return!1}return t.delete(a),!u||f===a.length}try{return c(e,0)}catch{return!1}}function Xn(e){try{if(!e||typeof e!="object")return null;const t=e;if(t.__dorkosDevtools==="capture-result"&&t.dataUrl===void 0&&t.error===void 0)return null;if(t.__dorkosDevtools==="batch"){if(!Array.isArray(t.console)||t.console.length>500||!Array.isArray(t.network)||t.network.length>200)return null;for(const s of t.console){if(!s||typeof s!="object")return null;const o=s.args;if(o!==void 0&&(!Array.isArray(o)||o.length>50||!Jn(o)))return null}}const r=Vn.safeParse(e);if(!r.success)return null;const n=r.data;return"dataUrl"in n&&n.dataUrl!==void 0&&!Sr(n.dataUrl)?null:n}catch{return null}}function Sr(e){if(e.length>9e5||!/^data:image\/png;base64,[A-Za-z0-9+/]+={0,2}$/.test(e))return null;try{const t=atob(e.slice(e.indexOf(",")+1));if(t.length<24||t.slice(0,8)!==`‰PNG\r
23
23
  
24
24
  `||t.slice(12,16)!=="IHDR")return null;const r=o=>t.charCodeAt(o)*2**24+(t.charCodeAt(o+1)<<16)+(t.charCodeAt(o+2)<<8)+t.charCodeAt(o+3),n=r(16),s=r(20);return n>0&&s>0&&n<=1568&&s<=1568?{width:n,height:s}:null}catch{return null}}let vt=null;async function tr(){return vt===null&&(vt=(await Re(()=>import("./html-to-image-cl8bZGTj.js"),[])).default),vt}let bt=null;async function Zn(){if(bt===null){const e=await Re(()=>import("./gifenc.esm-sOOlYEo8.js"),[]);bt={GIFEncoder:e.GIFEncoder,quantize:e.quantize,applyPalette:e.applyPalette}}return bt}async function rr(e,t,r=()=>{}){if(e.length===0)return{ok:!1,error:"The recording has no frames in it."};r();const{GIFEncoder:n,quantize:s,applyPalette:o}=await Zn();r();const c=e[0],a=e[e.length-1],i=new Uint8ClampedArray(c.data.length+a.data.length);i.set(c.data,0),i.set(a.data,c.data.length);const d=s(i,256),u=n();for(let l=0;l<e.length;l++){r();const m=e[l];if(u.writeFrame(o(m.data,d),m.width,m.height,{...l===0?{palette:d,repeat:0}:{},delay:t.frameMs}),u.bytesView().byteLength>t.maxBytes)return{ok:!1,error:`The recording came out bigger than ${Math.round(t.maxBytes/1024/1024)} MB, so it was not saved.`}}u.finish();const f=u.bytes();return f.byteLength>t.maxBytes?{ok:!1,error:`The recording came out bigger than ${Math.round(t.maxBytes/1024/1024)} MB, so it was not saved.`}:{ok:!0,bytes:f}}async function Yn(e,t,r=()=>{}){const n=[],s=document.createElement("canvas");let o=0,c=0;try{for(let a=0;a<Math.min(e.length,62);a++){r();const i=e[a];if(!Sr(i)){e[a]="";continue}const d=await Kn(i);e[a]="";try{if(r(),!d)continue;if(!o){const l=Math.min(1,Math.min(800,t)/Math.max(d.width,d.height,1));o=Math.max(1,Math.round(d.width*l)),c=Math.max(1,Math.round(d.height*l)),s.width=o,s.height=c}const u=s.getContext("2d",{willReadFrequently:!0});if(!u)return[];u.fillStyle="#ffffff",u.fillRect(0,0,o,c);const f=Math.min(o/d.width,c/d.height);u.drawImage(d,0,0,Math.round(d.width*f),Math.round(d.height*f)),r(),n.push({data:u.getImageData(0,0,o,c).data,width:o,height:c})}finally{d&&(d.src="")}}return n}catch(a){throw n.length=0,a}finally{e.length=0,s.width=0,s.height=0}}function Qn(e,t=()=>{}){const r=document.createElement("canvas"),n=document.createElement("canvas");try{for(let s=0;s<e.length;s++){t();const o=e[s];n.width=o.width,n.height=o.height,r.width=Math.max(1,Math.round(o.width/2)),r.height=Math.max(1,Math.round(o.height/2));const c=n.getContext("2d"),a=r.getContext("2d",{willReadFrequently:!0});if(!c||!a)throw new Error("Canvas pixels are unavailable");c.putImageData(new ImageData(new Uint8ClampedArray(o.data),o.width,o.height),0,0),a.drawImage(n,0,0,r.width,r.height),e[s]={data:a.getImageData(0,0,r.width,r.height).data,width:r.width,height:r.height}}}finally{n.width=n.height=r.width=r.height=0}}function Kn(e){return new Promise(t=>{const r=new Image;r.onload=()=>{r.onload=r.onerror=null,t(r)},r.onerror=()=>{r.onload=r.onerror=null,r.src="",t(null)},r.src=e})}function nr(e,t,r){const n=r.slice().buffer;return{name:e,type:t,size:r.byteLength,arrayBuffer:async()=>n}}function es(e){const t=atob(e.slice(e.indexOf(",")+1));return Uint8Array.from(t,r=>r.charCodeAt(0))}const ts=8e3;function rs(e){const t=ae(),r=p.useRef(t);p.useLayoutEffect(()=>{r.current=t});const[n]=Mt(),[s,o]=p.useState(0),c=p.useRef(null),a=p.useRef(new Map),i=p.useRef(null),d=p.useRef({console:[],network:[],entryBytes:0,overheadBytes:0}),u=p.useRef(null),f=p.useRef(-1),l=p.useRef(null),m=p.useRef(null),w=p.useRef(!1),g=p.useRef(-1/0),v=p.useRef(!1),N=p.useRef(null),S=p.useRef(0),I=p.useRef(null),z=p.useRef(null),M=p.useRef(!1),L=p.useRef(null),P=p.useRef({...e,sessionId:n}),q=p.useRef(Promise.resolve()),G=p.useRef(()=>{}),re=p.useRef({initialize:x,retire:D,consume:ue,register:B,eligiblePending:ee,refuseRequest:k,live:R,captureFrame:mt,valid:Ke,reportRecordingStart:Ae,cancelReservation:Ut,finish:$t});p.useLayoutEffect(()=>{re.current={initialize:x,retire:D,consume:ue,register:B,eligiblePending:ee,refuseRequest:k,live:R,captureFrame:mt,valid:Ke,reportRecordingStart:Ae,cancelReservation:Ut,finish:$t}});const ge=O=>L.current===O||V.getState().openDocuments.some(b=>b.id===O&&b.openedHere);function y(O,{active:b,activation:E=!1,keepalive:j=!1,reset:T=!1}){if(!O.sessionId)return;const Y={documentId:O.documentId,logicalUrl:O.logicalUrl,bridgeGeneration:O.generation,seq:Math.max(0,f.current),console:[],network:[],active:b,activation:E,instrumented:O.ready&&!O.retired,...T?{reset:!0}:{}};q.current=q.current.then(()=>r.current.ingestDevtoolsCapture(O.sessionId,Y,j?{keepalive:!0}:void 0)).catch(()=>{})}function D(){var E;const O=c.current;O&&(O.retired=!0),c.current=null,u.current!==null&&clearTimeout(u.current),u.current=null,i.current=null,d.current={console:[],network:[],entryBytes:0,overheadBytes:0},f.current=-1,g.current=-1/0,v.current=!1;for(const[j,T]of a.current)T.life.sessionId&&T.deadline>Date.now()&&T.kind!=="frame"&&k(j,T.kind,T.life,"The frame changed while this request was pending."),clearTimeout(T.timer),(E=T.resolve)==null||E.call(T,null);a.current.clear(),O&&y(O,{active:!1});const b=N.current;b&&(clearTimeout(b.reservationTimer),b.cancelled=!0,b.abort.abort(),b.frames.length=0,b.finishing||(b.drawn.length=0,N.current=null)),I.current!==null&&cancelAnimationFrame(I.current),I.current=null,S.current=0,o(0)}function x({loadActivation:O,reset:b=!1}={}){var $,se;const E=P.current,j=($=E.iframeRef.current)==null?void 0:$.contentWindow;if(w.current||!j||!E.bridgeEligibility||!E.resolvedSource)return;const T={generation:crypto.randomUUID(),frame:j,sessionId:E.sessionId,documentId:E.documentId,logicalUrl:E.logicalUrl,source:E.resolvedSource,origin:E.bridgeEligibility==="served-document"?"null":E.previewOrigin,ready:!1,activation:!1,retired:!1};c.current=T;const Y=O??(M.current||z.current!==T.documentId&&ge(T.documentId));T.activation=Y,M.current=!1,z.current=T.documentId,y(T,{active:!0,activation:Y,reset:b}),((se=l.current)==null?void 0:se.frame)===j&&l.current.source===E.resolvedSource&&l.current.reload===E.reloadNonce&&l.current.documentId===E.documentId&&l.current.logicalUrl===E.logicalUrl&&j.postMessage({__dorkosDevtools:"init",bridgeGeneration:T.generation},"*")}p.useLayoutEffect(()=>{var j;P.current={...e,sessionId:n};const O={frame:(j=e.iframeRef.current)==null?void 0:j.contentWindow,sessionId:n,documentId:e.documentId,logicalUrl:e.logicalUrl,source:e.resolvedSource,eligibility:e.bridgeEligibility,origin:e.previewOrigin,reload:e.reloadNonce},b=m.current;if(!b||Object.keys(O).some(T=>O[T]!==b[T])){const T=!b||b.frame!==O.frame||b.documentId!==O.documentId||b.logicalUrl!==O.logicalUrl||b.source!==O.source||b.reload!==O.reload;m.current=O,w.current=!1,D(),x({reset:T})}});const C=p.useCallback(()=>{var Y,$,se;const{initialize:O,retire:b}=re.current,E=P.current,j=(Y=E.iframeRef.current)==null?void 0:Y.contentWindow,T=($=c.current)!=null&&$.ready?!1:(se=c.current)==null?void 0:se.activation;j&&E.resolvedSource&&(l.current={frame:j,source:E.resolvedSource,reload:E.reloadNonce,documentId:E.documentId,logicalUrl:E.logicalUrl}),w.current=!1,b(),O({loadActivation:T,reset:!0})},[]),A=p.useCallback(()=>{const O=c.current;M.current=!0,L.current=P.current.documentId,O&&G.current({active:!0,activation:!0})},[]);p.useLayoutEffect(()=>{G.current=O=>{c.current&&y(c.current,O)}});function R(O){return c.current===O&&!O.retired}function k(O,b,E,j){if(!E.sessionId)return;const T={requestId:O,bridgeGeneration:E.generation,documentId:E.documentId,hostOutcome:"host",error:j};b==="action"?r.current.postDevtoolsAction(E.sessionId,{...T,ok:!1}).catch(()=>{}):r.current.ingestDevtoolsCapture(E.sessionId,{...T,logicalUrl:E.logicalUrl,seq:Math.max(0,f.current),console:[],network:[],screenshot:{requestId:O,error:j}}).catch(()=>{})}function B(O,b,E,{capture:j=!1,resolve:T,timeoutMs:Y=8e3}={}){if(a.current.size>=_e.pending||a.current.has(O))return null;const $=setTimeout(()=>U(O,se),Y),se={kind:b,life:E,capture:j,deadline:Date.now()+Y,timer:$,resolve:T};return a.current.set(O,se),se}function U(O,b){var E;a.current.get(O)===b&&(a.current.delete(O),clearTimeout(b.timer),(E=b.resolve)==null||E.call(b,null))}function ee(O,b,E){return a.current.get(O)!==b||b.life!==E||!R(E)?!1:Date.now()>=b.deadline?(U(O,b),!1):!0}function ue(O,b,E){const j=a.current.get(O);return!j||j.life!==E||j.kind!==b&&!(b==="capture"&&j.kind==="frame")||!ee(O,j,E)?null:(a.current.delete(O),clearTimeout(j.timer),j)}p.useEffect(()=>{const{initialize:O,retire:b,consume:E}=re.current;function j(){u.current=null;const de=i.current;i.current=null,d.current={console:[],network:[],entryBytes:0,overheadBytes:0};const _=c.current;de&&_&&!_.retired&&_.sessionId&&de.bridgeGeneration===_.generation&&r.current.ingestDevtoolsCapture(_.sessionId,de)}function T(de){var Ht,Vt,Jt,Xt;const _=c.current;if(!_||_.retired||de.source!==_.frame||de.origin!==_.origin||((Ht=l.current)==null?void 0:Ht.frame)!==_.frame||l.current.source!==_.source||l.current.reload!==P.current.reloadNonce||l.current.documentId!==_.documentId||l.current.logicalUrl!==_.logicalUrl)return;const F=de.data;if(!F||typeof F!="object"||typeof F.__dorkosDevtools!="string"||!["hello","ready","navigated","resource-error","batch","capture-result","act-result"].includes(F.__dorkosDevtools)||F.__dorkosDevtools!=="hello"&&F.bridgeGeneration!==_.generation)return;const ie=F.__dorkosDevtools==="batch";if(ie){if(!_.ready||!_.sessionId||F.bridgeGeneration!==_.generation||!Number.isSafeInteger(F.seq)||F.seq<0||F.seq<=f.current)return;const H=Date.now();if(H-g.current<_e.batchMs){i.current?i.current.dropped=!0:v.current=!0;return}g.current=H}const W=Xn(F);if(!W){ie&&(v.current=!0);return}if(W.__dorkosDevtools==="hello"){_.frame.postMessage({__dorkosDevtools:"init",bridgeGeneration:_.generation},"*");return}if(W.bridgeGeneration!==_.generation)return;if(W.__dorkosDevtools==="ready"){_.ready||(_.ready=!0,_.activation=!1,y(_,{active:!0}));return}if(!_.ready)return;if(W.__dorkosDevtools==="navigated"){w.current=!0,b();return}if(W.__dorkosDevtools==="resource-error"){S.current=Math.min(_e.resourceErrors,S.current+1),I.current===null&&(I.current=requestAnimationFrame(()=>{I.current=null,R(_)&&o(S.current)}));return}if(!_.sessionId)return;if(W.__dorkosDevtools==="batch"){if(W.seq<=f.current)return;f.current=W.seq;const H=i.current??{documentId:_.documentId,logicalUrl:_.logicalUrl,bridgeGeneration:_.generation,seq:W.seq,console:[],network:[]};H.seq=W.seq,v.current&&(H.dropped=!0),v.current=!1;const je=d.current,Zt=new TextEncoder;if(i.current||(je.overheadBytes=Zt.encode(JSON.stringify({...H,seq:Number.MAX_SAFE_INTEGER,dropped:!0,console:[],network:[]})).length),je.overheadBytes>_e.queueBytes){i.current=null,d.current={console:[],network:[],entryBytes:0,overheadBytes:0},v.current=!0;return}for(const[Fe,Qr]of[["console",W.console],["network",W.network]])for(const Kr of Qr){const Yt=Zt.encode(JSON.stringify(Kr)).length;je[Fe].push(Yt),je.entryBytes+=Yt}H.console.push(...W.console),H.network.push(...W.network);const Yr=()=>je.overheadBytes+je.entryBytes+Math.max(0,H.console.length-1)+Math.max(0,H.network.length-1);for(;H.console.length>500||H.network.length>200||Yr()>_e.queueBytes;){H.dropped=!0;const Fe=(((Vt=H.console[0])==null?void 0:Vt.timestamp)??1/0)<=(((Jt=H.network[0])==null?void 0:Jt.timestamp)??1/0)?"console":"network";if(!H[Fe].length)break;H[Fe].shift(),je.entryBytes-=je[Fe].shift()}i.current=H,u.current===null&&(u.current=setTimeout(j,_e.batchMs));return}if(W.__dorkosDevtools==="capture-result"){const H=E(W.requestId,"capture",_);if(!H)return;if(H.kind==="frame"){(Xt=H.resolve)==null||Xt.call(H,W.dataUrl??null);return}r.current.ingestDevtoolsCapture(_.sessionId,{bridgeGeneration:_.generation,documentId:_.documentId,logicalUrl:_.logicalUrl,seq:Math.max(0,f.current),console:[],network:[],hostOutcome:"page-reported",screenshot:{requestId:W.requestId,dataUrl:W.dataUrl,error:W.error}});return}const ze=E(W.requestId,"action",_);if(!ze)return;const Ee=N.current,Gt=ze.capture&&W.dataUrl!==void 0&&Ee!==null&&Ee.life===_&&Ee.activated&&!Ee.finishing&&!Ee.cancelled&&Ee.frames.length<61;Gt&&Ee.frames.push(W.dataUrl);const{__dorkosDevtools:bo,dataUrl:wo,...Zr}=W;r.current.postDevtoolsAction(_.sessionId,{...Zr,hostOutcome:"page-reported",documentId:_.documentId,captured:Gt||void 0})}window.addEventListener("message",T);const Y=setInterval(()=>G.current({active:!0}),15e3),$=()=>{c.current||O(),G.current({active:!0,activation:!0})},se=()=>{G.current({active:!1,keepalive:!0}),b()},oe=()=>{document.visibilityState==="visible"&&$()};return window.addEventListener("focus",$),window.addEventListener("pagehide",se),window.addEventListener("pageshow",$),document.addEventListener("visibilitychange",oe),()=>{window.removeEventListener("message",T),clearInterval(Y),window.removeEventListener("focus",$),window.removeEventListener("pagehide",se),window.removeEventListener("pageshow",$),document.removeEventListener("visibilitychange",oe),b()}},[]),p.useEffect(()=>cn.subscribeSessionEvent((O,b)=>{if(b.type!=="devtools_capture_request"&&b.type!=="devtools_action_request"&&b.type!=="devtools_recording_request")return;const{register:E,eligiblePending:j,refuseRequest:T,captureFrame:Y,valid:$,finish:se,reportRecordingStart:oe,cancelReservation:de}=re.current,_=c.current;if(!(!(_!=null&&_.ready)||!_.sessionId||_.retired||b.targetClientId!==r.current.clientId||b.documentId!==_.documentId||b.bridgeGeneration!==_.generation)){if(b.type==="devtools_capture_request"||b.type==="devtools_action_request"){const F=b.type==="devtools_action_request",ie=E(b.requestId,F?"action":"capture",_,{capture:F&&!!b.capture,timeoutMs:F&&b.command.action==="wait_for"?Math.min(1e4,b.command.timeoutMs)+2e3:8e3});if(!ie){a.current.has(b.requestId)||T(b.requestId,F?"action":"capture",_,"Too many browser requests are waiting. Try again when one finishes.");return}const W=ze=>{j(b.requestId,ie,_)&&_.frame.postMessage(F?{__dorkosDevtools:"act-request",bridgeGeneration:_.generation,requestId:b.requestId,documentId:_.documentId,command:b.command,...b.capture?{capture:!0,lib:ze}:{}}:{__dorkosDevtools:"capture-request",bridgeGeneration:_.generation,requestId:b.requestId,lib:ze},"*")};!F||b.capture?tr().then(W,()=>W()):W()}if(b.type==="devtools_recording_request"){if(b.action==="cancel-start"){de(b.recordingId,b.requestId,_);return}if(b.action==="confirm-start"){const F=N.current;if(!F||F.id!==b.recordingId||F.startRequestId!==b.requestId||F.life!==_||F.finishing||!$(F))return;if(!F.activated){if(performance.now()>=F.reservationDeadline){de(F.id,F.startRequestId,_),oe(b,_,{phase:"started",ok:!1,error:"This recording reservation expired before capture could start."});return}clearTimeout(F.reservationTimer),F.activated=!0,F.startedAt=Date.now(),Y(_).then(ie=>{ie&&$(F)&&F.frames.push(ie)})}oe(b,_,{phase:"started",ok:!0});return}if(b.action==="start"){const F=b.reservationTimeoutMs;if(!Number.isSafeInteger(F)||!F||F<1||F>ts){oe(b,_,{phase:"reserved",ok:!1,error:"This recording request has no valid reservation timeout."});return}if(N.current){oe(b,_,{phase:"reserved",ok:!1,error:"Another recording in this window is still running or being saved. Wait for it to finish, then start again."});return}const ie={id:b.recordingId,startRequestId:b.requestId,activated:!1,reservationDeadline:performance.now()+F,life:_,startedAt:Date.now(),frames:[],drawn:[],finishing:!1,cancelled:!1,abort:new AbortController};N.current=ie,ie.reservationTimer=setTimeout(()=>{N.current===ie&&!ie.activated&&de(ie.id,ie.startRequestId,_)},F),oe(b,_,{phase:"reserved",ok:!0})}else se(b.requestId,b.recordingId,_)}}}),[]);function Ae(O,b,E){!R(b)||!b.sessionId||r.current.ingestDevtoolsCapture(b.sessionId,{hostOutcome:"host",documentId:b.documentId,bridgeGeneration:b.generation,seq:0,console:[],network:[],recordingStart:{...E,requestId:O.requestId,recordingId:O.recordingId}}).catch(()=>{})}function Ut(O,b,E){var T;const j=N.current;if(!(!j||j.id!==O||j.startRequestId!==b||j.life!==E||j.finishing)){clearTimeout(j.reservationTimer),j.cancelled=!0,j.abort.abort(),j.frames.length=0,j.drawn.length=0;for(const[Y,$]of a.current)$.life===E&&$.kind==="frame"&&(clearTimeout($.timer),(T=$.resolve)==null||T.call($,null),a.current.delete(Y));N.current=null}}function Ke(O){return N.current===O&&!O.cancelled&&R(O.life)}function mt(O){const b=`frame-${crypto.randomUUID()}`;return new Promise(E=>{const j=B(b,"frame",O,{resolve:E});if(!j){E(null);return}tr().then(T=>{ee(b,j,O)&&O.frame.postMessage({__dorkosDevtools:"capture-request",bridgeGeneration:O.generation,requestId:b,lib:T},"*")},()=>{U(b,j)})})}async function $t(O,b,E){const j=N.current;if(!j||!j.activated||j.id!==b||j.life!==E){R(E)&&await r.current.uploadDevtoolsRecording(E.sessionId,{requestId:O,bridgeGeneration:E.generation,documentId:E.documentId,hostOutcome:"host",error:"The window showing that page stopped recording before it could be saved."}).catch(()=>{});return}if(j.finishing)return;j.finishing=!0;const T=()=>{if(!Ke(j))throw new Error("retired")},Y={requestId:O,bridgeGeneration:E.generation,documentId:E.documentId};try{const $=await mt(E);T(),$&&j.frames.length<_e.frames&&j.frames.push($);const se=j.frames.length?es(j.frames[j.frames.length-1]):new Uint8Array;j.drawn=await Yn(j.frames,800,T),T();let oe=await rr(j.drawn,{frameMs:500,maxBytes:8*1024*1024},T);if(T(),!oe.ok&&j.drawn.length&&(Qn(j.drawn,T),oe=await rr(j.drawn,{frameMs:500,maxBytes:8*1024*1024},T),T()),!oe.ok){await r.current.uploadDevtoolsRecording(E.sessionId,{...Y,hostOutcome:"host",error:oe.error},{signal:j.abort.signal}),T();return}T(),await r.current.uploadDevtoolsRecording(E.sessionId,{...Y,frames:j.drawn.length,durationMs:Date.now()-j.startedAt,recording:nr(`${b}.gif`,"image/gif",oe.bytes),keyframe:nr(`${b}.png`,"image/png",se)},{signal:j.abort.signal}),T()}catch{Ke(j)&&await r.current.uploadDevtoolsRecording(E.sessionId,{...Y,hostOutcome:"host",error:"This window could not turn that recording into a file."},{signal:j.abort.signal}).catch(()=>{})}finally{j.frames.length=0,j.drawn.length=0,N.current===j&&(N.current=null)}}return{resourceErrorCount:s,notePersonNavigated:A,noteFrameLoaded:C}}const ns=15e3;function ss(e){const t=e instanceof Error?e.message.trim():"";return t.length>0?t:"Couldn’t reach DorkOS. Check your network and try again."}function is(e){const t=ae();return{open:p.useCallback(async r=>{await t.openRoomCanvasDocument(e,r)},[t,e]),update:p.useCallback(async(r,n)=>{await t.updateRoomCanvasDocument(e,r,{content:n})},[t,e]),pin:p.useCallback(async(r,n)=>{await t.updateRoomCanvasDocument(e,r,{pinned:n})},[t,e]),close:p.useCallback(async r=>{await t.closeRoomCanvasDocument(e,r)},[t,e])}}function os(e,t){const r=ae(),n=V(s=>s.setRoomCanvasEditing);p.useEffect(()=>{if(n(e,t),t===null)return;const s=c=>{r.setRoomCanvasEditing(e,t,c).catch(a=>{console.warn("[room-canvas] edit lock failed",{roomId:e,documentId:t,err:a})})};s(!0);const o=setInterval(()=>s(!0),ns);return()=>{clearInterval(o),s(!1),n(e,null)}},[r,e,t,n])}const as=400;function _o(e,t){const r=ae(),n=V(s=>s.roomCanvasPresenceEpoch[e]??0);p.useEffect(()=>{const s=a=>{r.setRoomCanvasViewing(e,a).catch(i=>{console.warn("[room-canvas] could not say where we are looking",{roomId:e,err:i})})};let o=!1;const c=setTimeout(()=>{o=!0,s(t)},as);return()=>{clearTimeout(c),o&&s(null)}},[r,e,t,n])}const cs="allow-scripts allow-forms allow-popups allow-modals",wt="allow-scripts allow-same-origin allow-popups allow-forms allow-modals allow-downloads",us=new Set(["javascript:","data:","blob:"]),ls=new Set(["localhost","127.0.0.1","0.0.0.0","[::1]","::1"]);function Lt(e){return ls.has(e)||e.endsWith(".localhost")}function ds(e){return Lt(e)?"direct":"server"}function fs(e,t){let r;try{r=new URL(e)}catch{return null}const n=r.searchParams.get(sr),s=new URL(r.origin),o=t.indexOf("?");return s.pathname=(o===-1?t:t.slice(0,o))||"/",s.search=o===-1?"":t.slice(o),n!==null&&s.searchParams.set(sr,n),s.toString()}const sr="__dorkos_preview",hs="/__dorkos_preview/health";function ps(e){return e==="https:"?443:80}function Dr(e){let t;try{t=new URL(e)}catch{return{mode:"serve",path:e}}if(us.has(t.protocol))return{mode:"blocked"};if(t.protocol==="file:")return{mode:"serve",path:decodeURIComponent(t.pathname)};if(t.protocol==="http:"||t.protocol==="https:"){if(Lt(t.hostname)){const r=t.port?Number(t.port):ps(t.protocol);return{mode:"proxy",hostname:t.hostname,port:r,path:`${t.pathname}${t.search}`}}return{mode:"external",url:e}}return{mode:"blocked"}}function ms(e){const t=e.trim();if(t===""||/^[a-z][a-z0-9+.-]*:\/\//i.test(t)||t.startsWith("/")||t.startsWith("./")||t.startsWith("../"))return t;const r=t.split("/")[0];if(t.includes("/")&&!r.includes(".")&&!r.includes(":"))return t;const s=r.split(":")[0];return`${Lt(s)?"http":"https"}://${t}`}function gs(e){const t=Dr(e);if(t.mode==="serve")return{kind:"local",path:t.path};if(t.mode==="blocked")return{kind:"raw",text:e};try{const r=new URL(e),n=r.host.replace(/^www\./,""),s=r.pathname==="/"&&r.search===""&&r.hash===""?"":`${r.pathname}${r.search}${r.hash}`;return{kind:"url",host:n,rest:s}}catch{return{kind:"raw",text:e}}}const vs=2e3;async function ir(e,t=globalThis.fetch,r=vs){const n=new AbortController,s=setTimeout(()=>n.abort(),r);try{return await t(e,{mode:"no-cors",cache:"no-store",signal:n.signal}),!0}catch{return n.signal.aborted}finally{clearTimeout(s)}}function bs({target:e,currentUrl:t,strategy:r,cwd:n,reloadNonce:s}){const o=JSON.stringify([t,r,n,s]),[c,a]=p.useState(null),[i,d]=p.useState(null),[u,f]=p.useState(null),l=ae(),m=p.useRef(l);return p.useEffect(()=>{m.current=l}),p.useEffect(()=>{const w=m.current;let g=!1;const v=z=>{a(o),d(z)};async function N(z){if(n===null){f({kind:"no-session"});return}try{const M=await w.createServeUrl(n,z);if(g)return;M===null?f({kind:"unsupported"}):v({src:M,sandbox:cs,previewOrigin:null,bridgeEligibility:"served-document"})}catch{g||f({kind:"failed"})}}async function S(z,M){let L;try{const q=await w.probeLoopbackPort(z);L=q===null?"unknown":q.listening}catch{L="unknown"}if(g)return;let P=null;if(L!==!1){let q=null;try{q=await w.createProxyUrl(z)}catch{if(g)return;P={kind:"failed"}}if(g)return;if((q==null?void 0:q.unavailable)==="tunnel"){f({kind:"tunnel"});return}if((q==null?void 0:q.unavailable)==="no-port"&&(P={kind:"no-port"}),q!=null&&q.url){const G=new URL(q.url);if(await ir(`${G.origin}${hs}`)){if(g)return;const re=fs(q.url,M);if(re!==null){v({src:re,sandbox:wt,previewOrigin:G.origin,bridgeEligibility:"preview-listener"});return}}if(g)return;P={kind:"origin-unreachable",host:G.hostname,listenPort:G.port}}}if(r==="direct"&&await ir(t)){if(g)return;v({src:t,sandbox:wt,previewOrigin:null,bridgeEligibility:null});return}g||f(P??{kind:"no-upstream"})}async function I(){if(f(null),d(null),e.mode!=="blocked"){if(e.mode==="external"){v({src:e.url,sandbox:wt,previewOrigin:null,bridgeEligibility:null});return}return e.mode==="serve"?N(e.path):S(e.port,e.path)}}return I(),()=>{g=!0}},[e,t,r,n,s,o]),{resolved:c===o?i:null,resolveError:u}}const ws=1e4;function xs(e,t){if(e&&e.contentUrl===t&&e.stack.length>0){const r=Math.min(Math.max(e.cursor,0),e.stack.length-1);return{stack:e.stack,cursor:r}}return{stack:[t],cursor:0}}function ys({documentId:e,content:t}){const r=V(C=>C.selectedCwd),n=V(C=>C.writeBrowserHistory),[s]=p.useState(()=>xs(V.getState().browserHistories[e],t.url)),[o,c]=p.useState(s.stack),[a,i]=p.useState(s.cursor),[d,u]=p.useState(0);p.useEffect(()=>{n(e,{contentUrl:t.url,stack:o,cursor:a})},[e,t.url,o,a,n]);const f=o[a],l=p.useMemo(()=>Dr(f),[f]),m=p.useMemo(()=>l.mode==="proxy"?ds(window.location.hostname):null,[l]),w=p.useRef(null),{resolved:g,resolveError:v}=bs({target:l,currentUrl:f,strategy:m,cwd:r,reloadNonce:d}),{resourceErrorCount:N,notePersonNavigated:S,noteFrameLoaded:I}=rs({iframeRef:w,documentId:e,logicalUrl:f,reloadNonce:d,previewOrigin:(g==null?void 0:g.previewOrigin)??null,bridgeEligibility:(g==null?void 0:g.bridgeEligibility)??null,resolvedSource:(g==null?void 0:g.src)??null}),z=V(C=>C.roomCanvasLiveRoomId),{open:M}=is(z??""),[L,P]=p.useState(null),q=p.useCallback(C=>{c(A=>[...A.slice(0,a+1),C]),i(A=>A+1)},[a]),G=un(z),re=V(C=>z?C.roomCanvasEditing[z]??null:null);p.useEffect(()=>{if(G===null||re!==null||G.documentId!==e)return;const C=G.url;C===void 0||C===f||q(C)},[G,re,e,f,q]);const ge=a>0,y=a<o.length-1,D=p.useCallback(C=>{const A=ms(C);if(!A||A===f){S(),u(R=>R+1);return}if(z){P(null),M({type:"browser",url:A}).catch(R=>{P({url:A,message:ss(R)})});return}S(),q(A)},[f,q,z,M,S]),x=()=>pn(f);return h.jsxs("div",{className:"flex h-full flex-col",children:[h.jsxs("div",{className:"border-border/60 flex shrink-0 flex-wrap items-center gap-1 border-b px-2 py-1 lg:h-9 lg:flex-nowrap lg:py-0",children:[h.jsx(et,{label:"Back",disabled:!ge,onClick:()=>i(C=>C-1),children:h.jsx(ln,{className:"size-4"})}),h.jsx(et,{label:"Forward",disabled:!y,onClick:()=>i(C=>C+1),children:h.jsx(dn,{className:"size-4"})}),h.jsx(et,{label:"Reload",onClick:()=>u(C=>C+1),children:h.jsx(Dn,{className:"size-4"})}),h.jsx("div",{className:"order-first flex w-full min-w-0 lg:order-none lg:w-auto lg:flex-1",children:h.jsx(ks,{url:(L==null?void 0:L.url)??f,startEditing:L!==null,onSubmit:D},L===null?"address":`retry:${L.url}`)}),h.jsx(et,{label:"Open in system browser",onClick:x,children:h.jsx(fn,{className:"size-4"})})]}),L!==null&&h.jsx("p",{role:"status",className:"text-destructive border-border/60 border-b px-2 py-1 text-xs",children:L.message}),h.jsx(Rs,{target:l,resolved:g,resolveError:v,reloadNonce:d,resourceErrorCount:N,title:t.title??"Embedded browser",onOpenExternally:x,onReload:()=>{S(),u(C=>C+1)},iframeRef:w,onFrameLoad:I})]})}function ks({url:e,startEditing:t=!1,onSubmit:r}){const[n,s]=p.useState(t),[o,c]=p.useState(e);if(!n)return h.jsx(Cs,{url:e,onActivate:()=>{c(e),s(!0)}});const a=i=>{i.preventDefault(),s(!1),r(o)};return h.jsx("form",{onSubmit:a,className:"min-w-0 flex-1",children:h.jsx(hn,{"aria-label":"Address",autoFocus:!0,value:o,onChange:i=>c(i.target.value),onFocus:i=>i.currentTarget.select(),onBlur:()=>s(!1),onKeyDown:i=>{i.key==="Escape"&&(i.preventDefault(),s(!1))},spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",className:"h-11 w-full text-base lg:h-7 lg:text-sm"})})}function js(e){return e.kind==="local"?e.path:e.kind==="url"?`${e.host}${e.rest}`:e.text}function Cs({url:e,onActivate:t}){const r=p.useMemo(()=>gs(e),[e]);return h.jsxs("button",{type:"button","aria-label":`Address: ${js(r)}`,onClick:t,className:"text-muted-foreground hover:bg-muted focus-ring flex h-11 min-w-0 flex-1 items-center gap-1.5 rounded-md px-2 text-left text-sm transition-colors lg:h-7",children:[r.kind==="local"&&h.jsxs(h.Fragment,{children:[h.jsx("span",{className:"bg-muted-foreground/15 text-3xs rounded px-1 py-0.5 font-medium tracking-wide uppercase",children:"local"}),h.jsx("span",{className:"text-foreground truncate",children:r.path})]}),r.kind==="url"&&h.jsxs("span",{className:"truncate",children:[h.jsx("span",{className:"text-foreground",children:r.host}),h.jsx("span",{className:"text-muted-foreground",children:r.rest})]}),r.kind==="raw"&&h.jsx("span",{className:"truncate",children:r.text})]})}function Os(e,t){switch(e.kind){case"no-session":return"Open a chat to preview local files.";case"unsupported":return"Local previews aren’t available in this environment.";case"failed":return"Couldn’t load this preview. Reload, or open the app in your browser.";case"tunnel":return"Dev server previews don’t work remotely. Open DorkOS on the computer running it.";case"no-port":return"All preview ports are in use. Close a preview, then reload.";case"origin-unreachable":return`This view can’t reach port ${e.listenPort} on ${e.host}. Open DorkOS on the computer running it.`;case"no-upstream":return`Nothing is listening on ${t.mode==="proxy"?`${t.hostname}:${t.port}`:"that address"}. Start the dev server, then reload.`}}function Rs({target:e,resolved:t,resolveError:r,reloadNonce:n,resourceErrorCount:s,title:o,onOpenExternally:c,onReload:a,iframeRef:i,onFrameLoad:d}){if(e.mode==="blocked")return h.jsx(xt,{children:"This address is blocked for safety."});if(r!==null)return h.jsxs(xt,{children:[h.jsx("p",{children:Os(r,e)}),r.kind!=="no-session"&&r.kind!=="unsupported"&&h.jsx("button",{type:"button",onClick:a,className:"text-foreground mt-3 hover:underline",children:"Reload"})]});if(t===null)return h.jsx(xt,{children:"Loading…"});const u=e.mode==="external";return h.jsx(Es,{src:t.src,sandbox:t.sandbox,title:o,iframeRef:i,onFrameLoad:d,watchLoadDeadline:!u,resourceErrorCount:s,showEmbedFallback:u,onOpenExternally:c,onReload:a},`${t.src}:${n}`)}function Es({src:e,sandbox:t,title:r,iframeRef:n,onFrameLoad:s,watchLoadDeadline:o,resourceErrorCount:c,showEmbedFallback:a,onOpenExternally:i,onReload:d}){const[u,f]=p.useState(!1),[l,m]=p.useState(!1);return p.useEffect(()=>{if(!o)return;const w=setTimeout(()=>m(!0),ws);return()=>clearTimeout(w)},[o]),h.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[l&&!u&&h.jsx(or,{onOpenExternally:i,onReload:d,children:"This preview is slow to load."}),c>0&&h.jsxs(or,{onOpenExternally:i,children:["This page hit ",c===1e4?"at least 10,000":c," ",c===1?"error":"errors"," while loading."]}),h.jsx("iframe",{ref:n,src:e,sandbox:t,onLoad:()=>{f(!0),s()},className:"min-h-0 w-full flex-1 border-0",title:r}),a&&h.jsxs("div",{className:"text-muted-foreground border-border/60 flex items-center justify-between gap-2 border-t px-3 py-1.5 text-xs",children:[h.jsx("span",{children:"This site can’t always be embedded here."}),h.jsx("button",{type:"button",onClick:i,className:"text-foreground hover:underline",children:"Open in system browser"})]})]})}function or({children:e,onOpenExternally:t,onReload:r}){return h.jsxs("div",{className:"text-muted-foreground border-border/60 flex items-center justify-between gap-2 border-b px-3 py-1.5 text-xs",children:[h.jsx("span",{children:e}),h.jsxs("span",{className:"flex shrink-0 items-center gap-3",children:[r&&h.jsx("button",{type:"button",onClick:r,className:"text-foreground hover:underline",children:"Reload"}),h.jsx("button",{type:"button",onClick:t,className:"text-foreground hover:underline",children:"Open in system browser"})]})]})}function et({label:e,disabled:t,onClick:r,children:n}){return h.jsx("button",{type:"button","aria-label":e,disabled:t,onClick:r,className:qt("text-muted-foreground hover:text-foreground hover:bg-muted focus-ring flex size-11 shrink-0 items-center justify-center rounded-md transition-colors lg:size-7",t&&"pointer-events-none opacity-40"),children:n})}function xt({children:e}){return h.jsx("div",{className:"text-muted-foreground flex min-h-0 flex-1 flex-col items-center justify-center p-8 text-center",children:e})}const _s=4096;function Ss(e){return e.toLowerCase().endsWith(".md")?e.slice(0,-3):e}function Ds(e){const t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2].trim():/^[|>][+-]?\d*$/.test(t)?"":t.replace(/\s+#.*$/,"").trim()}function Is(e,t){var o;const r=e.replace(/^\uFEFF/,"").split(/\r?\n/);let n=0;if(r[0]==="---"){for(n=1;n<r.length;n+=1){const c=r[n];if(c==="---"||c==="...")break;const a=/^title:(.*)$/.exec(c);if(a){const i=Ds(a[1]);if(i!=="")return i}}n+=1}let s=null;for(;n<r.length;n+=1){const c=r[n],a=(o=/^ {0,3}(`{3,}|~{3,})/.exec(c))==null?void 0:o[1];if(a){s===null?s=a[0]:a[0]===s&&(s=null);continue}if(s!==null)continue;const i=/^ {0,3}#[ \t]+(.*?)(?:[ \t]+#+)?[ \t]*$/.exec(c);if(i&&i[1].trim()!=="")return i[1].trim()}return Ss(t)}function Ns(e,t,r=_s){let n=new TextDecoder().decode(e.subarray(0,r));return e.length>=r&&(n=n.slice(0,Math.max(0,n.lastIndexOf(`
25
- `)))),Is(n,t)}function Ts(e,t){return Ns(new TextEncoder().encode(e),t)}const Ir=Z({path:ce().min(1),title:ce(),slug:ce()});Z({root:ce(),docs:jt(Ir),truncated:it()});Z({cwd:ce().min(1)});Z({cwd:ce().min(1),target:ce().min(1).max(1e3),from:ce().min(1).optional()});Z({doc:Ir.nullable(),complete:it()});const Rt=".md";function we(e){return e.normalize("NFC").trim().toLowerCase()}function Nr(e){return we(e).replace(/\s+/g,"-")}function Le(e){return e.toLowerCase().endsWith(Rt)?e.slice(0,-Rt.length):e}function ar(e){return e.slice(e.lastIndexOf("/")+1)}function nt(e){const t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}function ct(e){return e===""?[]:e.split("/")}function As(e,t){const r=ct(e);for(const n of t.split("/"))if(!(n===""||n==="."))if(n===".."){if(r.length===0)return null;r.pop()}else r.push(n);return r.length===0?null:r.join("/")}function cr(e,t){const r=ct(e),n=ct(t);let s=0;for(;s<r.length&&s<n.length&&r[s]===n[s];)s+=1;return r.length-s+(n.length-s)}function zs(e){return Nr(e).replace(/[^\p{L}\p{N}_-]/gu,"")}function Fs(e,t,r=null){const n=r&&r.trim()!==""?`#${zs(r)}`:"",s=e===null?null:e.normalize("NFC"),o=t.normalize("NFC");if(s===o&&n)return n;const c=ct(s===null?"":nt(s)),a=o.split("/");let i=0;for(;i<c.length&&i<a.length-1&&c[i]===a[i];)i+=1;return[...Array.from({length:c.length-i},()=>".."),...a.slice(i)].map(encodeURIComponent).join("/")+n}const Ms=/[[\]|#\n\r]/,qs=20;function Ls(e){const t=e.map(a=>({doc:a,folder:nt(a.path),path:we(a.path),title:we(a.title),base:we(Le(ar(a.path)))})),r=new Map(t.map(a=>[a.path,a])),n=a=>(i,d)=>cr(a,i.folder)-cr(a,d.folder)||i.doc.path.length-d.doc.path.length||(i.doc.path<d.doc.path?-1:i.doc.path>d.doc.path?1:0);function s(a,i){const d=Le(a),u=a.startsWith("/")?[""]:[i,""];for(const f of u){const l=As(f,d);if(l===null)continue;const m=r.get(we(l+Rt));if(m)return m}}function o(a,i){const d=a.normalize("NFC").trim();if(d==="")return null;const u=i===null?"":nt(i);if(d.includes("/")){const g=s(d,u);if(g)return g}const f=we(d),l=we(Le(d)),m=Nr(l),w=t.filter(g=>g.title===f||g.base===l||g.doc.slug===m);return w.length===0?null:w.sort(n(u))[0]??null}function c(a,i){const d=[a.doc.title.trim(),Le(ar(a.doc.path)),`/${Le(a.doc.path)}`];for(const u of d)if(!(u===""||Ms.test(u))&&o(u,i)===a)return u;return null}return{docs:e,resolve:(a,i)=>{var d;return((d=o(a,i))==null?void 0:d.doc)??null},search(a,i,d=qs){const u=we(a),f=i===null?"":nt(i),l=i===null?null:we(i),m=[];for(const v of t){if(v.path===l)continue;const N=u===""||v.title.startsWith(u)?0:v.title.split(/[\s\-_/]+/).some(S=>S.startsWith(u))?1:v.title.includes(u)?2:v.path.includes(u)?3:-1;N>=0&&m.push({entry:v,score:N})}const w=n(f);m.sort((v,N)=>v.score-N.score||w(v.entry,N.entry));const g=[];for(const{entry:v}of m){if(g.length>=d)break;const N=c(v,i);N!==null&&g.push({target:N,title:v.doc.title,description:v.doc.path})}return g}}}function ur(e,t){const r=t.normalize("NFC").replaceAll("\\","/"),n=r.startsWith("/")||/^[A-Za-z]:\//.test(r);let s=r;if(n){const c=e.normalize("NFC").replaceAll("\\","/").replace(/\/+$/,"");if(!r.startsWith(`${c}/`))return null;s=r.slice(c.length+1)}const o=[];for(const c of s.split("/"))if(!(c===""||c==="."))if(c===".."){if(o.length===0)return null;o.pop()}else o.push(c);return o.length===0?null:o.join("/")}const lr="Links within this doc don’t open.",dr="This folder is too big to check this link.",fr="Couldn’t check this link.";function hr(e,t,r){return{exists:!0,href:Fs(e,t.path,r),title:t.title}}function Ps(e){const{index:t,truncated:r,docPath:n,lookup:s,open:o,refuse:c}=e,a=new Map,i=f=>{const l=f.normalize("NFC").trim().toLowerCase();let m=a.get(l);return m||(m=s(f.trim()).catch(()=>null),a.set(l,m)),m};return{resolve:f=>{if(f.target.trim()==="")return{exists:!1,title:lr};const l=t.resolve(f.target,n);return l?hr(n,l,f.heading):r?i(f.target).then(m=>m===null?{exists:!0,title:fr}:m.doc?hr(n,m.doc,f.heading):m.complete?{exists:!1}:{exists:!0,title:dr}):{exists:!1}},search:f=>t.search(f,n),onOpen:f=>{const l=f.target.trim();if(l===""){c(lr);return}const m=`No doc called “${l}” yet.`,w=t.resolve(l,n);if(w){o(w.path);return}if(!r){c(m);return}i(l).then(g=>{g!=null&&g.doc?o(g.doc.path):c(g===null?fr:g.complete?m:dr)})}}}function Bs({cwd:e,sourcePath:t,content:r="",saved:n=!1}){const{enabled:s}=mn(gn),o=s&&!!e&&!!t,{data:c}=Bn(e,o),a=Wn(),i=ae(),{setTheme:d}=vn(),u=o&&c&&e&&t?ur(e,t)??ur(c.root,t):null,f=p.useMemo(()=>c?Ls(c.docs):null,[c]),l=p.useRef({index:f,docPath:u,content:r,cwd:e});p.useEffect(()=>{l.current={index:f,docPath:u,content:r,cwd:e}}),p.useEffect(()=>{const{index:w,docPath:g,content:v,cwd:N}=l.current;if(!n||!w||g===null)return;const S=w.docs.find(z=>z.path.normalize("NFC").toLowerCase()===g.toLowerCase()),I=g.slice(g.lastIndexOf("/")+1);(!S||S.title!==Ts(v,I))&&a(N)},[n,a]);const m=p.useCallback(w=>{bn({getStore:V.getState,setTheme:d,supportsTerminal:i.supportsTerminal},{action:"open_file",sourcePath:w},"user")},[d,i]);return p.useMemo(()=>{if(!(!f||!c||u===null||!e))return Ps({index:f,truncated:c.truncated,docPath:u,lookup:w=>i.resolveDocLink(e,w,u),open:m,refuse:w=>wn.info(w)})},[f,c,u,e,i,m])}const Je=ce().min(1).max(128),he={protocol:Q("dorkos-doc"),v:Q(1),nonce:Je,requestToken:Je,loadToken:Ct,generation:yr.shape.generation};ht("kind",[Z({...he,kind:Q("challenge")}).strict(),Z({...he,kind:Q("ack")}).strict(),Z({...he,kind:Q("connect")}).strict()]);ht("kind",[Z({...he,kind:Q("emit"),requestId:Je,event:ot}).strict(),Z({...he,kind:Q("retire")}).strict()]);ht("kind",[Z({...he,kind:Q("receipt"),requestId:Je,receipt:kr}).strict(),Z({...he,kind:Q("refused"),requestId:Je,outcome:Kt(["cancelled","unconfirmed","refused"])}).strict(),Z({...he,kind:Q("state"),state:yn,stateRev:Ct,docSeq:Ct,reset:it()}).strict(),Z({...he,kind:Q("event"),frame:kn}).strict(),Z({...he,kind:Q("status"),status:Kt(["connecting","ready","offline","revoked"]),unconfirmed:it()}).strict()]);function Ws(e,t){try{if(xn(t,1048576)!==void 0)return null;const r=e.safeParse(t);return r.success?r.data:null}catch{return null}}function Us({owner:e,getOwner:t,readTail:r,writeTail:n,transport:s,cwd:o,sourcePath:c,documentId:a,pending:i}){const d=()=>{var g,v;return((g=t())==null?void 0:g.recoveryGate)==="unsupported"||((v=t())==null?void 0:v.recoveryGate)==="observed_clear"},u=g=>{var S;const v=jn.parse(g),N=(S=t())==null?void 0:S.recoveryBinding;if(!N||v.documentId!==a||!J(v.incarnation,N.incarnation))throw new Error("Original save scope changed");return v},f=s.originalFileSaveRecovery,l=()=>{var g;try{const v=t();return(v==null?void 0:v.identity)===e&&v.active&&!!((g=v.recoveryBinding)!=null&&g.current())}catch{return!1}},m=(g,v,N=!1)=>{if(!f||!l())return Promise.resolve({status:"idle"});const S=t(),I={},z=()=>t()===S&&l()&&(!v||S.recoveryBinding===v)&&(!N||S.recoveryWork===I),M=S.discovery;let L=!1;S.recoveryWork=I,S.recoveryGate="pending",S.recoveryBusy=!0;const P=r().catch(()=>{}).then(async()=>{try{if(!z())return{status:"idle"};const q=await g();return z()?(N&&(S.recoveryGate="observed_clear"),L=!0,{status:"observed",value:q}):{status:"idle"}}catch{return z()?(S.recoveryGate="unavailable",{status:"unavailable"}):{status:"idle"}}finally{!L&&S.discovery===M&&(S.discovery=void 0),S.recoveryWork===I&&(S.recoveryBusy=!1,S.recoveryWork=void 0)}});return N||n(P.then(()=>{})),P};return{identity:e,supported:!!f,current:l,discover:(g=!1)=>{if(!f||!l())return Promise.resolve({status:"idle"});const v=t(),N=v.recoveryBinding;if(v.discoveryBinding===N&&v.discovery&&(v.pendingDiscovery===v.discovery||!g&&v.recoveryGate==="observed_clear"))return v.discovery;const S=m(async()=>{const I=u(await f.discover(a));return t()===v&&v.recoveryBinding===N&&l()&&(v.recoveryGate=I.admission==="blocked"?"blocked":"observed_clear"),I},N);return v.discoveryBinding=N,v.discovery=S,v.pendingDiscovery=S,S.then(I=>{v.pendingDiscovery===S&&(v.pendingDiscovery=void 0),I.status==="idle"&&v.discovery===S&&(v.discovery=void 0)}),S},recover(g){if(i())return Promise.resolve({status:"local_uncertain"});const v=t();return m(async()=>{if(!v||i())throw new Error("Mounted original still uncertain");const N=v.recoveryBinding,S=Cn.parse(await f.recover(a,g,N.incarnation));if(t()!==v||!l()||S.documentId!==a||S.entry.eventId!==g||!J(S.incarnation,N.incarnation))throw new Error("Original recovery scope changed");const I=u(await f.discover(a));return t()===v&&l()&&(v.recoveryGate=I.admission==="blocked"?"blocked":"observed_clear"),{result:S,discovery:I}})},inspectCurrent(){const g=t();return!g||!l()||i()||!d()?Promise.resolve({status:"local_uncertain"}):m(async()=>{const v=await s.readFileContent(o,c);if(!v||typeof v.content!="string"||typeof v.hash!="string"||!/^[a-f0-9]{64}$/u.test(v.hash))throw new Error("Current file evidence missing");return{content:v.content,hash:v.hash}},g.recoveryBinding,!0)}}}class Se extends Error{constructor(){super("The original save is not confirmed. Retry it before saving another draft.")}}class Ge extends Error{}function $s(){const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Gs(e){const t=e;return(t==null?void 0:t.status)===412&&t.code==="DOC_SAVE_FAILED"}var fe,Ie,Ye,Et;class Hs{constructor(){qe(this,Ye);qe(this,fe);qe(this,Ie)}get pending(){return Me(this,fe)!==void 0}get receipt(){return Me(this,Ie)}async write(t,r,n,s,o,c,a=!1){if(Me(this,fe))throw new Se;if(ve(this,Ie,void 0),!c)return t.writeFile(r,n,s,o);if(!a&&!c.current())throw new Ge;const i=Object.freeze({cwd:r,path:n,content:s,options:Object.freeze({...o,documentSave:Object.freeze({documentId:c.incarnation.documentId,eventId:$s(),incarnation:Object.freeze({...c.incarnation})})})});return ve(this,fe,i),be(this,Ye,Et).call(this,t,i)}async retry(t,r){const n=Me(this,fe);if(!(n!=null&&n.options.documentSave)||!r.current()||!J(n.options.documentSave.incarnation,r.incarnation))throw new Ge;return{result:await be(this,Ye,Et).call(this,t,n),content:n.content}}}fe=new WeakMap,Ie=new WeakMap,Ye=new WeakSet,Et=async function(t,r){try{const n=await t.writeFile(r.cwd,r.path,r.content,r.options);if(!n||typeof n!="object"||typeof n.ok!="boolean")throw new Se;if(!n.ok){if(!n.conflict||typeof n.conflict.currentHash!="string"||!n.conflict.currentHash||typeof n.conflict.currentContent!="string")throw new Se;return ve(this,fe,void 0),n}if(typeof n.hash!="string"||!n.hash||n.effect!=="changed"&&n.effect!=="no_op")throw new Se;const s="documentReceipt"in n?On.parse(n.documentReceipt):void 0,o=r.options.documentSave;if(!s&&n.effect!=="no_op")throw new Se;if(s&&(s.documentId!==o.documentId||s.eventId!==o.eventId||!J(s.incarnation,o.incarnation)||s.fileHash!==n.hash||(s.status==="accepted"?n.effect!=="changed":n.effect!=="no_op")))throw new Se;if((s==null?void 0:s.status)==="duplicate"){const c=await t.readFileContent(r.cwd,r.path);if(!c||typeof c!="object"||Array.isArray(c)||typeof c.hash!="string"||!c.hash||typeof c.content!="string")throw new Se;if(c.hash!==s.fileHash||c.content!==r.content)return ve(this,Ie,s),ve(this,fe,void 0),{ok:!1,conflict:{currentHash:c.hash,currentContent:c.content}}}return ve(this,Ie,s),ve(this,fe,void 0),n}catch(n){throw Gs(n)&&ve(this,fe,void 0),n}};function Vs({sourcePath:e,cwd:t,loadedContent:r,documentId:n,documentSaveBinding:s,documentRecoveryBinding:o}){const c=ae(),a=(s==null?void 0:s.incarnation)??(o==null?void 0:o.incarnation),i=a?JSON.stringify([a.documentId,a.physicalOpenedAt,a.channelCreatedAt,a.generation]):void 0,d=p.useRef(new Hs),u=p.useMemo(()=>({sourcePath:e,cwd:t,documentId:n,transport:c,birthKey:i}),[e,t,n,c,i]),f=p.useRef(null),l=p.useRef(null),m=p.useRef(Promise.resolve()),w=p.useCallback(()=>{var R;return((R=l.current)==null?void 0:R.identity)===u&&l.current.active},[u]);p.useLayoutEffect(()=>{var R;return((R=l.current)==null?void 0:R.identity)!==u?l.current={identity:u,baseHash:null,baseContent:r,active:!0,recoveryBinding:o,recoveryGate:o&&c.originalFileSaveRecovery?"pending":"unsupported"}:(l.current.active=!0,l.current.recoveryBinding=o),()=>{var k;((k=l.current)==null?void 0:k.identity)===u&&(l.current.active=!1)}},[u,r,o,c]);const[g,v]=p.useState({owner:u,status:"idle",conflict:null}),N=g.owner===u?g.status:"idle",S=g.owner===u?g.conflict:null,I=p.useCallback((R,k,B)=>{w()&&v(U=>({owner:u,status:R,documentReceipt:k,confirmedContent:B,conflict:U.owner===u?U.conflict:null}))},[u,w]),z=p.useCallback(R=>{w()&&v(k=>({owner:u,conflict:R,status:k.owner===u?k.status:"idle"}))},[u,w]),M=p.useCallback(()=>{var R,k;return((R=l.current)==null?void 0:R.recoveryGate)==="unsupported"||((k=l.current)==null?void 0:k.recoveryGate)==="observed_clear"},[]),L=p.useMemo(()=>{const R=()=>Us({owner:u,getOwner:()=>l.current,readTail:()=>m.current,writeTail:k=>{m.current=k},transport:c,cwd:t,sourcePath:e,documentId:n,pending:()=>d.current.pending});return{identity:u,supported:!!c.originalFileSaveRecovery,current:()=>R().current(),discover:k=>R().discover(k),recover:k=>R().recover(k),inspectCurrent:()=>R().inspectCurrent()}},[u,c,t,e,n]),P=!!(e&&t),q=p.useCallback((R,k,B,U=!1)=>{const ee=()=>w()&&l.current===R&&(!s||s.current());if(k.ok){if(typeof k.hash!="string"||!k.hash||k.effect!=="changed"&&k.effect!=="no_op")throw new Error("Invalid file save acknowledgement");return R.baseHash=k.hash,R.baseContent=B,!U&&!ee()?{status:"idle"}:(U||(z(null),I("saved",d.current.receipt,B)),{status:k.effect,confirmed:{hash:k.hash,content:B}})}return!U&&!ee()?{status:"idle"}:(U||(z(k.conflict),I("conflict")),{status:"conflict"})},[w,s,z,I]),G=p.useCallback(async(R,k)=>{if(!w())return{status:"idle"};const B=l.current;s&&!d.current.pending&&(f.current=u);const U=await d.current.write(c,t,e,R,k,s);return q(B,U,R)},[w,c,t,e,s,q,u]),re=p.useCallback(R=>{var U;if(!P||!w())return Promise.resolve({status:"idle"});const k=((U=l.current.finalToken)==null?void 0:U.content)===R?l.current.finalToken:void 0,B=m.current.catch(()=>{}).then(async()=>{if(!w()||s&&!s.current())return{status:"idle"};if(d.current.pending)return I("uncertain"),{status:"uncertain"};if(!M())return I("error"),{status:"error"};l.current.finalToken===k&&(l.current.finalToken=void 0),I("saving");try{const ee=l.current.baseHash!==null?{expectedHash:l.current.baseHash}:{expectedContent:l.current.baseContent};return await G(R,ee)}catch(ee){if(ee instanceof Ge)return{status:"idle"};if(!w()||s&&!s.current())return{status:"idle"};const ue=d.current.pending?"uncertain":"error";return I(ue),{status:ue}}});return m.current=B.then(()=>{}),B},[P,G,w,I,s,M]),ge=p.useCallback(R=>{if(!P||!w()||s&&!s.current())return null;const k=l.current,B={content:R,id:Symbol("buffered canvas draft")};return k.finalToken=B,{cancel(){k.finalToken===B&&(k.finalToken=void 0)},flush(){if(k.finalToken!==B||l.current!==k||k.active)return Promise.resolve({status:"idle"});k.finalToken=void 0;const U=m.current.catch(()=>{}).then(async()=>{if(l.current!==k||k.active)return{status:"idle"};try{if(k.recoveryGate!=="unsupported"&&k.recoveryGate!=="observed_clear")return{status:"error"};const ee=k.baseHash!==null?{expectedHash:k.baseHash}:{expectedContent:k.baseContent};s&&!d.current.pending&&(f.current=u);const ue=await d.current.write(c,t,e,R,ee,s,!0);return q(k,ue,R,!0)}catch{return{status:"error"}}});return m.current=U.then(()=>{}),U}}},[P,w,c,t,e,s,q,u]),y=p.useCallback(async R=>{const k=l.current;return!k||k.identity!==u?!1:(await m.current.catch(()=>{}),l.current===k&&!d.current.pending&&k.baseContent===R)},[u]),D=p.useCallback(()=>{if(!w()||!s||f.current!==u)return Promise.resolve({status:"idle"});const R=l.current,k=m.current.catch(()=>{}).then(async()=>{if(!w()||l.current!==R||f.current!==u)return{status:"idle"};try{I("saving");const B=await d.current.retry(c,s);return q(R,B.result,B.content)}catch(B){if(B instanceof Ge||!w()||l.current!==R)return{status:"idle"};const U=d.current.pending?"uncertain":"error";return I(U),{status:U}}});return m.current=k.then(()=>{}),k},[w,s,c,q,I,u]),x=p.useCallback(R=>{var ee;if(!P||!S||!w())return Promise.resolve({status:"idle"});const k=S.currentHash,B=((ee=l.current.finalToken)==null?void 0:ee.content)===R?l.current.finalToken:void 0,U=m.current.catch(()=>{}).then(async()=>{if(!w()||s&&!s.current())return{status:"idle"};if(d.current.pending)return I("uncertain"),{status:"uncertain"};if(!M())return I("error"),{status:"error"};l.current.finalToken===B&&(l.current.finalToken=void 0),I("saving");try{return await G(R,{expectedHash:k})}catch(ue){if(ue instanceof Ge)return{status:"idle"};if(!w()||s&&!s.current())return{status:"idle"};const Ae=d.current.pending?"uncertain":"error";return I(Ae),{status:Ae}}});return m.current=U.then(()=>{}),U},[P,S,G,w,I,s,M]),C=p.useCallback(()=>{var R;return((R=l.current)==null?void 0:R.identity)===u?{hash:l.current.baseHash,content:l.current.baseContent}:{hash:null,content:r}},[u,r]),A=p.useCallback(()=>{if(!S||!w()||s&&!s.current())return null;l.current.finalToken=void 0;const R=S.currentContent;return l.current.baseHash=S.currentHash,l.current.baseContent=R,z(null),I("idle"),R},[S,w,z,I,s]);return{recovery:L,status:N,conflict:S,canSave:P,save:re,overwrite:x,adoptDisk:A,getConfirmedBase:C,prepareFinalSave:ge,retryUnconfirmed:D,waitForCloseDrain:y,documentReceipt:g.owner===u?g.documentReceipt:void 0,confirmedContent:g.owner===u?g.confirmedContent:void 0}}const Js=p.lazy(()=>Re(()=>import("./BlintzCanvas-BEtRmEbL.js").then(e=>e.B),__vite__mapDeps([0,1,2,3,4,5])).then(e=>({default:e.BlintzCanvas}))),Xs=500;function Zs(e){switch(e){case"saving":return"Saving…";case"saved":return"Saved";case"error":return"Couldn’t save";default:return null}}function Ys({content:e,documentId:t,onContentChange:r}){const[n,s]=p.useState(!1),[o,c]=p.useState(e.content),a=V(x=>x.canvasSessionId),i=V(x=>x.setDocumentEditing),d=V(x=>{var C;return((C=x.openDocuments.find(A=>A.id===t))==null?void 0:C.editing)??!1}),u=V(x=>x.selectedCwd),f=n&&d,l=Vs({documentId:t,sourcePath:e.sourcePath,cwd:u,loadedContent:e.content}),m=l.canSave,w=Bs({cwd:u,sourcePath:m?e.sourcePath:null,content:o,saved:l.status==="saved"}),g=p.useRef(null),v=p.useRef(null),N=p.useRef(o),S=p.useRef(e),I=p.useRef(r),z=p.useRef(l.save),M=p.useRef(l.prepareFinalSave),L=p.useRef(null);p.useEffect(()=>{N.current=o,S.current=e,I.current=r,z.current=l.save,M.current=l.prepareFinalSave});const P=p.useCallback(x=>{V.getState().canvasSessionId===g.current&&(I.current({...S.current,content:x}),z.current(x))},[]),q=p.useCallback(x=>{var C;c(x),N.current=x,(C=L.current)==null||C.cancel(),L.current=M.current(x),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{v.current=null,P(x)},Xs)},[P]),G=()=>{g.current=V.getState().canvasSessionId,c(e.content),s(!0),i(t,!0)},re=()=>{v.current&&(clearTimeout(v.current),v.current=null,P(N.current)),s(!1),i(t,!1)};p.useEffect(()=>{var x;f&&a!==g.current&&(v.current&&(clearTimeout(v.current),v.current=null),(x=L.current)==null||x.cancel(),L.current=null,s(!1),i(t,!1))},[a,f,t,i]),p.useEffect(()=>{var x;!n||f||(v.current&&clearTimeout(v.current),v.current=null,(x=L.current)==null||x.cancel(),L.current=null)},[f,n]),p.useEffect(()=>()=>{var x,C;v.current&&(clearTimeout(v.current),v.current=null,V.getState().canvasSessionId===g.current&&I.current({...S.current,content:N.current})),V.getState().canvasSessionId===g.current?(x=L.current)==null||x.flush():(C=L.current)==null||C.cancel(),L.current=null,i(t,!1)},[P,t,i]);const ge=()=>{const x=l.adoptDisk();x!=null&&(r({...e,content:x}),c(x))},y=()=>{l.overwrite(N.current)},D=Zs(l.status);return h.jsxs("div",{className:"relative flex h-full flex-col",children:[h.jsxs("div",{className:"sticky top-0 z-10 flex h-0 items-start justify-end gap-2 pr-2",children:[m&&D&&h.jsx("span",{className:"text-muted-foreground mt-3 text-xs","aria-live":"polite",children:D}),m&&h.jsx(rt,{type:"button",variant:"ghost",size:"icon-md",className:"text-muted-foreground hover:text-foreground mt-2",onClick:f?re:G,"aria-label":f?"Finish editing":"Edit document",children:f?h.jsx(jr,{className:"size-4"}):h.jsx(Cr,{className:"size-4"})})]}),l.status==="conflict"&&h.jsxs("div",{className:"bg-destructive/10 text-destructive mx-2 mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 rounded-md px-3 py-2 text-sm",children:[h.jsx("span",{className:"flex-1",children:"This file changed on disk since you opened it."}),h.jsx(rt,{type:"button",variant:"ghost",size:"sm",className:"h-7",onClick:ge,children:"Reload"}),h.jsx(rt,{type:"button",variant:"destructive",size:"sm",className:"h-7",onClick:y,children:"Overwrite"})]}),h.jsx("div",{className:"flex-1 px-2 pb-6",children:h.jsx(p.Suspense,{fallback:h.jsx("div",{className:"text-muted-foreground p-4 text-sm",children:"Loading editor…"}),children:h.jsx(Js,{value:f?o:e.content,editable:f,onChange:f?q:void 0,wikiLinks:w})})})]})}function Qs({content:e}){return h.jsx("div",{className:"p-4 font-mono text-sm",children:h.jsx(Tr,{value:e.data,depth:0})})}const Ks=20;function Tr({value:e,depth:t,keyName:r}){const[n,s]=p.useState(t>2),o=p.useCallback(()=>s(u=>!u),[]);if(t>=Ks)return h.jsx(Pe,{keyName:r,value:"[max depth]",className:"text-muted-foreground"});if(e===null)return h.jsx(Pe,{keyName:r,value:"null",className:"text-muted-foreground"});if(typeof e=="boolean")return h.jsx(Pe,{keyName:r,value:String(e),className:"text-blue-500"});if(typeof e=="number")return h.jsx(Pe,{keyName:r,value:String(e),className:"text-green-500"});if(typeof e=="string")return h.jsx(Pe,{keyName:r,value:`"${e}"`,className:"text-amber-500"});const c=Array.isArray(e),a=c?e.map((u,f)=>[String(f),u]):Object.entries(e),i=c?"[":"{",d=c?"]":"}";return h.jsxs("div",{style:{paddingLeft:t>0?16:0},children:[h.jsxs("button",{type:"button",className:"hover:bg-muted -ml-0.5 inline-flex items-center gap-0.5 rounded px-0.5 transition-colors duration-150",onClick:o,children:[h.jsx(Rn,{className:qt("size-3 transition-transform",!n&&"rotate-90")}),r!=null&&h.jsxs("span",{className:"text-foreground",children:[r,": "]}),h.jsxs("span",{className:"text-muted-foreground",children:[i,n&&` … ${a.length} items `,n&&d]})]}),!n&&h.jsxs(h.Fragment,{children:[a.map(([u,f])=>h.jsx(Tr,{keyName:c?void 0:u,value:f,depth:t+1},u)),h.jsx("div",{className:"text-muted-foreground",children:d})]})]})}function Pe({keyName:e,value:t,className:r}){return h.jsxs("div",{style:{paddingLeft:16},children:[e!=null&&h.jsxs("span",{className:"text-foreground",children:[e,": "]}),h.jsx("span",{className:r,children:t})]})}const ei=new Set(["http:","https:"]);function ti(e){const t=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!t||t[1].length===1?null:`${t[1].toLowerCase()}:`}const ri={image:"data:image/",pdf:"data:application/pdf"};function Ar(e,t,r){const n=e.trim();if(n.startsWith("data:"))return n.toLowerCase().startsWith(ri[t])?{url:n,error:null}:{url:null,error:"unsupported-data"};const s=ti(n);if(s!==null)return ei.has(s)?{url:n,error:null}:{url:null,error:"blocked"};const o=r(n);return o?{url:o,error:null}:{url:null,error:"local-unavailable"}}function zr(e,t){switch(e){case"blocked":return`This ${t} source is blocked for safety.`;case"unsupported-data":return`This data URI isn’t a valid ${t} source.`;case"local-unavailable":return`Local ${t} files can’t be displayed here.`}}function ni({content:e}){const t=ae(),r=V(u=>u.selectedCwd),n=p.useMemo(()=>Ar(e.src,"image",u=>t.mediaUrl(r??"",u)),[e.src,t,r]),[s,o]=p.useState("loading"),[c,a]=p.useState(e.src);c!==e.src&&(a(e.src),o("loading"));const i=e.alt??e.title??"Canvas image";if(n.url===null){const u=n.error?zr(n.error,"image"):"";return h.jsx(pr,{children:u})}const d=n.url;return h.jsxs("div",{className:"bg-muted/40 relative flex h-full items-center justify-center",children:[s==="loading"&&h.jsx("p",{className:"text-muted-foreground absolute text-sm","aria-live":"polite",children:"Loading image…"}),s==="error"?h.jsx(pr,{children:"This image couldn’t be loaded."}):h.jsxs(In,{centerOnInit:!0,doubleClick:{mode:"toggle"},wheel:{step:.15},children:[h.jsx(si,{}),h.jsx(Nn,{wrapperClass:"!h-full !w-full",contentClass:"!h-full !w-full flex items-center justify-center",children:h.jsx("img",{src:d,alt:i,onLoad:()=>o("loaded"),onError:()=>o("error"),className:qt("max-h-full max-w-full object-contain transition-opacity",s==="loaded"?"opacity-100":"opacity-0")})})]})]})}function si(){const{zoomIn:e,zoomOut:t,resetTransform:r}=Tn();return h.jsxs("div",{className:"absolute top-2 right-2 z-10 flex gap-1",children:[h.jsx(yt,{label:"Zoom in",onClick:()=>e(),children:h.jsx(Ln,{className:"size-4"})}),h.jsx(yt,{label:"Zoom out",onClick:()=>t(),children:h.jsx(Pn,{className:"size-4"})}),h.jsx(yt,{label:"Reset zoom",onClick:()=>r(),children:h.jsx(qn,{className:"size-4"})})]})}function yt({label:e,onClick:t,children:r}){return h.jsx("button",{type:"button",onClick:t,"aria-label":e,className:"bg-background/80 text-muted-foreground hover:text-foreground focus-ring rounded-md border p-1.5 backdrop-blur transition-colors",children:r})}function pr({children:e}){return h.jsx("div",{className:"text-muted-foreground flex h-full items-center justify-center p-8 text-center",children:h.jsx("p",{children:e})})}function ii({content:e}){const t=ae(),r=En().data,n=V(i=>i.selectedCwd),s=p.useMemo(()=>Ar(e.src,"pdf",i=>t.mediaUrl(n??"",i)),[e.src,t,n]);if(s.url===null){const i=s.error?zr(s.error,"pdf"):"";return h.jsx("div",{className:"text-muted-foreground flex h-full items-center justify-center p-8 text-center",children:h.jsx("p",{children:i})})}const o=s.url,c=e.title??"PDF document",a=new URL(o,window.location.href).origin===window.location.origin;return a&&!r?null:a&&(r==null?void 0:r.serverRole)==="hub"?h.jsxs("div",{className:"text-muted-foreground flex h-full flex-col items-center justify-center gap-3 p-8 text-center",children:[h.jsx("p",{children:"PDFs download here instead of opening."}),h.jsxs("a",{href:o,download:!0,className:"text-foreground focus-ring rounded-md underline underline-offset-4",children:["Download ",c]})]}):h.jsx("object",{data:o,type:"application/pdf",title:c,className:"h-full w-full",children:h.jsxs("div",{className:"text-muted-foreground flex h-full flex-col items-center justify-center gap-3 p-8 text-center",children:[h.jsx("p",{children:"This PDF can’t be shown here."}),h.jsxs("a",{href:o,target:"_blank",rel:"noreferrer",className:"text-foreground focus-ring rounded-md underline underline-offset-4",children:["Open ",c," in a new tab"]})]})})}function oi(e){const t=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!t||t[1].length===1?null:`${t[1].toLowerCase()}:`}const ai=new Set(["http:","https:","data:"]);function Fr(e,t,r){const n=e.trim(),s=oi(n);return s!==null?ai.has(s)?s==="data:"&&r!==void 0?n.toLowerCase().startsWith(r)?{url:n}:{url:null}:{url:n}:{url:null}:{url:t(n)}}function ci({content:e}){const t=ae(),r=V(o=>o.selectedCwd),n=p.useMemo(()=>Fr(e.src,o=>t.mediaUrl(r??"",o),"data:audio/"),[e.src,t,r]),s=e.title??"Canvas audio";return n.url===null?h.jsx("div",{className:"text-muted-foreground flex h-full items-center justify-center p-8 text-center",children:h.jsx("p",{children:"This audio can’t be played here."})}):h.jsx("div",{className:"bg-muted/40 flex h-full w-full items-center justify-center p-8",children:h.jsx("audio",{controls:!0,src:n.url,"aria-label":s,className:"w-full max-w-2xl",children:h.jsxs("p",{className:"text-muted-foreground text-sm",children:["Your browser can’t play this audio."," ",h.jsxs("a",{href:n.url,className:"text-foreground underline underline-offset-4",children:["Download ",s]}),"."]})})})}function ui({content:e}){const t=ae(),r=V(o=>o.selectedCwd),n=p.useMemo(()=>Fr(e.src,o=>t.mediaUrl(r??"",o),"data:video/"),[e.src,t,r]),s=e.title??"Canvas video";return n.url===null?h.jsx("div",{className:"text-muted-foreground flex h-full items-center justify-center p-8 text-center",children:h.jsx("p",{children:"This video can’t be played here."})}):h.jsx("div",{className:"bg-muted/40 flex h-full w-full items-center justify-center",children:h.jsx("video",{controls:!0,src:n.url,"aria-label":s,className:"max-h-full w-full max-w-full object-contain",children:h.jsxs("p",{className:"text-muted-foreground p-8 text-sm",children:["Your browser can’t play this video."," ",h.jsxs("a",{href:n.url,className:"text-foreground underline underline-offset-4",children:["Download ",s]}),"."]})})})}function Mr({content:e,documentId:t,channel:r}){const[n]=Mt(),s=An(e.definition),o=p.useMemo(()=>JSON.stringify(e.definition),[e.definition]);return h.jsx("div",{className:"p-4",children:s.ok?h.jsx(zn,{channel:r,document:s.document,sessionId:n??void 0},r?t??r.documentId:o):h.jsx(Fn,{error:s.error,raw:s.raw})})}class li{constructor(){te(this,"contiguous",0);te(this,"through",0);te(this,"pending",new Map)}get highest(){return this.contiguous}get catchUpThrough(){return this.through}get pendingCount(){return this.pending.size}reset(){this.contiguous=0,this.through=0,this.pending.clear()}resetHighest(){this.contiguous=0}advance(t){this.contiguous=Math.max(this.contiguous,t)}markThrough(t){this.through=Math.max(this.through,t)}recordGap(t){return this.markThrough(t.docSeq),this.pending.set(t.docSeq,t),this.pending.size<=200?!1:(this.pending.clear(),!0)}takeNextContiguous(){for(const n of this.pending.keys())n<=this.contiguous&&this.pending.delete(n);const t=this.contiguous+1,r=this.pending.get(t);return r&&this.pending.delete(t),r}clearReachedTarget(){return this.contiguous<this.through?!1:(this.through=0,!0)}}const _t=new WeakMap,Qe=new WeakMap,ye=new WeakMap,He=new WeakMap;function Oe(e){Ne(e);const t=_t.get(e);if(!t)throw new Error("Replay owner lifetime is absent.");return t}function di(e,t){const r=Qe.get(t);if(!r||r.owner!==e)throw new Error("Replay run is foreign.");return r}function qr(e){if(e&&typeof e=="object"&&!Object.isFrozen(e)){for(const t of Object.values(e))qr(t);Object.freeze(e)}return e}function fi(e){if(Ne(e),_t.has(e))throw new Error("Replay owner lifetime is already initialized.");_t.set(e,new li)}function Pt(e){const t=Oe(e);return Object.freeze({highest:t.highest,through:t.catchUpThrough,pending:t.pendingCount})}function mr(e){Oe(e).reset()}function gr(e,t){const r=Qe.get(t);if(!(!r||r.owner!==e))return Object.freeze({subject:r.subject,epoch:r.epoch,revision:r.revision,observation:r.observation,ended:r.ended})}function hi(e,t,r){const n=ye.get(r),s=Qe.get(t);if(!(!s||s.owner!==e||!n||n.owner!==e||n.run!==t||n.phase!=="consuming"||n.admissionRead||!ne(e,t)))return n.admissionRead=!0,Object.freeze({response:n.response,since:n.since,revision:n.revision,observation:n.observation,targetBirth:s.targetBirth})}function pi(e,t,r){const n=di(e,t),s=ye.get(r),o=Ur(e,t,r);if(!o||!s||s.owner!==e||s.run!==t||s.phase!=="consuming"||!s.admissionRead||n.ended||n.epoch!==o.epoch||n.subject!==o.previous)throw new Error("Replay own issuance is foreign or stale.");n.subject=o.subject}function Lr(e,t,r,n){if(!ne(e,t))return;if(n){const o=He.get(r);return o&&o.owner===e&&o.run===t&&o.phase==="dispatching"&&!o.advanced?o.frame:void 0}const s=ye.get(r);return s&&s.owner===e&&s.run===t&&s.phase==="frames"&&s.dispatching!==void 0&&!s.advanced?s.frames[s.dispatching]:void 0}function mi(e,t,r,n){const s=Wi(e,t,r,n);if(!s||!ne(e,t))throw new Error("Replay cursor advance has no genuine core witness.");const o=n?He.get(r):ye.get(r);if(!o||o.advanced)throw new Error("Replay frame advance was consumed.");o.advanced=!0,Oe(e).advance(s.docSeq)}function gi(e,t){const r=Qe.get(t),n=(r==null?void 0:r.lastPage)&&ye.get(r.lastPage);if(!r||r.owner!==e||!ne(e,t)||r.target===void 0||!n||n.phase!=="finished"||n.next!==n.frames.length||n.response.events.length>=200&&Oe(e).highest<r.target)return;const s=Oe(e);return Object.freeze({highest:s.highest,through:s.catchUpThrough,target:r.target})}function vi(e,t){const r=Ze(e,t);if(!r)throw new Error("Replay notice is foreign or stale.");const n=Oe(e),s=r.notification;if(r.mode==="quarantine")n.markThrough(s.type==="canvas_channel_snapshot"?s.snapshot.highWatermark:s.docSeq),s.type!=="canvas_channel_snapshot"&&n.recordGap(s);else{if(r.mode==="gap"&&s.type!=="canvas_channel_snapshot")return n.recordGap(s);r.mode==="event"&&to(e,t)}return!1}function bi(e,t){const r=Ze(e,t);if(!r||r.mode!=="event"||r.notification.type==="canvas_channel_snapshot")throw new Error("Notice cursor advance is foreign.");Oe(e).advance(r.notification.docSeq)}function wi(e){const t=le(e),r=Oe(e),n=Object.freeze({}),s={owner:e,subject:t.subject,epoch:t.epoch,revision:t.revision,observation:t.observation,ended:!1,starting:r.highest,succeeded:!1};Qe.set(n,s),Hi(e,n);const o=()=>ne(e,n),c=()=>le(e).live?o()?void 0:"restart":"stop";return Object.freeze({async readPage(){if(!o())return null;const a=le(e),i=r.highest,d=pt(e),u=d.getCanvasChannel;if(!o())return null;const f=await u.call(d,t.documentId,{since:i,limit:200});if(!o())return null;const l=qr(_n.parse(f));if(!o())return null;const m=Object.freeze({});return ye.set(m,{owner:e,run:n,response:l,since:i,revision:a.revision,observation:a.observation,phase:"read",admissionRead:!1,frames:[],next:0,advanced:!1}),m},consumePage(a){const i=ye.get(a);return!o()||!i||i.owner!==e||i.run!==n||i.phase!=="read"?{kind:"done"}:(i.phase="consuming",Vi(e,n,a)!=="accepted"||!o()?(i.phase="finished",{kind:"done"}):(s.target??(s.target=i.response.highWatermark),s.targetBirth=i.response.incarnation,i.frames=Object.freeze(i.response.events.filter(u=>u.docSeq<=s.target)),i.phase="frames",s.lastPage=a,i.response.resetRequired&&r.advance(i.response.retentionFloor-1),{kind:"frames",count:i.frames.length}))},advancePageFrame(a,i){const d=ye.get(a);if(!o()||!d||d.owner!==e||d.run!==n||d.phase!=="frames"||i!==d.next||!d.frames[i])return!1;d.next=i+1,d.dispatching=i,d.advanced=!1;try{return br(e,n,a,!1)&&o()}finally{d.dispatching=void 0}},finishPage(a){const i=ye.get(a);if(!o()||!i||i.owner!==e||i.run!==n||i.phase!=="frames"||i.next!==i.frames.length||s.target===void 0)return"done";if(i.phase="finished",i.response.events.length<200||r.highest>=s.target)return r.advance(s.target),!o()||(wr(e,n),!o())||(s.succeeded=!0),"done";if(r.highest<=i.since)throw new Error("Document replay made no progress.");return"again"},failed(){o()&&Ji(e,n)},beginFinalization(){return c()??(s.succeeded?"drain":"stop")},takePending(){if(!o())return null;const a=r.takeNextContiguous();if(!a||!o())return null;const i=Object.freeze({});return He.set(i,{owner:e,run:n,frame:a,phase:"taken",advanced:!1}),i},advancePending(a){const i=He.get(a);if(!o()||!i||i.owner!==e||i.run!==n||i.phase!=="taken")return!1;i.phase="dispatching";try{return br(e,n,a,!0)&&o()}finally{i.phase="finished",He.delete(a)}},finishFinalization(){const a=c();if(a)return a;if(r.clearReachedTarget()){const i=c();if(i)return i;wr(e,n);const d=c();if(d)return d}if(r.pendingCount||r.catchUpThrough>r.highest){const i=le(e);if(r.highest>s.starting||i.revision>s.revision||i.observation>s.observation)return"restart";Xi(e,n)}return c()??"stop"},current:o,end:()=>{s.ended=!0}})}var me,Dt,We;class St{constructor(){qe(this,me);te(this,"current",null);te(this,"token",0);te(this,"retiring",!1);te(this,"subscribers",new Set);te(this,"resources",new Map);te(this,"doc",null);te(this,"docClaims",new WeakMap);te(this,"retiringDoc",!1);te(this,"docResources",new Map);te(this,"bindings",new WeakSet)}getCurrent(){return this.current}observeHostContext(t){if(this.retiring)return null;if(!t.transportOwner||typeof t.transportOwner!="object"||!Number.isSafeInteger(t.publisherEpoch)||t.publisherEpoch<0)throw new Error("Explicit transport owner and epoch required.");const r=["frame","documentId","resolvedSource","logicalUrl","reloadKey","sessionId","eligibility","exactOrigin","transportOwner","publisherEpoch"];if(r.some(s=>!Object.hasOwn(t,s))||typeof t.documentId!="string"||!t.documentId||typeof t.logicalUrl!="string"||typeof t.reloadKey!="string")throw new Error("Complete host context required.");const n=this.current;return n&&r.every(s=>Object.is(n[s],t[s]))?n:(this.retire(),this.current=Object.freeze({...t,token:this.token,loaded:!1}),this.current)}observeLoaded(t){return this.retiring||this.current!==t||!t.frame?null:(this.retire(),this.current=Object.freeze({...t,token:this.token,loaded:!0}),this.current)}retire(){if(this.retiring)return;const t=this.current;this.current=null;const r=this.doc;this.doc=null,this.token++,this.retiring=!0;const n=[...t?this.resources.get(t)??[]:[],...r?this.docResources.get(r)??[]:[],...this.subscribers];r&&this.docResources.delete(r),t&&this.resources.delete(t);try{for(const s of n)try{const o=s();o&&typeof o.then=="function"&&Promise.resolve(o).catch(()=>{})}catch{}}finally{this.retiring=!1}}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}own(t,r){if(this.retiring||this.current!==t)throw new Error("Frame observation retired.");const n=this.resources.get(t)??new Set;return n.add(r),this.resources.set(t,n),()=>{n.delete(r)}}bindDoc(t,r,n){return be(this,me,Dt).call(this,t,r,n)}acquireDoc(t,r,n){const s=be(this,me,Dt).call(this,t,r,n),o=Object.freeze({});this.docClaims.set(s,o);let c=!1;return Object.freeze({binding:s,release:()=>{c||(c=!0,this.docClaims.get(s)===o&&(this.docClaims.delete(s),this.doc===s&&this.bindings.has(s)&&be(this,me,We).call(this)))}})}disableDoc(){be(this,me,We).call(this)}retireDoc(t){this.doc===t&&this.bindings.has(t)&&be(this,me,We).call(this)}ownDoc(t,r){if(!this.isCurrent(t))throw new Error("Doc binding retired.");const n=this.docResources.get(t)??new Set;return n.add(r),this.docResources.set(t,n),()=>{n.delete(r)}}isCurrent(t){return!this.retiring&&!this.retiringDoc&&this.doc===t&&this.bindings.has(t)&&this.current===t.observation}}me=new WeakSet,Dt=function(t,r,n){const s=this.doc,o=this.token,c=Ws(yr,r);if(!c)throw this.disableDoc(),new Error("Established server Doc birth required.");const a=c,i=t.exactOrigin,d=t.eligibility==="served-document"?i==="null":t.eligibility==="preview-listener"&&i!==null&&new URL(i).origin===i;if(!t.loaded||!t.frame||typeof t.frame.postMessage!="function"||!t.resolvedSource||!d||t.documentId!==a.documentId||!n||n.length>200)throw new Error("Loaded eligible frame and established Doc birth required.");if(this.retiring||this.retiringDoc||this.current!==t||this.doc!==s||this.token!==o)throw new Error("Frame observation retired during Doc admission.");if(this.doc){if(this.doc.observation!==t)throw new Error("Doc binding belongs to another host load.");if(J(this.doc.incarnation,a)&&this.doc.scope===n)return this.doc;throw this.retire(),new Error("Doc birth changed; a fresh host load is required.")}const u=Object.freeze({observation:t,incarnation:Object.freeze(a),scope:n});try{return this.doc=u,this.bindings.add(u),u}catch(f){throw this.doc===u&&be(this,me,We).call(this),f}},We=function(){if(this.retiringDoc)return;const t=this.doc;this.doc=null,this.retiringDoc=!0;const r=[...t?this.docResources.get(t)??[]:[]];t&&this.docResources.delete(t);try{for(const n of r)try{const s=n();s&&typeof s.then=="function"&&Promise.resolve(s).catch(()=>{})}catch{}}finally{this.retiringDoc=!1}};function xi(e,t,r){if(!r||typeof r.captureOriginal!="function"||typeof r.submit!="function"||typeof r.inspect!="function"||typeof r.isCurrentOwner!="function"||r.owner!==t.observation.transportOwner||r.publisherEpoch!==t.observation.publisherEpoch)throw new Error("Explicit current transport submit and inspect ports required.");const{owner:n,publisherEpoch:s,isCurrentOwner:o,submit:c,inspect:a,captureOriginal:i}=r,d=Object.freeze({expectedGeneration:t.incarnation.generation}),u=()=>{try{return e.isCurrent(t)?o(n,s)===!0&&e.isCurrent(t):!1}catch{return!1}};if(!u())throw new Error("Doc binding unavailable.");const f=()=>{if(!u())throw new Error("Doc binding retired.")};return Object.freeze({binding:t,current:u,captureOriginal:l=>{f();const m=l.id;f();const w=l.bytes;f();const g=Reflect.apply(i,r,[Object.freeze({id:m,bytes:w})]);if(f(),!g)return null;const v=g.id;f();const N=g.bytes;f();const S=g.submit;f();const I=g.inspect;return f(),v!==m||N!==w||typeof S!="function"||typeof I!="function"?null:Object.freeze({id:m,bytes:w,submit:async z=>{f(),z.throwIfAborted();const M=await Reflect.apply(S,g,[z]);return f(),z.throwIfAborted(),M},inspect:async z=>{f(),z.throwIfAborted();const M=await Reflect.apply(I,g,[z]);return f(),z.throwIfAborted(),M}})},retireObservation:()=>{u()&&e.retire()},onRetire:l=>e.ownDoc(t,l),submit:(l,m)=>(f(),m.throwIfAborted(),c(l,d,m)),inspect:(l,m)=>(f(),m.throwIfAborted(),a(l,d,m))})}class yi{constructor(){te(this,"revision",0);te(this,"draining",!1);te(this,"cleanup");te(this,"subscribers",new Set);te(this,"retirements",new WeakMap)}captureRetirement(){const t=Object.freeze({}),r=++this.revision,n=this.cleanup;return this.cleanup=void 0,this.retirements.set(t,{revision:r,cleanup:n,callbacks:this.draining?[]:[...this.subscribers]}),t}drainRetirement(t){const r=this.retirements.get(t);if(!r)throw new Error("Frame resource retirement is foreign or consumed.");this.retirements.delete(t);const n=this.draining;this.draining=!0;try{this.drain(r.cleanup);for(const s of r.callbacks)this.drain(s)}finally{this.draining=n}}begin(){const t=this.captureRetirement(),r=this.revision;return this.drainRetirement(t),r}once(t,r,n){let s=!1;return()=>{if(s||(s=!0,!this.current(t)||!r()||!this.current(t)))return null;const o=n();return!this.current(t)||!r()||!this.current(t)?null:o}}drain(t){try{Promise.resolve(t==null?void 0:t()).catch(()=>{})}catch{}}current(t){return this.revision===t}install(t,r){return this.current(t)?(this.cleanup=r,!0):!1}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}}function ki(e,t,r){const n=()=>e.current(t)&&r.current()===!0&&e.current(t),s=e.once(t,n,r.complete);return Object.freeze({completeLoad:()=>{const o=s();return!o||!n()||r.accept(o)!==!0||!n()?null:o}})}function ji(e,t,r){const n=()=>e.current(t)&&r.current()===!0&&e.current(t);if(!n())return null;const s=r.acquire();if(!s)return null;let o=!1,c=null,a;try{const i=s.binding;if(n()&&r.bindingCurrent(i)===!0&&n()){const d=r.createPort(i);n()&&r.portCurrent(d)===!0&&n()&&e.install(t,s.release)&&(o=!0,c=d)}}catch(i){a={cause:i}}if(!o)try{s.release()}catch(i){a??(a={cause:i})}if(a)throw a.cause;return c}function Ci(e){const t=()=>Object.assign(new Error("Document actions are unavailable."),{status:409}),r=(s,o)=>{if(o.aborted||!e.current(s)||o.aborted)throw t()},n=(s,o)=>{const c=kr.parse(o);if(c.receipt.id!==s)throw new Error("Document receipt does not match this action.");return c};return Object.freeze({current:e.current,submit:async(s,o)=>{const c=ot.parse(JSON.parse(JSON.stringify(s))),a=c.id;r("submit",o);const i=await e.submit(c,o);r("read",o);const d=n(a,i);return r("read",o),d},inspect:async(s,o)=>{r("read",o);const c=await e.inspect(s,o);r("read",o);const a=n(s,c);return r("read",o),a},captureOriginal:s=>{const o=ot.parse(JSON.parse(JSON.stringify(s))),c=o.id,a=JSON.stringify(o);if(!e.current("submit"))return null;const i=e.capture(o,a);if(!i||!e.current("submit")||!i.current("submit"))return null;let d=!1;const u=f=>i.current(f)===!0;return Object.freeze({id:c,bytes:a,current:u,submit:async f=>{if(d||f.aborted||!u("submit"))throw t();d=!0;const l=await i.submit(JSON.parse(a),f);if(f.aborted||!u("read"))throw t();const m=n(c,l);if(f.aborted||!u("read"))throw t();return m},inspect:async f=>{if(f.aborted||!u("read"))throw t();const l=await i.inspect(c,f);if(f.aborted||!u("read"))throw t();const m=n(c,l);if(f.aborted||!u("read"))throw t();return m}})}})}function Oi(e){return Object.freeze({id:e.id,bytes:e.bytes,submit:async t=>{try{return{kind:"accepted",receipt:await e.submit(t)}}catch{return{kind:"uncertain"}}},inspect:async t=>{try{return{kind:"accepted",receipt:await e.inspect(t)}}catch{return{kind:"unknown"}}}})}function Ri(e,t,r){const n=ot.parse(JSON.parse(e.bytes));if(n.id!==e.id||JSON.stringify(n)!==e.bytes||!r())return null;const s=t(n);return!r()||!s?null:Oi(s)}const Ei=St.prototype.acquireDoc,ut=new WeakMap,It=new WeakMap;function _i(e,t){const r=pt(e),n=new WeakMap,s=(c,a)=>t.current(a)&&Ce(e,c,!0);return Object.freeze({prepareFrameLoad:(c,a)=>{var l;if(!(c instanceof St)||a.loaded)return null;const i=vr(e),d=i?(l=De(e,i))==null?void 0:l.httpBaseline:void 0,u=t.begin();if(!i||!d||!t.current(u)||!Ce(e,i,!0)||c.getCurrent()!==a||a.transportOwner!==r||!s(i,u))return null;let f=null;return ki(t,u,{current:()=>{var m;return Ce(e,i,!0)&&((m=De(e,i))==null?void 0:m.httpBaseline)===d&&c.getCurrent()===(f??a)&&t.current(u)&&Ce(e,i,!0)},complete:()=>(f=c.observeLoaded(a),f),accept:m=>{var w,g;return!t.current(u)||!Ce(e,i,!0)||((w=De(e,i))==null?void 0:w.httpBaseline)!==d||c.getCurrent()!==m||!t.current(u)||!Ce(e,i,!0)||((g=De(e,i))==null?void 0:g.httpBaseline)!==d?!1:(n.set(m,{record:i,birth:d.birth}),!0)}})},subscribeInvalidation:c=>t.subscribe(c),attachFrame:(c,a)=>{if(!(c instanceof St))return null;const i=vr(e),d=t.begin();if(!i||!t.current(d)||!Ce(e,i,!0)||c.getCurrent()!==a||a.transportOwner!==r||!s(i,d))return null;const u=n.get(a);return!u||u.record!==i||!J(u.birth,De(e,i).birth)?null:ji(t,d,{current:()=>s(i,d),acquire:()=>{const f=Ei.call(c,a,De(e,i).birth,De(e,i).birth.documentId);let l=!1,m=null,w;try{s(i,d)&&c.getCurrent()===a&&s(i,d)&&(m=Object.freeze({binding:f.binding,release:f.release}),l=!0)}catch(g){w={cause:g}}if(!l)try{f.release()}catch(g){w??(w={cause:g})}if(w)throw w.cause;return m},bindingCurrent:f=>c.isCurrent(f)&&s(i,d),createPort:f=>xi(c,f,{owner:r,publisherEpoch:a.publisherEpoch,isCurrentOwner:(l,m)=>l===r&&m===a.publisherEpoch&&t.current(d)&&Ce(e,i),captureOriginal:l=>Ri(l,m=>{var w;return((w=Gi(e,i))==null?void 0:w.captureOriginal(m))??null},()=>s(i,d)),submit:async()=>({kind:"terminal"}),inspect:async()=>({kind:"unknown"})}),portCurrent:f=>f.current()&&s(i,d)})}})}function Si(e){if(Ne(e),ut.has(e))throw new Error("Frame owner is already initialized.");const t=new yi,r=_i(e,t);return ut.set(e,{frames:t,facade:r}),r}function Di(e){var t;return Ne(e),(t=ut.get(e))==null?void 0:t.facade}function Ue(e){Ne(e);const t=ut.get(e);if(!t)return;const r=Object.freeze({});return It.set(r,{owner:e,frames:t.frames,ticket:t.frames.captureRetirement()}),r}function $e(e,t){if(!t)return;const r=It.get(t);if(!r||r.owner!==e)throw new Error("Frame retirement is foreign or consumed.");It.delete(t),r.frames.drainRetirement(r.ticket)}function Pr(e,t){const r=xe(e,t),n=Bi(e,t);if(!(!r||!n))return{owner:t,verified:r.verified,...Ci(n)}}function pe(e,t){return{documentId:e,transport:t,events:[],available:!1}}function Ii(e,t,r,n,s,o){var i,d;const c=e.documentId===r&&e.transport===n?e:pe(r,n);if(c.snapshot&&(t.highWatermark<c.snapshot.highWatermark||t.stateRev<c.snapshot.stateRev))return c;const a=new Map((((i=c.snapshot)==null?void 0:i.receipts)??[]).filter(u=>u.receipt.docSeq>=t.receiptRetentionFloor).map(u=>[u.receipt.id,u]));for(const u of t.receipts)a.set(u.receipt.id,u);return{...c,available:o,snapshot:{...t,...s?{}:{routing:(d=c.snapshot)==null?void 0:d.routing},receipts:[...a.values()].sort((u,f)=>f.receipt.docSeq-u.receipt.docSeq).slice(0,400)},events:t.resetRequired?c.events.filter(u=>u.docSeq>=t.retentionFloor):c.events}}function Ni(e){var r,n,s,o,c,a,i,d,u,f,l,m;const t=async()=>{throw Object.assign(new Error("Document actions are unavailable."),{status:409})};return{documentId:e.documentId,enabled:e.available&&((r=e.binding)==null?void 0:r.verified)===!0&&((s=(n=e.snapshot)==null?void 0:n.routing)==null?void 0:s.enabled)===!0,submissionOwner:(o=e.binding)==null?void 0:o.owner,current:((c=e.binding)==null?void 0:c.current)??(()=>!1),approvedEventTypes:e.available?((i=(a=e.snapshot)==null?void 0:a.routing)==null?void 0:i.approvedEventTypes)??[]:[],destinationLabel:e.available?((u=(d=e.snapshot)==null?void 0:d.routing)==null?void 0:u.destinationLabel)??"Actions unavailable":"Actions unavailable",...e.snapshot?{snapshot:e.snapshot}:{},submit:((f=e.binding)==null?void 0:f.submit)??t,inspect:((l=e.binding)==null?void 0:l.inspect)??t,captureOriginal:(m=e.binding)==null?void 0:m.captureOriginal}}function Ti(e,t,r){return!!(e&&t&&r.incarnation&&J(t,r.incarnation)&&(r.highWatermark<e.highWatermark||r.stateRev<e.stateRev))}function Br(e,t,r,n){const s=e.documentId===r&&e.transport===n?e:pe(r,n);return{...s,events:[...s.events,t].slice(-200)}}function Ai(e,t){if(e.incarnation&&(e.incarnation.documentId!==t||e.events.some(r=>r.documentId!==t||!r.incarnation||!J(e.incarnation,r.incarnation))))throw new Error("Document replay identity changed.")}const Nt=new WeakMap;function zi(e,t,r){const n=hi(e,t,r);if(n)return Nt.set(r,{owner:e,run:t,witness:n}),n}const Wr=new WeakMap,Xe=new WeakMap,Tt=new WeakMap,At=new WeakMap;function ke(e,t){Ne(e);const r=t??Xe.get(e),n=r&&Wr.get(r);return n&&n.owner===e&&Xe.get(e)===r&&n.active?n:void 0}function X(e){return Ne(e),Xe.get(e)}function xe(e,t){const r=ke(e,t);return r?Object.freeze({birth:r.birth,httpBaseline:r.httpBaseline,snapshot:r.snapshot,verified:r.verified}):void 0}function Ve(e,t,r=!1){var o,c;const n=ke(e,t),s=le(e);return!!n&&s.live&&n.verified&&n.transport===pt(e)&&(!r||((c=(o=n.snapshot)==null?void 0:o.routing)==null?void 0:c.enabled)===!0)}function Fi(e){const t=ke(e);Xe.delete(e),t&&(t.active=!1,t.verified=!1)}function kt(e,t){const r=ke(e,t);r&&(r.verified=!1)}function Mi(e,t,r){const n=ke(e,r);return!n||!ne(e,t)?!1:(n.verified=!0,ne(e,t))}function qi(e,t,r){const n=Nt.get(r);Nt.delete(r);const s=(n==null?void 0:n.owner)===e&&n.run===t?n.witness:void 0;if(!s||!ne(e,t))return!1;const o=s.response.incarnation;let c=ke(e);if(!c&&!o)return ne(e,t);if(!c&&o){const a=le(e),i=()=>{const w=le(e);return ne(e,t)&&w.epoch===a.epoch&&w.observation===a.observation&&X(e)===a.subject},d=pt(e),u=d.ingestCanvasEvent;if(!i())return!1;const f=Function.prototype.bind.call(u,d),l=d.getCanvasEventReceipt;if(!i())return!1;const m=Function.prototype.bind.call(l,d);if(!i())return!1;c={owner:e,token:Object.freeze({}),birth:Object.freeze({...o}),active:!0,verified:!1,submit:f,inspect:m,transport:d},Wr.set(c.token,c),Xe.set(e,c.token),c.httpBaseline=Object.freeze({birth:c.birth,floor:s.response.receiptRetentionFloor}),Tt.set(r,Object.freeze({owner:e,run:t,epoch:a.epoch,previous:a.subject,subject:c.token}));try{pi(e,t,r)}catch(w){throw ke(e)===c&&Qi(e,t,r),w}finally{Tt.delete(r)}if(!ne(e,t))return!1}else if(c){if(!o||!J(c.birth,o))return!1;c.httpBaseline=Object.freeze({birth:c.birth,floor:s.response.receiptRetentionFloor})}return ne(e,t)?(c&&(c.verified=Ki(e)||c.verified),!0):!1}function Bt(e,t,r){const n=Wt(e),s=n.subject,o=()=>Hr(e,n,r);if(!s||!Ve(e,s)){const i=Ue(e);$e(e,i)}if(!o())return;const c=s&&Pr(e,s),a=Di(e);n.dispatch(i=>{var f;if(!o())return i;const d=((f=i.binding)==null?void 0:f.owner)===s?i:pe(n.documentId,n.transport),u=typeof t=="function"?t(d):t;return o()?{...u,...u.snapshot?{snapshot:Object.freeze({...u.snapshot})}:{},binding:c,frameAdmission:a}:i})}function Li(e,t,r,n,s){const o=Wt(e),c=ke(e);Hr(e,o,s)&&(c&&(c.snapshot=t),Bt(e,a=>Ii(a,t,o.documentId,o.transport,r,n),s))}function Pi(e,t,r,n){const s=Lr(e,t,r,n);if(!ne(e,t)||!s)return!1;if(s.docSeq<=Pt(e).highest)return ne(e,t);At.set(r,{owner:e,run:t,pending:n,frame:s});try{mi(e,t,r,n)}finally{At.delete(r)}if(!ne(e,t))return!1;const o=Wt(e);return Bt(e,c=>Br(c,s,o.documentId,o.transport),t),ne(e,t)}function Bi(e,t){const r=ke(e,t);if(!r)return;const n=le(e).documentId;return{current:s=>Ve(e,t,s==="submit"),submit:(s,o)=>r.submit(n,s,{expectedGeneration:r.birth.generation},o),inspect:(s,o)=>r.inspect(n,s,{expectedGeneration:r.birth.generation},o),capture:()=>{const s=r.httpBaseline;return!s||!Ve(e,t,!0)||!J(s.birth,r.birth)?null:Object.freeze({current:o=>Ve(e,t,o==="submit")&&(o==="read"||r.httpBaseline===s),submit:(o,c)=>r.submit(n,o,{expectedGeneration:s.birth.generation},c),inspect:(o,c)=>r.inspect(n,o,{expectedGeneration:s.birth.generation},c)})}}}function Ur(e,t,r){const n=Tt.get(r),s=le(e);return n&&n.owner===e&&n.run===t&&s.epoch===n.epoch&&s.subject===n.subject&&s.live?n:void 0}function Wi(e,t,r,n){const s=At.get(r);return s&&s.owner===e&&s.run===t&&s.pending===n&&ne(e,t)?s.frame:void 0}const $r=new WeakMap,lt=new WeakMap;function Ui(e){const t=lt.get(e);if(!t)throw new Error("Document construction ticket is foreign or consumed.");return lt.delete(e),t}function $i(e,t,r){const n=Object.freeze({});lt.set(n,Object.freeze({documentId:e,transport:t,dispatch:r}));try{const s=eo(n);return $r.set(n,s),n}finally{lt.delete(n)}}function K(e){const t=$r.get(e);if(!t)throw new Error("Document owner is foreign.");return t}function Ne(e){K(e)}function le(e){return K(e).facts()}function pt(e){return K(e).transport()}function vr(e){return K(e).subject()}function De(e,t){return K(e).subjectFacts(t)}function Ce(e,t,r=!1){return K(e).subjectCurrent(t,r)}function Gi(e,t){return K(e).binding(t)}function Hi(e,t){K(e).reserve(t)}function ne(e,t){return K(e).current(t)}function Vi(e,t,r){return K(e).admit(t,r)}function br(e,t,r,n){return K(e).frame(t,r,n)}function wr(e,t){return K(e).qualify(t)}function Ji(e,t){K(e).failed(t)}function Xi(e,t){K(e).unavailable(t)}function Zi(e,t){K(e).start(t)}function Yi(e){K(e).dispose()}const Gr=new WeakMap;function Wt(e){const t=Object.freeze(K(e).projection());return Gr.set(t,Object.freeze({custodyKey:e,capture:t})),t}function Hr(e,t,r){const n=Gr.get(t);return(n==null?void 0:n.custodyKey)===e&&n.capture===t&&K(e).projectionCurrent(t.epoch,t.subject,r)}function Qi(e,t,r){K(e).abortAdmission(t,r)}function Ki(e){return K(e).qualified()}const zt=new WeakMap;function eo(e){const{documentId:t,transport:r,dispatch:n}=Ui(e);let s,o=!1,c;const a={live:!0};let i=0,d,u,f=!1,l,m,w=0;const g=()=>a.live,v=()=>Fi(e);let N=0;const S=()=>Pt(e),I=y=>{const D=gr(e,y);return!!D&&!D.ended&&g()&&s===y&&D.epoch===i&&D.subject===X(e)},z=(y=!1)=>{const D=Ue(e);v(),i++,s=void 0,y&&mr(e),$e(e,D)},M=(y,D)=>Bt(e,y,D),L=y=>{const D=gi(e,y),x=X(e),C=x&&xe(e,x);return!I(y)||!D||D.through>D.highest||!l||!C||!J(l,C.birth)||!Mi(e,y,x)?!1:(l=void 0,M(A=>({...A,available:!0}),y),I(y))},P=(y,D,x)=>{const C=X(e),A=C&&xe(e,C),R=i,k=()=>g()&&R===i&&X(e)===C&&(!x||I(x));if(!k()||Ti(A==null?void 0:A.snapshot,A==null?void 0:A.birth,y))return;const B=D?y.routing:u;y={...y,routing:B&&Object.freeze({enabled:B.enabled,destinationLabel:B.destinationLabel,approvedEventTypes:Object.freeze([...B.approvedEventTypes])})},D&&(u=y.routing),!C&&!y.incarnation&&(f=!0),k()&&Li(e,y,D,l===void 0,x)},q=(y,D)=>{var ue;const x=zi(e,y,D);if(!I(y)||!x)return"discard";const C=x.response;Ai(C,t);const A=C.incarnation;if((X(e)||l||m)&&!A)throw new Error("Document replay identity is unavailable.");if(m&&A&&!J(m,A))return z(!0),M(pe(t,r)),"restart";const R=X(e),k=(R&&((ue=xe(e,R))==null?void 0:ue.birth))??l;if(A&&(k&&!J(k,A)||!k&&f||x.targetBirth&&!J(x.targetBirth,A)))return l=A,f=!1,u=void 0,d=void 0,z(!0),M(pe(t,r)),"restart";const{events:B,...U}=C,ee=X(e);return!ee&&A&&(l=m??A),!qi(e,y,D)||!I(y)?"discard":(!ee&&A&&(m=void 0),P(U,x.revision===N,y),I(y)?"accepted":"discard")},G=(y,D,x)=>{var k;const C=Lr(e,y,D,x),A=X(e),R=(A&&((k=xe(e,A))==null?void 0:k.birth))??l;return!I(y)||!C||C.documentId!==t||R&&(!C.incarnation||!J(R,C.incarnation))?!1:Pi(e,y,D,x)},re=(y,D)=>{const x=Object.freeze({});zt.set(x,Object.freeze({owner:e,revision:N,observation:w,epoch:i,notification:y,mode:D}));try{return vi(e,x)}finally{zt.delete(x)}},ge=y=>{if(o||!g()||(o=!0,M(pe(t,r)),!g()))return;const D=Sn(void 0,x=>{if(!g()||x.documentId!==t)return;const C=x.type==="canvas_channel_snapshot"?x.snapshot.incarnation:x.incarnation,A=X(e);if(!A){if(l&&!m&&(!C||!J(l,C))||!C||C.documentId!==t)return;if(!m||!J(m,C)){const R=!!m||!!l;if(m=Object.freeze({...C}),w++,u=void 0,d=void 0,f=!1,R&&(z(!0),M(pe(t,r))),!g()||!m||!J(m,C))return}re(x,"quarantine"),g()&&y();return}if(l&&(!C||!J(l,C))){C&&y();return}if(C&&!J(xe(e,A).birth,C)){l=C,f=!1,u=void 0,d=void 0,z(!0),M(pe(t,r)),g()&&y();return}if(C){if(d!==void 0&&d!==x.scope){const R=Ue(e);if(d=x.scope,kt(e,A),i++,s=void 0,N++,$e(e,R),X(e)!==A||!g())return;M(k=>({...k,available:!1})),X(e)===A&&g()&&y();return}d=x.scope,N++,x.type==="canvas_channel_snapshot"?P(x.snapshot,!0):x.docSeq>S().highest+1?(re(x,"gap")&&g()&&M(k=>({...k,available:!1})),g()&&y()):re(x,"event")}},r,()=>{if(!g())return;const x=Ue(e),C=X(e);C&&kt(e,C),i++,s=void 0,N++,$e(e,x),M(A=>({...A,available:!1})),g()&&y()});g()?c=D:D(),g()&&y()};return Vr.set(e,y=>{const D=Ze(e,y);if(!D||D.notification.type==="canvas_channel_snapshot")return;const x=X(e),C=i;!x||!D.notification.incarnation||!J(xe(e,x).birth,D.notification.incarnation)||(M(A=>Br(A,D.notification,t,r)),!g()||C!==i||X(e))}),{facts:()=>Object.freeze({documentId:t,live:g(),epoch:i,revision:N,observation:w,subject:X(e)}),transport:()=>r,subject:()=>X(e),subjectFacts:y=>xe(e,y),subjectCurrent:(y,D)=>Ve(e,y,D),binding:y=>Pr(e,y),qualified:()=>l===void 0,projection:()=>({documentId:t,transport:r,dispatch:n,epoch:i,run:s,subject:X(e)}),projectionCurrent:(y,D,x)=>g()&&y===i&&D===X(e)&&(!x||s===x),abortAdmission:(y,D)=>{Ur(e,y,D)&&z(!0)},reserve:y=>{const D=gr(e,y);if(!D||D.ended||!g()||D.epoch!==i||D.subject!==X(e))throw new Error("Replay run is foreign or stale.");s=y},current:I,admit:q,frame:G,qualify:L,failed:y=>{if(!I(y))return;const D=X(e);D&&kt(e,D),M(x=>({...x,available:!1}),y)},unavailable:y=>{I(y)&&M(D=>({...D,available:!1}),y)},start:ge,dispose:()=>{if(!g())return;const y=Ue(e);a.live=!1,s=void 0;const D=c;c=void 0,v(),i++,mr(e);try{$e(e,y)}finally{D==null||D()}}}}function Ze(e,t){const r=zt.get(t),n=le(e);if(!(!r||r.owner!==e||!n.live||n.epoch!==r.epoch||n.revision!==r.revision||n.observation!==r.observation))return r}function to(e,t){var a;const r=Ze(e,t);if(!r||r.notification.type==="canvas_channel_snapshot")return;const n=r.notification,o=le(e).subject,c=o&&xe(e,o);!c||!n.incarnation||!J(c.birth,n.incarnation)||n.docSeq<=Pt(e).highest||(bi(e,t),!(!Ze(e,t)||le(e).subject!==o)&&((a=Vr.get(e))==null||a(t)))}const Vr=new WeakMap;function ro(e,t,r){const n=$i(e,t,r);fi(n);const s=Si(n);return Object.freeze({beginRun:()=>wi(n),frameAdmission:s,start:o=>Zi(n,o),dispose:()=>Yi(n)})}function no(e,t){let r,n=0;const s=f=>{try{t==null||t(f)}catch{}},o=f=>{r===f&&(r=void 0)},c=(f,l)=>{f.settled||(f.settled=!0,r||s(!1),l?f.reject(l.cause):f.resolve())},a=()=>{u().catch(()=>{})},i=(f,l)=>{const m=()=>n===f.revision;if(!m())return;const w=l.beginFinalization();if(m()){if(w==="restart"){a();return}if(w==="drain")for(;m();){const g=l.drainOne();if(!m())return;if(g!=="again"){if(g==="restart")a();else if(g==="tail"){const v=l.finishFinalization();m()&&v==="restart"&&a()}return}}}},d=async f=>{let l,m;try{l=e();try{for(;await l.page()==="again";);}catch(w){l.failed(w)}}catch(w){m={cause:w}}finally{o(f);try{l&&i(f,l)}catch(w){m={cause:w}}finally{c(f,m)}}},u=()=>{if(r)return r.promise;let f,l;const m=new Promise((g,v)=>{f=g,l=v}),w={revision:++n,promise:m,resolve:f,reject:l,settled:!1};return r=w,s(!0),d(w),m};return Object.freeze({request:u})}function so(e,t,r,n){const s=ro(e,t,r);let o=!1;const c=no(()=>{const a=s.beginRun();return{async page(){const i=await a.readPage();if(!i)return"done";const d=a.consumePage(i);if(d.kind!=="frames")return d.kind;for(let u=0;u<d.count;u++)if(!a.advancePageFrame(i,u))return"done";return a.finishPage(i)},failed:()=>a.failed(),beginFinalization:()=>{const i=a.beginFinalization();return i!=="drain"&&a.end(),i},drainOne(){if(!a.current())return a.end(),"stop";const i=a.takePending();return i?a.advancePending(i)?"again":(a.end(),"stop"):"tail"},finishFinalization:()=>{try{return a.finishFinalization()}finally{a.end()}}}},a=>{o||n==null||n(a)});return s.start(()=>{c.request().catch(()=>{})}),Object.freeze({dispose(){o=!0,s.dispose()}})}function io(e){var d,u,f;const t=ae(),[r,n]=p.useState(()=>pe(e,t)),[s,o]=p.useState({documentId:e,transport:t,pending:!0});p.useLayoutEffect(()=>{const l=so(e,t,n,m=>{o({documentId:e,transport:t,pending:m})});return()=>l.dispose()},[e,t]);const c=r.documentId===e&&r.transport===t?r:pe(e,t),a=p.useMemo(()=>Ni(c),[c]),i=p.useMemo(()=>{var w;const l=(w=c.snapshot)==null?void 0:w.incarnation,m=c.binding;return l&&m?Object.freeze({incarnation:Object.freeze({...l}),current:()=>m.current("read")}):void 0},[(d=c.snapshot)==null?void 0:d.incarnation,c.binding]);return{channel:a,events:c.events,frameAdmission:c.frameAdmission,fileSaveBinding:i,fileSaveObservation:s.documentId!==e||s.transport!==t||s.pending?"pending":c.available&&((u=c.binding)!=null&&u.verified)&&((f=c.snapshot)!=null&&f.incarnation)?"ready":"unavailable"}}function oo({content:e}){const[t]=Mt();return t?h.jsx("div",{className:"h-full w-full",children:h.jsx(Mn,{sessionId:t,serverName:e.serverName,uri:e.uri,title:e.title})}):null}const ao=p.lazy(()=>Re(()=>import("./CanvasFileContent-C86nyLbI.js"),__vite__mapDeps([6,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])).then(e=>({default:e.CanvasFileContent}))),co=p.lazy(()=>Re(()=>import("./CanvasModel3dContent-wYHHAovt.js"),__vite__mapDeps([24,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])).then(e=>({default:e.CanvasModel3dContent}))),uo=p.lazy(()=>Re(()=>import("./CanvasCsvContent--6i2ETyZ.js"),__vite__mapDeps([25,1,2,26,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])).then(e=>({default:e.CanvasCsvContent}))),lo=p.lazy(()=>Re(()=>import("./index-DBdO-_iL.js").then(e=>e.uI),__vite__mapDeps([1,2])).then(e=>({default:e.CanvasDiffContent})));function So({documentId:e,widgetChannel:t,content:r,onContentChange:n}){switch(r.type){case"url":case"browser":return h.jsx(ys,{documentId:e,content:r},`${e}:${r.url}`);case"markdown":return h.jsx(Ys,{documentId:e,content:r,onContentChange:n},r.sourcePath??"generated");case"json":return h.jsx(Qs,{content:r});case"image":return h.jsx(ni,{content:r});case"pdf":return h.jsx(ii,{content:r});case"audio":return h.jsx(ci,{content:r});case"video":return h.jsx(ui,{content:r});case"widget":return t?h.jsx(Mr,{content:r,documentId:e,channel:t}):h.jsx(fo,{documentId:e,content:r});case"mcp_app":return h.jsx(oo,{content:r});case"file":return h.jsx(p.Suspense,{fallback:h.jsx(tt,{}),children:h.jsx(ao,{documentId:e,content:r})});case"model3d":return h.jsx(p.Suspense,{fallback:h.jsx(tt,{}),children:h.jsx(co,{content:r})});case"csv":return h.jsx(p.Suspense,{fallback:h.jsx(tt,{}),children:h.jsx(uo,{content:r})});case"diff":return h.jsx(p.Suspense,{fallback:h.jsx(tt,{}),children:h.jsx(lo,{documentId:e,content:r},r.sourcePath)})}}function tt(){return h.jsx("div",{className:"text-muted-foreground p-4 text-sm",children:"Loading…"})}function fo({documentId:e,content:t}){const{channel:r}=io(e);return h.jsx(Mr,{documentId:e,content:t,channel:r})}const ho=p.lazy(()=>Re(()=>import("./BlintzCanvas-BEtRmEbL.js").then(e=>e.B),__vite__mapDeps([0,1,2,3,4,5])).then(e=>({default:e.BlintzCanvas})));function Do({roomId:e,document:t,content:r,onSave:n}){const[s,o]=p.useState(null),[c,a]=p.useState(!1),[i,d]=p.useState(null),u=s!==null,f=r.sourcePath===void 0;os(e,u?t.id:null);const l=async()=>{if(s===null)return;if(s===r.content){o(null),d(null);return}a(!0),d(null);const m=await n(t.id,{...r,content:s});a(!1),m?o(null):d("Couldn’t save. Your words are still here. Try again.")};return h.jsxs("div",{className:"flex h-full flex-col",children:[f&&h.jsxs("div",{className:"flex items-center justify-end gap-2 border-b px-2 py-1",children:[u&&h.jsx("span",{className:"text-muted-foreground text-xs",children:c?"Saving…":"Everyone sees your save."}),h.jsx(rt,{type:"button",size:"xs",variant:"ghost",disabled:c,"aria-label":u?"Save for the room":"Edit this document",onClick:()=>u?void l():o(r.content),children:u?h.jsx(jr,{className:"size-3.5"}):h.jsx(Cr,{className:"size-3.5"})})]}),i!==null&&h.jsx("p",{role:"status",className:"text-destructive border-b px-2 py-1 text-xs",children:i}),h.jsx("div",{className:"flex-1 px-2 pb-6",children:h.jsx(p.Suspense,{fallback:h.jsx("div",{className:"text-muted-foreground p-4 text-sm",children:"Loading…"}),children:h.jsx(ho,{value:s??r.content,editable:u,onChange:o},u?"editing":`rev-${t.rev}`)})})]})}const Ft="dorkos-canvas-sessions",po=1440*60*60*1e3;function Jr(){try{const e=localStorage.getItem(Ft);if(!e)return null;const t=JSON.parse(e);return t===null||typeof t!="object"?null:t}catch{return null}}function Xr(e){try{Object.keys(e).length===0?localStorage.removeItem(Ft):localStorage.setItem(Ft,JSON.stringify(e))}catch{}}function mo(e){return Array.isArray(e.documents)?[...e.documents].sort((t,r)=>(t.openedAt??0)-(r.openedAt??0)).map(t=>t.content).filter(t=>!!t):e.content?[e.content]:[]}function dt(e){return e===null||typeof e!="object"?JSON.stringify(e)??"null":Array.isArray(e)?`[${e.map(dt).join(",")}]`:`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r<n?-1:r>n?1:0).map(([r,n])=>`${JSON.stringify(r)}:${dt(n)}`).join(",")}}`}function go(e,t){const r=new Set,n=new Map;for(const o of e){const c=er(o.content);if(c!==null){r.add(c);continue}const a=dt(o.content);n.set(a,(n.get(a)??0)+1)}const s=[];for(const o of t){const c=er(o);if(c!==null){r.has(c)||s.push(o);continue}const a=dt(o),i=n.get(a)??0;i>0?n.set(a,i-1):s.push(o)}return s}const st=new Set;function Io(){st.clear()}function No(e,t={}){const r=ae(),n=t.canonical??!0;p.useEffect(()=>{e&&V.getState().loadCanvasForSession(e)},[e]),p.useEffect(()=>{if(!e||!n||st.has(e))return;const s=Jr();if(!s)return;const o=s[e];if(!o){vo(s);return}st.add(e),(async()=>{try{const c=mo(o),a=go(await r.listSessionCanvas(e),c);if(a.length===0){xr(e);return}for(const i of a)await r.openSessionCanvasDocument(e,i);xr(e),V.getState().hydrateCanvasFromSnapshot(e,await r.listSessionCanvas(e))}catch{st.delete(e)}})()},[e,n,r])}function xr(e){const t=Jr();if(!t)return;const{[e]:r,...n}=t;Xr(n)}function vo(e){const t=Date.now()-po,r=Object.entries(e).filter(([,n])=>n.accessedAt===void 0||n.accessedAt>=t);r.length!==Object.keys(e).length&&Xr(Object.fromEntries(r))}export{So as C,Eo as F,Do as R,Bs as a,io as b,is as c,ss as d,_o as e,Mr as f,Io as g,rs as h,No as i,Fr as r,Vs as u};
25
+ `)))),Is(n,t)}function Ts(e,t){return Ns(new TextEncoder().encode(e),t)}const Ir=Z({path:ce().min(1),title:ce(),slug:ce()});Z({root:ce(),docs:jt(Ir),truncated:it()});Z({cwd:ce().min(1)});Z({cwd:ce().min(1),target:ce().min(1).max(1e3),from:ce().min(1).optional()});Z({doc:Ir.nullable(),complete:it()});const Rt=".md";function we(e){return e.normalize("NFC").trim().toLowerCase()}function Nr(e){return we(e).replace(/\s+/g,"-")}function Le(e){return e.toLowerCase().endsWith(Rt)?e.slice(0,-Rt.length):e}function ar(e){return e.slice(e.lastIndexOf("/")+1)}function nt(e){const t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}function ct(e){return e===""?[]:e.split("/")}function As(e,t){const r=ct(e);for(const n of t.split("/"))if(!(n===""||n==="."))if(n===".."){if(r.length===0)return null;r.pop()}else r.push(n);return r.length===0?null:r.join("/")}function cr(e,t){const r=ct(e),n=ct(t);let s=0;for(;s<r.length&&s<n.length&&r[s]===n[s];)s+=1;return r.length-s+(n.length-s)}function zs(e){return Nr(e).replace(/[^\p{L}\p{N}_-]/gu,"")}function Fs(e,t,r=null){const n=r&&r.trim()!==""?`#${zs(r)}`:"",s=e===null?null:e.normalize("NFC"),o=t.normalize("NFC");if(s===o&&n)return n;const c=ct(s===null?"":nt(s)),a=o.split("/");let i=0;for(;i<c.length&&i<a.length-1&&c[i]===a[i];)i+=1;return[...Array.from({length:c.length-i},()=>".."),...a.slice(i)].map(encodeURIComponent).join("/")+n}const Ms=/[[\]|#\n\r]/,qs=20;function Ls(e){const t=e.map(a=>({doc:a,folder:nt(a.path),path:we(a.path),title:we(a.title),base:we(Le(ar(a.path)))})),r=new Map(t.map(a=>[a.path,a])),n=a=>(i,d)=>cr(a,i.folder)-cr(a,d.folder)||i.doc.path.length-d.doc.path.length||(i.doc.path<d.doc.path?-1:i.doc.path>d.doc.path?1:0);function s(a,i){const d=Le(a),u=a.startsWith("/")?[""]:[i,""];for(const f of u){const l=As(f,d);if(l===null)continue;const m=r.get(we(l+Rt));if(m)return m}}function o(a,i){const d=a.normalize("NFC").trim();if(d==="")return null;const u=i===null?"":nt(i);if(d.includes("/")){const g=s(d,u);if(g)return g}const f=we(d),l=we(Le(d)),m=Nr(l),w=t.filter(g=>g.title===f||g.base===l||g.doc.slug===m);return w.length===0?null:w.sort(n(u))[0]??null}function c(a,i){const d=[a.doc.title.trim(),Le(ar(a.doc.path)),`/${Le(a.doc.path)}`];for(const u of d)if(!(u===""||Ms.test(u))&&o(u,i)===a)return u;return null}return{docs:e,resolve:(a,i)=>{var d;return((d=o(a,i))==null?void 0:d.doc)??null},search(a,i,d=qs){const u=we(a),f=i===null?"":nt(i),l=i===null?null:we(i),m=[];for(const v of t){if(v.path===l)continue;const N=u===""||v.title.startsWith(u)?0:v.title.split(/[\s\-_/]+/).some(S=>S.startsWith(u))?1:v.title.includes(u)?2:v.path.includes(u)?3:-1;N>=0&&m.push({entry:v,score:N})}const w=n(f);m.sort((v,N)=>v.score-N.score||w(v.entry,N.entry));const g=[];for(const{entry:v}of m){if(g.length>=d)break;const N=c(v,i);N!==null&&g.push({target:N,title:v.doc.title,description:v.doc.path})}return g}}}function ur(e,t){const r=t.normalize("NFC").replaceAll("\\","/"),n=r.startsWith("/")||/^[A-Za-z]:\//.test(r);let s=r;if(n){const c=e.normalize("NFC").replaceAll("\\","/").replace(/\/+$/,"");if(!r.startsWith(`${c}/`))return null;s=r.slice(c.length+1)}const o=[];for(const c of s.split("/"))if(!(c===""||c==="."))if(c===".."){if(o.length===0)return null;o.pop()}else o.push(c);return o.length===0?null:o.join("/")}const lr="Links within this doc don’t open.",dr="This folder is too big to check this link.",fr="Couldn’t check this link.";function hr(e,t,r){return{exists:!0,href:Fs(e,t.path,r),title:t.title}}function Ps(e){const{index:t,truncated:r,docPath:n,lookup:s,open:o,refuse:c}=e,a=new Map,i=f=>{const l=f.normalize("NFC").trim().toLowerCase();let m=a.get(l);return m||(m=s(f.trim()).catch(()=>null),a.set(l,m)),m};return{resolve:f=>{if(f.target.trim()==="")return{exists:!1,title:lr};const l=t.resolve(f.target,n);return l?hr(n,l,f.heading):r?i(f.target).then(m=>m===null?{exists:!0,title:fr}:m.doc?hr(n,m.doc,f.heading):m.complete?{exists:!1}:{exists:!0,title:dr}):{exists:!1}},search:f=>t.search(f,n),onOpen:f=>{const l=f.target.trim();if(l===""){c(lr);return}const m=`No doc called “${l}” yet.`,w=t.resolve(l,n);if(w){o(w.path);return}if(!r){c(m);return}i(l).then(g=>{g!=null&&g.doc?o(g.doc.path):c(g===null?fr:g.complete?m:dr)})}}}function Bs({cwd:e,sourcePath:t,content:r="",saved:n=!1}){const{enabled:s}=mn(gn),o=s&&!!e&&!!t,{data:c}=Bn(e,o),a=Wn(),i=ae(),{setTheme:d}=vn(),u=o&&c&&e&&t?ur(e,t)??ur(c.root,t):null,f=p.useMemo(()=>c?Ls(c.docs):null,[c]),l=p.useRef({index:f,docPath:u,content:r,cwd:e});p.useEffect(()=>{l.current={index:f,docPath:u,content:r,cwd:e}}),p.useEffect(()=>{const{index:w,docPath:g,content:v,cwd:N}=l.current;if(!n||!w||g===null)return;const S=w.docs.find(z=>z.path.normalize("NFC").toLowerCase()===g.toLowerCase()),I=g.slice(g.lastIndexOf("/")+1);(!S||S.title!==Ts(v,I))&&a(N)},[n,a]);const m=p.useCallback(w=>{bn({getStore:V.getState,setTheme:d,supportsTerminal:i.supportsTerminal},{action:"open_file",sourcePath:w},"user")},[d,i]);return p.useMemo(()=>{if(!(!f||!c||u===null||!e))return Ps({index:f,truncated:c.truncated,docPath:u,lookup:w=>i.resolveDocLink(e,w,u),open:m,refuse:w=>wn.info(w)})},[f,c,u,e,i,m])}const Je=ce().min(1).max(128),he={protocol:Q("dorkos-doc"),v:Q(1),nonce:Je,requestToken:Je,loadToken:Ct,generation:yr.shape.generation};ht("kind",[Z({...he,kind:Q("challenge")}).strict(),Z({...he,kind:Q("ack")}).strict(),Z({...he,kind:Q("connect")}).strict()]);ht("kind",[Z({...he,kind:Q("emit"),requestId:Je,event:ot}).strict(),Z({...he,kind:Q("retire")}).strict()]);ht("kind",[Z({...he,kind:Q("receipt"),requestId:Je,receipt:kr}).strict(),Z({...he,kind:Q("refused"),requestId:Je,outcome:Kt(["cancelled","unconfirmed","refused"])}).strict(),Z({...he,kind:Q("state"),state:yn,stateRev:Ct,docSeq:Ct,reset:it()}).strict(),Z({...he,kind:Q("event"),frame:kn}).strict(),Z({...he,kind:Q("status"),status:Kt(["connecting","ready","offline","revoked"]),unconfirmed:it()}).strict()]);function Ws(e,t){try{if(xn(t,1048576)!==void 0)return null;const r=e.safeParse(t);return r.success?r.data:null}catch{return null}}function Us({owner:e,getOwner:t,readTail:r,writeTail:n,transport:s,cwd:o,sourcePath:c,documentId:a,pending:i}){const d=()=>{var g,v;return((g=t())==null?void 0:g.recoveryGate)==="unsupported"||((v=t())==null?void 0:v.recoveryGate)==="observed_clear"},u=g=>{var S;const v=jn.parse(g),N=(S=t())==null?void 0:S.recoveryBinding;if(!N||v.documentId!==a||!J(v.incarnation,N.incarnation))throw new Error("Original save scope changed");return v},f=s.originalFileSaveRecovery,l=()=>{var g;try{const v=t();return(v==null?void 0:v.identity)===e&&v.active&&!!((g=v.recoveryBinding)!=null&&g.current())}catch{return!1}},m=(g,v,N=!1)=>{if(!f||!l())return Promise.resolve({status:"idle"});const S=t(),I={},z=()=>t()===S&&l()&&(!v||S.recoveryBinding===v)&&(!N||S.recoveryWork===I),M=S.discovery;let L=!1;S.recoveryWork=I,S.recoveryGate="pending",S.recoveryBusy=!0;const P=r().catch(()=>{}).then(async()=>{try{if(!z())return{status:"idle"};const q=await g();return z()?(N&&(S.recoveryGate="observed_clear"),L=!0,{status:"observed",value:q}):{status:"idle"}}catch{return z()?(S.recoveryGate="unavailable",{status:"unavailable"}):{status:"idle"}}finally{!L&&S.discovery===M&&(S.discovery=void 0),S.recoveryWork===I&&(S.recoveryBusy=!1,S.recoveryWork=void 0)}});return N||n(P.then(()=>{})),P};return{identity:e,supported:!!f,current:l,discover:(g=!1)=>{if(!f||!l())return Promise.resolve({status:"idle"});const v=t(),N=v.recoveryBinding;if(v.discoveryBinding===N&&v.discovery&&(v.pendingDiscovery===v.discovery||!g&&v.recoveryGate==="observed_clear"))return v.discovery;const S=m(async()=>{const I=u(await f.discover(a));return t()===v&&v.recoveryBinding===N&&l()&&(v.recoveryGate=I.admission==="blocked"?"blocked":"observed_clear"),I},N);return v.discoveryBinding=N,v.discovery=S,v.pendingDiscovery=S,S.then(I=>{v.pendingDiscovery===S&&(v.pendingDiscovery=void 0),I.status==="idle"&&v.discovery===S&&(v.discovery=void 0)}),S},recover(g){if(i())return Promise.resolve({status:"local_uncertain"});const v=t();return m(async()=>{if(!v||i())throw new Error("Mounted original still uncertain");const N=v.recoveryBinding,S=Cn.parse(await f.recover(a,g,N.incarnation));if(t()!==v||!l()||S.documentId!==a||S.entry.eventId!==g||!J(S.incarnation,N.incarnation))throw new Error("Original recovery scope changed");const I=u(await f.discover(a));return t()===v&&l()&&(v.recoveryGate=I.admission==="blocked"?"blocked":"observed_clear"),{result:S,discovery:I}})},inspectCurrent(){const g=t();return!g||!l()||i()||!d()?Promise.resolve({status:"local_uncertain"}):m(async()=>{const v=await s.readFileContent(o,c);if(!v||typeof v.content!="string"||typeof v.hash!="string"||!/^[a-f0-9]{64}$/u.test(v.hash))throw new Error("Current file evidence missing");return{content:v.content,hash:v.hash}},g.recoveryBinding,!0)}}}class Se extends Error{constructor(){super("The original save is not confirmed. Retry it before saving another draft.")}}class Ge extends Error{}function $s(){const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Gs(e){const t=e;return(t==null?void 0:t.status)===412&&t.code==="DOC_SAVE_FAILED"}var fe,Ie,Ye,Et;class Hs{constructor(){qe(this,Ye);qe(this,fe);qe(this,Ie)}get pending(){return Me(this,fe)!==void 0}get receipt(){return Me(this,Ie)}async write(t,r,n,s,o,c,a=!1){if(Me(this,fe))throw new Se;if(ve(this,Ie,void 0),!c)return t.writeFile(r,n,s,o);if(!a&&!c.current())throw new Ge;const i=Object.freeze({cwd:r,path:n,content:s,options:Object.freeze({...o,documentSave:Object.freeze({documentId:c.incarnation.documentId,eventId:$s(),incarnation:Object.freeze({...c.incarnation})})})});return ve(this,fe,i),be(this,Ye,Et).call(this,t,i)}async retry(t,r){const n=Me(this,fe);if(!(n!=null&&n.options.documentSave)||!r.current()||!J(n.options.documentSave.incarnation,r.incarnation))throw new Ge;return{result:await be(this,Ye,Et).call(this,t,n),content:n.content}}}fe=new WeakMap,Ie=new WeakMap,Ye=new WeakSet,Et=async function(t,r){try{const n=await t.writeFile(r.cwd,r.path,r.content,r.options);if(!n||typeof n!="object"||typeof n.ok!="boolean")throw new Se;if(!n.ok){if(!n.conflict||typeof n.conflict.currentHash!="string"||!n.conflict.currentHash||typeof n.conflict.currentContent!="string")throw new Se;return ve(this,fe,void 0),n}if(typeof n.hash!="string"||!n.hash||n.effect!=="changed"&&n.effect!=="no_op")throw new Se;const s="documentReceipt"in n?On.parse(n.documentReceipt):void 0,o=r.options.documentSave;if(!s&&n.effect!=="no_op")throw new Se;if(s&&(s.documentId!==o.documentId||s.eventId!==o.eventId||!J(s.incarnation,o.incarnation)||s.fileHash!==n.hash||(s.status==="accepted"?n.effect!=="changed":n.effect!=="no_op")))throw new Se;if((s==null?void 0:s.status)==="duplicate"){const c=await t.readFileContent(r.cwd,r.path);if(!c||typeof c!="object"||Array.isArray(c)||typeof c.hash!="string"||!c.hash||typeof c.content!="string")throw new Se;if(c.hash!==s.fileHash||c.content!==r.content)return ve(this,Ie,s),ve(this,fe,void 0),{ok:!1,conflict:{currentHash:c.hash,currentContent:c.content}}}return ve(this,Ie,s),ve(this,fe,void 0),n}catch(n){throw Gs(n)&&ve(this,fe,void 0),n}};function Vs({sourcePath:e,cwd:t,loadedContent:r,documentId:n,documentSaveBinding:s,documentRecoveryBinding:o}){const c=ae(),a=(s==null?void 0:s.incarnation)??(o==null?void 0:o.incarnation),i=a?JSON.stringify([a.documentId,a.physicalOpenedAt,a.channelCreatedAt,a.generation]):void 0,d=p.useRef(new Hs),u=p.useMemo(()=>({sourcePath:e,cwd:t,documentId:n,transport:c,birthKey:i}),[e,t,n,c,i]),f=p.useRef(null),l=p.useRef(null),m=p.useRef(Promise.resolve()),w=p.useCallback(()=>{var R;return((R=l.current)==null?void 0:R.identity)===u&&l.current.active},[u]);p.useLayoutEffect(()=>{var R;return((R=l.current)==null?void 0:R.identity)!==u?l.current={identity:u,baseHash:null,baseContent:r,active:!0,recoveryBinding:o,recoveryGate:o&&c.originalFileSaveRecovery?"pending":"unsupported"}:(l.current.active=!0,l.current.recoveryBinding=o),()=>{var k;((k=l.current)==null?void 0:k.identity)===u&&(l.current.active=!1)}},[u,r,o,c]);const[g,v]=p.useState({owner:u,status:"idle",conflict:null}),N=g.owner===u?g.status:"idle",S=g.owner===u?g.conflict:null,I=p.useCallback((R,k,B)=>{w()&&v(U=>({owner:u,status:R,documentReceipt:k,confirmedContent:B,conflict:U.owner===u?U.conflict:null}))},[u,w]),z=p.useCallback(R=>{w()&&v(k=>({owner:u,conflict:R,status:k.owner===u?k.status:"idle"}))},[u,w]),M=p.useCallback(()=>{var R,k;return((R=l.current)==null?void 0:R.recoveryGate)==="unsupported"||((k=l.current)==null?void 0:k.recoveryGate)==="observed_clear"},[]),L=p.useMemo(()=>{const R=()=>Us({owner:u,getOwner:()=>l.current,readTail:()=>m.current,writeTail:k=>{m.current=k},transport:c,cwd:t,sourcePath:e,documentId:n,pending:()=>d.current.pending});return{identity:u,supported:!!c.originalFileSaveRecovery,current:()=>R().current(),discover:k=>R().discover(k),recover:k=>R().recover(k),inspectCurrent:()=>R().inspectCurrent()}},[u,c,t,e,n]),P=!!(e&&t),q=p.useCallback((R,k,B,U=!1)=>{const ee=()=>w()&&l.current===R&&(!s||s.current());if(k.ok){if(typeof k.hash!="string"||!k.hash||k.effect!=="changed"&&k.effect!=="no_op")throw new Error("Invalid file save acknowledgement");return R.baseHash=k.hash,R.baseContent=B,!U&&!ee()?{status:"idle"}:(U||(z(null),I("saved",d.current.receipt,B)),{status:k.effect,confirmed:{hash:k.hash,content:B}})}return!U&&!ee()?{status:"idle"}:(U||(z(k.conflict),I("conflict")),{status:"conflict"})},[w,s,z,I]),G=p.useCallback(async(R,k)=>{if(!w())return{status:"idle"};const B=l.current;s&&!d.current.pending&&(f.current=u);const U=await d.current.write(c,t,e,R,k,s);return q(B,U,R)},[w,c,t,e,s,q,u]),re=p.useCallback(R=>{var U;if(!P||!w())return Promise.resolve({status:"idle"});const k=((U=l.current.finalToken)==null?void 0:U.content)===R?l.current.finalToken:void 0,B=m.current.catch(()=>{}).then(async()=>{if(!w()||s&&!s.current())return{status:"idle"};if(d.current.pending)return I("uncertain"),{status:"uncertain"};if(!M())return I("error"),{status:"error"};l.current.finalToken===k&&(l.current.finalToken=void 0),I("saving");try{const ee=l.current.baseHash!==null?{expectedHash:l.current.baseHash}:{expectedContent:l.current.baseContent};return await G(R,ee)}catch(ee){if(ee instanceof Ge)return{status:"idle"};if(!w()||s&&!s.current())return{status:"idle"};const ue=d.current.pending?"uncertain":"error";return I(ue),{status:ue}}});return m.current=B.then(()=>{}),B},[P,G,w,I,s,M]),ge=p.useCallback(R=>{if(!P||!w()||s&&!s.current())return null;const k=l.current,B={content:R,id:Symbol("buffered canvas draft")};return k.finalToken=B,{cancel(){k.finalToken===B&&(k.finalToken=void 0)},flush(){if(k.finalToken!==B||l.current!==k||k.active)return Promise.resolve({status:"idle"});k.finalToken=void 0;const U=m.current.catch(()=>{}).then(async()=>{if(l.current!==k||k.active)return{status:"idle"};try{if(k.recoveryGate!=="unsupported"&&k.recoveryGate!=="observed_clear")return{status:"error"};const ee=k.baseHash!==null?{expectedHash:k.baseHash}:{expectedContent:k.baseContent};s&&!d.current.pending&&(f.current=u);const ue=await d.current.write(c,t,e,R,ee,s,!0);return q(k,ue,R,!0)}catch{return{status:"error"}}});return m.current=U.then(()=>{}),U}}},[P,w,c,t,e,s,q,u]),y=p.useCallback(async R=>{const k=l.current;return!k||k.identity!==u?!1:(await m.current.catch(()=>{}),l.current===k&&!d.current.pending&&k.baseContent===R)},[u]),D=p.useCallback(()=>{if(!w()||!s||f.current!==u)return Promise.resolve({status:"idle"});const R=l.current,k=m.current.catch(()=>{}).then(async()=>{if(!w()||l.current!==R||f.current!==u)return{status:"idle"};try{I("saving");const B=await d.current.retry(c,s);return q(R,B.result,B.content)}catch(B){if(B instanceof Ge||!w()||l.current!==R)return{status:"idle"};const U=d.current.pending?"uncertain":"error";return I(U),{status:U}}});return m.current=k.then(()=>{}),k},[w,s,c,q,I,u]),x=p.useCallback(R=>{var ee;if(!P||!S||!w())return Promise.resolve({status:"idle"});const k=S.currentHash,B=((ee=l.current.finalToken)==null?void 0:ee.content)===R?l.current.finalToken:void 0,U=m.current.catch(()=>{}).then(async()=>{if(!w()||s&&!s.current())return{status:"idle"};if(d.current.pending)return I("uncertain"),{status:"uncertain"};if(!M())return I("error"),{status:"error"};l.current.finalToken===B&&(l.current.finalToken=void 0),I("saving");try{return await G(R,{expectedHash:k})}catch(ue){if(ue instanceof Ge)return{status:"idle"};if(!w()||s&&!s.current())return{status:"idle"};const Ae=d.current.pending?"uncertain":"error";return I(Ae),{status:Ae}}});return m.current=U.then(()=>{}),U},[P,S,G,w,I,s,M]),C=p.useCallback(()=>{var R;return((R=l.current)==null?void 0:R.identity)===u?{hash:l.current.baseHash,content:l.current.baseContent}:{hash:null,content:r}},[u,r]),A=p.useCallback(()=>{if(!S||!w()||s&&!s.current())return null;l.current.finalToken=void 0;const R=S.currentContent;return l.current.baseHash=S.currentHash,l.current.baseContent=R,z(null),I("idle"),R},[S,w,z,I,s]);return{recovery:L,status:N,conflict:S,canSave:P,save:re,overwrite:x,adoptDisk:A,getConfirmedBase:C,prepareFinalSave:ge,retryUnconfirmed:D,waitForCloseDrain:y,documentReceipt:g.owner===u?g.documentReceipt:void 0,confirmedContent:g.owner===u?g.confirmedContent:void 0}}const Js=p.lazy(()=>Re(()=>import("./BlintzCanvas-CYHsXAcY.js").then(e=>e.B),__vite__mapDeps([0,1,2,3,4,5])).then(e=>({default:e.BlintzCanvas}))),Xs=500;function Zs(e){switch(e){case"saving":return"Saving…";case"saved":return"Saved";case"error":return"Couldn’t save";default:return null}}function Ys({content:e,documentId:t,onContentChange:r}){const[n,s]=p.useState(!1),[o,c]=p.useState(e.content),a=V(x=>x.canvasSessionId),i=V(x=>x.setDocumentEditing),d=V(x=>{var C;return((C=x.openDocuments.find(A=>A.id===t))==null?void 0:C.editing)??!1}),u=V(x=>x.selectedCwd),f=n&&d,l=Vs({documentId:t,sourcePath:e.sourcePath,cwd:u,loadedContent:e.content}),m=l.canSave,w=Bs({cwd:u,sourcePath:m?e.sourcePath:null,content:o,saved:l.status==="saved"}),g=p.useRef(null),v=p.useRef(null),N=p.useRef(o),S=p.useRef(e),I=p.useRef(r),z=p.useRef(l.save),M=p.useRef(l.prepareFinalSave),L=p.useRef(null);p.useEffect(()=>{N.current=o,S.current=e,I.current=r,z.current=l.save,M.current=l.prepareFinalSave});const P=p.useCallback(x=>{V.getState().canvasSessionId===g.current&&(I.current({...S.current,content:x}),z.current(x))},[]),q=p.useCallback(x=>{var C;c(x),N.current=x,(C=L.current)==null||C.cancel(),L.current=M.current(x),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{v.current=null,P(x)},Xs)},[P]),G=()=>{g.current=V.getState().canvasSessionId,c(e.content),s(!0),i(t,!0)},re=()=>{v.current&&(clearTimeout(v.current),v.current=null,P(N.current)),s(!1),i(t,!1)};p.useEffect(()=>{var x;f&&a!==g.current&&(v.current&&(clearTimeout(v.current),v.current=null),(x=L.current)==null||x.cancel(),L.current=null,s(!1),i(t,!1))},[a,f,t,i]),p.useEffect(()=>{var x;!n||f||(v.current&&clearTimeout(v.current),v.current=null,(x=L.current)==null||x.cancel(),L.current=null)},[f,n]),p.useEffect(()=>()=>{var x,C;v.current&&(clearTimeout(v.current),v.current=null,V.getState().canvasSessionId===g.current&&I.current({...S.current,content:N.current})),V.getState().canvasSessionId===g.current?(x=L.current)==null||x.flush():(C=L.current)==null||C.cancel(),L.current=null,i(t,!1)},[P,t,i]);const ge=()=>{const x=l.adoptDisk();x!=null&&(r({...e,content:x}),c(x))},y=()=>{l.overwrite(N.current)},D=Zs(l.status);return h.jsxs("div",{className:"relative flex h-full flex-col",children:[h.jsxs("div",{className:"sticky top-0 z-10 flex h-0 items-start justify-end gap-2 pr-2",children:[m&&D&&h.jsx("span",{className:"text-muted-foreground mt-3 text-xs","aria-live":"polite",children:D}),m&&h.jsx(rt,{type:"button",variant:"ghost",size:"icon-md",className:"text-muted-foreground hover:text-foreground mt-2",onClick:f?re:G,"aria-label":f?"Finish editing":"Edit document",children:f?h.jsx(jr,{className:"size-4"}):h.jsx(Cr,{className:"size-4"})})]}),l.status==="conflict"&&h.jsxs("div",{className:"bg-destructive/10 text-destructive mx-2 mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 rounded-md px-3 py-2 text-sm",children:[h.jsx("span",{className:"flex-1",children:"This file changed on disk since you opened it."}),h.jsx(rt,{type:"button",variant:"ghost",size:"sm",className:"h-7",onClick:ge,children:"Reload"}),h.jsx(rt,{type:"button",variant:"destructive",size:"sm",className:"h-7",onClick:y,children:"Overwrite"})]}),h.jsx("div",{className:"flex-1 px-2 pb-6",children:h.jsx(p.Suspense,{fallback:h.jsx("div",{className:"text-muted-foreground p-4 text-sm",children:"Loading editor…"}),children:h.jsx(Js,{value:f?o:e.content,editable:f,onChange:f?q:void 0,wikiLinks:w})})})]})}function Qs({content:e}){return h.jsx("div",{className:"p-4 font-mono text-sm",children:h.jsx(Tr,{value:e.data,depth:0})})}const Ks=20;function Tr({value:e,depth:t,keyName:r}){const[n,s]=p.useState(t>2),o=p.useCallback(()=>s(u=>!u),[]);if(t>=Ks)return h.jsx(Pe,{keyName:r,value:"[max depth]",className:"text-muted-foreground"});if(e===null)return h.jsx(Pe,{keyName:r,value:"null",className:"text-muted-foreground"});if(typeof e=="boolean")return h.jsx(Pe,{keyName:r,value:String(e),className:"text-blue-500"});if(typeof e=="number")return h.jsx(Pe,{keyName:r,value:String(e),className:"text-green-500"});if(typeof e=="string")return h.jsx(Pe,{keyName:r,value:`"${e}"`,className:"text-amber-500"});const c=Array.isArray(e),a=c?e.map((u,f)=>[String(f),u]):Object.entries(e),i=c?"[":"{",d=c?"]":"}";return h.jsxs("div",{style:{paddingLeft:t>0?16:0},children:[h.jsxs("button",{type:"button",className:"hover:bg-muted -ml-0.5 inline-flex items-center gap-0.5 rounded px-0.5 transition-colors duration-150",onClick:o,children:[h.jsx(Rn,{className:qt("size-3 transition-transform",!n&&"rotate-90")}),r!=null&&h.jsxs("span",{className:"text-foreground",children:[r,": "]}),h.jsxs("span",{className:"text-muted-foreground",children:[i,n&&` … ${a.length} items `,n&&d]})]}),!n&&h.jsxs(h.Fragment,{children:[a.map(([u,f])=>h.jsx(Tr,{keyName:c?void 0:u,value:f,depth:t+1},u)),h.jsx("div",{className:"text-muted-foreground",children:d})]})]})}function Pe({keyName:e,value:t,className:r}){return h.jsxs("div",{style:{paddingLeft:16},children:[e!=null&&h.jsxs("span",{className:"text-foreground",children:[e,": "]}),h.jsx("span",{className:r,children:t})]})}const ei=new Set(["http:","https:"]);function ti(e){const t=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!t||t[1].length===1?null:`${t[1].toLowerCase()}:`}const ri={image:"data:image/",pdf:"data:application/pdf"};function Ar(e,t,r){const n=e.trim();if(n.startsWith("data:"))return n.toLowerCase().startsWith(ri[t])?{url:n,error:null}:{url:null,error:"unsupported-data"};const s=ti(n);if(s!==null)return ei.has(s)?{url:n,error:null}:{url:null,error:"blocked"};const o=r(n);return o?{url:o,error:null}:{url:null,error:"local-unavailable"}}function zr(e,t){switch(e){case"blocked":return`This ${t} source is blocked for safety.`;case"unsupported-data":return`This data URI isn’t a valid ${t} source.`;case"local-unavailable":return`Local ${t} files can’t be displayed here.`}}function ni({content:e}){const t=ae(),r=V(u=>u.selectedCwd),n=p.useMemo(()=>Ar(e.src,"image",u=>t.mediaUrl(r??"",u)),[e.src,t,r]),[s,o]=p.useState("loading"),[c,a]=p.useState(e.src);c!==e.src&&(a(e.src),o("loading"));const i=e.alt??e.title??"Canvas image";if(n.url===null){const u=n.error?zr(n.error,"image"):"";return h.jsx(pr,{children:u})}const d=n.url;return h.jsxs("div",{className:"bg-muted/40 relative flex h-full items-center justify-center",children:[s==="loading"&&h.jsx("p",{className:"text-muted-foreground absolute text-sm","aria-live":"polite",children:"Loading image…"}),s==="error"?h.jsx(pr,{children:"This image couldn’t be loaded."}):h.jsxs(In,{centerOnInit:!0,doubleClick:{mode:"toggle"},wheel:{step:.15},children:[h.jsx(si,{}),h.jsx(Nn,{wrapperClass:"!h-full !w-full",contentClass:"!h-full !w-full flex items-center justify-center",children:h.jsx("img",{src:d,alt:i,onLoad:()=>o("loaded"),onError:()=>o("error"),className:qt("max-h-full max-w-full object-contain transition-opacity",s==="loaded"?"opacity-100":"opacity-0")})})]})]})}function si(){const{zoomIn:e,zoomOut:t,resetTransform:r}=Tn();return h.jsxs("div",{className:"absolute top-2 right-2 z-10 flex gap-1",children:[h.jsx(yt,{label:"Zoom in",onClick:()=>e(),children:h.jsx(Ln,{className:"size-4"})}),h.jsx(yt,{label:"Zoom out",onClick:()=>t(),children:h.jsx(Pn,{className:"size-4"})}),h.jsx(yt,{label:"Reset zoom",onClick:()=>r(),children:h.jsx(qn,{className:"size-4"})})]})}function yt({label:e,onClick:t,children:r}){return h.jsx("button",{type:"button",onClick:t,"aria-label":e,className:"bg-background/80 text-muted-foreground hover:text-foreground focus-ring rounded-md border p-1.5 backdrop-blur transition-colors",children:r})}function pr({children:e}){return h.jsx("div",{className:"text-muted-foreground flex h-full items-center justify-center p-8 text-center",children:h.jsx("p",{children:e})})}function ii({content:e}){const t=ae(),r=En().data,n=V(i=>i.selectedCwd),s=p.useMemo(()=>Ar(e.src,"pdf",i=>t.mediaUrl(n??"",i)),[e.src,t,n]);if(s.url===null){const i=s.error?zr(s.error,"pdf"):"";return h.jsx("div",{className:"text-muted-foreground flex h-full items-center justify-center p-8 text-center",children:h.jsx("p",{children:i})})}const o=s.url,c=e.title??"PDF document",a=new URL(o,window.location.href).origin===window.location.origin;return a&&!r?null:a&&(r==null?void 0:r.serverRole)==="hub"?h.jsxs("div",{className:"text-muted-foreground flex h-full flex-col items-center justify-center gap-3 p-8 text-center",children:[h.jsx("p",{children:"PDFs download here instead of opening."}),h.jsxs("a",{href:o,download:!0,className:"text-foreground focus-ring rounded-md underline underline-offset-4",children:["Download ",c]})]}):h.jsx("object",{data:o,type:"application/pdf",title:c,className:"h-full w-full",children:h.jsxs("div",{className:"text-muted-foreground flex h-full flex-col items-center justify-center gap-3 p-8 text-center",children:[h.jsx("p",{children:"This PDF can’t be shown here."}),h.jsxs("a",{href:o,target:"_blank",rel:"noreferrer",className:"text-foreground focus-ring rounded-md underline underline-offset-4",children:["Open ",c," in a new tab"]})]})})}function oi(e){const t=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!t||t[1].length===1?null:`${t[1].toLowerCase()}:`}const ai=new Set(["http:","https:","data:"]);function Fr(e,t,r){const n=e.trim(),s=oi(n);return s!==null?ai.has(s)?s==="data:"&&r!==void 0?n.toLowerCase().startsWith(r)?{url:n}:{url:null}:{url:n}:{url:null}:{url:t(n)}}function ci({content:e}){const t=ae(),r=V(o=>o.selectedCwd),n=p.useMemo(()=>Fr(e.src,o=>t.mediaUrl(r??"",o),"data:audio/"),[e.src,t,r]),s=e.title??"Canvas audio";return n.url===null?h.jsx("div",{className:"text-muted-foreground flex h-full items-center justify-center p-8 text-center",children:h.jsx("p",{children:"This audio can’t be played here."})}):h.jsx("div",{className:"bg-muted/40 flex h-full w-full items-center justify-center p-8",children:h.jsx("audio",{controls:!0,src:n.url,"aria-label":s,className:"w-full max-w-2xl",children:h.jsxs("p",{className:"text-muted-foreground text-sm",children:["Your browser can’t play this audio."," ",h.jsxs("a",{href:n.url,className:"text-foreground underline underline-offset-4",children:["Download ",s]}),"."]})})})}function ui({content:e}){const t=ae(),r=V(o=>o.selectedCwd),n=p.useMemo(()=>Fr(e.src,o=>t.mediaUrl(r??"",o),"data:video/"),[e.src,t,r]),s=e.title??"Canvas video";return n.url===null?h.jsx("div",{className:"text-muted-foreground flex h-full items-center justify-center p-8 text-center",children:h.jsx("p",{children:"This video can’t be played here."})}):h.jsx("div",{className:"bg-muted/40 flex h-full w-full items-center justify-center",children:h.jsx("video",{controls:!0,src:n.url,"aria-label":s,className:"max-h-full w-full max-w-full object-contain",children:h.jsxs("p",{className:"text-muted-foreground p-8 text-sm",children:["Your browser can’t play this video."," ",h.jsxs("a",{href:n.url,className:"text-foreground underline underline-offset-4",children:["Download ",s]}),"."]})})})}function Mr({content:e,documentId:t,channel:r}){const[n]=Mt(),s=An(e.definition),o=p.useMemo(()=>JSON.stringify(e.definition),[e.definition]);return h.jsx("div",{className:"p-4",children:s.ok?h.jsx(zn,{channel:r,document:s.document,sessionId:n??void 0},r?t??r.documentId:o):h.jsx(Fn,{error:s.error,raw:s.raw})})}class li{constructor(){te(this,"contiguous",0);te(this,"through",0);te(this,"pending",new Map)}get highest(){return this.contiguous}get catchUpThrough(){return this.through}get pendingCount(){return this.pending.size}reset(){this.contiguous=0,this.through=0,this.pending.clear()}resetHighest(){this.contiguous=0}advance(t){this.contiguous=Math.max(this.contiguous,t)}markThrough(t){this.through=Math.max(this.through,t)}recordGap(t){return this.markThrough(t.docSeq),this.pending.set(t.docSeq,t),this.pending.size<=200?!1:(this.pending.clear(),!0)}takeNextContiguous(){for(const n of this.pending.keys())n<=this.contiguous&&this.pending.delete(n);const t=this.contiguous+1,r=this.pending.get(t);return r&&this.pending.delete(t),r}clearReachedTarget(){return this.contiguous<this.through?!1:(this.through=0,!0)}}const _t=new WeakMap,Qe=new WeakMap,ye=new WeakMap,He=new WeakMap;function Oe(e){Ne(e);const t=_t.get(e);if(!t)throw new Error("Replay owner lifetime is absent.");return t}function di(e,t){const r=Qe.get(t);if(!r||r.owner!==e)throw new Error("Replay run is foreign.");return r}function qr(e){if(e&&typeof e=="object"&&!Object.isFrozen(e)){for(const t of Object.values(e))qr(t);Object.freeze(e)}return e}function fi(e){if(Ne(e),_t.has(e))throw new Error("Replay owner lifetime is already initialized.");_t.set(e,new li)}function Pt(e){const t=Oe(e);return Object.freeze({highest:t.highest,through:t.catchUpThrough,pending:t.pendingCount})}function mr(e){Oe(e).reset()}function gr(e,t){const r=Qe.get(t);if(!(!r||r.owner!==e))return Object.freeze({subject:r.subject,epoch:r.epoch,revision:r.revision,observation:r.observation,ended:r.ended})}function hi(e,t,r){const n=ye.get(r),s=Qe.get(t);if(!(!s||s.owner!==e||!n||n.owner!==e||n.run!==t||n.phase!=="consuming"||n.admissionRead||!ne(e,t)))return n.admissionRead=!0,Object.freeze({response:n.response,since:n.since,revision:n.revision,observation:n.observation,targetBirth:s.targetBirth})}function pi(e,t,r){const n=di(e,t),s=ye.get(r),o=Ur(e,t,r);if(!o||!s||s.owner!==e||s.run!==t||s.phase!=="consuming"||!s.admissionRead||n.ended||n.epoch!==o.epoch||n.subject!==o.previous)throw new Error("Replay own issuance is foreign or stale.");n.subject=o.subject}function Lr(e,t,r,n){if(!ne(e,t))return;if(n){const o=He.get(r);return o&&o.owner===e&&o.run===t&&o.phase==="dispatching"&&!o.advanced?o.frame:void 0}const s=ye.get(r);return s&&s.owner===e&&s.run===t&&s.phase==="frames"&&s.dispatching!==void 0&&!s.advanced?s.frames[s.dispatching]:void 0}function mi(e,t,r,n){const s=Wi(e,t,r,n);if(!s||!ne(e,t))throw new Error("Replay cursor advance has no genuine core witness.");const o=n?He.get(r):ye.get(r);if(!o||o.advanced)throw new Error("Replay frame advance was consumed.");o.advanced=!0,Oe(e).advance(s.docSeq)}function gi(e,t){const r=Qe.get(t),n=(r==null?void 0:r.lastPage)&&ye.get(r.lastPage);if(!r||r.owner!==e||!ne(e,t)||r.target===void 0||!n||n.phase!=="finished"||n.next!==n.frames.length||n.response.events.length>=200&&Oe(e).highest<r.target)return;const s=Oe(e);return Object.freeze({highest:s.highest,through:s.catchUpThrough,target:r.target})}function vi(e,t){const r=Ze(e,t);if(!r)throw new Error("Replay notice is foreign or stale.");const n=Oe(e),s=r.notification;if(r.mode==="quarantine")n.markThrough(s.type==="canvas_channel_snapshot"?s.snapshot.highWatermark:s.docSeq),s.type!=="canvas_channel_snapshot"&&n.recordGap(s);else{if(r.mode==="gap"&&s.type!=="canvas_channel_snapshot")return n.recordGap(s);r.mode==="event"&&to(e,t)}return!1}function bi(e,t){const r=Ze(e,t);if(!r||r.mode!=="event"||r.notification.type==="canvas_channel_snapshot")throw new Error("Notice cursor advance is foreign.");Oe(e).advance(r.notification.docSeq)}function wi(e){const t=le(e),r=Oe(e),n=Object.freeze({}),s={owner:e,subject:t.subject,epoch:t.epoch,revision:t.revision,observation:t.observation,ended:!1,starting:r.highest,succeeded:!1};Qe.set(n,s),Hi(e,n);const o=()=>ne(e,n),c=()=>le(e).live?o()?void 0:"restart":"stop";return Object.freeze({async readPage(){if(!o())return null;const a=le(e),i=r.highest,d=pt(e),u=d.getCanvasChannel;if(!o())return null;const f=await u.call(d,t.documentId,{since:i,limit:200});if(!o())return null;const l=qr(_n.parse(f));if(!o())return null;const m=Object.freeze({});return ye.set(m,{owner:e,run:n,response:l,since:i,revision:a.revision,observation:a.observation,phase:"read",admissionRead:!1,frames:[],next:0,advanced:!1}),m},consumePage(a){const i=ye.get(a);return!o()||!i||i.owner!==e||i.run!==n||i.phase!=="read"?{kind:"done"}:(i.phase="consuming",Vi(e,n,a)!=="accepted"||!o()?(i.phase="finished",{kind:"done"}):(s.target??(s.target=i.response.highWatermark),s.targetBirth=i.response.incarnation,i.frames=Object.freeze(i.response.events.filter(u=>u.docSeq<=s.target)),i.phase="frames",s.lastPage=a,i.response.resetRequired&&r.advance(i.response.retentionFloor-1),{kind:"frames",count:i.frames.length}))},advancePageFrame(a,i){const d=ye.get(a);if(!o()||!d||d.owner!==e||d.run!==n||d.phase!=="frames"||i!==d.next||!d.frames[i])return!1;d.next=i+1,d.dispatching=i,d.advanced=!1;try{return br(e,n,a,!1)&&o()}finally{d.dispatching=void 0}},finishPage(a){const i=ye.get(a);if(!o()||!i||i.owner!==e||i.run!==n||i.phase!=="frames"||i.next!==i.frames.length||s.target===void 0)return"done";if(i.phase="finished",i.response.events.length<200||r.highest>=s.target)return r.advance(s.target),!o()||(wr(e,n),!o())||(s.succeeded=!0),"done";if(r.highest<=i.since)throw new Error("Document replay made no progress.");return"again"},failed(){o()&&Ji(e,n)},beginFinalization(){return c()??(s.succeeded?"drain":"stop")},takePending(){if(!o())return null;const a=r.takeNextContiguous();if(!a||!o())return null;const i=Object.freeze({});return He.set(i,{owner:e,run:n,frame:a,phase:"taken",advanced:!1}),i},advancePending(a){const i=He.get(a);if(!o()||!i||i.owner!==e||i.run!==n||i.phase!=="taken")return!1;i.phase="dispatching";try{return br(e,n,a,!0)&&o()}finally{i.phase="finished",He.delete(a)}},finishFinalization(){const a=c();if(a)return a;if(r.clearReachedTarget()){const i=c();if(i)return i;wr(e,n);const d=c();if(d)return d}if(r.pendingCount||r.catchUpThrough>r.highest){const i=le(e);if(r.highest>s.starting||i.revision>s.revision||i.observation>s.observation)return"restart";Xi(e,n)}return c()??"stop"},current:o,end:()=>{s.ended=!0}})}var me,Dt,We;class St{constructor(){qe(this,me);te(this,"current",null);te(this,"token",0);te(this,"retiring",!1);te(this,"subscribers",new Set);te(this,"resources",new Map);te(this,"doc",null);te(this,"docClaims",new WeakMap);te(this,"retiringDoc",!1);te(this,"docResources",new Map);te(this,"bindings",new WeakSet)}getCurrent(){return this.current}observeHostContext(t){if(this.retiring)return null;if(!t.transportOwner||typeof t.transportOwner!="object"||!Number.isSafeInteger(t.publisherEpoch)||t.publisherEpoch<0)throw new Error("Explicit transport owner and epoch required.");const r=["frame","documentId","resolvedSource","logicalUrl","reloadKey","sessionId","eligibility","exactOrigin","transportOwner","publisherEpoch"];if(r.some(s=>!Object.hasOwn(t,s))||typeof t.documentId!="string"||!t.documentId||typeof t.logicalUrl!="string"||typeof t.reloadKey!="string")throw new Error("Complete host context required.");const n=this.current;return n&&r.every(s=>Object.is(n[s],t[s]))?n:(this.retire(),this.current=Object.freeze({...t,token:this.token,loaded:!1}),this.current)}observeLoaded(t){return this.retiring||this.current!==t||!t.frame?null:(this.retire(),this.current=Object.freeze({...t,token:this.token,loaded:!0}),this.current)}retire(){if(this.retiring)return;const t=this.current;this.current=null;const r=this.doc;this.doc=null,this.token++,this.retiring=!0;const n=[...t?this.resources.get(t)??[]:[],...r?this.docResources.get(r)??[]:[],...this.subscribers];r&&this.docResources.delete(r),t&&this.resources.delete(t);try{for(const s of n)try{const o=s();o&&typeof o.then=="function"&&Promise.resolve(o).catch(()=>{})}catch{}}finally{this.retiring=!1}}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}own(t,r){if(this.retiring||this.current!==t)throw new Error("Frame observation retired.");const n=this.resources.get(t)??new Set;return n.add(r),this.resources.set(t,n),()=>{n.delete(r)}}bindDoc(t,r,n){return be(this,me,Dt).call(this,t,r,n)}acquireDoc(t,r,n){const s=be(this,me,Dt).call(this,t,r,n),o=Object.freeze({});this.docClaims.set(s,o);let c=!1;return Object.freeze({binding:s,release:()=>{c||(c=!0,this.docClaims.get(s)===o&&(this.docClaims.delete(s),this.doc===s&&this.bindings.has(s)&&be(this,me,We).call(this)))}})}disableDoc(){be(this,me,We).call(this)}retireDoc(t){this.doc===t&&this.bindings.has(t)&&be(this,me,We).call(this)}ownDoc(t,r){if(!this.isCurrent(t))throw new Error("Doc binding retired.");const n=this.docResources.get(t)??new Set;return n.add(r),this.docResources.set(t,n),()=>{n.delete(r)}}isCurrent(t){return!this.retiring&&!this.retiringDoc&&this.doc===t&&this.bindings.has(t)&&this.current===t.observation}}me=new WeakSet,Dt=function(t,r,n){const s=this.doc,o=this.token,c=Ws(yr,r);if(!c)throw this.disableDoc(),new Error("Established server Doc birth required.");const a=c,i=t.exactOrigin,d=t.eligibility==="served-document"?i==="null":t.eligibility==="preview-listener"&&i!==null&&new URL(i).origin===i;if(!t.loaded||!t.frame||typeof t.frame.postMessage!="function"||!t.resolvedSource||!d||t.documentId!==a.documentId||!n||n.length>200)throw new Error("Loaded eligible frame and established Doc birth required.");if(this.retiring||this.retiringDoc||this.current!==t||this.doc!==s||this.token!==o)throw new Error("Frame observation retired during Doc admission.");if(this.doc){if(this.doc.observation!==t)throw new Error("Doc binding belongs to another host load.");if(J(this.doc.incarnation,a)&&this.doc.scope===n)return this.doc;throw this.retire(),new Error("Doc birth changed; a fresh host load is required.")}const u=Object.freeze({observation:t,incarnation:Object.freeze(a),scope:n});try{return this.doc=u,this.bindings.add(u),u}catch(f){throw this.doc===u&&be(this,me,We).call(this),f}},We=function(){if(this.retiringDoc)return;const t=this.doc;this.doc=null,this.retiringDoc=!0;const r=[...t?this.docResources.get(t)??[]:[]];t&&this.docResources.delete(t);try{for(const n of r)try{const s=n();s&&typeof s.then=="function"&&Promise.resolve(s).catch(()=>{})}catch{}}finally{this.retiringDoc=!1}};function xi(e,t,r){if(!r||typeof r.captureOriginal!="function"||typeof r.submit!="function"||typeof r.inspect!="function"||typeof r.isCurrentOwner!="function"||r.owner!==t.observation.transportOwner||r.publisherEpoch!==t.observation.publisherEpoch)throw new Error("Explicit current transport submit and inspect ports required.");const{owner:n,publisherEpoch:s,isCurrentOwner:o,submit:c,inspect:a,captureOriginal:i}=r,d=Object.freeze({expectedGeneration:t.incarnation.generation}),u=()=>{try{return e.isCurrent(t)?o(n,s)===!0&&e.isCurrent(t):!1}catch{return!1}};if(!u())throw new Error("Doc binding unavailable.");const f=()=>{if(!u())throw new Error("Doc binding retired.")};return Object.freeze({binding:t,current:u,captureOriginal:l=>{f();const m=l.id;f();const w=l.bytes;f();const g=Reflect.apply(i,r,[Object.freeze({id:m,bytes:w})]);if(f(),!g)return null;const v=g.id;f();const N=g.bytes;f();const S=g.submit;f();const I=g.inspect;return f(),v!==m||N!==w||typeof S!="function"||typeof I!="function"?null:Object.freeze({id:m,bytes:w,submit:async z=>{f(),z.throwIfAborted();const M=await Reflect.apply(S,g,[z]);return f(),z.throwIfAborted(),M},inspect:async z=>{f(),z.throwIfAborted();const M=await Reflect.apply(I,g,[z]);return f(),z.throwIfAborted(),M}})},retireObservation:()=>{u()&&e.retire()},onRetire:l=>e.ownDoc(t,l),submit:(l,m)=>(f(),m.throwIfAborted(),c(l,d,m)),inspect:(l,m)=>(f(),m.throwIfAborted(),a(l,d,m))})}class yi{constructor(){te(this,"revision",0);te(this,"draining",!1);te(this,"cleanup");te(this,"subscribers",new Set);te(this,"retirements",new WeakMap)}captureRetirement(){const t=Object.freeze({}),r=++this.revision,n=this.cleanup;return this.cleanup=void 0,this.retirements.set(t,{revision:r,cleanup:n,callbacks:this.draining?[]:[...this.subscribers]}),t}drainRetirement(t){const r=this.retirements.get(t);if(!r)throw new Error("Frame resource retirement is foreign or consumed.");this.retirements.delete(t);const n=this.draining;this.draining=!0;try{this.drain(r.cleanup);for(const s of r.callbacks)this.drain(s)}finally{this.draining=n}}begin(){const t=this.captureRetirement(),r=this.revision;return this.drainRetirement(t),r}once(t,r,n){let s=!1;return()=>{if(s||(s=!0,!this.current(t)||!r()||!this.current(t)))return null;const o=n();return!this.current(t)||!r()||!this.current(t)?null:o}}drain(t){try{Promise.resolve(t==null?void 0:t()).catch(()=>{})}catch{}}current(t){return this.revision===t}install(t,r){return this.current(t)?(this.cleanup=r,!0):!1}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}}function ki(e,t,r){const n=()=>e.current(t)&&r.current()===!0&&e.current(t),s=e.once(t,n,r.complete);return Object.freeze({completeLoad:()=>{const o=s();return!o||!n()||r.accept(o)!==!0||!n()?null:o}})}function ji(e,t,r){const n=()=>e.current(t)&&r.current()===!0&&e.current(t);if(!n())return null;const s=r.acquire();if(!s)return null;let o=!1,c=null,a;try{const i=s.binding;if(n()&&r.bindingCurrent(i)===!0&&n()){const d=r.createPort(i);n()&&r.portCurrent(d)===!0&&n()&&e.install(t,s.release)&&(o=!0,c=d)}}catch(i){a={cause:i}}if(!o)try{s.release()}catch(i){a??(a={cause:i})}if(a)throw a.cause;return c}function Ci(e){const t=()=>Object.assign(new Error("Document actions are unavailable."),{status:409}),r=(s,o)=>{if(o.aborted||!e.current(s)||o.aborted)throw t()},n=(s,o)=>{const c=kr.parse(o);if(c.receipt.id!==s)throw new Error("Document receipt does not match this action.");return c};return Object.freeze({current:e.current,submit:async(s,o)=>{const c=ot.parse(JSON.parse(JSON.stringify(s))),a=c.id;r("submit",o);const i=await e.submit(c,o);r("read",o);const d=n(a,i);return r("read",o),d},inspect:async(s,o)=>{r("read",o);const c=await e.inspect(s,o);r("read",o);const a=n(s,c);return r("read",o),a},captureOriginal:s=>{const o=ot.parse(JSON.parse(JSON.stringify(s))),c=o.id,a=JSON.stringify(o);if(!e.current("submit"))return null;const i=e.capture(o,a);if(!i||!e.current("submit")||!i.current("submit"))return null;let d=!1;const u=f=>i.current(f)===!0;return Object.freeze({id:c,bytes:a,current:u,submit:async f=>{if(d||f.aborted||!u("submit"))throw t();d=!0;const l=await i.submit(JSON.parse(a),f);if(f.aborted||!u("read"))throw t();const m=n(c,l);if(f.aborted||!u("read"))throw t();return m},inspect:async f=>{if(f.aborted||!u("read"))throw t();const l=await i.inspect(c,f);if(f.aborted||!u("read"))throw t();const m=n(c,l);if(f.aborted||!u("read"))throw t();return m}})}})}function Oi(e){return Object.freeze({id:e.id,bytes:e.bytes,submit:async t=>{try{return{kind:"accepted",receipt:await e.submit(t)}}catch{return{kind:"uncertain"}}},inspect:async t=>{try{return{kind:"accepted",receipt:await e.inspect(t)}}catch{return{kind:"unknown"}}}})}function Ri(e,t,r){const n=ot.parse(JSON.parse(e.bytes));if(n.id!==e.id||JSON.stringify(n)!==e.bytes||!r())return null;const s=t(n);return!r()||!s?null:Oi(s)}const Ei=St.prototype.acquireDoc,ut=new WeakMap,It=new WeakMap;function _i(e,t){const r=pt(e),n=new WeakMap,s=(c,a)=>t.current(a)&&Ce(e,c,!0);return Object.freeze({prepareFrameLoad:(c,a)=>{var l;if(!(c instanceof St)||a.loaded)return null;const i=vr(e),d=i?(l=De(e,i))==null?void 0:l.httpBaseline:void 0,u=t.begin();if(!i||!d||!t.current(u)||!Ce(e,i,!0)||c.getCurrent()!==a||a.transportOwner!==r||!s(i,u))return null;let f=null;return ki(t,u,{current:()=>{var m;return Ce(e,i,!0)&&((m=De(e,i))==null?void 0:m.httpBaseline)===d&&c.getCurrent()===(f??a)&&t.current(u)&&Ce(e,i,!0)},complete:()=>(f=c.observeLoaded(a),f),accept:m=>{var w,g;return!t.current(u)||!Ce(e,i,!0)||((w=De(e,i))==null?void 0:w.httpBaseline)!==d||c.getCurrent()!==m||!t.current(u)||!Ce(e,i,!0)||((g=De(e,i))==null?void 0:g.httpBaseline)!==d?!1:(n.set(m,{record:i,birth:d.birth}),!0)}})},subscribeInvalidation:c=>t.subscribe(c),attachFrame:(c,a)=>{if(!(c instanceof St))return null;const i=vr(e),d=t.begin();if(!i||!t.current(d)||!Ce(e,i,!0)||c.getCurrent()!==a||a.transportOwner!==r||!s(i,d))return null;const u=n.get(a);return!u||u.record!==i||!J(u.birth,De(e,i).birth)?null:ji(t,d,{current:()=>s(i,d),acquire:()=>{const f=Ei.call(c,a,De(e,i).birth,De(e,i).birth.documentId);let l=!1,m=null,w;try{s(i,d)&&c.getCurrent()===a&&s(i,d)&&(m=Object.freeze({binding:f.binding,release:f.release}),l=!0)}catch(g){w={cause:g}}if(!l)try{f.release()}catch(g){w??(w={cause:g})}if(w)throw w.cause;return m},bindingCurrent:f=>c.isCurrent(f)&&s(i,d),createPort:f=>xi(c,f,{owner:r,publisherEpoch:a.publisherEpoch,isCurrentOwner:(l,m)=>l===r&&m===a.publisherEpoch&&t.current(d)&&Ce(e,i),captureOriginal:l=>Ri(l,m=>{var w;return((w=Gi(e,i))==null?void 0:w.captureOriginal(m))??null},()=>s(i,d)),submit:async()=>({kind:"terminal"}),inspect:async()=>({kind:"unknown"})}),portCurrent:f=>f.current()&&s(i,d)})}})}function Si(e){if(Ne(e),ut.has(e))throw new Error("Frame owner is already initialized.");const t=new yi,r=_i(e,t);return ut.set(e,{frames:t,facade:r}),r}function Di(e){var t;return Ne(e),(t=ut.get(e))==null?void 0:t.facade}function Ue(e){Ne(e);const t=ut.get(e);if(!t)return;const r=Object.freeze({});return It.set(r,{owner:e,frames:t.frames,ticket:t.frames.captureRetirement()}),r}function $e(e,t){if(!t)return;const r=It.get(t);if(!r||r.owner!==e)throw new Error("Frame retirement is foreign or consumed.");It.delete(t),r.frames.drainRetirement(r.ticket)}function Pr(e,t){const r=xe(e,t),n=Bi(e,t);if(!(!r||!n))return{owner:t,verified:r.verified,...Ci(n)}}function pe(e,t){return{documentId:e,transport:t,events:[],available:!1}}function Ii(e,t,r,n,s,o){var i,d;const c=e.documentId===r&&e.transport===n?e:pe(r,n);if(c.snapshot&&(t.highWatermark<c.snapshot.highWatermark||t.stateRev<c.snapshot.stateRev))return c;const a=new Map((((i=c.snapshot)==null?void 0:i.receipts)??[]).filter(u=>u.receipt.docSeq>=t.receiptRetentionFloor).map(u=>[u.receipt.id,u]));for(const u of t.receipts)a.set(u.receipt.id,u);return{...c,available:o,snapshot:{...t,...s?{}:{routing:(d=c.snapshot)==null?void 0:d.routing},receipts:[...a.values()].sort((u,f)=>f.receipt.docSeq-u.receipt.docSeq).slice(0,400)},events:t.resetRequired?c.events.filter(u=>u.docSeq>=t.retentionFloor):c.events}}function Ni(e){var r,n,s,o,c,a,i,d,u,f,l,m;const t=async()=>{throw Object.assign(new Error("Document actions are unavailable."),{status:409})};return{documentId:e.documentId,enabled:e.available&&((r=e.binding)==null?void 0:r.verified)===!0&&((s=(n=e.snapshot)==null?void 0:n.routing)==null?void 0:s.enabled)===!0,submissionOwner:(o=e.binding)==null?void 0:o.owner,current:((c=e.binding)==null?void 0:c.current)??(()=>!1),approvedEventTypes:e.available?((i=(a=e.snapshot)==null?void 0:a.routing)==null?void 0:i.approvedEventTypes)??[]:[],destinationLabel:e.available?((u=(d=e.snapshot)==null?void 0:d.routing)==null?void 0:u.destinationLabel)??"Actions unavailable":"Actions unavailable",...e.snapshot?{snapshot:e.snapshot}:{},submit:((f=e.binding)==null?void 0:f.submit)??t,inspect:((l=e.binding)==null?void 0:l.inspect)??t,captureOriginal:(m=e.binding)==null?void 0:m.captureOriginal}}function Ti(e,t,r){return!!(e&&t&&r.incarnation&&J(t,r.incarnation)&&(r.highWatermark<e.highWatermark||r.stateRev<e.stateRev))}function Br(e,t,r,n){const s=e.documentId===r&&e.transport===n?e:pe(r,n);return{...s,events:[...s.events,t].slice(-200)}}function Ai(e,t){if(e.incarnation&&(e.incarnation.documentId!==t||e.events.some(r=>r.documentId!==t||!r.incarnation||!J(e.incarnation,r.incarnation))))throw new Error("Document replay identity changed.")}const Nt=new WeakMap;function zi(e,t,r){const n=hi(e,t,r);if(n)return Nt.set(r,{owner:e,run:t,witness:n}),n}const Wr=new WeakMap,Xe=new WeakMap,Tt=new WeakMap,At=new WeakMap;function ke(e,t){Ne(e);const r=t??Xe.get(e),n=r&&Wr.get(r);return n&&n.owner===e&&Xe.get(e)===r&&n.active?n:void 0}function X(e){return Ne(e),Xe.get(e)}function xe(e,t){const r=ke(e,t);return r?Object.freeze({birth:r.birth,httpBaseline:r.httpBaseline,snapshot:r.snapshot,verified:r.verified}):void 0}function Ve(e,t,r=!1){var o,c;const n=ke(e,t),s=le(e);return!!n&&s.live&&n.verified&&n.transport===pt(e)&&(!r||((c=(o=n.snapshot)==null?void 0:o.routing)==null?void 0:c.enabled)===!0)}function Fi(e){const t=ke(e);Xe.delete(e),t&&(t.active=!1,t.verified=!1)}function kt(e,t){const r=ke(e,t);r&&(r.verified=!1)}function Mi(e,t,r){const n=ke(e,r);return!n||!ne(e,t)?!1:(n.verified=!0,ne(e,t))}function qi(e,t,r){const n=Nt.get(r);Nt.delete(r);const s=(n==null?void 0:n.owner)===e&&n.run===t?n.witness:void 0;if(!s||!ne(e,t))return!1;const o=s.response.incarnation;let c=ke(e);if(!c&&!o)return ne(e,t);if(!c&&o){const a=le(e),i=()=>{const w=le(e);return ne(e,t)&&w.epoch===a.epoch&&w.observation===a.observation&&X(e)===a.subject},d=pt(e),u=d.ingestCanvasEvent;if(!i())return!1;const f=Function.prototype.bind.call(u,d),l=d.getCanvasEventReceipt;if(!i())return!1;const m=Function.prototype.bind.call(l,d);if(!i())return!1;c={owner:e,token:Object.freeze({}),birth:Object.freeze({...o}),active:!0,verified:!1,submit:f,inspect:m,transport:d},Wr.set(c.token,c),Xe.set(e,c.token),c.httpBaseline=Object.freeze({birth:c.birth,floor:s.response.receiptRetentionFloor}),Tt.set(r,Object.freeze({owner:e,run:t,epoch:a.epoch,previous:a.subject,subject:c.token}));try{pi(e,t,r)}catch(w){throw ke(e)===c&&Qi(e,t,r),w}finally{Tt.delete(r)}if(!ne(e,t))return!1}else if(c){if(!o||!J(c.birth,o))return!1;c.httpBaseline=Object.freeze({birth:c.birth,floor:s.response.receiptRetentionFloor})}return ne(e,t)?(c&&(c.verified=Ki(e)||c.verified),!0):!1}function Bt(e,t,r){const n=Wt(e),s=n.subject,o=()=>Hr(e,n,r);if(!s||!Ve(e,s)){const i=Ue(e);$e(e,i)}if(!o())return;const c=s&&Pr(e,s),a=Di(e);n.dispatch(i=>{var f;if(!o())return i;const d=((f=i.binding)==null?void 0:f.owner)===s?i:pe(n.documentId,n.transport),u=typeof t=="function"?t(d):t;return o()?{...u,...u.snapshot?{snapshot:Object.freeze({...u.snapshot})}:{},binding:c,frameAdmission:a}:i})}function Li(e,t,r,n,s){const o=Wt(e),c=ke(e);Hr(e,o,s)&&(c&&(c.snapshot=t),Bt(e,a=>Ii(a,t,o.documentId,o.transport,r,n),s))}function Pi(e,t,r,n){const s=Lr(e,t,r,n);if(!ne(e,t)||!s)return!1;if(s.docSeq<=Pt(e).highest)return ne(e,t);At.set(r,{owner:e,run:t,pending:n,frame:s});try{mi(e,t,r,n)}finally{At.delete(r)}if(!ne(e,t))return!1;const o=Wt(e);return Bt(e,c=>Br(c,s,o.documentId,o.transport),t),ne(e,t)}function Bi(e,t){const r=ke(e,t);if(!r)return;const n=le(e).documentId;return{current:s=>Ve(e,t,s==="submit"),submit:(s,o)=>r.submit(n,s,{expectedGeneration:r.birth.generation},o),inspect:(s,o)=>r.inspect(n,s,{expectedGeneration:r.birth.generation},o),capture:()=>{const s=r.httpBaseline;return!s||!Ve(e,t,!0)||!J(s.birth,r.birth)?null:Object.freeze({current:o=>Ve(e,t,o==="submit")&&(o==="read"||r.httpBaseline===s),submit:(o,c)=>r.submit(n,o,{expectedGeneration:s.birth.generation},c),inspect:(o,c)=>r.inspect(n,o,{expectedGeneration:s.birth.generation},c)})}}}function Ur(e,t,r){const n=Tt.get(r),s=le(e);return n&&n.owner===e&&n.run===t&&s.epoch===n.epoch&&s.subject===n.subject&&s.live?n:void 0}function Wi(e,t,r,n){const s=At.get(r);return s&&s.owner===e&&s.run===t&&s.pending===n&&ne(e,t)?s.frame:void 0}const $r=new WeakMap,lt=new WeakMap;function Ui(e){const t=lt.get(e);if(!t)throw new Error("Document construction ticket is foreign or consumed.");return lt.delete(e),t}function $i(e,t,r){const n=Object.freeze({});lt.set(n,Object.freeze({documentId:e,transport:t,dispatch:r}));try{const s=eo(n);return $r.set(n,s),n}finally{lt.delete(n)}}function K(e){const t=$r.get(e);if(!t)throw new Error("Document owner is foreign.");return t}function Ne(e){K(e)}function le(e){return K(e).facts()}function pt(e){return K(e).transport()}function vr(e){return K(e).subject()}function De(e,t){return K(e).subjectFacts(t)}function Ce(e,t,r=!1){return K(e).subjectCurrent(t,r)}function Gi(e,t){return K(e).binding(t)}function Hi(e,t){K(e).reserve(t)}function ne(e,t){return K(e).current(t)}function Vi(e,t,r){return K(e).admit(t,r)}function br(e,t,r,n){return K(e).frame(t,r,n)}function wr(e,t){return K(e).qualify(t)}function Ji(e,t){K(e).failed(t)}function Xi(e,t){K(e).unavailable(t)}function Zi(e,t){K(e).start(t)}function Yi(e){K(e).dispose()}const Gr=new WeakMap;function Wt(e){const t=Object.freeze(K(e).projection());return Gr.set(t,Object.freeze({custodyKey:e,capture:t})),t}function Hr(e,t,r){const n=Gr.get(t);return(n==null?void 0:n.custodyKey)===e&&n.capture===t&&K(e).projectionCurrent(t.epoch,t.subject,r)}function Qi(e,t,r){K(e).abortAdmission(t,r)}function Ki(e){return K(e).qualified()}const zt=new WeakMap;function eo(e){const{documentId:t,transport:r,dispatch:n}=Ui(e);let s,o=!1,c;const a={live:!0};let i=0,d,u,f=!1,l,m,w=0;const g=()=>a.live,v=()=>Fi(e);let N=0;const S=()=>Pt(e),I=y=>{const D=gr(e,y);return!!D&&!D.ended&&g()&&s===y&&D.epoch===i&&D.subject===X(e)},z=(y=!1)=>{const D=Ue(e);v(),i++,s=void 0,y&&mr(e),$e(e,D)},M=(y,D)=>Bt(e,y,D),L=y=>{const D=gi(e,y),x=X(e),C=x&&xe(e,x);return!I(y)||!D||D.through>D.highest||!l||!C||!J(l,C.birth)||!Mi(e,y,x)?!1:(l=void 0,M(A=>({...A,available:!0}),y),I(y))},P=(y,D,x)=>{const C=X(e),A=C&&xe(e,C),R=i,k=()=>g()&&R===i&&X(e)===C&&(!x||I(x));if(!k()||Ti(A==null?void 0:A.snapshot,A==null?void 0:A.birth,y))return;const B=D?y.routing:u;y={...y,routing:B&&Object.freeze({enabled:B.enabled,destinationLabel:B.destinationLabel,approvedEventTypes:Object.freeze([...B.approvedEventTypes])})},D&&(u=y.routing),!C&&!y.incarnation&&(f=!0),k()&&Li(e,y,D,l===void 0,x)},q=(y,D)=>{var ue;const x=zi(e,y,D);if(!I(y)||!x)return"discard";const C=x.response;Ai(C,t);const A=C.incarnation;if((X(e)||l||m)&&!A)throw new Error("Document replay identity is unavailable.");if(m&&A&&!J(m,A))return z(!0),M(pe(t,r)),"restart";const R=X(e),k=(R&&((ue=xe(e,R))==null?void 0:ue.birth))??l;if(A&&(k&&!J(k,A)||!k&&f||x.targetBirth&&!J(x.targetBirth,A)))return l=A,f=!1,u=void 0,d=void 0,z(!0),M(pe(t,r)),"restart";const{events:B,...U}=C,ee=X(e);return!ee&&A&&(l=m??A),!qi(e,y,D)||!I(y)?"discard":(!ee&&A&&(m=void 0),P(U,x.revision===N,y),I(y)?"accepted":"discard")},G=(y,D,x)=>{var k;const C=Lr(e,y,D,x),A=X(e),R=(A&&((k=xe(e,A))==null?void 0:k.birth))??l;return!I(y)||!C||C.documentId!==t||R&&(!C.incarnation||!J(R,C.incarnation))?!1:Pi(e,y,D,x)},re=(y,D)=>{const x=Object.freeze({});zt.set(x,Object.freeze({owner:e,revision:N,observation:w,epoch:i,notification:y,mode:D}));try{return vi(e,x)}finally{zt.delete(x)}},ge=y=>{if(o||!g()||(o=!0,M(pe(t,r)),!g()))return;const D=Sn(void 0,x=>{if(!g()||x.documentId!==t)return;const C=x.type==="canvas_channel_snapshot"?x.snapshot.incarnation:x.incarnation,A=X(e);if(!A){if(l&&!m&&(!C||!J(l,C))||!C||C.documentId!==t)return;if(!m||!J(m,C)){const R=!!m||!!l;if(m=Object.freeze({...C}),w++,u=void 0,d=void 0,f=!1,R&&(z(!0),M(pe(t,r))),!g()||!m||!J(m,C))return}re(x,"quarantine"),g()&&y();return}if(l&&(!C||!J(l,C))){C&&y();return}if(C&&!J(xe(e,A).birth,C)){l=C,f=!1,u=void 0,d=void 0,z(!0),M(pe(t,r)),g()&&y();return}if(C){if(d!==void 0&&d!==x.scope){const R=Ue(e);if(d=x.scope,kt(e,A),i++,s=void 0,N++,$e(e,R),X(e)!==A||!g())return;M(k=>({...k,available:!1})),X(e)===A&&g()&&y();return}d=x.scope,N++,x.type==="canvas_channel_snapshot"?P(x.snapshot,!0):x.docSeq>S().highest+1?(re(x,"gap")&&g()&&M(k=>({...k,available:!1})),g()&&y()):re(x,"event")}},r,()=>{if(!g())return;const x=Ue(e),C=X(e);C&&kt(e,C),i++,s=void 0,N++,$e(e,x),M(A=>({...A,available:!1})),g()&&y()});g()?c=D:D(),g()&&y()};return Vr.set(e,y=>{const D=Ze(e,y);if(!D||D.notification.type==="canvas_channel_snapshot")return;const x=X(e),C=i;!x||!D.notification.incarnation||!J(xe(e,x).birth,D.notification.incarnation)||(M(A=>Br(A,D.notification,t,r)),!g()||C!==i||X(e))}),{facts:()=>Object.freeze({documentId:t,live:g(),epoch:i,revision:N,observation:w,subject:X(e)}),transport:()=>r,subject:()=>X(e),subjectFacts:y=>xe(e,y),subjectCurrent:(y,D)=>Ve(e,y,D),binding:y=>Pr(e,y),qualified:()=>l===void 0,projection:()=>({documentId:t,transport:r,dispatch:n,epoch:i,run:s,subject:X(e)}),projectionCurrent:(y,D,x)=>g()&&y===i&&D===X(e)&&(!x||s===x),abortAdmission:(y,D)=>{Ur(e,y,D)&&z(!0)},reserve:y=>{const D=gr(e,y);if(!D||D.ended||!g()||D.epoch!==i||D.subject!==X(e))throw new Error("Replay run is foreign or stale.");s=y},current:I,admit:q,frame:G,qualify:L,failed:y=>{if(!I(y))return;const D=X(e);D&&kt(e,D),M(x=>({...x,available:!1}),y)},unavailable:y=>{I(y)&&M(D=>({...D,available:!1}),y)},start:ge,dispose:()=>{if(!g())return;const y=Ue(e);a.live=!1,s=void 0;const D=c;c=void 0,v(),i++,mr(e);try{$e(e,y)}finally{D==null||D()}}}}function Ze(e,t){const r=zt.get(t),n=le(e);if(!(!r||r.owner!==e||!n.live||n.epoch!==r.epoch||n.revision!==r.revision||n.observation!==r.observation))return r}function to(e,t){var a;const r=Ze(e,t);if(!r||r.notification.type==="canvas_channel_snapshot")return;const n=r.notification,o=le(e).subject,c=o&&xe(e,o);!c||!n.incarnation||!J(c.birth,n.incarnation)||n.docSeq<=Pt(e).highest||(bi(e,t),!(!Ze(e,t)||le(e).subject!==o)&&((a=Vr.get(e))==null||a(t)))}const Vr=new WeakMap;function ro(e,t,r){const n=$i(e,t,r);fi(n);const s=Si(n);return Object.freeze({beginRun:()=>wi(n),frameAdmission:s,start:o=>Zi(n,o),dispose:()=>Yi(n)})}function no(e,t){let r,n=0;const s=f=>{try{t==null||t(f)}catch{}},o=f=>{r===f&&(r=void 0)},c=(f,l)=>{f.settled||(f.settled=!0,r||s(!1),l?f.reject(l.cause):f.resolve())},a=()=>{u().catch(()=>{})},i=(f,l)=>{const m=()=>n===f.revision;if(!m())return;const w=l.beginFinalization();if(m()){if(w==="restart"){a();return}if(w==="drain")for(;m();){const g=l.drainOne();if(!m())return;if(g!=="again"){if(g==="restart")a();else if(g==="tail"){const v=l.finishFinalization();m()&&v==="restart"&&a()}return}}}},d=async f=>{let l,m;try{l=e();try{for(;await l.page()==="again";);}catch(w){l.failed(w)}}catch(w){m={cause:w}}finally{o(f);try{l&&i(f,l)}catch(w){m={cause:w}}finally{c(f,m)}}},u=()=>{if(r)return r.promise;let f,l;const m=new Promise((g,v)=>{f=g,l=v}),w={revision:++n,promise:m,resolve:f,reject:l,settled:!1};return r=w,s(!0),d(w),m};return Object.freeze({request:u})}function so(e,t,r,n){const s=ro(e,t,r);let o=!1;const c=no(()=>{const a=s.beginRun();return{async page(){const i=await a.readPage();if(!i)return"done";const d=a.consumePage(i);if(d.kind!=="frames")return d.kind;for(let u=0;u<d.count;u++)if(!a.advancePageFrame(i,u))return"done";return a.finishPage(i)},failed:()=>a.failed(),beginFinalization:()=>{const i=a.beginFinalization();return i!=="drain"&&a.end(),i},drainOne(){if(!a.current())return a.end(),"stop";const i=a.takePending();return i?a.advancePending(i)?"again":(a.end(),"stop"):"tail"},finishFinalization:()=>{try{return a.finishFinalization()}finally{a.end()}}}},a=>{o||n==null||n(a)});return s.start(()=>{c.request().catch(()=>{})}),Object.freeze({dispose(){o=!0,s.dispose()}})}function io(e){var d,u,f;const t=ae(),[r,n]=p.useState(()=>pe(e,t)),[s,o]=p.useState({documentId:e,transport:t,pending:!0});p.useLayoutEffect(()=>{const l=so(e,t,n,m=>{o({documentId:e,transport:t,pending:m})});return()=>l.dispose()},[e,t]);const c=r.documentId===e&&r.transport===t?r:pe(e,t),a=p.useMemo(()=>Ni(c),[c]),i=p.useMemo(()=>{var w;const l=(w=c.snapshot)==null?void 0:w.incarnation,m=c.binding;return l&&m?Object.freeze({incarnation:Object.freeze({...l}),current:()=>m.current("read")}):void 0},[(d=c.snapshot)==null?void 0:d.incarnation,c.binding]);return{channel:a,events:c.events,frameAdmission:c.frameAdmission,fileSaveBinding:i,fileSaveObservation:s.documentId!==e||s.transport!==t||s.pending?"pending":c.available&&((u=c.binding)!=null&&u.verified)&&((f=c.snapshot)!=null&&f.incarnation)?"ready":"unavailable"}}function oo({content:e}){const[t]=Mt();return t?h.jsx("div",{className:"h-full w-full",children:h.jsx(Mn,{sessionId:t,serverName:e.serverName,uri:e.uri,title:e.title})}):null}const ao=p.lazy(()=>Re(()=>import("./CanvasFileContent-estXyAbr.js"),__vite__mapDeps([6,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])).then(e=>({default:e.CanvasFileContent}))),co=p.lazy(()=>Re(()=>import("./CanvasModel3dContent-CkOo930M.js"),__vite__mapDeps([24,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])).then(e=>({default:e.CanvasModel3dContent}))),uo=p.lazy(()=>Re(()=>import("./CanvasCsvContent--Gr7Fe_U.js"),__vite__mapDeps([25,1,2,26,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])).then(e=>({default:e.CanvasCsvContent}))),lo=p.lazy(()=>Re(()=>import("./index-Cga0qx1T.js").then(e=>e.uU),__vite__mapDeps([1,2])).then(e=>({default:e.CanvasDiffContent})));function So({documentId:e,widgetChannel:t,content:r,onContentChange:n}){switch(r.type){case"url":case"browser":return h.jsx(ys,{documentId:e,content:r},`${e}:${r.url}`);case"markdown":return h.jsx(Ys,{documentId:e,content:r,onContentChange:n},r.sourcePath??"generated");case"json":return h.jsx(Qs,{content:r});case"image":return h.jsx(ni,{content:r});case"pdf":return h.jsx(ii,{content:r});case"audio":return h.jsx(ci,{content:r});case"video":return h.jsx(ui,{content:r});case"widget":return t?h.jsx(Mr,{content:r,documentId:e,channel:t}):h.jsx(fo,{documentId:e,content:r});case"mcp_app":return h.jsx(oo,{content:r});case"file":return h.jsx(p.Suspense,{fallback:h.jsx(tt,{}),children:h.jsx(ao,{documentId:e,content:r})});case"model3d":return h.jsx(p.Suspense,{fallback:h.jsx(tt,{}),children:h.jsx(co,{content:r})});case"csv":return h.jsx(p.Suspense,{fallback:h.jsx(tt,{}),children:h.jsx(uo,{content:r})});case"diff":return h.jsx(p.Suspense,{fallback:h.jsx(tt,{}),children:h.jsx(lo,{documentId:e,content:r},r.sourcePath)})}}function tt(){return h.jsx("div",{className:"text-muted-foreground p-4 text-sm",children:"Loading…"})}function fo({documentId:e,content:t}){const{channel:r}=io(e);return h.jsx(Mr,{documentId:e,content:t,channel:r})}const ho=p.lazy(()=>Re(()=>import("./BlintzCanvas-CYHsXAcY.js").then(e=>e.B),__vite__mapDeps([0,1,2,3,4,5])).then(e=>({default:e.BlintzCanvas})));function Do({roomId:e,document:t,content:r,onSave:n}){const[s,o]=p.useState(null),[c,a]=p.useState(!1),[i,d]=p.useState(null),u=s!==null,f=r.sourcePath===void 0;os(e,u?t.id:null);const l=async()=>{if(s===null)return;if(s===r.content){o(null),d(null);return}a(!0),d(null);const m=await n(t.id,{...r,content:s});a(!1),m?o(null):d("Couldn’t save. Your words are still here. Try again.")};return h.jsxs("div",{className:"flex h-full flex-col",children:[f&&h.jsxs("div",{className:"flex items-center justify-end gap-2 border-b px-2 py-1",children:[u&&h.jsx("span",{className:"text-muted-foreground text-xs",children:c?"Saving…":"Everyone sees your save."}),h.jsx(rt,{type:"button",size:"xs",variant:"ghost",disabled:c,"aria-label":u?"Save for the room":"Edit this document",onClick:()=>u?void l():o(r.content),children:u?h.jsx(jr,{className:"size-3.5"}):h.jsx(Cr,{className:"size-3.5"})})]}),i!==null&&h.jsx("p",{role:"status",className:"text-destructive border-b px-2 py-1 text-xs",children:i}),h.jsx("div",{className:"flex-1 px-2 pb-6",children:h.jsx(p.Suspense,{fallback:h.jsx("div",{className:"text-muted-foreground p-4 text-sm",children:"Loading…"}),children:h.jsx(ho,{value:s??r.content,editable:u,onChange:o},u?"editing":`rev-${t.rev}`)})})]})}const Ft="dorkos-canvas-sessions",po=1440*60*60*1e3;function Jr(){try{const e=localStorage.getItem(Ft);if(!e)return null;const t=JSON.parse(e);return t===null||typeof t!="object"?null:t}catch{return null}}function Xr(e){try{Object.keys(e).length===0?localStorage.removeItem(Ft):localStorage.setItem(Ft,JSON.stringify(e))}catch{}}function mo(e){return Array.isArray(e.documents)?[...e.documents].sort((t,r)=>(t.openedAt??0)-(r.openedAt??0)).map(t=>t.content).filter(t=>!!t):e.content?[e.content]:[]}function dt(e){return e===null||typeof e!="object"?JSON.stringify(e)??"null":Array.isArray(e)?`[${e.map(dt).join(",")}]`:`{${Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[n])=>r<n?-1:r>n?1:0).map(([r,n])=>`${JSON.stringify(r)}:${dt(n)}`).join(",")}}`}function go(e,t){const r=new Set,n=new Map;for(const o of e){const c=er(o.content);if(c!==null){r.add(c);continue}const a=dt(o.content);n.set(a,(n.get(a)??0)+1)}const s=[];for(const o of t){const c=er(o);if(c!==null){r.has(c)||s.push(o);continue}const a=dt(o),i=n.get(a)??0;i>0?n.set(a,i-1):s.push(o)}return s}const st=new Set;function Io(){st.clear()}function No(e,t={}){const r=ae(),n=t.canonical??!0;p.useEffect(()=>{e&&V.getState().loadCanvasForSession(e)},[e]),p.useEffect(()=>{if(!e||!n||st.has(e))return;const s=Jr();if(!s)return;const o=s[e];if(!o){vo(s);return}st.add(e),(async()=>{try{const c=mo(o),a=go(await r.listSessionCanvas(e),c);if(a.length===0){xr(e);return}for(const i of a)await r.openSessionCanvasDocument(e,i);xr(e),V.getState().hydrateCanvasFromSnapshot(e,await r.listSessionCanvas(e))}catch{st.delete(e)}})()},[e,n,r])}function xr(e){const t=Jr();if(!t)return;const{[e]:r,...n}=t;Xr(n)}function vo(e){const t=Date.now()-po,r=Object.entries(e).filter(([,n])=>n.accessedAt===void 0||n.accessedAt>=t);r.length!==Object.keys(e).length&&Xr(Object.fromEntries(r))}export{So as C,Eo as F,Do as R,Bs as a,io as b,is as c,ss as d,_o as e,Mr as f,Io as g,rs as h,No as i,Fr as r,Vs as u};