@openscout/scout 0.2.86 → 0.2.90

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 (462) hide show
  1. package/README.md +10 -5
  2. package/bin/scoutd +0 -0
  3. package/dist/build-manifest.json +4 -4
  4. package/dist/client/assets/ActivityScreen-BUeb4ERK.js +1 -0
  5. package/dist/client/assets/{AddProjectForm-BNRpRPod.js → AddProjectForm-DtTfn4Zk.js} +1 -1
  6. package/dist/client/assets/AgentAvatar-CneOa70z.js +1 -0
  7. package/dist/client/assets/AgentConfigurationScreen-CkZ7EjZh.js +1 -0
  8. package/dist/client/assets/AgentDefinitionsWorkspace-0Y3kqMtv.js +1 -0
  9. package/dist/client/assets/{AgentDetailCard-FelCxQrT.js → AgentDetailCard-Dtc02KUO.js} +1 -1
  10. package/dist/client/assets/AgentFloorView-B5raPB_U.js +1 -0
  11. package/dist/client/assets/AgentInfoScreen-DFG4ElZD.js +1 -0
  12. package/dist/client/assets/{AgentLaneCard-CRDG74C1.js → AgentLaneCard-BRAkw8YJ.js} +1 -1
  13. package/dist/client/assets/{AgentLaneChrome-CWFqUdch.js → AgentLaneChrome-T8QE5742.js} +1 -1
  14. package/dist/client/assets/AgentLaneDetailSheet-C8RYotnv.js +4 -0
  15. package/dist/client/assets/{AgentLaneSummaryResize-yTM4GQAJ.js → AgentLaneSummaryResize-FyYweLo_.js} +1 -1
  16. package/dist/client/assets/AgentLanesEmbedScreen-Br7cmZVO.js +1 -0
  17. package/dist/client/assets/{AgentLanesPreflight-DJeDRTAN.js → AgentLanesPreflight-Cil3dNwu.js} +1 -1
  18. package/dist/client/assets/AgentLanesView-DPfO8MOo.js +2 -0
  19. package/dist/client/assets/{AgentLiveActions-Bn3zeZBN.js → AgentLiveActions-DwScaVRF.js} +1 -1
  20. package/dist/client/assets/AgentSessions-DKoWA0Lm.js +6 -0
  21. package/dist/client/assets/AgentsConsole-DoBIWGoq.js +1 -0
  22. package/dist/client/assets/AgentsScreen-JuUiSuwY.js +1 -0
  23. package/dist/client/assets/AgentsSubnav-BV0WAgzf.js +1 -0
  24. package/dist/client/assets/{AtopView-DymBCiXv.js → AtopView-ycxMrRwp.js} +1 -1
  25. package/dist/client/assets/BackToPicker-D6WgIDb-.js +1 -0
  26. package/dist/client/assets/BriefingDetailScreen-Zw-taW1s.js +6 -0
  27. package/dist/client/assets/{BriefingsScreen-CLvSOJjy.js → BriefingsScreen-BerYOoWS.js} +1 -1
  28. package/dist/client/assets/{BrokerMetadataPanel-DFAH-NO6.js → BrokerMetadataPanel-Cu93j-Ga.js} +1 -1
  29. package/dist/client/assets/BrokerScreen-CeN90URH.js +5 -0
  30. package/dist/client/assets/ChatCollapsedStrip-DdKyMSEM.js +1 -0
  31. package/dist/client/assets/{CodeDiffPane-C9HT1dCT.js → CodeDiffPane-BjCOBLze.js} +1 -1
  32. package/dist/client/assets/{CodeProjectPicker-5Y3GvXkM.js → CodeProjectPicker-NSGdCaK0.js} +1 -1
  33. package/dist/client/assets/{CodeScreen-DpN9kQvm.js → CodeScreen-CA9Sq6Dx.js} +1 -1
  34. package/dist/client/assets/ContextMenu-DnFcmfMR.js +1 -0
  35. package/dist/client/assets/ConversationComposer-CjRXFkvY.js +1 -0
  36. package/dist/client/assets/ConversationFeedRows-CgRTIpAv.js +1 -0
  37. package/dist/client/assets/ConversationHeader-CRmdtuL7.js +1 -0
  38. package/dist/client/assets/ConversationPanels-DCkcLIHk.js +2 -0
  39. package/dist/client/assets/ConversationScreen-Br0QQ3xo.js +1 -0
  40. package/dist/client/assets/ConversationScreen-yIKEsm-8.css +1 -0
  41. package/dist/client/assets/ConversationStatus-BJ1CMbAv.js +1 -0
  42. package/dist/client/assets/{DataTable-oJP339bX.js → DataTable-Dzqiaha4.js} +1 -1
  43. package/dist/client/assets/{DispatchAftermath-CH02HAVw.js → DispatchAftermath-B0WMg_z3.js} +1 -1
  44. package/dist/client/assets/DocumentFocusViewer-CZVVIAD5.js +1 -0
  45. package/dist/client/assets/{EmbeddableSurfacesLab-84b9I3fy.js → EmbeddableSurfacesLab-C3a7hJWO.js} +1 -1
  46. package/dist/client/assets/{EmptyState-BnDda92b.js → EmptyState-CYNJZMrZ.js} +1 -1
  47. package/dist/client/assets/{FileViewerPane-Dg7_88pv.js → FileViewerPane-Fwt8_KmD.js} +1 -1
  48. package/dist/client/assets/FleetSearch-Dsi_l2KW.js +1 -0
  49. package/dist/client/assets/FleetSearch-EXOe8ulE.css +1 -0
  50. package/dist/client/assets/FlightObserveScreen-g_tiGmvz.js +1 -0
  51. package/dist/client/assets/{FollowScreen-DcFBqr6l.js → FollowScreen-Bb_rcrzi.js} +1 -1
  52. package/dist/client/assets/{HarnessMark-DGZ6o6Ct.js → HarnessMark-DrE57dUq.js} +1 -1
  53. package/dist/client/assets/HarnessesScreen-CAsCJ_tG.js +1 -0
  54. package/dist/client/assets/{HerdrSession-DV2hD6Yh.js → HerdrSession-1eVu9Owj.js} +1 -1
  55. package/dist/client/assets/HomeHero-DEl-WBsT.css +1 -0
  56. package/dist/client/assets/HomeHero-W445QrG1.js +1 -0
  57. package/dist/client/assets/{KnowledgeSearchInspector-DNQjeWZO.js → KnowledgeSearchInspector-CbPVg3fr.js} +1 -1
  58. package/dist/client/assets/KnowledgeSearchScreen-C1lN1xJk.js +1 -0
  59. package/dist/client/assets/{LaneToolHoverCard-197xYmRp.js → LaneToolHoverCard-BkBcDYm-.js} +1 -1
  60. package/dist/client/assets/LaneTraceDetailSheet-CzTd44rf.js +1 -0
  61. package/dist/client/assets/{LaneTraceEventFocus-C9cmqxnK.js → LaneTraceEventFocus-BmMmPTyJ.js} +1 -1
  62. package/dist/client/assets/{MeshCanvas-C3_2p9B6.js → MeshCanvas-DwkjsiJ5.js} +2 -2
  63. package/dist/client/assets/{MeshCanvasMinimap-ZTjYWXTZ.js → MeshCanvasMinimap-vmCpU1sD.js} +1 -1
  64. package/dist/client/assets/MeshScreen-CkMepUpT.js +1 -0
  65. package/dist/client/assets/{MeshTopologyView-CBjHbAZw.js → MeshTopologyView-BD2xLE2C.js} +2 -2
  66. package/dist/client/assets/MessageComposerSuggestions-qbalTne_.js +1 -0
  67. package/dist/client/assets/MessagesScreen-C8UynyLC.js +1 -0
  68. package/dist/client/assets/{MissionContextRail-DXkrbcnZ.js → MissionContextRail-D5MEP2f4.js} +1 -1
  69. package/dist/client/assets/MissionControlView-K_I7eftL.js +1 -0
  70. package/dist/client/assets/MissionFocusOverlay-CWKLdUKG.js +1 -0
  71. package/dist/client/assets/MissionLeftAgentRow-ByGrNAcs.js +1 -0
  72. package/dist/client/assets/MissionLogPane-ZwHJ137T.js +1 -0
  73. package/dist/client/assets/{NewAgentModal-C18Ajovd.js → NewAgentModal-Do9aVvan.js} +1 -1
  74. package/dist/client/assets/NewChatComposer-DKlNX1UA.js +19 -0
  75. package/dist/client/assets/{NewChatOrigin-DpHS2Wmt.js → NewChatOrigin-DXPvX-hh.js} +1 -1
  76. package/dist/client/assets/ObserveEmbedScreen-Dghsq2on.js +2 -0
  77. package/dist/client/assets/ObserveTextFlow-DWNlmTVm.js +2 -0
  78. package/dist/client/assets/ObservedTopologyPanel-BlmGoxCE.js +2 -0
  79. package/dist/client/assets/OpenScoutAppShell-DDqQi-oe.js +87 -0
  80. package/dist/client/assets/OpsAgentsView-Bn_fGBdo.js +1 -0
  81. package/dist/client/assets/OpsScreen-DHnT-Q9R.js +1 -0
  82. package/dist/client/assets/OpsSubnav-CJRD7MjM.js +1 -0
  83. package/dist/client/assets/PlanView-B6gKo543.js +1 -0
  84. package/dist/client/assets/ProjectAgentProfile-Be1VOkI4.js +1 -0
  85. package/dist/client/assets/{ProjectAgentProfileBar-IDEpKZvI.js → ProjectAgentProfileBar-C5QWwZCn.js} +1 -1
  86. package/dist/client/assets/ProjectAgentProfileHero-DC7Dd8VL.js +1 -0
  87. package/dist/client/assets/ProjectsInbox-DCLrDmj1.js +2 -0
  88. package/dist/client/assets/ProjectsRail-C4hiXYSb.js +1 -0
  89. package/dist/client/assets/ProjectsScreen-jruZRjgD.js +1 -0
  90. package/dist/client/assets/ProjectsThreadAside-DYmL2dCY.js +1 -0
  91. package/dist/client/assets/Provider-p-xuaAoE.js +1 -0
  92. package/dist/client/assets/RailRow-Cf9LOiEj.css +1 -0
  93. package/dist/client/assets/RailRow-bRkkXIpR.js +1 -0
  94. package/dist/client/assets/RawSessionsTable-B7WKmXrk.js +1 -0
  95. package/dist/client/assets/RealtimeVoiceScreen-BzP3BQq9.js +1 -0
  96. package/dist/client/assets/{RepoDiffEmbedScreen-C97Euf4s.js → RepoDiffEmbedScreen-xjzjcJ_c.js} +1 -1
  97. package/dist/client/assets/{RepoDiffPageScreen-DUKLzkrW.js → RepoDiffPageScreen-DRzIY-dk.js} +1 -1
  98. package/dist/client/assets/RepoDiffViewer-CNDp01KM.js +7 -0
  99. package/dist/client/assets/RepoDiffViewerLazy-b6vjYxez.js +2 -0
  100. package/dist/client/assets/{ReposScreen-BR1LqTf1.js → ReposScreen-CpaLC_NU.js} +6 -6
  101. package/dist/client/assets/ScoutDeckSurface-DkpZ-0DH.js +1 -0
  102. package/dist/client/assets/{ScoutSurface-BMKW7hSu.js → ScoutSurface-BENBUt5-.js} +1 -1
  103. package/dist/client/assets/ScoutbotBroadcastChip-CGZyxS5H.js +2 -0
  104. package/dist/client/assets/{agent-autocomplete-C7xwIcwd.css → ScoutbotBroadcastChip-CxtYZWPZ.css} +1 -1
  105. package/dist/client/assets/{ScoutbotFxLab-0O2iDRrF.js → ScoutbotFxLab-Bk2ZsfPp.js} +1 -1
  106. package/dist/client/assets/ScoutbotRealtimeVoiceCall-n63LdBZs.js +1 -0
  107. package/dist/client/assets/{SecondaryNav-cYTw2p39.js → SecondaryNav-B4IsujYh.js} +1 -1
  108. package/dist/client/assets/{SessionEmbedScreen-mNjT0R6j.js → SessionEmbedScreen-CPfH-jqN.js} +1 -1
  109. package/dist/client/assets/{SessionObserve-zAlFbwFn.js → SessionObserve-B-SkP3tu.js} +1 -1
  110. package/dist/client/assets/{SessionObserveEvidence-BVawzqoE.js → SessionObserveEvidence-CF5jnH3-.js} +1 -1
  111. package/dist/client/assets/SessionRefScreen-C-4jjmVG.js +1 -0
  112. package/dist/client/assets/SessionsScreen-HAjFvmIq.js +1 -0
  113. package/dist/client/assets/SettingsDrawer-DATxwZrn.js +3 -0
  114. package/dist/client/assets/SettingsDrawer-UX7pFJU_.css +1 -0
  115. package/dist/client/assets/SettingsScreen-Bu53X7J_.js +1 -0
  116. package/dist/client/assets/{ShikiPane-DyEJdcvb.js → ShikiPane-DH8yYDks.js} +1 -1
  117. package/dist/client/assets/{SlidePanel-Dg8_styW.js → SlidePanel-RFXJpfUa.js} +1 -1
  118. package/dist/client/assets/{SpriteAvatar-DMrSssNZ.js → SpriteAvatar-CEYdCzem.js} +1 -1
  119. package/dist/client/assets/{StatusPill-NFFnphtx.js → StatusPill-9uy70ttd.js} +1 -1
  120. package/dist/client/assets/{TailView-BfObcZu3.js → TailView-6bIrgdxN.js} +2 -2
  121. package/dist/client/assets/Terminal-BI6km7H4.js +1 -0
  122. package/dist/client/assets/TerminalEmbedScreen-D4JOWwtm.js +1 -0
  123. package/dist/client/assets/{TextDocumentSurface-C7fGlzY8.js → TextDocumentSurface-BcP9vvji.js} +1 -1
  124. package/dist/client/assets/{TmuxPeek-BSeKIjnX.js → TmuxPeek-IaWqCgyJ.js} +1 -1
  125. package/dist/client/assets/{VoicePermissionsPanel-BkIGTzgw.js → VoicePermissionsPanel-C80iZxgy.js} +1 -1
  126. package/dist/client/assets/{WorkDetailScreen-Cwe-KWK4.js → WorkDetailScreen-CweZ6fEd.js} +3 -3
  127. package/dist/client/assets/WorkFilesViewer-Dy_-06iI.js +1 -0
  128. package/dist/client/assets/{activity-D4W2XZY2.js → activity-DS0u0Itf.js} +1 -1
  129. package/dist/client/assets/{addon-fit-Celjj2yn.js → addon-fit-CN888B3D.js} +1 -1
  130. package/dist/client/assets/{addon-webgl-Cu4tJ21-.js → addon-webgl-CoAnanQS.js} +1 -1
  131. package/dist/client/assets/{agent-essentials-CngjUhQj.js → agent-essentials-CuK4G_zS.js} +1 -1
  132. package/dist/client/assets/agent-identity-BxCsXnDp.js +1 -0
  133. package/dist/client/assets/{agent-lane-card-model-CSugZCdy.js → agent-lane-card-model-q4cwzLX4.js} +1 -1
  134. package/dist/client/assets/{agent-lane-detail-D5EIlX7_.js → agent-lane-detail-BNNm6FNu.js} +1 -1
  135. package/dist/client/assets/{agent-lane-preview-BhplDYGf.js → agent-lane-preview-C33Dwpn7.js} +1 -1
  136. package/dist/client/assets/{agent-lanes-DlqcEf0l.css → agent-lanes-BDNktFBZ.css} +1 -1
  137. package/dist/client/assets/{agent-lanes-model-BKOs_32K.js → agent-lanes-model-VYQ5a68i.js} +2 -2
  138. package/dist/client/assets/{api-BHHEUSS3.js → api-BkjHJfgJ.js} +1 -1
  139. package/dist/client/assets/api-h5zurxmi.js +1 -0
  140. package/dist/client/assets/{arc.es-DNT50Y-_.js → arc.es-BET9ev6q.js} +1 -1
  141. package/dist/client/assets/arrow-down-DxxPnPwh.js +1 -0
  142. package/dist/client/assets/{arrow-left-i-h6JAgs.js → arrow-left-CXDkJuCg.js} +1 -1
  143. package/dist/client/assets/{arrow-up-right-RBC6k8nn.js → arrow-up-right-Bj8RjSqW.js} +1 -1
  144. package/dist/client/assets/{bot-r2IuAuJd.js → bot-BSGSicKC.js} +1 -1
  145. package/dist/client/assets/broker-display-pp33bLsu.js +2 -0
  146. package/dist/client/assets/{cache-BO2Bd_LV.js → cache-Dr0why2k.js} +1 -1
  147. package/dist/client/assets/{check-Bfs7hMb1.js → check-BfA0T8UD.js} +1 -1
  148. package/dist/client/assets/{chevron-down-Da5tV19_.js → chevron-down-BVg09D6U.js} +1 -1
  149. package/dist/client/assets/{chevron-right-BMqtBds_.js → chevron-right-CaEwYkxE.js} +1 -1
  150. package/dist/client/assets/{chunk-HRAB3GC3-BUVYXXAp.js → chunk-HRAB3GC3-HhKwnZCi.js} +1 -1
  151. package/dist/client/assets/chunk-JTPDIGGW-DX2eTIQ_.js +46 -0
  152. package/dist/client/assets/chunk-T65CQEWV-D-bOfuCH.js +1 -0
  153. package/dist/client/assets/chunk-YOZR3KYS-oS9dlQCI.js +2 -0
  154. package/dist/client/assets/{clock-DaKLp6Xd.js → clock-C3TUL7D7.js} +1 -1
  155. package/dist/client/assets/{code-xml-ByQsfOI_.js → code-xml-Dbvjk9Kw.js} +1 -1
  156. package/dist/client/assets/collapsed-strip-Dz-of2SM.css +1 -0
  157. package/dist/client/assets/content-BQuEedeL.js +1 -0
  158. package/dist/client/assets/content-BUae-L_N.js +1 -0
  159. package/dist/client/assets/content-BfG98J1k.js +1 -0
  160. package/dist/client/assets/content-BkVTfkAC.js +1 -0
  161. package/dist/client/assets/content-BsNMos_d.js +1 -0
  162. package/dist/client/assets/content-C2TZOKSE.js +1 -0
  163. package/dist/client/assets/content-CCn98eSk.js +1 -0
  164. package/dist/client/assets/content-CJuH5cDP.js +1 -0
  165. package/dist/client/assets/content-CYnPp9yo.js +1 -0
  166. package/dist/client/assets/content-CcrUhm4P.js +1 -0
  167. package/dist/client/assets/content-CiOMtgQc.js +1 -0
  168. package/dist/client/assets/content-CxuVONeQ.js +1 -0
  169. package/dist/client/assets/content-Dmq9n1_L.js +1 -0
  170. package/dist/client/assets/content-DskHP2NI.js +1 -0
  171. package/dist/client/assets/content-DvvzL2HK.js +1 -0
  172. package/dist/client/assets/content-snCAUbwv.js +1 -0
  173. package/dist/client/assets/{conversation-icons-C4amK8Sa.js → conversation-icons-DmC_Ak3z.js} +1 -1
  174. package/dist/client/assets/conversation-model-CHwHZNw-.js +1 -0
  175. package/dist/client/assets/conversation-motion-features-DPiGTO21.js +1 -0
  176. package/dist/client/assets/{copy-De4s38o2.js → copy-C79v_7D-.js} +1 -1
  177. package/dist/client/assets/{createLucideIcon-DLlxGjKt.js → createLucideIcon-DCq_3fQn.js} +1 -1
  178. package/dist/client/assets/ctx-panel-B4s49N9e.css +1 -0
  179. package/dist/client/assets/discover-IEnbrH8_.js +2 -0
  180. package/dist/client/assets/embed-entry-XUPb-AzL.js +2 -0
  181. package/dist/client/assets/{external-link-BGHC_naA.js → external-link-Dd8xaveL.js} +1 -1
  182. package/dist/client/assets/{eye-BeCSqJn1.js → eye-DkU59kfl.js} +1 -1
  183. package/dist/client/assets/{file-text-BVhkMWyC.js → file-text-BITQqGtF.js} +1 -1
  184. package/dist/client/assets/gestures-B5rLNRpi.js +1 -0
  185. package/dist/client/assets/home-moving-signal-Bs635mVw.js +1 -0
  186. package/dist/client/assets/home-moving-signal-CAa0V91u.css +1 -0
  187. package/dist/client/assets/home-now-card-VxlLjg1A.js +1 -0
  188. package/dist/client/assets/{home-now-card-nano-Djhy6ax0.js → home-now-card-nano-C06GMiwD.js} +1 -1
  189. package/dist/client/assets/hooks-BWiLxTw1.js +2 -0
  190. package/dist/client/assets/index-9as_JTUs.css +1 -0
  191. package/dist/client/assets/index-BTj2MguM.js +1 -0
  192. package/dist/client/assets/index-BZovGpDk.js +10 -0
  193. package/dist/client/assets/index-CvF09yvf.css +1 -0
  194. package/dist/client/assets/index-DiiEQwdc.js +1 -0
  195. package/dist/client/assets/index-vbaJ8sin.js +1 -0
  196. package/dist/client/assets/inspector-panel-C96HcyK5.js +2 -0
  197. package/dist/client/assets/{keyboard-nav-7iEtvu9P.js → keyboard-nav-CHo_xmjw.js} +1 -1
  198. package/dist/client/assets/{lane-observe-vfyACHi0.js → lane-observe-BA3g9aVd.js} +1 -1
  199. package/dist/client/assets/{lane-roster-store-pHT3TAVs.js → lane-roster-store-B6ybJlHJ.js} +1 -1
  200. package/dist/client/assets/left-Bk3XnxPD.css +1 -0
  201. package/dist/client/assets/left-BuJ0wJW1.js +2 -0
  202. package/dist/client/assets/left-C6Zj3cR4.js +1 -0
  203. package/dist/client/assets/left-CCoobxPS.css +1 -0
  204. package/dist/client/assets/left-COMAiMfB.js +2 -0
  205. package/dist/client/assets/left-Ce4WKYPK.js +1 -0
  206. package/dist/client/assets/left-DMJkmJOF.js +1 -0
  207. package/dist/client/assets/left-DrCbY6ja.js +1 -0
  208. package/dist/client/assets/left-agents-BuSyVNGE.js +1 -0
  209. package/dist/client/assets/left-default-DRHywOKX.js +1 -0
  210. package/dist/client/assets/left-l92tw5Kc.js +1 -0
  211. package/dist/client/assets/left-lanes-4-aUyyrV.js +1 -0
  212. package/dist/client/assets/left-mission-e849d_Td.js +1 -0
  213. package/dist/client/assets/left-plan-MchYwAB_.js +2 -0
  214. package/dist/client/assets/library-DygjpA6u.js +1 -0
  215. package/dist/client/assets/{loader-circle-DoT8gpw6.js → loader-circle-B-l2Wj3-.js} +1 -1
  216. package/dist/client/assets/{local-agents-BMadXuP1.js → local-agents-Wof5knTJ.js} +1 -1
  217. package/dist/client/assets/{mentions-Cd6XticV.js → mentions-BjXfeF7t.js} +1 -1
  218. package/dist/client/assets/{mesh-ops-C0zCLTR8.js → mesh-ops-C1gq8zKf.js} +1 -1
  219. package/dist/client/assets/{mesh-view-store-Cpqil_2D.js → mesh-view-store-B56D3f77.js} +1 -1
  220. package/dist/client/assets/{message-circle-44KSmbvQ.js → message-circle-BwVx5X0q.js} +1 -1
  221. package/dist/client/assets/{message-markup-DAnnGpWr.js → message-markup-DlVX-iuc.js} +1 -1
  222. package/dist/client/assets/{message-square-DlY4EneU.js → message-square-BnkG6tae.js} +1 -1
  223. package/dist/client/assets/mission-control-m3BTDQ9l.css +1 -0
  224. package/dist/client/assets/{mission-control-store-DtjtRs9Z.js → mission-control-store-CMgIVjLJ.js} +1 -1
  225. package/dist/client/assets/model-Co0zkMIc.js +1 -0
  226. package/dist/client/assets/{observe-DL5_8-Zj.js → observe-DVHAcIrv.js} +1 -1
  227. package/dist/client/assets/{operator-attention-BqoWAlhp.js → operator-attention-BwSPeheT.js} +1 -1
  228. package/dist/client/assets/{page-status-CW8co39E.js → page-status-Bg2hd27j.js} +1 -1
  229. package/dist/client/assets/paperclip-DblaLD_N.js +1 -0
  230. package/dist/client/assets/plan-view-D56fneVF.css +1 -0
  231. package/dist/client/assets/{plus-64n9qucr.js → plus-BAI0t5g9.js} +1 -1
  232. package/dist/client/assets/profile-3Q4sUtvJ.js +1 -0
  233. package/dist/client/assets/projects-inbox-Da2hYEn6.js +1 -0
  234. package/dist/client/assets/{radio-BjpQTKT0.js → radio-BGtkyCG9.js} +1 -1
  235. package/dist/client/assets/{refresh-cw-IgN2fZLM.js → refresh-cw-DtF8xPqX.js} +1 -1
  236. package/dist/client/assets/resolve-panes-D4tlKNCT.js +1 -0
  237. package/dist/client/assets/resolve-sidebar-context-B27lj3Ci.js +1 -0
  238. package/dist/client/assets/right-B8qg3JdB.js +1 -0
  239. package/dist/client/assets/{right-B96CBzrV.js → right-BU_W1kSH.js} +1 -1
  240. package/dist/client/assets/right-BlR7h0US.js +1 -0
  241. package/dist/client/assets/right-BwgwTGGd.js +1 -0
  242. package/dist/client/assets/right-ByptvkVX.js +1 -0
  243. package/dist/client/assets/right-CUP-NIDG.js +1 -0
  244. package/dist/client/assets/right-Ch_jrNe2.js +1 -0
  245. package/dist/client/assets/right-Dd2DscRz.js +1 -0
  246. package/dist/client/assets/right-DmVHd8Xj.js +1 -0
  247. package/dist/client/assets/{right-DqiVyo8v.js → right-c4PAdFYZ.js} +1 -1
  248. package/dist/client/assets/{rocket-DnmN_YOD.js → rocket-BWh18pt_.js} +1 -1
  249. package/dist/client/assets/router-63XV_E7f.js +1 -0
  250. package/dist/client/assets/{text-BR9Bap0E.js → runtime-picker-BXKJbLot.js} +1 -1
  251. package/dist/client/assets/runtime-picker-vhm0gtLs.css +1 -0
  252. package/dist/client/assets/{scope-views-Z8aoAmtU.js → scope-views-Dm2_-NPi.js} +1 -1
  253. package/dist/client/assets/scout-voice-D8Q5sZOL.js +1 -0
  254. package/dist/client/assets/{scoutbot-D4vuKzOL.js → scoutbot-BTIErYHo.js} +2 -2
  255. package/dist/client/assets/{scroll-text-DRidbcse.js → scroll-text-DZb3mmYo.js} +1 -1
  256. package/dist/client/assets/{search-BbgsEMXa.js → search-1QMVOxF3.js} +1 -1
  257. package/dist/client/assets/secondaryNavConfig-c0cz3MkJ.js +1 -0
  258. package/dist/client/assets/{selection-bridge-CpzFGx3-.js → selection-bridge-O9C4kGfF.js} +1 -1
  259. package/dist/client/assets/{send-horizontal-BXo2uz3Z.js → send-horizontal-DbyEkGql.js} +1 -1
  260. package/dist/client/assets/{server-Dt3tpiBj.js → server-Bncn9S7r.js} +1 -1
  261. package/dist/client/assets/{session-catalog-CUQ8LUJY.js → session-catalog-DC6BlBBC.js} +1 -1
  262. package/dist/client/assets/{session-table-B4JOKevn.js → session-table-BUPq9Viy.js} +1 -1
  263. package/dist/client/assets/{sliders-horizontal-7V8B3xsf.js → sliders-horizontal-CMe8Bay1.js} +1 -1
  264. package/dist/client/assets/{sparkles-ytTwpCbZ.js → sparkles-_7cTZsIH.js} +1 -1
  265. package/dist/client/assets/{sse-CSozY6mp.js → sse-Bb0EOcU9.js} +1 -1
  266. package/dist/client/assets/system-surfaces-redesign-B7GQhfpw.css +1 -0
  267. package/dist/client/assets/{tail-display-DcliDVkW.js → tail-display-BRcJltQa.js} +1 -1
  268. package/dist/client/assets/{tail-events-CrN-Rmxj.js → tail-events-C12pfUax.js} +1 -1
  269. package/dist/client/assets/{terminal-relay-pSm7_An6.js → terminal-relay-BgfVJXIL.js} +1 -1
  270. package/dist/client/assets/{terminal-sessions-D4dHTRkt.js → terminal-sessions-AmSgHklm.js} +1 -1
  271. package/dist/client/assets/{terminal-takeover-CtA3wcXh.js → terminal-takeover--05EYhJm.js} +1 -1
  272. package/dist/client/assets/{terminal-BiNIXhna.js → terminal-xGf_F3y7.js} +1 -1
  273. package/dist/client/assets/text-DsBWV_4k.js +1 -0
  274. package/dist/client/assets/{use-conversation-list-C0bEXFeH.js → use-conversation-list-DWX02INv.js} +1 -1
  275. package/dist/client/assets/{use-fleet-active-asks-CK4aw-3G.js → use-fleet-active-asks-Cnwa4hTK.js} +1 -1
  276. package/dist/client/assets/{use-mesh-ops-items-QixBijmT.js → use-mesh-ops-items-BRFm37oY.js} +1 -1
  277. package/dist/client/assets/use-reduced-motion-C8cWvIZ3.js +1 -0
  278. package/dist/client/assets/use-scout-dev-flags-FkMreOOb.js +1 -0
  279. package/dist/client/assets/{useAgentHoverCard-6N8b7qsU.js → useAgentHoverCard-DvPZSJK3.js} +1 -1
  280. package/dist/client/assets/useContentSecondaryNav-CNlrhvvx.js +1 -0
  281. package/dist/client/assets/{usePierreRuntime-Bq6mXrgd.js → usePierreRuntime-C8WJ0X3F.js} +1 -1
  282. package/dist/client/assets/{wrench-CQvdf7KT.js → wrench-_tHBGTop.js} +1 -1
  283. package/dist/client/assets/{x-BJyPzFnn.js → x-CrGUKNRv.js} +1 -1
  284. package/dist/client/assets/{xterm-D6dE_wMr.js → xterm-Ks-VlLTq.js} +1 -1
  285. package/dist/client/index.html +2 -2
  286. package/dist/main.mjs +38 -169
  287. package/dist/node/main.mjs +240 -272
  288. package/dist/pairing-runtime-controller.mjs +476 -394
  289. package/dist/runtime/base-daemon.mjs +121 -49
  290. package/dist/runtime/broker-daemon.mjs +60 -171
  291. package/dist/runtime/broker-process-manager.mjs +0 -6
  292. package/dist/runtime/mesh-discover.mjs +0 -6
  293. package/dist/scout-control-plane-web.mjs +477 -672
  294. package/dist/scout-web-server.mjs +477 -672
  295. package/package.json +7 -6
  296. package/dist/client/assets/ActivityScreen-C7AwUogt.js +0 -1
  297. package/dist/client/assets/AgentAvatar-B1xvQ7ej.js +0 -1
  298. package/dist/client/assets/AgentConfigurationScreen-BoBQpyz5.js +0 -1
  299. package/dist/client/assets/AgentDefinitionsWorkspace-rw3vh8Lm.js +0 -1
  300. package/dist/client/assets/AgentFloorView-Crdw8Uo5.js +0 -1
  301. package/dist/client/assets/AgentInfoScreen-Cge7HHbV.js +0 -1
  302. package/dist/client/assets/AgentLaneDetailSheet-DCIIg3Zp.js +0 -4
  303. package/dist/client/assets/AgentLanesEmbedScreen-BJLwXSNp.js +0 -1
  304. package/dist/client/assets/AgentLanesView-CbY9qD0z.js +0 -2
  305. package/dist/client/assets/AgentSessions-czl5zT7A.js +0 -6
  306. package/dist/client/assets/AgentsConsole-CoT2crwq.js +0 -1
  307. package/dist/client/assets/AgentsScreen-BcPM-z1T.js +0 -1
  308. package/dist/client/assets/AgentsSubnav-3_vpn2bT.js +0 -1
  309. package/dist/client/assets/AstronautSuit-BADl7m8x.js +0 -1
  310. package/dist/client/assets/BackToPicker-CqYhOaLB.js +0 -1
  311. package/dist/client/assets/BriefingDetailScreen-DDfZ8ci1.js +0 -1
  312. package/dist/client/assets/BrokerScreen-Bkvu92jk.js +0 -5
  313. package/dist/client/assets/Canvas-KyTsDJlB.js +0 -1
  314. package/dist/client/assets/ChatCollapsedStrip-Bjjqa30K.js +0 -1
  315. package/dist/client/assets/ConversationComposer-Ce7Byw48.js +0 -1
  316. package/dist/client/assets/ConversationFeedRows-DygDfQn_.js +0 -1
  317. package/dist/client/assets/ConversationHeader-C3sg0ULI.js +0 -1
  318. package/dist/client/assets/ConversationPanels-Dg4Y2GgX.js +0 -6
  319. package/dist/client/assets/ConversationScreen-BP5tdz2k.css +0 -1
  320. package/dist/client/assets/ConversationScreen-CjWWmuuh.js +0 -1
  321. package/dist/client/assets/ConversationStatus-BhVIYQza.js +0 -1
  322. package/dist/client/assets/CrewWorkspaces-B6YIyw1z.css +0 -1
  323. package/dist/client/assets/CrewWorkspaces-CDU-wy1Y.js +0 -1
  324. package/dist/client/assets/DocumentFocusViewer-DmtFisY9.js +0 -1
  325. package/dist/client/assets/FlightObserveScreen-DL3Xhl0h.js +0 -1
  326. package/dist/client/assets/HarnessesScreen-DTDL-XaA.js +0 -1
  327. package/dist/client/assets/HomeHero-7JwycwFY.css +0 -1
  328. package/dist/client/assets/HomeHero-CENwVZ45.js +0 -1
  329. package/dist/client/assets/HostAdvisorView-PgiZUkd_.js +0 -1
  330. package/dist/client/assets/KnowledgeSearchScreen-Bj80IgR0.js +0 -1
  331. package/dist/client/assets/LaneTraceDetailSheet-BztwvOv9.js +0 -1
  332. package/dist/client/assets/MeshScreen-lJKaOyGB.js +0 -1
  333. package/dist/client/assets/MessagesScreen-D6MVLvdg.js +0 -1
  334. package/dist/client/assets/MissionControlView-BCH-Zsp4.js +0 -1
  335. package/dist/client/assets/MissionFocusOverlay-DbAliOSF.js +0 -1
  336. package/dist/client/assets/MissionLeftAgentRow-Bx6Pg8_O.js +0 -1
  337. package/dist/client/assets/MissionLogPane-D06c29Y8.js +0 -1
  338. package/dist/client/assets/NewChatComposer-Bgqes0UQ.js +0 -19
  339. package/dist/client/assets/ObserveEmbedScreen-Cmhwai4X.js +0 -2
  340. package/dist/client/assets/ObserveTextFlow-C1f5oize.js +0 -2
  341. package/dist/client/assets/ObservedTopologyPanel-D85P6RAk.js +0 -2
  342. package/dist/client/assets/OpenScoutAppShell-IDI4fuUE.js +0 -88
  343. package/dist/client/assets/OpsAgentsView-yt0JavoB.js +0 -1
  344. package/dist/client/assets/OpsScreen-C3yNQqJE.js +0 -1
  345. package/dist/client/assets/OpsSubnav-BijKI3yG.js +0 -1
  346. package/dist/client/assets/ProjectAgentProfile-DnIeC16r.js +0 -1
  347. package/dist/client/assets/ProjectAgentProfileHero-Bh_aISs-.js +0 -1
  348. package/dist/client/assets/ProjectsInbox-B8Srlklk.js +0 -2
  349. package/dist/client/assets/ProjectsRail-DqAbdvCf.js +0 -1
  350. package/dist/client/assets/ProjectsScreen-DKHQ2iEv.js +0 -1
  351. package/dist/client/assets/ProjectsThreadAside-DpkjYLL2.js +0 -1
  352. package/dist/client/assets/Provider-Ve8yXaWR.js +0 -1
  353. package/dist/client/assets/RailRow-B0sRaJc6.css +0 -1
  354. package/dist/client/assets/RailRow-C4GNGR80.js +0 -1
  355. package/dist/client/assets/RawSessionsTable-Co3vzwsf.js +0 -1
  356. package/dist/client/assets/RealtimeVoiceScreen-DMd1CBAf.js +0 -9
  357. package/dist/client/assets/RepoDiffViewer-CovKjSgb.js +0 -7
  358. package/dist/client/assets/RepoDiffViewerLazy-zIiEmh-e.js +0 -2
  359. package/dist/client/assets/ScoutDeckSurface-BGsVicc2.js +0 -1
  360. package/dist/client/assets/SessionRefScreen-BmKhf29o.js +0 -1
  361. package/dist/client/assets/SessionsScreen-CsSqjIY2.js +0 -1
  362. package/dist/client/assets/SettingsDrawer-Dsj-On_x.css +0 -1
  363. package/dist/client/assets/SettingsDrawer-DwYQTGi8.js +0 -3
  364. package/dist/client/assets/SettingsScreen-Btaku7YM.js +0 -1
  365. package/dist/client/assets/Terminal-Dr-M9U4u.js +0 -1
  366. package/dist/client/assets/TerminalEmbedScreen-BmyZkonh.js +0 -1
  367. package/dist/client/assets/TerminalRelay-lJ2KdMCW.js +0 -46
  368. package/dist/client/assets/WorkFilesViewer-BBtKRBPv.js +0 -1
  369. package/dist/client/assets/agent-autocomplete-Dv-_9dAw.js +0 -2
  370. package/dist/client/assets/agent-identity-DzHGhLdJ.js +0 -1
  371. package/dist/client/assets/agent-specialization-CNrsRbKA.js +0 -1
  372. package/dist/client/assets/api-DEHEgJ9m.js +0 -1
  373. package/dist/client/assets/archive-DH49QqFG.js +0 -1
  374. package/dist/client/assets/arrow-right-B0Yi01Zr.js +0 -1
  375. package/dist/client/assets/broker-display-Q75fupqG.js +0 -2
  376. package/dist/client/assets/collapsed-strip-raJWthAH.css +0 -1
  377. package/dist/client/assets/compass-BepM5iWH.js +0 -1
  378. package/dist/client/assets/content-5hnDC9WE.js +0 -1
  379. package/dist/client/assets/content-BRFZ-a6m.js +0 -1
  380. package/dist/client/assets/content-BYykncDo.js +0 -1
  381. package/dist/client/assets/content-Be6yyWbJ.js +0 -1
  382. package/dist/client/assets/content-Bgl_X3ao.js +0 -1
  383. package/dist/client/assets/content-BopJW1Zx.js +0 -1
  384. package/dist/client/assets/content-Bv2sfg0w.js +0 -1
  385. package/dist/client/assets/content-CMBiIZTg.js +0 -1
  386. package/dist/client/assets/content-CPVqvf5o.js +0 -1
  387. package/dist/client/assets/content-CbwyFqdI.js +0 -1
  388. package/dist/client/assets/content-ClQjAWYi.js +0 -1
  389. package/dist/client/assets/content-Cv2tSAbv.js +0 -1
  390. package/dist/client/assets/content-DFFe3-Ot.js +0 -1
  391. package/dist/client/assets/content-DY5hwBmm.js +0 -1
  392. package/dist/client/assets/content-_IXoxGno.js +0 -1
  393. package/dist/client/assets/content-j_tewJdE.js +0 -1
  394. package/dist/client/assets/conversation-model-CigSPlKA.js +0 -1
  395. package/dist/client/assets/conversation-motion-features-_95aZx_1.js +0 -1
  396. package/dist/client/assets/cpu-Bc268H9Q.js +0 -1
  397. package/dist/client/assets/credentials-qwds23lv.js +0 -1
  398. package/dist/client/assets/ctx-panel-D_HJ3nhb.css +0 -1
  399. package/dist/client/assets/discover-DOlk1hG7.js +0 -2
  400. package/dist/client/assets/embed-entry-BqDJfa87.js +0 -2
  401. package/dist/client/assets/file-code-corner-CX53Cd9y.js +0 -1
  402. package/dist/client/assets/gauge-CPcEPmNt.js +0 -1
  403. package/dist/client/assets/gestures-BXIGYk_p.js +0 -1
  404. package/dist/client/assets/git-branch-q8Ayc8py.js +0 -1
  405. package/dist/client/assets/home-moving-signal-DMguaRWR.css +0 -1
  406. package/dist/client/assets/home-moving-signal-Dm2Z2x0p.js +0 -1
  407. package/dist/client/assets/home-now-card-xU5LGP7q.js +0 -1
  408. package/dist/client/assets/hooks-CdKx1CxP.js +0 -2
  409. package/dist/client/assets/host-advisor-B2Fqs5Dd.css +0 -1
  410. package/dist/client/assets/index-Bli6bTLU.js +0 -10
  411. package/dist/client/assets/index-D7UEHxaY.js +0 -1
  412. package/dist/client/assets/index-DFdlQs_c.js +0 -1
  413. package/dist/client/assets/index-DhfOMK0D.js +0 -1
  414. package/dist/client/assets/index-DzlEgstl.css +0 -1
  415. package/dist/client/assets/index-wLwc74Pu.css +0 -1
  416. package/dist/client/assets/inspector-panel-B8pigRsg.js +0 -2
  417. package/dist/client/assets/layers-BiZA-Clc.js +0 -1
  418. package/dist/client/assets/layout-grid-DMpv9CZM.js +0 -1
  419. package/dist/client/assets/left-BayK4ocL.js +0 -1
  420. package/dist/client/assets/left-BhZhSrS2.js +0 -1
  421. package/dist/client/assets/left-BhgU6NOA.js +0 -1
  422. package/dist/client/assets/left-CY_FGnN7.js +0 -1
  423. package/dist/client/assets/left-Cq8mjamr.js +0 -1
  424. package/dist/client/assets/left-DH44V4I_.css +0 -1
  425. package/dist/client/assets/left-Dnqla0b5.js +0 -2
  426. package/dist/client/assets/left-Dy403II2.js +0 -2
  427. package/dist/client/assets/left-R2OOE7VG.css +0 -1
  428. package/dist/client/assets/left-advisor-oOAtJ9YE.js +0 -1
  429. package/dist/client/assets/left-agents-TIKe8vW8.js +0 -1
  430. package/dist/client/assets/left-default-owH0Lwxo.js +0 -1
  431. package/dist/client/assets/left-lanes-BE_co2lP.js +0 -1
  432. package/dist/client/assets/left-mission-C_nWUtfA.js +0 -1
  433. package/dist/client/assets/library-BSVrjn_m.js +0 -1
  434. package/dist/client/assets/mission-control-CnU7dNt1.css +0 -1
  435. package/dist/client/assets/persistent-state-DYjP8lqN.js +0 -1
  436. package/dist/client/assets/profile-BkmuseW7.js +0 -1
  437. package/dist/client/assets/projects-inbox-C0umZMSY.js +0 -1
  438. package/dist/client/assets/provider-CX9EWecp.js +0 -1
  439. package/dist/client/assets/proxy-C35W-YHZ.js +0 -1
  440. package/dist/client/assets/resolve-panes-CCqRkQdM.js +0 -1
  441. package/dist/client/assets/resolve-sidebar-context-JkxY8qsV.js +0 -1
  442. package/dist/client/assets/right-B3PQUHd5.js +0 -1
  443. package/dist/client/assets/right-BPirlFC8.js +0 -1
  444. package/dist/client/assets/right-BUP2Ro_M.js +0 -1
  445. package/dist/client/assets/right-BVWYPIFX.js +0 -1
  446. package/dist/client/assets/right-BoAJxwA3.js +0 -1
  447. package/dist/client/assets/right-C2aOC2li.js +0 -1
  448. package/dist/client/assets/right-CtPJjgOV.js +0 -1
  449. package/dist/client/assets/right-SfSu0zHC.js +0 -1
  450. package/dist/client/assets/router-B0YclXYg.js +0 -1
  451. package/dist/client/assets/scout-voice-DvG_3stJ.js +0 -1
  452. package/dist/client/assets/scoutbot-markdown-BJJyaPu2.js +0 -6
  453. package/dist/client/assets/secondaryNavConfig-DyC_P9Wx.js +0 -1
  454. package/dist/client/assets/settings-BzWCF3NF.js +0 -1
  455. package/dist/client/assets/system-surfaces-redesign-QVXNeGYw.css +0 -1
  456. package/dist/client/assets/text-rLpBg4_z.css +0 -1
  457. package/dist/client/assets/use-reduced-motion-BLn59zLn.js +0 -1
  458. package/dist/client/assets/use-scout-dev-flags-JKb1EhFh.js +0 -1
  459. package/dist/client/assets/useContentSecondaryNav-D-hVKzM9.js +0 -1
  460. package/dist/client/assets/usePersistentState-DOEahRlt.js +0 -1
  461. package/dist/client/assets/zap-rw7uwZht.js +0 -1
  462. /package/dist/client/assets/{DocumentFocusViewer-BSC_JwVE.css → document-focus-viewer-BSC_JwVE.css} +0 -0
@@ -1 +0,0 @@
1
- import{j as e,r as o,n as Ve,o as Ye}from"./index-Bli6bTLU.js";/* empty css */import{u as Rs,a as Es}from"./Provider-Ve8yXaWR.js";import{a as me}from"./api-DEHEgJ9m.js";import{c as bs}from"./clipboard-e3fSpeo7.js";import{d as Ws}from"./colors-BtO5_zlx.js";import{r as Te,S as Ge,a as Je,w as Ie,s as bt,b as xt,d as yt,c as jt,e as As,f as Ce,g as gt}from"./terminal-relay-pSm7_An6.js";import{p as Ms,g as St,f as Ls,b as Ds,s as F,d as Be,h as He,r as zs,i as Os,j as wt,k as Nt,m as Ct,t as Ps,n as vt}from"./terminal-sessions-D4dHTRkt.js";import{H as Tt,u as Xe,a as It,c as Rt,h as Et,b as Wt,A as At}from"./HerdrSession-DV2hD6Yh.js";import{D as Mt,c as Lt,P as Dt,s as _e,T as zt,a as Ot,d as _s}from"./session-table-B4JOKevn.js";import{u as Ze,T as Pt}from"./TerminalRelay-lJ2KdMCW.js";import{u as $e,L as Qe}from"./usePersistentState-DOEahRlt.js";import{q as _t}from"./terminal-takeover-CtA3wcXh.js";import{t as $t}from"./time-Dhsh_2EG.js";import{B as ue}from"./BackToPicker-CqYhOaLB.js";import{T as Ft}from"./TmuxPeek-BSeKIjnX.js";import{R as es}from"./refresh-cw-IgN2fZLM.js";import{c as $s}from"./createLucideIcon-DLlxGjKt.js";import{P as Z}from"./plus-64n9qucr.js";import{T as U}from"./terminal-BiNIXhna.js";import{Z as Kt}from"./zap-rw7uwZht.js";import{S as Ut}from"./text-BR9Bap0E.js";import{X as pe}from"./x-BJyPzFnn.js";import{E as Bt}from"./eye-BeCSqJn1.js";import{E as Fs}from"./external-link-BGHC_naA.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./conversation-model-CigSPlKA.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./loader-circle-DoT8gpw6.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./check-Bfs7hMb1.js";import"./copy-De4s38o2.js";/* empty css */import"./voice-levels-Dcr3jglk.js";const Ks=6,Us=2;function Re(s){if(s.layout?.mode)return{mode:s.layout.mode,...s.layout.columns===void 0?{}:{columns:Ht(s.layout.columns)}};const t=s.cellCount??0,r=We(s.columns??Us);return t<=1?{mode:"solo"}:r>=t?{mode:"lanes",columns:r}:{mode:"grid",columns:r}}function Ee(s,t){const r=Math.max(1,Math.floor(t.tileCount)||1);if(s.mode==="solo")return 1;if(s.columns===void 0||s.columns==="dynamic"){const i=s.mode==="lanes"?r:Math.ceil(Math.sqrt(r));return Math.max(1,Math.min(Ks,i))}return We(s.columns)}function Ht(s){return s==="dynamic"?"dynamic":We(s)}function qt(s){if(s.mode==="solo")return"Solo";const t=s.mode==="lanes"?"Lanes":"Grid";return s.columns===void 0||s.columns==="dynamic"?`${t} · dynamic`:`${t} · ${s.columns} column${s.columns===1?"":"s"}`}function We(s){return typeof s!="number"||!Number.isFinite(s)?Us:Math.max(1,Math.min(Ks,Math.floor(s)))}const Vt=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],Yt=$s("ellipsis",Vt);const Gt=[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]],de=$s("grid-2x2",Gt),ss=6;function Jt(s="main",t="Main"){return{version:1,activeWorkspaceId:s,workspaces:[{id:s,name:t,tiles:[]}]}}function ts(){return{version:1,activeWorkspaceId:"",workspaces:[]}}function xs(s,t,r={}){const i=()=>r.allowEmpty?ts():Jt();if(!s||typeof s!="object")return i();const l=s;if(!Array.isArray(l.workspaces))return i();const m=[],d=new Set;for(const c of l.workspaces){if(!c||typeof c!="object")continue;const x=typeof c.id=="string"?c.id.trim():"",y=typeof c.name=="string"?c.name.trim():"";if(!x||!y||d.has(x)||!Array.isArray(c.tiles))continue;d.add(x);const S=typeof c.purpose=="string"?c.purpose.trim():"",w=Zt(c.columns),A=Xt(c.layout),M=typeof c.updatedAt=="number"&&Number.isFinite(c.updatedAt)&&c.updatedAt>=0?c.updatedAt:null;m.push({id:x,name:y,tiles:c.tiles.filter(t),...S?{purpose:S}:{},...w?{columns:w}:{},...A?{layout:A}:{},...M===null?{}:{updatedAt:M}})}return m.length===0?i():{version:1,activeWorkspaceId:typeof l.activeWorkspaceId=="string"&&d.has(l.activeWorkspaceId)?l.activeWorkspaceId:m[0].id,workspaces:m}}function Xt(s){if(!s||typeof s!="object")return null;const t=s;if(t.mode!=="solo"&&t.mode!=="lanes"&&t.mode!=="grid")return null;if(t.columns===void 0)return{mode:t.mode};if(t.columns==="dynamic")return{mode:t.mode,columns:"dynamic"};const r=We(t.columns);return{mode:t.mode,columns:r}}function Zt(s){if(typeof s!="number"||!Number.isFinite(s))return null;const t=Math.floor(s);return t<1?null:Math.min(t,ss)}function ys(s,t){const r=t.id.trim();if(!r)return s;const i={...t,id:r},m=s.workspaces.some(d=>d.id===r)?s.workspaces.map(d=>d.id===r?i:d):[i,...s.workspaces];return{...s,activeWorkspaceId:r,workspaces:m}}function js(s,t,r){const i=s.workspaces.findIndex(f=>f.id===t);if(i<0)return s;const l=s.workspaces[i],m={...l,...r};return Object.keys(r).every(f=>l[f]===m[f])?s:{...s,workspaces:s.workspaces.map((f,c)=>c===i?m:f)}}function Qt(s,t){return t===s.activeWorkspaceId||!s.workspaces.some(r=>r.id===t)?s:{...s,activeWorkspaceId:t}}function en(s,t,r={}){if(s.workspaces.length<=1)return r.allowEmpty&&s.workspaces[0]?.id===t?ts():s;const i=s.workspaces.findIndex(d=>d.id===t);if(i<0)return s;const l=s.workspaces.filter(d=>d.id!==t),m=s.activeWorkspaceId===t?l[Math.min(i,l.length-1)].id:s.activeWorkspaceId;return{...s,activeWorkspaceId:m,workspaces:l}}function sn(s,t,r){return r>1?{axis:"horizontal",edge:s.x<t.left+t.width/2?"before":"after"}:{axis:"vertical",edge:s.y<t.top+t.height/2?"before":"after"}}function tn(s,t,r,i){if(t===r)return[...s];const l=s.findIndex(y=>y.id===t),m=s.findIndex(y=>y.id===r);if(l<0||m<0)return[...s];const d=[...s],[f]=d.splice(l,1);if(!f)return[...s];const c=d.findIndex(y=>y.id===r),x=i==="after"?c+1:c;return d.splice(Math.max(0,x),0,f),d}const nn="openscout.terminal.workspaces.v1",rn=2,an="openscout.terminal.workspace-view.v1",Fe=2;function ve(s){const t=typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID().slice(0,8):Math.random().toString(36).slice(2,10);return`${s}-${Date.now().toString(36)}-${t}`}const on=24;function Bs(s,t,r){const i=t.replace(/[^A-Za-z0-9_-]+/gu,"-").replace(/^[^A-Za-z0-9_]+/u,"").slice(0,on).replace(/-+$/u,""),l=ln(JSON.stringify([r,t,s]));return`scout-${s}-${i||"cell"}-${l}`}function ln(s){let t=2166136261;for(let r=0;r<s.length;r+=1)t^=s.charCodeAt(r),t=Math.imul(t,16777619)>>>0;return t.toString(16).padStart(8,"0")}function oe(s,t="shell"){return{id:ve("cell"),kind:"fresh",backend:s,agent:t}}function gs(s){if(!s||typeof s!="object")return!1;const t=s;return typeof t.id!="string"||!t.id.trim()?!1:t.kind==="fresh"?typeof t.backend=="string"&&typeof t.agent=="string":t.kind==="registered"?typeof t.terminalSessionId=="string"&&typeof t.terminalSurfaceKey=="string":!1}function Ss(s){return{id:s.id,name:s.name,...s.purpose?{purpose:s.purpose}:{},columns:s.columns,...s.layout?{layout:s.layout}:{},updatedAt:s.updatedAt,tiles:s.cells.map(t=>t.surfaceId&&t.terminalSessionId?{id:t.id,kind:"registered",terminalSessionId:t.terminalSessionId,terminalSurfaceKey:t.surfaceId}:{id:t.id,kind:"fresh",backend:dn(t.intent.hostId)?t.intent.hostId:"pty",agent:"shell"})}}function Ke(s,t={}){return{id:s.id,name:s.name,purpose:s.purpose??"",columns:Ee(Re({layout:s.layout,columns:s.columns,cellCount:s.tiles.length}),{tileCount:s.tiles.length}),layout:Re({layout:s.layout,columns:s.columns,cellCount:s.tiles.length}),cells:s.tiles.map(r=>r.kind==="registered"?{id:r.id,surfaceId:r.terminalSurfaceKey,terminalSessionId:r.terminalSessionId,intent:cn(r,t.sessions??[])}:{id:r.id,intent:{hostId:r.backend,sessionName:r.backend==="pty"?null:Bs(r.backend,r.id,s.id)}})}}function cn(s,t){const r=Ms(s.terminalSurfaceKey),i=t.find(l=>l.id===s.terminalSessionId||l.surfaces.some(m=>St(m,s.terminalSurfaceKey)));return{...r?{hostId:r.backend,sessionName:r.hostSession}:{},...i?.cwd?{cwd:i.cwd}:{},...i?.harness?{harness:i.harness}:{},...i?.resumeCommand?{resumeCommand:i.resumeCommand}:{}}}function dn(s){return s==="pty"||s==="tmux"||s==="zellij"||s==="herdr"}function mn(s){if(!Array.isArray(s))return xs(s,gs,{allowEmpty:!0});const t=s.flatMap(r=>{if(!r||typeof r!="object")return[];const i=r;if(typeof i.id!="string"||!i.id.trim())return[];const l=Array.isArray(i.cells)?i.cells:[];return[{id:i.id,name:typeof i.name=="string"&&i.name.trim()?i.name:i.id,purpose:i.purpose,columns:i.columns,updatedAt:i.updatedAt,tiles:l.map((m,d)=>({...m,id:`${i.id}-${d}`}))}]});return xs({activeWorkspaceId:t[0]?.id??"",workspaces:t},gs,{allowEmpty:!0})}function un(s,t,r){const i=s.find(l=>l.id===t);return i?i.capabilities.control.includes(r)||i.capabilities.harnessControl.includes(r):!1}function pn(s,t){return s.find(r=>r.id===t)??null}function hn(s){return[{value:"pty",label:"Shell",detail:"Disposable local shell",relayAttach:!0},...s.filter(t=>t.availability.installed&&t.capabilities.create).map(t=>({value:t.id,label:t.label,detail:t.description,relayAttach:t.capabilities.relayAttach})).sort((t,r)=>Number(r.relayAttach)-Number(t.relayAttach)||t.value.localeCompare(r.value))]}async function fn(){return me("/api/terminal-workspaces")}async function ws(s){return(await me(`/api/terminal-workspaces/${encodeURIComponent(s.id)}`,{method:"PUT",body:JSON.stringify(s)})).workspace}async function kn(s,t){return me(`/api/terminal-workspaces/${encodeURIComponent(s)}/cells/${encodeURIComponent(t)}/revive`,{method:"POST",body:"{}"})}async function bn(s){return(await me(`/api/terminal-workspaces/${encodeURIComponent(s)}`,{method:"DELETE"})).deleted}function xn(s){const t=new Map;for(const r of s?.cells??[])t.set(r.cellId,r);return t}const Ns="scout:terminal-send-line";function yn(s){const t=s.detail;if(!t||typeof t!="object"||!("line"in t))return null;const r=t.line;return typeof r=="string"&&r.trim().length>0?r:null}const le=typeof window>"u"?o.useEffect:o.useLayoutEffect,jn="openscout.terminal.picker-view.v1",Cs={mode:"grid",columns:"dynamic"},vs=[{mode:"solo",label:"Solo",detail:"One terminal, full width",minimumCells:1},{mode:"lanes",label:"Lanes",detail:"Side by side, one row",minimumCells:2},{mode:"grid",label:"Grid",detail:"Rows and columns",minimumCells:4}],gn=[{value:"shell",label:"Shell"},{value:"codex",label:"Codex"},{value:"claude",label:"Claude"},{value:"pi",label:"Pi"}],Ue="'JetBrainsMono Nerd Font', 'JetBrainsMonoNL Nerd Font', 'MesloLGS Nerd Font Mono', 'Hack Nerd Font Mono', 'JetBrains Mono', monospace",Ts=s=>{},Sn=()=>{};function wn(){if(typeof window>"u")return{fontFamily:Ue,fontSize:13};const s=new URLSearchParams(window.location.search),t=s.get("terminalFontFamily")?.trim(),r=Number(s.get("terminalFontSize"));return{fontFamily:t?`'${t.replaceAll("'","\\'")}', ${Ue}`:Ue,fontSize:Number.isFinite(r)&&r>=9&&r<=32?r:13}}function ns(s){const t=wn();return e.jsx(Pt,{...s,renderer:s.renderer??"dom",fontFamily:t.fontFamily,fontSize:t.fontSize})}function Nn(s,t){const[r,i]=o.useState({state:"loading",sessions:[]}),l=o.useCallback(()=>{i(d=>({state:"loading",sessions:d.sessions})),Ls({includeDiscovered:!0}).then(d=>{i({state:"ready",sessions:d})}).catch(d=>{i(f=>({state:"failed",sessions:f.sessions,error:d instanceof Error?d.message:String(d)}))})},[]);return o.useEffect(()=>{l()},[l]),{target:o.useMemo(()=>zs(r.sessions,s,t),[r.sessions,s,t]),loadState:r.state,loadSessions:l,hasSessionHint:!!s}}function Cn(s,t,r){const i=bt(t,r),[l,m]=o.useState(i?{state:"preparing"}:{state:"ready"}),[d,f]=o.useState(0);return o.useEffect(()=>{if(!i||!s){m({state:"ready"});return}let c=!1;return m({state:"preparing"}),me(`/api/agents/${encodeURIComponent(s)}/session-catalog`).then(x=>{if(x.resumeCommand)return _t({command:x.resumeCommand,cwd:x.resumeCwd,agentId:s})}).then(()=>{c||m({state:"ready"})}).catch(x=>{c||m({state:"failed",error:x instanceof Error?x.message:String(x)})}),()=>{c=!0}},[s,i,d]),{ready:l.state==="ready",label:l.state==="failed"?"TAKEOVER FAILED":"PREPARING TAKEOVER",status:l.state==="failed"?l.error:"Resolving live session...",onRetry:l.state==="failed"?()=>f(c=>c+1):void 0}}function vn(s){const{agentId:t,agent:r,mode:i,navigate:l,registeredTarget:m,showContextMenu:d}=s,{hosts:f}=Xe(),c=r?Ws(r.name):"var(--accent)",x=o.useRef(null),y=m?Ps(m.surface):Te(r),S=i==="observe",w=m?.session.cwd??r?.cwd??r?.projectRoot??void 0,A=Ve(),M=Ye(),h=xt({agentId:t,agent:r,registeredTarget:m,terminalSurface:y,relayUrl:A,harness:m?.session.harness??r?.harness,cwd:w,mode:i}),j=Ze({url:h.scopedRelayUrl,healthUrl:M,autoConnect:!0,...S?{}:{sessionKey:h.relayStorageSessionKey},...h.surfaceOptions??{},...h.orphanTTL?{orphanTTL:h.orphanTTL}:{},...h.cwd?{cwd:h.cwd}:{},...h.relayAgent?{agent:h.relayAgent}:{},controlMode:h.controlMode});le(()=>{j.resize(Ge,Je)},[j.resize]);const C=o.useMemo(()=>S?{...j,sendInput:Ts,sendLine:Ts,restart:Sn}:j,[S,j]),v=yt({agentId:t,registeredTarget:m}),z=Ie(v,i),R=o.useCallback(()=>{const b=x.current;b?.querySelector(".xterm-helper-textarea")?.focus(),b?.querySelector(".xterm")?.focus()},[]);o.useEffect(()=>{const b=_=>{const $=_.detail?.line;return typeof $=="string"&&$.length>0?$:null},O=_=>{const $=b(_);!$||S||(C.sendInput($),R())},D=_=>{const $=b(_);!$||S||(C.sendLine($),R())};return window.addEventListener("scout:terminal-send-input",O),window.addEventListener("scout:terminal-send-line",D),()=>{window.removeEventListener("scout:terminal-send-input",O),window.removeEventListener("scout:terminal-send-line",D)}},[R,S,C]);const E=o.useCallback(b=>y?jt(y,b):null,[y]),W=o.useCallback(()=>{bs(As(z))},[z]),H=o.useCallback(()=>{S||!navigator.clipboard?.readText||navigator.clipboard.readText().then(b=>{b&&C.sendInput(b)}).catch(()=>{})},[S,C]),B=o.useCallback(()=>{Ce(h.relayStorageSessionKey);const b=E("detach");if(b){b.finally(()=>j.disconnect());return}j.disconnect()},[h.relayStorageSessionKey,j,E]),k=o.useCallback(()=>{Ce(h.relayStorageSessionKey);const b=E("force-quit-bridge");if(b){b.finally(()=>{j.connect(),window.setTimeout(R,250)});return}j.connect(),window.setTimeout(R,250)},[h.relayStorageSessionKey,R,j,E]),N=o.useCallback(()=>{if(S)return;const b=E("interrupt");b?b.catch(()=>C.sendInput("")):C.sendInput(""),R()},[R,S,E,C]),L=o.useCallback(()=>{if(S)return;const b=E("quit");b?b.catch(()=>C.sendInput("")):C.sendInput(""),R()},[R,S,E,C]),K=o.useCallback(()=>{if(S)return;const b=E("stop-job");if(b){b.finally(R);return}R()},[R,S,E]),ne=o.useCallback(()=>{if(Ce(h.relayStorageSessionKey),y&&!window.confirm(`Force quit Claude in ${He(y.sessionName)}?`))return;const b=E("force-quit");if(b){b.finally(()=>j.disconnect());return}const O=j.sessionId;if(!O){j.disconnect();return}gt(O).catch(()=>{}).finally(()=>j.disconnect())},[h.relayStorageSessionKey,j,E,y]),re=o.useCallback(()=>{if(!y||!window.confirm(`Restart Claude in ${He(y.sessionName)} and resume its latest session?`))return;Ce(h.relayStorageSessionKey);const b=E("restart-resume");b&&b.finally(()=>{j.disconnect(),window.setTimeout(()=>{j.connect(),window.setTimeout(R,250)},600)})},[h.relayStorageSessionKey,R,j,E,y]),ae=o.useCallback(b=>{l(Ie(v,b))},[l,v]),Q=o.useCallback(()=>{l(v)},[l,v]),ee=o.useMemo(()=>{const b=y?.backend??null,O=$=>un(f,b,$),D=[];(!b||O("detach"))&&D.push({kind:"action",label:"Leave this session running",onSelect:B}),D.push({kind:"action",label:"Reconnect",onSelect:k});const _=[];return O("restart-resume")&&_.push({kind:"action",label:"Restart Claude and resume",onSelect:re}),O("force-quit")&&_.push({kind:"action",label:"Force quit Claude",onSelect:ne}),_.length>0&&D.push({kind:"separator"},..._),D},[B,ne,k,re,f,y?.backend]),he=o.useCallback(b=>{d(b,ee)},[ee,d]),se=o.useCallback(b=>{const O=typeof window>"u"?"":window.getSelection()?.toString()??"",D=[];O.trim()&&D.push({kind:"action",label:"Copy Selection",shortcut:"⌘C",onSelect:()=>{bs(O)}}),S||D.push({kind:"action",label:"Paste",shortcut:"⌘V",onSelect:H},{kind:"action",label:"Send Ctrl-C",shortcut:"⌃C",onSelect:N},{kind:"action",label:"Quit With Ctrl-D",shortcut:"⌃D",onSelect:L},{kind:"action",label:"Stop Running Job",onSelect:K}),D.length>0&&D.push({kind:"separator"}),D.push({kind:"action",label:"Focus Terminal",onSelect:R},...ee,{kind:"separator"},{kind:"action",label:S?"Open Takeover":"Open Observe",onSelect:()=>ae(S?"takeover":"observe")},{kind:"action",label:"Open Summary",onSelect:Q},{kind:"action",label:"Copy Terminal Link",onSelect:W}),d(b,D)},[W,R,N,ae,Q,H,L,S,ee,d,K]);return{color:c,terminalBodyRef:x,terminalSurface:y,readOnly:S,relay:j,terminalRelay:C,healthUrl:M,scopedRelayUrl:h.scopedRelayUrl,hasViewActions:!!(m||y),canSignalTerminal:!S&&!!(y||j.status==="connected"),canStopTerminalJob:!S&&!!y,handleSessionMenu:he,handleTerminalContextMenu:se,openMode:ae,openSummary:Q,interruptTerminal:N,quitTerminal:L,stopTerminalJob:K,terminalRouteBase:v}}function Tn({agent:s,agentId:t,color:r,navigate:i,label:l,status:m,onRetry:d}){return e.jsxs("div",{className:"s-term",children:[e.jsxs("div",{className:"s-term-bar",children:[e.jsx(ue,{slot:"terminal",fallback:{view:"terminal"},navigate:i,className:"s-term-back"}),s&&e.jsxs("div",{className:"s-term-agent",children:[e.jsx("div",{className:"s-ops-avatar",style:{"--size":"18px",background:r},children:s.name[0]?.toUpperCase()}),e.jsx("span",{className:"s-term-agent-name",children:s.name}),s.handle&&e.jsxs("span",{className:"s-term-agent-handle",children:["@",s.handle]})]}),e.jsx("span",{className:"s-term-label",children:l}),e.jsx("div",{className:"s-term-status",children:d?"OFFLINE":"CONNECTING"})]}),e.jsx("div",{className:"s-term-body s-term-body--placeholder",children:e.jsxs("div",{className:"s-term-placeholder",children:[e.jsx("span",{children:m}),d&&e.jsx("button",{type:"button",onClick:d,children:"Retry"})]})})]})}function In({target:s,navigate:t}){const r=o.useMemo(()=>Ds([s.session]).find(d=>F(d.surface)===F(s.surface)),[s]),i={view:"terminal",terminalSessionId:s.session.id,terminalSurfaceKey:F(s.surface)},l=Nt(s.session,s.surface),m=Ct(s);return e.jsx("div",{className:"s-term s-term--summary",children:e.jsxs("div",{className:"s-term-summary",children:[e.jsxs("div",{className:"s-term-summary-main",children:[e.jsx(ue,{slot:"terminal",fallback:{view:"terminal"},navigate:t,className:"s-term-back"}),e.jsxs("div",{className:"s-term-summary-mark",children:[e.jsx(U,{size:18,strokeWidth:1.7}),e.jsx("span",{children:"Terminal"})]}),e.jsxs("div",{className:"s-term-summary-heading",children:[e.jsx("h1",{children:r?.title??s.surface.sessionName}),e.jsxs("p",{children:[s.surface.backend," · ",l]})]}),e.jsxs("div",{className:"s-term-summary-actions",children:[e.jsxs("button",{type:"button",className:"s-term-summary-action s-term-summary-action--primary",onClick:()=>t(Ie(i,"takeover")),children:[e.jsx(Qe,{size:14,strokeWidth:1.8}),e.jsx("span",{children:"Enter"})]}),e.jsxs("button",{type:"button",className:"s-term-summary-action",onClick:()=>t(Ie(i,"observe")),children:[e.jsx(Bt,{size:14,strokeWidth:1.8}),e.jsx("span",{children:"Observe"})]})]})]}),e.jsx("div",{className:"s-term-summary-preview",children:e.jsx(Ft,{surface:Ps(s.surface),lines:26,columns:112,pollMs:3e4,idlePollMs:3e4,className:"s-term-preview-peek"})}),e.jsx("dl",{className:"s-term-summary-details",children:m.map(([d,f])=>e.jsxs("div",{className:"s-term-summary-detail",children:[e.jsx("dt",{children:d}),e.jsx("dd",{title:f,children:f})]},d))})]})})}function rs({agentId:s,agent:t,mode:r,navigate:i,registeredTarget:l,embedded:m=!1,tileActions:d}){const f=Es(),c=vn({agentId:s,agent:t,mode:r,navigate:i,registeredTarget:l,showContextMenu:f});return e.jsxs("div",{className:`s-term${m?" s-term--embedded":""}`,children:[e.jsxs("div",{className:"s-term-bar s-term-bar--takeover",children:[e.jsxs("div",{className:"s-term-bar-left",children:[!m&&e.jsx(ue,{slot:"terminal",fallback:{view:"terminal"},navigate:i,className:"s-term-back"}),t&&e.jsxs("div",{className:"s-term-agent",children:[e.jsx("div",{className:"s-ops-avatar",style:{"--size":"18px",background:c.color},children:t.name[0]?.toUpperCase()}),e.jsx("span",{className:"s-term-agent-name",children:t.name}),t.handle&&e.jsxs("span",{className:"s-term-agent-handle",children:["@",t.handle]})]}),l&&e.jsxs("div",{className:"s-term-registered-chip",children:[e.jsx(U,{size:14,strokeWidth:1.8}),e.jsx("span",{children:l.session.harness}),e.jsx("span",{children:l.session.sourceSessionId})]})]}),e.jsxs("div",{className:"s-term-bar-meta",children:[e.jsx("span",{className:"s-term-label",children:c.terminalSurface?c.readOnly?"TERMINAL OBSERVE":"TERMINAL TAKEOVER":"TAKEOVER"}),c.terminalSurface&&e.jsx("span",{className:"s-term-session",title:c.terminalSurface.sessionName,children:He(c.terminalSurface.sessionName)})]}),e.jsxs("div",{className:"s-term-bar-actions",children:[c.hasViewActions&&e.jsxs("div",{className:"s-term-action-cluster s-term-action-cluster--view","aria-label":"Terminal view actions",children:[l&&e.jsx("button",{type:"button",className:"s-term-action",onClick:c.openSummary,title:"Leave the terminal canvas and show the session summary",children:"Summary"}),c.terminalSurface&&e.jsx("button",{type:"button",className:"s-term-action",onClick:()=>c.openMode(c.readOnly?"takeover":"observe"),title:c.readOnly?"Switch to interactive takeover":"Switch to read-only terminal observe",children:c.readOnly?"Takeover":"Observe"})]}),(c.canSignalTerminal||c.canStopTerminalJob)&&e.jsxs("div",{className:"s-term-action-cluster s-term-action-cluster--signals","aria-label":"Terminal signal actions",children:[c.canSignalTerminal&&e.jsxs("button",{type:"button",className:"s-term-action s-term-action--warn",onClick:c.interruptTerminal,title:"Send Ctrl-C to the terminal",children:[e.jsx(Kt,{size:13,strokeWidth:1.8}),e.jsx("span",{children:"Ctrl-C"})]}),c.canSignalTerminal&&e.jsxs("button",{type:"button",className:"s-term-action s-term-action--warn",onClick:c.quitTerminal,title:"Send Ctrl-D / EOF to the terminal",children:[e.jsx(Dt,{size:13,strokeWidth:1.8}),e.jsx("span",{children:"Quit"})]}),c.canStopTerminalJob&&e.jsxs("button",{type:"button",className:"s-term-action s-term-action--warn",onClick:c.stopTerminalJob,title:"Stop Claude's current shell/tool job without quitting Claude",children:[e.jsx(Ut,{size:12,strokeWidth:2}),e.jsx("span",{children:"Stop Job"})]})]}),e.jsxs("button",{type:"button",className:"s-term-action s-term-session-menu",onClick:c.handleSessionMenu,title:"Open session, recovery, and external handoff actions",children:[e.jsx(Yt,{size:14,strokeWidth:1.8}),e.jsx("span",{children:"Session"})]}),e.jsx("div",{className:"s-term-status",children:c.relay.status==="connected"?"LIVE":c.relay.status==="connecting"?"CONNECTING":"OFFLINE"}),d]})]}),e.jsx("div",{ref:c.terminalBodyRef,className:"s-term-body",onContextMenuCapture:c.handleTerminalContextMenu,children:e.jsx(ns,{relay:c.terminalRelay,readOnly:c.readOnly,quiet:!0,configItems:[...c.terminalSurface?[{label:"backend",value:c.terminalSurface.backend},{label:"session",value:c.terminalSurface.sessionName},...c.terminalSurface.paneId?[{label:"pane",value:c.terminalSurface.paneId}]:[],...c.terminalSurface.socketDir?[{label:"socket",value:c.terminalSurface.socketDir}]:[],{label:"mode",value:c.readOnly?"read-only":"takeover"}]:[],{label:"ws",value:c.scopedRelayUrl},{label:"health",value:c.healthUrl}]})})]})}function Rn({terminalSessionId:s,terminalSurfaceKey:t,mode:r,navigate:i}){const{target:l,loadState:m,loadSessions:d,hasSessionHint:f}=Nn(s,t);return l&&r?e.jsx(rs,{agent:null,mode:r,navigate:i,registeredTarget:l},`${F(l.surface)}:${r}`):l?e.jsx(In,{target:l,navigate:i}):e.jsx("div",{className:"s-term s-term--empty-main",children:e.jsxs("div",{className:"s-term-empty-main-mark",children:[e.jsx(U,{size:18,strokeWidth:1.6}),e.jsx("span",{children:m==="loading"?"Loading terminal":m==="failed"?"Terminal list unavailable":f?"Terminal unavailable":"Select a terminal"}),m==="failed"&&e.jsx("button",{type:"button",className:"s-term-empty-action",onClick:d,children:"Retry"})]})})}function En(s,t){return s.kind!=="fresh"||!s.sessionName?!1:t.some(r=>r.surfaces.some(i=>i.backend===s.backend&&i.sessionName===s.sessionName&&i.state!=="exited"))}function ce(s){return`${s.session.id}:${F(s.surface)}`}function Wn(s,t,r){if(s.kind==="fresh")return{id:s.id,kind:"fresh",backend:s.backend,agent:s.agent,...s.backend==="pty"?{}:{sessionName:Bs(s.backend,s.id,r)}};const i=zs(t,s.terminalSessionId,s.terminalSurfaceKey);return i?{id:s.id,kind:"registered",target:i}:{id:s.id,kind:"unavailable",terminalSessionId:s.terminalSessionId,terminalSurfaceKey:s.terminalSurfaceKey}}function G(s){return{session:s.session,surface:s.surface}}function An(s){const t=s.backend;return t!=="pty"&&!Os(t)?null:{view:"terminal",terminalBackend:t,terminalAgent:s.agent,terminalTabId:s.id,...s.sessionName?{terminalSessionName:s.sessionName}:{},...s.zellijSocketDir?{zellijSocketDir:s.zellijSocketDir}:{}}}function Mn(s,t="takeover"){return{view:"terminal",terminalSessionId:s.session.id,terminalSurfaceKey:F(s.surface),mode:t}}function Hs(s,t){if(typeof window>"u"){t(s);return}window.open(As(s),"_blank","noopener,noreferrer")}function Ln({navigate:s}){const{agents:t}=Rs(),r=Es(),{hosts:i}=Xe(),l=o.useMemo(()=>hn(i),[i]),[m,d]=$e(nn,ts(),{version:rn,migrate:mn}),[f,c]=$e(an,"library"),x=o.useRef(new Map),[y,S]=o.useState(null),[w,A]=o.useState(""),[M,h]=o.useState(""),[j,C]=o.useState(Cs),[v,z]=o.useState(()=>Array.from({length:4},()=>oe("pty"))),[R,E]=o.useState(0),[W,H]=o.useState({state:"loading",sessions:[]}),[B,k]=o.useState(0),[N,L]=o.useState(!0),[K,ne]=$e(jn,"list"),[re,ae]=o.useState(Mt),[Q,ee]=o.useState([]),[he,se]=o.useState(null),[b,O]=o.useState(null),[D,_]=o.useState(null),[$,is]=o.useState(!1),[fe,os]=o.useState(null),[Vs,Ae]=o.useState(null),ke=o.useRef(null),be=o.useRef(null),xe=o.useRef("after"),ye=o.useRef(null),je=o.useRef(null),Me=o.useRef(!1),q=o.useCallback((n={})=>{n.silent||H(a=>({state:"loading",sessions:a.sessions})),Ls({includeDiscovered:!0}).then(a=>H({state:"ready",sessions:a})).catch(a=>{n.silent||H(u=>({state:"failed",sessions:u.sessions,error:a instanceof Error?a.message:String(a)}))})},[]);o.useEffect(()=>{q()},[q]),o.useEffect(()=>{const n=()=>{document.visibilityState==="visible"&&q({silent:!0})},a=window.setInterval(n,8e3);return window.addEventListener("focus",n),document.addEventListener("visibilitychange",n),()=>{window.clearInterval(a),window.removeEventListener("focus",n),document.removeEventListener("visibilitychange",n)}},[q]),o.useEffect(()=>{let n=!1;return fn().then(a=>{if(!n){ee(a.resolutions);for(const u of a.workspaces)x.current.set(u.id,JSON.stringify(Ke(Ss(u),{sessions:W.sessions})));a.workspaces.length!==0&&d(u=>{let p=u;for(const g of a.workspaces)p=ys(p,Ss(g));return{...p,activeWorkspaceId:u.activeWorkspaceId||p.activeWorkspaceId}})}}).catch(()=>{}),()=>{n=!0}},[d]);const ge=o.useMemo(()=>Ds(W.sessions),[W.sessions]),V=o.useMemo(()=>ge.filter(n=>n.surface.state!=="exited"),[ge]),Le=o.useMemo(()=>{const n=new Set,a=[];for(const u of ge)u.surface.backend!=="herdr"||n.has(u.surface.sessionName)||(n.add(u.surface.sessionName),a.push(G(u)));return a},[ge]);o.useMemo(()=>Kn(t),[t]);const ls=W.state==="failed"?W.error:null,Ys=m.workspaces,T=m.workspaces.find(n=>n.id===m.activeWorkspaceId)??null,te=Re({layout:T?.layout,columns:T?.columns,cellCount:T?.tiles.length??0}),Y=o.useMemo(()=>(T?.tiles??[]).map(n=>Wn(n,W.sessions,T?.id??"")),[T?.id,T?.tiles,W.sessions]),De=Ee(te,{tileCount:Y.length});o.useEffect(()=>{if(!T||!x.current.has(T.id))return;const n=Ke(T,{sessions:W.sessions}),a=JSON.stringify(n);x.current.get(T.id)!==a&&(x.current.set(T.id,a),ws(n).catch(u=>se(u instanceof Error?u.message:String(u))))},[T,W.sessions]);const cs=f==="workspace"&&!T?"library":f,P=o.useCallback(n=>{d(a=>{const u=a.workspaces.find(g=>g.id===a.activeWorkspaceId);if(!u)return a;const p=n(u.tiles);return p===u.tiles?a:js(a,u.id,{tiles:p,updatedAt:Date.now()})})},[d]),Se=o.useCallback(n=>{d(a=>a.activeWorkspaceId?js(a,a.activeWorkspaceId,{layout:n,updatedAt:Date.now()}):a)},[d]),Gs=o.useCallback(n=>{d(a=>Qt(a,n.id)),L(!1),c("workspace")},[d,c]),Js=o.useCallback(()=>{c("library")},[c]),ie=o.useCallback(n=>{S(n?.id??null),A(n?.name??""),h(n?.purpose??""),C(n?Re({layout:n.layout,columns:n.columns,cellCount:n.tiles.length}):Cs),z(n?.tiles??Array.from({length:4},()=>oe("pty"))),E(0),c("builder")},[c]),Xs=o.useCallback(n=>{C(a=>n.mode==="solo"?{mode:"solo"}:{mode:n.mode,columns:a.columns??"dynamic"}),z(a=>a.length>=n.minimumCells?a:[...a,...Array.from({length:n.minimumCells-a.length},()=>oe("pty"))]),E(a=>Math.max(0,Math.min(a,n.minimumCells-1)))},[]),Zs=o.useCallback(n=>{C(a=>a.mode==="solo"?{mode:"lanes",columns:n}:{...a,columns:n})},[]),Qs=o.useCallback(()=>{z(n=>{const a=[...n,oe("pty")];return E(a.length-1),a})},[]),et=o.useCallback(n=>{z(a=>{if(a.length<=1)return a;const u=a.filter((p,g)=>g!==n);return E(p=>Math.min(p,u.length-1)),u})},[]),st=o.useCallback(()=>{const n=w.trim();if(!n)return;const a={id:y??ve("workspace"),name:n,purpose:M.trim(),columns:Ee(j,{tileCount:v.length}),layout:j,tiles:v,updatedAt:Date.now()};d(p=>ys(p,a));const u=Ke(a,{sessions:W.sessions});x.current.set(a.id,JSON.stringify(u)),ws(u).catch(p=>se(p instanceof Error?p.message:String(p))),L(!1),c("workspace")},[y,d,c,W.sessions,v,j,w,M]),tt=o.useCallback(n=>{d(a=>en(a,n,{allowEmpty:!0})),bn(n).catch(()=>{})},[d]),ds=o.useCallback((n,a="shell")=>{P(u=>[...u,oe(n,a)])},[P]),J=o.useCallback((n,a)=>{const u={kind:"registered",terminalSessionId:n.session.id,terminalSurfaceKey:F(n.surface)};P(p=>{const g=p.some(I=>I.kind==="registered"&&I.terminalSessionId===u.terminalSessionId&&Be(I.terminalSurfaceKey,u.terminalSurfaceKey));return a?p.some(I=>I.id===a)?p.map(I=>I.id===a?{...u,id:I.id}:I):p:g?p:[...p,{...u,id:ve("cell")}]})},[P]),nt=o.useCallback(n=>{J(n)},[J]),ze=o.useMemo(()=>new Set(Y.filter(n=>n.kind==="registered").map(n=>ce(n.target))),[Y]),rt=o.useCallback(n=>{const a=Le.length>0?Le.map(u=>{const p=ze.has(ce(u)),g=u.surface.state==="live"?"running":"detached";return{kind:"action",label:`${u.surface.sessionName} · ${g}${p?" · in grid":""}`,onSelect:()=>J(u)}}):[{kind:"action",label:"No herdr sessions discovered",onSelect:()=>{}}];r(n,a)},[Le,ze,J,r]),we=o.useCallback(n=>{n?.currentTarget.hasPointerCapture(n.pointerId)&&n.currentTarget.releasePointerCapture(n.pointerId),ye.current=null,je.current=null,Me.current=!1,O(null),_(null),is(!1)},[]),at=o.useCallback((n,a)=>{const u=n.target;n.button!==0||u instanceof Element&&u.closest("button, a")||(ye.current={pointerId:n.pointerId,target:G(a),targetId:ce(G(a)),startX:n.clientX,startY:n.clientY},n.currentTarget.setPointerCapture(n.pointerId))},[]),it=o.useCallback(n=>{const a=ye.current;if(!a||a.pointerId!==n.pointerId||Math.hypot(n.clientX-a.startX,n.clientY-a.startY)<6&&!b)return;b||O(a.targetId);const p=document.querySelector(".s-term--workspace");if(p){const ks=p.getBoundingClientRect();n.clientY<ks.top+72&&(p.scrollTop-=28),n.clientY>ks.bottom-72&&(p.scrollTop+=28)}const g=document.elementFromPoint(n.clientX,n.clientY),I=g?.closest(".s-term-workspace-cell"),X=!!(g?.closest(".s-term-workspace-add-cell")||!I&&g?.closest(".s-term--workspace")&&!g?.closest(".s-term-picker")),fs=X?null:I?.dataset.terminalTileId??null;je.current=fs,Me.current=X,_(fs),is(X)},[b]),ot=o.useCallback(n=>{const a=ye.current;!a||a.pointerId!==n.pointerId||(Me.current?J(a.target):je.current&&J(a.target,je.current),we(n))},[we,J]),lt=o.useCallback(n=>{we(n)},[we]),ct=o.useCallback(()=>{const n=V.map(G);n.length!==0&&P(a=>{const u=a.filter(g=>g.kind==="registered"),p=n.filter(g=>!u.some(I=>I.kind==="registered"&&I.terminalSessionId===g.session.id&&Be(I.terminalSurfaceKey,F(g.surface)))).map(g=>({id:ve("cell"),kind:"registered",terminalSessionId:g.session.id,terminalSurfaceKey:F(g.surface)}));return p.length===0?a:[...a,...p]})},[V,P]),Oe=o.useCallback(n=>{P(a=>{const u=a.filter(p=>p.id!==n);return u.length===a.length?a:u})},[P]),ms=o.useCallback((n,a,u)=>{n!==a&&P(p=>tn(p,n,a,u))},[P]),Pe=o.useCallback((n,a)=>{P(u=>{const p=u.findIndex(X=>X.id===n),g=p+a;if(p<0||g<0||g>=u.length)return u;const I=[...u];return[I[p],I[g]]=[I[g],I[p]],I})},[P]),us=o.useCallback((n,a)=>{P(u=>u.map(p=>p.id===n?{id:p.id,kind:"fresh",backend:a,agent:"shell"}:p))},[P]),Ne=o.useCallback(()=>[...vs.map(n=>({kind:"action",label:n.label,onSelect:()=>Se(n.mode==="solo"?{mode:"solo"}:{mode:n.mode,columns:te.columns??"dynamic"})})),...te.mode==="solo"?[]:[{kind:"separator"},{kind:"action",label:"Dynamic columns",onSelect:()=>Se({...te,columns:"dynamic"})},...Array.from({length:ss},(n,a)=>({kind:"action",label:a===0?"One column":`${a+1} columns`,onSelect:()=>Se({...te,columns:a+1})}))],{kind:"separator"},{kind:"action",label:"Edit workspace…",onSelect:()=>T&&ie(T)}],[T,Se,ie,te]),dt=o.useCallback(n=>{r(n,Ne())},[Ne,r]),mt=o.useCallback((n,a)=>{const u=Y.findIndex(g=>g.id===a.id),p=[];u>0&&p.push({kind:"action",label:"Move left",onSelect:()=>Pe(a.id,-1)}),u>=0&&u<Y.length-1&&p.push({kind:"action",label:"Move right",onSelect:()=>Pe(a.id,1)}),p.length>0&&p.push({kind:"separator"}),p.push(...l.map(g=>({kind:"action",label:g.value==="pty"?"Replace with a disposable shell":`Replace with a session that survives (${g.label})`,onSelect:()=>us(a.id,g.value)})),{kind:"separator"},{kind:"action",label:"Remove cell",onSelect:()=>Oe(a.id)},{kind:"separator"},...Ne()),r(n,p)},[Oe,Ne,Pe,us,r,l,Y]),ut=o.useCallback((n,a)=>{const u=n.target;n.button===0&&u instanceof Element&&u.closest(".s-term-bar")&&!u.closest("button, a")&&(ke.current={pointerId:n.pointerId,tileId:a,startX:n.clientX,startY:n.clientY},n.currentTarget.setPointerCapture(n.pointerId))},[]),pt=o.useCallback(n=>{const a=ke.current;if(!a||a.pointerId!==n.pointerId||Math.hypot(n.clientX-a.startX,n.clientY-a.startY)<6&&!fe)return;fe||os(a.tileId);const p=document.elementFromPoint(n.clientX,n.clientY)?.closest(".s-term-workspace-cell"),g=p?.dataset.terminalTileId??null;if(!p||!g||g===a.tileId){be.current=null,xe.current="after",Ae(null);return}const I=p.getBoundingClientRect(),X=sn({x:n.clientX,y:n.clientY},{left:I.left,top:I.top,width:I.width,height:I.height},De);be.current=g,xe.current=X.edge,Ae(g)},[fe,De]),ps=o.useCallback(n=>{const a=ke.current;if(!a||a.pointerId!==n.pointerId)return;const u=be.current;u&&ms(a.tileId,u,xe.current),n.currentTarget.hasPointerCapture(n.pointerId)&&n.currentTarget.releasePointerCapture(n.pointerId),ke.current=null,be.current=null,xe.current="after",os(null),Ae(null)},[ms]),ht=o.useMemo(()=>xn(Q.find(n=>n.workspaceId===T?.id)),[T?.id,Q]),hs=o.useCallback(n=>{ae(a=>Lt(a,n))},[]),ft=o.useCallback(()=>{q(),k(n=>n+1)},[q]),kt=o.useCallback(n=>{T&&kn(T.id,n).then(()=>{se(null),q()}).catch(a=>se(a instanceof Error?a.message:String(a)))},[T,q]);return cs==="library"?e.jsx(Dn,{workspaces:Ys,sessionsReady:W.state!=="loading",onOpen:Gs,onCreate:()=>ie(),onEdit:ie,onDelete:tt}):cs==="builder"?e.jsx(On,{editing:!!y,name:w,purpose:M,modes:vs,layout:j,startOptions:l,cells:v,selectedSlot:R,terminalItems:V,onNameChange:A,onPurposeChange:h,onApplyMode:Xs,onColumnsChange:Zs,onSelectSlot:E,onAddCell:Qs,onRemoveCell:et,pickerView:K,pickerSort:re,onPickerView:ne,onPickerSort:hs,onAssignFresh:(n,a="shell")=>z(u=>u.map((p,g)=>g===R?{id:p.id,kind:"fresh",backend:n,agent:a}:p)),onAssignRegistered:n=>z(a=>a.map((u,p)=>p===R?{id:u.id,kind:"registered",terminalSessionId:n.session.id,terminalSurfaceKey:F(n.surface)}:u)),onCancel:()=>{c(T?"workspace":"library")},onSave:st}):e.jsx("div",{className:"s-term s-term--workspace",children:e.jsxs("div",{className:"s-term-workspace",children:[e.jsxs("header",{className:"s-term-workspace-head",children:[e.jsxs("div",{className:"s-term-workspace-title",children:[e.jsxs("span",{className:"s-term-summary-mark",children:[e.jsx(de,{size:18,strokeWidth:1.7}),e.jsxs("span",{children:["Workspaces / ",T?.name??"Workspace"]})]}),e.jsx("h1",{children:T?.name??"Workspace"}),T?.purpose&&e.jsx("p",{children:T.purpose})]}),e.jsxs("div",{className:"s-term-workspace-actions","aria-label":"Terminal workspace actions",children:[e.jsx("button",{type:"button",className:"s-term-workspace-action",onClick:Js,children:e.jsx("span",{children:"All workspaces"})}),e.jsxs("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:()=>T&&ie(T),children:[e.jsx(de,{size:14,strokeWidth:1.8}),e.jsx("span",{children:"Edit workspace"})]}),e.jsxs("button",{type:"button",className:"s-term-workspace-action",onClick:()=>ds("pty"),title:"Add a shell tile",children:[e.jsx(Z,{size:14,strokeWidth:1.9}),e.jsx("span",{children:"Shell"})]}),e.jsxs("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:()=>ds("pty","codex"),title:"Add a Codex TUI tile",children:[e.jsx(Z,{size:14,strokeWidth:1.9}),e.jsx("span",{children:"Codex"})]}),e.jsxs("button",{type:"button",className:"s-term-workspace-action",onClick:rt,title:"Add a herdr session's layout as a tile",children:[e.jsx(Z,{size:14,strokeWidth:1.9}),e.jsx("span",{children:"Herdr"})]}),e.jsxs("button",{type:"button",className:"s-term-workspace-action",onClick:()=>L(n=>!n),title:N?"Hide terminal picker":"Show terminal picker","aria-pressed":N,children:[e.jsx(U,{size:14,strokeWidth:1.8}),e.jsx("span",{children:N?"Hide picker":"Show picker"})]}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:ft,disabled:W.state==="loading",title:"Reload all terminal tiles","aria-label":"Reload all terminal tiles",children:e.jsx(es,{size:14,strokeWidth:1.8})})]})]}),ls&&e.jsxs("div",{className:"s-term-home-error",children:[e.jsx("span",{children:"Terminal registry unavailable"}),e.jsx("code",{children:ls})]}),he&&e.jsxs("div",{className:"s-term-home-error",children:[e.jsx("span",{children:"This workspace is not saved to Scout — it will not follow you to another device"}),e.jsx("code",{children:he})]}),(Y.length>0||N)&&e.jsxs("div",{className:"s-term-workspace-grid","aria-label":"Terminal tiles",style:{"--terminal-grid-columns":De},onContextMenu:dt,children:[Y.map(n=>e.jsx("div",{className:`s-term-workspace-cell${fe===n.id?" s-term-workspace-cell--dragging":""}${Vs===n.id||D===n.id?" s-term-workspace-cell--drop-target":""}`,"data-terminal-tile-id":n.id,onPointerDownCapture:a=>ut(a,n.id),onPointerMove:pt,onPointerUp:ps,onPointerCancel:ps,onContextMenu:a=>mt(a,n),children:e.jsx(_n,{tile:n,navigate:s,onClose:Oe,resolution:ht.get(n.id)??null,onRevive:kt,live:En(n,W.sessions)})},`${n.id}:${B}`)),N&&e.jsxs("button",{type:"button",className:`s-term-workspace-add-cell${$?" s-term-workspace-add-cell--target":""}`,onClick:()=>L(!0),children:[e.jsx(Z,{size:20,strokeWidth:1.7}),e.jsx("strong",{children:"New slot"}),e.jsx("span",{children:b?"Drop to add":"Drag a terminal here"})]})]}),e.jsxs("section",{className:`s-term-picker${N?"":" s-term-picker--collapsed"}`,"aria-labelledby":"terminal-picker-title",onPointerDownCapture:n=>{const a=n.target;if(!(a instanceof Element))return;const u=a.closest("[data-picker-item-id]")?.dataset.pickerItemId,p=V.find(g=>g.id===u);p&&at(n,p)},onPointerMove:it,onPointerUp:ot,onPointerCancel:lt,children:[e.jsxs("header",{className:"s-term-picker-head",children:[e.jsxs("div",{className:"s-term-picker-title",children:[e.jsx(U,{size:14,strokeWidth:1.8}),e.jsx("h2",{id:"terminal-picker-title",children:"Terminal picker"}),e.jsx("span",{children:W.state==="loading"?"syncing":V.length})]}),e.jsxs("div",{className:"s-term-picker-actions",children:[N&&e.jsx("div",{className:"s-term-picker-views",role:"group","aria-label":"Picker view",children:["list","table"].map(n=>e.jsx("button",{type:"button",className:K===n?"is-selected":"",onClick:()=>ne(n),"aria-pressed":K===n,children:n==="list"?"List":"Table"},n))}),N&&e.jsxs("button",{type:"button",className:"s-term-workspace-action",onClick:ct,disabled:V.length===0,children:[e.jsx(Qe,{size:13,strokeWidth:1.8}),e.jsx("span",{children:"Attach all"})]}),e.jsxs("button",{type:"button",className:"s-term-picker-toggle",onClick:()=>L(n=>!n),"aria-expanded":N,children:[e.jsx("span",{children:N?"Hide":"Show terminal picker"}),e.jsx("span",{"aria-hidden":"true",children:N?"⌄":"⌃"})]})]})]}),N&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"s-term-picker-hint",children:"Drag a terminal onto a cell to place it, or onto New slot to grow the grid."}),V.length===0&&W.state!=="loading"?e.jsx("div",{className:"s-term-picker-empty",children:"No live terminals"}):e.jsx(qs,{items:V,view:K,sort:re,attachedIds:ze,draggedTargetId:b,onSort:hs,onAttach:nt,navigate:s})]})]})]})})}function Dn({workspaces:s,sessionsReady:t,onOpen:r,onCreate:i,onEdit:l,onDelete:m}){return e.jsx("div",{className:"s-term s-term--workspace-library",children:e.jsxs("main",{className:"s-term-workspace-library",children:[e.jsxs("header",{className:"s-term-workspace-library-head",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"s-term-summary-mark",children:[e.jsx(de,{size:18,strokeWidth:1.7}),e.jsx("span",{children:"Terminals"})]}),e.jsx("h1",{children:"Workspaces"}),e.jsx("p",{children:"Saved terminal layouts for projects, roles, and cross-project operations."})]}),e.jsxs("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:i,children:[e.jsx(Z,{size:14,strokeWidth:1.9}),e.jsx("span",{children:"New workspace"})]})]}),s.length===0?e.jsxs("section",{className:"s-term-workspace-library-empty",children:[e.jsx(de,{size:24,strokeWidth:1.5}),e.jsx("h2",{children:"Create your first terminal workspace"}),e.jsx("p",{children:"Choose a layout, give it a purpose, place sessions, then enter the grid."}),e.jsxs("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:i,children:[e.jsx(Z,{size:14,strokeWidth:1.9}),e.jsx("span",{children:"Create workspace"})]})]}):e.jsx("div",{className:"s-term-workspace-library-grid",children:s.map(d=>e.jsxs("article",{className:"s-term-workspace-card",children:[e.jsx("div",{className:"s-term-workspace-card-preview",style:{"--terminal-grid-columns":d.columns??Fe},children:d.tiles.map(f=>e.jsx("span",{className:f.kind==="registered"?"is-session":"is-shell"},f.id))}),e.jsxs("div",{className:"s-term-workspace-card-copy",children:[e.jsxs("span",{children:[d.columns??Fe," column",(d.columns??Fe)===1?"":"s"," · ",d.tiles.length," cells"]}),e.jsx("h2",{children:d.name}),e.jsx("p",{children:d.purpose||"No purpose added yet."})]}),e.jsxs("div",{className:"s-term-workspace-card-actions",children:[e.jsx("button",{type:"button",className:"s-term-workspace-action",onClick:()=>l(d),children:"Edit"}),e.jsx("button",{type:"button",className:"s-term-workspace-action",onClick:()=>m(d.id),children:"Delete"}),e.jsx("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:()=>r(d),disabled:!t,children:"Enter workspace"})]})]},d.id))})]})})}function qe(s,t){return s==="solo"?1:s==="lanes"?Math.max(2,Math.min(4,t)):Math.max(2,Math.min(3,t))}function zn(s,t){return s==="solo"?1:s==="lanes"?qe(s,t):qe(s,t)*2}function On({editing:s,name:t,purpose:r,modes:i,layout:l,startOptions:m,cells:d,selectedSlot:f,terminalItems:c,onNameChange:x,onPurposeChange:y,onApplyMode:S,onColumnsChange:w,onSelectSlot:A,onAddCell:M,onRemoveCell:h,pickerView:j,pickerSort:C,onPickerView:v,onPickerSort:z,onAssignFresh:R,onAssignRegistered:E,onCancel:W,onSave:H}){const B=Ee(l,{tileCount:d.length});return e.jsx("div",{className:"s-term s-term--workspace-builder",children:e.jsxs("main",{className:"s-term-workspace-builder",children:[e.jsxs("header",{className:"s-term-workspace-builder-head",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"s-term-summary-mark",children:[e.jsx(de,{size:18,strokeWidth:1.7}),e.jsx("span",{children:"Workspace builder"})]}),e.jsx("h1",{children:s?"Edit workspace":"Create a workspace"}),e.jsx("p",{children:"Define the job, choose the grid, and place the sessions before entering."})]}),e.jsxs("div",{className:"s-term-workspace-builder-actions",children:[e.jsx("button",{type:"button",className:"s-term-workspace-action",onClick:W,children:"Cancel"}),e.jsx("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:H,disabled:!t.trim(),children:s?"Save and enter":"Create and enter"})]})]}),e.jsxs("section",{className:"s-term-workspace-builder-identity","aria-label":"Workspace identity",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Name"}),e.jsx("input",{value:t,onChange:k=>x(k.target.value),placeholder:"Release desk",autoFocus:!0})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Purpose"}),e.jsx("input",{value:r,onChange:k=>y(k.target.value),placeholder:"Cross-project release monitoring"})]})]}),e.jsxs("section",{className:"s-term-workspace-builder-layout","aria-labelledby":"workspace-layout-title",children:[e.jsxs("div",{className:"s-term-workspace-builder-section-head",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Step 1"}),e.jsx("h2",{id:"workspace-layout-title",children:"Choose the layout"})]}),e.jsxs("p",{children:[qt(l)," · ",d.length," cell",d.length===1?"":"s"]})]}),e.jsx("div",{className:"s-term-grid-presets","aria-label":"Workspace layout",children:i.map(k=>e.jsxs("button",{type:"button",className:`s-term-grid-preset${k.mode===l.mode?" s-term-grid-preset--selected":""}`,onClick:()=>S(k),"aria-pressed":k.mode===l.mode,children:[e.jsx("span",{className:"s-term-grid-preset-map",style:{"--terminal-preset-columns":qe(k.mode,B)},"aria-hidden":"true",children:Array.from({length:zn(k.mode,B)},(N,L)=>e.jsx("i",{},L))}),e.jsx("span",{className:"s-term-grid-preset-label",children:k.label}),e.jsx("span",{className:"s-term-grid-preset-detail",children:k.detail})]},k.mode))}),l.mode!=="solo"&&e.jsxs("div",{className:"s-term-workspace-builder-columns",role:"group","aria-label":"Columns",children:[e.jsx("span",{children:"Columns"}),e.jsx("button",{type:"button",className:l.columns==="dynamic"||l.columns===void 0?"is-selected":"",onClick:()=>w("dynamic"),"aria-pressed":l.columns==="dynamic"||l.columns===void 0,title:"Fit the columns to the number of tiles",children:"Dynamic"}),Array.from({length:ss},(k,N)=>e.jsx("button",{type:"button",className:l.columns===N+1?"is-selected":"",onClick:()=>w(N+1),"aria-pressed":l.columns===N+1,children:N+1},N)),(l.columns==="dynamic"||l.columns===void 0)&&e.jsxs("em",{children:[B," right now"]})]})]}),e.jsxs("section",{className:"s-term-workspace-builder-placement","aria-labelledby":"workspace-placement-title",children:[e.jsxs("div",{className:"s-term-workspace-builder-section-head",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Step 2"}),e.jsx("h2",{id:"workspace-placement-title",children:"Place terminals"})]}),e.jsx("p",{children:"Select a cell, then choose a session or shell. Add as many cells as the work needs."})]}),e.jsxs("div",{className:"s-term-workspace-builder-canvas",children:[e.jsxs("div",{className:"s-term-workspace-builder-grid",style:{"--terminal-grid-columns":B},children:[d.map((k,N)=>{const L=k.kind==="registered"?c.find(K=>K.session.id===k.terminalSessionId&&Be(F(K.surface),k.terminalSurfaceKey)):null;return e.jsxs("div",{className:`s-term-workspace-builder-cell${f===N?" is-selected":""}`,children:[e.jsxs("button",{type:"button",className:"s-term-workspace-builder-cell-select",onClick:()=>A(N),"aria-pressed":f===N,children:[e.jsx("span",{children:String(N+1).padStart(2,"0")}),e.jsx(U,{size:17,strokeWidth:1.7}),e.jsx("strong",{children:k.kind==="registered"?L?.title??"Unavailable session":as(k.backend,k.agent).title}),e.jsx("small",{children:k.kind==="registered"?L?.cwdLabel||L?.detail:k.backend})]}),d.length>1&&e.jsx("button",{type:"button",className:"s-term-workspace-builder-cell-remove",onClick:()=>h(N),title:"Remove this cell","aria-label":`Remove cell ${N+1}`,children:e.jsx(pe,{size:13,strokeWidth:1.9})})]},k.id)}),e.jsxs("button",{type:"button",className:"s-term-workspace-builder-cell s-term-workspace-builder-cell--add",onClick:M,children:[e.jsx(Z,{size:18,strokeWidth:1.7}),e.jsx("strong",{children:"Add cell"})]})]}),e.jsxs("aside",{className:"s-term-workspace-builder-source",children:[e.jsxs("span",{children:["Cell ",String(f+1).padStart(2,"0")]}),e.jsx("h3",{children:"Start something new"}),e.jsxs("div",{className:"s-term-workspace-builder-source-actions",children:[gn.map(k=>e.jsx("button",{type:"button",onClick:()=>R("pty",k.value),children:k.label},k.value)),m.filter(k=>k.value!=="pty").map(k=>e.jsxs("button",{type:"button",onClick:()=>R(k.value,"shell"),title:k.relayAttach?k.detail:`${k.detail} — Scout starts it; open it in ${k.label} to use it`,children:[k.label,!k.relayAttach&&e.jsx("sup",{"aria-label":"opens outside Scout",children:" ↗"})]},k.value))]}),e.jsxs("div",{className:"s-term-workspace-builder-source-head",children:[e.jsx("h3",{children:"Or use a live session"}),e.jsx("div",{className:"s-term-picker-views",role:"group","aria-label":"Session picker view",children:["list","table"].map(k=>e.jsx("button",{type:"button",className:j===k?"is-selected":"",onClick:()=>v(k),"aria-pressed":j===k,children:k==="list"?"List":"Table"},k))})]}),e.jsx("div",{className:"s-term-workspace-builder-sessions",children:c.length===0?e.jsx("span",{className:"s-term-workspace-builder-no-sessions",children:"No live sessions"}):e.jsx(qs,{items:c,view:j,sort:C,attachedIds:new Set,draggedTargetId:null,onSort:z,onAttach:k=>{const N=c.find(L=>L.session.id===k.session.id&&L.surface.sessionName===k.surface.sessionName);N&&E(N)}})})]})]})]})]})})}function Pn({item:s,attached:t,dragging:r,onAttach:i,onOpen:l}){return e.jsxs("article",{className:`s-term-picker-item${t?" s-term-picker-item--attached":""}${r?" s-term-picker-item--dragging":""}`,"data-picker-item-id":s.id,children:[e.jsx("span",{className:"s-term-picker-grip","aria-hidden":"true",children:"⠿"}),e.jsxs("div",{className:"s-term-picker-item-main",children:[e.jsx("strong",{title:s.surface.sessionName,children:s.title}),e.jsx("span",{title:s.session.cwd??s.detail,children:s.cwdLabel||s.detail})]}),e.jsxs("div",{className:"s-term-picker-item-meta",children:[e.jsx("span",{children:s.surface.backend}),e.jsx("span",{children:_s(s)}),e.jsx("span",{title:s.session.cwd??void 0,children:s.project})]}),l&&e.jsx("button",{type:"button",className:"s-term-picker-add",onClick:l,children:"Open"}),e.jsx("button",{type:"button",className:"s-term-picker-add",onClick:()=>i(G(s)),disabled:t,children:t?"In grid":"Add"})]})}function qs({items:s,view:t,sort:r,attachedIds:i,draggedTargetId:l,onSort:m,onAttach:d,navigate:f}){const c=o.useMemo(()=>_e(s,r),[s,r]),{managed:x,regular:y}=o.useMemo(()=>wt(s),[s]),S=o.useMemo(()=>_e(x,r),[x,r]),w=o.useMemo(()=>_e(y,r),[y,r]),A=h=>{f?.({view:"terminal",terminalSessionId:h.session.id,terminalSurfaceKey:F(h.surface)})},M=(h,j)=>{const C=ce(G(h));return e.jsx(Pn,{item:h,attached:i.has(C),dragging:l===C,onAttach:d,onOpen:j&&f?()=>A(h):void 0},h.id)};return t==="table"?e.jsx("div",{className:"s-term-picker-table-wrap",children:e.jsxs("table",{className:"s-term-picker-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[zt.map(h=>e.jsx("th",{scope:"col","aria-sort":r.column===h.id?r.direction==="asc"?"ascending":"descending":"none",children:e.jsxs("button",{type:"button",onClick:()=>m(h.id),children:[e.jsx("span",{children:h.label}),e.jsx("em",{"aria-hidden":"true",children:r.column===h.id?r.direction==="asc"?"▲":"▼":"·"})]})},h.id)),e.jsx("th",{scope:"col","aria-label":"Place"})]})}),e.jsx("tbody",{children:c.map(h=>{const j=ce(G(h)),C=Ot(h);return e.jsxs("tr",{"data-picker-item-id":h.id,className:i.has(j)?"is-attached":void 0,children:[e.jsx("td",{title:h.surface.sessionName,children:h.title}),e.jsx("td",{children:h.surface.backend}),e.jsx("td",{children:_s(h)}),e.jsx("td",{title:h.session.cwd??void 0,children:h.project}),e.jsx("td",{children:C?$t(C):"—"}),e.jsx("td",{children:e.jsx("button",{type:"button",className:"s-term-picker-add",onClick:()=>d(G(h)),disabled:i.has(j),children:i.has(j)?"In grid":"Add"})})]},h.id)})})]})}):e.jsxs("div",{className:"s-term-picker-list","aria-label":"Available terminals",children:[S.length>0&&e.jsxs("section",{className:"s-term-picker-group","aria-label":"Managed sessions",children:[e.jsx("h3",{className:"s-term-picker-group-title",children:"Managed sessions"}),S.map(h=>M(h,!0))]}),S.length>0&&w.length>0?e.jsxs("section",{className:"s-term-picker-group","aria-label":"Terminals",children:[e.jsx("h3",{className:"s-term-picker-group-title",children:"Terminals"}),w.map(h=>M(h,!1))]}):w.map(h=>M(h,!1))]})}function _n({tile:s,navigate:t,onClose:r,resolution:i,onRevive:l,live:m=!1}){if(s.kind==="registered")return s.target.surface.backend==="herdr"?e.jsx(Is,{tileId:s.id,backend:"herdr",sessionName:s.target.surface.sessionName,live:s.target.surface.state==="live",onClose:r,navigate:t}):e.jsx(Fn,{tile:s,navigate:t,onClose:r});if(s.kind==="unavailable"){const d=i?.status==="revivable"&&!!l;return e.jsxs("section",{className:"s-term-workspace-tile s-term-workspace-tile--unavailable","aria-label":"Unavailable terminal session",children:[e.jsxs("div",{className:"s-term-bar",children:[e.jsxs("div",{className:"s-term-bar-left",children:[e.jsx("span",{className:"s-term-workspace-tile-mark",children:e.jsx(U,{size:14,strokeWidth:1.8})}),e.jsx("span",{className:"s-term-workspace-tile-name",children:"Not running"})]}),e.jsx("div",{className:"s-term-bar-actions",children:e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:()=>r(s.id),title:"Remove cell","aria-label":"Remove cell",children:e.jsx(pe,{size:14,strokeWidth:1.8})})})]}),e.jsxs("div",{className:"s-term-workspace-unavailable-body",children:[e.jsx(U,{size:22,strokeWidth:1.5}),e.jsx("strong",{children:d?"This tile is not running.":"This saved session is not currently live."}),e.jsx("span",{children:i?.detail??"Show the terminal picker to replace it, or wait for the session to reconnect."}),d&&e.jsx("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:()=>l?.(s.id),children:"Start it again"})]})]})}return!Os(s.backend)&&s.backend!=="pty"?e.jsx(Is,{tileId:s.id,backend:s.backend,sessionName:s.sessionName,live:m,onClose:r,navigate:t}):e.jsx($n,{tile:s,navigate:t,onClose:r})}function Is({tileId:s,backend:t,sessionName:r,live:i,onClose:l,navigate:m}){const{hosts:d}=Xe(),f=pn(d,t),[c,x]=o.useState("idle"),[y,S]=o.useState(null),w=t==="herdr",{topology:A}=It(w?r??null:null,{enabled:w&&i}),M=o.useCallback(()=>{r&&(x("starting"),S(null),Rt(t,{sessionName:r}).then(()=>x("idle")).catch(v=>{x("failed"),S(v instanceof Error?v.message:String(v))}))},[t,r]),h=o.useCallback(()=>{if(!m||!r)return;const v=vt(t,r);v&&m({view:"terminal",terminalSurfaceKey:v})},[m,t,r]),j=o.useCallback(()=>{!m||!r||m(Et(r))},[m,r]),C=w&&A?.running?A.workspaces.flatMap(v=>v.tabs):[];return e.jsxs("section",{className:"s-term-workspace-tile s-term-workspace-tile--hosted","aria-label":`${f?.label??t} session`,children:[e.jsxs("div",{className:"s-term-bar",children:[e.jsxs("div",{className:"s-term-bar-left",children:[e.jsx("span",{className:"s-term-workspace-tile-mark",children:e.jsx(U,{size:14,strokeWidth:1.8})}),e.jsx("span",{className:"s-term-workspace-tile-name",children:f?.label??t})]}),e.jsxs("div",{className:"s-term-bar-meta",children:[e.jsx("span",{className:"s-term-label",children:i?"running":"not running"}),r&&e.jsx("span",{className:"s-term-session",title:r,children:r})]}),e.jsxs("div",{className:"s-term-bar-actions",children:[w&&i&&r&&m&&e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:j,title:"Enter — open a live web terminal attached to this session","aria-label":"Enter — open a live web terminal attached to this session",children:e.jsx(Qe,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:()=>l(s),title:"Remove cell","aria-label":"Remove cell",children:e.jsx(pe,{size:14,strokeWidth:1.8})})]})]}),C.length>0?e.jsx("button",{type:"button",className:"s-term-workspace-hosted-body s-term-workspace-hosted-body--link",onClick:h,children:C.map(v=>{const z=Wt(v);return e.jsxs("span",{className:"s-term-workspace-hosted-tab",children:[e.jsx("span",{className:"s-term-workspace-hosted-tab-dots",children:z.statuses.map((R,E)=>e.jsx(At,{status:R},`${v.tabId}:${E}`))}),e.jsx("span",{className:"s-term-workspace-hosted-tab-label",children:z.label}),e.jsx("span",{className:"s-term-workspace-hosted-tab-count",children:z.statuses.length})]},v.tabId)})}):e.jsxs("div",{className:"s-term-workspace-unavailable-body",children:[e.jsx(U,{size:22,strokeWidth:1.5}),e.jsx("strong",{children:i?`Running in ${f?.label??t}`:"Not running yet"}),e.jsx("span",{children:i?`Scout keeps this session for you. Open it in ${f?.label??t} to use it.`:`Scout can start a ${f?.label??t} session and keep it for you.`}),!i&&e.jsx("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:M,disabled:c==="starting"||!r,children:c==="starting"?"Starting…":"Start it"}),y&&e.jsx("code",{children:y})]})]})}function $n({tile:s,navigate:t,onClose:r}){const i=o.useRef(null),l=Ve(),m=Ye(),d=as(s.backend,s.agent),f=An(s),c=["scout-terminal-workspace",s.id,s.backend,s.agent,s.sessionName??"pty"].join("-"),x=Ze({url:l,healthUrl:m,autoConnect:!0,sessionKey:c,backend:s.backend,...s.sessionName?{terminalSession:s.sessionName}:{},...s.backend==="tmux"&&s.sessionName?{tmuxSession:s.sessionName}:{},...s.backend==="zellij"&&s.sessionName?{zellijSession:s.sessionName}:{},...s.backend==="zellij"&&s.zellijSocketDir?{zellijSocketDir:s.zellijSocketDir}:{},...s.backend==="herdr"&&s.sessionName?{tmuxSession:s.sessionName}:{},agent:s.agent,controlMode:"takeover"});le(()=>{x.resize(Ge,Je)},[x.resize]);const y=o.useCallback(()=>{f&&Hs(f,t)},[t,f]);return e.jsx("section",{className:"s-term-workspace-tile","aria-label":d.title,children:e.jsxs("div",{className:"s-term s-term--embedded",children:[e.jsxs("div",{className:"s-term-bar s-term-bar--fresh",children:[e.jsxs("div",{className:"s-term-bar-left",children:[e.jsx("span",{className:"s-term-workspace-tile-mark",children:e.jsx(U,{size:14,strokeWidth:1.8})}),e.jsx("span",{className:"s-term-workspace-tile-name",children:d.title})]}),e.jsxs("div",{className:"s-term-bar-meta",children:[e.jsx("span",{className:"s-term-label",children:s.backend}),e.jsx("span",{className:"s-term-session",children:d.detail})]}),e.jsxs("div",{className:"s-term-bar-actions",children:[e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:()=>x.restart(),title:"Restart terminal","aria-label":"Restart terminal",children:e.jsx(es,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:y,title:"Open terminal in a new window","aria-label":"Open terminal in a new window",children:e.jsx(Fs,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:()=>r(s.id),title:"Close tile","aria-label":"Close tile",children:e.jsx(pe,{size:14,strokeWidth:1.8})})]})]}),e.jsx("div",{ref:i,className:"s-term-body",onMouseDown:()=>{i.current?.querySelector(".xterm-helper-textarea")?.focus(),i.current?.querySelector(".xterm")?.focus()},children:e.jsx(ns,{relay:x,quiet:!0,configItems:[{label:"backend",value:s.backend},{label:"agent",value:s.agent},...s.sessionName?[{label:"session",value:s.sessionName}]:[],...s.zellijSocketDir?[{label:"socket",value:s.zellijSocketDir}]:[],{label:"ws",value:l},{label:"health",value:m}]})})]})})}function Fn({tile:s,navigate:t,onClose:r}){const i=o.useCallback(()=>{Hs(Mn(s.target),t)},[t,s.target]);return e.jsx("section",{className:"s-term-workspace-tile","aria-label":s.target.surface.sessionName,children:e.jsx(rs,{agent:null,mode:"takeover",navigate:t,registeredTarget:s.target,embedded:!0,tileActions:e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:i,title:"Open terminal in a new window","aria-label":"Open terminal in a new window",children:e.jsx(Fs,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:()=>r(s.id),title:"Close tile","aria-label":"Close tile",children:e.jsx(pe,{size:14,strokeWidth:1.8})})]})})})}function Kn(s){return[...s].filter(t=>!t.retiredFromFleet).sort((t,r)=>{const i=+!!Te(r)-+!!Te(t);if(i!==0)return i;const l=(r.updatedAt??0)-(t.updatedAt??0);return l!==0?l:t.name.localeCompare(r.name)})}function Un({route:s,navigate:t}){const r=o.useRef(null),i=s.terminalBackend??"pty",l=s.terminalAgent??"shell",m=s.terminalTabId??"adhoc",d=i==="pty"?void 0:`scout-${i}-${m}`,f=s.terminalSessionName??d,c=Ve(),x=Ye(),y=as(i,l),S=["scout-terminal-new",i,l,f??m].join("-"),w=Ze({url:c,healthUrl:x,autoConnect:!0,sessionKey:S,backend:i,...f?{terminalSession:f}:{},...i==="tmux"&&f?{tmuxSession:f}:{},...i==="zellij"&&f?{zellijSession:f}:{},...i==="zellij"&&s.zellijSocketDir?{zellijSocketDir:s.zellijSocketDir}:{},...i==="herdr"&&f?{tmuxSession:f}:{},agent:l,controlMode:"takeover"}),A=o.useRef([]),M=o.useRef({status:w.status,sendLine:w.sendLine});return M.current={status:w.status,sendLine:w.sendLine},le(()=>{const h=j=>{const C=yn(j);if(!C)return;const v=M.current;if(v.status==="connected"){v.sendLine(C);return}A.current=[...A.current.slice(-15),C]};return window.addEventListener(Ns,h),()=>window.removeEventListener(Ns,h)},[]),le(()=>{if(w.status!=="connected"||A.current.length===0)return;const h=A.current;A.current=[];for(const j of h)w.sendLine(j)},[w.sendLine,w.status]),le(()=>{w.resize(Ge,Je)},[w.resize]),e.jsxs("div",{className:"s-term",children:[e.jsxs("div",{className:"s-term-bar",children:[e.jsx(ue,{slot:"terminal",fallback:{view:"terminal"},navigate:t,className:"s-term-back"}),e.jsx("span",{className:"s-term-label",children:y.title}),e.jsx("div",{className:"s-term-status",children:y.detail}),e.jsx("div",{className:"s-term-actions",children:e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:()=>w.restart(),title:"Restart terminal","aria-label":"Restart terminal",children:e.jsx(es,{size:14,strokeWidth:1.8})})})]}),e.jsx("div",{ref:r,className:"s-term-body",onMouseDown:()=>{r.current?.querySelector(".xterm-helper-textarea")?.focus(),r.current?.querySelector(".xterm")?.focus()},children:e.jsx(ns,{relay:w,quiet:!0,configItems:[{label:"backend",value:i},{label:"agent",value:l},...f?[{label:"session",value:f}]:[],...s.zellijSocketDir?[{label:"socket",value:s.zellijSocketDir}]:[],{label:"ws",value:c},{label:"health",value:x}]})})]})}function as(s,t){const r=t==="shell"?"Shell":t==="codex"?"Codex":t==="pi"?"Pi":"Claude";return s==="pty"?{title:r,detail:"fresh PTY tab"}:{title:`${r} ${s}`,detail:`fresh ${s} backed tab`}}function Bn({agentId:s,agent:t,mode:r,navigate:i,children:l}){const m=Cn(s,t,r);return m.ready?e.jsx(e.Fragment,{children:l}):e.jsx(Tn,{agent:t,agentId:s,color:Ws(t.name),navigate:i,label:m.label,status:m.status,onRetry:m.onRetry})}function Hn({navigate:s}){return e.jsx("div",{className:"s-term",children:e.jsxs("div",{className:"s-term-bar",children:[e.jsx(ue,{slot:"terminal",fallback:{view:"terminal"},navigate:s,className:"s-term-back"}),e.jsx("span",{className:"s-term-label",children:"Terminal"}),e.jsx("div",{className:"s-term-status",children:"Resolving agent..."})]})})}function qn({route:s,navigate:t}){const{agentId:r,mode:i,terminalSessionId:l,terminalSurfaceKey:m}=s,{agents:d}=Rs();if(s.terminalBackend)return e.jsx(Un,{route:s,navigate:t});const f=s.terminalSurfaceKey?Ms(s.terminalSurfaceKey):null;if(!r&&f?.backend==="herdr")return e.jsx(Tt,{sessionName:f.hostSession,navigate:t});if(!r)return!l&&!m?e.jsx(Ln,{navigate:t}):e.jsx(Rn,{terminalSessionId:l,terminalSurfaceKey:m,mode:i,navigate:t});const c=d.find(S=>S.id===r)??null;if(!c)return e.jsx(Hn,{navigate:t});const x=Te(c),y=x?`${x.backend}:${c.id}:${x.sessionName}:${i??"takeover"}`:`takeover:${r}:${i??"takeover"}`;return e.jsx(Bn,{agentId:r,agent:c,mode:i,navigate:t,children:e.jsx(rs,{agentId:r,agent:c,mode:i,navigate:t})},y)}function Yr({agentId:s,mode:t,terminalSessionId:r,terminalSurfaceKey:i,navigate:l}){const m={view:"terminal",agentId:s,mode:t,terminalSessionId:r,terminalSurfaceKey:i};return e.jsx(qn,{route:m,navigate:l})}export{qn as TerminalContent,Yr as TerminalScreen};
@@ -1 +0,0 @@
1
- import{r as e,j as l,a as A,b as C,S as k}from"./index-Bli6bTLU.js";import{L as y,D as T,f as L,S as x,C as R}from"./Provider-Ve8yXaWR.js";import{a as P}from"./api-DEHEgJ9m.js";import{i as I}from"./colors-BtO5_zlx.js";import{r as j,a as D}from"./router-B0YclXYg.js";import{TerminalContent as H}from"./Terminal-Dr-M9U4u.js";import"./provider-CX9EWecp.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./createLucideIcon-DLlxGjKt.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./conversation-model-CigSPlKA.js";import"./time-Dhsh_2EG.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";/* empty css */import"./clipboard-e3fSpeo7.js";import"./terminal-relay-pSm7_An6.js";import"./HerdrSession-DV2hD6Yh.js";import"./usePersistentState-DOEahRlt.js";import"./terminal-BiNIXhna.js";import"./refresh-cw-IgN2fZLM.js";import"./check-Bfs7hMb1.js";import"./copy-De4s38o2.js";import"./eye-BeCSqJn1.js";import"./session-table-B4JOKevn.js";import"./TerminalRelay-lJ2KdMCW.js";import"./terminal-takeover-CtA3wcXh.js";import"./BackToPicker-CqYhOaLB.js";import"./TmuxPeek-BSeKIjnX.js";/* empty css */import"./plus-64n9qucr.js";import"./zap-rw7uwZht.js";import"./external-link-BGHC_naA.js";function g(){const t=new URLSearchParams(window.location.search).get("route")?.trim()||"/terminal",s=j(t);return s.view==="terminal"?s:{view:"terminal"}}function S(o){const t=new URLSearchParams(window.location.search);return t.set("route",D(o)),t.has("profile")||t.set("profile","macos.terminal"),`${window.location.pathname}?${t.toString()}${window.location.hash}`}function Oe(){const[o,t]=e.useState(()=>g()),s=!!(o.terminalBackend||o.agentId||o.terminalSessionId||o.terminalSurfaceKey);e.useEffect(()=>{const i=()=>t(g());return window.addEventListener("popstate",i),()=>window.removeEventListener("popstate",i)},[]);const n=e.useCallback(i=>{if(i.view!=="terminal"){const p={view:"terminal"},a=S(p);window.history.pushState(null,"",a),t(p);return}const c=S(i);window.history.pushState(null,"",c),t(i)},[]);return l.jsx(M,{route:o,navigate:n,children:l.jsx("div",{className:`s-terminal-embed${s?" s-terminal-embed--surface":""}`,children:l.jsx(H,{route:o,navigate:n})})})}function M({route:o,navigate:t,children:s}){const[n,i]=e.useState([]),[c,p]=e.useState({status:"checking",message:null,lastCheckedAt:null}),a=e.useRef(null),u=e.useMemo(()=>A(),[]),f=e.useMemo(()=>C(),[]),b=e.useMemo(()=>({...u==="light"?y:T,...f??{}}),[u,f]),w=e.useCallback(()=>{p({status:"online",message:null,lastCheckedAt:Date.now()})},[]),h=e.useCallback(r=>{p({status:"offline",message:L(r),lastCheckedAt:Date.now()})},[]),m=e.useCallback(async()=>{if(a.current)return a.current;const r=(async()=>{try{i(await P("/api/agents")),w()}catch(d){h(d)}})();a.current=r;try{await r}finally{a.current=null}},[h,w]);e.useEffect(()=>{m()},[m]),e.useEffect(()=>{const r=()=>{document.visibilityState!=="hidden"&&m()},d=window.setInterval(r,15e3);return window.addEventListener("focus",r),document.addEventListener("visibilitychange",r),()=>{window.clearInterval(d),window.removeEventListener("focus",r),document.removeEventListener("visibilitychange",r)}},[m]);const v=e.useMemo(()=>n.filter(r=>I(r.state)).length,[n]),E=e.useMemo(()=>({route:o,navigate:t,navigateBack:()=>{typeof window<"u"&&window.history.back()},canNavigateBack:typeof window<"u"&&window.history.length>1,agents:n,agentsLoaded:c.status!=="checking",onlineCount:v,apiConnection:c,appearanceDetails:k,updateAppearanceDetails:()=>{},reload:m,onboarding:null,operatorName:null,refreshOnboarding:async()=>{},onboardingSkipped:!0,skipOnboarding:()=>{},settingsOpen:!1,openSettings:()=>{},closeSettings:()=>{},scoutbotAgentId:"scoutbot",scoutbotConversationId:null,applyScoutbotUiAction:()=>{},selectedBrokerAttempt:null,inspectBrokerAttempt:()=>{},clearBrokerAttempt:()=>{},selectedKnowledgeHit:null,selectedKnowledgeQuery:"",inspectKnowledgeHit:()=>{},clearKnowledgeHit:()=>{},focusedSession:null,focusSession:()=>{},openFilePreview:()=>{},closeFilePreview:()=>{},openContextCapture:()=>{},closeContextCapture:()=>{}}),[n,c,t,v,m,o]);return l.jsx(x.Provider,{value:E,children:l.jsx("div",{"data-scout-theme":u,"data-scout-theme-mode":u,style:b,children:l.jsx(R,{children:s})})})}export{Oe as TerminalEmbedScreen};
@@ -1,46 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-D6dE_wMr.js","assets/index-Bli6bTLU.js","assets/index-DzlEgstl.css","assets/addon-fit-Celjj2yn.js","assets/addon-webgl-Cu4tJ21-.js"])))=>i.map(i=>d[i]);
2
- import{r as e,j as o,_ as Ne}from"./index-Bli6bTLU.js";const Ae=["terminal:ack"];function st(u={}){const{url:m="ws://localhost:3600",healthUrl:y,token:x,systemPrompt:S,cwd:Re,workspaceFiles:ne,autoConnect:he=!1,sessionKey:ge,orphanTTL:oe,backend:$,controlMode:p="owner",tmuxSession:F,zellijSession:se,zellijSocketDir:ce,agent:le,provider:K,model:J,flowControl:ue}=u,O=ge?`hudson.relay.${ge}`:null,Ce=()=>{if(!O)return null;try{const r=localStorage.getItem(O);if(!r)return null;if(r.startsWith("{")){const c=JSON.parse(r);return typeof c.id!="string"?null:{id:c.id,reconnectToken:typeof c.reconnectToken=="string"?c.reconnectToken:null}}return{id:r,reconnectToken:null}}catch{return null}},l=e.useCallback((r,c=null)=>{if(O)try{r?localStorage.setItem(O,JSON.stringify({id:r,reconnectToken:c})):localStorage.removeItem(O)}catch{}},[O]),[de,k]=e.useState("disconnected"),[Ee,ie]=e.useState(null),[ye,L]=e.useState(null),[fe,h]=e.useState(null),[me,Te]=e.useState(Re||"~"),R=e.useRef(null),X=e.useRef(null),P=e.useRef({cols:80,rows:24}),I=e.useRef(!1),M=e.useRef([]),G=e.useRef(0),W=e.useRef(0),Y=e.useRef(0),V=e.useRef(me);V.current=me;const ae=e.useRef(!1),H=e.useRef(null);ae.current||(ae.current=!0,H.current=Ce());const j=e.useRef(H.current?.id??null),i=e.useRef(H.current?.reconnectToken??null),Q=e.useRef(null),B=e.useRef(new Set),Z=ue?.maxBufferedBytes??512*1024,d=e.useCallback(r=>{const c=R.current;c&&c.readyState===WebSocket.OPEN&&c.send(JSON.stringify(r))},[]),q=e.useCallback((r,c)=>{typeof r=="number"&&c===Y.current&&d({type:"terminal:ack",seq:r})},[d]),ee=e.useCallback(()=>{Y.current+=1,M.current=[],G.current=0},[]),z=e.useCallback((r,c=null)=>{const A=Y.current;if(!r){q(c,A);return}let g=!1;const N=()=>{g||(g=!0,q(c,A))};if(Q.current)try{Q.current(r,N)}catch{N()}else for(M.current.push({data:r,seq:c,ack:N}),G.current+=r.length;G.current>Z&&M.current.length>0;){const f=M.current.shift();if(!f)break;G.current-=f.data.length,f.ack()}if(B.current.size>0)for(const f of B.current)try{f(r)}catch{}},[q,Z]),C=e.useCallback(()=>{const r=R.current;r&&(r.close(),R.current=null)},[]),v=e.useCallback(()=>{W.current+=1,X.current&&(clearTimeout(X.current),X.current=null),C(),I.current=!1,k("disconnected")},[C]),te=e.useCallback(()=>{const r=V.current;return{type:"session:init",cols:P.current.cols,rows:P.current.rows,clientCapabilities:[...Ae],...S?{systemPrompt:S}:{},...r?{cwd:r}:{},...ne?{workspaceFiles:ne}:{},...oe?{orphanTTL:oe}:{},...$?{backend:$}:{},...p!=="owner"?{controlMode:p}:{},...F?{tmuxSession:F}:{},...se?{zellijSession:se}:{},...ce?{zellijSocketDir:ce}:{},...le?{agent:le}:{},...K?{provider:K}:{},...J?{model:J}:{}}},[le,$,p,J,oe,K,S,F,ne,se,ce]),_=e.useCallback(()=>{I.current||(I.current=!0,j.current?d({type:"session:reconnect",sessionId:j.current,...i.current?{reconnectToken:i.current}:{},cols:P.current.cols,rows:P.current.rows,clientCapabilities:[...Ae],...p!=="owner"?{controlMode:p}:{}}):d(te()))},[d,te,p]),D=e.useCallback(async()=>{const r=W.current+1;W.current=r,C(),Y.current+=1,I.current=!1,k("connecting"),L(null),h(null);const c=y||`${m.replace(/^ws(s?):\/\//,"http$1://")}/health`;try{const f=await fetch(c,{signal:AbortSignal.timeout(2e3)});if(!f.ok)throw new Error(`Relay health check failed: ${f.status}`)}catch{if(W.current!==r)return;k("error"),L("Relay service is not running");return}if(W.current!==r)return;C();const A=x?`${m}${m.includes("?")?"&":"?"}token=${encodeURIComponent(x)}`:m,g=new WebSocket(A);R.current=g;const N=()=>W.current===r&&R.current===g;g.onopen=()=>{if(!N()){g.close();return}_()},g.onmessage=f=>{if(N())try{const b=JSON.parse(f.data);switch(b.type){case"session:ready":j.current=b.sessionId,i.current=typeof b.reconnectToken=="string"?b.reconnectToken:null,l(b.sessionId,i.current),ie(b.sessionId),k("connected"),L(null),h(null);break;case"session:expired":{j.current=null,i.current=null,l(null),I.current=!1,ee(),z("\x1B[2J\x1B[H",null),d(te()),I.current=!0;break}case"session:error":k("error"),L(b.error||"Session failed to start");break;case"terminal:data":z(b.data||"",typeof b.seq=="number"?b.seq:null);break;case"session:exit":j.current=null,i.current=null,l(null),ee(),ie(null),h(b.exitCode??null),b.exitCode!==0?(k("error"),L(b.reason||`Process exited with code ${b.exitCode}`)):k("disconnected");break;case"session:detached":j.current=null,i.current=null,l(null),ie(null);break}}catch{}},g.onclose=()=>{N()&&(R.current=null,I.current=!1,k(f=>f==="error"?f:"disconnected"))},g.onerror=()=>{N()&&(k("error"),L("Could not connect to relay"))}},[m,y,x,_,C,d,z,te,l,ee]),ve=e.useCallback(r=>{p!=="observe"&&d({type:"terminal:input",data:r})},[p,d]),we=e.useCallback(r=>{p!=="observe"&&d({type:"terminal:input",data:r+"\r"})},[p,d]),ke=e.useCallback((r,c)=>{P.current={cols:r,rows:c},I.current&&d({type:"terminal:resize",cols:r,rows:c})},[d]),xe=e.useCallback(r=>{if(Q.current=r,!r||M.current.length===0)return;const c=M.current;M.current=[],G.current=0;for(const A of c)try{r(A.data,A.ack)}catch{A.ack()}},[]),E=e.useCallback(r=>(B.current.add(r),()=>{B.current.delete(r)}),[]);e.useEffect(()=>(he&&D(),()=>{v()}),[]);const T=e.useCallback(()=>{v(),j.current=null,i.current=null,ie(null),l(null),ee(),L(null),h(null),X.current=setTimeout(()=>{X.current=null,D()},200)},[v,D,l,ee]);return{status:de,sessionId:Ee,error:ye,exitCode:fe,cwd:me,controlMode:p,setCwd:Te,onData:xe,subscribeData:E,sendInput:ve,sendLine:we,resize:ke,connect:D,disconnect:v,restart:T}}const We={titleBarInset:0,dragRegionProps:{},onInteractiveMouseDown:void 0,isSSR:!0,apiBaseUrl:"",serviceApiUrl:""},$e=e.createContext(We);function Ke(){return e.useContext($e)}const Je=e.createContext(null);function Xe(){return e.useContext(Je)}const Oe="hudson:terminal:voice-transcript",Le="hudson:terminal:voice-submit",ct='[data-hudson-terminal-drawer-content="true"]',Ge=e.createContext(void 0),Ye={background:"#091112",foreground:"#d7e5e2",cursor:"#35d7d0",cursorAccent:"#091112",selectionBackground:"#173739",selectionForeground:"#f3fbf9",black:"#091112",red:"#ff6b6b",green:"#35d07f",yellow:"#f5c451",blue:"#62b4ff",magenta:"#ff7ab6",cyan:"#32d5ca",white:"#d7e5e2",brightBlack:"#667777",brightRed:"#ff8f8f",brightGreen:"#5ee79f",brightYellow:"#ffd36e",brightBlue:"#8dccff",brightMagenta:"#ff9fca",brightCyan:"#67eee3",brightWhite:"#ffffff"},Qe={background:"#f7faf9",foreground:"#111a19",cursor:"#006f6a",cursorAccent:"#f7faf9",selectionBackground:"#c0e7e2",selectionForeground:"#0d1716",black:"#111a19",red:"#9f1f18",green:"#006c46",yellow:"#704600",blue:"#075985",magenta:"#9d174d",cyan:"#006f6a",white:"#dbe5e2",brightBlack:"#52635f",brightRed:"#c2271f",brightGreen:"#007f55",brightYellow:"#865b00",brightBlue:"#0369a1",brightMagenta:"#be185d",brightCyan:"#007f89",brightWhite:"#ffffff"},Ze=`
3
- .xterm { cursor: text; position: relative; user-select: none; -ms-user-select: none; -webkit-user-select: none; }
4
- .xterm.focus, .xterm:focus { outline: none; }
5
- .xterm .xterm-helpers { position: absolute; top: 0; z-index: 5; }
6
- .xterm .xterm-helper-textarea { padding: 0; border: 0; margin: 0; position: absolute; opacity: 0; left: -9999em; top: 0; width: 0; height: 0; z-index: -5; white-space: nowrap; overflow: hidden; resize: none; }
7
- .xterm .composition-view { background: var(--hud-terminal-bg, #091112); color: var(--hud-terminal-fg, #d7e5e2); display: none; position: absolute; white-space: nowrap; z-index: 1; }
8
- .xterm .composition-view.active { display: block; }
9
- .xterm .xterm-viewport { background-color: var(--hud-terminal-bg, transparent); overflow-y: scroll; cursor: default; position: absolute; right: 0; left: 0; top: 0; bottom: 0; }
10
- .xterm .xterm-screen { position: relative; }
11
- .xterm .xterm-screen canvas { position: absolute; left: 0; top: 0; }
12
- .xterm-char-measure-element { display: inline-block; visibility: hidden; position: absolute; top: 0; left: -9999em; line-height: normal; }
13
- .xterm.enable-mouse-events { cursor: default; }
14
- .xterm.xterm-cursor-pointer, .xterm .xterm-cursor-pointer { cursor: pointer; }
15
- .xterm.column-select.focus { cursor: crosshair; }
16
- .xterm .xterm-accessibility:not(.debug), .xterm .xterm-message { position: absolute; left: 0; top: 0; bottom: 0; right: 0; z-index: 10; color: transparent; pointer-events: none; }
17
- .xterm .xterm-accessibility-tree:not(.debug) *::selection { color: transparent; }
18
- .xterm .xterm-accessibility-tree { font-family: monospace; user-select: text; white-space: pre; }
19
- .xterm .xterm-accessibility-tree > div { transform-origin: left; width: fit-content; }
20
- .xterm .live-region { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
21
- .xterm-dim { opacity: 1 !important; }
22
- .xterm-underline-1 { text-decoration: underline; }
23
- .xterm-underline-2 { text-decoration: double underline; }
24
- .xterm-underline-3 { text-decoration: wavy underline; }
25
- .xterm-underline-4 { text-decoration: dotted underline; }
26
- .xterm-underline-5 { text-decoration: dashed underline; }
27
- .xterm-overline { text-decoration: overline; }
28
- .xterm-overline.xterm-underline-1 { text-decoration: overline underline; }
29
- .xterm-overline.xterm-underline-2 { text-decoration: overline double underline; }
30
- .xterm-overline.xterm-underline-3 { text-decoration: overline wavy underline; }
31
- .xterm-overline.xterm-underline-4 { text-decoration: overline dotted underline; }
32
- .xterm-overline.xterm-underline-5 { text-decoration: overline dashed underline; }
33
- .xterm-strikethrough { text-decoration: line-through; }
34
- .xterm-screen .xterm-decoration-container .xterm-decoration { z-index: 6; position: absolute; }
35
- .xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer { z-index: 7; }
36
- .xterm-decoration-overview-ruler { z-index: 8; position: absolute; top: 0; right: 0; pointer-events: none; }
37
- .xterm-decoration-top { z-index: 2; position: relative; }
38
- .xterm .xterm-scrollable-element > .scrollbar { cursor: default; }
39
- .xterm .xterm-scrollable-element > .scrollbar > .scra { cursor: pointer; font-size: 11px !important; }
40
- .xterm .xterm-scrollable-element > .visible { opacity: 1; background: rgba(0,0,0,0); transition: opacity 100ms linear; z-index: 11; }
41
- .xterm .xterm-scrollable-element > .invisible { opacity: 0; pointer-events: none; }
42
- .xterm .xterm-scrollable-element > .invisible.fade { transition: opacity 800ms linear; }
43
- .xterm .xterm-scrollable-element > .shadow { position: absolute; display: none; }
44
- .xterm .xterm-scrollable-element > .shadow.top { display: block; top: 0; left: 3px; height: 3px; width: 100%; }
45
- .xterm .xterm-scrollable-element > .shadow.left { display: block; top: 3px; left: 0; height: 100%; width: 3px; }
46
- `;function qe(){if(typeof document>"u"||document.querySelector("[data-xterm-css]"))return;const u=document.createElement("style");u.setAttribute("data-xterm-css",""),u.textContent=Ze,document.head.appendChild(u)}function Se(u,m){if(typeof u!="object"||u===null)return;const y=u,x=y[m];if(x)return x;const S=y.default;if(!(typeof S!="object"||S===null))return S[m]}function Pe(u,m){if(!u||m&&!u.closest(m))return!1;const y=u.getBoundingClientRect();if(y.width<=0||y.height<=0)return!1;const x=window.getComputedStyle(u);return x.display!=="none"&&x.visibility!=="hidden"}const et="\x1B[13;2u",Me="\r";function tt(u){return new Promise((m,y)=>{const x=new FileReader;x.onload=()=>{const S=x.result;m(S.split(",")[1])},x.onerror=y,x.readAsDataURL(u)})}function rt({relay:u,fontSize:m=12,fontFamily:y="'JetBrains Mono', 'Hack Nerd Font', monospace",scrollback:x=5e3,renderer:S="auto",readOnly:Re=!1,ariaLabel:ne="Terminal",className:he,style:ge,colorScheme:oe="auto",configItems:$,onOpenSettings:p,onStartService:F,quiet:se=!1,voiceVisibilityScope:ce,imageUploadUrl:le,onReady:K,onDispose:J,onResize:ue,onRendererChange:O},Ce){const{status:l,error:de,exitCode:k,cwd:Ee,setCwd:ie,sendInput:ye,resize:L,onData:fe,connect:h,disconnect:me,controlMode:Te="owner"}=u,R=Re||Te==="observe",X=e.useContext(Ge),P=ce===!1?void 0:ce??X,[I,M]=e.useState(!1),{apiBaseUrl:G}=Ke(),W=Xe(),Y=oe==="auto"?W?.resolvedTheme==="light"?"light":"dark":oe,V=Y==="light"?Qe:Ye,ae=Y==="light"?4.5:3,H=e.useRef(null),j=e.useRef(null),i=e.useRef(null),Q=e.useRef(null),B=e.useRef(null),Z=e.useRef(!1),[d,q]=e.useState(!1),[ee,z]=e.useState(!1),C=e.useRef(0),v=e.useRef(R),te=e.useRef(null),_=e.useRef(null),D=e.useRef(null),ve=e.useRef(K),we=e.useRef(J),ke=e.useRef(ue),xe=e.useRef(O);e.useEffect(()=>{v.current=R,R&&(B.current=null,Z.current=!1,C.current=0,z(!1))},[R]),e.useEffect(()=>{ve.current=K},[K]),e.useEffect(()=>{we.current=J},[J]),e.useEffect(()=>{ke.current=ue},[ue]),e.useEffect(()=>{xe.current=O},[O]),e.useEffect(()=>{const t=H.current;if(!t)return;const n=s=>{s.key===" "&&!s.metaKey&&!s.ctrlKey&&!s.altKey&&s.stopPropagation()};return t.addEventListener("keydown",n),()=>t.removeEventListener("keydown",n)},[]);const E=le===void 0?`${G}/api/relay/upload`:le,T=e.useCallback(t=>{v.current||ye(t)},[ye]),r=e.useCallback((t,n)=>{if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0)return;const s=te.current;s&&s.cols===t&&s.rows===n||(te.current={cols:t,rows:n},L(t,n),ke.current?.(t,n))},[L]),c=e.useCallback(()=>{const t=Q.current,n=i.current;if(!t||!n)return null;try{t.fit()}catch{return null}const s={cols:n.cols,rows:n.rows};return r(s.cols,s.rows),s},[r]),A=e.useCallback(()=>{_.current===null&&(_.current=window.requestAnimationFrame(()=>{_.current=null,c()}))},[c]);e.useImperativeHandle(Ce,()=>({focus:()=>{i.current?.focus()},fit:c,clear:()=>{i.current?.clear()},getDimensions:()=>{const t=i.current;return t?{cols:t.cols,rows:t.rows}:null},getTerminal:()=>i.current}),[c]);const g=e.useCallback(t=>{const n=t.transcript.replace(/\s+/g," ").trim();n&&T(t.submit?`${n}${Me}`:n)},[T]),N=e.useCallback(()=>{T(Me)},[T]);e.useEffect(()=>{const t=n=>{if(v.current||!Pe(H.current,P))return;const s=n.detail;if(!(!s||typeof s.transcript!="string")){if(l==="connected"){g(s);return}B.current=s,l!=="connecting"&&h()}};return window.addEventListener(Oe,t),()=>window.removeEventListener(Oe,t)},[h,g,l,P]),e.useEffect(()=>{if(l!=="connected"||!B.current)return;const t=B.current;B.current=null,g(t)},[g,l]),e.useEffect(()=>{const t=()=>{if(!v.current&&Pe(H.current,P)){if(l==="connected"){N();return}Z.current=!0,l!=="connecting"&&h()}};return window.addEventListener(Le,t),()=>window.removeEventListener(Le,t)},[h,N,l,P]),e.useEffect(()=>{l!=="connected"||!Z.current||(Z.current=!1,N())},[N,l]);const f=e.useCallback(async t=>{if(!E)return null;try{const n=await tt(t),s=await fetch(E,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t.name,data:n})}),{path:w}=await s.json();return w||null}catch(n){return console.error("File upload failed:",n),null}},[E]);e.useEffect(()=>{const t=H.current;if(!t)return;const n=async s=>{if(!s.clipboardData||!E)return;const w=Array.from(s.clipboardData.items).filter(U=>U.type.startsWith("image/"));if(w.length!==0&&(s.preventDefault(),s.stopPropagation(),!v.current))for(const U of w){const pe=U.getAsFile();if(!pe)continue;const be=await f(pe);be&&T(be)}};return t.addEventListener("paste",n),()=>t.removeEventListener("paste",n)},[T,f,E]);const b=e.useCallback(t=>{if(t.preventDefault(),v.current||!E){t.dataTransfer.dropEffect="none";return}t.dataTransfer.dropEffect="copy"},[E]),Be=e.useCallback(t=>{if(t.preventDefault(),v.current||!E){C.current=0,z(!1);return}C.current++,t.dataTransfer.types.includes("Files")&&z(!0)},[E]),ze=e.useCallback(t=>{if(t.preventDefault(),v.current){C.current=0,z(!1);return}C.current--,C.current===0&&z(!1)},[]),Fe=e.useCallback(async t=>{if(t.preventDefault(),C.current=0,z(!1),v.current||!E)return;const n=Array.from(t.dataTransfer.files).filter(s=>s.type.startsWith("image/"));if(n.length!==0)for(const s of n){const w=await f(s);w&&T(w)}},[T,f,E]);e.useEffect(()=>{let t=!1,n=null;q(!1);async function s(){const[w,U,pe]=await Promise.all([Ne(()=>import("./xterm-D6dE_wMr.js").then(a=>a.x),__vite__mapDeps([0,1,2])),Ne(()=>import("./addon-fit-Celjj2yn.js").then(a=>a.a),__vite__mapDeps([3,1,2])),Ne(()=>import("./addon-webgl-Cu4tJ21-.js").then(a=>a.a),__vite__mapDeps([4,1,2])).catch(()=>null)]),be=Se(w,"Terminal"),je=Se(U,"FitAddon"),_e=pe?Se(pe,"WebglAddon"):void 0;if(!be||!je){console.error("[TerminalRelay] @xterm/xterm or @xterm/addon-fit missing constructors",{xtermMod:w,fitMod:U});return}if(qe(),t||!j.current)return;n=new be({fontSize:m,fontFamily:y,theme:V,minimumContrastRatio:ae,cursorBlink:!0,cursorStyle:"bar",allowTransparency:!0,scrollback:x,convertEol:!1,allowProposedApi:!0});const De=new je;n.loadAddon(De),n.open(j.current),i.current=n,Q.current=De;let Ie="dom";if(S!=="dom"&&_e)try{const a=new _e;a.onContextLoss(()=>{a.dispose(),xe.current?.("dom")}),n.loadAddon(a),Ie="webgl"}catch{}xe.current?.(Ie),c(),n.attachCustomKeyEventHandler(a=>a.type==="keydown"&&a.key==="Enter"&&a.shiftKey&&!a.ctrlKey&&!a.altKey&&!a.metaKey?(a.preventDefault(),a.stopPropagation(),T(et),!1):!0),n.onData(a=>{T(a)}),q(!0),ve.current?.(n)}return s(),()=>{t=!0,q(!1),_.current!==null&&(window.cancelAnimationFrame(_.current),_.current=null),n&&(n.dispose(),i.current=null,Q.current=null),we.current?.()}},[c,S,x,T]),e.useEffect(()=>{const t=i.current;t&&(t.options.fontSize=m,t.options.fontFamily=y,c())},[c,m,y]),e.useEffect(()=>{const t=i.current;t&&(t.options.theme=V,t.options.minimumContrastRatio=ae)},[ae,V]),e.useEffect(()=>{if(d)return fe((t,n)=>{let s=!1;const w=()=>{s||(s=!0,n())},U=i.current;if(!U){w();return}try{U.write(t,w)}catch{w()}}),()=>{fe(null)}},[d,fe]),e.useEffect(()=>{const t=j.current;if(!t||!d)return;const n=new ResizeObserver(()=>{A()});return n.observe(t),()=>{n.disconnect(),_.current!==null&&(window.cancelAnimationFrame(_.current),_.current=null)}},[d,A]),e.useEffect(()=>{l==="connected"&&i.current&&i.current.focus()},[l]);const Ve=e.useCallback(()=>{l==="connected"&&i.current&&i.current.focus()},[l]),He=l==="error"&&de==="Relay service is not running",Ue=e.useCallback(async()=>{if(F){M(!0);try{await F()&&(D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{D.current=null,h()},500))}finally{M(!1)}}},[F,h]);e.useEffect(()=>()=>{D.current&&(clearTimeout(D.current),D.current=null)},[]);let re=null;return He?re=o.jsxs("div",{className:"flex flex-col items-center gap-4 max-w-xs text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-amber-500/10 border border-amber-500/20 flex items-center justify-center",children:o.jsx("span",{className:"text-amber-400 text-[14px]",children:"!"})}),o.jsxs("div",{children:[o.jsx("div",{className:"text-[12px] text-foreground font-medium mb-1",children:"Relay service not running"}),o.jsx("div",{className:"text-[11px] text-muted-foreground/80 leading-relaxed",children:F?"Start the relay service to open a terminal session.":"Start the relay service from the Workspace Manager."})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[F&&o.jsx("button",{type:"button",onClick:Ue,disabled:I,className:"text-[11px] px-4 py-1.5 rounded-full border border-accent/30 text-accent hover:bg-accent/10 transition-colors font-medium disabled:opacity-50",children:I?"Starting":"Start Service"}),o.jsx("button",{type:"button",onClick:()=>h(),className:"text-[11px] px-3 py-1.5 rounded-full border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Retry"}),p&&o.jsx("button",{type:"button",onClick:p,className:"text-[11px] px-3 py-1.5 rounded-full border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Settings"})]})]}):l==="error"&&de?re=o.jsxs("div",{className:"flex flex-col items-center gap-3 max-w-md text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-red-500/10 flex items-center justify-center",children:o.jsx("span",{className:"text-red-400 text-sm",children:"!"})}),o.jsx("span",{className:"text-red-400 text-[12px] font-medium",children:"Session failed"}),o.jsx("code",{className:"text-[11px] text-muted-foreground bg-muted/80 px-3 py-2 rounded-md whitespace-pre-wrap leading-relaxed max-h-32 overflow-y-auto w-full text-left",children:de}),k!==null&&k!==0&&o.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Exit code ",k]}),o.jsx("button",{type:"button",onClick:()=>h(),className:"text-[11px] px-3 py-1 rounded-full border border-cyan-500/30 text-cyan-400 hover:bg-cyan-500/10 transition-colors",children:"Retry"})]}):l==="disconnected"&&!se?re=o.jsxs("div",{className:"flex flex-col items-center gap-4 max-w-xs text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-muted border border-border flex items-center justify-center",children:o.jsx("span",{className:"text-muted-foreground/80 text-[14px]",children:"▷"})}),o.jsxs("div",{children:[o.jsx("div",{className:"text-[12px] text-foreground font-medium mb-1",children:"Terminal relay disconnected"}),o.jsx("div",{className:"text-[11px] text-muted-foreground/80 leading-relaxed",children:"Set working directory and connect."})]}),o.jsxs("form",{className:"w-full",onSubmit:t=>{t.preventDefault(),h()},children:[o.jsx("label",{className:"text-[10px] font-mono text-muted-foreground/80 uppercase tracking-wider mb-1 block text-left",children:"Working Directory"}),o.jsx("input",{type:"text",value:Ee,onChange:t=>ie(t.target.value),placeholder:"~/dev/my-project",className:"w-full bg-muted/80 border border-border/50 rounded px-3 py-1.5 text-[11px] font-mono text-foreground placeholder:text-muted-foreground/60 outline-none focus:border-accent/40 transition-colors",spellCheck:!1,autoComplete:"off"})]}),$&&$.length>0&&o.jsx("div",{className:"w-full grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[10px] font-mono bg-muted/60 border border-border/40 rounded-md px-3 py-2",children:$.map(t=>o.jsxs("div",{className:"contents",children:[o.jsx("span",{className:"text-muted-foreground/80",children:t.label}),o.jsx("span",{className:"text-muted-foreground truncate text-left",children:t.value})]},t.label))}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>h(),className:"text-[11px] px-4 py-1.5 rounded-full border border-cyan-500/30 text-cyan-400 hover:bg-cyan-500/10 transition-colors font-medium",children:"Connect"}),p&&o.jsx("button",{type:"button",onClick:p,className:"text-[11px] px-3 py-1.5 rounded-full border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Settings"})]})]}):l==="connecting"&&!se&&(re=o.jsxs("div",{className:"flex flex-col items-center gap-3 text-center",children:[o.jsx("div",{className:"w-6 h-6 border-2 border-muted-foreground/30 border-t-cyan-500 rounded-full animate-spin"}),o.jsx("span",{className:"text-[12px] text-muted-foreground",children:"Connecting to relay"}),o.jsx("button",{type:"button",onClick:()=>{me()},className:"text-[10px] px-3 py-1 rounded-full border border-border text-muted-foreground/80 hover:text-foreground hover:bg-muted transition-colors",children:"Cancel"})]})),o.jsxs("div",{ref:H,className:he?`relative flex flex-col h-full overflow-hidden ${he}`:"relative flex flex-col h-full overflow-hidden",style:ge,role:"application","aria-label":R?`${ne} (read only)`:ne,"data-readonly":R?"true":void 0,onClick:Ve,onDragOver:b,onDragEnter:Be,onDragLeave:ze,onDrop:Fe,children:[re&&o.jsx("div",{className:"flex items-center justify-center h-full font-mono text-[12px] absolute inset-0 z-10 bg-background/95",children:re}),ee&&o.jsx("div",{className:"absolute inset-0 z-20 flex items-center justify-center bg-cyan-500/10 border-2 border-dashed border-cyan-500/50 rounded pointer-events-none",children:o.jsx("span",{className:"text-cyan-400 font-mono text-sm",children:"Drop image to get path"})}),o.jsx("div",{ref:j,className:"flex-1 min-h-0 min-w-0 overflow-hidden",style:{visibility:re?"hidden":"visible",backgroundColor:V.background,"--hud-terminal-bg":V.background,"--hud-terminal-fg":V.foreground}})]})}const nt=e.forwardRef(rt);nt.displayName="TerminalRelay";export{ct as H,nt as T,Ke as a,Ge as b,st as u};
@@ -1 +0,0 @@
1
- import{r as c,j as e}from"./index-Bli6bTLU.js";import{D as F,F as T,a as E}from"./DocumentFocusViewer-DmtFisY9.js";import{c as D,T as M}from"./TextDocumentSurface-C7fGlzY8.js";import{a as R}from"./api-DEHEgJ9m.js";import{C as L}from"./chevron-right-BMqtBds_.js";import{C as W}from"./chevron-down-Da5tV19_.js";import{c as z}from"./createLucideIcon-DLlxGjKt.js";import{F as B}from"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";const A=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],O=z("image",A),P=new Set(["png","jpg","jpeg","gif","webp","avif","svg"]),g=[{value:"all",label:"All"},{value:"plan",label:"Plans"},{value:"doc",label:"Docs"},{value:"code",label:"Code"},{value:"test",label:"Tests"},{value:"config",label:"Config"},{value:"asset",label:"Assets"}];function U(s){const t=s.split("/").pop()??s,l=t.lastIndexOf(".");return l>=0?t.slice(l+1).toLowerCase():""}function v(s){return P.has(U(s.path))}function _(s){const t={type:"dir",children:[]};for(const l of s){const a=l.path.split("/").filter(Boolean);if(a.length===0)continue;let i=t;for(let f=0;f<a.length-1;f+=1){const n=a[f],p=a.slice(0,f+1).join("/");let o=i.children.find(d=>d.type==="dir"&&d.name===n);o||(o={type:"dir",name:n,path:p,children:[]},i.children.push(o)),i=o}i.children.push({type:"file",name:a[a.length-1],path:l.path,material:l})}return b(t),N(t.children)}function b(s){if(s.type==="dir"){s.children.sort((t,l)=>t.type!==l.type?t.type==="dir"?-1:1:t.name.localeCompare(l.name));for(const t of s.children)b(t)}}function N(s){return s.map(t=>{if(t.type!=="dir")return t;let l=t;for(;l.children.length===1&&l.children[0].type==="dir";){const a=l.children[0];l={type:"dir",name:`${l.name}/${a.name}`,path:a.path,children:a.children}}return{...l,children:N(l.children)}})}function G(s){switch(s){case"added":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";case"untracked":return"?";case"observed":return null}}function y({node:s,depth:t,selectedId:l,collapsed:a,onToggle:i,onSelect:f}){if(s.type==="dir"){const u=a.has(s.path);return e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",className:"s-work-files-tree-row s-work-files-tree-dir",style:{paddingLeft:`${8+t*12}px`},onClick:()=>i(s.path),children:[e.jsx("span",{className:"s-work-files-tree-chevron","aria-hidden":"true",children:u?e.jsx(L,{size:12,strokeWidth:1.8}):e.jsx(W,{size:12,strokeWidth:1.8})}),e.jsx("span",{className:"s-work-files-tree-icon","aria-hidden":"true",children:u?e.jsx(T,{size:12,strokeWidth:1.8}):e.jsx(E,{size:12,strokeWidth:1.8})}),e.jsx("span",{className:"s-work-files-tree-name",children:s.name||"/"})]}),!u&&s.children.map(m=>e.jsx(y,{node:m,depth:t+1,selectedId:l,collapsed:a,onToggle:i,onSelect:f},m.type==="dir"?`d:${m.path}`:`f:${m.material.id}`))]})}const n=s.material.id===l,p=v(s.material),o=G(s.material.status),d=s.material.status==="deleted";return e.jsxs("button",{type:"button",className:`s-work-files-tree-row s-work-files-tree-file${n?" s-work-files-tree-file-selected":""}`,style:{paddingLeft:`${8+t*12}px`},onClick:()=>f(s.material),disabled:d,title:s.path,children:[e.jsx("span",{className:"s-work-files-tree-chevron","aria-hidden":"true"}),e.jsx("span",{className:"s-work-files-tree-icon","aria-hidden":"true",children:p?e.jsx(O,{size:12,strokeWidth:1.8}):e.jsx(B,{size:12,strokeWidth:1.8})}),e.jsx("span",{className:"s-work-files-tree-name",children:s.name}),o&&e.jsx("span",{className:`s-work-files-tree-status s-work-files-tree-status-${s.material.status}`,"aria-label":s.material.status,children:o})]})}function V({path:s}){const t=s.split("/").filter(Boolean);if(t.length===0)return e.jsx("span",{className:"s-work-files-breadcrumb",children:s});const l=t[t.length-1],a=t.slice(0,-1).join("/");return e.jsxs("span",{className:"s-work-files-breadcrumb",children:[a&&e.jsxs("span",{className:"s-work-files-breadcrumb-folder",children:[a,"/"]}),e.jsx("span",{className:"s-work-files-breadcrumb-name",children:l})]})}function K({workId:s,material:t}){const l=v(t),[a,i]=c.useState(null),[f,n]=c.useState(null),[p,o]=c.useState(!1);if(c.useEffect(()=>{if(l){i(null),n(null),o(!1);return}let u=!1;return o(!0),n(null),i(null),R(`/api/work/${encodeURIComponent(s)}/material?materialId=${encodeURIComponent(t.id)}`).then(m=>{u||i(m)}).catch(m=>{u||n(m instanceof Error?m.message:String(m))}).finally(()=>{u||o(!1)}),()=>{u=!0}},[l,t.id,s]),l){const u=`/api/work/${encodeURIComponent(s)}/material/raw?materialId=${encodeURIComponent(t.id)}`;return e.jsx("div",{className:"s-work-files-pane s-work-files-pane-image",children:e.jsx("img",{src:u,alt:t.path,className:"s-work-files-image"})})}if(p&&!a)return e.jsx("div",{className:"s-work-files-pane-state",children:"Loading file…"});if(f)return e.jsx("div",{className:"s-work-files-pane-state s-work-files-pane-error",children:f});if(!a)return e.jsx("div",{className:"s-work-files-pane-state",children:"No content."});const d=D({id:a.materialId,title:a.title,uri:a.uri,mediaType:a.mediaType,value:a.content,readOnly:!0});return e.jsxs("div",{className:"s-work-files-pane",children:[e.jsx(M,{document:d,mode:d.kind==="markdown"?"preview":"read"}),a.truncated&&e.jsxs("div",{className:"s-work-files-pane-notice",children:["Preview truncated at ",Math.round(a.content.length/1024)," KB."]})]})}function te({workId:s,workTitle:t,materials:l,open:a,initialKind:i="all",onClose:f}){const n=c.useMemo(()=>l.filter(r=>r.status!=="deleted"),[l]),[p,o]=c.useState(i),[d,u]=c.useState(null),[m,C]=c.useState(()=>new Set);c.useEffect(()=>{a&&o(i)},[i,a]);const x=c.useMemo(()=>p==="all"?n:p==="plan"?n.filter(r=>r.kind==="plan"||r.kind==="spec"):n.filter(r=>r.kind===p),[n,p]),j=c.useMemo(()=>_(x),[x]);c.useEffect(()=>{if(!d&&x.length>0){u(x[0].id);return}d&&!x.some(r=>r.id===d)&&u(x[0]?.id??null)},[x,d]);const S=c.useCallback(r=>{u(r.id)},[]),I=c.useCallback(r=>{C(k=>{const h=new Set(k);return h.has(r)?h.delete(r):h.add(r),h})},[]),w=x.find(r=>r.id===d)??null,$=c.useMemo(()=>{const r={all:n.length};for(const k of g)k.value!=="all"&&(r[k.value]=n.filter(h=>k.value==="plan"?h.kind==="plan"||h.kind==="spec":h.kind===k.value).length);return r},[n]);return e.jsx(F,{open:a,kind:"code",document:null,title:`Files · ${n.length}`,eyebrow:"Work materials",subtitle:t,focusable:!0,onClose:f,body:e.jsxs("div",{className:"s-work-files-layout",children:[e.jsxs("aside",{className:"s-work-files-tree","aria-label":"File tree",children:[e.jsx("div",{className:"s-work-files-tree-filters",role:"tablist",children:g.map(r=>{const k=$[r.value]??0;if(r.value!=="all"&&k===0)return null;const h=r.value===p;return e.jsxs("button",{type:"button",role:"tab","aria-selected":h,className:`s-work-files-tree-filter${h?" s-work-files-tree-filter-active":""}`,onClick:()=>o(r.value),children:[e.jsx("span",{children:r.label}),e.jsx("span",{className:"s-work-files-tree-filter-count",children:k})]},r.value)})}),e.jsx("div",{className:"s-work-files-tree-list",children:j.length===0?e.jsx("div",{className:"s-work-files-tree-empty",children:"No files match this filter."}):j.map(r=>e.jsx(y,{node:r,depth:0,selectedId:d,collapsed:m,onToggle:I,onSelect:S},r.type==="dir"?`d:${r.path}`:`f:${r.material.id}`))})]}),e.jsx("section",{className:"s-work-files-content","aria-label":"File preview",children:w?e.jsxs(e.Fragment,{children:[e.jsxs("header",{className:"s-work-files-content-head",children:[e.jsx(V,{path:w.path}),e.jsxs("div",{className:"s-work-files-content-meta",children:[e.jsx("span",{children:w.kind}),e.jsx("span",{children:w.status}),w.diffStat&&e.jsxs("span",{children:["+",w.diffStat.additions," -",w.diffStat.deletions]})]})]}),e.jsx(K,{workId:s,material:w})]}):e.jsx("div",{className:"s-work-files-pane-state",children:"Select a file to preview."})})]})})}export{te as WorkFilesViewer};
@@ -1,2 +0,0 @@
1
- import{j as e,r as l}from"./index-Bli6bTLU.js";import{l as ie,n as re,a as ae}from"./Provider-Ve8yXaWR.js";import{L as P}from"./loader-circle-DoT8gpw6.js";import{R as ee}from"./radio-BjpQTKT0.js";import{b as ce,M as le}from"./DocumentFocusViewer-DmtFisY9.js";import{C as de}from"./chevron-down-Da5tV19_.js";import{c as q}from"./createLucideIcon-DLlxGjKt.js";import{P as ue}from"./plus-64n9qucr.js";import{S as me,i as he}from"./text-BR9Bap0E.js";import{B as pe}from"./bot-r2IuAuJd.js";import{d as xe}from"./colors-BtO5_zlx.js";const fe=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],ge=q("history",fe);const ve=[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]],be=q("list-tree",ve);const ke=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],ye=q("play",ke);const we=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],je=q("settings-2",we),I="rounded-lg bg-[color-mix(in_srgb,var(--hud-ink)_4.5%,transparent)]",J="rounded-md border border-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] bg-[color-mix(in_srgb,var(--hud-bg)_70%,transparent)] text-[var(--scout-chrome-ink-strong)] outline-none transition-colors focus:border-lime-300/45",F="rounded-md border border-[color-mix(in_srgb,var(--hud-ink)_8%,transparent)] text-[var(--scout-chrome-ink)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink-strong)] disabled:cursor-not-allowed disabled:opacity-40",U="font-mono text-xs uppercase tracking-[0.11em] text-[var(--scout-chrome-ink-ghost)]";function Ne(t){return t==="live"?{label:"Live",detail:"Listening — speak naturally",chip:"border-lime-300/35 bg-lime-300/[0.10] text-lime-100",iconWrap:"border-lime-300/40 bg-lime-300/[0.10] text-lime-200"}:t==="connecting"?{label:"Connecting",detail:"Opening secure audio…",chip:"border-amber-300/30 bg-amber-300/[0.09] text-amber-100/90",iconWrap:"border-amber-300/35 bg-amber-300/[0.09] text-amber-100"}:t==="error"?{label:"Error",detail:"Could not hold the call",chip:"border-red-400/35 bg-red-400/[0.10] text-red-100",iconWrap:"border-red-400/35 bg-red-400/[0.10] text-red-100"}:t==="ended"?{label:"Ended",detail:"Call closed — start again anytime",chip:"border-[color-mix(in_srgb,var(--hud-ink)_12%,transparent)] text-[var(--scout-chrome-ink-faint)]",iconWrap:"border-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] bg-[color-mix(in_srgb,var(--hud-ink)_4%,transparent)] text-[var(--scout-chrome-ink-faint)]"}:{label:"Ready",detail:"Talk continuously with Scoutbot",chip:"border-transparent bg-[color-mix(in_srgb,var(--hud-ink)_6%,transparent)] text-[var(--scout-chrome-ink-faint)]",iconWrap:"border-transparent bg-[color-mix(in_srgb,var(--hud-ink)_5%,transparent)] text-[var(--scout-chrome-ink-faint)]"}}function Je({state:t,onMinimize:i,onExpand:r,layout:s="compact"}){const c=Ne(t),n=s==="page";return e.jsxs("header",{className:`flex items-start ${n?"gap-3.5 px-5 py-4":"gap-2.5 px-3.5 py-3"}`,children:[e.jsx("div",{className:`${n?"size-9":"size-7"} mt-px flex shrink-0 items-center justify-center rounded-md border ${c.iconWrap}`,children:t==="connecting"?e.jsx(P,{size:n?14:12,className:"animate-spin"}):t==="live"?e.jsxs("span",{className:"relative flex size-2",children:[e.jsx("span",{className:"absolute inline-flex size-full animate-ping rounded-full bg-lime-300/35"}),e.jsx("span",{className:"relative inline-flex size-2 rounded-full bg-lime-300/90"})]}):e.jsx(ee,{size:n?14:12})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("h2",{className:`truncate font-medium text-[var(--scout-chrome-ink-strong)] ${n?"text-2xl":"text-base"}`,children:"Live voice"}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[e.jsx("span",{className:`rounded border px-1.5 py-px font-mono text-xs uppercase tracking-[0.1em] ${c.chip}`,children:c.label}),r&&e.jsx("button",{type:"button",onClick:r,title:n?"Return to compact live voice view":"Open full live voice view","aria-label":n?"Return to compact live voice view":"Open full live voice view",className:"flex size-6 items-center justify-center rounded-md text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink-strong)]",children:n?e.jsx(ce,{size:12}):e.jsx(le,{size:12})}),i&&e.jsx("button",{type:"button",onClick:i,title:"Collapse live voice into the status bar","aria-label":"Collapse live voice into the status bar",className:"flex size-6 items-center justify-center rounded-md text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink-strong)]",children:e.jsx(de,{size:12})})]})]}),e.jsx("p",{className:`mt-0.5 leading-snug text-[var(--scout-chrome-ink-faint)] ${n?"text-base":"text-sm"}`,children:c.detail})]})]})}function et({dictationActive:t,layout:i="compact"}){const{state:r,error:s,trace:c,chatState:n,sessionAction:m,startCall:u,endCall:d,startNewChat:h,switchChat:b,updatePreferredModel:f,clearTrace:M,openVoiceSettings:B}=ie(),z=r==="connecting"||r==="live",[p,D]=l.useState("controls"),x=Ce(s),k=i==="page",[y,T]=l.useState(""),[R,E]=l.useState(!1),[S,V]=l.useState(!1),[H,w]=l.useState(null);l.useEffect(()=>{!S&&n?.config.model&&T(n.config.model)},[n?.config.model,S]);const _=async()=>{if(!(!y.trim()||S)){V(!0),w(null);try{const a=await f(y);T(a),w("Saved")}catch(a){w(a instanceof Error?a.message:"Could not save model.")}finally{V(!1)}}},$=r==="connecting"?{label:"Cancel connection",icon:e.jsx(P,{size:11,className:"animate-spin"}),tone:"border-amber-300/35 bg-amber-300/[0.10] text-amber-100 hover:bg-amber-300/[0.16]"}:r==="live"?{label:"End live voice",icon:e.jsx(me,{size:9,className:"fill-current"}),tone:"border-red-400/35 bg-red-400/[0.10] text-red-100 hover:bg-red-400/[0.16]"}:{label:"Start live voice",icon:e.jsx(ye,{size:10,className:"fill-current"}),tone:"border-lime-300/40 bg-lime-300/[0.12] text-lime-100 hover:bg-lime-300/[0.18]"};return e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[e.jsx("nav",{className:`grid shrink-0 grid-cols-2 border-b border-[var(--scout-chrome-border-soft)] ${k?"px-5":"px-3.5"}`,"aria-label":"Live voice views",children:[{id:"controls",label:"Controls",icon:e.jsx(ee,{size:11})},{id:"activity",label:"Activity",icon:e.jsx(be,{size:11})}].map(a=>e.jsxs("button",{type:"button",onClick:()=>D(a.id),"aria-current":p===a.id,className:`-mb-px flex items-center justify-center gap-1.5 border-b-2 font-mono uppercase tracking-[0.1em] transition-colors ${k?"h-11 text-sm":"h-9 text-xs"} ${p===a.id?"border-lime-300/80 text-[var(--scout-chrome-ink-strong)]":"border-transparent text-[var(--scout-chrome-ink-faint)] hover:text-[var(--scout-chrome-ink-strong)]"}`,children:[a.icon,a.label,a.id==="activity"&&c.length>0&&e.jsx("span",{className:"rounded-full bg-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] px-1.5 py-px font-mono text-xs text-[var(--scout-chrome-ink-faint)]",children:c.length})]},a.id))}),p==="activity"?e.jsxs("div",{className:`flex min-h-0 flex-1 flex-col ${k?"p-5":"p-3.5"}`,children:[e.jsxs("div",{className:"mb-2 flex shrink-0 items-center justify-between",children:[e.jsx("p",{className:U,children:"Session activity"}),c.length>0&&e.jsx("button",{type:"button",onClick:M,className:"font-mono text-xs uppercase tracking-[0.09em] text-[var(--scout-chrome-ink-ghost)] transition-colors hover:text-[var(--scout-chrome-ink-strong)]",children:"Clear"})]}),c.length===0?e.jsx("div",{className:"flex flex-1 items-center justify-center rounded-lg border border-dashed border-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] px-6 text-center text-sm leading-relaxed text-[var(--scout-chrome-ink-faint)]",children:"Start a call to record requests, replies, navigation attempts, and delivery results."}):e.jsx("ol",{className:`min-h-0 flex-1 overflow-y-auto ${I}`,children:c.map((a,o)=>e.jsxs("li",{className:`px-2.5 py-2 ${o>0?"border-t border-[var(--scout-chrome-border-soft)]":""}`,children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-1.5",children:[e.jsx("span",{className:`mt-px shrink-0 rounded border px-1 py-px font-mono text-xs uppercase tracking-[0.08em] ${Me(a.kind)}`,children:Ee(a.kind)}),e.jsx("span",{className:"min-w-0 text-sm leading-snug text-[var(--scout-chrome-ink-strong)]",children:a.label})]}),e.jsx("time",{className:"shrink-0 font-mono text-xs text-[var(--scout-chrome-ink-ghost)]",children:Se(a.at)})]}),a.detail&&e.jsx("span",{className:"mt-1 block whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-[var(--scout-chrome-ink-faint)]",children:a.detail})]},a.id))})]}):e.jsxs("div",{className:`flex min-h-0 w-full flex-1 flex-col overflow-y-auto ${k?"mx-auto max-w-2xl gap-4 p-5":"gap-2.5 p-3.5"}`,children:[e.jsxs("section",{className:`${I} shrink-0 p-3`,children:[e.jsx("p",{className:"text-base font-medium text-[var(--scout-chrome-ink-strong)]",children:"Live conversation"}),e.jsx("p",{className:"mt-0.5 text-sm leading-snug text-[var(--scout-chrome-ink-faint)]",children:r==="live"?"Microphone and spoken replies are active.":r==="connecting"?"Opening the audio connection…":"Start when you are ready to speak."}),e.jsxs("button",{type:"button",disabled:t&&!z,onClick:()=>{z?d():u()},className:`mt-3 flex h-9 w-full items-center justify-center gap-2 rounded-md border font-mono text-sm uppercase tracking-[0.1em] transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${$.tone}`,children:[$.icon,$.label]}),t&&!z&&e.jsx("p",{className:"mt-2 text-xs leading-relaxed text-amber-200/80",children:"Finish dictation before starting a live call."}),x&&e.jsx("p",{className:"mt-2 rounded-md border border-red-400/30 bg-red-400/[0.08] px-2 py-1.5 text-sm leading-relaxed text-red-100",children:x})]}),e.jsxs("section",{className:`${I} shrink-0 p-3`,children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(ge,{size:11,className:"shrink-0 text-[var(--scout-chrome-ink-ghost)]"}),e.jsx("p",{className:U,children:"Live chat"})]}),e.jsx("p",{className:"mt-1.5 truncate text-base text-[var(--scout-chrome-ink-strong)]",title:n?.session.id,children:n?.session.title||"Loading chat…"}),e.jsx("p",{className:"mt-0.5 text-sm leading-snug text-[var(--scout-chrome-ink-faint)]",children:"Context stays with this chat when voice stops or the panel closes."}),e.jsxs("div",{className:"mt-2.5 flex min-w-0 items-center gap-1.5",children:[n&&n.sessions.length>1&&e.jsxs("label",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"sr-only",children:"Switch live chat"}),e.jsx("select",{value:n.session.id,disabled:!!m,onChange:a=>{b(a.target.value)},className:`h-8 w-full min-w-0 px-2 font-mono text-sm disabled:cursor-wait disabled:opacity-50 ${J}`,title:"Switch live chat; an active voice connection will end",children:n.sessions.map(a=>e.jsxs("option",{value:a.id,children:[a.title||`Chat ${a.id.slice(0,8)}`," · ",a.messageCount," msg"]},a.id))})]}),e.jsxs("button",{type:"button",onClick:()=>{h()},disabled:!n||!!m,title:"Start a new chat; an active voice connection will end",className:`flex h-8 shrink-0 items-center justify-center gap-1.5 px-2.5 font-mono text-xs uppercase tracking-[0.09em] disabled:cursor-wait ${F}`,children:[m==="new"?e.jsx(P,{size:10,className:"animate-spin"}):e.jsx(ue,{size:10}),"New chat"]})]})]}),e.jsxs("section",{className:`${I} shrink-0 p-3`,children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:U,children:"Scoutbot reply model"}),e.jsx("p",{className:"mt-1 truncate font-mono text-base text-[var(--scout-chrome-ink-strong)]",children:n?.config.model||"—"})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[n?.config.provider&&e.jsx("span",{className:"font-mono text-xs uppercase tracking-[0.08em] text-[var(--scout-chrome-ink-ghost)]",children:n.config.provider}),e.jsx("button",{type:"button",onClick:()=>{w(null),E(a=>!a)},"aria-expanded":R,className:`flex h-7 items-center px-2 font-mono text-xs uppercase tracking-[0.09em] ${F}`,children:R?"Close":"Change"})]})]}),R&&e.jsxs("div",{className:"mt-2.5 border-t border-[var(--scout-chrome-border-soft)] pt-2.5",children:[e.jsx("p",{className:"text-sm leading-snug text-[var(--scout-chrome-ink-faint)]",children:"Used for typed and live Scoutbot replies."}),e.jsxs("div",{className:"mt-2 flex gap-1.5",children:[e.jsx("input",{value:y,onChange:a=>{T(a.target.value),w(null)},onKeyDown:a=>{a.key==="Enter"&&_()},placeholder:"gpt-4.1-mini","aria-label":"Preferred Scoutbot model",className:`h-8 min-w-0 flex-1 px-2 font-mono text-sm ${J}`}),e.jsx("button",{type:"button",onClick:()=>{_()},disabled:S||!y.trim()||y.trim()===n?.config.model,className:`flex h-8 min-w-14 items-center justify-center px-2 font-mono text-xs uppercase tracking-[0.09em] ${F}`,children:S?e.jsx(P,{size:10,className:"animate-spin"}):"Apply"})]}),H&&e.jsx("p",{className:"mt-1.5 font-mono text-xs text-[var(--scout-chrome-ink-faint)]",children:H})]})]}),e.jsxs("button",{type:"button",onClick:B,className:"mt-auto flex h-8 w-full shrink-0 items-center justify-center gap-1.5 rounded-md font-mono text-xs uppercase tracking-[0.09em] text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink-strong)]",children:[e.jsx(je,{size:11}),"Voice settings"]})]})]})}function Se(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Ce(t){if(!t)return null;const i=t.toLowerCase();return i.includes("active response in progress")||i.includes("conversation already has an active response")?null:i.includes("realtime voice call is already active")?"Live voice is still running on this Scout host. Stop it from the footer, or wait a moment for it to finish closing.":t}function Ee(t){switch(t){case"navigation":return"Navigate";case"scoutbot":return"Scoutbot";case"agent":return"Agent ask";case"error":return"Error";default:return"Voice"}}function Me(t){switch(t){case"navigation":return"border-sky-300/25 bg-sky-300/[0.06] text-sky-100/80";case"scoutbot":return"border-violet-300/25 bg-violet-300/[0.06] text-violet-100/80";case"agent":return"border-amber-300/25 bg-amber-300/[0.06] text-amber-100/80";case"error":return"border-red-300/25 bg-red-300/[0.06] text-red-100/80";default:return"border-lime-300/20 bg-lime-300/[0.05] text-lime-100/70"}}const G="openscout:toggle-scoutbot";function Te(t){if(typeof window>"u")return;const i={};window.dispatchEvent(new CustomEvent(G,{detail:i}))}function tt(t){if(typeof window>"u")return()=>{};const i=r=>{const s=r.detail??{};t(s)};return window.addEventListener(G,i),()=>window.removeEventListener(G,i)}function _e(t){switch(t){case"listening":return"listening";case"thinking":return"thinking";case"speaking":return"speaking";case"briefing":return"thinking";default:return""}}function $e(t){return t==="thinking"||t==="briefing"}function Le(t){return t!=="idle"?{kind:"activity",activity:t,label:_e(t)}:{kind:"idle"}}function ze(t,i,r){const s=[];return t.kind==="activity"?s.push(`Scout · ${t.label}`):s.push("Toggle Scout"),i&&s.push(i),r&&s.push(r),s.join(`
2
- `)}function nt(){const{state:t,actions:i}=re(),r=ae(),s=Le(t.activity),c=ze(s,t.session.title,t.error),n=s.kind==="activity"?"s-scoutbot-chip--activity":"s-scoutbot-chip--idle",m=()=>{Te()},u=d=>{const h=[{kind:"action",label:"New chat",onSelect:()=>i.startNewChat()},{kind:"action",label:t.voice.replies?"Turn voice replies off":"Turn voice replies on",onSelect:()=>i.toggleVoiceReplies()},{kind:"separator"},{kind:"action",label:"Open chat",onSelect:()=>i.focusScoutbot()}];r(d,h)};return e.jsxs("button",{type:"button",className:`s-scoutbot-chip ${n}`,onClick:m,onContextMenu:u,title:c,children:[e.jsx(pe,{size:14,className:"s-scoutbot-chip-icon","aria-hidden":"true"}),s.kind==="activity"&&e.jsxs(e.Fragment,{children:[$e(s.activity)?e.jsx(P,{size:10,className:"s-scoutbot-chip-spinner","aria-hidden":"true"}):e.jsx("span",{className:"s-scoutbot-chip-dot s-scoutbot-chip-dot--pulse","aria-hidden":"true"}),e.jsx("span",{className:"s-scoutbot-chip-text",children:s.label})]})]})}function Y(t){return t.handle??t.id}function Re(t,i){if(!i)return!0;const r=i.toLowerCase();return t.name.toLowerCase().includes(r)||Y(t).toLowerCase().includes(r)||t.id.toLowerCase().includes(r)}function He({agents:t,query:i,excludeIds:r,maxResults:s=50}){const c=l.useMemo(()=>new Set(r??[]),[r]),n=l.useMemo(()=>t.filter(f=>!c.has(f.id)&&Re(f,i.trim())).slice(0,s),[t,c,i,s]),[m,u]=l.useState(0);l.useEffect(()=>{u(b=>n.length===0?0:Math.min(b,n.length-1))},[n]);const d=l.useCallback(b=>{u(f=>n.length===0?0:(f+b+n.length)%n.length)},[n.length]),h=l.useCallback(()=>u(0),[]);return{filtered:n,highlightedIndex:m,setHighlightedIndex:u,moveHighlight:d,resetHighlight:h}}function Ae({agents:t,highlightedIndex:i,onSelect:r,onHover:s,emptyHint:c,pendingId:n,className:m,id:u}){return t.length===0?e.jsx("div",{className:`agent-autocomplete ${m??""}`,id:u,children:e.jsx("div",{className:"agent-autocomplete-empty",children:c??"No matches."})}):e.jsx("div",{className:`agent-autocomplete ${m??""}`,role:"listbox",id:u,children:t.map((d,h)=>{const b=Y(d),f=h===i;return e.jsxs("button",{type:"button",role:"option","aria-selected":f,className:`agent-autocomplete-item${f?" is-active":""}`,onMouseDown:M=>{M.preventDefault(),r(d)},onMouseEnter:()=>s?.(h),disabled:n===d.id,children:[e.jsx("div",{className:"agent-autocomplete-avatar",style:{background:xe(d.name)},children:d.name[0]?.toUpperCase()??"?"}),e.jsxs("div",{className:"agent-autocomplete-info",children:[e.jsx("span",{className:"agent-autocomplete-name",children:d.name}),e.jsxs("span",{className:"agent-autocomplete-handle",children:["@",b]})]})]},d.id)})})}const Oe=/(^|\s)@([a-zA-Z0-9_.-]*)$/,W=4,Pe=254;function Be(t,i){if(i<=0)return null;const r=t.slice(0,i),s=Oe.exec(r);if(!s)return null;s[1];const c=s[2]??"",n=r.length-c.length-1;return n<0?null:(t.slice(i,i+1),{start:n,end:i,query:c})}const De=["boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","whiteSpace","wordWrap","wordBreak"];function Ve(t,i){const r=document.createElement("div");document.body.appendChild(r);const s=r.style,c=window.getComputedStyle(t);s.position="absolute",s.visibility="hidden",s.whiteSpace="pre-wrap",s.wordWrap="break-word",s.top="0",s.left="-9999px";for(const h of De)s[h]=c[h];r.textContent=t.value.slice(0,i);const n=document.createElement("span");n.textContent=t.value.slice(i)||".",r.appendChild(n);const m=n.offsetTop,u=n.offsetLeft,d=parseInt(c.lineHeight,10)||n.offsetHeight;return document.body.removeChild(r),{top:m,left:u,height:d}}const ot=l.forwardRef(function({agents:i,excludeIds:r,value:s,onChange:c,onSubmit:n,placeholder:m,rows:u=1,disabled:d,submitOnEnter:h=!1,className:b,textareaClassName:f,emptyHint:M,onMention:B},z){const p=l.useRef(null),D=l.useRef(null),[x,k]=l.useState(null),[y,T]=l.useState(null);l.useImperativeHandle(z,()=>({focus:()=>p.current?.focus(),blur:()=>p.current?.blur(),get textarea(){return p.current}}),[]);const R=x?.query??"",{filtered:E,highlightedIndex:S,setHighlightedIndex:V,moveHighlight:H}=He({agents:i,query:R,excludeIds:r}),w=l.useCallback(()=>{const o=p.current;if(!o)return;const g=window.getComputedStyle(o),v=parseFloat(g.minHeight)||0,C=parseFloat(g.maxHeight);o.style.height="0px";const j=Math.max(o.scrollHeight,v),N=Number.isFinite(C)&&C>0?Math.min(j,C):j;o.style.height=`${N}px`,o.style.overflowY=j>N?"auto":"hidden"},[]);l.useLayoutEffect(()=>{w()},[w,s]);const _=l.useCallback(()=>{const o=p.current;if(!o)return;const g=Be(o.value,o.selectionStart??0);k(g)},[]);l.useLayoutEffect(()=>{const o=p.current;if(!o||!x){T(null);return}const{top:g,left:v,height:C}=Ve(o,x.start),j=o.getBoundingClientRect(),N=o.parentElement?.getBoundingClientRect(),A=N?j.top-N.top:0,K=N?j.left-N.left:0,O=D.current?.offsetHeight||Pe,L=window.visualViewport,Q=L?.offsetTop??0,te=Q+(L?.height??window.innerHeight),X=j.top+g-o.scrollTop,ne=X+C,Z=te-ne-W,oe=X-Q-W,se=Z<O&&oe>Z;T({top:se?A+g-o.scrollTop-O-W:A+g+C-o.scrollTop+W,left:K+v-o.scrollLeft})},[x,s,E.length]);const $=l.useCallback(o=>{const g=p.current,v=x;if(!g||!v)return;const C=Y(o),j=s.slice(0,v.start),N=s.slice(v.end),A=`@${C} `,K=`${j}${A}${N}`;c(K),B?.(o),k(null);const O=v.start+A.length;queueMicrotask(()=>{const L=p.current;L&&(L.focus(),L.setSelectionRange(O,O))})},[x,s,c,B]),a=o=>{if(he(o)||h&&o.key==="Enter"&&!o.shiftKey&&!o.nativeEvent?.isComposing&&!(x&&E.length>0)){o.preventDefault(),n?.();return}if(x&&E.length>0){if(o.key==="ArrowDown"){o.preventDefault(),H(1);return}if(o.key==="ArrowUp"){o.preventDefault(),H(-1);return}if(o.key==="Enter"||o.key==="Tab"){if(o.key==="Enter"&&o.shiftKey)return;const v=E[S];if(v){o.preventDefault(),$(v);return}}if(o.key==="Escape"){o.preventDefault(),k(null);return}}};return e.jsxs("div",{className:`agent-mention-wrap ${b??""}`,children:[e.jsx("textarea",{ref:p,className:f,value:s,rows:u,placeholder:m,disabled:d,onChange:o=>{c(o.target.value),w(),queueMicrotask(_)},onKeyUp:_,onClick:_,onBlur:()=>k(null),onKeyDown:a,"aria-autocomplete":"list"}),x&&e.jsx("div",{ref:D,className:"agent-mention-popover",style:{top:`${y?.top??0}px`,left:`${y?.left??0}px`,visibility:y?void 0:"hidden"},children:e.jsx(Ae,{agents:E,highlightedIndex:S,onSelect:$,onHover:V,emptyHint:M??"No matches."})})]})});export{ot as A,ge as H,ye as P,je as S,nt as a,Je as b,et as c,tt as o};
@@ -1 +0,0 @@
1
- function M(n){let t=1779033703^n.length;for(let o=0;o<n.length;o++)t=Math.imul(t^n.charCodeAt(o),3432918353),t=t<<13|t>>>19;return()=>(t=Math.imul(t^t>>>16,2246822507),t=Math.imul(t^t>>>13,3266489909),t^=t>>>16,t>>>0)}function x(n){let t=n>>>0;return()=>{t|=0,t=t+1831565813|0;let o=Math.imul(t^t>>>15,1|t);return o=o+Math.imul(o^o>>>7,61|o)^o,((o^o>>>14)>>>0)/4294967296}}function p(n){const t=M(n.trim().toLowerCase())(),o=x(t);return{seed:t,next:o,float:(e,l)=>e+(l-e)*o(),int:(e,l)=>Math.floor(e+(l-e+1)*o()),bool:(e=.5)=>o()<e}}function H(n,t={}){const o=(n%360+360)%360,e=t.l??.72,l=t.c??.15,f=(o+38)%360,m=Math.max(.18,e-.12),h=Math.min(.92,e+.1);return{hue:o,body:`oklch(${e} ${l} ${o})`,bodyDim:`oklch(${m} ${Math.max(0,l-.02)} ${o})`,accent:`oklch(${h} ${l+.01} ${f})`,ink:`oklch(0.34 0.07 ${o})`,sclera:`oklch(0.96 0.02 ${o})`,glow:`oklch(${e} ${l} ${o} / 0.45)`,soft:`oklch(${e} ${l} ${o} / 0.12)`}}const g=[120,138,154,170,186,200,216,236,262],C={claude:262,codex:135,cursor:235,native:250,worker:195,pi:176,kimi:238,grok:266,"grok-acp":266,opencode:160,oc:160};function S(n,t=!1){const o=n.next();return t?Math.floor(o*360):g[Math.floor(o*g.length)]}const E=7;function R(n,t={}){const o=p(n+(t.salt?"#"+t.salt:"")),e=S(o,t.spectrum),l=H(t.hue??e,t.tone),f=o.float(.42,.62),m=o.float(.14,.34),h=o.bool(.5),$=o.bool(.62),y=o.bool(.5),i=o.bool(.5)?2:3,k=o.bool(.6),r=E,u=(r-1)/2,b=Array.from({length:r},()=>Array.from({length:r},()=>"off")),s=(c,a,d)=>{b[c][a]=d,b[c][r-1-a]=d};for(let c=1;c<=5;c++)for(let a=0;a<=u;a++)(a===u?o.next()<.85:o.next()<f)&&s(c,a,o.next()<m?"accent":"body");for(let c=1;c<=u;c++)s(i,c,"body");if(s(i,y?1:2,"eye"),k&&i+2<r&&(s(i+2,u,"mouth"),o.bool(.4)&&s(i+2,u-1,"mouth")),h){const c=o.bool()?1:2;s(0,c,"body")}return $&&(s(r-1,1,"body"),o.bool(.5)&&s(r-1,u,"body")),{size:r,cells:b,palette:l,traits:{antennae:h,legs:$,wideEyes:y,eyeRow:i,mouth:k}}}export{C as H,R as s};
@@ -1 +0,0 @@
1
- import{f as s}from"./text-BR9Bap0E.js";const c={general:"Generalist",builder:"Builder",reviewer:"Reviewer",researcher:"Researcher",operator:"Operator",bridge:"Bridge",system:"System",organic:"Organic",managed:"Managed"};function u(e){if(!e?.trim())return"Generalist";const r=e.trim().toLowerCase();return c[r]??e.replace(/_/g," ")}function m(e){return e?.trim()?s(e)?.trim()??null:null}function g(e,r){const i=e.agentClass?.trim()||"general",t=u(i),n=m(e.role),a=[...new Set(e.skills??[])].filter(Boolean),l=[...new Set([...e.capabilities??[],...r?.capabilities??[]])].filter(Boolean),o=i==="general"&&!n&&a.length===0;return{kind:t,kindRaw:i,role:n,isGeneralist:o,headline:n??t,skills:a,capabilities:l}}export{g as a};
@@ -1 +0,0 @@
1
- const p=new Map,c=new Map,y=32;let u=null;function m(){return globalThis?.__OPENSCOUT_WEB_BOOTSTRAP__?.routes?.bootstrapScriptPath?.trim()||"/api/bootstrap.js"}async function T(){if(u)return u;const t=m();return u=(async()=>{try{return(await fetch(t,{method:"GET",credentials:"include",cache:"no-store"})).ok}catch{return!1}finally{u=null}})(),u}function w(t){const e=t.replace(/\s+/g," ").trim();return e?e.length>180?`${e.slice(0,180)}...`:e:"empty body"}function l(t,e,r){if(e)try{return JSON.parse(e)}catch{const o=r?.trim()||"non-JSON";throw new Error(`Expected JSON from ${t} but received ${o}: ${w(e)}`)}}function b(t){return t?JSON.stringify([...new Headers(t).entries()].sort(([e],[r])=>e.localeCompare(r))):""}function h(t,e){return`${(e?.method??"GET").toUpperCase()}:${t}:${b(e?.headers)}`}async function d(t,e){const r=async()=>fetch(t,{...e,headers:{...e?.headers??{},...e?.body?{"content-type":"application/json"}:{}}});let o=await r();if(o.status===401&&!t.includes("/bootstrap.js")&&await T()&&(o=await r()),!o.ok){const n=await o.text();let a=n||`HTTP ${o.status}`;try{const i=JSON.parse(n);i?.error&&(a=i.error)}catch{}throw new Error(a)}return{text:await o.text(),contentType:o.headers.get("content-type")}}function f(t,e){for(c.delete(t),c.set(t,{response:e,receivedAt:Date.now()});c.size>y;){const r=c.keys().next().value;if(typeof r!="string")break;c.delete(r)}}function E(t,e,r){if("GET".toUpperCase()!=="GET"||r?.body||e<=0)return null;const n=c.get(h(t,r));return!n||Date.now()-n.receivedAt>e?null:l(t,n.response.text,n.response.contentType)}async function G(t,e){if(!((e?.method??"GET").toUpperCase()==="GET"&&!e?.body)){const s=await d(t,e);return l(t,s.text,s.contentType)}const n=h(t,e),a=p.get(n);if(a){const s=await a;return f(n,s),l(t,s.text,s.contentType)}const i=d(t,e);p.set(n,i);try{const s=await i;return f(n,s),l(t,s.text,s.contentType)}finally{p.delete(n)}}export{G as a,E as p};
@@ -1 +0,0 @@
1
- import{c as e}from"./createLucideIcon-DLlxGjKt.js";const c=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]],a=e("archive",c);export{a as A};
@@ -1 +0,0 @@
1
- import{c as o}from"./createLucideIcon-DLlxGjKt.js";const r=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],c=o("arrow-right",r);export{c as A};
@@ -1,2 +0,0 @@
1
- import{b}from"./status-tone-BM_zuRy1.js";function c(e){return e===null||["string","number","boolean"].includes(typeof e)}function a(e){if(typeof e!="string")return null;const r=e.trim();return r.length>0?r:null}function u(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function l(e){return e.trim().replace(/^@/,"").toLowerCase()}function p(e,r){const i=l(r);return[e.id,e.name,e.handle,e.selector,e.defaultSelector,e.conversationId,e.harnessSessionId].some(t=>t&&l(t)===i)}function d(e,r){if(typeof r=="string"&&r.trim()){e.push(r);return}if(Array.isArray(r))for(const i of r)d(e,i)}function _(e,r){const i=e.metadata??{},t=u(i.raw),n=[];d(n,e.target);for(const o of["targetAgentId","targetId","targetSessionId","relayTarget","relayTargetIds"])d(n,i[o]);if(t)for(const o of["targetAgentId","targetSessionId","relayTarget","relayTargetIds","targetId"])d(n,t[o]);for(const o of["targetDisplayName","targetLabel"])d(n,i[o]),t&&d(n,t[o]);for(const o of new Set(n.map(l))){const f=r.find(k=>p(k,o));if(f)return f}return null}function I(e){return e.replace(/\s+/g," ").trim().slice(0,220)}function s(e,...r){for(const i of r){const t=a(e?.[i]);if(t)return t}return null}function m(e){const r=e.metadata??{},i=u(r.raw),t=u(i?.delivery);return u(t?.metadata)}function M(e,r){return e.length<=r?e:`${e.slice(0,Math.max(0,r-3)).trimEnd()}...`}function y(e){return b(e.kind,e.status)==="danger"||e.status==="error"}function h(e){if(e.kind==="failed_query")switch(s(e.metadata,"dispatchKind")){case"unknown":return"Target not found";case"ambiguous":return"Target is ambiguous";case"unparseable":return"Invalid target";default:return"Route not resolved"}const r=s(e.metadata,"failureReason","reconciledReason","reason");return r==="agent_offline"||r==="agent_unreachable"?"Agent unavailable":r==="peer_unreachable"||r==="local_socket_unreachable"?"Route unavailable":r==="peer_rejected"?"Delivery rejected":"Delivery failed"}function $(e){const r=new Map,i=new Map;for(const n of e)if(n.messageId){if(n.kind==="success")r.has(n.messageId)||r.set(n.messageId,n);else if(n.kind==="failed_delivery"){const o=i.get(n.messageId);(!o||n.ts>o.ts)&&i.set(n.messageId,n)}}const t=[];for(const n of e)if(n.kind!=="delivery_attempt"&&!(n.kind==="failed_delivery"&&n.messageId&&r.has(n.messageId))){if(n.kind==="success"&&n.messageId){const o=i.get(n.messageId);if(o){t.push({...o,id:n.id,ts:n.ts,actorName:n.actorName,target:n.target??o.target,route:n.route??o.route,detail:n.detail,conversationId:n.conversationId??o.conversationId,messageId:n.messageId,invocationId:n.invocationId??o.invocationId,metadata:{...o.metadata??{},message:n.metadata??null}});continue}}t.push(n)}return t.sort((n,o)=>o.ts-n.ts||n.id.localeCompare(o.id))}function j(e){if(!y(e))return null;if(e.kind==="failed_query")return h(e);const r=e.metadata??{},i=a(r.reason),t=a(r.failureDetail)??a(r.failureReason)??(e.kind==="failed_delivery"&&["direct_message","mention"].includes(i??"")?null:i)??a(r.error),n=a(r.requestedLabel),o=[];return e.status&&e.status!=="failed"&&e.status!=="error"&&o.push(e.status),t&&t!==e.detail.trim()&&o.push(t),n&&!e.detail.includes(n)&&o.push(`asked ${n}`),o.length>0?[...new Set(o)].join(" · "):null}function g(e){return e==null?"—":typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):JSON.stringify(e)}const w=["source","deliveryId","messageId","conversationId","invocationId","dispatchKind","reason","error","requestedLabel","requesterId","targetId","transport","failureReason","failureDetail","reconciledReason","attempt","class","actorId","dispatchId","attemptId"];function D(e){if(!e)return[];const r=[],i=new Set;for(const t of w)!(t in e)||!c(e[t])||(r.push({key:t,value:g(e[t])}),i.add(t));for(const[t,n]of Object.entries(e))t==="raw"||i.has(t)||!c(n)||r.push({key:t,value:g(n)});return r}function A(e){const r=e.metadata??{},i=e.messageId??s(r,"messageId"),t=e.target??s(r,"targetId"),n=e.route??s(r,"transport");return e.kind==="failed_delivery"&&i&&t&&n?["failed_delivery",i,t,n].join("|"):[e.kind,i??e.deliveryId??e.invocationId??e.id,t,n,s(r,"failureReason","reconciledReason","reason","error")??e.detail].filter(o=>!!(o&&o.trim())).map(I).join("|")}function S(e){const r=e.metadata??{},i=m(e);return[e.kind,e.target??s(r,"targetId"),e.route??s(r,"transport"),s(r,"failureReason","reconciledReason","error")??s(i,"failureReason","reconciledReason","error")??e.status,s(r,"failureDetail")??s(i,"failureDetail")??s(r,"reason")??e.detail].filter(t=>!!(t&&t.trim())).map(t=>I(t).toLowerCase()).join("|")}function v(e){return{copiedAt:new Date().toISOString(),dedupeFingerprint:A(e),rootCauseFingerprint:S(e),sourceEndpoint:"/api/broker?limit=160",reviewEndpoint:"/api/broker/dispatch-review",attempt:e}}function F(e){const r=v(e);return[y(e)?"OpenScout dispatch failure context":"OpenScout dispatch context","",`id: ${e.id}`,`kind: ${e.kind}`,`status: ${e.status}`,`time: ${new Date(e.ts).toISOString()}`,`target: ${e.target??"none"}`,`transport/route: ${e.route??"none"}`,`messageId: ${e.messageId??"none"}`,`deliveryId: ${e.deliveryId??"none"}`,`invocationId: ${e.invocationId??"none"}`,`conversationId: ${e.conversationId??"none"}`,`detail: ${e.detail}`,`dedupeFingerprint: ${r.dedupeFingerprint}`,`rootCauseFingerprint: ${r.rootCauseFingerprint}`,"","Full JSON:",JSON.stringify(r,null,2)].join(`
2
- `)}function O(e){return{attemptId:e.id,attempt:e}}function T(e){if(!e)return null;if(e.raw!==void 0&&e.raw!==null)return e.raw;const r=Object.fromEntries(Object.entries(e).filter(([i,t])=>i!=="raw"&&!c(t)));return Object.keys(r).length>0?r:null}function C(e){return!e||Object.keys(e).length===0?"{}":JSON.stringify(e,null,2)}export{D as a,y as b,T as c,C as d,M as e,g as f,$ as g,j as h,F as i,_ as j,O as k,h as l};
@@ -1 +0,0 @@
1
- .collapsed-strip{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:4px 0 10px;box-sizing:border-box}.collapsed-strip-label{--csl-ink: color-mix(in srgb, var(--hud-ink, var(--ink)) 62%, transparent);--csl-dim: color-mix(in srgb, var(--hud-ink, var(--ink)) 42%, transparent);--csl-mark: color-mix(in srgb, var(--hud-ink, var(--ink)) 30%, transparent);flex:none;display:flex;flex-direction:column;align-items:center;gap:3px;margin:0;padding:0;border:0;background:none;box-sizing:border-box;-webkit-user-select:none;user-select:none}.collapsed-strip-label-mark{flex:none;width:10px;height:2px;border-radius:999px;background:var(--csl-mark)}button.collapsed-strip-label{appearance:none;font:inherit;cursor:pointer}.collapsed-strip-label-expand{display:none;flex:none;height:11px;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-xs);font-weight:700;line-height:1;color:var(--csl-ink)}button.collapsed-strip-label .collapsed-strip-label-mark{position:relative;height:11px;background:none}button.collapsed-strip-label .collapsed-strip-label-mark:before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;border-radius:999px;background:var(--csl-mark)}button.collapsed-strip-label:hover,button.collapsed-strip-label:focus-visible{--csl-ink: var(--hud-ink, var(--ink));--csl-dim: color-mix(in srgb, var(--hud-ink, var(--ink)) 60%, transparent)}button.collapsed-strip-label:hover .collapsed-strip-label-mark,button.collapsed-strip-label:focus-visible .collapsed-strip-label-mark{display:none}button.collapsed-strip-label:hover .collapsed-strip-label-expand,button.collapsed-strip-label:focus-visible .collapsed-strip-label-expand{display:block}.collapsed-strip-label-text{display:block;max-width:100%;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-3xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:var(--csl-ink);line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collapsed-strip-label-count{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-3xs);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--csl-dim);line-height:1}.collapsed-strip-label--accent{--csl-ink: color-mix(in srgb, var(--hud-accent, var(--accent)) 88%, var(--hud-ink, var(--ink)));--csl-dim: color-mix(in srgb, var(--hud-accent, var(--accent)) 55%, var(--hud-ink, var(--ink)));--csl-mark: var(--hud-accent, var(--accent))}.collapsed-strip-label--attention{--csl-ink: color-mix(in srgb, var(--amber, #e6b84d) 80%, var(--hud-ink, var(--ink)));--csl-dim: color-mix(in srgb, var(--amber, #e6b84d) 52%, var(--hud-ink, var(--ink)));--csl-mark: var(--amber, #e6b84d)}.collapsed-strip-label--live{--csl-ink: color-mix(in srgb, var(--green, #4ade80) 78%, var(--hud-ink, var(--ink)));--csl-dim: color-mix(in srgb, var(--green, #4ade80) 50%, var(--hud-ink, var(--ink)));--csl-mark: var(--green, #4ade80)}.collapsed-strip--empty{opacity:.9;padding-top:8px}.collapsed-strip-empty-mark{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-md);font-weight:600;color:color-mix(in srgb,var(--hud-ink, var(--ink)) 50%,transparent);-webkit-user-select:none;user-select:none}.collapsed-strip-rule{width:18px;height:1px;margin:2px 0;background:color-mix(in srgb,var(--hud-ink, var(--ink)) 12%,transparent);flex:none}.collapsed-strip-section{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%}.collapsed-strip-section-mark{flex:none;display:flex;flex-direction:row;align-items:baseline;justify-content:center;gap:3px;min-width:28px;padding:0 2px;-webkit-user-select:none;user-select:none}.collapsed-strip-section-mark-text{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-3xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--hud-ink, var(--ink)) 50%,transparent);line-height:1.1}.collapsed-strip-section-mark-count{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-3xs);font-weight:700;font-variant-numeric:tabular-nums;color:color-mix(in srgb,var(--hud-ink, var(--ink)) 40%,transparent);line-height:1}html[data-scout-sidebar-chrome] .collapsed-strip{padding-top:0;gap:var(--scout-rail-gap)}html[data-scout-sidebar-chrome] .collapsed-chip{width:var(--scout-rail-slot);height:var(--scout-rail-slot)}html[data-scout-sidebar-chrome] .collapsed-strip-label{display:none}html[data-scout-sidebar-chrome] .collapsed-strip-section{gap:var(--scout-rail-gap);display:flex;flex-direction:column;align-items:center;width:100%}html[data-scout-sidebar-chrome] .collapsed-strip-section-mark{height:var(--scout-rail-slot);display:flex;align-items:center;justify-content:center;box-sizing:border-box}html[data-scout-sidebar-chrome] .collapsed-strip-rule{height:var(--scout-rail-slot);margin:0;background:none;display:flex;align-items:center;justify-content:center;width:100%}html[data-scout-sidebar-chrome] .collapsed-strip-rule:before{content:"";display:block;position:relative;width:24px;height:1px;background:color-mix(in srgb,var(--hud-ink, var(--ink)) 14%,transparent)}.collapsed-chip{position:relative;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:8px;background:none;color:color-mix(in srgb,var(--hud-ink, var(--ink)) 60%,transparent);cursor:pointer;flex:none;transition:color .12s,transform .12s}.collapsed-chip:hover{color:var(--hud-ink, var(--ink))}.collapsed-chip:hover .collapsed-chip-ava{background:color-mix(in srgb,var(--ava-color, var(--hud-ink, var(--ink))) 20%,transparent);border-color:color-mix(in srgb,var(--ava-color, var(--hud-ink, var(--ink))) 30%,transparent);transform:scale(1.04)}.collapsed-chip--active{color:var(--hud-accent, var(--accent))}.collapsed-chip--active .collapsed-chip-ava{box-shadow:0 0 0 1px var(--hud-accent, var(--accent));border-color:var(--hud-accent, var(--accent))}.collapsed-chip--unread .collapsed-chip-ava{box-shadow:0 0 0 1px color-mix(in srgb,var(--hud-accent, var(--accent)) 50%,transparent)}.collapsed-chip--attention .collapsed-chip-ava{box-shadow:0 0 0 1px var(--amber, #e6b84d);border-color:var(--amber, #e6b84d)}.collapsed-chip-avatar-wrap{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;transition:transform .12s,box-shadow .12s}.collapsed-chip:hover .collapsed-chip-avatar-wrap{transform:scale(1.04)}.collapsed-chip--active .collapsed-chip-avatar-wrap{box-shadow:0 0 0 1px var(--hud-accent, var(--accent)),0 0 4px color-mix(in srgb,var(--hud-accent, var(--accent)) 25%,transparent)}.collapsed-chip--unread .collapsed-chip-avatar-wrap{box-shadow:0 0 0 1px var(--hud-accent, var(--accent))}.collapsed-chip--attention .collapsed-chip-avatar-wrap{box-shadow:0 0 0 1px var(--amber, #e6b84d)}.collapsed-chip-channel-badge{width:28px;height:28px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--hud-ink, var(--ink)) 6%,transparent);border:1px solid color-mix(in srgb,var(--hud-ink, var(--ink)) 12%,transparent);font-family:var(--font-mono, ui-monospace, monospace);font-size:12px;font-weight:700;color:color-mix(in srgb,var(--hud-ink, var(--ink)) 75%,transparent);transition:transform .12s,background-color .12s,border-color .12s,box-shadow .12s,color .12s;-webkit-user-select:none;user-select:none}.collapsed-chip-channel-hash{font-size:10px;font-weight:500;opacity:.45;margin-right:1px}.collapsed-chip-channel-text{text-transform:lowercase}.collapsed-chip:hover .collapsed-chip-channel-badge{transform:scale(1.04);background:color-mix(in srgb,var(--hud-ink, var(--ink)) 10%,transparent);border-color:color-mix(in srgb,var(--hud-ink, var(--ink)) 22%,transparent);color:var(--hud-ink, var(--ink))}.collapsed-chip--active .collapsed-chip-channel-badge{background:color-mix(in srgb,var(--hud-accent, var(--accent)) 12%,transparent);border-color:color-mix(in srgb,var(--hud-accent, var(--accent)) 65%,transparent);color:var(--hud-accent, var(--accent));box-shadow:0 0 0 1px color-mix(in srgb,var(--hud-accent, var(--accent)) 35%,transparent)}.collapsed-chip--channel,.collapsed-chip--neutral{color:color-mix(in srgb,var(--hud-ink, var(--ink)) 62%,transparent)}.collapsed-chip-ava{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono, ui-monospace, monospace);font-size:12px;font-weight:700;color:color-mix(in srgb,var(--ava-color, var(--hud-ink, var(--ink))) 85%,var(--hud-ink, var(--ink)));background:color-mix(in srgb,var(--ava-color, var(--hud-ink, var(--ink))) 12%,transparent);border:1px solid color-mix(in srgb,var(--ava-color, var(--hud-ink, var(--ink))) 18%,transparent);text-transform:uppercase;-webkit-user-select:none;user-select:none;transition:transform .12s,background-color .12s,box-shadow .12s}.collapsed-chip-glyph{display:grid;place-items:center;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-md);font-weight:650;-webkit-user-select:none;user-select:none;line-height:1}.collapsed-chip-dot{position:absolute;top:1px;right:1px;width:6px;height:6px;border-radius:50%;background:var(--hud-accent, var(--accent));box-shadow:0 0 0 1.5px var(--hud-surface, var(--surface, #000));z-index:2}.collapsed-chip-dot--attention{background:var(--amber, #e6b84d)}.collapsed-chip-dot--live{background:var(--green, #4ade80)}.collapsed-chip-pin{position:absolute;bottom:1px;right:1px;width:5px;height:5px;border-radius:1px;background:var(--hud-accent, var(--accent));opacity:.85;transform:rotate(45deg);z-index:2}
@@ -1 +0,0 @@
1
- import{c}from"./createLucideIcon-DLlxGjKt.js";const o=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]],e=c("compass",o);export{e as C};
@@ -1 +0,0 @@
1
- import{j as e,r as d}from"./index-Bli6bTLU.js";import{d as os,e as F,s as as}from"./router-B0YclXYg.js";import{t as B}from"./time-Dhsh_2EG.js";import{H as ns}from"./agent-identity-DzHGhLdJ.js";import{i as ls}from"./use-scout-dev-flags-JKb1EhFh.js";import{u as is,r as rs,a as E,b as ds,f as _,c as y,i as D,t as C,M as P,d as A,e as cs,g as ms,h as hs,s as U}from"./mesh-ops-C0zCLTR8.js";import{u as ps}from"./use-mesh-ops-items-QixBijmT.js";/* empty css */import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./api-DEHEgJ9m.js";import"./provider-CX9EWecp.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";const us=[{id:"family",label:"family"},{id:"host",label:"host"}],bs=[{key:"lastLook",label:"last-look divider"},{key:"routeStrip",label:"route strip"},{key:"compact",label:"compact rows"},{key:"relays",label:"relay sessions"},{key:"simulateHosts",label:"simulate hosts"}],$=[{nodeId:"sim:studio-tower",label:"studio-tower"},{nodeId:"sim:gpu-box",label:"gpu-box"},{nodeId:"sim:cloud-eu-1",label:"cloud-eu-1"}];function xs(t){let i=0;for(let p=0;p<t.length;p++)i=i*31+t.charCodeAt(p)|0;return Math.abs(i)%($.length+1)}function Ns(t,i,p){return i==="family"?_(t):i==="host"?t.hostLabel??"unattributed":A[C(t,p)]}function fs(t){const i=ns[t.trim().toLowerCase()];return i===void 0?"var(--dim)":`oklch(0.65 0.14 ${i})`}function vs({item:t,selected:i,fresh:p,showHost:f,onSelect:x}){const m=t.attention,b=t.kind==="session"&&t.session?.live===!0,n=m==="interrupt"?"blocked":t.kind==="session"?b?"working":"ended":t.state,u=m==="interrupt"?"danger":m==="badge"||t.state==="review"?"warning":b||t.state==="working"?"accent":"faint",H=m==="interrupt"?" dot--danger dot--pulse":m==="badge"?" dot--warning":b?" dot--working dot--pulse":"",k=m==="silent"&&!b;return e.jsxs("button",{type:"button",className:`mesh-ops-row${i?" mesh-ops-row--selected":""}`,"data-kind":t.kind,"data-fresh":p||void 0,onClick:x,children:[e.jsx("span",{className:`dot${H}`,"data-quiet":k||void 0,"data-hollow":k||void 0,"aria-hidden":!0}),e.jsxs("span",{className:"mesh-ops-row-main",children:[e.jsx("span",{className:"mesh-ops-row-title",children:t.title}),e.jsxs("span",{className:"mesh-ops-row-sub",children:[t.kind," · ",_(t)]})]}),e.jsxs("span",{className:"mesh-ops-row-owner",children:[t.session&&e.jsx("span",{className:"mesh-ops-row-harness",style:{background:fs(t.session.harness)},title:t.session.harness,"aria-hidden":!0}),t.ownerName&&e.jsxs("span",{children:["@",t.ownerName]})]}),e.jsx("span",{className:"mesh-ops-row-route",children:f?t.hostLabel??"—":""}),e.jsxs("span",{className:"mesh-ops-row-state",children:[e.jsx("span",{className:"mesh-ops-row-state-word","data-tone":u,children:m==="badge"&&t.state!=="review"?"flagged":n}),e.jsx("span",{className:"mesh-ops-row-age",children:B(y(t))})]})]})}function ks({hosts:t,newCounts:i,unattributedCount:p,activeHostId:f,unattributedActive:x,onSelect:m,onSelectUnattributed:b}){return e.jsxs("div",{className:"mesh-ops-hosts",role:"group","aria-label":"Hosts",children:[e.jsx("span",{className:"mesh-ops-groupby-label",children:"hosts"}),e.jsx("button",{type:"button",className:`mesh-ops-host${f===null&&!x?" mesh-ops-host--active":""}`,onClick:()=>m(null),title:"Show items across all hosts",children:"all"}),t.map(n=>{const u=i.get(n.nodeId)??0;return e.jsxs("button",{type:"button",className:`mesh-ops-host${f===n.nodeId?" mesh-ops-host--active":""}`,onClick:()=>m(f===n.nodeId?null:n.nodeId),title:n.hostName??n.label,children:[e.jsx("span",{className:`dot${u>0?" dot--warning":n.liveSessionCount>0?" dot--working":""}`,"data-quiet":u===0&&n.liveSessionCount===0?!0:void 0,"aria-hidden":!0}),e.jsx("span",{className:"mesh-ops-host-name",children:n.label}),u>0&&e.jsxs("span",{className:"mesh-ops-host-new",children:[u," new"]}),e.jsxs("span",{className:"mesh-ops-host-meta",children:[n.liveSessionCount>0?`${n.liveSessionCount} live · `:"",n.sessionCount]}),n.lastActivityAt!==null&&e.jsx("span",{className:"mesh-ops-host-age",children:B(n.lastActivityAt)})]},n.nodeId)}),p>0&&e.jsxs("button",{type:"button",className:`mesh-ops-host${x?" mesh-ops-host--active":""}`,onClick:b,title:"Items with no venue host",children:[e.jsx("span",{className:"mesh-ops-host-name",children:"unattributed"}),e.jsx("span",{className:"mesh-ops-host-meta",children:p})]})]})}function js({route:t,navigate:i}){const p=os(t),{loading:f,error:x}=ps(p),{items:m,hosts:b,selectedItemId:n,groupBy:u,attnFilter:H,unattributedOnly:k,lab:l}=is(),[G]=d.useState(()=>ls()),[M]=d.useState(()=>rs()),[j,q]=d.useState(()=>Date.now()),[K,z]=d.useState({}),[S,T]=d.useState(null);d.useEffect(()=>{t.itemId&&t.itemId!==n?E(t.itemId):!t.itemId&&n!==null&&E(null)},[t.itemId]),d.useEffect(()=>{const s=window.setInterval(()=>q(Date.now()),3e4);return()=>window.clearInterval(s)},[]),d.useEffect(()=>()=>ds(),[]);const N=d.useMemo(()=>{const s=l.relays?m:m.filter(o=>o.kind!=="session"||o.session?.relay!==!0),c=l.simulateHosts?s.map(o=>{const a=xs(_(o));if(a===0)return o;const h=$[a-1];return{...o,hostNodeId:h.nodeId,hostLabel:h.label}}):s;return k?c.filter(o=>o.hostNodeId===null):c},[m,k,l.relays,l.simulateHosts]),V=l.simulateHosts?S:p,O=d.useMemo(()=>l.simulateHosts&&S?N.filter(s=>s.hostNodeId===S):N,[l.simulateHosts,S,N]),W=d.useMemo(()=>{if(!l.simulateHosts)return b;const s=$.map(c=>{const o=N.filter(a=>a.hostNodeId===c.nodeId);return{nodeId:c.nodeId,label:c.label,hostName:null,brokerUrl:null,tailnetName:null,lastSeenAt:null,registeredAt:null,sessionCount:o.filter(a=>a.kind==="session").length,liveSessionCount:o.filter(a=>a.kind==="session"&&a.session?.live).length,lastActivityAt:o.length>0?Math.max(...o.map(y)):null}});return[...b,...s]},[l.simulateHosts,b,N]),Y=d.useMemo(()=>N.filter(s=>s.hostNodeId===null).length,[N]),J=d.useMemo(()=>{const s=new Map;if(!l.lastLook)return s;for(const c of N)!D(c,M)||!c.hostNodeId||s.set(c.hostNodeId,(s.get(c.hostNodeId)??0)+1);return s},[N,l.lastLook,M]),Q=d.useMemo(()=>{const s={active:0,moving:0,done:0,archive:0};for(const c of O)s[C(c,j)]+=1;return s},[O,j]),v=H??"active",g=d.useMemo(()=>O.filter(s=>C(s,j)===v),[O,v,j]),X=d.useMemo(()=>new Set(g.map(s=>s.hostLabel).filter(Boolean)).size>1,[g]),w=d.useMemo(()=>l.lastLook?s=>D(s,M):()=>!1,[l.lastLook,M]),Z=d.useMemo(()=>{const s=new Map;for(const o of g){const a=Ns(o,u,j),h=s.get(a);h?h.push(o):s.set(a,[o])}return(u==="attention"?P.map(o=>A[o]).filter(o=>s.has(o)):[...s.entries()].sort((o,a)=>{const h=r=>r.some(w)?0:r.some(I=>C(I,j)==="moving")?1:2,L=h(o[1])-h(a[1]);return L!==0?L:Math.max(...a[1].map(y))-Math.max(...o[1].map(y))}).map(([o])=>o)).map(o=>({key:o,items:(s.get(o)??[]).sort((a,h)=>y(h)-y(a))}))},[g,u,w,j]),ss=s=>{E(s.id),i({...t,itemId:s.id})},R=s=>{if(l.simulateHosts){T(s);return}U(!1),i(s?as(t,s):F(t))},es=()=>{if(k){R(null);return}l.simulateHosts&&T(null),i(F(t)),U(!0)};return e.jsxs("div",{className:`mesh-ops-list${l.compact?" mesh-ops-list--compact":""}${l.lastLook?" mesh-ops-list--lastlook":""}`,children:[e.jsxs("div",{className:"mesh-ops-summary",children:[e.jsx("div",{className:"mesh-ops-tabs",role:"tablist","aria-label":"Triage tabs",children:P.map(s=>e.jsxs("button",{type:"button",role:"tab","aria-selected":v===s,className:`mesh-ops-tab${v===s?" mesh-ops-tab--active":""}`,onClick:()=>cs(v===s?null:s),children:[e.jsx("span",{className:`dot${s==="active"||s==="moving"?" dot--working":""}`,"data-quiet":s==="done"||s==="archive"?!0:void 0,"aria-hidden":!0}),A[s],e.jsx("span",{className:"mesh-ops-tab-count",children:Q[s]})]},s))}),e.jsx("span",{className:"mesh-ops-summary-spacer"}),e.jsxs("span",{className:"mesh-ops-groupby",role:"group","aria-label":"Group items by",children:[e.jsx("span",{className:"mesh-ops-groupby-label",children:"group"}),us.map(s=>e.jsx("button",{type:"button",className:`mesh-ops-groupby-option${u===s.id?" mesh-ops-groupby-option--active":""}`,"aria-pressed":u===s.id,onClick:()=>ms(s.id),children:s.label},s.id))]})]}),e.jsx(ks,{hosts:W,newCounts:J,unattributedCount:Y,activeHostId:V,unattributedActive:k,onSelect:R,onSelectUnattributed:es}),x&&e.jsx("div",{className:"ctx-panel-empty","data-tone":"error",children:x}),!x&&f&&m.length===0&&e.jsx("div",{className:"ctx-panel-empty",children:"Loading mesh ops…"}),!x&&!f&&g.length===0&&e.jsxs("div",{className:"ctx-panel-empty",children:["Nothing in ",A[v],"."]}),Z.map(s=>{const c=v==="done"||v==="archive",o=c?s.items.filter(r=>r.kind!=="session"||r.session?.live===!0):[...s.items],a=c?s.items.filter(r=>r.kind==="session"&&r.session?.live!==!0):[],h=K[s.key]===!0;h&&o.push(...a);const L=l.lastLook?o.findIndex((r,I)=>!w(r)&&o.slice(0,I).some(ts=>w(ts))):-1;return e.jsxs("div",{className:"mesh-ops-group",children:[e.jsxs("div",{className:"mesh-ops-group-head",children:[e.jsx("span",{className:`dot${s.items.some(w)?" dot--warning":""}`,"data-quiet":!s.items.some(w)||void 0,"aria-hidden":!0}),e.jsx("span",{className:"label-sm mesh-ops-group-name",children:s.key}),e.jsx("span",{className:"mesh-ops-group-spacer"}),a.length>0&&e.jsx("button",{type:"button",className:"mesh-ops-group-more",onClick:()=>z(r=>({...r,[s.key]:!h})),children:h?`hide ${a.length} ended`:`+${a.length} ended`}),e.jsx("span",{className:"mesh-ops-group-count",children:s.items.length})]}),o.map((r,I)=>e.jsxs("div",{children:[I===L&&e.jsxs("div",{className:"mesh-ops-lastlook",role:"separator",children:[e.jsx("span",{className:"mesh-ops-lastlook-rule"}),e.jsx("span",{className:"mesh-ops-lastlook-label",children:"last look — above changed since you scanned"}),e.jsx("span",{className:"mesh-ops-lastlook-rule"})]}),e.jsx(vs,{item:r,selected:r.id===n,fresh:w(r),showHost:X,onSelect:()=>ss(r)})]},r.id))]},s.key)}),G&&e.jsxs("div",{className:"mesh-ops-lab",children:[e.jsx("span",{className:"label-xs",children:"lab"}),bs.map(s=>e.jsx("button",{type:"button",className:"mesh-ops-lab-toggle","data-on":l[s.key]||void 0,"aria-pressed":l[s.key],onClick:()=>hs(s.key),children:s.label},s.key))]})]})}function Ts({route:t,navigate:i}){return t.view!=="mesh-ops"?null:e.jsx(js,{route:t,navigate:i})}export{Ts as MeshOpsContent};
@@ -1 +0,0 @@
1
- import{j as r}from"./index-Bli6bTLU.js";import{SettingsScreen as o}from"./SettingsScreen-Btaku7YM.js";import"./EmptyState-BnDda92b.js";import"./StatusPill-NFFnphtx.js";import"./status-tone-BM_zuRy1.js";import"./api-DEHEgJ9m.js";import"./time-Dhsh_2EG.js";import"./AgentConfigurationScreen-BoBQpyz5.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./createLucideIcon-DLlxGjKt.js";import"./conversation-model-CigSPlKA.js";import"./colors-BtO5_zlx.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./keyboard-nav-7iEtvu9P.js";import"./x-BJyPzFnn.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./file-text-BVhkMWyC.js";import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./openContent-C6XO6kr5.js";import"./AgentsSubnav-3_vpn2bT.js";import"./SecondaryNav-cYTw2p39.js";import"./secondaryNavConfig-DyC_P9Wx.js";import"./message-square-DlY4EneU.js";import"./compass-BepM5iWH.js";import"./settings-BzWCF3NF.js";import"./terminal-BiNIXhna.js";import"./git-branch-q8Ayc8py.js";import"./scroll-text-DRidbcse.js";/* empty css */import"./refresh-cw-IgN2fZLM.js";import"./bot-r2IuAuJd.js";import"./wrench-CQvdf7KT.js";import"./server-Dt3tpiBj.js";import"./cpu-Bc268H9Q.js";import"./SettingsDrawer-DwYQTGi8.js";import"./credentials-qwds23lv.js";import"./AgentAvatar-B1xvQ7ej.js";import"./SpriteAvatar-DMrSssNZ.js";import"./agent-identity-DzHGhLdJ.js";import"./VoicePermissionsPanel-BkIGTzgw.js";import"./check-Bfs7hMb1.js";import"./copy-De4s38o2.js";function ut({route:t,navigate:i}){return t.view!=="settings"?null:r.jsx(o,{navigate:i,section:t.section,agentId:t.agentId})}export{ut as SettingsContent};
@@ -1 +0,0 @@
1
- import{j as i}from"./index-Bli6bTLU.js";import{KnowledgeSearchScreen as o}from"./KnowledgeSearchScreen-Bj80IgR0.js";/* empty css */import"./api-DEHEgJ9m.js";import"./time-Dhsh_2EG.js";import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./createLucideIcon-DLlxGjKt.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./conversation-model-CigSPlKA.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./sparkles-ytTwpCbZ.js";import"./clock-DaKLp6Xd.js";function Q({route:r,navigate:t}){return r.view!=="search"?null:i.jsx(o,{navigate:t,mode:r.mode,hitId:r.hitId,routeFilters:r.filters})}export{Q as SearchContent};
@@ -1 +0,0 @@
1
- import{j as r}from"./index-Bli6bTLU.js";import{ActivityScreen as o}from"./ActivityScreen-C7AwUogt.js";import"./api-DEHEgJ9m.js";import"./clipboard-e3fSpeo7.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./colors-BtO5_zlx.js";import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./createLucideIcon-DLlxGjKt.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./conversation-model-CigSPlKA.js";import"./time-Dhsh_2EG.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./mentions-Cd6XticV.js";import"./AgentDetailCard-FelCxQrT.js";import"./AgentLiveActions-Bn3zeZBN.js";import"./terminal-takeover-CtA3wcXh.js";import"./openContent-C6XO6kr5.js";import"./eye-BeCSqJn1.js";import"./terminal-BiNIXhna.js";import"./EmptyState-BnDda92b.js";/* empty css */function Z({route:t,navigate:i}){return t.view!=="activity"?null:r.jsx(o,{navigate:i})}export{Z as ActivityContent};
@@ -1 +0,0 @@
1
- import{j as t}from"./index-Bli6bTLU.js";import{FollowScreen as i}from"./FollowScreen-DcFBqr6l.js";import"./api-DEHEgJ9m.js";import"./follow-route-BvcGtBIL.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";/* empty css */function w({route:o,navigate:r}){return o.view!=="follow"?null:t.jsx(i,{route:o,navigate:r})}export{w as FollowContent};
@@ -1 +0,0 @@
1
- import{j as t}from"./index-Bli6bTLU.js";import{WorkDetailScreen as i}from"./WorkDetailScreen-Cwe-KWK4.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./createLucideIcon-DLlxGjKt.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./StatusPill-NFFnphtx.js";import"./status-tone-BM_zuRy1.js";import"./WorkFilesViewer-BBtKRBPv.js";import"./api-DEHEgJ9m.js";import"./chevron-right-BMqtBds_.js";import"./chevron-down-Da5tV19_.js";import"./mentions-Cd6XticV.js";import"./colors-BtO5_zlx.js";import"./index-DFdlQs_c.js";import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./conversation-model-CigSPlKA.js";import"./time-Dhsh_2EG.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./AgentDetailCard-FelCxQrT.js";import"./AgentLiveActions-Bn3zeZBN.js";import"./terminal-takeover-CtA3wcXh.js";import"./openContent-C6XO6kr5.js";import"./eye-BeCSqJn1.js";import"./terminal-BiNIXhna.js";import"./BackToPicker-CqYhOaLB.js";import"./TailView-BfObcZu3.js";import"./SlidePanel-Dg8_styW.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./tail-events-CrN-Rmxj.js";import"./message-square-DlY4EneU.js";import"./radio-BjpQTKT0.js";import"./external-link-BGHC_naA.js";import"./activity-D4W2XZY2.js";function er({route:r,navigate:o}){return r.view!=="work"?null:t.jsx(i,{workId:r.workId,navigate:o})}export{er as WorkContent};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-Bli6bTLU.js";import{MeshScreen as i}from"./MeshScreen-lJKaOyGB.js";import"./api-DEHEgJ9m.js";import"./time-Dhsh_2EG.js";import"./colors-BtO5_zlx.js";import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./createLucideIcon-DLlxGjKt.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./conversation-model-CigSPlKA.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./MeshCanvas-C3_2p9B6.js";import"./Canvas-KyTsDJlB.js";import"./mesh-view-store-Cpqil_2D.js";import"./useAgentHoverCard-6N8b7qsU.js";import"./AgentDetailCard-FelCxQrT.js";import"./AgentLiveActions-Bn3zeZBN.js";import"./terminal-takeover-CtA3wcXh.js";import"./openContent-C6XO6kr5.js";import"./eye-BeCSqJn1.js";import"./terminal-BiNIXhna.js";import"./mesh-buckets-CfAukILK.js";import"./local-agents-BMadXuP1.js";import"./useContentSecondaryNav-D-hVKzM9.js";import"./OpsSubnav-BijKI3yG.js";import"./SecondaryNav-cYTw2p39.js";import"./secondaryNavConfig-DyC_P9Wx.js";import"./message-square-DlY4EneU.js";import"./compass-BepM5iWH.js";import"./settings-BzWCF3NF.js";import"./git-branch-q8Ayc8py.js";import"./scroll-text-DRidbcse.js";/* empty css *//* empty css *//* empty css */function xr({route:r,navigate:t}){return r.view!=="mesh"?null:o.jsx(i,{navigate:t})}export{xr as MeshContent};
@@ -1 +0,0 @@
1
- import{j as t}from"./index-Bli6bTLU.js";import{ConversationScreen as i}from"./ConversationScreen-CjWWmuuh.js";import{MessagesScreen as m}from"./MessagesScreen-D6MVLvdg.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./createLucideIcon-DLlxGjKt.js";import"./conversation-model-CigSPlKA.js";import"./colors-BtO5_zlx.js";import"./time-Dhsh_2EG.js";import"./api-DEHEgJ9m.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./keyboard-nav-7iEtvu9P.js";import"./x-BJyPzFnn.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./file-text-BVhkMWyC.js";import"./ConversationComposer-Ce7Byw48.js";import"./AgentAvatar-B1xvQ7ej.js";import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./SpriteAvatar-DMrSssNZ.js";import"./agent-identity-DzHGhLdJ.js";import"./zap-rw7uwZht.js";import"./message-markup-DAnnGpWr.js";import"./mentions-Cd6XticV.js";import"./AgentDetailCard-FelCxQrT.js";import"./AgentLiveActions-Bn3zeZBN.js";import"./terminal-takeover-CtA3wcXh.js";import"./openContent-C6XO6kr5.js";import"./eye-BeCSqJn1.js";import"./terminal-BiNIXhna.js";import"./message-visibility-kJM8XcSG.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-C3sg0ULI.js";import"./BackToPicker-CqYhOaLB.js";import"./AstronautSuit-BADl7m8x.js";import"./ConversationFeedRows-DygDfQn_.js";import"./ConversationPanels-Dg4Y2GgX.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-BLn59zLn.js";import"./proxy-C35W-YHZ.js";import"./activity-D4W2XZY2.js";import"./message-circle-44KSmbvQ.js";import"./tail-events-CrN-Rmxj.js";import"./ConversationStatus-BhVIYQza.js";import"./check-Bfs7hMb1.js";import"./sparkles-ytTwpCbZ.js";import"./use-conversation-list-C0bEXFeH.js";import"./use-fleet-active-asks-CK4aw-3G.js";import"./plus-64n9qucr.js";function Mo({route:o,navigate:r}){switch(o.view){case"conversation":return t.jsx(i,{conversationId:o.conversationId,initialDraft:o.composeDraft,navigate:r});case"messages":return t.jsx(m,{conversationId:o.conversationId,navigate:r});default:return null}}export{Mo as ChatContent};
@@ -1 +0,0 @@
1
- import{j as i}from"./index-Bli6bTLU.js";import{AgentInfoScreen as r}from"./AgentInfoScreen-Cge7HHbV.js";import{AgentsScreen as m}from"./AgentsScreen-BcPM-z1T.js";/* empty css */import"./colors-BtO5_zlx.js";import"./conversation-model-CigSPlKA.js";import"./createLucideIcon-DLlxGjKt.js";import"./time-Dhsh_2EG.js";import"./api-DEHEgJ9m.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./text-BR9Bap0E.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./openContent-C6XO6kr5.js";import"./BackToPicker-CqYhOaLB.js";import"./AgentLiveActions-Bn3zeZBN.js";import"./terminal-takeover-CtA3wcXh.js";import"./eye-BeCSqJn1.js";import"./terminal-BiNIXhna.js";import"./ObservedTopologyPanel-D85P6RAk.js";/* empty css */import"./AgentsSubnav-3_vpn2bT.js";import"./SecondaryNav-cYTw2p39.js";import"./secondaryNavConfig-DyC_P9Wx.js";import"./message-square-DlY4EneU.js";import"./compass-BepM5iWH.js";import"./settings-BzWCF3NF.js";import"./git-branch-q8Ayc8py.js";import"./scroll-text-DRidbcse.js";import"./library-BSVrjn_m.js";/* empty css */import"./SpriteAvatar-DMrSssNZ.js";import"./agent-identity-DzHGhLdJ.js";import"./AgentSessions-czl5zT7A.js";import"./clipboard-e3fSpeo7.js";import"./agents-project-model-UYiamtrU.js";import"./profile-BkmuseW7.js";import"./AgentAvatar-B1xvQ7ej.js";import"./context-budget-DX_fwUs3.js";import"./session-catalog-CUQ8LUJY.js";import"./terminal-relay-pSm7_An6.js";import"./ConversationScreen-CjWWmuuh.js";import"./ConversationComposer-Ce7Byw48.js";import"./zap-rw7uwZht.js";import"./message-markup-DAnnGpWr.js";import"./mentions-Cd6XticV.js";import"./AgentDetailCard-FelCxQrT.js";import"./message-visibility-kJM8XcSG.js";import"./sessionRead-CvFz2RHv.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-C3sg0ULI.js";import"./AstronautSuit-BADl7m8x.js";import"./ConversationFeedRows-DygDfQn_.js";import"./ConversationPanels-Dg4Y2GgX.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-BLn59zLn.js";import"./proxy-C35W-YHZ.js";import"./activity-D4W2XZY2.js";import"./message-circle-44KSmbvQ.js";import"./tail-events-CrN-Rmxj.js";import"./ConversationStatus-BhVIYQza.js";import"./check-Bfs7hMb1.js";import"./sparkles-ytTwpCbZ.js";import"./SessionObserve-zAlFbwFn.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-197xYmRp.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObserveTextFlow-C1f5oize.js";import"./SessionObserveEvidence-BVawzqoE.js";import"./wrench-CQvdf7KT.js";import"./external-link-BGHC_naA.js";import"./AgentDefinitionsWorkspace-rw3vh8Lm.js";import"./agent-specialization-CNrsRbKA.js";import"./project-overview-helpers-BQTc_Ous.js";import"./FileViewerPane-Dg7_88pv.js";/* empty css */import"./agent-essentials-CngjUhQj.js";/* empty css *//* empty css */function no({route:t,navigate:o}){return t.view==="agent-info"?i.jsx(r,{conversationId:t.conversationId,navigate:o}):t.view==="agents-v2"?i.jsx(m,{navigate:o,selectedAgentId:t.agentId,conversationId:t.conversationId,tab:t.tab,activeRoute:t}):null}export{no as AgentsContent};