@openscout/scout 0.2.105 → 0.2.107

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 (575) hide show
  1. package/README.md +26 -0
  2. package/bin/scoutd +0 -0
  3. package/dist/build-manifest.json +3 -3
  4. package/dist/chat.mjs +23 -1
  5. package/dist/client/assets/ActivityScreen-CZmGwQ2U.js +1 -0
  6. package/dist/client/assets/{AddProjectForm-CHNJ4NnS.js → AddProjectForm-CusDRiVO.js} +1 -1
  7. package/dist/client/assets/{AdventureEvidence-B4mEvXeD.js → AdventureEvidence-CyegKk1V.js} +1 -1
  8. package/dist/client/assets/{AdventureReader-ZsBDQITY.js → AdventureReader-X-hbTOi0.js} +1 -1
  9. package/dist/client/assets/{AdventureScenery-DSxDlqG1.js → AdventureScenery-LPXSVP67.js} +1 -1
  10. package/dist/client/assets/AgentAdventures-BAgxdOF8.js +1 -0
  11. package/dist/client/assets/AgentAvatar-CrP1eXxk.js +1 -0
  12. package/dist/client/assets/AgentConfigurationScreen-1L0IQm2w.js +1 -0
  13. package/dist/client/assets/AgentDefinitionsWorkspace-DguGs7jZ.js +1 -0
  14. package/dist/client/assets/{AgentDetailCard-MIEBKw_S.js → AgentDetailCard-DtHT3sCo.js} +1 -1
  15. package/dist/client/assets/AgentFloorView-DH4jiDgw.js +1 -0
  16. package/dist/client/assets/{AgentFloorWorld-BTqwmK5G.js → AgentFloorWorld-CjoIa6jA.js} +1 -1
  17. package/dist/client/assets/AgentInfoScreen-DYtmKkeE.js +1 -0
  18. package/dist/client/assets/{AgentLaneCard-C4rKLLdT.js → AgentLaneCard-BaZ2g-f8.js} +1 -1
  19. package/dist/client/assets/{AgentLaneChrome-fGC-ZrJS.js → AgentLaneChrome-TF1SlJSc.js} +1 -1
  20. package/dist/client/assets/{AgentLaneDetailSheet-BTF4_th9.js → AgentLaneDetailSheet-EzEPsn3g.js} +1 -1
  21. package/dist/client/assets/{AgentLaneSummaryResize-DgSeA_vS.js → AgentLaneSummaryResize-dpp7YvrX.js} +1 -1
  22. package/dist/client/assets/AgentLanesEmbedScreen-BlSof_6S.js +1 -0
  23. package/dist/client/assets/{AgentLanesPreflight-CcS23wij.js → AgentLanesPreflight-Ry-aqDTr.js} +1 -1
  24. package/dist/client/assets/AgentLanesView-BJi9xXz6.js +2 -0
  25. package/dist/client/assets/{AgentLiveActions-6Kfr1uOT.js → AgentLiveActions-CfTupTEl.js} +1 -1
  26. package/dist/client/assets/AgentMasterScreen-EJhmuKgl.js +1 -0
  27. package/dist/client/assets/AgentSessions-B1gOhDBf.js +6 -0
  28. package/dist/client/assets/AgentsConsole-RXGqRvcb.js +1 -0
  29. package/dist/client/assets/AgentsScreen-ChwMBs11.js +1 -0
  30. package/dist/client/assets/AgentsSubnav-DwNX4yy0.js +1 -0
  31. package/dist/client/assets/{AstronautSuit-D67fIBdR.js → AstronautSuit-Cchnc4Ug.js} +1 -1
  32. package/dist/client/assets/{AtopView-Ck30FbzG.js → AtopView-gkEp4y__.js} +1 -1
  33. package/dist/client/assets/{BackToPicker-CkBhGRlD.js → BackToPicker-CUkjnoVk.js} +1 -1
  34. package/dist/client/assets/BriefingDetailScreen-DrlC3qkm.js +1 -0
  35. package/dist/client/assets/{BriefingsScreen-DTxYMr3a.js → BriefingsScreen-B1HlBMGZ.js} +1 -1
  36. package/dist/client/assets/{BrokerMetadataPanel-crirZCdo.js → BrokerMetadataPanel-Dk242Yh_.js} +1 -1
  37. package/dist/client/assets/BrokerScreen-DwOF6bMA.js +8 -0
  38. package/dist/client/assets/{Canvas-CRP0KjKb.js → Canvas-X9pVSkw3.js} +1 -1
  39. package/dist/client/assets/{CastPicker-ZPomvOf-.js → CastPicker-BXUtPAGC.js} +1 -1
  40. package/dist/client/assets/ChannelComposer-DoK7IDGa.js +1 -0
  41. package/dist/client/assets/ChannelSidebar-e9DOPulb.js +1 -0
  42. package/dist/client/assets/{CharacterFamilyPreview-ckVkecDO.js → CharacterFamilyPreview-DMfw7UM_.js} +1 -1
  43. package/dist/client/assets/{ChatAvatar-DKBsbOqk.js → ChatAvatar-C3a_o5Hj.js} +1 -1
  44. package/dist/client/assets/ChatBits-CsvxbToF.js +1 -0
  45. package/dist/client/assets/{ChatCollapsedStrip-Co0NmqOO.js → ChatCollapsedStrip-FEmQ_G9J.js} +1 -1
  46. package/dist/client/assets/ChatRichInput-DhtwFxQE.js +31 -0
  47. package/dist/client/assets/ChatRightPanel-C1h_aIkn.js +1 -0
  48. package/dist/client/assets/ChatSpaceSurface-BXyLYKHn.js +1 -0
  49. package/dist/client/assets/ChatSpaceTheme-3wLZGsvT.css +1 -0
  50. package/dist/client/assets/ChatSpaceTheme-CUH8bTZc.js +1 -0
  51. package/dist/client/assets/{CodeDiffPane-D-iv28LJ.js → CodeDiffPane-DuQRwpgK.js} +1 -1
  52. package/dist/client/assets/{CodeProjectPicker-CZ3gDdiT.js → CodeProjectPicker-ZQ6gSBpg.js} +1 -1
  53. package/dist/client/assets/{CodeScreen-CSC-zbP9.js → CodeScreen-BXyKeL5T.js} +1 -1
  54. package/dist/client/assets/{CommsCanvas-DdNAwjGW.js → CommsCanvas-THp0r_U8.js} +1 -1
  55. package/dist/client/assets/{CommsDeck-mGWY7Ivi.js → CommsDeck-BVmSMV2V.js} +1 -1
  56. package/dist/client/assets/{CommsFlowGraph-voDD9M5R.js → CommsFlowGraph-DxoOaLF_.js} +1 -1
  57. package/dist/client/assets/{CommsFlowMap-C33sgD48.js → CommsFlowMap-Vi8ziCPg.js} +1 -1
  58. package/dist/client/assets/{CommsSelection-BL8aYD7z.js → CommsSelection-BUoRbu9o.js} +1 -1
  59. package/dist/client/assets/ComposerAttachments-DW0AIb8k.js +1 -0
  60. package/dist/client/assets/ConversationComposer-CUQyArlk.js +1 -0
  61. package/dist/client/assets/ConversationFeedRows-DWiOfT-y.js +1 -0
  62. package/dist/client/assets/ConversationHeader-C-ZWscKj.js +1 -0
  63. package/dist/client/assets/{ConversationPanels-6pprBpmq.js → ConversationPanels-D9oC0xG5.js} +2 -2
  64. package/dist/client/assets/ConversationScreen-9MlMnEo4.css +1 -0
  65. package/dist/client/assets/ConversationScreen-CUfsQ4MR.js +2 -0
  66. package/dist/client/assets/ConversationStatus--IPm2nGh.js +1 -0
  67. package/dist/client/assets/{CrewAvatar-D0c9z5Qr.css → CrewAvatar-BnIPIn_Z.css} +1 -1
  68. package/dist/client/assets/CrewAvatar-kTznzqcO.js +1 -0
  69. package/dist/client/assets/{CrewSprite-Dp9KBBGY.js → CrewSprite-Dhryjx2c.js} +1 -1
  70. package/dist/client/assets/CrewStage-vdO0qm3D.js +1 -0
  71. package/dist/client/assets/CrewWorkspaces-DCBzAAS4.js +1 -0
  72. package/dist/client/assets/{DataTable-av71ehJV.js → DataTable-aH-jCyDq.js} +1 -1
  73. package/dist/client/assets/{DispatchAftermath-CcYGUB10.js → DispatchAftermath-66uQAorV.js} +1 -1
  74. package/dist/client/assets/{DocumentFocusViewer-DlMiEALb.js → DocumentFocusViewer-DJr0v0D_.js} +1 -1
  75. package/dist/client/assets/{EmbeddableSurfacesLab-CTkO_tQR.js → EmbeddableSurfacesLab-BBa70EhJ.js} +1 -1
  76. package/dist/client/assets/{EmptyState-CYUwYyAW.js → EmptyState-CZlrHXy-.js} +1 -1
  77. package/dist/client/assets/{FileViewerPane-Cxhixtks.js → FileViewerPane-BAO6mtjD.js} +1 -1
  78. package/dist/client/assets/FleetRollCallHud-C5q2567n.js +1 -0
  79. package/dist/client/assets/FlightObserveScreen-DZ2mrw91.js +1 -0
  80. package/dist/client/assets/{FloorContextSheet-Vj_wVZq1.js → FloorContextSheet-2_NVPQor.js} +1 -1
  81. package/dist/client/assets/{FloorExchangePanel-CjHSDXad.js → FloorExchangePanel-BU1pPu8K.js} +1 -1
  82. package/dist/client/assets/{FloorMessagePasses-BG4ebnX5.js → FloorMessagePasses-cLW2UGNP.js} +1 -1
  83. package/dist/client/assets/{FloorReplay-BoYaGY9t.js → FloorReplay-VFzA6Kxc.js} +1 -1
  84. package/dist/client/assets/FloorResourcesSheet-C-kQ6Ren.js +1 -0
  85. package/dist/client/assets/{FloorSavedWork-jbtRs-YE.js → FloorSavedWork-BeHDejWz.js} +1 -1
  86. package/dist/client/assets/FloorTacticalHUD-CO-iiFpb.js +1 -0
  87. package/dist/client/assets/{FollowScreen-CupyOgt4.js → FollowScreen-CFfkIbc6.js} +1 -1
  88. package/dist/client/assets/HarnessMark-C4naWc16.js +1 -0
  89. package/dist/client/assets/HarnessesScreen-DX3NLcDG.js +1 -0
  90. package/dist/client/assets/{HerdrSession-Dcm3vf9U.js → HerdrSession-_t7yM8vX.js} +2 -2
  91. package/dist/client/assets/{HomeHero-pIZtE1cC.js → HomeHero-DouPyNmz.js} +1 -1
  92. package/dist/client/assets/{HostAdvisorView-Dv5meXo2.js → HostAdvisorView-CnM1i8hW.js} +1 -1
  93. package/dist/client/assets/InviteLandingScreen-CEjG2E34.js +1 -0
  94. package/dist/client/assets/InviteSheet-CwxZtWCl.js +1 -0
  95. package/dist/client/assets/{JumpPalette-BmiSOEmp.js → JumpPalette-O1aJE9gR.js} +1 -1
  96. package/dist/client/assets/{KnowledgeSearchInspector-B8yiM524.js → KnowledgeSearchInspector-32n9baT-.js} +1 -1
  97. package/dist/client/assets/KnowledgeSearchScreen-Dd6jrQ0A.js +1 -0
  98. package/dist/client/assets/{LaneToolHoverCard-D2cnTeUd.js → LaneToolHoverCard-CJa110yk.js} +1 -1
  99. package/dist/client/assets/LaneTraceDetailSheet-DYrd0BIf.js +1 -0
  100. package/dist/client/assets/{LaneTraceEventFocus-BLhVHwff.js → LaneTraceEventFocus-TbrNHRj_.js} +1 -1
  101. package/dist/client/assets/{MeshCanvas-BR25OBTJ.js → MeshCanvas-DWZHYh1A.js} +2 -2
  102. package/dist/client/assets/{MeshCanvasMinimap-ClVolr4-.js → MeshCanvasMinimap-iswYFpIb.js} +1 -1
  103. package/dist/client/assets/MeshScreen-8nAzQVbm.js +1 -0
  104. package/dist/client/assets/{MeshTopologyView-BT3ke2D1.js → MeshTopologyView-BVvtqI8q.js} +2 -2
  105. package/dist/client/assets/MessageEmbeds-ksPazAKH.js +1 -0
  106. package/dist/client/assets/MessagesScreen-C3WB4T21.js +1 -0
  107. package/dist/client/assets/{MissionContextRail-CafjuseK.js → MissionContextRail-D62-Wis8.js} +1 -1
  108. package/dist/client/assets/MissionControlView-B9cNPXvl.js +1 -0
  109. package/dist/client/assets/{MissionFocusOverlay-nhy3hkxQ.js → MissionFocusOverlay-C1zys3Jv.js} +1 -1
  110. package/dist/client/assets/MissionLeftAgentRow-vycMV77n.js +1 -0
  111. package/dist/client/assets/{MissionLogPane-DiUf3vWW.js → MissionLogPane-B19lYSY9.js} +1 -1
  112. package/dist/client/assets/NativeAreaScreen-B1RLa85C.js +1 -0
  113. package/dist/client/assets/NativeAreaScreen-CV0OhGra.js +1 -0
  114. package/dist/client/assets/NativeAreaScreen-CzuZt6o1.js +1 -0
  115. package/dist/client/assets/{NewAgentModal-BQ2wQ5gp.js → NewAgentModal-Bh-L-emz.js} +1 -1
  116. package/dist/client/assets/NewChatComposer-C97-iTMK.js +19 -0
  117. package/dist/client/assets/{NewChatOrigin-C8ROO4ps.js → NewChatOrigin-DFbF_XvR.js} +1 -1
  118. package/dist/client/assets/{NodeDetailPanel-BNTqYC7m.js → NodeDetailPanel-CElOEpCh.js} +1 -1
  119. package/dist/client/assets/{NodeMenu-CcOeFRCB.js → NodeMenu-B-jjHf1c.js} +1 -1
  120. package/dist/client/assets/ObserveEmbedScreen-B7Qt69Ms.js +2 -0
  121. package/dist/client/assets/{ObserveTextFlow-CC5mnngm.js → ObserveTextFlow-PFnG_10h.js} +2 -2
  122. package/dist/client/assets/{ObservedTopologyPanel-DF6tRZL_.js → ObservedTopologyPanel-CUTIoLZJ.js} +1 -1
  123. package/dist/client/assets/OpenScoutAppShell-37PDFfA4.js +31 -0
  124. package/dist/client/assets/OpsAgentsView-DajlX8LO.js +1 -0
  125. package/dist/client/assets/OpsScreen-jVcaBKGi.js +1 -0
  126. package/dist/client/assets/OpsSubnav-BOOYShHE.js +1 -0
  127. package/dist/client/assets/ProjectAgentProfile-D_wlW4sQ.js +1 -0
  128. package/dist/client/assets/{ProjectAgentProfileBar-C8z22pJ2.js → ProjectAgentProfileBar-DHuMKJj-.js} +1 -1
  129. package/dist/client/assets/ProjectAgentProfileHero-Dbebtug1.js +1 -0
  130. package/dist/client/assets/ProjectsInbox-B8zYE4vP.css +1 -0
  131. package/dist/client/assets/ProjectsInbox-Cgu7B4--.js +2 -0
  132. package/dist/client/assets/ProjectsRail-CDWocin_.js +1 -0
  133. package/dist/client/assets/ProjectsScreen-B_CJycqW.js +1 -0
  134. package/dist/client/assets/ProjectsThreadAside-1MMl_qUD.js +1 -0
  135. package/dist/client/assets/Provider-C35yu29I.js +5 -0
  136. package/dist/client/assets/{RailRow-DUPqXMZh.js → RailRow-BjmWK420.js} +1 -1
  137. package/dist/client/assets/RawSessionsTable-DzT90hWu.js +1 -0
  138. package/dist/client/assets/RealtimeVoiceScreen-B6ylX3WQ.js +16 -0
  139. package/dist/client/assets/{RenderedWorkerSprite-C8fxndAh.js → RenderedWorkerSprite-Dhlyg89J.js} +1 -1
  140. package/dist/client/assets/{ReplayClock-DUVJjrIu.js → ReplayClock-348f17bW.js} +1 -1
  141. package/dist/client/assets/{ReplayLog-Bek1Vc4W.js → ReplayLog-CBnAM3ui.js} +1 -1
  142. package/dist/client/assets/{ReplayOutpost-DlRg3172.js → ReplayOutpost-DyRPfNFx.js} +1 -1
  143. package/dist/client/assets/{RepoDiffEmbedScreen-CVUMnt6A.js → RepoDiffEmbedScreen-BWxvRDrS.js} +1 -1
  144. package/dist/client/assets/{RepoDiffPageScreen-D9-s5PyB.js → RepoDiffPageScreen-DN94irmY.js} +1 -1
  145. package/dist/client/assets/{RepoDiffViewer-D7FN-oyY.js → RepoDiffViewer-_4JVXBIW.js} +1 -1
  146. package/dist/client/assets/RepoDiffViewerLazy-XGVC3WXv.js +2 -0
  147. package/dist/client/assets/{ReposScreen-BQ7HO1om.js → ReposScreen-uMCpt0e9.js} +2 -2
  148. package/dist/client/assets/{RiggedWorkerCharacter-CJMWlvV-.js → RiggedWorkerCharacter-q6QRc7_o.js} +1 -1
  149. package/dist/client/assets/{SageModelStudio-B526NSnw.js → SageModelStudio-CNDhZhgD.js} +1 -1
  150. package/dist/client/assets/{ScoutDeckSurface-ChkvGyEW.js → ScoutDeckSurface-CUaU4R6T.js} +1 -1
  151. package/dist/client/assets/{ScoutSurface-6g1f5chk.js → ScoutSurface-3_25USO_.js} +1 -1
  152. package/dist/client/assets/{ScoutbotFxLab-BuwBdnPf.js → ScoutbotFxLab-CRqhYe0a.js} +1 -1
  153. package/dist/client/assets/{SecondaryNav-Bs-_VwTC.js → SecondaryNav-D7dbV2qo.js} +1 -1
  154. package/dist/client/assets/SessionContextStrip-CXfs9hUD.js +1 -0
  155. package/dist/client/assets/SessionContextStrip-DAIXwtHd.css +1 -0
  156. package/dist/client/assets/{SessionEmbedScreen-C2wf35-P.js → SessionEmbedScreen-D0zFmou-.js} +1 -1
  157. package/dist/client/assets/SessionHopMenu-E6VJZrE0.js +1 -0
  158. package/dist/client/assets/{SessionObserve-B64YsYhy.js → SessionObserve-DXxBvejJ.js} +9 -9
  159. package/dist/client/assets/SessionObserveEvidence-Cuj_KHxR.js +1 -0
  160. package/dist/client/assets/SessionRefScreen-DqLSUlCE.js +1 -0
  161. package/dist/client/assets/SessionsScreen-BLIRkohT.js +1 -0
  162. package/dist/client/assets/SettingsDrawer-juCpnbH6.js +3 -0
  163. package/dist/client/assets/SettingsScreen-BtGzE2-O.js +1 -0
  164. package/dist/client/assets/{SharedFloorCharacter-V04kD5T9.js → SharedFloorCharacter-DNEiaOUh.js} +1 -1
  165. package/dist/client/assets/SharedWorkFloor-0rqtdF-n.css +1 -0
  166. package/dist/client/assets/SharedWorkFloor-D9mf9KSg.js +2 -0
  167. package/dist/client/assets/{ShikiPane-XwFI-pCp.js → ShikiPane-CRtTYkMj.js} +1 -1
  168. package/dist/client/assets/{SlidePanel-BMpkXai_.js → SlidePanel-_CHAQdOa.js} +1 -1
  169. package/dist/client/assets/SpaceSwitcher-BLgSCf_T.js +1 -0
  170. package/dist/client/assets/{SpriteAvatar-aHeF4ZQZ.js → SpriteAvatar-CpZWf54-.js} +1 -1
  171. package/dist/client/assets/{SproutActionSprite-DI5N3gOj.js → SproutActionSprite-BSiTS4en.js} +1 -1
  172. package/dist/client/assets/{StatusPill-Dw4LP7wu.js → StatusPill-2gCP6H7A.js} +1 -1
  173. package/dist/client/assets/{TailView-BofjmUMJ.js → TailView-CYSijNTy.js} +2 -2
  174. package/dist/client/assets/Terminal-Bi97yb5s.js +4 -0
  175. package/dist/client/assets/TerminalEmbedScreen-Bqop67Bq.js +1 -0
  176. package/dist/client/assets/{TerminalHeaderMount-CwbQhXcI.js → TerminalHeaderMount-Cq4OD_xN.js} +1 -1
  177. package/dist/client/assets/{TerminalRelay--qOBwnbR.js → TerminalRelay-DrikpUSJ.js} +3 -3
  178. package/dist/client/assets/{TextDocumentSurface-BK6Qy41F.js → TextDocumentSurface-D52m7Vd8.js} +1 -1
  179. package/dist/client/assets/{TmuxPeek-DpUT9Tpc.js → TmuxPeek-CXFeweMg.js} +1 -1
  180. package/dist/client/assets/VoiceControlWell-DF3bjcYA.js +1 -0
  181. package/dist/client/assets/VoicePathDiagram-CmpHWfO-.js +1 -0
  182. package/dist/client/assets/{VoicePermissionsPanel-D35fOnQj.js → VoicePermissionsPanel-Ok2nfxHw.js} +1 -1
  183. package/dist/client/assets/VoiceTurnDetails-wAByRaNB.js +8 -0
  184. package/dist/client/assets/VoiceTurnStage-edoJalLV.js +1 -0
  185. package/dist/client/assets/VoiceTurnView-D-8g5E4r.js +1 -0
  186. package/dist/client/assets/WorkDetailScreen-zQkNVy2F.js +5 -0
  187. package/dist/client/assets/{WorkFilesViewer-t8AEyx3Q.js → WorkFilesViewer-vNt01sDd.js} +1 -1
  188. package/dist/client/assets/{WorkRunView-_mhG_FR2.js → WorkRunView-BDkR7Edq.js} +1 -1
  189. package/dist/client/assets/WorldActorTalk-BvSg_b1y.js +1 -0
  190. package/dist/client/assets/{WorldCharacter-BRrj3MQN.js → WorldCharacter-CIIlutQq.js} +1 -1
  191. package/dist/client/assets/WorldMinimap-B6HNgcDe.js +1 -0
  192. package/dist/client/assets/{WorldSky-D-RJzSa6.js → WorldSky-Jm2Z6dfW.js} +1 -1
  193. package/dist/client/assets/{activity-BJqFrZyB.js → activity-CIlFrfPJ.js} +1 -1
  194. package/dist/client/assets/{addon-fit-CHohcvS3.js → addon-fit-dFpj9Kfq.js} +1 -1
  195. package/dist/client/assets/{addon-webgl-CaRy2x2b.js → addon-webgl-BFCGRtGh.js} +1 -1
  196. package/dist/client/assets/{agent-essentials-bKWYOZaH.js → agent-essentials-BGGvT5G6.js} +1 -1
  197. package/dist/client/assets/{agent-master-model-C-KdOFDK.js → agent-master-model-Bk_yuUXJ.js} +1 -1
  198. package/dist/client/assets/{agent-specialization-BplZUa_0.js → agent-specialization-DDc7mLCW.js} +1 -1
  199. package/dist/client/assets/agents-screen-BYakbO50.css +1 -0
  200. package/dist/client/assets/{arc.es-CubLvQ4W.js → arc.es-C1SQHJ3k.js} +1 -1
  201. package/dist/client/assets/{arrow-left-DFfKAq0d.js → arrow-left-MVUKauwQ.js} +1 -1
  202. package/dist/client/assets/{arrow-right-DmAWnyAH.js → arrow-right-Bp-FpE5V.js} +1 -1
  203. package/dist/client/assets/{arrow-up-right-B0aLKiyF.js → arrow-up-right-BPedAgxO.js} +1 -1
  204. package/dist/client/assets/{book-open-BL9qvhEI.js → book-open-CV98WMSp.js} +1 -1
  205. package/dist/client/assets/{bot-BhAVbcCA.js → bot-B4zLQ4IN.js} +1 -1
  206. package/dist/client/assets/chat-api-DSJMBYoT.js +2 -0
  207. package/dist/client/assets/chat-message-markup-91DIry6R.js +1 -0
  208. package/dist/client/assets/chat-space-model-aW3Fd8_U.js +4 -0
  209. package/dist/client/assets/chat-transport-DNS5CB2I.js +1 -0
  210. package/dist/client/assets/{check-g7D7-c1J.js → check-lrJ3a73a.js} +1 -1
  211. package/dist/client/assets/{chevron-down-CDzRQQGl.js → chevron-down-l1mrh5S9.js} +1 -1
  212. package/dist/client/assets/{chevron-right-DKGTLiqc.js → chevron-right-DrfqcerI.js} +1 -1
  213. package/dist/client/assets/{chevron-up-DX7R6KY2.js → chevron-up-CETZJzjV.js} +1 -1
  214. package/dist/client/assets/{chunk-HRAB3GC3-Dvk_QpRq.js → chunk-HRAB3GC3-DbVLgbWX.js} +1 -1
  215. package/dist/client/assets/{clock-CQb4FeMf.js → clock-BV1aqPkK.js} +1 -1
  216. package/dist/client/assets/{code-xml-Cmadr3pQ.js → code-xml-BhcNbLWU.js} +1 -1
  217. package/dist/client/assets/{coffee-ljG1_krY.js → coffee-D7EAOdCk.js} +1 -1
  218. package/dist/client/assets/{compass-CvzkzkIh.js → compass-63TUaz5_.js} +1 -1
  219. package/dist/client/assets/content-B1lgE8qr.js +1 -0
  220. package/dist/client/assets/content-B5l11YyQ.js +1 -0
  221. package/dist/client/assets/content-BNZOZEpX.js +1 -0
  222. package/dist/client/assets/content-BRIxP155.js +1 -0
  223. package/dist/client/assets/content-BWd8gt8L.js +1 -0
  224. package/dist/client/assets/content-BfwS2jAK.js +1 -0
  225. package/dist/client/assets/content-C4p43_eT.js +1 -0
  226. package/dist/client/assets/content-CdYfaoDV.js +1 -0
  227. package/dist/client/assets/content-CzldLxw0.js +1 -0
  228. package/dist/client/assets/content-D-olnc4U.js +1 -0
  229. package/dist/client/assets/content-DTioimq4.js +1 -0
  230. package/dist/client/assets/content-LOebm3_d.js +1 -0
  231. package/dist/client/assets/{content-CKJ9zb7Z.js → content-nGlEZhUI.js} +1 -1
  232. package/dist/client/assets/{content-D1Ze_FG9.js → content-oyzDM-LK.js} +1 -1
  233. package/dist/client/assets/content-x1PHxED7.js +1 -0
  234. package/dist/client/assets/content-zX3ZY3T9.js +1 -0
  235. package/dist/client/assets/{conversation-icons-CIRaxmid.js → conversation-icons-Tqba2d56.js} +1 -1
  236. package/dist/client/assets/conversation-model-FxDeWlle.js +1 -0
  237. package/dist/client/assets/conversation-motion-features-C5zjuNwE.js +1 -0
  238. package/dist/client/assets/conversations-DoAAO6kA.js +1 -0
  239. package/dist/client/assets/{copy-BGOC1tJB.js → copy-xKeM5ZtU.js} +1 -1
  240. package/dist/client/assets/{cpu-Q6nrHFTN.js → cpu-BOTa_WLr.js} +1 -1
  241. package/dist/client/assets/{createLucideIcon-ChvMq-zl.js → createLucideIcon-zZ8Hx7er.js} +1 -1
  242. package/dist/client/assets/ctx-panel-BC8fpcWJ.css +1 -0
  243. package/dist/client/assets/direct-voice-BbLPuJ04.js +2 -0
  244. package/dist/client/assets/direct-voice-DbO7CSv_.css +1 -0
  245. package/dist/client/assets/discover-DJFxyV1k.js +2 -0
  246. package/dist/client/assets/embed-entry-Lyvu0Kfc.js +2 -0
  247. package/dist/client/assets/{external-link-BVccgH0n.js → external-link-CUObqmgX.js} +1 -1
  248. package/dist/client/assets/{eye-CsGfEVR6.js → eye-LrO-cXQt.js} +1 -1
  249. package/dist/client/assets/{file-code-corner-Be6da5l3.js → file-code-corner-CsU7jJpu.js} +1 -1
  250. package/dist/client/assets/{file-text-DP6txVW-.js → file-text-CnISiiw6.js} +1 -1
  251. package/dist/client/assets/{flag-DAFE2wZ5.js → flag-C4wl8z2-.js} +1 -1
  252. package/dist/client/assets/fleet-roll-call-BUgf7w-V.css +1 -0
  253. package/dist/client/assets/{folder-B_S7gBVr.js → folder-D5prSkzz.js} +1 -1
  254. package/dist/client/assets/{gauge-DQCGlE3o.js → gauge-D9_5iJEm.js} +1 -1
  255. package/dist/client/assets/{gestures-CofqY4Km.js → gestures-QZub3Ot9.js} +1 -1
  256. package/dist/client/assets/{git-branch-DcUCsWdJ.js → git-branch-B0_fPLO7.js} +1 -1
  257. package/dist/client/assets/{go-shortcuts-KQy-ZOpV.js → go-shortcuts-DicR7sUf.js} +1 -1
  258. package/dist/client/assets/home-moving-signal-rpMhsOJB.js +1 -0
  259. package/dist/client/assets/home-now-card-ByE6Umcx.js +1 -0
  260. package/dist/client/assets/{home-now-card-nano-CvU8B61b.js → home-now-card-nano-B5Dv3-pb.js} +1 -1
  261. package/dist/client/assets/hooks-_eCZZPsR.js +2 -0
  262. package/dist/client/assets/index-724SdE6r.js +1 -0
  263. package/dist/client/assets/{index-kkXUq-zf.js → index-CHD0qcfL.js} +1 -1
  264. package/dist/client/assets/index-CN4rBB_s.css +1 -0
  265. package/dist/client/assets/index-D1d98iYf.js +1 -0
  266. package/dist/client/assets/{index-DReVb7jZ.js → index-EsrkGBcv.js} +8 -8
  267. package/dist/client/assets/index-gGHPA-By.js +1 -0
  268. package/dist/client/assets/{inspector-panel-CLU7wjnT.js → inspector-panel-BkgUDn6G.js} +2 -2
  269. package/dist/client/assets/{keyboard-nav-CJXPaHXj.js → keyboard-nav-DDHegDbx.js} +1 -1
  270. package/dist/client/assets/{lane-roster-store-Ch9t6lb0.js → lane-roster-store-D-RSWjb-.js} +1 -1
  271. package/dist/client/assets/{layers-BOwyWodP.js → layers-C8PDiMul.js} +1 -1
  272. package/dist/client/assets/{layout-grid-B36Qsh0y.js → layout-grid-Cor2frzj.js} +1 -1
  273. package/dist/client/assets/left-Bn5X7x2o.js +2 -0
  274. package/dist/client/assets/left-BqS0fYX1.js +1 -0
  275. package/dist/client/assets/left-CTCeeeD3.js +1 -0
  276. package/dist/client/assets/left-DhtVPVux.js +1 -0
  277. package/dist/client/assets/left-K39b-Wvx.js +2 -0
  278. package/dist/client/assets/left-KGmueNPt.js +1 -0
  279. package/dist/client/assets/left-P_GOYB-s.js +1 -0
  280. package/dist/client/assets/left-advisor-B0N47De2.js +1 -0
  281. package/dist/client/assets/left-agents-CsSNc51Y.js +1 -0
  282. package/dist/client/assets/left-default-BlO5LP2T.js +1 -0
  283. package/dist/client/assets/left-lanes-C4PhaJE6.js +1 -0
  284. package/dist/client/assets/left-mission-BjTE5vPa.js +1 -0
  285. package/dist/client/assets/library-CkWNPHRp.js +1 -0
  286. package/dist/client/assets/{loader-circle-DNUsuPWz.js → loader-circle-OvccU82H.js} +1 -1
  287. package/dist/client/assets/{local-agents-I40PawYA.js → local-agents-BqnoxJrq.js} +1 -1
  288. package/dist/client/assets/log-in-7SnYqW5w.js +1 -0
  289. package/dist/client/assets/{machine-children-CdhNzDF0.js → machine-children-DxcqCLmd.js} +1 -1
  290. package/dist/client/assets/media-blobs-Bi8pxr1u.js +1 -0
  291. package/dist/client/assets/{mentions-Ck_Vjnyp.js → mentions-ByUvhS-v.js} +1 -1
  292. package/dist/client/assets/{mesh-ops-DSlvHp-D.js → mesh-ops-CiZ8xSAx.js} +1 -1
  293. package/dist/client/assets/{mesh-view-store-C1-mdP3P.js → mesh-view-store-DZvJC4KU.js} +1 -1
  294. package/dist/client/assets/{message-circle-cI5_A5mj.js → message-circle-CxRVKNE-.js} +1 -1
  295. package/dist/client/assets/message-markup-BQW5jdJw.js +15 -0
  296. package/dist/client/assets/message-markup-Zwo3t4cI.js +1 -0
  297. package/dist/client/assets/{message-square-CJW4WRlo.js → message-square-BxesYglW.js} +1 -1
  298. package/dist/client/assets/mission-control-model-BpJHDV5D.js +1 -0
  299. package/dist/client/assets/{mission-control-store-p_cboAm4.js → mission-control-store-elEEsIvb.js} +1 -1
  300. package/dist/client/assets/{mission-wall-DOuGOxQy.js → mission-wall-CAo4BKfa.js} +1 -1
  301. package/dist/client/assets/{monitor-C7_cHlkC.js → monitor-DTTYEb73.js} +1 -1
  302. package/dist/client/assets/{nav-destinations-CU_euC-Q.js → nav-destinations-uorRqFxf.js} +1 -1
  303. package/dist/client/assets/{observe-CtS0l3zu.js → observe-BJqERJVj.js} +1 -1
  304. package/dist/client/assets/{page-status-DwFR4wSw.js → page-status-BswZLqvA.js} +1 -1
  305. package/dist/client/assets/{panel-right-qP17MwMl.js → panel-right-Bv7sP_fc.js} +1 -1
  306. package/dist/client/assets/paperclip-BjcuP_Hx.js +1 -0
  307. package/dist/client/assets/{pause-B_hliKuR.js → pause-C2XTlkjs.js} +1 -1
  308. package/dist/client/assets/{persistent-state-BUsTTZFE.js → persistent-state-KRk_yb0q.js} +1 -1
  309. package/dist/client/assets/{pin-Oi4qHR6M.js → pin-C2mFOV1l.js} +1 -1
  310. package/dist/client/assets/{play-CVeRmqLH.js → play-FT6K3It1.js} +1 -1
  311. package/dist/client/assets/{plus-D5NLH_fM.js → plus-DFDDeGKu.js} +1 -1
  312. package/dist/client/assets/profile-DTmzN16I.js +1 -0
  313. package/dist/client/assets/{projects-inbox-CfwxCTdN.js → projects-inbox-C0FUCv_p.js} +1 -1
  314. package/dist/client/assets/projects-inbox-ColX6lpx.css +1 -0
  315. package/dist/client/assets/{provider-DwmCoSlc.js → provider-Dojd8quC.js} +1 -1
  316. package/dist/client/assets/{proxy-DgzP27W8.js → proxy-AJsmwA6h.js} +1 -1
  317. package/dist/client/assets/{radio-Cas2qg1D.js → radio-DRoOZsws.js} +1 -1
  318. package/dist/client/assets/{refresh-cw-IcD2lPoT.js → refresh-cw-BmVr7sCD.js} +1 -1
  319. package/dist/client/assets/resolve-panes-pbY1fCWi.js +1 -0
  320. package/dist/client/assets/resolve-sidebar-context-YWkZTq1t.js +1 -0
  321. package/dist/client/assets/right-49kO-6nD.js +1 -0
  322. package/dist/client/assets/right-APtItA8A.js +1 -0
  323. package/dist/client/assets/right-BJwhPqtn.js +1 -0
  324. package/dist/client/assets/right-BPqrf4ek.js +1 -0
  325. package/dist/client/assets/right-D7djOy6K.js +1 -0
  326. package/dist/client/assets/right-DKOUCRob.js +1 -0
  327. package/dist/client/assets/right-DMNrVzg7.js +1 -0
  328. package/dist/client/assets/{right-cjPTwPXS.js → right-DWPVB-nK.js} +1 -1
  329. package/dist/client/assets/right-DppeMCy4.js +1 -0
  330. package/dist/client/assets/right-GAL5Mw1v.js +1 -0
  331. package/dist/client/assets/{rocket-DAqYvu8I.js → rocket-CGl4RTV7.js} +1 -1
  332. package/dist/client/assets/router-DCtl8wqb.js +1 -0
  333. package/dist/client/assets/runtime-picker-DXu2bOTh.js +1 -0
  334. package/dist/client/assets/{scope-views-Dl3ml9OZ.js → scope-views-RUWwCVAr.js} +1 -1
  335. package/dist/client/assets/scout-voice-CZx60X6E.js +1 -0
  336. package/dist/client/assets/{scoutbot-markdown-DwvGQOWo.js → scoutbot-markdown-BKEBSbG0.js} +1 -1
  337. package/dist/client/assets/{scroll-text-B0tKI9Sg.js → scroll-text-DNjxhyO2.js} +1 -1
  338. package/dist/client/assets/{search-UsM-9-_W.js → search-DT42oyRW.js} +1 -1
  339. package/dist/client/assets/secondaryNavConfig-CS1svh6n.js +1 -0
  340. package/dist/client/assets/{selection-bridge-OTS2iFkt.js → selection-bridge-x3wFUjxj.js} +1 -1
  341. package/dist/client/assets/{send-horizontal-BlQsRK6C.js → send-horizontal-CH0-fbZE.js} +1 -1
  342. package/dist/client/assets/{send-to-agent-session-C1mgqdow.js → send-to-agent-session-DoKCDBJ4.js} +1 -1
  343. package/dist/client/assets/{server-DBlPW0Mp.js → server-QfsgMLk1.js} +1 -1
  344. package/dist/client/assets/{session-catalog-CnpZMB7C.js → session-catalog-CvSdPHPe.js} +1 -1
  345. package/dist/client/assets/session-recap-lanes-D-eVJnpY.js +1 -0
  346. package/dist/client/assets/session-recap-queue-41l2XVkI.js +1 -0
  347. package/dist/client/assets/{session-table-CGkfG5Yd.js → session-table-L-pns6Zl.js} +1 -1
  348. package/dist/client/assets/{sessions-view-Bge4XZ4I.js → sessions-view-Dc-QAa7O.js} +1 -1
  349. package/dist/client/assets/{settings-C69Zjrpq.js → settings-BVh7kldq.js} +1 -1
  350. package/dist/client/assets/{sliders-horizontal-6bzeod7c.js → sliders-horizontal-782VC_yy.js} +1 -1
  351. package/dist/client/assets/{sparkles-Cc5lPZRv.js → sparkles-BjHq_DNK.js} +1 -1
  352. package/dist/client/assets/{sse-A8AyLH0g.js → sse-BCPRocpq.js} +1 -1
  353. package/dist/client/assets/system-surfaces-redesign-q2BmCB7e.css +1 -0
  354. package/dist/client/assets/{tail-events-C4WdhVeK.js → tail-events-d0yAYxR0.js} +1 -1
  355. package/dist/client/assets/{terminal-DMZjX1es.js → terminal-hQKQygcf.js} +1 -1
  356. package/dist/client/assets/{terminal-relay-mO89dX-Y.js → terminal-relay-Bxs1hp-j.js} +1 -1
  357. package/dist/client/assets/{terminal-takeover-CZZsnPzj.js → terminal-takeover-Ay5C2c-M.js} +1 -1
  358. package/dist/client/assets/theme-vars-DNK0nn3k.js +1 -0
  359. package/dist/client/assets/triangle-alert-CHoRGdVO.js +1 -0
  360. package/dist/client/assets/{use-beside-D3cJpA5p.js → use-beside-DoRC1nt0.js} +1 -1
  361. package/dist/client/assets/{use-conversation-list-D5EnpVba.js → use-conversation-list-CY4JciOV.js} +1 -1
  362. package/dist/client/assets/{use-fleet-active-asks-D_QOmjg5.js → use-fleet-active-asks-CymmXWH4.js} +1 -1
  363. package/dist/client/assets/{use-mesh-node-state-3V3ADQ-G.js → use-mesh-node-state-BvaqtODo.js} +1 -1
  364. package/dist/client/assets/{use-mesh-ops-items-DI9GKWlF.js → use-mesh-ops-items-BSYaqH_0.js} +1 -1
  365. package/dist/client/assets/{use-reduced-motion-CiaZHMnk.js → use-reduced-motion-3gMYZNIp.js} +1 -1
  366. package/dist/client/assets/{use-scout-dev-flags-CkdAHlDR.js → use-scout-dev-flags-DS_pYYQd.js} +1 -1
  367. package/dist/client/assets/{useAgentHoverCard-A3QGXqIy.js → useAgentHoverCard-BANmpjMh.js} +1 -1
  368. package/dist/client/assets/useContentSecondaryNav-C6OBu-3_.js +1 -0
  369. package/dist/client/assets/{useEmbedHeadline-atkQVfGw.js → useEmbedHeadline-D6pJRxUg.js} +1 -1
  370. package/dist/client/assets/usePersistentState-B8lP7TRb.js +1 -0
  371. package/dist/client/assets/{usePierreRuntime-DTvcwISe.js → usePierreRuntime-BAQdiN0L.js} +1 -1
  372. package/dist/client/assets/useSidebarCollapse-OL_8J5cL.js +1 -0
  373. package/dist/client/assets/{users-RLK3P5U4.js → users-BUjx36gx.js} +1 -1
  374. package/dist/client/assets/voice-paths-CJUuBPh3.css +1 -0
  375. package/dist/client/assets/voice-turn-DftA0iIb.css +1 -0
  376. package/dist/client/assets/voice-turn-ledger-BMZxlSjg.js +1 -0
  377. package/dist/client/assets/{wrench-B4maQJai.js → wrench-DR0i5BU7.js} +1 -1
  378. package/dist/client/assets/{x-rlMdRqJF.js → x-DAehov0E.js} +1 -1
  379. package/dist/client/assets/{xterm-B1zHHOLQ.js → xterm-BXQiLVnI.js} +1 -1
  380. package/dist/client/assets/{zap-B4X0OrEw.js → zap-CEjZNZbI.js} +1 -1
  381. package/dist/client/crew/sheets/eye-plate-v1/look-down-left.webp +0 -0
  382. package/dist/client/crew/sheets/eye-plate-v1/look-down-right.webp +0 -0
  383. package/dist/client/crew/sheets/eye-plate-v1/look-down.webp +0 -0
  384. package/dist/client/crew/sheets/eye-plate-v1/look-up-left.webp +0 -0
  385. package/dist/client/crew/sheets/eye-plate-v1/look-up-right.webp +0 -0
  386. package/dist/client/crew/sheets/eye-plate-v1/look-up.webp +0 -0
  387. package/dist/client/crew/sheets/sprout/blink-half.webp +0 -0
  388. package/dist/client/crew/sheets/sprout/blink-shut.webp +0 -0
  389. package/dist/client/crew/sheets/sprout/look-down-left.webp +0 -0
  390. package/dist/client/crew/sheets/sprout/look-down-right.webp +0 -0
  391. package/dist/client/crew/sheets/sprout/look-down.webp +0 -0
  392. package/dist/client/crew/sheets/sprout/look-left.webp +0 -0
  393. package/dist/client/crew/sheets/sprout/look-right.webp +0 -0
  394. package/dist/client/crew/sheets/sprout/look-up-left.webp +0 -0
  395. package/dist/client/crew/sheets/sprout/look-up-right.webp +0 -0
  396. package/dist/client/crew/sheets/sprout/look-up.webp +0 -0
  397. package/dist/client/index.html +2 -2
  398. package/dist/drizzle/0020_message_reactions.sql +11 -0
  399. package/dist/drizzle/meta/_journal.json +7 -0
  400. package/dist/main.mjs +542 -150
  401. package/dist/node/main.mjs +131 -17
  402. package/dist/pairing-runtime-controller.mjs +375 -78
  403. package/dist/runtime/base-daemon.mjs +98 -5
  404. package/dist/runtime/broker-daemon.mjs +1879 -1198
  405. package/dist/runtime/broker-process-manager.mjs +96 -3
  406. package/dist/runtime/mesh-discover.mjs +96 -3
  407. package/dist/scout-control-plane-web.mjs +4817 -1616
  408. package/dist/update-helper.mjs +211 -39
  409. package/package.json +5 -3
  410. package/server.json +31 -0
  411. package/dist/client/assets/ActivityScreen-CcDdQTBK.js +0 -1
  412. package/dist/client/assets/AgentAdventures-BxrYq_2v.js +0 -1
  413. package/dist/client/assets/AgentAvatar-NZOqcsB2.js +0 -1
  414. package/dist/client/assets/AgentConfigurationScreen-BhD1PEAM.js +0 -1
  415. package/dist/client/assets/AgentDefinitionsWorkspace-BqS6MXqF.js +0 -1
  416. package/dist/client/assets/AgentFloorView-A0dDRlRV.js +0 -1
  417. package/dist/client/assets/AgentInfoScreen-DuaN0sgE.js +0 -1
  418. package/dist/client/assets/AgentLanesEmbedScreen-CeNiaZ9_.js +0 -1
  419. package/dist/client/assets/AgentLanesView-WZhEDBFE.js +0 -2
  420. package/dist/client/assets/AgentMasterScreen-DUDUTAnU.js +0 -1
  421. package/dist/client/assets/AgentSessions-CO1WGa8Z.js +0 -6
  422. package/dist/client/assets/AgentsConsole-BQOWkj35.js +0 -1
  423. package/dist/client/assets/AgentsScreen-BMNAj1PH.js +0 -1
  424. package/dist/client/assets/AgentsSubnav-CeHhuzyM.js +0 -1
  425. package/dist/client/assets/BriefingDetailScreen-yZG8_m4h.js +0 -1
  426. package/dist/client/assets/BrokerScreen-CT37VQiL.js +0 -8
  427. package/dist/client/assets/ChannelComposer-BVItWlEz.js +0 -1
  428. package/dist/client/assets/ChannelSidebar-B-2spawY.js +0 -1
  429. package/dist/client/assets/ChatBits-CLJ71hTY.js +0 -1
  430. package/dist/client/assets/ChatRightPanel-pKQtkAgl.js +0 -1
  431. package/dist/client/assets/ChatSpaceSurface-NrLwdPkE.js +0 -1
  432. package/dist/client/assets/ChatSpaceTheme-BPMgPdVK.css +0 -1
  433. package/dist/client/assets/ChatSpaceTheme-D37Jk7bl.js +0 -1
  434. package/dist/client/assets/ConversationComposer-DNcn5U6D.js +0 -1
  435. package/dist/client/assets/ConversationFeedRows-RnYSa7Io.js +0 -1
  436. package/dist/client/assets/ConversationHeader-Y9TEJxP_.js +0 -1
  437. package/dist/client/assets/ConversationScreen-Brfas2y0.css +0 -1
  438. package/dist/client/assets/ConversationScreen-tpj4cqWs.js +0 -2
  439. package/dist/client/assets/ConversationStatus-Cv-7hErW.js +0 -1
  440. package/dist/client/assets/CrewAvatar-zgzC3cbU.js +0 -1
  441. package/dist/client/assets/CrewWorkspaces-K2jcyLec.js +0 -1
  442. package/dist/client/assets/FlightObserveScreen-CvzhzuWc.js +0 -1
  443. package/dist/client/assets/FloorResourcesSheet-_Iy5UqgY.js +0 -1
  444. package/dist/client/assets/FloorTacticalHUD-BhyOqlL5.js +0 -1
  445. package/dist/client/assets/HarnessMark-DSvM_H7H.js +0 -1
  446. package/dist/client/assets/HarnessesScreen-DyjqbZ4k.js +0 -1
  447. package/dist/client/assets/InviteLandingScreen-xZQ2na1z.js +0 -1
  448. package/dist/client/assets/InviteSheet--5Zjct25.js +0 -1
  449. package/dist/client/assets/KnowledgeSearchScreen-BPqAjHnH.js +0 -1
  450. package/dist/client/assets/LaneTraceDetailSheet-jl4XQmEx.js +0 -1
  451. package/dist/client/assets/MeshScreen-BW1dMFWF.js +0 -1
  452. package/dist/client/assets/MessagesScreen-CtNMfIvC.js +0 -1
  453. package/dist/client/assets/MissionControlView-BjPOViGY.js +0 -1
  454. package/dist/client/assets/MissionLeftAgentRow-Dms0DBjO.js +0 -1
  455. package/dist/client/assets/NativeAreaScreen-BQSTo8As.js +0 -1
  456. package/dist/client/assets/NativeAreaScreen-Brix6xDB.js +0 -1
  457. package/dist/client/assets/NativeAreaScreen-D7HyQNlM.js +0 -1
  458. package/dist/client/assets/NewChatComposer-BEXS8vV6.js +0 -19
  459. package/dist/client/assets/ObserveEmbedScreen-Dh30EjAQ.js +0 -2
  460. package/dist/client/assets/OpenScoutAppShell-D9pgw36i.js +0 -31
  461. package/dist/client/assets/OpsAgentsView-D3rM0udq.js +0 -1
  462. package/dist/client/assets/OpsScreen-DySeNQ1V.js +0 -1
  463. package/dist/client/assets/OpsSubnav-C9E0r3GZ.js +0 -1
  464. package/dist/client/assets/ProjectAgentProfile-FUav75j2.js +0 -1
  465. package/dist/client/assets/ProjectAgentProfileHero-BLK0EwMg.js +0 -1
  466. package/dist/client/assets/ProjectsInbox-DfCXReZK.js +0 -2
  467. package/dist/client/assets/ProjectsRail-CELVubfJ.js +0 -1
  468. package/dist/client/assets/ProjectsScreen-DMw4TLKy.js +0 -1
  469. package/dist/client/assets/ProjectsThreadAside-D1Sh4fnX.js +0 -1
  470. package/dist/client/assets/Provider-CNZluAZb.js +0 -5
  471. package/dist/client/assets/RailToggle-BwmY70B8.js +0 -1
  472. package/dist/client/assets/RawSessionsTable-6OVJq0JZ.js +0 -1
  473. package/dist/client/assets/RealtimeVoiceScreen-D41TYY0x.js +0 -9
  474. package/dist/client/assets/RepoDiffViewerLazy-BpMR7tlx.js +0 -2
  475. package/dist/client/assets/SessionObserveEvidence-CS1aQBpQ.js +0 -1
  476. package/dist/client/assets/SessionRefScreen-DURV0MpF.js +0 -1
  477. package/dist/client/assets/SessionsScreen-D71ZR-8t.js +0 -1
  478. package/dist/client/assets/SettingsDrawer-Nz98oBVl.js +0 -3
  479. package/dist/client/assets/SettingsScreen-CYBHal6y.js +0 -1
  480. package/dist/client/assets/SharedWorkFloor-BCmdeb3Q.css +0 -1
  481. package/dist/client/assets/SharedWorkFloor-C0xxW4SN.js +0 -2
  482. package/dist/client/assets/SpaceSwitcher-BfeIf-ad.js +0 -1
  483. package/dist/client/assets/Terminal-jIqnIZZ6.js +0 -4
  484. package/dist/client/assets/TerminalEmbedScreen-3XsjuySR.js +0 -1
  485. package/dist/client/assets/WorkDetailScreen-Bcf_yHhU.js +0 -5
  486. package/dist/client/assets/WorldActorTalk-CKerDikx.js +0 -1
  487. package/dist/client/assets/WorldMinimap-DOptgrc4.js +0 -1
  488. package/dist/client/assets/agent-autocomplete-C7xwIcwd.css +0 -1
  489. package/dist/client/assets/agent-autocomplete-_u9o5EZu.js +0 -2
  490. package/dist/client/assets/agents-screen-BMu6PpRY.css +0 -1
  491. package/dist/client/assets/at-sign-DM7xeppo.js +0 -1
  492. package/dist/client/assets/chat-api-BPVC0asu.js +0 -1
  493. package/dist/client/assets/chat-space-model-B6Jg2CY4.js +0 -4
  494. package/dist/client/assets/content-0AXa0klu.js +0 -1
  495. package/dist/client/assets/content-BEyJ19Lx.js +0 -1
  496. package/dist/client/assets/content-BN5weWKW.js +0 -1
  497. package/dist/client/assets/content-BNokkm7C.js +0 -1
  498. package/dist/client/assets/content-BV4PUM9q.js +0 -1
  499. package/dist/client/assets/content-BxUPlcx5.js +0 -1
  500. package/dist/client/assets/content-CIC5sku8.js +0 -1
  501. package/dist/client/assets/content-CdkTyxqk.js +0 -1
  502. package/dist/client/assets/content-CnhhSCZq.js +0 -1
  503. package/dist/client/assets/content-DY3F9Vfr.js +0 -1
  504. package/dist/client/assets/content-DrKBYpcb.js +0 -1
  505. package/dist/client/assets/content-LSStQYj5.js +0 -1
  506. package/dist/client/assets/content-YvU-D0hF.js +0 -1
  507. package/dist/client/assets/content-oKQMyVnH.js +0 -1
  508. package/dist/client/assets/conversation-model-m8HhzroS.js +0 -1
  509. package/dist/client/assets/conversation-motion-features-D9PxLoDt.js +0 -1
  510. package/dist/client/assets/conversations-Cbg9h_Af.js +0 -1
  511. package/dist/client/assets/ctx-panel-F05jXK4Q.css +0 -1
  512. package/dist/client/assets/discover-DlwbftpC.js +0 -2
  513. package/dist/client/assets/embed-entry-c0lwtjBG.js +0 -2
  514. package/dist/client/assets/home-moving-signal-BIHUGNfI.js +0 -1
  515. package/dist/client/assets/home-now-card-CaLgZze2.js +0 -1
  516. package/dist/client/assets/hooks-DaUOREpP.js +0 -2
  517. package/dist/client/assets/index-CGbs0SBm.css +0 -1
  518. package/dist/client/assets/index-CbqBwfIW.js +0 -1
  519. package/dist/client/assets/index-CyPMl7Up.js +0 -1
  520. package/dist/client/assets/index-PQpJveGO.js +0 -1
  521. package/dist/client/assets/left-0vBrvrBG.js +0 -2
  522. package/dist/client/assets/left-C6SyaqlJ.js +0 -1
  523. package/dist/client/assets/left-CTuXysZR.js +0 -2
  524. package/dist/client/assets/left-Cc6s4DT2.js +0 -1
  525. package/dist/client/assets/left-DF5caiyh.js +0 -1
  526. package/dist/client/assets/left-DgT4tWCx.js +0 -1
  527. package/dist/client/assets/left-R0wppTTr.js +0 -1
  528. package/dist/client/assets/left-advisor-C-kt8V28.js +0 -1
  529. package/dist/client/assets/left-agents-thnBO156.js +0 -1
  530. package/dist/client/assets/left-default-CT42fnpF.js +0 -1
  531. package/dist/client/assets/left-lanes-CSmZgciK.js +0 -1
  532. package/dist/client/assets/left-mission-C86x6i9h.js +0 -1
  533. package/dist/client/assets/library-DdhYL_9v.js +0 -1
  534. package/dist/client/assets/message-markup-6Tgo4qFJ.js +0 -15
  535. package/dist/client/assets/mission-control-model-C30vU1Fe.js +0 -1
  536. package/dist/client/assets/profile-BegEUmB7.js +0 -1
  537. package/dist/client/assets/projects-inbox-CKPLZN8s.css +0 -1
  538. package/dist/client/assets/resolve-panes-pfZTezKo.js +0 -1
  539. package/dist/client/assets/resolve-sidebar-context-D5ksvrb_.js +0 -1
  540. package/dist/client/assets/right-BDaCJ0CF.js +0 -1
  541. package/dist/client/assets/right-BP6lXRFS.js +0 -1
  542. package/dist/client/assets/right-Cb1VCrdj.js +0 -1
  543. package/dist/client/assets/right-CeFaxfBo.js +0 -1
  544. package/dist/client/assets/right-Ck2SrYCj.js +0 -1
  545. package/dist/client/assets/right-D-uv5YfF.js +0 -1
  546. package/dist/client/assets/right-DJMSICky.js +0 -1
  547. package/dist/client/assets/right-Dnljs8ah.js +0 -1
  548. package/dist/client/assets/right-SdCSF8PP.js +0 -1
  549. package/dist/client/assets/router-C-MF5-mb.js +0 -1
  550. package/dist/client/assets/runtime-picker-C_AVYF63.js +0 -1
  551. package/dist/client/assets/scout-voice-CqAyfblr.js +0 -1
  552. package/dist/client/assets/secondaryNavConfig-DzNHk6IH.js +0 -1
  553. package/dist/client/assets/system-surfaces-redesign-DKFg4GB5.css +0 -1
  554. package/dist/client/assets/useContentSecondaryNav-DrL_nkCZ.js +0 -1
  555. package/dist/client/assets/usePersistentState-Y8XwSTg-.js +0 -1
  556. package/dist/drizzle/meta/0000_snapshot.json +0 -4575
  557. package/dist/drizzle/meta/0001_snapshot.json +0 -4624
  558. package/dist/drizzle/meta/0002_snapshot.json +0 -4631
  559. package/dist/drizzle/meta/0003_snapshot.json +0 -4952
  560. package/dist/drizzle/meta/0004_snapshot.json +0 -5235
  561. package/dist/drizzle/meta/0005_snapshot.json +0 -5599
  562. package/dist/drizzle/meta/0006_snapshot.json +0 -5606
  563. package/dist/drizzle/meta/0007_snapshot.json +0 -5767
  564. package/dist/drizzle/meta/0008_snapshot.json +0 -5774
  565. package/dist/drizzle/meta/0009_snapshot.json +0 -6262
  566. package/dist/drizzle/meta/0010_snapshot.json +0 -6286
  567. package/dist/drizzle/meta/0011_snapshot.json +0 -6337
  568. package/dist/drizzle/meta/0012_snapshot.json +0 -6458
  569. package/dist/drizzle/meta/0013_snapshot.json +0 -6465
  570. package/dist/drizzle/meta/0014_snapshot.json +0 -6503
  571. package/dist/drizzle/meta/0015_snapshot.json +0 -6596
  572. package/dist/drizzle/meta/0016_snapshot.json +0 -6611
  573. package/dist/drizzle/meta/0017_snapshot.json +0 -6785
  574. package/dist/drizzle/meta/0018_snapshot.json +0 -6804
  575. package/dist/drizzle/meta/0019_snapshot.json +0 -6804
@@ -1,8 +0,0 @@
1
- import{r as t,j as e}from"./index-DReVb7jZ.js";import{r as xs}from"./index-CbqBwfIW.js";import{D as js}from"./runtime-picker-C_AVYF63.js";import{E as Ee}from"./EmptyState-CYUwYyAW.js";import"./router-C-MF5-mb.js";import{B as ks,j as vs,F as ws,R as Ns,G as Ss,H as Is}from"./NewChatComposer-BEXS8vV6.js";import{p as As,a as ie}from"./api-DSqpVKC7.js";import{c as Rs}from"./clipboard-e3fSpeo7.js";import{u as Cs}from"./sse-A8AyLH0g.js";import{b as ze}from"./status-tone-BM_zuRy1.js";import{t as Fe,b as ns,n as ee}from"./time-Dhsh_2EG.js";import{u as os}from"./Provider-CNZluAZb.js";import{o as Ye}from"./openContent-C6XO6kr5.js";import{g as $s,b as le,h as is,d as Ds,i as Es,j as Fs,k as Ms}from"./broker-display-BkBzyvbR.js";import{BrokerMetadataPanel as Ts}from"./BrokerMetadataPanel-crirZCdo.js";import{DispatchAftermath as Ls}from"./DispatchAftermath-CcYGUB10.js";import{i as Ps,c as Bs,n as Xe}from"./keyboard-nav-CJXPaHXj.js";import{ShikiPane as zs}from"./ShikiPane-XwFI-pCp.js";import{d as Os}from"./types-B0PlfpKc.js";import{u as _s}from"./useEmbedHeadline-atkQVfGw.js";/* empty css */import{L as ke}from"./loader-circle-DNUsuPWz.js";import{R as qs}from"./refresh-cw-IcD2lPoT.js";import{X as Me}from"./x-rlMdRqJF.js";import{c as Oe}from"./createLucideIcon-ChvMq-zl.js";import{E as Ze}from"./external-link-BVccgH0n.js";import{M as ls}from"./message-square-CJW4WRlo.js";import{A as Te}from"./arrow-right-DmAWnyAH.js";import{P as Us}from"./plus-D5NLH_fM.js";import{C as es}from"./chevron-down-CDzRQQGl.js";import{S as Ks}from"./send-horizontal-BlQsRK6C.js";import{C as Hs}from"./check-g7D7-c1J.js";import{C as Js}from"./copy-BGOC1tJB.js";import{A as Gs}from"./at-sign-DM7xeppo.js";import{R as Qs}from"./radio-Cas2qg1D.js";import{M as Vs,a as Ws}from"./DocumentFocusViewer-DlMiEALb.js";const Ys=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Xs=Oe("arrow-down",Ys);const Zs=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],er=Oe("hash",Zs);const sr=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],rr=Oe("paperclip",sr),ar=160;function De(s){const a=new URLSearchParams({limit:String(ar)});return s&&a.set("cursor",s),`/api/broker?${a.toString()}`}const ss={index:-1,request:0};function tr(s,a){return{index:a,request:s.request+1}}function cs(s,a){return a===s.index?s:{index:a,request:s.request}}function nr(s,a){return s.index<a?s:cs(s,a>0?a-1:-1)}function or(s,a){return s.request!==a}function ir({enabled:s,rowCount:a,onActivateRow:n,onClearSelection:o}){const[f,h]=t.useState(ss),b=f.index,p=t.useRef(new Map),j=t.useRef(ss.request),c=t.useCallback(y=>{h(u=>tr(u,typeof y=="function"?y(u.index):y))},[]),w=t.useCallback(y=>{h(u=>cs(u,typeof y=="function"?y(u.index):y))},[]);t.useEffect(()=>{if(!or(f,j.current)||(j.current=f.request,f.index<0))return;const y=p.current.get(f.index);y?.scrollIntoView({block:"nearest"}),y?.focus()},[f]),t.useEffect(()=>{h(y=>nr(y,a))},[a]);const I=t.useCallback((y,u)=>{u?p.current.set(y,u):p.current.delete(y)},[]);t.useEffect(()=>{if(!s)return;const y=u=>{if(document.querySelector(".sys-broker-page")&&!(Ps(u.target)||Bs())&&a!==0){if(u.key==="Escape"){o&&(u.preventDefault(),o(),w(-1));return}if(u.key==="ArrowDown"||u.key==="j"){u.preventDefault(),c(N=>Xe(N,a,1));return}if(u.key==="ArrowUp"||u.key==="k"){u.preventDefault(),c(N=>Xe(N,a,-1));return}if(u.key==="Home"||u.key==="g"&&!u.shiftKey){u.preventDefault(),c(0);return}if(u.key==="End"||u.key==="G"){u.preventDefault(),c(a-1);return}if(u.key==="Enter"||u.key===" "){const N=b<0?0:b;u.preventDefault(),c(N),n(N)}}};return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[s,b,c,n,o,a,w]);const F=t.useCallback(y=>({tabIndex:b===y?0:-1,ref:u=>I(y,u),onFocus:()=>w(y)}),[b,I,w]);return{focusedIndex:b,setFocusedIndex:w,getRowFocusProps:F}}const xe=["all","delivered","failed"],lr=3e4,cr={all:"All",delivered:"Delivered",failed:"Failed"};function dr(s){switch(s){case"success":return"Success";case"failed_query":return"Query failure";case"failed_delivery":return"Delivery failure";default:return"Delivery attempt"}}function ds(s){return s.messageId??s.deliveryId??s.invocationId??s.id}function Le(s){switch(ze(s.kind,s.status)){case"success":return"Delivered";case"danger":return"Failed";case"working":return"Pending";case"warning":return"Held";default:return s.status?s.status.charAt(0).toUpperCase()+s.status.slice(1):"Queued"}}function Ae(s){if(!s)return"··";const a=s.trim().split(/\s+/).filter(Boolean);if(a.length===0)return"··";const n=a[a.length-1];return/^\d+$/.test(n)?n.slice(-2):a.length>=2?(a[0][0]+a[1][0]).toUpperCase():s.trim().slice(0,2).toUpperCase()}function ur(s){const a=ee(s)??0;return new Date(a).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Ie(s){const a=ee(s);return a===null?"—":new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Ce(s,a,n=0){if(!s||typeof s!="object"||Array.isArray(s)||n>3)return;const o=s;for(const f of a)if(o[f]!==void 0&&o[f]!==null)return o[f];for(const f of Object.values(o)){const h=Ce(f,a,n+1);if(h!==void 0)return h}}function O(s,...a){const n=Ce(s.metadata,a);return typeof n!="string"&&typeof n!="number"?null:String(n).trim()||null}function Re(s,...a){const n=Ce(s.metadata,a);return typeof n=="number"||typeof n=="string"?ee(n):null}function Pe(s){switch(s){case"dm":return"Direct · agent";case"channel":return"Channel";case"broadcast":return"Broadcast";case null:return"No route";default:return s.replaceAll("_"," ")}}function Be(s,a){if(a==="to")return s.route==="channel"?"Channel":s.route==="broadcast"?"Broadcast":s.target?.toLowerCase().includes("operator")?"Operator":"Agent lane";const n=O(s,"class","actorClass")?.toLowerCase();return n==="operator"||n==="human"?"Operator":n==="agent"?"Agent":s.actorName?.toLowerCase().includes("operator")?"Operator":"Sender"}function rs(s){const a=Ce(s.metadata,["latencyMs","durationMs"]);if(typeof a=="number"&&Number.isFinite(a)&&a>=0)return a<1e3?`${Math.round(a)}ms`:`${(a/1e3).toFixed(a<1e4?1:0)}s`;const n=Re(s,"sentAt","createdAt")??ee(s.ts),o=Re(s,"deliveredAt","completedAt");if(n===null||o===null||o<n)return"—";const f=o-n;return f<1e3?`${f}ms`:`${(f/1e3).toFixed(f<1e4?1:0)}s`}function _e({route:s}){switch(s){case"channel":return e.jsx(er,{size:12,"aria-hidden":"true"});case"broadcast":return e.jsx(Qs,{size:12,"aria-hidden":"true"});case"dm":return e.jsx(Gs,{size:12,"aria-hidden":"true"});default:return e.jsx(ls,{size:12,"aria-hidden":"true"})}}function hr(s,a){if(!a)return null;const n=a.trim().replace(/^@/,"").toLowerCase();return s.find(o=>[o.id,o.name,o.handle,o.selector,o.defaultSelector,o.conversationId,o.harnessSessionId].some(f=>f?.trim().replace(/^@/,"").toLowerCase()===n))??null}function as(s,a,n){const o=n==="from"?s.actorName:s.target,f=hr(a,o),h=f?.name??o??(n==="from"?"Unknown":"No target"),b=f?"Agent":n==="to"&&s.conversationId?"Session route":Be(s,n);return{label:h,kind:b,agent:f}}function fr(s,a,n){const o=n.agent??a.agent;return[{label:"From",value:a.kind},{label:"To",value:n.kind},{label:"Target",value:s.target??n.label},{label:"Channel",value:Pe(s.route)},{label:"Project",value:o?.project??O(s,"project","projectName")},{label:"Branch",value:o?.branch??O(s,"branch")},{label:"Runtime",value:o?[o.harness,o.model,o.reasoningEffort].filter(Boolean).join(" · ")||null:[O(s,"harness"),O(s,"model")].filter(Boolean).join(" · ")||null},{label:"Machine",value:o?.authorityNodeName??o?.homeNodeName??o?.authorityNodeId??o?.homeNodeId??O(s,"machine","machineName","nodeName")}].filter(f=>!!f.value)}function ts({party:s,route:a,side:n}){return e.jsxs("span",{className:`sys-broker-route-end sys-broker-route-end--${n}`,children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:s.agent||n==="from"?Ae(s.label):e.jsx(_e,{route:a})}),e.jsx("span",{className:"sys-broker-endpoint-name",title:s.label,children:s.label})]})}function mr({attempt:s,agents:a}){const n=as(s,a,"from"),o=as(s,a,"to"),f=fr(s,n,o),h=`dispatch-route-${s.id}`;return e.jsxs("span",{className:"sys-broker-route",tabIndex:0,"aria-describedby":h,children:[e.jsx(ts,{party:n,route:s.route,side:"from"}),e.jsx(Te,{className:"sys-broker-route-arrow",size:11,"aria-hidden":"true"}),e.jsx(ts,{party:o,route:s.route,side:"to"}),e.jsxs("span",{className:"sys-broker-endpoint-card",id:h,role:"tooltip",children:[e.jsx("span",{className:"sys-broker-endpoint-card-head",children:e.jsxs("span",{className:"sys-broker-endpoint-card-edge",children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:Ae(n.label)}),e.jsx("strong",{children:n.label}),e.jsx(Te,{className:"sys-broker-route-arrow",size:11,"aria-hidden":"true"}),e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:o.agent?Ae(o.label):e.jsx(_e,{route:s.route})}),e.jsx("strong",{children:o.label})]})}),e.jsx("span",{className:"sys-broker-endpoint-card-body",children:f.map(b=>e.jsxs("span",{className:"sys-broker-endpoint-card-field",children:[e.jsx("small",{children:b.label}),e.jsx("code",{title:b.value,children:b.value})]},b.label))})]})]})}function je(s){const a=ee(s)??0,n=new Date(a);return`${n.getFullYear()}-${n.getMonth()}-${n.getDate()}`}function pr(s,a=Date.now()){const n=ee(s)??0,o=new Date(n),f=new Date(a),h=new Date(a);return h.setDate(h.getDate()-1),je(s)===je(f.getTime())?"Today":je(s)===je(h.getTime())?"Yesterday":o.toLocaleDateString(void 0,{month:"short",day:"numeric",year:o.getFullYear()===f.getFullYear()?void 0:"numeric"})}function br(s,a,n){return{...a,source:s.source,attempts:[...s.attempts,...a.attempts],failedQueries:s.failedQueries,failedDeliveries:s.failedDeliveries,dialogue:s.dialogue,ledger:{...a.ledger,cursors:{...s.ledger.cursors,[n]:a.ledger.cursors[n]},hasMore:{...s.ledger.hasMore,[n]:a.ledger.hasMore[n]}}}}function yr({navigate:s,embedded:a=!1,initialAttemptId:n}){_s("Dispatch",a);const{route:o,agents:f,selectedBrokerAttempt:h,inspectBrokerAttempt:b,clearBrokerAttempt:p}=os(),[j]=t.useState(()=>As(De(),lr)),[c,w]=t.useState(j),I=o.view==="broker"?o.filter??"all":"all",[F,y]=t.useState(j===null),[u,N]=t.useState(!1),[L,ce]=t.useState(!1),[_,T]=t.useState(null),J=t.useRef(j),M=t.useRef(0),q=t.useRef(null),G=t.useCallback(async(l="initial")=>{const d=++M.current;!J.current&&l!=="background"?(y(!0),T(null)):N(!0);try{const g=await ie(De());if(d!==M.current)return;J.current=g,w(g),T(null)}catch(g){if(d!==M.current)return;T(g instanceof Error?g.message:String(g))}finally{d===M.current&&(y(!1),N(!1))}},[]),de=t.useCallback(async()=>{const l=J.current;if(!l||L)return;const d="attempts",g=l.ledger.cursors[d];if(!g||!l.ledger.hasMore[d])return;const S=++M.current;ce(!0),T(null);try{const H=await ie(De(g));if(S!==M.current)return;const E=J.current,re=E?br(E,H,d):H;J.current=re,w(re)}catch(H){if(S!==M.current)return;T(H instanceof Error?H.message:String(H))}finally{S===M.current&&ce(!1)}},[L]),ne=t.useCallback(()=>{q.current||(q.current=setTimeout(()=>{q.current=null,G("background")},250))},[G]);t.useEffect(()=>(G("initial"),()=>{q.current&&clearTimeout(q.current)}),[G]),Cs(l=>{(l.kind==="message.posted"||l.kind==="delivery.planned"||l.kind==="delivery.attempted"||l.kind==="delivery.state.changed"||l.kind==="scout.dispatched")&&ne()});const v=t.useMemo(()=>{if(!c)return[];const l=new Map(c.dialogue.map(d=>[d.id,d.body]));return $s(c.attempts).map(d=>{const g=d.messageId?l.get(d.messageId):null;return g&&g!==d.detail?{...d,detail:g}:d})},[c]),R=t.useMemo(()=>{switch(I){case"delivered":return v.filter(l=>!le(l));case"failed":return v.filter(le);default:return v}},[I,v]),ue=c?.ledger.hasMore.attempts??!1,U=t.useMemo(()=>({all:v.length,delivered:v.filter(l=>!le(l)).length,failed:v.filter(le).length}),[v]),D=t.useMemo(()=>{const l=o.view==="broker"?o.attemptId:void 0;return!c||!l?null:v.find(d=>d.id===l)??c.attempts.find(d=>d.id===l)??c.failedQueries.find(d=>d.id===l)??c.failedDeliveries.find(d=>d.id===l)??null},[c,v,o]),he=D?`${D.id}\0${D.status}\0${D.ts}`:null,Q=h?`${h.id}\0${h.status}\0${h.ts}`:null;t.useEffect(()=>{D&&he!==Q&&b(D)},[Q,b,D,he]);const[C,K]=t.useState(null),$=t.useRef(!1),V=t.useCallback(l=>{if(a){$.current=!0,K(l);return}b(l)},[a,b]),A=t.useCallback(()=>{if(a){$.current=!0,K(null);return}p()},[p,a]),se=t.useCallback(l=>{const d=R[l];d&&(V(d),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}})))},[R,V]),{getRowFocusProps:W,setFocusedIndex:Y}=ir({enabled:!!c&&R.length>0,rowCount:R.length,onActivateRow:se,onClearSelection:A}),P=C?.id??null,oe=C?`${C.id} ${C.status} ${C.ts}`:null;t.useEffect(()=>{if(!a||!P)return;const l=v.find(d=>d.id===P);l&&`${l.id} ${l.status} ${l.ts}`!==oe&&K(l)},[a,P,oe,v]),t.useEffect(()=>{if(!a||!n||!c||$.current||C)return;const l=v.find(d=>d.id===n)??c.attempts.find(d=>d.id===n)??c.failedQueries.find(d=>d.id===n)??c.failedDeliveries.find(d=>d.id===n);l&&($.current=!0,K(l))},[c,a,C,v,n]),t.useEffect(()=>{const l=o.view==="broker"?o.attemptId:void 0;if(!l)return;const d=R.findIndex(g=>g.id===l);d>=0&&Y(d)},[R,I,o,Y]);const ve=t.useCallback(l=>{const g=(xe.indexOf(I)+l+xe.length)%xe.length,S=xe[g];s({view:"broker",...S==="all"?{}:{filter:S}})},[I,s]),fe=a?C:null;return e.jsx("div",{className:`s-ops${a?" s-ops--embedded":""}${fe?" s-ops--split":""}`,children:e.jsxs("div",{className:"s-ops-body",children:[e.jsxs("div",{className:"sys-surface-page sys-surface-page-wide sys-surface-page-fluid sys-broker-page",children:[e.jsxs("div",{className:"sys-ledger-toolbar","aria-label":"Dispatch controls",children:[c?e.jsx("div",{className:"sys-tab-row sys-tab-row--toolbar",role:"tablist","aria-label":"Dispatch message filters",onKeyDown:l=>{l.key==="ArrowRight"?(l.preventDefault(),ve(1)):l.key==="ArrowLeft"&&(l.preventDefault(),ve(-1))},children:xe.map(l=>e.jsxs("button",{type:"button",role:"tab","aria-selected":I===l,className:`sys-tab${I===l?" sys-tab-active":""}`,onClick:()=>s({view:"broker",...l==="all"?{}:{filter:l}}),children:[e.jsx("span",{children:cr[l]}),e.jsx("span",{className:"sys-tab-count",children:U[l]})]},l))}):e.jsx("div",{className:"sys-ledger-kicker",children:"Dispatch ledger"}),e.jsxs("div",{className:"sys-page-actions sys-ledger-actions",children:[e.jsx("div",{className:"sys-sync-note",children:F?"Loading dispatch ledger...":c?`Updated ${Fe(c.generatedAt)}${c.source?.latestMessageAt?` · latest message ${Fe(c.source.latestMessageAt)}`:""}`:"Waiting for dispatch data"}),e.jsx("button",{type:"button",className:"s-btn",disabled:F||u,onClick:()=>{G("manual")},children:u?"Refreshing...":"Refresh"})]})]}),_&&e.jsxs("div",{className:"sys-banner sys-banner-warning",children:[e.jsx("strong",{children:"Refresh failed."}),e.jsx("span",{children:_})]}),u&&c&&e.jsxs("div",{className:"sys-broker-source-note",role:"status","aria-live":"polite",children:[e.jsx(ke,{className:"sys-broker-source-spinner",size:12,"aria-hidden":"true"}),e.jsx("strong",{children:"Updating dispatches…"})]}),!u&&c?.source?.mode==="sqlite_projection"&&c.source.status==="degraded"&&c.source.detail&&e.jsxs("div",{className:"sys-broker-source-note sys-broker-source-note--warning",role:"status","aria-label":c.source.detail,title:c.source.detail,children:[e.jsx("span",{className:"sys-broker-source-dot","aria-hidden":"true"}),e.jsx("strong",{children:c.source.brokerReachable?"Dispatch history is loading":"Dispatch may be out of date"}),e.jsx("span",{children:c.source.brokerReachable?"Broker online; showing saved dispatch history while live messages load.":"Live broker unavailable; showing saved dispatch history."})]}),F&&!c&&e.jsx("div",{className:"sys-broker-empty-wrap",children:e.jsx(Ee,{className:"sys-state-card-centered",icon:e.jsx(ke,{className:"sys-broker-source-spinner",size:24,"aria-hidden":"true"}),title:"Loading dispatch",body:"Reading the dispatch database snapshot."})}),!F&&!c&&!_&&e.jsx("div",{className:"sys-broker-empty-wrap",children:e.jsx(Ee,{className:"sys-state-card-centered",title:"No dispatch data",body:"No dispatch rows are available yet."})}),c&&e.jsxs(e.Fragment,{children:[e.jsx(gr,{attempts:R,agents:f,selectedAttemptId:a?C?.id??null:h?.id??(o.view==="broker"?o.attemptId??null:null),onInspect:V,getRowFocusProps:W}),R.length>0&&ue&&e.jsx("div",{className:"sys-ledger-footer",children:e.jsx("button",{type:"button",className:"s-btn",disabled:L,onClick:()=>{de()},children:L?"Loading older...":"Load older"})})]})]}),fe&&e.jsx("div",{className:"s-broker-embed-detail",children:e.jsx(us,{attempt:fe,navigate:s,onClose:A})})]})})}function gr({attempts:s,agents:a,selectedAttemptId:n,onInspect:o,getRowFocusProps:f}){if(s.length===0)return e.jsx("div",{className:"sys-broker-empty-wrap",children:e.jsx(Ee,{className:"sys-state-card-centered",title:"No dispatch rows",body:"No dispatch rows are available yet."})});const h=s.reduce((b,p,j)=>{const c=je(p.ts),w=b[b.length-1];return w?.key===c?w.attempts.push({attempt:p,index:j}):b.push({key:c,label:pr(p.ts),attempts:[{attempt:p,index:j}]}),b},[]);return e.jsxs("div",{className:"sys-broker-wire","aria-label":"Dispatch ledger",children:[e.jsxs("div",{className:"sys-broker-wire-head","aria-hidden":"true",children:[e.jsx("span",{className:"sys-broker-col sys-broker-col--route",children:"Route"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--msg",children:"Message"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--time",children:"Time"})]}),h.map(b=>e.jsxs("section",{className:"sys-broker-day","aria-labelledby":`dispatch-day-${b.key}`,children:[e.jsxs("header",{className:"sys-broker-day-head",children:[e.jsx("h2",{id:`dispatch-day-${b.key}`,children:b.label}),e.jsxs("span",{children:[b.attempts.length," ",b.attempts.length===1?"dispatch":"dispatches"]})]}),e.jsx("div",{className:"sys-broker-wire-body",role:"list",children:b.attempts.map(({attempt:p,index:j})=>{const c=ze(p.kind,p.status),w=le(p),I=!w&&(c==="working"||c==="warning"),F=is(p),y=Le(p),u=w?F:I?y:null,N=()=>{o(p),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}}))};return e.jsxs("div",{role:"listitem",className:`sys-broker-wire-row${w?" sys-broker-wire-row--failure":I?" sys-broker-wire-row--pending":""}${n===p.id?" sys-broker-wire-row--selected":""}`,"aria-label":`${y}. Inspect ${p.detail}`,onClick:N,...f(j),children:[e.jsx("div",{className:"sys-broker-cell sys-broker-col--route",children:e.jsx(mr,{attempt:p,agents:a})}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--msg",children:[e.jsx("span",{className:"sys-broker-msg",title:p.detail,children:p.detail}),u&&e.jsx("span",{className:`sys-broker-msg-error sys-broker-msg-error--${w?"danger":"warning"}`,title:u,children:u})]}),e.jsx("div",{className:"sys-broker-cell sys-broker-col--time",children:e.jsx("time",{className:"sys-broker-time-abs",title:`${Fe(p.ts)} · ${ns(p.ts)}`,children:ur(p.ts)})})]},p.id)})})]},b.key))]})}function xr(s){const a=ds(s);return[{label:"Kind",value:dr(s.kind)},{label:"Time",value:ns(s.ts)},{label:"Actor",value:s.actorName},{label:"Target",value:s.target},{label:"Route",value:s.route},{label:"Conversation",value:s.conversationId},{label:"Reference",value:a},{label:"Message",value:s.messageId===a?null:s.messageId},{label:"Delivery",value:s.deliveryId===a?null:s.deliveryId},{label:"Invocation",value:s.invocationId===a?null:s.invocationId}].filter(n=>!!n.value)}function z({value:s,subject:a,className:n}){const[o,f]=t.useState("idle"),h=t.useRef(null);t.useEffect(()=>{f("idle")},[s]),t.useEffect(()=>()=>{h.current&&clearTimeout(h.current)},[]);const b=t.useCallback(async()=>{const c=await Rs(s);h.current&&clearTimeout(h.current),f(c?"copied":"failed"),h.current=setTimeout(()=>{f("idle"),h.current=null},1500)},[s]),p=o==="copied",j=o==="failed";return e.jsx("button",{type:"button",className:`sys-copy-btn${n?` ${n}`:""}${p?" sys-copy-btn--copied":""}${j?" sys-copy-btn--failed":""}`,onClick:()=>{b()},title:p?`Copied ${a}`:j?"Copy failed":`Copy ${a}`,"aria-label":p?`Copied ${a}`:j?`Copy ${a} failed`:`Copy ${a}`,children:p?e.jsx(Hs,{size:14,"aria-hidden":"true"}):e.jsx(Js,{size:14,"aria-hidden":"true"})})}function jr(s){const a=s.trim();if(a.startsWith("{")||a.startsWith("["))try{return{code:JSON.stringify(JSON.parse(a),null,2),path:"payload.json",language:"JSON"}}catch{}return{code:s,path:"payload.md",language:"Text · Markdown"}}function kr({payload:s}){const a=t.useMemo(()=>jr(s),[s]),[n,o]=t.useState(!1),f=t.useRef(null),h=a.code.split(`
2
- `).length;t.useEffect(()=>{const p=f.current;!p||!n||p.open||p.showModal()},[n]),t.useEffect(()=>{o(!1)},[s]);const b=e.jsx("div",{className:"sys-broker-payload-code","data-language":a.path==="payload.json"?"json":"markdown",role:"region","aria-label":`Dispatch payload, ${a.language}`,tabIndex:0,children:e.jsx(zs,{code:a.code,path:a.path})});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"sys-broker-payload-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Payload"}),e.jsxs("span",{className:"sys-broker-payload-meta",children:[a.language," · ",h," ",h===1?"line":"lines"]}),e.jsx(z,{value:s,subject:"payload"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-payload-expand",onClick:()=>o(!0),title:"Expand payload","aria-label":"Expand payload",children:e.jsx(Vs,{size:14,"aria-hidden":"true"})})]}),e.jsx("div",{className:"sys-broker-payload-resizer",children:b}),n&&xs.createPortal(e.jsxs("dialog",{ref:f,className:"sys-broker-payload-dialog","aria-label":"Expanded dispatch payload",onCancel:p=>{p.preventDefault(),o(!1)},onClose:()=>o(!1),children:[e.jsxs("header",{className:"sys-broker-payload-dialog-head",children:[e.jsxs("div",{children:[e.jsx("span",{className:"sys-detail-label",children:"Dispatch payload"}),e.jsxs("span",{className:"sys-broker-payload-meta",children:[a.language," · ",h," ",h===1?"line":"lines"]})]}),e.jsx(z,{value:s,subject:"payload"}),e.jsx("button",{type:"button",className:"sys-copy-btn",onClick:()=>o(!1),title:"Return payload to inspector","aria-label":"Return payload to inspector",children:e.jsx(Ws,{size:14,"aria-hidden":"true"})})]}),e.jsx("div",{className:"sys-broker-payload-dialog-body",children:b})]}),document.body)]})}function vr({attempt:s}){const a=Ms(s);return e.jsxs("div",{className:"sys-broker-route-failure",role:"status",children:[e.jsx("span",{className:"sys-broker-route-failure-mark","aria-hidden":"true",children:e.jsx(Me,{size:14})}),e.jsxs("div",{children:[e.jsx("span",{className:"sys-detail-label",children:"Routing stopped"}),e.jsx("strong",{children:a}),e.jsx("p",{children:s.detail})]}),e.jsx(z,{value:s.detail,subject:"failure detail"})]})}function us({attempt:s,navigate:a,onClose:n}){const{route:o,agents:f,scoutbotAgentId:h}=os(),b=xr(s),p=Ds(s.metadata),j=le(s),c=s.kind==="failed_query",w=is(s),I=ze(s.kind,s.status),F=Re(s,"sentAt","createdAt")??ee(s.ts),y=Re(s,"deliveredAt","completedAt")??ee(s.ts),u=ds(s),[N,L]=t.useState("idle"),[ce,_]=t.useState(null),[T,J]=t.useState(null),[M,q]=t.useState(!1),[G,de]=t.useState(!1),[ne,v]=t.useState(""),[R,ue]=t.useState(""),[U,D]=t.useState("idle"),[he,Q]=t.useState(null),[C,K]=t.useState(""),[$,V]=t.useState(""),[A,se]=t.useState(""),[W,Y]=t.useState(""),[P,oe]=t.useState("medium"),[ve,fe]=t.useState(null),[l,d]=t.useState([]),[g,S]=t.useState("idle"),[H,E]=t.useState(null),re=O(s,"harness"),we=O(s,"model"),Ne=O(s,"reasoningEffort","effort"),qe=t.useRef(null),Ue=t.useRef(null),me=t.useMemo(()=>Es(s),[s]),k=t.useMemo(()=>f.filter(r=>!r.retiredFromFleet&&!r.staleLocalRegistration).slice().sort((r,i)=>r.id===h?-1:i.id===h?1:(i.updatedAt??0)-(r.updatedAt??0)||r.name.localeCompare(i.name)),[f,h]),pe=t.useMemo(()=>Fs(s,k)?.id??"",[s,k]),be=k.find(r=>r.id!==h)?.id??k[0]?.id??"",Se=k[0]?.id??"",ae=k.find(r=>r.id===be)??null,hs=t.useMemo(()=>{const r=new Map;for(const i of k){const m=i.projectRoot?.trim()||i.cwd?.trim();if(!m)continue;const x=m.split("/").filter(Boolean).at(-1)??m;r.set(m,i.project?.trim()||x)}return[...r.entries()].map(([i,m])=>({path:i,label:m}))},[k]),Ke=t.useRef({originalTargetAgentId:pe,firstRoutableAgentId:Se,defaultForwardAgentId:be,defaultForwardAgent:ae,effort:"medium"});Ke.current={originalTargetAgentId:pe,firstRoutableAgentId:Se,defaultForwardAgentId:be,defaultForwardAgent:ae,effort:O(s,"reasoningEffort","effort")||"medium"};const ye=t.useRef(!1);t.useEffect(()=>{const r=Ke.current;ye.current=!1,L("idle"),_(null),J(null),q(!1),de(!1),v(""),ue(r.originalTargetAgentId||r.firstRoutableAgentId),D("idle"),Q(null),K(r.defaultForwardAgentId),V(r.defaultForwardAgent?.projectRoot?.trim()||r.defaultForwardAgent?.cwd?.trim()||""),se(r.defaultForwardAgent?.harness?.trim()||""),Y(r.defaultForwardAgent?.model?.trim()||""),oe(r.effort),d([]),S("idle"),E(null)},[s.id]),t.useEffect(()=>{ye.current||(ue(r=>r||pe||Se),K(r=>r||be),V(r=>r||ae?.projectRoot?.trim()||ae?.cwd?.trim()||""),se(r=>r||ae?.harness?.trim()||""),Y(r=>r||ae?.model?.trim()||""))},[ae,be,Se,pe]),t.useEffect(()=>{const r=new URLSearchParams({scope:"global+project"});$&&r.set("projectRoot",$);let i=!1;return ie(`/api/runner/options?${r.toString()}`).then(m=>{!i&&m.schemaVersion==="openscout.runtime-capabilities.v1"&&fe(m)}).catch(()=>{}),()=>{i=!0}},[$]);const fs=t.useCallback(()=>{q(!0),window.requestAnimationFrame(()=>qe.current?.focus())},[]),He=t.useCallback(()=>{q(!1),de(!1),v(""),d([]),S("idle"),E(null)},[]),ms=t.useCallback(async()=>{const r=k.find(i=>i.id===R);if(!(!r||U==="sending")){D("sending"),Q(null);try{const i=await ie("/api/ask",{method:"POST",body:JSON.stringify({body:s.detail,targetAgentId:r.id,targetLabel:r.name,...re||we||Ne?{execution:{...re?{harness:re}:{},...we?{model:we}:{},...Ne?{reasoningEffort:Ne}:{},session:"new"}}:{},metadata:{source:"scout-dispatch-redispatch",originalDispatchId:s.id,...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),m=i.flightId??i.flight?.id;D("sent"),Q(`New dispatch sent to ${r.name}${m?` · ${m}`:""}`)}catch(i){D("failed"),Q(`Retry failed. ${i instanceof Error?i.message:String(i)}`)}}},[s,R,U,Ne,re,we,k]),Je=t.useCallback(async()=>{const r=ne.trim(),i=k.find(m=>m.id===C);if(!(!r||!i||g==="sending")){S("sending"),E(l.length>0?`Uploading ${l.length} ${l.length===1?"attachment":"attachments"}…`:null);try{const m=l.length>0?await ks(l):[],x=await ie("/api/ask",{method:"POST",body:JSON.stringify({body:`${r}
3
-
4
- Attached dispatch context:
5
- ${me}`,targetAgentId:i.id,targetLabel:i.name,...m.length>0?{attachments:m}:{},execution:{...A?{harness:A}:{},...W?{model:W}:{},...P?{reasoningEffort:P}:{}},metadata:{source:"scout-dispatch-forward",originalDispatchId:s.id,...$?{targetProjectPath:$}:{},...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),X=x.flightId??x.flight?.id;S("sent"),E(`Request sent to ${i.name}${X?` · ${X}`:""}`),v(""),d([])}catch(m){S("failed"),E(`Request wasn't sent. ${m instanceof Error?m.message:String(m)}`)}}},[s,me,C,P,l,A,W,$,g,ne,k]),ps=t.useCallback(r=>{const i=r.filter(vs),m=r.length-i.length;i.length>0&&(d(x=>[...x,...i]),S("idle"),E(null)),m>0&&(S("failed"),E("Attach markdown, code, an image, or a video clip."))},[]),B=k.find(r=>r.id===R)??null,te=k.find(r=>r.id===C)??null,ge=k.filter(r=>$?(r.projectRoot?.trim()||r.cwd?.trim())===$:!0),Ge=ve??Ns,$e=t.useMemo(()=>{const r=ws(Ge),i=[W,te?.harness===A?te.model:null,...ge.filter(x=>x.harness===A).map(x=>x.model)].map(x=>x?.trim()).filter(x=>!!x);let m=r.harnesses;return m.some(x=>x.value===A)||(m=[{value:A,label:A||"default",models:[]},...m]),m=m.map(x=>{if(x.value!==A)return x;const X=x.models.some(Z=>Z.value==="")?x.models:[{value:"",label:"Default",note:"harness picks"},...x.models],gs=new Set(X.map(Z=>Z.value)),We=i.filter(Z=>!gs.has(Z)).map(Z=>({value:Z,label:Z,note:"observed"}));return We.length===0&&X===x.models?x:{...x,models:[...X,...We]}}),{...r,harnesses:m}},[Ge,te,A,W,ge]);t.useEffect(()=>{const r=Ss($e,A);!r||r.some(i=>i.value===P)||oe(r.find(i=>i.value==="medium")?.value??r[0]?.value??"")},[$e,A,P]);const Qe=j?"Investigate why this dispatch failed. Say what stopped it, whether anything was received, and propose a recovery: who should take it and what should happen next.":"Summarize this dispatch and what happened next. Flag anything that needs the operator.",bs=t.useCallback(async()=>{if(N==="sending")return;if(T){Ye(a,{view:"conversation",conversationId:T},{returnTo:o});return}const r=k.find(i=>i.id===h);if(!r){L("failed"),_("Scout isn't reachable right now.");return}L("sending"),_(null);try{const i=await ie("/api/ask",{method:"POST",body:JSON.stringify({body:`${Qe}
6
-
7
- Attached dispatch context:
8
- ${me}`,targetAgentId:r.id,targetLabel:"Scout",metadata:{source:"scout-dispatch-investigate",originalDispatchId:s.id,...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),m=i.flightId??i.flight?.id;L("sent"),J(i.conversationId??null),_(i.conversationId?"Investigation started. Open it to follow along.":`Investigation sent to Scout${m?` · ${m}`:""}.`)}catch(i){L("failed"),_(`Investigation wasn't sent. ${i instanceof Error?i.message:String(i)}`)}},[s,me,T,Qe,N,a,k,o,h]),ys=t.useMemo(()=>{const r={state:Le(s),reference:u,channel:Pe(s.route),latency:rs(s),sent:Ie(F),[j?"failed":"delivered"]:Ie(y)};for(const i of b)r[i.label.toLowerCase()]=i.value;return JSON.stringify(r,null,2)},[s,y,j,u,b,F]),Ve=e.jsxs("div",{className:"sys-broker-action-row",children:[e.jsxs("div",{className:"sys-broker-action-line",children:[e.jsx("span",{className:"sys-broker-action-label",id:"dispatch-redispatch-title",children:"Retry"}),e.jsxs("div",{className:"sys-broker-redispatch-controls",children:[e.jsx("select",{"aria-label":"Retry destination",value:R,disabled:U==="sending"||k.length===0,onChange:r=>{ue(r.target.value),D("idle"),Q(null)},children:k.length===0?e.jsx("option",{value:"",children:"No agents available"}):e.jsxs(e.Fragment,{children:[!R&&e.jsx("option",{value:"",children:"Original destination unavailable"}),k.map(r=>e.jsxs("option",{value:r.id,children:[r.id===h?"Scout":r.name,r.project?` · ${r.project}`:""]},r.id))]})}),e.jsxs("button",{type:"button",className:"sys-broker-redispatch-send",disabled:!B||U==="sending",onClick:()=>{ms()},children:[U==="sending"?e.jsx(ke,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(qs,{size:13,"aria-hidden":"true"}),U==="sending"?"Retrying…":"Retry dispatch"]})]})]}),B&&e.jsxs("div",{className:"sys-broker-action-target-meta",children:[B.harness&&e.jsx("span",{children:B.harness}),B.model&&e.jsx("span",{children:B.model}),(B.cwd??B.projectRoot)&&e.jsx("code",{children:B.cwd??B.projectRoot})]}),he&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${U}`,role:"status",children:he})]});return e.jsxs("aside",{className:"sys-panel sys-broker-inspector","aria-label":"Dispatch route inspector",children:[e.jsx("header",{className:"sys-broker-inspector-head",children:e.jsxs("div",{className:"sys-broker-inspector-status",children:[e.jsx("span",{className:`sys-broker-dot sys-broker-dot--${I}`,"aria-hidden":"true"}),e.jsx("strong",{className:`sys-broker-state sys-broker-state--${I}`,children:Le(s)}),e.jsx("code",{title:u,children:u}),e.jsx(z,{value:u,subject:"message id",className:"sys-broker-inspector-copy"}),e.jsx(z,{value:me,subject:"dispatch context",className:"sys-broker-inspector-copy"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-inspector-close",onClick:n,title:"Close inspector","aria-label":"Close inspector",children:e.jsx(Me,{size:14,"aria-hidden":"true"})})]})}),e.jsxs("div",{className:"sys-broker-inspector-body",children:[e.jsxs("section",{className:"sys-broker-route-stack","aria-label":"Dispatch route",children:[e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-route-avatar","aria-hidden":"true",children:Ae(s.actorName)}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["From · ",Be(s,"from")]}),e.jsx("strong",{children:s.actorName??"Unknown sender"})]}),s.actorName&&e.jsx(z,{value:s.actorName,subject:"sender"})]}),e.jsx(Xs,{className:"sys-broker-route-down",size:17,"aria-hidden":"true"}),e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-route-target-icon","aria-hidden":"true",children:e.jsx(_e,{route:s.route})}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["To · ",Be(s,"to")]}),e.jsx("code",{title:s.target??"No target",children:s.target??"No target"})]}),s.target&&e.jsx(z,{value:s.target,subject:"target"}),s.conversationId&&e.jsxs("button",{type:"button",className:"sys-broker-route-button",onClick:()=>Ye(a,{view:"conversation",conversationId:s.conversationId},{returnTo:o}),children:[e.jsx(Ze,{size:11,"aria-hidden":"true"}),"Route"]})]})]}),e.jsxs("section",{className:"sys-broker-payload",children:[c?e.jsx(vr,{attempt:s}):e.jsx(kr,{payload:s.detail}),j&&!c&&w&&e.jsxs("div",{className:"sys-broker-inspector-error",role:"status",children:[e.jsx("span",{className:"sys-broker-inspector-error-label",children:"Error"}),e.jsx("p",{children:w})]})]}),e.jsx(Ls,{attempt:s,targetAgentId:pe||null,navigate:a,returnTo:o}),e.jsxs("section",{className:"sys-broker-actions","aria-label":"Dispatch actions",children:[j&&Ve,e.jsxs("div",{className:"sys-broker-intents",children:[e.jsxs("button",{type:"button",className:`sys-broker-intent${j?"":" sys-broker-intent--primary"}`,disabled:N==="sending",onClick:()=>{bs()},children:[N==="sending"?e.jsx(ke,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):T?e.jsx(Ze,{size:13,"aria-hidden":"true"}):e.jsx(ls,{size:13,"aria-hidden":"true"}),N==="sending"?"Asking Scout…":T?"Open investigation":"Investigate with Scout"]}),e.jsxs("button",{type:"button",className:"sys-broker-intent","aria-expanded":M,onClick:()=>M?He():fs(),children:[e.jsx(Te,{size:13,"aria-hidden":"true"}),"Forward to agent…"]})]}),ce&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${N}`,role:"status",children:ce}),M&&e.jsxs("div",{className:"sys-broker-forward-draft",children:[e.jsxs("div",{className:"sys-broker-forward-draft-head",children:[e.jsx("span",{className:"sys-broker-action-label",children:"Forward to agent"}),e.jsx("button",{type:"button",className:"sys-broker-forward-discard",onClick:He,children:"Discard"})]}),e.jsxs("form",{className:"sys-broker-message-composer",onSubmit:r=>{r.preventDefault(),Je()},children:[e.jsx("textarea",{ref:qe,id:"dispatch-message-input","aria-label":"Forward message",value:ne,rows:3,placeholder:`What should ${te?.id===h?"Scout":te?.name??"this agent"} investigate or do?`,disabled:g==="sending",onChange:r=>{v(r.target.value),g!=="idle"&&(S("idle"),E(null))},onKeyDown:r=>{r.key==="Enter"&&(r.metaKey||r.ctrlKey)&&(r.preventDefault(),Je())}}),l.length>0&&e.jsx("div",{className:"sys-broker-composer-attachments","aria-label":"Attachments",children:l.map((r,i)=>e.jsxs("span",{children:[e.jsx(rr,{size:10,"aria-hidden":"true"}),e.jsx("span",{title:r.name,children:r.name}),e.jsx("button",{type:"button",onClick:()=>d(m=>m.filter((x,X)=>X!==i)),"aria-label":`Remove ${r.name}`,children:e.jsx(Me,{size:10,"aria-hidden":"true"})})]},`${r.name}:${r.size}:${i}`))}),e.jsxs("footer",{children:[e.jsxs("div",{className:"sys-broker-composer-left",children:[e.jsx("input",{ref:Ue,type:"file",multiple:!0,hidden:!0,disabled:g==="sending",onChange:r=>{ps([...r.target.files??[]]),r.target.value=""}}),e.jsx("button",{type:"button",className:"sys-broker-composer-attach",disabled:g==="sending",onClick:()=>Ue.current?.click(),"aria-label":"Attach files",title:"Attach files",children:e.jsx(Us,{size:16,"aria-hidden":"true"})}),e.jsx("span",{className:"sys-broker-message-attachment",title:u,children:"Context + payload attached"})]}),e.jsxs("div",{className:"sys-broker-composer-targets",children:[e.jsx("span",{className:"sys-broker-composer-route-label",children:"To"}),e.jsxs("label",{title:"Forward target",children:[e.jsx("span",{children:"Agent"}),e.jsx("select",{"aria-label":"Forward target",value:C,disabled:g==="sending"||ge.length===0,onChange:r=>{const i=k.find(m=>m.id===r.target.value)??null;ye.current=!0,K(r.target.value),i&&(V(i.projectRoot?.trim()||i.cwd?.trim()||""),se(i.harness?.trim()||""),Y(i.model?.trim()||"")),S("idle"),E(null)},children:ge.length===0?e.jsx("option",{value:"",children:"No agents"}):ge.map(r=>e.jsx("option",{value:r.id,children:r.id===h?"Scout":r.name},r.id))})]}),e.jsxs("button",{type:"button",className:"sys-broker-forward-adjust-toggle","aria-expanded":G,onClick:()=>de(r=>!r),children:["Adjust",e.jsx(es,{size:11,"aria-hidden":"true"})]}),e.jsx(js,{className:"sys-broker-composer-mic",disabled:g==="sending",onAppend:r=>v(i=>i.trim()?`${i.trimEnd()} ${r}`:r),onError:r=>{S("failed"),E(r)}})]}),e.jsx("button",{type:"submit",className:"sys-broker-composer-send",disabled:!ne.trim()||!te||g==="sending","aria-label":`Ask ${te?.name??"recipient"} about this dispatch`,children:g==="sending"?e.jsx(ke,{size:14,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(Ks,{size:14,"aria-hidden":"true"})})]}),G&&e.jsxs("div",{className:"sys-broker-composer-targets sys-broker-forward-adjust",children:[e.jsxs("label",{title:"Project target",children:[e.jsx("span",{children:"Project"}),e.jsxs("select",{"aria-label":"Project target",value:$,disabled:g==="sending",onChange:r=>{const i=r.target.value,m=k.find(x=>!i||(x.projectRoot?.trim()||x.cwd?.trim())===i)??null;ye.current=!0,V(i),m&&(K(m.id),se(m.harness?.trim()||""),Y(m.model?.trim()||""))},children:[e.jsx("option",{value:"",children:"Any project"}),hs.map(r=>e.jsx("option",{value:r.path,children:r.label},r.path))]})]}),e.jsx(Is,{catalog:$e,value:{harness:A,model:W,effort:P},onChange:r=>{ye.current=!0,se(r.harness),Y(r.model),oe(r.effort)},disabled:g==="sending"})]})]}),H&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${g}`,role:"status",children:H})]})]}),e.jsxs("details",{className:"sys-broker-technical",children:[e.jsxs("summary",{children:[e.jsx("span",{children:"Technical details"}),e.jsx(es,{size:13,"aria-hidden":"true"})]}),e.jsxs("dl",{className:"sys-broker-delivery-grid",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Channel"}),e.jsx("dd",{children:Pe(s.route)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Latency"}),e.jsx("dd",{className:"sys-broker-delivery-accent",children:rs(s)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Sent"}),e.jsx("dd",{children:Ie(F)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:j?"Failed":"Delivered"}),e.jsx("dd",{children:Ie(y)})]})]}),e.jsxs("div",{className:"sys-broker-record-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Record"}),e.jsx(z,{value:ys,subject:"record as JSON",className:"sys-broker-metadata-copy"})]}),e.jsx("div",{className:"sys-broker-inspector-rows",children:b.map(r=>e.jsxs("div",{className:"sys-broker-inspector-row",children:[e.jsx("span",{className:"sys-detail-label",children:r.label}),e.jsx("code",{className:"sys-detail-value",children:r.value}),e.jsx(z,{value:r.value,subject:r.label.toLowerCase()})]},r.label))}),e.jsxs("div",{className:"sys-broker-metadata",children:[e.jsxs("div",{className:"sys-broker-metadata-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Metadata"}),e.jsx(z,{value:p,subject:"metadata",className:"sys-broker-metadata-copy"})]}),e.jsx(Ts,{metadata:s.metadata,rawJson:p})]}),!j&&Ve]})]})]})}const wr=Os({id:"dispatch",label:"Dispatch",route:{view:"broker"},webPath:"/dispatch",screen:"BrokerScreen",embed:{path:"/embed/dispatch",profile:"macos.dispatch",rootClassName:"s-broker-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},ownsInternalRoutes:!0,resolveEmbedProps:s=>{const a=s.get("attempt")?.trim();return a?{initialAttemptId:a}:{}},hosts:{macos:!0}}}),oa=Object.freeze(Object.defineProperty({__proto__:null,BrokerAttemptInspector:us,BrokerScreen:yr,scoutSurface:wr},Symbol.toStringTag,{value:"Module"}));export{us as B,yr as a,De as b,oa as c};
@@ -1 +0,0 @@
1
- import{r as n,j as t}from"./index-DReVb7jZ.js";import{MemberAvatar as M}from"./ChatAvatar-DKBsbOqk.js";import{y as O,d as B,b as f,a as $,A as _}from"./chat-space-model-B6Jg2CY4.js";import{A as V}from"./at-sign-DM7xeppo.js";import{C as G}from"./chevron-down-CDzRQQGl.js";import{L as J}from"./loader-circle-DNUsuPWz.js";import{c as X}from"./createLucideIcon-ChvMq-zl.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";const Y=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Z=X("arrow-up",Y);function F(a,s){const l=a.slice(0,s),o=l.lastIndexOf("@");if(o<0||o>0&&!/\s/u.test(l[o-1]??""))return null;const r=l.slice(o+1);return/\n/u.test(r)||r.split(" ").length>3?null:{start:o,text:r}}function T(a,s){const l=Math.max(0,Math.min(s,a.length)),o=a.slice(0,l),r=o.length>0&&!/\s$/u.test(o)?" ":"",k=`${o}${r}@`;return{next:`${k}${a.slice(l)}`,caret:k.length}}function ue({members:a,draft:s,onDraftChange:l,askTargetId:o,onAskTargetChange:r,onSend:k,sending:u,error:v,placeholder:E,variant:j="channel",autoFocus:P=!1}){const d=n.useRef(null),z=n.useRef(null),[p,y]=n.useState(null),[b,w]=n.useState(0),[N,C]=n.useState(!1),A=n.useMemo(()=>a.filter(O),[a]),D=n.useMemo(()=>a.filter(B),[a]),m=n.useMemo(()=>a.find(e=>e.actorId===o)??null,[a,o]),x=n.useMemo(()=>{if(!p)return[];const e=p.text.trim().toLowerCase();return[...a.filter(c=>f(c).toLowerCase().includes(e)||c.displayName.toLowerCase().includes(e))].sort((c,h)=>Number($(h))-Number($(c))).slice(0,8)},[a,p]);n.useEffect(()=>{w(0)},[p?.text]),n.useEffect(()=>{P&&d.current?.focus()},[P]);const L=n.useCallback(()=>{const e=d.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,180)}px`)},[]);n.useEffect(()=>{L()},[s,L]);const R=n.useCallback(e=>{C(!1),e==="toggle"?z.current?.focus():d.current?.focus()},[]),I=n.useCallback(e=>{const c=d.current?.selectionStart??s.length,h=p??F(s,c),S=f(e);if(!h)l(`${s}${s.endsWith(" ")||s===""?"":" "}@${S} `);else{const g=`${s.slice(0,h.start)}@${S} ${s.slice(c)}`;l(g)}O(e)&&r(e.actorId),y(null),requestAnimationFrame(()=>{const g=d.current;if(!g)return;g.focus();const K=(h?.start??s.length)+S.length+2;g.setSelectionRange(K,K)})},[s,r,l,p]),H=n.useCallback(()=>{const e=d.current,{next:i,caret:c}=T(s,e?.selectionStart??s.length);l(i),C(!1),y({start:c-1,text:""}),requestAnimationFrame(()=>{const h=d.current;h&&(h.focus(),h.setSelectionRange(c,c))})},[s,l]),Q=n.useCallback(e=>{if(!(e.nativeEvent.isComposing||e.nativeEvent.keyCode===229)){if(p&&x.length>0){if(e.key==="ArrowDown"){e.preventDefault(),w(i=>(i+1)%x.length);return}if(e.key==="ArrowUp"){e.preventDefault(),w(i=>(i-1+x.length)%x.length);return}if(e.key==="Enter"||e.key==="Tab"){e.preventDefault();const i=x[b];i&&I(i);return}if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),y(null);return}}if(e.key==="Escape"&&N){e.preventDefault(),e.stopPropagation(),C(!1);return}e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),!u&&s.trim()&&k())}},[b,I,s,x,k,N,p,u]),W=_(m?f(m):null),U=!u&&s.trim().length>0,q=m?`Send — asks ${f(m)}`:j==="thread"?"Send reply":"Send to the channel";return t.jsxs("div",{className:"chat-composer","data-variant":j,children:[j==="channel"&&m?t.jsxs("div",{className:"chat-ask-target",children:[t.jsx("span",{className:"label-sm",style:{color:"var(--dim)"},children:"Asking"}),t.jsxs("span",{className:"chip chip--sm chip--mono chip--neutral",children:[t.jsx(M,{member:m,size:14}),f(m)]}),t.jsx("button",{type:"button",className:"chat-ask-target-clear",onClick:()=>r(null),"aria-label":"Clear ask target — send as a channel update instead",children:"×"}),W?t.jsx("span",{className:"chat-composer-hint",children:W}):null]}):null,t.jsx("textarea",{ref:d,className:"chat-composer-input",rows:1,value:s,placeholder:E,"aria-label":E,disabled:u,onChange:e=>{l(e.target.value),y(F(e.target.value,e.target.selectionStart??0))},onKeyDown:Q,onBlur:()=>y(null)}),p&&x.length>0?t.jsx("div",{className:"chat-mention-popup",role:"listbox","aria-label":"Mention a member",children:x.map((e,i)=>t.jsxs("button",{type:"button",role:"option","aria-selected":i===b,"data-active":i===b,className:"chat-mention-option",onMouseDown:c=>{c.preventDefault(),I(e)},children:[t.jsx(M,{member:e,size:18}),f(e),t.jsx("span",{className:"chat-mention-kind",children:B(e)?"via API":$(e)?"agent":"person"})]},e.actorId))}):null,N&&j==="channel"?t.jsx("div",{className:"chat-mention-popup",role:"listbox","aria-label":"Choose an agent to ask",onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),R("toggle"))},children:A.length===0&&D.length===0?t.jsx("div",{className:"chat-side-empty",children:"No agent has joined this channel yet. Invite one from the Invite sheet."}):t.jsxs(t.Fragment,{children:[A.map(e=>t.jsxs("button",{type:"button",role:"option","aria-selected":e.actorId===o,"data-active":e.actorId===o,className:"chat-mention-option",onClick:()=>{r(e.actorId),R("input")},children:[t.jsx(M,{member:e,size:18}),f(e),t.jsx("span",{className:"chat-mention-kind",children:e.reception.summary.toLowerCase()})]},e.actorId)),D.map(e=>t.jsxs("button",{type:"button",role:"option","aria-selected":!1,"aria-disabled":"true",disabled:!0,className:"chat-mention-option",children:[t.jsx(M,{member:e,size:18}),f(e),t.jsx("span",{className:"chat-mention-kind",children:"via API — post to reach it"})]},e.actorId)),A.length===0?t.jsx("div",{className:"chat-side-empty",children:"API participants read posts when they poll. Send a channel message instead."}):null]})}):null,v?t.jsx("p",{className:"chat-send-error",role:"alert",children:v}):null,t.jsxs("div",{className:"chat-composer-foot",children:[t.jsxs("span",{className:"chat-composer-tools",children:[t.jsx("button",{type:"button",className:"chat-composer-tool chat-composer-tool--icon",onClick:H,disabled:u,"aria-label":"Mention a member",title:"Mention a member",children:t.jsx(V,{size:14,strokeWidth:2,"aria-hidden":!0})}),j==="channel"?t.jsxs("button",{ref:z,type:"button",className:"chat-composer-tool","data-active":N,"aria-expanded":N,"aria-haspopup":"listbox",disabled:u,onClick:()=>C(e=>!e),children:[m?"Change agent":"Ask an agent",t.jsx(G,{size:12,strokeWidth:2,"aria-hidden":!0})]}):null]}),t.jsxs("span",{className:"chat-composer-right",children:[t.jsx("span",{className:"chat-enter",children:j==="thread"?"↵ send":"↵ send · ⇧↵ newline"}),t.jsx("button",{type:"button",className:"chat-composer-send",onClick:k,disabled:!U,"aria-label":u?"Sending…":q,title:u?"Sending…":q,children:u?t.jsx(J,{size:15,strokeWidth:2.2,className:"chat-composer-spin","aria-hidden":!0}):t.jsx(Z,{size:16,strokeWidth:2.4,"aria-hidden":!0})})]})]})]})}export{ue as ChannelComposer,T as mentionInsertion};
@@ -1 +0,0 @@
1
- import{r as c,j as e}from"./index-DReVb7jZ.js";import{MemberCoin as D}from"./ChatAvatar-DKBsbOqk.js";import{SpaceSwitcher as B}from"./SpaceSwitcher-BfeIf-ad.js";import{c as z}from"./chat-space-model-B6Jg2CY4.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";const G=[{value:"dark",label:"Dark"},{value:"light",label:"Light"},{value:"system",label:"System"}];function H(s,r,i){if(!s)return;const l=Array.from(s.querySelectorAll("[data-side-row]")),u=l.indexOf(r);if(u<0)return;l[(u+i+l.length)%l.length]?.focus()}function U(s){return s.replace(/^#/u,"").trim().slice(0,1).toLowerCase()||"?"}function _({viewerName:s,viewerIsHost:r,railed:i,themePreference:l,onOpenProfile:u,onThemePreference:y,onSignOut:m}){const[o,d]=c.useState(!1),n=c.useRef(null);c.useEffect(()=>{if(!o)return;n.current?.querySelector(".chat-you-menu button")?.focus();const t=v=>{const p=v.target;p instanceof Node&&n.current?.contains(p)||d(!1)};return document.addEventListener("pointerdown",t),()=>document.removeEventListener("pointerdown",t)},[o]);const f=c.useCallback(t=>{d(!1),t()},[]);return e.jsxs("div",{className:"chat-sidebar-identity",ref:n,onKeyDown:t=>{t.key==="Escape"&&o&&(t.preventDefault(),t.stopPropagation(),d(!1),n.current?.querySelector(".chat-you")?.focus())},children:[o?e.jsxs("div",{className:"chat-you-menu",role:"group","aria-label":`${s} menu`,children:[e.jsxs("div",{className:"chat-you-menu-head",children:[e.jsx(D,{name:s,size:28,title:s}),e.jsx("span",{className:"chat-you-menu-name",children:s})]}),e.jsx("div",{className:"chat-you-menu-rule"}),u?e.jsx("button",{type:"button",className:"chat-you-menu-item",onClick:()=>f(u),children:"Your member card"}):null,e.jsxs("div",{className:"chat-you-menu-group",role:"group","aria-label":"Appearance",children:[e.jsx("span",{className:"label-sm",children:"Appearance"}),e.jsx("div",{className:"chat-you-themes",children:G.map(t=>e.jsx("button",{type:"button",className:"btn btn--sm","aria-pressed":l===t.value,"data-active":l===t.value,onClick:()=>y(t.value),children:t.label},t.value))})]}),e.jsx("div",{className:"chat-you-menu-rule"}),e.jsx("button",{type:"button",className:"chat-you-menu-item",onClick:()=>f(m),children:"Sign out"})]}):null,e.jsxs("button",{type:"button",className:"chat-you","aria-expanded":o,"aria-label":i?`${s} — account menu`:void 0,onClick:()=>d(t=>!t),children:[e.jsx(D,{name:s,size:24,title:s}),i?null:e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"chat-you-who",children:[e.jsx("span",{className:"chat-you-name",children:s}),r?e.jsx("span",{className:"label-sm chat-you-role",children:"Host"}):null]}),e.jsx("span",{className:"chat-you-caret","aria-hidden":"true",children:o?"⌄":"⌃"})]})]})]})}function ee({channels:s,directs:r,spaces:i,activeSpace:l,selectedId:u,addressedChannelIds:y,canCreate:m,viewerName:o,viewerIsHost:d,railed:n,themePreference:f,onSelect:t,onSelectSpace:v,onCreate:p,onCreateSpace:I,onInvite:E,onExpandRail:A,onOpenProfile:M,onThemePreference:$,onSignOut:Y}){const j=c.useRef(null),[T,N]=c.useState(!1),[g,F]=c.useState(""),[w,L]=c.useState(""),[C,K]=c.useState(!1),S=c.useCallback(async()=>{const a=g.trim();if(!(!a||C)){K(!0);try{await p({title:a,topic:w.trim()}),F(""),L(""),N(!1)}finally{K(!1)}}},[C,p,g,w]),k=(a,b)=>{const q=y.has(a.id),x=b?a.title.replace(/^#/u,""):a.title;return e.jsxs("button",{type:"button","data-side-row":!0,className:n?"chat-rail-row":"chat-side-row","aria-label":b?z(a.title):x,"aria-current":a.id===u,"data-addressed":q,title:n?b?z(a.title):x:void 0,onClick:()=>t(a.id),onKeyDown:h=>{h.key==="ArrowDown"?(h.preventDefault(),H(j.current,h.currentTarget,1)):h.key==="ArrowUp"&&(h.preventDefault(),H(j.current,h.currentTarget,-1))},children:[n?b?e.jsxs("span",{className:"chat-rail-glyph",children:[e.jsx("span",{className:"chat-hash",children:"#"}),U(a.title)]}):e.jsx(D,{name:x,size:22,title:x}):e.jsxs(e.Fragment,{children:[b?e.jsx("span",{className:"chat-hash",children:"#"}):null,e.jsx("span",{className:"chat-row-name",children:x})]}),q?e.jsx("span",{className:"dot dot--accent dot--sm","aria-label":"Addressed to you, unanswered"}):null]},a.id)},O=i.length>0?e.jsx(B,{spaces:i,activeSlug:l,canCreate:m,railed:n,onSelect:v,onCreate:I,onExpandRail:A}):null,R=e.jsx(_,{viewerName:o,viewerIsHost:d,railed:n,themePreference:f,onOpenProfile:M,onThemePreference:$,onSignOut:Y});return n?e.jsxs("nav",{className:"chat-sidebar","data-railed":"true",ref:j,"aria-label":"Channels and direct messages",onDoubleClick:a=>{a.target.closest("button, a, [role='button']")||A()},children:[O,e.jsxs("div",{className:"chat-side-list",children:[s.map(a=>k(a,!0)),r.length>0?e.jsx("div",{className:"chat-rail-rule"}):null,r.map(a=>k(a,!1))]}),e.jsx("div",{className:"chat-sidebar-foot",children:e.jsx("button",{type:"button",className:"chat-rail-row","aria-label":"Invite someone",onClick:E,children:e.jsx("span",{className:"chat-rail-glyph",children:"+"})})}),R]}):e.jsxs("nav",{className:"chat-sidebar",ref:j,"aria-label":"Channels and direct messages",children:[O,e.jsxs("div",{className:"chat-side-list",children:[e.jsxs("div",{className:"chat-side-section",children:[e.jsx("span",{className:"label-md",children:"Channels"}),m?e.jsx("button",{type:"button",className:"chat-side-add","aria-label":"Create a channel","aria-expanded":T,onClick:()=>N(a=>!a),children:"+"}):null]}),T?e.jsxs("div",{className:"chat-create-form",children:[e.jsx("input",{className:"chat-input",value:g,autoFocus:!0,placeholder:"channel-name","aria-label":"Channel name",onChange:a=>F(a.target.value),onKeyDown:a=>{a.key==="Enter"?(a.preventDefault(),S()):a.key==="Escape"&&(a.preventDefault(),N(!1))}}),e.jsx("input",{className:"chat-input",value:w,placeholder:"Topic (optional)","aria-label":"Channel topic",onChange:a=>L(a.target.value),onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),S())}}),e.jsxs("div",{className:"chat-create-actions",children:[e.jsx("button",{type:"button",className:"btn btn--sm",disabled:C||!g.trim(),onClick:()=>{S()},children:C?"Creating…":"Create"}),e.jsx("button",{type:"button",className:"btn btn--ghost btn--sm",onClick:()=>N(!1),children:"Cancel"})]})]}):null,s.length===0?e.jsx("p",{className:"chat-side-empty",children:m?`No channels in ${i.find(a=>a.slug===l)?.title??"this space"} yet. Create one to get started.`:"You are not in any channel yet. Open the invitation you were sent."}):s.map(a=>k(a,!0)),r.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"chat-side-section",children:e.jsx("span",{className:"label-md",children:"Direct messages"})}),r.map(a=>k(a,!1))]}):null]}),e.jsx("div",{className:"chat-sidebar-foot",children:e.jsx("button",{type:"button",className:"btn btn--ghost btn--sm",onClick:E,children:"+ Invite"})}),R]})}export{ee as ChannelSidebar};
@@ -1 +0,0 @@
1
- import{j as e,r as d}from"./index-DReVb7jZ.js";import{c as f}from"./clipboard-e3fSpeo7.js";import{MemberAvatar as x}from"./ChatAvatar-DKBsbOqk.js";import{m as N,b as j,o as v,t as b,p as T,q as k,s as w,e as S}from"./chat-space-model-B6Jg2CY4.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";function O({value:t,label:s,className:a="btn btn--sm",copiedLabel:n="Copied",onCopyFailed:c}){const[m,l]=d.useState(!1),[h,u]=d.useState(!1),i=d.useRef(null);d.useEffect(()=>()=>{i.current&&clearTimeout(i.current)},[]);const p=d.useCallback(()=>{const r=o=>{l(o),u(!o),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{l(!1),u(!1)},1500)};f(t).then(o=>{r(o),o||c?.()}).catch(()=>{r(!1),c?.()})},[t,c]);return e.jsx("button",{type:"button",className:a,onClick:p,"aria-live":"polite",children:h?"Copy failed — select the text":m?n:s})}function g({request:t,target:s,withTarget:a}){const n=k(t,s?{label:j(s),reception:s.reception}:null);return e.jsxs("div",{className:"chat-ask-card","data-tone":n.tone,children:[e.jsx("span",{className:"label-sm",children:"Tracked request"}),e.jsx("span",{className:"chip chip--sm chip--mono chip--ghost chat-ask-chip","data-tone":n.tone,"aria-label":n.ariaLabel,children:a?n.textWithTarget:n.text})]})}function A({message:t,fallbackLabels:s}){const a=T(t,s??[]);return e.jsx("div",{className:"chat-turn-body",children:a.map((n,c)=>n.kind==="mention"?e.jsx("span",{className:"chat-mention",children:n.text},c):e.jsx("span",{children:n.text},c))})}function z({message:t,members:s,nowMs:a,request:n,replyCount:c,lastReplyAt:m,onOpenThread:l,onOpenMember:h,withTargetOnChip:u=!0}){const i=N(s,t.actorId),p=n?s.get(n.targetActorId)??null:null,r=j(i);return e.jsxs("article",{className:"chat-turn",children:[h?e.jsx("button",{type:"button",onClick:()=>h(i.actorId),"aria-label":`Open ${r}'s member card`,children:e.jsx(x,{member:i,size:32})}):e.jsx(x,{member:i,size:32}),e.jsxs("div",{children:[e.jsxs("div",{className:"chat-turn-meta",children:[e.jsx("span",{className:"chat-who",children:r}),e.jsx("time",{className:"chat-when",dateTime:new Date(t.createdAt).toISOString(),children:v(t.createdAt)})]}),e.jsx(A,{message:t}),n?e.jsx(g,{request:n,target:p,withTarget:u}):null,l?e.jsx("button",{type:"button",className:"chat-thread-stub","data-empty":c&&c>0?void 0:"true",onClick:l,"aria-label":c&&c>0?`Open thread, ${b(c,m??null,a)}`:`Reply in thread to ${r}`,children:c&&c>0?`⌵ ${b(c,m??null,a)}`:"⌵ Reply in thread"}):null]})]})}function B({member:t,nowMs:s}){const a=w(t,s);return a?e.jsxs("div",{className:"chat-conn","aria-label":a.ariaLabel,children:[e.jsxs("span",{className:"chat-conn-state",children:[a.showDot?e.jsx("span",{className:"dot dot--neutral","aria-hidden":"true"}):null,a.summary]}),e.jsx("span",{className:"chat-conn-detail",children:a.detail}),a.routeNote?e.jsx("span",{className:"chat-conn-detail",children:a.routeNote}):null,a.evidence?e.jsx("span",{className:"chat-conn-evidence",children:a.evidence}):null]}):null}function C({label:t,children:s}){return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"chat-k",children:t}),e.jsx("span",{className:"chat-v",children:s})]})}function F({at:t,nowMs:s}){return e.jsx("time",{className:"chat-when",dateTime:new Date(t).toISOString(),children:S(t,s)})}export{O as CopyAction,C as Field,A as MessageBody,B as ReceptionBlock,F as TimeAgo,g as TrackedAskCard,z as Turn};
@@ -1 +0,0 @@
1
- import{j as e}from"./index-DReVb7jZ.js";import{MemberAvatar as T}from"./ChatAvatar-DKBsbOqk.js";import{ChannelComposer as D}from"./ChannelComposer-BVItWlEz.js";import{Turn as I,Field as j,CopyAction as K,ReceptionBlock as q}from"./ChatBits-CLJ71hTY.js";import{c as w,m as W,a as f,b as x,d as G,e as J,f as Q,g as U,h as V,j as X,k as Y,l as Z}from"./chat-space-model-B6Jg2CY4.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";import"./at-sign-DM7xeppo.js";import"./createLucideIcon-ChvMq-zl.js";import"./chevron-down-CDzRQQGl.js";import"./loader-circle-DNUsuPWz.js";import"./clipboard-e3fSpeo7.js";function _(s){return s.length>12?`…${s.slice(-8)}`:s}function E({member:s,viewerActorId:i,onOpen:c}){const n=U(s,i),o=s.reception.state==="disconnected"||s.reception.state==="unavailable";return e.jsxs("button",{type:"button",className:"chat-member-row",onClick:()=>c(s.actorId),children:[e.jsx(T,{member:s,size:24}),e.jsx("span",{className:"chat-member-name",children:x(s)}),n?e.jsx("span",{className:"chat-member-fact","data-stranded":o&&n!=="you",children:n}):null]})}function ee({invite:s,nowMs:i,onRevoke:c,busy:n,canRevoke:o}){const d=V(s),p=s.invitee?.displayName?.trim(),l=X(s.expiresAt,i);return e.jsxs("div",{className:"chat-invite-row",children:[e.jsx("span",{className:"chat-token-hint",children:Y(s.tokenHint)}),e.jsx("span",{children:[Z(d),p?`for ${p}`:null,l].filter(Boolean).join(" · ")}),o?e.jsx("button",{type:"button",className:"chat-invite-revoke",disabled:n,onClick:()=>c(s.id),children:"Revoke"}):s.state==="active"?e.jsx("span",{}):e.jsx("span",{className:"chat-invite-revoke","aria-hidden":"false",children:s.state})]})}function je({view:s,channel:i,members:c,membersById:n,invites:o,inviteError:d,revokingInviteId:p,viewerActorId:l,viewerIsOperator:R,nowMs:h,threadRoot:b,threadReplies:k,threadRequest:A,threadDraft:O,onThreadDraftChange:F,onSendThreadReply:L,threadSending:M,threadError:P,onClose:u,onBack:$,onOpenMember:B,onMention:H,onRevokeInvite:S,onInvite:g,overlay:N}){if(s.kind==="none")return null;const y=w(i.title);if(s.kind==="thread")return e.jsxs("aside",{className:"chat-rpanel","data-overlay":N,"aria-label":"Thread",children:[e.jsxs("header",{className:"chat-rpanel-head",children:[e.jsx("span",{className:"chat-rpanel-title",children:"Thread"}),e.jsx("span",{className:"chat-rpanel-scope",children:y}),e.jsx("button",{type:"button",className:"chat-rpanel-close",onClick:u,"aria-label":"Close panel",children:"×"})]}),e.jsxs("div",{className:"chat-rpanel-body",children:[b?e.jsx("div",{className:"chat-anchor-msg",children:e.jsx(I,{message:b,members:n,nowMs:h,request:A,withTargetOnChip:!1})}):e.jsx("p",{className:"chat-feed-notice",children:"This thread's anchor message is no longer in the channel feed."}),k.map(a=>e.jsx(I,{message:a,members:n,nowMs:h},a.id)),k.length===0&&b?e.jsx("p",{className:"chat-feed-notice",children:"No replies yet."}):null,e.jsx("div",{className:"chat-thread-composer",children:e.jsx(D,{members:c,draft:O,onDraftChange:F,askTargetId:null,onAskTargetChange:()=>{},onSend:L,sending:M,error:P,placeholder:"Reply in thread…",variant:"thread"})})]})]});if(s.kind==="member"){const a=W(n,s.actorId),r=f(a),m=a.owner?.displayName?.trim()??null,t=a.reception.attachedSessionId,z=r&&a.owner?.actorId===l;return e.jsxs("aside",{className:"chat-rpanel","data-overlay":N,"aria-label":"Member",children:[e.jsxs("header",{className:"chat-rpanel-head",children:[e.jsx("button",{type:"button",className:"chat-rpanel-back",onClick:$,"aria-label":"Back to members",children:"‹"}),e.jsx("span",{className:"chat-rpanel-title",children:"Member"}),e.jsx("button",{type:"button",className:"chat-rpanel-close",onClick:u,"aria-label":"Close panel",children:"×"})]}),e.jsxs("div",{className:"chat-rpanel-body",children:[e.jsxs("div",{className:"chat-mcard-head",children:[e.jsx(T,{member:a,size:32}),e.jsxs("div",{children:[e.jsx("div",{className:"chat-mcard-name",children:x(a)}),e.jsx("div",{className:"chat-mcard-sub",children:[r?"agent":a.kind==="unknown"?"former member":"person",G(a)?"via API":null,m?`owned by ${m}`:null,a.actorId===l?"you":null].filter(Boolean).join(" · ")})]})]}),a.harness||a.projectRoot||t||a.nodeId?e.jsxs("div",{className:"chat-psec chat-kv",children:[a.harness?e.jsx(j,{label:"Harness",children:[a.harness,a.model].filter(Boolean).join(" · ")}):null,a.projectRoot?e.jsx(j,{label:"Project",children:a.projectRoot}):null,t?e.jsxs(j,{label:"Session",children:[_(t),e.jsx(K,{value:t,label:"copy",className:"chat-copy-inline",copiedLabel:"ok"})]}):null,a.nodeId?e.jsx(j,{label:"Node",children:a.nodeId}):null]}):null,r?e.jsxs("div",{className:"chat-psec",children:[e.jsx(q,{member:a,nowMs:h}),a.reception.redeemedAt?e.jsx("span",{className:"chat-conn-evidence",children:`joined ${J(a.reception.redeemedAt,h)}`}):null]}):null,e.jsxs("div",{className:"chat-psec",style:{display:"flex",gap:"var(--space-sm)",flexWrap:"wrap"},children:[e.jsx("button",{type:"button",className:"btn btn--sm",onClick:()=>H(a.actorId),children:"Mention"}),z||a.actorId===l?e.jsx("button",{type:"button",className:"btn btn--sm",onClick:g,children:"Copy agent invitation"}):null]})]})]})}const v=[...c].sort((a,r)=>{const m=Number(f(a)),t=Number(f(r));return m!==t?m-t:x(a).localeCompare(x(r))}),C=o.filter(a=>a.state==="active");return e.jsxs("aside",{className:"chat-rpanel","data-overlay":N,"aria-label":"Members",children:[e.jsxs("header",{className:"chat-rpanel-head",children:[e.jsx("span",{className:"chat-rpanel-title",children:"Members"}),e.jsx("span",{className:"chat-rpanel-scope",children:y}),e.jsx("button",{type:"button",className:"chat-rpanel-close",onClick:u,"aria-label":"Close panel",children:"×"})]}),e.jsxs("div",{className:"chat-rpanel-body",children:[e.jsxs("div",{className:"chat-psec",children:[e.jsx("span",{className:"label-sm",children:"In this channel"}),v.length===0?e.jsx("p",{className:"chat-feed-notice",children:"The roster is empty."}):v.map(a=>e.jsx(E,{member:a,viewerActorId:l,onOpen:B},a.actorId))]}),e.jsxs("div",{className:"chat-psec",children:[e.jsx("span",{className:"label-sm",children:"Invited"}),d?e.jsx("p",{className:"chat-sheet-error",children:d}):null,C.length===0&&!d?e.jsx("p",{className:"chat-feed-notice",children:"No outstanding invitations."}):C.map(a=>e.jsx(ee,{invite:a,nowMs:h,onRevoke:S,busy:p===a.id,canRevoke:Q(a,{actorId:l,isOperator:R})},a.id)),e.jsx("div",{style:{marginTop:"var(--space-sm)"},children:e.jsx("button",{type:"button",className:"btn btn--sm",onClick:g,children:"Invite"})})]})]})]})}export{je as ChatRightPanel,E as MemberRow};
@@ -1 +0,0 @@
1
- import{r as t,j as s}from"./index-DReVb7jZ.js";import{c as E,C as W,D as X}from"./chat-api-BPVC0asu.js";import{R as mt}from"./RailToggle-BwmY70B8.js";import{useScoutStandaloneAppearance as ft,ChatSpaceTheme as Ce}from"./ChatSpaceTheme-D37Jk7bl.js";import{ChannelSidebar as pt}from"./ChannelSidebar-B-2spawY.js";import{ChannelComposer as gt}from"./ChannelComposer-BVItWlEz.js";import{ChatRightPanel as wt}from"./ChatRightPanel-pKQtkAgl.js";import{Facepile as bt}from"./ChatAvatar-DKBsbOqk.js";import{Turn as vt}from"./ChatBits-CLJ71hTY.js";import{InviteSheet as yt}from"./InviteSheet--5Zjct25.js";import{JumpPalette as St}from"./JumpPalette-BmiSOEmp.js";import{u as Ct,v as It,w as Et,x as kt,b as xt,y as Tt,z as Nt,c as De,B as jt,F as Rt,R as Mt}from"./chat-space-model-B6Jg2CY4.js";import"./api-DSqpVKC7.js";import"./Provider-CNZluAZb.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./SpaceSwitcher-BfeIf-ad.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./at-sign-DM7xeppo.js";import"./clipboard-e3fSpeo7.js";import"./users-RLK3P5U4.js";import"./bot-BhAVbcCA.js";import"./monitor-C7_cHlkC.js";function Fe(){let r=0;return{begin(){const i=r;return()=>i===r},reset(){r+=1}}}const Lt=["ready","channel.changed"],At=350,Pt=2e3,Ot=3e4,_t=3;function Dt(r,i){const d=`/api/channels/${encodeURIComponent(r)}/events`;return i&&i!=="home"?`${d}?space=${encodeURIComponent(i)}`:d}const Ft={now:()=>Date.now(),setTimer:(r,i)=>setTimeout(r,i),clearTimer:r=>clearTimeout(r)};function Ut(r){const i=globalThis.EventSource;return typeof i!="function"?null:new i(r,{withCredentials:!0})}function $t(r){const{channelId:i,space:d,onInvalidate:l,createEventSource:u=Ut,onStatus:k,minRefreshMs:T=At,clock:m=Ft}=r;let f=!1,a=null,v=null,o=null,N=!1,S=!1,M=Number.NEGATIVE_INFINITY,b=!1,x=0,V=0;const C=p=>{f||k?.(p)},ie=()=>{v!==null&&(m.clearTimer(v),v=null)},F=()=>{o!==null&&(m.clearTimer(o),o=null)},z=()=>{v=null,!f&&(N=!0,S=!1,M=m.now(),Promise.resolve().then(()=>f?void 0:l()).catch(()=>{}).then(()=>{N=!1,S&&!f&&Y()}))},Y=()=>{if(f)return;if(N){S=!0;return}if(v!==null)return;const p=Math.max(0,T-(m.now()-M));if(p===0){z();return}v=m.setTimer(z,p)},U=()=>{const y=Math.min(Pt*2**Math.max(0,(b?V:x)-1),Ot);C("retrying"),F(),o=m.setTimer(()=>{o=null,L()},y)};function L(){if(f||a!==null)return;C("connecting");let p=null;try{p=u(Dt(i,d))}catch{p=null}if(!p){C("unsupported");return}a=p;const y=p,q=()=>!f&&a===y;y.addEventListener("open",()=>{q()&&(b=!0,x=0,V=0,C("live"))});for(const G of Lt)y.addEventListener(G,()=>{q()&&Y()});y.addEventListener("error",()=>{if(q()){if(a=null,y.close(),b){V+=1,U();return}if(x+=1,x>=_t){C("unavailable");return}U()}})}return L(),()=>{if(f)return;f=!0,ie(),F(),S=!1;const p=a;a=null,p?.close()}}const ke="channel",xe="space",Be="openscout.chat.rail";function Bt(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(Be)==="1"}catch{return!1}}function Ht(r){if(!(typeof window>"u"))try{window.localStorage.setItem(Be,r?"1":"0")}catch{}}function Ie(){return typeof window>"u"?null:new URLSearchParams(window.location.search).get(ke)?.trim()||null}function Ue(){return typeof window>"u"?X:new URLSearchParams(window.location.search).get(xe)?.trim()||X}function ce(r,i){if(typeof window>"u")return;const d=new URL(window.location.href);r.channelId?d.searchParams.set(ke,r.channelId):d.searchParams.delete(ke),r.space&&r.space!==X?d.searchParams.set(xe,r.space):d.searchParams.delete(xe);const l=`${d.pathname}${d.search}`;i?window.history.replaceState(null,"",l):window.history.pushState(null,"",l)}function $e(r){const[i,d]=t.useState(()=>typeof window<"u"&&window.matchMedia?window.matchMedia(r).matches:!1);return t.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const l=window.matchMedia(r),u=()=>d(l.matches);return u(),l.addEventListener("change",u),()=>l.removeEventListener("change",u)},[r]),i}function Ee(r,i,d){const l=t.useRef(r);l.current=r,t.useEffect(()=>{if(!d)return;let u=!1,k=!1;const T=()=>{u||k||typeof document<"u"&&document.hidden||(k=!0,l.current().finally(()=>{k=!1}))},m=setInterval(T,i),f=()=>{typeof document<"u"&&!document.hidden&&T()};return document.addEventListener("visibilitychange",f),()=>{u=!0,clearInterval(m),document.removeEventListener("visibilitychange",f)}},[d,i])}function Kt(r,i,d,l){const u=t.useRef(d);u.current=d,t.useEffect(()=>{if(!(!i||!r))return $t({channelId:r,space:l,onInvalidate:()=>u.current()})},[r,i,l])}function Zn(){const{theme:r,preference:i,setPreference:d}=ft(),[l,u]=t.useState("loading"),[k,T]=t.useState(null),[m,f]=t.useState(null),[a,v]=t.useState(()=>Ie()),[o,N]=t.useState(Ue),[S,M]=t.useState(null),[b,x]=t.useState([]),[V,C]=t.useState([]),[ie,F]=t.useState(null),[z,Y]=t.useState(null),[U,L]=t.useState(null),[p,y]=t.useState(!1),[q,G]=t.useState({}),[He,Te]=t.useState({}),[Ke,Ne]=t.useState({}),[$,A]=t.useState({kind:"none"}),[le,Z]=t.useState(!1),[de,ee]=t.useState(!1),[ue,je]=t.useState(!1),[Ve,Re]=t.useState(null),[he,Me]=t.useState(!1),[Ye,Le]=t.useState(null),[te,qe]=t.useState(()=>Date.now()),[Ge,P]=t.useState(()=>Ie()?"channel":"list"),[Qe,Je]=t.useState(Bt),me=t.useRef(null),Ae=t.useRef(null),[j]=t.useState(Fe),[fe]=t.useState(Fe),Pe=t.useRef(o);Pe.current!==o&&(Pe.current=o,fe.reset());const pe=$e("(max-width: 899px)"),ge=$e("(max-width: 1199px)"),B=t.useCallback(async e=>{const n=fe.begin();try{const c=await E.bootstrap({recoverSession:!new URLSearchParams(window.location.search).has("signedOut"),space:o});if(!n())return;f(c),c.space&&c.space!==o&&N(c.space),u("ready"),T(null)}catch(c){if(!n())return;if(c instanceof W&&c.isUnauthenticated){u("gate"),T(c.message);return}e?(u("error"),T(c instanceof Error?c.message:"Scout Chat could not be reached.")):y(!0)}},[o,fe]);t.useEffect(()=>{B(!0)},[B]),Ee(()=>B(!1),jt,l==="ready");const I=t.useMemo(()=>Ct((m?.channels??[]).filter(e=>e.kind==="channel")),[m]),R=t.useMemo(()=>(m?.channels??[]).filter(e=>e.kind==="direct"||e.kind==="group_direct"),[m]),Oe=t.useMemo(()=>new Set([...I,...R].map(e=>e.id)),[I,R]),We=t.useMemo(()=>m?.spaces?.length?m.spaces:[{slug:o,title:o===X?"Home":o,conversationId:null,isDefault:o===X,channelCount:I.length}],[m,I.length,o]);t.useEffect(()=>{if(l!=="ready"||a&&Oe.has(a))return;const e=I[0]?.id??R[0]?.id??null;e!==a&&(v(e),ce({channelId:e,space:o},!0))},[a,I,R,l,Oe,o]),t.useEffect(()=>{const e=()=>{const n=Ie();v(n),N(Ue()),A({kind:"none"}),P(n?"channel":"list")};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]);const g=t.useMemo(()=>[...I,...R].find(e=>e.id===a)??null,[I,a,R]),H=t.useCallback(async()=>{if(!a)return;const e=j.begin();try{const n=await E.feed(a,o);if(!e())return;M(n),L(null),y(!1)}catch(n){if(!e())return;if(n instanceof W&&n.isUnauthenticated){L(n.message);return}y(!0)}},[a,j,o]),Q=t.useCallback(async()=>{if(!a)return;const e=j.begin();try{const n=await E.members(a,o);if(!e())return;x(n.members??[])}catch{if(!e())return;y(!0)}},[a,j,o]),J=t.useCallback(async()=>{if(!a)return;const e=j.begin();try{const n=await E.invites(a,o);if(!e())return;C(n.invites??[]),F(null)}catch(n){if(!e())return;C([]),F(n instanceof W&&n.isUnauthenticated?"Only members of this channel can manage its invitations.":n instanceof Error?n.message:"Invitations could not be read.")}},[a,j,o]);t.useEffect(()=>{j.reset(),M(null),x([]),C([]),L(null),A({kind:"none"}),a&&(H(),Q(),J())},[a,H,J,Q,j]),Ee(H,Rt,l==="ready"&&!!a),Ee(Q,Mt,l==="ready"&&!!a),Kt(a,l==="ready",H,o),t.useEffect(()=>{const e=setInterval(()=>qe(Date.now()),3e4);return()=>clearInterval(e)},[]);const ne=t.useMemo(()=>{const e=new Map;for(const n of b)e.set(n.actorId,n);return e},[b]),O=t.useMemo(()=>It({messages:S?.messages??[],requests:S?.requests??[],nowMs:te}),[S,te]),h=m?.viewer??null,Xe=t.useMemo(()=>{const e=new Set;return!a||!h||Et({projection:O,viewerActorId:h.actorId,members:b})&&e.add(a),e},[a,b,O,h]);t.useEffect(()=>{const e=Ae.current;if(!e)return;e.scrollHeight-e.scrollTop-e.clientHeight<160&&(e.scrollTop=e.scrollHeight)},[O.lastMessageAt]);const we=a?q[a]??"":"",be=a?Ke[a]??null:null,ze=t.useCallback(e=>{a&&G(n=>({...n,[a]:e}))},[a]),ve=t.useCallback(e=>{a&&Ne(n=>({...n,[a]:e}))},[a]),ae=t.useCallback(async e=>{if(!a)return!1;const n=e.body.trim();if(!n)return!1;const c=me.current,D=c&&c.channelId===a&&c.body===n&&c.replyToMessageId===e.replyToMessageId&&c.targetActorId===e.targetActorId?c.requestId:kt();return me.current={channelId:a,body:n,replyToMessageId:e.replyToMessageId,targetActorId:e.targetActorId,requestId:D},e.targetActorId?await E.postAsk(a,{requestId:D,body:n,targetActorId:e.targetActorId,space:o,...e.replyToMessageId?{replyToMessageId:e.replyToMessageId}:{}}):await E.postMessage(a,{requestId:D,body:n,space:o,...e.replyToMessageId?{replyToMessageId:e.replyToMessageId}:{}}),me.current=null,await H(),Q(),!0},[a,H,Q,o]),Ze=t.useCallback(()=>{!a||ue||(Re(null),je(!0),ae({body:we,replyToMessageId:null,targetActorId:be}).then(e=>{e&&(G(n=>({...n,[a]:""})),Ne(n=>({...n,[a]:null})))}).catch(e=>{Re(e instanceof W?e.message:"That did not send. The text is still here — try again.")}).finally(()=>je(!1)))},[be,a,we,ae,ue]),w=$.kind==="thread"?$.rootMessageId:null,ye=w?He[w]??"":"",et=t.useCallback(()=>{!w||he||(Le(null),Me(!0),ae({body:ye,replyToMessageId:w,targetActorId:null}).then(e=>{e&&Te(n=>({...n,[w]:""}))}).catch(e=>{Le(e instanceof W?e.message:"That reply did not send.")}).finally(()=>Me(!1)))},[ae,ye,w,he]),se=t.useCallback(e=>{v(e),ce({channelId:e,space:o},!1),A({kind:"none"}),P("channel")},[o]),tt=t.useCallback(e=>{e!==o&&(N(e),v(null),f(null),M(null),x([]),C([]),A({kind:"none"}),P("list"),ce({channelId:null,space:e},!1))},[o]),_=t.useCallback(e=>{A(e),P(e.kind==="none"?"channel":"panel")},[]),K=t.useCallback(()=>{A({kind:"none"}),P("channel")},[]),re=t.useCallback(()=>{Je(e=>(Ht(!e),!e))},[]),nt=t.useCallback(()=>{(async()=>{try{await E.signOut();const e=new URL(window.location.href);e.searchParams.set("signedOut","1"),window.location.assign(e.pathname+e.search)}catch(e){L(e instanceof Error?e.message:"Could not sign out. Try again.")}})()},[]),at=t.useCallback(async e=>{const n=await E.createChannel({title:e.title,...e.topic?{topic:e.topic}:{},space:o});await B(!1),se(n.conversation.id)},[B,se,o]),st=t.useCallback(async e=>{const n=await E.createSpace({title:e.title,...e.channel?{channel:e.channel}:{}});N(n.space.slug),f(null),M(null),x([]),C([]),v(n.channel?.id??null),A({kind:"none"}),P(n.channel?"channel":"list"),ce({channelId:n.channel?.id??null,space:n.space.slug},!1)},[]),rt=t.useCallback(async e=>{if(!(!a||!h)){Y(e);try{await E.revokeInvite(a,e,h.actorId,o),await J()}catch(n){F(n instanceof Error?n.message:"That invitation could not be revoked.")}finally{Y(null)}}},[a,J,o,h]),ot=t.useCallback(e=>{const n=ne.get(e);if(!n||!a)return;const c=xt(n);G(oe=>{const D=oe[a]??"",ht=D.length===0||D.endsWith(" ")?"":" ";return{...oe,[a]:`${D}${ht}@${c} `}}),Tt(n)&&ve(e),K()},[a,K,ne,ve]);if(t.useEffect(()=>{const e=n=>{if((n.metaKey||n.ctrlKey)&&n.key.toLowerCase()==="k"){n.preventDefault(),ee(c=>!c);return}if((n.metaKey||n.ctrlKey)&&n.key.toLowerCase()==="b"){const c=document.activeElement;if(c instanceof HTMLElement&&(c.tagName==="TEXTAREA"||c.tagName==="INPUT"||c.isContentEditable))return;n.preventDefault(),re();return}if(n.key==="Escape"){if(de||le)return;if($.kind!=="none"){n.preventDefault(),K();return}const c=document.activeElement;c instanceof HTMLElement&&c.tagName==="TEXTAREA"&&c.blur()}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[K,$.kind,de,le,re]),l==="loading")return s.jsx(Ce,{theme:r,className:"chat-centered",children:s.jsx("p",{className:"chat-card-meta",children:"Loading Scout Chat…"})});if(l==="gate"||l==="error"){const e=l==="gate";return s.jsx(Ce,{theme:r,className:"chat-centered",children:s.jsxs("div",{className:"chat-card",children:[s.jsx("span",{className:"chat-card-eyebrow",children:"Scout Chat"}),s.jsx("h1",{children:e?"You are not signed in":"Scout Chat is unavailable"}),s.jsx("p",{children:e?"Open the invitation you were sent to join a channel, or sign in as the host of this Scout.":k??"The chat service did not answer."}),e?s.jsxs(s.Fragment,{children:[s.jsx("a",{className:"btn btn--accent",href:`/login?next=${encodeURIComponent(window.location.pathname+window.location.search)}`,children:"Sign in as the host"}),s.jsx("p",{className:"chat-card-note",children:"Your invitation link signs you into the channel shared with you."})]}):s.jsx("button",{type:"button",className:"btn",onClick:()=>{B(!0)},children:"Try again"}),e&&k?s.jsx("p",{className:"chat-card-note",children:k}):null]})})}const ct=h?.displayName??"you",it=Nt(b),Se=Qe&&!pe,_e=$.kind!=="none",lt=w?(S?.messages??[]).find(e=>e.id===w)??null:null,dt=w?O.repliesByRoot.get(w)??[]:[],ut=w?O.requestsByMessage.get(w)??null:null;return s.jsxs(Ce,{theme:r,className:"chat-space",compactView:Ge,railed:Se,children:[s.jsxs("header",{className:"chat-topbar",children:[s.jsxs("div",{className:"chat-topbar-band",children:[s.jsxs("div",{className:"chat-space-name",children:[s.jsx("b",{children:"Scout Chat"}),g?s.jsx("span",{children:g.authorityNodeId}):null]}),pe?null:s.jsx(mt,{side:"left",collapsed:Se,label:"Sidebar",onToggle:re,className:"chat-band-toggle"})]}),s.jsxs("button",{type:"button",className:"chat-jump",onClick:()=>ee(!0),children:["⌕ Jump to a channel or person",s.jsx("span",{className:"chat-kbd",children:"⌘K"})]})]}),s.jsxs("div",{className:"chat-body","data-panel":_e&&!ge?"open":"closed",children:[s.jsx(pt,{channels:I,directs:R,spaces:We,activeSpace:o,selectedId:a,addressedChannelIds:Xe,canCreate:h?.isOperator===!0,viewerName:ct,viewerIsHost:h?.isOperator===!0,railed:Se,themePreference:i,onSelect:se,onSelectSpace:tt,onCreate:at,onCreateSpace:st,onInvite:()=>Z(!0),onExpandRail:re,onOpenProfile:g&&h?()=>_({kind:"member",actorId:h.actorId}):null,onThemePreference:d,onSignOut:nt}),g?s.jsxs("main",{className:"chat-channel","aria-label":De(g.title),children:[s.jsxs("header",{className:"chat-chan-head",children:[s.jsx("button",{type:"button",className:"chat-compact-back",onClick:()=>P("list"),"aria-label":"Back to channels",children:"‹"}),s.jsxs("span",{className:"chat-chan-name",children:[s.jsx("span",{className:"chat-hash",children:"#"}),g.title.replace(/^#/u,"")]}),s.jsx("span",{className:`chat-topic${g.topic?"":" chat-topic--empty"}`,children:g.topic??"No topic set"}),s.jsx(bt,{members:b,countLabel:it,onOpen:()=>_({kind:"members"})}),s.jsx("button",{type:"button",className:"btn btn--sm",onClick:()=>Z(!0),children:"Invite"})]}),s.jsxs("div",{className:"chat-feed",ref:Ae,role:"log","aria-label":"Channel messages",children:[p?s.jsx("p",{className:"chat-feed-notice",children:"Reconnecting — this is the last reading that came back."}):null,U?s.jsx("p",{className:"chat-feed-notice","data-tone":"error",children:U}):null,!S&&!U?s.jsx("p",{className:"chat-feed-notice",children:"Loading messages…"}):null,S&&O.entries.length===0?s.jsx("p",{className:"chat-feed-empty",children:"Nothing has been posted here yet. Say something, or invite the people and agents who belong in this room."}):null,O.entries.map(e=>e.kind==="day"?s.jsx("div",{className:"chat-day",children:s.jsx("span",{className:"label-sm",children:e.label})},e.id):e.kind==="status"?s.jsx("div",{className:"chat-status-line",children:e.message.body},e.id):e.kind==="status-fold"?s.jsx(Vt,{label:e.label,messages:e.messages},e.id):s.jsx(vt,{message:e.message,members:ne,nowMs:te,request:e.request,replyCount:e.replyCount,lastReplyAt:e.lastReplyAt,onOpenThread:()=>_({kind:"thread",rootMessageId:e.message.id}),onOpenMember:n=>_({kind:"member",actorId:n})},e.id))]}),s.jsx("div",{className:"chat-composer-wrap",children:s.jsx(gt,{members:b,draft:we,onDraftChange:ze,askTargetId:be,onAskTargetChange:ve,onSend:Ze,sending:ue,error:Ve,placeholder:`Message ${De(g.title)}`})})]}):s.jsx("main",{className:"chat-channel",children:s.jsx("div",{className:"chat-feed",children:s.jsx("p",{className:"chat-feed-empty",children:h?.isOperator?"Create a channel to start.":"You are not in a channel yet. Open the invitation you were sent."})})}),g&&_e&&ge&&!pe?s.jsx("div",{className:"chat-panel-scrim",role:"presentation",onClick:K}):null,g&&h?s.jsx(wt,{view:$,channel:g,members:b,membersById:ne,invites:V,inviteError:ie,revokingInviteId:z,viewerActorId:h.actorId,viewerIsOperator:h.isOperator,nowMs:te,threadRoot:lt,threadReplies:dt,threadRequest:ut,threadDraft:ye,onThreadDraftChange:e=>{w&&Te(n=>({...n,[w]:e}))},onSendThreadReply:et,threadSending:he,threadError:Ye,onClose:K,onBack:()=>_({kind:"members"}),onOpenMember:e=>_({kind:"member",actorId:e}),onMention:ot,onRevokeInvite:e=>{rt(e)},onInvite:()=>Z(!0),overlay:ge}):null]}),le&&g&&h?s.jsx(yt,{space:o,channel:g,viewerActorId:h.actorId,viewerName:h.displayName,onClose:()=>Z(!1),onInvitesChanged:()=>{J()}},`${o}:${g.id}`):null,de?s.jsx(St,{channels:[...I,...R],members:b,onClose:()=>ee(!1),onPick:e=>{ee(!1),e.kind==="channel"?se(e.id):_({kind:"member",actorId:e.id})}}):null]})}function Vt({label:r,messages:i}){const[d,l]=t.useState(!1);return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"chat-status-line",children:[s.jsx("button",{type:"button",className:"chat-fold",onClick:()=>l(u=>!u),children:`${d?"⌃":"⌵"} ${r}`}),s.jsx("span",{className:"chip chip--sm chip--mono chip--ghost chip--neutral",children:i.length})]}),d?i.map(u=>s.jsx("div",{className:"chat-status-line",children:u.body},u.id)):null]})}export{Zn as ChatSpaceSurface};
@@ -1 +0,0 @@
1
- .chat-space{position:fixed;inset:0;display:grid;grid-template-rows:40px 1fr;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-lg);line-height:var(--leading-normal);overflow:hidden}.chat-space *,.chat-space *:before,.chat-space *:after{box-sizing:border-box}:where(.chat-space,.chat-centered) button{font:inherit;color:inherit;background:none;border:none;padding:0;border-radius:var(--radius-sm);cursor:pointer}.chat-space :focus-visible,.chat-centered :focus-visible{outline:none;box-shadow:var(--focus-ring)}.chat-topbar{display:flex;align-items:center;gap:var(--space-3xl);padding:0 var(--space-2xl) 0 0;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 55%,var(--bg));min-width:0}.chat-topbar-band{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);box-sizing:border-box;display:flex;align-items:center;gap:var(--space-sm);min-width:0;padding:0 8px 0 var(--space-2xl)}.chat-space[data-rail=true] .chat-topbar-band{padding:0;justify-content:center}.chat-space[data-rail=true] .chat-space-name{display:none}.chat-space-name{flex:1;display:flex;align-items:baseline;gap:var(--space-sm);min-width:0}.chat-space-name b{font-size:var(--text-lg);font-weight:600}.chat-space-name span{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-jump{flex:1;max-width:420px;margin:0 auto;display:flex;align-items:center;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2xs) var(--space-md);color:var(--dim);font-size:var(--text-sm)}.chat-jump:hover{border-color:var(--dim);color:var(--muted)}.chat-kbd{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 4px}.chat-body{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:0}.chat-body[data-panel=open]{grid-template-columns:var(--sidebar-w) minmax(0,1fr) 360px}.chat-space[data-rail=true]{--sidebar-w: 56px}.chat-sidebar{border-right:1px solid var(--border);background:color-mix(in srgb,var(--surface) 35%,var(--bg));display:flex;flex-direction:column;min-height:0;padding:var(--space-lg) 0;overflow:hidden}.chat-sidebar[data-railed=true]{align-items:center}.chat-side-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.chat-sidebar[data-railed=true] .chat-side-list{align-items:center}.chat-space-switch{position:relative;flex-shrink:0;padding:0 var(--space-sm) var(--space-xs)}.chat-space-switch[data-railed=true]{padding:0 0 var(--space-2xs)}.chat-space-current{display:flex;align-items:center;gap:var(--space-2xs);width:100%;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-md);color:var(--ink);font-size:var(--text-md);font-weight:600;text-align:left;min-height:26px}.chat-space-current:hover:not(:disabled){background:var(--scout-chrome-hover)}.chat-space-current:disabled{cursor:default;opacity:1}.chat-space-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-space-caret{color:var(--dim);font-size:var(--text-sm);line-height:1}.chat-space-menu{position:absolute;z-index:20;top:calc(100% - var(--space-2xs));left:var(--space-sm);right:var(--space-sm);display:flex;flex-direction:column;padding:var(--space-2xs) 0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md, 0 8px 24px rgb(0 0 0 / 18%))}.chat-space-menu-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-2xs) var(--space-md);color:var(--muted);font-size:var(--text-md);text-align:left;min-height:26px}.chat-space-menu-item:hover{background:var(--scout-chrome-hover)}.chat-space-menu-item[data-active=true]{color:var(--ink);font-weight:600}.chat-space-menu-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-space-menu-count{color:var(--dim);font-variant-numeric:tabular-nums}.chat-space-menu-rule{height:1px;background:var(--border);margin:var(--space-2xs) 0}.chat-space-menu-new{color:var(--dim)}.chat-space-menu-new:hover{color:var(--ink)}.chat-space-menu .chat-create-form{padding:var(--space-xs) var(--space-md) var(--space-sm)}.chat-space-error{margin:0;color:var(--ink);font-size:var(--text-sm);line-height:var(--leading-snug)}.chat-space-rail{margin-bottom:var(--space-xs)}.chat-space-rail .chat-rail-glyph{font-weight:600}.chat-side-section{padding:var(--space-md) var(--space-lg) var(--space-2xs);display:flex;align-items:center;justify-content:space-between;color:var(--dim)}.chat-side-add{color:var(--dim);font-family:var(--font-mono);padding:0 var(--space-2xs)}.chat-side-add:hover{color:var(--ink)}.chat-side-row{display:flex;align-items:center;gap:var(--space-sm);width:calc(100% - var(--space-2xl));margin:0 var(--space-sm);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--muted);min-height:26px;text-align:left}.chat-side-row:hover{background:var(--scout-chrome-hover)}.chat-side-row[aria-current=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-side-row .chat-hash{font-family:var(--font-mono);color:var(--dim);width:12px;text-align:center}.chat-side-row .chat-row-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-side-row[data-addressed=true]{color:var(--ink);font-weight:600}.chat-side-empty{padding:var(--space-sm) var(--space-lg);color:var(--dim);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-sidebar-foot{margin-top:auto;padding:var(--space-lg) var(--space-lg) 0}.chat-sidebar-foot .btn{width:100%;justify-content:flex-start;color:var(--muted);font-weight:500}.chat-rail-row{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--muted);flex-shrink:0;margin-bottom:var(--space-2xs)}.chat-rail-row:hover{background:var(--scout-chrome-hover)}.chat-rail-row[aria-current=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-rail-row[data-addressed=true]{color:var(--ink)}.chat-rail-row .dot{position:absolute;top:3px;right:3px}.chat-rail-glyph{font-family:var(--font-mono);font-size:var(--text-md);line-height:1}.chat-rail-glyph .chat-hash{color:var(--dim)}.chat-rail-rule{width:24px;height:1px;background:var(--border);margin:var(--space-xs) 0;flex-shrink:0}.chat-sidebar-identity{position:relative;margin:var(--space-sm) var(--space-sm) 0;padding-top:var(--space-xs);border-top:1px solid var(--border);display:flex;align-items:center;gap:var(--space-2xs)}.chat-sidebar[data-railed=true] .chat-sidebar-identity{flex-direction:column;width:100%;margin:var(--space-sm) 0 0;padding:var(--space-xs) 0 0}.chat-you{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-md);color:var(--muted);font-size:var(--text-md);text-align:left}.chat-you:hover{background:var(--scout-chrome-hover)}.chat-you[aria-expanded=true]{background:var(--scout-chrome-active)}.chat-sidebar[data-railed=true] .chat-you{flex:none;padding:var(--space-2xs)}.chat-you-who{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.chat-you-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:500}.chat-you-role{color:var(--dim)}.chat-you-caret{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-you-menu{position:absolute;left:0;right:0;bottom:calc(100% + var(--space-xs));z-index:20;border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 96%,var(--bg));box-shadow:0 12px 34px var(--shadow-soft);padding:var(--space-2xs);display:flex;flex-direction:column}.chat-sidebar[data-railed=true] .chat-you-menu{position:fixed;left:calc(var(--sidebar-w) + var(--space-xs));right:auto;bottom:var(--space-lg);width:232px}.chat-you-menu-head{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm)}.chat-you-menu-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:500;color:var(--ink)}.chat-you-menu-rule{height:1px;background:var(--border);margin:var(--space-2xs) 0}.chat-you-menu-item{display:flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-md);color:var(--muted);text-align:left}.chat-you-menu-item:hover{background:var(--scout-chrome-hover);color:var(--ink)}.chat-you-menu-group{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm) var(--space-sm)}.chat-you-menu-group>.label-sm{color:var(--dim)}.chat-you-themes{display:flex;gap:var(--space-2xs)}.chat-you-themes .btn{flex:1;justify-content:center}.chat-you-themes .btn[data-active=true]{background:var(--scout-chrome-active);border-color:var(--dim);color:var(--ink)}.chat-create-form{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg) var(--space-md)}.chat-input{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 65%,var(--bg));color:var(--ink);font-family:var(--font-sans);font-size:var(--text-md);padding:var(--space-xs) var(--space-sm)}.chat-input::placeholder{color:var(--dim)}.chat-create-actions{display:flex;align-items:center;gap:var(--space-sm)}.chat-channel{display:flex;flex-direction:column;min-width:0;min-height:0}.chat-chan-head{min-height:44px;flex-shrink:0;display:flex;align-items:center;gap:var(--space-lg);padding:0 var(--space-2xl);border-bottom:1px solid var(--border)}.chat-chan-name{font-size:var(--text-lg);font-weight:600;white-space:nowrap}.chat-chan-name .chat-hash{color:var(--dim);font-family:var(--font-mono);margin-right:2px}.chat-topic{color:var(--muted);font-size:var(--text-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;text-align:left}.chat-topic--empty{color:var(--dim)}.chat-facepile{display:flex;align-items:center;gap:var(--space-sm)}.chat-facepile-faces{display:flex;align-items:center}.chat-facepile-face{margin-left:-6px;border:2px solid var(--bg)}.chat-facepile-faces>*:first-child{margin-left:0}.chat-pile-count{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;font-weight:600;color:var(--dim);white-space:nowrap}.chat-feed{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0;padding:var(--space-3xl) var(--space-4xl);display:flex;flex-direction:column;gap:var(--space-2xl);min-height:0}.chat-day{display:flex;align-items:center;gap:var(--space-lg);color:var(--dim)}.chat-day:before,.chat-day:after{content:"";flex:1;height:1px;background:var(--border)}.chat-turn{display:grid;grid-template-columns:32px minmax(0,1fr);gap:var(--space-lg)}.chat-turn>:first-child{align-self:start;justify-self:start}.chat-turn>:last-child{min-width:0}.chat-turn-meta{display:flex;align-items:baseline;gap:var(--space-sm)}.chat-turn-meta .chat-who{font-size:var(--text-md);font-weight:600}.chat-turn-meta .chat-when{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-turn-body{font-size:var(--text-lg);line-height:var(--leading-snug);color:color-mix(in srgb,var(--ink) 92%,transparent);margin-top:var(--space-3xs);white-space:pre-wrap;overflow-wrap:anywhere}.chat-mention{font-weight:600;background:var(--scout-chrome-hover);border-radius:var(--radius-xs);padding:0 3px}.chat-status-line{display:flex;align-items:center;gap:var(--space-sm);padding-left:44px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-fold{color:var(--dim);display:inline-flex;align-items:center;gap:var(--space-xs)}.chat-fold:hover{color:var(--muted)}.chat-ask-card{margin-top:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-lg);background:transparent;padding:var(--space-sm) var(--space-lg);display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md);max-width:min(460px,100%)}.chat-ask-card[data-tone=owed]{border-color:color-mix(in srgb,var(--accent) 32%,var(--border));background:color-mix(in srgb,var(--accent) 3%,transparent)}.chat-ask-card .label-sm{color:var(--dim)}.chat-ask-chip{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:var(--leading-snug)}.chat-ask-chip[data-tone=owed]{color:var(--accent)}.chat-ask-chip[data-tone=failed]{color:var(--red)}.chat-ask-chip[data-tone=settled]{color:var(--muted)}.chat-thread-stub{margin-top:var(--space-sm);display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-thread-stub:hover{color:var(--muted)}.chat-thread-stub[data-empty=true]{opacity:0;transition:opacity .12s ease}.chat-turn:hover .chat-thread-stub[data-empty=true],.chat-turn:focus-within .chat-thread-stub[data-empty=true]{opacity:1}@media(hover:none){.chat-thread-stub[data-empty=true]{opacity:1}}.chat-feed-empty,.chat-feed-notice{color:var(--dim);font-size:var(--text-md);line-height:var(--leading-snug);max-width:52ch}.chat-feed-notice[data-tone=error]{color:var(--red)}.chat-composer-wrap{flex-shrink:0;padding:var(--space-lg) var(--space-4xl) var(--space-2xl)}.chat-composer{border:1px solid var(--border);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 65%,var(--bg));transition:border-color var(--motion-duration-hover) var(--motion-ease-standard)}.chat-composer:hover{border-color:color-mix(in srgb,var(--ink) 14%,var(--border))}.chat-composer:focus-within{border-color:color-mix(in srgb,var(--ink) 22%,var(--border))}.chat-ask-target{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl) 0}.chat-ask-target-clear{color:var(--dim);font-family:var(--font-mono)}.chat-ask-target-clear:hover{color:var(--ink)}.chat-composer textarea{display:block;width:100%;resize:none;border:none;background:transparent;color:color-mix(in srgb,var(--ink) 92%,transparent);font-family:var(--font-sans);font-size:var(--text-lg);line-height:var(--leading-snug);padding:var(--space-lg) var(--space-xl);min-height:50px;max-height:180px}.chat-composer[data-variant=thread] textarea{min-height:42px}.chat-composer textarea:focus{outline:none}.chat-composer textarea::placeholder{color:var(--dim)}.chat-composer textarea:disabled{cursor:progress}.chat-composer-foot{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-2xs) var(--space-sm) var(--space-sm)}.chat-composer-tools{display:flex;align-items:center;gap:var(--space-3xs);min-width:0}.chat-composer-tool{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);min-height:26px;padding:0 var(--space-xs);border-radius:var(--radius-md);color:var(--muted);font-size:var(--text-md);white-space:nowrap}.chat-composer-tool--icon{width:26px;padding:0;color:var(--dim)}.chat-composer-tool:hover:not(:disabled){background:var(--scout-chrome-hover);color:var(--ink)}.chat-composer-tool[data-active=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-composer-tool:disabled{opacity:.4;cursor:not-allowed}.chat-composer-hint{flex:1 1 24ch;min-width:0;color:var(--muted);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-composer-foot .chat-composer-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-md)}.chat-enter{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim)}.chat-composer-send{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--ink) 92%,var(--bg));color:var(--bg);transition:background-color var(--motion-duration-hover) var(--motion-ease-standard),color var(--motion-duration-hover) var(--motion-ease-standard)}.chat-composer-send:hover:not(:disabled){background:var(--ink)}.chat-composer-send:disabled{background:transparent;border:1px solid var(--border);color:var(--dim);cursor:not-allowed}.chat-composer-spin{animation:chat-composer-spin .7s linear infinite}@keyframes chat-composer-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.chat-composer,.chat-composer-send{transition:none}.chat-composer-spin{animation:none}}.chat-send-error{margin:0;padding:0 var(--space-xl) var(--space-2xs);color:var(--red);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-mention-popup{position:relative;border-top:1px solid var(--border);max-height:200px;overflow-y:auto;padding:var(--space-2xs) 0}.chat-mention-option{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-2xs) var(--space-xl);font-size:var(--text-md);color:var(--muted);text-align:left}.chat-mention-option:hover{background:var(--scout-chrome-hover);color:var(--ink)}.chat-mention-option[data-active=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-mention-option:disabled{color:var(--dim);cursor:default}.chat-mention-option:disabled:hover{background:none;color:var(--dim)}.chat-mention-option .chat-mention-kind{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim)}.chat-rpanel{border-left:1px solid var(--border);background:color-mix(in srgb,var(--surface) 35%,var(--bg));display:flex;flex-direction:column;min-height:0}.chat-rpanel-head{min-height:44px;flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-2xl);border-bottom:1px solid var(--border)}.chat-rpanel-head .chat-rpanel-title{font-size:var(--text-md);font-weight:600}.chat-rpanel-head .chat-rpanel-scope{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-rpanel-close{margin-left:auto;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xl);padding:0 var(--space-2xs)}.chat-rpanel-close:hover{color:var(--ink)}.chat-rpanel-back{color:var(--dim);font-family:var(--font-mono);padding:0 var(--space-2xs)}.chat-rpanel-back:hover{color:var(--ink)}.chat-rpanel-body{flex:1;overflow-y:auto;padding:var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-2xl);min-height:0}.chat-anchor-msg{border-bottom:1px solid var(--border);padding-bottom:var(--space-2xl)}.chat-thread-composer{margin-top:auto}.chat-psec{border-top:1px solid var(--border);padding-top:var(--space-lg);margin-top:var(--space-lg)}.chat-psec:first-child{border-top:none;padding-top:0;margin-top:0}.chat-psec>.label-sm{display:block;color:var(--dim);margin-bottom:var(--space-sm)}.chat-member-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) 0;width:100%;text-align:left}.chat-member-row:hover .chat-member-name{color:var(--ink)}.chat-member-name{font-size:var(--text-md);color:var(--ink);flex:1;min-width:0}.chat-member-fact{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim);white-space:nowrap}.chat-member-fact[data-stranded=true]{color:var(--red)}.chat-invite-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) 0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted)}.chat-invite-row .chat-token-hint{color:var(--ink)}.chat-invite-revoke{margin-left:auto;color:var(--dim);font-size:var(--text-xs);font-family:var(--font-sans);font-weight:500}.chat-invite-revoke:hover{color:var(--red)}.chat-mcard-head{display:flex;align-items:center;gap:var(--space-lg)}.chat-mcard-name{font-size:var(--text-lg);font-weight:600}.chat-mcard-sub{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--muted);margin-top:2px}.chat-kv{display:grid;grid-template-columns:74px minmax(0,1fr);gap:var(--space-xs) var(--space-lg);align-items:baseline}.chat-kv .chat-k{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;font-weight:600;color:var(--dim)}.chat-kv .chat-v{font-size:var(--text-md);color:var(--ink);font-family:var(--font-mono);display:flex;align-items:center;gap:var(--space-sm);min-width:0;overflow-wrap:anywhere}.chat-copy-inline{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim);border:1px solid var(--border);border-radius:var(--radius-xs);padding:0 4px;flex-shrink:0}.chat-copy-inline:hover{color:var(--ink)}.chat-conn{display:flex;flex-direction:column;gap:var(--space-2xs)}.chat-conn-state{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-md);font-weight:600}.chat-conn-detail,.chat-conn-evidence{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim);line-height:var(--leading-snug)}.chat-conn-detail{font-family:var(--font-sans)}.chat-scrim{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:var(--space-4xl);z-index:40}.chat-sheet{width:480px;max-width:100%;max-height:100%;overflow-y:auto;border-radius:var(--radius-xl);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:var(--surface);padding:var(--space-3xl);box-shadow:0 12px 34px var(--shadow-soft);display:flex;flex-direction:column;gap:var(--space-2xl)}.chat-sheet-title{display:flex;align-items:center}.chat-sheet-title h2{margin:0;font-size:var(--text-2xl);font-weight:600}.chat-sheet-explain{color:var(--muted);font-size:var(--text-md);margin:0 0 var(--space-md);line-height:var(--leading-snug)}.chat-copy-block{font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6;color:color-mix(in srgb,var(--ink) 88%,transparent);overflow-wrap:anywhere;white-space:pre-wrap}.chat-sheet-foot{color:var(--dim);font-size:var(--text-sm);border-top:1px solid var(--border);padding-top:var(--space-lg);margin:0}.chat-sheet-error{color:var(--red);font-size:var(--text-md)}.chat-invite-switch{display:flex;gap:var(--space-xs);padding:var(--space-xs);border-radius:var(--radius-lg);background:var(--bg)}.chat-invite-switch button{flex:1;display:flex;justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);color:var(--muted);font-size:var(--text-md)}.chat-invite-switch button[aria-pressed=true]{background:var(--surface);color:var(--ink)}.chat-invite-switch button:hover{color:var(--ink)}.chat-invite-heading{margin:0 0 var(--space-sm);font-size:var(--text-xl);font-weight:500;line-height:var(--leading-snug)}.chat-invite-primary{margin-top:var(--space-2xl)}.chat-invite-copy{width:100%;min-height:40px;justify-content:center;gap:var(--space-sm)}.chat-invite-next{margin:var(--space-sm) 0 0;text-align:center;color:var(--muted);font-size:var(--text-sm)}.chat-invite-meta{margin:var(--space-lg) 0 0;color:var(--dim);font-size:var(--text-sm);line-height:var(--leading-snug)}.chat-invite-connection{display:flex;align-items:flex-start;gap:var(--space-md);margin-top:var(--space-xl);padding:var(--space-lg);border-radius:var(--radius-md);background:var(--bg);color:var(--muted)}.chat-invite-connection>svg{flex-shrink:0;margin-top:2px}.chat-invite-connection p{margin:0;font-size:var(--text-sm);line-height:var(--leading-snug);overflow-wrap:anywhere}.chat-invite-connection .chat-invite-connection-title{color:var(--ink);margin-bottom:var(--space-xs);font-weight:500}.chat-invite-details,.chat-invite-preview{margin-top:var(--space-md);font-size:var(--text-sm);color:var(--muted)}.chat-invite-details summary,.chat-invite-preview summary{cursor:pointer;width:fit-content;padding:var(--space-xs) 0}.chat-invite-details p{margin-top:var(--space-sm)}.chat-invite-preview .chat-copy-block{margin-top:var(--space-md);-webkit-user-select:text;user-select:text}.chat-invite-preview .chat-invite-meta{margin-top:var(--space-sm)}.chat-palette{width:480px;max-width:100%;border-radius:var(--radius-xl);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:var(--surface);box-shadow:0 12px 34px var(--shadow-soft);overflow:hidden;align-self:flex-start;margin-top:12vh}.chat-palette input{width:100%;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-xl);padding:var(--space-lg) var(--space-2xl)}.chat-palette input:focus{outline:none}.chat-palette-list{max-height:320px;overflow-y:auto;padding:var(--space-sm) 0}.chat-palette-option{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-2xl);font-size:var(--text-md);color:var(--muted);text-align:left}.chat-palette-option[data-active=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-palette-empty{padding:var(--space-lg) var(--space-2xl);color:var(--dim);font-size:var(--text-md)}.chat-coin{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;font-family:var(--font-mono);font-weight:600;letter-spacing:var(--tracking-xs);color:var(--scout-chrome-avatar-ink)}.chat-sprite{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.chat-sprite-owner{position:absolute;right:-3px;bottom:-3px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid var(--bg);font-family:var(--font-mono);font-weight:600;color:var(--scout-chrome-avatar-ink)}.chat-centered{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-4xl);background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-lg);overflow-y:auto}.chat-card{width:420px;max-width:100%;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 96%,transparent);padding:var(--space-4xl);display:flex;flex-direction:column;gap:var(--space-lg);box-shadow:0 12px 34px var(--shadow-soft)}.chat-card-eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim)}.chat-card h1{margin:0;font-size:var(--text-4xl);font-weight:600;letter-spacing:-.01em}.chat-card p{margin:0;color:var(--muted);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-card-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-card-field{display:flex;flex-direction:column;gap:var(--space-xs)}.chat-card-field>.label-md{color:var(--dim)}.chat-card .chat-input{font-size:var(--text-lg);padding:var(--space-sm) var(--space-md)}.chat-card-note{color:var(--dim);font-size:var(--text-sm);line-height:var(--leading-snug)}.chat-card-error{color:var(--red);font-size:var(--text-md)}.chat-card .btn--accent{justify-content:center}@media(max-width:1199px){.chat-body[data-panel=open]{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.chat-rpanel[data-overlay=true]{position:fixed;top:40px;right:0;bottom:0;width:360px;max-width:100%;z-index:30;box-shadow:0 12px 34px var(--shadow-soft);background:color-mix(in srgb,var(--surface) 92%,var(--bg))}.chat-panel-scrim{position:fixed;top:40px;inset-inline:0;bottom:0;background:var(--scrim-soft);z-index:29}}@media(max-width:899px){.chat-body,.chat-body[data-panel=open]{grid-template-columns:minmax(0,1fr)}.chat-space[data-compact-view=list] .chat-channel,.chat-space[data-compact-view=channel] .chat-sidebar,.chat-space[data-compact-view=panel] .chat-sidebar,.chat-space[data-compact-view=panel] .chat-channel{display:none}.chat-sidebar{border-right:none}.chat-side-row{min-height:34px;font-size:var(--text-lg)}.chat-topbar-band{flex:1;width:auto;padding-right:0}.chat-feed{padding:var(--space-2xl)}.chat-composer-wrap{padding:var(--space-md) var(--space-2xl) var(--space-2xl)}.chat-enter{display:none}.chat-composer-send{width:36px;height:36px}.chat-composer-tool{min-height:32px}.chat-composer-tool--icon{width:32px}.chat-rpanel[data-overlay=true]{position:static;width:auto;box-shadow:none;border-left:none}.chat-panel-scrim,.chat-jump{display:none}.chat-sheet{padding:var(--space-2xl)}.chat-scrim{padding:0;align-items:stretch}.chat-sheet{width:100%;border-radius:0;border:none;max-height:none}.chat-centered{padding:var(--space-2xl);align-items:flex-start}.chat-card{width:100%;padding:var(--space-3xl) var(--space-2xl)}}.chat-compact-back{display:none;color:var(--dim);font-family:var(--font-mono);padding:0 var(--space-2xs)}@media(max-width:899px){.chat-compact-back{display:inline-flex}}
@@ -1 +0,0 @@
1
- import{r,l as n,a as c,n as u,o as S,p as f,w as h,q as s,b as l,j as d}from"./index-DReVb7jZ.js";import{L as T,D as v}from"./Provider-CNZluAZb.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";function E(){const[t,p]=r.useState(()=>n()),[o,m]=r.useState(()=>c());r.useEffect(()=>{u(o,f(),S())},[o]),r.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const e=window.matchMedia("(prefers-color-scheme: light)"),i=()=>m(s(t));return e.addEventListener("change",i),()=>e.removeEventListener("change",i)},[t]);const a=r.useCallback(e=>{h(e),p(e),m(s(e))},[]);return{theme:o,preference:t,setPreference:a}}function ne(){return E().theme}function ce({theme:t,className:p,compactView:o,railed:m,children:a}){const e=r.useMemo(()=>l(),[]),i=r.useMemo(()=>({...t==="light"?T:v,...e??{}}),[t,e]);return d.jsx("div",{className:p,"data-scout-theme":t,"data-scout-theme-mode":t,...o?{"data-compact-view":o}:{},...m?{"data-rail":"true"}:{},style:i,children:a})}export{ce as ChatSpaceTheme,E as useScoutStandaloneAppearance,ne as useScoutStandaloneTheme};
@@ -1 +0,0 @@
1
- import{r as h,j as e}from"./index-DReVb7jZ.js";import{A as G}from"./AgentAvatar-NZOqcsB2.js";import{M as J}from"./runtime-picker-C_AVYF63.js";import{j as Y,k as ee,l as O,m as se,M as _}from"./NewChatComposer-BEXS8vV6.js";import{F as te}from"./file-text-DP6txVW-.js";import"./index-CbqBwfIW.js";import{c as I}from"./createLucideIcon-ChvMq-zl.js";import{Z as ae}from"./zap-B4X0OrEw.js";import{X as ne}from"./x-rlMdRqJF.js";const re=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],oe=I("pencil",re);const ce=[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]],ie=I("reply",ce),U="Only markdown, code, images, and video clips can be attached.";function we(){const[t,c]=h.useState([]),[g,x]=h.useState(null),[d,p]=h.useState(null),[i,j]=h.useState(0),n=h.useRef(null),f=h.useCallback((r,l="Attached")=>{const m=r.filter(Y);return m.length===0?(r.length>0&&p(U),0):(p(null),c(v=>{const F=new Set(v.map(u=>`${u.name}:${u.size}:${u.lastModified}`)),R=m.filter(u=>!F.has(`${u.name}:${u.size}:${u.lastModified}`));return R.length>0?[...v,...R]:v}),x(m.length===1?`${l} ${m[0]?.name??"1 attachment"}.`:`${l} ${m.length} attachments.`),m.length)},[]),b=h.useCallback(r=>{c(l=>l.filter(m=>m!==r)),x(null)},[]),$=h.useCallback(()=>{c([]),x(null),p(null),j(0)},[]),y=h.useCallback(()=>{n.current?.click()},[]),E=h.useCallback(r=>{const l=ee(r.clipboardData);l.length!==0&&(r.preventDefault(),f(l,"Pasted"))},[f]),k=h.useMemo(()=>({onDragOver:r=>{O(r.dataTransfer)&&(r.preventDefault(),j(l=>l===0?1:l))},onDragLeave:r=>{r.currentTarget.contains(r.relatedTarget)||j(0)},onDrop:r=>{if(!O(r.dataTransfer))return;r.preventDefault(),j(0);const l=se(r.dataTransfer);if(l.length===0){p(U);return}f(l,"Dropped")}}),[f]);return{files:t,hasFiles:t.length>0,feedback:g,error:d,dragActive:i>0,stage:f,remove:b,clear:$,setError:p,openPicker:y,dropHandlers:k,onPaste:E,inputRef:n}}function le(t){if(t<1024)return`${t} B`;const c=t/1024;return c<1024?`${c.toFixed(0)} KB`:`${(c/1024).toFixed(1)} MB`}function de(t){return(t.split(".").pop()?.toUpperCase()??"FILE").slice(0,4)}function me({file:t,onRemove:c}){const g=h.useMemo(()=>URL.createObjectURL(t),[t]);h.useEffect(()=>()=>URL.revokeObjectURL(g),[g]);const x=t.type.startsWith("video/"),d=t.type.startsWith("image/"),p=de(t.name),i=le(t.size);return e.jsxs("div",{className:"s-msg-compose-attachment surface-card surface-card--inset",children:[x?e.jsx("video",{src:g,muted:!0,playsInline:!0}):d?e.jsx("img",{src:g,alt:t.name}):e.jsxs("div",{className:"s-msg-compose-attachment-file",title:`${t.name} (${i})`,children:[e.jsxs("div",{className:"s-msg-compose-attachment-file-icon",children:[e.jsx(te,{size:16,"aria-hidden":"true"}),e.jsx("span",{className:"s-msg-compose-attachment-ext label-xs",children:p})]}),e.jsx("span",{className:"s-msg-compose-attachment-name",children:t.name}),e.jsx("span",{className:"s-msg-compose-attachment-size label-xs text-dim",children:i})]}),e.jsx("button",{type:"button",className:"s-msg-compose-attachment-remove btn btn--ghost btn--icon","aria-label":`Remove ${t.name}`,title:`Remove ${t.name}`,onClick:c,children:"×"})]})}function ue({attachments:t,accept:c="image/*,video/*,text/markdown,.md,.markdown,text/plain,.txt"}){const{files:g,feedback:x,error:d,remove:p,stage:i,inputRef:j}=t;return e.jsxs(e.Fragment,{children:[e.jsx("input",{ref:j,type:"file",multiple:!0,accept:c,className:"s-msg-compose-file-input",onChange:n=>{i([...n.target.files??[]]),n.target.value=""}}),g.length>0?e.jsx("div",{className:"s-msg-compose-attachments","aria-label":"Staged attachments",children:g.map(n=>e.jsx(me,{file:n,onRemove:()=>p(n)},`${n.name}:${n.size}:${n.lastModified}`))}):null,d?e.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"error",role:"alert",children:d}):x?e.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"muted",role:"status",children:x}):null]})}function pe({composeRef:t,draft:c,setDraft:g,composePlaceholder:x,slashState:d,setSlashState:p,filteredSlashCommands:i,applySlashCommand:j,mentionState:n,setMentionState:f,filteredMentions:b,applyMention:$,updateTriggersFromDraft:y,closeSuggestions:E,replyTarget:k,onCancelReply:r,isStopMode:l,sending:m,composeAction:v,onSend:F,onInterrupt:R,attachments:u,isAgentBusy:H,busyIntent:D,onBusyIntentChange:L,queued:N,queueNote:K,onEditQueued:B,editingQueuedId:w,editingAttachmentCount:A,onCancelEdit:W,onUnqueue:S,onSendQueuedNow:Q}){const Z=e.jsxs(e.Fragment,{children:[d.open?e.jsx(_,{label:"Slash commands",items:i.map(s=>({id:s.command,token:s.label,description:s.description})),activeIndex:d.index,onPick:s=>{const a=i[s];a&&j(a)},onActiveIndexChange:s=>p(a=>({...a,index:s}))}):null,n.open?e.jsx(_,{label:"Mention agent",items:b.map(s=>({id:s.id,token:`@${s.handle}`,description:s.name,avatarNode:e.jsx(G,{name:s.name,size:20,tile:!0,presence:!1})})),activeIndex:n.index,onPick:s=>{const a=b[s];a&&$(a)},onActiveIndexChange:s=>f(a=>({...a,index:s}))}):null]}),V=c.trim().length>0,q=w!==null,P=V||u.hasFiles||A>0,z=H&&P,C=z&&D==="steer",T=q?N.findIndex(s=>s.id===w)+1:0,M=z?e.jsxs("div",{className:"s-msg-compose-mode",role:"group","aria-label":"What Send does while this turn is running",children:[e.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"queue","aria-pressed":D==="queue",title:"Hold this draft until the running turn lands",disabled:m,onClick:()=>L("queue"),children:"Queue"}),e.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"steer","aria-pressed":D==="steer",title:"Interrupt the running turn and deliver this now",disabled:m,onClick:()=>L("steer"),children:"Steer"})]}):null,X=N.length>0||M?e.jsxs("div",{className:"s-msg-compose-queue",role:"group","aria-label":"Queued messages",children:[e.jsxs("div",{className:"s-msg-compose-queue-head",children:[e.jsx("span",{className:"s-msg-compose-queue-kicker",children:N.length>0?`Queue · ${N.length}`:"Queues next"}),e.jsx("span",{className:"s-msg-compose-queue-hint",children:q?C?`Rewriting ${T} — send interrupts this turn`:`Rewriting ${T} — send returns it to its place`:N.length>0?C?"Send interrupts this turn":K??"":C?"Interrupts this turn on send":"Sends when this turn lands"}),M]}),N.map((s,a)=>e.jsxs("div",{className:"s-msg-compose-queue-row","data-editing":s.id===w?"true":void 0,children:[e.jsx("span",{className:"s-msg-compose-queue-index",children:a+1}),e.jsx("span",{className:"s-msg-compose-queue-body",children:s.body.trim()||"Attachments only"}),s.attachments.length>0?e.jsxs("span",{className:"s-msg-compose-queue-clip",children:[s.attachments.length," file",s.attachments.length===1?"":"s"]}):null,s.id===w?e.jsx("button",{type:"button",className:"s-msg-compose-queue-edit btn btn--sm btn--ghost",title:"Stop rewriting — leave this row as it was","aria-label":`Cancel rewriting queued message ${a+1}`,onClick:W,children:"Cancel edit"}):e.jsxs("button",{type:"button",className:"s-msg-compose-queue-edit btn btn--sm btn--ghost",title:"Pull this back into the input box to rewrite it","aria-label":`Edit queued message ${a+1}`,disabled:m||q,onClick:()=>B(s.id),children:[e.jsx(oe,{size:11,"aria-hidden":"true"}),e.jsx("span",{children:"Edit"})]}),e.jsxs("button",{type:"button",className:"s-msg-compose-queue-now btn btn--sm btn--accent",title:"Interrupt this turn and send this now","aria-label":`Send queued message ${a+1} now`,disabled:m||s.id===w,onClick:()=>Q(s.id),children:[e.jsx(ae,{size:11,"aria-hidden":"true"}),e.jsx("span",{children:"Send now"})]}),e.jsx("button",{type:"button",className:"s-msg-compose-queue-drop btn btn--ghost btn--icon",title:"Cancel — drop this from the queue","aria-label":`Cancel queued message ${a+1}`,onClick:()=>S(s.id),children:"×"})]},s.id))]}):null;return e.jsx(J,{density:"thread",value:c,onChange:(s,a)=>{g(s),y(s,a?.caret??s.length)},onSend:F,placeholder:x,sending:m,stopMode:l,onStop:R,canSend:P,sendTitle:C?"Steer — interrupt this turn and send now (Cmd+Enter)":z?"Queue for the next turn (Cmd+Enter)":"Send (Cmd+Enter)",sendAriaLabel:C?"Steer — interrupt this turn and send now (Cmd+Enter)":z?"Queue message for the next turn (Cmd+Enter)":v==="steer"?"Send follow-up (Cmd+Enter)":"Send message (Cmd+Enter)",showAttach:!0,onAttach:u.openPicker,onPaste:u.onPaste,dropHandlers:u.dropHandlers,dragActive:u.dragActive,textareaRef:t,overlay:Z,above:X,aboveAttached:!0,header:e.jsxs(e.Fragment,{children:[k?e.jsxs("div",{className:"s-thread-compose-reply surface-card surface-card--inset",role:"status",children:[e.jsx(ie,{className:"s-thread-compose-reply-icon text-muted",size:13,strokeWidth:1.8,"aria-hidden":"true"}),e.jsx("span",{className:"s-thread-compose-reply-label label-xs text-muted",children:"Replying to"}),e.jsx("span",{className:"s-thread-compose-reply-actor chip chip--sm chip--mono chip--neutral",children:k.actorLabel}),e.jsx("span",{className:"s-thread-compose-reply-preview text-muted",title:k.preview,children:k.preview}),e.jsx("button",{type:"button",className:"s-thread-compose-reply-cancel btn btn--ghost btn--icon","aria-label":"Cancel reply",title:"Cancel reply",onClick:r,children:e.jsx(ne,{size:13,strokeWidth:1.8,"aria-hidden":"true"})})]}):null,q&&A>0?e.jsxs("div",{className:"s-msg-compose-carried",role:"status",children:[A," file",A===1?"":"s"," stay attached to this draft"]}):null,e.jsx(ue,{attachments:u})]}),tools:e.jsxs("span",{className:"s-thread-compose-hint s-msg-compose-tools-hint",children:[e.jsx("kbd",{className:"s-kbd",children:"/"})," commands"," · ",e.jsx("kbd",{className:"s-kbd",children:"@"})," agents"]}),onSelect:s=>{const a=s.currentTarget;y(a.value,a.selectionStart)},onBlur:()=>{setTimeout(E,120)},onKeyDown:s=>{if(!(d.open&&i.length>0||n.open&&b.length>0))return!1;if(s.key==="ArrowDown")return d.open?p(o=>({...o,index:(o.index+1)%i.length})):n.open&&f(o=>({...o,index:(o.index+1)%b.length})),!0;if(s.key==="ArrowUp")return d.open?p(o=>({...o,index:(o.index-1+i.length)%i.length})):n.open&&f(o=>({...o,index:(o.index-1+b.length)%b.length})),!0;if(s.key==="Escape")return E(),!0;if((s.key==="Enter"||s.key==="Tab")&&!s.shiftKey&&!s.metaKey&&!s.ctrlKey&&!s.altKey){if(d.open){const o=i[d.index]??i[0];o&&j(o)}else if(n.open){const o=b[n.index]??b[0];o&&$(o)}return!0}return!1}})}const Ce=Object.freeze(Object.defineProperty({__proto__:null,ConversationComposer:pe},Symbol.toStringTag,{value:"Module"}));export{pe as C,Ce as a,we as u};
@@ -1 +0,0 @@
1
- import{j as t}from"./index-DReVb7jZ.js";import{M as p}from"./message-markup-6Tgo4qFJ.js";import{f as d}from"./conversation-model-m8HhzroS.js";import{t as n}from"./time-Dhsh_2EG.js";import"./mentions-Ck_Vjnyp.js";import"./colors-CFlbwC25.js";import"./agent-state-DDhnFEEP.js";import"./index-CbqBwfIW.js";import"./api-DSqpVKC7.js";import"./Provider-CNZluAZb.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./AgentDetailCard-MIEBKw_S.js";import"./AgentLiveActions-6Kfr1uOT.js";import"./terminal-takeover-CZZsnPzj.js";import"./openContent-C6XO6kr5.js";import"./eye-CsGfEVR6.js";import"./terminal-DMZjX1es.js";import"./conversations-Cbg9h_Af.js";function l({at:i}){const r=d(i);return t.jsxs("div",{className:"s-thread-day-divider","aria-label":r,children:[t.jsx("span",{className:"s-thread-day-line","aria-hidden":"true"}),t.jsx("span",{className:"s-thread-day-label",children:r}),t.jsx("span",{className:"s-thread-day-line","aria-hidden":"true"})]})}function dt({row:i,expanded:r,showDayDivider:e,onToggle:s}){const m=`${i.recipients.length} recipients`;return t.jsxs("div",{className:["s-thread-feed-block","s-thread-fanout",e&&"s-thread-feed-block--full-width"].filter(Boolean).join(" "),children:[e&&t.jsx(l,{at:i.createdAt}),i.messages.map(a=>t.jsx("span",{id:`msg-${a.id}`,className:"s-thread-fanout-anchor","aria-hidden":"true"},a.id)),t.jsxs("button",{type:"button",className:"s-thread-fanout-summary","aria-expanded":r,onClick:s,title:i.recipients.join(", "),children:[t.jsx("span",{className:"s-thread-fanout-caret","aria-hidden":"true",children:r?"▾":"▸"}),t.jsx("span",{className:"s-thread-fanout-label",children:m}),t.jsx("span",{className:"s-thread-fanout-time",children:n(i.createdAt)})]}),r&&t.jsxs("div",{className:"s-thread-fanout-detail",children:[t.jsx("ul",{className:"s-thread-fanout-recipients",children:i.messages.map((a,o)=>t.jsx("li",{className:"s-thread-fanout-recipient",children:i.recipients[o]},a.id))}),t.jsx("div",{className:"s-thread-fanout-body",children:t.jsx(p,{text:i.messages[0].body})})]})]})}export{dt as FanOutRow,l as ThreadDayDivider};
@@ -1 +0,0 @@
1
- import{r as S,j as e,H as Z}from"./index-DReVb7jZ.js";import{c as M}from"./clipboard-e3fSpeo7.js";import{d as ee}from"./router-C-MF5-mb.js";import{A as P}from"./AgentAvatar-NZOqcsB2.js";import{H as te}from"./HarnessMark-DSvM_H7H.js";import{a as se}from"./Provider-CNZluAZb.js";import{n as ne,c as ae}from"./agent-state-DDhnFEEP.js";import{B as re}from"./BackToPicker-CkBhGRlD.js";import{o as z}from"./openContent-C6XO6kr5.js";import{AstronautSuit as oe}from"./AstronautSuit-D67fIBdR.js";import{l as ie,s as le}from"./conversation-model-m8HhzroS.js";import{E as ce}from"./eye-CsGfEVR6.js";import{P as de}from"./panel-right-qP17MwMl.js";import{c as me}from"./createLucideIcon-ChvMq-zl.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./CrewAvatar-zgzC3cbU.js";import"./colors-CFlbwC25.js";import"./provider-DwmCoSlc.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./index-CbqBwfIW.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./time-Dhsh_2EG.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./conversations-Cbg9h_Af.js";const he=[["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:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],pe=me("user-plus",he),Y=150,T=320,ue=1.4,xe=1.1,G=5,fe=22,J=5200,ve=1,ge=1200;function je(n){S.useEffect(()=>{const s=n.current;if(!s||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let i=[],r=[],d=-9999,x=-9999,m=0;const c=()=>{i=[],r=[],s.querySelectorAll(".sprite-cell--eye circle").forEach(o=>{const a=o.getBoundingClientRect();if(!a.width)return;const u=o.closest("[data-state]");i.push({el:o,cx:a.left+a.width/2,cy:a.top+a.height/2,working:u?.dataset.state==="in_flight"})}),s.querySelectorAll(".s-thread-participant-avatar svg").forEach(o=>{const a=o.getBoundingClientRect();a.width&&r.push({el:o,cx:a.left+a.width/2,cy:a.top+a.height/2})})},E=o=>o<Y?1:o>T?0:(T-o)/(T-Y),j=o=>{for(const a of i){const u=d-a.cx,y=x-a.cy,p=Math.hypot(u,y),v=E(p),b=p<1?1:p;let A=u/b*ue*v;const L=y/b*xe*v;if(a.working&&v<1){const w=o%J/J;A+=Math.sin(w*Math.PI*2)*ve*(1-v)}a.el.style.transform=`translate(${A.toFixed(2)}px, ${L.toFixed(2)}px)`}for(const a of r){const u=d-a.cx,y=Math.hypot(u,x-a.cy),p=E(y),v=Math.max(-G,Math.min(G,u/fe))*p;a.el.style.transform=v===0?"":`rotate(${v.toFixed(2)}deg)`}m=requestAnimationFrame(j)},f=o=>{d=o.clientX,x=o.clientY};c();const h=window.setInterval(c,ge);return m=requestAnimationFrame(j),window.addEventListener("resize",c),document.addEventListener("pointermove",f,{passive:!0}),()=>{cancelAnimationFrame(m),window.clearInterval(h),window.removeEventListener("resize",c),document.removeEventListener("pointermove",f);for(const o of i)o.el.style.transform="";for(const o of r)o.el.style.transform=""}},[n])}function I(n,s,i){const r=i?Z[i.trim().toLowerCase()]:void 0;return{"--fp-z":String(n-s),"--fp-i":String(s),...r==null?{}:{"--fp-suit-hue":String(r)}}}function be(n){if(n<1e3)return String(n);const s=n/1e3;return s<10?`${s.toFixed(1).replace(/\.0$/,"")}k`:`${Math.round(s)}k`}function B({name:n,runtime:s,state:i,action:r}){return e.jsxs("span",{className:"s-thread-participant-card","aria-hidden":"true",children:[e.jsx("strong",{children:n}),s?e.jsx("span",{children:s}):null,e.jsx("span",{children:i}),r?e.jsx("span",{className:"s-thread-participant-card-action",children:r}):null]})}function H({count:n,className:s,style:i,rosterId:r,expanded:d,onClick:x}){const m=`${n} more participant${n===1?"":"s"}`;return e.jsx("button",{type:"button",className:`s-thread-participant s-thread-participant--button ${s}`,style:i,"aria-label":`${m}; open participant list`,"aria-haspopup":"dialog","aria-controls":r,"aria-expanded":d,onClick:x,children:e.jsxs("span",{className:"s-thread-participant-face s-thread-participant-face--overflow",children:["+",be(n)]})})}const ye=[{id:"thread",label:"Thread",hint:"The conversation in order"},{id:"flow",label:"Flow",hint:"Who asked whom, who waited, and where the work branched"},{id:"map",label:"Map",hint:"Who exchanges work with whom, and on which model"},{id:"canvas",label:"Canvas",hint:"The same window laid out left to right, with nobody folded away"}];function bt({showBackNav:n,backLabel:s,isDm:i,navigate:r,route:d,canonicalConversationId:x,threadTitle:m,agentId:c,sessionId:E,detailRoute:j,participants:f,operator:h,canAddParticipants:o,onToggleAddParticipant:a,view:u,onChangeView:y,beside:p}){const v=se(),b=ee(d),A=S.useRef(null),L=S.useRef(null),w=S.useId(),[N,C]=S.useState(!1);je(A);const $=f.slice(0,4),O=Math.max(f.length-$.length,0),U=Math.max(f.length-2,0),W=Math.max(f.length-1,0),k=$.length+(O>0?1:0)+(h.active?1:0);S.useEffect(()=>{if(!N)return;const t=g=>{L.current?.contains(g.target)||C(!1)},l=g=>{g.key==="Escape"&&C(!1)};return document.addEventListener("mousedown",t),document.addEventListener("keydown",l),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",l)}},[N]);const R=t=>t.agent?{view:"agents-v2",agentId:t.agent.id,...b?{machineId:b}:{}}:t.sessionId?{view:"sessions",sessionId:t.sessionId,...b?{machineId:b}:{}}:null,q=t=>{const l=R(t);l&&(C(!1),z(r,l,{returnTo:d}))};return e.jsxs("div",{className:"s-thread-center-header",onClick:t=>{t.target?.closest("button,a,input,select,textarea")||!i||!j||z(r,j,{returnTo:d})},style:i&&j?{cursor:"pointer"}:void 0,onContextMenu:t=>{const l=[{kind:"action",label:"Copy Title",onSelect:()=>{M(m)}}];c&&l.push({kind:"action",label:"Copy Agent ID",onSelect:()=>{M(c)}}),!c&&E&&l.push({kind:"action",label:"Copy Session ID",onSelect:()=>{M(E)}}),l.push({kind:"action",label:"Copy Conversation ID",onSelect:()=>{M(x)}}),v(t,l)},children:[n&&e.jsx(re,{slot:"conversation",fallback:{view:"inbox"},navigate:r,label:s??"Back",className:"s-thread-header-back"}),e.jsx("div",{className:"s-thread-center-header-info",children:i&&j?e.jsx("button",{type:"button",className:"s-thread-center-header-name",title:`Open ${m} details`,onClick:()=>z(r,j,{returnTo:d}),children:m}):e.jsx("span",{className:"s-thread-center-header-name",children:m})}),e.jsxs("div",{className:"s-thread-center-header-right",children:[e.jsx("div",{className:"s-thread-view-toggle",role:"group","aria-label":"Conversation view",children:ye.map(t=>e.jsx("button",{type:"button",className:`s-thread-view-option${u===t.id?" s-thread-view-option--on":""}`,"aria-pressed":u===t.id,title:t.hint,onClick:()=>y(t.id),children:t.label},t.id))}),f.length>0&&e.jsxs("div",{className:"s-thread-participants",ref:t=>{A.current=t,L.current=t},"aria-label":"Conversation participants",children:[$.map((t,l)=>{const g=[t.harness,t.model,t.reasoningEffort].filter(Boolean).join(" · ")||null,F=t.agent?ne(t.agent.state??null,t.agent):null,D=t.agent?ae(t.agent.state??null,t.agent):"Session participant",V=R(t),X=V?t.agent?"Open profile":"Open session":null,Q=[t.name,g,D,X].filter(Boolean).join(", "),K=e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"s-thread-participant-face",children:[e.jsx(oe,{}),e.jsx(P,{agent:t.agent??void 0,name:t.name,placement:"turn",size:28,className:"s-thread-participant-avatar"})]}),t.harness?e.jsx(te,{harness:t.harness,size:9,className:"s-thread-participant-harness",title:null}):null,e.jsx(B,{name:t.name,runtime:g,state:D,action:X})]}),_={className:"s-thread-participant",style:I(k,l,t.harness),"data-state":F??void 0,"data-compact-hidden":l>=2?"true":void 0,"data-narrow-hidden":l>=1?"true":void 0,"aria-label":Q};return V?e.jsx("button",{type:"button",..._,className:`${_.className} s-thread-participant--button`,onClick:()=>q(t),children:K},t.id):e.jsx("span",{..._,role:"group",tabIndex:0,children:K},t.id)}),O>0?e.jsx(H,{count:O,className:"s-thread-participant--desktop-overflow",style:I(k,$.length),rosterId:w,expanded:N,onClick:()=>C(t=>!t)}):null,U>0?e.jsx(H,{count:U,className:"s-thread-participant--compact-overflow",style:I(k,2),rosterId:w,expanded:N,onClick:()=>C(t=>!t)}):null,W>0?e.jsx(H,{count:W,className:"s-thread-participant--narrow-overflow",style:I(k,1),rosterId:w,expanded:N,onClick:()=>C(t=>!t)}):null,h.active?e.jsxs("span",{className:"s-thread-participant s-thread-participant--operator",style:I(k,k-1),role:"group",tabIndex:0,"aria-label":`${h.name}, you, in this conversation`,children:[e.jsx("span",{className:"s-thread-participant-face",children:e.jsx(P,{name:h.name,placement:"turn",size:28,className:"s-thread-participant-avatar"})}),e.jsx(B,{name:`${h.name} (you)`,runtime:null,state:"In this conversation",action:null})]}):e.jsxs("span",{className:"s-thread-participant-observer",role:"group",tabIndex:0,"aria-label":`${h.name}, observing, not in this conversation`,children:[e.jsx(ce,{size:15,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx(B,{name:h.name,runtime:null,state:"Observing, not in this conversation",action:null})]}),N?e.jsxs("div",{id:w,className:"s-thread-participant-roster",role:"dialog","aria-label":"Conversation participants",onClick:t=>t.stopPropagation(),children:[e.jsx("strong",{className:"s-thread-participant-roster-title",children:"Participants"}),e.jsxs("div",{className:"s-thread-participant-roster-list",children:[f.map(t=>{const l=R(t),g=[t.harness,t.model].filter(Boolean).join(" · "),F=e.jsxs(e.Fragment,{children:[e.jsx(P,{agent:t.agent??void 0,name:t.name,placement:"turn",size:24,className:"s-thread-participant-roster-avatar"}),e.jsxs("span",{children:[e.jsx("strong",{children:t.name}),g?e.jsx("small",{children:g}):null]})]});return l?e.jsx("button",{type:"button",className:"s-thread-participant-roster-row",onClick:()=>q(t),children:F},t.id):e.jsx("div",{className:"s-thread-participant-roster-row",children:F},t.id)}),h.active?e.jsxs("div",{className:"s-thread-participant-roster-row",children:[e.jsx(P,{name:h.name,placement:"turn",size:24,className:"s-thread-participant-roster-avatar"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[h.name," (you)"]}),e.jsx("small",{children:"Operator"})]})]}):null]})]}):null]}),p&&e.jsx("button",{type:"button",className:`s-thread-add-participant-trigger${p.on?" is-on":""}`,onClick:p.toggle,title:p.on?"Close the column beside the stage":"Keep this conversation beside the stage","aria-label":p.on?"Close beside":"Keep beside","aria-pressed":p.on,children:e.jsx(de,{size:14,strokeWidth:1.9,"aria-hidden":"true"})}),o&&e.jsx("button",{type:"button",className:"s-thread-add-participant-trigger",onClick:a,title:"Add participant","aria-label":"Add participant",children:e.jsx(pe,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})]})]})}function yt({canonicalConversationId:n,conversationAlias:s}){return e.jsxs("div",{className:"s-thread-identity-row",children:[e.jsxs("button",{type:"button",className:"s-thread-identity-chip",title:n,onClick:()=>{M(n)},children:[e.jsx("span",{children:ie()}),e.jsx("strong",{children:le(n)})]}),s&&e.jsxs("span",{className:"s-thread-identity-chip",title:s,children:[e.jsx("span",{children:"Alias"}),e.jsx("strong",{children:s})]})]})}function wt({agents:n,addParticipantId:s,setAddParticipantId:i,addingParticipant:r,addParticipantError:d,onCancel:x,onSubmit:m}){return e.jsxs("form",{className:"s-thread-add-participant",onSubmit:c=>{c.preventDefault(),m()},children:[e.jsxs("div",{className:"s-thread-add-participant-row",children:[e.jsxs("div",{className:"s-thread-add-participant-field",children:[e.jsx("label",{className:"s-thread-add-participant-label",htmlFor:"thread-add-participant-select",children:"Agent"}),e.jsx("select",{id:"thread-add-participant-select",className:"s-thread-add-participant-select",value:s,onChange:c=>i(c.target.value),autoFocus:!0,children:n.map(c=>e.jsx("option",{value:c.id,children:c.name},c.id))})]}),e.jsxs("div",{className:"s-thread-add-participant-actions",children:[e.jsx("button",{type:"button",className:"s-btn s-btn-sm",onClick:x,disabled:r,children:"Cancel"}),e.jsx("button",{type:"submit",className:"s-btn s-btn-primary s-btn-sm",disabled:r||s.trim().length===0,children:r?"Adding...":"Add"})]})]}),d&&e.jsx("div",{className:"s-thread-add-participant-error",children:d})]})}export{wt as AddParticipantForm,bt as ConversationHeader,yt as ConversationIdentityRow};