dorkos 0.121.0 → 0.123.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 (309) hide show
  1. package/dist/bin/cli.js +532 -373
  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-CtI8gbER.js → AboutPage-BmtoPqP9.js} +1 -1
  5. package/dist/client/assets/{ActivityErrorState-CHTXfBS7.js → ActivityErrorState-CEzdFJiR.js} +1 -1
  6. package/dist/client/assets/{ActivityPage-B8p4yYJL.js → ActivityPage-mFYgTr3e.js} +1 -1
  7. package/dist/client/assets/{ActivityRow-CSuSz-92.js → ActivityRow-Bkc0kkim.js} +1 -1
  8. package/dist/client/assets/{AdapterIcon-Qnxn0cE5.js → AdapterIcon-DVgTrgnM.js} +1 -1
  9. package/dist/client/assets/{AdapterSetupWizard-BG8H-Lld.js → AdapterSetupWizard-I03EluU5.js} +1 -1
  10. package/dist/client/assets/{AgentOptionRow-BWFQFynn.js → AgentOptionRow-DI1TzLaR.js} +1 -1
  11. package/dist/client/assets/{AgentPicker-CL93SET3.js → AgentPicker-CBYeBzjf.js} +1 -1
  12. package/dist/client/assets/{AgentRequestCard-CamX7Tvr.js → AgentRequestCard-DQ6GYoeE.js} +3 -3
  13. package/dist/client/assets/{AppearancePage-rN70_7ih.js → AppearancePage-62xIPNPn.js} +1 -1
  14. package/dist/client/assets/{ApplyToOverridesDialog-DeWaXbgm.js → ApplyToOverridesDialog-CrqkeHQb.js} +1 -1
  15. package/dist/client/assets/{AttentionSignalRow-CKcSWExi.js → AttentionSignalRow-Coe5pYX6.js} +1 -1
  16. package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-BwYaLf2P.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-D07cg75s.js} +1 -1
  17. package/dist/client/assets/{BindingDialog-DqPDLYbF.js → BindingDialog-DVyxVXZM.js} +1 -1
  18. package/dist/client/assets/{BlintzCanvas-DoAZs5bz.js → BlintzCanvas-BmfkiUQJ.js} +3 -3
  19. package/dist/client/assets/{BlintzCanvas-xZ3u3nk7.css → BlintzCanvas-DCXOV_yN.css} +1 -1
  20. package/dist/client/assets/{CanvasCsvContent-ViqRJuhW.js → CanvasCsvContent-CRTr-AI7.js} +2 -2
  21. package/dist/client/assets/CanvasFileContent-rOmY1s3T.js +2 -0
  22. package/dist/client/assets/CanvasModel3dContent-D7oRT6ey.js +2 -0
  23. package/dist/client/assets/{ChatAppsOff-D0PbHYqF.js → ChatAppsOff-BmuOTq83.js} +1 -1
  24. package/dist/client/assets/{CodeMirrorDiff-DFNSXeuV.js → CodeMirrorDiff-DidSWwYJ.js} +1 -1
  25. package/dist/client/assets/{CodeMirrorEditor-AgkgsSqN.js → CodeMirrorEditor-BUAWGbRo.js} +1 -1
  26. package/dist/client/assets/{CommitmentList-0V6QivXH.js → CommitmentList-uK4CKaz0.js} +1 -1
  27. package/dist/client/assets/{CommitmentsPage-i3XoHwBj.js → CommitmentsPage-BWITH1r2.js} +1 -1
  28. package/dist/client/assets/{ComputerResourceView-RPoBc-km.js → ComputerResourceView-adgF_EZU.js} +1 -1
  29. package/dist/client/assets/{ComputerViewer-2ugaCd0H.js → ComputerViewer-D87LhxwL.js} +1 -1
  30. package/dist/client/assets/{ConnectionAccessLists-DaPP4U96.js → ConnectionAccessLists-BFEFqcSZ.js} +1 -1
  31. package/dist/client/assets/{ConnectionsPage-BVqYvfk5.js → ConnectionsPage-Cd_cLoSY.js} +1 -1
  32. package/dist/client/assets/{ConventionPage-BoqncrFd.js → ConventionPage-BSztD-gU.js} +1 -1
  33. package/dist/client/assets/{ExtensionPageRoute-BrOEeNX3.js → ExtensionPageRoute-BSge6XRv.js} +1 -1
  34. package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-DLwix3K7.js → FloatingTanStackRouterDevtools-CqogiFob-TO2CUPG0.js} +1 -1
  35. package/dist/client/assets/HandlePage-BKiqymRF.js +1 -0
  36. package/dist/client/assets/{HeartbeatPage-DgXhbaBJ.js → HeartbeatPage-DIJzdOhj.js} +1 -1
  37. package/dist/client/assets/{KeyEntry-CRr32Ae5.js → KeyEntry-DJnzW3Mu.js} +1 -1
  38. package/dist/client/assets/{LexicalField-DeAoA6yr.js → LexicalField-BxzNvIjJ.js} +1 -1
  39. package/dist/client/assets/{ManagesPage-ZBWYLTZx.js → ManagesPage-BQj8KbYA.js} +1 -1
  40. package/dist/client/assets/{Marketplace-iL5p8Omt.js → Marketplace-CIG5_a_H.js} +4 -4
  41. package/dist/client/assets/{MarketplaceSourcesView-CsNLVOdP.js → MarketplaceSourcesView-16HKvFK-.js} +1 -1
  42. package/dist/client/assets/{McpAppFrame-B1WPswgk.js → McpAppFrame-5xlga1jD.js} +1 -1
  43. package/dist/client/assets/{McpSigninBody-CJ28yu0o.js → McpSigninBody-COIHpHq_.js} +1 -1
  44. package/dist/client/assets/{Model3dViewer-BIZWdK8g.js → Model3dViewer-CQ0sA_kr.js} +1 -1
  45. package/dist/client/assets/NamePage-D7W6VMYd.js +1 -0
  46. package/dist/client/assets/{NewDirectMessageMenu-DRx9e9kM.js → NewDirectMessageMenu-D092y0K9.js} +1 -1
  47. package/dist/client/assets/{NotificationsPage-cfqgSuVy.js → NotificationsPage-CskOPdhh.js} +1 -1
  48. package/dist/client/assets/{OpenMeshSwitch-BIIuKDku.js → OpenMeshSwitch-BHRm328L.js} +1 -1
  49. package/dist/client/assets/{OperatorIdentityForm-BKUSGrs6.js → OperatorIdentityForm-C3op6BIC.js} +1 -1
  50. package/dist/client/assets/{PermissionHistory-Ctdqhib6.js → PermissionHistory-CKebTVkq.js} +1 -1
  51. package/dist/client/assets/{PermissionsPage-CYA_zdrV.js → PermissionsPage-XuPOSYll.js} +1 -1
  52. package/dist/client/assets/{PersonalityPopover-BR4Cpr2C.js → PersonalityPopover-BrZjxakx.js} +1 -1
  53. package/dist/client/assets/PhotoPage-Ch1at4A6.js +1 -0
  54. package/dist/client/assets/{PreviewRefusedNotice-D1Tl265t.js → PreviewRefusedNotice-BANdpT9O.js} +1 -1
  55. package/dist/client/assets/{ProfileFields-T3vVbHRC.js → ProfileFields-Dp68ebW9.js} +1 -1
  56. package/dist/client/assets/{ProfilePanelContainer-CParzTPA.js → ProfilePanelContainer-BKwGdI90.js} +1 -1
  57. package/dist/client/assets/{ProfileRolePicker-BU4eiMKn.js → ProfileRolePicker-ClOdfLda.js} +1 -1
  58. package/dist/client/assets/{PromptSuggestionChips-CGNQc2Tf.js → PromptSuggestionChips-zcW4UJ_O.js} +1 -1
  59. package/dist/client/assets/{ReportsToPopover-Dj5U_Ppi.js → ReportsToPopover-BwDVGqFg.js} +1 -1
  60. package/dist/client/assets/RoomSurface-CSKIvyHH.js +44 -0
  61. package/dist/client/assets/{RoomsPage-Cvs3h6f0.js → RoomsPage-CAvrRbPk.js} +1 -1
  62. package/dist/client/assets/{RunsOnPopover-BUlYwRW4.js → RunsOnPopover-CQ4t9EZ-.js} +1 -1
  63. package/dist/client/assets/{RuntimeConnectFlow-ChrvjC84.js → RuntimeConnectFlow--fVpIf0B.js} +1 -1
  64. package/dist/client/assets/{RuntimeSetupDialog-BK9yo7YF.js → RuntimeSetupDialog-COpyPrqL.js} +1 -1
  65. package/dist/client/assets/SeenDevices-BPw3UgjX.js +19 -0
  66. package/dist/client/assets/{SessionsPage-CWUwU3US.js → SessionsPage-FDyYzuXs.js} +1 -1
  67. package/dist/client/assets/{SettingsDialog-BApzy0J8.js → SettingsDialog-Bdws5dbS.js} +4 -4
  68. package/dist/client/assets/{SkillsPage-z3XnApNX.js → SkillsPage-PLXEY0LB.js} +1 -1
  69. package/dist/client/assets/{TaskDialogWrapper-BEWUpAlk.js → TaskDialogWrapper-CTcW70s8.js} +1 -1
  70. package/dist/client/assets/{TasksEmptyState-CLwpLnIO.js → TasksEmptyState-8RZxhRh6.js} +1 -1
  71. package/dist/client/assets/{TasksPage-CyHjr9OZ.js → TasksPage-C-EtQXKb.js} +1 -1
  72. package/dist/client/assets/{TeamComputerEntry-BHHIofx3.js → TeamComputerEntry-qx_19Htj.js} +1 -1
  73. package/dist/client/assets/{ToolsPage-CckCco8x.js → ToolsPage-D5-fx1EA.js} +1 -1
  74. package/dist/client/assets/{TopologyGraph-Dox7aWP3.js → TopologyGraph-1wtG1BE9.js} +1 -1
  75. package/dist/client/assets/{TourHost-CTBewD-a.js → TourHost-C664E8OY.js} +1 -1
  76. package/dist/client/assets/{UnlinkDialog-CFRgExId.js → UnlinkDialog-Di1oBFA_.js} +1 -1
  77. package/dist/client/assets/{WidgetErrorCard-Dx5oPMlF.js → WidgetErrorCard-BfgGzyqg.js} +1 -1
  78. package/dist/client/assets/_shell-BLTSXXDw.js +80 -0
  79. package/dist/client/assets/{_shell._home-DnBkgWs4.js → _shell._home-Hz78BY6-.js} +1 -1
  80. package/dist/client/assets/{_shell._home.activity-CVCC-EEI.js → _shell._home.activity-BxvI0gkw.js} +1 -1
  81. package/dist/client/assets/{_shell._home.index-Ck6jxwIx.js → _shell._home.index-Cqq81f3P.js} +1 -1
  82. package/dist/client/assets/{_shell._home.tasks-B7QQAZnA.js → _shell._home.tasks-Cth56CwC.js} +1 -1
  83. package/dist/client/assets/{_shell._home.workspaces-DlrRd9tv.js → _shell._home.workspaces-DkoOJSWz.js} +1 -1
  84. package/dist/client/assets/{_shell.channels-CiWehoyl.js → _shell.channels-D_GQU4RB.js} +4 -4
  85. package/dist/client/assets/{_shell.connections-CGP5hZHq.js → _shell.connections-DZrlxs4G.js} +1 -1
  86. package/dist/client/assets/{_shell.feedback-requests-BxxNvw6j.js → _shell.feedback-requests-BTxHdsfb.js} +1 -1
  87. package/dist/client/assets/_shell.marketplace-CZxkAmFz.js +1 -0
  88. package/dist/client/assets/_shell.marketplace_.sources-Q0BTQIuE.js +1 -0
  89. package/dist/client/assets/_shell.session-DvGL0DoX.js +63 -0
  90. package/dist/client/assets/{_shell.team-CsXH3NkS.js → _shell.team-ZxGwa39m.js} +3 -3
  91. package/dist/client/assets/_shell.x._extensionId-B6Tm5KuT.js +1 -0
  92. package/dist/client/assets/_shell.x._extensionId_._-B6Tm5KuT.js +1 -0
  93. package/dist/client/assets/{abnfDiagram-WEYOIA3C-CMdkyiQ3.js → abnfDiagram-WEYOIA3C-CzqPVMdw.js} +1 -1
  94. package/dist/client/assets/{access-copy-CW-z1oMH.js → access-copy-Dj09Xk4b.js} +1 -1
  95. package/dist/client/assets/{arc-Bw7tftQk.js → arc-Bgy7ExYl.js} +1 -1
  96. package/dist/client/assets/{architectureDiagram-ZHVYKT53-BhpXALtX.js → architectureDiagram-ZHVYKT53-DYfb2p9r.js} +1 -1
  97. package/dist/client/assets/{banner-EomQNDOH.js → banner-dlsHTWSf.js} +1 -1
  98. package/dist/client/assets/{blockDiagram-RJAE7QA3-Bxk_BuZv.js → blockDiagram-RJAE7QA3-BkOzLL8s.js} +1 -1
  99. package/dist/client/assets/{c4Diagram-XDPPPE54-CYN0FwR8.js → c4Diagram-XDPPPE54-CsZm4qpD.js} +1 -1
  100. package/dist/client/assets/{card-ww4ebz8h.js → card-Dj6ZfRgu.js} +1 -1
  101. package/dist/client/assets/channel-CGffcDRq.js +1 -0
  102. package/dist/client/assets/{chunk-2E7WHVMD-IPDvYcPa.js → chunk-2E7WHVMD-GA96Jfps.js} +1 -1
  103. package/dist/client/assets/{chunk-2Q5K7J3B-DZ5bU5Ax.js → chunk-2Q5K7J3B-CW2i0IkT.js} +1 -1
  104. package/dist/client/assets/{chunk-4EMNKR2T-DrsWxa6Y.js → chunk-4EMNKR2T-BwFvnPZg.js} +1 -1
  105. package/dist/client/assets/{chunk-55XCU76K-CiBbKG0b.js → chunk-55XCU76K-MOezzAAB.js} +1 -1
  106. package/dist/client/assets/{chunk-5VM5RSS4-B3K3MUav.js → chunk-5VM5RSS4-woru6zOC.js} +1 -1
  107. package/dist/client/assets/{chunk-JWPE2WC7-CjV5RcIh.js → chunk-JWPE2WC7-CUrKlP2M.js} +1 -1
  108. package/dist/client/assets/{chunk-VQ5W62QI-CWoRr0H2.js → chunk-VQ5W62QI-CqZ2cdEu.js} +1 -1
  109. package/dist/client/assets/{chunk-XXDRQBXY-E0nvzXiG.js → chunk-XXDRQBXY-ByAcvWaE.js} +1 -1
  110. package/dist/client/assets/{chunk-ZCHMQSOR-DFop6Lvt.js → chunk-ZCHMQSOR-3nkba9kj.js} +2 -2
  111. package/dist/client/assets/{classDiagram-v2-4MYWR3UA-B7JJfc9z.js → classDiagram-v2-4MYWR3UA-B-zZKAmI.js} +1 -1
  112. package/dist/client/assets/{command-D4fLpJxA.js → command-BAOEURY7.js} +1 -1
  113. package/dist/client/assets/{cose-bilkent-JH36ORCC-BjNppl29.js → cose-bilkent-JH36ORCC-sCKxRv1H.js} +1 -1
  114. package/dist/client/assets/{cpu-DCe0Yyml.js → cpu-TtYQqONc.js} +1 -1
  115. package/dist/client/assets/{cynefin-EF2NZ3EQ-PmRntJwW.js → cynefin-EF2NZ3EQ-CXzvL5Cg.js} +1 -1
  116. package/dist/client/assets/{cynefinDiagram-WF24UDRP-Ctdbp_Vg.js → cynefinDiagram-WF24UDRP-C0wjhu9X.js} +1 -1
  117. package/dist/client/assets/{dagre-NK4GIZVX-5tvLY2ZW.js → dagre-NK4GIZVX-Doi2IPkY.js} +1 -1
  118. package/dist/client/assets/{diagram-CBK3MWTC-DZO-XBOO.js → diagram-CBK3MWTC-11TVuPel.js} +1 -1
  119. package/dist/client/assets/{diagram-I5XIIV2D-CWBbA1Pv.js → diagram-I5XIIV2D-CJq7fHFM.js} +1 -1
  120. package/dist/client/assets/{diagram-ODIL2UCW-hP5A1tGl.js → diagram-ODIL2UCW-2Ae6unuU.js} +1 -1
  121. package/dist/client/assets/{diagram-PFBEJUXE-EI_-RoN7.js → diagram-PFBEJUXE-BXza6_iz.js} +1 -1
  122. package/dist/client/assets/{diagram-RJA3I4VV-TrYq9A4Z.js → diagram-RJA3I4VV-Z0i3uBW9.js} +1 -1
  123. package/dist/client/assets/{diagram-TYUNFSNR-BAQq2OM5.js → diagram-TYUNFSNR-Dq_-g1oP.js} +1 -1
  124. package/dist/client/assets/{ebnfDiagram-V4P3TTPT-cKbeW9dQ.js → ebnfDiagram-V4P3TTPT-vxzIvg-W.js} +1 -1
  125. package/dist/client/assets/{elk-QONTBCTQ-wpfNPp0q.js → elk-QONTBCTQ-BBIXXtg_.js} +1 -1
  126. package/dist/client/assets/{empty-state-DXWQsHMf.js → empty-state-kISAAp0z.js} +1 -1
  127. package/dist/client/assets/{erDiagram-KYQIGQAA-Dk0OrvjE.js → erDiagram-KYQIGQAA-Bk2MeLBx.js} +1 -1
  128. package/dist/client/assets/{execution-config-CAyT2Qoo.js → execution-config-DYFe-VNC.js} +1 -1
  129. package/dist/client/assets/{file-Bf7D_47y.js → file-DEt4KgZG.js} +1 -1
  130. package/dist/client/assets/{file-exclamation-point-DZXE9_8o.js → file-exclamation-point-QqXJhXD9.js} +1 -1
  131. package/dist/client/assets/{file-text-C1ougnBY.js → file-text-CRw31ZWd.js} +1 -1
  132. package/dist/client/assets/{find-latest-widget-fence-B1_-pC-Z.js → find-latest-widget-fence-B3aaiBNI.js} +1 -1
  133. package/dist/client/assets/{flowDiagram-IUGLLWBU-CdlOoRZV.js → flowDiagram-IUGLLWBU-B53m4r8u.js} +1 -1
  134. package/dist/client/assets/{form-D7kF-U0d.js → form-Bjhk9zOn.js} +1 -1
  135. package/dist/client/assets/{format-cron-ZtliseYi.js → format-cron-9tmNIcgl.js} +1 -1
  136. package/dist/client/assets/{ganttDiagram-R7GPNTJY-x0MJLv5d.js → ganttDiagram-R7GPNTJY-CS6TN3R1.js} +1 -1
  137. package/dist/client/assets/{git-branch-B2k77X3Q.js → git-branch-DWerghmw.js} +1 -1
  138. package/dist/client/assets/{gitGraphDiagram-PDYL7XHY-CruCvk7w.js → gitGraphDiagram-PDYL7XHY-D096ZtqE.js} +1 -1
  139. package/dist/client/assets/{graph-5PBe05F8.js → graph-DQpTuPmX.js} +1 -1
  140. package/dist/client/assets/{heart-CmqGJPDc.js → heart-CRkjVW7-.js} +1 -1
  141. package/dist/client/assets/{highlighted-body-KPVGNVTW-Bqu2cQDj.js → highlighted-body-KPVGNVTW-DoVCXOMU.js} +1 -1
  142. package/dist/client/assets/{image-lightbox-BBbz-ThL.js → image-lightbox-BXzbN27o.js} +1 -1
  143. package/dist/client/assets/{image-off-BCtWIY4q.js → image-off-VyMBVwgK.js} +1 -1
  144. package/dist/client/assets/{index-8IAr9b71.js → index-1qv8ldHx.js} +1 -1
  145. package/dist/client/assets/{index-ClBIPuLA.js → index-2EaVZrJe.js} +1 -1
  146. package/dist/client/assets/{index-DcZPWi_I.js → index-8-iQ6PnT.js} +252 -247
  147. package/dist/client/assets/{index-CJ5v2_Cz.js → index-B2rBVMNl.js} +1 -1
  148. package/dist/client/assets/{index-BpmmNapD.js → index-BBcAekWE.js} +1 -1
  149. package/dist/client/assets/index-BFitbVs4.js +1 -0
  150. package/dist/client/assets/{index-xmk9Ohv9.js → index-BLkXoquZ.js} +1 -1
  151. package/dist/client/assets/{index-xaMF1mrN.js → index-BcFMs7lK.js} +1 -1
  152. package/dist/client/assets/{index-EdJm7ZN-.js → index-BiFJIg4n.js} +1 -1
  153. package/dist/client/assets/{index-BuGQxHrf.js → index-BpjEclkM.js} +1 -1
  154. package/dist/client/assets/{index-CtycM8wY.js → index-C24HfJir.js} +1 -1
  155. package/dist/client/assets/{index-DAdo_yIq.js → index-C3sW6rkN.js} +1 -1
  156. package/dist/client/assets/{index-JxeBJIuE.js → index-C6Fo2htT.js} +1 -1
  157. package/dist/client/assets/{index-B5rRtvWx.js → index-C6udJCgz.js} +1 -1
  158. package/dist/client/assets/{index-ChwNEkM8.js → index-CDuYKaGY.js} +1 -1
  159. package/dist/client/assets/{index-Cml5572f.js → index-CEVwhauU.js} +1 -1
  160. package/dist/client/assets/index-CI84yP-g.js +1 -0
  161. package/dist/client/assets/{index-BzPgsdPn.js → index-COMRALJO.js} +1 -1
  162. package/dist/client/assets/index-CiVeycsn.js +17 -0
  163. package/dist/client/assets/{index-BXZlDqvy.js → index-Cs3WB8yn.js} +1 -1
  164. package/dist/client/assets/{index-BrQGZ6iF.js → index-Csr_C1sk.js} +1 -1
  165. package/dist/client/assets/{index-CMNc_OrC.js → index-Ctqe81qr.js} +1 -1
  166. package/dist/client/assets/{index-Dmn03xST.js → index-CvhR1oZB.js} +1 -1
  167. package/dist/client/assets/{index-B6dEbNhI.js → index-CyGRWyhV.js} +1 -1
  168. package/dist/client/assets/{index-mFOJXyAE.js → index-Czm6C7FZ.js} +3 -3
  169. package/dist/client/assets/{index-1ShgR_xt.js → index-D5zUdnZM.js} +1 -1
  170. package/dist/client/assets/{index-Cv0GsC4n.js → index-DBo2XfNv.js} +1 -1
  171. package/dist/client/assets/{index-DIxzqCwG.js → index-DKWpwwxo.js} +1 -1
  172. package/dist/client/assets/{index-BXMxoWrk.js → index-DN2sTT2U.js} +1 -1
  173. package/dist/client/assets/index-DNzk9m1D.js +23 -0
  174. package/dist/client/assets/{index-CrflCTqO.css → index-DUZrTFYD.css} +1 -1
  175. package/dist/client/assets/{index-t4Ud6YTX.js → index-DX_2Mxwv.js} +1 -1
  176. package/dist/client/assets/{index-C11Ssk2u.js → index-Dgrk2udV.js} +2 -2
  177. package/dist/client/assets/{index-BCk4wW-T.js → index-DgyhdQnI.js} +1 -1
  178. package/dist/client/assets/{index-CQ0VLZf-.js → index-DmFNztTX.js} +1 -1
  179. package/dist/client/assets/{index-rWZWP3Wh.js → index-TnoaFCrj.js} +1 -1
  180. package/dist/client/assets/{index-DbDI5BAA.js → index-_emDKzsu.js} +1 -1
  181. package/dist/client/assets/{index-BIIH5CXj.js → index-b9p_y2Ql.js} +1 -1
  182. package/dist/client/assets/{index-yI1r4pSP.js → index-gIQ7FrL9.js} +1 -1
  183. package/dist/client/assets/{index-DsJWzmWw.js → index-igLqtuoO.js} +1 -1
  184. package/dist/client/assets/{index-Do6eeFps.js → index-n3-zWcH-.js} +2 -2
  185. package/dist/client/assets/{index-8TfzCkKR.js → index-rCvQat0D.js} +1 -1
  186. package/dist/client/assets/{index-BfRW2WTx.js → index-setKr4xl.js} +1 -1
  187. package/dist/client/assets/{index-DrA03bMq.js → index-t3eRSGcT.js} +1 -1
  188. package/dist/client/assets/{index.esm-CZZtbPRj.js → index.esm-bLeQzVWT.js} +1 -1
  189. package/dist/client/assets/{infoDiagram-MVDRKAX5-Bj9DD77n.js → infoDiagram-MVDRKAX5-nN_N76Fn.js} +1 -1
  190. package/dist/client/assets/{inline-code-g9PVHZI2.js → inline-code-D9bLKHjY.js} +1 -1
  191. package/dist/client/assets/{ishikawaDiagram-HPEHV2GE-DckI6dhS.js → ishikawaDiagram-HPEHV2GE-CiLFbWXd.js} +1 -1
  192. package/dist/client/assets/{journeyDiagram-BOSHW7O7-Ce1GAVa0.js → journeyDiagram-BOSHW7O7-Dn3yOv96.js} +1 -1
  193. package/dist/client/assets/{kanban-definition-FNSA4HC5-Kq5O9rZa.js → kanban-definition-FNSA4HC5-JxiBdBQC.js} +1 -1
  194. package/dist/client/assets/{layers-D3lEdRF0.js → layers-DTnLoRvE.js} +1 -1
  195. package/dist/client/assets/{lightbulb-BFE-KkFU.js → lightbulb-CRKLr5q3.js} +1 -1
  196. package/dist/client/assets/{link-2-Dvb6g-2Q.js → link-2-hgHg-lyw.js} +1 -1
  197. package/dist/client/assets/{list-runtime-types-8YGEK3Al.js → list-runtime-types-Bb33QiMC.js} +1 -1
  198. package/dist/client/assets/{markdown-content-Cqq_QMXA.js → markdown-content-D0FpU2cz.js} +1 -1
  199. package/dist/client/assets/{mention-pill-Bnzt4u2l.js → mention-pill-uuaUvwSW.js} +1 -1
  200. package/dist/client/assets/{mermaid.core-dpp59v7L.js → mermaid.core-x3Hh6iut.js} +4 -4
  201. package/dist/client/assets/{message-square-off-BX2XnEDx.js → message-square-off-B8N6YF9R.js} +1 -1
  202. package/dist/client/assets/{mindmap-definition-6OY57UG3-CFdfJO6g.js → mindmap-definition-6OY57UG3-D0SEv5Re.js} +1 -1
  203. package/dist/client/assets/{more-details-B4lBMpKi.js → more-details-CadxnGyH.js} +1 -1
  204. package/dist/client/assets/{owner-notice-ByjrIRmX.js → owner-notice-CJHyha58.js} +1 -1
  205. package/dist/client/assets/{package-6Rbxg35g.js → package-B8G7jQm-.js} +1 -1
  206. package/dist/client/assets/{page-container-DoZzad36.js → page-container-Bb-_N7lw.js} +1 -1
  207. package/dist/client/assets/{paperclip-B-jDXtxw.js → paperclip-BDeYGKqh.js} +1 -1
  208. package/dist/client/assets/{path-input-DpqUD8hN.js → path-input-BIfexEKz.js} +1 -1
  209. package/dist/client/assets/{pegDiagram-ECIUJNBX-eVnSw2Ma.js → pegDiagram-ECIUJNBX-7ivMd0-b.js} +1 -1
  210. package/dist/client/assets/{pieDiagram-GNMPY74T-BYG7LY5Q.js → pieDiagram-GNMPY74T-DGDkbFvu.js} +1 -1
  211. package/dist/client/assets/{plug-DnaAhcy4.js → plug-wP1d6OUX.js} +1 -1
  212. package/dist/client/assets/{primer-trigger-Da5ECjY8.js → primer-trigger-CEli_z4n.js} +1 -1
  213. package/dist/client/assets/{profile-errors-GbTNc2-M.js → profile-errors-C1qSJkiG.js} +1 -1
  214. package/dist/client/assets/{progress-DlIRjXIA.js → progress-DmUieXLn.js} +1 -1
  215. package/dist/client/assets/{quadrantDiagram-D57K4MC3-CRgNKuHR.js → quadrantDiagram-D57K4MC3-AFQRVSsK.js} +1 -1
  216. package/dist/client/assets/{query-error-state-DB-Jby7_.js → query-error-state--8AnWSSn.js} +1 -1
  217. package/dist/client/assets/query-keys-DeYqUDia.js +1 -0
  218. package/dist/client/assets/{radio-CaaE60ws.js → radio-mkA-Sqe0.js} +1 -1
  219. package/dist/client/assets/{railroadDiagram-Y72NRBL7-DGL-Hqz9.js → railroadDiagram-Y72NRBL7-3QBa2d3j.js} +1 -1
  220. package/dist/client/assets/registry-Bnd-HFt3.js +1 -0
  221. package/dist/client/assets/{relay-trace-schemas-CcCqyOrA.js → relay-trace-schemas-fScydQ3A.js} +1 -1
  222. package/dist/client/assets/{requirementDiagram-EQYSW5RA-DKsFpU3l.js → requirementDiagram-EQYSW5RA-BVBqcASy.js} +1 -1
  223. package/dist/client/assets/{room-files-source-CbbVpvSW.js → room-files-source-BhkPUTiP.js} +1 -1
  224. package/dist/client/assets/{rotate-ccw-clock-CeY00nlZ.js → rotate-ccw-clock-DiuTseKz.js} +1 -1
  225. package/dist/client/assets/{rotate-cw-Djl5J_x9.js → rotate-cw-DvoxWwSx.js} +1 -1
  226. package/dist/client/assets/{sankeyDiagram-SY24JHO5-BFRkDxic.js → sankeyDiagram-SY24JHO5-DFjfOD38.js} +1 -1
  227. package/dist/client/assets/{scroll-area-BOqrziJf.js → scroll-area-DYyyRqW_.js} +1 -1
  228. package/dist/client/assets/{search-x-B_mHjnlo.js → search-x-CA-FzEqZ.js} +1 -1
  229. package/dist/client/assets/{sequenceDiagram-BLEHNHQU-fHea3KOI.js → sequenceDiagram-BLEHNHQU-Cr9LzoSF.js} +1 -1
  230. package/dist/client/assets/{shield-check-Csnr5rFy.js → shield-check-CpUB_Ju1.js} +1 -1
  231. package/dist/client/assets/{shield-x-Dhl4YvvW.js → shield-x-B0W_7qwR.js} +1 -1
  232. package/dist/client/assets/{signed-in-BMqAss8c.js → signed-in-X2utDqQS.js} +1 -1
  233. package/dist/client/assets/{sizeCapture-INFHLROL-CztsD3qF.js → sizeCapture-INFHLROL-Do_jfNyT.js} +1 -1
  234. package/dist/client/assets/{soul-file-DOfamgB5.js → soul-file-DgfhKQIK.js} +1 -1
  235. package/dist/client/assets/{stateDiagram-v2-A6IESKWZ-CWyOqZ9S.js → stateDiagram-v2-A6IESKWZ-BCi9yk_0.js} +1 -1
  236. package/dist/client/assets/{swimlanes-B3ENRKFQ-0EfOxSAX.js → swimlanes-B3ENRKFQ-3SSAw2av.js} +1 -1
  237. package/dist/client/assets/swimlanesDiagram-AYQRV4AK-jpZCGfva.js +8 -0
  238. package/dist/client/assets/{table-L7FvN6Or.js → table-DvU_oS4E.js} +1 -1
  239. package/dist/client/assets/{terminal-C9M5a_PS.js → terminal-Dw2QZ7Dh.js} +1 -1
  240. package/dist/client/assets/{timeline-definition-JXYKGLGB-sFyYvZ20.js → timeline-definition-JXYKGLGB-DTLPXTMA.js} +1 -1
  241. package/dist/client/assets/{trust-posture-dl6qwDtI.js → trust-posture-2MR0ap9o.js} +1 -1
  242. package/dist/client/assets/{unplug-CFUEVRbc.js → unplug-CAVOLB2R.js} +1 -1
  243. package/dist/client/assets/{unverified-catalog-notice-CdYU3WEJ.js → unverified-catalog-notice-u4ikVg8J.js} +1 -1
  244. package/dist/client/assets/{use-adapter-catalog-YTofdqDJ.js → use-adapter-catalog-BQKfRxXC.js} +1 -1
  245. package/dist/client/assets/{use-bindings-CpyT6kNu.js → use-bindings-BV6HA0MD.js} +1 -1
  246. package/dist/client/assets/{use-composer-prefs-CK_EK_QJ.js → use-composer-prefs-DCSzOnEO.js} +1 -1
  247. package/dist/client/assets/{use-connector-management-DwoK8kon.js → use-connector-management-fr1tx-GZ.js} +1 -1
  248. package/dist/client/assets/{use-deep-link-scroll-CgRjt48R.js → use-deep-link-scroll-v02TbidQ.js} +1 -1
  249. package/dist/client/assets/{use-delete-binding-CfsnMXrL.js → use-delete-binding-CnziYpXo.js} +1 -1
  250. package/dist/client/assets/{use-dev-links-B3I-ZK34.js → use-dev-links-k4YWFO1v.js} +1 -1
  251. package/dist/client/assets/{use-external-adapter-catalog-aGlZNRrp.js → use-external-adapter-catalog-DoGUfa2F.js} +1 -1
  252. package/dist/client/assets/{use-full-activity-feed-B61Olhdw.js → use-full-activity-feed-CQNxgxnw.js} +1 -1
  253. package/dist/client/assets/use-is-below-desktop-DR8FEbRW.js +1 -0
  254. package/dist/client/assets/use-is-hub-BmpgFnFp.js +1 -0
  255. package/dist/client/assets/{use-jump-back-in-C39GOTHa.js → use-jump-back-in-BuO6A0P7.js} +1 -1
  256. package/dist/client/assets/{use-local-browser-DCwzB4D8.js → use-local-browser-BNzN5O1P.js} +1 -1
  257. package/dist/client/assets/{use-mesh-topology-LRYxFuZp.js → use-mesh-topology-CpIDE8lD.js} +1 -1
  258. package/dist/client/assets/{use-mounted-ref-CZaegwTr.js → use-mounted-ref-BAO3qunF.js} +1 -1
  259. package/dist/client/assets/{use-notification-prefs-FtOiUS5H.js → use-notification-prefs-CtqeH5Pk.js} +1 -1
  260. package/dist/client/assets/{use-panel-tab-placements-Dv2OPvKh.js → use-panel-tab-placements-DFobGBRm.js} +1 -1
  261. package/dist/client/assets/use-pending-read-Do0_vZ2I.js +1 -0
  262. package/dist/client/assets/{use-personality-commit-BB5aeh6p.js → use-personality-commit-BvqCwzAC.js} +1 -1
  263. package/dist/client/assets/{use-promo-activation-BW0u7n7m.js → use-promo-activation-Dz5cYm-X.js} +1 -1
  264. package/dist/client/assets/{use-promo-dismissals-BOXzW4kD.js → use-promo-dismissals-CuOsnqnZ.js} +1 -1
  265. package/dist/client/assets/{use-pulse-freshness-ClW-MLMo.js → use-pulse-freshness-qcTH6PM7.js} +1 -1
  266. package/dist/client/assets/{use-relay-config-hItHtkSr.js → use-relay-config-1mAMDNbc.js} +1 -1
  267. package/dist/client/assets/{use-room-follow-claim-wotzxUWc.js → use-room-follow-claim-CCGhsyH3.js} +1 -1
  268. package/dist/client/assets/{use-roving-tab-list-DkbO6xSs.js → use-roving-tab-list-Bsg2dfUx.js} +1 -1
  269. package/dist/client/assets/use-session-canvas-awPngMKg.js +25 -0
  270. package/dist/client/assets/{use-session-diagnostics-DmxvD-wy.js → use-session-diagnostics-D5g8Mc52.js} +2 -2
  271. package/dist/client/assets/{use-unclaimed-chats-DKpexDm3.js → use-unclaimed-chats-Db_wuzt0.js} +1 -1
  272. package/dist/client/assets/use-update-config-DwtH_H9Z.js +1 -0
  273. package/dist/client/assets/{useMutationState-Btf2Hp1a.js → useMutationState-BvwBDXKc.js} +1 -1
  274. package/dist/client/assets/{usecaseDiagram-WPOLBNNX-DRngjDUq.js → usecaseDiagram-WPOLBNNX-1zKygEKR.js} +1 -1
  275. package/dist/client/assets/{vennDiagram-Q3Y3IDCW-iK-dlS1-.js → vennDiagram-Q3Y3IDCW-BR2EbgGY.js} +1 -1
  276. package/dist/client/assets/{wardleyDiagram-IVAIDKWA-sOS67Cks.js → wardleyDiagram-IVAIDKWA-D0OwouJc.js} +1 -1
  277. package/dist/client/assets/{xychartDiagram-4URNHDU4-EgnLiIao.js → xychartDiagram-4URNHDU4-BM-7_FQQ.js} +1 -1
  278. package/dist/client/index.html +2 -2
  279. package/dist/drizzle/20261018123612_session_route.sql +1 -0
  280. package/dist/drizzle/meta/20261018123612_snapshot.json +14027 -0
  281. package/dist/drizzle/meta/_journal.json +7 -0
  282. package/dist/server/index.js +31594 -28878
  283. package/dist/server/index.js.map +2 -2
  284. package/package.json +6 -6
  285. package/dist/client/assets/CanvasFileContent-ClcHZ_l-.js +0 -2
  286. package/dist/client/assets/CanvasModel3dContent-Cm3msNdQ.js +0 -2
  287. package/dist/client/assets/HandlePage-B_5GLHsp.js +0 -1
  288. package/dist/client/assets/NamePage-0nr288eM.js +0 -1
  289. package/dist/client/assets/PhotoPage-C3Ir3wlA.js +0 -1
  290. package/dist/client/assets/PresetPicker-zGvDOqTf.js +0 -19
  291. package/dist/client/assets/RoomSurface-BIyjtxKD.js +0 -44
  292. package/dist/client/assets/_shell-BHUZq_8C.js +0 -80
  293. package/dist/client/assets/_shell.marketplace-BoAmyvPt.js +0 -1
  294. package/dist/client/assets/_shell.marketplace_.sources-BpqWjkGL.js +0 -1
  295. package/dist/client/assets/_shell.session-KyPj3OxK.js +0 -61
  296. package/dist/client/assets/_shell.x._extensionId-CfiAgtoq.js +0 -1
  297. package/dist/client/assets/_shell.x._extensionId_._-CfiAgtoq.js +0 -1
  298. package/dist/client/assets/channel-DZpRF3QJ.js +0 -1
  299. package/dist/client/assets/index-Cl8trmnL.js +0 -1
  300. package/dist/client/assets/index-Cp3yShS8.js +0 -23
  301. package/dist/client/assets/index-DKDK-3KH.js +0 -17
  302. package/dist/client/assets/index-DPNBHwcQ.js +0 -1
  303. package/dist/client/assets/registry-DS1Ghdft.js +0 -1
  304. package/dist/client/assets/swimlanesDiagram-AYQRV4AK-C7fkUKrq.js +0 -8
  305. package/dist/client/assets/use-is-below-desktop-Qwyg-mFb.js +0 -1
  306. package/dist/client/assets/use-is-hub-CSz6NDaP.js +0 -1
  307. package/dist/client/assets/use-pending-read-DBOl1ee_.js +0 -1
  308. package/dist/client/assets/use-session-canvas-C_fuAgW_.js +0 -24
  309. package/dist/client/assets/use-update-config-CSYwg557.js +0 -1
@@ -1 +1 @@
1
- import{a1 as b,a3 as R,a4 as j,bk as x,a7 as P,ed as C,r as d,j as e,cw as E,cx as k,cz as M,cA as T,cB as K,dw as L,d$ as I,I as B,aE as N,B as D,by as F,bz as O,ee as z,f as Q,bA as _,bC as q,ef as H}from"./index-DcZPWi_I.js";function w(t){return Promise.all([t.invalidateQueries({queryKey:x.lists()}),t.invalidateQueries({queryKey:x.details()}),t.invalidateQueries({queryKey:x.threads()})]).then(()=>{})}function A(t){return(t==null?void 0:t.code)==="SLUG_TAKEN"}function Y({isInlineErrorVisible:t}){const n=b(),r=R();return j({mutationFn:({title:a,agentPaths:l})=>n.createRoom({kind:"channel",title:a,members:[],agentPaths:l}),onSuccess:()=>w(r),meta:{suppressErrorToast:!0},onError:a=>{A(a)&&t()||P.error("Couldn’t create that channel.",{description:a.message})}})}function W(){const t=b(),n=R();return j({mutationFn:({agentPaths:r,title:a})=>t.createRoom({kind:"dm",title:a,members:[],agentPaths:r}),onSettled:()=>w(n),meta:{errorLabel:"Couldn’t start that DM"}})}const y=200;function X({open:t,onOpenChange:n,onCreated:r}){const a=C(),[l,m]=d.useState(""),h=d.useRef(null),c=d.useRef(null),u=d.useRef(!0);d.useEffect(()=>(u.current=!0,()=>{u.current=!1}),[]);const o=Y({isInlineErrorVisible:()=>u.current}),g=A(o.error)?o.error.message:null,f=l.trim(),p=f.length>0&&f.length<=y,v=s=>{!p||o.isPending||o.mutate({title:f,agentPaths:s.map(i=>i.agentPath)},{onSuccess:i=>{n(!1),r(i)}})},S=s=>{var i;s.key==="Enter"&&(s.preventDefault(),p&&((i=c.current)==null||i.focus()))};return e.jsx(E,{open:t,onOpenChange:n,children:e.jsxs(k,{className:"sm:max-w-md",onOpenAutoFocus:s=>{var i;s.preventDefault(),(i=h.current)==null||i.focus()},children:[e.jsxs(M,{children:[e.jsx(T,{children:"New channel"}),e.jsx(K,{children:"Name it, then pick who’s in it."})]}),e.jsxs(L,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(I,{htmlFor:"channel-name",children:"Channel name"}),e.jsx(B,{ref:h,id:"channel-name",value:l,maxLength:y,placeholder:"Backend",autoComplete:"off",onChange:s=>{m(s.target.value),o.error&&o.reset()},onKeyDown:S,"aria-invalid":g?!0:void 0,"aria-describedby":g?"channel-name-error":void 0}),g&&e.jsx("p",{id:"channel-name-error",role:"alert",className:"text-destructive text-xs",children:g})]}),e.jsxs("section",{"aria-label":"Agents in this channel",className:"space-y-2 border-t pt-4",children:[e.jsx("h3",{className:"text-sm font-medium",children:"Who’s in it"}),e.jsx("p",{className:"text-muted-foreground text-xs",children:"Agents read everything here and reply when @mentioned."}),e.jsx(N,{roster:a,onSubmit:v,submitLabel:s=>s.length===0?"Create channel":s.length===1?"Create channel with 1 agent":`Create channel with ${s.length} agents`,emptyRosterMessage:"You don’t have any agents yet. You can add them to the channel later.",allChosenMessage:"That’s every agent you have.",isSubmitting:o.isPending,submitDisabled:!p,inputRef:c})]}),e.jsx("div",{className:"flex justify-center border-t pt-3",children:e.jsx(D,{type:"button",variant:"ghost",size:"sm",disabled:!p||o.isPending,onClick:()=>v([]),children:"Create it without agents"})})]})]})})}const $="One agent opens a chat. Two or more start a group message.";function G(t){return t.length===1}function V(t){const n=t[0];return n!==void 0&&G(t)?`Open chat with ${n.displayName}`:"Start group message"}function J({onStart:t,open:n,onOpenChange:r,hideTrigger:a=!1}){const l=C(),m=d.useRef(null),h=()=>{r(!1),H.getState().open()};return e.jsxs(F,{open:n,onOpenChange:r,modal:!0,fullHeight:!0,children:[e.jsx(O,{asChild:!0,children:e.jsx(z,{...a?{"aria-hidden":!0,tabIndex:-1,className:"sr-only"}:{"aria-label":"New message"},children:e.jsx(Q,{})})}),e.jsxs(_,{side:"right",align:"start",className:"flex w-64 flex-col p-2","aria-label":"New message",onOpenAutoFocus:c=>{var u;c.preventDefault(),(u=m.current)==null||u.focus()},children:[e.jsx(q,{children:"New message"}),e.jsx(N,{inputRef:m,roster:l,onSubmit:c=>{r(!1),t(c)},submitLabel:V,emptyRosterMessage:"You don’t have any agents yet.",emptyRosterAction:e.jsx(D,{type:"button",size:"sm",variant:"outline",onClick:h,children:"Create agent"}),allChosenMessage:"Everyone is already here."}),e.jsx("p",{className:"text-muted-foreground mt-2 shrink-0 px-2 text-xs",children:$})]})]})}export{X as C,J as N,$ as O,G as a,V as o,W as u};
1
+ import{a1 as b,a3 as R,a4 as j,bk as x,a7 as P,ed as C,r as d,j as e,cw as E,cx as k,cz as M,cA as T,cB as K,dw as L,d$ as I,I as B,aE as N,B as D,by as F,bz as O,ee as z,f as Q,bA as _,bC as q,ef as H}from"./index-8-iQ6PnT.js";function w(t){return Promise.all([t.invalidateQueries({queryKey:x.lists()}),t.invalidateQueries({queryKey:x.details()}),t.invalidateQueries({queryKey:x.threads()})]).then(()=>{})}function A(t){return(t==null?void 0:t.code)==="SLUG_TAKEN"}function Y({isInlineErrorVisible:t}){const n=b(),r=R();return j({mutationFn:({title:a,agentPaths:l})=>n.createRoom({kind:"channel",title:a,members:[],agentPaths:l}),onSuccess:()=>w(r),meta:{suppressErrorToast:!0},onError:a=>{A(a)&&t()||P.error("Couldn’t create that channel.",{description:a.message})}})}function W(){const t=b(),n=R();return j({mutationFn:({agentPaths:r,title:a})=>t.createRoom({kind:"dm",title:a,members:[],agentPaths:r}),onSettled:()=>w(n),meta:{errorLabel:"Couldn’t start that DM"}})}const y=200;function X({open:t,onOpenChange:n,onCreated:r}){const a=C(),[l,m]=d.useState(""),h=d.useRef(null),c=d.useRef(null),u=d.useRef(!0);d.useEffect(()=>(u.current=!0,()=>{u.current=!1}),[]);const o=Y({isInlineErrorVisible:()=>u.current}),g=A(o.error)?o.error.message:null,f=l.trim(),p=f.length>0&&f.length<=y,v=s=>{!p||o.isPending||o.mutate({title:f,agentPaths:s.map(i=>i.agentPath)},{onSuccess:i=>{n(!1),r(i)}})},S=s=>{var i;s.key==="Enter"&&(s.preventDefault(),p&&((i=c.current)==null||i.focus()))};return e.jsx(E,{open:t,onOpenChange:n,children:e.jsxs(k,{className:"sm:max-w-md",onOpenAutoFocus:s=>{var i;s.preventDefault(),(i=h.current)==null||i.focus()},children:[e.jsxs(M,{children:[e.jsx(T,{children:"New channel"}),e.jsx(K,{children:"Name it, then pick who’s in it."})]}),e.jsxs(L,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(I,{htmlFor:"channel-name",children:"Channel name"}),e.jsx(B,{ref:h,id:"channel-name",value:l,maxLength:y,placeholder:"Backend",autoComplete:"off",onChange:s=>{m(s.target.value),o.error&&o.reset()},onKeyDown:S,"aria-invalid":g?!0:void 0,"aria-describedby":g?"channel-name-error":void 0}),g&&e.jsx("p",{id:"channel-name-error",role:"alert",className:"text-destructive text-xs",children:g})]}),e.jsxs("section",{"aria-label":"Agents in this channel",className:"space-y-2 border-t pt-4",children:[e.jsx("h3",{className:"text-sm font-medium",children:"Who’s in it"}),e.jsx("p",{className:"text-muted-foreground text-xs",children:"Agents read everything here and reply when @mentioned."}),e.jsx(N,{roster:a,onSubmit:v,submitLabel:s=>s.length===0?"Create channel":s.length===1?"Create channel with 1 agent":`Create channel with ${s.length} agents`,emptyRosterMessage:"You don’t have any agents yet. You can add them to the channel later.",allChosenMessage:"That’s every agent you have.",isSubmitting:o.isPending,submitDisabled:!p,inputRef:c})]}),e.jsx("div",{className:"flex justify-center border-t pt-3",children:e.jsx(D,{type:"button",variant:"ghost",size:"sm",disabled:!p||o.isPending,onClick:()=>v([]),children:"Create it without agents"})})]})]})})}const $="One agent opens a chat. Two or more start a group message.";function G(t){return t.length===1}function V(t){const n=t[0];return n!==void 0&&G(t)?`Open chat with ${n.displayName}`:"Start group message"}function J({onStart:t,open:n,onOpenChange:r,hideTrigger:a=!1}){const l=C(),m=d.useRef(null),h=()=>{r(!1),H.getState().open()};return e.jsxs(F,{open:n,onOpenChange:r,modal:!0,fullHeight:!0,children:[e.jsx(O,{asChild:!0,children:e.jsx(z,{...a?{"aria-hidden":!0,tabIndex:-1,className:"sr-only"}:{"aria-label":"New message"},children:e.jsx(Q,{})})}),e.jsxs(_,{side:"right",align:"start",className:"flex w-64 flex-col p-2","aria-label":"New message",onOpenAutoFocus:c=>{var u;c.preventDefault(),(u=m.current)==null||u.focus()},children:[e.jsx(q,{children:"New message"}),e.jsx(N,{inputRef:m,roster:l,onSubmit:c=>{r(!1),t(c)},submitLabel:V,emptyRosterMessage:"You don’t have any agents yet.",emptyRosterAction:e.jsx(D,{type:"button",size:"sm",variant:"outline",onClick:h,children:"Create agent"}),allChosenMessage:"Everyone is already here."}),e.jsx("p",{className:"text-muted-foreground mt-2 shrink-0 px-2 text-xs",children:$})]})]})}export{X as C,J as N,$ as O,G as a,V as o,W as u};
@@ -1 +1 @@
1
- import{j as t,w as s}from"./index-DcZPWi_I.js";function o({member:e}){var n;const i=((n=e.agent)==null?void 0:n.manifestId)??null;return i===null?t.jsx("div",{className:"min-h-0 flex-1 px-4 py-3","data-slot":"profile-notifications",children:t.jsx("p",{className:"text-muted-foreground text-xs",children:"Notifications are set per agent."})}):t.jsx("div",{className:"min-h-0 flex-1 px-2 py-2","data-slot":"profile-notifications",children:t.jsx(s,{lens:{agentId:i},emptyLabel:`${e.displayName} has not told you anything yet.`})})}export{o as NotificationsPage};
1
+ import{j as t,w as s}from"./index-8-iQ6PnT.js";function o({member:e}){var n;const i=((n=e.agent)==null?void 0:n.manifestId)??null;return i===null?t.jsx("div",{className:"min-h-0 flex-1 px-4 py-3","data-slot":"profile-notifications",children:t.jsx("p",{className:"text-muted-foreground text-xs",children:"Notifications are set per agent."})}):t.jsx("div",{className:"min-h-0 flex-1 px-2 py-2","data-slot":"profile-notifications",children:t.jsx(s,{lens:{agentId:i},emptyLabel:`${e.displayName} has not told you anything yet.`})})}export{o as NotificationsPage};
@@ -1,4 +1,4 @@
1
- import{eh as A,r as f,ei as K,ej as T,a1 as p,a2 as _,a3 as m,a4 as v,ek as M,j as d,el as S,ct as j,G as R}from"./index-DcZPWi_I.js";import{u as w}from"./use-mesh-topology-LRYxFuZp.js";const O={activeWithinMs:3600*1e3,inactiveAfterMs:10080*60*1e3};function P(e){if(e.liveKinds.includes("pendingApproval")||e.liveKinds.includes("error")||e.hasBrokenExecutionConfig===!0)return"needs-attention";if(e.liveKinds.includes("streaming"))return"active";if(e.lastActivityAt===null)return"fresh";if(e.now-e.lastActivityAt<=O.activeWithinMs)return"active";const s=Math.max(e.lastActivityAt,e.lastInteractionAt??e.lastActivityAt);return e.now-s>O.inactiveAfterMs?"inactive":"idle"}function x(e,t,s){var a;const n=new Map;for(const[i,o]of Object.entries(e)){if(!s.has(o))continue;const r=T((a=t[i])==null?void 0:a.lifecycle);if(!r)continue;const c=n.get(o);c?c.push(r):n.set(o,[r])}return n}const q=Object.freeze({});function B(e,t=[],s=q){const n=e.join(`
1
+ import{eh as A,r as f,ei as K,ej as T,a1 as p,a2 as _,a3 as m,a4 as v,ek as M,j as d,el as S,ct as j,G as R}from"./index-8-iQ6PnT.js";import{u as w}from"./use-mesh-topology-CpIDE8lD.js";const O={activeWithinMs:3600*1e3,inactiveAfterMs:10080*60*1e3};function P(e){if(e.liveKinds.includes("pendingApproval")||e.liveKinds.includes("error")||e.hasBrokenExecutionConfig===!0)return"needs-attention";if(e.liveKinds.includes("streaming"))return"active";if(e.lastActivityAt===null)return"fresh";if(e.now-e.lastActivityAt<=O.activeWithinMs)return"active";const s=Math.max(e.lastActivityAt,e.lastInteractionAt??e.lastActivityAt);return e.now-s>O.inactiveAfterMs?"inactive":"idle"}function x(e,t,s){var a;const n=new Map;for(const[i,o]of Object.entries(e)){if(!s.has(o))continue;const r=T((a=t[i])==null?void 0:a.lifecycle);if(!r)continue;const c=n.get(o);c?c.push(r):n.set(o,[r])}return n}const q=Object.freeze({});function B(e,t=[],s=q){const n=e.join(`
2
2
  `),a=t.join(`
3
3
  `),i=A(f.useCallback(u=>u.statusCwds,[])),o=A(f.useCallback(u=>u.statuses,[])),{data:r}=K(),c=r==null?void 0:r.agentActivity;return f.useMemo(()=>{const u=n.length===0?[]:n.split(`
4
4
  `),N=new Set(a.length===0?[]:a.split(`
@@ -1 +1 @@
1
- import{bh as j,fj as F,fk as H,aW as x,r as p,c0 as P,fl as w,fm as B,a1 as D,a2 as G,bR as M,bM as K,fn as Y,z as q,bi as z,j as i,d$ as N,I as R,B as A}from"./index-DcZPWi_I.js";import{d as W,c as Q,n as U,h as V}from"./profile-errors-GbTNc2-M.js";import{u as $}from"./use-mounted-ref-CZaegwTr.js";import{u as L,F as I}from"./ProfileFields-T3vVbHRC.js";function J(e){return{name:e.displayName.trim()===""||e.displayName===j,handle:!e.handle}}function le(e){const r=J(e);return r.name||r.handle}function X(e,r){var t,s,d;const a=(d=(s=(t=e.person)==null?void 0:t.email)==null?void 0:s.split("@")[0])==null?void 0:d.trim();if(!a)return"";const o=new Set([...F,...r.filter(l=>l.id!==e.id&&l.handle).map(l=>l.handle.toLowerCase())]);return H(a,o)??""}function ie(){const e=x(a=>a.setRightPanelOpen),r=x(a=>a.setActiveRightPanelTab);p.useEffect(()=>{const a=o=>{if((o.metaKey||o.ctrlKey)&&o.shiftKey&&o.key==="A"){o.preventDefault();const{rightPanelOpen:t,activeRightPanelTab:s}=x.getState();t&&s===P?e(!1):(r(P),e(!0))}};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e,r])}const Z="agent-hub",ee={sessions:"sessions",tasks:"tasks",tools:"tools",channels:"rooms",config:null,toolkit:null,identity:null,overview:null,profile:null,personality:null};function te(e){return(typeof e=="string"?ee[e]:null)??void 0}const k=new Set(["identity","personality","channels","tools"]);function ce(){var n;const e=w(),r=D(),a=G({queryKey:["profile-location",e.profileRef],queryFn:()=>r.getSessionLocation(e.profileRef),enabled:!!e.profileRef}),o=M(m=>m.openProfileDockedFromLink),t=x(m=>m.requestRightPanel),s=x(m=>m.setExplicitAgentPath),d=K(),l=e.panel===P,c=e.agentPath??((n=a.data)==null?void 0:n.cwd)??null,u=Y(e.profilePage)??void 0,h=p.useRef(null);p.useEffect(()=>{!l&&c&&h.current!==c&&(h.current=c,s(c))},[l,c,s]);const f=p.useRef(new Map);p.useEffect(()=>{if(!l){f.current.clear();return}if(e.profileRef&&!c)return;const m=c??d;if(m){const g=f.current.get(m);if(g!==void 0&&(u===void 0||g.has(u)))return;f.current.set(m,(g??new Set).add(u??"")),o(m,u);return}t(P,null)},[l,e.profileRef,c,d,u,o,t])}function de(){const e=w(),r=B(),a=D(),o=e.panel===Z,t=e.dialog==="agent"||!!e.agent&&k.has(e.agent),s=o||t,d=o?e.hubTab:e.agent;p.useEffect(()=>{if(!s&&!e.agentPath||!r)return;let l=!1;return(async()=>{const u=e.profileRef??(e.agentPath?(await a.createSessionLocation(e.agentPath)).id:void 0);if(l)return;const h=te(d);r({search:f=>{const n={...f};return e.dialog==="agent"&&delete n.dialog,typeof n.agent=="string"&&k.has(n.agent)&&delete n.agent,u&&(n.profileRef=u,delete n.agentPath),s&&(delete n.hubTab,n.panel=P,h?n.profilePage=h:delete n.profilePage),n},replace:!0})})().catch(()=>{}),()=>{l=!0}},[s,e.dialog,e.agentPath,e.profileRef,d,r,a])}function ae(){var S,b;const r=((S=q().data)==null?void 0:S.members)??[],a=r.find(y=>y.isSelf),o=$(),t=W({isShownInline:()=>o.current}),s=Q({isShownInline:()=>o.current}),[d,l]=p.useState(!1),c=!a||a.displayName===j?"":a.displayName,u=(a==null?void 0:a.handle)??"",[h,f]=L(c),[n,m]=L(a?u||X(a,r):""),g=h.trim(),v=n.trim(),E=a?z(a):null,T=g.length>0&&(g!==c||E!==null),C=t.isError&&t.variables===g?U(t.error):null,O=s.isError&&((b=s.variables)==null?void 0:b.handle)===v?V(s.error,v):null,_=async()=>{if(!a)return!1;l(!0);let y=!0;return T&&(y=await t.mutateAsync(g).then(()=>y,()=>!1)),v&&v!==u&&(y=await s.mutateAsync({authorId:a.id,handle:v}).then(()=>y,()=>!1)),l(!1),y};return{ready:a!==void 0,name:h,setName:f,handle:n,setHandle:m,canSave:a!==void 0&&!d&&(g.length>0||v.length>0),saving:d,nameError:C,nameSuggestion:E!==null&&g===c?E:null,handleError:O,save:_}}function ue({onSaved:e,confirmLabel:r="Save",onSkip:a,skipLabel:o="Skip"}){const t=ae(),s=p.useId(),d=p.useId(),l=p.useId(),c=f=>{f.preventDefault(),t.canSave&&t.save().then(n=>{n&&e()})},u=t.nameError!==null||t.handleError!==null;let h=r;return t.saving?h="Saving…":u&&(h="Try again"),i.jsxs("form",{onSubmit:c,className:"flex flex-col gap-3","data-testid":"operator-identity-form",children:[i.jsxs("div",{className:"flex flex-col gap-1.5",children:[i.jsx(N,{htmlFor:s,className:"text-xs",children:"Your name"}),i.jsx(R,{id:s,value:t.name,maxLength:80,autoComplete:"name",placeholder:"What you go by",disabled:!t.ready,onChange:f=>t.setName(f.target.value),className:"h-8 text-sm"}),t.nameSuggestion&&!t.nameError&&i.jsxs("p",{className:"text-muted-foreground text-xs",children:[t.nameSuggestion,". Save it to make it yours."]}),t.nameError&&i.jsx(I,{tone:"error",children:t.nameError})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",children:[i.jsx(N,{htmlFor:d,className:"text-xs",children:"Handle"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{"aria-hidden":!0,className:"text-muted-foreground pointer-events-none absolute top-1/2 left-2.5 -translate-y-1/2 text-sm",children:"@"}),i.jsx(R,{id:d,value:t.handle,maxLength:64,autoComplete:"username",autoCapitalize:"none",spellCheck:!1,placeholder:"yourname","aria-describedby":l,disabled:!t.ready,onChange:f=>t.setHandle(f.target.value),className:"h-8 pl-6 text-sm"})]}),i.jsx("p",{id:l,className:"text-muted-foreground text-xs",children:"What others type after @ to reach you."}),t.handleError&&i.jsx(I,{tone:"error",children:t.handleError})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[i.jsx(A,{type:"submit",size:"sm",disabled:!t.canSave,"data-testid":"confirm-identity",children:h}),a&&i.jsx(A,{type:"button",size:"sm",variant:"ghost",onClick:a,disabled:t.saving,"data-testid":"skip-identity",children:o})]})]})}export{ue as O,ce as a,ie as b,le as i,de as u};
1
+ import{bh as j,fj as F,fk as H,aW as x,r as p,c0 as P,fl as w,fm as B,a1 as D,a2 as G,bR as M,bM as K,fn as Y,z as q,bi as z,j as i,d$ as N,I as R,B as A}from"./index-8-iQ6PnT.js";import{d as W,c as Q,n as U,h as V}from"./profile-errors-C1qSJkiG.js";import{u as $}from"./use-mounted-ref-BAO3qunF.js";import{u as L,F as I}from"./ProfileFields-Dp68ebW9.js";function J(e){return{name:e.displayName.trim()===""||e.displayName===j,handle:!e.handle}}function le(e){const r=J(e);return r.name||r.handle}function X(e,r){var t,s,d;const a=(d=(s=(t=e.person)==null?void 0:t.email)==null?void 0:s.split("@")[0])==null?void 0:d.trim();if(!a)return"";const o=new Set([...F,...r.filter(l=>l.id!==e.id&&l.handle).map(l=>l.handle.toLowerCase())]);return H(a,o)??""}function ie(){const e=x(a=>a.setRightPanelOpen),r=x(a=>a.setActiveRightPanelTab);p.useEffect(()=>{const a=o=>{if((o.metaKey||o.ctrlKey)&&o.shiftKey&&o.key==="A"){o.preventDefault();const{rightPanelOpen:t,activeRightPanelTab:s}=x.getState();t&&s===P?e(!1):(r(P),e(!0))}};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e,r])}const Z="agent-hub",ee={sessions:"sessions",tasks:"tasks",tools:"tools",channels:"rooms",config:null,toolkit:null,identity:null,overview:null,profile:null,personality:null};function te(e){return(typeof e=="string"?ee[e]:null)??void 0}const k=new Set(["identity","personality","channels","tools"]);function ce(){var n;const e=w(),r=D(),a=G({queryKey:["profile-location",e.profileRef],queryFn:()=>r.getSessionLocation(e.profileRef),enabled:!!e.profileRef}),o=M(m=>m.openProfileDockedFromLink),t=x(m=>m.requestRightPanel),s=x(m=>m.setExplicitAgentPath),d=K(),l=e.panel===P,c=e.agentPath??((n=a.data)==null?void 0:n.cwd)??null,u=Y(e.profilePage)??void 0,h=p.useRef(null);p.useEffect(()=>{!l&&c&&h.current!==c&&(h.current=c,s(c))},[l,c,s]);const f=p.useRef(new Map);p.useEffect(()=>{if(!l){f.current.clear();return}if(e.profileRef&&!c)return;const m=c??d;if(m){const g=f.current.get(m);if(g!==void 0&&(u===void 0||g.has(u)))return;f.current.set(m,(g??new Set).add(u??"")),o(m,u);return}t(P,null)},[l,e.profileRef,c,d,u,o,t])}function de(){const e=w(),r=B(),a=D(),o=e.panel===Z,t=e.dialog==="agent"||!!e.agent&&k.has(e.agent),s=o||t,d=o?e.hubTab:e.agent;p.useEffect(()=>{if(!s&&!e.agentPath||!r)return;let l=!1;return(async()=>{const u=e.profileRef??(e.agentPath?(await a.createSessionLocation(e.agentPath)).id:void 0);if(l)return;const h=te(d);r({search:f=>{const n={...f};return e.dialog==="agent"&&delete n.dialog,typeof n.agent=="string"&&k.has(n.agent)&&delete n.agent,u&&(n.profileRef=u,delete n.agentPath),s&&(delete n.hubTab,n.panel=P,h?n.profilePage=h:delete n.profilePage),n},replace:!0})})().catch(()=>{}),()=>{l=!0}},[s,e.dialog,e.agentPath,e.profileRef,d,r,a])}function ae(){var S,b;const r=((S=q().data)==null?void 0:S.members)??[],a=r.find(y=>y.isSelf),o=$(),t=W({isShownInline:()=>o.current}),s=Q({isShownInline:()=>o.current}),[d,l]=p.useState(!1),c=!a||a.displayName===j?"":a.displayName,u=(a==null?void 0:a.handle)??"",[h,f]=L(c),[n,m]=L(a?u||X(a,r):""),g=h.trim(),v=n.trim(),E=a?z(a):null,T=g.length>0&&(g!==c||E!==null),C=t.isError&&t.variables===g?U(t.error):null,O=s.isError&&((b=s.variables)==null?void 0:b.handle)===v?V(s.error,v):null,_=async()=>{if(!a)return!1;l(!0);let y=!0;return T&&(y=await t.mutateAsync(g).then(()=>y,()=>!1)),v&&v!==u&&(y=await s.mutateAsync({authorId:a.id,handle:v}).then(()=>y,()=>!1)),l(!1),y};return{ready:a!==void 0,name:h,setName:f,handle:n,setHandle:m,canSave:a!==void 0&&!d&&(g.length>0||v.length>0),saving:d,nameError:C,nameSuggestion:E!==null&&g===c?E:null,handleError:O,save:_}}function ue({onSaved:e,confirmLabel:r="Save",onSkip:a,skipLabel:o="Skip"}){const t=ae(),s=p.useId(),d=p.useId(),l=p.useId(),c=f=>{f.preventDefault(),t.canSave&&t.save().then(n=>{n&&e()})},u=t.nameError!==null||t.handleError!==null;let h=r;return t.saving?h="Saving…":u&&(h="Try again"),i.jsxs("form",{onSubmit:c,className:"flex flex-col gap-3","data-testid":"operator-identity-form",children:[i.jsxs("div",{className:"flex flex-col gap-1.5",children:[i.jsx(N,{htmlFor:s,className:"text-xs",children:"Your name"}),i.jsx(R,{id:s,value:t.name,maxLength:80,autoComplete:"name",placeholder:"What you go by",disabled:!t.ready,onChange:f=>t.setName(f.target.value),className:"h-8 text-sm"}),t.nameSuggestion&&!t.nameError&&i.jsxs("p",{className:"text-muted-foreground text-xs",children:[t.nameSuggestion,". Save it to make it yours."]}),t.nameError&&i.jsx(I,{tone:"error",children:t.nameError})]}),i.jsxs("div",{className:"flex flex-col gap-1.5",children:[i.jsx(N,{htmlFor:d,className:"text-xs",children:"Handle"}),i.jsxs("div",{className:"relative",children:[i.jsx("span",{"aria-hidden":!0,className:"text-muted-foreground pointer-events-none absolute top-1/2 left-2.5 -translate-y-1/2 text-sm",children:"@"}),i.jsx(R,{id:d,value:t.handle,maxLength:64,autoComplete:"username",autoCapitalize:"none",spellCheck:!1,placeholder:"yourname","aria-describedby":l,disabled:!t.ready,onChange:f=>t.setHandle(f.target.value),className:"h-8 pl-6 text-sm"})]}),i.jsx("p",{id:l,className:"text-muted-foreground text-xs",children:"What others type after @ to reach you."}),t.handleError&&i.jsx(I,{tone:"error",children:t.handleError})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[i.jsx(A,{type:"submit",size:"sm",disabled:!t.canSave,"data-testid":"confirm-identity",children:h}),a&&i.jsx(A,{type:"button",size:"sm",variant:"ghost",onClick:a,disabled:t.saving,"data-testid":"skip-identity",children:o})]})]})}export{ue as O,ce as a,ie as b,le as i,de as u};
@@ -1 +1 @@
1
- import{j as s,eK as A,eL as P,G as k,gw as Y,a1 as E,a2 as q,gj as R,r as N,a3 as Z,a4 as ee,au as se,a7 as te,b8 as ne,B as x,hu as v,by as L,bz as U,C as W,bA as D,bC as K,T as ae,gk as f,hv as w,gS as _,gT as B,e as C,b6 as ie,hw as le}from"./index-DcZPWi_I.js";import{u as y,c as re,a as p,l as H,S as g,P as b,s as z,d as T,f as $,b as M,e as S,g as oe,A as de}from"./ApplyToOverridesDialog-DeWaXbgm.js";const I=[{value:"blocked",label:"Blocked"},{value:"ask",label:"Ask"},{value:"allowed",label:"Allowed"}];function Q({value:e,onChange:t,floor:n=!1,disabled:a=!1,className:l,"aria-label":o}){const d=n?I.filter(i=>i.value!=="allowed"):I;return s.jsx(A,{"aria-label":o,value:e??"",onValueChange:i=>t(i),disabled:a,className:k("w-full md:w-auto",l),children:d.map(i=>s.jsx(P,{value:i.value,className:k(Y,"md:min-h-0 md:min-w-16"),children:i.label},i.value))})}function ce(e){const t=E();return q({queryKey:R.agent(e??""),queryFn:()=>t.getAgentPermissions(e),enabled:!!e})}function ue(e){const{data:t}=y();return N.useMemo(()=>{const n=new Map;for(const a of(t==null?void 0:t.exceptions)??[]){if(a.area!==e)continue;const l=n.get(a.agentId);(!l||l.action&&!a.action)&&n.set(a.agentId,a)}return[...n.values()]},[t,e])}function me(e){const t=E();return q({queryKey:R.history(e),queryFn:()=>t.getPermissionHistory(e?{agentId:e,limit:50}:{limit:50})})}function he(e){var n;const t=e;return(t==null?void 0:t.code)!=="UNDO_CONFLICT"?null:((n=t.body)==null?void 0:n.conflicts)??[]}function xe(){const e=E(),t=Z();return ee({mutationFn:({eventId:n,force:a})=>e.undoPermissionChange(n,a?{force:!0}:{}),meta:{suppressErrorToast:!0},onSettled:()=>{t.invalidateQueries({queryKey:R.all}),t.invalidateQueries({queryKey:["mesh","agents"]}),t.invalidateQueries({queryKey:se.all})}})}function F(e){const{data:t}=y();return t?re(t,e):void 0}function j(e){te.error(e instanceof Error&&e.message?e.message:"Couldn’t save that change. Try again.")}function V({areaId:e,label:t,description:n,floor:a,value:l,sourceText:o,why:d,changed:i=!1,onChange:m,onReset:r,disabled:u=!1,footer:c,details:h}){return s.jsxs("div",{className:"@container","data-testid":`permission-row-${e}`,children:[s.jsxs("div",{className:"flex flex-col gap-3 py-3 @lg:flex-row @lg:items-start @lg:justify-between @lg:gap-6",children:[s.jsxs("div",{className:"min-w-0 space-y-1",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[i?s.jsx("span",{className:"bg-primary size-1.5 shrink-0 rounded-full","aria-label":"Set differently for this agent",role:"img"}):null,s.jsx("span",{className:"text-sm font-medium",children:t}),a?s.jsx(ne,{className:"text-muted-foreground size-3.5","aria-label":"Never Allowed"}):null]}),s.jsx("p",{className:"text-muted-foreground text-sm",children:n}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[s.jsx("span",{children:o}),d?s.jsxs(s.Fragment,{children:[o?" · ":null,d]}):null]})]}),s.jsxs("div",{className:"flex shrink-0 flex-col gap-2 @lg:items-end",children:[s.jsx(Q,{value:l,onChange:m,floor:a,disabled:u,"aria-label":t}),i&&r?s.jsxs(x,{variant:"ghost",size:"sm",className:"self-start @lg:self-end",onClick:r,disabled:u,children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset to default"]}):null,c]})]}),h]})}function ge({area:e,exception:t}){const n=p({kind:"agent",agentId:t.agentId}),a=()=>n.mutate({kind:"patch",...t.action?{actions:{[t.action]:null}}:{areas:{[e]:null}},surface:"settings"}),l=H(t.lastChange);return s.jsxs("li",{className:"flex items-center justify-between gap-3",children:[s.jsxs("span",{className:"min-w-0 text-sm",children:[s.jsxs("span",{className:"block break-words",children:[t.agentName,": ",g[t.state],t.action?" (one action)":""]}),l?s.jsx("span",{className:"text-muted-foreground block text-xs",children:l}):null]}),s.jsxs(x,{variant:"ghost",size:"sm",onClick:a,disabled:n.isPending,"aria-label":`Reset ${t.agentName} to the default`,children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset"]})]})}function fe({area:e,areaLabel:t,agents:n}){if(n.length===0)return null;const a=n.length===1?"1 agent differs":`${n.length} agents differ`;return s.jsxs(L,{children:[s.jsx(U,{asChild:!0,children:s.jsxs(x,{variant:"ghost",size:"sm",className:"text-muted-foreground self-start md:self-end",children:[a,s.jsx(W,{className:"size-3.5","aria-hidden":!0})]})}),s.jsxs(D,{className:"w-80 space-y-2",children:[s.jsxs(K,{className:"text-sm font-medium",children:["Set differently for ",t]}),s.jsx("ul",{className:"space-y-1",children:n.map(l=>s.jsx(ge,{area:e,exception:l},l.agentId))})]})]})}function G(e,t){return e.resolved.source===(t.kind==="agent"?"agent-action":"default-action")}function J({action:e,preset:t,agentName:n}){const a=g[e.resolved.state];return s.jsx(b,{question:`Why is ${e.title} set to ${a}${n?` for ${n}`:""}?`,sentence:z({...e.resolved,preset:t,fromExtension:e.source!==void 0}),...e.lastChange?{lastChange:e.lastChange}:{}})}function pe({action:e,area:t,scope:n,preset:a,agentName:l,disabled:o,reset:d,onSave:i}){const m=G(e,n),r=F({kind:"action",action:e.id,area:t.id}),u=m?"Set on its own":e.alwaysAsks?e.source?"Always asks: an extension tool that can delete things":"Always asks, so you see the change first":e.resolved.destructiveAsk?"Always asks unless you set it here":`Follows ${t.label}`,c=n.kind==="default"&&r!==void 0?T(r):null;return s.jsxs("li",{className:"flex flex-col gap-2 py-2 @md:flex-row @md:items-center @md:justify-between","data-testid":`permission-action-${e.id}`,children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("p",{className:"text-sm",children:e.title}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[e.source?s.jsxs("span",{children:["From ",e.source.name," · "]}):null,s.jsx("span",{children:u}),c?s.jsxs("span",{children:[" · ",c]}):null," ·"," ",s.jsx(J,{action:e,preset:a,...l?{agentName:l}:{}})]})]}),s.jsxs("div",{className:"flex items-center gap-1",children:[m?d:null,s.jsx(Q,{value:e.resolved.state,floor:t.floor||e.alwaysAsks===!0,disabled:o,"aria-label":e.title,onChange:h=>{h!==e.resolved.state&&i(h)}})]})]})}function X({scope:e,area:t,surface:n,preset:a,agentName:l}){const o=p(e),[d,i]=N.useState(!1);if(t.actions.length===0)return null;const m=t.actions.filter(c=>G(c,e)),r=(c,h)=>o.mutate({kind:"patch",actions:{[c.id]:h},surface:n},{onError:j}),u=c=>s.jsxs(x,{variant:"ghost",size:"sm",className:"h-7 shrink-0 px-2 text-xs",disabled:o.isPending,"aria-label":`Put ${c.title} back to ${t.label}`,onClick:()=>r(c,null),children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset"]});return s.jsxs("div",{className:"flex flex-col items-start gap-1 pb-3","data-testid":`permission-actions-${t.id}`,children:[!d&&m.length>0?s.jsx("ul",{className:"w-full space-y-1","data-testid":`permission-action-exceptions-${t.id}`,children:m.map(c=>s.jsxs("li",{className:"flex items-center gap-2 text-xs",children:[s.jsxs("span",{className:"text-muted-foreground min-w-0",children:[s.jsxs("span",{children:["Except ",c.title,": ",g[c.resolved.state]]})," ","·"," ",s.jsx(J,{action:c,preset:a,...l?{agentName:l}:{}})]}),u(c)]},c.id))}):null,s.jsxs(x,{variant:"ghost",size:"sm",className:"text-muted-foreground -ml-2 h-7 px-2 text-xs","aria-expanded":d,onClick:()=>i(c=>!c),children:[s.jsx(ae,{className:k("size-3.5 transition-transform",d&&"rotate-180"),"aria-hidden":!0}),d?"Hide individual actions":"Show individual actions"]}),d?s.jsx("ul",{className:"divide-border w-full divide-y","aria-label":`${t.label} actions`,children:t.actions.map(c=>s.jsx(pe,{action:c,area:t,scope:e,preset:a,...l?{agentName:l}:{},disabled:o.isPending,reset:u(c),onSave:h=>r(c,h)},c.id))}):null]})}function je({agentId:e,agentName:t,files:n}){const a=p({kind:"agent",agentId:e}),l=n.source==="agent",o=n.inherited.stop,d=n.stop,i=r=>a.mutate({kind:"patch",filesAndCommands:r,surface:"agent-page"},{onError:j}),m=o?`${l?`Everyone else: ${f(o)}`:`Same as everyone (${f(o)})`}${n.inherited.source==="runtime"?` · ${$("runtime")}`:""}`:$(n.inherited.source);return s.jsxs("div",{className:"@container","data-testid":"permission-row-files",children:[s.jsxs("div",{className:"flex flex-col gap-3 py-3 @lg:flex-row @lg:items-start @lg:justify-between @lg:gap-6",children:[s.jsxs("div",{className:"min-w-0 space-y-1",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[l?s.jsx("span",{className:"bg-primary size-1.5 shrink-0 rounded-full","aria-label":"Set differently for this agent",role:"img"}):null,s.jsx("span",{className:"text-sm font-medium",children:"Files & commands"})]}),s.jsx("p",{className:"text-muted-foreground text-sm",children:"Editing files and running commands in this agent’s chats"}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[s.jsx("span",{children:m})," ·"," ",s.jsx(b,{question:`Why is Files & commands ${d?`set to ${f(d)}`:"not set"} for ${t}?`,sentence:M(d,n.source),...n.lastChange?{lastChange:n.lastChange}:{}})]})]}),s.jsxs("div",{className:"flex shrink-0 flex-col gap-2 @lg:items-end",children:[s.jsx(A,{"aria-label":"Files & commands",className:"w-full @lg:w-auto",value:d??"",disabled:a.isPending,onValueChange:r=>{r&&r!==d&&i(r)},children:w.map(r=>s.jsxs(P,{value:r.id,"aria-label":r.label,children:[s.jsx(_,{descriptor:r,className:"size-(--size-icon-xs) shrink-0"}),s.jsx("span",{className:"truncate",children:r.label})]},r.id))}),l?s.jsxs(x,{variant:"ghost",size:"sm",className:"self-start @lg:self-end",onClick:()=>i(null),disabled:a.isPending,children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset to default"]}):null]})]}),s.jsx(B,{descriptor:w.find(r=>r.stop===d),className:"pb-3"})]})}function Ee({files:e,preset:t,onChange:n,disabled:a=!1,runtimeLabel:l=o=>o}){const o=F({kind:"files"}),d=e.stop===null?$("runtime-own"):e.stop===e.presetStop?`From ${S[t??"trusted"]}`:"Changed from your preset";return s.jsxs("div",{className:"@container","data-testid":"permission-row-files",children:[s.jsxs("div",{className:"flex flex-col gap-3 py-3 @lg:flex-row @lg:items-start @lg:justify-between @lg:gap-6",children:[s.jsxs("div",{className:"min-w-0 space-y-1",children:[s.jsx("span",{className:"text-sm font-medium",children:"Files & commands"}),s.jsx("p",{className:"text-muted-foreground text-sm",children:"Editing files and running commands"}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[s.jsx("span",{children:[d,o!==void 0?T(o):""].filter(Boolean).join(" · ")})," ","·"," ",s.jsx(b,{question:`Why is Files & commands ${e.stop?`set to ${f(e.stop)}`:"not set"}?`,sentence:M(e.stop,e.stop===null?"runtime-own":"default"),...e.lastChange?{lastChange:e.lastChange}:{}})]}),e.runtimes.map(i=>s.jsxs("p",{className:"text-muted-foreground text-xs",children:[l(i.runtime)," starts at ",f(i.stop)," (Settings → Runtimes)"]},i.runtime))]}),s.jsxs("div",{className:"flex shrink-0 flex-col gap-2 @lg:items-end",children:[s.jsx(A,{"aria-label":"Files & commands",className:"w-full @lg:w-auto",value:e.stop??"",disabled:a,onValueChange:i=>{i&&i!==e.stop&&n(i)},children:w.map(i=>s.jsxs(P,{value:i.id,"aria-label":i.label,children:[s.jsx(_,{descriptor:i,className:"size-(--size-icon-xs) shrink-0"}),s.jsx("span",{className:"truncate",children:i.label})]},i.id))}),s.jsx(ve,{agents:e.exceptions})]})]}),s.jsx(B,{descriptor:w.find(i=>i.stop===e.stop),className:"pb-3"})]})}function Ne({agent:e}){const t=p({kind:"agent",agentId:e.agentId}),n=H(e.lastChange);return s.jsxs("li",{className:"flex items-center justify-between gap-3",children:[s.jsxs("span",{className:"min-w-0 text-sm",children:[s.jsxs("span",{className:"block break-words",children:[e.agentName,": ",f(e.stop)]}),n?s.jsx("span",{className:"text-muted-foreground block text-xs",children:n}):null]}),s.jsxs(x,{variant:"ghost",size:"sm",disabled:t.isPending,"aria-label":`Reset ${e.agentName} to the default`,onClick:()=>t.mutate({kind:"patch",filesAndCommands:null,surface:"settings"},{onError:j}),children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset"]})]})}function ve({agents:e}){return e.length===0?null:s.jsxs(L,{children:[s.jsx(U,{asChild:!0,children:s.jsxs(x,{variant:"ghost",size:"sm",className:"text-muted-foreground self-start @lg:self-end",children:[e.length===1?"1 agent differs":`${e.length} agents differ`,s.jsx(W,{className:"size-3.5","aria-hidden":!0})]})}),s.jsxs(D,{className:"w-80 space-y-2",children:[s.jsx(K,{className:"text-sm font-medium",children:"Set differently for Files & commands"}),s.jsx("ul",{className:"space-y-1",children:e.map(t=>s.jsx(Ne,{agent:t},t.agentId))})]})]})}function O(e){return e.filter(t=>t.kind==="state")}function be({area:e,overview:t}){const n=p({kind:"default"}),a=ue(e.id),l=F({kind:"area",area:e.id})??0,[o,d]=N.useState(null),i=(r,u)=>{n.mutate({kind:"patch",areas:{[e.id]:r},...u&&u.length>0?{applyToAgents:u}:{},surface:"settings"},{onError:j,onSettled:()=>d(null)})},m=r=>{r!==e.resolved.state&&(a.length>0?d(r):i(r))};return s.jsxs(s.Fragment,{children:[s.jsx(V,{areaId:e.id,label:e.label,description:e.description,floor:e.floor,value:e.resolved.state,sourceText:[oe(e.resolved.source,t.preset),T(l)].filter(Boolean).join(" · "),why:s.jsx(b,{question:`Why is ${e.label} set to ${g[e.resolved.state]}?`,sentence:z({...e.resolved,preset:t.preset}),...e.lastChange?{lastChange:e.lastChange}:{}}),onChange:m,disabled:n.isPending,footer:s.jsx(fe,{area:e.id,areaLabel:e.label,agents:a}),details:s.jsx(X,{scope:{kind:"default"},area:e,surface:"settings",preset:t.preset})}),s.jsx(de,{open:o!==null,onCancel:()=>d(null),subject:e.label,next:o??"ask",agents:a.map(r=>({agentId:r.agentId,agentName:r.agentName,detail:`${g[r.state]}${r.action?" (one action)":""}`})),affectedCount:l,onKeep:()=>o&&i(o),onUpdate:r=>o&&i(o,r),pending:n.isPending})]})}function we({agentId:e,agentName:t,area:n}){var r;const a=((r=y().data)==null?void 0:r.preset)??null,l=p({kind:"agent",agentId:e}),o=n.resolved.source==="agent-area"||n.resolved.source==="agent-action",d=o?`Everyone else: ${g[n.inherited.state]}`:`Same as everyone (${g[n.inherited.state]})`,i=n.changedOutsideAt?`Changed outside DorkOS · ${d}`:d,m=u=>l.mutate({kind:"patch",areas:{[n.id]:u},surface:"agent-page"},{onError:j});return s.jsx(V,{areaId:n.id,label:n.label,description:n.description,floor:n.floor,value:n.resolved.state,sourceText:i,why:s.jsx(b,{question:`Why is ${n.label} set to ${g[n.resolved.state]} for ${t}?`,sentence:z({...n.resolved,preset:a}),...n.lastChange?{lastChange:n.lastChange}:{}}),changed:o,onChange:u=>{u!==n.resolved.state&&m(u)},onReset:()=>m(null),disabled:l.isPending,details:s.jsx(X,{scope:{kind:"agent",agentId:e},area:n,surface:"agent-page",preset:a,agentName:t})})}function Re({scope:e}){const t=y(),n=ce(e.kind==="agent"?e.agentId:void 0);return e.kind==="default"?t.isError?s.jsx("p",{className:"text-muted-foreground text-sm",children:"Couldn’t read the permissions."}):t.data?s.jsx("div",{className:"divide-border divide-y","data-testid":"permission-list-default",children:O(t.data.areas).map(a=>s.jsx(be,{area:a,overview:t.data},a.id))}):s.jsx(C,{className:"h-20 w-full"}):n.isError?s.jsx("p",{className:"text-muted-foreground text-sm",children:"Couldn’t read this agent’s permissions."}):n.data?s.jsxs("div",{className:"divide-border divide-y","data-testid":"permission-list-agent",children:[s.jsx(je,{agentId:e.agentId,agentName:n.data.agentName,files:n.data.filesAndCommands}),O(n.data.areas).map(a=>s.jsx(we,{agentId:e.agentId,agentName:n.data.agentName,area:a},a.id))]}):s.jsx(C,{className:"h-20 w-full"})}function ye(e,t){if(e===null)return t.target.kind==="agent"?"the default":"the preset";switch(t.key.kind){case"files":return ke(e)?f(e):e;case"preset":return e in S?S[e]:e;default:return e in g?g[e]:e}}function ke(e){return le.includes(e)}function Ce(e){if(e.length===1){const{change:t}=e[0];return`This has changed since. Set it back to ${ye(t.before,t)} anyway?`}return"Some of this has changed since. Set it all back anyway?"}function $e(e){if(e.suggestionRestored)return null;if(e.changes.length===0&&e.skipped.length===0)return"Nothing to undo. It was already back.";if(e.skipped.length===0)return null;const t=e.changes.length,n=`Undid ${t} ${t===1?"change":"changes"}.`,a=e.skipped.filter(i=>i.reason==="changed-since").length,l=e.skipped.filter(i=>i.reason==="floor").length,o=e.skipped.filter(i=>i.reason==="gone").length,d=[];if(a>0&&d.push(`${a} had changed since and ${a===1?"was":"were"} left alone.`),l>0&&d.push(`${l} can’t be set to Allowed and ${l===1?"was":"were"} left alone.`),o>0&&d.push(`${o} ${o===1?"was about an agent":"were about agents"} no longer here.`),d.length>1){const i=e.skipped.length;return`${n} ${i} ${i===1?"was":"were"} left alone.`}return[n,...d].join(" ")}function Se({item:e}){const t=xe(),[n,a]=N.useState(null),[l,o]=N.useState(null),d=e.undone,i=e.undoable&&!d,m=ie(e.occurredAt),r=u=>t.mutate({eventId:e.id,...u?{force:!0}:{}},{onSuccess:c=>{a(null),o($e(c))},onError:c=>{const h=he(c);h?a(h):j(c)}});return s.jsxs("li",{className:"space-y-1","data-testid":"permission-history-row",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"min-w-0 space-y-0.5",children:[s.jsx("p",{className:"text-sm",children:e.summary}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[e.actorLabel," · ",m]}),e.actorDetail?s.jsx("p",{className:"text-muted-foreground text-xs",children:e.actorDetail}):null]}),d?s.jsx("span",{className:"text-muted-foreground shrink-0 pt-0.5 text-xs",children:"Undone"}):i&&n===null?s.jsx(x,{variant:"ghost",size:"sm",className:"h-7 shrink-0 px-2 text-xs",disabled:t.isPending,"aria-label":`Undo: ${e.summary}, ${m}`,onClick:()=>r(!1),children:"Undo"}):null]}),n!==null?s.jsxs("div",{role:"group","aria-label":"Undo conflict",className:"bg-muted/50 flex flex-col gap-2 rounded-md p-2 @md:flex-row @md:items-center @md:justify-between",children:[s.jsx("p",{className:"text-sm",children:Ce(n)}),s.jsxs("div",{className:"flex shrink-0 gap-2",children:[s.jsx(x,{variant:"outline",size:"sm",disabled:t.isPending,onClick:()=>a(null),children:"Cancel"}),s.jsx(x,{size:"sm",disabled:t.isPending,onClick:()=>r(!0),children:"Set it back"})]})]}):null,l?s.jsx("p",{className:"text-muted-foreground text-xs",role:"status",children:l}):null]})}function ze({agentId:e}){const{data:t,isPending:n,isError:a}=me(e);if(a)return s.jsx("p",{className:"text-muted-foreground text-sm",children:"Couldn’t read the history."});if(n)return s.jsx(C,{className:"h-12 w-full"});const l=(t==null?void 0:t.items)??[];return l.length===0?s.jsx("p",{className:"text-muted-foreground text-sm",children:"No permission changes yet."}):s.jsx("ul",{className:"@container space-y-3","aria-label":"Permission history",children:l.map(o=>s.jsx(Se,{item:o},o.id))})}export{Ee as D,Re as P,ze as a};
1
+ import{j as s,eK as A,eL as P,G as k,gw as Y,a1 as E,a2 as q,gj as R,r as N,a3 as Z,a4 as ee,au as se,a7 as te,b8 as ne,B as x,hu as v,by as L,bz as U,C as W,bA as D,bC as K,T as ae,gk as f,hv as w,gS as _,gT as B,e as C,b6 as ie,hw as le}from"./index-8-iQ6PnT.js";import{u as y,c as re,a as p,l as H,S as g,P as b,s as z,d as T,f as $,b as M,e as S,g as oe,A as de}from"./ApplyToOverridesDialog-CrqkeHQb.js";const I=[{value:"blocked",label:"Blocked"},{value:"ask",label:"Ask"},{value:"allowed",label:"Allowed"}];function Q({value:e,onChange:t,floor:n=!1,disabled:a=!1,className:l,"aria-label":o}){const d=n?I.filter(i=>i.value!=="allowed"):I;return s.jsx(A,{"aria-label":o,value:e??"",onValueChange:i=>t(i),disabled:a,className:k("w-full md:w-auto",l),children:d.map(i=>s.jsx(P,{value:i.value,className:k(Y,"md:min-h-0 md:min-w-16"),children:i.label},i.value))})}function ce(e){const t=E();return q({queryKey:R.agent(e??""),queryFn:()=>t.getAgentPermissions(e),enabled:!!e})}function ue(e){const{data:t}=y();return N.useMemo(()=>{const n=new Map;for(const a of(t==null?void 0:t.exceptions)??[]){if(a.area!==e)continue;const l=n.get(a.agentId);(!l||l.action&&!a.action)&&n.set(a.agentId,a)}return[...n.values()]},[t,e])}function me(e){const t=E();return q({queryKey:R.history(e),queryFn:()=>t.getPermissionHistory(e?{agentId:e,limit:50}:{limit:50})})}function he(e){var n;const t=e;return(t==null?void 0:t.code)!=="UNDO_CONFLICT"?null:((n=t.body)==null?void 0:n.conflicts)??[]}function xe(){const e=E(),t=Z();return ee({mutationFn:({eventId:n,force:a})=>e.undoPermissionChange(n,a?{force:!0}:{}),meta:{suppressErrorToast:!0},onSettled:()=>{t.invalidateQueries({queryKey:R.all}),t.invalidateQueries({queryKey:["mesh","agents"]}),t.invalidateQueries({queryKey:se.all})}})}function F(e){const{data:t}=y();return t?re(t,e):void 0}function j(e){te.error(e instanceof Error&&e.message?e.message:"Couldn’t save that change. Try again.")}function V({areaId:e,label:t,description:n,floor:a,value:l,sourceText:o,why:d,changed:i=!1,onChange:m,onReset:r,disabled:u=!1,footer:c,details:h}){return s.jsxs("div",{className:"@container","data-testid":`permission-row-${e}`,children:[s.jsxs("div",{className:"flex flex-col gap-3 py-3 @lg:flex-row @lg:items-start @lg:justify-between @lg:gap-6",children:[s.jsxs("div",{className:"min-w-0 space-y-1",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[i?s.jsx("span",{className:"bg-primary size-1.5 shrink-0 rounded-full","aria-label":"Set differently for this agent",role:"img"}):null,s.jsx("span",{className:"text-sm font-medium",children:t}),a?s.jsx(ne,{className:"text-muted-foreground size-3.5","aria-label":"Never Allowed"}):null]}),s.jsx("p",{className:"text-muted-foreground text-sm",children:n}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[s.jsx("span",{children:o}),d?s.jsxs(s.Fragment,{children:[o?" · ":null,d]}):null]})]}),s.jsxs("div",{className:"flex shrink-0 flex-col gap-2 @lg:items-end",children:[s.jsx(Q,{value:l,onChange:m,floor:a,disabled:u,"aria-label":t}),i&&r?s.jsxs(x,{variant:"ghost",size:"sm",className:"self-start @lg:self-end",onClick:r,disabled:u,children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset to default"]}):null,c]})]}),h]})}function ge({area:e,exception:t}){const n=p({kind:"agent",agentId:t.agentId}),a=()=>n.mutate({kind:"patch",...t.action?{actions:{[t.action]:null}}:{areas:{[e]:null}},surface:"settings"}),l=H(t.lastChange);return s.jsxs("li",{className:"flex items-center justify-between gap-3",children:[s.jsxs("span",{className:"min-w-0 text-sm",children:[s.jsxs("span",{className:"block break-words",children:[t.agentName,": ",g[t.state],t.action?" (one action)":""]}),l?s.jsx("span",{className:"text-muted-foreground block text-xs",children:l}):null]}),s.jsxs(x,{variant:"ghost",size:"sm",onClick:a,disabled:n.isPending,"aria-label":`Reset ${t.agentName} to the default`,children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset"]})]})}function fe({area:e,areaLabel:t,agents:n}){if(n.length===0)return null;const a=n.length===1?"1 agent differs":`${n.length} agents differ`;return s.jsxs(L,{children:[s.jsx(U,{asChild:!0,children:s.jsxs(x,{variant:"ghost",size:"sm",className:"text-muted-foreground self-start md:self-end",children:[a,s.jsx(W,{className:"size-3.5","aria-hidden":!0})]})}),s.jsxs(D,{className:"w-80 space-y-2",children:[s.jsxs(K,{className:"text-sm font-medium",children:["Set differently for ",t]}),s.jsx("ul",{className:"space-y-1",children:n.map(l=>s.jsx(ge,{area:e,exception:l},l.agentId))})]})]})}function G(e,t){return e.resolved.source===(t.kind==="agent"?"agent-action":"default-action")}function J({action:e,preset:t,agentName:n}){const a=g[e.resolved.state];return s.jsx(b,{question:`Why is ${e.title} set to ${a}${n?` for ${n}`:""}?`,sentence:z({...e.resolved,preset:t,fromExtension:e.source!==void 0}),...e.lastChange?{lastChange:e.lastChange}:{}})}function pe({action:e,area:t,scope:n,preset:a,agentName:l,disabled:o,reset:d,onSave:i}){const m=G(e,n),r=F({kind:"action",action:e.id,area:t.id}),u=m?"Set on its own":e.alwaysAsks?e.source?"Always asks: an extension tool that can delete things":"Always asks, so you see the change first":e.resolved.destructiveAsk?"Always asks unless you set it here":`Follows ${t.label}`,c=n.kind==="default"&&r!==void 0?T(r):null;return s.jsxs("li",{className:"flex flex-col gap-2 py-2 @md:flex-row @md:items-center @md:justify-between","data-testid":`permission-action-${e.id}`,children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("p",{className:"text-sm",children:e.title}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[e.source?s.jsxs("span",{children:["From ",e.source.name," · "]}):null,s.jsx("span",{children:u}),c?s.jsxs("span",{children:[" · ",c]}):null," ·"," ",s.jsx(J,{action:e,preset:a,...l?{agentName:l}:{}})]})]}),s.jsxs("div",{className:"flex items-center gap-1",children:[m?d:null,s.jsx(Q,{value:e.resolved.state,floor:t.floor||e.alwaysAsks===!0,disabled:o,"aria-label":e.title,onChange:h=>{h!==e.resolved.state&&i(h)}})]})]})}function X({scope:e,area:t,surface:n,preset:a,agentName:l}){const o=p(e),[d,i]=N.useState(!1);if(t.actions.length===0)return null;const m=t.actions.filter(c=>G(c,e)),r=(c,h)=>o.mutate({kind:"patch",actions:{[c.id]:h},surface:n},{onError:j}),u=c=>s.jsxs(x,{variant:"ghost",size:"sm",className:"h-7 shrink-0 px-2 text-xs",disabled:o.isPending,"aria-label":`Put ${c.title} back to ${t.label}`,onClick:()=>r(c,null),children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset"]});return s.jsxs("div",{className:"flex flex-col items-start gap-1 pb-3","data-testid":`permission-actions-${t.id}`,children:[!d&&m.length>0?s.jsx("ul",{className:"w-full space-y-1","data-testid":`permission-action-exceptions-${t.id}`,children:m.map(c=>s.jsxs("li",{className:"flex items-center gap-2 text-xs",children:[s.jsxs("span",{className:"text-muted-foreground min-w-0",children:[s.jsxs("span",{children:["Except ",c.title,": ",g[c.resolved.state]]})," ","·"," ",s.jsx(J,{action:c,preset:a,...l?{agentName:l}:{}})]}),u(c)]},c.id))}):null,s.jsxs(x,{variant:"ghost",size:"sm",className:"text-muted-foreground -ml-2 h-7 px-2 text-xs","aria-expanded":d,onClick:()=>i(c=>!c),children:[s.jsx(ae,{className:k("size-3.5 transition-transform",d&&"rotate-180"),"aria-hidden":!0}),d?"Hide individual actions":"Show individual actions"]}),d?s.jsx("ul",{className:"divide-border w-full divide-y","aria-label":`${t.label} actions`,children:t.actions.map(c=>s.jsx(pe,{action:c,area:t,scope:e,preset:a,...l?{agentName:l}:{},disabled:o.isPending,reset:u(c),onSave:h=>r(c,h)},c.id))}):null]})}function je({agentId:e,agentName:t,files:n}){const a=p({kind:"agent",agentId:e}),l=n.source==="agent",o=n.inherited.stop,d=n.stop,i=r=>a.mutate({kind:"patch",filesAndCommands:r,surface:"agent-page"},{onError:j}),m=o?`${l?`Everyone else: ${f(o)}`:`Same as everyone (${f(o)})`}${n.inherited.source==="runtime"?` · ${$("runtime")}`:""}`:$(n.inherited.source);return s.jsxs("div",{className:"@container","data-testid":"permission-row-files",children:[s.jsxs("div",{className:"flex flex-col gap-3 py-3 @lg:flex-row @lg:items-start @lg:justify-between @lg:gap-6",children:[s.jsxs("div",{className:"min-w-0 space-y-1",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[l?s.jsx("span",{className:"bg-primary size-1.5 shrink-0 rounded-full","aria-label":"Set differently for this agent",role:"img"}):null,s.jsx("span",{className:"text-sm font-medium",children:"Files & commands"})]}),s.jsx("p",{className:"text-muted-foreground text-sm",children:"Editing files and running commands in this agent’s chats"}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[s.jsx("span",{children:m})," ·"," ",s.jsx(b,{question:`Why is Files & commands ${d?`set to ${f(d)}`:"not set"} for ${t}?`,sentence:M(d,n.source),...n.lastChange?{lastChange:n.lastChange}:{}})]})]}),s.jsxs("div",{className:"flex shrink-0 flex-col gap-2 @lg:items-end",children:[s.jsx(A,{"aria-label":"Files & commands",className:"w-full @lg:w-auto",value:d??"",disabled:a.isPending,onValueChange:r=>{r&&r!==d&&i(r)},children:w.map(r=>s.jsxs(P,{value:r.id,"aria-label":r.label,children:[s.jsx(_,{descriptor:r,className:"size-(--size-icon-xs) shrink-0"}),s.jsx("span",{className:"truncate",children:r.label})]},r.id))}),l?s.jsxs(x,{variant:"ghost",size:"sm",className:"self-start @lg:self-end",onClick:()=>i(null),disabled:a.isPending,children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset to default"]}):null]})]}),s.jsx(B,{descriptor:w.find(r=>r.stop===d),className:"pb-3"})]})}function Ee({files:e,preset:t,onChange:n,disabled:a=!1,runtimeLabel:l=o=>o}){const o=F({kind:"files"}),d=e.stop===null?$("runtime-own"):e.stop===e.presetStop?`From ${S[t??"trusted"]}`:"Changed from your preset";return s.jsxs("div",{className:"@container","data-testid":"permission-row-files",children:[s.jsxs("div",{className:"flex flex-col gap-3 py-3 @lg:flex-row @lg:items-start @lg:justify-between @lg:gap-6",children:[s.jsxs("div",{className:"min-w-0 space-y-1",children:[s.jsx("span",{className:"text-sm font-medium",children:"Files & commands"}),s.jsx("p",{className:"text-muted-foreground text-sm",children:"Editing files and running commands"}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[s.jsx("span",{children:[d,o!==void 0?T(o):""].filter(Boolean).join(" · ")})," ","·"," ",s.jsx(b,{question:`Why is Files & commands ${e.stop?`set to ${f(e.stop)}`:"not set"}?`,sentence:M(e.stop,e.stop===null?"runtime-own":"default"),...e.lastChange?{lastChange:e.lastChange}:{}})]}),e.runtimes.map(i=>s.jsxs("p",{className:"text-muted-foreground text-xs",children:[l(i.runtime)," starts at ",f(i.stop)," (Settings → Runtimes)"]},i.runtime))]}),s.jsxs("div",{className:"flex shrink-0 flex-col gap-2 @lg:items-end",children:[s.jsx(A,{"aria-label":"Files & commands",className:"w-full @lg:w-auto",value:e.stop??"",disabled:a,onValueChange:i=>{i&&i!==e.stop&&n(i)},children:w.map(i=>s.jsxs(P,{value:i.id,"aria-label":i.label,children:[s.jsx(_,{descriptor:i,className:"size-(--size-icon-xs) shrink-0"}),s.jsx("span",{className:"truncate",children:i.label})]},i.id))}),s.jsx(ve,{agents:e.exceptions})]})]}),s.jsx(B,{descriptor:w.find(i=>i.stop===e.stop),className:"pb-3"})]})}function Ne({agent:e}){const t=p({kind:"agent",agentId:e.agentId}),n=H(e.lastChange);return s.jsxs("li",{className:"flex items-center justify-between gap-3",children:[s.jsxs("span",{className:"min-w-0 text-sm",children:[s.jsxs("span",{className:"block break-words",children:[e.agentName,": ",f(e.stop)]}),n?s.jsx("span",{className:"text-muted-foreground block text-xs",children:n}):null]}),s.jsxs(x,{variant:"ghost",size:"sm",disabled:t.isPending,"aria-label":`Reset ${e.agentName} to the default`,onClick:()=>t.mutate({kind:"patch",filesAndCommands:null,surface:"settings"},{onError:j}),children:[s.jsx(v,{className:"size-3.5","aria-hidden":!0}),"Reset"]})]})}function ve({agents:e}){return e.length===0?null:s.jsxs(L,{children:[s.jsx(U,{asChild:!0,children:s.jsxs(x,{variant:"ghost",size:"sm",className:"text-muted-foreground self-start @lg:self-end",children:[e.length===1?"1 agent differs":`${e.length} agents differ`,s.jsx(W,{className:"size-3.5","aria-hidden":!0})]})}),s.jsxs(D,{className:"w-80 space-y-2",children:[s.jsx(K,{className:"text-sm font-medium",children:"Set differently for Files & commands"}),s.jsx("ul",{className:"space-y-1",children:e.map(t=>s.jsx(Ne,{agent:t},t.agentId))})]})]})}function O(e){return e.filter(t=>t.kind==="state")}function be({area:e,overview:t}){const n=p({kind:"default"}),a=ue(e.id),l=F({kind:"area",area:e.id})??0,[o,d]=N.useState(null),i=(r,u)=>{n.mutate({kind:"patch",areas:{[e.id]:r},...u&&u.length>0?{applyToAgents:u}:{},surface:"settings"},{onError:j,onSettled:()=>d(null)})},m=r=>{r!==e.resolved.state&&(a.length>0?d(r):i(r))};return s.jsxs(s.Fragment,{children:[s.jsx(V,{areaId:e.id,label:e.label,description:e.description,floor:e.floor,value:e.resolved.state,sourceText:[oe(e.resolved.source,t.preset),T(l)].filter(Boolean).join(" · "),why:s.jsx(b,{question:`Why is ${e.label} set to ${g[e.resolved.state]}?`,sentence:z({...e.resolved,preset:t.preset}),...e.lastChange?{lastChange:e.lastChange}:{}}),onChange:m,disabled:n.isPending,footer:s.jsx(fe,{area:e.id,areaLabel:e.label,agents:a}),details:s.jsx(X,{scope:{kind:"default"},area:e,surface:"settings",preset:t.preset})}),s.jsx(de,{open:o!==null,onCancel:()=>d(null),subject:e.label,next:o??"ask",agents:a.map(r=>({agentId:r.agentId,agentName:r.agentName,detail:`${g[r.state]}${r.action?" (one action)":""}`})),affectedCount:l,onKeep:()=>o&&i(o),onUpdate:r=>o&&i(o,r),pending:n.isPending})]})}function we({agentId:e,agentName:t,area:n}){var r;const a=((r=y().data)==null?void 0:r.preset)??null,l=p({kind:"agent",agentId:e}),o=n.resolved.source==="agent-area"||n.resolved.source==="agent-action",d=o?`Everyone else: ${g[n.inherited.state]}`:`Same as everyone (${g[n.inherited.state]})`,i=n.changedOutsideAt?`Changed outside DorkOS · ${d}`:d,m=u=>l.mutate({kind:"patch",areas:{[n.id]:u},surface:"agent-page"},{onError:j});return s.jsx(V,{areaId:n.id,label:n.label,description:n.description,floor:n.floor,value:n.resolved.state,sourceText:i,why:s.jsx(b,{question:`Why is ${n.label} set to ${g[n.resolved.state]} for ${t}?`,sentence:z({...n.resolved,preset:a}),...n.lastChange?{lastChange:n.lastChange}:{}}),changed:o,onChange:u=>{u!==n.resolved.state&&m(u)},onReset:()=>m(null),disabled:l.isPending,details:s.jsx(X,{scope:{kind:"agent",agentId:e},area:n,surface:"agent-page",preset:a,agentName:t})})}function Re({scope:e}){const t=y(),n=ce(e.kind==="agent"?e.agentId:void 0);return e.kind==="default"?t.isError?s.jsx("p",{className:"text-muted-foreground text-sm",children:"Couldn’t read the permissions."}):t.data?s.jsx("div",{className:"divide-border divide-y","data-testid":"permission-list-default",children:O(t.data.areas).map(a=>s.jsx(be,{area:a,overview:t.data},a.id))}):s.jsx(C,{className:"h-20 w-full"}):n.isError?s.jsx("p",{className:"text-muted-foreground text-sm",children:"Couldn’t read this agent’s permissions."}):n.data?s.jsxs("div",{className:"divide-border divide-y","data-testid":"permission-list-agent",children:[s.jsx(je,{agentId:e.agentId,agentName:n.data.agentName,files:n.data.filesAndCommands}),O(n.data.areas).map(a=>s.jsx(we,{agentId:e.agentId,agentName:n.data.agentName,area:a},a.id))]}):s.jsx(C,{className:"h-20 w-full"})}function ye(e,t){if(e===null)return t.target.kind==="agent"?"the default":"the preset";switch(t.key.kind){case"files":return ke(e)?f(e):e;case"preset":return e in S?S[e]:e;default:return e in g?g[e]:e}}function ke(e){return le.includes(e)}function Ce(e){if(e.length===1){const{change:t}=e[0];return`This has changed since. Set it back to ${ye(t.before,t)} anyway?`}return"Some of this has changed since. Set it all back anyway?"}function $e(e){if(e.suggestionRestored)return null;if(e.changes.length===0&&e.skipped.length===0)return"Nothing to undo. It was already back.";if(e.skipped.length===0)return null;const t=e.changes.length,n=`Undid ${t} ${t===1?"change":"changes"}.`,a=e.skipped.filter(i=>i.reason==="changed-since").length,l=e.skipped.filter(i=>i.reason==="floor").length,o=e.skipped.filter(i=>i.reason==="gone").length,d=[];if(a>0&&d.push(`${a} had changed since and ${a===1?"was":"were"} left alone.`),l>0&&d.push(`${l} can’t be set to Allowed and ${l===1?"was":"were"} left alone.`),o>0&&d.push(`${o} ${o===1?"was about an agent":"were about agents"} no longer here.`),d.length>1){const i=e.skipped.length;return`${n} ${i} ${i===1?"was":"were"} left alone.`}return[n,...d].join(" ")}function Se({item:e}){const t=xe(),[n,a]=N.useState(null),[l,o]=N.useState(null),d=e.undone,i=e.undoable&&!d,m=ie(e.occurredAt),r=u=>t.mutate({eventId:e.id,...u?{force:!0}:{}},{onSuccess:c=>{a(null),o($e(c))},onError:c=>{const h=he(c);h?a(h):j(c)}});return s.jsxs("li",{className:"space-y-1","data-testid":"permission-history-row",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"min-w-0 space-y-0.5",children:[s.jsx("p",{className:"text-sm",children:e.summary}),s.jsxs("p",{className:"text-muted-foreground text-xs",children:[e.actorLabel," · ",m]}),e.actorDetail?s.jsx("p",{className:"text-muted-foreground text-xs",children:e.actorDetail}):null]}),d?s.jsx("span",{className:"text-muted-foreground shrink-0 pt-0.5 text-xs",children:"Undone"}):i&&n===null?s.jsx(x,{variant:"ghost",size:"sm",className:"h-7 shrink-0 px-2 text-xs",disabled:t.isPending,"aria-label":`Undo: ${e.summary}, ${m}`,onClick:()=>r(!1),children:"Undo"}):null]}),n!==null?s.jsxs("div",{role:"group","aria-label":"Undo conflict",className:"bg-muted/50 flex flex-col gap-2 rounded-md p-2 @md:flex-row @md:items-center @md:justify-between",children:[s.jsx("p",{className:"text-sm",children:Ce(n)}),s.jsxs("div",{className:"flex shrink-0 gap-2",children:[s.jsx(x,{variant:"outline",size:"sm",disabled:t.isPending,onClick:()=>a(null),children:"Cancel"}),s.jsx(x,{size:"sm",disabled:t.isPending,onClick:()=>r(!0),children:"Set it back"})]})]}):null,l?s.jsx("p",{className:"text-muted-foreground text-xs",role:"status",children:l}):null]})}function ze({agentId:e}){const{data:t,isPending:n,isError:a}=me(e);if(a)return s.jsx("p",{className:"text-muted-foreground text-sm",children:"Couldn’t read the history."});if(n)return s.jsx(C,{className:"h-12 w-full"});const l=(t==null?void 0:t.items)??[];return l.length===0?s.jsx("p",{className:"text-muted-foreground text-sm",children:"No permission changes yet."}):s.jsx("ul",{className:"@container space-y-3","aria-label":"Permission history",children:l.map(o=>s.jsx(Se,{item:o},o.id))})}export{Ee as D,Re as P,ze as a};
@@ -1 +1 @@
1
- import{y as n,j as s}from"./index-DcZPWi_I.js";import{P as r,a}from"./PermissionHistory-Ctdqhib6.js";import"./ApplyToOverridesDialog-DeWaXbgm.js";function d({member:t}){var o;const e=n((o=t.agent)==null?void 0:o.runtime),i=(e==null?void 0:e.supportsMcp)??!0;return s.jsxs("div",{className:"space-y-6",children:[i?null:s.jsx("p",{className:"text-muted-foreground text-sm",children:"This agent can’t use DorkOS tools, so these don’t apply."}),s.jsx(r,{scope:{kind:"agent",agentId:t.id}}),s.jsxs("section",{className:"space-y-2",children:[s.jsx("h3",{className:"text-sm font-semibold",children:"History"}),s.jsx(a,{agentId:t.id})]})]})}export{d as PermissionsPage};
1
+ import{y as n,j as s}from"./index-8-iQ6PnT.js";import{P as r,a}from"./PermissionHistory-CKebTVkq.js";import"./ApplyToOverridesDialog-CrqkeHQb.js";function d({member:t}){var o;const e=n((o=t.agent)==null?void 0:o.runtime),i=(e==null?void 0:e.supportsMcp)??!0;return s.jsxs("div",{className:"space-y-6",children:[i?null:s.jsx("p",{className:"text-muted-foreground text-sm",children:"This agent can’t use DorkOS tools, so these don’t apply."}),s.jsx(r,{scope:{kind:"agent",agentId:t.id}}),s.jsxs("section",{className:"space-y-2",children:[s.jsx("h3",{className:"text-sm font-semibold",children:"History"}),s.jsx(a,{agentId:t.id})]})]})}export{d as PermissionsPage};
@@ -1 +1 @@
1
- import{b as n,j as t,e as i}from"./index-DcZPWi_I.js";import{u as m,P as p}from"./use-personality-commit-BB5aeh6p.js";import"./dorkbot-templates-8Yu9POWJ.js";import"./sound-D3r8dGFH.js";import"./soul-file-DOfamgB5.js";function P({member:r}){const{agent:e,isPending:o,update:a}=n(r),s=m(e,a);return o?t.jsx(i,{className:"h-40 w-full"}):e?t.jsx(p,{traits:s.traits,onTraitsChange:s.onTraitsChange,compact:!0,className:"p-1"}):t.jsx("p",{className:"text-muted-foreground p-1 text-sm",children:"Couldn’t read this agent’s personality."})}export{P as PersonalityPopover};
1
+ import{b as n,j as t,e as i}from"./index-8-iQ6PnT.js";import{u as m,P as p}from"./use-personality-commit-BvqCwzAC.js";import"./dorkbot-templates-8Yu9POWJ.js";import"./sound-D3r8dGFH.js";import"./soul-file-DgfhKQIK.js";function P({member:r}){const{agent:e,isPending:o,update:a}=n(r),s=m(e,a);return o?t.jsx(i,{className:"h-40 w-full"}):e?t.jsx(p,{traits:s.traits,onTraitsChange:s.onTraitsChange,compact:!0,className:"p-1"}):t.jsx("p",{className:"text-muted-foreground p-1 text-sm",children:"Couldn’t read this agent’s personality."})}export{P as PersonalityPopover};
@@ -0,0 +1 @@
1
+ import{j as r}from"./index-8-iQ6PnT.js";import{b as t}from"./ProfileFields-Dp68ebW9.js";import"./profile-errors-C1qSJkiG.js";import"./use-mounted-ref-BAO3qunF.js";function s({member:o}){return r.jsx(t,{member:o})}export{s as PhotoPage};
@@ -1 +1 @@
1
- import{r as b,j as n,bl as _,bo as p,bp as E,ez as k,bt as S,dl as I,dd as A,eA as N,eB as R,bm as T,bu as h,eC as M,eD as D,eE as $,eF as F,a1 as O,a2 as V,aa as G}from"./index-DcZPWi_I.js";import{S as L}from"./shield-x-Dhl4YvvW.js";var K=Object.defineProperty,g=(e,t)=>K(e,"name",{value:t,configurable:!0}),x="Tabs",[U,oe]=E(x,[k]),C=k(),[q,y]=U(x),z=b.forwardRef(g(function(t,a){const{__scopeTabs:r,value:s,onValueChange:o,defaultValue:d,orientation:i="horizontal",dir:l,activationMode:v="automatic",...m}=t,u=S(l),[c,f]=I({prop:s,onChange:o,defaultProp:d??"",caller:x});return n.jsx(q,{scope:r,baseId:A(),value:c,onValueChange:f,orientation:i,dir:u,activationMode:v,children:n.jsx(p.div,{dir:u,"data-orientation":i,...m,ref:a})})},"Tabs")),B="TabsList",H=b.forwardRef(g(function(t,a){const{__scopeTabs:r,loop:s=!0,...o}=t,d=y(B,r),i=C(r);return n.jsx(N,{asChild:!0,...i,orientation:d.orientation,dir:d.dir,loop:s,children:n.jsx(p.div,{role:"tablist","aria-orientation":d.orientation,...o,ref:a})})},"TabsList")),Q="TabsTrigger",W=b.forwardRef(g(function(t,a){const{__scopeTabs:r,value:s,disabled:o=!1,...d}=t,i=y(Q,r),l=C(r),v=w(i.baseId,s),m=j(i.baseId,s),u=s===i.value;return n.jsx(R,{asChild:!0,...l,focusable:!o,active:u,children:n.jsx(p.button,{type:"button",role:"tab","aria-selected":u,"aria-controls":m,"data-state":u?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:v,...d,ref:a,onMouseDown:T(t.onMouseDown,c=>{!o&&c.button===0&&c.ctrlKey===!1?i.onValueChange(s):c.preventDefault()}),onKeyDown:T(t.onKeyDown,c=>{o||c.target!==c.currentTarget||[" ","Enter"].includes(c.key)&&i.onValueChange(s)}),onFocus:T(t.onFocus,()=>{const c=i.activationMode!=="manual";!u&&!o&&c&&i.onValueChange(s)})})})},"TabsTrigger")),X="TabsContent",J=b.forwardRef(g(function(t,a){const{__scopeTabs:r,value:s,forceMount:o,children:d,...i}=t,l=y(X,r),v=w(l.baseId,s),m=j(l.baseId,s),u=s===l.value,c=b.useRef(u);return b.useEffect(()=>{const f=requestAnimationFrame(()=>c.current=!1);return()=>cancelAnimationFrame(f)},[]),n.jsx(_,{present:o||u,children:({present:f})=>n.jsx(p.div,{"data-state":u?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":v,hidden:!f,id:m,tabIndex:0,...i,ref:a,style:{...t.style,animationDuration:c.current?"0s":void 0},children:f&&d})})},"TabsContent"));function w(e,t){return`${e}-trigger-${t}`}g(w,"makeTriggerId");function j(e,t){return`${e}-content-${t}`}g(j,"makeContentId");var Y=z,Z=H,ee=W,te=J;function ie({...e}){return n.jsx(Y,{"data-slot":"tabs",...e})}function ce({className:e,responsive:t=!0,...a}){return n.jsx(Z,{"data-slot":"tabs-list",className:h("bg-dui-muted text-dui-muted-foreground inline-flex items-center justify-center rounded-lg p-1",t?M:"h-9",e),...a})}function ue({className:e,...t}){return n.jsx(ee,{"data-slot":"tabs-trigger",className:h("ring-offset-dui-background inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-[color,background-color,box-shadow,opacity] motion-reduce:transition-none! md:py-1","focus-visible:ring-dui-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none","disabled:pointer-events-none disabled:opacity-50","data-[state=active]:bg-dui-background data-[state=active]:text-dui-foreground data-[state=active]:shadow",e),...t})}function de({className:e,...t}){return n.jsx(te,{"data-slot":"tabs-content",className:h("ring-offset-dui-background mt-2","data-[state=active]:animate-in data-[state=active]:fade-in-0 data-[state=active]:duration-150 motion-reduce:animate-none!","focus-visible:ring-dui-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...t})}const ae={default:!1,plan:!1,acceptEdits:!1,dontAsk:!0,bypassPermissions:!0,auto:!0};function le(e){return ae[e]??!1}function se(e){try{return F.toString(e)}catch{return`On the schedule ${e}`}}function fe(e){const t=e.cron?se(e.cron):"Runs only when you ask",a=D(e.startsEnabled);return`${t}, ${a}. This job ${$(e.permissionMode)}.`}function be(e,t){const a=O(),{enabled:r=!0,...s}=t??{},o=Object.keys(s).length>0;return V({queryKey:G.permissionPreview(e??"",o?s:void 0),queryFn:()=>a.previewMarketplacePackage(e,o?s:void 0),enabled:r&&e!==null,staleTime:3e4,networkMode:"always"})}function P(e){const t=e==null?void 0:e.body,a=Array.isArray(t==null?void 0:t.errors)?t.errors.filter(r=>typeof r=="string"):[];return a.length>0?{reasons:a,checked:!0}:{reasons:e instanceof Error&&e.message?[e.message]:[],checked:!1}}function ge(e){return P(e).checked}function ve({error:e}){const{reasons:t,checked:a}=P(e);return n.jsxs("div",{role:"alert",className:"border-destructive/40 bg-destructive/5 space-y-2 rounded-md border p-3 text-sm",children:[n.jsxs("p",{className:"text-destructive flex items-center gap-2 font-medium",children:[n.jsx(L,{className:"size-4 shrink-0","aria-hidden":!0}),"DorkOS won’t install this package"]}),n.jsx("p",{className:"text-muted-foreground text-xs",children:a?"What it found:":"It couldn’t check what this package does."}),t.length>0&&n.jsx("ul",{className:"text-muted-foreground list-disc space-y-1 pl-5 text-xs [overflow-wrap:anywhere]",children:t.map(r=>n.jsx("li",{children:r},r))})]})}export{ve as P,ie as T,ce as a,ue as b,de as c,fe as d,ge as i,le as r,be as u};
1
+ import{r as b,j as n,bl as _,bo as p,bp as E,ez as k,bt as S,dl as I,dd as A,eA as N,eB as R,bm as T,bu as h,eC as M,eD as D,eE as $,eF as F,a1 as O,a2 as V,aa as G}from"./index-8-iQ6PnT.js";import{S as L}from"./shield-x-B0W_7qwR.js";var K=Object.defineProperty,g=(e,t)=>K(e,"name",{value:t,configurable:!0}),x="Tabs",[U,oe]=E(x,[k]),C=k(),[q,y]=U(x),z=b.forwardRef(g(function(t,a){const{__scopeTabs:r,value:s,onValueChange:o,defaultValue:d,orientation:i="horizontal",dir:l,activationMode:v="automatic",...m}=t,u=S(l),[c,f]=I({prop:s,onChange:o,defaultProp:d??"",caller:x});return n.jsx(q,{scope:r,baseId:A(),value:c,onValueChange:f,orientation:i,dir:u,activationMode:v,children:n.jsx(p.div,{dir:u,"data-orientation":i,...m,ref:a})})},"Tabs")),B="TabsList",H=b.forwardRef(g(function(t,a){const{__scopeTabs:r,loop:s=!0,...o}=t,d=y(B,r),i=C(r);return n.jsx(N,{asChild:!0,...i,orientation:d.orientation,dir:d.dir,loop:s,children:n.jsx(p.div,{role:"tablist","aria-orientation":d.orientation,...o,ref:a})})},"TabsList")),Q="TabsTrigger",W=b.forwardRef(g(function(t,a){const{__scopeTabs:r,value:s,disabled:o=!1,...d}=t,i=y(Q,r),l=C(r),v=w(i.baseId,s),m=j(i.baseId,s),u=s===i.value;return n.jsx(R,{asChild:!0,...l,focusable:!o,active:u,children:n.jsx(p.button,{type:"button",role:"tab","aria-selected":u,"aria-controls":m,"data-state":u?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:v,...d,ref:a,onMouseDown:T(t.onMouseDown,c=>{!o&&c.button===0&&c.ctrlKey===!1?i.onValueChange(s):c.preventDefault()}),onKeyDown:T(t.onKeyDown,c=>{o||c.target!==c.currentTarget||[" ","Enter"].includes(c.key)&&i.onValueChange(s)}),onFocus:T(t.onFocus,()=>{const c=i.activationMode!=="manual";!u&&!o&&c&&i.onValueChange(s)})})})},"TabsTrigger")),X="TabsContent",J=b.forwardRef(g(function(t,a){const{__scopeTabs:r,value:s,forceMount:o,children:d,...i}=t,l=y(X,r),v=w(l.baseId,s),m=j(l.baseId,s),u=s===l.value,c=b.useRef(u);return b.useEffect(()=>{const f=requestAnimationFrame(()=>c.current=!1);return()=>cancelAnimationFrame(f)},[]),n.jsx(_,{present:o||u,children:({present:f})=>n.jsx(p.div,{"data-state":u?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":v,hidden:!f,id:m,tabIndex:0,...i,ref:a,style:{...t.style,animationDuration:c.current?"0s":void 0},children:f&&d})})},"TabsContent"));function w(e,t){return`${e}-trigger-${t}`}g(w,"makeTriggerId");function j(e,t){return`${e}-content-${t}`}g(j,"makeContentId");var Y=z,Z=H,ee=W,te=J;function ie({...e}){return n.jsx(Y,{"data-slot":"tabs",...e})}function ce({className:e,responsive:t=!0,...a}){return n.jsx(Z,{"data-slot":"tabs-list",className:h("bg-dui-muted text-dui-muted-foreground inline-flex items-center justify-center rounded-lg p-1",t?M:"h-9",e),...a})}function ue({className:e,...t}){return n.jsx(ee,{"data-slot":"tabs-trigger",className:h("ring-offset-dui-background inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-[color,background-color,box-shadow,opacity] motion-reduce:transition-none! md:py-1","focus-visible:ring-dui-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none","disabled:pointer-events-none disabled:opacity-50","data-[state=active]:bg-dui-background data-[state=active]:text-dui-foreground data-[state=active]:shadow",e),...t})}function de({className:e,...t}){return n.jsx(te,{"data-slot":"tabs-content",className:h("ring-offset-dui-background mt-2","data-[state=active]:animate-in data-[state=active]:fade-in-0 data-[state=active]:duration-150 motion-reduce:animate-none!","focus-visible:ring-dui-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...t})}const ae={default:!1,plan:!1,acceptEdits:!1,dontAsk:!0,bypassPermissions:!0,auto:!0};function le(e){return ae[e]??!1}function se(e){try{return F.toString(e)}catch{return`On the schedule ${e}`}}function fe(e){const t=e.cron?se(e.cron):"Runs only when you ask",a=D(e.startsEnabled);return`${t}, ${a}. This job ${$(e.permissionMode)}.`}function be(e,t){const a=O(),{enabled:r=!0,...s}=t??{},o=Object.keys(s).length>0;return V({queryKey:G.permissionPreview(e??"",o?s:void 0),queryFn:()=>a.previewMarketplacePackage(e,o?s:void 0),enabled:r&&e!==null,staleTime:3e4,networkMode:"always"})}function P(e){const t=e==null?void 0:e.body,a=Array.isArray(t==null?void 0:t.errors)?t.errors.filter(r=>typeof r=="string"):[];return a.length>0?{reasons:a,checked:!0}:{reasons:e instanceof Error&&e.message?[e.message]:[],checked:!1}}function ge(e){return P(e).checked}function ve({error:e}){const{reasons:t,checked:a}=P(e);return n.jsxs("div",{role:"alert",className:"border-destructive/40 bg-destructive/5 space-y-2 rounded-md border p-3 text-sm",children:[n.jsxs("p",{className:"text-destructive flex items-center gap-2 font-medium",children:[n.jsx(L,{className:"size-4 shrink-0","aria-hidden":!0}),"DorkOS won’t install this package"]}),n.jsx("p",{className:"text-muted-foreground text-xs",children:a?"What it found:":"It couldn’t check what this package does."}),t.length>0&&n.jsx("ul",{className:"text-muted-foreground list-disc space-y-1 pl-5 text-xs [overflow-wrap:anywhere]",children:t.map(r=>n.jsx("li",{children:r},r))})]})}export{ve as P,ie as T,ce as a,ue as b,de as c,fe as d,ge as i,le as r,be as u};
@@ -1 +1 @@
1
- import{r as x,t as S,j as e,be as u,bf as h,bg as m,g as E,B as d,I as p,bh as g,bi as b}from"./index-DcZPWi_I.js";import{u as y,a as C,b as f,c as k,h as A,d as F,n as I}from"./profile-errors-GbTNc2-M.js";import{u as j}from"./use-mounted-ref-CZaegwTr.js";function v(t){const[r,a]=x.useState(t),[n,s]=x.useState(t);return n!==t&&(s(t),a(t)),[r,a]}const D="image/png,image/jpeg,image/webp";function l({tone:t,children:r}){return e.jsx("p",{role:t==="error"?"alert":"status",className:t==="error"?"text-destructive text-xs":"text-muted-foreground text-xs",children:r})}function H({member:t}){const r=S(t),a=x.useRef(null),n=y(),s=C();function c(i){const o=i==null?void 0:i[0];o&&(n.mutate({file:o}),a.current&&(a.current.value=""))}return e.jsx(u,{children:e.jsxs(h,{className:"space-y-3",children:[e.jsx(m,{label:"Photo",description:"PNG, JPEG or WebP, up to 2 MB.",orientation:"vertical",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(E,{size:"lg",kind:r.kind,color:r.color,emoji:r.emoji,imageUrl:r.imageUrl,fallback:r.fallback,origin:r.origin}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("input",{ref:a,type:"file",accept:D,className:"hidden","data-testid":"profile-photo-input",onChange:i=>c(i.target.files)}),e.jsx(d,{size:"sm",variant:"outline",disabled:n.isPending,onClick:()=>{var i;return(i=a.current)==null?void 0:i.click()},children:t.imageUrl?"Change photo":"Upload a photo"}),t.imageUrl&&e.jsx(d,{size:"sm",variant:"ghost",disabled:s.isPending,onClick:()=>s.mutate(),children:"Remove"})]})]})}),n.isError&&e.jsx(l,{tone:"error",children:f(n.error)}),s.isError&&e.jsx(l,{tone:"error",children:f(s.error)})]})})}function L({member:t}){const r=j(),a=F({isShownInline:()=>r.current}),n=t.displayName===g?"":t.displayName,[s,c]=v(n),i=b(t),o=s.trim().length>0&&s.trim()!==n,N=s.trim().length>0&&(o||i!==null);return e.jsx(u,{children:e.jsxs(h,{className:"space-y-3",children:[e.jsx(m,{label:"Display name",description:i?`${i}. Save it to make it yours.`:"What DorkOS calls you.",orientation:"vertical",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(p,{value:s,maxLength:80,"aria-label":"Display name",placeholder:g,onChange:P=>c(P.target.value)}),e.jsx(d,{size:"sm",disabled:!N||a.isPending,onClick:()=>a.mutate(s.trim()),children:"Save"})]})}),a.isError&&e.jsx(l,{tone:"error",children:I(a.error)}),a.isSuccess&&s.trim()===a.variables&&e.jsx(l,{tone:"ok",children:"Saved."})]})})}function w({member:t}){var i;const r=j(),a=k({isShownInline:()=>r.current}),[n,s]=v(t.handle??""),c=n.trim()!==(t.handle??"");return e.jsx(u,{children:e.jsxs(h,{className:"space-y-3",children:[e.jsx(m,{label:"Handle",description:"What others type after @ to reach you.",orientation:"vertical",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(p,{value:n,maxLength:64,placeholder:"yourname","aria-label":"Handle",onChange:o=>s(o.target.value)}),e.jsx(d,{size:"sm",disabled:!c||a.isPending,onClick:()=>a.mutate({authorId:t.id,handle:n.trim()}),children:"Save"})]})}),a.isError&&e.jsx(l,{tone:"error",children:A(a.error,n.trim())}),a.isSuccess&&n.trim()===((i=a.variables)==null?void 0:i.handle)&&e.jsx(l,{tone:"ok",children:"Saved."})]})})}function z({member:t}){var r,a;return e.jsx(u,{children:e.jsx(h,{children:e.jsx(m,{label:"Email",description:(r=t.person)!=null&&r.email?"Your sign-in email. It stays fixed.":"No login on this machine. Turn one on in Settings › Login & security.",orientation:"vertical",children:e.jsx(p,{readOnly:!0,"aria-label":"Email",value:((a=t.person)==null?void 0:a.email)??"",placeholder:"No email on this machine",className:"text-muted-foreground"})})})})}export{l as F,L as P,w as a,H as b,z as c,v as u};
1
+ import{r as x,t as S,j as e,be as u,bf as h,bg as m,g as E,B as d,I as p,bh as g,bi as b}from"./index-8-iQ6PnT.js";import{u as y,a as C,b as f,c as k,h as A,d as F,n as I}from"./profile-errors-C1qSJkiG.js";import{u as j}from"./use-mounted-ref-BAO3qunF.js";function v(t){const[r,a]=x.useState(t),[n,s]=x.useState(t);return n!==t&&(s(t),a(t)),[r,a]}const D="image/png,image/jpeg,image/webp";function l({tone:t,children:r}){return e.jsx("p",{role:t==="error"?"alert":"status",className:t==="error"?"text-destructive text-xs":"text-muted-foreground text-xs",children:r})}function H({member:t}){const r=S(t),a=x.useRef(null),n=y(),s=C();function c(i){const o=i==null?void 0:i[0];o&&(n.mutate({file:o}),a.current&&(a.current.value=""))}return e.jsx(u,{children:e.jsxs(h,{className:"space-y-3",children:[e.jsx(m,{label:"Photo",description:"PNG, JPEG or WebP, up to 2 MB.",orientation:"vertical",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(E,{size:"lg",kind:r.kind,color:r.color,emoji:r.emoji,imageUrl:r.imageUrl,fallback:r.fallback,origin:r.origin}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("input",{ref:a,type:"file",accept:D,className:"hidden","data-testid":"profile-photo-input",onChange:i=>c(i.target.files)}),e.jsx(d,{size:"sm",variant:"outline",disabled:n.isPending,onClick:()=>{var i;return(i=a.current)==null?void 0:i.click()},children:t.imageUrl?"Change photo":"Upload a photo"}),t.imageUrl&&e.jsx(d,{size:"sm",variant:"ghost",disabled:s.isPending,onClick:()=>s.mutate(),children:"Remove"})]})]})}),n.isError&&e.jsx(l,{tone:"error",children:f(n.error)}),s.isError&&e.jsx(l,{tone:"error",children:f(s.error)})]})})}function L({member:t}){const r=j(),a=F({isShownInline:()=>r.current}),n=t.displayName===g?"":t.displayName,[s,c]=v(n),i=b(t),o=s.trim().length>0&&s.trim()!==n,N=s.trim().length>0&&(o||i!==null);return e.jsx(u,{children:e.jsxs(h,{className:"space-y-3",children:[e.jsx(m,{label:"Display name",description:i?`${i}. Save it to make it yours.`:"What DorkOS calls you.",orientation:"vertical",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(p,{value:s,maxLength:80,"aria-label":"Display name",placeholder:g,onChange:P=>c(P.target.value)}),e.jsx(d,{size:"sm",disabled:!N||a.isPending,onClick:()=>a.mutate(s.trim()),children:"Save"})]})}),a.isError&&e.jsx(l,{tone:"error",children:I(a.error)}),a.isSuccess&&s.trim()===a.variables&&e.jsx(l,{tone:"ok",children:"Saved."})]})})}function w({member:t}){var i;const r=j(),a=k({isShownInline:()=>r.current}),[n,s]=v(t.handle??""),c=n.trim()!==(t.handle??"");return e.jsx(u,{children:e.jsxs(h,{className:"space-y-3",children:[e.jsx(m,{label:"Handle",description:"What others type after @ to reach you.",orientation:"vertical",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(p,{value:n,maxLength:64,placeholder:"yourname","aria-label":"Handle",onChange:o=>s(o.target.value)}),e.jsx(d,{size:"sm",disabled:!c||a.isPending,onClick:()=>a.mutate({authorId:t.id,handle:n.trim()}),children:"Save"})]})}),a.isError&&e.jsx(l,{tone:"error",children:A(a.error,n.trim())}),a.isSuccess&&n.trim()===((i=a.variables)==null?void 0:i.handle)&&e.jsx(l,{tone:"ok",children:"Saved."})]})})}function z({member:t}){var r,a;return e.jsx(u,{children:e.jsx(h,{children:e.jsx(m,{label:"Email",description:(r=t.person)!=null&&r.email?"Your sign-in email. It stays fixed.":"No login on this machine. Turn one on in Settings › Login & security.",orientation:"vertical",children:e.jsx(p,{readOnly:!0,"aria-label":"Email",value:((a=t.person)==null?void 0:a.email)??"",placeholder:"No email on this machine",className:"text-muted-foreground"})})})})}export{l as F,L as P,w as a,H as b,z as c,v as u};
@@ -1 +1 @@
1
- import{r as f,j as t,be as D,bf as R,bg as E,dU as H,dV as M,dW as _,dX as V,dY as Z,G as A,I as v,B as P,z as Y}from"./index-DcZPWi_I.js";import{F as j,b as B,P as K,a as $,c as G}from"./ProfileFields-T3vVbHRC.js";import{u as I,P as X,b as q}from"./ProfileRolePicker-BU4eiMKn.js";function U(e,s){if(e.length!==s.length)return!1;const n=new Set(s);return e.every(r=>n.has(r))}function J(){const{roles:e,isLoading:s,saveRoles:n}=I(),[r,i]=f.useState(e),[l,o]=f.useState(e),[d,u]=f.useState("idle"),[x,m]=f.useState(null);!s&&!U(l,e)&&(o(e),i(e));const h=()=>{u("saving"),n(r).then(()=>{u("idle"),m(r)}).catch(()=>u("error"))};return t.jsx(D,{children:t.jsxs(R,{className:"space-y-3",children:[t.jsx(E,{label:"What kind of work you do",description:"Only DorkBot and your agents read this. It stays on this machine.",orientation:"vertical",children:t.jsx(X,{selected:r,onChange:i,onConfirm:h,confirmLabel:d==="saving"?"Saving…":"Save",busy:d==="saving"||s})}),d==="error"&&t.jsx(j,{tone:"error",children:"Couldn’t save that. Try again."}),d!=="error"&&x&&U(r,x)&&t.jsx(j,{tone:"ok",children:"Saved."})]})})}const Q=Object.freeze({days:[1,2,3,4,5],start:"09:00",end:"17:00"});function ee(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}const k=new Map;function te(e){let s=k.get(e);return s||(s=new Intl.DateTimeFormat("en-US",{timeZone:e,hourCycle:"h23",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",weekday:"short"}),k.set(e,s)),s}const ne={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function w(e,s){const n={};for(const r of te(s).formatToParts(new Date(e)))n[r.type]=r.value;return{year:Number(n.year),month:Number(n.month),day:Number(n.day),hour:Number(n.hour),minute:Number(n.minute),second:Number(n.second),weekday:ne[n.weekday??""]??0}}function z(e,s){const n=w(e,s);return Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second)-Math.floor(e/1e3)*1e3}function se(e){const[s,n]=e.split(":").map(Number);return(s??0)*60+(n??0)}function ae(e,s,n,r,i){const l=se(r),o=Date.UTC(e,s-1,n,Math.floor(l/60),l%60),d=o-z(o-864e5,i),u=o-z(o+864e5,i),x=h=>{const y=w(h,i);return y.year===e&&y.month===s&&y.day===n&&y.hour*60+y.minute===l},m=[d,u].filter(x);return m.length>0?Math.min(...m):Math.max(d,u)}function re(e,s,n){const[r,i,l]=e.split("-").map(Number);return new Date(ae(r??1970,i??1,l??1,s,n))}function oe(e,s){const n=w(e.getTime(),s);return`${n.year}-${String(n.month).padStart(2,"0")}-${String(n.day).padStart(2,"0")}`}const ie=[{day:1,short:"M",name:"Monday"},{day:2,short:"T",name:"Tuesday"},{day:3,short:"W",name:"Wednesday"},{day:4,short:"T",name:"Thursday"},{day:5,short:"F",name:"Friday"},{day:6,short:"S",name:"Saturday"},{day:0,short:"S",name:"Sunday"}];function le(e){const s=typeof Intl.supportedValuesOf=="function"?Intl.supportedValuesOf("timeZone"):[];return s.includes(e)?s:[e,...s]}function de(e,s,n){const r=e??q()??ee(),i=s??Q;return{timezone:r,days:[...i.days],start:i.start,end:i.end,awayUntil:n!=null&&n.until?oe(new Date(n.until),r):""}}function b(e,s){return e.timezone===s.timezone&&e.start===s.start&&e.end===s.end&&e.awayUntil===s.awayUntil&&[...e.days].sort().join()===[...s.days].sort().join()}function ue(e){return e.days.length===0?"Pick at least one working day.":!e.start||!e.end?"Set a start and an end time.":e.end<=e.start?"The day has to end after it starts.":null}function ce(e,s,n){return e.awayUntil===s.awayUntil?n:e.awayUntil?{...n,until:re(e.awayUntil,"00:00",e.timezone).toISOString()}:null}function me(){const{timezone:e,workingHours:s,away:n,isLoading:r,saveHours:i}=I(),l=de(e,s,n),[o,d]=f.useState(l),[u,x]=f.useState(l),[m,h]=f.useState("idle"),[y,C]=f.useState(null),[F,O]=f.useState(null);!r&&!b(u,l)&&(x(l),d(l));const p=ue(o),g=a=>d(c=>({...c,...a})),W=a=>g({days:o.days.includes(a)?o.days.filter(c=>c!==a):[...o.days,a]}),L=()=>{if(p)return;h("saving");const a=o;i({timezone:a.timezone,workingHours:{days:[...a.days].sort((c,S)=>c-S),start:a.start,end:a.end},away:ce(a,u,n)}).then(()=>{h("idle"),C(null),O(a)}).catch(c=>{h("error"),C(c instanceof Error?c.message:null)})};return t.jsx(D,{children:t.jsxs(R,{className:"space-y-4",children:[t.jsx(E,{label:"Your hours",description:"Your time zone and working hours.",orientation:"vertical",children:t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"space-y-1",children:[t.jsx("label",{htmlFor:"profile-timezone",className:"text-muted-foreground text-xs",children:"Time zone"}),t.jsxs(H,{value:o.timezone,onValueChange:a=>g({timezone:a}),children:[t.jsx(M,{id:"profile-timezone",className:"h-8 text-sm",responsive:!1,children:t.jsx(_,{})}),t.jsx(V,{children:le(o.timezone).map(a=>t.jsx(Z,{value:a,responsive:!1,children:a.replace(/_/g," ")},a))})]})]}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{id:"profile-days-label",className:"text-muted-foreground text-xs",children:"Working days"}),t.jsx("div",{role:"group","aria-labelledby":"profile-days-label",className:"flex gap-1",children:ie.map(({day:a,short:c,name:S})=>{const T=o.days.includes(a);return t.jsx("button",{type:"button","aria-label":S,"aria-pressed":T,onClick:()=>W(a),className:A("size-8 rounded-md border text-xs font-medium",T?"bg-primary text-primary-foreground border-transparent":"text-muted-foreground hover:bg-accent"),children:c},a)})})]}),t.jsxs("div",{className:"flex gap-3",children:[t.jsxs("div",{className:"flex-1 space-y-1",children:[t.jsx("label",{htmlFor:"profile-hours-start",className:"text-muted-foreground text-xs",children:"Start"}),t.jsx(v,{id:"profile-hours-start",type:"time",value:o.start,onChange:a=>g({start:a.target.value})})]}),t.jsxs("div",{className:"flex-1 space-y-1",children:[t.jsx("label",{htmlFor:"profile-hours-end",className:"text-muted-foreground text-xs",children:"End"}),t.jsx(v,{id:"profile-hours-end",type:"time",value:o.end,onChange:a=>g({end:a.target.value})})]})]}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("label",{htmlFor:"profile-away-until",className:"text-muted-foreground text-xs",children:"Away until"}),t.jsxs("div",{className:"flex gap-2",children:[t.jsx(v,{id:"profile-away-until",type:"date",value:o.awayUntil,onChange:a=>g({awayUntil:a.target.value})}),o.awayUntil&&t.jsx(P,{type:"button",variant:"ghost",size:"sm",onClick:()=>g({awayUntil:""}),children:"Clear"})]})]})]})}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx(P,{type:"button",size:"sm",onClick:L,disabled:r||m==="saving"||p!==null||b(o,u),children:m==="saving"?"Saving…":"Save"}),p&&t.jsx(j,{tone:"error",children:p}),!p&&m==="error"&&t.jsx(j,{tone:"error",children:y??"Couldn’t save that. Try again."}),!p&&m!=="error"&&F&&b(o,F)&&t.jsx(j,{tone:"ok",children:"Saved."})]})]})})}function fe({member:e}){return t.jsxs("div",{className:"space-y-4",children:[t.jsx("p",{className:"text-muted-foreground text-sm",children:"How you appear on your team page, in rooms and beside your messages."}),t.jsx(B,{member:e}),t.jsx(K,{member:e}),t.jsx($,{member:e}),t.jsx(G,{member:e}),t.jsx(J,{}),t.jsx(me,{})]})}function N({children:e}){return t.jsx("p",{className:"text-muted-foreground py-8 text-center text-sm",children:e})}function pe(){var n;const e=Y(),s=(n=e.data)==null?void 0:n.members.find(r=>r.isSelf);return e.isPending?t.jsx(N,{children:"Loading your profile…"}):e.isError?t.jsx(N,{children:"Couldn’t load your profile. Reopen this tab to try again."}):s?t.jsx(fe,{member:s}):t.jsx(N,{children:"Couldn’t find your profile. Reopen this tab to try again."})}export{fe as P,pe as a};
1
+ import{r as f,j as t,be as D,bf as R,bg as E,dU as H,dV as M,dW as _,dX as V,dY as Z,G as A,I as v,B as P,z as Y}from"./index-8-iQ6PnT.js";import{F as j,b as B,P as K,a as $,c as G}from"./ProfileFields-Dp68ebW9.js";import{u as I,P as X,b as q}from"./ProfileRolePicker-ClOdfLda.js";function U(e,s){if(e.length!==s.length)return!1;const n=new Set(s);return e.every(r=>n.has(r))}function J(){const{roles:e,isLoading:s,saveRoles:n}=I(),[r,i]=f.useState(e),[l,o]=f.useState(e),[d,u]=f.useState("idle"),[x,m]=f.useState(null);!s&&!U(l,e)&&(o(e),i(e));const h=()=>{u("saving"),n(r).then(()=>{u("idle"),m(r)}).catch(()=>u("error"))};return t.jsx(D,{children:t.jsxs(R,{className:"space-y-3",children:[t.jsx(E,{label:"What kind of work you do",description:"Only DorkBot and your agents read this. It stays on this machine.",orientation:"vertical",children:t.jsx(X,{selected:r,onChange:i,onConfirm:h,confirmLabel:d==="saving"?"Saving…":"Save",busy:d==="saving"||s})}),d==="error"&&t.jsx(j,{tone:"error",children:"Couldn’t save that. Try again."}),d!=="error"&&x&&U(r,x)&&t.jsx(j,{tone:"ok",children:"Saved."})]})})}const Q=Object.freeze({days:[1,2,3,4,5],start:"09:00",end:"17:00"});function ee(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}const k=new Map;function te(e){let s=k.get(e);return s||(s=new Intl.DateTimeFormat("en-US",{timeZone:e,hourCycle:"h23",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",weekday:"short"}),k.set(e,s)),s}const ne={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function w(e,s){const n={};for(const r of te(s).formatToParts(new Date(e)))n[r.type]=r.value;return{year:Number(n.year),month:Number(n.month),day:Number(n.day),hour:Number(n.hour),minute:Number(n.minute),second:Number(n.second),weekday:ne[n.weekday??""]??0}}function z(e,s){const n=w(e,s);return Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second)-Math.floor(e/1e3)*1e3}function se(e){const[s,n]=e.split(":").map(Number);return(s??0)*60+(n??0)}function ae(e,s,n,r,i){const l=se(r),o=Date.UTC(e,s-1,n,Math.floor(l/60),l%60),d=o-z(o-864e5,i),u=o-z(o+864e5,i),x=h=>{const y=w(h,i);return y.year===e&&y.month===s&&y.day===n&&y.hour*60+y.minute===l},m=[d,u].filter(x);return m.length>0?Math.min(...m):Math.max(d,u)}function re(e,s,n){const[r,i,l]=e.split("-").map(Number);return new Date(ae(r??1970,i??1,l??1,s,n))}function oe(e,s){const n=w(e.getTime(),s);return`${n.year}-${String(n.month).padStart(2,"0")}-${String(n.day).padStart(2,"0")}`}const ie=[{day:1,short:"M",name:"Monday"},{day:2,short:"T",name:"Tuesday"},{day:3,short:"W",name:"Wednesday"},{day:4,short:"T",name:"Thursday"},{day:5,short:"F",name:"Friday"},{day:6,short:"S",name:"Saturday"},{day:0,short:"S",name:"Sunday"}];function le(e){const s=typeof Intl.supportedValuesOf=="function"?Intl.supportedValuesOf("timeZone"):[];return s.includes(e)?s:[e,...s]}function de(e,s,n){const r=e??q()??ee(),i=s??Q;return{timezone:r,days:[...i.days],start:i.start,end:i.end,awayUntil:n!=null&&n.until?oe(new Date(n.until),r):""}}function b(e,s){return e.timezone===s.timezone&&e.start===s.start&&e.end===s.end&&e.awayUntil===s.awayUntil&&[...e.days].sort().join()===[...s.days].sort().join()}function ue(e){return e.days.length===0?"Pick at least one working day.":!e.start||!e.end?"Set a start and an end time.":e.end<=e.start?"The day has to end after it starts.":null}function ce(e,s,n){return e.awayUntil===s.awayUntil?n:e.awayUntil?{...n,until:re(e.awayUntil,"00:00",e.timezone).toISOString()}:null}function me(){const{timezone:e,workingHours:s,away:n,isLoading:r,saveHours:i}=I(),l=de(e,s,n),[o,d]=f.useState(l),[u,x]=f.useState(l),[m,h]=f.useState("idle"),[y,C]=f.useState(null),[F,O]=f.useState(null);!r&&!b(u,l)&&(x(l),d(l));const p=ue(o),g=a=>d(c=>({...c,...a})),W=a=>g({days:o.days.includes(a)?o.days.filter(c=>c!==a):[...o.days,a]}),L=()=>{if(p)return;h("saving");const a=o;i({timezone:a.timezone,workingHours:{days:[...a.days].sort((c,S)=>c-S),start:a.start,end:a.end},away:ce(a,u,n)}).then(()=>{h("idle"),C(null),O(a)}).catch(c=>{h("error"),C(c instanceof Error?c.message:null)})};return t.jsx(D,{children:t.jsxs(R,{className:"space-y-4",children:[t.jsx(E,{label:"Your hours",description:"Your time zone and working hours.",orientation:"vertical",children:t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"space-y-1",children:[t.jsx("label",{htmlFor:"profile-timezone",className:"text-muted-foreground text-xs",children:"Time zone"}),t.jsxs(H,{value:o.timezone,onValueChange:a=>g({timezone:a}),children:[t.jsx(M,{id:"profile-timezone",className:"h-8 text-sm",responsive:!1,children:t.jsx(_,{})}),t.jsx(V,{children:le(o.timezone).map(a=>t.jsx(Z,{value:a,responsive:!1,children:a.replace(/_/g," ")},a))})]})]}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{id:"profile-days-label",className:"text-muted-foreground text-xs",children:"Working days"}),t.jsx("div",{role:"group","aria-labelledby":"profile-days-label",className:"flex gap-1",children:ie.map(({day:a,short:c,name:S})=>{const T=o.days.includes(a);return t.jsx("button",{type:"button","aria-label":S,"aria-pressed":T,onClick:()=>W(a),className:A("size-8 rounded-md border text-xs font-medium",T?"bg-primary text-primary-foreground border-transparent":"text-muted-foreground hover:bg-accent"),children:c},a)})})]}),t.jsxs("div",{className:"flex gap-3",children:[t.jsxs("div",{className:"flex-1 space-y-1",children:[t.jsx("label",{htmlFor:"profile-hours-start",className:"text-muted-foreground text-xs",children:"Start"}),t.jsx(v,{id:"profile-hours-start",type:"time",value:o.start,onChange:a=>g({start:a.target.value})})]}),t.jsxs("div",{className:"flex-1 space-y-1",children:[t.jsx("label",{htmlFor:"profile-hours-end",className:"text-muted-foreground text-xs",children:"End"}),t.jsx(v,{id:"profile-hours-end",type:"time",value:o.end,onChange:a=>g({end:a.target.value})})]})]}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("label",{htmlFor:"profile-away-until",className:"text-muted-foreground text-xs",children:"Away until"}),t.jsxs("div",{className:"flex gap-2",children:[t.jsx(v,{id:"profile-away-until",type:"date",value:o.awayUntil,onChange:a=>g({awayUntil:a.target.value})}),o.awayUntil&&t.jsx(P,{type:"button",variant:"ghost",size:"sm",onClick:()=>g({awayUntil:""}),children:"Clear"})]})]})]})}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx(P,{type:"button",size:"sm",onClick:L,disabled:r||m==="saving"||p!==null||b(o,u),children:m==="saving"?"Saving…":"Save"}),p&&t.jsx(j,{tone:"error",children:p}),!p&&m==="error"&&t.jsx(j,{tone:"error",children:y??"Couldn’t save that. Try again."}),!p&&m!=="error"&&F&&b(o,F)&&t.jsx(j,{tone:"ok",children:"Saved."})]})]})})}function fe({member:e}){return t.jsxs("div",{className:"space-y-4",children:[t.jsx("p",{className:"text-muted-foreground text-sm",children:"How you appear on your team page, in rooms and beside your messages."}),t.jsx(B,{member:e}),t.jsx(K,{member:e}),t.jsx($,{member:e}),t.jsx(G,{member:e}),t.jsx(J,{}),t.jsx(me,{})]})}function N({children:e}){return t.jsx("p",{className:"text-muted-foreground py-8 text-center text-sm",children:e})}function pe(){var n;const e=Y(),s=(n=e.data)==null?void 0:n.members.find(r=>r.isSelf);return e.isPending?t.jsx(N,{children:"Loading your profile…"}):e.isError?t.jsx(N,{children:"Couldn’t load your profile. Reopen this tab to try again."}):s?t.jsx(fe,{member:s}):t.jsx(N,{children:"Couldn’t find your profile. Reopen this tab to try again."})}export{fe as P,pe as a};
@@ -1 +1 @@
1
- import{a1 as O,a3 as E,a2 as S,au as h,a4 as j,at as D,eg as T,r as b,j as l,G as z,I as q,B as k}from"./index-DcZPWi_I.js";function B(){var a,d,c,m,g,p;const r=O(),s=E(),{data:e,isLoading:o}=S({queryKey:h.current(),queryFn:()=>r.getConfig(),staleTime:T}),i=j({mutationKey:D,mutationFn:u=>r.updateConfig({profile:u}),onSuccess:()=>{s.invalidateQueries({queryKey:h.all})}});return{roles:((a=e==null?void 0:e.profile)==null?void 0:a.roles)??[],rolePromptDismissedAt:((d=e==null?void 0:e.profile)==null?void 0:d.rolePromptDismissedAt)??null,identityPromptDismissedAt:((c=e==null?void 0:e.profile)==null?void 0:c.identityPromptDismissedAt)??null,timezone:((m=e==null?void 0:e.profile)==null?void 0:m.timezone)??null,workingHours:((g=e==null?void 0:e.profile)==null?void 0:g.workingHours)??null,away:((p=e==null?void 0:e.profile)==null?void 0:p.away)??null,isLoading:o,saveHours:u=>i.mutateAsync(u).then(()=>{}),saveRoles:u=>i.mutateAsync({roles:u}).then(()=>{}),dismissRolePrompt:()=>i.mutateAsync({rolePromptDismissedAt:new Date().toISOString()}).then(()=>{}),dismissIdentityPrompt:()=>i.mutateAsync({identityPromptDismissedAt:new Date().toISOString()}).then(()=>{})}}let x=!1;function K(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||null}catch{return null}}function Q(){const r=O(),s=E(),{data:e,isSuccess:o}=S({queryKey:h.current(),queryFn:()=>r.getConfig(),staleTime:T}),i=e==null?void 0:e.profile;b.useEffect(()=>{if(x||!o||!i)return;if(i.timezone!=null){x=!0;return}const a=K();a&&(x=!0,r.updateConfig({profile:{timezone:a}}).then(()=>s.invalidateQueries({queryKey:h.all})).catch(()=>{}))},[o,i,r,s])}const w=[{id:"software-development",label:"Building software"},{id:"hiring",label:"Hiring people"},{id:"marketing",label:"Marketing"},{id:"writing",label:"Writing"},{id:"research",label:"Research"},{id:"business-ops",label:"Running a business"},{id:"design",label:"Design"},{id:"sales",label:"Sales"}],M=6,F={developer:"software-development",engineer:"software-development",programmer:"software-development",coder:"software-development","software engineer":"software-development",recruiter:"hiring",recruiting:"hiring",talent:"hiring",marketer:"marketing",growth:"marketing",writer:"writing",author:"writing",researcher:"research",scientist:"research",founder:"business-ops",entrepreneur:"business-ops",operations:"business-ops",ops:"business-ops",designer:"design",seller:"sales",salesperson:"sales"};function H(r){var i;const s=r.trim().toLowerCase();if(s.length===0)return;const e=w.find(a=>a.id===s);if(e)return e.id;const o=F[s];return o||((i=w.find(a=>a.label.toLowerCase()===s))==null?void 0:i.id)}const A=10,N=60;function v(r,s){const e=s.trim().toLowerCase();return r.some(o=>o.trim().toLowerCase()===e)}function W({selected:r,onChange:s,onConfirm:e,confirmLabel:o,onSkip:i,skipLabel:a,busy:d=!1,error:c=null}){const[m,g]=b.useState(!1),[p,u]=b.useState(""),C=b.useRef(null),y=w.slice(0,M),I=r.filter(t=>!y.some(n=>n.id===t)),f=r.length>=A,P=t=>{v(r,t)?s(r.filter(n=>n!==t)):f||s([...r,t])},L=()=>{const t=p.trim().slice(0,N);if(!t)return;const n=H(t),R=n&&y.some(_=>_.id===n)?n:t;!v(r,R)&&r.length<A&&s([...r,R]),u("")};return l.jsxs("div",{className:"flex flex-col gap-3",children:[l.jsxs("div",{className:"flex flex-wrap gap-1.5",role:"group","aria-label":"What kind of work you do",children:[y.map(t=>{const n=v(r,t.id);return l.jsx("button",{type:"button","aria-pressed":n,disabled:f&&!n,onClick:()=>P(t.id),className:z("focus-visible:ring-ring rounded-md border px-2.5 py-1 text-xs transition-colors duration-150 focus-visible:ring-2 focus-visible:outline-none disabled:opacity-50",n?"border-primary bg-primary text-primary-foreground":"border-input bg-background text-foreground hover:bg-accent"),children:t.label},t.id)}),I.map(t=>l.jsx("button",{type:"button","aria-pressed":!0,onClick:()=>s(r.filter(n=>n!==t)),className:"border-primary bg-primary text-primary-foreground focus-visible:ring-ring rounded-md border px-2.5 py-1 text-xs transition-colors duration-150 focus-visible:ring-2 focus-visible:outline-none",children:t},t)),!m&&l.jsx("button",{type:"button",disabled:f,onClick:()=>{g(!0),setTimeout(()=>{var t;return(t=C.current)==null?void 0:t.focus()},0)},className:"border-input text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:ring-ring rounded-md border border-dashed px-2.5 py-1 text-xs transition-colors duration-150 focus-visible:ring-2 focus-visible:outline-none disabled:opacity-50",children:"Something else"})]}),f&&l.jsx("p",{className:"text-muted-foreground text-xs","data-testid":"profile-role-cap-hint",children:"Ten at most. Remove a role to add another."}),m&&!f&&l.jsx(q,{ref:C,value:p,onChange:t=>u(t.target.value),onKeyDown:t=>{t.key==="Enter"&&(t.preventDefault(),L())},maxLength:N,placeholder:"Type your work and press Enter","aria-label":"Something else: describe your work",className:"h-8 text-xs"}),c&&l.jsx("p",{className:"text-destructive text-sm",role:"alert","data-testid":"profile-save-error",children:c}),l.jsxs("div",{className:"flex flex-wrap gap-2",children:[l.jsx(k,{size:"sm",onClick:e,disabled:d||r.length===0,"data-testid":"confirm-profile",children:o}),i&&l.jsx(k,{size:"sm",variant:"ghost",onClick:i,disabled:d,"data-testid":"skip-profile",children:a})]})]})}export{W as P,Q as a,K as b,B as u};
1
+ import{a1 as O,a3 as E,a2 as S,au as h,a4 as j,at as D,eg as T,r as b,j as l,G as z,I as q,B as k}from"./index-8-iQ6PnT.js";function B(){var a,d,c,m,g,p;const r=O(),s=E(),{data:e,isLoading:o}=S({queryKey:h.current(),queryFn:()=>r.getConfig(),staleTime:T}),i=j({mutationKey:D,mutationFn:u=>r.updateConfig({profile:u}),onSuccess:()=>{s.invalidateQueries({queryKey:h.all})}});return{roles:((a=e==null?void 0:e.profile)==null?void 0:a.roles)??[],rolePromptDismissedAt:((d=e==null?void 0:e.profile)==null?void 0:d.rolePromptDismissedAt)??null,identityPromptDismissedAt:((c=e==null?void 0:e.profile)==null?void 0:c.identityPromptDismissedAt)??null,timezone:((m=e==null?void 0:e.profile)==null?void 0:m.timezone)??null,workingHours:((g=e==null?void 0:e.profile)==null?void 0:g.workingHours)??null,away:((p=e==null?void 0:e.profile)==null?void 0:p.away)??null,isLoading:o,saveHours:u=>i.mutateAsync(u).then(()=>{}),saveRoles:u=>i.mutateAsync({roles:u}).then(()=>{}),dismissRolePrompt:()=>i.mutateAsync({rolePromptDismissedAt:new Date().toISOString()}).then(()=>{}),dismissIdentityPrompt:()=>i.mutateAsync({identityPromptDismissedAt:new Date().toISOString()}).then(()=>{})}}let x=!1;function K(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||null}catch{return null}}function Q(){const r=O(),s=E(),{data:e,isSuccess:o}=S({queryKey:h.current(),queryFn:()=>r.getConfig(),staleTime:T}),i=e==null?void 0:e.profile;b.useEffect(()=>{if(x||!o||!i)return;if(i.timezone!=null){x=!0;return}const a=K();a&&(x=!0,r.updateConfig({profile:{timezone:a}}).then(()=>s.invalidateQueries({queryKey:h.all})).catch(()=>{}))},[o,i,r,s])}const w=[{id:"software-development",label:"Building software"},{id:"hiring",label:"Hiring people"},{id:"marketing",label:"Marketing"},{id:"writing",label:"Writing"},{id:"research",label:"Research"},{id:"business-ops",label:"Running a business"},{id:"design",label:"Design"},{id:"sales",label:"Sales"}],M=6,F={developer:"software-development",engineer:"software-development",programmer:"software-development",coder:"software-development","software engineer":"software-development",recruiter:"hiring",recruiting:"hiring",talent:"hiring",marketer:"marketing",growth:"marketing",writer:"writing",author:"writing",researcher:"research",scientist:"research",founder:"business-ops",entrepreneur:"business-ops",operations:"business-ops",ops:"business-ops",designer:"design",seller:"sales",salesperson:"sales"};function H(r){var i;const s=r.trim().toLowerCase();if(s.length===0)return;const e=w.find(a=>a.id===s);if(e)return e.id;const o=F[s];return o||((i=w.find(a=>a.label.toLowerCase()===s))==null?void 0:i.id)}const A=10,N=60;function v(r,s){const e=s.trim().toLowerCase();return r.some(o=>o.trim().toLowerCase()===e)}function W({selected:r,onChange:s,onConfirm:e,confirmLabel:o,onSkip:i,skipLabel:a,busy:d=!1,error:c=null}){const[m,g]=b.useState(!1),[p,u]=b.useState(""),C=b.useRef(null),y=w.slice(0,M),I=r.filter(t=>!y.some(n=>n.id===t)),f=r.length>=A,P=t=>{v(r,t)?s(r.filter(n=>n!==t)):f||s([...r,t])},L=()=>{const t=p.trim().slice(0,N);if(!t)return;const n=H(t),R=n&&y.some(_=>_.id===n)?n:t;!v(r,R)&&r.length<A&&s([...r,R]),u("")};return l.jsxs("div",{className:"flex flex-col gap-3",children:[l.jsxs("div",{className:"flex flex-wrap gap-1.5",role:"group","aria-label":"What kind of work you do",children:[y.map(t=>{const n=v(r,t.id);return l.jsx("button",{type:"button","aria-pressed":n,disabled:f&&!n,onClick:()=>P(t.id),className:z("focus-visible:ring-ring rounded-md border px-2.5 py-1 text-xs transition-colors duration-150 focus-visible:ring-2 focus-visible:outline-none disabled:opacity-50",n?"border-primary bg-primary text-primary-foreground":"border-input bg-background text-foreground hover:bg-accent"),children:t.label},t.id)}),I.map(t=>l.jsx("button",{type:"button","aria-pressed":!0,onClick:()=>s(r.filter(n=>n!==t)),className:"border-primary bg-primary text-primary-foreground focus-visible:ring-ring rounded-md border px-2.5 py-1 text-xs transition-colors duration-150 focus-visible:ring-2 focus-visible:outline-none",children:t},t)),!m&&l.jsx("button",{type:"button",disabled:f,onClick:()=>{g(!0),setTimeout(()=>{var t;return(t=C.current)==null?void 0:t.focus()},0)},className:"border-input text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:ring-ring rounded-md border border-dashed px-2.5 py-1 text-xs transition-colors duration-150 focus-visible:ring-2 focus-visible:outline-none disabled:opacity-50",children:"Something else"})]}),f&&l.jsx("p",{className:"text-muted-foreground text-xs","data-testid":"profile-role-cap-hint",children:"Ten at most. Remove a role to add another."}),m&&!f&&l.jsx(q,{ref:C,value:p,onChange:t=>u(t.target.value),onKeyDown:t=>{t.key==="Enter"&&(t.preventDefault(),L())},maxLength:N,placeholder:"Type your work and press Enter","aria-label":"Something else: describe your work",className:"h-8 text-xs"}),c&&l.jsx("p",{className:"text-destructive text-sm",role:"alert","data-testid":"profile-save-error",children:c}),l.jsxs("div",{className:"flex flex-wrap gap-2",children:[l.jsx(k,{size:"sm",onClick:e,disabled:d||r.length===0,"data-testid":"confirm-profile",children:o}),i&&l.jsx(k,{size:"sm",variant:"ghost",onClick:i,disabled:d,"data-testid":"skip-profile",children:a})]})]})}export{W as P,Q as a,K as b,B as u};
@@ -1 +1 @@
1
- import{j as e,ar as c,aN as l,G as i}from"./index-DcZPWi_I.js";const p=4,m={compact:"max-w-[200px] gap-1.5 px-2.5 py-1 text-xs",comfortable:"min-h-9 max-w-[280px] gap-2 px-3 py-1.5 text-sm"};function u({suggestions:o,onChipClick:s,ariaLabel:r="Suggested follow-ups",size:a="compact"}){const n=o.slice(0,p);return e.jsx(c.div,{"data-slot":"prompt-suggestion-chips",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},role:"group","aria-label":r,className:"mt-1.5 flex flex-wrap items-center gap-2",children:n.map(t=>e.jsxs("button",{type:"button","aria-label":t,title:t,onClick:()=>s(t),className:i("bg-secondary text-muted-foreground hover:text-foreground hover:bg-muted focus-visible:ring-ring inline-flex items-center truncate rounded-md transition-colors duration-150 focus-visible:ring-2 focus-visible:ring-offset-2",m[a]),children:[e.jsx(l,{className:i("shrink-0",a==="compact"?"size-3":"size-3.5")}),e.jsx("span",{className:"truncate",children:t})]},t))})}export{u as P};
1
+ import{j as e,ar as c,aN as l,G as i}from"./index-8-iQ6PnT.js";const p=4,m={compact:"max-w-[200px] gap-1.5 px-2.5 py-1 text-xs",comfortable:"min-h-9 max-w-[280px] gap-2 px-3 py-1.5 text-sm"};function u({suggestions:o,onChipClick:s,ariaLabel:r="Suggested follow-ups",size:a="compact"}){const n=o.slice(0,p);return e.jsx(c.div,{"data-slot":"prompt-suggestion-chips",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},role:"group","aria-label":r,className:"mt-1.5 flex flex-wrap items-center gap-2",children:n.map(t=>e.jsxs("button",{type:"button","aria-label":t,title:t,onClick:()=>s(t),className:i("bg-secondary text-muted-foreground hover:text-foreground hover:bg-muted focus-visible:ring-ring inline-flex items-center truncate rounded-md transition-colors duration-150 focus-visible:ring-2 focus-visible:ring-offset-2",m[a]),children:[e.jsx(l,{className:i("shrink-0",a==="compact"?"size-3":"size-3.5")}),e.jsx("span",{className:"truncate",children:t})]},t))})}export{u as P};
@@ -1 +1 @@
1
- import{r as g,b as D,z as P,j as e,e as O,D as _,F as U,G as C,t as z,g as F,J as K,K as M}from"./index-DcZPWi_I.js";import{u as Y}from"./use-mounted-ref-CZaegwTr.js";const A="REPORTS_TO_CYCLE",q="text-muted-foreground text-3xs font-medium tracking-wider uppercase";function B({option:a,selected:d,focusable:i,isDefault:p,disabled:x,onPick:c}){const n=z(a.member);return e.jsxs("button",{type:"button",role:"radio","aria-checked":d,tabIndex:i?0:-1,disabled:x,onClick:c,className:C(M,"flex w-full min-w-0 items-center gap-2 rounded-md px-1.5 py-1 text-left text-sm","hover:bg-accent disabled:opacity-60"),children:[e.jsx(F,{size:"xs",kind:n.kind,color:n.color,emoji:n.emoji,imageUrl:n.imageUrl,fallback:n.fallback,origin:n.origin,badge:null}),e.jsxs("span",{className:"min-w-0 flex-1 truncate",children:[a.label,p&&e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{className:"text-muted-foreground",children:"(default)"})]})]}),d&&e.jsx(K,{"aria-hidden":!0,className:"size-3.5 shrink-0"})]})}function J({member:a}){var y,R;const d=Y(),i=g.useRef(null),p=g.useId(),x=g.useId(),{agent:c,isPending:n,isSaving:h,error:u,update:b}=D(a,{errorLabel:"Couldn’t change who this agent reports to",isShownInline:t=>d.current===!0&&t.code===A}),j=P();if(n||j.isPending)return e.jsx(O,{className:"h-24 w-full"});if(!c)return e.jsx("p",{className:"text-muted-foreground p-1 text-sm",children:"Couldn’t read this agent’s settings."});const I=((y=j.data)==null?void 0:y.members)??[],l=_(c,I,a),m=U(c.id,I,a),E=m.some(t=>t.accountId===l.accountId)?l.accountId:((R=m[0])==null?void 0:R.accountId)??null,L=t=>{var v;const s=Array.from(((v=i.current)==null?void 0:v.querySelectorAll('[role="radio"]'))??[]),r=s.indexOf(document.activeElement),o={ArrowDown:r+1,ArrowRight:r+1,ArrowUp:r-1,ArrowLeft:r-1,Home:0,End:s.length-1}[t.key];if(o===void 0||s.length===0)return;t.preventDefault();const f=s[(o+s.length)%s.length];s.forEach(N=>N.tabIndex=N===f?0:-1),f==null||f.focus()},S=m.filter(t=>t.kind==="person"),T=m.filter(t=>t.kind==="agent"),k=(u==null?void 0:u.code)===A?u.message:null,w=(t,s,r)=>r.length>0&&e.jsxs("div",{role:"group","aria-labelledby":s,className:"space-y-0.5",children:[e.jsx("div",{id:s,className:C(q,"px-1.5"),children:t}),r.map(o=>e.jsx(B,{option:o,selected:l.accountId===o.accountId,focusable:E===o.accountId,isDefault:l.isDefault&&l.accountId===o.accountId,disabled:h,onPick:()=>{o.accountId!==c.reportsTo&&b({reportsTo:o.accountId})}},o.accountId))]});return e.jsxs("div",{className:"space-y-3 p-1","data-slot":"profile-reports-to",children:[e.jsxs("div",{ref:i,role:"radiogroup","aria-label":"Reports to",onKeyDown:L,className:"max-h-72 space-y-2 overflow-y-auto",children:[w("People",p,S),w("Agents",x,T)]}),k&&e.jsx("p",{role:"alert",className:"text-status-error px-1.5 text-xs",children:k}),!l.isDefault&&e.jsx("button",{type:"button",disabled:h,onClick:()=>b({reportsTo:null}),className:"text-muted-foreground hover:text-foreground px-1.5 text-xs underline-offset-2 hover:underline",children:"Use the default"})]})}export{J as ReportsToPopover};
1
+ import{r as g,b as D,z as P,j as e,e as O,D as _,F as U,G as C,t as z,g as F,J as K,K as M}from"./index-8-iQ6PnT.js";import{u as Y}from"./use-mounted-ref-BAO3qunF.js";const A="REPORTS_TO_CYCLE",q="text-muted-foreground text-3xs font-medium tracking-wider uppercase";function B({option:a,selected:d,focusable:i,isDefault:p,disabled:x,onPick:c}){const n=z(a.member);return e.jsxs("button",{type:"button",role:"radio","aria-checked":d,tabIndex:i?0:-1,disabled:x,onClick:c,className:C(M,"flex w-full min-w-0 items-center gap-2 rounded-md px-1.5 py-1 text-left text-sm","hover:bg-accent disabled:opacity-60"),children:[e.jsx(F,{size:"xs",kind:n.kind,color:n.color,emoji:n.emoji,imageUrl:n.imageUrl,fallback:n.fallback,origin:n.origin,badge:null}),e.jsxs("span",{className:"min-w-0 flex-1 truncate",children:[a.label,p&&e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{className:"text-muted-foreground",children:"(default)"})]})]}),d&&e.jsx(K,{"aria-hidden":!0,className:"size-3.5 shrink-0"})]})}function J({member:a}){var y,R;const d=Y(),i=g.useRef(null),p=g.useId(),x=g.useId(),{agent:c,isPending:n,isSaving:h,error:u,update:b}=D(a,{errorLabel:"Couldn’t change who this agent reports to",isShownInline:t=>d.current===!0&&t.code===A}),j=P();if(n||j.isPending)return e.jsx(O,{className:"h-24 w-full"});if(!c)return e.jsx("p",{className:"text-muted-foreground p-1 text-sm",children:"Couldn’t read this agent’s settings."});const I=((y=j.data)==null?void 0:y.members)??[],l=_(c,I,a),m=U(c.id,I,a),E=m.some(t=>t.accountId===l.accountId)?l.accountId:((R=m[0])==null?void 0:R.accountId)??null,L=t=>{var v;const s=Array.from(((v=i.current)==null?void 0:v.querySelectorAll('[role="radio"]'))??[]),r=s.indexOf(document.activeElement),o={ArrowDown:r+1,ArrowRight:r+1,ArrowUp:r-1,ArrowLeft:r-1,Home:0,End:s.length-1}[t.key];if(o===void 0||s.length===0)return;t.preventDefault();const f=s[(o+s.length)%s.length];s.forEach(N=>N.tabIndex=N===f?0:-1),f==null||f.focus()},S=m.filter(t=>t.kind==="person"),T=m.filter(t=>t.kind==="agent"),k=(u==null?void 0:u.code)===A?u.message:null,w=(t,s,r)=>r.length>0&&e.jsxs("div",{role:"group","aria-labelledby":s,className:"space-y-0.5",children:[e.jsx("div",{id:s,className:C(q,"px-1.5"),children:t}),r.map(o=>e.jsx(B,{option:o,selected:l.accountId===o.accountId,focusable:E===o.accountId,isDefault:l.isDefault&&l.accountId===o.accountId,disabled:h,onPick:()=>{o.accountId!==c.reportsTo&&b({reportsTo:o.accountId})}},o.accountId))]});return e.jsxs("div",{className:"space-y-3 p-1","data-slot":"profile-reports-to",children:[e.jsxs("div",{ref:i,role:"radiogroup","aria-label":"Reports to",onKeyDown:L,className:"max-h-72 space-y-2 overflow-y-auto",children:[w("People",p,S),w("Agents",x,T)]}),k&&e.jsx("p",{role:"alert",className:"text-status-error px-1.5 text-xs",children:k}),!l.isDefault&&e.jsx("button",{type:"button",disabled:h,onClick:()=>b({reportsTo:null}),className:"text-muted-foreground hover:text-foreground px-1.5 text-xs underline-offset-2 hover:underline",children:"Use the default"})]})}export{J as ReportsToPopover};
@@ -0,0 +1,44 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CiVeycsn.js","assets/index-8-iQ6PnT.js","assets/index-DUZrTFYD.css","assets/room-files-source-BhkPUTiP.js","assets/markdown-content-D0FpU2cz.js","assets/file-exclamation-point-QqXJhXD9.js","assets/query-keys-DeYqUDia.js","assets/composer-insert-BpyATrmR.js","assets/index-gIQ7FrL9.js","assets/file-drag-GDx2qhdk.js","assets/rotate-cw-DvoxWwSx.js","assets/link-2-hgHg-lyw.js","assets/file-DEt4KgZG.js","assets/git-branch-DWerghmw.js","assets/more-details-CadxnGyH.js"])))=>i.map(i=>d[i]);
2
+ import{W as Z,r as i,mR as qt,j as a,g as Ut,ic as Wt,G as V,a1 as ne,a2 as Kt,bk as ee,a4 as re,a3 as Se,mS as Gt,mT as ye,mU as Be,mV as Vt,mW as Xt,mX as Yt,lI as Qt,mY as Jt,lK as Zt,mZ as en,dz as tn,g8 as nn,mO as sn,m_ as on,a0 as rn,bw as an,m$ as ln,n0 as dn,iI as cn,hF as un,ir as X,kx as qe,n1 as ot,bK as mn,kw as le,kB as rt,n2 as fn,kC as at,ai as pn,bO as it,hA as lt,B as Ae,x as hn,n3 as gn,c4 as Me,n4 as xn,s as ce,ep as yn,jW as dt,n5 as ct,aX as bn,e as se,n6 as he,hb as ut,kA as mt,n7 as vn,n8 as kn,n as Rn,q as Re,kz as wn,n9 as ft,eN as te,a7 as pt,fm as In,na as Nn,nb as jn,nc as Sn,nd as An,l as ht,ar as Ce,kk as Mn,aj as Cn,ne as On,nf as Tn,ng as _n,b6 as En,bW as Pn,nh as $n,ni as Dn,nj as Fn,nk as Ln,bx as we,dH as zn,kq as Hn,kv as Bn,ko as qn,nl as Un,nm as Wn,nn as Kn,no as Gn,eM as Vn,kr as Xn,np as Yn,nq as Qn,nr as Jn,dM as Zn,X as es,ns as ts,nt as Ue,nu as ns,ad as ss,nv as os,iq as rs,nw as as,nx as is,aH as We}from"./index-8-iQ6PnT.js";import{R as ls,A as ds,u as cs,P as us,a as ms}from"./use-jump-back-in-BuO6A0P7.js";import{a as Ke,m as Ge,f as Oe,b as Te,d as gt,e as xt,g as yt,E as fs,h as ps,i as hs,M as G,F as gs,D as xs,U as ys,C as Q,u as bs,j as vs,k as ks,l as Rs}from"./index-DNzk9m1D.js";import{a as ws}from"./use-room-follow-claim-CCGhsyH3.js";import"./WidgetErrorCard-BfgGzyqg.js";import{M as Is}from"./markdown-content-D0FpU2cz.js";import{W as Ns,a as js}from"./find-latest-widget-fence-B3aaiBNI.js";import{f as Ss}from"./format-duration-BCr6uzby.js";import{H as As,a as Ms,b as Cs}from"./RuntimeSetupDialog-COpyPrqL.js";import{M as Ve}from"./mention-pill-uuaUvwSW.js";import{R as Os}from"./rotate-ccw-clock-DiuTseKz.js";import{U as Ts}from"./unplug-CAVOLB2R.js";import{M as _s}from"./message-square-off-B8N6YF9R.js";import{i as Es}from"./registry-Bnd-HFt3.js";import{f as Ps}from"./use-connector-management-fr1tx-GZ.js";import{A as $s}from"./AgentRequestCard-DQ6GYoeE.js";/**
3
+ * @license lucide-react v1.48.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */const bt={name:"hand",size:24,node:[["path",{d:"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2",key:"1fvzgz"}],["path",{d:"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2",key:"1kc0my"}],["path",{d:"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8",key:"10h0bg"}],["path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"1s1gnw"}]]};bt.node;const Ds=Z(bt);/**
8
+ * @license lucide-react v1.48.0 - ISC
9
+ *
10
+ * This source code is licensed under the ISC license.
11
+ * See the LICENSE file in the root directory of this source tree.
12
+ */const vt={name:"link-2-off",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7",key:"10o201"}],["path",{d:"M15 7h2a5 5 0 0 1 4 8",key:"1d3206"}],["line",{x1:"8",x2:"12",y1:"12",y2:"12",key:"rvw6j4"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]};vt.node;const Fs=Z(vt);/**
13
+ * @license lucide-react v1.48.0 - ISC
14
+ *
15
+ * This source code is licensed under the ISC license.
16
+ * See the LICENSE file in the root directory of this source tree.
17
+ */const kt={name:"megaphone",size:24,node:[["path",{d:"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"q8bfy3"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 6v8",key:"15ugcq"}]]};kt.node;const Ls=Z(kt);/**
18
+ * @license lucide-react v1.48.0 - ISC
19
+ *
20
+ * This source code is licensed under the ISC license.
21
+ * See the LICENSE file in the root directory of this source tree.
22
+ */const Rt={name:"power-off",size:24,node:[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};Rt.node;const zs=Z(Rt);/**
23
+ * @license lucide-react v1.48.0 - ISC
24
+ *
25
+ * This source code is licensed under the ISC license.
26
+ * See the LICENSE file in the root directory of this source tree.
27
+ */const wt={name:"reply",size:24,node:[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]]};wt.node;const Hs=Z(wt);/**
28
+ * @license lucide-react v1.48.0 - ISC
29
+ *
30
+ * This source code is licensed under the ISC license.
31
+ * See the LICENSE file in the root directory of this source tree.
32
+ */const It={name:"timer",size:24,node:[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]};It.node;const Bs=Z(It);/**
33
+ * @license lucide-react v1.48.0 - ISC
34
+ *
35
+ * This source code is licensed under the ISC license.
36
+ * See the LICENSE file in the root directory of this source tree.
37
+ */const Nt={name:"user-minus",size:24,node:[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]};Nt.node;const Xe=Z(Nt);/**
38
+ * @license lucide-react v1.48.0 - ISC
39
+ *
40
+ * This source code is licensed under the ISC license.
41
+ * See the LICENSE file in the root directory of this source tree.
42
+ */const jt={name:"user-x",size:24,node:[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"17",x2:"22",y1:"8",y2:"13",key:"3nzzx3"}],["line",{x1:"22",x2:"17",y1:"8",y2:"13",key:"1swrse"}]]};jt.node;const qs=Z(jt),Us=300;function ae({className:e,children:n}){return a.jsx("span",{className:V("bg-muted text-muted-foreground text-2xs inline-flex max-w-full items-center gap-1 truncate rounded-full px-2 py-0.5",e),children:n})}function St({identity:e,children:n,onViewProfile:s,className:t}){const{kind:o,displayName:r,handle:l,color:d,emoji:m,imageUrl:f,origin:u,agent:c}=e,w=d??"hsl(var(--muted-foreground))",h=typeof u=="object"&&u!==null,g=o==="agent"&&(c==null?void 0:c.working)!=null?c.working:null,[k,x]=i.useState(!1),N=i.useRef(!1),p=i.useRef(null),b=qt({onLongPress:()=>{N.current&&x(!0)}});return a.jsxs(As,{open:k,onOpenChange:x,openDelay:Us,children:[a.jsx(Ms,{asChild:!0,ref:p,"data-gesture-priority":"",...b,onPointerDown:_=>{N.current=_.pointerType==="touch"||_.pointerType==="pen",b.onPointerDown(_)},children:n}),a.jsxs(Cs,{"data-slot":"identity-hover-card",align:"start",className:V("flex w-64 flex-col gap-0 overflow-hidden p-0",t),children:[a.jsxs("div",{className:"flex items-center gap-3 p-3",children:[a.jsx(Ut,{"aria-hidden":!0,color:w,emoji:m,imageUrl:f,fallback:Wt(r),kind:o,origin:u,status:g?"working":"idle",size:"md"}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"text-foreground truncate text-sm font-semibold",children:r}),l&&a.jsxs("p",{className:"text-muted-foreground truncate text-xs font-medium",children:["@",l]})]})]}),a.jsxs("div",{className:"flex flex-wrap gap-1.5 px-3 pb-3 empty:hidden",children:[o==="agent"&&((c==null?void 0:c.runtime)||(c==null?void 0:c.model))&&a.jsx(ae,{children:[c.runtime,c.model].filter(Boolean).join(" · ")}),g&&a.jsxs(ae,{className:"bg-status-success-bg text-status-success-fg",children:["Working · ",Ss(g.forMs)]}),o==="human"&&a.jsx(ae,{children:h?u.platform:"On this machine"}),o==="agent"&&(c==null?void 0:c.managedBy)&&a.jsxs(ae,{children:["Managed by"," ",c.managedBy.handle?`@${c.managedBy.handle}`:c.managedBy.displayName]})]}),s?a.jsx("button",{type:"button","data-slot":"identity-hover-card-profile",onClick:()=>{var _;(_=p.current)==null||_.focus(),s()},className:"border-border hover:bg-accent focus-visible:ring-ring text-brand-text mt-auto flex w-full items-center border-t px-3 py-2 text-left text-xs font-medium transition-colors focus-visible:ring-2 focus-visible:outline-none",children:"View profile"}):a.jsxs("div",{className:"border-border mt-auto flex items-center justify-between border-t px-3 py-2",children:[a.jsx("span",{className:"text-muted-foreground text-xs font-medium",children:"View profile"}),a.jsx("span",{className:"text-muted-foreground text-3xs tracking-wide uppercase",children:"soon"})]})]})]})}function At(e,n={}){const s=ne();return Kt({queryKey:ee.sessions(e??""),queryFn:()=>s.listRoomSessions(e),enabled:e!==null&&n.enabled===!0})}function Ws(){const e=ne();return re({mutationFn:({roomId:n,authorId:s})=>e.haltRoomAgent(n,s),meta:{errorLabel:"Couldn’t stop this agent"}})}function Ks(){const e=ne();return re({mutationFn:({roomId:n,authorId:s})=>e.promoteHold(n,s),meta:{errorLabel:"Couldn’t ask to be answered first"}})}function Gs(){const e=ne(),n=Se();return re({onMutate:({roomId:s,entryId:t,emoji:o,viewerAuthorId:r})=>{var u;const l=n.getQueryData(ee.entries(s)),d=(u=l==null?void 0:l.find(c=>c.id===t))==null?void 0:u.reactions,{reactions:m,on:f}=Ke(d,o,r);return n.setQueryData(ee.entries(s),c=>Ge(c,t,m)),{on:f}},mutationFn:({roomId:s,entryId:t,emoji:o,viewerAuthorId:r})=>{var m,f;const l=n.getQueryData(ee.entries(s)),d=((f=(m=l==null?void 0:l.find(u=>u.id===t))==null?void 0:m.reactions)==null?void 0:f.some(u=>u.emoji===o&&u.authorIds.includes(r)))??!1;return e.toggleReaction(s,t,{emoji:o,on:d})},onError:(s,{roomId:t,entryId:o,emoji:r,viewerAuthorId:l},d)=>{d!==void 0&&n.setQueryData(ee.entries(t),m=>{var c;const f=(c=m==null?void 0:m.find(w=>w.id===o))==null?void 0:c.reactions,{reactions:u}=Ke(f,r,l,!d.on);return Ge(m,o,u)})},onSuccess:({frequents:s},{roomId:t})=>{n.setQueryData(ee.detail(t),o=>o&&{...o,reactionFrequents:s})},meta:{errorLabel:"Couldn’t add your reaction",errorToastId:"room-reaction"}})}function J(e){return e.threadRootEntryId??e.parentEntryId}function Mt(e){return J(e)??e.id}function _e(e,n){return Math.max(n??0,e)}function Vs(e,n,s){let t=e[0],o=0;for(const r of e)r.seq>t.seq&&(t=r),n!==null&&r.seq>n&&(o+=1);return{count:_e(e.length,s),lastAt:t.createdAt,unread:o}}function Xs(e){const n=ne(),s=Se(),t=Gt(e),o=ye(u=>{var c;return e===null?null:((c=u.paging[e])==null?void 0:c.cursor)??null}),r=re({mutationFn:async u=>{var x;const c=(x=ye.getState().paging[u])==null?void 0:x.cursor;if(c==null)return;const w=await n.listRoomEntries(u,{before:c,limit:Be}),h=ee.entries(u),g=s.getQueryData(h),k=Vt(g,w);s.setQueryData(h,k),ye.getState().notePage(u,Xt(w)??c,Yt(w,Be)||k.length===((g==null?void 0:g.length)??0))},meta:{errorLabel:"Couldn't load older messages"}}),{mutateAsync:l,isPending:d}=r,m=i.useRef(!1),f=i.useCallback(async()=>{if(!(e===null||m.current)){m.current=!0;try{await l(e).catch(()=>{})}finally{m.current=!1}}},[e,l]);return{canLoadOlder:t,isLoadingOlder:d,cursor:o,loadOlder:f}}function Ys(e){return a.jsx(js,{code:e.code,isIncomplete:e.isIncomplete})}const Qs=[{language:Ns,component:Ys}],Js={turn_failed:{Icon:rn,tone:"text-status-warning"},agent_busy:{Icon:on},agent_gone:{Icon:qs,tone:"text-status-warning"},agent_left:{Icon:Xe,tone:"text-status-warning"},room_archived:{Icon:sn},runtime_gone:{Icon:zs,tone:"text-status-warning"},agent_paused:{Icon:nn},agent_declined:{Icon:_s},agent_unavailable:{Icon:tn},awaiting_approval:{Icon:Ds,tone:"text-status-warning"},halted:{Icon:en},budget_reached:{Icon:Zt},cascade_stopped:{Icon:Jt},addressing_changed:{Icon:Ls},bridge_blocked:{Icon:Ts,tone:"text-status-warning"},bridge_undelivered:{Icon:Qt,tone:"text-status-warning"},bridge_rate_limited:{Icon:Bs},bridge_second_agent_refused:{Icon:Xe},bridge_disconnected:{Icon:Fs},bridge_agent_swapped:{Icon:ls},bridge_history_note:{Icon:Os}},Zs={Icon:an},be=80;function eo(e){const n=e.trim();if(n.length<=be)return n;const s=n.slice(0,be),t=s.lastIndexOf(" ");return`${(t>be/2?s.slice(0,t):s).trimEnd()}…`}function to(e,n,s){const t=no(e,s),o=r=>a.jsx("a",{href:n.href,onClick:n.onOpen,"data-testid":"room-notice-session-link",className:"focus-ring hover:text-foreground rounded py-2 font-medium underline underline-offset-2",children:r});return t===null?a.jsxs(a.Fragment,{children:[e," ",o("Open chat")]}):a.jsxs(a.Fragment,{children:[e.slice(0,t.index),o(t.words),e.slice(t.index+t.words.length)]})}function no(e,n){if(n!==void 0){const t=ln(n),o=e.lastIndexOf(t);if(o!==-1)return{index:o,words:t}}const s=dn.exec(e);return s===null?null:{index:s.index,words:s[0]}}function so({entry:e,feedPosition:n,rowId:s,sessionLink:t,subjectName:o}){const{Icon:r,tone:l}=(e.body.notice&&Js[e.body.notice])??Zs;return a.jsxs("p",{id:s,"data-slot":"notice-row","data-testid":"room-notice","data-notice":e.body.notice??"unknown",...n&&{role:"article","aria-label":eo(e.body.text)},...Oe(n),className:V("focus-visible:ring-ring flex items-start gap-2 px-[var(--msg-padding-x)] py-2 text-xs outline-none focus-visible:ring-2",l??"text-muted-foreground"),children:[a.jsx(r,{"aria-hidden":!0,className:"mt-px size-3.5 shrink-0"}),a.jsx("span",{children:t?to(e.body.text,t,o):e.body.text})]})}const oo=Es.moment;function ro({entry:e,moment:n,subject:s,subjectIdentity:t,feedPosition:o,rowId:r}){const l=Te(e.createdAt);return a.jsx("div",{id:r,"data-slot":"moment-row","data-testid":"room-moment","data-moment":n.kind,role:"article","aria-label":`Moment: ${e.body.text}`,...Oe(o),className:"focus-visible:ring-ring px-[var(--msg-padding-x)] py-1 outline-none focus-visible:ring-2",children:a.jsxs("div",{className:"border-border/60 bg-muted/40 flex items-center gap-2.5 rounded-lg border px-3 py-2",children:[a.jsx(St,{identity:{kind:s.kind,displayName:s.displayName,handle:t==null?void 0:t.handle,color:s.color,emoji:s.emoji,imageUrl:s.imageUrl,origin:t==null?void 0:t.origin,agent:t==null?void 0:t.agent},children:a.jsxs("span",{"data-testid":"room-moment-identity",className:"flex shrink-0 items-center",children:[a.jsx(gt,{author:s}),a.jsx("span",{className:"sr-only",children:s.displayName})]})}),a.jsx(oo,{"data-testid":"room-moment-mark","aria-hidden":!0,className:"text-muted-foreground size-3.5 shrink-0"}),a.jsx("p",{className:"min-w-0 flex-1 text-sm",children:e.body.text}),l.length>0&&a.jsx("time",{dateTime:e.createdAt,title:xt(e.createdAt),className:"text-msg-timestamp shrink-0 text-xs",children:l})]})})}function ao({id:e,summary:n,open:s,onOpen:t}){const{capabilities:o}=yt(),{count:r,lastAt:l,unread:d}=n,m=Te(l),[f,u]=i.useState({count:r,bumped:!1});f.count!==r&&u({count:r,bumped:!0});const c=f.count===r&&f.bumped;return o.threads?a.jsxs("button",{type:"button",id:e,"data-slot":"thread-reply-row","data-testid":"room-thread-replies","data-unread":d>0?"":void 0,"aria-expanded":s,onClick:t,className:V("focus-ring ml-[calc(var(--msg-padding-x)_+_var(--msg-gutter-width)_+_var(--msg-gap))]","mb-1 w-fit rounded text-left text-xs transition-colors","px-2 py-2 md:px-1 md:py-0.5",d>0?"text-primary hover:text-primary/80 font-medium":"text-muted-foreground hover:text-foreground"),children:[a.jsx("span",{"aria-hidden":!0,className:"mr-1",children:"↳"}),a.jsx("span",{className:V(c&&"motion-safe:animate-count-flip"),"data-testid":"room-thread-reply-count",children:r},r),r===1?" reply":" replies",m.length>0&&a.jsxs(a.Fragment,{children:[" · last ",a.jsx("time",{dateTime:l,title:xt(l),children:m})]}),d>0&&` · ${d} new`]}):null}function io(e,n){const s=le.getState(),t=s.drafts[e]??"",o=t===""||t.endsWith(" ")||t.endsWith(`
43
+ `)?"":" ";s.set(e,`${t}${o}@${n} `)}function lo({roomId:e,entry:n,author:s,viewerAuthorId:t,onViewProfile:o}){const r=Mt(n),l=n.body.text,d=(s==null?void 0:s.id)===t?void 0:(s==null?void 0:s.handle)??void 0,m=s==null?void 0:s.displayName,{copy:f}=cn({toastOnSettle:!0});return i.useMemo(()=>{const u={reply:{id:"reply",label:"Reply in thread",icon:Hs,run:()=>{X.getState().openThread(e,r,!0),qe.getState().requestFocus(ot(e,r))}},copy:{id:"copy",label:"Copy text",icon:un,run:()=>void f(l)}};return o!==void 0&&(u.profile={id:"profile",label:"View profile",icon:mn,run:o}),d!==void 0&&(u.mention={id:"mention",label:m===void 0?"Mention author":`Mention ${m}`,icon:ds,run:()=>{io(e,d),qe.getState().requestFocus(e)}}),fs.map(c=>u[c]).filter(c=>c!==void 0)},[e,r,l,d,m,o,f])}function co(e){if(e.kind==="notice")return{kind:"notice"};const n=e.body.moment;return n?{kind:"moment",moment:n}:{kind:"message"}}function Ee(e,n=[]){return new Map([...n.map(s=>[s.author.id,{...s.author,origin:s.origin}]),...e.map(s=>[s.author.id,{...s.author,origin:s.origin}])])}function ue(e,n){const s=e.body.subjectAuthorId;return s===void 0||n.has(e.authorId)?e.authorId:s}function Y(e,n,s){const t=n.get(e),o=rt({record:{kind:(t==null?void 0:t.kind)??"system",id:e,displayName:(t==null?void 0:t.displayName)??"Unknown",emoji:t==null?void 0:t.emoji,color:t==null?void 0:t.color,imageUrl:t==null?void 0:t.imageUrl},override:(t==null?void 0:t.agentRef)===void 0?null:s==null?void 0:s.get(t.agentRef)});return{kind:o.kind,id:e,displayName:(t==null?void 0:t.displayName)??"Unknown",emoji:o.emoji,imageUrl:o.imageUrl,color:o.color,isExternal:typeof(t==null?void 0:t.origin)=="object"&&(t==null?void 0:t.origin)!==null,...(t==null?void 0:t.retired)===!0?{retired:!0}:{}}}function uo(e){const n=new Set;for(const r of e)J(r)===null&&n.add(r.id);const s=[],t=new Map,o=new Set;for(const r of e){const l=J(r);if(l===null){s.push(r);continue}if(!n.has(l)){s.push(r),o.add(r.id);continue}const d=t.get(l);d?d.push(r):t.set(l,[r])}return{topLevel:s,repliesByRoot:t,orphaned:o}}function Ct(e){return`thread-${e}`}function me(e){return`thread-row-${e}`}function Ie(e){return`thread-panel-entry-${e}`}function fe(e){return`room-entry-${e}`}function Pe(e,n){const s=e.find(d=>d.id===n);if(s===void 0)return null;const t=J(s)??null,o={rowId:n,domId:fe(n)};if(t===null)return o;const r=e.find(d=>d.id===t);return r!==void 0&&(J(r)??null)===null?{rowId:Ct(t),domId:me(t)}:o}function mo(e,n){if(n===null)return null;const s=e.find(t=>t.seq===n);return s===void 0?null:Pe(e,s.id)}const Ye=48;function Ot(e,n,s){const t=e.body.answersEntryId;if(t===void 0||t===e.id||n!==void 0&&n.id===t)return null;const o=s(t);if(o===void 0)return null;const r=o.body.text.replace(/\s+/gu," ").trim();return r.length===0?null:{entryId:t,excerpt:r.length>Ye?`${r.slice(0,Ye).trimEnd()}…`:r}}function fo(e,n){const s=new Map;for(const t of e){const o=n[t.projectPath];if(!o)continue;const r=fn({runtime:o.runtime,model:o.model});s.set(at(t.projectPath),{memberId:t.id,visual:pn(o),runtime:r.label,...r.modelLabel!==null&&{model:r.modelLabel}})}return s}function po(e){const n=new Map;for(const[s,t]of e)n.set(s,t.visual);return n}const ho={info:new Map,faces:new Map},$e=i.createContext(ho);function Tt({known:e,children:n}){return a.jsx($e.Provider,{value:e,children:n})}function De(){const e=it(),n=i.useMemo(()=>{var l;return((l=e.data)==null?void 0:l.agents)??[]},[e.data]),s=i.useMemo(()=>n.map(l=>l.projectPath),[n]),t=lt(s),o=i.useMemo(()=>fo(n,t.data??{}),[n,t.data]),r=i.useMemo(()=>po(o),[o]);return i.useMemo(()=>({info:o,faces:r}),[o,r])}function Ne(e){const n=i.useContext($e);return e===void 0?void 0:n.info.get(e)}function go(){return i.useContext($e).faces}function xo({loading:e,onLoad:n}){return a.jsx("div",{className:"flex justify-center px-4 py-3",children:a.jsxs(Ae,{type:"button",variant:"ghost",size:"sm",onClick:n,disabled:e,"data-testid":"room-load-older",className:"text-muted-foreground hover:text-foreground h-7 gap-2 text-xs",children:[e&&a.jsx(hn,{size:"xs"}),e?"Loading older messages…":"Older messages"]})})}function yo({showAuthorHeader:e,headerId:n,displayName:s,time:t,summary:o,contentId:r,summaryId:l,feedPosition:d}){return{...e?{"aria-labelledby":n}:{"aria-label":t.length>0?`${s}, ${t}`:s},"aria-describedby":o===null?r:l,...Oe(d)}}const de=120,bo="code block";function vo(e){if(e.length<=de&&!e.includes("```"))return null;const n=ko(e);return n.length===0?null:n}function ko(e){const n=e.replace(/```[\s\S]*?(?:```|$)/g,` ${bo} `).replace(/`([^`]*)`/g,"$1").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/^\s{0,3}(?:#{1,6}\s+|>\s?|[-*+]\s+)/gm,"").replace(/^\s{0,3}\|?[\s:|-]*\|[\s:|-]*$/gm," ").replace(/\|/g," ").replace(/[*_~]{1,3}/g,"").replace(/\s+/g," ").trim();if(n.length<=de)return n;const s=Ro(n,de),t=s.lastIndexOf(" ");return`${(t>de/2?s.slice(0,t):s).trimEnd()}…`}function Ro(e,n){if(typeof Intl.Segmenter=="function"){const t=new Intl.Segmenter(void 0,{granularity:"grapheme"});let o="";for(const{segment:r}of t.segment(e)){if(o.length+r.length>n)break;o+=r}return o}let s="";for(const t of e){if(s.length+t.length>n)break;s+=t}return s}function wo({roomId:e,entry:n,viewerAuthorId:s,reactionFrequents:t,streamStalled:o,isMember:r=!0}){const l=Gs(),d=o===!0||!r,m=i.useMemo(()=>n.reactions??[],[n.reactions]),f=i.useMemo(()=>m.filter(w=>ps(w,s)).map(w=>w.emoji),[m,s]),u=i.useCallback(w=>l.mutate({roomId:e,entryId:n.id,emoji:w,viewerAuthorId:s}),[l,e,n.id,s]),c=i.useMemo(()=>({quick:t,mine:f,onToggle:u,disabled:d}),[t,f,u,d]);return{reactions:m,toggle:u,quickRow:c}}function Io({barRef:e,pillsRef:n,hasReactions:s}){return t=>{var r,l;if(t.target!==t.currentTarget)return;const{key:o}=t;if(o==="ArrowDown"&&s){t.preventDefault(),(r=n.current)==null||r.focusFirst();return}o!=="ArrowRight"&&o!=="Enter"||(t.preventDefault(),(l=e.current)==null||l.focusFirst())}}function No(e,n){var c,w;const s=n.body.subjectAuthorId,t=n.body.notice,o=n.kind==="notice"&&t!==void 0&&s!==void 0&&gn.includes(t),r=At(e,{enabled:o}),l=Me(),d=Se(),m=ne(),f=o?((w=(c=r.data)==null?void 0:c.bindings.find(h=>h.authorId===s))==null?void 0:w.sessionId)??null:null,u=i.useCallback(h=>{h.button!==0||h.metaKey||h.ctrlKey||h.shiftKey||h.altKey||(h.preventDefault(),!(f===null||s===void 0)&&xn({queryClient:d,transport:m},e,s).then(g=>{g.kind!=="none"&&l(ce({session:g.kind==="bound"?g.sessionId:f}))}))},[s,l,d,e,f,m]);return i.useMemo(()=>f===null?null:{href:yn({session:f}),onOpen:u},[u,f])}const pe="mention",Fe="author_id",jo={[pe]:[Fe]},So=[pe];function Ao(e,n){if(!n||n.length===0)return e;const s=Mo(e,n);if(s.length===0)return e;let t=e;for(let o=s.length-1;o>=0;o--){const{offset:r,length:l,authorId:d}=s[o],m=t.slice(0,r),f=t.slice(r,r+l),u=t.slice(r+l);t=`${m}<${pe} ${Fe}="${d}">${f}</${pe}>${u}`}return t}function Mo(e,n){const s=[...n].sort((r,l)=>r.offset-l.offset),t=[];let o=0;for(const r of s)r.offset<o||r.offset+r.length>e.length||(t.push(r),o=r.offset+r.length);return t}const Co=new Map,_t=i.createContext(Co);function Oo({authors:e,children:n}){return a.jsx(_t.Provider,{value:e,children:n})}function To(e){const n=i.useContext(_t);return e===void 0?void 0:n.get(e)}function _o(e){return typeof e=="string"?e.replace(/^@/,""):""}function Eo({authorId:e,children:n}){const s=To(e),t=Ne(s==null?void 0:s.agentRef),{open:o}=dt();if(!s)return a.jsx(Ve,{kind:"human",label:_o(n),resolved:!1});const r=rt({record:s,override:t==null?void 0:t.visual}),l=ct(s,t==null?void 0:t.memberId),d=l===void 0?void 0:()=>o(l),m=d?{role:"button",tabIndex:0,"aria-label":`View ${s.displayName}’s profile`,onClick:d,onKeyDown:f=>{f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),d())}}:{};return a.jsx(St,{onViewProfile:d,identity:{kind:s.kind,displayName:s.displayName,handle:s.handle??void 0,color:r.color,emoji:r.emoji,imageUrl:r.imageUrl,origin:s.origin,agent:t&&{runtime:t.runtime,...t.model&&{model:t.model}}},children:a.jsx(Ve,{kind:s.kind,label:s.displayName,handle:s.handle??void 0,color:s.color,origin:s.origin,resolved:!0,interactive:d!==void 0,...m})})}function Po(e){return{mention:n=>{const s=n[Fe],t=typeof s=="string"?s:void 0;return!t||!e.has(t)?a.jsx(a.Fragment,{children:n.children}):a.jsx(Eo,{authorId:t,children:n.children})}}}function $o({entry:e,authors:n}){const s=i.useMemo(()=>Ao(e.body.text,e.mentionSpans),[e.body.text,e.mentionSpans]),t=i.useMemo(()=>{var r;return new Set(((r=e.mentionSpans)==null?void 0:r.map(l=>l.authorId))??[])},[e.mentionSpans]),o=i.useMemo(()=>Po(t),[t]);return a.jsx(Oo,{authors:n,children:a.jsx(Is,{content:s,className:"msg-prose",allowedTags:jo,literalTagContent:So,components:o,renderers:Qs})})}function Do(e){return function(s){return a.jsx($o,{entry:s,authors:e})}}const Et="the top folder";function Qe(e){return e.slice(e.lastIndexOf("/")+1)}function Fo(e){const n=e.lastIndexOf("/");return n===-1?"":e.slice(0,n)}function Lo(e){return e===""?Et:`${e}/`}function ve(e){return e.target!==void 0?e.target===""?Et:e.target:Lo(Fo(e.paths[0]??""))}function zo(e,n){const s=e.paths[0]??"",t=e.target;switch(e.kind){case"edit":return`${n} edited ${t??s}`;case"add":return`${n} added ${t??s}`;case"upload":return e.pathCount===1?`${n} uploaded ${Qe(s)} to ${ve(e)}`:`${n} uploaded ${e.pathCount} files to ${ve(e)}`;case"rename":{const o=e.from??"";return t!==void 0?`${n} renamed ${o} to ${t}`:o.endsWith("/")?`${n} renamed ${o}`:`${n} renamed ${o} to ${s}`}case"delete":return t!==void 0?`${n} deleted ${t}`:e.pathCount===1?`${n} deleted ${s}`:`${n} deleted ${e.pathCount} files`;case"from-attachment":return`${n} saved ${Qe(s)} from the chat to ${ve(e)}`}}const Ho=i.lazy(()=>bn(()=>import("./index-CiVeycsn.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])).then(e=>({default:e.SaveToRoomFilesButton})));function Pt({roomId:e,entry:n,author:s,authorRef:t,authors:o,viewerAuthorId:r,authorNames:l,reactionFrequents:d,streamStalled:m,isMember:f=!0,grouping:u,orphanedReply:c,answers:w,feedPosition:h,rowId:g}){const k=Te(n.createdAt),x=i.useMemo(()=>{const K=vo(n.body.text),xe=hs(n.attachments??[]);if(xe===null)return K;const He=K??n.body.text.trim();return He.length>0?`${He} ${xe}`:xe},[n.body.text,n.attachments]),N=i.useId(),p=`${N}-author`,b=`${N}-content`,_=`${N}-summary`,T=i.useRef(null),$=i.useRef(null),C=i.useRef(null),{reactions:E,toggle:P,quickRow:I}=wo({roomId:e,entry:n,viewerAuthorId:r,reactionFrequents:d,streamStalled:m,isMember:f}),F=Ne(t==null?void 0:t.agentRef),{open:D}=dt(),M=t===void 0?void 0:ct(t,F==null?void 0:F.memberId),H=i.useCallback(()=>{M!==void 0&&D(M)},[D,M]),L=M===void 0?void 0:H,B=lo({roomId:e,entry:n,author:t,viewerAuthorId:r,onViewProfile:L}),W=Io({barRef:$,pillsRef:C,hasReactions:E.length>0}),z=i.useCallback(()=>{var K;return(K=T.current)==null?void 0:K.focus()},[]),q=i.useMemo(()=>Do(o),[o]),R=i.useCallback(K=>a.jsx(i.Suspense,{fallback:null,children:a.jsx(Ho,{roomId:e,attachment:K})}),[e]),y=go(),O=n.body.subjectAuthorId??n.authorId,A=o.get(O),v=Ne(A==null?void 0:A.agentRef),S=No(e,n),j=co(n);if(j.kind==="notice")return a.jsx(so,{entry:n,feedPosition:h,rowId:g,sessionLink:S,subjectName:A==null?void 0:A.displayName});if(j.kind==="moment")return a.jsx(ro,{entry:n,moment:j.moment,subject:O===n.authorId?s:Y(O,o,y),subjectIdentity:{handle:(A==null?void 0:A.handle)??void 0,origin:A==null?void 0:A.origin,agent:v&&{runtime:v.runtime,...v.model&&{model:v.model}}},feedPosition:h,rowId:g});const U=u.position==="first"||u.position==="only";return a.jsxs(G.Root,{ref:T,id:g,position:u.position,actions:B,reactions:I,"data-testid":"room-entry",tabIndex:0,...yo({showAuthorHeader:U,headerId:p,displayName:s.displayName,time:k,summary:x,contentId:b,summaryId:_,feedPosition:h}),onKeyDown:W,children:[a.jsx(G.Gutter,{author:s,at:n.createdAt,onViewProfile:L,isSelf:n.authorId===r}),a.jsxs(G.Body,{children:[a.jsx(G.Author,{id:p,author:s,at:n.createdAt,origin:t==null?void 0:t.origin}),c===!0&&a.jsx("p",{"data-testid":"room-entry-orphan",className:"text-muted-foreground text-xs italic",children:"Replying to an earlier message"}),w!=null&&a.jsx("p",{"data-testid":"room-entry-answers",className:"text-muted-foreground mb-1 truncate text-xs italic",children:`Answering “${w.excerpt}”`}),a.jsx(G.Content,{id:b,className:"[&_:not(pre)>code]:wrap-anywhere [&_pre]:overflow-x-auto",children:n.body.fileChange?a.jsx("p",{"data-testid":"room-entry-file-change",className:"wrap-anywhere",children:zo(n.body.fileChange,(A==null?void 0:A.displayName)??"Somebody")}):q(n,{rowId:n.id,isStreaming:!1})}),x!==null&&a.jsx("span",{id:_,className:"hidden",children:x}),a.jsx(G.Attachments,{items:n.attachments??[],renderAction:f?R:void 0}),a.jsx(G.Reactions,{ref:C,reactions:E,viewerAuthorId:r,names:l,frequents:d,onToggle:P,disabled:m===!0||!f,onExit:z}),a.jsx(G.Actions,{actions:B,reactions:I,barRef:$,onExit:z})]})]})}const Bo="room-load-older",qo=4;function $t({roomName:e}){return a.jsx(gs,{label:e===void 0?"Messages":`Messages in ${e}`,busy:!0,className:"flex flex-col gap-4 p-4","data-testid":"room-timeline-loading",children:Array.from({length:qo},(n,s)=>a.jsxs("div",{className:"flex gap-3",children:[a.jsx(se,{className:"size-7 shrink-0 rounded-full"}),a.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[a.jsx(se,{className:"h-3 w-24"}),a.jsx(se,{className:"h-3 w-full max-w-md"})]})]},`room-skeleton-${s}`))})}function Uo({roomId:e,roomName:n,viewerAuthorId:s,entries:t,members:o,formerAuthors:r,lastReadSeq:l,reactionFrequents:d,streamStalled:m,isLoading:f,error:u,onAddAgents:c,openThreadId:w,onOpenThread:h,resumeRow:g,landOnRow:k,onTopRow:x,canLoadOlder:N=!1,isLoadingOlder:p=!1,onLoadOlder:b,ref:_}){const T=i.useMemo(()=>Ee(o,r),[o,r]),$=he(o,s),C=De(),E=i.useMemo(()=>new Map([...T].map(([y,O])=>[y,O.displayName])),[T]),P=ut(),I=mt(e,null),{topLevel:F,repliesByRoot:D,orphaned:M}=i.useMemo(()=>uo(t),[t]),H=i.useMemo(()=>new Map(t.map(y=>[y.id,y])),[t]),L=i.useMemo(()=>{const y=vn(F,l),O=kn(F.map(v=>({id:v.id,authorId:v.body.moment?`moment:${v.id}`:v.authorId,timestamp:v.createdAt})),{now:P,lastSeenId:y.lastSeenId,unreadFromStart:y.fromStart}),A=[];N&&!f&&A.push({kind:"load-older",id:Bo});for(const v of O){if(v.kind==="day-divider"){A.push({kind:"day-divider",id:v.key,label:v.label});continue}if(v.kind==="unread-divider"){A.push({kind:"unread-divider",id:v.key});continue}const S=F[v.index];A.push({kind:"message",id:S.id,entry:S,grouping:v.grouping,position:v.index+1,answers:Ot(S,F[v.index-1],H.get.bind(H))});const j=D.get(S.id);j&&A.push({kind:"thread-reply",id:Ct(S.id),rootId:S.id,replies:j,totalReplies:S.threadReplyCount})}return A},[F,D,H,l,P,N,f]),B=i.useMemo(()=>L.map(y=>y.kind==="load-older"?{kind:"notice",id:y.id,at:"",body:null}:y.kind==="day-divider"?{kind:"day-divider",id:y.id,label:y.label}:y.kind==="unread-divider"?{kind:"unread-divider",id:y.id}:y.kind==="thread-reply"?{kind:"thread-reply",id:y.id,rootId:y.rootId,replyCount:_e(y.replies.length,y.totalReplies),lastAt:y.replies[y.replies.length-1].createdAt}:{kind:"message",id:y.id,payload:y.entry,grouping:y.grouping,author:Y(ue(y.entry,T),T,C.faces),at:y.entry.createdAt}),[L,T,C.faces]),W=i.useCallback((y,O)=>{const A=L[O.index];if(A.kind==="load-older")return b===void 0?null:a.jsx(xo,{loading:p,onLoad:b});if(A.kind==="day-divider")return a.jsx(xs,{label:A.label});if(A.kind==="unread-divider")return a.jsx(ys,{});if(A.kind==="thread-reply"){if(O.onOpenThread===void 0)return null;const S=O.onOpenThread;return a.jsx(ao,{id:me(A.rootId),summary:Vs(A.replies,l,A.totalReplies),open:w===A.rootId,onOpen:()=>S(A.rootId)})}const v=ue(A.entry,T);return a.jsx(Pt,{roomId:e,entry:A.entry,author:Y(v,T,C.faces),authorRef:T.get(v),authors:T,viewerAuthorId:s,authorNames:E,reactionFrequents:d,streamStalled:m,isMember:$,grouping:A.grouping,orphanedReply:M.has(A.entry.id),answers:A.answers,feedPosition:{index:A.position,total:-1},rowId:fe(A.entry.id)})},[L,e,T,C.faces,s,E,d,m,$,M,l,w,p,b]),z=i.useCallback(y=>{if(y.kind==="message")return fe(y.id);if(y.kind==="thread-reply")return me(y.rootId)},[]);if(u)return a.jsxs("div",{className:"text-muted-foreground flex flex-col items-center gap-2 p-10 text-center text-sm",children:[a.jsx("p",{className:"text-foreground font-medium",children:"Couldn’t load these messages"}),a.jsx("p",{className:"max-w-sm",children:"Nothing was lost. Reload to try again."})]});const q=o.some(y=>y.author.kind==="agent"),R=a.jsxs("div",{className:"text-muted-foreground flex flex-col items-center gap-2 p-10 text-center text-sm",children:[a.jsx(Rn,{className:"text-muted-foreground/50 size-8","aria-hidden":!0}),a.jsx("p",{className:"text-foreground font-medium",children:"Nothing said here yet"}),a.jsx("p",{className:"max-w-sm",children:q?"Say something to get it going.":"Nothing answers until you add an agent."}),a.jsx(Ae,{type:"button",size:"sm",variant:q?"ghost":"default",onClick:c,className:"mt-1",children:q?"Add more agents":"Add agents"})]});return a.jsx(Tt,{known:C,children:a.jsx(Q.Timeline,{ref:_,conversationId:e,label:`Messages in ${n}`,rows:B,renderRow:W,onOpenThread:h,domIdOf:z,...g===void 0?{}:{resumeRow:g},...k===void 0?{}:{landOnRow:k},...x===void 0?{}:{onTopRow:x},pending:I,viewerAuthorId:s,loading:f?a.jsx($t,{roomName:n}):void 0,empty:R,feedTestId:"room-timeline"})})}const Le={reactions:!0,threads:!0,runWith:!1,attachments:!0,mentions:!0,streamHealth:!0,presence:!0,turnStatus:!1,asks:!0};function Wo(e){const n=ne(),[s,t]=i.useState([]),o=i.useRef(new Map),r=i.useCallback(h=>{const g=h.map(k=>({id:crypto.randomUUID(),file:k,status:"pending",progress:0}));t(k=>[...k,...g])},[]),l=i.useCallback(h=>{o.current.delete(h),t(g=>g.filter(k=>k.id!==h))},[]),d=i.useCallback(h=>{if(!h){o.current.clear(),t([]);return}const g=new Set(h);for(const k of g)o.current.delete(k);t(k=>k.filter(x=>!g.has(x.id)))},[]),m=i.useCallback(h=>{o.current.delete(h),t(g=>g.map(k=>k.id===h&&k.status==="error"?{...k,status:"pending",progress:0,error:void 0}:k))},[]),f=i.useRef(null),u=re({meta:{suppressErrorToast:!0},mutationFn:async h=>{t(N=>N.map(p=>h.some(b=>b.id===p.id)?{...p,status:"uploading"}:p));const g=N=>{t(p=>p.map(b=>b.status==="uploading"?{...b,progress:N.percentage}:b))},k=new AbortController;f.current=k;const x=h.map(N=>N.file);return n.uploadRoomAttachments(e,x,g,k.signal)},onSettled:()=>{f.current=null},onSuccess:(h,g)=>{g.forEach((k,x)=>{const N=h[x];N&&o.current.set(k.id,N.id)}),t(k=>k.map(x=>g.findIndex(p=>p.id===x.id)===-1?x:{...x,status:"uploaded",progress:100}))},onError:h=>{t(g=>g.map(k=>k.status==="uploading"?{...k,status:"error",error:h.message}:k))}}),c=i.useCallback(()=>{var h;(h=f.current)==null||h.abort()},[]),w=i.useCallback(async()=>{const h=s.filter(k=>k.status==="error");if(h.length>0)throw new Error(h.length===1?`${h[0].file.name} didn’t upload. Try again or remove it.`:`${h.length} files didn’t upload. Try again or remove them.`);const g=s.filter(k=>k.status==="pending");return g.length>0&&await u.mutateAsync(g),s.map(k=>o.current.get(k.id)).filter(k=>k!==void 0)},[s,u]);return{pendingFiles:s,addFiles:r,removeFile:l,retryFile:m,clearFiles:d,cancelUpload:c,uploadAndGetIds:w,hasPendingFiles:s.length>0,hasFailedUpload:s.some(h=>h.status==="error"),isUploading:u.isPending}}function Dt(e){const{room:n,threadRootId:s}=e,t=bs(),o=vs(),r=Wo((n==null?void 0:n.id)??""),l=n!==void 0&&he(n.members,n.viewerAuthorId),d=i.useRef({attachments:r,post:t,reply:o,room:n,threadRootId:s});i.useEffect(()=>{d.current={attachments:r,post:t,reply:o,room:n,threadRootId:s}});const m=i.useCallback(p=>d.current.attachments.addFiles(p),[]),f=i.useCallback(p=>d.current.attachments.removeFile(p),[]),u=i.useCallback(p=>d.current.attachments.retryFile(p),[]),c=i.useCallback(()=>d.current.attachments.cancelUpload(),[]),{pendingFiles:w,hasFailedUpload:h,isUploading:g}=r,k=i.useMemo(()=>({staged:w,add:m,remove:f,retry:u,cancel:c,hasFailed:h,isUploading:g,holdsSendWhileUploading:!1}),[w,h,g,m,f,u,c]),x=i.useCallback(async p=>{const{attachments:b,post:_,reply:T,room:$,threadRootId:C}=d.current;if($===void 0)throw new Error("That room isn’t loaded yet.");if($.archived)throw new Error("This room is archived.");Re.getState().recordOpened("room",$.id);const E=wn(),P=b.pendingFiles.map(M=>M.file.name),I=b.pendingFiles.map(M=>M.id),F=await b.uploadAndGetIds();b.clearFiles(I);const D=p.parentEntryId??C;if(D!==void 0){T.mutate({roomId:$.id,rootEntryId:D,text:p.text,clientId:E,attachmentIds:F,attachmentNames:P});return}_.mutate({roomId:$.id,text:p.text,clientId:E,attachmentIds:F,attachmentNames:P})},[]);return{target:i.useMemo(()=>({kind:"room",id:(n==null?void 0:n.id)??"",placeholder:n===void 0?"Message…":s===void 0?`Message ${te(n)}…`:"Reply in this thread…",canSend:n!==void 0&&!n.archived&&l,...n===void 0?{canSendReason:"Still opening this room…"}:n.archived?{canSendReason:"This room is archived. You can read it, but not add to it."}:l?{}:{canSendReason:ft},send:x,attachments:k}),[n,s,l,k,x]),attachments:r}}function Ko(e){const{roomId:n,entrySeq:s,entries:t,historyLoaded:o}=e,r=s===void 0?null:`${n}:${s}`,l=i.useMemo(()=>{if(s===void 0)return null;const g=t.find(p=>p.seq===s);if(g===void 0)return null;const k=Pe(t,g.id);if(k===null)return null;const x=J(g)??null,N=x!==null&&k.rowId!==g.id;return{roomRowId:k.rowId,threadRootId:N?x:null,entryId:g.id}},[t,s]),d=i.useRef(null),m=(l==null?void 0:l.threadRootId)??null;i.useEffect(()=>{r===null||m===null||d.current!==r&&(d.current=r,X.getState().openThread(n,m))},[r,n,m]);const f=i.useRef(null);i.useEffect(()=>{r===null||!o||l===null&&f.current!==r&&(f.current=r,pt.info("That message isn’t in the loaded history",{description:"Only recent messages are open. Nothing was lost."}))},[r,o,l]);const u=i.useRef(null),c=i.useCallback(()=>{if(!(r===null||u.current===r))return u.current=r,l==null?void 0:l.roomRowId},[r,l]),w=i.useRef(null),h=i.useCallback(()=>{if(!(r===null||w.current===r))return w.current=r,(l==null?void 0:l.threadRootId)===null||l==null?void 0:l.entryId},[r,l]);return{roomRow:s===void 0?void 0:c,threadRow:s===void 0?void 0:h}}function Go(e,n){const[s,t]=i.useState({roomId:null,seq:null});return s.roomId===e?s.seq:e===null?(t({roomId:null,seq:null}),null):n===null?null:(t({roomId:e,seq:n}),n)}const Vo=600;function Xo(e){return document.getElementById(me(e))??document.getElementById(fe(e))}function Yo(){const e=i.useRef(null);return i.useEffect(()=>()=>{var s;return(s=e.current)==null?void 0:s.call(e)},[]),{arm:i.useCallback(s=>{var d;(d=e.current)==null||d.call(e);let t=0;const o=Date.now()+Vo;let r=!1;const l=()=>{if(r)return;const m=document.activeElement;if(m===null||m===document.body||!m.isConnected){const u=Xo(s);if(u!==null){u.focus();return}}Date.now()>=o||(t=requestAnimationFrame(l))};t=requestAnimationFrame(l),e.current=()=>{r=!0,cancelAnimationFrame(t)}},[])}}function Qo({roomId:e,route:n,urlThreadId:s,openThreadId:t,entries:o,historyLoaded:r}){const l=In(),d=i.useRef(null);i.useEffect(()=>{if(e!==null){if(d.current!==e&&(d.current=e,s!==void 0)){X.getState().openThread(e,s);return}if(r&&t!==void 0){const m=o.find(u=>u.id===t),f=m===void 0?void 0:Mt(m);if(f!==void 0&&f!==t){const u=X.getState().open[e];X.getState().openThread(e,f,(u==null?void 0:u.focusComposer)??!1);return}}t!==s&&(l==null||l({to:n,search:m=>({...m,thread:t}),replace:!0}))}},[e,n,t,s,o,r,l])}const Jo=6,Ft="jump-back-in-listbox";function ze(e){return`jump-back-in-item-${e}`}const Zo='[role="combobox"]';function oe(e){return e instanceof Element&&e.matches(Zo)}function er({value:e,yieldToPalette:n=!1,enabled:s=!0}){const t=Me(),o=Nn(),[r,l]=i.useState(!1),[d,m]=i.useState({stamp:"",index:0}),[f,u]=i.useState(!1),[c,w]=i.useState(!1);e.length>0&&!c&&w(!0);const h=i.useRef(!1);i.useEffect(()=>{h.current=!0},[]);const{data:g}=it({enabled:s}),k=i.useMemo(()=>((g==null?void 0:g.agents)??[]).map(R=>R.projectPath),[g]),{data:x}=lt(k,{enabled:s}),N=i.useMemo(()=>x??{},[x]),p=i.useMemo(()=>jn(k,N),[k,N]),b=i.useMemo(()=>new Map(k.map(R=>[at(R),R])),[k]),_=i.useCallback(R=>Sn({room:R,agentsByPath:N,pathByAgentRef:b}),[N,b]),T=i.useMemo(()=>An(o.muted),[o.muted]),{items:$}=cs({mutedRoomIds:T,enabled:s}),C=i.useMemo(()=>$.slice(0,Jo),[$]),E=s&&r&&!f&&!c&&!n&&e.length===0&&C.length>0,P=`${E}:${C.length}`,I=d.stamp===P?d.index:0,F=i.useCallback(R=>{h.current&&oe(R.target)&&(u(!1),w(!1),l(!0))},[]),D=i.useCallback(R=>{oe(R.target)&&l(!0)},[]),M=i.useCallback(R=>{oe(R.target)&&l(!1)},[]),H=i.useCallback(R=>{C.length!==0&&m(y=>{const O=y.stamp===P?y.index:0;return{stamp:P,index:(O+R+C.length)%C.length}})},[C.length,P]),L=i.useCallback(()=>H(1),[H]),B=i.useCallback(()=>H(-1),[H]),W=i.useCallback(()=>{u(!0)},[]),z=i.useCallback(R=>{if(u(!0),R.kind==="session"){R.session.cwd&&Re.getState().recordOpened("agent",R.session.cwd),t(ce({dir:R.session.cwd??void 0,session:R.session.id}));return}Re.getState().recordOpened("room",R.room.id),t({...ht.channels(),search:{id:R.room.id}})},[t]),q=i.useCallback(()=>{const R=C[I];!E||!R||z(R)},[E,C,I,z]);return{isOpen:E,hasRows:C.length>0,rows:C,agents:N,displayNames:p,visualOf:_,selectedIndex:I,activeDescendantId:E&&C[I]!==void 0?ze(I):void 0,listboxId:E?Ft:void 0,handleFocus:F,handleBlur:M,handlePointerDown:D,moveDown:L,moveUp:B,selectHighlighted:q,selectRow:z,dismiss:W}}function Lt({mark:e,label:n,title:s,summary:t,lastActivityAt:o,index:r,isSelected:l,now:d,onSelect:m}){const f=i.useMemo(()=>Number.isNaN(Date.parse(o))?null:En(o),[o,d]);return a.jsxs("div",{id:ze(r),role:"option","aria-selected":l,"data-selected":l,title:s,onClick:m,className:"data-[selected=true]:bg-accent hover:bg-muted flex cursor-pointer items-start gap-2 rounded-md px-2 py-1.5 transition-colors duration-100",children:[a.jsx("span",{className:"mt-px flex shrink-0 items-center",children:e}),a.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[a.jsxs("span",{className:"flex w-full items-center gap-1.5",children:[a.jsx("span",{className:"text-foreground min-w-0 flex-1 truncate text-sm",children:n}),f!==null&&a.jsx("span",{className:"text-muted-foreground/60 text-3xs shrink-0",children:f})]}),t!==null&&a.jsx("span",{className:"text-muted-foreground/70 text-2xs truncate",children:t})]})]})}function tr({item:e,agent:n,displayName:s,index:t,isSelected:o,now:r,onSelect:l}){const d=Mn(n,e.session.cwd??s);return a.jsx(Lt,{mark:a.jsx(Cn,{color:d.color,emoji:d.emoji,size:"xs"}),label:e.name,title:`${s} · ${e.name}`,summary:e.summary,lastActivityAt:e.lastActivityAt,index:t,isSelected:o,now:r,onSelect:l})}function nr({item:e,visual:n,index:s,isSelected:t,now:o,onSelect:r}){return a.jsx(Lt,{mark:a.jsx(Tn,{room:e.room,participants:e.room.participants,visuals:_n(n)}),label:a.jsx(On,{room:e.room}),title:e.summary===null?e.name:`${e.name} · ${e.summary}`,summary:e.summary,lastActivityAt:e.lastActivityAt,index:s,isSelected:t,now:o,onSelect:r})}function sr({rows:e,selectedIndex:n,agents:s={},displayNames:t={},visualOf:o,onSelect:r}){const l=ut(6e4);return i.useEffect(()=>{var d,m;(m=(d=document.getElementById(ze(n)))==null?void 0:d.scrollIntoView)==null||m.call(d,{block:"nearest"})},[n]),a.jsx(Ce.div,{initial:{opacity:0,scale:.98,y:4},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.98,y:4},transition:{duration:.15,ease:[0,0,.2,1]},className:"bg-popover max-h-80 overflow-hidden rounded-lg border shadow-lg",onMouseDown:d=>d.preventDefault(),children:a.jsx("div",{id:Ft,role:"listbox","aria-label":"Jump back in",className:"max-h-72 overflow-y-auto p-1.5",children:e.map((d,m)=>{var f;return d.kind==="session"?a.jsx(tr,{item:d,agent:d.session.cwd&&s[d.session.cwd]||null,displayName:d.session.cwd&&t[d.session.cwd]||((f=d.session.cwd)==null?void 0:f.split("/").pop())||"Agent",index:m,isSelected:m===n,now:l,onSelect:()=>r(d)},`session-${d.id}`):a.jsx(nr,{item:d,visual:o(d.room),index:m,isSelected:m===n,now:l,onSelect:()=>r(d)},`room-${d.id}`)})})})}const Je={people:"People",agents:"Agents"},or=["people","agents"];function rr(e,n){const s=[];for(const{author:t}of e){if(t.kind==="system"||t.id===n||t.retired)continue;const o=t.handle;s.push({section:t.kind==="agent"?"agents":"people",authorId:t.id,label:t.displayName,...o?{handle:o}:{},...t.emoji?{emoji:t.emoji}:{},...t.color?{color:t.color}:{},disabled:!o,...o?{}:{disabledReason:"No @name"}})}return s}function ar(e,n,s){const t=n.trim().toLowerCase(),o=e.map((r,l)=>({row:r,position:l,tier:ir(r,t)})).filter(r=>r.tier!==null).sort((r,l)=>r.tier-l.tier||r.position-l.position);return s.flatMap(r=>o.filter(l=>l.row.section===r).map(({row:l})=>l))}function ir(e,n){var o;if(n==="")return 0;const s=[(o=e.handle)==null?void 0:o.toLowerCase(),e.label.toLowerCase()].filter(r=>r!==void 0);let t=null;for(const r of s){const l=r===n?0:r.startsWith(n)?1:r.includes(n)?2:null;l!==null&&(t===null||l<t)&&(t=l)}return t}function ie(e,n,s){var r;const t=e.length;if(t===0)return 0;let o=(n%t+t)%t;for(let l=0;l<t;l++){if(!((r=e[o])!=null&&r.disabled))return o;o=(o+s+t)%t}return 0}function lr(e,n,s,t){const o=e.slice(0,n),r=e.slice(n+1+s.length),l=`@${t}`,d=r.startsWith(" ")?"":" ";return{value:o+l+d+r,cursorPos:o.length+l.length+1}}const dr=/(^|\s)@([A-Za-z0-9_.-]*)$/,zt="mention-palette-listbox";function je(e){return`mention-item-${e}`}function cr({members:e,viewerAuthorId:n,text:s,sectionOrder:t=or}){var D;const[o,r]=i.useState(!1),[l,d]=i.useState(""),[m,f]=i.useState(-1),u=Pn(s),c=i.useRef(!1),w=i.useMemo(()=>rr(e,n),[e,n]),h=i.useMemo(()=>o?ar(w,l,t):[],[w,l,o,t]),[g,k]=i.useState(null),x=g!==null&&g.query===l&&g.open===o?g.index:ie(h,0,1),N=h[x],p=h.length===0||N!==void 0&&!N.disabled?x:ie(h,0,1),b=i.useCallback((M,H)=>{const L=M.slice(0,H).match(dr);if(!L){r(!1);return}r(!0),d(L[2]),f((L.index??0)+L[1].length)},[]),_=i.useCallback(M=>{u.write(M),c.current=!1},[u]),T=i.useCallback(M=>{c.current||b(u.read(),M)},[b,u]),$=i.useCallback(()=>{k({query:l,open:o,index:ie(h,p+1,1)})},[h,p,l,o]),C=i.useCallback(()=>{k({query:l,open:o,index:ie(h,p-1,-1)})},[h,p,l,o]),E=i.useCallback(M=>M.disabled||M.handle===void 0?null:(c.current=!0,r(!1),lr(u.read(),m,l,M.handle)),[m,l,u]),P=i.useCallback(()=>{const M=h[p];return M?E(M):(r(!1),null)},[h,p,E]),I=i.useCallback(()=>{c.current=!0,r(!1)},[]),F=h.some(M=>!M.disabled);return{isOpen:o,hasSelectableRows:F,rows:h,selectedIndex:p,activeDescendantId:o&&((D=h[p])==null?void 0:D.disabled)===!1?je(p):void 0,listboxId:o?zt:void 0,noteTextChange:_,handleCursorChange:T,moveDown:$,moveUp:C,selectHighlighted:P,selectRow:E,dismiss:I}}function ur({rows:e,selectedIndex:n,onSelect:s}){const t=i.useMemo(()=>{const o=[];return e.forEach((r,l)=>{const d=o[o.length-1];d&&d.section===r.section?d.items.push({row:r,index:l}):o.push({section:r.section,items:[{row:r,index:l}]})}),o},[e]);return i.useEffect(()=>{var o;(o=document.getElementById(je(n)))==null||o.scrollIntoView({block:"nearest"})},[n]),a.jsx(Ce.div,{initial:{opacity:0,scale:.98,y:4},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.98,y:4},transition:{duration:.15,ease:[0,0,.2,1]},className:"bg-popover max-h-80 overflow-hidden rounded-lg border shadow-lg",onMouseDown:o=>o.preventDefault(),children:a.jsx("div",{id:zt,role:"listbox","aria-label":"Mentions",className:"max-h-72 overflow-y-auto p-1.5",children:e.length===0?a.jsx("div",{className:"text-muted-foreground px-2 py-4 text-center text-sm",children:"No one by that name."}):t.map(({section:o,items:r},l)=>a.jsxs("div",{role:"group","aria-label":Je[o],children:[l>0&&a.jsx("div",{className:"bg-border mx-2 my-1.5 h-px"}),a.jsx("div",{"aria-hidden":!0,className:"text-muted-foreground/70 text-2xs px-2 pt-1.5 pb-1 font-medium tracking-wide uppercase",children:Je[o]}),r.map(({row:d,index:m})=>{const f=m===n;return a.jsxs("div",{id:je(m),role:"option","aria-selected":f,"aria-disabled":d.disabled,"data-selected":f,"data-disabled":d.disabled,onClick:()=>{d.disabled||s(d)},className:d.disabled?"flex cursor-not-allowed items-center gap-2 rounded-md px-2 py-1.5 opacity-45":"data-[selected=true]:bg-accent hover:bg-muted flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 transition-colors duration-100",children:[a.jsx("span",{"aria-hidden":!0,className:"size-4 shrink-0 text-center text-sm leading-none",children:d.emoji}),a.jsx("span",{className:"text-foreground truncate text-sm font-medium",children:d.label}),d.handle!==void 0&&a.jsxs("span",{className:"text-muted-foreground/70 truncate font-mono text-xs",children:["@",d.handle]}),d.disabledReason!==void 0&&a.jsx("span",{className:"text-muted-foreground/70 text-2xs ml-auto shrink-0",children:d.disabledReason})]},d.authorId)})]},o))})})}function Ht({room:e,threadRootId:n,focusOnMount:s,offerJumpBackIn:t,onFocusChange:o,attachments:r}){const l=n===void 0?e.id:ot(e.id,n),d=$n(l),{target:m}=yt(),f=Dn(),u=Fn(l),c=i.useRef(null),w=he(e.members,e.viewerAuthorId),h=i.useRef(!1),g=cr({members:e.members,viewerAuthorId:e.viewerAuthorId,text:d}),k=t===!0,x=er({value:d,yieldToPalette:g.isOpen,enabled:k}),N=i.useRef(u);i.useEffect(()=>{var I;u!==N.current&&(N.current=u,(I=c.current)==null||I.focus())},[u]),i.useEffect(()=>{var I;s===!0&&((I=c.current)==null||I.focusUnlessTouch())},[]);const p=i.useCallback(I=>le.getState().set(l,I),[l]),[b,_]=i.useState(null);i.useLayoutEffect(()=>{var I;b!==null&&((I=c.current)==null||I.focusAt(b.pos))},[b]);const T=i.useCallback(I=>{I&&(p(I.value),_({pos:I.cursorPos}))},[p]),$=i.useCallback(I=>T(g.selectRow(I)),[g,T]),C=i.useCallback(()=>T(g.selectHighlighted()),[g,T]),E=()=>{if(m===null||!m.canSend||h.current)return;g.dismiss();const I=le.getState().take(l).trim();if(I==="")return;const F=r.pendingFiles.length>0;F&&(h.current=!0),m.send({text:I}).catch(()=>{const D=le.getState(),M=D.drafts[l]??"";D.set(l,M===""?I:`${I}
44
+ ${M}`)}).finally(()=>{F&&(h.current=!1)})};if(!w)return a.jsxs("div",{className:"flex items-center justify-between gap-3 border-t px-4 py-3",children:[a.jsx("p",{className:"text-muted-foreground text-sm",children:ft}),a.jsx(Ae,{type:"button",size:"sm",variant:"outline",disabled:f.isPending,onClick:()=>f.mutate({roomId:e.id,authorId:e.viewerAuthorId},{onSuccess:()=>pt.success(`You joined ${te(e)}`)}),children:Ln})]});const P=a.jsx(Q.Composer,{inputRef:c,value:d,onChange:I=>{p(I),g.noteTextChange(I)},onSubmit:E,head:a.jsx("span",{role:"status","aria-live":"polite","aria-atomic":"true",className:"sr-only",children:g.isOpen&&g.rows.length===0?"No one by that name.":""}),mentionPicker:a.jsx(we,{children:g.isOpen&&a.jsx(ur,{rows:g.rows,selectedIndex:g.selectedIndex,onSelect:$})}),overlays:a.jsx(a.Fragment,{children:a.jsx(we,{children:x.isOpen&&a.jsx(sr,{rows:x.rows,selectedIndex:x.selectedIndex,agents:x.agents,displayNames:x.displayNames,visualOf:x.visualOf,onSelect:x.selectRow})})}),input:{onCursorChange:g.handleCursorChange,isStreaming:!1,isPaletteOpen:g.isOpen||x.isOpen,paletteHasResults:x.isOpen?x.hasRows:g.hasSelectableRows,onArrowUp:x.isOpen?x.moveUp:g.moveUp,onArrowDown:x.isOpen?x.moveDown:g.moveDown,onCommandSelect:x.isOpen?x.selectHighlighted:C,onEscape:x.isOpen?x.dismiss:g.dismiss,tabPicks:!x.isOpen,onClear:()=>{p(""),g.dismiss()},activeDescendantId:x.isOpen?x.activeDescendantId:g.activeDescendantId,paletteListboxId:x.isOpen?x.listboxId:g.listboxId,contextKey:l,...r.hasFailedUpload?{canSubmitReason:"A file didn’t upload. Try it again or remove it, then send."}:{}}});return!k&&o===void 0?P:a.jsx("section",{className:"flex flex-col","data-testid":zn.homeComposer,onFocus:I=>{x.handleFocus(I),oe(I.target)&&(o==null||o(!0))},onBlur:I=>{x.handleBlur(I),oe(I.target)&&(o==null||o(!1))},onPointerDown:x.handlePointerDown,children:P})}function mr(e){return e.kind!=="channel"||e.bridge!=null||e.archived?!1:!e.members.some(n=>n.author.kind==="agent")}function fr({room:e,hasEntries:n,onAddAgents:s}){return!n||!mr(e)?null:a.jsxs("p",{className:"text-muted-foreground shrink-0 px-4 pb-1 text-xs","data-testid":"no-agent-hint",children:["No agent is in this channel to answer."," ",a.jsx("button",{type:"button",onClick:s,className:"text-foreground focus-visible:ring-ring rounded-sm underline underline-offset-2 focus-visible:ring-2 focus-visible:outline-none",children:"Add one"})," ","to get answers here."]})}function pr({roomId:e}){const{approvals:n}=Hn(),s=Bn(n).filter(t=>t.roomId===e);return s.length===0?null:a.jsx("section",{"data-slot":"room-approvals","aria-label":"Requests waiting on you",className:"shrink-0 px-3 pb-2 md:px-4",children:a.jsx(qn,{approvals:s})})}function hr({roomId:e}){const{data:n}=Ps("pending"),s=(n??[]).filter(t=>t.roomId===e);return s.length===0?null:a.jsx("section",{"data-slot":"room-agent-requests","aria-label":"Apps agents are asking for",className:"shrink-0 space-y-2 px-3 pb-2 md:px-4",children:s.map(t=>a.jsx($s,{request:t},t.requestId))})}const gr="An agent",Ze=64,ke=3,xr=new Set;function Bt({room:e,entries:n,scope:s,laneScope:t,stalled:o,unavailable:r=!1,onRetry:l,onScrollToRow:d}){const m=Me(),f=Un(e.id,s),u=Wn(e.id,s),c=Kn(e.id,s),[w,h]=i.useState(!1),g=At(e.id,{enabled:w}),k=Gn(),{mutate:x}=Ws(),[N,p]=i.useState(xr),b=i.useCallback(v=>{p(S=>new Set(S).add(v)),x({roomId:e.id,authorId:v},{onSettled:()=>p(S=>{const j=new Set(S);return j.delete(v),j})})},[x,e.id]),_=Ks(),[T,$]=i.useState(()=>new Map),C=Vn(),E=De(),P=i.useMemo(()=>Ee(e.members,e.formerAuthors),[e.members,e.formerAuthors]),I=i.useCallback(v=>{var S;return((S=P.get(v))==null?void 0:S.displayName)??gr},[P]),{interactions:F}=Xn(),D=i.useMemo(()=>F.filter(v=>v.roomId===e.id),[F,e.id]),M=i.useMemo(()=>{var S;const v={};for(const j of D){if(j.roomAuthorId===void 0)continue;const U=(S=P.get(j.roomAuthorId))==null?void 0:S.displayName;U!==void 0&&(v[j.sessionId]=U)}return v},[D,P]),H=i.useMemo(()=>f.map(v=>({authorId:v.authorId,name:I(v.authorId),state:v.state,since:v.since,activity:v.activity??null})),[f,I]),L=i.useMemo(()=>u.map(v=>{var j;const S=(j=C.data)==null?void 0:j.find(U=>U.id===v.behindRoomId);return{authorId:v.authorId,name:I(v.authorId),since:v.since,behind:{roomId:v.behindRoomId,title:S===void 0?null:te(S)},othersWaiting:v.othersWaiting,severalInTheWay:v.severalInTheWay}}),[u,I,C.data]),B=i.useMemo(()=>{const v=new Set;for(const S of u)T.get(S.authorId)===S.entryId&&v.add(S.authorId);return v},[u,T]),W=i.useMemo(()=>c===null?null:{authorId:c.authorId,name:I(c.authorId)},[c,I]),z=i.useMemo(()=>ks({capabilities:Le,asks:D,agentNames:M,stalled:o,presence:H,held:L,silentFinish:W,turn:null}),[D,M,H,L,W,o]),q=i.useMemo(()=>{var S;const v=new Map;for(const j of((S=g.data)==null?void 0:S.bindings)??[])v.set(j.authorId,j.sessionId);return v},[g.data]),R=i.useCallback(v=>{const S=n.find(U=>U.id===v);if(S===void 0)return null;const j=S.body.text.replace(/\s+/gu," ").trim();return j.length===0?null:j.length>Ze?`${j.slice(0,Ze).trimEnd()}…`:j},[n]),y=i.useCallback(v=>{var S;return t==="thread"?Ie(v):((S=Pe(n,v))==null?void 0:S.domId)??null},[n,t]),O=i.useMemo(()=>{const v=f.map(j=>{const U=R(j.entryId),K=y(j.entryId);return{authorId:j.authorId,author:Y(j.authorId,P,E.faces),state:j.state,since:j.since,doing:Yn(j.activity),replyingTo:U===null||K===null?null:{entryId:j.entryId,excerpt:U,rowId:K},sessionId:q.get(j.authorId)??null}}),S=L.map(j=>({authorId:j.authorId,author:Y(j.authorId,P,E.faces),state:"held",since:j.since,doing:null,replyingTo:null,sessionId:null,behind:j.behind,othersWaiting:j.othersWaiting}));return[...v,...S]},[f,L,P,E.faces,R,y,q]),A=i.useMemo(()=>{if(f.length===0)return null;const v=f.slice(0,ke);return a.jsxs("span",{"aria-hidden":"true",className:"flex shrink-0 -space-x-1",children:[v.map(S=>a.jsx(gt,{author:Y(S.authorId,P,E.faces),className:"ring-background size-4 ring-2"},S.authorId)),f.length>ke&&a.jsx("span",{className:"bg-muted text-muted-foreground ring-background text-3xs flex size-4 items-center justify-center rounded-full ring-2",children:`+${f.length-ke}`})]})},[f,P,E.faces]);return a.jsx(Q.LiveLane,{state:z,scope:t,onRetry:l,unavailable:r,faces:A,onPeekOpenChange:h,askCard:z.kind==="ask"?a.jsx(Qn,{ask:z.ask,...M[z.ask.sessionId]?{agentName:M[z.ask.sessionId]}:{},onOpenSession:v=>{m(ce({session:v}))},className:"border-l-0"}):void 0,peek:a.jsx(Q.LivePeek,{rows:O,onScrollToRow:d,onOpenSession:v=>{m(ce({session:v}))},onOpenRoom:v=>{m({...ht.channels(),search:{id:v}})},onAnswerFirst:v=>{const S=u.find(j=>j.authorId===v);S!==void 0&&$(j=>new Map(j).set(v,S.entryId)),_.mutate({roomId:e.id,authorId:v})},promoted:B,onStopAll:()=>k.mutate({roomId:e.id}),stopping:k.isPending,onStopAgent:b,stoppingAgents:N})})}const et=3e3;function yr(e,n,s,t=Date.now){const o=i.useRef(null),r=i.useRef(new Map),l=i.useRef(new Map),d=o.current,m=r.current,f=l.current,u=t();for(const c of e){if(f.has(c.id))continue;if(d===null){f.set(c.id,"at-rest");continue}const w=m.get(c.authorId);f.set(c.id,w!==void 0&&u-w<et?"handed-off":"dropped")}return i.useEffect(()=>{if(!s)return;o.current=new Set(e.map(w=>w.id));const c=t();for(const w of n)r.current.set(w,c);for(const[w,h]of r.current)c-h>et&&r.current.delete(w);for(const w of l.current.keys())o.current.has(w)||l.current.delete(w)}),f}function br({kind:e}){return e==="thread-error"?a.jsxs("div",{"data-slot":"thread-notice","data-testid":"room-thread-error",className:"text-muted-foreground flex flex-col items-center gap-2 px-[var(--msg-padding-x)] py-6 text-center text-sm",children:[a.jsx("p",{className:"text-foreground font-medium",children:"Couldn’t load this thread"}),a.jsx("p",{className:"max-w-sm text-xs",children:"Nothing was lost. Reload to try again."})]}):e==="thread-waiting"?a.jsxs("div",{"data-slot":"thread-notice",className:"flex flex-col gap-2 px-[var(--msg-padding-x)]",children:[a.jsx(se,{className:"h-3 w-24"}),a.jsx(se,{className:"h-3 w-full max-w-sm"})]}):a.jsx("p",{"data-slot":"thread-notice","data-testid":"room-thread-orphan",className:"text-muted-foreground border-b px-[var(--msg-padding-x)] pb-3 text-xs italic",children:"This thread’s first message is gone. Its replies remain."})}function vr({room:e,rootEntryId:n,focusComposer:s,entries:t,reactionFrequents:o,streamStalled:r,streamUnavailable:l,onRetryStream:d,historyLoaded:m,historyFailed:f=!1,landOnRow:u,pushed:c,onClose:w}){const h=i.useMemo(()=>Ee(e.members,e.formerAuthors),[e.members,e.formerAuthors]),g=Dt({room:e,threadRootId:n}),k=he(e.members,e.viewerAuthorId),x=De(),N=i.useMemo(()=>new Map([...h].map(([R,y])=>[R,y.displayName])),[h]),{root:p,replies:b}=i.useMemo(()=>{let R;const y=[];for(const O of t)O.id===n?R=O:J(O)===n&&y.push(O);return{root:R,replies:y}},[t,n]),_=p==null?void 0:p.threadReplyCount,T=_!==void 0&&_>b.length,$=p===void 0||T?-1:1+b.length,C=_e(b.length,_),E=i.useMemo(()=>new Set(b.map(R=>R.id)),[b]),P=i.useMemo(()=>({replyIds:E,inside:!0}),[E]),I=Jn(e.id,P),F=mt(e.id,n),D=yr(b,I,m),M=i.useRef(null),H=i.useCallback(R=>{var y;(y=M.current)==null||y.scrollToRow(R)},[]),L=i.useRef(null);i.useEffect(()=>{var R;s||(R=L.current)==null||R.focus()},[n,s]);const B=R=>{R.key!=="Escape"||R.defaultPrevented||(R.stopPropagation(),w())},W=i.useMemo(()=>{const R=[];if(p===void 0){const y=f?"thread-error":m?"thread-orphan":"thread-waiting";R.push({kind:"notice",id:y,at:"",body:null})}else R.push({kind:"message",id:p.id,payload:p,grouping:{position:"only"},author:Y(ue(p,h),h,x.faces),at:p.createdAt});for(const y of b)R.push({kind:"message",id:y.id,payload:y,grouping:{position:"only"},author:Y(ue(y,h),h,x.faces),at:y.createdAt});return R},[p,b,h,x.faces,f,m]),z=i.useCallback(R=>{if(R.kind==="notice")return a.jsx(br,{kind:R.id});if(R.kind!=="message")return null;const y=R.payload,O=p!==void 0&&y.id===p.id,A=b.findIndex(j=>j.id===y.id),v=a.jsx(Pt,{roomId:e.id,entry:y,rowId:Ie(y.id),author:R.author,authorRef:h.get(y.authorId),authors:h,viewerAuthorId:e.viewerAuthorId,authorNames:N,reactionFrequents:o,streamStalled:r,isMember:k,grouping:{position:"only"},answers:Ot(y,A<=0?p:b[A-1],j=>(p==null?void 0:p.id)===j?p:b.find(U=>U.id===j)),feedPosition:{index:O?1:(p===void 0?0:1)+A+1,total:$}});if(O)return C===0?v:a.jsxs(a.Fragment,{children:[v,a.jsxs("div",{"aria-hidden":!0,"data-testid":"room-thread-divider",className:"flex items-center gap-2 px-[var(--msg-padding-x)] pt-1 pb-2",children:[a.jsx("span",{className:"text-muted-foreground shrink-0 text-xs",children:C===1?"1 reply":`${C} replies`}),a.jsx("span",{className:"bg-border h-px flex-1"})]})]});const S=D.get(y.id)??"at-rest";return a.jsx("div",{className:V(S==="dropped"&&"motion-safe:animate-thread-reply-in",S==="handed-off"&&"motion-safe:animate-reply-settle"),children:v})},[p,b,C,D,e.id,e.viewerAuthorId,h,N,o,r,k,$]),q=i.useCallback(R=>R.kind==="message"?Ie(R.id):void 0,[]);return a.jsx(Tt,{known:x,children:a.jsx(Q.Root,{surface:"room",capabilities:Le,target:g.target,anchor:"rail",children:a.jsxs("section",{ref:L,"aria-label":"Thread","data-testid":"room-thread-panel",tabIndex:-1,onKeyDown:B,className:V("bg-card flex min-h-0 flex-col outline-none",c?"h-full w-full":"w-full border-l"),children:[a.jsxs("header",{className:"flex items-center gap-2 border-b px-3 py-2",children:[a.jsx("button",{type:"button",onClick:w,"aria-label":c?`Back to ${te(e)}`:"Close thread",className:V("focus-ring text-muted-foreground hover:text-foreground relative -ml-1 rounded p-1","after:absolute after:-inset-2.5 md:after:hidden"),children:c?a.jsx(Zn,{"aria-hidden":!0,className:"size-4"}):a.jsx(es,{"aria-hidden":!0,className:"size-4"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("p",{className:"text-sm font-medium",children:"Thread"}),a.jsx("p",{className:"text-muted-foreground truncate text-xs",children:te(e)})]})]}),a.jsx(Q.Timeline,{ref:M,conversationId:`thread-${n}`,label:`Thread in ${te(e)}`,busy:!m&&!f,rows:W,renderRow:z,domIdOf:q,...u===void 0?{}:{landOnRow:u},pending:F,viewerAuthorId:e.viewerAuthorId,className:"py-3",feedTestId:"room-thread-feed"}),a.jsx(Bt,{room:e,entries:t,scope:P,laneScope:"thread",stalled:c&&r===!0,unavailable:l,onRetry:c?d:void 0,onScrollToRow:H}),a.jsx(Ht,{room:e,threadRootId:n,attachments:g.attachments,focusOnMount:s},n)]})})})}const ge="room-thread-split",kr=320,Rr=360,wr=40,Ir=50,Nr=25;function tt(e,n){return n<=0?Nr:Math.min(Math.round(e/n*1e3)/10,Ir)}function jr(e){const n=tt(kr,e),s=Math.round((100-tt(Rr,e))*10)/10;return{minPct:n,maxPct:s,defaultPct:Math.min(Math.max(wr,n),s)}}function Sr(e,n,s){if(e===null||n===null||n<=0)return s.defaultPct;const t=e/n*100;return Math.round(Math.min(Math.max(t,s.minPct),s.maxPct)*10)/10}function Ar(e){try{const n=localStorage.getItem(e),s=n===null?NaN:Number(n);return Number.isFinite(s)&&s>0?s:null}catch{return null}}function Mr(e,n){try{localStorage.setItem(e,String(Math.round(n)))}catch{}}const Cr="react-resizable-panels:room-thread-split";function Or(){try{localStorage.removeItem(Cr)}catch{}}function Tr(){const[e,n]=i.useState(null),[s,t]=i.useState(null);return{ref:i.useCallback(r=>{if(r===null)return;n(r);const l=()=>t(r.offsetWidth);l();const d=new ResizeObserver(l);return d.observe(r),()=>{d.disconnect(),n(null),t(null)}},[]),element:e,width:s,sizing:jr(s??0)}}const _r=`${ge}-room`,nt=`${ge}-thread`,st=`${ge}-handle`,Er=4;function Pr({room:e,thread:n,storageKey:s=ns.ROOM_THREAD_WIDTH}){const{ref:t,element:o,width:r,sizing:l}=Tr(),[d,m]=i.useState(()=>Ar(s)),[f,u]=i.useState(null),c=i.useRef(null),w=Sr(d,r,l),h=r===null||(l.maxPct-l.minPct)/100*r<Er,g=n!==!1;i.useEffect(Or,[]);const k=i.useRef(!1);i.useLayoutEffect(()=>{var b;k.current&&((b=c.current)==null||b.resize(w))},[w,g]);const x=i.useRef(null),N=()=>{var $;const b=($=c.current)==null?void 0:$.getSize(),_=x.current;if(x.current=null,b===void 0||r===null||r<=0||_===b)return;const T=Math.round(b/100*r);m(T),Mr(s,T)},p=f??w;return i.useLayoutEffect(()=>{const b=o==null?void 0:o.querySelector(`[data-panel-resize-handle-id="${st}"]`);b&&(b.setAttribute("aria-controls",nt),b.setAttribute("aria-valuenow",String(Math.round(p))),b.setAttribute("aria-valuemin",String(Math.round(l.minPct))),b.setAttribute("aria-valuemax",String(Math.round(l.maxPct))))}),a.jsx("div",{ref:t,className:"h-full overflow-hidden",children:a.jsxs(ts,{direction:"horizontal",id:ge,onLayout:b=>{k.current=b.length>1,u(k.current?b[1]:null)},children:[a.jsx(Ue,{id:_r,order:1,className:"flex",children:e}),g&&a.jsxs(a.Fragment,{children:[a.jsx(us,{id:st,"aria-label":"Resize thread","data-testid":"room-thread-resize-handle",disabled:h,onDragging:b=>{var _;b&&(x.current=((_=c.current)==null?void 0:_.getSize())??null)},onKeyDownCapture:b=>{var _,T;h||(x.current=((_=c.current)==null?void 0:_.getSize())??null,!(b.key!=="Home"&&b.key!=="End")&&(b.preventDefault(),(T=c.current)==null||T.resize(b.key==="Home"?l.minPct:l.maxPct)))},onResizeEnd:N}),a.jsx(Ue,{ref:c,id:nt,order:2,defaultSize:w,minSize:l.minPct,maxSize:l.maxPct,className:"flex",children:n})]})]})})}function Jr({roomId:e,threadId:n,entrySeq:s,threadRoute:t,aboveTimeline:o,aboveComposer:r,offerJumpBackIn:l,onComposerFocusChange:d}){const m=ss(),f=ms(),u=os(e),c=u==null?void 0:u.rootEntryId,w=Yo(),h=i.useCallback(()=>{var O;const y=(O=X.getState().open[e])==null?void 0:O.rootEntryId;X.getState().closeThread(e),y!==void 0&&w.arm(y)},[e,w]),g=i.useCallback(y=>{X.getState().openThread(e,y)},[e]),k=rs(e),x=as(e),N=Rs(e,x.isSuccess);ws(e);const p=k.data,b=i.useMemo(()=>x.data??[],[x.data]),_=Dt({room:p});Qo({roomId:e,route:t,urlThreadId:n,openThreadId:c,entries:b,historyLoaded:x.isSuccess});const T=i.useMemo(()=>{var y;return((y=p==null?void 0:p.members.find(O=>O.author.id===p.viewerAuthorId))==null?void 0:y.lastReadSeq)??null},[p]),$=Go(e,T);is(p,b);const C=i.useRef(null),E=i.useRef(void 0),P=i.useCallback(y=>{E.current=y},[]),I=i.useCallback(()=>E.current,[]);i.useLayoutEffect(()=>{E.current=void 0},[e]);const F=i.useCallback(y=>{var O;(O=C.current)==null||O.scrollToRow(y)},[]),D=Xs(e),{loadOlder:M,cursor:H}=D,L=i.useCallback(()=>{const y=mo(b,H);M().then(()=>{y!==null&&requestAnimationFrame(()=>{var O;return(O=C.current)==null?void 0:O.scrollToRow(y.domId)})})},[b,H,M]),B=Ko({roomId:e,entrySeq:s,entries:b,historyLoaded:x.isSuccess}),W=i.useMemo(()=>c===void 0?void 0:{replyIds:new Set(b.filter(O=>J(O)===c).map(O=>O.id)),inside:!1},[b,c]);if(k.isLoading)return a.jsx("div",{className:"flex h-full flex-col","aria-busy":!0,children:a.jsx($t,{})});if(k.isError||!p)return a.jsxs("div",{className:"text-muted-foreground flex h-full flex-col items-center justify-center gap-2 p-10 text-center text-sm",children:[a.jsx("p",{className:"text-foreground font-medium",children:"That channel or DM isn’t here"}),a.jsx("p",{className:"max-w-sm",children:"It may be archived, or the link is old."})]});const z=u!==void 0&&a.jsx(vr,{room:p,rootEntryId:u.rootEntryId,focusComposer:u.focusComposer,entries:b,reactionFrequents:p.reactionFrequents,streamStalled:N.stalled,streamUnavailable:N.unavailable,onRetryStream:N.retry,historyLoaded:x.isSuccess,historyFailed:x.isError,...B.threadRow===void 0?{}:{landOnRow:B.threadRow},pushed:m,onClose:h},u.rootEntryId),q=a.jsxs("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:[o,a.jsx(Uo,{ref:C,roomId:p.id,roomName:te(p),viewerAuthorId:p.viewerAuthorId,entries:b,members:p.members,formerAuthors:p.formerAuthors,lastReadSeq:$,reactionFrequents:p.reactionFrequents,streamStalled:N.stalled,isLoading:x.isLoading,error:x.error,onAddAgents:()=>We("add",p.id),openThreadId:c,onOpenThread:g,resumeRow:I,...B.roomRow===void 0?{}:{landOnRow:B.roomRow},onTopRow:P,canLoadOlder:D.canLoadOlder,isLoadingOlder:D.isLoadingOlder,onLoadOlder:L}),r,a.jsx(pr,{roomId:p.id}),a.jsx(hr,{roomId:p.id}),a.jsx(Bt,{room:p,entries:b,scope:W,laneScope:"room",stalled:N.stalled,unavailable:N.unavailable,onRetry:N.retry,onScrollToRow:F}),a.jsx(fr,{room:p,hasEntries:b.length>0,onAddAgents:()=>We("add",p.id)}),a.jsx(Ht,{room:p,attachments:_.attachments,offerJumpBackIn:l,onFocusChange:d},p.id)]}),R={surface:"room",capabilities:Le,target:_.target,anchor:"rail"};return m?a.jsx(Q.Root,{...R,children:a.jsx(we,{initial:!1,mode:"wait",children:a.jsx(Ce.div,{initial:{opacity:0,x:16},animate:{opacity:1,x:0},exit:{opacity:0,x:16},transition:{duration:.15,ease:[0,0,.2,1]},style:{paddingBottom:f},"data-testid":"room-surface",className:"flex h-full flex-col overflow-hidden",children:z===!1?q:z},z?`thread-${c}`:"room")})}):a.jsx(Q.Root,{...R,children:a.jsx(Pr,{room:q,thread:z})})}export{St as I,$t as R,ao as T,Jr as a,oe as i};