@openscout/scout 0.2.102 → 0.2.105

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 (505) hide show
  1. package/README.md +37 -0
  2. package/bin/scout.mjs +6 -0
  3. package/bin/scoutd +0 -0
  4. package/dist/build-manifest.json +4 -4
  5. package/dist/chat.mjs +285 -0
  6. package/dist/client/assets/ActivityScreen-CcDdQTBK.js +1 -0
  7. package/dist/client/assets/{AddProjectForm-DfbjlFfy.js → AddProjectForm-CHNJ4NnS.js} +1 -1
  8. package/dist/client/assets/{AdventureEvidence-Dzz9VbuE.js → AdventureEvidence-B4mEvXeD.js} +1 -1
  9. package/dist/client/assets/{AdventureReader-ClMxT0e4.js → AdventureReader-ZsBDQITY.js} +1 -1
  10. package/dist/client/assets/{AdventureScenery-D548O0x4.js → AdventureScenery-DSxDlqG1.js} +1 -1
  11. package/dist/client/assets/AgentAdventures-BxrYq_2v.js +1 -0
  12. package/dist/client/assets/{AgentAvatar-BIwg54Tj.js → AgentAvatar-NZOqcsB2.js} +1 -1
  13. package/dist/client/assets/AgentConfigurationScreen-BhD1PEAM.js +1 -0
  14. package/dist/client/assets/AgentDefinitionsWorkspace-BqS6MXqF.js +1 -0
  15. package/dist/client/assets/{AgentDetailCard-CFDE8TLi.js → AgentDetailCard-MIEBKw_S.js} +1 -1
  16. package/dist/client/assets/AgentFloorView-A0dDRlRV.js +1 -0
  17. package/dist/client/assets/{AgentFloorWorld-BDJmXl3C.js → AgentFloorWorld-BTqwmK5G.js} +1 -1
  18. package/dist/client/assets/AgentInfoScreen-DuaN0sgE.js +1 -0
  19. package/dist/client/assets/{AgentLaneCard-C6YmwPxQ.js → AgentLaneCard-C4rKLLdT.js} +1 -1
  20. package/dist/client/assets/{AgentLaneChrome-D9uJ4QY7.js → AgentLaneChrome-fGC-ZrJS.js} +1 -1
  21. package/dist/client/assets/{AgentLaneDetailSheet-KYckCBCX.js → AgentLaneDetailSheet-BTF4_th9.js} +1 -1
  22. package/dist/client/assets/{AgentLaneSummaryResize-BBYBS3DO.js → AgentLaneSummaryResize-DgSeA_vS.js} +1 -1
  23. package/dist/client/assets/AgentLanesEmbedScreen-CeNiaZ9_.js +1 -0
  24. package/dist/client/assets/{AgentLanesPreflight-pw2vMO3Q.js → AgentLanesPreflight-CcS23wij.js} +1 -1
  25. package/dist/client/assets/{AgentLanesView-aAyC7lHf.js → AgentLanesView-WZhEDBFE.js} +1 -1
  26. package/dist/client/assets/{AgentLiveActions-lYzicnNa.js → AgentLiveActions-6Kfr1uOT.js} +1 -1
  27. package/dist/client/assets/AgentMasterScreen-DUDUTAnU.js +1 -0
  28. package/dist/client/assets/{AgentSessions-Cox2zS-e.js → AgentSessions-CO1WGa8Z.js} +2 -2
  29. package/dist/client/assets/AgentsConsole-BQOWkj35.js +1 -0
  30. package/dist/client/assets/AgentsScreen-BMNAj1PH.js +1 -0
  31. package/dist/client/assets/AgentsSubnav-CeHhuzyM.js +1 -0
  32. package/dist/client/assets/{AstronautSuit-C-4I5YKi.js → AstronautSuit-D67fIBdR.js} +1 -1
  33. package/dist/client/assets/{AtopView-DKm-ERYC.js → AtopView-Ck30FbzG.js} +1 -1
  34. package/dist/client/assets/{BackToPicker-Bys9ColC.js → BackToPicker-CkBhGRlD.js} +1 -1
  35. package/dist/client/assets/BriefingDetailScreen-yZG8_m4h.js +1 -0
  36. package/dist/client/assets/{BriefingsScreen-D4Zf31Y6.js → BriefingsScreen-DTxYMr3a.js} +1 -1
  37. package/dist/client/assets/{BrokerMetadataPanel-1GoSl2BV.js → BrokerMetadataPanel-crirZCdo.js} +1 -1
  38. package/dist/client/assets/BrokerScreen-CT37VQiL.js +8 -0
  39. package/dist/client/assets/Canvas-CRP0KjKb.js +1 -0
  40. package/dist/client/assets/{CastPicker-BuwE_JQp.js → CastPicker-ZPomvOf-.js} +1 -1
  41. package/dist/client/assets/ChannelComposer-BVItWlEz.js +1 -0
  42. package/dist/client/assets/ChannelSidebar-B-2spawY.js +1 -0
  43. package/dist/client/assets/{CharacterFamilyPreview-CfO3j8Of.js → CharacterFamilyPreview-ckVkecDO.js} +1 -1
  44. package/dist/client/assets/ChatAvatar-DKBsbOqk.js +1 -0
  45. package/dist/client/assets/ChatBits-CLJ71hTY.js +1 -0
  46. package/dist/client/assets/{ChatCollapsedStrip-TV0j1xTB.js → ChatCollapsedStrip-Co0NmqOO.js} +1 -1
  47. package/dist/client/assets/ChatRightPanel-pKQtkAgl.js +1 -0
  48. package/dist/client/assets/ChatSpaceSurface-NrLwdPkE.js +1 -0
  49. package/dist/client/assets/ChatSpaceTheme-BPMgPdVK.css +1 -0
  50. package/dist/client/assets/ChatSpaceTheme-D37Jk7bl.js +1 -0
  51. package/dist/client/assets/{CodeDiffPane-DB6-mqtX.js → CodeDiffPane-D-iv28LJ.js} +1 -1
  52. package/dist/client/assets/{CodeProjectPicker-B_LNLpIK.js → CodeProjectPicker-CZ3gDdiT.js} +1 -1
  53. package/dist/client/assets/{CodeScreen-C9H160XS.js → CodeScreen-CSC-zbP9.js} +1 -1
  54. package/dist/client/assets/{CommsCanvas-DOKw3Q8i.js → CommsCanvas-DdNAwjGW.js} +1 -1
  55. package/dist/client/assets/{CommsDeck-C18JA7rK.js → CommsDeck-mGWY7Ivi.js} +1 -1
  56. package/dist/client/assets/{CommsFlowGraph-Czg-KTS0.js → CommsFlowGraph-voDD9M5R.js} +1 -1
  57. package/dist/client/assets/{CommsFlowMap-CzBWvSa5.js → CommsFlowMap-C33sgD48.js} +1 -1
  58. package/dist/client/assets/{CommsSelection-g1twA-Lb.js → CommsSelection-BL8aYD7z.js} +1 -1
  59. package/dist/client/assets/{ConversationComposer-B7RU6LKd.js → ConversationComposer-DNcn5U6D.js} +1 -1
  60. package/dist/client/assets/ConversationFeedRows-RnYSa7Io.js +1 -0
  61. package/dist/client/assets/ConversationHeader-Y9TEJxP_.js +1 -0
  62. package/dist/client/assets/{ConversationPanels-C9yCAoJy.js → ConversationPanels-6pprBpmq.js} +2 -2
  63. package/dist/client/assets/ConversationScreen-tpj4cqWs.js +2 -0
  64. package/dist/client/assets/{ConversationStatus-CK-YfLpi.js → ConversationStatus-Cv-7hErW.js} +1 -1
  65. package/dist/client/assets/{CrewAvatar-CJhuqTsJ.js → CrewAvatar-zgzC3cbU.js} +1 -1
  66. package/dist/client/assets/{CrewSprite-hgpA3SWB.js → CrewSprite-Dp9KBBGY.js} +1 -1
  67. package/dist/client/assets/CrewWorkspaces-DDuYMByu.css +1 -0
  68. package/dist/client/assets/CrewWorkspaces-K2jcyLec.js +1 -0
  69. package/dist/client/assets/{DataTable-BMOZ1-z8.js → DataTable-av71ehJV.js} +1 -1
  70. package/dist/client/assets/{DispatchAftermath-DDlwqSCY.js → DispatchAftermath-CcYGUB10.js} +1 -1
  71. package/dist/client/assets/{DocumentFocusViewer-f12RRQpV.js → DocumentFocusViewer-DlMiEALb.js} +1 -1
  72. package/dist/client/assets/{EmbeddableSurfacesLab-DGl9EMRV.js → EmbeddableSurfacesLab-CTkO_tQR.js} +1 -1
  73. package/dist/client/assets/{EmptyState-uyYN5piI.js → EmptyState-CYUwYyAW.js} +1 -1
  74. package/dist/client/assets/{FileViewerPane-HtiDbj9N.js → FileViewerPane-Cxhixtks.js} +1 -1
  75. package/dist/client/assets/FlightObserveScreen-CvzhzuWc.js +1 -0
  76. package/dist/client/assets/{FloorContextSheet-DV-SYA0K.js → FloorContextSheet-Vj_wVZq1.js} +1 -1
  77. package/dist/client/assets/{FloorExchangePanel-D59nvRCF.js → FloorExchangePanel-CjHSDXad.js} +1 -1
  78. package/dist/client/assets/{FloorMessagePasses-BCwsz9VS.js → FloorMessagePasses-BG4ebnX5.js} +1 -1
  79. package/dist/client/assets/{FloorReplay-BHo79HCD.js → FloorReplay-BoYaGY9t.js} +1 -1
  80. package/dist/client/assets/FloorResourcesSheet-_Iy5UqgY.js +1 -0
  81. package/dist/client/assets/{FloorSavedWork-2tjBoy06.js → FloorSavedWork-jbtRs-YE.js} +1 -1
  82. package/dist/client/assets/{FloorTacticalHUD-Bngao6sn.js → FloorTacticalHUD-BhyOqlL5.js} +1 -1
  83. package/dist/client/assets/{FollowScreen-eHXOlK-u.js → FollowScreen-CupyOgt4.js} +1 -1
  84. package/dist/client/assets/HarnessMark-DSvM_H7H.js +1 -0
  85. package/dist/client/assets/HarnessesScreen-DyjqbZ4k.js +1 -0
  86. package/dist/client/assets/{HerdrSession-CtJOUn7H.js → HerdrSession-Dcm3vf9U.js} +1 -1
  87. package/dist/client/assets/{HomeHero-Cvwx2H0w.js → HomeHero-pIZtE1cC.js} +1 -1
  88. package/dist/client/assets/{HostAdvisorView-CTJXIc1Q.js → HostAdvisorView-Dv5meXo2.js} +1 -1
  89. package/dist/client/assets/InviteLandingScreen-xZQ2na1z.js +1 -0
  90. package/dist/client/assets/InviteSheet--5Zjct25.js +1 -0
  91. package/dist/client/assets/JumpPalette-BmiSOEmp.js +1 -0
  92. package/dist/client/assets/{KnowledgeSearchInspector-DwGMVmFL.js → KnowledgeSearchInspector-B8yiM524.js} +1 -1
  93. package/dist/client/assets/KnowledgeSearchScreen-BPqAjHnH.js +1 -0
  94. package/dist/client/assets/{LaneToolHoverCard-C6YehJqD.js → LaneToolHoverCard-D2cnTeUd.js} +1 -1
  95. package/dist/client/assets/LaneTraceDetailSheet-jl4XQmEx.js +1 -0
  96. package/dist/client/assets/{LaneTraceEventFocus-WLNZZVi_.js → LaneTraceEventFocus-BLhVHwff.js} +1 -1
  97. package/dist/client/assets/{MeshCanvas-FDDGE69h.js → MeshCanvas-BR25OBTJ.js} +1 -1
  98. package/dist/client/assets/{MeshCanvasMinimap-CGRzQCac.js → MeshCanvasMinimap-ClVolr4-.js} +1 -1
  99. package/dist/client/assets/MeshScreen-BW1dMFWF.js +1 -0
  100. package/dist/client/assets/{MeshTopologyView-C2Cv_2gx.js → MeshTopologyView-BT3ke2D1.js} +2 -2
  101. package/dist/client/assets/MessagesScreen-CtNMfIvC.js +1 -0
  102. package/dist/client/assets/{MissionContextRail-CVSZJnvX.js → MissionContextRail-CafjuseK.js} +1 -1
  103. package/dist/client/assets/MissionControlView-BjPOViGY.js +1 -0
  104. package/dist/client/assets/{MissionFocusOverlay-B9SiuO-i.js → MissionFocusOverlay-nhy3hkxQ.js} +1 -1
  105. package/dist/client/assets/MissionLeftAgentRow-Dms0DBjO.js +1 -0
  106. package/dist/client/assets/{MissionLogPane-CMBiI29U.js → MissionLogPane-DiUf3vWW.js} +1 -1
  107. package/dist/client/assets/NativeAreaScreen-BQSTo8As.js +1 -0
  108. package/dist/client/assets/NativeAreaScreen-Brix6xDB.js +1 -0
  109. package/dist/client/assets/NativeAreaScreen-D7HyQNlM.js +1 -0
  110. package/dist/client/assets/{NewAgentModal-Cl4nsGhu.js → NewAgentModal-BQ2wQ5gp.js} +1 -1
  111. package/dist/client/assets/NewChatComposer-BEXS8vV6.js +19 -0
  112. package/dist/client/assets/{NewChatOrigin-CyPPWTJP.js → NewChatOrigin-C8ROO4ps.js} +1 -1
  113. package/dist/client/assets/{NodeDetailPanel-BUG8rOb-.js → NodeDetailPanel-BNTqYC7m.js} +1 -1
  114. package/dist/client/assets/{NodeMenu-Fw8ATWQA.js → NodeMenu-CcOeFRCB.js} +1 -1
  115. package/dist/client/assets/{ObserveEmbedScreen-BPiSXXvm.js → ObserveEmbedScreen-Dh30EjAQ.js} +2 -2
  116. package/dist/client/assets/{ObserveTextFlow-ET0dD1wO.js → ObserveTextFlow-CC5mnngm.js} +2 -2
  117. package/dist/client/assets/{ObservedTopologyPanel-DkEkQzo-.js → ObservedTopologyPanel-DF6tRZL_.js} +1 -1
  118. package/dist/client/assets/OpenScoutAppShell-D9pgw36i.js +31 -0
  119. package/dist/client/assets/OpsAgentsView-D3rM0udq.js +1 -0
  120. package/dist/client/assets/OpsScreen-DySeNQ1V.js +1 -0
  121. package/dist/client/assets/OpsSubnav-C9E0r3GZ.js +1 -0
  122. package/dist/client/assets/ProjectAgentProfile-FUav75j2.js +1 -0
  123. package/dist/client/assets/{ProjectAgentProfileBar-C1fR65Eh.js → ProjectAgentProfileBar-C8z22pJ2.js} +1 -1
  124. package/dist/client/assets/ProjectAgentProfileHero-BLK0EwMg.js +1 -0
  125. package/dist/client/assets/ProjectsInbox-DfCXReZK.js +2 -0
  126. package/dist/client/assets/ProjectsRail-CELVubfJ.js +1 -0
  127. package/dist/client/assets/ProjectsScreen-DMw4TLKy.js +1 -0
  128. package/dist/client/assets/ProjectsThreadAside-D1Sh4fnX.js +1 -0
  129. package/dist/client/assets/{Provider-5Hotn7NQ.js → Provider-CNZluAZb.js} +2 -2
  130. package/dist/client/assets/{RailRow-BYguXNm4.js → RailRow-DUPqXMZh.js} +1 -1
  131. package/dist/client/assets/RailToggle-BwmY70B8.js +1 -0
  132. package/dist/client/assets/RawSessionsTable-6OVJq0JZ.js +1 -0
  133. package/dist/client/assets/RealtimeVoiceScreen-D41TYY0x.js +9 -0
  134. package/dist/client/assets/{RenderedWorkerSprite-CvdWO32C.js → RenderedWorkerSprite-C8fxndAh.js} +1 -1
  135. package/dist/client/assets/{ReplayClock-B7JLTp8A.js → ReplayClock-DUVJjrIu.js} +1 -1
  136. package/dist/client/assets/{ReplayLog-DZTpf2CW.js → ReplayLog-Bek1Vc4W.js} +1 -1
  137. package/dist/client/assets/{ReplayOutpost-CvWQa30T.js → ReplayOutpost-DlRg3172.js} +1 -1
  138. package/dist/client/assets/{RepoDiffEmbedScreen-Cbu0_PJW.js → RepoDiffEmbedScreen-CVUMnt6A.js} +1 -1
  139. package/dist/client/assets/{RepoDiffPageScreen-Chwm6GXL.js → RepoDiffPageScreen-D9-s5PyB.js} +1 -1
  140. package/dist/client/assets/{RepoDiffViewer-C2mb0Wj-.js → RepoDiffViewer-D7FN-oyY.js} +1 -1
  141. package/dist/client/assets/RepoDiffViewerLazy-BpMR7tlx.js +2 -0
  142. package/dist/client/assets/{ReposScreen-C7JZQmyh.js → ReposScreen-BQ7HO1om.js} +2 -2
  143. package/dist/client/assets/{RiggedWorkerCharacter-DNe731GE.js → RiggedWorkerCharacter-CJMWlvV-.js} +1 -1
  144. package/dist/client/assets/{SageModelStudio-BR1J2D4R.js → SageModelStudio-B526NSnw.js} +1 -1
  145. package/dist/client/assets/{ScoutDeckSurface-flRamdvE.js → ScoutDeckSurface-ChkvGyEW.js} +1 -1
  146. package/dist/client/assets/{ScoutSurface-BpklGmDL.js → ScoutSurface-6g1f5chk.js} +1 -1
  147. package/dist/client/assets/{ScoutbotFxLab-DeK7ySWZ.js → ScoutbotFxLab-BuwBdnPf.js} +1 -1
  148. package/dist/client/assets/{SecondaryNav-BkTn5tkq.js → SecondaryNav-Bs-_VwTC.js} +1 -1
  149. package/dist/client/assets/{SessionEmbedScreen-CcQN6xlo.js → SessionEmbedScreen-C2wf35-P.js} +1 -1
  150. package/dist/client/assets/{SessionObserve-DaqDhqDI.js → SessionObserve-B64YsYhy.js} +9 -9
  151. package/dist/client/assets/{SessionObserve-BOBJSfs0.css → SessionObserve-CDdJ7fAE.css} +1 -1
  152. package/dist/client/assets/{SessionObserveEvidence-Drv-D8Oh.js → SessionObserveEvidence-CS1aQBpQ.js} +1 -1
  153. package/dist/client/assets/SessionRefScreen-DURV0MpF.js +1 -0
  154. package/dist/client/assets/SessionsScreen-D71ZR-8t.js +1 -0
  155. package/dist/client/assets/{SettingsDrawer-BDapR4E9.js → SettingsDrawer-Nz98oBVl.js} +3 -3
  156. package/dist/client/assets/SettingsScreen-CYBHal6y.js +1 -0
  157. package/dist/client/assets/{SharedFloorCharacter-CSYG_t9t.js → SharedFloorCharacter-V04kD5T9.js} +1 -1
  158. package/dist/client/assets/SharedWorkFloor-C0xxW4SN.js +2 -0
  159. package/dist/client/assets/{ShikiPane-BudrOxNK.js → ShikiPane-XwFI-pCp.js} +1 -1
  160. package/dist/client/assets/{SlidePanel-Datu7XG4.js → SlidePanel-BMpkXai_.js} +1 -1
  161. package/dist/client/assets/SpaceSwitcher-BfeIf-ad.js +1 -0
  162. package/dist/client/assets/{SpriteAvatar-BW1JzkDt.js → SpriteAvatar-aHeF4ZQZ.js} +1 -1
  163. package/dist/client/assets/{SproutActionSprite-DveCzg6l.js → SproutActionSprite-DI5N3gOj.js} +1 -1
  164. package/dist/client/assets/{StatusPill-MxYClPG5.js → StatusPill-Dw4LP7wu.js} +1 -1
  165. package/dist/client/assets/{TailView-Dn7uWmPz.js → TailView-BofjmUMJ.js} +2 -2
  166. package/dist/client/assets/Terminal-jIqnIZZ6.js +4 -0
  167. package/dist/client/assets/TerminalEmbedScreen-3XsjuySR.js +1 -0
  168. package/dist/client/assets/{TerminalHeaderMount-DCGstkZ4.js → TerminalHeaderMount-CwbQhXcI.js} +1 -1
  169. package/dist/client/assets/TerminalRelay--qOBwnbR.js +46 -0
  170. package/dist/client/assets/{TextDocumentSurface-BhYvAB0o.js → TextDocumentSurface-BK6Qy41F.js} +1 -1
  171. package/dist/client/assets/{TmuxPeek-BhK0V9Qt.js → TmuxPeek-DpUT9Tpc.js} +1 -1
  172. package/dist/client/assets/{VoicePermissionsPanel-CecFWzva.js → VoicePermissionsPanel-D35fOnQj.js} +1 -1
  173. package/dist/client/assets/{WorkDetailScreen-CwtRCm_-.js → WorkDetailScreen-Bcf_yHhU.js} +2 -2
  174. package/dist/client/assets/{WorkFilesViewer-DJHftsH9.js → WorkFilesViewer-t8AEyx3Q.js} +1 -1
  175. package/dist/client/assets/{WorkRunView-x5PH1byG.js → WorkRunView-_mhG_FR2.js} +1 -1
  176. package/dist/client/assets/WorldActorTalk-CKerDikx.js +1 -0
  177. package/dist/client/assets/{WorldCharacter-Dn4sIXNP.js → WorldCharacter-BRrj3MQN.js} +1 -1
  178. package/dist/client/assets/{WorldMinimap-Blqg0d5r.js → WorldMinimap-DOptgrc4.js} +1 -1
  179. package/dist/client/assets/{WorldSky-DV9bpvXj.js → WorldSky-D-RJzSa6.js} +1 -1
  180. package/dist/client/assets/{activity-CSUhvjD0.js → activity-BJqFrZyB.js} +1 -1
  181. package/dist/client/assets/{addon-fit-MR98IWES.js → addon-fit-CHohcvS3.js} +1 -1
  182. package/dist/client/assets/{addon-webgl-CIIKXrvK.js → addon-webgl-CaRy2x2b.js} +1 -1
  183. package/dist/client/assets/agent-autocomplete-_u9o5EZu.js +2 -0
  184. package/dist/client/assets/{agent-essentials-8t2il7PV.js → agent-essentials-bKWYOZaH.js} +1 -1
  185. package/dist/client/assets/{agent-floor-actor-3v9drnxh.js → agent-floor-actor-DW8zLht0.js} +1 -1
  186. package/dist/client/assets/{agent-lane-card-model-l0stnU9N.js → agent-lane-card-model-CeqQGp-8.js} +1 -1
  187. package/dist/client/assets/{agent-lane-detail-Db7KyAlf.js → agent-lane-detail-Ti3trpfH.js} +1 -1
  188. package/dist/client/assets/{agent-lane-preview-B8lsQJOQ.js → agent-lane-preview-Dpa3DuOn.js} +1 -1
  189. package/dist/client/assets/{agent-lanes-model-CX0wTcnF.js → agent-lanes-model-DMAdqCmK.js} +1 -1
  190. package/dist/client/assets/{agent-specialization-CiVxQsFT.js → agent-specialization-BplZUa_0.js} +1 -1
  191. package/dist/client/assets/{api-B9_IqFKY.js → api-BQYTwoz6.js} +1 -1
  192. package/dist/client/assets/{api-CaROe5_H.js → api-DSqpVKC7.js} +1 -1
  193. package/dist/client/assets/{arc.es-BzhWalCl.js → arc.es-CubLvQ4W.js} +1 -1
  194. package/dist/client/assets/{arrow-left-PuKdO3NM.js → arrow-left-DFfKAq0d.js} +1 -1
  195. package/dist/client/assets/{arrow-right-ldbfp4SZ.js → arrow-right-DmAWnyAH.js} +1 -1
  196. package/dist/client/assets/{arrow-up-right-Hn754ybA.js → arrow-up-right-B0aLKiyF.js} +1 -1
  197. package/dist/client/assets/at-sign-DM7xeppo.js +1 -0
  198. package/dist/client/assets/{book-open-BlJnpf2U.js → book-open-BL9qvhEI.js} +1 -1
  199. package/dist/client/assets/{bot-CfN9PSBF.js → bot-BhAVbcCA.js} +1 -1
  200. package/dist/client/assets/{cache-DEy9E34b.js → cache-DGBo3vIf.js} +1 -1
  201. package/dist/client/assets/chat-api-BPVC0asu.js +1 -0
  202. package/dist/client/assets/chat-space-model-B6Jg2CY4.js +4 -0
  203. package/dist/client/assets/{check-B8dMv3Is.js → check-g7D7-c1J.js} +1 -1
  204. package/dist/client/assets/{chevron-down-B5eMsn5c.js → chevron-down-CDzRQQGl.js} +1 -1
  205. package/dist/client/assets/{chevron-right-C7UGFpkl.js → chevron-right-DKGTLiqc.js} +1 -1
  206. package/dist/client/assets/{chevron-up-BHOEgHcn.js → chevron-up-DX7R6KY2.js} +1 -1
  207. package/dist/client/assets/{chunk-HRAB3GC3-C5X-kFhb.js → chunk-HRAB3GC3-Dvk_QpRq.js} +1 -1
  208. package/dist/client/assets/{clock-DFcRbtrl.js → clock-CQb4FeMf.js} +1 -1
  209. package/dist/client/assets/{code-xml-BmyLM0I2.js → code-xml-Cmadr3pQ.js} +1 -1
  210. package/dist/client/assets/{coffee-C_D9zooM.js → coffee-ljG1_krY.js} +1 -1
  211. package/dist/client/assets/{compass-DTZdCpv9.js → compass-CvzkzkIh.js} +1 -1
  212. package/dist/client/assets/content-0AXa0klu.js +1 -0
  213. package/dist/client/assets/content-BEyJ19Lx.js +1 -0
  214. package/dist/client/assets/content-BN5weWKW.js +1 -0
  215. package/dist/client/assets/content-BNokkm7C.js +1 -0
  216. package/dist/client/assets/content-BV4PUM9q.js +1 -0
  217. package/dist/client/assets/content-BxUPlcx5.js +1 -0
  218. package/dist/client/assets/content-CIC5sku8.js +1 -0
  219. package/dist/client/assets/content-CKJ9zb7Z.js +1 -0
  220. package/dist/client/assets/content-CdkTyxqk.js +1 -0
  221. package/dist/client/assets/content-CnhhSCZq.js +1 -0
  222. package/dist/client/assets/content-D1Ze_FG9.js +1 -0
  223. package/dist/client/assets/content-DY3F9Vfr.js +1 -0
  224. package/dist/client/assets/content-DrKBYpcb.js +1 -0
  225. package/dist/client/assets/content-LSStQYj5.js +1 -0
  226. package/dist/client/assets/content-YvU-D0hF.js +1 -0
  227. package/dist/client/assets/content-oKQMyVnH.js +1 -0
  228. package/dist/client/assets/{context-budget-DemtXu7E.js → context-budget-8qFKqM-j.js} +1 -1
  229. package/dist/client/assets/{conversation-icons-BQ4OeOmr.js → conversation-icons-CIRaxmid.js} +1 -1
  230. package/dist/client/assets/{conversation-model-BGFHoxQ0.js → conversation-model-m8HhzroS.js} +1 -1
  231. package/dist/client/assets/conversation-motion-features-D9PxLoDt.js +1 -0
  232. package/dist/client/assets/{copy-D9WUpQRf.js → copy-BGOC1tJB.js} +1 -1
  233. package/dist/client/assets/{cpu-Ck_4tB_-.js → cpu-Q6nrHFTN.js} +1 -1
  234. package/dist/client/assets/{createLucideIcon-DkjnzvcJ.js → createLucideIcon-ChvMq-zl.js} +1 -1
  235. package/dist/client/assets/{credentials-C4VXz2hr.js → credentials-OeoF-VKJ.js} +1 -1
  236. package/dist/client/assets/discover-DlwbftpC.js +2 -0
  237. package/dist/client/assets/embed-entry-c0lwtjBG.js +2 -0
  238. package/dist/client/assets/{external-link-RT4Ph-6-.js → external-link-BVccgH0n.js} +1 -1
  239. package/dist/client/assets/{eye-CtqSV8BS.js → eye-CsGfEVR6.js} +1 -1
  240. package/dist/client/assets/{file-code-corner-D_Aptal2.js → file-code-corner-Be6da5l3.js} +1 -1
  241. package/dist/client/assets/{file-text-ChtICwub.js → file-text-DP6txVW-.js} +1 -1
  242. package/dist/client/assets/{flag-CqdOxVkI.js → flag-DAFE2wZ5.js} +1 -1
  243. package/dist/client/assets/{floor-context-model-DZBpo_oD.js → floor-context-model-rWKqaKmV.js} +1 -1
  244. package/dist/client/assets/{floor-message-passes-CJh9f8Jp.js → floor-message-passes-CO3Ix_wR.js} +1 -1
  245. package/dist/client/assets/{folder-0fWevPvQ.js → folder-B_S7gBVr.js} +1 -1
  246. package/dist/client/assets/{gauge-Dgtfxf_o.js → gauge-DQCGlE3o.js} +1 -1
  247. package/dist/client/assets/{gestures-BDCZ1FRG.js → gestures-CofqY4Km.js} +1 -1
  248. package/dist/client/assets/{git-branch-CA3cHKCI.js → git-branch-DcUCsWdJ.js} +1 -1
  249. package/dist/client/assets/{go-shortcuts-DKtw4qYx.js → go-shortcuts-KQy-ZOpV.js} +1 -1
  250. package/dist/client/assets/{home-moving-signal-B7m-ngb2.js → home-moving-signal-BIHUGNfI.js} +1 -1
  251. package/dist/client/assets/home-now-card-CaLgZze2.js +1 -0
  252. package/dist/client/assets/{home-now-card-nano-D1ScGrgv.js → home-now-card-nano-CvU8B61b.js} +1 -1
  253. package/dist/client/assets/hooks-DaUOREpP.js +2 -0
  254. package/dist/client/assets/index-CGbs0SBm.css +1 -0
  255. package/dist/client/assets/index-CbqBwfIW.js +1 -0
  256. package/dist/client/assets/index-CyPMl7Up.js +1 -0
  257. package/dist/client/assets/index-DReVb7jZ.js +10 -0
  258. package/dist/client/assets/index-PQpJveGO.js +1 -0
  259. package/dist/client/assets/{index-CvsM3jm8.js → index-kkXUq-zf.js} +1 -1
  260. package/dist/client/assets/{inspector-panel-BLhDODb3.js → inspector-panel-CLU7wjnT.js} +2 -2
  261. package/dist/client/assets/{keyboard-nav-CXfav14z.js → keyboard-nav-CJXPaHXj.js} +1 -1
  262. package/dist/client/assets/lane-ask-display-BTVSakyo.js +18 -0
  263. package/dist/client/assets/{lane-observe-BD21P8BB.js → lane-observe-CteDwdD-.js} +3 -3
  264. package/dist/client/assets/{lane-roster-store-DzNHP392.js → lane-roster-store-Ch9t6lb0.js} +1 -1
  265. package/dist/client/assets/{layers-Bolb8ejU.js → layers-BOwyWodP.js} +1 -1
  266. package/dist/client/assets/{layout-grid-DI9tVJ2E.js → layout-grid-B36Qsh0y.js} +1 -1
  267. package/dist/client/assets/left-0vBrvrBG.js +2 -0
  268. package/dist/client/assets/left-C6SyaqlJ.js +1 -0
  269. package/dist/client/assets/left-CTuXysZR.js +2 -0
  270. package/dist/client/assets/left-Cc6s4DT2.js +1 -0
  271. package/dist/client/assets/left-DF5caiyh.js +1 -0
  272. package/dist/client/assets/left-DgT4tWCx.js +1 -0
  273. package/dist/client/assets/left-R0wppTTr.js +1 -0
  274. package/dist/client/assets/left-advisor-C-kt8V28.js +1 -0
  275. package/dist/client/assets/left-agents-thnBO156.js +1 -0
  276. package/dist/client/assets/left-default-CT42fnpF.js +1 -0
  277. package/dist/client/assets/left-lanes-CSmZgciK.js +1 -0
  278. package/dist/client/assets/left-mission-C86x6i9h.js +1 -0
  279. package/dist/client/assets/library-DdhYL_9v.js +1 -0
  280. package/dist/client/assets/{loader-circle-DurUYl7E.js → loader-circle-DNUsuPWz.js} +1 -1
  281. package/dist/client/assets/{local-agents-D9fYYRyj.js → local-agents-I40PawYA.js} +1 -1
  282. package/dist/client/assets/{machine-children-RGS4Q0r6.js → machine-children-CdhNzDF0.js} +1 -1
  283. package/dist/client/assets/{mentions-Ctw1ECUC.js → mentions-Ck_Vjnyp.js} +1 -1
  284. package/dist/client/assets/{mesh-ops-CGpRk4ik.js → mesh-ops-DSlvHp-D.js} +1 -1
  285. package/dist/client/assets/{mesh-view-store-CliSYsmt.js → mesh-view-store-C1-mdP3P.js} +1 -1
  286. package/dist/client/assets/{message-circle-CSiJj6yo.js → message-circle-cI5_A5mj.js} +1 -1
  287. package/dist/client/assets/{message-markup-DgFSyb3f.js → message-markup-6Tgo4qFJ.js} +1 -1
  288. package/dist/client/assets/{message-square-NmXWtWLR.js → message-square-CJW4WRlo.js} +1 -1
  289. package/dist/client/assets/{mission-control-store-DZ29Mlj1.js → mission-control-store-p_cboAm4.js} +1 -1
  290. package/dist/client/assets/monitor-C7_cHlkC.js +1 -0
  291. package/dist/client/assets/{nav-destinations-CyXnw9kh.js → nav-destinations-CU_euC-Q.js} +1 -1
  292. package/dist/client/assets/{observe-CkfOxYx_.js → observe-CtS0l3zu.js} +1 -1
  293. package/dist/client/assets/{operator-attention-DGR4kOog.js → operator-attention-DBaRg5ep.js} +1 -1
  294. package/dist/client/assets/{page-status-CkS3SZu-.js → page-status-DwFR4wSw.js} +1 -1
  295. package/dist/client/assets/{panel-right-BNTJhy8M.js → panel-right-qP17MwMl.js} +1 -1
  296. package/dist/client/assets/{pause-DWS7YGQ3.js → pause-B_hliKuR.js} +1 -1
  297. package/dist/client/assets/{persistent-state-xsuk6Kc-.js → persistent-state-BUsTTZFE.js} +1 -1
  298. package/dist/client/assets/{pin-DWlD1BOF.js → pin-Oi4qHR6M.js} +1 -1
  299. package/dist/client/assets/{play-D_Pggug4.js → play-CVeRmqLH.js} +1 -1
  300. package/dist/client/assets/{plus-D_wLGJGT.js → plus-D5NLH_fM.js} +1 -1
  301. package/dist/client/assets/profile-BegEUmB7.js +1 -0
  302. package/dist/client/assets/projects-inbox-CKPLZN8s.css +1 -0
  303. package/dist/client/assets/{projects-inbox-DvbqJO3q.js → projects-inbox-CfwxCTdN.js} +1 -1
  304. package/dist/client/assets/provider-DwmCoSlc.js +1 -0
  305. package/dist/client/assets/{proxy-DOG46ja4.js → proxy-DgzP27W8.js} +1 -1
  306. package/dist/client/assets/{radio-C_jtwbFP.js → radio-Cas2qg1D.js} +1 -1
  307. package/dist/client/assets/{refresh-cw-Da9DDLk2.js → refresh-cw-IcD2lPoT.js} +1 -1
  308. package/dist/client/assets/resolve-panes-pfZTezKo.js +1 -0
  309. package/dist/client/assets/resolve-sidebar-context-D5ksvrb_.js +1 -0
  310. package/dist/client/assets/right-BDaCJ0CF.js +1 -0
  311. package/dist/client/assets/right-BP6lXRFS.js +1 -0
  312. package/dist/client/assets/right-Cb1VCrdj.js +1 -0
  313. package/dist/client/assets/right-CeFaxfBo.js +1 -0
  314. package/dist/client/assets/right-Ck2SrYCj.js +1 -0
  315. package/dist/client/assets/right-D-uv5YfF.js +1 -0
  316. package/dist/client/assets/right-DJMSICky.js +1 -0
  317. package/dist/client/assets/right-Dnljs8ah.js +1 -0
  318. package/dist/client/assets/right-SdCSF8PP.js +1 -0
  319. package/dist/client/assets/{right-BLJsc2-p.js → right-cjPTwPXS.js} +1 -1
  320. package/dist/client/assets/{rocket-DyrYDo8V.js → rocket-DAqYvu8I.js} +1 -1
  321. package/dist/client/assets/router-C-MF5-mb.js +1 -0
  322. package/dist/client/assets/{runtime-picker-DdsttHHc.js → runtime-picker-C_AVYF63.js} +1 -1
  323. package/dist/client/assets/{scope-views-B7PZGlhY.js → scope-views-Dl3ml9OZ.js} +1 -1
  324. package/dist/client/assets/{scout-voice-DOQ_B77g.js → scout-voice-CqAyfblr.js} +1 -1
  325. package/dist/client/assets/{scoutbot-markdown-Bz0Vbto2.js → scoutbot-markdown-DwvGQOWo.js} +1 -1
  326. package/dist/client/assets/{scroll-text-DwC8r2g6.js → scroll-text-B0tKI9Sg.js} +1 -1
  327. package/dist/client/assets/{search-C4VlW_0l.js → search-UsM-9-_W.js} +1 -1
  328. package/dist/client/assets/secondaryNavConfig-D15P1Y9k.css +1 -0
  329. package/dist/client/assets/secondaryNavConfig-DzNHk6IH.js +1 -0
  330. package/dist/client/assets/{selection-bridge-B5jqyMR9.js → selection-bridge-OTS2iFkt.js} +1 -1
  331. package/dist/client/assets/{send-horizontal-pOtGI7FM.js → send-horizontal-BlQsRK6C.js} +1 -1
  332. package/dist/client/assets/{send-to-agent-session-BZGq_ycy.js → send-to-agent-session-C1mgqdow.js} +1 -1
  333. package/dist/client/assets/{server-ms1yxUYJ.js → server-DBlPW0Mp.js} +1 -1
  334. package/dist/client/assets/{session-catalog-s-T_w41t.js → session-catalog-CnpZMB7C.js} +1 -1
  335. package/dist/client/assets/{session-table-CDx_16xf.js → session-table-CGkfG5Yd.js} +1 -1
  336. package/dist/client/assets/{sessions-view-DzYGsKWS.js → sessions-view-Bge4XZ4I.js} +1 -1
  337. package/dist/client/assets/{settings-TJIkkZ0P.js → settings-C69Zjrpq.js} +1 -1
  338. package/dist/client/assets/{shared-work-artifacts-4IIQXQfc.js → shared-work-artifacts-DfNl9KTo.js} +1 -1
  339. package/dist/client/assets/{sliders-horizontal-CHf3ntw0.js → sliders-horizontal-6bzeod7c.js} +1 -1
  340. package/dist/client/assets/{sparkles-BbOFw3d0.js → sparkles-Cc5lPZRv.js} +1 -1
  341. package/dist/client/assets/{sse-v5QLsOHV.js → sse-A8AyLH0g.js} +1 -1
  342. package/dist/client/assets/{tail-events-DQ46QBW1.js → tail-events-C4WdhVeK.js} +1 -1
  343. package/dist/client/assets/{terminal-96JWDYDL.js → terminal-DMZjX1es.js} +1 -1
  344. package/dist/client/assets/{terminal-relay-Bfx8pg80.js → terminal-relay-mO89dX-Y.js} +1 -1
  345. package/dist/client/assets/{terminal-sessions-Ch9aYlgi.js → terminal-sessions-3RfJpen8.js} +1 -1
  346. package/dist/client/assets/{terminal-takeover-BlpxpvSp.js → terminal-takeover-CZZsnPzj.js} +1 -1
  347. package/dist/client/assets/use-beside-D3cJpA5p.js +1 -0
  348. package/dist/client/assets/{use-conversation-list-A_YUf8lo.js → use-conversation-list-D5EnpVba.js} +1 -1
  349. package/dist/client/assets/{use-fleet-active-asks-DFs_u-vM.js → use-fleet-active-asks-D_QOmjg5.js} +1 -1
  350. package/dist/client/assets/{use-mesh-node-state-Ck9CYplv.js → use-mesh-node-state-3V3ADQ-G.js} +1 -1
  351. package/dist/client/assets/{use-mesh-ops-items-Be1WmwCg.js → use-mesh-ops-items-DI9GKWlF.js} +1 -1
  352. package/dist/client/assets/{use-reduced-motion-D7n3vK8t.js → use-reduced-motion-CiaZHMnk.js} +1 -1
  353. package/dist/client/assets/use-scout-dev-flags-CkdAHlDR.js +1 -0
  354. package/dist/client/assets/{useAgentHoverCard-Dr-OjNFF.js → useAgentHoverCard-A3QGXqIy.js} +1 -1
  355. package/dist/client/assets/useContentSecondaryNav-DrL_nkCZ.js +1 -0
  356. package/dist/client/assets/{useEmbedHeadline-BL8wQawZ.js → useEmbedHeadline-atkQVfGw.js} +1 -1
  357. package/dist/client/assets/usePersistentState-Y8XwSTg-.js +1 -0
  358. package/dist/client/assets/{usePierreRuntime-DJkRHMoe.js → usePierreRuntime-DTvcwISe.js} +1 -1
  359. package/dist/client/assets/users-RLK3P5U4.js +1 -0
  360. package/dist/client/assets/{wrench-BsMTSeji.js → wrench-B4maQJai.js} +1 -1
  361. package/dist/client/assets/{x-DI1ktCYb.js → x-rlMdRqJF.js} +1 -1
  362. package/dist/client/assets/{xterm-B1YBE4Gq.js → xterm-B1zHHOLQ.js} +1 -1
  363. package/dist/client/assets/{zap-sKPkh4sQ.js → zap-B4X0OrEw.js} +1 -1
  364. package/dist/client/index.html +15 -3
  365. package/dist/drizzle/0019_session_actor_targets.sql +227 -0
  366. package/dist/drizzle/README.md +19 -0
  367. package/dist/drizzle/meta/0019_snapshot.json +6804 -0
  368. package/dist/drizzle/meta/_journal.json +7 -0
  369. package/dist/highlights-eq9cgrbb.scm +604 -0
  370. package/dist/highlights-ghv9g403.scm +205 -0
  371. package/dist/highlights-hk7bwhj4.scm +284 -0
  372. package/dist/highlights-r812a2qc.scm +150 -0
  373. package/dist/highlights-x6tmsnaa.scm +115 -0
  374. package/dist/injections-73j83es3.scm +27 -0
  375. package/dist/main.mjs +1214 -722
  376. package/dist/node/main.mjs +133 -22
  377. package/dist/pairing-runtime-controller.mjs +715 -492
  378. package/dist/runtime/base-daemon.mjs +14176 -58
  379. package/dist/runtime/broker-daemon.mjs +15520 -445
  380. package/dist/runtime/broker-process-manager.mjs +5 -3
  381. package/dist/runtime/mesh-discover.mjs +5 -3
  382. package/dist/scout-control-plane-web.mjs +21065 -3387
  383. package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  384. package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
  385. package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  386. package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  387. package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
  388. package/dist/update-helper.mjs +83 -17
  389. package/package.json +2 -2
  390. package/dist/client/assets/ActivityScreen-DCALiEXY.js +0 -1
  391. package/dist/client/assets/AgentAdventures-NwTKeF0F.js +0 -1
  392. package/dist/client/assets/AgentConfigurationScreen-B2Hw0ce1.js +0 -1
  393. package/dist/client/assets/AgentDefinitionsWorkspace-CwZJ833X.js +0 -1
  394. package/dist/client/assets/AgentFloorView-l2wNKFob.js +0 -1
  395. package/dist/client/assets/AgentInfoScreen-ClZM1wQb.js +0 -1
  396. package/dist/client/assets/AgentLanesEmbedScreen-DqHwqY0X.js +0 -1
  397. package/dist/client/assets/AgentMasterScreen-By6DN0jF.js +0 -1
  398. package/dist/client/assets/AgentsConsole-Dq0S_hRA.js +0 -1
  399. package/dist/client/assets/AgentsScreen-Bi9Lx47B.js +0 -1
  400. package/dist/client/assets/AgentsSubnav-BOobgtGE.js +0 -1
  401. package/dist/client/assets/BriefingDetailScreen-sprFl4Nk.js +0 -1
  402. package/dist/client/assets/BrokerScreen-CejzhRsB.js +0 -8
  403. package/dist/client/assets/ConversationFeedRows-DVqnZQH0.js +0 -1
  404. package/dist/client/assets/ConversationHeader-CCSU8uo_.js +0 -1
  405. package/dist/client/assets/ConversationScreen-tTP6B_F-.js +0 -2
  406. package/dist/client/assets/CrewWorkspaces-4O8dgRUD.js +0 -1
  407. package/dist/client/assets/CrewWorkspaces-Diq11KDq.css +0 -1
  408. package/dist/client/assets/FlightObserveScreen-DDXfNbsw.js +0 -1
  409. package/dist/client/assets/FloorResourcesSheet-Djrgd_ZU.js +0 -1
  410. package/dist/client/assets/HarnessMark-Bt47OeHy.js +0 -1
  411. package/dist/client/assets/HarnessesScreen-M84sFjWY.js +0 -1
  412. package/dist/client/assets/KnowledgeSearchScreen-WC0WhFio.js +0 -1
  413. package/dist/client/assets/LaneTraceDetailSheet-mAhj7MJi.js +0 -1
  414. package/dist/client/assets/MeshScreen-DlfiMlaR.js +0 -1
  415. package/dist/client/assets/MessagesScreen-BZ7yaGJx.js +0 -1
  416. package/dist/client/assets/MissionControlView-DpGhxG4a.js +0 -1
  417. package/dist/client/assets/MissionLeftAgentRow-DhhRRim0.js +0 -1
  418. package/dist/client/assets/NativeAreaScreen-BQyHHRAM.js +0 -1
  419. package/dist/client/assets/NativeAreaScreen-Ditv-TYW.js +0 -1
  420. package/dist/client/assets/NativeAreaScreen-Dq3uPSEI.js +0 -1
  421. package/dist/client/assets/NewChatComposer-JjLbm3W2.js +0 -19
  422. package/dist/client/assets/OpenScoutAppShell-CzKbjwCA.js +0 -22
  423. package/dist/client/assets/OpsAgentsView-CZbtkcQH.js +0 -1
  424. package/dist/client/assets/OpsScreen-DJq-aBmX.js +0 -1
  425. package/dist/client/assets/OpsSubnav-9sURjajO.js +0 -1
  426. package/dist/client/assets/ProjectAgentProfile-q_1tMJIL.js +0 -1
  427. package/dist/client/assets/ProjectAgentProfileHero-DyEFyTFs.js +0 -1
  428. package/dist/client/assets/ProjectsInbox-Bs8I__my.js +0 -2
  429. package/dist/client/assets/ProjectsRail-Deb38OJ1.js +0 -1
  430. package/dist/client/assets/ProjectsScreen-CgLiYiss.js +0 -1
  431. package/dist/client/assets/ProjectsThreadAside-C0Yw3yIL.js +0 -1
  432. package/dist/client/assets/RawSessionsTable-DIhmlvk-.js +0 -1
  433. package/dist/client/assets/RealtimeVoiceScreen-3oU7b7V5.js +0 -1
  434. package/dist/client/assets/RepoDiffViewerLazy-BQ6ZCrsq.js +0 -2
  435. package/dist/client/assets/SessionRefScreen-BOQ1_ydg.js +0 -1
  436. package/dist/client/assets/SessionsScreen-R8QKvoey.js +0 -1
  437. package/dist/client/assets/SettingsScreen-DirtO7Z0.js +0 -1
  438. package/dist/client/assets/SharedWorkFloor-yPWFLZwX.js +0 -2
  439. package/dist/client/assets/Terminal-D-DsQlmV.js +0 -4
  440. package/dist/client/assets/TerminalEmbedScreen-9Gmln759.js +0 -1
  441. package/dist/client/assets/WorldActorTalk-uIH2jGqA.js +0 -1
  442. package/dist/client/assets/agent-autocomplete-CeHQpuG9.js +0 -10
  443. package/dist/client/assets/arrow-down-WoVlkUmg.js +0 -1
  444. package/dist/client/assets/chunk-JTPDIGGW-ZC-98AHT.js +0 -46
  445. package/dist/client/assets/chunk-T65CQEWV-CSVUz2rY.js +0 -1
  446. package/dist/client/assets/chunk-YOZR3KYS-B59jqwO0.js +0 -2
  447. package/dist/client/assets/content-B5Q4pb9R.js +0 -1
  448. package/dist/client/assets/content-BK1IfOZs.js +0 -1
  449. package/dist/client/assets/content-BeEsWLEm.js +0 -1
  450. package/dist/client/assets/content-BkOwEknW.js +0 -1
  451. package/dist/client/assets/content-C32W5kAG.js +0 -1
  452. package/dist/client/assets/content-CoqyLs9v.js +0 -1
  453. package/dist/client/assets/content-CwpdIS5b.js +0 -1
  454. package/dist/client/assets/content-DS2OkJ3Q.js +0 -1
  455. package/dist/client/assets/content-DXKaPDfn.js +0 -1
  456. package/dist/client/assets/content-DZt5-dkI.js +0 -1
  457. package/dist/client/assets/content-DbQJH8L1.js +0 -1
  458. package/dist/client/assets/content-DetoiaHq.js +0 -1
  459. package/dist/client/assets/content-Dhu3wL7J.js +0 -1
  460. package/dist/client/assets/content-Dpv34iZu.js +0 -1
  461. package/dist/client/assets/content-TtQJb61D.js +0 -1
  462. package/dist/client/assets/content-ymNb2R7g.js +0 -1
  463. package/dist/client/assets/conversation-motion-features-9x8uZpwh.js +0 -1
  464. package/dist/client/assets/discover-C8IOY7_K.js +0 -2
  465. package/dist/client/assets/embed-entry-CG3CfCbm.js +0 -2
  466. package/dist/client/assets/home-now-card-DduXkHRR.js +0 -1
  467. package/dist/client/assets/hooks-C6VyQTQe.js +0 -2
  468. package/dist/client/assets/index-C5cX8dkl.js +0 -1
  469. package/dist/client/assets/index-C8uS5szO.js +0 -10
  470. package/dist/client/assets/index-Ck1__1yL.css +0 -1
  471. package/dist/client/assets/index-ClOOrVG1.js +0 -1
  472. package/dist/client/assets/index-Crtgfc9I.js +0 -1
  473. package/dist/client/assets/lane-ask-display-B6iCAVcd.js +0 -18
  474. package/dist/client/assets/left-B-_z_nqj.js +0 -2
  475. package/dist/client/assets/left-B1LY7rJc.js +0 -1
  476. package/dist/client/assets/left-C6bdjWcG.js +0 -2
  477. package/dist/client/assets/left-CF4iuqlz.js +0 -1
  478. package/dist/client/assets/left-DLtNyZl1.js +0 -1
  479. package/dist/client/assets/left-Fpxoq-VY.js +0 -1
  480. package/dist/client/assets/left-N2wXfTlp.js +0 -1
  481. package/dist/client/assets/left-advisor-CeIjCKbd.js +0 -1
  482. package/dist/client/assets/left-agents-upjHVlOj.js +0 -1
  483. package/dist/client/assets/left-default-08gmdCtb.js +0 -1
  484. package/dist/client/assets/left-lanes-Cvsp73Hw.js +0 -1
  485. package/dist/client/assets/left-mission-W1LLaz74.js +0 -1
  486. package/dist/client/assets/library-DLKBVUJ6.js +0 -1
  487. package/dist/client/assets/profile-C3KgiZvc.js +0 -1
  488. package/dist/client/assets/projects-inbox-BIW7nv-H.css +0 -1
  489. package/dist/client/assets/resolve-panes-DuowGRTk.js +0 -1
  490. package/dist/client/assets/resolve-sidebar-context-BkTbqteq.js +0 -1
  491. package/dist/client/assets/right-B9OUA6Ho.js +0 -1
  492. package/dist/client/assets/right-BDQnjetX.js +0 -1
  493. package/dist/client/assets/right-BUbKHmRH.js +0 -1
  494. package/dist/client/assets/right-Ci2IcD4s.js +0 -1
  495. package/dist/client/assets/right-CmCce3e5.js +0 -1
  496. package/dist/client/assets/right-D7w0zM5a.js +0 -1
  497. package/dist/client/assets/right-DIoON_bv.js +0 -1
  498. package/dist/client/assets/right-E0Jr3VN5.js +0 -1
  499. package/dist/client/assets/right-lCdAk9dW.js +0 -1
  500. package/dist/client/assets/router-BKiMcYa7.js +0 -1
  501. package/dist/client/assets/secondaryNavConfig-DAXIFtVd.js +0 -1
  502. package/dist/client/assets/secondaryNavConfig-xssF_ubT.css +0 -1
  503. package/dist/client/assets/use-beside-Df-F2Uvg.js +0 -1
  504. package/dist/client/assets/use-scout-dev-flags-0TXfQcG0.js +0 -1
  505. package/dist/client/assets/useContentSecondaryNav-CGvMOVGY.js +0 -1
@@ -1 +0,0 @@
1
- import{r as p,j as r}from"./index-C8uS5szO.js";/* empty css */import{i as J,n as Z}from"./agent-state-DDhnFEEP.js";import{s as ee}from"./colors-CFlbwC25.js";import{a as A}from"./api-CaROe5_H.js";import{u as te}from"./sse-v5QLsOHV.js";import{t as re}from"./time-Dhsh_2EG.js";import{D as ne}from"./DataTable-BMOZ1-z8.js";import{u as ae}from"./useAgentHoverCard-Dr-OjNFF.js";import{S as se}from"./search-C4VlW_0l.js";import{S as oe}from"./sliders-horizontal-CHf3ntw0.js";import"./index-BWHgHrtv.js";/* empty css */import"./index-C5cX8dkl.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./Provider-5Hotn7NQ.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./machine-scope-DJt9RZ2w.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversation-model-BGFHoxQ0.js";import"./conversations-Cbg9h_Af.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./openContent-C6XO6kr5.js";import"./eye-CtqSV8BS.js";import"./terminal-96JWDYDL.js";function ie(e,t){return{model:t?.data.metadata?.session?.model??e.model??null,provider:t?.data.metadata?.session?.modelProvider??e.providerName??null}}const ce=["openai","codex","codex_app_server"],ue=["anthropic","claude","claude-code","claude_stream_json"],W={"openai:gpt-5.5":{provider:"openai",model:"gpt-5.5",inputPerM:5,cachedInputPerM:.5,cacheWritePerM:null,outputPerM:30,webSearchPer1K:10},"openai:gpt-5.5-pro":{provider:"openai",model:"gpt-5.5-pro",inputPerM:30,cachedInputPerM:null,cacheWritePerM:null,outputPerM:180,webSearchPer1K:10},"openai:gpt-5.4":{provider:"openai",model:"gpt-5.4",inputPerM:2.5,cachedInputPerM:.25,cacheWritePerM:null,outputPerM:15,webSearchPer1K:10},"openai:gpt-5.4-mini":{provider:"openai",model:"gpt-5.4-mini",inputPerM:.75,cachedInputPerM:.075,cacheWritePerM:null,outputPerM:4.5,webSearchPer1K:10},"openai:gpt-5.4-nano":{provider:"openai",model:"gpt-5.4-nano",inputPerM:.2,cachedInputPerM:.02,cacheWritePerM:null,outputPerM:1.25,webSearchPer1K:10},"openai:gpt-5.4-pro":{provider:"openai",model:"gpt-5.4-pro",inputPerM:30,cachedInputPerM:null,cacheWritePerM:null,outputPerM:180,webSearchPer1K:10},"openai:gpt-5.3-codex":{provider:"openai",model:"gpt-5.3-codex",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.3-chat-latest":{provider:"openai",model:"gpt-5.3-chat-latest",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.2":{provider:"openai",model:"gpt-5.2",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.2-codex":{provider:"openai",model:"gpt-5.2-codex",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.2-chat-latest":{provider:"openai",model:"gpt-5.2-chat-latest",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.2-pro":{provider:"openai",model:"gpt-5.2-pro",inputPerM:21,cachedInputPerM:null,cacheWritePerM:null,outputPerM:168,webSearchPer1K:10},"openai:gpt-5.1":{provider:"openai",model:"gpt-5.1",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5.1-codex":{provider:"openai",model:"gpt-5.1-codex",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5.1-codex-max":{provider:"openai",model:"gpt-5.1-codex-max",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5.1-chat-latest":{provider:"openai",model:"gpt-5.1-chat-latest",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5":{provider:"openai",model:"gpt-5",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5-codex":{provider:"openai",model:"gpt-5-codex",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5-chat-latest":{provider:"openai",model:"gpt-5-chat-latest",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5-mini":{provider:"openai",model:"gpt-5-mini",inputPerM:.25,cachedInputPerM:.025,cacheWritePerM:null,outputPerM:2,webSearchPer1K:10},"openai:gpt-5-nano":{provider:"openai",model:"gpt-5-nano",inputPerM:.05,cachedInputPerM:.005,cacheWritePerM:null,outputPerM:.4,webSearchPer1K:10},"openai:gpt-5-pro":{provider:"openai",model:"gpt-5-pro",inputPerM:15,cachedInputPerM:null,cacheWritePerM:null,outputPerM:120,webSearchPer1K:10},"openai:gpt-4.1":{provider:"openai",model:"gpt-4.1",inputPerM:2,cachedInputPerM:.5,cacheWritePerM:null,outputPerM:8,webSearchPer1K:10},"openai:gpt-4.1-mini":{provider:"openai",model:"gpt-4.1-mini",inputPerM:.4,cachedInputPerM:.1,cacheWritePerM:null,outputPerM:1.6,webSearchPer1K:10},"openai:gpt-4.1-nano":{provider:"openai",model:"gpt-4.1-nano",inputPerM:.1,cachedInputPerM:.025,cacheWritePerM:null,outputPerM:.4,webSearchPer1K:10},"openai:gpt-4o":{provider:"openai",model:"gpt-4o",inputPerM:2.5,cachedInputPerM:1.25,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-4o-mini":{provider:"openai",model:"gpt-4o-mini",inputPerM:.15,cachedInputPerM:.075,cacheWritePerM:null,outputPerM:.6,webSearchPer1K:10},"anthropic:claude-opus-4.6":{provider:"anthropic",model:"claude-opus-4.6",inputPerM:5,cachedInputPerM:.5,cacheWritePerM:6.25,outputPerM:25,webSearchPer1K:10},"anthropic:claude-opus-4.5":{provider:"anthropic",model:"claude-opus-4.5",inputPerM:5,cachedInputPerM:.5,cacheWritePerM:6.25,outputPerM:25,webSearchPer1K:10},"anthropic:claude-opus-4.1":{provider:"anthropic",model:"claude-opus-4.1",inputPerM:15,cachedInputPerM:1.5,cacheWritePerM:18.75,outputPerM:75,webSearchPer1K:10},"anthropic:claude-opus-4":{provider:"anthropic",model:"claude-opus-4",inputPerM:15,cachedInputPerM:1.5,cacheWritePerM:18.75,outputPerM:75,webSearchPer1K:10},"anthropic:claude-sonnet-4.6":{provider:"anthropic",model:"claude-sonnet-4.6",inputPerM:3,cachedInputPerM:.3,cacheWritePerM:3.75,outputPerM:15,webSearchPer1K:10},"anthropic:claude-sonnet-4.5":{provider:"anthropic",model:"claude-sonnet-4.5",inputPerM:3,cachedInputPerM:.3,cacheWritePerM:3.75,outputPerM:15,webSearchPer1K:10},"anthropic:claude-sonnet-4":{provider:"anthropic",model:"claude-sonnet-4",inputPerM:3,cachedInputPerM:.3,cacheWritePerM:3.75,outputPerM:15,webSearchPer1K:10},"anthropic:claude-3-7-sonnet":{provider:"anthropic",model:"claude-3-7-sonnet",inputPerM:3,cachedInputPerM:.3,cacheWritePerM:3.75,outputPerM:15,webSearchPer1K:10},"anthropic:claude-haiku-4.5":{provider:"anthropic",model:"claude-haiku-4.5",inputPerM:1,cachedInputPerM:.1,cacheWritePerM:1.25,outputPerM:5,webSearchPer1K:10}},le={"claude-sonnet-4-5":"anthropic:claude-sonnet-4.5","claude-sonnet-4-6":"anthropic:claude-sonnet-4.6","claude-opus-4-5":"anthropic:claude-opus-4.5","claude-opus-4-6":"anthropic:claude-opus-4.6","claude-haiku-4-5":"anthropic:claude-haiku-4.5"};function pe(e){const t=e.provider?.trim().toLowerCase()??"",s=e.adapterType?.trim().toLowerCase()??"",a=V(e.model)??"",i=[t,s].filter(Boolean);return i.some(o=>ce.some(c=>o.includes(c)))?"openai":i.some(o=>ue.some(c=>o.includes(c)))?"anthropic":a.startsWith("gpt-")||a.startsWith("o")||a.includes("codex")?"openai":a.startsWith("claude-")?"anthropic":"unknown"}function V(e){return e?e.trim().toLowerCase().replace(/^(openai|anthropic)\//,"").replace(/_/g,"-").replace(/-\d{8}$/,""):null}function de(e){const t=x(e?.inputTokens),s=x(e?.cacheReadInputTokens),a=x(e?.cacheCreationInputTokens),i=x(e?.outputTokens),o=x(e?.reasoningOutputTokens),c=[t,i].reduce((m,b)=>m+(b??0),0),h=x(e?.totalTokens)??(c||null);return{input:t,uncachedInput:t==null?null:Math.max(0,t-(s??0)-(a??0)),cachedInput:s,cacheWrite:a,output:i,reasoningOutput:o,total:h,webSearchRequests:x(e?.webSearchRequests),webFetchRequests:x(e?.webFetchRequests)}}function he(e){const t=pe(e),s=V(e.model),a=de(e.usage),i=me(t,s),o=ge(e);if(!i.rateCard)return{provider:t,model:s,rateCard:null,rateCardSource:"unknown",capturedAt:e.capturedAt??Date.now(),usage:a,lineItems:[],totalUsd:null,billedTotalUsd:null,billingMode:o,subscriptionWindows:e.subscriptionWindows??[]};const c=i.rateCard,h=a.uncachedInput??a.input??0,m=a.cachedInput??0,b=a.cacheWrite??0,g=a.output??0,v=a.webSearchRequests??0,f=[j("input","Input",h,c.inputPerM,o),j("cached_input","Cached input",m,c.cachedInputPerM??c.inputPerM,o),j("cache_write","Cache write",b,c.cacheWritePerM??c.inputPerM,o),j("output","Output",g,c.outputPerM,o),{key:"web_search",label:"Web search",quantity:v,unit:"requests",rate:c.webSearchPer1K??0,billedRate:o==="subscription"?0:c.webSearchPer1K??0,costUsd:v/1e3*(c.webSearchPer1K??0),billedCostUsd:o==="subscription"?0:v/1e3*(c.webSearchPer1K??0)}].filter(P=>P.quantity>0);return{provider:t,model:s,rateCard:c,rateCardSource:i.source,capturedAt:e.capturedAt??Date.now(),usage:a,lineItems:f,totalUsd:f.reduce((P,d)=>P+d.costUsd,0),billedTotalUsd:f.reduce((P,d)=>P+d.billedCostUsd,0),billingMode:o,subscriptionWindows:e.subscriptionWindows??[]}}function me(e,t){if(e==="unknown")return{rateCard:null,source:"unknown"};const s=t?`${e}:${t}`:null;if(s&&W[s])return{rateCard:W[s],source:"exact"};const a=t?le[t]:null;if(a&&W[a])return{rateCard:W[a],source:"alias"};if(e==="anthropic"){if(t?.includes("opus"))return{rateCard:W["anthropic:claude-opus-4.5"],source:"provider-default"};if(t?.includes("haiku"))return{rateCard:W["anthropic:claude-haiku-4.5"],source:"provider-default"};if(t?.includes("sonnet")||!t)return{rateCard:W["anthropic:claude-sonnet-4.5"],source:"provider-default"}}return{rateCard:null,source:"unknown"}}function j(e,t,s,a,i){const o=i==="subscription"?0:a;return{key:e,label:t,quantity:s,unit:"tokens",rate:a,billedRate:o,costUsd:s/1e6*a,billedCostUsd:s/1e6*o}}function x(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function ge(e){if(e.billingMode)return e.billingMode;const t=e.adapterType?.trim().toLowerCase();if(t==="claude-code"||t==="claude_stream_json")return"subscription";const s=e.usage?.planType?.trim().toLowerCase();return!s||s==="api"||s.includes("api")?"api":"subscription"}const Pe=1500,T=1440*6e4,Me=90*6e4,E={needs_attention:0,in_turn:1,in_flight:2,callable:3,blocked:4},be=[{key:"agent",label:"Agent",kind:"custom",sortable:!0,sortValue:e=>e.agent.name.toLowerCase(),defaultWidth:220,minWidth:160,render:e=>r.jsxs("div",{className:"s-ops-agents-agent-cell",children:[r.jsx("span",{className:"s-ops-agents-dot",style:{background:ee(e.state)},"aria-hidden":!0}),r.jsx("span",{className:"s-ops-agents-agent-name",title:e.agent.name,children:e.agent.handle??e.agent.name})]})},{key:"task",label:"Active task",kind:"custom",sortable:!0,sortValue:e=>(e.activeTask??"").toLowerCase()||null,defaultWidth:240,minWidth:140,render:e=>e.activeTask?r.jsx("span",{className:"s-ops-agents-task",title:e.activeTask,children:e.activeTask}):r.jsx("span",{className:"s-ops-agents-task s-ops-agents-task--idle",children:"—"})},{key:"team",label:"Project",kind:"text",defaultWidth:140,minWidth:90,cls:"s-ops-agents-meta",render:e=>r.jsx("span",{className:"s-ops-agents-meta-cell",children:e.team}),sortValue:e=>e.team.toLowerCase()},{key:"machine",label:"Machine",kind:"text",defaultWidth:120,minWidth:88,cls:"s-ops-agents-meta",render:e=>r.jsx("span",{className:"s-ops-agents-meta-cell",children:e.machine}),sortValue:e=>e.machine.toLowerCase()},{key:"active",label:"Active",kind:"number",defaultWidth:90,minWidth:64,cls:"s-ops-agents-num",render:e=>e.activeFlights,sortValue:e=>e.activeFlights},{key:"sessions24h",label:"24h sessions",kind:"number",defaultWidth:108,minWidth:78,cls:"s-ops-agents-num",render:e=>e.sessions24h,sortValue:e=>e.sessions24h},{key:"throughput",label:"Throughput",kind:"custom",sortable:!1,defaultWidth:110,minWidth:90,render:e=>r.jsx(ke,{values:e.throughput,warn:e.errors>0})},{key:"avgLatency",label:"Avg latency",kind:"number",defaultWidth:108,minWidth:80,cls:"s-ops-agents-num",render:e=>D(e.avgLatencyMs),sortValue:e=>e.avgLatencyMs},{key:"input",label:"Input",kind:"number",defaultWidth:88,minWidth:64,cls:"s-ops-agents-num",render:e=>w(e.usage.uncachedInput??e.usage.input),sortValue:e=>e.usage.uncachedInput??e.usage.input??null},{key:"cacheRead",label:"Cache read",kind:"number",defaultWidth:98,minWidth:72,cls:"s-ops-agents-num",render:e=>w(e.usage.cachedInput),sortValue:e=>e.usage.cachedInput??null},{key:"cacheWrite",label:"Cache write",kind:"number",defaultWidth:98,minWidth:72,cls:"s-ops-agents-num",render:e=>w(e.usage.cacheWrite),sortValue:e=>e.usage.cacheWrite??null},{key:"output",label:"Output",kind:"number",defaultWidth:88,minWidth:64,cls:"s-ops-agents-num",render:e=>w(e.usage.output),sortValue:e=>e.usage.output??null},{key:"apiEquiv",label:"API equiv",kind:"number",defaultWidth:92,minWidth:72,cls:"s-ops-agents-num",render:e=>r.jsx("span",{className:e.cost.rateCardSource==="unknown"?"s-ops-agents-num--dim":void 0,children:N(e.cost.totalUsd)}),sortValue:e=>e.cost.totalUsd??null},{key:"billed",label:"Billed",kind:"number",defaultWidth:92,minWidth:72,cls:"s-ops-agents-num",render:e=>r.jsx("span",{className:e.cost.billingMode==="subscription"?"s-ops-agents-num--covered":void 0,children:N(e.cost.billedTotalUsd)}),sortValue:e=>e.cost.billedTotalUsd??null},{key:"errors",label:"Errors",kind:"number",defaultWidth:72,minWidth:58,cls:"s-ops-agents-num",render:e=>r.jsx("span",{className:e.errors>0?"s-ops-agents-num--warn":void 0,children:e.errors}),sortValue:e=>e.errors},{key:"lastActive",label:"Last active",kind:"time",defaultWidth:104,minWidth:78,cls:"s-ops-agents-last",render:e=>e.lastActiveAt?re(e.lastActiveAt):"—",sortValue:e=>e.lastActiveAt}];function U(e){if(!e)return null;const t=e.replace(/\/+$/,""),s=t.lastIndexOf("/");return s>=0?t.slice(s+1):t}function w(e){return e==null?"—":e>=1e6?`${(e/1e6).toFixed(e>=1e7?0:1)}M`:e>=1e3?`${(e/1e3).toFixed(e>=1e4?0:1)}K`:String(e)}function D(e){return e==null?"—":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`}function N(e){return e==null?"$—":e<1?`$${e.toFixed(3)}`:`$${e.toFixed(2)}`}function fe(e,t){if(!e)return null;const s=e.data.events.filter(i=>i.kind==="message"||i.kind==="tool").filter(i=>t-i.t<=Me).sort((i,o)=>i.t-o.t);if(s.length<2)return null;const a=[];for(let i=1;i<s.length;i+=1){const o=s[i].t-s[i-1].t;o>0&&o<12e4&&a.push(o)}return a.length===0?null:Math.round(a.reduce((i,o)=>i+o,0)/a.length)}function ve(e,t){const s=new Array(24).fill(0),a=t-T;for(const i of e){if(i.ts<a||i.ts>t)continue;const o=Math.min(23,Math.max(0,Math.floor((i.ts-a)/T*s.length)));s[o]+=1}return s}function ke({values:e,warn:t=!1}){const i=Math.max(1,...e),o=e.map((c,h)=>{const m=h/Math.max(1,e.length-1)*92,b=22-c/i*19-1.5;return`${m.toFixed(1)},${b.toFixed(1)}`}).join(" ");return r.jsx("svg",{className:`s-ops-agents-spark${t?" s-ops-agents-spark--warn":""}`,viewBox:"0 0 92 22","aria-hidden":"true",children:r.jsx("polyline",{points:o,fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})})}function xe(e){return e.authorityNodeName??e.homeNodeName??e.authorityNodeId??e.homeNodeId??e.transport??U(e.cwd)??U(e.projectRoot)??"local"}function We(e){return e.project??e.role??e.agentClass??"Unassigned"}function Se(e){if(e.length===0)return null;const t={working:0,needs_attention:1,queued:2,failed:3,completed:4},a=[...e].sort((o,c)=>{const h=t[o.status]-t[c.status];return h!==0?h:(c.updatedAt??0)-(o.updatedAt??0)})[0];return(a.task??a.summary??"").trim()||null}function we(e,t,s,a,i,o){const c=t.filter(l=>l.agentId===e.id),h=c.filter(l=>{const I=l.lastMessageAt??0;return I>0&&o-I<=T}),m=e.conversationId,b=s.filter(l=>l.actorName===e.name||!!(m&&l.conversationId===m)),g=i.get(e.id),{model:v,provider:f}=ie(e,g),P=he({adapterType:g?.data.metadata?.session?.adapterType,capturedAt:g?.updatedAt??o,model:v,provider:f,usage:g?.data.metadata?.usage}),d=a.filter(l=>l.agentId===e.id);return{agent:e,team:We(e),machine:xe(e),model:v,provider:f,state:Z(e.state),activeFlights:d.length,activeTask:Se(d),sessions24h:h.length,throughput:ve(b,o),avgLatencyMs:fe(g,o),usage:P.usage,cost:P,errors:d.filter(l=>l.status==="failed"||l.status==="needs_attention").length,lastActiveAt:Math.max(0,...c.map(l=>l.lastMessageAt??0),...b.map(l=>l.ts),e.updatedAt??0)||null}}function wt({navigate:e,agents:t}){const[s,a]=p.useState(null),[i,o]=p.useState([]),[c,h]=p.useState([]),[m,b]=p.useState([]),[g,v]=p.useState(""),[f,P]=p.useState(()=>Date.now()),d=p.useRef(null),l=p.useCallback(async()=>{const n=t.map(X=>X.id).join(","),[u,k,L,$]=await Promise.allSettled([A("/api/fleet"),A("/api/conversations"),A("/api/activity"),n?A(`/api/observe/agents?ids=${encodeURIComponent(n)}`):Promise.resolve([])]);u.status==="fulfilled"&&a(u.value),k.status==="fulfilled"&&o(k.value),L.status==="fulfilled"&&h(L.value),$.status==="fulfilled"&&b($.value),P(Date.now())},[t]);p.useEffect(()=>{l()},[l]);const I=p.useCallback(()=>{d.current||(d.current=setTimeout(()=>{d.current=null,l()},Pe))},[l]);te(I),p.useEffect(()=>()=>{d.current&&(clearTimeout(d.current),d.current=null)},[]),p.useEffect(()=>{const n=setInterval(()=>P(Date.now()),1e3);return()=>clearInterval(n)},[]);const R=p.useMemo(()=>new Map(m.map(n=>[n.agentId,n])),[m]),M=p.useMemo(()=>{const n=s?.activeAsks??[];return t.map(u=>we(u,i,c,n,R,f))},[c,t,s?.activeAsks,f,R,i]),S=p.useMemo(()=>{const n=g.trim().toLowerCase();return n?M.filter(u=>`${u.agent.name} ${u.team} ${u.machine} ${u.agent.handle??""} ${u.agent.harness??""} ${u.activeTask??""}`.toLowerCase().includes(n)):M},[g,M]),[K,F]=p.useState({key:"lastActive",dir:-1}),O=p.useMemo(()=>K?.key==="agent"?void 0:(n,u)=>E[n.state]-E[u.state],[K?.key]),q=p.useMemo(()=>S.map(n=>n.agent),[S]),B=p.useMemo(()=>S.map(n=>n.agent.id),[S]),y=ae({agents:q,orderedIds:B,navigate:e,selectMode:"preview"}),z=M.filter(n=>n.state==="in_turn"||n.state==="in_flight").length,H=M.filter(n=>J(n.agent.state,n.agent)).length,Y=M.reduce((n,u)=>n+(u.usage.total??0),0),_=M.some(n=>n.cost.totalUsd!=null)?M.reduce((n,u)=>n+(u.cost.totalUsd??0),0):null,G=M.some(n=>n.cost.billedTotalUsd!=null)?M.reduce((n,u)=>n+(u.cost.billedTotalUsd??0),0):null,Q=(()=>{const n=M.map(u=>u.avgLatencyMs).filter(u=>u!=null);return n.length===0?null:Math.round(n.reduce((u,k)=>u+k,0)/n.length)})();return r.jsxs("div",{className:"s-ops-agents",children:[r.jsxs("main",{className:"s-ops-agents-main",children:[r.jsxs("div",{className:"s-ops-agents-toolbar",children:[r.jsxs("div",{className:"s-ops-agents-breadcrumb",children:["Agents ",r.jsx("span",{children:"/"})," Directory"]}),r.jsxs("div",{className:"s-ops-agents-live",children:[r.jsx("span",{className:"s-ops-agents-live-dot"}),H," active"]}),r.jsxs("div",{className:"s-ops-agents-search",children:[r.jsx(se,{size:13}),r.jsx("input",{value:g,onChange:n=>v(n.target.value),placeholder:"Search agents, tasks, projects, machines…"})]}),r.jsx("button",{className:"s-ops-agents-icon-btn",type:"button",title:"Filters",children:r.jsx(oe,{size:14})})]}),r.jsx("section",{className:"s-ops-agents-hero",children:r.jsxs("div",{children:[r.jsx("div",{className:"s-ops-agents-kicker",children:"Agents"}),r.jsx("h1",{children:"All agents"}),r.jsx("p",{children:"Every registered agent across the local fleet, sorted by live status."})]})}),r.jsxs("section",{className:"s-ops-agents-stats",children:[r.jsx(C,{label:"Running",value:String(z),sub:`of ${t.length} total`}),r.jsx(C,{label:"Tokens",value:w(Y||null),sub:_==null?"usage metadata pending":`${N(_)} API equiv`}),r.jsx(C,{label:"Avg latency",value:D(Q),sub:"recent observe events"}),r.jsx(C,{label:"Billed",value:N(G),sub:"subscription usage can mark this down"})]}),r.jsxs("section",{className:"s-ops-agents-table-panel",children:[r.jsxs("div",{className:"s-ops-agents-table-title",children:["Agents ",r.jsx("span",{children:S.length}),r.jsxs("span",{className:"s-ops-agents-hint","aria-hidden":!0,children:[r.jsx("kbd",{children:"↑"}),r.jsx("kbd",{children:"↓"})," navigate · ",r.jsx("kbd",{children:"enter"})," pin · ",r.jsx("kbd",{children:"o"})," open · ",r.jsx("kbd",{children:"esc"})," clear"]})]}),r.jsx("div",{className:"s-ops-agents-table-wrap",ref:y.containerRef,children:r.jsx(ne,{rows:S,columns:be,rowId:n=>n.agent.id,storageKey:"openscout.opsAgents.cols",sort:K,onSortChange:F,secondarySort:O,density:"compact",rowBindings:n=>{const u=y.bind(n);return{...u,onKeyDown:k=>{k.key!=="Enter"&&k.key!==" "||(k.preventDefault(),u.onClick())}}},rowState:n=>y.getState(n),empty:{title:"No agents match",body:"Adjust the search to find a different slice of the fleet."},className:"s-ops-agents-data-table",ariaLabel:"Agents directory"})})]})]}),y.card]})}function C({label:e,value:t,sub:s,tone:a="default"}){return r.jsxs("div",{className:`s-ops-agents-metric s-ops-agents-metric--${a}`,children:[r.jsx("div",{className:"s-ops-agents-metric-label",children:e}),r.jsx("div",{className:"s-ops-agents-metric-value",children:t}),r.jsx("div",{className:"s-ops-agents-metric-sub",children:s})]})}export{wt as OpsAgentsView};
@@ -1 +0,0 @@
1
- import{r as n,j as t}from"./index-C8uS5szO.js";/* empty css */import{u as d}from"./Provider-5Hotn7NQ.js";/* empty css */import{u as v}from"./page-status-CkS3SZu-.js";import{A as x}from"./AgentLanesView-aAyC7lHf.js";import{MissionControlView as j}from"./MissionControlView-DpGhxG4a.js";import{OpsAgentsView as f}from"./OpsAgentsView-CZbtkcQH.js";import{HostAdvisorView as w}from"./HostAdvisorView-CTJXIc1Q.js";import{AtopView as N}from"./AtopView-DKm-ERYC.js";import{TailView as c}from"./TailView-Dn7uWmPz.js";import{u as g}from"./useContentSecondaryNav-CGvMOVGY.js";import{OpsSubnav as S}from"./OpsSubnav-9sURjajO.js";import"./router-BKiMcYa7.js";import"./api-CaROe5_H.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversation-model-BGFHoxQ0.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";/* empty css */import"./tail-events-DQ46QBW1.js";import"./observe-CkfOxYx_.js";import"./types-B0PlfpKc.js";import"./useEmbedHeadline-BL8wQawZ.js";import"./AgentAvatar-BIwg54Tj.js";import"./SpriteAvatar-BW1JzkDt.js";import"./CrewAvatar-CJhuqTsJ.js";import"./SessionObserve-DaqDhqDI.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./lane-tool-detail-Czggx8oM.js";import"./LaneToolHoverCard-C6YehJqD.js";import"./lane-observe-BD21P8BB.js";import"./lane-ask-display-B6iCAVcd.js";import"./mentions-Ctw1ECUC.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./openContent-C6XO6kr5.js";import"./eye-CtqSV8BS.js";import"./terminal-96JWDYDL.js";import"./message-markup-DgFSyb3f.js";import"./ObservedTopologyPanel-DkEkQzo-.js";import"./ObserveTextFlow-ET0dD1wO.js";import"./use-reduced-motion-D7n3vK8t.js";import"./proxy-DOG46ja4.js";import"./SessionObserveEvidence-Drv-D8Oh.js";import"./message-circle-CSiJj6yo.js";import"./wrench-BsMTSeji.js";import"./external-link-RT4Ph-6-.js";import"./AgentFloorView-l2wNKFob.js";import"./AgentAdventures-NwTKeF0F.js";import"./ReplayClock-B7JLTp8A.js";import"./SproutActionSprite-DveCzg6l.js";/* empty css */import"./CrewSprite-hgpA3SWB.js";import"./agent-lanes-model-CX0wTcnF.js";import"./context-budget-DemtXu7E.js";import"./adventure-playback-DTfkhIc0.js";import"./AdventureScenery-D548O0x4.js";import"./adventure-habitats-v1-M1lcpTJh.js";import"./AdventureReader-ClMxT0e4.js";import"./floor-preview-text-HrORUJ7D.js";/* empty css */import"./book-open-BlJnpf2U.js";import"./scroll-text-DwC8r2g6.js";import"./ReplayLog-DZTpf2CW.js";import"./AdventureEvidence-Dzz9VbuE.js";import"./agent-lane-detail-Db7KyAlf.js";/* empty css */import"./arrow-up-right-Hn754ybA.js";/* empty css */import"./flag-CqdOxVkI.js";import"./pause-DWS7YGQ3.js";import"./play-D_Pggug4.js";import"./radio-C_jtwbFP.js";import"./SharedWorkFloor-yPWFLZwX.js";import"./WorldMinimap-Blqg0d5r.js";import"./WorldSky-DV9bpvXj.js";import"./WorldActorTalk-uIH2jGqA.js";import"./send-to-agent-session-BZGq_ycy.js";import"./FloorExchangePanel-D59nvRCF.js";import"./floor-character-name-CqJPOlXb.js";import"./floor-message-passes-CJh9f8Jp.js";import"./shared-work-artifacts-4IIQXQfc.js";import"./floor-memory-YMM8AlLY.js";import"./CharacterFamilyPreview-CfO3j8Of.js";import"./RenderedWorkerSprite-CvdWO32C.js";import"./FloorMessagePasses-BCwsz9VS.js";import"./WorkRunView-x5PH1byG.js";import"./floor-context-model-DZBpo_oD.js";import"./agent-floor-actor-3v9drnxh.js";import"./SharedFloorCharacter-CSYG_t9t.js";import"./WorldCharacter-Dn4sIXNP.js";import"./RiggedWorkerCharacter-DNe731GE.js";import"./file-code-corner-D_Aptal2.js";import"./FloorReplay-BHo79HCD.js";import"./AgentFloorWorld-BDJmXl3C.js";/* empty css */import"./agent-floor-world-layout-hfMjuoui.js";import"./coffee-C_D9zooM.js";import"./git-branch-CA3cHKCI.js";/* empty css */import"./FloorTacticalHUD-Bngao6sn.js";import"./FloorSavedWork-2tjBoy06.js";import"./pin-DWlD1BOF.js";/* empty css */import"./FloorResourcesSheet-Djrgd_ZU.js";/* empty css *//* empty css */import"./FloorContextSheet-DV-SYA0K.js";import"./lane-roster-store-DzNHP392.js";import"./message-square-NmXWtWLR.js";import"./AgentLanesPreflight-pw2vMO3Q.js";import"./AgentLaneChrome-D9uJ4QY7.js";import"./AgentLaneCard-C6YmwPxQ.js";/* empty css */import"./AgentLaneSummaryResize-BBYBS3DO.js";import"./clipboard-e3fSpeo7.js";import"./agent-lane-card-model-l0stnU9N.js";import"./agent-lane-preview-B8lsQJOQ.js";import"./AgentLaneDetailSheet-KYckCBCX.js";import"./SlidePanel-Datu7XG4.js";import"./LaneTraceDetailSheet-mAhj7MJi.js";import"./LaneTraceEventFocus-WLNZZVi_.js";/* empty css */import"./mission-control-store-DZ29Mlj1.js";import"./MissionContextRail-CVSZJnvX.js";import"./mission-wall-DOuGOxQy.js";import"./mission-control-model-C30vU1Fe.js";import"./MissionFocusOverlay-B9SiuO-i.js";import"./MissionLogPane-CMBiI29U.js";/* empty css */import"./DataTable-BMOZ1-z8.js";/* empty css */import"./useAgentHoverCard-Dr-OjNFF.js";import"./sliders-horizontal-CHf3ntw0.js";/* empty css */import"./compass-DTZdCpv9.js";import"./layout-grid-DI9tVJ2E.js";import"./refresh-cw-Da9DDLk2.js";import"./cpu-Ck_4tB_-.js";import"./gauge-Dgtfxf_o.js";/* empty css */import"./SecondaryNav-BkTn5tkq.js";import"./secondaryNavConfig-DAXIFtVd.js";import"./nav-destinations-CyXnw9kh.js";import"./settings-TJIkkZ0P.js";const A=220;function F(){const r=v(),o=!!(r.hover||r.content),[i,e]=n.useState(o?{hover:r.hover,content:r.content}:null),[m,s]=n.useState(o?"enter":"hidden"),p=n.useRef(null);if(n.useEffect(()=>{if(o){p.current&&(clearTimeout(p.current),p.current=null),e({hover:r.hover,content:r.content}),s(h=>h==="show"?"show":"enter");const u=requestAnimationFrame(()=>s("show"));return()=>cancelAnimationFrame(u)}return s("leave"),p.current=setTimeout(()=>{s("hidden"),e(null),p.current=null},A),()=>{p.current&&(clearTimeout(p.current),p.current=null)}},[o,r.hover,r.content]),m==="hidden"||!i)return null;const a=i.hover?.label??i.hover?.route??null,l=i.hover?.label&&i.hover?.route?i.hover.route:null;return t.jsxs("div",{className:`s-page-status s-page-status--${m}`,role:"status","aria-live":"polite",children:[t.jsx("div",{className:"s-page-status-left",children:a&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-page-status-arrow","aria-hidden":!0,children:"→"}),t.jsx("span",{className:"s-page-status-target",children:a}),l&&t.jsx("span",{className:"s-page-status-route",children:l})]})}),t.jsx("div",{className:"s-page-status-right",children:i.content&&t.jsx("span",{className:"s-page-status-content",children:i.content})})]})}function Jo({navigate:r,mode:o="mission",tailQuery:i,showSecondaryNav:e}){const{agents:m,route:s}=d(),p=g();return t.jsxs("div",{className:"s-ops",children:[e??p?t.jsx("div",{className:"s-ops-header",children:t.jsx(S,{activeRoute:s,navigate:r})}):null,t.jsxs("div",{className:"s-ops-body",children:[o==="mission"&&t.jsx(j,{navigate:r,agents:m}),o==="agents"&&t.jsx(f,{navigate:r,agents:m}),o==="advisor"&&t.jsx(w,{navigate:r,agents:m}),o==="issues"&&t.jsx(c,{navigate:r,initialFilter:i,variant:"issues"}),o==="tail"&&t.jsx(c,{navigate:r,initialFilter:i,variant:"tail"}),o==="atop"&&t.jsx(N,{}),(o==="lanes"||o==="world")&&t.jsx(x,{navigate:r,agents:m})]}),t.jsx(F,{})]})}export{Jo as OpsScreen};
@@ -1 +0,0 @@
1
- import{j as t}from"./index-C8uS5szO.js";import{S as p}from"./SecondaryNav-BkTn5tkq.js";import{O as i}from"./secondaryNavConfig-DAXIFtVd.js";/* empty css */import"./nav-destinations-CyXnw9kh.js";import"./createLucideIcon-DkjnzvcJ.js";import"./message-square-NmXWtWLR.js";import"./terminal-96JWDYDL.js";import"./search-C4VlW_0l.js";import"./compass-DTZdCpv9.js";import"./settings-TJIkkZ0P.js";import"./file-text-ChtICwub.js";import"./git-branch-CA3cHKCI.js";import"./code-xml-BmyLM0I2.js";import"./scroll-text-DwC8r2g6.js";function A({activeRoute:r,navigate:o}){return t.jsx(p,{ariaLabel:"Ops sections",activeRoute:r,groups:i,navigate:o})}export{A as OpsSubnav};
@@ -1 +0,0 @@
1
- import{r as m,j as o}from"./index-C8uS5szO.js";import{a as A}from"./api-CaROe5_H.js";import{b}from"./machine-scope-DJt9RZ2w.js";import{b as S}from"./router-BKiMcYa7.js";import{u as y}from"./sse-v5QLsOHV.js";import{u as P}from"./Provider-5Hotn7NQ.js";import{AgentsSubnav as N}from"./AgentsSubnav-BOobgtGE.js";import{AgentDetailWithRail as B,AgentProfileSessionsCenter as E}from"./profile-C3KgiZvc.js";import{r as R,d as C,b as M}from"./NewChatComposer-JjLbm3W2.js";/* empty css *//* empty css *//* empty css */import{ProjectAgentProfileBar as w}from"./ProjectAgentProfileBar-C1fR65Eh.js";/* empty css */import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./model-CBkMvT1w.js";import"./time-Dhsh_2EG.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./createLucideIcon-DkjnzvcJ.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./file-text-ChtICwub.js";import"./x-DI1ktCYb.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-CXfav14z.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./SecondaryNav-BkTn5tkq.js";import"./secondaryNavConfig-DAXIFtVd.js";import"./nav-destinations-CyXnw9kh.js";import"./message-square-NmXWtWLR.js";import"./terminal-96JWDYDL.js";import"./search-C4VlW_0l.js";import"./compass-DTZdCpv9.js";import"./settings-TJIkkZ0P.js";import"./git-branch-CA3cHKCI.js";import"./scroll-text-DwC8r2g6.js";import"./AgentAvatar-BIwg54Tj.js";import"./SpriteAvatar-BW1JzkDt.js";import"./CrewAvatar-CJhuqTsJ.js";import"./HarnessMark-Bt47OeHy.js";import"./colors-CFlbwC25.js";import"./context-budget-DemtXu7E.js";import"./session-catalog-s-T_w41t.js";import"./terminal-relay-Bfx8pg80.js";import"./BackToPicker-Bys9ColC.js";import"./openContent-C6XO6kr5.js";import"./ConversationScreen-tTP6B_F-.js";import"./runtime-picker-DdsttHHc.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./ConversationComposer-B7RU6LKd.js";import"./index-C5cX8dkl.js";import"./zap-sKPkh4sQ.js";import"./conversation-model-BGFHoxQ0.js";import"./conversations-Cbg9h_Af.js";import"./message-markup-DgFSyb3f.js";import"./mentions-Ctw1ECUC.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./eye-CtqSV8BS.js";import"./message-visibility-DwxgcgYK.js";import"./operator-attention-DGR4kOog.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";import"./ConversationHeader-CCSU8uo_.js";import"./AstronautSuit-C-4I5YKi.js";import"./panel-right-BNTJhy8M.js";import"./CommsFlowGraph-Czg-KTS0.js";import"./comms-gesture-_aGFo6g3.js";import"./CommsCanvas-DOKw3Q8i.js";import"./comms-deck-CBhsXnY-.js";import"./CommsFlowMap-CzBWvSa5.js";import"./CommsSelection-g1twA-Lb.js";/* empty css */import"./use-conversation-list-A_YUf8lo.js";import"./agent-master-model-C-KdOFDK.js";import"./use-beside-Df-F2Uvg.js";import"./ConversationFeedRows-DVqnZQH0.js";import"./ConversationPanels-C9yCAoJy.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./use-reduced-motion-D7n3vK8t.js";import"./proxy-DOG46ja4.js";import"./chevron-down-B5eMsn5c.js";import"./activity-CSUhvjD0.js";import"./message-circle-CSiJj6yo.js";import"./tail-events-DQ46QBW1.js";import"./ConversationStatus-CK-YfLpi.js";import"./check-B8dMv3Is.js";import"./sparkles-BbOFw3d0.js";import"./SessionObserve-DaqDhqDI.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-Czggx8oM.js";import"./LaneToolHoverCard-C6YehJqD.js";import"./lane-observe-BD21P8BB.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-DkEkQzo-.js";import"./ObserveTextFlow-ET0dD1wO.js";import"./SessionObserveEvidence-Drv-D8Oh.js";import"./wrench-BsMTSeji.js";import"./external-link-RT4Ph-6-.js";/* empty css */import"./AgentDefinitionsWorkspace-CwZJ833X.js";import"./agent-specialization-CiVxQsFT.js";import"./project-overview-helpers-BQTc_Ous.js";import"./FileViewerPane-HtiDbj9N.js";import"./agent-essentials-8t2il7PV.js";import"./NewChatOrigin-CyPPWTJP.js";function Uo({route:t,navigate:r}){const{agents:p}=P(),e=S(t),n=m.useMemo(()=>b(p,e),[p,e]),[f,g]=m.useState([]),a=m.useCallback(async()=>{const s=await A("/api/conversations").catch(()=>[]);g(s)},[]);m.useEffect(()=>{a()},[a]),y(()=>{a()});const i=R(n,t.agentId),c=!!(t.agentId&&i&&i.id!==t.agentId),{conversationByAgentId:j}=C(f);if(m.useEffect(()=>{!t.agentId||!i||!c||r({...t,view:"agents-v2",agentId:i.id})},[r,t,i,t.agentId,c]),!i)return o.jsx(v,{activeRoute:t,navigate:r,children:o.jsx("div",{className:"av2-empty",children:"Agent not found."})});const d=t.conversationId??j.get(i.id)??i.conversationId??null,l=t.tab??(t.conversationId?"message":"profile");return o.jsx("div",{className:"s-av2-profileShell",children:o.jsx(v,{activeRoute:t,navigate:r,bar:o.jsx(w,{agent:i,conversationId:d,activeTab:l,route:t,navigate:r}),children:o.jsx("div",{className:"av2-profileCanvas",children:o.jsx(B,{agent:i,allAgents:n,conversationId:d,navigate:r,activeTab:l,renderProfile:({agent:s,sessionCatalog:x,conversationId:h,navigate:I,route:u})=>o.jsx(E,{agent:s,name:M(s,n).name,sessionCatalog:x,conversationId:h,navigate:I,route:u,homeView:"agents-v2"})})})})})}function v({activeRoute:t,children:r,navigate:p,bar:e}){return o.jsxs("div",{className:"s-secondary-nav-shell",children:[o.jsx("div",{className:"s-secondary-nav-bar",children:e??o.jsx(N,{activeRoute:t,navigate:p})}),o.jsx("div",{className:"s-secondary-nav-body",children:r})]})}export{Uo as ProjectAgentProfile};
@@ -1 +0,0 @@
1
- import{r as c,j as e}from"./index-C8uS5szO.js";import{i as y,c as L}from"./agent-state-DDhnFEEP.js";import{a as u}from"./api-CaROe5_H.js";import{u as T}from"./sse-v5QLsOHV.js";import{t as P}from"./time-Dhsh_2EG.js";import{o as R}from"./openContent-C6XO6kr5.js";import{A as E}from"./AgentAvatar-BIwg54Tj.js";import{H as O}from"./HarnessMark-Bt47OeHy.js";import{n as V}from"./NewChatComposer-JjLbm3W2.js";import{h as B}from"./model-CBkMvT1w.js";import"./index-BWHgHrtv.js";import"./Provider-5Hotn7NQ.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./machine-scope-DJt9RZ2w.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./createLucideIcon-DkjnzvcJ.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./file-text-ChtICwub.js";import"./x-DI1ktCYb.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-CXfav14z.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./SpriteAvatar-BW1JzkDt.js";import"./CrewAvatar-CJhuqTsJ.js";import"./colors-CFlbwC25.js";import"./runtime-picker-DdsttHHc.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./conversation-model-BGFHoxQ0.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./NewChatOrigin-CyPPWTJP.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";function U(s){return s?s.startsWith("/Users/")?`~/${s.split("/").slice(3).join("/")}`:s:null}function _(s){const a=s.model?.trim();if(!a)return null;const o=s.harness?.trim();return o&&a.startsWith(`${o}-`)?a.slice(o.length+1).replace(/-\d{8}$/,""):a.replace(/^claude-/,"").replace(/-\d{8}$/,"")}function g(s){const a=new Map;for(const o of s){if(o.kind!=="tool"||!o.tool)continue;const t=o.tool.toLowerCase();a.set(t,(a.get(t)??0)+1)}return[...a.entries()].sort((o,t)=>t[1]-o[1]||o[0].localeCompare(t[0])).map(([o])=>o).slice(0,6)}function l({label:s,value:a,title:o}){return a?.trim()?e.jsxs("div",{className:"av2-coreMetaItem",title:o??a,children:[e.jsx("span",{className:"av2-coreMetaLabel",children:s}),e.jsx("span",{className:"av2-coreMetaValue",children:a})]}):null}function Rs({agent:s,route:a,navigate:o}){const[t,h]=c.useState(null),[C,v]=c.useState(null),m=c.useCallback(async()=>{const[r,i]=await Promise.all([u(`/api/agents/${encodeURIComponent(s.id)}/observe`).catch(()=>null),u(`/api/agents/${encodeURIComponent(s.id)}/session-catalog`).catch(()=>null)]);h(r),v(i)},[s.id]);c.useEffect(()=>{h(null),v(null),m()},[m]),T(()=>{m()});const p=s.handle?.trim().replace(/^@+/,"")||null,j=p?`@${p}`:s.name,n=s.harness?B(s.harness):null,H=_(s),w=U(s.cwd??s.projectRoot),M=(s.homeNodeName??s.authorityNodeName??"").replace(/\.local$/i,"").replace(/-local-openscout$/i,""),I=y(s.state),k=L(s.state,s),x=t?.data.events??[],d=c.useMemo(()=>g(x),[x]),f=t?.data.metadata?.usage??null,N=(()=>{const r=f?.contextWindowTokens??0,i=f?.contextInputTokens??0;return!r||r<=0||i<=0?null:Math.min(100,Math.max(0,Math.round(i/r*100)))})(),A=C?.sessions?.length??0,$=s.transport==="claude_stream_json"?"stream-json":s.transport==="codex_app_server"?"app-server":s.transport?.trim()||null,S=async()=>{try{const r=await u("/api/sessions",{method:"POST",body:JSON.stringify(V(s))}),i=r.sessionId?.trim();if(i){R(o,{view:"sessions",sessionId:i},{returnTo:a});return}const b=r.conversationId?.trim();o({...a,view:"agents-v2",agentId:r.agentId?.trim()||s.id,...b?{conversationId:b}:{},tab:"message"})}catch{}};return e.jsxs("header",{className:"av2-profileHero",children:[e.jsx(E,{agent:s,size:56,tile:!0,presence:!0}),e.jsxs("div",{className:"av2-profileHeroCore",children:[e.jsxs("div",{className:"av2-profileHeroTop",children:[e.jsxs("div",{className:"av2-profileHeroIdent",children:[e.jsx("h1",{className:"av2-profileHeroTitle",title:j,children:j}),e.jsxs("span",{className:"av2-profileHeroState","data-online":I||void 0,children:[e.jsx("span",{className:"av2-profileHeroDot","aria-hidden":!0}),k,s.updatedAt?` · ${P(s.updatedAt)}`:""]}),p&&s.name.toLowerCase()!==p.toLowerCase()?e.jsx("span",{className:"av2-profileHeroBroker",title:s.id,children:s.name}):e.jsx("span",{className:"av2-profileHeroBroker",title:s.id,children:s.id})]}),e.jsxs("div",{className:"av2-profileHeroActions",children:[e.jsx("button",{type:"button",className:"av2-heroGhost",onClick:()=>o({...a,view:"agents-v2",agentId:s.id,tab:"config"}),children:"Edit config"}),e.jsx("button",{type:"button",className:"av2-heroCta",onClick:()=>{S()},children:"+ New session"})]})]}),e.jsxs("div",{className:"av2-profileHeroMeta",children:[e.jsx(l,{label:"Project",value:s.project?`/${s.project}`:null}),e.jsx(l,{label:"Branch",value:s.branch}),e.jsx(l,{label:"Harness",value:n?n.charAt(0).toUpperCase()+n.slice(1):null,title:s.harness??void 0}),e.jsx(l,{label:"Model",value:H}),e.jsx(l,{label:"Host",value:M||null}),e.jsx(l,{label:"Root",value:w,title:s.cwd??s.projectRoot??void 0}),e.jsx(l,{label:"Transport",value:$})]}),e.jsxs("div",{className:"av2-profileHeroSignal",children:[n?e.jsx("span",{className:"av2-signalMark",title:s.harness??n,children:e.jsx(O,{harness:n,size:12})}):null,e.jsxs("span",{className:"av2-signalChip",children:[e.jsx("span",{className:"av2-signalLabel",children:"Sessions"}),e.jsx("span",{className:"av2-signalValue",children:A})]}),N!=null?e.jsxs("span",{className:"av2-signalChip",children:[e.jsx("span",{className:"av2-signalLabel",children:"Ctx"}),e.jsxs("span",{className:"av2-signalValue",children:[N,"%"]})]}):null,d.length>0?e.jsxs("span",{className:"av2-signalChip av2-signalChip--wide",title:d.join(" · "),children:[e.jsx("span",{className:"av2-signalLabel",children:"Tools"}),e.jsx("span",{className:"av2-signalValue",children:d.join(" · ")})]}):t?e.jsxs("span",{className:"av2-signalChip",children:[e.jsx("span",{className:"av2-signalLabel",children:"Tools"}),e.jsx("span",{className:"av2-signalValue",children:"—"})]}):null]})]})]})}export{Rs as ProjectAgentProfileHero};
@@ -1,2 +0,0 @@
1
- import{r as h,j as s}from"./index-C8uS5szO.js";import{A as Me}from"./AgentAvatar-BIwg54Tj.js";import{H as ge}from"./HarnessMark-Bt47OeHy.js";import{a as Ee}from"./api-CaROe5_H.js";import{r as Ie,i as $e}from"./ui-LM8pS8qE.js";import{t as _,d as We,n as ee}from"./time-Dhsh_2EG.js";import{p as Fe,l as De,s as Be,f as Oe}from"./terminal-sessions-Ch9aYlgi.js";import{r as He,m as Z,n as ae,o as ze,s as re,b as le,q as qe,v as be,w as Ge,x as _e,f as Ve,u as Ke}from"./Provider-5Hotn7NQ.js";import{o as Ue}from"./openContent-C6XO6kr5.js";import{p as J}from"./NewChatComposer-JjLbm3W2.js";import{SessionRefScreen as Xe}from"./SessionRefScreen-BOQ1_ydg.js";import{P as Ye,C as Ze}from"./CrewWorkspaces-4O8dgRUD.js";import{r as X,s as V}from"./project-overview-helpers-BQTc_Ous.js";import{u as Je,r as Qe}from"./projects-inbox-DvbqJO3q.js";import{u as es}from"./useEmbedHeadline-BL8wQawZ.js";import{g as ss,a as ts,f as ce,b as ns}from"./api-B9_IqFKY.js";import{f as is}from"./cache-DEy9E34b.js";import{A as ue}from"./arrow-up-right-Hn754ybA.js";import{C as os}from"./chevron-right-C7UGFpkl.js";import{F as as}from"./AddProjectForm-DfbjlFfy.js";import{S as rs}from"./search-C4VlW_0l.js";import{A as ls}from"./arrow-right-ldbfp4SZ.js";import{E as cs}from"./external-link-RT4Ph-6-.js";import{F as us}from"./folder-0fWevPvQ.js";import"./SpriteAvatar-BW1JzkDt.js";import"./agent-state-DDhnFEEP.js";import"./CrewAvatar-CJhuqTsJ.js";import"./colors-CFlbwC25.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./createLucideIcon-DkjnzvcJ.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./file-text-ChtICwub.js";import"./x-DI1ktCYb.js";import"./index-CvsM3jm8.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-CXfav14z.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./runtime-picker-DdsttHHc.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./conversation-model-BGFHoxQ0.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./NewChatOrigin-CyPPWTJP.js";import"./chevron-down-B5eMsn5c.js";import"./tail-events-DQ46QBW1.js";import"./BackToPicker-Bys9ColC.js";import"./ConversationScreen-tTP6B_F-.js";import"./ConversationComposer-B7RU6LKd.js";import"./zap-sKPkh4sQ.js";import"./message-markup-DgFSyb3f.js";import"./mentions-Ctw1ECUC.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./eye-CtqSV8BS.js";import"./terminal-96JWDYDL.js";import"./message-visibility-DwxgcgYK.js";import"./operator-attention-DGR4kOog.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-CCSU8uo_.js";import"./AstronautSuit-C-4I5YKi.js";import"./panel-right-BNTJhy8M.js";import"./CommsFlowGraph-Czg-KTS0.js";import"./comms-gesture-_aGFo6g3.js";import"./CommsCanvas-DOKw3Q8i.js";import"./comms-deck-CBhsXnY-.js";import"./CommsFlowMap-CzBWvSa5.js";import"./CommsSelection-g1twA-Lb.js";/* empty css */import"./use-conversation-list-A_YUf8lo.js";import"./agent-master-model-C-KdOFDK.js";import"./use-beside-Df-F2Uvg.js";import"./ConversationFeedRows-DVqnZQH0.js";import"./ConversationPanels-C9yCAoJy.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./use-reduced-motion-D7n3vK8t.js";import"./proxy-DOG46ja4.js";import"./activity-CSUhvjD0.js";import"./message-circle-CSiJj6yo.js";import"./ConversationStatus-CK-YfLpi.js";import"./check-B8dMv3Is.js";import"./sparkles-BbOFw3d0.js";import"./SessionObserve-DaqDhqDI.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-Czggx8oM.js";import"./LaneToolHoverCard-C6YehJqD.js";import"./lane-observe-BD21P8BB.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-DkEkQzo-.js";import"./ObserveTextFlow-ET0dD1wO.js";import"./SessionObserveEvidence-Drv-D8Oh.js";import"./wrench-BsMTSeji.js";import"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./agent-specialization-CiVxQsFT.js";import"./sliders-horizontal-CHf3ntw0.js";import"./message-square-NmXWtWLR.js";function de(e){const t=e?.trim();if(!t)return null;const i=t.split(/[\\/]/u).filter(Boolean).at(-1)??t;return i.endsWith(".jsonl")?i.slice(0,-6):i}function ds(e){return e.surfaces.filter(t=>t.backend==="tmux")}function ps(e,t){return{terminalSessionId:e.id,terminalSurfaceKey:Be(t),sessionName:t.sessionName}}function ms(e,t){const i=de(t.agentId),n=new Set(t.sessionRefs.map(de).filter(r=>!!r)),o=i?.split(".",1)[0]??null;o?.startsWith("session-")&&n.add(o);for(const r of e){const a=ds(r).find(c=>n.has(c.sessionName));if(a)return ps(r,a)}return null}function hs(e,t){const i=Fe(e.terminalSurfaceKey);return i?`scout://terminal?${new URLSearchParams({session:e.terminalSessionId,surface:De(i),mode:t}).toString()}`:null}const fs=1e4,js=2e4,xs=6e4,gs=15e3,bs=45e3,vs=["branch","unstaged","staged"];function te(e){const t=()=>{document.visibilityState==="visible"&&e()};return window.addEventListener("focus",t),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",t)}}function ws(e,t){const i=new Set;for(const n of[e,...t]){const o=n?.trim();o&&i.add(o.replace(/\/+$/u,""))}return[...i].slice(0,6)}function Ns(e){return e.replace(/\/+$/u,"").split("/").pop()?.toLocaleLowerCase()??e.toLocaleLowerCase()}function ks(e,t,i){return e.path===t||i?.worktrees.some(o=>o.path===e.path)?!0:e.repo.split("/").pop()?.toLocaleLowerCase()===(i?.name.toLocaleLowerCase()??Ns(t))}function Q(e){return e&&typeof e=="object"&&"name"in e&&e.name==="AbortError"?"The repository scan timed out.":e instanceof Error?e.message:String(e)}function Ss(e,t=[]){const i=ws(e,t).join("\0"),n=h.useMemo(()=>i?i.split("\0"):[],[i]),[o,r]=h.useState(()=>ss()),[a,c]=h.useState(()=>ts()),[m,f]=h.useState(!!(e&&!X(o,e))),[j,x]=h.useState(!!e),[w,y]=h.useState(!!e),[T,L]=h.useState(null),[S,E]=h.useState(null),[W,P]=h.useState(()=>new Map),[D,A]=h.useState(()=>new Map),[N,B]=h.useState(0),I=h.useRef(null),k=h.useCallback(()=>{I.current=null,B(d=>d+1)},[]);h.useEffect(()=>{if(!e){f(!1),L(null);return}let d=!1,p=!1,R=!0;const M=async()=>{if(p)return;p=!0,d||(f(!0),L(null));let O=null;try{let F=null;const H=N>0&&R;R=!1;try{F=await ce("standard",H,gs)}catch(C){O=Q(C)}if((!F||!X(F,e))&&I.current!==e){I.current=e;try{const C=await ce("expanded",H,bs);X(C,e)&&(F=C)}catch(C){O=Q(C)}}!d&&F&&r(C=>X(F,e)?F:C&&X(C,e)?C:F),!d&&!X(F,e)&&L(O??"Repo Watch did not include this project in its latest scan.")}finally{p=!1,d||f(!1)}};M();const l=window.setInterval(()=>{document.visibilityState==="visible"&&M()},fs),$=te(()=>{M()});return()=>{d=!0,window.clearInterval(l),$()}},[e,N]),h.useEffect(()=>{if(n.length===0){y(!1),A(new Map);return}let d=!1,p=!1,R=!0;const M=async()=>{if(p)return;p=!0,d||y(!0);const O=await Promise.allSettled(n.map(F=>is(F,[...vs],{force:N>0&&R,tier:"summary"})));if(R=!1,!d){const F=new Map,H=new Map;O.forEach((C,K)=>{const q=n[K];C.status==="fulfilled"?F.set(q,C.value.snapshot):H.set(q,Q(C.reason))}),P(C=>{const K=new Map(C);for(const q of n)K.delete(q);for(const[q,se]of F)K.set(q,se);return K}),A(H),y(!1)}p=!1};M();const l=window.setInterval(()=>{document.visibilityState==="visible"&&M()},js),$=te(()=>{M()});return()=>{d=!0,window.clearInterval(l),$()}},[n,N]),h.useEffect(()=>{if(n.length===0){x(!1),E(null);return}let d=!1,p=!1;const R=async()=>{if(!p){p=!0;try{const $=await ns(n);d||(c($),E(null))}catch($){d||E(Q($))}finally{p=!1,d||x(!1)}}};x(!0),E(null),R();const M=window.setInterval(()=>{document.visibilityState==="visible"&&R()},xs),l=te(()=>{R()});return()=>{d=!0,window.clearInterval(M),l()}},[n,N]);const u=h.useMemo(()=>X(o,e),[e,o]),g=h.useMemo(()=>e?(a?.pullRequests??[]).filter(d=>ks(d,e,u)):[],[u,e,a]),b=h.useMemo(()=>{const d=a?.paths.some(p=>n.includes(p))?a.warnings:[];return S?[S,...d]:d},[n,S,a]);return{project:u,pullRequests:g,pullRequestsLoading:j,pullRequestWarnings:b,repoLoading:m,repoError:T,diffSnapshots:W,diffErrors:D,diffLoading:w,refresh:k}}const ys=[];function Cs(e,t){return e.thread===t.thread&&e.crossProject===t.crossProject&&e.selected===t.selected&&e.cursor===t.cursor&&e.nowMs===t.nowMs&&e.workLabel===t.workLabel}const As=h.memo(function({thread:t,crossProject:i,selected:n,cursor:o,nowMs:r,onSelect:a,onOpen:c,rowRef:m,workLabel:f}){return s.jsxs("button",{ref:m,type:"button",className:"pi-row","data-state":t.group,"data-selected":n||void 0,"data-cursor":o||void 0,onClick:a,onDoubleClick:c,children:[s.jsx("span",{className:"pi-rowDot","aria-hidden":!0}),s.jsxs("span",{className:"pi-rowBody",children:[s.jsx("span",{className:"pi-rowWork",title:t.work,children:f??t.work}),s.jsxs("span",{className:"pi-rowAttr",children:[s.jsx("span",{className:"pi-rowAvatar",children:s.jsx(Me,{agent:{name:t.agentName,harness:t.harness,state:t.working?"in_turn":null},placement:"row",size:22})}),s.jsx("span",{className:"pi-rowAgent",title:t.agentName,children:t.agentName}),s.jsx("span",{className:"pi-rowHmark","aria-hidden":!0,children:s.jsx(ge,{harness:t.harness,size:11})}),i?s.jsxs("span",{className:"pi-rowChip",title:`/${t.projectTitle}`,children:["/",t.projectTitle]}):t.branch?s.jsx("span",{className:"pi-rowBranch",title:t.branch,children:t.branch}):null]})]}),s.jsxs("span",{className:"pi-rowVitals",children:[t.working?s.jsx("span",{className:"pi-rowLiveTag",children:"live"}):null,s.jsx("span",{className:"pi-rowAgo",children:t.lastActivityAt?_(t.lastActivityAt,r):"—"}),t.contextPct!=null?s.jsxs("span",{className:"pi-rowCtx",children:[t.contextPct,"%"]}):null]}),s.jsxs("span",{className:"pi-rowOpen","aria-hidden":!0,children:[s.jsx("span",{children:"Open"}),s.jsx(os,{size:14,strokeWidth:1.8})]})]})},Cs);function pe({title:e,detail:t,tone:i="muted"}){return s.jsxs("div",{className:"pi-stateBlock","data-tone":i,role:i==="loading"?"status":"note",children:[s.jsx("span",{className:"pi-statePulse","aria-hidden":!0}),s.jsx("span",{className:"pi-stateTitle",children:e}),t?s.jsx("span",{className:"pi-stateDetail",children:t}):null]})}function Rs({rows:e=7}){return s.jsxs("div",{className:"pi-loadingRows","aria-hidden":"true",children:[s.jsxs("div",{className:"pi-sectionHead pi-sectionHead--loading",children:[s.jsx("span",{className:"pi-loadingLine pi-loadingLine--label"}),s.jsx("span",{className:"pi-loadingLine pi-loadingLine--count"})]}),Array.from({length:e},(t,i)=>s.jsxs("div",{className:"pi-row pi-row--loading",children:[s.jsx("span",{className:"pi-rowDot"}),s.jsxs("span",{className:"pi-rowBody",children:[s.jsx("span",{className:"pi-loadingLine pi-loadingLine--title"}),s.jsx("span",{className:"pi-loadingLine pi-loadingLine--meta"})]}),s.jsx("span",{className:"pi-rowVitals",children:s.jsx("span",{className:"pi-loadingLine pi-loadingLine--time"})})]},i))]})}function Ts({route:e,navigate:t,slug:i,model:n,mode:o,repoProject:r}){const a=n.projects.find(S=>S.slug===i)??null,m=Z(n.threads,i).filter(S=>S.kind==="agent"),f=a?.title??i,j=a?.root??null,x=(a?.agentCount??m.length)>0,w=e.machineId?{machineId:e.machineId}:{},y={view:"agents-v2",projectSlug:i,...w},T=Ls(a?.needs??0,Math.max(a?.working??0,a?.liveSessionCount??0),a?.agentCount??(m.length>0?1:0),a?.sessionCount??0),L=r?.worktrees.length??a?.worktreeCount??0;return s.jsxs("header",{className:"pi-projectHead",children:[s.jsx("div",{className:"pi-projectHeadTop",children:s.jsxs("div",{className:"pi-projectIdent",children:[s.jsx("h1",{className:"pi-projectTitle",children:f}),s.jsxs("div",{className:"pi-projectMeta",children:[j?s.jsx("span",{title:j,children:V(j)}):null,s.jsx("span",{className:"pi-projectDigest",children:T})]})]})}),s.jsxs("div",{className:"pi-projectFacets","aria-label":"Project sections",children:[s.jsx("button",{type:"button",className:"pi-projectFacet","data-selected":o==="overview"||void 0,onClick:()=>t(y),children:s.jsx("span",{children:"Overview"})}),s.jsxs("button",{type:"button",className:"pi-projectFacet","data-selected":o==="sessions"||void 0,onClick:()=>t({...y,indexView:"sessions"}),children:[s.jsx("span",{children:"Sessions"}),s.jsx("b",{children:a?.sessionCount??0})]}),x?s.jsxs("button",{type:"button",className:"pi-projectFacet","data-selected":o==="agents"||void 0,onClick:()=>t({...y,indexView:"agents"}),children:[s.jsx("span",{children:"Agents"}),s.jsx("b",{children:a?.agentCount??m.length})]}):null,s.jsxs("button",{type:"button",className:"pi-projectFacet",title:"Open worktrees in Repos",onClick:()=>t({view:"repos",...j?{root:j}:{},...w}),children:[s.jsx("span",{children:"Worktrees"}),s.jsx("b",{children:L}),s.jsx(ue,{className:"pi-projectFacetOut",size:11,strokeWidth:2,"aria-hidden":!0})]}),s.jsxs("button",{type:"button",className:"pi-projectFacet",disabled:!j,title:j?"Open this project's AGENTS.md":"No project root known",onClick:()=>t({view:"code",project:i,path:"AGENTS.md"}),children:[s.jsx("span",{children:"Rules"}),s.jsx("b",{children:j?"set":"—"}),s.jsx(ue,{className:"pi-projectFacetOut",size:11,strokeWidth:2,"aria-hidden":!0})]})]})]})}function Ls(e,t,i,n){const o=[];return t>0&&o.push(s.jsxs("b",{children:[t," active"]},"w")),e>0&&o.push(s.jsxs("b",{children:[e," needs you"]},"n")),o.push(s.jsxs("span",{children:[i," agent",i===1?"":"s"]},"a")),o.push(s.jsxs("span",{children:[n," session",n===1?"":"s"]},"s")),o.reduce((r,a,c)=>(c>0&&r.push(s.jsx("span",{children:" · "},`sep${c}`)),r.push(a),r),[])}function ve(e){if(e.length<=18)return e;const t=e.match(/^([0-9a-f]{8})-[0-9a-f-]{27,}$/iu);return t?t[1]:`${e.slice(0,10)}…${e.slice(-5)}`}function Ps(e,t){return`${t?0:e.projects.length} tracked`}function Ms({route:e,navigate:t,projects:i}){const{onboarding:n,refreshOnboarding:o,reload:r}=Ke(),a=Es(n?.defaultHarness),[c,m]=h.useState(""),[f,j]=h.useState(""),[x,w]=h.useState(a),[y,T]=h.useState(!1),[L,S]=h.useState(null),[E,W]=h.useState(null),[P,D]=h.useState(null);h.useEffect(()=>{w(a)},[a]);const A=h.useMemo(()=>Is(i),[i]),N=h.useMemo(()=>$s(A,c),[c,A]),B=h.useMemo(()=>A.find(l=>l.slug===f)??he(A,c),[c,A,f]),I=c.trim(),k=Fs(I)&&!he(A,I),u=B??(!k&&I?N[0]??null:null),g=u?"Open project":k?"Create project":"Find project",b=!!(u||k||I);h.useEffect(()=>{f&&(A.some(l=>l.slug===f)||j(""))},[A,f]),h.useEffect(()=>{if(!P)return;const l=A.find($=>Ds($,P));l&&(D(null),t(me(e,l.slug)))},[P,t,A,e]);const d=l=>{j(l.slug),m(l.title),S(null),W(null)},p=l=>{t(me(e,l.slug))},R=async l=>{T(!0),S(null),W(null);try{await Ee("/api/onboarding/project",{method:"POST",body:JSON.stringify({contextRoot:l,sourceRoots:[l],defaultHarness:x})}),D(l),W("Project created. Refreshing inventory."),j(""),m(""),Qe(),await Promise.all([o(),r()])}catch($){S($ instanceof Error?$.message:"Could not create project.")}finally{T(!1)}},M=l=>{if(l.preventDefault(),!y){if(u){p(u);return}if(k){R(I);return}if(I){S("No project matches that search. Paste a repo path to create one.");return}S("Choose a project or paste a repo path.")}};return s.jsxs("div",{className:"pi-zero",children:[s.jsxs("div",{className:"pi-zeroHead",children:[s.jsxs("span",{className:"pi-zeroKicker",children:[s.jsx(as,{size:13,strokeWidth:1.9,"aria-hidden":!0}),"Projects"]}),s.jsx("h2",{children:"Pick a project to start."})]}),s.jsxs("form",{className:"pi-zeroComposer",onSubmit:M,children:[s.jsxs("div",{className:"pi-zeroBar",children:[s.jsxs("label",{className:"pi-zeroSelect",children:[s.jsx(rs,{size:13,strokeWidth:1.8,"aria-hidden":!0}),s.jsxs("select",{value:f,"aria-label":"Choose project",onChange:l=>{const $=A.find(O=>O.slug===l.currentTarget.value);$?d($):j("")},children:[s.jsx("option",{value:"",children:"Choose project"}),A.slice(0,80).map(l=>s.jsx("option",{value:l.slug,children:l.title},l.slug))]})]}),s.jsx("div",{className:"pi-zeroHarness",role:"group","aria-label":"Default harness",children:["claude","codex"].map(l=>s.jsx("button",{type:"button","data-on":x===l||void 0,onClick:()=>w(l),children:l==="claude"?"Claude":"Codex"},l))})]}),s.jsxs("div",{className:"pi-zeroInputRow",children:[s.jsx("textarea",{value:c,rows:2,placeholder:"Find project or paste /path/to/repo","aria-label":"Find or create project",onChange:l=>{m(l.currentTarget.value),j(""),S(null),W(null)},onKeyDown:l=>{l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),l.currentTarget.form?.requestSubmit())}}),s.jsxs("button",{type:"submit",className:"pi-zeroSend",disabled:y||!b,title:g,children:[s.jsx(ls,{size:15,strokeWidth:2,"aria-hidden":!0}),s.jsx("span",{children:y?"Working":g})]})]}),N.length>0?s.jsx("div",{className:"pi-zeroMatches","aria-label":"Matching projects",children:N.map(l=>s.jsxs("button",{type:"button",className:"pi-zeroMatch","data-selected":B?.slug===l.slug||void 0,onClick:()=>d(l),onDoubleClick:()=>p(l),children:[s.jsxs("span",{className:"pi-zeroMatchMain",children:[s.jsxs("span",{className:"pi-zeroMatchTitle",children:["/",l.title]}),s.jsx("span",{className:"pi-zeroMatchRoot",title:l.root??void 0,children:l.root?V(l.root):l.slug})]}),s.jsx("span",{className:"pi-zeroMatchMeta",children:Bs(l)})]},l.slug))}):I?s.jsx("div",{className:"pi-zeroEmpty",children:"No project matches."}):null,L?s.jsx("div",{className:"pi-zeroError",children:L}):null,E?s.jsx("div",{className:"pi-zeroStatus",children:E}):null]})]})}function Es(e){return e==="codex"?"codex":"claude"}function me(e,t){return{view:"agents-v2",projectSlug:t,...e.showEphemeral?{showEphemeral:!0}:{},...e.machineId?{machineId:e.machineId}:{}}}function Is(e){return e.map(t=>({slug:t.slug,title:t.title,root:t.root,agentCount:t.agentCount,sessionCount:t.sessionCount,lastActivityAt:t.lastActivityAt})).sort((t,i)=>i.lastActivityAt-t.lastActivityAt||i.agentCount-t.agentCount||i.sessionCount-t.sessionCount||t.title.localeCompare(i.title))}function $s(e,t){const i=z(t);return i?e.map(n=>({option:n,score:Ws(n,i)})).filter(n=>n.score!==null).sort((n,o)=>n.score-o.score||o.option.lastActivityAt-n.option.lastActivityAt||n.option.title.localeCompare(o.option.title)).slice(0,6).map(n=>n.option):e.slice(0,6)}function he(e,t){const i=z(t);return i?e.find(n=>{const o=z(n.root??""),r=z(n.root?J(n.root):"");return z(n.title)===i||z(n.slug)===i||o===i||r===i||z(n.root?V(n.root):"")===i})??null:null}function Ws(e,t){const i=z(e.title),n=z(e.slug),o=z(e.root??""),r=z(e.root?J(e.root):"");return i===t||n===t||o===t||r===t?0:i.startsWith(t)||n.startsWith(t)||r.startsWith(t)?1:i.includes(t)||n.includes(t)||r.includes(t)?2:o.includes(t)?3:null}function z(e){return e.trim().toLowerCase().replace(/^~(?=\/)/u,"").replace(/\s+/g," ")}function Fs(e){const t=e.trim();return/^(~\/|\/|\.{1,2}\/)/u.test(t)||t.includes("/")}function Ds(e,t){const i=z(t);return i?[e.root??"",e.root?V(e.root):"",e.root?J(e.root):"",e.slug,e.title].map(z).some(o=>o===i||o.endsWith(i)):!1}function Bs(e){return[fe(e.agentCount,"agent"),fe(e.sessionCount,"session"),e.lastActivityAt?_(e.lastActivityAt):null].filter(Boolean).join(" · ")}function fe(e,t){return`${e} ${t}${e===1?"":"s"}`}function Os(e,t){return Ve(e,t)}function je(e){return/^native:process:/iu.test(e??"")}function Hs(e){return e.startsWith("/")||e.startsWith("~/")||e.includes("/")&&/\.(jsonl?|events)$/i.test(e)}function we(e,t,i){const n=e?.trim()??"";return!n||Hs(n)?t:n}function zs({session:e,sessionRef:t,threads:i,lookup:n,route:o,navigate:r,nowMs:a}){const[c,m]=h.useState(null),f=e?.agentName??o.selectedAgentId??o.agentId??"Session",j=e?.harness??"session",x=n?.kind==="observe"?n.observe.data:null,w=x?.metadata?.session,y=e?.lastActivityAt??n?.session?.lastMessageAt??null,[T,L,S]=h.useMemo(()=>[oe(x),ke(x,y),Ks(x,y)],[x,y]),E=w?.gitBranch??n?.session?.currentBranch??e?.branch??null,W=w?.model??null,P=w?.turnCount??x?.metadata?.usage?.assistantMessages??(n?.kind==="conversation"?n.session.messageCount:null),D=L?_(L,a):e?.lastActivityAt?_(e.lastActivityAt,a):"—",A=e?.working?`live · last ${D}`:D!=="—"?`last ${D}`:"trace resolving",N=we(e?.work,f),B=ve(t),I=n?.session??null,k=n?.kind==="observe"?n.observe.agentId??I?.agentId??e?.agentId:I?.agentId??e?.agentId,u=n?.kind==="observe"?n.observe.sessionId:I?.harnessSessionId,g=[f,j,W,E,T?`started ${We(T)}`:null,S,P!=null?`turn ${v(P)}`:null,B].filter(p=>!!p&&p!=="—");h.useEffect(()=>{let p=!0;return m(null),!k&&!u&&!t?()=>{p=!1}:(Oe({includeDiscovered:!0}).then(R=>{p&&m(ms(R,{agentId:k,sessionRefs:[t,u,e?.sessionId]}))}).catch(()=>{p&&m(null)}),()=>{p=!1})},[e?.sessionId,t,k,u]);const b=()=>{c&&Ue(r,{view:"terminal",terminalSessionId:c.terminalSessionId,terminalSurfaceKey:c.terminalSurfaceKey,mode:"takeover"},{returnTo:o})},d=c?hs(c,"takeover"):null;return s.jsxs("section",{className:"pi-sessionOverview","aria-label":"Session overview",children:[s.jsxs("section",{className:"pi-sessionMasthead","data-state":e?.working?"working":"recent",children:[s.jsxs("div",{className:"pi-sessionMastTop",children:[s.jsx("span",{className:"pi-sessionCrumb",children:"Sessions ▸"}),s.jsx("h2",{className:"pi-sessionHeadline",title:N,children:N}),s.jsxs("span",{className:"pi-sessionState",children:[e?.working?s.jsx("span",{className:"pi-sessionLiveDot","aria-hidden":!0}):null,A]})]}),s.jsx("div",{className:"pi-sessionMeta",children:g.map((p,R)=>s.jsxs("span",{title:R===g.length-1?t:p,children:[R===1?s.jsx(ge,{harness:j,size:11}):null,p]},`${p}:${R}`))}),c?s.jsxs("div",{className:"pi-sessionTerminalActions","aria-label":"tmux terminal actions",children:[s.jsxs("span",{className:"pi-sessionTerminalName",title:c.sessionName,children:["tmux · ",c.sessionName]}),s.jsx("button",{type:"button",onClick:b,children:"Open in web terminal"}),d?s.jsxs("a",{href:d,children:["Open in native terminal",s.jsx(cs,{size:11,strokeWidth:1.8,"aria-hidden":!0})]}):null]}):null]}),s.jsx(et,{lookup:n,session:e,threads:i,nowMs:a,route:o,navigate:r})]})}function qs({session:e,sessionRef:t,threads:i,route:n,navigate:o,nowMs:r}){const[a,c]=h.useState(null);return h.useEffect(()=>{c(null)},[t]),s.jsx("main",{className:"pi-sessionDetail","aria-label":"Selected session",children:s.jsxs("div",{className:"pi-sessionContent",children:[s.jsx(zs,{session:e,sessionRef:t,threads:i,lookup:a,route:n,navigate:o,nowMs:r}),s.jsx(Xe,{sessionRef:t,navigate:o,showObserveRail:!1,onLookup:c})]})})}function v(e){return typeof e!="number"||!Number.isFinite(e)?"—":Math.abs(e)<1e3?e.toLocaleString("en-US"):Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}function Ne(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?"—":`${v(e)} tok`}function G(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:null}function Gs(e){const t=G(e?.contextInputTokens),i=G(e?.contextWindowTokens);return t===null||i===null?null:Math.max(0,Math.min(1,t/i))}function _s(e){const t=[{key:"input",label:"input",value:G(e?.inputTokens)??0},{key:"cache-read",label:"cache rd",value:G(e?.cacheReadInputTokens)??0},{key:"cache-write",label:"cache wr",value:G(e?.cacheCreationInputTokens)??0},{key:"output",label:"output",value:G(e?.outputTokens)??0},{key:"reasoning",label:"reasoning",value:G(e?.reasoningOutputTokens)??0}].filter(r=>r.value>0),i=t.reduce((r,a)=>r+a.value,0),n=t.filter(r=>r.key!=="reasoning"||i>0&&r.value/i>=.02);if(n.length>0)return n;const o=G(e?.totalTokens);return o!==null?[{key:"total",label:"total",value:o}]:[]}function Vs({buckets:e}){const t=e.reduce((i,n)=>i+n.value,0);return e.length===0?null:s.jsxs("div",{className:"pi-sessionGlanceTokens","aria-label":"Token usage",children:[s.jsx("div",{className:"pi-sessionGlanceTokenBars",children:e.map(i=>s.jsx("span",{className:"pi-sessionGlanceTokenSeg","data-kind":i.key,style:{flexGrow:t>0?Math.max(.035,i.value/t):1,flexBasis:0},title:`${i.label}: ${Ne(i.value)}`},i.key))}),s.jsx("div",{className:"pi-sessionGlanceTokenLegend",children:e.map(i=>s.jsxs("span",{children:[s.jsx("i",{"data-kind":i.key,"aria-hidden":!0}),i.label," ",s.jsx("b",{children:v(i.value)})]},i.key))})]})}function oe(e){const t=ee(e?.metadata?.session?.sessionStart);if(t!==null)return t;for(const i of e?.events??[]){const n=ee(i.at);if(n!==null)return n}return null}function ke(e,t){for(let o=(e?.events.length??0)-1;o>=0;o-=1){const r=ee(e?.events[o]?.at);if(r!==null)return r}const i=oe(e),n=e?.events.at(-1)?.t;return i!==null&&typeof n=="number"&&Number.isFinite(n)?i+n*1e3:ee(t)}function Ks(e,t){const i=oe(e),n=ke(e,t);if(i!==null&&n!==null)return ie(Math.max(0,n-i))||"—";const o=e?.events.at(-1)?.t;return typeof o=="number"&&Number.isFinite(o)&&ie(o*1e3)||"—"}function ie(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"";const t=Math.floor(e/1e3);if(t<60)return`${t}s`;const i=Math.floor(t/60);if(i<60)return`${i}m`;const n=Math.floor(i/60),o=i%60;if(n<48)return o>0?`${n}h ${o}m`:`${n}h`;const r=Math.floor(n/24),a=n%24;return a>0?`${r}d ${a}h`:`${r}d`}function Us(e){const t=e?.metadata?.topology;if(!t)return null;const i=t.agents.length,n=t.agents.filter(c=>c.role!=="lead").length,o=t.groups.filter(c=>c.kind==="workflow").length,r=t.tasks.length,a=[];return n>0?a.push(`${n} worker${n===1?"":"s"}`):i>0&&a.push(`${i} agent${i===1?"":"s"}`),o>0&&a.push(`${o} workflow${o===1?"":"s"}`),r>0&&a.push(`${r} task${r===1?"":"s"}`),a.length?a.join(" · "):null}function Xs(e){return[...e].sort((t,i)=>xe(i.state)-xe(t.state)||i.touches-t.touches||i.lastT-t.lastT||t.path.localeCompare(i.path)).slice(0,5).map(t=>({path:t.path,kind:t.state,detail:[t.touches>1?`${v(t.touches)} touches`:"1 touch",t.lastT>0?`last ${ie(t.lastT*1e3)}`:null].filter(Boolean).join(" · ")}))}function xe(e){switch(e){case"created":return 3;case"modified":return 2;case"read":return 1}}function Ys(e){const t=new Map;for(const i of e){if(i.kind!=="tool")continue;const n=Zs(i.tool||i.text),o=t.get(n)??{count:0,samples:[]};o.count+=1;const r=i.arg||i.detail||i.text;r&&o.samples.length<2&&o.samples.push(r),t.set(n,o)}return[...t.entries()].sort((i,n)=>n[1].count-i[1].count||i[0].localeCompare(n[0])).slice(0,5).map(([i,n])=>({name:i,count:n.count,detail:n.samples.join(" · ")||`${v(n.count)} uses`}))}function Zs(e){return(e.trim().split(/\s+/u)[0]??"tool").replace(/[_-]+/gu," ").toLowerCase()}function Js({usage:e,contextPct:t,topology:i,workspace:n,projectRoot:o,branch:r}){const a=[];return t!==null&&a.push({label:"Context",value:`${t}%`,detail:t>=80?"approaching limit":"within window",tone:t>=80?"warn":void 0}),(e?.serviceTier||e?.planType||e?.speed)&&a.push({label:"Budget",value:e.serviceTier??e.planType??e.speed??"usage",detail:[e.planType,e.speed].filter(Boolean).join(" · ")||"provider metadata"}),n&&o&&n!==o?a.push({label:"Worktree",value:V(n),detail:"session cwd differs from project root",tone:"warn"}):r&&a.push({label:"Repo",value:r,detail:"session branch"}),i&&a.push({label:"Topology",value:i,detail:"observed harness hierarchy"}),(e?.webSearchRequests||e?.webFetchRequests)&&a.push({label:"Network",value:`${v((e.webSearchRequests??0)+(e.webFetchRequests??0))} req`,detail:[e.webSearchRequests?`${v(e.webSearchRequests)} search`:null,e.webFetchRequests?`${v(e.webFetchRequests)} fetch`:null].filter(Boolean).join(" · ")}),a.slice(0,4)}function Qs({session:e,threads:t,nowMs:i}){return t.filter(n=>n.kind==="agent").filter(n=>n.agentId!==e?.agentId||n.work!==e?.work).sort((n,o)=>Number(o.working)-Number(n.working)||o.lastActivityAt-n.lastActivityAt).slice(0,4).map(n=>{const o=!!(e?.branch&&n.branch===e.branch),r=!!(e?.agentName&&n.agentName===e.agentName);return{thread:n,title:we(n.work,n.agentName,n.id),channel:n.conversationId?ve(n.conversationId):n.agentName,state:n.needs?"needs":n.working?"working":"recent",time:n.lastActivityAt?_(n.lastActivityAt,i):"—",participants:n.agentName,why:o?"same branch":r?"same agent":n.working?"active in project":"project thread"}})}function Y({label:e,value:t,title:i,detail:n}){return s.jsxs("span",{className:"pi-sessionGlanceField",title:i,children:[s.jsx("span",{children:e}),s.jsx("b",{children:t}),n?s.jsx("small",{children:n}):null]})}function et({lookup:e,session:t,threads:i,nowMs:n,route:o,navigate:r}){const[a,c]=h.useState(!1),m=h.useMemo(()=>{const k=e?.kind==="observe"?e.observe.data:null,u=k?.metadata?.session,g=k?.metadata?.usage,b=k?.events??[],d=k?.files??[],p=u?.turnCount??g?.assistantMessages??(e?.kind==="conversation"?e.session.messageCount:null),R=b.filter(U=>U.kind==="tool").length,M=d.filter(U=>U.state==="created").length,l=d.filter(U=>U.state==="modified").length,$=d.filter(U=>U.state==="read").length,O=M+l,F=Gs(g),H=F!==null?Math.round(F*100):null,C=u?.cwd??e?.session?.workspaceRoot??t?.projectRoot??null,K=u?.gitBranch??e?.session?.currentBranch??t?.branch??null,q=Us(k),se=Ne(g?.totalTokens??(typeof g?.inputTokens=="number"||typeof g?.outputTokens=="number"?(g?.inputTokens??0)+(g?.outputTokens??0):null)),ye=_s(g),Ce=O>0?[l>0?`${v(l)} mod`:null,M>0?`${v(M)} new`:null].filter(Boolean).join(" · "):$>0?"read-only":"no file trace",Ae=d.length>0?`${v(d.length)} touched`:"—",Re=Xs(d),Te=Ys(b),Le=Js({usage:g,contextPct:H,topology:q,workspace:C,projectRoot:t?.projectRoot,branch:K}),Pe=Qs({session:t,threads:i,nowMs:n});return{turnCount:p,toolCount:R,editCount:O,fileCountLabel:Ae,fileStateLabel:Ce,workspace:C,contextPct:H,showContext:H!==null,contextWarn:H!==null&&H>=80,tokenTotal:se,buckets:ye,fileSignals:Re,toolSignals:Te,contextSignals:Le,threadSignals:Pe,projectRoot:t?.projectRoot??null}},[e,t,i,n]),{turnCount:f,toolCount:j,editCount:x,fileCountLabel:w,fileStateLabel:y,workspace:T,contextPct:L,showContext:S,contextWarn:E,tokenTotal:W,buckets:P,fileSignals:D,toolSignals:A,contextSignals:N,threadSignals:B,projectRoot:I}=m;return s.jsxs("section",{className:"pi-sessionGlance","aria-label":"Session glance",children:[s.jsxs("div",{className:"pi-sessionVitals","aria-label":"Session vitals",children:[s.jsx(Y,{label:"Turns",value:v(f)}),s.jsx(Y,{label:"Tools",value:v(j)}),s.jsx(Y,{label:"Edits",value:v(x)}),s.jsx(Y,{label:"Files",value:w,detail:y!=="no file trace"?y:null}),T&&I&&T!==I?s.jsx(Y,{label:"Worktree",value:V(T),title:T}):null,S?s.jsxs("span",{className:"pi-sessionContextVital",title:"Context window usage",children:[s.jsx("span",{children:"Ctx"}),s.jsx("span",{className:"pi-sessionContextBar","aria-hidden":!0,children:s.jsx("span",{"data-warn":E||void 0,style:{width:`${L}%`}})}),s.jsxs("b",{"data-warn":E||void 0,children:[L,"%"]})]}):null,P.length>0?s.jsxs("button",{type:"button",className:"pi-sessionTokenToggle","aria-expanded":a,onClick:()=>c(k=>!k),children:[s.jsx("span",{children:"Tokens"}),s.jsx("b",{children:W}),s.jsx("i",{children:a?"▾":"▸"})]}):null]}),a&&P.length>0?s.jsx(Vs,{buckets:P}):null,s.jsx(st,{files:D,tools:A,context:N,threads:B,route:o,navigate:r})]})}function st({files:e,tools:t,context:i,threads:n,route:o,navigate:r}){return s.jsxs("section",{className:"pi-sessionSignals","aria-label":"Session work signals",children:[s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsxs("div",{className:"pi-sessionSignalHead",children:[s.jsx("span",{children:"Files"}),s.jsx("b",{children:v(e.length)})]}),e.length>0?s.jsx("div",{className:"pi-sessionFileList",children:e.map(a=>s.jsxs("div",{className:"pi-sessionFileRow",children:[s.jsx("span",{"data-kind":a.kind,children:a.kind}),s.jsx("code",{title:a.path,children:a.path}),s.jsx("small",{children:a.detail})]},`${a.kind}:${a.path}`))}):s.jsx("span",{className:"pi-sessionSignalEmpty",children:"No file trace yet."})]}),s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsx("div",{className:"pi-sessionSignalHead",children:s.jsx("span",{children:"Tools · Context · Topology"})}),t.length>0?s.jsx("div",{className:"pi-sessionToolGrid",children:t.map(a=>s.jsxs("span",{className:"pi-sessionToolPill",title:a.detail,children:[s.jsx("b",{children:a.name}),s.jsx("em",{children:v(a.count)})]},a.name))}):null,i.length>0?s.jsx("div",{className:"pi-sessionContextList",children:i.map(a=>s.jsxs("div",{className:"pi-sessionContextRow",children:[s.jsx("span",{children:a.label}),s.jsx("b",{"data-tone":a.tone,children:a.value}),s.jsx("small",{children:a.detail})]},`${a.label}:${a.value}`))}):t.length===0?s.jsx("span",{className:"pi-sessionSignalEmpty",children:"Trace metadata is still resolving."}):null]}),s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsxs("div",{className:"pi-sessionSignalHead",children:[s.jsx("span",{children:"Recent threads"}),s.jsx("b",{children:v(n.length)})]}),n.length>0?s.jsx("div",{className:"pi-sessionThreadList",children:n.map(a=>s.jsxs("button",{type:"button",className:"pi-sessionThreadRow",onClick:()=>r(be(a.thread,o)),children:[s.jsx("span",{className:"pi-sessionThreadTitle",title:a.title,children:a.title}),s.jsxs("span",{className:"pi-sessionThreadMeta",children:[s.jsx("b",{children:a.channel}),s.jsx("em",{children:a.state}),s.jsx("small",{children:a.time})]}),s.jsxs("span",{className:"pi-sessionThreadWhy",children:[a.participants," · ",a.why]})]},a.thread.id))}):s.jsx("span",{className:"pi-sessionSignalEmpty",children:"No recent agent threads."})]})]})}function ne(e){return!e||e==="—"||/^\d+\s+branches$/iu.test(e)?null:e}function Se(e,t,i,n){const o=new Map,r=(c,m)=>{const f=c??e,j=ne(m),x=f??"project",w=o.get(x);if(w)return!w.branch&&j&&(w.branch=j),w;const y={key:x,root:f,branch:j,sessions:0,work:0,moving:0,lastActivityAt:0,repoWatch:null};return o.set(x,y),y};for(const c of t){const m=r(c.root,c.branch);c.working&&(m.moving+=1),m.lastActivityAt=Math.max(m.lastActivityAt,c.lastActivityAt)}const a=(c,m)=>{const f=c??e,j=o.get(f??"project");return j||(t.length>0?o.get(e??"")??o.values().next().value:r(c,m))};for(const c of i){const m=a(c.workspaceRoot??c.projectRoot,c.branch);m.sessions+=1,c.working&&(m.moving+=1,m.branch=ne(c.branch)??m.branch),m.lastActivityAt=Math.max(m.lastActivityAt,c.lastActivityAt)}for(const c of n){const m=a(c.workspaceRoot??c.projectRoot,c.branch);m.work+=1,c.working&&(m.moving+=1,m.branch=ne(c.branch)??m.branch),m.lastActivityAt=Math.max(m.lastActivityAt,c.lastActivityAt)}return o.size===0&&r(e,null),[...o.values()].sort((c,m)=>m.moving-c.moving||m.lastActivityAt-c.lastActivityAt||(c.root??"").localeCompare(m.root??""))}function tt(e){return e.worktrees.map(t=>({key:t.id,root:t.path,branch:t.branch.name,sessions:t.sessions.length,work:t.agents.length,moving:t.agents.some($e)?1:0,lastActivityAt:t.lastCommitAt??0,repoWatch:t}))}function nt({pullRequests:e,loading:t,warnings:i,onRefresh:n,nowMs:o}){return s.jsxs("section",{className:"pi-projectPullRequests","aria-label":"Open pull requests",children:[s.jsxs("div",{className:"pi-projectPullRequestsHead",children:[s.jsx("span",{children:"Open PRs"}),s.jsx("b",{children:t&&e.length===0?"…":v(e.length)})]}),e.length>0?s.jsx("div",{className:"pi-projectPullRequestList",children:e.slice(0,6).map(r=>{const a=r.updatedAt?Date.parse(r.updatedAt):Number.NaN;return s.jsxs("a",{className:"pi-projectPullRequest",href:r.url,target:"_blank",rel:"noreferrer",children:[s.jsxs("span",{className:"pi-projectPullRequestNumber",children:["#",r.number]}),s.jsx("b",{title:r.title,children:r.title}),s.jsxs("span",{className:"pi-projectPullRequestBranch",title:`${r.headRefName} → ${r.baseRefName}`,children:[r.headRefName," → ",r.baseRefName]}),s.jsx("em",{children:r.isDraft?"draft":"open"}),s.jsx("time",{children:Number.isFinite(a)?_(a,o):"updated"})]},r.id)})}):s.jsxs("div",{className:"pi-projectPullRequestState","data-loading":t||void 0,children:[s.jsx("span",{children:t?"Checking GitHub for open pull requests…":i[0]??"No open pull requests for this repository."}),!t&&i.length>0?s.jsx("button",{type:"button",onClick:n,children:"Retry"}):null]})]})}function it(e){const t=new Set;let i=0,n=0;const o=[];for(const r of e.layers){r.files.length>0&&o.push(r.kind);for(const a of r.files)t.add(a.newPath??a.oldPath??"unknown"),i+=a.additions??0,n+=a.deletions??0}return{additions:i,deletions:n,files:[...t],layers:o}}function ot({additions:e,deletions:t}){return e+t===0?s.jsx("span",{className:"pi-projectWorktreeChurnBar","data-empty":!0}):s.jsxs("span",{className:"pi-projectWorktreeChurnBar","aria-label":`${e} additions and ${t} deletions`,children:[e>0?s.jsx("i",{"data-add":!0,style:{flexGrow:e}}):null,t>0?s.jsx("i",{"data-delete":!0,style:{flexGrow:t}}):null]})}function at({project:e,repoProject:t,repoLoading:i,repoError:n,diffSnapshots:o,diffErrors:r,diffLoading:a,pullRequests:c,pullRequestsLoading:m,pullRequestWarnings:f,onRepositoryRefresh:j,threads:x,sessions:w,route:y,navigate:T,nowMs:L}){const S=e?.root??w[0]?.projectRoot??x[0]?.projectRoot??null,E=x.length,W=e?.sessionCount??w.length,P=e?.agentCount??0,D=Math.max(e?.lastActivityAt??0,w[0]?.lastActivityAt??0,x[0]?.lastActivityAt??0),A=e?.branches.length?e.branches:[...new Set([...w.map(u=>u.branch),...x.map(u=>u.branch)].filter(u=>!!u&&u!=="—"&&u!=="main"))],N=t?.worktrees.length?tt(t):Se(S,e?.worktrees??[],w,x),B=N.find(u=>u.moving>0&&u.branch)?.branch??N.find(u=>u.branch)?.branch??A[0]??"main",I=S?J(S):e?.title??y.projectSlug??"project",k=N.find(u=>u.moving>0)?.key??N.find(u=>u.branch===B)?.key??N[0]?.key;return s.jsxs("main",{className:"pi-projectOverview","aria-label":"Project overview",children:[s.jsxs("section",{className:"pi-projectSnapshot","aria-label":"Project snapshot",children:[s.jsxs("div",{className:"pi-projectRepository",children:[s.jsxs("div",{className:"pi-projectRepositoryHead",children:[s.jsx("span",{children:"Repository"}),s.jsx(us,{size:13,strokeWidth:1.7,"aria-hidden":!0})]}),s.jsxs("div",{className:"pi-projectRepositoryIdentity",children:[s.jsx("b",{children:I}),s.jsx("span",{title:S??void 0,children:S?V(S):y.projectSlug??"project"})]}),s.jsxs("div",{className:"pi-projectRepositoryCurrent",children:[N.some(u=>u.moving>0)?s.jsx("span",{className:"pi-projectRepositoryPulse","aria-label":"Active now"}):null,s.jsxs("span",{children:[s.jsx("small",{children:"Current branch"}),s.jsx("b",{title:B,children:B})]}),s.jsx("time",{children:D?_(D,L):"no activity"})]}),W>0||P>0||E>0?s.jsxs("div",{className:"pi-projectRepositoryStats","aria-label":"Repository activity",children:[W>0?s.jsxs("span",{children:[s.jsx("b",{children:v(W)})," ",W===1?"session":"sessions"]}):null,P>0?s.jsxs("span",{children:[s.jsx("b",{children:v(P)})," ",P===1?"agent":"agents"]}):null,E>0?s.jsxs("span",{children:[s.jsx("b",{children:v(E)})," ",E===1?"thread":"threads"]}):null]}):null]}),s.jsxs("div",{className:"pi-projectWorktrees",children:[s.jsxs("div",{className:"pi-projectWorktreesHead",children:[s.jsx("span",{children:"Worktree preview"}),s.jsx("b",{children:v(N.length)})]}),s.jsx("div",{className:"pi-projectWorktreeList",children:N.slice(0,6).map(u=>{const g=u.repoWatch,b=u.root?o.get(u.root)??null:null,d=b?it(b):null,p=g?Ie(g):null,R=d?.additions??p?.add??0,M=d?.deletions??p?.del??0,l=d?.files.length??(g?Math.max(g.status.changedFiles,p?.files??0):0),$=!!(l>0||g&&(!g.status.clean||g.branch.ahead>0||g.branch.behind>0)),O=c.filter(C=>C.headRefName===u.branch),F=!!(u.root&&a&&!b&&!r.has(u.root)),H=u.root?r.get(u.root)??null:"No worktree path is available.";return s.jsxs("article",{className:"pi-projectWorktree","data-active":u.key===k||void 0,"data-stranded":$||void 0,children:[s.jsx("span",{className:"pi-projectWorktreeTop",children:s.jsx("b",{title:u.branch??"main",children:u.branch??"main"})}),s.jsx("em",{title:u.root??void 0,children:u.root?V(u.root):"workspace"}),b||g?s.jsxs("div",{className:"pi-projectWorktreeDiff","data-clean":!$||void 0,children:[$?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"pi-projectWorktreeChurn",children:[s.jsxs("b",{className:"pi-projectWorktreeAdd",children:["+",v(R)]}),s.jsxs("b",{className:"pi-projectWorktreeDel",children:["−",v(M)]}),s.jsx(ot,{additions:R,deletions:M})]}),s.jsxs("small",{children:[v(l)," changed"]})]}):s.jsx("small",{children:"clean"}),u.root?s.jsx("button",{type:"button",className:"pi-projectWorktreeOpenDiff",onClick:()=>T({view:"repo-diff",path:u.root}),children:"View diff"}):null]}):s.jsxs("div",{className:"pi-projectWorktreeDiff","data-pending":!0,children:[s.jsx("small",{children:F||i?"Reading worktree diff…":H??n??"No diff data returned."}),!F&&!i?s.jsx("button",{type:"button",className:"pi-projectWorktreeOpenDiff",onClick:j,children:"Retry"}):null]}),d&&d.files.length>0?s.jsxs("span",{className:"pi-projectWorktreeFiles",title:d.files.join(`
2
- `),children:[d.files.slice(0,2).map(C=>J(C)).join(" · "),d.files.length>2?` · +${d.files.length-2} more`:""]}):null,s.jsx("span",{className:"pi-projectWorktreeMeta",children:g?s.jsxs(s.Fragment,{children:[s.jsx("small",{children:g.branch.ahead>0||g.branch.behind>0?`${g.branch.ahead}↑ ${g.branch.behind}↓`:"synced"}),g.status.staged>0?s.jsxs("small",{children:[v(g.status.staged)," staged"]}):null,g.status.unstaged>0?s.jsxs("small",{children:[v(g.status.unstaged)," unstaged"]}):null,g.status.untracked>0?s.jsxs("small",{children:[v(g.status.untracked)," untracked"]}):null,g.status.conflicts>0?s.jsxs("small",{children:[v(g.status.conflicts)," conflicts"]}):null,d?.layers.map(C=>s.jsx("small",{children:C},C)),O.length>0?s.jsxs("small",{children:[O.length," PR",O.length===1?"":"s"]}):null]}):s.jsxs(s.Fragment,{children:[s.jsx("small",{children:u.lastActivityAt?_(u.lastActivityAt,L):"idle"}),s.jsxs("small",{children:[v(u.sessions)," sessions"]}),s.jsxs("small",{children:[v(u.work)," threads"]})]})})]},u.key)})}),N.length>6?s.jsxs("div",{className:"pi-projectWorktreeMore",children:["+",N.length-6," more worktrees"]}):null]})]}),s.jsx(nt,{pullRequests:c,loading:m,warnings:f,onRefresh:j,nowMs:L})]})}function rt({project:e,threads:t,sessions:i,route:n,navigate:o,nowMs:r}){const a=e?.root??i[0]?.projectRoot??t[0]?.projectRoot??null,c=h.useMemo(()=>Se(a,e?.worktrees??[],i,t).map(f=>f.root).filter(f=>!!f),[e?.worktrees,a,i,t]),m=Ss(a,c);return s.jsx(at,{project:e,repoProject:m.project,repoLoading:m.repoLoading,repoError:m.repoError,diffSnapshots:m.diffSnapshots,diffErrors:m.diffErrors,diffLoading:m.diffLoading,pullRequests:m.pullRequests,pullRequestsLoading:m.pullRequestsLoading,pullRequestWarnings:m.pullRequestWarnings,onRepositoryRefresh:m.refresh,threads:t,sessions:i,route:n,navigate:o,nowMs:r})}function ji({route:e,navigate:t,zeroPreview:i=!1,embedded:n=!1}){const{model:o,nowMs:r,loading:a,error:c,agents:m=ys}=Je(e),f=!!e.projectSlug,j=e.projectSlug?He(o,e.projectSlug)??e.projectSlug:null,x=j&&j!==e.projectSlug?{...e,projectSlug:j}:e,w=f&&!je(e.sessionId)?e.sessionId??null:null,y=h.useMemo(()=>w?Os(o.sessions,x):null,[x,o.sessions,w]),T=f?e.indexView==="agents"?"agents":e.indexView==="sessions"?"sessions":"overview":"overview",L=f?o.projects.find(b=>b.slug===j)??null:null,S=f?L?.title??j:"Projects";es(S,n);const E=h.useMemo(()=>{if(i)return[];if(!f)return[];const b=j,d=Z(o.threads,b),p=ae(o.sessions,b);return T==="overview"?[]:T==="agents"?[]:p.length>0?p:d},[j,o.sessions,o.threads,T,f,i]),W=h.useMemo(()=>ze(E),[E]),P=h.useMemo(()=>W.flatMap(b=>b.items),[W]),D=o.projects.length>0||o.threads.length>0||o.sessions.length>0,A=a&&!D,N=a&&!i,B=!f&&!N&&(i||o.projects.length===0&&E.length===0),I=!f&&!B,[k,u]=h.useState(-1),g=h.useRef(new Map);return h.useEffect(()=>{!f||!e.sessionId||!je(e.sessionId)||t({...x,indexView:"sessions",sessionId:void 0,selectedAgentId:void 0})},[x,t,e.sessionId,f]),h.useEffect(()=>{u(-1)},[j]),h.useEffect(()=>{function b(d){const p=document.activeElement;if(!!p&&(p.tagName==="INPUT"||p.tagName==="TEXTAREA"||p.isContentEditable))return;const M=P.length;if(M){if(d.key==="ArrowDown"||d.key==="j")d.preventDefault(),u(l=>l<0?0:Math.min(M-1,l+1));else if(d.key==="ArrowUp"||d.key==="k")d.preventDefault(),u(l=>l<0?0:Math.max(0,l-1));else if(d.key==="Enter"){const l=P[k<0?0:k];l&&(d.preventDefault(),t(l.kind==="session"?re(l,x):le(l,x)))}}}return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[k,x,P,t]),h.useEffect(()=>{if(k<0)return;const b=P[k];b&&g.current.get(b.id)?.scrollIntoView({block:"nearest"})},[k,P]),s.jsxs("div",{className:"s-pi s-pi-inbox","aria-busy":a||void 0,"data-loading":a||void 0,children:[f?s.jsx(Ts,{route:x,navigate:t,slug:j,model:o,mode:T,repoProject:null}):s.jsx("div",{className:"pi-inboxHead",children:s.jsxs("div",{className:"pi-inboxHeading",children:[s.jsx("h1",{className:"pi-inboxTitle",children:"Projects"}),s.jsx("span",{className:"pi-inboxDigest",children:Ps(o,i)})]})}),w?s.jsx(qs,{session:y,sessionRef:w,threads:Z(o.threads,j),route:x,navigate:t,nowMs:r}):f&&T==="overview"?s.jsx(rt,{project:L,threads:Z(o.threads,j),sessions:ae(o.sessions,j),route:x,navigate:t,nowMs:r}):f&&T==="agents"&&L?s.jsx(Ye,{project:L,threads:Z(o.threads,j),route:x,navigate:t,nowMs:r}):I?s.jsx(Ze,{model:o,agents:m,route:e,navigate:t,nowMs:r}):s.jsxs("div",{className:"pi-threads",children:[A?s.jsx(Rs,{}):null,!A&&W.map(b=>{let d=0;for(const p of W){if(p.group===b.group)break;d+=p.items.length}return s.jsxs("div",{children:[s.jsxs("div",{className:"pi-sectionHead","data-tone":b.group,children:[s.jsx("span",{className:"pi-sectionLabel",children:b.label}),s.jsx("span",{className:"pi-sectionCount",children:b.items.length})]}),b.items.map((p,R)=>{const M=d+R;return s.jsx(As,{thread:p,crossProject:!f,selected:p.kind==="session"?Ge(p,x,o.sessions):_e(p,x,o.threads),cursor:k===M,nowMs:r,onSelect:()=>{const l=p.kind==="session"?qe(p,x):be(p,x);t(l)},onOpen:()=>t(p.kind==="session"?re(p,x):le(p,x)),rowRef:l=>{l?g.current.set(p.id,l):g.current.delete(p.id)}},p.id)})]},b.group)}),!A&&E.length===0?c&&!D?s.jsx(pe,{tone:"error",title:"Projects unavailable",detail:c}):B?s.jsx("div",{className:"pi-empty",children:s.jsx(Ms,{route:e,navigate:t,projects:o.projects})}):N?s.jsx("div",{className:"pi-empty",children:"Loading…"}):s.jsx(pe,{title:lt(f,T)}):null]})]})}function lt(e,t){return e&&t==="agents"?"No visible agents in this project.":e?"No sessions in this project yet.":"No projects yet."}export{ji as ProjectsInbox,As as ThreadRow};
@@ -1 +0,0 @@
1
- import{r as p,j as e}from"./index-C8uS5szO.js";import{t as P}from"./time-Dhsh_2EG.js";import{F as y,A as b}from"./AddProjectForm-DfbjlFfy.js";import{s as k}from"./project-overview-helpers-BQTc_Ous.js";import{u as C}from"./projects-inbox-DvbqJO3q.js";import{r as A}from"./Provider-5Hotn7NQ.js";import{S as x}from"./search-C4VlW_0l.js";import{X as w}from"./x-DI1ktCYb.js";import{C as F}from"./chevron-down-B5eMsn5c.js";import{F as v}from"./folder-0fWevPvQ.js";import"./api-CaROe5_H.js";import"./createLucideIcon-DkjnzvcJ.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./sse-v5QLsOHV.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./tail-events-DQ46QBW1.js";import"./conversation-model-BGFHoxQ0.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";import"./conversations-Cbg9h_Af.js";import"./machine-scope-DJt9RZ2w.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";function G(t){return t.needs>0?"needs":t.working>0||t.liveSessionCount>0?"working":"idle"}function L(t){return[t.title,t.slug,t.root??""].join(" ").toLowerCase()}function R(t,a,s){const o=a.trim().toLowerCase();return[...o?t.filter(i=>L(i).includes(o)):t].sort((i,n)=>s==="name"?i.title.localeCompare(n.title):n.lastActivityAt-i.lastActivityAt||i.title.localeCompare(n.title))}function W({rows:t=7}){return e.jsx("div",{className:"pi-railLoading","aria-hidden":"true",children:Array.from({length:t},(a,s)=>e.jsx("div",{className:"pi-projectGroup pi-projectGroup--loading",children:e.jsx("div",{className:"pi-projectGroupHead pi-projectGroupHead--flat",children:e.jsxs("span",{className:"pi-projectPath pi-projectPath--flat",children:[e.jsx(v,{size:13,strokeWidth:1.6,"aria-hidden":!0}),e.jsxs("span",{className:"pi-projectPathStack",children:[e.jsx("span",{className:"pi-loadingLine pi-loadingLine--railProject"}),e.jsx("span",{className:"pi-loadingLine pi-loadingLine--railRoot"})]})]})})},s))})}function Ae({route:t,navigate:a,zeroPreview:s=!1}){const{model:o,nowMs:l,loading:i,error:n}=C(t),[c,j]=p.useState(""),[d,N]=p.useState("recent"),[h,u]=p.useState(!1),m=p.useMemo(()=>R(s?[]:o.projects,c,d),[o.projects,c,d,s]),g=t.projectSlug?A(o,t.projectSlug)??t.projectSlug:void 0,f=i&&o.projects.length===0&&!s,S=p.useCallback(r=>{a({view:"agents-v2",projectSlug:r,...t.machineId?{machineId:t.machineId}:{},...t.showEphemeral?{showEphemeral:!0}:{}})},[a,t.machineId,t.showEphemeral]);return e.jsxs("nav",{className:"s-pi s-pi-rail","aria-label":"Projects","aria-busy":i||void 0,"data-loading":i||void 0,children:[e.jsxs("div",{className:"pi-railFind",role:"search",children:[e.jsx(x,{size:13,strokeWidth:1.8,"aria-hidden":!0}),e.jsx("input",{className:"pi-railFindInput",type:"search",value:c,placeholder:"Find project","aria-label":"Find project",onChange:r=>j(r.currentTarget.value)}),c?e.jsx("button",{type:"button",className:"pi-railFindClear","aria-label":"Clear",onClick:()=>j(""),children:e.jsx(w,{size:12,strokeWidth:2,"aria-hidden":!0})}):null]}),e.jsx("div",{className:"pi-railBody",children:e.jsxs("div",{className:"pi-railGroup pi-railGroup--projects",children:[e.jsxs("div",{className:"pi-railProjectTools",children:[e.jsx("div",{className:"pi-railLabel",children:"Projects"}),e.jsxs("label",{className:"pi-railSortWrap",title:"Sort projects",children:[e.jsx("span",{className:"pi-srOnly",children:"Sort projects"}),e.jsxs("select",{className:"pi-railSort",value:d,"aria-label":"Sort projects",onChange:r=>N(r.currentTarget.value),children:[e.jsx("option",{value:"recent",children:"Recent"}),e.jsx("option",{value:"name",children:"Name"})]}),e.jsx(F,{size:12,strokeWidth:2,"aria-hidden":!0})]}),e.jsx("button",{type:"button",className:"pi-railAddBtn","aria-expanded":h,"aria-label":"Add project",title:"Add a project by path",onClick:()=>u(r=>!r),children:e.jsx(y,{size:13,strokeWidth:1.8,"aria-hidden":!0})})]}),h?e.jsx(b,{onClose:()=>u(!1)}):null,f?e.jsx(W,{}):n&&m.length===0?e.jsx("div",{className:"pi-railEmpty",children:"Projects unavailable."}):m.length===0?e.jsx("div",{className:"pi-railEmpty",children:c?"No projects matched.":"No projects yet."}):e.jsx("div",{className:"pi-projectIndex",children:m.map(r=>e.jsx(E,{project:r,selected:g===r.slug,nowMs:l,onOpen:S},r.slug))})]})}),e.jsx("div",{className:"pi-railFoot",children:e.jsxs("button",{type:"button",className:"pi-railFootBtn",onClick:()=>a({view:"search"}),children:[e.jsx(x,{size:13,strokeWidth:1.8,"aria-hidden":!0}),"Search all Scout"]})})]})}function E({project:t,selected:a,nowMs:s,onOpen:o}){const l=G(t),i=t.lastActivityAt?P(t.lastActivityAt,s):"No activity";return e.jsx("div",{className:"pi-projectGroup pi-projectGroup--flat","data-selected":a||void 0,"data-state":l,children:e.jsx("div",{className:"pi-projectGroupHead pi-projectGroupHead--flat",children:e.jsxs("button",{type:"button",className:"pi-projectPath pi-projectPath--flat",title:t.root??t.title,"aria-current":a?"page":void 0,"aria-label":`Open /${t.title}`,onClick:()=>o(t.slug),children:[e.jsx(v,{size:13,strokeWidth:1.6,"aria-hidden":!0}),e.jsxs("span",{className:"pi-projectPathStack",children:[e.jsxs("span",{className:"pi-projectPathText",children:["/",t.title]}),e.jsxs("span",{className:"pi-projectPathMeta",children:[e.jsx("span",{children:t.root?k(t.root):"Discovered project"}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsxs("span",{children:[t.worktreeCount," ",t.worktreeCount===1?"worktree":"worktrees"]}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("time",{children:i})]})]}),l!=="idle"?e.jsx("span",{className:"pi-projectState","data-state":l,children:l==="needs"?"Needs you":"Active"}):null]})})})}export{Ae as ProjectsRail,R as filterAndSortProjects};
@@ -1 +0,0 @@
1
- import{r as n,j as e}from"./index-C8uS5szO.js";import{p as a,e as u,u as l}from"./Provider-5Hotn7NQ.js";import{d as f}from"./types-B0PlfpKc.js";import{ProjectsInbox as d}from"./ProjectsInbox-Bs8I__my.js";import{ProjectAgentProfile as j}from"./ProjectAgentProfile-q_1tMJIL.js";import{u as w}from"./projects-inbox-DvbqJO3q.js";import{i as P}from"./model-CBkMvT1w.js";/* empty css */import"./router-BKiMcYa7.js";import"./api-CaROe5_H.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversation-model-BGFHoxQ0.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./AgentAvatar-BIwg54Tj.js";import"./SpriteAvatar-BW1JzkDt.js";import"./CrewAvatar-CJhuqTsJ.js";import"./ui-LM8pS8qE.js";import"./openContent-C6XO6kr5.js";import"./SessionRefScreen-BOQ1_ydg.js";import"./tail-events-DQ46QBW1.js";import"./BackToPicker-Bys9ColC.js";import"./ConversationScreen-tTP6B_F-.js";import"./ConversationComposer-B7RU6LKd.js";import"./zap-sKPkh4sQ.js";import"./message-markup-DgFSyb3f.js";import"./mentions-Ctw1ECUC.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./eye-CtqSV8BS.js";import"./terminal-96JWDYDL.js";import"./message-visibility-DwxgcgYK.js";import"./operator-attention-DGR4kOog.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";/* empty css */import"./ConversationHeader-CCSU8uo_.js";import"./AstronautSuit-C-4I5YKi.js";import"./panel-right-BNTJhy8M.js";import"./CommsFlowGraph-Czg-KTS0.js";import"./comms-gesture-_aGFo6g3.js";import"./CommsCanvas-DOKw3Q8i.js";import"./comms-deck-CBhsXnY-.js";import"./CommsFlowMap-CzBWvSa5.js";import"./CommsSelection-g1twA-Lb.js";/* empty css */import"./use-conversation-list-A_YUf8lo.js";import"./agent-master-model-C-KdOFDK.js";import"./use-beside-Df-F2Uvg.js";import"./ConversationFeedRows-DVqnZQH0.js";import"./ConversationPanels-C9yCAoJy.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./use-reduced-motion-D7n3vK8t.js";import"./proxy-DOG46ja4.js";import"./activity-CSUhvjD0.js";import"./message-circle-CSiJj6yo.js";import"./ConversationStatus-CK-YfLpi.js";import"./check-B8dMv3Is.js";import"./sparkles-BbOFw3d0.js";import"./SessionObserve-DaqDhqDI.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-Czggx8oM.js";import"./LaneToolHoverCard-C6YehJqD.js";import"./lane-observe-BD21P8BB.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-DkEkQzo-.js";import"./ObserveTextFlow-ET0dD1wO.js";import"./SessionObserveEvidence-Drv-D8Oh.js";import"./wrench-BsMTSeji.js";import"./external-link-RT4Ph-6-.js";import"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./CrewWorkspaces-4O8dgRUD.js";import"./AddProjectForm-DfbjlFfy.js";import"./agent-specialization-CiVxQsFT.js";import"./project-overview-helpers-BQTc_Ous.js";import"./sliders-horizontal-CHf3ntw0.js";import"./message-square-NmXWtWLR.js";import"./useEmbedHeadline-BL8wQawZ.js";import"./api-B9_IqFKY.js";import"./cache-DEy9E34b.js";import"./arrow-up-right-Hn754ybA.js";import"./AgentsSubnav-BOobgtGE.js";import"./SecondaryNav-BkTn5tkq.js";import"./secondaryNavConfig-DAXIFtVd.js";import"./nav-destinations-CyXnw9kh.js";import"./compass-DTZdCpv9.js";import"./settings-TJIkkZ0P.js";import"./git-branch-CA3cHKCI.js";import"./scroll-text-DwC8r2g6.js";import"./profile-C3KgiZvc.js";import"./context-budget-DemtXu7E.js";import"./session-catalog-s-T_w41t.js";import"./terminal-relay-Bfx8pg80.js";/* empty css */import"./AgentDefinitionsWorkspace-CwZJ833X.js";import"./FileViewerPane-HtiDbj9N.js";import"./agent-essentials-8t2il7PV.js";/* empty css *//* empty css */import"./ProjectAgentProfileBar-C1fR65Eh.js";function h(o,r){const{model:i,loading:t}=w(o),m=n.useRef(void 0),s=n.useRef(o);s.current=o;const c=n.useCallback(p=>{if(p&&t&&i.projects.length===0){m.current=p;return}m.current=void 0,r(a(i,p,s.current))},[t,i,r]);n.useEffect(()=>(u(p=>{c(p.root)}),()=>u(null)),[c]),n.useEffect(()=>{const p=m.current;p!==void 0&&(p&&t&&i.projects.length===0||(m.current=void 0,r(a(i,p,s.current))))},[t,i,r])}function v({route:o,navigate:r,embedded:i=!1}){const t=P(o),m=t?`profile:${o.agentId}`:"index",s=!t&&x();return e.jsx("div",{className:"s-av2","data-view":t?"profile":"index",children:e.jsx("div",{className:"av2-stagePane",children:t?e.jsx(j,{route:o,navigate:r}):e.jsx(d,{route:o,navigate:r,zeroPreview:s,embedded:i})},m)})}function Wr({navigate:o,embedded:r=!1}){const{route:i}=l(),t=i.view==="agents-v2"?i:{view:"agents-v2"};return h(t,o),e.jsx("div",{className:"pi-projectsEmbedShell",children:e.jsx(v,{route:t,navigate:o,embedded:r})})}const Xr=f({id:"projects",label:"Projects",route:{view:"agents-v2"},webPath:"/projects",screen:"ProjectsEmbedScreen",embed:{path:"/embed/projects",profile:"macos.projects",ownsInternalRoutes:!0,rootClassName:"s-projects-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},hosts:{macos:!0}}});function x(){if(typeof window>"u")return!1;const o=window.location.hostname.toLowerCase();if(o!=="localhost"&&o!=="127.0.0.1"&&o!=="::1")return!1;const r=new URLSearchParams(window.location.search).get("zero")?.trim().toLowerCase();return r==="projects"||r==="project"||r==="1"||r==="true"}export{Wr as ProjectsEmbedScreen,v as ProjectsScreen,Xr as scoutSurface};
@@ -1 +0,0 @@
1
- import{j as s}from"./index-C8uS5szO.js";import{A as R}from"./AgentAvatar-BIwg54Tj.js";import{H as y}from"./HarnessMark-Bt47OeHy.js";import{t as O}from"./time-Dhsh_2EG.js";import{s as P}from"./project-overview-helpers-BQTc_Ous.js";import{u as H}from"./projects-inbox-DvbqJO3q.js";import{t as T,b as B,s as C,f as L,c as z}from"./Provider-5Hotn7NQ.js";import{A as b}from"./arrow-up-right-Hn754ybA.js";import"./SpriteAvatar-BW1JzkDt.js";import"./agent-state-DDhnFEEP.js";import"./CrewAvatar-CJhuqTsJ.js";import"./colors-CFlbwC25.js";import"./api-CaROe5_H.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./sse-v5QLsOHV.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./tail-events-DQ46QBW1.js";import"./conversation-model-BGFHoxQ0.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversations-Cbg9h_Af.js";import"./machine-scope-DJt9RZ2w.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./index-C5cX8dkl.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";function V(i,o,t){if(t.sessionId){const r=L(o,t);if(r)return{kind:"session",session:r};const a=z(i,t);if(a)return{kind:"thread",thread:a}}if(t.selectedAgentId){const r=i.find(l=>l.agentId===t.selectedAgentId)??null;if(r)return{kind:"thread",thread:r};const a=o.find(l=>!l.sessionId&&l.agentId===t.selectedAgentId)??null;if(a)return{kind:"session",session:a}}return null}function p({label:i,value:o}){return s.jsxs("span",{className:"pi-stat",children:[s.jsx("span",{className:"pi-statLabel",children:i}),s.jsx("span",{className:"pi-statValue",children:o})]})}function Bs({route:i,navigate:o}){const{model:t,nowMs:r,loading:a,error:l}=H(i);if(!i.sessionId&&!i.selectedAgentId)return null;const d=V(t.threads,t.sessions,i);if(!d)return s.jsxs("div",{className:"s-pi s-pi-aside",children:[s.jsx("header",{className:"pi-asideHead",children:s.jsxs("div",{className:"pi-asideIdent",children:[s.jsx("div",{className:"pi-asideTop",children:s.jsx("span",{className:"pi-asideName",children:a?"Resolving selection":l?"Project data unavailable":"Selection unavailable"})}),s.jsx("div",{className:"pi-asideSub",children:s.jsxs("span",{className:"pi-asideStatus","data-tone":a?"working":"recent",children:[a?s.jsx("span",{className:"pi-asidePulse","aria-hidden":!0}):null,a?"loading":"idle"]})})]})}),s.jsx("div",{className:"pi-asideBody",children:s.jsx("p",{className:"pi-asideMuted",children:l??"The selected item is not in the current project snapshot."})})]});const n=d.kind==="thread"?d.thread:null,e=d.kind==="session"?d.session:null,m=n?.agentName??e?.agentName??"Session",h=n?.harness??e?.harness??"session",f=n?.projectTitle??e?.projectTitle??i.projectSlug??"project",x=n?.branch??e?.branch??null,c=n?.working??e?.working??!1,g=n?.needs?"needs":c?"working":"recent",I=n?.needs?"your turn":c?"working":e?"selected":"idle",k=n?.work??e?.work??"No session detail available.",v=n?.lastActivityAt??e?.lastActivityAt??0,j=e?.sessionId??n?.sessionId??null,u=n?.projectRoot??e?.projectRoot??null,N=n?T(n,i):null,w=n?B(n,i):e?C(e,i):i,A=e?e.route?.view==="conversation"?"Open conversation":e.route?.view==="sessions"?"Open session":e.agentId?"Open agent":"Open project":n?.kind==="native"?"Open session":n?.conversationId?"Open conversation":"Open agent",S={view:"agents-v2",...i.projectSlug?{projectSlug:i.projectSlug}:{},...i.indexView?{indexView:i.indexView}:{},...i.machineId?{machineId:i.machineId}:{},...i.showEphemeral?{showEphemeral:!0}:{}};return s.jsxs("div",{className:"s-pi s-pi-aside",children:[s.jsxs("header",{className:"pi-asideHead",children:[s.jsx("span",{className:"pi-asideAvatar",children:s.jsx(R,{agent:{name:m,harness:h,state:c?"in_turn":null},placement:"row",size:38})}),s.jsxs("div",{className:"pi-asideIdent",children:[s.jsxs("div",{className:"pi-asideTop",children:[s.jsx("span",{className:"pi-asideName",title:m,children:m}),s.jsx("span",{className:"pi-asideHmark","aria-hidden":!0,children:s.jsx(y,{harness:h,size:13})}),s.jsxs("span",{className:"pi-asideProj",children:["/",f]})]}),s.jsxs("div",{className:"pi-asideSub",children:[x?s.jsx("span",{className:"pi-asideBranch",children:x}):null,s.jsxs("span",{className:"pi-asideStatus","data-tone":g,children:[c?s.jsx("span",{className:"pi-asidePulse","aria-hidden":!0}):null,I]})]})]})]}),s.jsxs("div",{className:"pi-asideBody",children:[s.jsx("h2",{className:"pi-asideHeadline",children:k}),s.jsxs("div",{className:"pi-asideReadouts",children:[s.jsx(p,{label:"Last active",value:v?O(v,r):"—"}),s.jsx(p,{label:e?"Session":"Conversations",value:e?"1":String(n?.sessionCount??0)}),s.jsx(p,{label:"Harness",value:h}),n?.contextPct!=null?s.jsx(p,{label:"Context",value:`${n.contextPct}%`}):null]}),e?s.jsxs("div",{className:"pi-asideSection",children:[s.jsx("div",{className:"pi-asideSectionHead",children:"Session context"}),s.jsxs("div",{className:"pi-asideLine",children:[j?s.jsxs("span",{title:j,children:["ref · ",j]}):s.jsx("span",{children:"No stable session reference yet."}),u?s.jsxs("span",{title:u,children:["root · ",P(u)]}):null,e.conversationId?s.jsxs("span",{title:e.conversationId,children:["conversation · ",e.conversationId]}):null]})]}):null,s.jsxs("div",{className:"pi-asideActions",children:[s.jsxs("button",{type:"button",className:"pi-asideBtn pi-asideBtnPrimary",onClick:()=>o(w),children:[A,s.jsx(b,{size:13,strokeWidth:2,"aria-hidden":!0})]}),N?s.jsxs("button",{type:"button",className:"pi-asideBtn",onClick:()=>o(N),children:["Observe",s.jsx(b,{size:13,strokeWidth:2,"aria-hidden":!0})]}):null,s.jsx("button",{type:"button",className:"pi-asideBtn",onClick:()=>o(S),children:"Clear"})]})]})]})}export{Bs as ProjectsThreadAside};
@@ -1 +0,0 @@
1
- import{r as o,j as n}from"./index-C8uS5szO.js";/* empty css */import{D as O}from"./DataTable-BMOZ1-z8.js";import{p as W,a as L}from"./api-CaROe5_H.js";import{t as U,n as R,f as Y}from"./time-Dhsh_2EG.js";import{u as G}from"./tail-events-DQ46QBW1.js";import{o as Q}from"./openContent-C6XO6kr5.js";import{u as X}from"./Provider-5Hotn7NQ.js";/* empty css */import"./index-BWHgHrtv.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversation-model-BGFHoxQ0.js";import"./colors-CFlbwC25.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";const q=1e4,J=500,$=1e3,Z=6e4,D="/api/tail/discover",_=`/api/tail/recent?limit=${J}`,P=3e4,tt=[{key:"status",label:"status",cls:"s-atop-col-status",kind:"text",sortable:!1,defaultWidth:96,minWidth:70,render:t=>n.jsxs("span",{className:`s-atop-status s-atop-status--${t.status}`,children:[n.jsx("span",{className:"s-atop-status-dot","aria-hidden":"true"}),t.statusLabel]})},{key:"session",label:"session",cls:"s-atop-col-agent",kind:"text",sortable:!1,defaultWidth:168,minWidth:110,maxWidth:280,render:t=>n.jsxs("div",{className:"s-atop-agent-cell",title:t.sessionId??t.refId,children:[n.jsx("span",{className:`s-atop-chip s-atop-chip--harness s-atop-chip--harness-${st(t.source)}`,children:t.source}),n.jsx("span",{className:"s-atop-agent-id",children:t.refId.slice(0,8)})]})},{key:"project",label:"project",cls:"s-atop-col-project",kind:"text",sortable:!1,defaultWidth:200,minWidth:96,maxWidth:360,render:t=>n.jsx("span",{title:t.cwd??t.project,children:t.project})},{key:"updated",label:"updated",cls:"s-atop-col-last",kind:"time",sortable:!1,defaultWidth:86,minWidth:64,render:t=>n.jsx("span",{title:Y(t.mtimeMs),children:U(Math.max(R(t.mtimeMs)??0,R(t.lastEvent?.ts)??0))||"-"})},{key:"size",label:"size",cls:"s-atop-col-runtime",kind:"number",sortable:!1,defaultWidth:80,minWidth:64,render:t=>nt(t.size)},{key:"path",label:"path",kind:"text",sortable:!1,defaultWidth:360,minWidth:160,maxWidth:800,render:t=>n.jsx("span",{title:t.transcriptPath,children:t.cwd??t.transcriptPath})}];function z(t){const i=t?.trim();if(!i)return null;const r=F(i);return r.endsWith(".jsonl")?r.slice(0,-6):r}function F(t){const i=t.replace(/[\\/]+$/,"");return i.split(/[\\/]/).filter(Boolean).at(-1)??i}function et(t){const r=t.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return r.pop(),r.at(-1)??""}function st(t){return t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"unknown"}function nt(t){if(!Number.isFinite(t)||t<0)return"-";if(t<1024)return`${t} B`;const i=t/1024;if(i<1024)return`${i.toFixed(i>=10?0:1)} KiB`;const r=i/1024;return`${r.toFixed(r>=10?0:1)} MiB`}function at(t,i){return i?[t.refId,t.sessionId??"",t.source,t.project,t.cwd??"",t.transcriptPath,t.lastEvent?.summary??"",t.process?.command??""].join(" ").toLowerCase().includes(i.toLowerCase()):!0}function B(t){return`${t.source}\0${t.cwd??""}`}function ot(t){return`${t.source}\0${t.cwd??""}`}function it(t,i,r){if(!t?.transcripts?.length)return[];const d=new Map;for(const s of i){const l=d.get(s.sessionId);(!l||s.ts>l.ts)&&d.set(s.sessionId,s)}const h=new Map;for(const s of t.processes){if(!s.cwd)continue;const l=h.get(B(s));(!l||s.pid<l.pid)&&h.set(B(s),s)}return t.transcripts.map(s=>{const l=z(s.sessionId)??z(s.transcriptPath);if(!l)return null;const m=s.sessionId?d.get(s.sessionId)??null:null,x=h.get(ot(s))??null,u=Math.max(s.mtimeMs,m?.ts??0),j=!!x||r-u<=Z,p=s.project?.trim()||(s.cwd?F(s.cwd):et(s.transcriptPath))||"unknown";return{refId:l,source:s.source||"unknown",project:p,cwd:s.cwd,transcriptPath:s.transcriptPath,sessionId:s.sessionId,mtimeMs:s.mtimeMs,size:s.size,status:j?"run":"idle",statusLabel:j?"active":"idle",lastEvent:m,process:x}}).filter(s=>s!==null).sort((s,l)=>{const m=Math.max(s.mtimeMs,s.lastEvent?.ts??0);return Math.max(l.mtimeMs,l.lastEvent?.ts??0)-m||s.project.localeCompare(l.project)})}function te({navigate:t}){const{route:i}=X(),[r]=o.useState(()=>W(D,P)),[d,h]=o.useState(r),[s,l]=o.useState(()=>W(_,P)?.events??[]),[m,x]=o.useState(r===null),[u,j]=o.useState(""),[p,S]=o.useState("all"),[y,k]=o.useState(0),[N,C]=o.useState(null),[T,V]=o.useState(Date.now()),b=o.useRef(null),I=o.useCallback(async()=>{C(null);try{h(await L(D))}catch(e){C(e instanceof Error?e.message:String(e))}finally{x(!1)}},[]);o.useEffect(()=>{I();const e=setInterval(()=>{I()},q);return()=>clearInterval(e)},[I]),o.useEffect(()=>{let e=!1;return(async()=>{try{const a=await L(_);e||l(a.events??[])}catch{}})(),()=>{e=!0}},[]),G(e=>{l(a=>a.length>=$?[...a.slice(a.length-$+1),e]:[...a,e])}),o.useEffect(()=>{const e=setInterval(()=>V(Date.now()),15e3);return()=>clearInterval(e)},[]);const f=o.useMemo(()=>it(d,s,T),[d,s,T]),H=o.useMemo(()=>[...new Set(f.map(e=>e.source))].sort(),[f]),c=o.useMemo(()=>f.filter(e=>(p==="all"||e.source===p)&&at(e,u.trim())),[f,p,u]);o.useEffect(()=>{y>=c.length&&k(Math.max(0,c.length-1))},[c.length,y]);const M=o.useCallback(e=>{e&&Q(t,{view:"sessions",sessionId:e.refId},{returnTo:i})},[t,i]);o.useEffect(()=>{const e=a=>{const E=a.target,A=E instanceof HTMLInputElement||E instanceof HTMLTextAreaElement||(E?.isContentEditable??!1);if(a.key==="/"&&!A){a.preventDefault(),b.current?.focus();return}if(A){a.key==="Escape"&&E===b.current&&(j(""),b.current?.blur());return}if(a.key==="ArrowDown"||a.key==="j"){a.preventDefault(),k(w=>c.length===0?0:Math.min(c.length-1,w+1));return}if(a.key==="ArrowUp"||a.key==="k"){a.preventDefault(),k(w=>Math.max(0,w-1));return}(a.key==="Enter"||a.key==="o")&&(a.preventDefault(),M(c[y]))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[c,y,M]);const K=N?[]:c,g=o.useCallback(e=>`${e.source}:${e.transcriptPath}`,[]),v=o.useMemo(()=>new Map(c.map((e,a)=>[g(e),a])),[c,g]);return n.jsxs("div",{className:"s-atop s-atop--sessions",children:[n.jsxs("div",{className:"s-atop-fbar",children:[n.jsxs("label",{className:"s-atop-search",children:[n.jsx("span",{className:"s-atop-search-prompt",children:"/"}),n.jsx("input",{ref:b,className:"s-atop-search-input",placeholder:"filter sessions",value:u,onChange:e=>j(e.target.value)}),n.jsx("kbd",{className:"s-atop-search-kbd",children:"/"})]}),n.jsx("span",{className:"s-atop-fbar-label",children:"source"}),n.jsxs("button",{type:"button",className:`s-atop-pill${p==="all"?" s-atop-pill--on":""}`,onClick:()=>S("all"),children:["all",n.jsx("span",{className:"s-atop-pill-ct",children:f.length})]}),H.map(e=>n.jsxs("button",{type:"button",className:`s-atop-pill${p===e?" s-atop-pill--on":""}`,onClick:()=>S(e),children:[e,n.jsx("span",{className:"s-atop-pill-ct",children:f.filter(a=>a.source===e).length})]},e)),n.jsx("div",{className:"s-atop-fbar-spacer"})]}),n.jsx(O,{rows:K,columns:tt,rowId:g,storageKey:"openscout.sessions.cols",rowBindings:e=>({onMouseEnter:()=>{const a=v.get(e);a!=null&&k(a)},onFocus:()=>{const a=v.get(e);a!=null&&k(a)}}),onRowClick:e=>M(e),rowClassName:e=>v.get(g(e))===y?"s-atop-row--selected":void 0,empty:N?{title:"Discovery failed",body:N}:{title:"No raw sessions",body:u?"No sessions match the current filter.":"No transcript sessions were discovered."},loading:m,density:"compact",className:"s-atop-data-table",ariaLabel:"Raw sessions"}),n.jsxs("div",{className:"s-atop-keys",children:[n.jsxs("span",{children:[n.jsx("kbd",{children:"/"}),"filter"]}),n.jsxs("span",{children:[n.jsx("kbd",{children:"j/k"}),"select"]}),n.jsxs("span",{children:[n.jsx("kbd",{children:"enter"}),"open"]}),n.jsx("span",{className:"s-atop-keys-spacer"}),n.jsxs("span",{className:"s-atop-keys-count",children:[n.jsx("strong",{children:c.length})," sessions"]})]})]})}export{te as RawSessionsTable};
@@ -1 +0,0 @@
1
- import{r as n,j as e}from"./index-C8uS5szO.js";import{k as nt}from"./router-BKiMcYa7.js";import{u as At,A as gs,B as rt,E as at,a as ks,F as ve,G as Lt,H as Ss,I as Ot}from"./Provider-5Hotn7NQ.js";import{H as ys,A as ws,S as js,a as Ns,m as Jt,o as Cs,b as Es,c as Qt,d as Kt}from"./agent-autocomplete-CeHQpuG9.js";import{a as H}from"./api-CaROe5_H.js";import{c as $e}from"./clipboard-e3fSpeo7.js";import{e as Ts}from"./credentials-C4VXz2hr.js";import{b as Pt,u as Is,a as ge}from"./persistent-state-xsuk6Kc-.js";import{s as ue,e as _s,S as zt}from"./scoutbot-Bk3nyrkj.js";import{g as Rs,s as Ms,d as Vs,i as As,e as Ls,a as Os}from"./scout-voice-DOQ_B77g.js";import{d as Ps,f as Dt,n as Se}from"./time-Dhsh_2EG.js";import{S as zs}from"./scoutbot-markdown-Bz0Vbto2.js";import{L as X}from"./loader-circle-DurUYl7E.js";import{P as Xt}from"./plus-D_wLGJGT.js";import{C as Ze}from"./chevron-down-B5eMsn5c.js";import{C as Ds}from"./chevron-up-BHOEgHcn.js";import{c as Ue}from"./createLucideIcon-DkjnzvcJ.js";import{S as Zt,a as es}from"./runtime-picker-DdsttHHc.js";import{S as $s}from"./send-horizontal-pOtGI7FM.js";import{C as Bs}from"./copy-D9WUpQRf.js";import{u as ts}from"./use-reduced-motion-D7n3vK8t.js";import{R as $t}from"./rocket-DyrYDo8V.js";import{X as Us}from"./x-DI1ktCYb.js";import{R as Fs}from"./refresh-cw-Da9DDLk2.js";import{S as Hs}from"./settings-TJIkkZ0P.js";import{V as Bt}from"./fx-z37u1o2z.js";import{B as Ws}from"./bot-CfN9PSBF.js";import{d as Gs}from"./types-B0PlfpKc.js";const qs=[["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"}]],Ys=Ue("archive",qs);const Js=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Qs=Ue("circle-check",Js);const Ks=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],ss=Ue("volume-2",Ks);const Xs=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]],os=Ue("volume-x",Xs),Zs=new Set(["air-local","local","mini","node"]),eo=new Set(["main","master","trunk"]);function to(t){return t.replace(/```[\s\S]*?```/g," code omitted ").replace(/\*\*([^*\n]+)\*\*/g,"$1").replace(/(^|[\s(])\*([^\s*][^*\n]*?[^\s*]|[^\s*])\*(?=[\s)\].,!?;:]|$)/g,"$1$2").replace(/(^|[\s(])_([^\s_][^_\n]*?[^\s_]|[^\s_])_(?=[\s)\].,!?;:]|$)/g,"$1$2").replace(/^\s*[-*]\s+/gm,"").replace(/\bhttps?:\/\/[^\s)]+/gi,o=>so(o)).replace(/\b(session|conversation|message|flight|invocation|work)(?:\s+(?:id|ref))?\s*[:#]?\s+([a-z0-9][a-z0-9._:-]{9,})\b/gi,(o,a,i)=>`${a.toLowerCase()} ending in ${et(i)}`).replace(/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,o=>`ID ending in ${et(o)}`).replace(/@?([a-z][a-z0-9-]*(?:\.[a-z0-9][a-z0-9-]*){2,})\b/gi,(o,a)=>oo(o)?o:no(a)).replace(/`([^`]+)`/g,(o,a)=>ro(a)).replace(/\s+/g," ").trim()}function so(t){try{return new URL(t).hostname.replace(/^www\./,"").replace(/\./g," dot ")}catch{return"link"}}function oo(t){const o=t.replace(/^@/,"").toLowerCase();return/\.(com|app|dev|org|net|io|local)(?:\b|\/)/.test(o)&&!o.endsWith(".air-local")}function no(t){const o=t.split(".").filter(Boolean);if(o.length<2)return t;const a=[...o];for(;a.length>1&&Zs.has(a.at(-1).toLowerCase());)a.pop();const[i,...c]=a,u=c.filter(p=>!eo.has(p.toLowerCase())).map(tt).filter(Boolean);return[tt(i),...u].filter(Boolean).join(", ")}function ro(t){return/^[a-z0-9][a-z0-9._:-]{12,}$/i.test(t)?`ID ending in ${et(t)}`:tt(t)}function et(t){return(t.replace(/[^a-z0-9]/gi,"").slice(-4)||t.slice(-4)).split("").join(" ")}function tt(t){return t.replace(/^@/,"").replace(/[_./:-]+/g," ").replace(/\s+/g," ").trim()}function ao({state:t,chatExpanded:o,onToggleExpanded:a,sessionPickerOpen:i,onToggleSessionPicker:c,onStartNewChat:u,startingNewChat:p,onSwitchSession:w,switchingSessionId:j,sending:v,briefing:M,pendingAsk:N,onArchiveSession:f,archivingSessionId:b,onAssistantContextMenu:h,suggestedPrompts:E,onSelectPrompt:T}){const k=t.session.messages,C=o?k:k.slice(-4),S=o?0:Math.max(0,k.length-C.length),y=k.length,F=t.sessions.length,$=t.retention,l=k.length===0&&!N&&!v&&!M,I=p||v||M||!!j||!!b,W=t.session.createdAt?Ps(t.session.createdAt):null,_=l?"Scout conversation":t.session.title&&t.session.title!=="New Scout Session"?t.session.title:`Session ${t.session.id.slice(0,8)}`,L=n.useRef(null),G=k[k.length-1]?.id??null,q=k[k.length-1]?.body??"";return n.useEffect(()=>{const x=L.current;x&&(x.scrollTop=x.scrollHeight)},[G,q,N,v,o,t.session.id]),e.jsxs("div",{className:"flex h-full min-h-0 flex-1 flex-col overflow-hidden rounded border border-[var(--scout-chrome-border-soft)] bg-black/10 font-mono text-xs text-[var(--scout-chrome-ink-faint)]",children:[e.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-2 border-b border-[var(--scout-chrome-border-soft)] px-2.5 py-1.5",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[e.jsx("span",{className:"min-w-0 truncate text-[var(--scout-chrome-ink)]",title:t.session.id,children:_}),W&&!l&&e.jsxs("span",{className:"shrink-0 text-[var(--scout-chrome-ink-ghost)]",children:["· ",W]}),!l&&e.jsxs("span",{className:"shrink-0 text-[var(--scout-chrome-ink-ghost)]",children:["· ",y," msg",y===1?"":"s"]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[e.jsxs("button",{type:"button",title:"Start a new chat (keeps this chat in Chats)","aria-label":"Start new chat",onClick:u,disabled:I,className:"flex items-center gap-1 rounded border border-lime-300/30 bg-lime-300/[0.06] px-1.5 py-0.5 text-2xs uppercase tracking-[0.1em] text-lime-100 transition-colors hover:border-lime-300/50 hover:bg-lime-300/10 disabled:cursor-not-allowed disabled:opacity-40",children:[p?e.jsx(X,{size:10,className:"animate-spin"}):e.jsx(Xt,{size:10}),e.jsx("span",{children:p?"Starting":"New chat"})]}),e.jsxs("button",{type:"button",title:`Switch chat (${F} total)`,"aria-label":"Switch chat",onClick:c,className:`flex items-center gap-1 rounded border px-1.5 py-0.5 text-2xs uppercase tracking-[0.1em] transition-colors ${i?"border-lime-300/40 bg-lime-300/10 text-lime-100":"border-[var(--scout-chrome-border-soft)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]"}`,children:[e.jsx(ys,{size:10}),e.jsx("span",{children:"Chats"}),e.jsx("span",{className:"text-[var(--scout-chrome-ink-ghost)]",children:F}),e.jsx(Ze,{size:9,className:i?"rotate-180 transition-transform":"transition-transform"})]}),y>4&&e.jsxs("button",{type:"button",title:o?"Collapse chat":"View full session","aria-label":o?"Collapse chat":"View full session",onClick:a,className:"flex items-center gap-1 rounded border border-[var(--scout-chrome-border-soft)] px-1.5 py-0.5 text-2xs uppercase tracking-[0.1em] text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]",children:[e.jsx("span",{children:o?"Collapse":"Full"}),o?e.jsx(Ds,{size:9}):e.jsx(Ze,{size:9})]})]})]}),i&&e.jsxs("div",{className:"shrink-0 border-b border-[var(--scout-chrome-border-soft)] px-2 py-1.5",children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2 px-0.5 text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-ghost)]",children:[e.jsx("span",{children:"Recent chats"}),$&&$.archivedCount>0&&e.jsxs("span",{children:[$.archivedCount," archived"]})]}),e.jsx("div",{className:"flex max-h-40 flex-col gap-0.5 overflow-y-auto pr-0.5",children:t.sessions.map(x=>{const B=x.id===t.session.id,Z=j===x.id,U=b===x.id,V=Dt(x.updatedAt)||"unknown",O=x.title&&x.title!=="New Scout Session"?x.title:`Session ${x.id.slice(0,8)}`;return e.jsxs("div",{className:`flex items-center gap-2 rounded border px-2 py-1 text-left transition-colors ${B?"border-lime-300/40 bg-lime-300/[0.06] text-lime-100":"border-transparent text-[var(--scout-chrome-ink-faint)] hover:border-[var(--scout-chrome-border-soft)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]"}`,children:[e.jsxs("button",{type:"button",onClick:()=>{B||w(x.id)},disabled:B||!!j||!!b,className:"flex min-w-0 flex-1 items-center gap-2 text-left disabled:cursor-not-allowed disabled:opacity-40",children:[e.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${B?"bg-lime-300":"bg-[var(--scout-chrome-ink-ghost)]"}`}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-[var(--scout-chrome-ink)]",children:O}),e.jsxs("span",{className:"shrink-0 text-2xs text-[var(--scout-chrome-ink-ghost)]",children:[x.messageCount," msg"]}),e.jsx("span",{className:"shrink-0 text-2xs text-[var(--scout-chrome-ink-ghost)]",children:V}),Z&&e.jsx(X,{size:10,className:"shrink-0 animate-spin text-lime-200"})]}),e.jsx("button",{type:"button",title:"Archive chat","aria-label":`Archive chat ${O}`,onClick:()=>f(x.id),disabled:!!j||!!b,className:"flex h-5 w-5 shrink-0 items-center justify-center rounded border border-transparent text-[var(--scout-chrome-ink-ghost)] transition-colors hover:border-[var(--scout-chrome-border-soft)] hover:bg-black/20 hover:text-[var(--scout-chrome-ink)] disabled:cursor-not-allowed disabled:opacity-30",children:U?e.jsx(X,{size:10,className:"animate-spin"}):e.jsx(Ys,{size:10})})]},x.id)})})]}),e.jsxs("div",{ref:L,className:"flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto px-2.5 py-2",children:[S>0&&e.jsxs("button",{type:"button",onClick:a,className:"self-start text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-ghost)] hover:text-[var(--scout-chrome-ink)]",children:["↑ ",S," earlier message",S===1?"":"s"]}),l&&e.jsx(io,{suggestedPrompts:E,onSelectPrompt:T}),C.map((x,B)=>{const Z=uo(C[B-1],x),U=mo(x.createdAt);return e.jsxs("div",{className:"flex flex-col gap-1",children:[Z&&e.jsx("div",{className:"self-center rounded-full bg-white/[0.06] px-2.5 py-0.5 font-mono text-2xs font-medium text-[var(--scout-chrome-ink-ghost)]",title:Dt(x.createdAt),"aria-label":U,children:U}),e.jsx(Ut,{role:x.role,body:x.body,onContextMenu:x.role==="assistant"&&h?V=>h(V,x.body):void 0})]},x.id)}),N&&e.jsx(Ut,{role:"user",body:N,pending:!0}),v&&!N&&e.jsx("p",{className:"text-[var(--scout-chrome-ink-ghost)]",children:"Reading the control plane…"}),M&&e.jsxs("div",{className:"flex items-center gap-2 rounded border border-lime-300/30 bg-lime-300/[0.06] px-2.5 py-2 font-mono text-xs leading-relaxed text-lime-100",children:[e.jsx(X,{size:12,className:"shrink-0 animate-spin text-lime-300","aria-hidden":"true"}),e.jsxs("div",{className:"min-w-0 flex flex-col gap-0.5",children:[e.jsx("span",{className:"text-xs uppercase tracking-[0.14em] text-lime-300",children:"Briefing"}),e.jsx("span",{className:"text-[var(--scout-chrome-ink)]",children:"Codex is reviewing the control-plane snapshot. Voice will pick up when it lands."})]})]})]})]})}function io({suggestedPrompts:t=[],onSelectPrompt:o}){return e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col justify-start gap-2 px-1 py-2.5",children:[t.length>0?e.jsx("div",{className:"grid gap-1",children:t.slice(0,3).map(a=>e.jsx("button",{type:"button",onClick:()=>o?.(a),className:"min-h-7 truncate rounded border border-[var(--scout-chrome-border-soft)] bg-black/10 px-2.5 text-left font-mono text-xs leading-snug text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]",children:a},a))}):null,e.jsxs("div",{className:"max-w-[30rem]",children:[e.jsx("div",{className:"font-sans text-lg font-semibold leading-tight text-[var(--scout-chrome-ink)]",children:"Start with a question."}),e.jsx("p",{className:"mt-0.5 font-sans text-xs leading-snug text-[var(--scout-chrome-ink-faint)]",children:"Paste a failed result or ask about what you are seeing. Scout replies when you ask."})]})]})}function co({agents:t,draft:o,onDraftChange:a,onSubmit:i,sending:c,recording:u,voiceLabel:p,voiceBusy:w,voiceUnavailable:j,voiceHeld:v=!1,onMicClick:M,prominent:N=!1,autoFocus:f,focusSignal:b}){const h=n.useRef(null),E=n.useCallback(()=>{const C=h.current;C&&(C.textarea?C.textarea.focus({preventScroll:!0}):C.focus())},[]);n.useEffect(()=>{f&&E()},[f,E]),n.useEffect(()=>{b&&E()},[b,E]);let T="Start talking";j&&(T="Set up Scout voice"),u&&(T="Stop talking"),(w||v)&&(T=p);const g=w||u||v,k=["w-full resize-none rounded border font-mono text-sm leading-relaxed text-[var(--scout-chrome-ink)] placeholder:text-[var(--scout-chrome-ink-ghost)]",N?"min-h-[88px] max-h-[170px] border-lime-300/30 bg-black/25 px-3 py-2 text-md":"min-h-[44px] max-h-[124px] border-[var(--scout-chrome-border-soft)] bg-black/20 px-2 py-1.5"].join(" ");return e.jsxs("form",{className:"flex flex-col gap-1.5",onSubmit:C=>{C.preventDefault(),i()},children:[e.jsx(ws,{ref:h,agents:t,value:o,onChange:a,onSubmit:()=>{o.trim()&&!c&&i()},placeholder:v?"Type while live voice is on…":N?"Ask Scout about what you are seeing…":"Ask Scout…",rows:N?4:2,disabled:c,submitOnEnter:!0,className:"min-w-0",textareaClassName:k}),e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("button",{type:"button",title:T,"aria-label":T,onClick:M,disabled:c||w||v,className:`flex h-8 items-center justify-center rounded border transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${u?"border-lime-300/50 bg-lime-300/10 text-lime-200":v?"border-lime-300/25 bg-lime-300/[0.05] text-lime-100/70":"border-[var(--scout-chrome-border-soft)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]"} ${g?"gap-1.5 px-3 font-mono text-xs uppercase tracking-[0.12em]":"w-9"}`,children:[w?e.jsx(X,{size:13,className:"animate-spin"}):u?e.jsx(Zt,{size:12,className:"fill-current"}):e.jsx(es,{size:13}),g&&e.jsx("span",{className:"truncate",children:p})]}),e.jsx("button",{type:"submit",title:"Send","aria-label":"Send",disabled:!o.trim()||c,className:"flex h-8 w-9 items-center justify-center rounded bg-lime-300/90 text-black transition-opacity disabled:cursor-not-allowed disabled:opacity-40",children:c?e.jsx(X,{size:13,className:"animate-spin"}):e.jsx($s,{size:13})})]})]})}function Ut({role:t,body:o,pending:a=!1,onContextMenu:i}){const c=t==="user",u=c?o:ue(o),[p,w]=n.useState(!1),j=n.useCallback(()=>{$e(u).then(()=>{w(!0),window.setTimeout(()=>w(!1),1200)}).catch(()=>{})},[u]);return e.jsxs("div",{className:"group flex flex-col gap-0.5",onContextMenu:i,children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("span",{className:`text-2xs uppercase tracking-[0.12em] ${c?"text-[var(--scout-chrome-ink-ghost)]":"text-lime-300"}`,children:[c?"You":"Reply",a&&" · sending"]}),e.jsx("button",{type:"button",title:p?"Copied":"Copy message","aria-label":p?"Copied message":"Copy message",disabled:a||!u.trim(),onClick:j,className:"flex h-5 w-5 shrink-0 items-center justify-center rounded border border-[var(--scout-chrome-border-soft)] text-[var(--scout-chrome-ink-ghost)] opacity-70 transition hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)] disabled:cursor-not-allowed disabled:opacity-20 group-hover:opacity-100",children:p?e.jsx(Qs,{size:11}):e.jsx(Bs,{size:11})})]}),c?e.jsx("p",{className:`whitespace-pre-wrap break-words text-sm leading-relaxed text-[var(--scout-chrome-ink)] ${a?"opacity-60":""}`,children:u}):e.jsx("div",{className:a?"opacity-60":"",children:e.jsx(zs,{text:u})})]})}const lo=5*6e4;function uo(t,o){if(!t||!st(t.createdAt,o.createdAt))return!0;const a=Se(t.createdAt),i=Se(o.createdAt);return a===null||i===null?!0:Math.abs(i-a)>=lo}function st(t,o){const a=Se(t),i=Se(o);if(a===null||i===null)return!1;const c=new Date(a),u=new Date(i);return c.getFullYear()===u.getFullYear()&&c.getMonth()===u.getMonth()&&c.getDate()===u.getDate()}function mo(t){const o=Se(t);if(o===null)return"";const a=new Date(o),i=new Date,c=new Date(i);c.setDate(i.getDate()-1);const u=a.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"});return st(o,i.getTime())?`Today ${u}`:st(o,c.getTime())?`Yesterday ${u}`:a.getFullYear()===i.getFullYear()?`${a.toLocaleDateString([],{month:"short",day:"numeric"})} ${u}`:`${a.toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"})} ${u}`}const ho={"--scout-chrome-bg":"#f3f0e9","--scout-chrome-ink":"#2a2d2f","--scout-chrome-ink-strong":"#171a1c","--scout-chrome-ink-faint":"#6f716e","--scout-chrome-ink-ghost":"#9b9a94","--scout-chrome-border-soft":"#d9d4ca","--scout-chrome-hover":"#e9e5dc","--scout-chrome-active":"#ded8cc","--scout-accent":"#b58a3f"},Ft=[2,4,7,5,3,6,9,5,3,4,8,6,3,5,9,6,3,5,7,4,2,4,6,3],po=Ft.map((t,o)=>{const a=o/Ft.length*Math.PI*2-Math.PI/2,i=24-t/2,c=24+t/2;return{x1:36+Math.cos(a)*i,y1:36+Math.sin(a)*i,x2:36+Math.cos(a)*c,y2:36+Math.sin(a)*c}});function xo({recording:t,sending:o,speaking:a,voiceAvailable:i,voiceProbeState:c,voiceState:u}){return a?"speaking":o?"thinking":t&&u==="processing"?"processing":t?"listening":c!=="idle"||u==="starting"||i===null?"checking":i===!1?"unavailable":"ready"}const fo={checking:{label:"Getting voice ready",helper:"Checking your microphone and speech services"},unavailable:{label:"Voice is offline",helper:"Tap to reconnect"},listening:{label:"Listening",helper:"Tap to finish your turn"},processing:{label:"Transcribing",helper:"Turning speech into text"},thinking:{label:"Scout is thinking",helper:"Your turn is in"},speaking:{label:"Scout is speaking",helper:"Tap to interrupt"},ready:{label:"Ready to listen",helper:"Tap to speak"}};function bo(t){switch(t){case"listening":return"Finish and send voice turn";case"speaking":return"Stop spoken reply";case"unavailable":return"Retry voice connection";case"checking":return"Checking voice";case"processing":return"Transcribing voice turn";case"thinking":return"Scout is thinking";case"ready":return"Start voice turn"}}function vo(t){return t==="listening"||t==="processing"?"listen":t==="thinking"?"think":t==="speaking"?"speak":null}function go({phase:t,disabled:o,onClick:a}){const i=ts(),c=t==="listening"||t==="speaking",u=bo(t);return e.jsx(Jt.div,{animate:c&&!i?{scale:[1,1.025,1]}:{scale:1},transition:c&&!i?{duration:2.2,ease:"easeInOut",repeat:1/0}:{duration:.18},children:e.jsx("button",{type:"button",onClick:a,disabled:o,"aria-label":u,title:u,className:"group grid h-28 w-28 place-items-center rounded-full border border-[#d4cfc5] bg-white text-[#232729] shadow-[0_14px_34px_rgba(55,48,38,0.12)] outline-none transition-[border-color,box-shadow,transform] duration-200 hover:border-[#b9b2a6] hover:shadow-[0_17px_38px_rgba(55,48,38,0.16)] focus-visible:ring-2 focus-visible:ring-[#9c7736] focus-visible:ring-offset-4 focus-visible:ring-offset-[#f3f0e9] active:scale-[0.98] disabled:cursor-wait disabled:opacity-65",children:e.jsxs("svg",{viewBox:"0 0 72 72",className:"h-[72px] w-[72px]","aria-hidden":"true",children:[e.jsx("circle",{cx:"36",cy:"36",r:"24",fill:"none",stroke:"#d2cec6",strokeWidth:"0.8"}),po.map((p,w)=>e.jsx("line",{x1:p.x1,y1:p.y1,x2:p.x2,y2:p.y2,stroke:c?"#817b71":"#a5a198",strokeWidth:"1.15",strokeLinecap:"round"},w)),e.jsx("circle",{cx:"36",cy:"36",r:"7.5",fill:c?"#b98a3b":"#d3b16d"})]})})})}const ko=[{id:"listen",label:"Listen"},{id:"think",label:"Think"},{id:"speak",label:"Speak"}];function So({messages:t,pendingAsk:o,partial:a,error:i,status:c,recording:u,sending:p,speaking:w,voiceAvailable:j,voiceInputSource:v,voiceProbeState:M,voiceState:N,voiceReplies:f,settingsOpen:b,setupPanel:h,settingsPanel:E,assistantModel:T,onPrimaryAction:g,onToggleVoiceReplies:k,onToggleSettings:C,onNewChat:S,onOpenLive:y}){const F=ts(),$=n.useRef(null),l=xo({recording:u,sending:p,speaking:w,voiceAvailable:j,voiceProbeState:M,voiceState:N}),I=fo[l],W=l==="checking"||l==="processing"||l==="thinking",_=v??(j===!0?"Default input from Scout Menu":"Checking microphone…"),L=t.slice(-12),G=a||(p&&L.at(-1)?.body!==o?o:null),q=L.length===0&&!G,x=vo(l),B=T?.trim()||"Turn-based voice",Z=j===!1?"Mic offline":j===null?"Checking mic":"Mic active",U=l==="unavailable"?"bg-[#a25549]":l==="ready"||l==="checking"?"bg-[#a7a49d]":"bg-[#b58a3f]";return n.useEffect(()=>{$.current?.scrollIntoView({block:"nearest"})},[t.length,o]),e.jsxs("section",{className:"relative flex h-full min-h-0 w-full flex-col overflow-hidden bg-[#f3f0e9] text-[#2a2d2f]",style:ho,"aria-label":"Direct voice conversation",children:[e.jsxs("header",{className:"flex min-h-14 shrink-0 items-center justify-between gap-2 border-b border-[#d9d4ca] px-3 py-2.5 sm:gap-4 sm:px-7",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx("h1",{className:"truncate font-[var(--font-accent-title)] text-[15px] font-semibold tracking-[-0.018em] text-[#171a1c] sm:text-[17px]",children:"Direct Voice"}),e.jsx("span",{className:"hidden h-4 w-px bg-[#d6d1c7] sm:block","aria-hidden":"true"}),e.jsxs("div",{className:"hidden min-w-0 items-center gap-2 sm:flex","aria-live":"polite",children:[e.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${U}`,"aria-hidden":"true"}),e.jsx("span",{className:"truncate text-xs text-[#6f716e]",children:I.label})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1.5 sm:gap-2",children:[e.jsxs("div",{className:"flex rounded-md border border-[#cbc5ba] bg-[#e8e3da] p-0.5",role:"tablist","aria-label":"Voice mode",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":"true",className:"rounded-[4px] bg-[#202426] px-2 py-1.5 text-[11px] font-medium text-white shadow-[0_1px_2px_rgba(0,0,0,0.14)] sm:px-3",children:"Direct"}),e.jsx("button",{type:"button",role:"tab","aria-selected":"false",onClick:y,disabled:!y,className:"rounded-[4px] px-2 py-1.5 text-[11px] font-medium text-[#6a6c69] transition-colors hover:bg-white/65 hover:text-[#232628] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#9c7736] disabled:cursor-default disabled:opacity-45 sm:px-3",children:"Live"})]}),e.jsxs("button",{type:"button",onClick:S,className:"hidden h-8 items-center gap-1.5 rounded-md px-2 text-xs font-medium text-[#4f5352] transition-colors hover:bg-[#e7e2d9] hover:text-[#191c1e] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#9c7736] min-[430px]:flex sm:px-2.5","aria-label":"Start a new voice conversation",title:"New conversation",children:[e.jsx(Xt,{size:14,"aria-hidden":"true"}),e.jsx("span",{className:"hidden md:inline",children:"New chat"})]}),e.jsx("button",{type:"button",onClick:k,className:`grid h-8 w-8 place-items-center rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#9c7736] ${f?"bg-[#e1d5bd] text-[#765923]":"text-[#6e706d] hover:bg-[#e7e2d9] hover:text-[#191c1e]"}`,"aria-pressed":f,"aria-label":f?"Mute spoken replies":"Enable spoken replies",title:f?"Spoken replies on":"Spoken replies off",children:f?e.jsx(ss,{size:15}):e.jsx(os,{size:15})}),e.jsx("button",{type:"button",onClick:C,className:`grid h-8 w-8 place-items-center rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#9c7736] ${b?"bg-[#e1d5bd] text-[#765923]":"text-[#6e706d] hover:bg-[#e7e2d9] hover:text-[#191c1e]"}`,"aria-expanded":b,"aria-label":"Voice and Scoutbot settings",title:"Voice and Scoutbot settings",children:e.jsx(js,{size:15})})]})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:e.jsx("div",{className:"mx-auto flex min-h-full w-full max-w-[880px] flex-col px-6 py-8 sm:px-10 sm:py-10 lg:px-14",children:e.jsxs("div",{className:"w-full max-w-[720px]",children:[q?e.jsxs("div",{className:"pt-1",children:[e.jsx("p",{className:"font-mono text-[10px] font-semibold uppercase tracking-[0.12em] text-[#8b8983]",children:"Conversation"}),e.jsx("p",{className:"mt-2 max-w-[38ch] text-sm leading-6 text-[#737570]",children:"Your voice turns and Scout’s replies will appear here."})]}):e.jsxs("div",{className:"space-y-8 sm:space-y-9",children:[L.map(V=>{const O=V.role==="assistant";return e.jsxs("article",{className:"max-w-[68ch]",children:[e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-2 gap-y-0.5",children:[e.jsx("span",{className:"font-mono text-[10px] font-semibold uppercase tracking-[0.12em] text-[#575a59]",children:O?"Scout":"You"}),O&&e.jsx("span",{className:"text-[10px] text-[#8a8983]",children:B})]}),e.jsx("p",{className:"mt-1.5 whitespace-pre-wrap text-[15px] leading-6 text-[#25292a] sm:text-base sm:leading-7",children:O?ue(V.body):V.body})]},V.id)}),G&&e.jsxs("article",{className:"max-w-[68ch]","aria-live":"polite",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-mono text-[10px] font-semibold uppercase tracking-[0.12em] text-[#765923]",children:"You"}),e.jsx("span",{className:"text-[10px] text-[#9a7a40]",children:a?"Listening":"Sending"})]}),e.jsx("p",{className:"mt-1.5 whitespace-pre-wrap text-[15px] leading-6 text-[#25292a] sm:text-base sm:leading-7",children:G})]})]}),e.jsx("div",{ref:$})]})})}),e.jsx(Ns,{initial:!1,children:(h||b||i)&&e.jsx(Jt.div,{initial:F?!1:{opacity:0,y:6},animate:{opacity:1,y:0},exit:F?void 0:{opacity:0,y:6},className:"max-h-[34vh] shrink-0 overflow-y-auto border-y border-[#d9d4ca] bg-[#eeeae2]",children:e.jsxs("div",{className:"mx-auto w-full max-w-[880px] px-6 py-4 sm:px-10 lg:px-14",children:[i&&e.jsx("p",{className:"mb-3 text-sm leading-6 text-[#93483f]",children:i}),h,b&&E]})})}),e.jsxs("div",{className:"shrink-0 px-5 pb-4 pt-3 sm:px-8 sm:pb-5",children:[e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx(go,{phase:l,disabled:W,onClick:g}),e.jsxs("div",{className:"mt-3","aria-live":"polite",children:[e.jsx("p",{className:"text-sm font-semibold text-[#24282a]",children:I.label}),e.jsx("p",{className:"mt-0.5 text-xs text-[#7a7b76]",children:I.helper})]}),e.jsxs("div",{className:"mt-2 flex items-center gap-1.5 text-[11px] text-[#7b6a49]",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-[#b58a3f]","aria-hidden":"true"}),e.jsx("span",{children:Z})]})]}),e.jsxs("footer",{className:"mx-auto mt-4 flex w-full max-w-[880px] flex-col items-stretch justify-between gap-2 border-t border-[#d9d4ca] pt-3 text-[11px] text-[#747570] sm:flex-row sm:items-center sm:gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx(es,{size:12,className:"shrink-0 text-[#8b7350]","aria-hidden":"true"}),e.jsxs("span",{className:"truncate",children:["Input: ",_]})]}),e.jsx("div",{className:"flex shrink-0 items-center justify-between gap-3 sm:justify-start","aria-label":`Voice turn state: ${I.label}`,children:ko.map(V=>{const O=x===V.id;return e.jsx("span",{className:O?"font-medium text-[#5e4821]":"text-[#96948e]",children:V.label},V.id)})}),c&&!p&&l!=="listening"&&e.jsx("span",{className:"hidden max-w-48 truncate text-right text-[#96948e] lg:block",children:c})]})]})]})}function Ht({icon:t,title:o,onClick:a,disabled:i,active:c,badge:u}){return e.jsxs("button",{type:"button",title:o,"aria-label":o,onClick:a,disabled:i,className:`flex shrink-0 items-center gap-1 rounded border p-1 text-xs transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${c?"border-lime-300/50 bg-lime-300/10 text-lime-200":"border-[var(--scout-chrome-border-soft)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]"}`,children:[t,u&&e.jsx("span",{className:"font-mono text-3xs tracking-tight",children:u})]})}function Wt({issue:t,probeState:o,onLaunch:a,onRetry:i,onSettings:c,onDismiss:u}){const p=o==="probing"||o==="launching";return e.jsxs("div",{className:"rounded border border-[var(--scout-chrome-border-soft)] bg-black/15 px-2.5 py-2 font-mono text-xs text-[var(--scout-chrome-ink)]",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx($t,{size:13,className:"mt-0.5 shrink-0 text-[var(--scout-chrome-ink-faint)]"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"uppercase tracking-[0.14em] text-[var(--scout-chrome-ink-faint)]",children:"Scout Voice"}),e.jsx("p",{className:"mt-1 leading-relaxed text-[var(--scout-chrome-ink-ghost)]",children:"Open Scout Menu to use speech."}),t&&e.jsx("p",{className:"mt-2 break-words leading-relaxed text-[var(--scout-chrome-ink-ghost)]",children:t})]}),u?e.jsx("button",{type:"button",title:"Hide voice setup","aria-label":"Hide voice setup",onClick:u,className:"shrink-0 rounded border border-transparent p-1 text-[var(--scout-chrome-ink-ghost)] transition-colors hover:border-[var(--scout-chrome-border-soft)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]",children:e.jsx(Us,{size:11})}):null]}),e.jsxs("div",{className:"mt-2 grid grid-cols-3 gap-1.5",children:[e.jsx(Xe,{icon:o==="launching"?e.jsx(X,{size:12,className:"animate-spin"}):e.jsx($t,{size:12}),label:o==="launching"?"Opening":"Open",onClick:a,disabled:o==="probing",title:"Open Scout services"}),e.jsx(Xe,{icon:o==="probing"?e.jsx(X,{size:12,className:"animate-spin"}):e.jsx(Fs,{size:12}),label:"Retry",onClick:i,disabled:p,title:"Check Scout voice again"}),e.jsx(Xe,{icon:e.jsx(Hs,{size:12}),label:"Voice",onClick:c,disabled:o==="probing",title:"Open Scoutbot voice settings"})]})]})}function Xe({icon:t,label:o,onClick:a,disabled:i,title:c}){return e.jsxs("button",{type:"button",title:c,onClick:a,disabled:i,className:"flex min-h-7 items-center justify-center gap-1.5 rounded border border-[var(--scout-chrome-border-soft)] px-2 text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)] disabled:cursor-not-allowed disabled:opacity-45",children:[t,o]})}const ke="gpt-4o-mini-tts",yo={openai:"OpenAI",elevenlabs:"ElevenLabs",nvidia:"NVIDIA",system:"System"},ot="us-woman",Be=[{id:"us-woman",label:"US Woman",locale:"US English",presentation:"Woman",voiceName:"Marin",description:"Warm, clear, and conversational.",provider:"openai",accentFromPrompt:!1,speech:{modelId:ke,voiceId:"marin",instructions:"Speak in clear, natural American English with a warm, grounded feminine presentation. Keep the delivery conversational and responsive."}},{id:"us-man",label:"US Man",locale:"US English",presentation:"Man",voiceName:"Cedar",description:"Grounded, calm, and direct.",provider:"openai",accentFromPrompt:!1,speech:{modelId:ke,voiceId:"cedar",instructions:"Speak in clear, natural American English with a warm, grounded masculine presentation. Keep the delivery conversational and responsive."}},{id:"british-woman",label:"British Woman",locale:"British English",presentation:"Woman",voiceName:"Marin",description:"Warm with a subtle British cadence.",provider:"openai",accentFromPrompt:!0,speech:{modelId:ke,voiceId:"marin",instructions:"Speak in natural British English with a subtle contemporary British accent and a warm, grounded feminine presentation. Avoid theatrical or exaggerated delivery."}},{id:"british-man",label:"British Man",locale:"British English",presentation:"Man",voiceName:"Cedar",description:"Calm with a subtle British cadence.",provider:"openai",accentFromPrompt:!0,speech:{modelId:ke,voiceId:"cedar",instructions:"Speak in natural British English with a subtle contemporary British accent and a calm, grounded masculine presentation. Avoid theatrical or exaggerated delivery."}}],me={modelId:ke,voiceId:"marin",instructions:"Speak naturally, clearly, and conversationally."},wo={modelId:"",voiceId:"",instructions:"",playback:"host"};function jo(t){return t==="custom"||t==="device"||Be.some(o=>o.id===t)}function No(t,o={}){return t==="device"?wo:t==="custom"?{modelId:o.modelId?.trim()||me.modelId,voiceId:o.voiceId?.trim()||me.voiceId,instructions:o.instructions?.trim()||me.instructions}:Be.find(a=>a.id===t)?.speech??Be.find(a=>a.id===ot).speech}function Gt({presentation:t,voicePresetId:o,onVoicePresetId:a,speechSelectionId:i,onSpeechSelectionId:c,customSpeechModelId:u,onCustomSpeechModelId:p,customSpeechVoiceId:w,onCustomSpeechVoiceId:j,customSpeechInstructions:v,onCustomSpeechInstructions:M,voiceDefaults:N,modelDraft:f,onModelDraft:b,modelOptions:h=[],promptDraft:E,onPromptDraft:T,configLoading:g,configSaving:k,configError:C,configStatus:S,onSave:y,onReload:F}){const $=t==="direct-voice";return e.jsx("div",{className:"rounded border border-[var(--scout-chrome-border-soft)] bg-[var(--hud-surface)] p-3",children:e.jsxs("div",{className:"flex flex-col gap-3",children:[$?e.jsxs("fieldset",{className:"flex flex-col gap-2",children:[e.jsx("legend",{className:"mb-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:"Scout voice"}),e.jsx("div",{className:"grid grid-cols-2 gap-2",role:"radiogroup","aria-label":"Scout voice",children:Be.map(l=>{const I=i===l.id;return e.jsxs("button",{type:"button",role:"radio","aria-checked":I,onClick:()=>c(l.id),className:`min-h-20 rounded border p-2.5 text-left transition ${I?"border-[var(--hud-accent)] bg-[var(--hud-accent-soft)] text-[var(--scout-chrome-ink)]":"border-[var(--scout-chrome-border-soft)] bg-[var(--hud-bg)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)]"}`,children:[e.jsx("span",{className:"block font-mono text-xs font-bold uppercase tracking-[0.1em]",children:l.label}),e.jsxs("span",{className:"mt-1 block font-mono text-2xs leading-relaxed text-[var(--scout-chrome-ink-ghost)]",children:[l.voiceName," · ",l.description]}),e.jsxs("span",{className:"mt-1 block font-mono text-2xs leading-relaxed text-[var(--scout-chrome-ink-ghost)]",children:[yo[l.provider]," · ",l.speech.modelId," · ",l.speech.voiceId]}),l.accentFromPrompt&&e.jsx("span",{className:"mt-1 block font-mono text-2xs leading-relaxed text-[var(--scout-chrome-ink-ghost)]",children:"Accent is prompted, not a separate voice."})]},l.id)})}),e.jsxs("button",{type:"button",role:"radio","aria-checked":i==="device",onClick:()=>c("device"),className:`rounded border px-2.5 py-2 text-left font-mono text-xs transition ${i==="device"?"border-[var(--hud-accent)] bg-[var(--hud-accent-soft)] text-[var(--scout-chrome-ink)]":"border-[var(--scout-chrome-border-soft)] bg-[var(--hud-bg)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)]"}`,children:[e.jsx("span",{className:"font-bold uppercase tracking-[0.1em]",children:"This Mac's voice"}),e.jsx("span",{className:"ml-2 text-[var(--scout-chrome-ink-ghost)]",children:"Speaks through Scout Menu in its own Settings › Voice pick. The only way to hear installed voices such as Kokoro."})]}),e.jsxs("button",{type:"button",role:"radio","aria-checked":i==="custom",onClick:()=>c("custom"),className:`rounded border px-2.5 py-2 text-left font-mono text-xs transition ${i==="custom"?"border-[var(--hud-accent)] bg-[var(--hud-accent-soft)] text-[var(--scout-chrome-ink)]":"border-[var(--scout-chrome-border-soft)] bg-[var(--hud-bg)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)]"}`,children:[e.jsx("span",{className:"font-bold uppercase tracking-[0.1em]",children:"Custom voice"}),e.jsx("span",{className:"ml-2 text-[var(--scout-chrome-ink-ghost)]",children:"Use any supported model, voice, and style."})]}),i==="custom"&&e.jsxs("div",{className:"grid gap-2 rounded border border-[var(--scout-chrome-border-soft)] bg-[var(--hud-bg)] p-2.5",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Speech model",e.jsx("input",{value:u,onChange:l=>p(l.target.value),placeholder:"gpt-4o-mini-tts",className:"rounded border border-[var(--scout-chrome-border-soft)] px-2 py-1.5 font-mono text-xs normal-case tracking-normal text-[var(--scout-chrome-ink)] placeholder:text-[var(--scout-chrome-ink-ghost)] bg-[var(--hud-bg)]"})]}),e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Voice ID",e.jsx("input",{value:w,onChange:l=>j(l.target.value),placeholder:"marin",className:"rounded border border-[var(--scout-chrome-border-soft)] px-2 py-1.5 font-mono text-xs normal-case tracking-normal text-[var(--scout-chrome-ink)] placeholder:text-[var(--scout-chrome-ink-ghost)] bg-[var(--hud-bg)]"})]})]}),e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Speaking style",e.jsx("textarea",{value:v,onChange:l=>M(l.target.value),rows:3,placeholder:"Speak naturally, clearly, and conversationally.",className:"w-full resize-y rounded border border-[var(--scout-chrome-border-soft)] px-2 py-1.5 font-mono text-xs normal-case leading-relaxed tracking-normal text-[var(--scout-chrome-ink)] placeholder:text-[var(--scout-chrome-ink-ghost)] bg-[var(--hud-bg)]"})]})]}),e.jsx("p",{className:"font-mono text-2xs normal-case leading-relaxed text-[var(--scout-chrome-ink-ghost)]",children:"Request-based TTS, separate from GPT Live. Replies are AI-generated speech."})]}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Voice FX",e.jsx("select",{value:o,onChange:l=>a(l.target.value),className:"rounded border border-[var(--scout-chrome-border-soft)] bg-[var(--hud-bg)] px-2 py-1.5 font-mono text-sm normal-case tracking-normal text-[var(--scout-chrome-ink)]",children:Bt.map(l=>e.jsxs("option",{value:l.id,children:[l.label," — ",l.family]},l.id))}),e.jsx("span",{className:"font-mono text-2xs normal-case leading-relaxed tracking-normal text-[var(--scout-chrome-ink-ghost)]",children:Bt.find(l=>l.id===o)?.description??"Custom voice mood for spoken replies."})]}),e.jsxs("div",{className:"flex flex-col gap-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Scout Voice",e.jsx("div",{className:"rounded border border-[var(--scout-chrome-border-soft)] bg-[var(--hud-bg)] px-2 py-1.5 font-mono text-sm normal-case tracking-normal text-[var(--scout-chrome-ink)]",children:N?`${N.modelId}${N.voiceId?` / ${N.voiceId}`:""}`:"Unavailable"})]})]}),e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Preferred model",h.length>0?e.jsx("select",{value:f,onChange:l=>b(l.target.value),className:"rounded border border-[var(--scout-chrome-border-soft)] px-2 py-1.5 font-mono text-sm normal-case tracking-normal text-[var(--scout-chrome-ink)] bg-[var(--hud-bg)]",disabled:g||k,children:h.map(l=>e.jsx("option",{value:l.id,children:l.label},l.id))}):e.jsx("input",{value:f,onChange:l=>b(l.target.value),placeholder:"gpt-5.6-luna",className:"rounded border border-[var(--scout-chrome-border-soft)] px-2 py-1.5 font-mono text-sm normal-case tracking-normal text-[var(--scout-chrome-ink)] placeholder:text-[var(--scout-chrome-ink-ghost)] bg-[var(--hud-bg)]",disabled:g||k})]}),e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["System Prompt",e.jsx("textarea",{value:E,onChange:l=>T(l.target.value),rows:6,className:"w-full resize-y rounded border border-[var(--scout-chrome-border-soft)] px-2 py-1.5 font-mono text-xs normal-case leading-relaxed tracking-normal text-[var(--scout-chrome-ink)] bg-[var(--hud-bg)]",disabled:g||k})]}),C&&e.jsx("div",{className:"font-mono text-xs leading-relaxed text-[var(--hud-status-error)]",children:C}),S&&e.jsx("div",{className:"font-mono text-xs leading-relaxed text-[var(--hud-accent)]",children:S}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:y,disabled:g||k||!E.trim(),className:"flex items-center justify-center gap-2 rounded bg-[var(--hud-accent)] px-2.5 py-2 font-mono text-xs font-bold uppercase tracking-[0.12em] text-black transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-40",children:[(g||k)&&e.jsx(X,{size:13,className:"animate-spin"}),k?"Saving":"Save"]}),e.jsx("button",{type:"button",onClick:F,disabled:g||k,className:"rounded border border-[var(--scout-chrome-border-soft)] px-2.5 py-2 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)] disabled:cursor-not-allowed disabled:opacity-40",children:"Reload"})]})]})})}const Co="chill-dispatcher",Eo=6e4,To=2500,Io=1.2,_o={lowCutHz:160,highCutHz:5200,bandQ:.35,saturationAmount:.035,bitcrushAmount:0,hissGain:0,hissCutoffHz:1800,presencePeakDb:1.5,presenceCenterHz:1500,presenceQ:.65,compressorThresholdDb:-15,compressorRatio:2.2,clickEnabled:!0,clickGain:.24,clickDurationMs:45,squelchTailEnabled:!0,squelchTailGain:.018,squelchTailDurationMs:95,outputGain:1,wetMix:.38};function Ro(t){const o=Math.min(1,t/8);return{saturationAmount:.035+o*.025,presencePeakDb:1.5+o*1.5}}function Mo(t,o){return{...t==="chill-dispatcher"?_o:{},...Ro(o)}}function ns(t,o,a){return new Promise((i,c)=>{const u=window.setTimeout(()=>c(new Error(a)),o);t.then(i,c).finally(()=>window.clearTimeout(u))})}async function De(t,o={}){!t.sessionId&&!o.allowCurrentSession||await ns(t.cancel(),To,"Timed out releasing Scout voice session.").catch(()=>{})}function Vo(t){const o=t instanceof Error?t.message:String(t);return/session_cancelled|was cancelled|cancelled/i.test(o)}const qt=new RegExp("(?:^|(?<=[\\s(`'\"<>]))(?:~\\/|\\/(?:Users|home|opt|var|etc|tmp|private)\\/)[^\\s)`'\"<>]+\\.[A-Za-z0-9]{1,8}\\b","g");function Ao(t){const o=[],a=new Set;qt.lastIndex=0;let i;for(;(i=qt.exec(t))!==null;)a.has(i[0])||(a.add(i[0]),o.push(i[0]));return o}function Yt(t){const o=t.split("/").filter(Boolean);return o.length<=2?t:`…/${o.slice(-2).join("/")}`}function Lo(){return{requesterName:"OpenScout",productName:"Scout Voice",headline:"Turn on local voice",body:"Scout voice handles local speech capture and spoken replies. Start Scout services, then return here to talk with your workspace.",actionLabel:"Return to OpenScout",logo:{url:new URL("/openscout-icon.png",window.location.href).toString(),symbolName:"sparkles"}}}const Oo=["Explain what went wrong here.","Help me rewrite this message.","What should I try next?"];function Po({height:t,forceExpanded:o=!1,fill:a=!1,presentation:i="chat",onOpenLive:c}={}){const{applyScoutbotUiAction:u,agents:p,route:w,onlineCount:j}=At(),v=gs(),M=nt(rt,!0),N=at(),f=M&&(N.state==="connecting"||N.state==="live"),[b,h]=Pt("openscout.scoutbot.collapsed",!0),[E,T]=n.useState(""),[g,k]=n.useState(!1),[C,S]=n.useState(null),[y,F]=n.useState(null),[$,l]=n.useState(null),[I,W]=n.useState("idle"),[_,L]=Pt("openscout.scoutbot.voiceReplies",!1),[G]=Is("openscout.scoutbot.voiceSpeed",Io),[q,x]=ge("openscout.scoutbot.voicePresetId",Co),[B,Z]=ge("openscout.scoutbot.speechProfileId",ot),[U,V]=ge("openscout.scoutbot.customSpeechModelId",me.modelId),[O,it]=ge("openscout.scoutbot.customSpeechVoiceId",me.voiceId),[ye,ct]=ge("openscout.scoutbot.customSpeechInstructions",me.instructions),[Y,we]=n.useState(!1),[Fe,te]=n.useState(null),[He,he]=n.useState(""),[J,We]=n.useState(!1),[as,lt]=n.useState(null),[dt,Ge]=n.useState(null),[$o,je]=n.useState(null),[qe,P]=n.useState(null),[oe,pe]=n.useState(!1),[is,Ne]=n.useState(!1),[D,ne]=n.useState(null),[re,ut]=n.useState(!1),[Ye,mt]=n.useState(null),[ht,pt]=n.useState(!1),[xt,ft]=n.useState(!1),[bt,Ce]=n.useState(null),[vt,Je]=n.useState(null),[Ee,Te]=n.useState(""),[gt,kt]=n.useState([]),[Ie,_e]=n.useState(""),[St,yt]=n.useState(null),[cs,ae]=n.useState(!1),[ls,ie]=n.useState(0),[ds,Re]=n.useState(!1),[Qe,wt]=n.useState(null),Me=jo(B)?B:ot,xe=n.useMemo(()=>No(Me,{modelId:U,voiceId:O,instructions:ye}),[ye,U,O,Me]),Ve=n.useRef(Rs()),ce=n.useRef(!1),Q=n.useRef(null),le=n.useRef(null),se=n.useRef(null),Ae=n.useRef(_);Ae.current=_,n.useEffect(()=>{i==="direct-voice"&&(Ae.current=!0,L(!0))},[i,L]),n.useEffect(()=>(ce.current=!0,()=>{ce.current=!1,le.current="discard";const s=Q.current;Q.current=null,s&&De(s,{allowCurrentSession:!0}),se.current?.stop(),se.current=null}),[]);const R=n.useCallback(()=>{se.current?.stop(),se.current=null,We(!1)},[]),Le=n.useCallback(s=>{if(!s)return;R();const r=to(s),d=i==="direct-voice"?Ms(r,{speed:G,modelId:xe.modelId,voiceId:xe.voiceId,instructions:xe.instructions,playback:xe.playback}):Vs(r,{speed:G,presetId:q,params:Mo(q,j)});se.current=d,We(!0),d.promise.catch(m=>{As(m)||console.warn("[scoutbot] reply speech unavailable",{message:m instanceof Error?m.message:String(m)})}).finally(()=>{se.current===d&&(se.current=null,We(!1))})},[R,G,xe,j,i,q]),jt=n.useCallback(s=>{Ae.current&&Le(s)},[Le]),Nt=n.useCallback(s=>{Le(ue(s))},[Le]),{openFilePreview:Ct}=At(),Et=ks(),us=n.useCallback((s,r)=>{const d=window.getSelection()?.toString().trim(),m=ue(r),A=Ao(m),z=[];if(d&&(z.push({kind:"action",label:"Copy selection",shortcut:"⌘C",onSelect:()=>{$e(d)}}),z.push({kind:"separator"})),z.push({kind:"action",label:"Copy message",onSelect:()=>{$e(m)}}),A.length>0){z.push({kind:"separator"});for(const ee of A.slice(0,5)){const Ke=Yt(ee);z.push({kind:"action",label:`Preview ${Ke}`,onSelect:()=>Ct(ee)})}for(const ee of A.slice(0,5)){const Ke=Yt(ee);z.push({kind:"action",label:`Open ${Ke} in OS`,onSelect:()=>{H("/api/file/reveal",{method:"POST",body:JSON.stringify({path:ee})}).catch(()=>{})}})}z.push({kind:"action",label:A.length===1?"Copy path":"Copy first path",onSelect:()=>{$e(A[0])}})}z.push({kind:"separator"}),z.push({kind:"action",label:J?"Say again (stop current)":"Say",onSelect:()=>Nt(r)}),Et(s,z)},[Ct,Nt,Et,J]);n.useEffect(()=>()=>{R()},[R]);const ms=Oo,de=n.useCallback(s=>{const r=[...s.messages].reverse().find(m=>m.role==="user"),d=[...s.messages].reverse().find(m=>m.role==="assistant");Ge(r?.body??null),je(d?ue(d.body):null)},[]),fe=n.useCallback(async()=>{try{const s=await H("/api/scoutbot/session");ne(s),de(s.session)}catch{ne(null)}},[de]);n.useEffect(()=>{fe()},[fe]);const Oe=n.useCallback(async()=>{pt(!0),Ce(null);try{const s=await H("/api/scoutbot/config");Te(s.model),kt(s.modelOptions??[]),_e(s.systemPrompt),Je(null)}catch(s){Ce(s instanceof Error?s.message:"Could not load settings.")}finally{pt(!1)}},[]);n.useEffect(()=>{oe&&Oe()},[Oe,oe]),n.useEffect(()=>{if(!oe)return;let s=!1;return H("/api/voice/defaults").then(r=>{s||yt(r)}).catch(()=>{s||yt(null)}),()=>{s=!0}},[oe]);const Tt=n.useCallback(async()=>{ft(!0),Ce(null),Je(null);try{const s=await H("/api/scoutbot/config",{method:"POST",body:JSON.stringify({model:Ee,systemPrompt:Ie})});Te(s.config.model),kt(s.config.modelOptions??[]),_e(s.config.systemPrompt),Je("Saved")}catch(s){Ce(s instanceof Error?s.message:"Could not save settings.")}finally{ft(!1)}},[Ee,Ie]),hs=n.useCallback(async s=>{if(!(!s||Qe)){wt(s),S(null),R();try{const r=await H("/api/scoutbot/session/switch",{method:"POST",body:JSON.stringify({id:s})});ne(r),de(r.session),Re(!1),ae(!1),window.dispatchEvent(new CustomEvent(ve,{detail:{id:r.session.id}}))}catch(r){S(r instanceof Error?r.message:"Could not switch session.")}finally{wt(null)}}},[R,Qe,de]),Pe=n.useCallback(async()=>{if(!(re||g)){if(D?.session.messages.length===0){T(""),S(null),ae(!1),Re(!1),P("New chat ready"),ie(s=>s+1);return}ut(!0),S(null),P("Starting new chat"),R();try{const s=await H("/api/scoutbot/session/reset",{method:"POST"});ne(s),T(""),Ge(null),je(null),ae(!1),Re(!1),P("New chat ready"),ie(r=>r+1),window.dispatchEvent(new CustomEvent(ve,{detail:{id:s.session.id}}))}catch(s){P(null),S(s instanceof Error?s.message:"Could not start a new chat.")}finally{ut(!1)}}},[re,g,D,R]),ps=n.useCallback(async s=>{if(!(!s||Ye)){mt(s),S(null),R();try{const r=await H("/api/scoutbot/session/archive",{method:"POST",body:JSON.stringify({id:s})});ne(r),de(r.session),ae(!1),P("session archived"),window.dispatchEvent(new CustomEvent(ve,{detail:{id:r.session.id}}))}catch(r){S(r instanceof Error?r.message:"Could not archive session.")}finally{mt(null)}}},[Ye,R,de]),ze=n.useCallback((s,r)=>{F(r),lt(s.activeInputDeviceName),l(r?null:s.lastUnavailableReason??"Scout voice service is not reachable."),W("idle")},[]),K=n.useCallback(async(s=!1)=>{const r=Ve.current;W(m=>m==="launching"?m:"probing");const d=await r.probe(s?{force:!0}:void 0);return ze(r,d),d},[ze]);n.useEffect(()=>{Ls();const s=Ve.current,r=Os(d=>{F(d.ok),lt(d.inputDeviceName),l(d.ok?null:d.reason),W("idle")});return s.connectionState==="unknown"?K():ze(s,s.connectionState==="connected"),r},[ze,K]);const It=n.useCallback(()=>{const s=Ve.current;S(null),W("launching"),s.launch({source:"openscout",context:Lo()}),window.setTimeout(()=>{K(!0)},2400)},[K]),_t=n.useCallback(s=>{const r=ue(s);je(r);for(const d of _s(s))d.type==="ask-agent"?(P(`Sending to ${d.targetLabel}`),H("/api/scoutbot/actions/ask",{method:"POST",body:JSON.stringify({targetLabel:d.targetLabel,targetAgentId:d.targetAgentId,body:d.body,channel:d.channel})}).then(m=>{P(m.flightId?`Sent to ${m.targetAgentId??m.targetLabel} · run ${m.flightId}`:`Sent to ${m.targetAgentId??m.targetLabel}`)}).catch(m=>{P(null),S(m instanceof Error?m.message:"Could not send to agent.")})):d.type!=="reminder"&&u(d);jt(r)},[u,jt]);n.useEffect(()=>{const s=()=>{P("Scoutbot replied by voice"),fe()},r=()=>{P("Scoutbot chat changed"),fe()};return window.addEventListener(Lt,s),window.addEventListener(ve,r),()=>{window.removeEventListener(Lt,s),window.removeEventListener(ve,r)}},[fe]);const be=n.useCallback(async s=>{const r=s.trim();if(!(!r||g)){k(!0),S(null),Ge(r),je(null),P("Sending"),T(d=>d.trim()===r?"":d);try{await Ts().catch(()=>null);const d=await H("/api/scoutbot/chat",{method:"POST",body:JSON.stringify({body:r,route:w,uiContext:Ss("web")})});ne({session:d.session,sessions:d.sessions,config:d.config}),P("Reply received"),_t(d.reply.body)}catch(d){P(null),S(d instanceof Error?d.message:"Could not send.")}finally{k(!1)}}},[_t,w,g]),Rt=n.useCallback(async()=>{if(Y)return;const s=Ve.current;if(le.current=null,S(null),he(""),te("starting"),y!==!0&&!await K(!0)){te(null);return}let r=null,d=!1;const m=async()=>{!r||d||(d=!0,await De(r,{allowCurrentSession:Q.current===r}),Q.current===r&&(Q.current=null))};try{if(r=await s.startLive({onState:te,onPartial:he},{surface:i==="direct-voice"?"direct-voice":"chat-composer"}),!ce.current){await De(r,{allowCurrentSession:!0});return}Q.current=r,we(!0);const A=await r.result;if(await m(),!ce.current||(we(!1),he(""),le.current))return;te("done"),A.text&&await be(A.text)}catch(A){const z=le.current;if(!ce.current)return;const ee=!!z||Vo(A);if(await m(),we(!1),he(""),z==="stop-failed")return;te(ee?null:"error"),ee||S(A instanceof Error?A.message:"Scout voice recording failed.")}finally{ce.current&&await m(),le.current=null}},[be,i,K,Y,y]),Mt=n.useCallback(async()=>{const s=Q.current;if(s){te("processing");try{await ns(s.stop(),Eo,"Scout voice did not finish processing the recording.")}catch(r){le.current="stop-failed",await De(s,{allowCurrentSession:!0}),Q.current===s&&(Q.current=null,we(!1),he(""),te("error")),S(r instanceof Error?`Scout voice recording did not finish: ${r.message}`:"Scout voice recording did not finish.")}}},[]);n.useEffect(()=>{const s=()=>h(!1);return window.addEventListener("scout:scoutbot-panel-open",s),()=>window.removeEventListener("scout:scoutbot-panel-open",s)},[h]),n.useEffect(()=>Cs(()=>h(!b)),[b,h]),n.useEffect(()=>{const s=r=>{const d=r.detail,m=d&&typeof d=="object"&&"body"in d?d.body:null;typeof m=="string"&&m.trim()&&(h(!1),be(m))};return window.addEventListener(zt,s),()=>window.removeEventListener(zt,s)},[be,h]),n.useEffect(()=>{const s=r=>{const d=r.detail,m=d&&typeof d=="object"&&"body"in d?d.body:null;typeof m=="string"&&m.trim()&&(h(!1),T(m),ie(A=>A+1))};return window.addEventListener("scout:scoutbot-compose",s),()=>window.removeEventListener("scout:scoutbot-compose",s)},[h]);const Vt=n.useMemo(()=>{const s=J?"speaking":g?"thinking":Y?"listening":"idle",r=D?.session??null,d=r&&r.messages.length>0?r.messages[r.messages.length-1]:null;return{activity:s,brief:{lastDeliveredAt:null},reminders:{dueCount:0,upcomingCount:0,due:[],next:null},voice:{available:y,setupBlocked:y===!1,replies:_},error:C,session:{title:r?.title??null,lastActivityAt:d?.createdAt??r?.updatedAt??null},conversation:{messageCount:r?.messages.length??0,loading:D===null}}},[J,g,Y,y,_,C,D]);n.useEffect(()=>{v?.publishState(Vt)},[v,Vt]),n.useEffect(()=>{if(!v)return;const s={focusScoutbot:()=>h(!1),triggerBrief:()=>{h(!1),ie(r=>r+1)},triggerAskState:()=>{h(!1),ie(r=>r+1)},toggleVoiceReplies:()=>{const r=!_;L(r),r||R()},openScoutbotSettings:()=>{h(!1),pe(!0)},startNewChat:()=>{h(!1),re||Pe()},dismissReminder:()=>{},askReminderStatus:()=>{h(!1),ie(r=>r+1)}};v.registerActions(s)},[v,h,_,L,R,pe,re,Pe]),n.useEffect(()=>{y===!0&&Ne(!1)},[y]);const xs=f?"Live call":Y?Fe==="processing"?"Sending":"Stop":I==="probing"?"Checking Voice":I==="launching"?"Opening Scout":y===!1?"Open Scout":"Start Talking",fs=D!==null&&D.session.messages.length===0&&!g;if(i==="direct-voice")return e.jsx(So,{messages:D?.session.messages??[],pendingAsk:g?dt:null,partial:He,error:C,status:qe,recording:Y,sending:g,speaking:J,voiceAvailable:y,voiceInputSource:as,voiceProbeState:I,voiceState:Fe,voiceReplies:_,settingsOpen:oe,assistantModel:D?.session.model??D?.config.model??null,setupPanel:y===!1?e.jsx(Wt,{issue:$,probeState:I,onLaunch:It,onRetry:()=>{K(!0)},onSettings:()=>pe(!0),onDismiss:()=>Ne(!1)}):null,settingsPanel:e.jsx(Gt,{presentation:"direct-voice",voicePresetId:q,onVoicePresetId:x,speechSelectionId:Me,onSpeechSelectionId:Z,customSpeechModelId:U,onCustomSpeechModelId:V,customSpeechVoiceId:O,onCustomSpeechVoiceId:it,customSpeechInstructions:ye,onCustomSpeechInstructions:ct,voiceDefaults:St,modelDraft:Ee,onModelDraft:Te,modelOptions:gt,promptDraft:Ie,onPromptDraft:_e,configLoading:ht,configSaving:xt,configError:bt,configStatus:vt,onSave:()=>{Tt()},onReload:()=>{Oe()}}),onPrimaryAction:()=>{J?R():Y?Mt():y===!1?K(!0):Rt()},onToggleVoiceReplies:()=>{const s=!_;Ae.current=s,L(s),s||R()},onToggleSettings:()=>pe(s=>!s),onNewChat:()=>{re||Pe()},onOpenLive:c});if(b&&!o)return e.jsx("div",{className:"flex shrink-0 items-center border-t border-[var(--scout-chrome-border-soft)] px-3 py-1.5",children:e.jsx(Es,{})});const bs=a?"flex h-full min-h-0 flex-col overflow-hidden border-t border-[var(--scout-chrome-border-soft)]":t===void 0?"flex max-h-[60vh] shrink-0 flex-col overflow-hidden border-t border-[var(--scout-chrome-border-soft)]":"flex shrink-0 flex-col overflow-hidden border-t border-[var(--scout-chrome-border-soft)]",vs=t===void 0||a?void 0:{height:`${t}px`};return e.jsxs("section",{className:bs,style:vs,children:[e.jsxs("div",{className:"flex shrink-0 flex-col gap-2 px-3 pt-2.5 pb-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"flex min-w-0 items-center gap-2",children:e.jsx(Ws,{size:20,className:"shrink-0 text-lime-300","aria-hidden":"true"})}),e.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[e.jsx(Ht,{icon:_?e.jsx(ss,{size:11}):e.jsx(os,{size:11}),title:f?_?"Voice replies on for typed chat (live call has its own audio)":"Voice replies off for typed chat (live call has its own audio)":_?"Voice replies on (click to mute)":"Voice replies off (click to enable)",onClick:()=>{const s=!_;L(s),s||R()},active:_}),!o&&e.jsx(Ht,{icon:e.jsx(Ze,{size:11}),title:"Minimize",onClick:()=>h(!0)})]})]}),oe&&e.jsx(Gt,{presentation:"chat",voicePresetId:q,onVoicePresetId:x,speechSelectionId:Me,onSpeechSelectionId:Z,customSpeechModelId:U,onCustomSpeechModelId:V,customSpeechVoiceId:O,onCustomSpeechVoiceId:it,customSpeechInstructions:ye,onCustomSpeechInstructions:ct,voiceDefaults:St,modelDraft:Ee,onModelDraft:Te,modelOptions:gt,promptDraft:Ie,onPromptDraft:_e,configLoading:ht,configSaving:xt,configError:bt,configStatus:vt,onSave:()=>{Tt()},onReload:()=>{Oe()}})]}),e.jsx("div",{className:"flex min-h-0 flex-1 flex-col px-3 pb-1.5",children:D&&e.jsx(ao,{state:D,chatExpanded:cs,onToggleExpanded:()=>ae(s=>!s),sessionPickerOpen:ds,onToggleSessionPicker:()=>Re(s=>!s),onStartNewChat:()=>{Pe()},startingNewChat:re,onSwitchSession:s=>{hs(s)},switchingSessionId:Qe,sending:g,briefing:!1,pendingAsk:g?dt:null,onArchiveSession:s=>{ps(s)},archivingSessionId:Ye,onAssistantContextMenu:us,suggestedPrompts:ms,onSelectPrompt:s=>{T(s),ae(!1)}})}),e.jsxs("div",{className:"flex shrink-0 flex-col gap-1.5 border-t border-[var(--scout-chrome-border-soft)] bg-black/10 px-3 pt-2 pb-2.5",children:[y===!1&&is&&!f&&e.jsx(Wt,{issue:$,probeState:I,onLaunch:It,onRetry:()=>{K(!0)},onSettings:()=>pe(!0),onDismiss:()=>Ne(!1)}),(He||J)&&!f&&e.jsxs("div",{className:"flex items-center justify-between gap-2 rounded border border-[var(--scout-chrome-border-soft)] bg-black/10 px-2.5 py-2 font-mono text-xs leading-relaxed text-[var(--scout-chrome-ink-faint)]",children:[e.jsx("span",{className:"min-w-0 truncate",children:J?"Speaking reply…":He}),J&&e.jsx("button",{type:"button",title:"Stop spoken reply",onClick:R,className:"shrink-0 rounded border border-[var(--scout-chrome-border-soft)] p-1 text-[var(--scout-chrome-ink)] hover:bg-[var(--scout-chrome-hover)]",children:e.jsx(Zt,{size:11,className:"fill-current"})})]}),qe&&!g&&e.jsx("div",{className:"font-mono text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-ghost)]",children:qe}),e.jsx(co,{agents:p,draft:E,onDraftChange:T,onSubmit:()=>{be(E)},sending:g,recording:Y,voiceLabel:xs,voiceBusy:Fe==="processing"||I==="probing"||I==="launching",voiceUnavailable:y===!1,voiceHeld:f,onMicClick:()=>{if(!f){if(y===!1){Ne(!0);return}Y?Mt():Rt()}},prominent:fs&&!f,autoFocus:o,focusSignal:ls}),C&&e.jsx("div",{className:"rounded border border-red-400/30 bg-red-400/10 px-2.5 py-2 font-mono text-xs leading-relaxed text-red-200",children:C})]})]})}function rs({dictationActive:t=!1,autoStart:o=!1}){const a=nt(rt,!0),{enabled:i,state:c,leaseId:u,startCall:p,endCall:w}=at(),j=n.useRef(!1),v=n.useRef(null),[M,N]=n.useState(()=>window.innerWidth>=720&&window.innerHeight>=520?"page":"compact"),f=window.webkit?.messageHandlers?.scoutRealtimeVoice;return n.useEffect(()=>{const b=()=>{N(window.innerWidth>=720&&window.innerHeight>=520?"page":"compact")};return b(),window.addEventListener("resize",b),()=>window.removeEventListener("resize",b)},[]),n.useEffect(()=>{f?.postMessage({kind:"session-state",state:c,leaseId:u})},[u,f,c]),n.useEffect(()=>{const b=()=>{if(v.current)return v.current;const E=w().finally(()=>{v.current===E&&(v.current=null)});return v.current=E,E},h=()=>{b()};return window.__scoutRealtimeVoiceStop=b,window.addEventListener(Ot,h),window.__scoutRealtimeVoiceStopRequested&&b(),()=>{window.removeEventListener(Ot,h),window.__scoutRealtimeVoiceStop===b&&delete window.__scoutRealtimeVoiceStop}},[w]),n.useEffect(()=>{!o||t||!a||!i||j.current||c!=="idle"&&c!=="ended"&&c!=="error"||(j.current=!0,p())},[o,t,a,i,p,c]),a?i?e.jsxs("div",{className:"flex h-full flex-col overflow-hidden",children:[e.jsx(Qt,{state:c,onMinimize:f?()=>f.postMessage("minimize"):void 0,onExpand:f?()=>f.postMessage(M==="page"?"restore":"expand"):void 0,layout:M}),e.jsx(Kt,{dictationActive:t,layout:M})]}):e.jsxs("div",{className:"flex h-full flex-col justify-center gap-2 p-4",children:[e.jsx("p",{className:"font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:"Live voice is disabled"}),e.jsx("p",{className:"text-sm leading-snug text-[var(--scout-chrome-ink-faint)]",children:"Enable realtime voice in Settings → Voice. The footer Voice control starts and manages calls."})]}):e.jsxs("div",{className:"flex h-full flex-col justify-center gap-2 p-4",children:[e.jsx("p",{className:"font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:"Live voice is off"}),e.jsx("p",{className:"text-sm leading-snug text-[var(--scout-chrome-ink-faint)]",children:"This Scout build has live conversations disabled. Calls use the configured OpenAI API account when the feature is available."})]})}function zo(){const t=nt(rt,!0),{enabled:o,state:a}=at(),[i,c]=n.useState("direct"),u=t&&o;return i==="direct"?e.jsx("main",{className:"h-full min-h-0 overflow-hidden bg-[#f3f0e9]",children:e.jsx(Po,{forceExpanded:!0,fill:!0,presentation:"direct-voice",onOpenLive:()=>c("realtime")})}):e.jsxs("main",{className:"flex h-full min-h-0 flex-col overflow-hidden bg-[var(--scout-chrome-bg)]",children:[e.jsxs("header",{className:"flex min-h-14 shrink-0 items-center justify-between gap-4 border-b border-[var(--scout-chrome-border-soft)] px-4 py-2.5 sm:px-7",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx("h1",{className:"truncate font-[var(--font-accent-title)] text-[17px] font-semibold tracking-[-0.018em] text-[var(--scout-chrome-ink-strong)]",children:"GPT Live"}),e.jsx("span",{className:"hidden h-4 w-px bg-[var(--scout-chrome-border-soft)] sm:block","aria-hidden":"true"}),e.jsxs("span",{className:"hidden items-center gap-2 text-xs text-[var(--scout-chrome-ink-faint)] sm:flex",children:[e.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${u?"bg-[var(--scout-accent)]":"bg-[var(--scout-chrome-ink-ghost)]"}`,"aria-hidden":"true"}),u?"Ready for a live call":"Live voice unavailable"]})]}),e.jsxs("div",{className:"flex rounded-md border border-[var(--scout-chrome-border-soft)] bg-[var(--scout-chrome-hover)] p-0.5",role:"tablist","aria-label":"Voice mode",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":"false",onClick:()=>c("direct"),className:"rounded-[4px] px-3 py-1.5 text-[11px] font-medium text-[var(--scout-chrome-ink-faint)] transition-colors hover:text-[var(--scout-chrome-ink-strong)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--scout-accent)]",children:"Direct"}),e.jsx("button",{type:"button",role:"tab","aria-selected":"true",className:"rounded-[4px] bg-[var(--scout-chrome-ink-strong)] px-3 py-1.5 text-[11px] font-medium text-[var(--scout-chrome-bg)] shadow-[0_1px_2px_rgba(0,0,0,0.14)]",children:"Live"})]})]}),e.jsx("section",{className:"min-h-0 flex-1 overflow-hidden",children:u?e.jsxs("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[e.jsx(Qt,{state:a,layout:"page"}),e.jsx(Kt,{dictationActive:!1,layout:"page"})]}):e.jsx(rs,{})})]})}const Do=Gs({id:"voice",label:"Voice",route:{view:"voice"},webPath:"/voice",screen:"RealtimeVoiceScreen",embed:{path:"/embed/voice",profile:"macos.voice",rootClassName:"s-voice-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},hosts:{macos:!0},resolveEmbedProps:t=>({dictationActive:t.get("dictationActive")==="1",autoStart:t.get("autoStart")==="1"})}}),fn=Object.freeze(Object.defineProperty({__proto__:null,RealtimeVoicePage:zo,RealtimeVoiceScreen:rs,scoutSurface:Do},Symbol.toStringTag,{value:"Module"}));export{zo as R,Po as S,fn as a};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RepoDiffViewer-C2mb0Wj-.js","assets/index-C8uS5szO.js","assets/index-Ck1__1yL.css","assets/ui-LM8pS8qE.js","assets/usePierreRuntime-DJkRHMoe.js","assets/chunk-HRAB3GC3-C5X-kFhb.js","assets/chevron-down-B5eMsn5c.js","assets/createLucideIcon-DkjnzvcJ.js","assets/check-B8dMv3Is.js","assets/loader-circle-DurUYl7E.js","assets/send-horizontal-pOtGI7FM.js","assets/file-code-corner-D_Aptal2.js","assets/code-xml-BmyLM0I2.js","assets/x-DI1ktCYb.js","assets/cache-DEy9E34b.js","assets/api-CaROe5_H.js","assets/message-square-NmXWtWLR.js","assets/refresh-cw-Da9DDLk2.js","assets/plus-D_wLGJGT.js","assets/repo-diff-DyYmQMSA.css"])))=>i.map(i=>d[i]);
2
- import{j as e,r as i,_ as s}from"./index-C8uS5szO.js";/* empty css */const a=i.lazy(()=>s(()=>import("./RepoDiffViewer-C2mb0Wj-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])).then(r=>({default:r.RepoDiffViewer})));function t(){return e.jsx("div",{className:"rd-viewer","data-scout-theme":!0,children:e.jsx("div",{className:"rd-center",children:e.jsxs("div",{className:"rd-center-card",children:[e.jsx("div",{className:"rd-spinner","aria-hidden":!0}),e.jsx("div",{className:"rd-center-title",children:"Opening diff viewer…"})]})})})}function c(r){return e.jsx(i.Suspense,{fallback:e.jsx(t,{}),children:e.jsx(a,{...r})})}export{c as R};
@@ -1 +0,0 @@
1
- import{r as l,j as e}from"./index-C8uS5szO.js";import{a as g}from"./api-CaROe5_H.js";import{u as I}from"./sse-v5QLsOHV.js";import{u as N}from"./tail-events-DQ46QBW1.js";import{B as k}from"./BackToPicker-Bys9ColC.js";import{ConversationScreen as S}from"./ConversationScreen-tTP6B_F-.js";import{S as R,a as y}from"./SessionObserve-DaqDhqDI.js";import{NATIVE_SESSION_ORIGIN_LABEL as E}from"./SessionObserveEvidence-Drv-D8Oh.js";import{c as w,a as T,b as C,s as u}from"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./index-BWHgHrtv.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversation-model-BGFHoxQ0.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./ConversationComposer-B7RU6LKd.js";import"./AgentAvatar-BIwg54Tj.js";import"./Provider-5Hotn7NQ.js";import"./machine-scope-DJt9RZ2w.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./SpriteAvatar-BW1JzkDt.js";import"./CrewAvatar-CJhuqTsJ.js";import"./zap-sKPkh4sQ.js";import"./message-markup-DgFSyb3f.js";import"./mentions-Ctw1ECUC.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./openContent-C6XO6kr5.js";import"./eye-CtqSV8BS.js";import"./terminal-96JWDYDL.js";import"./message-visibility-DwxgcgYK.js";import"./operator-attention-DGR4kOog.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-CCSU8uo_.js";import"./AstronautSuit-C-4I5YKi.js";import"./panel-right-BNTJhy8M.js";import"./CommsFlowGraph-Czg-KTS0.js";import"./comms-gesture-_aGFo6g3.js";import"./CommsCanvas-DOKw3Q8i.js";import"./comms-deck-CBhsXnY-.js";import"./CommsFlowMap-CzBWvSa5.js";import"./CommsSelection-g1twA-Lb.js";/* empty css */import"./use-conversation-list-A_YUf8lo.js";import"./agent-master-model-C-KdOFDK.js";import"./use-beside-Df-F2Uvg.js";import"./ConversationFeedRows-DVqnZQH0.js";import"./ConversationPanels-C9yCAoJy.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./use-reduced-motion-D7n3vK8t.js";import"./proxy-DOG46ja4.js";import"./activity-CSUhvjD0.js";import"./message-circle-CSiJj6yo.js";import"./ConversationStatus-CK-YfLpi.js";import"./check-B8dMv3Is.js";import"./sparkles-BbOFw3d0.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-Czggx8oM.js";import"./LaneToolHoverCard-C6YehJqD.js";import"./lane-observe-BD21P8BB.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-DkEkQzo-.js";import"./ObserveTextFlow-ET0dD1wO.js";import"./wrench-BsMTSeji.js";import"./external-link-RT4Ph-6-.js";function v(r){const o=r?.trim()??"",t=o.split(/[\\/]/).filter(Boolean).at(-1)??o;return t.endsWith(".jsonl")?t.slice(0,-6):t}function L(r){return r.startsWith("native:process:")}function x(r){const[o,t]=l.useState(()=>({sessionRef:r,lookup:null,loading:!0,error:null})),n=l.useRef(null),c=l.useRef(null);c.current||(c.current=w(m=>g(`/api/session-ref/${encodeURIComponent(m)}`),({sessionRef:m,result:a})=>{if(a.ok){t({sessionRef:m,lookup:a.lookup,loading:!1,error:null});return}t({sessionRef:m,lookup:null,loading:!1,error:a.error instanceof Error?a.error.message:String(a.error)})}));const s=l.useCallback(async()=>{await c.current.request(r)},[r]);l.useEffect(()=>(t({sessionRef:r,lookup:null,loading:!0,error:null}),s(),()=>{c.current?.invalidate(),n.current&&(clearTimeout(n.current),n.current=null)}),[s,r]);const{lookup:i,loading:p,error:d}=T(o,r),f=l.useCallback(()=>{n.current||(n.current=setTimeout(()=>{n.current=null,s()},1e3))},[s]);return I(m=>{const a=[r,i?.refId,i?.kind==="conversation"?i.conversationId:null,i?.session?.agentId,i?.kind==="observe"?i.observe.agentId:null,i?.kind==="observe"?i.observe.sessionId:null];C(m,a)&&f()}),N(m=>{const a=v(m.sessionId),j=v(r),h=i?.kind==="observe"?v(i.observe.sessionId??i.observe.refId):"",b=i?.kind==="observe"?v(i.observe.data.metadata?.session?.externalSessionId):"";!u(a,j)&&(!h||!u(a,h))&&(!b||!u(a,b))||f()}),l.useEffect(()=>()=>{n.current&&clearTimeout(n.current)},[]),{lookup:i,loading:p,error:d}}function Rs({sessionRef:r}){const{lookup:o,loading:t,error:n}=x(r);return o?.kind==="observe"?e.jsx(y,{data:o.observe.data,agentId:o.observe.agentId??o.session?.agentId??void 0,sessionId:o.observe.sessionId??o.observe.refId,surface:"context",observeSource:o.observe.source,observeFidelity:o.observe.fidelity}):e.jsx("aside",{className:"s-observe-rail s-observe-rail--context",children:e.jsxs("div",{children:[e.jsx("div",{className:"s-observe-rail-label",children:o?.kind==="conversation"?"Conversation":"Session context"}),e.jsx("div",{className:"s-observe-empty",children:t?"Resolving session reference":n?"Session context unavailable":"No observe context captured for this session"})]})})}function ys({sessionRef:r,navigate:o,renderBeforeContent:t,showObserveRail:n=!0,onLookup:c}){const{lookup:s,loading:i,error:p}=x(r);if(l.useEffect(()=>{s&&c?.(s)},[s,c]),s?.kind==="conversation")return e.jsxs(e.Fragment,{children:[t?.(s),e.jsx(S,{conversationId:s.conversationId,navigate:o})]});if(s?.kind==="observe")return e.jsxs(e.Fragment,{children:[t?.(s),e.jsx(R,{data:s.observe.data,agentId:s.observe.agentId??s.session?.agentId??void 0,sessionId:s.observe.sessionId??s.observe.refId,conversationId:s.session?.id??null,showRail:n,observeSource:s.observe.source,observeFidelity:s.observe.fidelity,originLabel:E,defaultPresentation:"conversation"})]});if(i)return e.jsx("div",{className:"s-sessions-screen s-inbox-thread-redesign",children:e.jsx("section",{className:"s-thread-overview",children:e.jsxs("div",{className:"s-thread-overview-copy",children:[e.jsxs("div",{className:"s-sessions-header s-thread-overview-heading",children:[e.jsx("h2",{className:"s-page-title",children:"Session"}),e.jsx("span",{className:"s-meta s-tabular",children:r.slice(0,8)})]}),e.jsxs("p",{className:"s-thread-overview-summary s-session-ref-loading",children:[e.jsx("span",{className:"s-session-ref-loading-dot"}),e.jsx("span",{className:"s-session-ref-loading-dot"}),e.jsx("span",{className:"s-session-ref-loading-dot"}),"Resolving session reference"]})]})})});const d=L(r);return e.jsx("div",{className:"s-sessions-screen s-inbox-thread-redesign",children:e.jsx("section",{className:"s-thread-overview",children:e.jsxs("div",{className:"s-thread-overview-copy",children:[e.jsxs("div",{className:"s-sessions-header s-thread-overview-heading",children:[e.jsx("h2",{className:"s-page-title",children:d?"Process trace unavailable":"Session not found"}),e.jsx("span",{className:"s-meta s-tabular",children:r.slice(0,8)})]}),e.jsx("p",{className:"s-thread-overview-summary",children:d?"This is a live process handle, not a transcript session. No replayable session archive is attached yet.":"This session may have ended or the archive is not available on this machine."}),p&&e.jsx("p",{className:"s-session-ref-error-detail",children:p}),e.jsx("div",{className:"s-session-ref-nav-hint",children:e.jsx(k,{slot:"sessions",fallback:{view:"sessions"},navigate:o})})]})})})}export{Rs as SessionRefContextRail,ys as SessionRefScreen};