@openscout/scout 0.2.105 → 0.2.106

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 (573) hide show
  1. package/bin/scoutd +0 -0
  2. package/dist/build-manifest.json +3 -3
  3. package/dist/chat.mjs +23 -1
  4. package/dist/client/assets/ActivityScreen-CZmGwQ2U.js +1 -0
  5. package/dist/client/assets/{AddProjectForm-CHNJ4NnS.js → AddProjectForm-CusDRiVO.js} +1 -1
  6. package/dist/client/assets/{AdventureEvidence-B4mEvXeD.js → AdventureEvidence-CyegKk1V.js} +1 -1
  7. package/dist/client/assets/{AdventureReader-ZsBDQITY.js → AdventureReader-X-hbTOi0.js} +1 -1
  8. package/dist/client/assets/{AdventureScenery-DSxDlqG1.js → AdventureScenery-LPXSVP67.js} +1 -1
  9. package/dist/client/assets/AgentAdventures-BAgxdOF8.js +1 -0
  10. package/dist/client/assets/AgentAvatar-CrP1eXxk.js +1 -0
  11. package/dist/client/assets/AgentConfigurationScreen-1L0IQm2w.js +1 -0
  12. package/dist/client/assets/AgentDefinitionsWorkspace-DguGs7jZ.js +1 -0
  13. package/dist/client/assets/{AgentDetailCard-MIEBKw_S.js → AgentDetailCard-DtHT3sCo.js} +1 -1
  14. package/dist/client/assets/AgentFloorView-DH4jiDgw.js +1 -0
  15. package/dist/client/assets/{AgentFloorWorld-BTqwmK5G.js → AgentFloorWorld-CjoIa6jA.js} +1 -1
  16. package/dist/client/assets/AgentInfoScreen-DYtmKkeE.js +1 -0
  17. package/dist/client/assets/{AgentLaneCard-C4rKLLdT.js → AgentLaneCard-BaZ2g-f8.js} +1 -1
  18. package/dist/client/assets/{AgentLaneChrome-fGC-ZrJS.js → AgentLaneChrome-TF1SlJSc.js} +1 -1
  19. package/dist/client/assets/{AgentLaneDetailSheet-BTF4_th9.js → AgentLaneDetailSheet-EzEPsn3g.js} +1 -1
  20. package/dist/client/assets/{AgentLaneSummaryResize-DgSeA_vS.js → AgentLaneSummaryResize-dpp7YvrX.js} +1 -1
  21. package/dist/client/assets/AgentLanesEmbedScreen-BlSof_6S.js +1 -0
  22. package/dist/client/assets/{AgentLanesPreflight-CcS23wij.js → AgentLanesPreflight-Ry-aqDTr.js} +1 -1
  23. package/dist/client/assets/AgentLanesView-BJi9xXz6.js +2 -0
  24. package/dist/client/assets/{AgentLiveActions-6Kfr1uOT.js → AgentLiveActions-CfTupTEl.js} +1 -1
  25. package/dist/client/assets/AgentMasterScreen-EJhmuKgl.js +1 -0
  26. package/dist/client/assets/AgentSessions-B1gOhDBf.js +6 -0
  27. package/dist/client/assets/AgentsConsole-RXGqRvcb.js +1 -0
  28. package/dist/client/assets/AgentsScreen-ChwMBs11.js +1 -0
  29. package/dist/client/assets/AgentsSubnav-DwNX4yy0.js +1 -0
  30. package/dist/client/assets/{AstronautSuit-D67fIBdR.js → AstronautSuit-Cchnc4Ug.js} +1 -1
  31. package/dist/client/assets/{AtopView-Ck30FbzG.js → AtopView-gkEp4y__.js} +1 -1
  32. package/dist/client/assets/{BackToPicker-CkBhGRlD.js → BackToPicker-CUkjnoVk.js} +1 -1
  33. package/dist/client/assets/BriefingDetailScreen-DrlC3qkm.js +1 -0
  34. package/dist/client/assets/{BriefingsScreen-DTxYMr3a.js → BriefingsScreen-B1HlBMGZ.js} +1 -1
  35. package/dist/client/assets/{BrokerMetadataPanel-crirZCdo.js → BrokerMetadataPanel-Dk242Yh_.js} +1 -1
  36. package/dist/client/assets/BrokerScreen-DwOF6bMA.js +8 -0
  37. package/dist/client/assets/{Canvas-CRP0KjKb.js → Canvas-X9pVSkw3.js} +1 -1
  38. package/dist/client/assets/{CastPicker-ZPomvOf-.js → CastPicker-BXUtPAGC.js} +1 -1
  39. package/dist/client/assets/ChannelComposer-DoK7IDGa.js +1 -0
  40. package/dist/client/assets/ChannelSidebar-e9DOPulb.js +1 -0
  41. package/dist/client/assets/{CharacterFamilyPreview-ckVkecDO.js → CharacterFamilyPreview-DMfw7UM_.js} +1 -1
  42. package/dist/client/assets/{ChatAvatar-DKBsbOqk.js → ChatAvatar-C3a_o5Hj.js} +1 -1
  43. package/dist/client/assets/ChatBits-CsvxbToF.js +1 -0
  44. package/dist/client/assets/{ChatCollapsedStrip-Co0NmqOO.js → ChatCollapsedStrip-FEmQ_G9J.js} +1 -1
  45. package/dist/client/assets/ChatRichInput-DhtwFxQE.js +31 -0
  46. package/dist/client/assets/ChatRightPanel-C1h_aIkn.js +1 -0
  47. package/dist/client/assets/ChatSpaceSurface-BXyLYKHn.js +1 -0
  48. package/dist/client/assets/ChatSpaceTheme-3wLZGsvT.css +1 -0
  49. package/dist/client/assets/ChatSpaceTheme-CUH8bTZc.js +1 -0
  50. package/dist/client/assets/{CodeDiffPane-D-iv28LJ.js → CodeDiffPane-DuQRwpgK.js} +1 -1
  51. package/dist/client/assets/{CodeProjectPicker-CZ3gDdiT.js → CodeProjectPicker-ZQ6gSBpg.js} +1 -1
  52. package/dist/client/assets/{CodeScreen-CSC-zbP9.js → CodeScreen-BXyKeL5T.js} +1 -1
  53. package/dist/client/assets/{CommsCanvas-DdNAwjGW.js → CommsCanvas-THp0r_U8.js} +1 -1
  54. package/dist/client/assets/{CommsDeck-mGWY7Ivi.js → CommsDeck-BVmSMV2V.js} +1 -1
  55. package/dist/client/assets/{CommsFlowGraph-voDD9M5R.js → CommsFlowGraph-DxoOaLF_.js} +1 -1
  56. package/dist/client/assets/{CommsFlowMap-C33sgD48.js → CommsFlowMap-Vi8ziCPg.js} +1 -1
  57. package/dist/client/assets/{CommsSelection-BL8aYD7z.js → CommsSelection-BUoRbu9o.js} +1 -1
  58. package/dist/client/assets/ComposerAttachments-DW0AIb8k.js +1 -0
  59. package/dist/client/assets/ConversationComposer-CUQyArlk.js +1 -0
  60. package/dist/client/assets/ConversationFeedRows-DWiOfT-y.js +1 -0
  61. package/dist/client/assets/ConversationHeader-C-ZWscKj.js +1 -0
  62. package/dist/client/assets/{ConversationPanels-6pprBpmq.js → ConversationPanels-D9oC0xG5.js} +2 -2
  63. package/dist/client/assets/ConversationScreen-9MlMnEo4.css +1 -0
  64. package/dist/client/assets/ConversationScreen-CUfsQ4MR.js +2 -0
  65. package/dist/client/assets/ConversationStatus--IPm2nGh.js +1 -0
  66. package/dist/client/assets/{CrewAvatar-D0c9z5Qr.css → CrewAvatar-BnIPIn_Z.css} +1 -1
  67. package/dist/client/assets/CrewAvatar-kTznzqcO.js +1 -0
  68. package/dist/client/assets/{CrewSprite-Dp9KBBGY.js → CrewSprite-Dhryjx2c.js} +1 -1
  69. package/dist/client/assets/CrewStage-vdO0qm3D.js +1 -0
  70. package/dist/client/assets/CrewWorkspaces-DCBzAAS4.js +1 -0
  71. package/dist/client/assets/{DataTable-av71ehJV.js → DataTable-aH-jCyDq.js} +1 -1
  72. package/dist/client/assets/{DispatchAftermath-CcYGUB10.js → DispatchAftermath-66uQAorV.js} +1 -1
  73. package/dist/client/assets/{DocumentFocusViewer-DlMiEALb.js → DocumentFocusViewer-DJr0v0D_.js} +1 -1
  74. package/dist/client/assets/{EmbeddableSurfacesLab-CTkO_tQR.js → EmbeddableSurfacesLab-BBa70EhJ.js} +1 -1
  75. package/dist/client/assets/{EmptyState-CYUwYyAW.js → EmptyState-CZlrHXy-.js} +1 -1
  76. package/dist/client/assets/{FileViewerPane-Cxhixtks.js → FileViewerPane-BAO6mtjD.js} +1 -1
  77. package/dist/client/assets/FleetRollCallHud-C5q2567n.js +1 -0
  78. package/dist/client/assets/FlightObserveScreen-DZ2mrw91.js +1 -0
  79. package/dist/client/assets/{FloorContextSheet-Vj_wVZq1.js → FloorContextSheet-2_NVPQor.js} +1 -1
  80. package/dist/client/assets/{FloorExchangePanel-CjHSDXad.js → FloorExchangePanel-BU1pPu8K.js} +1 -1
  81. package/dist/client/assets/{FloorMessagePasses-BG4ebnX5.js → FloorMessagePasses-cLW2UGNP.js} +1 -1
  82. package/dist/client/assets/{FloorReplay-BoYaGY9t.js → FloorReplay-VFzA6Kxc.js} +1 -1
  83. package/dist/client/assets/FloorResourcesSheet-C-kQ6Ren.js +1 -0
  84. package/dist/client/assets/{FloorSavedWork-jbtRs-YE.js → FloorSavedWork-BeHDejWz.js} +1 -1
  85. package/dist/client/assets/FloorTacticalHUD-CO-iiFpb.js +1 -0
  86. package/dist/client/assets/{FollowScreen-CupyOgt4.js → FollowScreen-CFfkIbc6.js} +1 -1
  87. package/dist/client/assets/HarnessMark-C4naWc16.js +1 -0
  88. package/dist/client/assets/HarnessesScreen-DX3NLcDG.js +1 -0
  89. package/dist/client/assets/{HerdrSession-Dcm3vf9U.js → HerdrSession-_t7yM8vX.js} +2 -2
  90. package/dist/client/assets/{HomeHero-pIZtE1cC.js → HomeHero-DouPyNmz.js} +1 -1
  91. package/dist/client/assets/{HostAdvisorView-Dv5meXo2.js → HostAdvisorView-CnM1i8hW.js} +1 -1
  92. package/dist/client/assets/InviteLandingScreen-CEjG2E34.js +1 -0
  93. package/dist/client/assets/InviteSheet-CwxZtWCl.js +1 -0
  94. package/dist/client/assets/{JumpPalette-BmiSOEmp.js → JumpPalette-O1aJE9gR.js} +1 -1
  95. package/dist/client/assets/{KnowledgeSearchInspector-B8yiM524.js → KnowledgeSearchInspector-32n9baT-.js} +1 -1
  96. package/dist/client/assets/KnowledgeSearchScreen-Dd6jrQ0A.js +1 -0
  97. package/dist/client/assets/{LaneToolHoverCard-D2cnTeUd.js → LaneToolHoverCard-CJa110yk.js} +1 -1
  98. package/dist/client/assets/LaneTraceDetailSheet-DYrd0BIf.js +1 -0
  99. package/dist/client/assets/{LaneTraceEventFocus-BLhVHwff.js → LaneTraceEventFocus-TbrNHRj_.js} +1 -1
  100. package/dist/client/assets/{MeshCanvas-BR25OBTJ.js → MeshCanvas-DWZHYh1A.js} +2 -2
  101. package/dist/client/assets/{MeshCanvasMinimap-ClVolr4-.js → MeshCanvasMinimap-iswYFpIb.js} +1 -1
  102. package/dist/client/assets/MeshScreen-8nAzQVbm.js +1 -0
  103. package/dist/client/assets/{MeshTopologyView-BT3ke2D1.js → MeshTopologyView-BVvtqI8q.js} +2 -2
  104. package/dist/client/assets/MessageEmbeds-ksPazAKH.js +1 -0
  105. package/dist/client/assets/MessagesScreen-C3WB4T21.js +1 -0
  106. package/dist/client/assets/{MissionContextRail-CafjuseK.js → MissionContextRail-D62-Wis8.js} +1 -1
  107. package/dist/client/assets/MissionControlView-B9cNPXvl.js +1 -0
  108. package/dist/client/assets/{MissionFocusOverlay-nhy3hkxQ.js → MissionFocusOverlay-C1zys3Jv.js} +1 -1
  109. package/dist/client/assets/MissionLeftAgentRow-vycMV77n.js +1 -0
  110. package/dist/client/assets/{MissionLogPane-DiUf3vWW.js → MissionLogPane-B19lYSY9.js} +1 -1
  111. package/dist/client/assets/NativeAreaScreen-B1RLa85C.js +1 -0
  112. package/dist/client/assets/NativeAreaScreen-CV0OhGra.js +1 -0
  113. package/dist/client/assets/NativeAreaScreen-CzuZt6o1.js +1 -0
  114. package/dist/client/assets/{NewAgentModal-BQ2wQ5gp.js → NewAgentModal-Bh-L-emz.js} +1 -1
  115. package/dist/client/assets/NewChatComposer-C97-iTMK.js +19 -0
  116. package/dist/client/assets/{NewChatOrigin-C8ROO4ps.js → NewChatOrigin-DFbF_XvR.js} +1 -1
  117. package/dist/client/assets/{NodeDetailPanel-BNTqYC7m.js → NodeDetailPanel-CElOEpCh.js} +1 -1
  118. package/dist/client/assets/{NodeMenu-CcOeFRCB.js → NodeMenu-B-jjHf1c.js} +1 -1
  119. package/dist/client/assets/ObserveEmbedScreen-B7Qt69Ms.js +2 -0
  120. package/dist/client/assets/{ObserveTextFlow-CC5mnngm.js → ObserveTextFlow-PFnG_10h.js} +2 -2
  121. package/dist/client/assets/{ObservedTopologyPanel-DF6tRZL_.js → ObservedTopologyPanel-CUTIoLZJ.js} +1 -1
  122. package/dist/client/assets/OpenScoutAppShell-37PDFfA4.js +31 -0
  123. package/dist/client/assets/OpsAgentsView-DajlX8LO.js +1 -0
  124. package/dist/client/assets/OpsScreen-jVcaBKGi.js +1 -0
  125. package/dist/client/assets/OpsSubnav-BOOYShHE.js +1 -0
  126. package/dist/client/assets/ProjectAgentProfile-D_wlW4sQ.js +1 -0
  127. package/dist/client/assets/{ProjectAgentProfileBar-C8z22pJ2.js → ProjectAgentProfileBar-DHuMKJj-.js} +1 -1
  128. package/dist/client/assets/ProjectAgentProfileHero-Dbebtug1.js +1 -0
  129. package/dist/client/assets/ProjectsInbox-B8zYE4vP.css +1 -0
  130. package/dist/client/assets/ProjectsInbox-Cgu7B4--.js +2 -0
  131. package/dist/client/assets/ProjectsRail-CDWocin_.js +1 -0
  132. package/dist/client/assets/ProjectsScreen-B_CJycqW.js +1 -0
  133. package/dist/client/assets/ProjectsThreadAside-1MMl_qUD.js +1 -0
  134. package/dist/client/assets/Provider-C35yu29I.js +5 -0
  135. package/dist/client/assets/{RailRow-DUPqXMZh.js → RailRow-BjmWK420.js} +1 -1
  136. package/dist/client/assets/RawSessionsTable-DzT90hWu.js +1 -0
  137. package/dist/client/assets/RealtimeVoiceScreen-B6ylX3WQ.js +16 -0
  138. package/dist/client/assets/{RenderedWorkerSprite-C8fxndAh.js → RenderedWorkerSprite-Dhlyg89J.js} +1 -1
  139. package/dist/client/assets/{ReplayClock-DUVJjrIu.js → ReplayClock-348f17bW.js} +1 -1
  140. package/dist/client/assets/{ReplayLog-Bek1Vc4W.js → ReplayLog-CBnAM3ui.js} +1 -1
  141. package/dist/client/assets/{ReplayOutpost-DlRg3172.js → ReplayOutpost-DyRPfNFx.js} +1 -1
  142. package/dist/client/assets/{RepoDiffEmbedScreen-CVUMnt6A.js → RepoDiffEmbedScreen-BWxvRDrS.js} +1 -1
  143. package/dist/client/assets/{RepoDiffPageScreen-D9-s5PyB.js → RepoDiffPageScreen-DN94irmY.js} +1 -1
  144. package/dist/client/assets/{RepoDiffViewer-D7FN-oyY.js → RepoDiffViewer-_4JVXBIW.js} +1 -1
  145. package/dist/client/assets/RepoDiffViewerLazy-XGVC3WXv.js +2 -0
  146. package/dist/client/assets/{ReposScreen-BQ7HO1om.js → ReposScreen-uMCpt0e9.js} +2 -2
  147. package/dist/client/assets/{RiggedWorkerCharacter-CJMWlvV-.js → RiggedWorkerCharacter-q6QRc7_o.js} +1 -1
  148. package/dist/client/assets/{SageModelStudio-B526NSnw.js → SageModelStudio-CNDhZhgD.js} +1 -1
  149. package/dist/client/assets/{ScoutDeckSurface-ChkvGyEW.js → ScoutDeckSurface-CUaU4R6T.js} +1 -1
  150. package/dist/client/assets/{ScoutSurface-6g1f5chk.js → ScoutSurface-3_25USO_.js} +1 -1
  151. package/dist/client/assets/{ScoutbotFxLab-BuwBdnPf.js → ScoutbotFxLab-CRqhYe0a.js} +1 -1
  152. package/dist/client/assets/{SecondaryNav-Bs-_VwTC.js → SecondaryNav-D7dbV2qo.js} +1 -1
  153. package/dist/client/assets/SessionContextStrip-CXfs9hUD.js +1 -0
  154. package/dist/client/assets/SessionContextStrip-DAIXwtHd.css +1 -0
  155. package/dist/client/assets/{SessionEmbedScreen-C2wf35-P.js → SessionEmbedScreen-D0zFmou-.js} +1 -1
  156. package/dist/client/assets/SessionHopMenu-E6VJZrE0.js +1 -0
  157. package/dist/client/assets/{SessionObserve-B64YsYhy.js → SessionObserve-DXxBvejJ.js} +9 -9
  158. package/dist/client/assets/SessionObserveEvidence-Cuj_KHxR.js +1 -0
  159. package/dist/client/assets/SessionRefScreen-DqLSUlCE.js +1 -0
  160. package/dist/client/assets/SessionsScreen-BLIRkohT.js +1 -0
  161. package/dist/client/assets/SettingsDrawer-juCpnbH6.js +3 -0
  162. package/dist/client/assets/SettingsScreen-BtGzE2-O.js +1 -0
  163. package/dist/client/assets/{SharedFloorCharacter-V04kD5T9.js → SharedFloorCharacter-DNEiaOUh.js} +1 -1
  164. package/dist/client/assets/SharedWorkFloor-0rqtdF-n.css +1 -0
  165. package/dist/client/assets/SharedWorkFloor-D9mf9KSg.js +2 -0
  166. package/dist/client/assets/{ShikiPane-XwFI-pCp.js → ShikiPane-CRtTYkMj.js} +1 -1
  167. package/dist/client/assets/{SlidePanel-BMpkXai_.js → SlidePanel-_CHAQdOa.js} +1 -1
  168. package/dist/client/assets/SpaceSwitcher-BLgSCf_T.js +1 -0
  169. package/dist/client/assets/{SpriteAvatar-aHeF4ZQZ.js → SpriteAvatar-CpZWf54-.js} +1 -1
  170. package/dist/client/assets/{SproutActionSprite-DI5N3gOj.js → SproutActionSprite-BSiTS4en.js} +1 -1
  171. package/dist/client/assets/{StatusPill-Dw4LP7wu.js → StatusPill-2gCP6H7A.js} +1 -1
  172. package/dist/client/assets/{TailView-BofjmUMJ.js → TailView-CYSijNTy.js} +2 -2
  173. package/dist/client/assets/Terminal-Bi97yb5s.js +4 -0
  174. package/dist/client/assets/TerminalEmbedScreen-Bqop67Bq.js +1 -0
  175. package/dist/client/assets/{TerminalHeaderMount-CwbQhXcI.js → TerminalHeaderMount-Cq4OD_xN.js} +1 -1
  176. package/dist/client/assets/{TerminalRelay--qOBwnbR.js → TerminalRelay-DrikpUSJ.js} +3 -3
  177. package/dist/client/assets/{TextDocumentSurface-BK6Qy41F.js → TextDocumentSurface-D52m7Vd8.js} +1 -1
  178. package/dist/client/assets/{TmuxPeek-DpUT9Tpc.js → TmuxPeek-CXFeweMg.js} +1 -1
  179. package/dist/client/assets/VoiceControlWell-DF3bjcYA.js +1 -0
  180. package/dist/client/assets/VoicePathDiagram-CmpHWfO-.js +1 -0
  181. package/dist/client/assets/{VoicePermissionsPanel-D35fOnQj.js → VoicePermissionsPanel-Ok2nfxHw.js} +1 -1
  182. package/dist/client/assets/VoiceTurnDetails-wAByRaNB.js +8 -0
  183. package/dist/client/assets/VoiceTurnStage-edoJalLV.js +1 -0
  184. package/dist/client/assets/VoiceTurnView-D-8g5E4r.js +1 -0
  185. package/dist/client/assets/WorkDetailScreen-zQkNVy2F.js +5 -0
  186. package/dist/client/assets/{WorkFilesViewer-t8AEyx3Q.js → WorkFilesViewer-vNt01sDd.js} +1 -1
  187. package/dist/client/assets/{WorkRunView-_mhG_FR2.js → WorkRunView-BDkR7Edq.js} +1 -1
  188. package/dist/client/assets/WorldActorTalk-BvSg_b1y.js +1 -0
  189. package/dist/client/assets/{WorldCharacter-BRrj3MQN.js → WorldCharacter-CIIlutQq.js} +1 -1
  190. package/dist/client/assets/WorldMinimap-B6HNgcDe.js +1 -0
  191. package/dist/client/assets/{WorldSky-D-RJzSa6.js → WorldSky-Jm2Z6dfW.js} +1 -1
  192. package/dist/client/assets/{activity-BJqFrZyB.js → activity-CIlFrfPJ.js} +1 -1
  193. package/dist/client/assets/{addon-fit-CHohcvS3.js → addon-fit-dFpj9Kfq.js} +1 -1
  194. package/dist/client/assets/{addon-webgl-CaRy2x2b.js → addon-webgl-BFCGRtGh.js} +1 -1
  195. package/dist/client/assets/{agent-essentials-bKWYOZaH.js → agent-essentials-BGGvT5G6.js} +1 -1
  196. package/dist/client/assets/{agent-master-model-C-KdOFDK.js → agent-master-model-Bk_yuUXJ.js} +1 -1
  197. package/dist/client/assets/{agent-specialization-BplZUa_0.js → agent-specialization-DDc7mLCW.js} +1 -1
  198. package/dist/client/assets/agents-screen-BYakbO50.css +1 -0
  199. package/dist/client/assets/{arc.es-CubLvQ4W.js → arc.es-C1SQHJ3k.js} +1 -1
  200. package/dist/client/assets/{arrow-left-DFfKAq0d.js → arrow-left-MVUKauwQ.js} +1 -1
  201. package/dist/client/assets/{arrow-right-DmAWnyAH.js → arrow-right-Bp-FpE5V.js} +1 -1
  202. package/dist/client/assets/{arrow-up-right-B0aLKiyF.js → arrow-up-right-BPedAgxO.js} +1 -1
  203. package/dist/client/assets/{book-open-BL9qvhEI.js → book-open-CV98WMSp.js} +1 -1
  204. package/dist/client/assets/{bot-BhAVbcCA.js → bot-B4zLQ4IN.js} +1 -1
  205. package/dist/client/assets/chat-api-DSJMBYoT.js +2 -0
  206. package/dist/client/assets/chat-message-markup-91DIry6R.js +1 -0
  207. package/dist/client/assets/chat-space-model-aW3Fd8_U.js +4 -0
  208. package/dist/client/assets/chat-transport-DNS5CB2I.js +1 -0
  209. package/dist/client/assets/{check-g7D7-c1J.js → check-lrJ3a73a.js} +1 -1
  210. package/dist/client/assets/{chevron-down-CDzRQQGl.js → chevron-down-l1mrh5S9.js} +1 -1
  211. package/dist/client/assets/{chevron-right-DKGTLiqc.js → chevron-right-DrfqcerI.js} +1 -1
  212. package/dist/client/assets/{chevron-up-DX7R6KY2.js → chevron-up-CETZJzjV.js} +1 -1
  213. package/dist/client/assets/{chunk-HRAB3GC3-Dvk_QpRq.js → chunk-HRAB3GC3-DbVLgbWX.js} +1 -1
  214. package/dist/client/assets/{clock-CQb4FeMf.js → clock-BV1aqPkK.js} +1 -1
  215. package/dist/client/assets/{code-xml-Cmadr3pQ.js → code-xml-BhcNbLWU.js} +1 -1
  216. package/dist/client/assets/{coffee-ljG1_krY.js → coffee-D7EAOdCk.js} +1 -1
  217. package/dist/client/assets/{compass-CvzkzkIh.js → compass-63TUaz5_.js} +1 -1
  218. package/dist/client/assets/content-B1lgE8qr.js +1 -0
  219. package/dist/client/assets/content-B5l11YyQ.js +1 -0
  220. package/dist/client/assets/content-BNZOZEpX.js +1 -0
  221. package/dist/client/assets/content-BRIxP155.js +1 -0
  222. package/dist/client/assets/content-BWd8gt8L.js +1 -0
  223. package/dist/client/assets/content-BfwS2jAK.js +1 -0
  224. package/dist/client/assets/content-C4p43_eT.js +1 -0
  225. package/dist/client/assets/content-CdYfaoDV.js +1 -0
  226. package/dist/client/assets/content-CzldLxw0.js +1 -0
  227. package/dist/client/assets/content-D-olnc4U.js +1 -0
  228. package/dist/client/assets/content-DTioimq4.js +1 -0
  229. package/dist/client/assets/content-LOebm3_d.js +1 -0
  230. package/dist/client/assets/{content-CKJ9zb7Z.js → content-nGlEZhUI.js} +1 -1
  231. package/dist/client/assets/{content-D1Ze_FG9.js → content-oyzDM-LK.js} +1 -1
  232. package/dist/client/assets/content-x1PHxED7.js +1 -0
  233. package/dist/client/assets/content-zX3ZY3T9.js +1 -0
  234. package/dist/client/assets/{conversation-icons-CIRaxmid.js → conversation-icons-Tqba2d56.js} +1 -1
  235. package/dist/client/assets/conversation-model-FxDeWlle.js +1 -0
  236. package/dist/client/assets/conversation-motion-features-C5zjuNwE.js +1 -0
  237. package/dist/client/assets/conversations-DoAAO6kA.js +1 -0
  238. package/dist/client/assets/{copy-BGOC1tJB.js → copy-xKeM5ZtU.js} +1 -1
  239. package/dist/client/assets/{cpu-Q6nrHFTN.js → cpu-BOTa_WLr.js} +1 -1
  240. package/dist/client/assets/{createLucideIcon-ChvMq-zl.js → createLucideIcon-zZ8Hx7er.js} +1 -1
  241. package/dist/client/assets/ctx-panel-BC8fpcWJ.css +1 -0
  242. package/dist/client/assets/direct-voice-BbLPuJ04.js +2 -0
  243. package/dist/client/assets/direct-voice-DbO7CSv_.css +1 -0
  244. package/dist/client/assets/discover-DJFxyV1k.js +2 -0
  245. package/dist/client/assets/embed-entry-Lyvu0Kfc.js +2 -0
  246. package/dist/client/assets/{external-link-BVccgH0n.js → external-link-CUObqmgX.js} +1 -1
  247. package/dist/client/assets/{eye-CsGfEVR6.js → eye-LrO-cXQt.js} +1 -1
  248. package/dist/client/assets/{file-code-corner-Be6da5l3.js → file-code-corner-CsU7jJpu.js} +1 -1
  249. package/dist/client/assets/{file-text-DP6txVW-.js → file-text-CnISiiw6.js} +1 -1
  250. package/dist/client/assets/{flag-DAFE2wZ5.js → flag-C4wl8z2-.js} +1 -1
  251. package/dist/client/assets/fleet-roll-call-BUgf7w-V.css +1 -0
  252. package/dist/client/assets/{folder-B_S7gBVr.js → folder-D5prSkzz.js} +1 -1
  253. package/dist/client/assets/{gauge-DQCGlE3o.js → gauge-D9_5iJEm.js} +1 -1
  254. package/dist/client/assets/{gestures-CofqY4Km.js → gestures-QZub3Ot9.js} +1 -1
  255. package/dist/client/assets/{git-branch-DcUCsWdJ.js → git-branch-B0_fPLO7.js} +1 -1
  256. package/dist/client/assets/{go-shortcuts-KQy-ZOpV.js → go-shortcuts-DicR7sUf.js} +1 -1
  257. package/dist/client/assets/home-moving-signal-rpMhsOJB.js +1 -0
  258. package/dist/client/assets/home-now-card-ByE6Umcx.js +1 -0
  259. package/dist/client/assets/{home-now-card-nano-CvU8B61b.js → home-now-card-nano-B5Dv3-pb.js} +1 -1
  260. package/dist/client/assets/hooks-_eCZZPsR.js +2 -0
  261. package/dist/client/assets/index-724SdE6r.js +1 -0
  262. package/dist/client/assets/{index-kkXUq-zf.js → index-CHD0qcfL.js} +1 -1
  263. package/dist/client/assets/index-CN4rBB_s.css +1 -0
  264. package/dist/client/assets/index-D1d98iYf.js +1 -0
  265. package/dist/client/assets/{index-DReVb7jZ.js → index-EsrkGBcv.js} +8 -8
  266. package/dist/client/assets/index-gGHPA-By.js +1 -0
  267. package/dist/client/assets/{inspector-panel-CLU7wjnT.js → inspector-panel-BkgUDn6G.js} +2 -2
  268. package/dist/client/assets/{keyboard-nav-CJXPaHXj.js → keyboard-nav-DDHegDbx.js} +1 -1
  269. package/dist/client/assets/{lane-roster-store-Ch9t6lb0.js → lane-roster-store-D-RSWjb-.js} +1 -1
  270. package/dist/client/assets/{layers-BOwyWodP.js → layers-C8PDiMul.js} +1 -1
  271. package/dist/client/assets/{layout-grid-B36Qsh0y.js → layout-grid-Cor2frzj.js} +1 -1
  272. package/dist/client/assets/left-Bn5X7x2o.js +2 -0
  273. package/dist/client/assets/left-BqS0fYX1.js +1 -0
  274. package/dist/client/assets/left-CTCeeeD3.js +1 -0
  275. package/dist/client/assets/left-DhtVPVux.js +1 -0
  276. package/dist/client/assets/left-K39b-Wvx.js +2 -0
  277. package/dist/client/assets/left-KGmueNPt.js +1 -0
  278. package/dist/client/assets/left-P_GOYB-s.js +1 -0
  279. package/dist/client/assets/left-advisor-B0N47De2.js +1 -0
  280. package/dist/client/assets/left-agents-CsSNc51Y.js +1 -0
  281. package/dist/client/assets/left-default-BlO5LP2T.js +1 -0
  282. package/dist/client/assets/left-lanes-C4PhaJE6.js +1 -0
  283. package/dist/client/assets/left-mission-BjTE5vPa.js +1 -0
  284. package/dist/client/assets/library-CkWNPHRp.js +1 -0
  285. package/dist/client/assets/{loader-circle-DNUsuPWz.js → loader-circle-OvccU82H.js} +1 -1
  286. package/dist/client/assets/{local-agents-I40PawYA.js → local-agents-BqnoxJrq.js} +1 -1
  287. package/dist/client/assets/log-in-7SnYqW5w.js +1 -0
  288. package/dist/client/assets/{machine-children-CdhNzDF0.js → machine-children-DxcqCLmd.js} +1 -1
  289. package/dist/client/assets/media-blobs-Bi8pxr1u.js +1 -0
  290. package/dist/client/assets/{mentions-Ck_Vjnyp.js → mentions-ByUvhS-v.js} +1 -1
  291. package/dist/client/assets/{mesh-ops-DSlvHp-D.js → mesh-ops-CiZ8xSAx.js} +1 -1
  292. package/dist/client/assets/{mesh-view-store-C1-mdP3P.js → mesh-view-store-DZvJC4KU.js} +1 -1
  293. package/dist/client/assets/{message-circle-cI5_A5mj.js → message-circle-CxRVKNE-.js} +1 -1
  294. package/dist/client/assets/message-markup-BQW5jdJw.js +15 -0
  295. package/dist/client/assets/message-markup-Zwo3t4cI.js +1 -0
  296. package/dist/client/assets/{message-square-CJW4WRlo.js → message-square-BxesYglW.js} +1 -1
  297. package/dist/client/assets/mission-control-model-BpJHDV5D.js +1 -0
  298. package/dist/client/assets/{mission-control-store-p_cboAm4.js → mission-control-store-elEEsIvb.js} +1 -1
  299. package/dist/client/assets/{mission-wall-DOuGOxQy.js → mission-wall-CAo4BKfa.js} +1 -1
  300. package/dist/client/assets/{monitor-C7_cHlkC.js → monitor-DTTYEb73.js} +1 -1
  301. package/dist/client/assets/{nav-destinations-CU_euC-Q.js → nav-destinations-uorRqFxf.js} +1 -1
  302. package/dist/client/assets/{observe-CtS0l3zu.js → observe-BJqERJVj.js} +1 -1
  303. package/dist/client/assets/{page-status-DwFR4wSw.js → page-status-BswZLqvA.js} +1 -1
  304. package/dist/client/assets/{panel-right-qP17MwMl.js → panel-right-Bv7sP_fc.js} +1 -1
  305. package/dist/client/assets/paperclip-BjcuP_Hx.js +1 -0
  306. package/dist/client/assets/{pause-B_hliKuR.js → pause-C2XTlkjs.js} +1 -1
  307. package/dist/client/assets/{persistent-state-BUsTTZFE.js → persistent-state-KRk_yb0q.js} +1 -1
  308. package/dist/client/assets/{pin-Oi4qHR6M.js → pin-C2mFOV1l.js} +1 -1
  309. package/dist/client/assets/{play-CVeRmqLH.js → play-FT6K3It1.js} +1 -1
  310. package/dist/client/assets/{plus-D5NLH_fM.js → plus-DFDDeGKu.js} +1 -1
  311. package/dist/client/assets/profile-DTmzN16I.js +1 -0
  312. package/dist/client/assets/{projects-inbox-CfwxCTdN.js → projects-inbox-C0FUCv_p.js} +1 -1
  313. package/dist/client/assets/projects-inbox-ColX6lpx.css +1 -0
  314. package/dist/client/assets/{provider-DwmCoSlc.js → provider-Dojd8quC.js} +1 -1
  315. package/dist/client/assets/{proxy-DgzP27W8.js → proxy-AJsmwA6h.js} +1 -1
  316. package/dist/client/assets/{radio-Cas2qg1D.js → radio-DRoOZsws.js} +1 -1
  317. package/dist/client/assets/{refresh-cw-IcD2lPoT.js → refresh-cw-BmVr7sCD.js} +1 -1
  318. package/dist/client/assets/resolve-panes-pbY1fCWi.js +1 -0
  319. package/dist/client/assets/resolve-sidebar-context-YWkZTq1t.js +1 -0
  320. package/dist/client/assets/right-49kO-6nD.js +1 -0
  321. package/dist/client/assets/right-APtItA8A.js +1 -0
  322. package/dist/client/assets/right-BJwhPqtn.js +1 -0
  323. package/dist/client/assets/right-BPqrf4ek.js +1 -0
  324. package/dist/client/assets/right-D7djOy6K.js +1 -0
  325. package/dist/client/assets/right-DKOUCRob.js +1 -0
  326. package/dist/client/assets/right-DMNrVzg7.js +1 -0
  327. package/dist/client/assets/{right-cjPTwPXS.js → right-DWPVB-nK.js} +1 -1
  328. package/dist/client/assets/right-DppeMCy4.js +1 -0
  329. package/dist/client/assets/right-GAL5Mw1v.js +1 -0
  330. package/dist/client/assets/{rocket-DAqYvu8I.js → rocket-CGl4RTV7.js} +1 -1
  331. package/dist/client/assets/router-DCtl8wqb.js +1 -0
  332. package/dist/client/assets/runtime-picker-DXu2bOTh.js +1 -0
  333. package/dist/client/assets/{scope-views-Dl3ml9OZ.js → scope-views-RUWwCVAr.js} +1 -1
  334. package/dist/client/assets/scout-voice-CZx60X6E.js +1 -0
  335. package/dist/client/assets/{scoutbot-markdown-DwvGQOWo.js → scoutbot-markdown-BKEBSbG0.js} +1 -1
  336. package/dist/client/assets/{scroll-text-B0tKI9Sg.js → scroll-text-DNjxhyO2.js} +1 -1
  337. package/dist/client/assets/{search-UsM-9-_W.js → search-DT42oyRW.js} +1 -1
  338. package/dist/client/assets/secondaryNavConfig-CS1svh6n.js +1 -0
  339. package/dist/client/assets/{selection-bridge-OTS2iFkt.js → selection-bridge-x3wFUjxj.js} +1 -1
  340. package/dist/client/assets/{send-horizontal-BlQsRK6C.js → send-horizontal-CH0-fbZE.js} +1 -1
  341. package/dist/client/assets/{send-to-agent-session-C1mgqdow.js → send-to-agent-session-DoKCDBJ4.js} +1 -1
  342. package/dist/client/assets/{server-DBlPW0Mp.js → server-QfsgMLk1.js} +1 -1
  343. package/dist/client/assets/{session-catalog-CnpZMB7C.js → session-catalog-CvSdPHPe.js} +1 -1
  344. package/dist/client/assets/session-recap-lanes-D-eVJnpY.js +1 -0
  345. package/dist/client/assets/session-recap-queue-41l2XVkI.js +1 -0
  346. package/dist/client/assets/{session-table-CGkfG5Yd.js → session-table-L-pns6Zl.js} +1 -1
  347. package/dist/client/assets/{sessions-view-Bge4XZ4I.js → sessions-view-Dc-QAa7O.js} +1 -1
  348. package/dist/client/assets/{settings-C69Zjrpq.js → settings-BVh7kldq.js} +1 -1
  349. package/dist/client/assets/{sliders-horizontal-6bzeod7c.js → sliders-horizontal-782VC_yy.js} +1 -1
  350. package/dist/client/assets/{sparkles-Cc5lPZRv.js → sparkles-BjHq_DNK.js} +1 -1
  351. package/dist/client/assets/{sse-A8AyLH0g.js → sse-BCPRocpq.js} +1 -1
  352. package/dist/client/assets/system-surfaces-redesign-q2BmCB7e.css +1 -0
  353. package/dist/client/assets/{tail-events-C4WdhVeK.js → tail-events-d0yAYxR0.js} +1 -1
  354. package/dist/client/assets/{terminal-DMZjX1es.js → terminal-hQKQygcf.js} +1 -1
  355. package/dist/client/assets/{terminal-relay-mO89dX-Y.js → terminal-relay-Bxs1hp-j.js} +1 -1
  356. package/dist/client/assets/{terminal-takeover-CZZsnPzj.js → terminal-takeover-Ay5C2c-M.js} +1 -1
  357. package/dist/client/assets/theme-vars-DNK0nn3k.js +1 -0
  358. package/dist/client/assets/triangle-alert-CHoRGdVO.js +1 -0
  359. package/dist/client/assets/{use-beside-D3cJpA5p.js → use-beside-DoRC1nt0.js} +1 -1
  360. package/dist/client/assets/{use-conversation-list-D5EnpVba.js → use-conversation-list-CY4JciOV.js} +1 -1
  361. package/dist/client/assets/{use-fleet-active-asks-D_QOmjg5.js → use-fleet-active-asks-CymmXWH4.js} +1 -1
  362. package/dist/client/assets/{use-mesh-node-state-3V3ADQ-G.js → use-mesh-node-state-BvaqtODo.js} +1 -1
  363. package/dist/client/assets/{use-mesh-ops-items-DI9GKWlF.js → use-mesh-ops-items-BSYaqH_0.js} +1 -1
  364. package/dist/client/assets/{use-reduced-motion-CiaZHMnk.js → use-reduced-motion-3gMYZNIp.js} +1 -1
  365. package/dist/client/assets/{use-scout-dev-flags-CkdAHlDR.js → use-scout-dev-flags-DS_pYYQd.js} +1 -1
  366. package/dist/client/assets/{useAgentHoverCard-A3QGXqIy.js → useAgentHoverCard-BANmpjMh.js} +1 -1
  367. package/dist/client/assets/useContentSecondaryNav-C6OBu-3_.js +1 -0
  368. package/dist/client/assets/{useEmbedHeadline-atkQVfGw.js → useEmbedHeadline-D6pJRxUg.js} +1 -1
  369. package/dist/client/assets/usePersistentState-B8lP7TRb.js +1 -0
  370. package/dist/client/assets/{usePierreRuntime-DTvcwISe.js → usePierreRuntime-BAQdiN0L.js} +1 -1
  371. package/dist/client/assets/useSidebarCollapse-OL_8J5cL.js +1 -0
  372. package/dist/client/assets/{users-RLK3P5U4.js → users-BUjx36gx.js} +1 -1
  373. package/dist/client/assets/voice-paths-CJUuBPh3.css +1 -0
  374. package/dist/client/assets/voice-turn-DftA0iIb.css +1 -0
  375. package/dist/client/assets/voice-turn-ledger-BMZxlSjg.js +1 -0
  376. package/dist/client/assets/{wrench-B4maQJai.js → wrench-DR0i5BU7.js} +1 -1
  377. package/dist/client/assets/{x-rlMdRqJF.js → x-DAehov0E.js} +1 -1
  378. package/dist/client/assets/{xterm-B1zHHOLQ.js → xterm-BXQiLVnI.js} +1 -1
  379. package/dist/client/assets/{zap-B4X0OrEw.js → zap-CEjZNZbI.js} +1 -1
  380. package/dist/client/crew/sheets/eye-plate-v1/look-down-left.webp +0 -0
  381. package/dist/client/crew/sheets/eye-plate-v1/look-down-right.webp +0 -0
  382. package/dist/client/crew/sheets/eye-plate-v1/look-down.webp +0 -0
  383. package/dist/client/crew/sheets/eye-plate-v1/look-up-left.webp +0 -0
  384. package/dist/client/crew/sheets/eye-plate-v1/look-up-right.webp +0 -0
  385. package/dist/client/crew/sheets/eye-plate-v1/look-up.webp +0 -0
  386. package/dist/client/crew/sheets/sprout/blink-half.webp +0 -0
  387. package/dist/client/crew/sheets/sprout/blink-shut.webp +0 -0
  388. package/dist/client/crew/sheets/sprout/look-down-left.webp +0 -0
  389. package/dist/client/crew/sheets/sprout/look-down-right.webp +0 -0
  390. package/dist/client/crew/sheets/sprout/look-down.webp +0 -0
  391. package/dist/client/crew/sheets/sprout/look-left.webp +0 -0
  392. package/dist/client/crew/sheets/sprout/look-right.webp +0 -0
  393. package/dist/client/crew/sheets/sprout/look-up-left.webp +0 -0
  394. package/dist/client/crew/sheets/sprout/look-up-right.webp +0 -0
  395. package/dist/client/crew/sheets/sprout/look-up.webp +0 -0
  396. package/dist/client/index.html +2 -2
  397. package/dist/drizzle/0020_message_reactions.sql +11 -0
  398. package/dist/drizzle/meta/_journal.json +7 -0
  399. package/dist/main.mjs +542 -150
  400. package/dist/node/main.mjs +131 -17
  401. package/dist/pairing-runtime-controller.mjs +375 -78
  402. package/dist/runtime/base-daemon.mjs +98 -5
  403. package/dist/runtime/broker-daemon.mjs +1879 -1198
  404. package/dist/runtime/broker-process-manager.mjs +96 -3
  405. package/dist/runtime/mesh-discover.mjs +96 -3
  406. package/dist/scout-control-plane-web.mjs +4817 -1616
  407. package/dist/update-helper.mjs +211 -39
  408. package/package.json +2 -2
  409. package/dist/client/assets/ActivityScreen-CcDdQTBK.js +0 -1
  410. package/dist/client/assets/AgentAdventures-BxrYq_2v.js +0 -1
  411. package/dist/client/assets/AgentAvatar-NZOqcsB2.js +0 -1
  412. package/dist/client/assets/AgentConfigurationScreen-BhD1PEAM.js +0 -1
  413. package/dist/client/assets/AgentDefinitionsWorkspace-BqS6MXqF.js +0 -1
  414. package/dist/client/assets/AgentFloorView-A0dDRlRV.js +0 -1
  415. package/dist/client/assets/AgentInfoScreen-DuaN0sgE.js +0 -1
  416. package/dist/client/assets/AgentLanesEmbedScreen-CeNiaZ9_.js +0 -1
  417. package/dist/client/assets/AgentLanesView-WZhEDBFE.js +0 -2
  418. package/dist/client/assets/AgentMasterScreen-DUDUTAnU.js +0 -1
  419. package/dist/client/assets/AgentSessions-CO1WGa8Z.js +0 -6
  420. package/dist/client/assets/AgentsConsole-BQOWkj35.js +0 -1
  421. package/dist/client/assets/AgentsScreen-BMNAj1PH.js +0 -1
  422. package/dist/client/assets/AgentsSubnav-CeHhuzyM.js +0 -1
  423. package/dist/client/assets/BriefingDetailScreen-yZG8_m4h.js +0 -1
  424. package/dist/client/assets/BrokerScreen-CT37VQiL.js +0 -8
  425. package/dist/client/assets/ChannelComposer-BVItWlEz.js +0 -1
  426. package/dist/client/assets/ChannelSidebar-B-2spawY.js +0 -1
  427. package/dist/client/assets/ChatBits-CLJ71hTY.js +0 -1
  428. package/dist/client/assets/ChatRightPanel-pKQtkAgl.js +0 -1
  429. package/dist/client/assets/ChatSpaceSurface-NrLwdPkE.js +0 -1
  430. package/dist/client/assets/ChatSpaceTheme-BPMgPdVK.css +0 -1
  431. package/dist/client/assets/ChatSpaceTheme-D37Jk7bl.js +0 -1
  432. package/dist/client/assets/ConversationComposer-DNcn5U6D.js +0 -1
  433. package/dist/client/assets/ConversationFeedRows-RnYSa7Io.js +0 -1
  434. package/dist/client/assets/ConversationHeader-Y9TEJxP_.js +0 -1
  435. package/dist/client/assets/ConversationScreen-Brfas2y0.css +0 -1
  436. package/dist/client/assets/ConversationScreen-tpj4cqWs.js +0 -2
  437. package/dist/client/assets/ConversationStatus-Cv-7hErW.js +0 -1
  438. package/dist/client/assets/CrewAvatar-zgzC3cbU.js +0 -1
  439. package/dist/client/assets/CrewWorkspaces-K2jcyLec.js +0 -1
  440. package/dist/client/assets/FlightObserveScreen-CvzhzuWc.js +0 -1
  441. package/dist/client/assets/FloorResourcesSheet-_Iy5UqgY.js +0 -1
  442. package/dist/client/assets/FloorTacticalHUD-BhyOqlL5.js +0 -1
  443. package/dist/client/assets/HarnessMark-DSvM_H7H.js +0 -1
  444. package/dist/client/assets/HarnessesScreen-DyjqbZ4k.js +0 -1
  445. package/dist/client/assets/InviteLandingScreen-xZQ2na1z.js +0 -1
  446. package/dist/client/assets/InviteSheet--5Zjct25.js +0 -1
  447. package/dist/client/assets/KnowledgeSearchScreen-BPqAjHnH.js +0 -1
  448. package/dist/client/assets/LaneTraceDetailSheet-jl4XQmEx.js +0 -1
  449. package/dist/client/assets/MeshScreen-BW1dMFWF.js +0 -1
  450. package/dist/client/assets/MessagesScreen-CtNMfIvC.js +0 -1
  451. package/dist/client/assets/MissionControlView-BjPOViGY.js +0 -1
  452. package/dist/client/assets/MissionLeftAgentRow-Dms0DBjO.js +0 -1
  453. package/dist/client/assets/NativeAreaScreen-BQSTo8As.js +0 -1
  454. package/dist/client/assets/NativeAreaScreen-Brix6xDB.js +0 -1
  455. package/dist/client/assets/NativeAreaScreen-D7HyQNlM.js +0 -1
  456. package/dist/client/assets/NewChatComposer-BEXS8vV6.js +0 -19
  457. package/dist/client/assets/ObserveEmbedScreen-Dh30EjAQ.js +0 -2
  458. package/dist/client/assets/OpenScoutAppShell-D9pgw36i.js +0 -31
  459. package/dist/client/assets/OpsAgentsView-D3rM0udq.js +0 -1
  460. package/dist/client/assets/OpsScreen-DySeNQ1V.js +0 -1
  461. package/dist/client/assets/OpsSubnav-C9E0r3GZ.js +0 -1
  462. package/dist/client/assets/ProjectAgentProfile-FUav75j2.js +0 -1
  463. package/dist/client/assets/ProjectAgentProfileHero-BLK0EwMg.js +0 -1
  464. package/dist/client/assets/ProjectsInbox-DfCXReZK.js +0 -2
  465. package/dist/client/assets/ProjectsRail-CELVubfJ.js +0 -1
  466. package/dist/client/assets/ProjectsScreen-DMw4TLKy.js +0 -1
  467. package/dist/client/assets/ProjectsThreadAside-D1Sh4fnX.js +0 -1
  468. package/dist/client/assets/Provider-CNZluAZb.js +0 -5
  469. package/dist/client/assets/RailToggle-BwmY70B8.js +0 -1
  470. package/dist/client/assets/RawSessionsTable-6OVJq0JZ.js +0 -1
  471. package/dist/client/assets/RealtimeVoiceScreen-D41TYY0x.js +0 -9
  472. package/dist/client/assets/RepoDiffViewerLazy-BpMR7tlx.js +0 -2
  473. package/dist/client/assets/SessionObserveEvidence-CS1aQBpQ.js +0 -1
  474. package/dist/client/assets/SessionRefScreen-DURV0MpF.js +0 -1
  475. package/dist/client/assets/SessionsScreen-D71ZR-8t.js +0 -1
  476. package/dist/client/assets/SettingsDrawer-Nz98oBVl.js +0 -3
  477. package/dist/client/assets/SettingsScreen-CYBHal6y.js +0 -1
  478. package/dist/client/assets/SharedWorkFloor-BCmdeb3Q.css +0 -1
  479. package/dist/client/assets/SharedWorkFloor-C0xxW4SN.js +0 -2
  480. package/dist/client/assets/SpaceSwitcher-BfeIf-ad.js +0 -1
  481. package/dist/client/assets/Terminal-jIqnIZZ6.js +0 -4
  482. package/dist/client/assets/TerminalEmbedScreen-3XsjuySR.js +0 -1
  483. package/dist/client/assets/WorkDetailScreen-Bcf_yHhU.js +0 -5
  484. package/dist/client/assets/WorldActorTalk-CKerDikx.js +0 -1
  485. package/dist/client/assets/WorldMinimap-DOptgrc4.js +0 -1
  486. package/dist/client/assets/agent-autocomplete-C7xwIcwd.css +0 -1
  487. package/dist/client/assets/agent-autocomplete-_u9o5EZu.js +0 -2
  488. package/dist/client/assets/agents-screen-BMu6PpRY.css +0 -1
  489. package/dist/client/assets/at-sign-DM7xeppo.js +0 -1
  490. package/dist/client/assets/chat-api-BPVC0asu.js +0 -1
  491. package/dist/client/assets/chat-space-model-B6Jg2CY4.js +0 -4
  492. package/dist/client/assets/content-0AXa0klu.js +0 -1
  493. package/dist/client/assets/content-BEyJ19Lx.js +0 -1
  494. package/dist/client/assets/content-BN5weWKW.js +0 -1
  495. package/dist/client/assets/content-BNokkm7C.js +0 -1
  496. package/dist/client/assets/content-BV4PUM9q.js +0 -1
  497. package/dist/client/assets/content-BxUPlcx5.js +0 -1
  498. package/dist/client/assets/content-CIC5sku8.js +0 -1
  499. package/dist/client/assets/content-CdkTyxqk.js +0 -1
  500. package/dist/client/assets/content-CnhhSCZq.js +0 -1
  501. package/dist/client/assets/content-DY3F9Vfr.js +0 -1
  502. package/dist/client/assets/content-DrKBYpcb.js +0 -1
  503. package/dist/client/assets/content-LSStQYj5.js +0 -1
  504. package/dist/client/assets/content-YvU-D0hF.js +0 -1
  505. package/dist/client/assets/content-oKQMyVnH.js +0 -1
  506. package/dist/client/assets/conversation-model-m8HhzroS.js +0 -1
  507. package/dist/client/assets/conversation-motion-features-D9PxLoDt.js +0 -1
  508. package/dist/client/assets/conversations-Cbg9h_Af.js +0 -1
  509. package/dist/client/assets/ctx-panel-F05jXK4Q.css +0 -1
  510. package/dist/client/assets/discover-DlwbftpC.js +0 -2
  511. package/dist/client/assets/embed-entry-c0lwtjBG.js +0 -2
  512. package/dist/client/assets/home-moving-signal-BIHUGNfI.js +0 -1
  513. package/dist/client/assets/home-now-card-CaLgZze2.js +0 -1
  514. package/dist/client/assets/hooks-DaUOREpP.js +0 -2
  515. package/dist/client/assets/index-CGbs0SBm.css +0 -1
  516. package/dist/client/assets/index-CbqBwfIW.js +0 -1
  517. package/dist/client/assets/index-CyPMl7Up.js +0 -1
  518. package/dist/client/assets/index-PQpJveGO.js +0 -1
  519. package/dist/client/assets/left-0vBrvrBG.js +0 -2
  520. package/dist/client/assets/left-C6SyaqlJ.js +0 -1
  521. package/dist/client/assets/left-CTuXysZR.js +0 -2
  522. package/dist/client/assets/left-Cc6s4DT2.js +0 -1
  523. package/dist/client/assets/left-DF5caiyh.js +0 -1
  524. package/dist/client/assets/left-DgT4tWCx.js +0 -1
  525. package/dist/client/assets/left-R0wppTTr.js +0 -1
  526. package/dist/client/assets/left-advisor-C-kt8V28.js +0 -1
  527. package/dist/client/assets/left-agents-thnBO156.js +0 -1
  528. package/dist/client/assets/left-default-CT42fnpF.js +0 -1
  529. package/dist/client/assets/left-lanes-CSmZgciK.js +0 -1
  530. package/dist/client/assets/left-mission-C86x6i9h.js +0 -1
  531. package/dist/client/assets/library-DdhYL_9v.js +0 -1
  532. package/dist/client/assets/message-markup-6Tgo4qFJ.js +0 -15
  533. package/dist/client/assets/mission-control-model-C30vU1Fe.js +0 -1
  534. package/dist/client/assets/profile-BegEUmB7.js +0 -1
  535. package/dist/client/assets/projects-inbox-CKPLZN8s.css +0 -1
  536. package/dist/client/assets/resolve-panes-pfZTezKo.js +0 -1
  537. package/dist/client/assets/resolve-sidebar-context-D5ksvrb_.js +0 -1
  538. package/dist/client/assets/right-BDaCJ0CF.js +0 -1
  539. package/dist/client/assets/right-BP6lXRFS.js +0 -1
  540. package/dist/client/assets/right-Cb1VCrdj.js +0 -1
  541. package/dist/client/assets/right-CeFaxfBo.js +0 -1
  542. package/dist/client/assets/right-Ck2SrYCj.js +0 -1
  543. package/dist/client/assets/right-D-uv5YfF.js +0 -1
  544. package/dist/client/assets/right-DJMSICky.js +0 -1
  545. package/dist/client/assets/right-Dnljs8ah.js +0 -1
  546. package/dist/client/assets/right-SdCSF8PP.js +0 -1
  547. package/dist/client/assets/router-C-MF5-mb.js +0 -1
  548. package/dist/client/assets/runtime-picker-C_AVYF63.js +0 -1
  549. package/dist/client/assets/scout-voice-CqAyfblr.js +0 -1
  550. package/dist/client/assets/secondaryNavConfig-DzNHk6IH.js +0 -1
  551. package/dist/client/assets/system-surfaces-redesign-DKFg4GB5.css +0 -1
  552. package/dist/client/assets/useContentSecondaryNav-DrL_nkCZ.js +0 -1
  553. package/dist/client/assets/usePersistentState-Y8XwSTg-.js +0 -1
  554. package/dist/drizzle/meta/0000_snapshot.json +0 -4575
  555. package/dist/drizzle/meta/0001_snapshot.json +0 -4624
  556. package/dist/drizzle/meta/0002_snapshot.json +0 -4631
  557. package/dist/drizzle/meta/0003_snapshot.json +0 -4952
  558. package/dist/drizzle/meta/0004_snapshot.json +0 -5235
  559. package/dist/drizzle/meta/0005_snapshot.json +0 -5599
  560. package/dist/drizzle/meta/0006_snapshot.json +0 -5606
  561. package/dist/drizzle/meta/0007_snapshot.json +0 -5767
  562. package/dist/drizzle/meta/0008_snapshot.json +0 -5774
  563. package/dist/drizzle/meta/0009_snapshot.json +0 -6262
  564. package/dist/drizzle/meta/0010_snapshot.json +0 -6286
  565. package/dist/drizzle/meta/0011_snapshot.json +0 -6337
  566. package/dist/drizzle/meta/0012_snapshot.json +0 -6458
  567. package/dist/drizzle/meta/0013_snapshot.json +0 -6465
  568. package/dist/drizzle/meta/0014_snapshot.json +0 -6503
  569. package/dist/drizzle/meta/0015_snapshot.json +0 -6596
  570. package/dist/drizzle/meta/0016_snapshot.json +0 -6611
  571. package/dist/drizzle/meta/0017_snapshot.json +0 -6785
  572. package/dist/drizzle/meta/0018_snapshot.json +0 -6804
  573. package/dist/drizzle/meta/0019_snapshot.json +0 -6804
@@ -1 +1 @@
1
- import{r as o,j as r}from"./index-DReVb7jZ.js";import{a as _}from"./api-DSqpVKC7.js";import{d as y,S as j}from"./SessionObserve-B64YsYhy.js";import{u as x}from"./sse-A8AyLH0g.js";import{u as g}from"./tail-events-C4WdhVeK.js";import{ConversationScreen as M}from"./ConversationScreen-tpj4cqWs.js";import{SessionObserveEmbedStatus as N,NATIVE_SESSION_ORIGIN_LABEL as S}from"./SessionObserveEvidence-CS1aQBpQ.js";import{d as w,b as T,s as p}from"./session-ref-lookup-state-SATH_jAP.js";const O=6e4,L=1e3,A=1e4;function u({children:e}){return r.jsx("div",{className:"s-observe-embed-page",children:e})}function d({title:e,detail:s}){return r.jsx(u,{children:r.jsxs("div",{className:"s-observe-embed-empty",children:[r.jsx("div",{className:"s-observe-embed-empty-title",children:e}),s&&r.jsx("div",{className:"s-observe-embed-empty-detail",children:s})]})})}function I({lookup:e}){const s=y({source:e.observe.source,fidelity:e.observe.fidelity,live:e.observe.data.live,eventCount:e.observe.data.events.length});return r.jsxs(u,{children:[r.jsx(N,{source:e.observe.source,fidelity:e.observe.fidelity,sessionId:e.observe.sessionId??e.observe.refId,evidence:s,originLabel:S}),r.jsx(j,{data:e.observe.data,agentId:e.observe.agentId??e.session?.agentId??void 0,sessionId:e.observe.sessionId??e.observe.refId,showRail:!1,observeSource:e.observe.source,observeFidelity:e.observe.fidelity,originLabel:S,defaultPresentation:"conversation"})]})}function f(){const e=typeof window>"u"?"":new URLSearchParams(window.location.search).get("ref")?.trim()??"",[s,v]=o.useState(null),[h,l]=o.useState(!0),[b,m]=o.useState(null),i=o.useRef(null),c=o.useRef(null),a=o.useCallback(async(n=!1)=>{if(!e){l(!1);return}c.current=Date.now(),n||l(!0),m(null);try{const t=await _(`/api/session-ref/${encodeURIComponent(e)}`);v(t)}catch(t){n||v(null),m(t instanceof Error?t.message:String(t))}finally{l(!1)}},[e]);o.useEffect(()=>{c.current=null,a();const n=window.setInterval(()=>{a(!0)},O);return()=>{window.clearInterval(n),i.current&&(clearTimeout(i.current),i.current=null)}},[a]);const E=o.useCallback(()=>{if(i.current)return;const n=w({nowMs:Date.now(),lastRefreshAtMs:c.current,debounceMs:L,minimumIntervalMs:A});i.current=setTimeout(()=>{i.current=null,a(!0)},n)},[a]);return x(n=>{const t=[e,s?.refId,s?.kind==="conversation"?s.conversationId:null,s?.session?.agentId,s?.kind==="observe"?s.observe.agentId:null,s?.kind==="observe"?s.observe.sessionId:null];T(n,t)&&E()}),g(n=>{[e,s?.refId,s?.kind==="observe"?s.observe.sessionId:null,s?.kind==="observe"?s.observe.data.metadata?.session?.externalSessionId:null].some(R=>p(n.sessionId,R))&&E()}),e?b&&!s?r.jsx(d,{title:"Session unavailable",detail:b}):h&&!s?r.jsx(d,{title:"Resolving session",detail:e}):s?s.kind==="conversation"?r.jsx(u,{children:r.jsx(M,{conversationId:s.conversationId,navigate:()=>{},embedded:!0,showBackNav:!1})}):r.jsx(I,{lookup:s}):r.jsx(d,{title:"Session not found",detail:"This session may have ended or its archive is not on this machine."}):r.jsx(d,{title:"No session reference",detail:"This embed needs a ?ref=<sessionId> query parameter."})}const $=Object.freeze(Object.defineProperty({__proto__:null,SessionEmbedObserveContent:I,SessionEmbedScreen:f,default:f},Symbol.toStringTag,{value:"Module"})),z=Object.freeze(Object.defineProperty({__proto__:null,SessionEmbedScreen:f},Symbol.toStringTag,{value:"Module"}));export{$ as S,z as a};
1
+ import{r as o,j as r}from"./index-EsrkGBcv.js";import{a as _}from"./api-DSqpVKC7.js";import{d as y,S as j}from"./SessionObserve-DXxBvejJ.js";import{u as x}from"./sse-BCPRocpq.js";import{u as g}from"./tail-events-d0yAYxR0.js";import{ConversationScreen as M}from"./ConversationScreen-CUfsQ4MR.js";import{SessionObserveEmbedStatus as N,NATIVE_SESSION_ORIGIN_LABEL as S}from"./SessionObserveEvidence-Cuj_KHxR.js";import{d as w,b as T,s as p}from"./session-ref-lookup-state-SATH_jAP.js";const O=6e4,L=1e3,A=1e4;function u({children:e}){return r.jsx("div",{className:"s-observe-embed-page",children:e})}function d({title:e,detail:s}){return r.jsx(u,{children:r.jsxs("div",{className:"s-observe-embed-empty",children:[r.jsx("div",{className:"s-observe-embed-empty-title",children:e}),s&&r.jsx("div",{className:"s-observe-embed-empty-detail",children:s})]})})}function I({lookup:e}){const s=y({source:e.observe.source,fidelity:e.observe.fidelity,live:e.observe.data.live,eventCount:e.observe.data.events.length});return r.jsxs(u,{children:[r.jsx(N,{source:e.observe.source,fidelity:e.observe.fidelity,sessionId:e.observe.sessionId??e.observe.refId,evidence:s,originLabel:S}),r.jsx(j,{data:e.observe.data,agentId:e.observe.agentId??e.session?.agentId??void 0,sessionId:e.observe.sessionId??e.observe.refId,showRail:!1,observeSource:e.observe.source,observeFidelity:e.observe.fidelity,originLabel:S,defaultPresentation:"conversation"})]})}function f(){const e=typeof window>"u"?"":new URLSearchParams(window.location.search).get("ref")?.trim()??"",[s,v]=o.useState(null),[h,l]=o.useState(!0),[b,m]=o.useState(null),i=o.useRef(null),c=o.useRef(null),a=o.useCallback(async(n=!1)=>{if(!e){l(!1);return}c.current=Date.now(),n||l(!0),m(null);try{const t=await _(`/api/session-ref/${encodeURIComponent(e)}`);v(t)}catch(t){n||v(null),m(t instanceof Error?t.message:String(t))}finally{l(!1)}},[e]);o.useEffect(()=>{c.current=null,a();const n=window.setInterval(()=>{a(!0)},O);return()=>{window.clearInterval(n),i.current&&(clearTimeout(i.current),i.current=null)}},[a]);const E=o.useCallback(()=>{if(i.current)return;const n=w({nowMs:Date.now(),lastRefreshAtMs:c.current,debounceMs:L,minimumIntervalMs:A});i.current=setTimeout(()=>{i.current=null,a(!0)},n)},[a]);return x(n=>{const t=[e,s?.refId,s?.kind==="conversation"?s.conversationId:null,s?.session?.agentId,s?.kind==="observe"?s.observe.agentId:null,s?.kind==="observe"?s.observe.sessionId:null];T(n,t)&&E()}),g(n=>{[e,s?.refId,s?.kind==="observe"?s.observe.sessionId:null,s?.kind==="observe"?s.observe.data.metadata?.session?.externalSessionId:null].some(R=>p(n.sessionId,R))&&E()}),e?b&&!s?r.jsx(d,{title:"Session unavailable",detail:b}):h&&!s?r.jsx(d,{title:"Resolving session",detail:e}):s?s.kind==="conversation"?r.jsx(u,{children:r.jsx(M,{conversationId:s.conversationId,navigate:()=>{},embedded:!0,showBackNav:!1})}):r.jsx(I,{lookup:s}):r.jsx(d,{title:"Session not found",detail:"This session may have ended or its archive is not on this machine."}):r.jsx(d,{title:"No session reference",detail:"This embed needs a ?ref=<sessionId> query parameter."})}const $=Object.freeze(Object.defineProperty({__proto__:null,SessionEmbedObserveContent:I,SessionEmbedScreen:f,default:f},Symbol.toStringTag,{value:"Module"})),z=Object.freeze(Object.defineProperty({__proto__:null,SessionEmbedScreen:f},Symbol.toStringTag,{value:"Module"}));export{$ as S,z as a};
@@ -0,0 +1 @@
1
+ import{r as S,j as p}from"./index-EsrkGBcv.js";import{A as L,a as z}from"./Provider-C35yu29I.js";import{p as M,a as E}from"./api-DSqpVKC7.js";import{s as K,f as F,p as P,l as q}from"./terminal-sessions-3RfJpen8.js";import{o as N}from"./openContent-C6XO6kr5.js";import{c as D}from"./createLucideIcon-zZ8Hx7er.js";import{E as $}from"./external-link-CUObqmgX.js";const J=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],W=D("square-terminal",J),Z=["threadId","externalSessionId","conversationId","runtimeSessionId","sessionId"];function B(e){const n=e?.trim();if(!n)return[];const s=n.split(/[\\/]/u).filter(Boolean).at(-1)??n,c=s.endsWith(".jsonl")?s.slice(0,-6):s;if(!c)return[];const r=new Set([c]),a=/^([A-Za-z][A-Za-z0-9_-]{0,15}):(.+)$/u.exec(c);if(a?.[2]&&(r.add(a[2]),a[1]==="session")){const o=/^([A-Za-z][A-Za-z0-9_-]{0,15}):(.+)$/u.exec(a[2]);o?.[2]&&r.add(o[2])}return[...r]}function Y(e){const n=new Set,s=e.agentId?.trim().split(".",1)[0];s?.startsWith("session-")&&n.add(s);for(const c of e.sessionRefs??[])for(const r of B(c))n.add(r);return[...n]}function T(e){const n=e.surfaces.filter(s=>s.state!=="exited");return n.length===0?null:n.find(s=>!s.paneId&&s.state==="live")??n.find(s=>!s.paneId)??n.find(s=>s.state==="live")??n[0]??null}function G(e,n){const s=new Set(Y(n));if(s.size===0)return null;const c=t=>{const l=t.trim().toLowerCase().replace(/_/gu,"-"),m=l==="claude-code"||l==="claude-stream-json"?"claude":l==="codex-app-server"||l==="codex-exec"?"codex":l==="pi-rpc"?"pi":l;return L.includes(m)?m:null},r=new Set;for(const t of n.sessionRefs??[]){const l=/^(?:session:)?([^:/\\]+):/u.exec(t?.trim()??""),m=l?c(l[1]):null;m&&r.add(m)}if(r.size>1)return null;const a=[...r][0],o=e.filter(t=>!a||c(t.harness)===a),f=o.filter(t=>t.origin!=="discovered"),i=[];for(const t of f){if(!t.sourceSessionId||!s.has(t.sourceSessionId))continue;const l=T(t);l&&i.push({session:t,surface:l,via:"sourceSessionId"})}if(i.length>0)return i.length===1?i[0]:null;const u=[];for(const t of f){const l=t.metadata;if(!l||!Z.some(h=>{const x=l[h];return typeof x=="string"&&s.has(x)}))continue;const g=T(t);g&&u.push({session:t,surface:g,via:"metadata"})}if(u.length>0)return u.length===1?u[0]:null;const d=[];for(const t of o){const l=t.surfaces.filter(h=>h.state!=="exited"&&s.has(h.sessionName)),m=l.filter(h=>!h.paneId),g=m.length>0?m:l;for(const h of g)d.push({session:t,surface:h,via:"sessionName"})}return d.length===1?d[0]:null}const U="/api/terminal-sessions?includeDiscovered=1",w=15e3;let v=null;const I=new Set;function V(e){return I.add(e),()=>{I.delete(e)}}let y=null;function k(){return v&&Date.now()-v.at<w?v.sessions:M(U,w)?.sessions??null}function R(){const e=k();return e?Promise.resolve(e):(y??=F({includeDiscovered:!0}).then(n=>{v={at:Date.now(),sessions:n};for(const s of I)s();return n}).finally(()=>{y=null}),y)}function Q(){R().catch(()=>{})}function b(e,n){const s=G(e,n);return s?{session:s.session,surface:s.surface,surfaceKey:K(s.surface),via:s.via}:null}function j(e,n="takeover"){const s=P(e.surfaceKey);return s?`scout://terminal?${new URLSearchParams({session:e.session.id,surface:q(s),mode:n}).toString()}`:null}function O(e,n){return e?{view:"terminal",terminalSessionId:e.session.id,terminalSurfaceKey:e.surfaceKey,mode:"takeover"}:n?{view:"terminal",agentId:n,mode:"takeover"}:null}async function H(e){return E("/api/terminal-sessions/open-local",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({surface:e.surfaceKey})})}async function C(e){await E(`/api/terminal-hosts/herdr/sessions/${encodeURIComponent(e.surface.sessionName)}/focus`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:e.surface.paneId??e.surface.sessionName})})}function A(e){return e.surface.backend==="herdr"&&!!e.surface.paneId}function _(e){const n=e.agentId??null,s=S.useMemo(()=>JSON.stringify((e.sessionRefs??[]).filter(Boolean)),[e.sessionRefs]),[c,r]=S.useState(()=>{const o=k();return{key:JSON.stringify([n,s]),resolved:o!==null,target:o?b(o,e):null}}),a=JSON.stringify([n,s]);return S.useEffect(()=>{let o=!0;const f=()=>{const t=k();o&&t&&r({key:a,resolved:!0,target:b(t,e)})},i=()=>{R().then(t=>{o&&r({key:a,resolved:!0,target:b(t,e)})}).catch(()=>{o&&r({key:a,resolved:!0,target:null})})},u=V(f);i();const d=window.setInterval(i,15e3);return()=>{o=!1,u(),window.clearInterval(d)}},[a]),c.key===a?{target:c.target,resolved:c.resolved}:{target:null,resolved:!1}}function X(e){const{target:n,agentId:s,navigate:c,returnTo:r,onError:a,includeWeb:o=!0,emptyFallback:f=!0}=e,i=[],u=o?O(n,s):null;u&&i.push({kind:"action",label:"Open in web terminal",onSelect:()=>N(c,u,{returnTo:r})});const d=n?j(n):null;return d&&i.push({kind:"action",label:"Open in Scout app",onSelect:()=>window.open(d,"_self")}),n&&A(n)?i.push({kind:"action",label:"Focus pane in Herdr",onSelect:()=>{C(n).catch(t=>a?.(t instanceof Error?t.message:"herdr focus failed"))}}):n&&n.surface.attachCommand.length>0&&i.push({kind:"action",label:"Open in terminal app",onSelect:()=>{H(n).catch(t=>a?.(t instanceof Error?t.message:"could not open a terminal"))}}),i.length===0&&f&&i.push({kind:"action",label:"No live terminal for this session",onSelect:()=>{}}),i}function ie({hints:e,navigate:n,returnTo:s,className:c,label:r="Terminal"}){const a=z(),{target:o}=_(e),f=S.useRef(o);f.current=o;const[i,u]=S.useState(null),d=t=>{t.stopPropagation(),a(t,X({target:f.current,agentId:e.agentId,navigate:n,returnTo:s,onError:u}))};return p.jsxs("button",{type:"button",className:c,title:i??"Hop into this session's terminal",onMouseEnter:()=>Q(),onClick:d,children:[p.jsx(W,{size:12,strokeWidth:1.8,"aria-hidden":!0}),i?"Terminal error":r]})}function ce({hints:e,navigate:n,returnTo:s,className:c}){const{target:r,resolved:a}=_(e),[o,f]=S.useState(null),i=e.agentId??null,u=O(r,i),d=r?j(r):null;return!a&&!u||!u?null:p.jsxs("div",{className:c,"aria-label":"terminal actions",children:[r?p.jsxs("span",{className:"s-hop-target",title:`${r.surface.backend} · ${r.surface.sessionName}`,children:[r.surface.backend," · ",r.surface.sessionName]}):null,p.jsx("button",{type:"button",onClick:()=>N(n,u,{returnTo:s}),children:"Open in web terminal"}),d?p.jsxs("a",{href:d,children:["Open in Scout app",p.jsx($,{size:11,strokeWidth:1.8,"aria-hidden":!0})]}):null,r&&A(r)?p.jsx("button",{type:"button",onClick:()=>{f(null),C(r).catch(t=>f(t instanceof Error?t.message:"herdr focus failed"))},children:"Focus in Herdr"}):r&&r.surface.attachCommand.length>0?p.jsx("button",{type:"button",onClick:()=>{f(null),H(r).catch(t=>f(t instanceof Error?t.message:"could not open a terminal"))},children:"Open in terminal app"}):null,o?p.jsx("span",{role:"status",children:o}):null]})}export{ie as S,ce as a,R as g,k as p,b as r,X as s,O as t,Q as w};
@@ -1,12 +1,12 @@
1
- import{r as h,j as t}from"./index-DReVb7jZ.js";import{f as Ne}from"./bash-format-BRV5C6Gv.js";import{j as Ls,p as Ye,k as Es}from"./tail-display-DHSNmvor.js";import{l as Rs}from"./lane-edit-display-BjdT9oZl.js";import{f as Ps}from"./lane-tool-detail-Czggx8oM.js";import{useLaneToolHoverCard as Os}from"./LaneToolHoverCard-D2cnTeUd.js";import{e as As,L as Be,g as Is,h as Bs,j as _e,o as _s,a as Fe,f as Fs,k as Ds,m as we,b as Xe,l as Ze}from"./lane-observe-CteDwdD-.js";import{b as Ws,c as zs}from"./lane-ask-display-BTVSakyo.js";import{a as Ms}from"./colors-CFlbwC25.js";import{a as Ce}from"./api-DSqpVKC7.js";import{r as Qe}from"./mentions-Ck_Vjnyp.js";import{a as Hs,g as es,t as Gs,b as qs,d as Us,n as De}from"./time-Dhsh_2EG.js";import{M as ss}from"./message-markup-6Tgo4qFJ.js";import{q as Vs}from"./terminal-takeover-CZZsnPzj.js";import{C as We,D as Ks,E as Js}from"./NewChatComposer-BEXS8vV6.js";import{u as Se}from"./Provider-CNZluAZb.js";import{o as Ys}from"./openContent-C6XO6kr5.js";import{O as Xs}from"./ObservedTopologyPanel-DF6tRZL_.js";import{M as Zs}from"./runtime-picker-C_AVYF63.js";import"./index-CbqBwfIW.js";import{ObserveReasoningDisclosure as Qs,ObserveStreamCursor as ze}from"./ObserveTextFlow-CC5mnngm.js";import{SessionObserveReceiptView as et}from"./SessionObserveEvidence-CS1aQBpQ.js";import{M as st}from"./message-circle-cI5_A5mj.js";import{W as tt}from"./wrench-B4maQJai.js";import{E as nt}from"./external-link-BVccgH0n.js";import{C as ts}from"./chevron-up-DX7R6KY2.js";import{C as ns}from"./chevron-down-CDzRQQGl.js";import{c as at}from"./createLucideIcon-ChvMq-zl.js";const rt=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],ot=at("tag",rt),Te=new Set(["bash","shell","terminal","exec","run","command","exec_command","shell_command","local_shell","container_exec","container.exec"]);function _(e){return(e??"").trim()}function V(e){return[e.kind,_(e.tool),_(e.arg),_(e.text),_(e.detail)].join("|")}function lt(e){if(e.kind!=="tool"||!e.tool||e.result)return!1;const s=_(e.arg).toLowerCase();return s==="started"||s.length>0&&s!=="completed"}function it(e){return e.kind!=="tool"||!e.tool?!1:_(e.arg).toLowerCase()==="completed"||!!e.result?.outcome}const as=/^permission requested · ([A-Za-z][\w-]*)$/i,rs=/^permission ([a-z_]+) · ([A-Za-z][\w-]*)$/i;function $e(e){return e.kind==="system"&&as.test(e.text.trim())}function Le(e){return e.kind==="system"&&rs.test(e.text.trim())}function fe(e){const s=e.text.trim(),n=s.match(as);if(n?.[1])return n[1];const a=s.match(rs);return a?.[2]?a[2]:null}function ia(e){const s=new Set;for(const n of e)if($e(n)){const a=fe(n);a&&s.add(a)}else if(Le(n)){const a=fe(n);a&&s.delete(a)}return s.size>0}function ct(e,s){const n=e.text.trim();return{...e,text:s>1?`${n}
1
+ import{r as h,j as t}from"./index-EsrkGBcv.js";import{f as Ne}from"./bash-format-BRV5C6Gv.js";import{j as Ls,p as Ye,k as Es}from"./tail-display-DHSNmvor.js";import{l as Rs}from"./lane-edit-display-BjdT9oZl.js";import{f as Ps}from"./lane-tool-detail-Czggx8oM.js";import{useLaneToolHoverCard as Os}from"./LaneToolHoverCard-CJa110yk.js";import{e as As,L as Ie,g as Bs,h as Is,j as _e,o as _s,a as Fe,f as Fs,k as Ds,m as we,b as Xe,l as Ze}from"./lane-observe-CteDwdD-.js";import{b as Ws,c as zs}from"./lane-ask-display-BTVSakyo.js";import{a as Ms}from"./colors-CFlbwC25.js";import{a as Ce}from"./api-DSqpVKC7.js";import{r as Qe}from"./mentions-ByUvhS-v.js";import{a as Hs,g as es,t as Gs,b as qs,d as Us,n as De}from"./time-Dhsh_2EG.js";import{M as ss}from"./message-markup-Zwo3t4cI.js";import{q as Vs}from"./terminal-takeover-Ay5C2c-M.js";import{S as Ks}from"./SessionHopMenu-E6VJZrE0.js";import{x as We,y as Js,z as Ys}from"./NewChatComposer-C97-iTMK.js";import{u as Se}from"./Provider-C35yu29I.js";import{o as Xs}from"./openContent-C6XO6kr5.js";import{O as Zs}from"./ObservedTopologyPanel-CUTIoLZJ.js";import{M as Qs}from"./runtime-picker-DXu2bOTh.js";import"./index-724SdE6r.js";import{ObserveReasoningDisclosure as et,ObserveStreamCursor as ze}from"./ObserveTextFlow-PFnG_10h.js";import{SessionObserveReceiptView as st}from"./SessionObserveEvidence-Cuj_KHxR.js";import{M as tt}from"./message-circle-CxRVKNE-.js";import{W as nt}from"./wrench-DR0i5BU7.js";import{E as at}from"./external-link-CUObqmgX.js";import{C as ts}from"./chevron-up-CETZJzjV.js";import{C as ns}from"./chevron-down-l1mrh5S9.js";import{c as rt}from"./createLucideIcon-zZ8Hx7er.js";const ot=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],lt=rt("tag",ot),Te=new Set(["bash","shell","terminal","exec","run","command","exec_command","shell_command","local_shell","container_exec","container.exec"]);function _(e){return(e??"").trim()}function V(e){return[e.kind,_(e.tool),_(e.arg),_(e.text),_(e.detail)].join("|")}function it(e){if(e.kind!=="tool"||!e.tool||e.result)return!1;const s=_(e.arg).toLowerCase();return s==="started"||s.length>0&&s!=="completed"}function ct(e){return e.kind!=="tool"||!e.tool?!1:_(e.arg).toLowerCase()==="completed"||!!e.result?.outcome}const as=/^permission requested · ([A-Za-z][\w-]*)$/i,rs=/^permission ([a-z_]+) · ([A-Za-z][\w-]*)$/i;function $e(e){return e.kind==="system"&&as.test(e.text.trim())}function Le(e){return e.kind==="system"&&rs.test(e.text.trim())}function fe(e){const s=e.text.trim(),n=s.match(as);if(n?.[1])return n[1];const a=s.match(rs);return a?.[2]?a[2]:null}function ua(e){const s=new Set;for(const n of e)if($e(n)){const a=fe(n);a&&s.add(a)}else if(Le(n)){const a=fe(n);a&&s.delete(a)}return s.size>0}function ut(e,s){const n=e.text.trim();return{...e,text:s>1?`${n}
2
2
 
3
- (${s} reasoning updates)`:n}}function ut(e,s){const n=s.tool??e.tool,a=s.result?.outcome,r=e.arg&&e.arg!=="started"&&e.arg!=="completed"?e.arg:s.arg&&s.arg!=="completed"?s.arg:void 0,o=s.stream?.join(`
4
- `)??"",l=r?o.trim()?`${n} · ${r} · ${o}`:a?`${n} · ${r} · ${a}`:`${n} · ${r}`:s.text.trim()||(a?`${n} completed · ${a}`:`${n} completed`);return{...s,tool:n,arg:r??"completed",text:l,stream:s.stream??e.stream,diff:s.diff??e.diff,detail:s.detail??e.detail,live:s.live??e.live}}function dt(e){if(e.kind!=="tool"||!e.tool)return!1;const s=_(e.tool).toLowerCase();if(!Te.has(s))return!1;const n=_(e.arg);return n.length>0&&n!=="started"&&n!=="completed"}function mt(e){if(e.kind!=="tool")return!1;const s=_(e.tool).toLowerCase();return s==="res"?!!(_(e.arg)||(e.stream?.length??0)>0):Te.has(s)?(e.stream?.length??0)>0:!1}function ht(e){return(e.stream?.length??0)>0?e.stream.join(`
5
- `):_(e.tool).toLowerCase()==="res"?e.arg??"":""}function ft(e,s){const n=ht(s),a=_(e.arg),r=e.tool??s.tool,o=n.trim()?`${r} · ${a} · ${n}`:e.text;return{...e,id:s.id,t:s.t,at:s.at,result:s.result??e.result,stream:n.trim()?[n]:s.stream??e.stream,diff:s.diff??e.diff,detail:s.detail??e.detail,text:o,live:s.live??e.live}}function Me(e){if(e.kind!=="tool"||e.diff||(e.stream?.length??0)>0)return!1;const s=(e.tool??"").trim(),n=(e.arg??"").trim();if(!s||n==="started"||n==="completed")return!1;const a=e.result?.outcome;if(a!=null&&a!=="success"&&a!==0||e.result&&Object.keys(e.result).length>1)return!1;const r=s.toLowerCase();if(Te.has(r)){if(!n||n.startsWith("{")||n.startsWith("["))return!1;const{dir:o,spans:l}=Ne(n);if(o)return!1;const c=l.filter(u=>u.tier==="prog");return c.length===1&&l.length===1&&c[0].text.length<=64}return n&&n!==s||/\s/u.test(s)?!1:s.length<=64}function bt(e){return Math.max(1,e.repeatCount)}function pt(e){const s=e.result?.outcome;if(s==null)return!1;if(typeof s=="number")return s!==0;const n=s.trim().toLowerCase();return n.length>0&&n!=="0"&&n!=="ok"&&n!=="success"&&n!=="succeeded"&&n!=="completed"}function vt(e){if(e.live||e.kind==="boot")return!0;if(e.kind==="tool")return!!e.diff||pt(e);if(e.kind==="note"){const s=e.text.trim().toLowerCase();return s==="turn started"||s==="turn complete"||s==="turn ended"||s==="[turn_started]"||s==="[turn_ended]"||/^turn \d+\b/u.test(s)}if(e.kind==="system"){const s=e.text.trim();return $e(e)||Le(e)||/\b(?:approval|permission|denied|failed|failure|error|exception|aborted|blocked)\b/i.test(s)}return!1}function xt(e){return e.kind==="ask"||e.kind==="message"?!1:!vt(e)}function le(e,s,n=`${s}s`){return`${e} ${e===1?s:n}`}function gt(e){const s={totalCount:0,toolCount:0,thinkCount:0,noteCount:0,systemCount:0};for(const a of e){const r=bt(a);switch(s.totalCount+=r,a.event.kind){case"tool":s.toolCount+=r;break;case"think":s.thinkCount+=r;break;case"note":s.noteCount+=r;break;case"system":case"boot":s.systemCount+=r;break}}const n=[s.toolCount>0?le(s.toolCount,"tool"):null,s.thinkCount>0?le(s.thinkCount,"reasoning update"):null,s.noteCount>0?le(s.noteCount,"turn marker"):null,s.systemCount>0?le(s.systemCount,"system event"):null].filter(a=>!!a);return{...s,labels:n}}function jt(e){return e.labels.length>0?e.labels.join(" · "):le(e.totalCount,"technical event")}function kt(e){const s=e[0].event,n=e[e.length-1].event,a=gt(e),r=jt(a);return{event:{...n,id:`technical-rollup:${s.id}:${n.id}:${a.totalCount}`,kind:"note",text:r,detail:r,tool:void 0,arg:void 0,diff:void 0,result:void 0,stream:void 0,answer:void 0,answerT:void 0,to:void 0,live:e.some(o=>o.event.live)},repeatCount:1,technicalSummary:a,technicalSourceRows:e}}function yt(e){const s=[];let n=[];const a=()=>{n.length!==0&&(s.push(kt(n)),n=[])};for(const r of e){if(xt(r.event)){n.push(r);continue}a(),s.push(r)}return a(),s}function Nt(e){const s=[];for(let n=0;n<e.length;n+=1){const a=e[n];if(!a)continue;const r=e[n+1];if(r&&$e(a)&&Le(r)&&_(fe(a)).toLowerCase()===_(fe(r)).toLowerCase()){const o={...r,live:r.live??a.live},l=V(o),c=s[s.length-1];c&&V(c.event)===l?(c.repeatCount+=1,c.event=o):s.push({event:o,repeatCount:1}),n+=1;continue}if(r&&lt(a)&&it(r)&&_(a.tool).toLowerCase()===_(r.tool).toLowerCase()){const o=ut(a,r),l=V(o),c=s[s.length-1];c&&V(c.event)===l?(c.repeatCount+=1,c.event=o):s.push({event:o,repeatCount:1}),n+=1;continue}if(r&&dt(a)&&mt(r)&&(a.stream?.length??0)===0){const o=ft(a,r),l=V(o),c=s[s.length-1];c&&V(c.event)===l?(c.repeatCount+=1,c.event=o):s.push({event:o,repeatCount:1}),n+=1;continue}if(a.kind==="think"){let o=a,l=1;for(;e[n+l]?.kind==="think";){const u=e[n+l];if(!u)break;o=u,l+=1}const c=ct(o,l);s.push({event:c,repeatCount:l}),n+=l-1;continue}if(a.kind!=="message"&&a.kind!=="ask"){const o=V(a),l=s[s.length-1];if(l&&V(l.event)===o){l.repeatCount+=1,l.event=a;continue}}s.push({event:a,repeatCount:1})}return s}function wt(e){return e.source==="broker"||e.source==="unavailable"||!Number.isFinite(e.eventCount)?0:Math.max(0,Math.floor(e.eventCount))}function Ct(e){return e===0?"No trace events":`${e} event${e===1?"":"s"}`}function os(e){const s=wt(e),n=Ct(s);return e.source==="unavailable"?{label:"Trace unavailable",detail:"The session is known to the broker, but no readable event trace was captured.",tone:"unavailable",replayable:!1,traceEventCount:0,eventCountLabel:n,receiptOnly:!1}:e.source==="broker"?{label:"Session setup receipts",detail:"The broker recorded session setup, but no observed trace activity is available.",tone:"reconstructed",replayable:!1,traceEventCount:0,eventCountLabel:n,receiptOnly:!0}:e.fidelity==="timestamped"&&e.source==="live"&&e.live&&s>0?{label:"Live observed events",detail:"New timestamped events will appear here while the session runs.",tone:"live",replayable:s>1,traceEventCount:s,eventCountLabel:n,receiptOnly:!1}:e.fidelity==="timestamped"&&s===0?{label:"Attached · no trace events",detail:"This worker is attached but is not emitting trace events.",tone:"reconstructed",replayable:!1,traceEventCount:0,eventCountLabel:n,receiptOnly:!1}:e.fidelity==="timestamped"?{label:"Recorded event history",detail:"This timeline is replayed from timestamped session history.",tone:"recorded",replayable:s>1,traceEventCount:s,eventCountLabel:n,receiptOnly:!1}:{label:"Reconstructed session evidence",detail:"Lifecycle and session attachment are available; fine-grained activity may be missing.",tone:"reconstructed",replayable:!1,traceEventCount:s,eventCountLabel:n,receiptOnly:!1}}async function St(e){await Ce("/api/local-path/reveal",{method:"POST",body:JSON.stringify({path:e.path,...e.basePath?{basePath:e.basePath}:{},...e.agentId?{agentId:e.agentId}:{},...e.sessionId?{sessionId:e.sessionId}:{}})})}const ls={think:"var(--dim)",tool:"var(--accent)",ask:"var(--amber)",message:"var(--muted)",note:"var(--green)",system:"var(--dim)",boot:"var(--dim)"},Tt={read:"◎",edit:"✎",bash:"$",grep:"⌕",write:"✎",think:"∿"},$t=20,is=new Intl.NumberFormat("en-US"),Lt=new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1});function be(e){if(!Number.isFinite(e)||e<=0)return"0s";const s=Math.floor(e);if(s<60)return`${s}s`;if(s<3600)return`${Math.floor(s/60)}m`;const n=Math.floor(s/3600),a=Math.floor(s%3600/60);return a>0?`${n}h${a}m`:`${n}h`}function Et(e){return es(e*1e3)||"0:00"}function Rt(e){return!Number.isFinite(e)||e<=0?"0s":be(e)}function pe(e,s){return _s(e,s)}function Pt(e,s,n,a=!1){const r=pe(e,s);return r!==null?a?{label:Fs(r,n),title:Fe(r)}:{label:Gs(r,n),title:Fe(r)}:a?{label:""}:{label:be(e.t)}}function Ot(e,s){const n=pe(e,s),a=Et(e.t);return n!==null?{label:Us(n)||be(e.t),title:`${qs(n)} · elapsed ${a}`}:{label:be(e.t),title:`Elapsed ${a} from session start`}}function He(e,s){return e>=Math.max(0,s-$t)}function re(e){return typeof e!="number"||!Number.isFinite(e)?null:is.format(e)}function K(e){return typeof e!="number"||!Number.isFinite(e)?"—":Math.abs(e)<1e3?is.format(e):Lt.format(e).toLowerCase()}function At(e){if(!Number.isFinite(e)||e<=0)return"0s";if(e<60)return`${Math.round(e)}s`;const s=Math.round(e),n=Math.floor(s/3600),a=Math.floor(s%3600/60),r=s%60;return n>0?`${n}h ${a}m`:a>=10||r===0?`${a}m`:`${a}m ${r}s`}function Ge(e){return!!e&&Object.keys(e).length>0}function ge(e){return e.filter(s=>!!s)}function ye(e){const n=e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return n[n.length-1]??e}function It(e){St(e).catch(s=>{console.warn("Failed to reveal local path",s)})}function J({text:e,label:s="Copy",className:n}){const[a,r]=h.useState(!1),o=h.useRef(null);h.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]);const l=h.useCallback(c=>{c.preventDefault(),c.stopPropagation();const u=e,b=()=>{r(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>r(!1),1100)};navigator.clipboard?.writeText?navigator.clipboard.writeText(u).then(b).catch(()=>{qe(u),b()}):(qe(u),b())},[e]);return t.jsx("button",{type:"button",className:`s-observe-copy-btn${a?" s-observe-copy-btn--copied":""}${n?` ${n}`:""}`,onClick:l,"aria-label":s,title:a?"Copied":s,children:a?t.jsx("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:t.jsx("path",{d:"M2 5.5l2.4 2.4L9 3.4"})}):t.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round","aria-hidden":"true",children:[t.jsx("rect",{x:"3.4",y:"3.4",width:"6.1",height:"6.1",rx:"1.2"}),t.jsx("path",{d:"M7.6 3.4V2.2a.8.8 0 0 0-.8-.8H2.2a.8.8 0 0 0-.8.8v4.6a.8.8 0 0 0 .8.8h1.2"})]})})}function qe(e){try{const s=document.createElement("textarea");s.value=e,s.style.position="fixed",s.style.opacity="0",s.style.pointerEvents="none",document.body.appendChild(s),s.select(),document.execCommand("copy"),document.body.removeChild(s)}catch(s){console.warn("Clipboard copy failed",s)}}function Bt(e){const s=[],n=[e.tool,e.arg].filter(Boolean).join(" ");return n&&s.push(n),e.result&&s.push(Object.entries(e.result).map(([a,r])=>`${a}: ${r}`).join(" · ")),e.diff&&(s.push(`+${e.diff.add}${e.diff.del>0?` -${e.diff.del}`:""}`),e.diff.preview&&s.push(e.diff.preview)),e.stream&&e.stream.length>0&&s.push(e.stream.join(`
3
+ (${s} reasoning updates)`:n}}function dt(e,s){const n=s.tool??e.tool,a=s.result?.outcome,r=e.arg&&e.arg!=="started"&&e.arg!=="completed"?e.arg:s.arg&&s.arg!=="completed"?s.arg:void 0,o=s.stream?.join(`
4
+ `)??"",l=r?o.trim()?`${n} · ${r} · ${o}`:a?`${n} · ${r} · ${a}`:`${n} · ${r}`:s.text.trim()||(a?`${n} completed · ${a}`:`${n} completed`);return{...s,tool:n,arg:r??"completed",text:l,stream:s.stream??e.stream,diff:s.diff??e.diff,detail:s.detail??e.detail,live:s.live??e.live}}function mt(e){if(e.kind!=="tool"||!e.tool)return!1;const s=_(e.tool).toLowerCase();if(!Te.has(s))return!1;const n=_(e.arg);return n.length>0&&n!=="started"&&n!=="completed"}function ht(e){if(e.kind!=="tool")return!1;const s=_(e.tool).toLowerCase();return s==="res"?!!(_(e.arg)||(e.stream?.length??0)>0):Te.has(s)?(e.stream?.length??0)>0:!1}function ft(e){return(e.stream?.length??0)>0?e.stream.join(`
5
+ `):_(e.tool).toLowerCase()==="res"?e.arg??"":""}function bt(e,s){const n=ft(s),a=_(e.arg),r=e.tool??s.tool,o=n.trim()?`${r} · ${a} · ${n}`:e.text;return{...e,id:s.id,t:s.t,at:s.at,result:s.result??e.result,stream:n.trim()?[n]:s.stream??e.stream,diff:s.diff??e.diff,detail:s.detail??e.detail,text:o,live:s.live??e.live}}function Me(e){if(e.kind!=="tool"||e.diff||(e.stream?.length??0)>0)return!1;const s=(e.tool??"").trim(),n=(e.arg??"").trim();if(!s||n==="started"||n==="completed")return!1;const a=e.result?.outcome;if(a!=null&&a!=="success"&&a!==0||e.result&&Object.keys(e.result).length>1)return!1;const r=s.toLowerCase();if(Te.has(r)){if(!n||n.startsWith("{")||n.startsWith("["))return!1;const{dir:o,spans:l}=Ne(n);if(o)return!1;const c=l.filter(u=>u.tier==="prog");return c.length===1&&l.length===1&&c[0].text.length<=64}return n&&n!==s||/\s/u.test(s)?!1:s.length<=64}function pt(e){return Math.max(1,e.repeatCount)}function vt(e){const s=e.result?.outcome;if(s==null)return!1;if(typeof s=="number")return s!==0;const n=s.trim().toLowerCase();return n.length>0&&n!=="0"&&n!=="ok"&&n!=="success"&&n!=="succeeded"&&n!=="completed"}function xt(e){if(e.live||e.kind==="boot")return!0;if(e.kind==="tool")return!!e.diff||vt(e);if(e.kind==="note"){const s=e.text.trim().toLowerCase();return s==="turn started"||s==="turn complete"||s==="turn ended"||s==="[turn_started]"||s==="[turn_ended]"||/^turn \d+\b/u.test(s)}if(e.kind==="system"){const s=e.text.trim();return $e(e)||Le(e)||/\b(?:approval|permission|denied|failed|failure|error|exception|aborted|blocked)\b/i.test(s)}return!1}function gt(e){return e.kind==="ask"||e.kind==="message"?!1:!xt(e)}function le(e,s,n=`${s}s`){return`${e} ${e===1?s:n}`}function jt(e){const s={totalCount:0,toolCount:0,thinkCount:0,noteCount:0,systemCount:0};for(const a of e){const r=pt(a);switch(s.totalCount+=r,a.event.kind){case"tool":s.toolCount+=r;break;case"think":s.thinkCount+=r;break;case"note":s.noteCount+=r;break;case"system":case"boot":s.systemCount+=r;break}}const n=[s.toolCount>0?le(s.toolCount,"tool"):null,s.thinkCount>0?le(s.thinkCount,"reasoning update"):null,s.noteCount>0?le(s.noteCount,"turn marker"):null,s.systemCount>0?le(s.systemCount,"system event"):null].filter(a=>!!a);return{...s,labels:n}}function kt(e){return e.labels.length>0?e.labels.join(" · "):le(e.totalCount,"technical event")}function yt(e){const s=e[0].event,n=e[e.length-1].event,a=jt(e),r=kt(a);return{event:{...n,id:`technical-rollup:${s.id}:${n.id}:${a.totalCount}`,kind:"note",text:r,detail:r,tool:void 0,arg:void 0,diff:void 0,result:void 0,stream:void 0,answer:void 0,answerT:void 0,to:void 0,live:e.some(o=>o.event.live)},repeatCount:1,technicalSummary:a,technicalSourceRows:e}}function Nt(e){const s=[];let n=[];const a=()=>{n.length!==0&&(s.push(yt(n)),n=[])};for(const r of e){if(gt(r.event)){n.push(r);continue}a(),s.push(r)}return a(),s}function wt(e){const s=[];for(let n=0;n<e.length;n+=1){const a=e[n];if(!a)continue;const r=e[n+1];if(r&&$e(a)&&Le(r)&&_(fe(a)).toLowerCase()===_(fe(r)).toLowerCase()){const o={...r,live:r.live??a.live},l=V(o),c=s[s.length-1];c&&V(c.event)===l?(c.repeatCount+=1,c.event=o):s.push({event:o,repeatCount:1}),n+=1;continue}if(r&&it(a)&&ct(r)&&_(a.tool).toLowerCase()===_(r.tool).toLowerCase()){const o=dt(a,r),l=V(o),c=s[s.length-1];c&&V(c.event)===l?(c.repeatCount+=1,c.event=o):s.push({event:o,repeatCount:1}),n+=1;continue}if(r&&mt(a)&&ht(r)&&(a.stream?.length??0)===0){const o=bt(a,r),l=V(o),c=s[s.length-1];c&&V(c.event)===l?(c.repeatCount+=1,c.event=o):s.push({event:o,repeatCount:1}),n+=1;continue}if(a.kind==="think"){let o=a,l=1;for(;e[n+l]?.kind==="think";){const u=e[n+l];if(!u)break;o=u,l+=1}const c=ut(o,l);s.push({event:c,repeatCount:l}),n+=l-1;continue}if(a.kind!=="message"&&a.kind!=="ask"){const o=V(a),l=s[s.length-1];if(l&&V(l.event)===o){l.repeatCount+=1,l.event=a;continue}}s.push({event:a,repeatCount:1})}return s}function Ct(e){return e.source==="broker"||e.source==="unavailable"||!Number.isFinite(e.eventCount)?0:Math.max(0,Math.floor(e.eventCount))}function St(e){return e===0?"No trace events":`${e} event${e===1?"":"s"}`}function os(e){const s=Ct(e),n=St(s);return e.source==="unavailable"?{label:"Trace unavailable",detail:"The session is known to the broker, but no readable event trace was captured.",tone:"unavailable",replayable:!1,traceEventCount:0,eventCountLabel:n,receiptOnly:!1}:e.source==="broker"?{label:"Session setup receipts",detail:"The broker recorded session setup, but no observed trace activity is available.",tone:"reconstructed",replayable:!1,traceEventCount:0,eventCountLabel:n,receiptOnly:!0}:e.fidelity==="timestamped"&&e.source==="live"&&e.live&&s>0?{label:"Live observed events",detail:"New timestamped events will appear here while the session runs.",tone:"live",replayable:s>1,traceEventCount:s,eventCountLabel:n,receiptOnly:!1}:e.fidelity==="timestamped"&&s===0?{label:"Attached · no trace events",detail:"This worker is attached but is not emitting trace events.",tone:"reconstructed",replayable:!1,traceEventCount:0,eventCountLabel:n,receiptOnly:!1}:e.fidelity==="timestamped"?{label:"Recorded event history",detail:"This timeline is replayed from timestamped session history.",tone:"recorded",replayable:s>1,traceEventCount:s,eventCountLabel:n,receiptOnly:!1}:{label:"Reconstructed session evidence",detail:"Lifecycle and session attachment are available; fine-grained activity may be missing.",tone:"reconstructed",replayable:!1,traceEventCount:s,eventCountLabel:n,receiptOnly:!1}}async function Tt(e){await Ce("/api/local-path/reveal",{method:"POST",body:JSON.stringify({path:e.path,...e.basePath?{basePath:e.basePath}:{},...e.agentId?{agentId:e.agentId}:{},...e.sessionId?{sessionId:e.sessionId}:{}})})}const ls={think:"var(--dim)",tool:"var(--accent)",ask:"var(--amber)",message:"var(--muted)",note:"var(--green)",system:"var(--dim)",boot:"var(--dim)"},$t={read:"◎",edit:"✎",bash:"$",grep:"⌕",write:"✎",think:"∿"},Lt=20,is=new Intl.NumberFormat("en-US"),Et=new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1});function be(e){if(!Number.isFinite(e)||e<=0)return"0s";const s=Math.floor(e);if(s<60)return`${s}s`;if(s<3600)return`${Math.floor(s/60)}m`;const n=Math.floor(s/3600),a=Math.floor(s%3600/60);return a>0?`${n}h${a}m`:`${n}h`}function Rt(e){return es(e*1e3)||"0:00"}function Pt(e){return!Number.isFinite(e)||e<=0?"0s":be(e)}function pe(e,s){return _s(e,s)}function Ot(e,s,n,a=!1){const r=pe(e,s);return r!==null?a?{label:Fs(r,n),title:Fe(r)}:{label:Gs(r,n),title:Fe(r)}:a?{label:""}:{label:be(e.t)}}function At(e,s){const n=pe(e,s),a=Rt(e.t);return n!==null?{label:Us(n)||be(e.t),title:`${qs(n)} · elapsed ${a}`}:{label:be(e.t),title:`Elapsed ${a} from session start`}}function He(e,s){return e>=Math.max(0,s-Lt)}function re(e){return typeof e!="number"||!Number.isFinite(e)?null:is.format(e)}function K(e){return typeof e!="number"||!Number.isFinite(e)?"—":Math.abs(e)<1e3?is.format(e):Et.format(e).toLowerCase()}function Bt(e){if(!Number.isFinite(e)||e<=0)return"0s";if(e<60)return`${Math.round(e)}s`;const s=Math.round(e),n=Math.floor(s/3600),a=Math.floor(s%3600/60),r=s%60;return n>0?`${n}h ${a}m`:a>=10||r===0?`${a}m`:`${a}m ${r}s`}function Ge(e){return!!e&&Object.keys(e).length>0}function ge(e){return e.filter(s=>!!s)}function ye(e){const n=e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return n[n.length-1]??e}function It(e){Tt(e).catch(s=>{console.warn("Failed to reveal local path",s)})}function J({text:e,label:s="Copy",className:n}){const[a,r]=h.useState(!1),o=h.useRef(null);h.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]);const l=h.useCallback(c=>{c.preventDefault(),c.stopPropagation();const u=e,b=()=>{r(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>r(!1),1100)};navigator.clipboard?.writeText?navigator.clipboard.writeText(u).then(b).catch(()=>{qe(u),b()}):(qe(u),b())},[e]);return t.jsx("button",{type:"button",className:`s-observe-copy-btn${a?" s-observe-copy-btn--copied":""}${n?` ${n}`:""}`,onClick:l,"aria-label":s,title:a?"Copied":s,children:a?t.jsx("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:t.jsx("path",{d:"M2 5.5l2.4 2.4L9 3.4"})}):t.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round","aria-hidden":"true",children:[t.jsx("rect",{x:"3.4",y:"3.4",width:"6.1",height:"6.1",rx:"1.2"}),t.jsx("path",{d:"M7.6 3.4V2.2a.8.8 0 0 0-.8-.8H2.2a.8.8 0 0 0-.8.8v4.6a.8.8 0 0 0 .8.8h1.2"})]})})}function qe(e){try{const s=document.createElement("textarea");s.value=e,s.style.position="fixed",s.style.opacity="0",s.style.pointerEvents="none",document.body.appendChild(s),s.select(),document.execCommand("copy"),document.body.removeChild(s)}catch(s){console.warn("Clipboard copy failed",s)}}function _t(e){const s=[],n=[e.tool,e.arg].filter(Boolean).join(" ");return n&&s.push(n),e.result&&s.push(Object.entries(e.result).map(([a,r])=>`${a}: ${r}`).join(" · ")),e.diff&&(s.push(`+${e.diff.add}${e.diff.del>0?` -${e.diff.del}`:""}`),e.diff.preview&&s.push(e.diff.preview)),e.stream&&e.stream.length>0&&s.push(e.stream.join(`
6
6
  `)),s.join(`
7
- `)}function cs({expanded:e,onToggle:s,label:n}){const a=e?"less":n??"more";return t.jsxs("button",{type:"button",className:"s-observe-lane-expand",onClick:s,"aria-expanded":e,"aria-label":e?"Show less":"Show more",children:[e?t.jsx(ts,{size:11,strokeWidth:2,"aria-hidden":"true"}):t.jsx(ns,{size:11,strokeWidth:2,"aria-hidden":"true"}),t.jsx("span",{children:a})]})}function us({text:e,className:s,laneMode:n=!1,live:a=!1,renderExpanded:r,renderCollapsed:o}){const[l,c]=h.useState(!1),u=e.trim();if(!n)return t.jsxs("div",{className:s,children:[r?r(u):u,a&&t.jsx(ze,{text:u})]});const b=we(u),m=Xe(u),j=l?r?r(u):u:o?o(m):m;return t.jsx("div",{className:`s-observe-lane-expandable${l?" s-observe-lane-expandable--open":""}`,children:t.jsxs("div",{className:`${s} s-observe-lane-expandable-body`,children:[t.jsxs("span",{className:"s-observe-lane-expandable-text",children:[j,a&&t.jsx(ze,{text:u})]}),b&&t.jsx(cs,{expanded:l,onToggle:()=>c(f=>!f)})]})})}function _t({event:e,laneMode:s=!1}){const n=e.text??"";return t.jsx(Qs,{text:n,live:!!e.live,compact:s,copyControl:s?void 0:t.jsx(J,{text:n,label:"Copy reasoning",className:"s-observe-copy-btn--inline"})})}function Ft({preview:e}){const s=e.split(`
7
+ `)}function cs({expanded:e,onToggle:s,label:n}){const a=e?"less":n??"more";return t.jsxs("button",{type:"button",className:"s-observe-lane-expand",onClick:s,"aria-expanded":e,"aria-label":e?"Show less":"Show more",children:[e?t.jsx(ts,{size:11,strokeWidth:2,"aria-hidden":"true"}):t.jsx(ns,{size:11,strokeWidth:2,"aria-hidden":"true"}),t.jsx("span",{children:a})]})}function us({text:e,className:s,laneMode:n=!1,live:a=!1,renderExpanded:r,renderCollapsed:o}){const[l,c]=h.useState(!1),u=e.trim();if(!n)return t.jsxs("div",{className:s,children:[r?r(u):u,a&&t.jsx(ze,{text:u})]});const b=we(u),m=Xe(u),j=l?r?r(u):u:o?o(m):m;return t.jsx("div",{className:`s-observe-lane-expandable${l?" s-observe-lane-expandable--open":""}`,children:t.jsxs("div",{className:`${s} s-observe-lane-expandable-body`,children:[t.jsxs("span",{className:"s-observe-lane-expandable-text",children:[j,a&&t.jsx(ze,{text:u})]}),b&&t.jsx(cs,{expanded:l,onToggle:()=>c(f=>!f)})]})})}function Ft({event:e,laneMode:s=!1}){const n=e.text??"";return t.jsx(et,{text:n,live:!!e.live,compact:s,copyControl:s?void 0:t.jsx(J,{text:n,label:"Copy reasoning",className:"s-observe-copy-btn--inline"})})}function Dt({preview:e}){const s=e.split(`
8
8
  `);return t.jsx("pre",{className:"s-observe-tool-diff-preview",children:s.map((n,a)=>{const r=n[0],o=r==="+"?"add":r==="-"||r==="−"?"del":n.startsWith("@@")?"hunk":"ctx";return t.jsxs("span",{className:`s-observe-diff-line s-observe-diff-line--${o}`,children:[n,a<s.length-1?`
9
- `:null]},a)})})}function Dt(e){const s=(e??"").toLowerCase();return s==="shell"?"bash":s}function Wt(e){const s=e.arg?.trim();if(!(!s||s==="started"||s==="completed"))return s}const zt={bash:["bash","shell","terminal","exec","run","command","exec_command","shell_command","local_shell","container_exec","container.exec"],read:["read","view","cat","readfile","open","open_file"],file:["write","writefile","create","edit","multiedit","str_replace","strreplace","str_replace_editor","apply_patch","applypatch","patch","patch_apply","update","delete"],search:["grep","glob","search","rg","ripgrep","find","codebase_search","file_search"],fetch:["webfetch","web_fetch","fetch","websearch","web_search","browse","url"],agent:["agent","task","dispatch","subagent"],generic:[]},Mt={bash:"$",read:"◎",file:"✎",search:"⌕",fetch:"⤓",agent:"◇",generic:"▸"};function Ht(e){const s=(e??"").trim().toLowerCase();if(!s)return"generic";for(const n of["bash","read","file","search","fetch","agent"])if(zt[n].includes(s))return n;return"generic"}function ds(e){return!e||e==="started"||e==="completed"}function Gt(e){const s=e.trim().replace(/\/+$/u,""),n=s.lastIndexOf("/");return n<0?{dir:"",base:s}:{dir:s.slice(0,n+1),base:s.slice(n+1)}}function qt(e,s=2){const n=e.split("/").filter(Boolean);return n.length===0?"":n.length<=s?`${n.join("/")}/`:`…/${n.slice(-s).join("/")}/`}function Ut(e){if(!e)return null;for(const s of["matches","count","results","hits"]){const n=e[s];if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"&&/^\d+$/u.test(n.trim()))return Number(n.trim())}return null}function Vt(e){try{const s=new URL(e);return{host:s.host,path:s.pathname+s.search}}catch{return{host:e,path:""}}}function Kt(e){return e.length>=3&&/^(?:ba|z)?sh$/u.test(e[0])&&/^-[a-z]*c$/u.test(e[1])?e.slice(2).join(" "):e.join(" ")}function oe(e,s){const n=e.trim();if(!n.startsWith("{")&&!n.startsWith("["))return null;try{const a=JSON.parse(n);if(a&&typeof a=="object"&&!Array.isArray(a)){const r=a;for(const o of s){const l=r[o];if(typeof l=="string"&&l.trim())return l;if(Array.isArray(l)&&l.every(c=>typeof c=="string"))return Kt(l)}}}catch{}for(const a of s){const r=n.match(new RegExp(`"${a}"\\s*:\\s*"((?:[^"\\\\]|\\\\.)*)`,"u"));if(r?.[1])try{return JSON.parse(`"${r[1]}"`)}catch{return r[1]}}return null}function ms(e){const s=e.match(/\*\*\*\s+(?:Update|Add|Delete|Move|Rename)\s+File:\s*(.+)/u);return s&&s[1].trim().split(/\s*(?:->|=>)\s*/u)[0]?.trim()||null}function hs(e,s){const n=s?.trim();if(!n)return"";switch(e){case"bash":return oe(n,["cmd","command","script","input","code"])??n;case"file":return n.includes("*** ")?ms(n)??n:oe(n,["file_path","path","filename","file"])??n;case"read":return oe(n,["file_path","path","filename","file"])??n;case"search":return oe(n,["pattern","query","glob","regex","q","search"])??n;case"fetch":return oe(n,["url","href","uri"])??n;default:return n}}function Ue({path:e,tone:s}){const n=Rs(e),{dir:a,base:r}=Gt(n);return t.jsxs("span",{className:"s-observe-tool-path",title:e,children:[a&&t.jsx("span",{className:"s-observe-tool-path-dir",children:qt(a)}),t.jsx("span",{className:`s-observe-tool-path-base s-observe-tool-path-base--${s}`,children:r})]})}function Jt({path:e}){const s=e.lastIndexOf("/"),n=s>=0?e.slice(0,s+1):"",a=s>=0?e.slice(s+1):e;return t.jsxs("span",{className:"s-observe-bash-dir",children:[n&&t.jsx("span",{className:"s-observe-bash-dir-prefix",children:n}),a]})}function Yt({command:e,title:s,outcome:n,outputPreview:a,cwd:r,powerline:o}){const{dir:l,spans:c}=Ne(e,{cwd:r,powerline:o});return t.jsxs("span",{className:"s-observe-bash",title:s??e,children:[l&&t.jsxs("span",{className:"s-observe-bash-pl",children:[t.jsx("span",{className:"s-observe-bash-seg",children:l}),t.jsx("span",{className:"s-observe-bash-sep","aria-hidden":!0})]}),t.jsx("span",{className:"s-observe-bash-prompt","aria-hidden":!0,children:"❯"}),c.length>0?t.jsx("span",{className:"s-observe-bash-cmd",children:c.map((u,b)=>{const m=b>0?" ":"";return u.tier==="dir"?t.jsxs("span",{children:[m,t.jsx(Jt,{path:u.text})]},b):t.jsxs("span",{className:`s-observe-bash-${u.tier}${u.known?" s-observe-bash-prog--known":""}${u.flag?" s-observe-bash-flag":""}`,children:[m,u.text]},b)})}):!l&&t.jsx("span",{className:"s-observe-bash-arg",children:"shell"}),a&&t.jsxs("span",{className:"s-observe-bash-out",title:a,children:[" → ",Ze(a,88)]}),n&&t.jsx("span",{className:"s-observe-bash-ok",children:n})]})}function Xt({family:e,event:s}){const n=hs(e,s.arg),a=n.startsWith("{")||n.startsWith("["),r=!!n&&!ds(n)&&!a;switch(e){case"read":return r?t.jsx(Ue,{path:n,tone:"read"}):t.jsx("span",{className:"s-observe-tool-cmd-name",children:"read"});case"file":{const o=r&&n!=="patch"?n:ms(s.detail??"")??"";return o?t.jsx(Ue,{path:o,tone:"file"}):t.jsx("span",{className:"s-observe-tool-cmd-name",children:s.tool??"edit"})}case"search":{if(!r)return t.jsx("span",{className:"s-observe-tool-cmd-name",children:"search"});const o=Ut(s.result);return t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:"s-observe-tool-needle",children:[t.jsx("span",{className:"s-observe-tool-needle-q",children:'"'}),n,t.jsx("span",{className:"s-observe-tool-needle-q",children:'"'})]}),o!=null&&t.jsxs("span",{className:"s-observe-tool-count",children:["· ",o," ",o===1?"match":"matches"]})]})}case"fetch":{if(!r)return t.jsx("span",{className:"s-observe-tool-cmd-name",children:"fetch"});const{host:o,path:l}=Vt(n);return t.jsxs("span",{className:"s-observe-tool-url",title:n,children:[t.jsx("span",{className:"s-observe-tool-host",children:o}),l&&l!=="/"&&t.jsx("span",{className:"s-observe-tool-host-path",children:Ze(l,40)})]})}case"agent":return t.jsx("span",{className:"s-observe-tool-agent-name",children:r?n:s.tool??"agent"});default:return t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-observe-tool-cmd-name",children:s.tool}),r?t.jsxs(t.Fragment,{children:[" ",t.jsx("span",{className:"s-observe-tool-cmd-arg",children:n})]}):null]})}}function Zt({event:e,laneMode:s=!1,simple:n=!1,wallLabel:a,wallTitle:r}){const[o,l]=h.useState(!1),c=Ht(e.tool),u=s?Mt[c]:Tt[Dt(e.tool)]??"▸",b=s&&c==="bash",m=b?hs("bash",e.arg):"",j=!!m&&!ds(m)&&!m.startsWith("{")&&!m.startsWith("["),f=b&&!n,i=j?Ne(m).spans.find(S=>S.tier==="prog")?.text??m:"",g=Wt(e)??e.arg?.trim()??"",O=typeof e.result?.outcome=="string"?e.result.outcome.trim():typeof e.result?.outcome=="number"?String(e.result.outcome):void 0,A=s?void 0:e.stream?.[0]?.trim()||void 0,I=!!(O&&O!=="success"),B=!!(I||e.diff||e.stream),$=!s&&(B||we(g,120,2)),D=!$||o,W=!s&&$&&!o&&e.stream?Xe(e.stream.join(`
10
- `),180,2):null;return t.jsxs("div",{className:`s-observe-tool s-observe-block${s?` s-observe-tool--lane s-observe-tool--fam-${c}`:""}${s&&n?" s-observe-tool--simple":""}`,children:[t.jsxs("div",{className:`s-observe-tool-header${B&&!s?" s-observe-tool-header--has-body":""}`,children:[(!b||n)&&t.jsx("span",{className:"s-observe-tool-glyph",children:u}),t.jsxs("span",{className:"s-observe-tool-cmd",title:s&&!f?b&&j?m:`${e.tool??""} ${g}`.trim()||void 0:void 0,children:[f?t.jsx(Yt,{command:j?m:"",title:j?m:void 0,outputPreview:A}):b&&n?t.jsx("span",{className:"s-observe-tool-cmd-name",children:i||"shell"}):s?t.jsx(Xt,{family:c,event:e}):t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-observe-tool-cmd-name",children:e.tool}),g?t.jsxs(t.Fragment,{children:[" ",t.jsx("span",{className:"s-observe-tool-cmd-arg",children:g})]}):null]}),O==="success"&&t.jsx("span",{className:"s-observe-tool-outcome s-observe-tool-outcome--success",children:"ok"}),!s&&e.diff&&t.jsxs("span",{className:"s-observe-tool-diff-inline","aria-label":`${e.diff.add} additions, ${e.diff.del} deletions`,children:[t.jsxs("span",{className:"s-observe-tool-diff-add",children:["+",e.diff.add]}),t.jsxs("span",{className:"s-observe-tool-diff-del",children:["−",e.diff.del]})]})]}),$&&t.jsx(cs,{expanded:o,onToggle:()=>l(S=>!S),label:e.stream?"output":"details"})]}),W&&t.jsx("pre",{className:"s-observe-tool-stream-preview",children:W}),I&&(s||D)&&e.result&&t.jsx("div",{className:"s-observe-tool-result",children:Object.entries(e.result).map(([S,p])=>`${S}: ${p}`).join(" · ")}),!s&&e.diff&&D&&t.jsxs("div",{className:"s-observe-tool-diff",children:[t.jsxs("div",{className:"s-observe-tool-diff-stats",children:[t.jsxs("span",{className:"s-observe-tool-diff-add",children:["+",e.diff.add]}),e.diff.del>0&&t.jsxs(t.Fragment,{children:[" ",t.jsxs("span",{className:"s-observe-tool-diff-del",children:["−",e.diff.del]})]})]}),t.jsx(Ft,{preview:e.diff.preview})]}),!s&&e.stream&&D&&t.jsx("pre",{className:"s-observe-tool-stream",children:e.stream.join(`
11
- `)}),!s&&t.jsx(J,{text:Bt(e),label:"Copy tool call"})]})}function Qt({event:e,laneMode:s=!1,conversationMode:n=!1,operatorName:a="you",wallLabel:r,wallTitle:o}){const l=Ws(e),c=l.preview===l.title?"":l.preview,u=s||n,b=(a.trim()[0]??"y").toUpperCase();return t.jsxs("div",{className:["s-observe-ask","s-observe-block",s&&"s-observe-ask--lane",n&&"s-observe-ask--conversation"].filter(Boolean).join(" "),children:[u?t.jsxs("div",{className:"s-observe-ask-head",children:[t.jsx("span",{className:"s-observe-ask-avatar",style:{background:Ms(a)},"aria-hidden":"true",children:b}),t.jsx("span",{className:"s-observe-ask-author",children:a}),r?t.jsx("span",{className:"s-observe-ask-time",title:o,children:r}):null]}):t.jsx("div",{className:"s-observe-ask-label",children:l.label}),l.contextTags.length>0&&t.jsx("div",{className:"s-observe-ask-tags","aria-label":"Attached context",children:l.contextTags.map(m=>t.jsxs("span",{className:"s-observe-ask-tag",title:m.raw,children:[t.jsx(ot,{size:10,strokeWidth:2,"aria-hidden":"true"}),t.jsx("span",{className:"s-observe-ask-tag-name",children:zs(m.name)}),m.detail?t.jsx("span",{className:"s-observe-ask-tag-detail",children:m.detail}):null]},m.name))}),t.jsx("div",{className:"s-observe-ask-title",children:l.title}),c?t.jsx(us,{text:c,className:"s-observe-ask-text",laneMode:s,live:e.live,renderCollapsed:m=>Qe(m),renderExpanded:m=>t.jsx(ss,{text:m})}):e.live?t.jsx("span",{className:"s-observe-cursor"}):null,l.answer&&(!s&&!n||we(l.answer.text))&&t.jsxs("div",{className:"s-observe-ask-answer",children:[t.jsxs("span",{className:"s-observe-ask-answer-meta",children:["↳ ",l.answer.label]}),t.jsx("div",{className:"s-observe-ask-answer-text",children:l.answer.text})]}),!s&&!n&&t.jsx(J,{text:l.copyText,label:"Copy request"})]})}function en(e){const s=e.to?.trim();return s?s==="human"?"→ you":`→ ${s}`:null}function fs(e){return e.kind==="message"&&(e.text??"").trim().toLowerCase()==="[thinking]"}function sn({event:e,laneMode:s=!1,conversationMode:n=!1,assistantName:a}){const r=e.text??"",o=(s||n)&&fs(e),l=o?"Thinking...":r,c=o?"Agent thinking":n?a?.trim()||"Agent":en(e);return t.jsxs("div",{className:["s-observe-block",s&&"s-observe-message--lane",n&&"s-observe-message--conversation",o&&"s-observe-message--thinking",e.live&&"s-observe-message--streaming"].filter(Boolean).join(" "),"aria-busy":e.live||void 0,children:[c?t.jsx("div",{className:"s-observe-message-label",children:c}):null,t.jsx(us,{text:l,className:"s-observe-message-text",laneMode:s||n,live:e.live,renderCollapsed:u=>Qe(u),renderExpanded:u=>t.jsx(ss,{text:u})}),!s&&!n&&t.jsx(J,{text:r,label:"Copy message"})]})}function tn({summary:e,expanded:s=!1,onToggle:n}){const a=e.totalCount===1?"technical event":"technical events",r=t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:"s-observe-tech-summary-count",children:[e.totalCount," ",a]}),e.labels.length>0?t.jsx("span",{className:"s-observe-tech-summary-detail",children:e.labels.join(" · ")}):null,n?s?t.jsx(ts,{size:12,strokeWidth:1.8,className:"s-observe-tech-summary-chevron","aria-hidden":!0}):t.jsx(ns,{size:12,strokeWidth:1.8,className:"s-observe-tech-summary-chevron","aria-hidden":!0}):null]});return n?t.jsx("button",{type:"button",className:`s-observe-tech-summary s-observe-tech-summary--toggle s-observe-block s-observe-block--inline${s?" is-expanded":""}`,onClick:o=>{o.stopPropagation(),n()},"aria-expanded":s,"aria-label":s?`Collapse ${e.totalCount} ${a}`:`Expand ${e.totalCount} ${a}`,children:r}):t.jsx("div",{className:"s-observe-tech-summary s-observe-block s-observe-block--inline",children:r})}function nn({presentation:e,onChange:s}){return t.jsxs("div",{className:"s-observe-presentation-toggle",role:"group","aria-label":"Session presentation",children:[t.jsx("button",{type:"button",className:"s-observe-presentation-toggle-btn","aria-pressed":e==="conversation",onClick:()=>s("conversation"),children:"Conversation"}),t.jsx("button",{type:"button",className:"s-observe-presentation-toggle-btn","aria-pressed":e==="timeline",onClick:()=>s("timeline"),children:"Trace"})]})}function an({collapseTechnicalEvents:e,onChange:s}){if(!s)return null;const n=e?"Concise":"Details",a=e?"Show detailed trace events":"Show concise trace summaries",r=e?st:tt;return t.jsxs("label",{className:`s-observe-lane-trace-mode${e?" s-observe-lane-trace-mode--concise":" s-observe-lane-trace-mode--details"}`,title:a,children:[t.jsx("input",{type:"checkbox",checked:e,onChange:o=>s(o.currentTarget.checked),"aria-label":a}),t.jsx(r,{size:12,strokeWidth:1.8,"aria-hidden":"true"}),t.jsx("span",{children:n})]})}function rn(e,s){return e?.trim()?s?!/^[a-z0-9._-]+ · [a-z0-9._-]+$/i.test(e.trim()):!0:!1}const on={turn_ended:"Turn complete",turn_started:"Turn started"};function ln(e){const s=e.trim(),a=s.match(/^\[(.+)\]$/)?.[1]??s;return on[a]??a.replace(/_/g," ")}function cn({turn:e,model:s}){return t.jsxs("div",{className:"s-observe-grok-turn s-observe-block s-observe-block--inline",children:[t.jsxs("span",{className:"s-observe-grok-turn-num",children:["turn ",e]}),s?t.jsx("span",{className:"s-observe-grok-turn-model",children:s}):null]})}function un({tool:e,decision:s}){return t.jsxs("div",{className:"s-observe-grok-permission s-observe-block s-observe-block--inline",children:[t.jsx("span",{className:`s-observe-grok-permission-decision is-${s}`,children:s}),t.jsx("span",{className:"s-observe-grok-permission-tool",children:e})]})}function dn({phase:e}){return t.jsx("div",{className:"s-observe-grok-phase s-observe-block s-observe-block--inline",children:t.jsx("span",{className:"s-observe-grok-phase-label",children:Es(e)})})}function mn({event:e,laneMode:s=!1}){if(s){const n=Ye(e.text??"");return n?.kind==="turn"&&typeof n.turn=="number"?t.jsx(cn,{turn:n.turn,model:n.model}):t.jsx("div",{className:"s-observe-note s-observe-block s-observe-block--inline s-observe-note--lane",children:t.jsx("span",{className:"s-observe-note-text",children:ln(e.text)})})}return t.jsxs("div",{className:"s-observe-note s-observe-block s-observe-block--inline",children:[t.jsx("span",{className:"s-observe-note-icon","aria-hidden":"true",children:"✓"}),t.jsx("span",{className:"s-observe-note-text",children:e.text}),t.jsx(J,{text:e.text??"",label:"Copy note"})]})}function hn({event:e,laneMode:s=!1}){const n=s?Ye(e.text??""):null;if(n?.kind==="permission"&&n.tool&&n.decision)return t.jsx(un,{tool:n.tool,decision:n.decision});if(n?.kind==="phase"&&n.phase)return t.jsx(dn,{phase:n.phase});const a=rn(e.detail,s),r=a&&e.detail?`${e.text}
12
- ${e.detail}`:e.text??"";return t.jsxs("div",{className:`s-observe-system s-observe-block${s?" s-observe-system--lane":""}`,children:[t.jsxs("div",{className:"s-observe-system-line",children:[!s&&t.jsx("span",{className:"s-observe-system-arrow","aria-hidden":"true",children:"▸ "}),t.jsx("span",{className:"s-observe-system-text",children:e.text})]}),a&&e.detail&&t.jsx("div",{className:"s-observe-system-detail",children:e.detail}),t.jsx(J,{text:r,label:"Copy system event"})]})}const fn={think:"think",tool:"tool",ask:"ask",message:"message",note:"note",system:"system",boot:"boot"};function bn(e){const s=Ls(e);return s||(e.kind==="tool"?e.tool==="res"?"result":e.tool?.trim()||"tool":fn[e.kind]??e.kind)}function Ve(e){return!!e?.closest("button, a, input, textarea, select, [role='slider'], [contenteditable='true']")}function pn({event:e,prevT:s,prevWallMs:n,laneMode:a=!1,conversationMode:r=!1,entering:o=!1,repeatCount:l=1,sessionStartMs:c,nowMs:u=Date.now(),preferWallAge:b=!1,highlighted:m=!1,focusAnchor:j=!1,simpleTool:f=!1,stackedTool:i=!1,laneGutter:d="time",laneOperatorName:g,conversationAssistantName:O,onLaneEventSelect:A,laneToolHover:I,hoverPreviewActive:B=!1,technicalSummary:$,technicalExpanded:D=!1,onTechnicalToggle:W}){const L=e.t-s,S=$?"var(--dim)":ls[e.kind]??"var(--dim)",p=a||r?Pt(e,c,u,b):Ot(e,c),E=pe(e,c),M=b&&typeof n=="number"&&E!==null?Ds(E-n):null,x=!b&&L>15?`${Rt(L)} gap`:null,C=M??x,N=a&&!!A&&!$,T=["s-observe-row",`s-observe-row--kind-${e.kind}`,o?"s-observe-row--enter":"",N?"s-observe-row--selectable":"",m?"s-observe-row--highlighted":"",j?"s-observe-row--focus-anchor":"",f?"s-observe-row--tool-simple":"",i?"s-observe-row--tool-stacked":"",B?"s-observe-row--hover-preview":"",$?"s-observe-row--tech-summary":""].filter(Boolean).join(" "),k=t.jsxs(t.Fragment,{children:[C?t.jsx("div",{className:"s-observe-row-gap",children:C}):null,t.jsxs("div",{className:"s-observe-row-time",title:p.title,children:[d==="label-time"&&!i?t.jsx("span",{className:"s-observe-row-kind",children:bn(e)}):null,t.jsx("span",{className:"s-observe-row-clock",children:p.label}),l>1&&t.jsxs("span",{className:"s-observe-row-repeat",title:`${l} similar events merged`,children:["×",l]})]}),t.jsx("span",{className:"s-observe-row-bead",style:{background:S}}),$?t.jsx(tn,{summary:$,expanded:D,onToggle:W}):t.jsxs(t.Fragment,{children:[e.kind==="think"&&t.jsx(_t,{event:e,laneMode:a}),e.kind==="tool"&&t.jsx(Zt,{event:e,laneMode:a,simple:f,wallLabel:f?p.label:void 0,wallTitle:f?p.title:void 0}),e.kind==="ask"&&t.jsx(Qt,{event:e,laneMode:a,conversationMode:r,operatorName:g??(r?"You":void 0),wallLabel:a||r?p.label:void 0,wallTitle:a||r?p.title:void 0}),e.kind==="message"&&t.jsx(sn,{event:e,laneMode:a,conversationMode:r,assistantName:O}),e.kind==="note"&&t.jsx(mn,{event:e,laneMode:a}),(e.kind==="system"||e.kind==="boot")&&t.jsx(hn,{event:e,laneMode:a})]})]}),R=a&&e.kind==="tool"&&I?I(e,{wallLabel:p.label,wallTitle:p.title,sessionOffset:Ps(e.t)}):null,y=R?t.jsx("div",{ref:R.ref,className:"s-observe-row-hover-target",onMouseEnter:R.onMouseEnter,onMouseLeave:R.onMouseLeave,onFocus:R.onFocus,onBlur:R.onBlur,children:k}):k;return t.jsx("div",{className:T,"data-event-id":e.id,onClick:N?v=>{Ve(v.target)||A?.(e)}:void 0,onKeyDown:N?v=>{v.key!=="Enter"&&v.key!==" "||Ve(v.target)||(v.preventDefault(),A?.(e))}:void 0,role:N?"button":void 0,tabIndex:N?0:void 0,"aria-label":N?e.kind==="tool"?"Open command detail at this step":"Open session detail at this step":void 0,children:y})}function vn(e,s){if(!e)return;const n=e.closest(".s-observe-main");if(n){const a=n.scrollHeight-n.clientHeight;n.scrollTo({top:a,left:n.scrollLeft,behavior:s});return}e.scrollIntoView({behavior:s,block:"end",inline:"nearest"})}function xn({events:e,followEnd:s,laneMode:n=!1,conversationMode:a=!1,sessionStartMs:r,nowMs:o=Date.now(),preferWallAge:l=!1,focusEventId:c,inlineFocusEventId:u,inlineFocusContent:b,onLaneEventSelect:m,laneGutter:j="time",richSimpleTools:f=!1,collapseTechnicalEvents:i=!1,laneOperatorName:d,conversationAssistantName:g}){const O=h.useRef(null),A=h.useRef(s),I=h.useRef(new Set),B=h.useRef(!1),[$,D]=h.useState(()=>new Set),[W,L]=h.useState(()=>new Set),S=h.useCallback(x=>{L(C=>{const N=new Set(C);return N.has(x)?N.delete(x):N.add(x),N})},[]);h.useEffect(()=>{i||L(new Set)},[i]);const p=h.useMemo(()=>{const x=n||a,C=x?Nt(e):e.map(T=>({event:T,repeatCount:1}));if(!x)return C;const N=C.filter(T=>T.event.live||!fs(T.event));return i?yt(N):N},[e,n,a,i]);h.useEffect(()=>{if(!n){B.current=!0;return}const x=I.current;if(!B.current){for(const k of p)x.add(k.event.id);B.current=!0;return}const C=[];for(const k of p)x.has(k.event.id)||(x.add(k.event.id),C.push(k.event.id));if(C.length===0)return;const N=new Set(C);D(N);const T=window.setTimeout(()=>{D(new Set)},380);return()=>window.clearTimeout(T)},[p,s,n]),h.useLayoutEffect(()=>{if(!s){A.current=!1;return}const x=!A.current;A.current=!0,vn(O.current,n||x?"instant":"smooth")},[p.length,s,n]);const E=Os(n),M=(x,C,N,T={})=>{const k=N?.event??null,R=k?pe(k,r):null,y=n&&!x.technicalSummary&&!f&&Me(x.event),v=y&&k!=null&&!N?.technicalSummary&&Me(k),q=!T.suppressInlineFocus&&u===x.event.id&&!!b,z=t.jsx(pn,{event:x.event,prevT:k?.t??0,prevWallMs:R,laneMode:n,conversationMode:a,simpleTool:y,stackedTool:v,laneGutter:j,entering:n&&$.has(x.event.id),repeatCount:x.repeatCount,sessionStartMs:r,nowMs:o,preferWallAge:l,highlighted:!n&&!a&&c===x.event.id,focusAnchor:q,laneOperatorName:d,conversationAssistantName:g,onLaneEventSelect:m,laneToolHover:n?E.bind:void 0,hoverPreviewActive:n&&E.hoveredEventId===x.event.id,technicalSummary:x.technicalSummary,technicalExpanded:T.technicalExpanded,onTechnicalToggle:T.onTechnicalToggle});return t.jsxs("div",{className:`s-observe-focus-group${q?" s-observe-focus-group--active":""}`,"data-focus-group":q?"true":void 0,children:[z,q?t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"s-observe-focus-connector","aria-hidden":!0}),t.jsx("div",{className:"s-observe-focus-detail",children:b})]}):null]},`${x.event.id}:${x.repeatCount}:${C}${T.keySuffix??""}`)};return t.jsxs("div",{className:"s-observe-stream",children:[!a&&t.jsx("div",{className:"s-observe-spine"}),p.map((x,C)=>{const N=C>0?p[C-1]:null,T=x.technicalSourceRows,k=!!(x.technicalSummary&&T&&T.length>0),R=k&&W.has(x.event.id);return k&&R?t.jsxs("div",{className:"s-observe-tech-rollup s-observe-tech-rollup--expanded",children:[M(x,C,N,{technicalExpanded:!0,onTechnicalToggle:()=>S(x.event.id),suppressInlineFocus:!0}),t.jsx("div",{className:"s-observe-tech-rollup-details",children:T.map((y,v)=>{const q=v>0?T[v-1]:null;return M(y,v,q,{keySuffix:`:rollup:${x.event.id}:detail`,suppressInlineFocus:!0})})})]},`${x.event.id}:${x.repeatCount}:${C}:rollup`):M(x,C,N,{onTechnicalToggle:k?()=>S(x.event.id):void 0})}),t.jsx("div",{ref:O}),E.card]})}function gn({data:e,cursor:s}){const r=e.length;if(r<2)return null;const o=276/(r-1),l=e.map((u,b)=>`${b===0?"M":"L"} ${(b*o).toFixed(1)} ${((1-u)*44).toFixed(1)}`).join(" "),c=s*276;return t.jsxs("svg",{viewBox:"0 0 276 44",style:{width:"100%",height:44,display:"block"},children:[t.jsx("defs",{children:t.jsxs("linearGradient",{id:"observeCtxFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[t.jsx("stop",{offset:"0%",stopColor:"var(--accent)",stopOpacity:.25}),t.jsx("stop",{offset:"100%",stopColor:"var(--accent)",stopOpacity:0})]})}),t.jsx("path",{d:`${l} L 276 44 L 0 44 Z`,fill:"url(#observeCtxFill)"}),t.jsx("path",{d:l,fill:"none",stroke:"var(--accent)",strokeWidth:1.2}),t.jsx("line",{x1:c,y1:0,x2:c,y2:44,stroke:"var(--accent)",strokeWidth:1,opacity:.6,strokeDasharray:"2 3"})]})}function jn({state:e}){const s=e==="created"?"var(--green)":e==="modified"?"var(--accent)":"var(--dim)",n=e==="created"?"+":e==="modified"?"~":"◎";return t.jsx("span",{className:"s-observe-file-glyph",style:{background:"color-mix(in srgb, var(--bg) 70%, black)",border:`1px solid color-mix(in srgb, ${s} 40%, var(--border))`,color:s},children:n})}function U({label:e,value:s,detail:n}){const a=s==="0"||s==="—"||s==="";return t.jsxs("div",{className:`s-observe-stat${a?" s-observe-stat--quiet":""}`,children:[t.jsx("div",{className:"s-observe-stat-value",children:s}),t.jsx("div",{className:"s-observe-stat-label",children:e}),n&&t.jsx("div",{className:"s-observe-stat-detail",children:n})]})}function je({children:e="Not captured for this session"}){return t.jsx("div",{className:"s-observe-empty",children:e})}function Ee({path:e,basePath:s,agentId:n,sessionId:a,className:r,children:o}){const{openFilePreview:l}=Se(),c=e.startsWith("/")||e.startsWith("~/")?e:s?`${s.replace(/\/$/,"")}/${e}`:e;return t.jsxs("span",{className:"s-observe-path-link-group",children:[t.jsx("button",{type:"button",className:r,title:`Preview ${e} in Scout`,onClick:()=>l(c),children:o}),t.jsx("button",{type:"button",className:"s-observe-path-link-external",title:`Reveal ${e} in OS`,"aria-label":"Reveal in OS",onClick:()=>It({path:e,basePath:s,agentId:n,sessionId:a}),children:t.jsx(nt,{size:11,strokeWidth:1.6})})]})}function kn({path:e,basePath:s,agentId:n,sessionId:a}){return t.jsxs("div",{className:"s-observe-source",children:[t.jsx("span",{className:"s-observe-source-label",children:"Source"}),t.jsx(Ee,{path:e,basePath:s,agentId:n,sessionId:a,className:"s-observe-source-link",children:ye(e)})]})}function ke({rows:e,agentId:s,sessionId:n}){return e.length===0?null:t.jsx("div",{className:"s-observe-detail-list",children:e.map(a=>{const r=`s-observe-detail-value s-observe-detail-value--${a.tone??"default"}${a.wrap?" s-observe-detail-value--wrap":""}`,o=a.display??a.value;return t.jsxs("div",{className:"s-observe-detail-row",children:[t.jsx("div",{className:"s-observe-detail-label",children:a.label}),t.jsxs("div",{className:"s-observe-detail-value-wrap",children:[a.actionPath?t.jsx(Ee,{path:a.actionPath,basePath:a.actionBasePath,agentId:s,sessionId:n,className:`${r} s-observe-detail-link`,children:o}):t.jsx("div",{className:r,title:a.title??(o!==a.value?a.value:void 0),children:o}),t.jsx(J,{text:a.actionPath??a.value,label:`Copy ${a.label.toLowerCase()}`,className:"s-observe-copy-btn--inline"})]})]},a.label)})})}function yn({events:e,duration:s,cursor:n,onCursor:a,snapTimes:r=[]}){const o=h.useRef(null),l=h.useMemo(()=>Cn(e,s,48),[e,s]),c=l.some(f=>f.count>0),u=l.reduce((f,i)=>f+i.count,0),b=c?`${u} message turn anchors. Click the timeline or use arrow keys to snap between turns.`:"Session timeline",m=h.useCallback(f=>{const i=o.current.getBoundingClientRect(),d=f.clientX-i.left,g=Math.max(0,Math.min(s,d/i.width*s));a(Ke(g,s,r))},[s,a,r]),j=h.useCallback(f=>{if(s<=0)return;const i=s*.01,d=s*.05;let g=n;switch(f.key){case"ArrowLeft":g=r.length?wn(n,r):n-(f.shiftKey?d:i);break;case"ArrowRight":g=r.length?ps(n,r,s):n+(f.shiftKey?d:i);break;case"PageDown":g=n-d;break;case"PageUp":g=n+d;break;case"Home":g=0;break;case"End":g=s;break;default:return}f.preventDefault(),a(r.length&&(f.key==="PageDown"||f.key==="PageUp")?Ke(g,s,r):Math.max(0,Math.min(s,g)))},[n,s,a,r]);return t.jsxs("div",{className:"s-observe-track-wrap",title:b,children:[c?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"s-observe-track-barsHead","aria-hidden":!0,children:[t.jsx("span",{children:"Turns"}),t.jsx("span",{children:u})]}),t.jsx("div",{className:"s-observe-track-bars","aria-hidden":!0,children:l.map(f=>t.jsx("span",{className:"s-observe-track-bar","data-active":f.start<=n||void 0,style:{height:`${Sn(f.count,l)}%`}},f.index))})]}):null,t.jsxs("div",{ref:o,className:"s-observe-track",onClick:m,onKeyDown:j,role:"slider",tabIndex:s>0?0:-1,"aria-label":"Session timeline","aria-valuemin":0,"aria-valuemax":s,"aria-valuenow":Math.max(0,Math.min(s,n)),children:[e.map(f=>{const i=f.kind==="tool"?6:f.kind==="think"?4:5;return t.jsx("span",{className:"s-observe-track-tick",style:{left:`${s>0?f.t/s*100:0}%`,top:i===6?-2:-1,height:i,background:ls[f.kind]??"var(--dim)"}},f.id)}),t.jsx("div",{className:"s-observe-track-played",style:{width:`${s>0?n/s*100:0}%`}}),t.jsx("span",{className:"s-observe-track-cursor",style:{left:`${s>0?n/s*100:0}%`}})]})]})}function bs(e){return e.kind==="message"||e.kind==="ask"}function Nn(e,s){const n=e.filter(bs).map(a=>Math.max(0,Math.min(s,a.t))).sort((a,r)=>a-r);return Array.from(new Set(n))}function Ke(e,s,n){const a=Math.max(0,Math.min(s,e));if(n.length===0)return a;let r=n[0],o=Math.abs(r-a);for(const l of n){const c=Math.abs(l-a);c<o&&(r=l,o=c)}return r}function ps(e,s,n){return s.find(r=>r>e+.01)??n}function wn(e,s){for(let n=s.length-1;n>=0;n-=1){const a=s[n];if(a<e-.01)return a}return 0}function Cn(e,s,n){const a=Math.max(1,s),r=Array.from({length:n},(o,l)=>({index:l,count:0,start:l/n*a}));for(const o of e){if(!bs(o))continue;const l=Math.min(n-1,Math.max(0,Math.floor(o.t/a*n)));r[l].count+=1}return r}function Sn(e,s){if(e<=0)return 0;const n=Math.max(1,...s.map(a=>a.count));return Math.max(18,e/n*100)}function Tn({events:e,duration:s,cursor:n,mode:a,speed:r,snapTimes:o,onCursor:l,onPlayToggle:c,onSpeedChange:u}){const b=a==="tail"?"Following latest":a==="playing"?"Pause replay":"Play turns";return t.jsxs("div",{className:"s-observe-transport","data-snap":o.length>0||void 0,"data-mode":a,children:[t.jsx("button",{type:"button",className:"s-observe-play-btn","data-state":a,onClick:c,"aria-pressed":a==="tail"||a==="playing","aria-label":b,title:b,children:a==="playing"?"❚❚":"▶"}),t.jsx("button",{type:"button",className:"s-observe-rewind-btn",onClick:()=>{l(0)},"aria-label":"Jump to start",title:"Jump to start",children:"⏮"}),t.jsx(yn,{events:e,duration:s,cursor:n,onCursor:l,snapTimes:o}),t.jsx("div",{className:"s-observe-speed-group",children:[.5,1,2,4].map(m=>t.jsxs("button",{type:"button",className:`s-observe-speed-btn${r===m?" s-observe-speed-btn--active":""}`,onClick:()=>u(m),children:[m,"×"]},m))})]})}function Je(e){return Hs(e)||"unknown"}function $n(e,s){const n=De(e),a=De(s);return n===null||a===null?"0:00":es(a-n)||"0:00"}function Ln({catalog:e,sessionId:s,agentId:n}){const{navigate:a,route:r}=Se(),[o,l]=h.useState(!1),c=e.sessions.find(d=>d.id===e.activeSessionId),u=e.sessions.filter(d=>d.id!==e.activeSessionId&&d.endedAt).sort((d,g)=>(g.endedAt??0)-(d.endedAt??0)).slice(0,5),b=e.activeSessionId??s,m=b?b.slice(0,8):null,j=!!(c?.canTakeover&&e.resumeCommand),f=h.useCallback(()=>{!j||!e.resumeCommand||(Vs({command:e.resumeCommand,cwd:e.resumeCwd,agentId:n}).then(()=>{Ys(a,{view:"terminal",agentId:n},{returnTo:r})}),l(!0))},[j,e.resumeCommand,e.resumeCwd,a,r,n]),i=h.useCallback(()=>{a({view:"agents-v2",agentId:n,tab:"message"})},[a,n]);return t.jsxs("div",{className:"s-observe-session-header",children:[t.jsx("div",{className:"s-observe-session-active",children:t.jsxs("div",{className:"s-observe-session-row",children:[m&&t.jsx("span",{className:"s-observe-session-id",title:b??void 0,children:m}),c&&t.jsxs("span",{className:"s-observe-session-time",children:["started ",Je(c.startedAt)]}),t.jsx("button",{className:"s-observe-pair-btn",onClick:i,title:"Send messages into the live session without taking the terminal",children:"Pair"}),j&&t.jsx("button",{className:"s-observe-takeover-btn",onClick:f,title:e.resumeCommand??void 0,children:o?"Sent":"Takeover"})]})}),u.length>0&&t.jsxs("div",{className:"s-observe-session-history",children:[t.jsxs("div",{className:"s-observe-session-history-label",children:[e.sessions.length," session",e.sessions.length!==1?"s":""," total"]}),u.map(d=>t.jsxs("div",{className:"s-observe-session-past",children:[t.jsx("span",{className:"s-observe-session-id",children:d.id.slice(0,8)}),t.jsxs("span",{className:"s-observe-session-time",children:[Je(d.startedAt),d.endedAt?` · ${$n(d.startedAt,d.endedAt)}`:""]})]},d.id))]})]})}const vs={events:[{id:"observe:empty",t:0,kind:"system",text:"No session trace is available for this agent yet.",detail:"Waiting for a live session or readable history file."}],files:[],contextUsage:[],live:!1};function xs({data:e=vs,agentId:s,sessionId:n,cursor:a,duration:r,surface:o="embedded",observeSource:l,observeFidelity:c}){const{events:u,files:b}=e,[m,j]=h.useState(null);h.useEffect(()=>{if(!s)return;let v=!1;return Ce(`/api/agents/${encodeURIComponent(s)}/session-catalog`).then(q=>{v||j(q)}).catch(()=>{}),()=>{v=!0}},[s]);const f=e.metadata,i=f?.session,d=f?.usage,g=typeof r=="number"&&Number.isFinite(r)&&r>0?r:u.length>0?u[u.length-1].t+30:60,O=typeof a=="number"&&Number.isFinite(a)?a:g,A=u.filter(v=>v.kind==="tool").length,I=u.filter(v=>v.kind==="think").length,B=u.filter(v=>v.kind==="ask").length,$=u.filter(v=>v.kind==="tool"&&v.tool==="read").length,D=u.filter(v=>v.kind==="tool"&&(v.tool==="edit"||v.tool==="write")).length,W=u.length>0?u[u.length-1].t:0,L=typeof d?.contextInputTokens=="number"&&typeof d.contextWindowTokens=="number"&&d.contextWindowTokens>0?Math.max(0,Math.min(100,Math.round(d.contextInputTokens/d.contextWindowTokens*100))):null,S=[{label:"Context input",value:d?.contextInputTokens},{label:"Input",value:d?.inputTokens},{label:"Output",value:d?.outputTokens},{label:"Cache hit",value:d?.cacheReadInputTokens},{label:"Cache write",value:d?.cacheCreationInputTokens},{label:"Total",value:d?.totalTokens},{label:"Reasoning",value:d?.reasoningOutputTokens}].filter(v=>typeof v.value=="number"),p=ge([typeof d?.assistantMessages=="number"?{label:"Assistant msgs",value:re(d.assistantMessages)??"0",tone:"accent"}:null,typeof d?.webSearchRequests=="number"?{label:"Web search",value:re(d.webSearchRequests)??"0"}:null,typeof d?.webFetchRequests=="number"?{label:"Web fetch",value:re(d.webFetchRequests)??"0"}:null,d?.serviceTier?{label:"Service tier",value:d.serviceTier,tone:"good"}:null,d?.speed?{label:"Speed",value:d.speed}:null,d?.planType?{label:"Plan",value:d.planType}:null]),E=ge([typeof d?.contextWindowTokens=="number"?{label:"Model window",value:`${re(d.contextWindowTokens)} tokens`,title:re(d.contextWindowTokens)??void 0,tone:"accent"}:null,L!==null?{label:"Window load",value:`${L}%`,tone:L>=80?"warn":"default"}:null]),M=ge([i?.model?{label:"Model",value:i.model,tone:"accent"}:null,i?.adapterType?{label:"Adapter",value:i.adapterType}:null,i?.gitBranch?{label:"Branch",value:i.gitBranch}:null,i?.cwd?{label:"Workspace",value:i.cwd,display:ye(i.cwd),title:i.cwd,actionPath:i.cwd}:null,i?.entrypoint?{label:"Entrypoint",value:i.entrypoint}:null,i?.cliVersion?{label:"CLI",value:i.cliVersion}:null,i?.permissionMode?{label:"Permissions",value:i.permissionMode}:null,i?.approvalPolicy?{label:"Approval",value:i.approvalPolicy}:null,i?.sandbox?{label:"Sandbox",value:i.sandbox}:null,i?.userType?{label:"User type",value:i.userType}:null,i?.originator?{label:"Originator",value:i.originator}:null,i?.modelProvider?{label:"Provider",value:i.modelProvider}:null,i?.effort?{label:"Effort",value:i.effort}:null,i?.timezone?{label:"Timezone",value:i.timezone}:null,i?.externalSessionId?{label:"External session",value:i.externalSessionId,title:i.externalSessionId}:null,i?.threadId?{label:"Thread",value:i.threadId,title:i.threadId}:null,i?.threadPath?{label:"Thread path",value:i.threadPath,display:ye(i.threadPath),title:i.threadPath,actionPath:i.threadPath,actionBasePath:i.cwd??null}:null,i?.source?{label:"Runtime source",value:i.source}:null]),x=Ge(d),C=Ge(i),N=l??(e.live?"live":"history"),T=c??"timestamped",k=os({source:N,fidelity:T,live:e.live,eventCount:u.length}),R=T==="timestamped",y=k.traceEventCount>0;return t.jsxs("aside",{className:`s-observe-rail${o==="context"?" s-observe-rail--context":""}`,children:[t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Evidence"}),t.jsxs("div",{className:"s-observe-evidence-card","data-tone":k.tone,children:[t.jsx("span",{className:"s-observe-evidence-dot","aria-hidden":"true"}),t.jsxs("span",{children:[t.jsx("strong",{children:k.label}),t.jsx("small",{children:k.detail})]})]})]}),m&&m.sessions.length>0&&t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Session"}),t.jsx(Ln,{catalog:m,sessionId:n??null,agentId:s})]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Trace stats"}),t.jsxs("div",{className:"s-observe-stats",children:[t.jsx(U,{label:"Turns",value:K(y?i?.turnCount:void 0)}),t.jsx(U,{label:"Tools",value:K(y?A:void 0)}),t.jsx(U,{label:"Thinks",value:K(y?I:void 0)}),t.jsx(U,{label:"Requests",value:K(y?B:void 0)}),t.jsx(U,{label:"Reads",value:K(y?$:void 0)}),t.jsx(U,{label:"Edits",value:K(y?D:void 0)}),t.jsx(U,{label:"Files",value:K(y?b.length:void 0)}),t.jsx(U,{label:"Window",value:R&&y?At(W):"—"})]})]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Interacted agents"}),t.jsx(Xs,{topology:f?.topology??null,sessionId:n??f?.session?.externalSessionId??null,size:"rail",maxAgents:4})]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Context window"}),t.jsx(ke,{rows:E,agentId:s??null,sessionId:n??null}),L!==null?t.jsxs(t.Fragment,{children:[t.jsx(gn,{data:[L/100,L/100],cursor:O/g}),t.jsx("div",{className:"s-observe-ctx-detail",children:"Meter uses latest context input divided by the model window."})]}):E.length===0?t.jsx(je,{}):t.jsx("div",{className:"s-observe-ctx-detail",children:"No derived load trace captured."})]}),t.jsxs("div",{children:[t.jsxs("div",{className:"s-observe-rail-label",children:["Files touched · ",b.length]}),t.jsx("div",{className:"s-observe-files",children:b.map(v=>t.jsxs("div",{className:`s-observe-file${v.lastT<=O?" s-observe-file--visible":" s-observe-file--hidden"}`,children:[t.jsx(jn,{state:v.state}),t.jsx(Ee,{path:v.path,basePath:i?.cwd??null,agentId:s??null,sessionId:n??null,className:"s-observe-file-path",children:v.path}),t.jsxs("span",{className:"s-observe-file-touches",children:["×",v.touches]})]},v.path))})]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Usage"}),S.length>0&&t.jsx("div",{className:"s-observe-stats s-observe-stats--usage",children:S.map(v=>t.jsx(U,{label:v.label,value:K(v.value)},v.label))}),p.length>0?t.jsx(ke,{rows:p,agentId:s??null,sessionId:n??null}):!x&&S.length===0?t.jsx(je,{}):null]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Metadata"}),M.length>0?t.jsx(ke,{rows:M,agentId:s??null,sessionId:n??null}):C?null:t.jsx(je,{})]})]})}function En({conversationId:e,agentId:s,sessionId:n,invoke:a}){const{navigate:r}=Se(),[o,l]=h.useState(""),[c,u]=h.useState(!1),[b,m]=h.useState(null),[j,f]=h.useState(null),[i,d]=h.useState(()=>e?.trim()||null),g=h.useRef(null);h.useEffect(()=>{d(e?.trim()||null)},[e]);const O=s?.trim()||null,A=n?.trim()||null,I=!!(O&&A),B=!!(a?.projectPath&&a?.sessionId),$=!!(i||I||B),D=$&&o.trim().length>0&&!c,W=async()=>{const L=o.trim();if(!(!L||c)){if(!i&&!I&&!B){f("No writable session target is attached yet.");return}u(!0),m(null),f(null);try{if(i)await Ce("/api/send",{method:"POST",body:JSON.stringify({body:L,conversationId:i,intent:"steer"})}),l(""),m("Sent into this session."),g.current?.focus();else if(I){const p=(await Ks({agentId:O,sessionId:A,instructions:L})).conversationId?.trim();p&&d(p),l(""),m("Sent into this session."),g.current?.focus()}else{const p=(await Js({projectPath:a.projectPath,sessionId:a.sessionId,...a.harness?{harness:a.harness}:{},...a.model?{model:a.model}:{},...a.reasoningEffort?{reasoningEffort:a.reasoningEffort}:{},instructions:L})).conversationId?.trim();l(""),p?(d(p),m("Session invoked — opening conversation."),r({view:"conversation",conversationId:p})):(m("Session invoked."),g.current?.focus())}}catch(S){f(S instanceof Error?S.message:String(S))}finally{u(!1)}}};return t.jsx("div",{className:"s-observe-compose",children:t.jsx(Zs,{renderWhenEmbedded:!0,density:"panel",value:o,onChange:l,onSend:()=>{W()},sending:c,disabled:!$||c,canSend:D,placeholder:$?!i&&!I&&B?"Message this session to invoke it…":"Write into this session…":"This trace is read-only",textareaRef:g,rows:3,showAttach:$,onAttach:()=>g.current?.focus(),attachTitle:"Add context",attachAriaLabel:"Add context",sendTitle:"Send into this session (Cmd+Enter)",sendAriaLabel:"Send into this session",tools:$?j?t.jsx("span",{className:"s-observe-compose-status s-observe-compose-status--error",children:j}):b?t.jsx("span",{className:"s-observe-compose-status",children:b}):null:t.jsx("span",{className:"s-observe-compose-status s-observe-compose-status--muted",children:"No broker conversation or resumable agent session is attached to this trace."})})})}function Rn({data:e,agentId:s,sessionId:n,conversationId:a,observeSource:r,observeFidelity:o,originLabel:l,defaultPresentation:c="timeline",showRail:u=!0,variant:b="default",traceLimit:m,traceWindowMs:j,traceWindowLabel:f,nowMs:i,initialCursorT:d,focusEventId:g,inlineFocusEventId:O,inlineFocusContent:A,onLaneEventSelect:I,surface:B="scout",laneGutter:$,richSimpleTools:D,laneCollapseTechnicalEvents:W,onLaneCollapseTechnicalEventsChange:L,laneOperatorName:S}){const p=b==="lane",E=B==="scope",M=$??(E?"label-time":"time"),x=D??E,C=u&&!E,[N,T]=h.useState(()=>p||E?"timeline":c),k=!p&&!E&&N==="conversation",R=e??vs,{events:y}=R,v=r??(R.live?"live":"history"),z=os({source:v,fidelity:o??"timestamped",live:R.live,eventCount:y.length}),Q=R.metadata?.session?.sessionStart,[gs,js]=h.useState(Date.now),ee=typeof i=="number"?i:gs;h.useEffect(()=>{if(!p||typeof i=="number")return;const w=setInterval(()=>js(Date.now()),1e4);return()=>clearInterval(w)},[p,i]);const P=y.length>0?y[y.length-1].t+30:60,se=typeof d=="number"?Math.max(0,Math.min(P,d)):null,[ie,ce]=h.useState(()=>se??P),[ve,Y]=h.useState(!1),[ue,ks]=h.useState(1),[xe,X]=h.useState(se==null),Re=h.useRef(P),Pe=h.useRef(null),te=h.useMemo(()=>Nn(y,P),[y,P]);h.useEffect(()=>{se!=null&&(ce(se),X(!1),Y(!1))},[se,g]),h.useEffect(()=>{ce(w=>{const F=Re.current;Re.current=P;const H=He(w,F);return w>P||H&&xe?P:w})},[P,xe]),h.useEffect(()=>{if(!ve)return;const w=te.length>0?Math.max(220,700/ue):100,F=setInterval(()=>{ce(H=>{if(te.length>0){const he=ps(H,te,P);return he>=P?(X(!0),Y(!1),P):he}const me=H+ue;return me>=P?(X(!0),Y(!1),P):me})},w);return()=>clearInterval(F)},[ve,P,te,ue]);const ne=p&&!!(j&&j>0),ae=(()=>{let w=y.filter(F=>F.t<=ie);if(ne&&j){const F=As(w,Q,ee,j);w=F.length>=Be?F:w.slice(-Be)}else p&&m&&m>0&&(w=w.slice(-m));return w})(),Z=h.useMemo(()=>{if(!ne||!j)return null;const w=ae[0]?.id,F=w===void 0?Is(y,Q,ee,j):Math.max(0,y.findIndex(H=>H.id===w));return Bs(ae,Q,ee,j,F)},[y,ee,Q,j,ne,ae]);h.useLayoutEffect(()=>{if(p||!g)return;const w=Pe.current;if(!w)return;const F=w.querySelector('[data-focus-group="true"]')??w.querySelector(`[data-event-id="${g}"]`),H=F?.closest(".s-observe-main");if(F&&H){const me=H.getBoundingClientRect(),he=F.getBoundingClientRect(),$s=H.scrollTop+(he.top-me.top)-16;H.scrollTo({top:Math.max(0,$s),behavior:"instant"});return}F?.scrollIntoView({block:"start",behavior:"instant"})},[g,O,p,ae.length]);const de=He(ie,P)&&xe,ys=de?"tail":ve?"playing":"paused",Ns=h.useCallback(w=>{X(!1),Y(!1),ce(w)},[]),ws=h.useCallback(()=>{de?(X(!1),Y(!1)):(X(!1),Y(w=>!w))},[de]),G=R.metadata?.session,Oe=G?.threadPath??null,Cs=G?.model?.trim()||We(G?.adapterType)||"Agent",Ss=S??"You",Ae=n?.trim()||G?.externalSessionId?.trim()||null,Ie=We(G?.adapterType),Ts=!s&&G?.cwd&&Ae&&Ie?{projectPath:G.cwd,sessionId:Ae,harness:Ie,model:G.model,reasoningEffort:G.effort}:null;return t.jsxs("div",{ref:Pe,className:["s-observe",(!C||p)&&"s-observe--content-only",p&&"s-observe--lane",p&&M==="label-time"&&"s-observe--lane-gutter-label",k&&"s-observe--conversation",E&&"s-observe--scope"].filter(Boolean).join(" "),children:[t.jsxs("main",{className:"s-observe-main",children:[!p&&!E&&t.jsxs("div",{className:"s-observe-evidence-banner","data-tone":z.tone,children:[t.jsx("span",{className:"s-observe-evidence-dot","aria-hidden":"true"}),t.jsxs("span",{children:[t.jsx("strong",{children:l??z.label}),t.jsx("small",{children:l?`${z.label}. ${z.detail}`:z.detail})]}),!z.receiptOnly&&t.jsx(nn,{presentation:N,onChange:T})]}),Oe&&!p&&t.jsx(kn,{path:Oe,basePath:G?.cwd??null,agentId:s??null,sessionId:n??null}),!z.receiptOnly&&!E&&ne&&Z?t.jsxs("div",{className:"s-observe-lane-trace-meta",children:[t.jsxs("span",{className:"s-observe-lane-trace-meta-leading",children:[t.jsx("span",{className:"s-observe-lane-trace-meta-label",children:"Trace"}),t.jsx(an,{collapseTechnicalEvents:!!W,onChange:L})]}),t.jsxs("span",{className:"s-observe-lane-trace-meta-stats",children:[t.jsxs("span",{className:"s-observe-lane-trace-meta-window",children:["last ",f??_e(j??0)]}),t.jsx("span",{className:"s-observe-lane-trace-meta-sep","aria-hidden":"true",children:"·"}),t.jsxs("span",{children:[Z.eventCount," event",Z.eventCount===1?"":"s"]}),Z.spanMs>0?t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-observe-lane-trace-meta-sep","aria-hidden":"true",children:"·"}),t.jsxs("span",{children:[_e(Z.spanMs)," span"]})]}):null,Z.truncatedBefore?t.jsx("span",{className:"s-observe-lane-trace-meta-tag",title:"Earlier activity in this window may not be loaded",children:"partial"}):null]})]}):null,z.receiptOnly?t.jsx(et,{events:y}):t.jsx(xn,{events:ae,followEnd:de,laneMode:p,conversationMode:k,sessionStartMs:Q,nowMs:ee,preferWallAge:ne,focusEventId:g,inlineFocusEventId:O,inlineFocusContent:A,onLaneEventSelect:I,laneGutter:M,richSimpleTools:x,collapseTechnicalEvents:k||p&&!!W,laneOperatorName:k?Ss:S,conversationAssistantName:Cs})]}),C&&!p&&t.jsx(xs,{data:R,agentId:s,sessionId:n,cursor:ie,duration:P,observeSource:r,observeFidelity:o}),!E&&!p&&t.jsxs("footer",{className:"s-observe-scrubber",children:[k?null:z.replayable?t.jsx(Tn,{events:y,duration:P,cursor:ie,mode:ys,speed:ue,snapTimes:te,onCursor:Ns,onPlayToggle:ws,onSpeedChange:ks}):t.jsxs("div",{className:"s-observe-static-evidence",children:[t.jsx("span",{className:"s-observe-evidence-dot","aria-hidden":"true"}),t.jsx("span",{children:z.label}),t.jsx("small",{children:"No timestamped replay is available."})]}),t.jsx(En,{conversationId:a,agentId:s,sessionId:n,invoke:Ts})]})]})}const ca=Object.freeze(Object.defineProperty({__proto__:null,SessionObserve:Rn,SessionObserveContextRail:xs},Symbol.toStringTag,{value:"Module"}));export{Rn as S,xs as a,ca as b,os as d,ia as h};
9
+ `:null]},a)})})}function Wt(e){const s=(e??"").toLowerCase();return s==="shell"?"bash":s}function zt(e){const s=e.arg?.trim();if(!(!s||s==="started"||s==="completed"))return s}const Mt={bash:["bash","shell","terminal","exec","run","command","exec_command","shell_command","local_shell","container_exec","container.exec"],read:["read","view","cat","readfile","open","open_file"],file:["write","writefile","create","edit","multiedit","str_replace","strreplace","str_replace_editor","apply_patch","applypatch","patch","patch_apply","update","delete"],search:["grep","glob","search","rg","ripgrep","find","codebase_search","file_search"],fetch:["webfetch","web_fetch","fetch","websearch","web_search","browse","url"],agent:["agent","task","dispatch","subagent"],generic:[]},Ht={bash:"$",read:"◎",file:"✎",search:"⌕",fetch:"⤓",agent:"◇",generic:"▸"};function Gt(e){const s=(e??"").trim().toLowerCase();if(!s)return"generic";for(const n of["bash","read","file","search","fetch","agent"])if(Mt[n].includes(s))return n;return"generic"}function ds(e){return!e||e==="started"||e==="completed"}function qt(e){const s=e.trim().replace(/\/+$/u,""),n=s.lastIndexOf("/");return n<0?{dir:"",base:s}:{dir:s.slice(0,n+1),base:s.slice(n+1)}}function Ut(e,s=2){const n=e.split("/").filter(Boolean);return n.length===0?"":n.length<=s?`${n.join("/")}/`:`…/${n.slice(-s).join("/")}/`}function Vt(e){if(!e)return null;for(const s of["matches","count","results","hits"]){const n=e[s];if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"&&/^\d+$/u.test(n.trim()))return Number(n.trim())}return null}function Kt(e){try{const s=new URL(e);return{host:s.host,path:s.pathname+s.search}}catch{return{host:e,path:""}}}function Jt(e){return e.length>=3&&/^(?:ba|z)?sh$/u.test(e[0])&&/^-[a-z]*c$/u.test(e[1])?e.slice(2).join(" "):e.join(" ")}function oe(e,s){const n=e.trim();if(!n.startsWith("{")&&!n.startsWith("["))return null;try{const a=JSON.parse(n);if(a&&typeof a=="object"&&!Array.isArray(a)){const r=a;for(const o of s){const l=r[o];if(typeof l=="string"&&l.trim())return l;if(Array.isArray(l)&&l.every(c=>typeof c=="string"))return Jt(l)}}}catch{}for(const a of s){const r=n.match(new RegExp(`"${a}"\\s*:\\s*"((?:[^"\\\\]|\\\\.)*)`,"u"));if(r?.[1])try{return JSON.parse(`"${r[1]}"`)}catch{return r[1]}}return null}function ms(e){const s=e.match(/\*\*\*\s+(?:Update|Add|Delete|Move|Rename)\s+File:\s*(.+)/u);return s&&s[1].trim().split(/\s*(?:->|=>)\s*/u)[0]?.trim()||null}function hs(e,s){const n=s?.trim();if(!n)return"";switch(e){case"bash":return oe(n,["cmd","command","script","input","code"])??n;case"file":return n.includes("*** ")?ms(n)??n:oe(n,["file_path","path","filename","file"])??n;case"read":return oe(n,["file_path","path","filename","file"])??n;case"search":return oe(n,["pattern","query","glob","regex","q","search"])??n;case"fetch":return oe(n,["url","href","uri"])??n;default:return n}}function Ue({path:e,tone:s}){const n=Rs(e),{dir:a,base:r}=qt(n);return t.jsxs("span",{className:"s-observe-tool-path",title:e,children:[a&&t.jsx("span",{className:"s-observe-tool-path-dir",children:Ut(a)}),t.jsx("span",{className:`s-observe-tool-path-base s-observe-tool-path-base--${s}`,children:r})]})}function Yt({path:e}){const s=e.lastIndexOf("/"),n=s>=0?e.slice(0,s+1):"",a=s>=0?e.slice(s+1):e;return t.jsxs("span",{className:"s-observe-bash-dir",children:[n&&t.jsx("span",{className:"s-observe-bash-dir-prefix",children:n}),a]})}function Xt({command:e,title:s,outcome:n,outputPreview:a,cwd:r,powerline:o}){const{dir:l,spans:c}=Ne(e,{cwd:r,powerline:o});return t.jsxs("span",{className:"s-observe-bash",title:s??e,children:[l&&t.jsxs("span",{className:"s-observe-bash-pl",children:[t.jsx("span",{className:"s-observe-bash-seg",children:l}),t.jsx("span",{className:"s-observe-bash-sep","aria-hidden":!0})]}),t.jsx("span",{className:"s-observe-bash-prompt","aria-hidden":!0,children:"❯"}),c.length>0?t.jsx("span",{className:"s-observe-bash-cmd",children:c.map((u,b)=>{const m=b>0?" ":"";return u.tier==="dir"?t.jsxs("span",{children:[m,t.jsx(Yt,{path:u.text})]},b):t.jsxs("span",{className:`s-observe-bash-${u.tier}${u.known?" s-observe-bash-prog--known":""}${u.flag?" s-observe-bash-flag":""}`,children:[m,u.text]},b)})}):!l&&t.jsx("span",{className:"s-observe-bash-arg",children:"shell"}),a&&t.jsxs("span",{className:"s-observe-bash-out",title:a,children:[" → ",Ze(a,88)]}),n&&t.jsx("span",{className:"s-observe-bash-ok",children:n})]})}function Zt({family:e,event:s}){const n=hs(e,s.arg),a=n.startsWith("{")||n.startsWith("["),r=!!n&&!ds(n)&&!a;switch(e){case"read":return r?t.jsx(Ue,{path:n,tone:"read"}):t.jsx("span",{className:"s-observe-tool-cmd-name",children:"read"});case"file":{const o=r&&n!=="patch"?n:ms(s.detail??"")??"";return o?t.jsx(Ue,{path:o,tone:"file"}):t.jsx("span",{className:"s-observe-tool-cmd-name",children:s.tool??"edit"})}case"search":{if(!r)return t.jsx("span",{className:"s-observe-tool-cmd-name",children:"search"});const o=Vt(s.result);return t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:"s-observe-tool-needle",children:[t.jsx("span",{className:"s-observe-tool-needle-q",children:'"'}),n,t.jsx("span",{className:"s-observe-tool-needle-q",children:'"'})]}),o!=null&&t.jsxs("span",{className:"s-observe-tool-count",children:["· ",o," ",o===1?"match":"matches"]})]})}case"fetch":{if(!r)return t.jsx("span",{className:"s-observe-tool-cmd-name",children:"fetch"});const{host:o,path:l}=Kt(n);return t.jsxs("span",{className:"s-observe-tool-url",title:n,children:[t.jsx("span",{className:"s-observe-tool-host",children:o}),l&&l!=="/"&&t.jsx("span",{className:"s-observe-tool-host-path",children:Ze(l,40)})]})}case"agent":return t.jsx("span",{className:"s-observe-tool-agent-name",children:r?n:s.tool??"agent"});default:return t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-observe-tool-cmd-name",children:s.tool}),r?t.jsxs(t.Fragment,{children:[" ",t.jsx("span",{className:"s-observe-tool-cmd-arg",children:n})]}):null]})}}function Qt({event:e,laneMode:s=!1,simple:n=!1,wallLabel:a,wallTitle:r}){const[o,l]=h.useState(!1),c=Gt(e.tool),u=s?Ht[c]:$t[Wt(e.tool)]??"▸",b=s&&c==="bash",m=b?hs("bash",e.arg):"",j=!!m&&!ds(m)&&!m.startsWith("{")&&!m.startsWith("["),f=b&&!n,i=j?Ne(m).spans.find(S=>S.tier==="prog")?.text??m:"",g=zt(e)??e.arg?.trim()??"",O=typeof e.result?.outcome=="string"?e.result.outcome.trim():typeof e.result?.outcome=="number"?String(e.result.outcome):void 0,A=s?void 0:e.stream?.[0]?.trim()||void 0,B=!!(O&&O!=="success"),I=!!(B||e.diff||e.stream),$=!s&&(I||we(g,120,2)),D=!$||o,W=!s&&$&&!o&&e.stream?Xe(e.stream.join(`
10
+ `),180,2):null;return t.jsxs("div",{className:`s-observe-tool s-observe-block${s?` s-observe-tool--lane s-observe-tool--fam-${c}`:""}${s&&n?" s-observe-tool--simple":""}`,children:[t.jsxs("div",{className:`s-observe-tool-header${I&&!s?" s-observe-tool-header--has-body":""}`,children:[(!b||n)&&t.jsx("span",{className:"s-observe-tool-glyph",children:u}),t.jsxs("span",{className:"s-observe-tool-cmd",title:s&&!f?b&&j?m:`${e.tool??""} ${g}`.trim()||void 0:void 0,children:[f?t.jsx(Xt,{command:j?m:"",title:j?m:void 0,outputPreview:A}):b&&n?t.jsx("span",{className:"s-observe-tool-cmd-name",children:i||"shell"}):s?t.jsx(Zt,{family:c,event:e}):t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-observe-tool-cmd-name",children:e.tool}),g?t.jsxs(t.Fragment,{children:[" ",t.jsx("span",{className:"s-observe-tool-cmd-arg",children:g})]}):null]}),O==="success"&&t.jsx("span",{className:"s-observe-tool-outcome s-observe-tool-outcome--success",children:"ok"}),!s&&e.diff&&t.jsxs("span",{className:"s-observe-tool-diff-inline","aria-label":`${e.diff.add} additions, ${e.diff.del} deletions`,children:[t.jsxs("span",{className:"s-observe-tool-diff-add",children:["+",e.diff.add]}),t.jsxs("span",{className:"s-observe-tool-diff-del",children:["−",e.diff.del]})]})]}),$&&t.jsx(cs,{expanded:o,onToggle:()=>l(S=>!S),label:e.stream?"output":"details"})]}),W&&t.jsx("pre",{className:"s-observe-tool-stream-preview",children:W}),B&&(s||D)&&e.result&&t.jsx("div",{className:"s-observe-tool-result",children:Object.entries(e.result).map(([S,p])=>`${S}: ${p}`).join(" · ")}),!s&&e.diff&&D&&t.jsxs("div",{className:"s-observe-tool-diff",children:[t.jsxs("div",{className:"s-observe-tool-diff-stats",children:[t.jsxs("span",{className:"s-observe-tool-diff-add",children:["+",e.diff.add]}),e.diff.del>0&&t.jsxs(t.Fragment,{children:[" ",t.jsxs("span",{className:"s-observe-tool-diff-del",children:["−",e.diff.del]})]})]}),t.jsx(Dt,{preview:e.diff.preview})]}),!s&&e.stream&&D&&t.jsx("pre",{className:"s-observe-tool-stream",children:e.stream.join(`
11
+ `)}),!s&&t.jsx(J,{text:_t(e),label:"Copy tool call"})]})}function en({event:e,laneMode:s=!1,conversationMode:n=!1,operatorName:a="you",wallLabel:r,wallTitle:o}){const l=Ws(e),c=l.preview===l.title?"":l.preview,u=s||n,b=(a.trim()[0]??"y").toUpperCase();return t.jsxs("div",{className:["s-observe-ask","s-observe-block",s&&"s-observe-ask--lane",n&&"s-observe-ask--conversation"].filter(Boolean).join(" "),children:[u?t.jsxs("div",{className:"s-observe-ask-head",children:[t.jsx("span",{className:"s-observe-ask-avatar",style:{background:Ms(a)},"aria-hidden":"true",children:b}),t.jsx("span",{className:"s-observe-ask-author",children:a}),r?t.jsx("span",{className:"s-observe-ask-time",title:o,children:r}):null]}):t.jsx("div",{className:"s-observe-ask-label",children:l.label}),l.contextTags.length>0&&t.jsx("div",{className:"s-observe-ask-tags","aria-label":"Attached context",children:l.contextTags.map(m=>t.jsxs("span",{className:"s-observe-ask-tag",title:m.raw,children:[t.jsx(lt,{size:10,strokeWidth:2,"aria-hidden":"true"}),t.jsx("span",{className:"s-observe-ask-tag-name",children:zs(m.name)}),m.detail?t.jsx("span",{className:"s-observe-ask-tag-detail",children:m.detail}):null]},m.name))}),t.jsx("div",{className:"s-observe-ask-title",children:l.title}),c?t.jsx(us,{text:c,className:"s-observe-ask-text",laneMode:s,live:e.live,renderCollapsed:m=>Qe(m),renderExpanded:m=>t.jsx(ss,{text:m})}):e.live?t.jsx("span",{className:"s-observe-cursor"}):null,l.answer&&(!s&&!n||we(l.answer.text))&&t.jsxs("div",{className:"s-observe-ask-answer",children:[t.jsxs("span",{className:"s-observe-ask-answer-meta",children:["↳ ",l.answer.label]}),t.jsx("div",{className:"s-observe-ask-answer-text",children:l.answer.text})]}),!s&&!n&&t.jsx(J,{text:l.copyText,label:"Copy request"})]})}function sn(e){const s=e.to?.trim();return s?s==="human"?"→ you":`→ ${s}`:null}function fs(e){return e.kind==="message"&&(e.text??"").trim().toLowerCase()==="[thinking]"}function tn({event:e,laneMode:s=!1,conversationMode:n=!1,assistantName:a}){const r=e.text??"",o=(s||n)&&fs(e),l=o?"Thinking...":r,c=o?"Agent thinking":n?a?.trim()||"Agent":sn(e);return t.jsxs("div",{className:["s-observe-block",s&&"s-observe-message--lane",n&&"s-observe-message--conversation",o&&"s-observe-message--thinking",e.live&&"s-observe-message--streaming"].filter(Boolean).join(" "),"aria-busy":e.live||void 0,children:[c?t.jsx("div",{className:"s-observe-message-label",children:c}):null,t.jsx(us,{text:l,className:"s-observe-message-text",laneMode:s||n,live:e.live,renderCollapsed:u=>Qe(u),renderExpanded:u=>t.jsx(ss,{text:u})}),!s&&!n&&t.jsx(J,{text:r,label:"Copy message"})]})}function nn({summary:e,expanded:s=!1,onToggle:n}){const a=e.totalCount===1?"technical event":"technical events",r=t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:"s-observe-tech-summary-count",children:[e.totalCount," ",a]}),e.labels.length>0?t.jsx("span",{className:"s-observe-tech-summary-detail",children:e.labels.join(" · ")}):null,n?s?t.jsx(ts,{size:12,strokeWidth:1.8,className:"s-observe-tech-summary-chevron","aria-hidden":!0}):t.jsx(ns,{size:12,strokeWidth:1.8,className:"s-observe-tech-summary-chevron","aria-hidden":!0}):null]});return n?t.jsx("button",{type:"button",className:`s-observe-tech-summary s-observe-tech-summary--toggle s-observe-block s-observe-block--inline${s?" is-expanded":""}`,onClick:o=>{o.stopPropagation(),n()},"aria-expanded":s,"aria-label":s?`Collapse ${e.totalCount} ${a}`:`Expand ${e.totalCount} ${a}`,children:r}):t.jsx("div",{className:"s-observe-tech-summary s-observe-block s-observe-block--inline",children:r})}function an({presentation:e,onChange:s}){return t.jsxs("div",{className:"s-observe-presentation-toggle",role:"group","aria-label":"Session presentation",children:[t.jsx("button",{type:"button",className:"s-observe-presentation-toggle-btn","aria-pressed":e==="conversation",onClick:()=>s("conversation"),children:"Conversation"}),t.jsx("button",{type:"button",className:"s-observe-presentation-toggle-btn","aria-pressed":e==="timeline",onClick:()=>s("timeline"),children:"Trace"})]})}function rn({collapseTechnicalEvents:e,onChange:s}){if(!s)return null;const n=e?"Concise":"Details",a=e?"Show detailed trace events":"Show concise trace summaries",r=e?tt:nt;return t.jsxs("label",{className:`s-observe-lane-trace-mode${e?" s-observe-lane-trace-mode--concise":" s-observe-lane-trace-mode--details"}`,title:a,children:[t.jsx("input",{type:"checkbox",checked:e,onChange:o=>s(o.currentTarget.checked),"aria-label":a}),t.jsx(r,{size:12,strokeWidth:1.8,"aria-hidden":"true"}),t.jsx("span",{children:n})]})}function on(e,s){return e?.trim()?s?!/^[a-z0-9._-]+ · [a-z0-9._-]+$/i.test(e.trim()):!0:!1}const ln={turn_ended:"Turn complete",turn_started:"Turn started"};function cn(e){const s=e.trim(),a=s.match(/^\[(.+)\]$/)?.[1]??s;return ln[a]??a.replace(/_/g," ")}function un({turn:e,model:s}){return t.jsxs("div",{className:"s-observe-grok-turn s-observe-block s-observe-block--inline",children:[t.jsxs("span",{className:"s-observe-grok-turn-num",children:["turn ",e]}),s?t.jsx("span",{className:"s-observe-grok-turn-model",children:s}):null]})}function dn({tool:e,decision:s}){return t.jsxs("div",{className:"s-observe-grok-permission s-observe-block s-observe-block--inline",children:[t.jsx("span",{className:`s-observe-grok-permission-decision is-${s}`,children:s}),t.jsx("span",{className:"s-observe-grok-permission-tool",children:e})]})}function mn({phase:e}){return t.jsx("div",{className:"s-observe-grok-phase s-observe-block s-observe-block--inline",children:t.jsx("span",{className:"s-observe-grok-phase-label",children:Es(e)})})}function hn({event:e,laneMode:s=!1}){if(s){const n=Ye(e.text??"");return n?.kind==="turn"&&typeof n.turn=="number"?t.jsx(un,{turn:n.turn,model:n.model}):t.jsx("div",{className:"s-observe-note s-observe-block s-observe-block--inline s-observe-note--lane",children:t.jsx("span",{className:"s-observe-note-text",children:cn(e.text)})})}return t.jsxs("div",{className:"s-observe-note s-observe-block s-observe-block--inline",children:[t.jsx("span",{className:"s-observe-note-icon","aria-hidden":"true",children:"✓"}),t.jsx("span",{className:"s-observe-note-text",children:e.text}),t.jsx(J,{text:e.text??"",label:"Copy note"})]})}function fn({event:e,laneMode:s=!1}){const n=s?Ye(e.text??""):null;if(n?.kind==="permission"&&n.tool&&n.decision)return t.jsx(dn,{tool:n.tool,decision:n.decision});if(n?.kind==="phase"&&n.phase)return t.jsx(mn,{phase:n.phase});const a=on(e.detail,s),r=a&&e.detail?`${e.text}
12
+ ${e.detail}`:e.text??"";return t.jsxs("div",{className:`s-observe-system s-observe-block${s?" s-observe-system--lane":""}`,children:[t.jsxs("div",{className:"s-observe-system-line",children:[!s&&t.jsx("span",{className:"s-observe-system-arrow","aria-hidden":"true",children:"▸ "}),t.jsx("span",{className:"s-observe-system-text",children:e.text})]}),a&&e.detail&&t.jsx("div",{className:"s-observe-system-detail",children:e.detail}),t.jsx(J,{text:r,label:"Copy system event"})]})}const bn={think:"think",tool:"tool",ask:"ask",message:"message",note:"note",system:"system",boot:"boot"};function pn(e){const s=Ls(e);return s||(e.kind==="tool"?e.tool==="res"?"result":e.tool?.trim()||"tool":bn[e.kind]??e.kind)}function Ve(e){return!!e?.closest("button, a, input, textarea, select, [role='slider'], [contenteditable='true']")}function vn({event:e,prevT:s,prevWallMs:n,laneMode:a=!1,conversationMode:r=!1,entering:o=!1,repeatCount:l=1,sessionStartMs:c,nowMs:u=Date.now(),preferWallAge:b=!1,highlighted:m=!1,focusAnchor:j=!1,simpleTool:f=!1,stackedTool:i=!1,laneGutter:d="time",laneOperatorName:g,conversationAssistantName:O,onLaneEventSelect:A,laneToolHover:B,hoverPreviewActive:I=!1,technicalSummary:$,technicalExpanded:D=!1,onTechnicalToggle:W}){const L=e.t-s,S=$?"var(--dim)":ls[e.kind]??"var(--dim)",p=a||r?Ot(e,c,u,b):At(e,c),E=pe(e,c),M=b&&typeof n=="number"&&E!==null?Ds(E-n):null,x=!b&&L>15?`${Pt(L)} gap`:null,C=M??x,N=a&&!!A&&!$,T=["s-observe-row",`s-observe-row--kind-${e.kind}`,o?"s-observe-row--enter":"",N?"s-observe-row--selectable":"",m?"s-observe-row--highlighted":"",j?"s-observe-row--focus-anchor":"",f?"s-observe-row--tool-simple":"",i?"s-observe-row--tool-stacked":"",I?"s-observe-row--hover-preview":"",$?"s-observe-row--tech-summary":""].filter(Boolean).join(" "),k=t.jsxs(t.Fragment,{children:[C?t.jsx("div",{className:"s-observe-row-gap",children:C}):null,t.jsxs("div",{className:"s-observe-row-time",title:p.title,children:[d==="label-time"&&!i?t.jsx("span",{className:"s-observe-row-kind",children:pn(e)}):null,t.jsx("span",{className:"s-observe-row-clock",children:p.label}),l>1&&t.jsxs("span",{className:"s-observe-row-repeat",title:`${l} similar events merged`,children:["×",l]})]}),t.jsx("span",{className:"s-observe-row-bead",style:{background:S}}),$?t.jsx(nn,{summary:$,expanded:D,onToggle:W}):t.jsxs(t.Fragment,{children:[e.kind==="think"&&t.jsx(Ft,{event:e,laneMode:a}),e.kind==="tool"&&t.jsx(Qt,{event:e,laneMode:a,simple:f,wallLabel:f?p.label:void 0,wallTitle:f?p.title:void 0}),e.kind==="ask"&&t.jsx(en,{event:e,laneMode:a,conversationMode:r,operatorName:g??(r?"You":void 0),wallLabel:a||r?p.label:void 0,wallTitle:a||r?p.title:void 0}),e.kind==="message"&&t.jsx(tn,{event:e,laneMode:a,conversationMode:r,assistantName:O}),e.kind==="note"&&t.jsx(hn,{event:e,laneMode:a}),(e.kind==="system"||e.kind==="boot")&&t.jsx(fn,{event:e,laneMode:a})]})]}),R=a&&e.kind==="tool"&&B?B(e,{wallLabel:p.label,wallTitle:p.title,sessionOffset:Ps(e.t)}):null,y=R?t.jsx("div",{ref:R.ref,className:"s-observe-row-hover-target",onMouseEnter:R.onMouseEnter,onMouseLeave:R.onMouseLeave,onFocus:R.onFocus,onBlur:R.onBlur,children:k}):k;return t.jsx("div",{className:T,"data-event-id":e.id,onClick:N?v=>{Ve(v.target)||A?.(e)}:void 0,onKeyDown:N?v=>{v.key!=="Enter"&&v.key!==" "||Ve(v.target)||(v.preventDefault(),A?.(e))}:void 0,role:N?"button":void 0,tabIndex:N?0:void 0,"aria-label":N?e.kind==="tool"?"Open command detail at this step":"Open session detail at this step":void 0,children:y})}function xn(e,s){if(!e)return;const n=e.closest(".s-observe-main");if(n){const a=n.scrollHeight-n.clientHeight;n.scrollTo({top:a,left:n.scrollLeft,behavior:s});return}e.scrollIntoView({behavior:s,block:"end",inline:"nearest"})}function gn({events:e,followEnd:s,laneMode:n=!1,conversationMode:a=!1,sessionStartMs:r,nowMs:o=Date.now(),preferWallAge:l=!1,focusEventId:c,inlineFocusEventId:u,inlineFocusContent:b,onLaneEventSelect:m,laneGutter:j="time",richSimpleTools:f=!1,collapseTechnicalEvents:i=!1,laneOperatorName:d,conversationAssistantName:g}){const O=h.useRef(null),A=h.useRef(s),B=h.useRef(new Set),I=h.useRef(!1),[$,D]=h.useState(()=>new Set),[W,L]=h.useState(()=>new Set),S=h.useCallback(x=>{L(C=>{const N=new Set(C);return N.has(x)?N.delete(x):N.add(x),N})},[]);h.useEffect(()=>{i||L(new Set)},[i]);const p=h.useMemo(()=>{const x=n||a,C=x?wt(e):e.map(T=>({event:T,repeatCount:1}));if(!x)return C;const N=C.filter(T=>T.event.live||!fs(T.event));return i?Nt(N):N},[e,n,a,i]);h.useEffect(()=>{if(!n){I.current=!0;return}const x=B.current;if(!I.current){for(const k of p)x.add(k.event.id);I.current=!0;return}const C=[];for(const k of p)x.has(k.event.id)||(x.add(k.event.id),C.push(k.event.id));if(C.length===0)return;const N=new Set(C);D(N);const T=window.setTimeout(()=>{D(new Set)},380);return()=>window.clearTimeout(T)},[p,s,n]),h.useLayoutEffect(()=>{if(!s){A.current=!1;return}const x=!A.current;A.current=!0,xn(O.current,n||x?"instant":"smooth")},[p.length,s,n]);const E=Os(n),M=(x,C,N,T={})=>{const k=N?.event??null,R=k?pe(k,r):null,y=n&&!x.technicalSummary&&!f&&Me(x.event),v=y&&k!=null&&!N?.technicalSummary&&Me(k),q=!T.suppressInlineFocus&&u===x.event.id&&!!b,z=t.jsx(vn,{event:x.event,prevT:k?.t??0,prevWallMs:R,laneMode:n,conversationMode:a,simpleTool:y,stackedTool:v,laneGutter:j,entering:n&&$.has(x.event.id),repeatCount:x.repeatCount,sessionStartMs:r,nowMs:o,preferWallAge:l,highlighted:!n&&!a&&c===x.event.id,focusAnchor:q,laneOperatorName:d,conversationAssistantName:g,onLaneEventSelect:m,laneToolHover:n?E.bind:void 0,hoverPreviewActive:n&&E.hoveredEventId===x.event.id,technicalSummary:x.technicalSummary,technicalExpanded:T.technicalExpanded,onTechnicalToggle:T.onTechnicalToggle});return t.jsxs("div",{className:`s-observe-focus-group${q?" s-observe-focus-group--active":""}`,"data-focus-group":q?"true":void 0,children:[z,q?t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"s-observe-focus-connector","aria-hidden":!0}),t.jsx("div",{className:"s-observe-focus-detail",children:b})]}):null]},`${x.event.id}:${x.repeatCount}:${C}${T.keySuffix??""}`)};return t.jsxs("div",{className:"s-observe-stream",children:[!a&&t.jsx("div",{className:"s-observe-spine"}),p.map((x,C)=>{const N=C>0?p[C-1]:null,T=x.technicalSourceRows,k=!!(x.technicalSummary&&T&&T.length>0),R=k&&W.has(x.event.id);return k&&R?t.jsxs("div",{className:"s-observe-tech-rollup s-observe-tech-rollup--expanded",children:[M(x,C,N,{technicalExpanded:!0,onTechnicalToggle:()=>S(x.event.id),suppressInlineFocus:!0}),t.jsx("div",{className:"s-observe-tech-rollup-details",children:T.map((y,v)=>{const q=v>0?T[v-1]:null;return M(y,v,q,{keySuffix:`:rollup:${x.event.id}:detail`,suppressInlineFocus:!0})})})]},`${x.event.id}:${x.repeatCount}:${C}:rollup`):M(x,C,N,{onTechnicalToggle:k?()=>S(x.event.id):void 0})}),t.jsx("div",{ref:O}),E.card]})}function jn({data:e,cursor:s}){const r=e.length;if(r<2)return null;const o=276/(r-1),l=e.map((u,b)=>`${b===0?"M":"L"} ${(b*o).toFixed(1)} ${((1-u)*44).toFixed(1)}`).join(" "),c=s*276;return t.jsxs("svg",{viewBox:"0 0 276 44",style:{width:"100%",height:44,display:"block"},children:[t.jsx("defs",{children:t.jsxs("linearGradient",{id:"observeCtxFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[t.jsx("stop",{offset:"0%",stopColor:"var(--accent)",stopOpacity:.25}),t.jsx("stop",{offset:"100%",stopColor:"var(--accent)",stopOpacity:0})]})}),t.jsx("path",{d:`${l} L 276 44 L 0 44 Z`,fill:"url(#observeCtxFill)"}),t.jsx("path",{d:l,fill:"none",stroke:"var(--accent)",strokeWidth:1.2}),t.jsx("line",{x1:c,y1:0,x2:c,y2:44,stroke:"var(--accent)",strokeWidth:1,opacity:.6,strokeDasharray:"2 3"})]})}function kn({state:e}){const s=e==="created"?"var(--green)":e==="modified"?"var(--accent)":"var(--dim)",n=e==="created"?"+":e==="modified"?"~":"◎";return t.jsx("span",{className:"s-observe-file-glyph",style:{background:"color-mix(in srgb, var(--bg) 70%, black)",border:`1px solid color-mix(in srgb, ${s} 40%, var(--border))`,color:s},children:n})}function U({label:e,value:s,detail:n}){const a=s==="0"||s==="—"||s==="";return t.jsxs("div",{className:`s-observe-stat${a?" s-observe-stat--quiet":""}`,children:[t.jsx("div",{className:"s-observe-stat-value",children:s}),t.jsx("div",{className:"s-observe-stat-label",children:e}),n&&t.jsx("div",{className:"s-observe-stat-detail",children:n})]})}function je({children:e="Not captured for this session"}){return t.jsx("div",{className:"s-observe-empty",children:e})}function Ee({path:e,basePath:s,agentId:n,sessionId:a,className:r,children:o}){const{openFilePreview:l}=Se(),c=e.startsWith("/")||e.startsWith("~/")?e:s?`${s.replace(/\/$/,"")}/${e}`:e;return t.jsxs("span",{className:"s-observe-path-link-group",children:[t.jsx("button",{type:"button",className:r,title:`Preview ${e} in Scout`,onClick:()=>l(c),children:o}),t.jsx("button",{type:"button",className:"s-observe-path-link-external",title:`Reveal ${e} in OS`,"aria-label":"Reveal in OS",onClick:()=>It({path:e,basePath:s,agentId:n,sessionId:a}),children:t.jsx(at,{size:11,strokeWidth:1.6})})]})}function yn({path:e,basePath:s,agentId:n,sessionId:a}){return t.jsxs("div",{className:"s-observe-source",children:[t.jsx("span",{className:"s-observe-source-label",children:"Source"}),t.jsx(Ee,{path:e,basePath:s,agentId:n,sessionId:a,className:"s-observe-source-link",children:ye(e)})]})}function ke({rows:e,agentId:s,sessionId:n}){return e.length===0?null:t.jsx("div",{className:"s-observe-detail-list",children:e.map(a=>{const r=`s-observe-detail-value s-observe-detail-value--${a.tone??"default"}${a.wrap?" s-observe-detail-value--wrap":""}`,o=a.display??a.value;return t.jsxs("div",{className:"s-observe-detail-row",children:[t.jsx("div",{className:"s-observe-detail-label",children:a.label}),t.jsxs("div",{className:"s-observe-detail-value-wrap",children:[a.actionPath?t.jsx(Ee,{path:a.actionPath,basePath:a.actionBasePath,agentId:s,sessionId:n,className:`${r} s-observe-detail-link`,children:o}):t.jsx("div",{className:r,title:a.title??(o!==a.value?a.value:void 0),children:o}),t.jsx(J,{text:a.actionPath??a.value,label:`Copy ${a.label.toLowerCase()}`,className:"s-observe-copy-btn--inline"})]})]},a.label)})})}function Nn({events:e,duration:s,cursor:n,onCursor:a,snapTimes:r=[]}){const o=h.useRef(null),l=h.useMemo(()=>Sn(e,s,48),[e,s]),c=l.some(f=>f.count>0),u=l.reduce((f,i)=>f+i.count,0),b=c?`${u} message turn anchors. Click the timeline or use arrow keys to snap between turns.`:"Session timeline",m=h.useCallback(f=>{const i=o.current.getBoundingClientRect(),d=f.clientX-i.left,g=Math.max(0,Math.min(s,d/i.width*s));a(Ke(g,s,r))},[s,a,r]),j=h.useCallback(f=>{if(s<=0)return;const i=s*.01,d=s*.05;let g=n;switch(f.key){case"ArrowLeft":g=r.length?Cn(n,r):n-(f.shiftKey?d:i);break;case"ArrowRight":g=r.length?ps(n,r,s):n+(f.shiftKey?d:i);break;case"PageDown":g=n-d;break;case"PageUp":g=n+d;break;case"Home":g=0;break;case"End":g=s;break;default:return}f.preventDefault(),a(r.length&&(f.key==="PageDown"||f.key==="PageUp")?Ke(g,s,r):Math.max(0,Math.min(s,g)))},[n,s,a,r]);return t.jsxs("div",{className:"s-observe-track-wrap",title:b,children:[c?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"s-observe-track-barsHead","aria-hidden":!0,children:[t.jsx("span",{children:"Turns"}),t.jsx("span",{children:u})]}),t.jsx("div",{className:"s-observe-track-bars","aria-hidden":!0,children:l.map(f=>t.jsx("span",{className:"s-observe-track-bar","data-active":f.start<=n||void 0,style:{height:`${Tn(f.count,l)}%`}},f.index))})]}):null,t.jsxs("div",{ref:o,className:"s-observe-track",onClick:m,onKeyDown:j,role:"slider",tabIndex:s>0?0:-1,"aria-label":"Session timeline","aria-valuemin":0,"aria-valuemax":s,"aria-valuenow":Math.max(0,Math.min(s,n)),children:[e.map(f=>{const i=f.kind==="tool"?6:f.kind==="think"?4:5;return t.jsx("span",{className:"s-observe-track-tick",style:{left:`${s>0?f.t/s*100:0}%`,top:i===6?-2:-1,height:i,background:ls[f.kind]??"var(--dim)"}},f.id)}),t.jsx("div",{className:"s-observe-track-played",style:{width:`${s>0?n/s*100:0}%`}}),t.jsx("span",{className:"s-observe-track-cursor",style:{left:`${s>0?n/s*100:0}%`}})]})]})}function bs(e){return e.kind==="message"||e.kind==="ask"}function wn(e,s){const n=e.filter(bs).map(a=>Math.max(0,Math.min(s,a.t))).sort((a,r)=>a-r);return Array.from(new Set(n))}function Ke(e,s,n){const a=Math.max(0,Math.min(s,e));if(n.length===0)return a;let r=n[0],o=Math.abs(r-a);for(const l of n){const c=Math.abs(l-a);c<o&&(r=l,o=c)}return r}function ps(e,s,n){return s.find(r=>r>e+.01)??n}function Cn(e,s){for(let n=s.length-1;n>=0;n-=1){const a=s[n];if(a<e-.01)return a}return 0}function Sn(e,s,n){const a=Math.max(1,s),r=Array.from({length:n},(o,l)=>({index:l,count:0,start:l/n*a}));for(const o of e){if(!bs(o))continue;const l=Math.min(n-1,Math.max(0,Math.floor(o.t/a*n)));r[l].count+=1}return r}function Tn(e,s){if(e<=0)return 0;const n=Math.max(1,...s.map(a=>a.count));return Math.max(18,e/n*100)}function $n({events:e,duration:s,cursor:n,mode:a,speed:r,snapTimes:o,onCursor:l,onPlayToggle:c,onSpeedChange:u}){const b=a==="tail"?"Following latest":a==="playing"?"Pause replay":"Play turns";return t.jsxs("div",{className:"s-observe-transport","data-snap":o.length>0||void 0,"data-mode":a,children:[t.jsx("button",{type:"button",className:"s-observe-play-btn","data-state":a,onClick:c,"aria-pressed":a==="tail"||a==="playing","aria-label":b,title:b,children:a==="playing"?"❚❚":"▶"}),t.jsx("button",{type:"button",className:"s-observe-rewind-btn",onClick:()=>{l(0)},"aria-label":"Jump to start",title:"Jump to start",children:"⏮"}),t.jsx(Nn,{events:e,duration:s,cursor:n,onCursor:l,snapTimes:o}),t.jsx("div",{className:"s-observe-speed-group",children:[.5,1,2,4].map(m=>t.jsxs("button",{type:"button",className:`s-observe-speed-btn${r===m?" s-observe-speed-btn--active":""}`,onClick:()=>u(m),children:[m,"×"]},m))})]})}function Je(e){return Hs(e)||"unknown"}function Ln(e,s){const n=De(e),a=De(s);return n===null||a===null?"0:00":es(a-n)||"0:00"}function En({catalog:e,sessionId:s,agentId:n}){const{navigate:a,route:r}=Se(),[o,l]=h.useState(!1),c=e.sessions.find(d=>d.id===e.activeSessionId),u=e.sessions.filter(d=>d.id!==e.activeSessionId&&d.endedAt).sort((d,g)=>(g.endedAt??0)-(d.endedAt??0)).slice(0,5),b=e.activeSessionId??s,m=b?b.slice(0,8):null,j=!!(c?.canTakeover&&e.resumeCommand),f=h.useCallback(()=>{!j||!e.resumeCommand||(Vs({command:e.resumeCommand,cwd:e.resumeCwd,agentId:n}).then(()=>{Xs(a,{view:"terminal",agentId:n},{returnTo:r})}),l(!0))},[j,e.resumeCommand,e.resumeCwd,a,r,n]),i=h.useCallback(()=>{a({view:"agents-v2",agentId:n,tab:"message"})},[a,n]);return t.jsxs("div",{className:"s-observe-session-header",children:[t.jsx("div",{className:"s-observe-session-active",children:t.jsxs("div",{className:"s-observe-session-row",children:[m&&t.jsx("span",{className:"s-observe-session-id",title:b??void 0,children:m}),c&&t.jsxs("span",{className:"s-observe-session-time",children:["started ",Je(c.startedAt)]}),t.jsx("button",{className:"s-observe-pair-btn",onClick:i,title:"Send messages into the live session without taking the terminal",children:"Pair"}),j&&t.jsx("button",{className:"s-observe-takeover-btn",onClick:f,title:e.resumeCommand??void 0,children:o?"Sent":"Takeover"}),t.jsx(Ks,{className:"s-observe-takeover-btn",label:"Terminal ▾",hints:{agentId:n,sessionRefs:[b,s]},navigate:a,returnTo:r})]})}),u.length>0&&t.jsxs("div",{className:"s-observe-session-history",children:[t.jsxs("div",{className:"s-observe-session-history-label",children:[e.sessions.length," session",e.sessions.length!==1?"s":""," total"]}),u.map(d=>t.jsxs("div",{className:"s-observe-session-past",children:[t.jsx("span",{className:"s-observe-session-id",children:d.id.slice(0,8)}),t.jsxs("span",{className:"s-observe-session-time",children:[Je(d.startedAt),d.endedAt?` · ${Ln(d.startedAt,d.endedAt)}`:""]})]},d.id))]})]})}const vs={events:[{id:"observe:empty",t:0,kind:"system",text:"No session trace is available for this agent yet.",detail:"Waiting for a live session or readable history file."}],files:[],contextUsage:[],live:!1};function xs({data:e=vs,agentId:s,sessionId:n,cursor:a,duration:r,surface:o="embedded",observeSource:l,observeFidelity:c}){const{events:u,files:b}=e,[m,j]=h.useState(null);h.useEffect(()=>{if(!s)return;let v=!1;return Ce(`/api/agents/${encodeURIComponent(s)}/session-catalog`).then(q=>{v||j(q)}).catch(()=>{}),()=>{v=!0}},[s]);const f=e.metadata,i=f?.session,d=f?.usage,g=typeof r=="number"&&Number.isFinite(r)&&r>0?r:u.length>0?u[u.length-1].t+30:60,O=typeof a=="number"&&Number.isFinite(a)?a:g,A=u.filter(v=>v.kind==="tool").length,B=u.filter(v=>v.kind==="think").length,I=u.filter(v=>v.kind==="ask").length,$=u.filter(v=>v.kind==="tool"&&v.tool==="read").length,D=u.filter(v=>v.kind==="tool"&&(v.tool==="edit"||v.tool==="write")).length,W=u.length>0?u[u.length-1].t:0,L=typeof d?.contextInputTokens=="number"&&typeof d.contextWindowTokens=="number"&&d.contextWindowTokens>0?Math.max(0,Math.min(100,Math.round(d.contextInputTokens/d.contextWindowTokens*100))):null,S=[{label:"Context input",value:d?.contextInputTokens},{label:"Input",value:d?.inputTokens},{label:"Output",value:d?.outputTokens},{label:"Cache hit",value:d?.cacheReadInputTokens},{label:"Cache write",value:d?.cacheCreationInputTokens},{label:"Total",value:d?.totalTokens},{label:"Reasoning",value:d?.reasoningOutputTokens}].filter(v=>typeof v.value=="number"),p=ge([typeof d?.assistantMessages=="number"?{label:"Assistant msgs",value:re(d.assistantMessages)??"0",tone:"accent"}:null,typeof d?.webSearchRequests=="number"?{label:"Web search",value:re(d.webSearchRequests)??"0"}:null,typeof d?.webFetchRequests=="number"?{label:"Web fetch",value:re(d.webFetchRequests)??"0"}:null,d?.serviceTier?{label:"Service tier",value:d.serviceTier,tone:"good"}:null,d?.speed?{label:"Speed",value:d.speed}:null,d?.planType?{label:"Plan",value:d.planType}:null]),E=ge([typeof d?.contextWindowTokens=="number"?{label:"Model window",value:`${re(d.contextWindowTokens)} tokens`,title:re(d.contextWindowTokens)??void 0,tone:"accent"}:null,L!==null?{label:"Window load",value:`${L}%`,tone:L>=80?"warn":"default"}:null]),M=ge([i?.model?{label:"Model",value:i.model,tone:"accent"}:null,i?.adapterType?{label:"Adapter",value:i.adapterType}:null,i?.gitBranch?{label:"Branch",value:i.gitBranch}:null,i?.cwd?{label:"Workspace",value:i.cwd,display:ye(i.cwd),title:i.cwd,actionPath:i.cwd}:null,i?.entrypoint?{label:"Entrypoint",value:i.entrypoint}:null,i?.cliVersion?{label:"CLI",value:i.cliVersion}:null,i?.permissionMode?{label:"Permissions",value:i.permissionMode}:null,i?.approvalPolicy?{label:"Approval",value:i.approvalPolicy}:null,i?.sandbox?{label:"Sandbox",value:i.sandbox}:null,i?.userType?{label:"User type",value:i.userType}:null,i?.originator?{label:"Originator",value:i.originator}:null,i?.modelProvider?{label:"Provider",value:i.modelProvider}:null,i?.effort?{label:"Effort",value:i.effort}:null,i?.timezone?{label:"Timezone",value:i.timezone}:null,i?.externalSessionId?{label:"External session",value:i.externalSessionId,title:i.externalSessionId}:null,i?.threadId?{label:"Thread",value:i.threadId,title:i.threadId}:null,i?.threadPath?{label:"Thread path",value:i.threadPath,display:ye(i.threadPath),title:i.threadPath,actionPath:i.threadPath,actionBasePath:i.cwd??null}:null,i?.source?{label:"Runtime source",value:i.source}:null]),x=Ge(d),C=Ge(i),N=l??(e.live?"live":"history"),T=c??"timestamped",k=os({source:N,fidelity:T,live:e.live,eventCount:u.length}),R=T==="timestamped",y=k.traceEventCount>0;return t.jsxs("aside",{className:`s-observe-rail${o==="context"?" s-observe-rail--context":""}`,children:[t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Evidence"}),t.jsxs("div",{className:"s-observe-evidence-card","data-tone":k.tone,children:[t.jsx("span",{className:"s-observe-evidence-dot","aria-hidden":"true"}),t.jsxs("span",{children:[t.jsx("strong",{children:k.label}),t.jsx("small",{children:k.detail})]})]})]}),m&&m.sessions.length>0&&t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Session"}),t.jsx(En,{catalog:m,sessionId:n??null,agentId:s})]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Trace stats"}),t.jsxs("div",{className:"s-observe-stats",children:[t.jsx(U,{label:"Turns",value:K(y?i?.turnCount:void 0)}),t.jsx(U,{label:"Tools",value:K(y?A:void 0)}),t.jsx(U,{label:"Thinks",value:K(y?B:void 0)}),t.jsx(U,{label:"Requests",value:K(y?I:void 0)}),t.jsx(U,{label:"Reads",value:K(y?$:void 0)}),t.jsx(U,{label:"Edits",value:K(y?D:void 0)}),t.jsx(U,{label:"Files",value:K(y?b.length:void 0)}),t.jsx(U,{label:"Window",value:R&&y?Bt(W):"—"})]})]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Interacted agents"}),t.jsx(Zs,{topology:f?.topology??null,sessionId:n??f?.session?.externalSessionId??null,size:"rail",maxAgents:4})]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Context window"}),t.jsx(ke,{rows:E,agentId:s??null,sessionId:n??null}),L!==null?t.jsxs(t.Fragment,{children:[t.jsx(jn,{data:[L/100,L/100],cursor:O/g}),t.jsx("div",{className:"s-observe-ctx-detail",children:"Meter uses latest context input divided by the model window."})]}):E.length===0?t.jsx(je,{}):t.jsx("div",{className:"s-observe-ctx-detail",children:"No derived load trace captured."})]}),t.jsxs("div",{children:[t.jsxs("div",{className:"s-observe-rail-label",children:["Files touched · ",b.length]}),t.jsx("div",{className:"s-observe-files",children:b.map(v=>t.jsxs("div",{className:`s-observe-file${v.lastT<=O?" s-observe-file--visible":" s-observe-file--hidden"}`,children:[t.jsx(kn,{state:v.state}),t.jsx(Ee,{path:v.path,basePath:i?.cwd??null,agentId:s??null,sessionId:n??null,className:"s-observe-file-path",children:v.path}),t.jsxs("span",{className:"s-observe-file-touches",children:["×",v.touches]})]},v.path))})]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Usage"}),S.length>0&&t.jsx("div",{className:"s-observe-stats s-observe-stats--usage",children:S.map(v=>t.jsx(U,{label:v.label,value:K(v.value)},v.label))}),p.length>0?t.jsx(ke,{rows:p,agentId:s??null,sessionId:n??null}):!x&&S.length===0?t.jsx(je,{}):null]}),t.jsxs("div",{children:[t.jsx("div",{className:"s-observe-rail-label",children:"Metadata"}),M.length>0?t.jsx(ke,{rows:M,agentId:s??null,sessionId:n??null}):C?null:t.jsx(je,{})]})]})}function Rn({conversationId:e,agentId:s,sessionId:n,invoke:a}){const{navigate:r}=Se(),[o,l]=h.useState(""),[c,u]=h.useState(!1),[b,m]=h.useState(null),[j,f]=h.useState(null),[i,d]=h.useState(()=>e?.trim()||null),g=h.useRef(null);h.useEffect(()=>{d(e?.trim()||null)},[e]);const O=s?.trim()||null,A=n?.trim()||null,B=!!(O&&A),I=!!(a?.projectPath&&a?.sessionId),$=!!(i||B||I),D=$&&o.trim().length>0&&!c,W=async()=>{const L=o.trim();if(!(!L||c)){if(!i&&!B&&!I){f("No writable session target is attached yet.");return}u(!0),m(null),f(null);try{if(i)await Ce("/api/send",{method:"POST",body:JSON.stringify({body:L,conversationId:i,intent:"steer"})}),l(""),m("Sent into this session."),g.current?.focus();else if(B){const p=(await Js({agentId:O,sessionId:A,instructions:L})).conversationId?.trim();p&&d(p),l(""),m("Sent into this session."),g.current?.focus()}else{const p=(await Ys({projectPath:a.projectPath,sessionId:a.sessionId,...a.harness?{harness:a.harness}:{},...a.model?{model:a.model}:{},...a.reasoningEffort?{reasoningEffort:a.reasoningEffort}:{},instructions:L})).conversationId?.trim();l(""),p?(d(p),m("Session invoked — opening conversation."),r({view:"conversation",conversationId:p})):(m("Session invoked."),g.current?.focus())}}catch(S){f(S instanceof Error?S.message:String(S))}finally{u(!1)}}};return t.jsx("div",{className:"s-observe-compose",children:t.jsx(Qs,{renderWhenEmbedded:!0,density:"panel",value:o,onChange:l,onSend:()=>{W()},sending:c,disabled:!$||c,canSend:D,placeholder:$?!i&&!B&&I?"Message this session to invoke it…":"Write into this session…":"This trace is read-only",textareaRef:g,rows:3,showAttach:$,onAttach:()=>g.current?.focus(),attachTitle:"Add context",attachAriaLabel:"Add context",sendTitle:"Send into this session (Cmd+Enter)",sendAriaLabel:"Send into this session",tools:$?j?t.jsx("span",{className:"s-observe-compose-status s-observe-compose-status--error",children:j}):b?t.jsx("span",{className:"s-observe-compose-status",children:b}):null:t.jsx("span",{className:"s-observe-compose-status s-observe-compose-status--muted",children:"No broker conversation or resumable agent session is attached to this trace."})})})}function Pn({data:e,agentId:s,sessionId:n,conversationId:a,observeSource:r,observeFidelity:o,originLabel:l,defaultPresentation:c="timeline",showRail:u=!0,variant:b="default",traceLimit:m,traceWindowMs:j,traceWindowLabel:f,nowMs:i,initialCursorT:d,focusEventId:g,inlineFocusEventId:O,inlineFocusContent:A,onLaneEventSelect:B,surface:I="scout",laneGutter:$,richSimpleTools:D,laneCollapseTechnicalEvents:W,onLaneCollapseTechnicalEventsChange:L,laneOperatorName:S}){const p=b==="lane",E=I==="scope",M=$??(E?"label-time":"time"),x=D??E,C=u&&!E,[N,T]=h.useState(()=>p||E?"timeline":c),k=!p&&!E&&N==="conversation",R=e??vs,{events:y}=R,v=r??(R.live?"live":"history"),z=os({source:v,fidelity:o??"timestamped",live:R.live,eventCount:y.length}),Q=R.metadata?.session?.sessionStart,[gs,js]=h.useState(Date.now),ee=typeof i=="number"?i:gs;h.useEffect(()=>{if(!p||typeof i=="number")return;const w=setInterval(()=>js(Date.now()),1e4);return()=>clearInterval(w)},[p,i]);const P=y.length>0?y[y.length-1].t+30:60,se=typeof d=="number"?Math.max(0,Math.min(P,d)):null,[ie,ce]=h.useState(()=>se??P),[ve,Y]=h.useState(!1),[ue,ks]=h.useState(1),[xe,X]=h.useState(se==null),Re=h.useRef(P),Pe=h.useRef(null),te=h.useMemo(()=>wn(y,P),[y,P]);h.useEffect(()=>{se!=null&&(ce(se),X(!1),Y(!1))},[se,g]),h.useEffect(()=>{ce(w=>{const F=Re.current;Re.current=P;const H=He(w,F);return w>P||H&&xe?P:w})},[P,xe]),h.useEffect(()=>{if(!ve)return;const w=te.length>0?Math.max(220,700/ue):100,F=setInterval(()=>{ce(H=>{if(te.length>0){const he=ps(H,te,P);return he>=P?(X(!0),Y(!1),P):he}const me=H+ue;return me>=P?(X(!0),Y(!1),P):me})},w);return()=>clearInterval(F)},[ve,P,te,ue]);const ne=p&&!!(j&&j>0),ae=(()=>{let w=y.filter(F=>F.t<=ie);if(ne&&j){const F=As(w,Q,ee,j);w=F.length>=Ie?F:w.slice(-Ie)}else p&&m&&m>0&&(w=w.slice(-m));return w})(),Z=h.useMemo(()=>{if(!ne||!j)return null;const w=ae[0]?.id,F=w===void 0?Bs(y,Q,ee,j):Math.max(0,y.findIndex(H=>H.id===w));return Is(ae,Q,ee,j,F)},[y,ee,Q,j,ne,ae]);h.useLayoutEffect(()=>{if(p||!g)return;const w=Pe.current;if(!w)return;const F=w.querySelector('[data-focus-group="true"]')??w.querySelector(`[data-event-id="${g}"]`),H=F?.closest(".s-observe-main");if(F&&H){const me=H.getBoundingClientRect(),he=F.getBoundingClientRect(),$s=H.scrollTop+(he.top-me.top)-16;H.scrollTo({top:Math.max(0,$s),behavior:"instant"});return}F?.scrollIntoView({block:"start",behavior:"instant"})},[g,O,p,ae.length]);const de=He(ie,P)&&xe,ys=de?"tail":ve?"playing":"paused",Ns=h.useCallback(w=>{X(!1),Y(!1),ce(w)},[]),ws=h.useCallback(()=>{de?(X(!1),Y(!1)):(X(!1),Y(w=>!w))},[de]),G=R.metadata?.session,Oe=G?.threadPath??null,Cs=G?.model?.trim()||We(G?.adapterType)||"Agent",Ss=S??"You",Ae=n?.trim()||G?.externalSessionId?.trim()||null,Be=We(G?.adapterType),Ts=!s&&G?.cwd&&Ae&&Be?{projectPath:G.cwd,sessionId:Ae,harness:Be,model:G.model,reasoningEffort:G.effort}:null;return t.jsxs("div",{ref:Pe,className:["s-observe",(!C||p)&&"s-observe--content-only",p&&"s-observe--lane",p&&M==="label-time"&&"s-observe--lane-gutter-label",k&&"s-observe--conversation",E&&"s-observe--scope"].filter(Boolean).join(" "),children:[t.jsxs("main",{className:"s-observe-main",children:[!p&&!E&&t.jsxs("div",{className:"s-observe-evidence-banner","data-tone":z.tone,children:[t.jsx("span",{className:"s-observe-evidence-dot","aria-hidden":"true"}),t.jsxs("span",{children:[t.jsx("strong",{children:l??z.label}),t.jsx("small",{children:l?`${z.label}. ${z.detail}`:z.detail})]}),!z.receiptOnly&&t.jsx(an,{presentation:N,onChange:T})]}),Oe&&!p&&t.jsx(yn,{path:Oe,basePath:G?.cwd??null,agentId:s??null,sessionId:n??null}),!z.receiptOnly&&!E&&ne&&Z?t.jsxs("div",{className:"s-observe-lane-trace-meta",children:[t.jsxs("span",{className:"s-observe-lane-trace-meta-leading",children:[t.jsx("span",{className:"s-observe-lane-trace-meta-label",children:"Trace"}),t.jsx(rn,{collapseTechnicalEvents:!!W,onChange:L})]}),t.jsxs("span",{className:"s-observe-lane-trace-meta-stats",children:[t.jsxs("span",{className:"s-observe-lane-trace-meta-window",children:["last ",f??_e(j??0)]}),t.jsx("span",{className:"s-observe-lane-trace-meta-sep","aria-hidden":"true",children:"·"}),t.jsxs("span",{children:[Z.eventCount," event",Z.eventCount===1?"":"s"]}),Z.spanMs>0?t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-observe-lane-trace-meta-sep","aria-hidden":"true",children:"·"}),t.jsxs("span",{children:[_e(Z.spanMs)," span"]})]}):null,Z.truncatedBefore?t.jsx("span",{className:"s-observe-lane-trace-meta-tag",title:"Earlier activity in this window may not be loaded",children:"partial"}):null]})]}):null,z.receiptOnly?t.jsx(st,{events:y}):t.jsx(gn,{events:ae,followEnd:de,laneMode:p,conversationMode:k,sessionStartMs:Q,nowMs:ee,preferWallAge:ne,focusEventId:g,inlineFocusEventId:O,inlineFocusContent:A,onLaneEventSelect:B,laneGutter:M,richSimpleTools:x,collapseTechnicalEvents:k||p&&!!W,laneOperatorName:k?Ss:S,conversationAssistantName:Cs})]}),C&&!p&&t.jsx(xs,{data:R,agentId:s,sessionId:n,cursor:ie,duration:P,observeSource:r,observeFidelity:o}),!E&&!p&&t.jsxs("footer",{className:"s-observe-scrubber",children:[k?null:z.replayable?t.jsx($n,{events:y,duration:P,cursor:ie,mode:ys,speed:ue,snapTimes:te,onCursor:Ns,onPlayToggle:ws,onSpeedChange:ks}):t.jsxs("div",{className:"s-observe-static-evidence",children:[t.jsx("span",{className:"s-observe-evidence-dot","aria-hidden":"true"}),t.jsx("span",{children:z.label}),t.jsx("small",{children:"No timestamped replay is available."})]}),t.jsx(Rn,{conversationId:a,agentId:s,sessionId:n,invoke:Ts})]})]})}const da=Object.freeze(Object.defineProperty({__proto__:null,SessionObserve:Pn,SessionObserveContextRail:xs},Symbol.toStringTag,{value:"Module"}));export{Pn as S,xs as a,da as b,os as d,ua as h};
@@ -0,0 +1 @@
1
+ import{j as e}from"./index-EsrkGBcv.js";import{S as u}from"./SessionContextStrip-CXfs9hUD.js";import"./conversation-model-FxDeWlle.js";import"./agent-state-DDhnFEEP.js";import"./time-Dhsh_2EG.js";import"./conversations-DoAAO6kA.js";import"./HarnessMark-C4naWc16.js";function b(s){return s?s.length>18?`${s.slice(0,8)}...${s.slice(-6)}`:s:"no session"}const m="Native session",x="Scout-managed chat";function R(s){return s.kind==="broker"||s.source==="broker"?x:m}function A({session:s,observe:t,machineId:o,navigate:r}){const i=t.data?.metadata?.session,l=new Set([t.refId,t.sessionId].map(c=>c?.trim()).filter(c=>!!c)),n=!!(s&&(s.sessionId?.trim()&&l.has(s.sessionId.trim())||s.harnessSessionId?.trim()&&l.has(s.harnessSessionId.trim())))?s:null,a=i?.cwd?.trim()||n?.workspaceRoot?.trim()||null,p=a?a.split(/[\\/]/).filter(Boolean).at(-1)??a:null,h=i?.hostName?.trim()||n?.executionNodeName?.trim()||null,d=t.sessionId?.trim()||t.refId;return e.jsx(u,{title:n?.title?.trim()||p||d,harness:i?.adapterType?.trim()||n?.harness||null,model:i?.model?.trim()||n?.model?.trim()||null,hostName:h,workspaceRoot:a,sessionId:d,machineId:o,conversationId:s?.id?.trim()||null,showSessionAction:!1,navigate:r})}function E({source:s,fidelity:t,sessionId:o,evidence:r,originLabel:i=m}){return e.jsxs("div",{className:"s-observe-embed-status","data-tone":r.tone,children:[i?e.jsx("span",{className:"s-observe-embed-status-origin",children:i}):e.jsx("span",{className:"s-observe-embed-status-source",children:s}),e.jsx("span",{children:t}),e.jsx("span",{title:o??void 0,children:b(o)}),e.jsx("span",{children:r.eventCountLabel}),r.tone==="live"&&e.jsx("span",{className:"s-observe-embed-status-live",children:"Live"})]})}function _({events:s}){return e.jsxs("section",{className:"s-observe-receipt-view","aria-label":"Session setup receipts",children:[e.jsxs("div",{className:"s-observe-receipt-view-copy",children:[e.jsx("strong",{children:"No observed trace activity"}),e.jsx("span",{children:"These broker lifecycle records confirm setup only."})]}),s.length>0&&e.jsx("ul",{className:"s-observe-receipt-list",children:s.map(t=>e.jsxs("li",{className:"s-observe-receipt",children:[e.jsx("span",{children:t.text}),t.detail&&e.jsx("small",{children:t.detail})]},t.id))})]})}export{m as NATIVE_SESSION_ORIGIN_LABEL,x as SCOUT_MANAGED_CHAT_ORIGIN_LABEL,E as SessionObserveEmbedStatus,_ as SessionObserveReceiptView,A as SessionRefObserveHeader,R as sessionRefObserveOriginLabel};
@@ -0,0 +1 @@
1
+ import{r as m,j as s}from"./index-EsrkGBcv.js";import{a as g}from"./api-DSqpVKC7.js";import{u as k}from"./sse-BCPRocpq.js";import{u as I}from"./tail-events-d0yAYxR0.js";import{B as N}from"./BackToPicker-CUkjnoVk.js";import{ConversationScreen as S}from"./ConversationScreen-CUfsQ4MR.js";import{S as R,a as y}from"./SessionObserve-DXxBvejJ.js";import{SessionRefObserveHeader as w,sessionRefObserveOriginLabel as E}from"./SessionObserveEvidence-Cuj_KHxR.js";import{c as T,a as C,b as O,s as f}from"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./index-BWHgHrtv.js";import"./router-DCtl8wqb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./NewChatComposer-C97-iTMK.js";import"./runtime-picker-DXu2bOTh.js";import"./scout-voice-CZx60X6E.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-OvccU82H.js";import"./createLucideIcon-zZ8Hx7er.js";import"./media-blobs-Bi8pxr1u.js";import"./index-724SdE6r.js";import"./HarnessMark-C4naWc16.js";import"./conversation-model-FxDeWlle.js";import"./agent-state-DDhnFEEP.js";import"./time-Dhsh_2EG.js";import"./conversations-DoAAO6kA.js";import"./colors-CFlbwC25.js";import"./NewChatOrigin-DFbF_XvR.js";import"./keyboard-nav-DDHegDbx.js";import"./x-DAehov0E.js";import"./chevron-down-l1mrh5S9.js";import"./search-DT42oyRW.js";import"./file-text-CnISiiw6.js";import"./ComposerAttachments-DW0AIb8k.js";import"./machine-scope-DJt9RZ2w.js";import"./message-markup-Zwo3t4cI.js";import"./message-markup-BQW5jdJw.js";import"./mentions-ByUvhS-v.js";import"./Provider-C35yu29I.js";import"./theme-vars-DNK0nn3k.js";import"./provider-Dojd8quC.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DJr0v0D_.js";import"./TextDocumentSurface-D52m7Vd8.js";import"./index-CHD0qcfL.js";import"./chevron-right-DrfqcerI.js";import"./folder-D5prSkzz.js";import"./chevron-up-CETZJzjV.js";import"./code-xml-BhcNbLWU.js";import"./arrow-left-MVUKauwQ.js";import"./arrow-right-Bp-FpE5V.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DbVLgbWX.js";import"./AgentDetailCard-DtHT3sCo.js";import"./AgentLiveActions-CfTupTEl.js";import"./terminal-takeover-Ay5C2c-M.js";import"./openContent-C6XO6kr5.js";import"./eye-LrO-cXQt.js";import"./terminal-hQKQygcf.js";import"./message-visibility-DwxgcgYK.js";import"./operator-attention-DBaRg5ep.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./MessageEmbeds-ksPazAKH.js";import"./AgentAvatar-CrP1eXxk.js";import"./SpriteAvatar-CpZWf54-.js";import"./CrewAvatar-kTznzqcO.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-C-ZWscKj.js";import"./AstronautSuit-Cchnc4Ug.js";import"./panel-right-Bv7sP_fc.js";import"./CommsFlowGraph-DxoOaLF_.js";import"./comms-gesture-_aGFo6g3.js";import"./CommsCanvas-THp0r_U8.js";import"./comms-deck-CBhsXnY-.js";import"./CommsFlowMap-Vi8ziCPg.js";import"./CommsSelection-BUoRbu9o.js";/* empty css */import"./use-conversation-list-CY4JciOV.js";import"./agent-master-model-Bk_yuUXJ.js";import"./use-beside-DoRC1nt0.js";import"./ConversationComposer-CUQyArlk.js";import"./zap-CEjZNZbI.js";import"./ConversationFeedRows-DWiOfT-y.js";import"./ConversationPanels-D9oC0xG5.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./use-reduced-motion-3gMYZNIp.js";import"./proxy-AJsmwA6h.js";import"./activity-CIlFrfPJ.js";import"./message-circle-CxRVKNE-.js";import"./ConversationStatus--IPm2nGh.js";import"./check-lrJ3a73a.js";import"./sparkles-BjHq_DNK.js";import"./triangle-alert-CHoRGdVO.js";import"./SessionContextStrip-CXfs9hUD.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-Czggx8oM.js";import"./LaneToolHoverCard-CJa110yk.js";import"./lane-observe-CteDwdD-.js";import"./lane-ask-display-BTVSakyo.js";import"./SessionHopMenu-E6VJZrE0.js";import"./external-link-CUObqmgX.js";import"./ObservedTopologyPanel-CUTIoLZJ.js";import"./ObserveTextFlow-PFnG_10h.js";import"./wrench-DR0i5BU7.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 F(r){return r.startsWith("native:process:")}function x(r){const[o,t]=m.useState(()=>({sessionRef:r,lookup:null,loading:!0,error:null})),i=m.useRef(null),p=m.useRef(null);p.current||(p.current=T(a=>g(`/api/session-ref/${encodeURIComponent(a)}`),({sessionRef:a,result:n})=>{if(n.ok){t({sessionRef:a,lookup:n.lookup,loading:!1,error:null});return}t({sessionRef:a,lookup:null,loading:!1,error:n.error instanceof Error?n.error.message:String(n.error)})}));const l=m.useCallback(async()=>{await p.current.request(r)},[r]);m.useEffect(()=>(t({sessionRef:r,lookup:null,loading:!0,error:null}),l(),()=>{p.current?.invalidate(),i.current&&(clearTimeout(i.current),i.current=null)}),[l,r]);const{lookup:e,loading:u,error:d}=C(o,r),c=m.useCallback(()=>{i.current||(i.current=setTimeout(()=>{i.current=null,l()},1e3))},[l]);return k(a=>{const n=[r,e?.refId,e?.kind==="conversation"?e.conversationId:null,e?.session?.agentId,e?.kind==="observe"?e.observe.agentId:null,e?.kind==="observe"?e.observe.sessionId:null];O(a,n)&&c()}),I(a=>{const n=v(a.sessionId),j=v(r),h=e?.kind==="observe"?v(e.observe.sessionId??e.observe.refId):"",b=e?.kind==="observe"?v(e.observe.data.metadata?.session?.externalSessionId):"";!f(n,j)&&(!h||!f(n,h))&&(!b||!f(n,b))||c()}),m.useEffect(()=>()=>{i.current&&clearTimeout(i.current)},[]),{lookup:e,loading:u,error:d}}function Ms({sessionRef:r}){const{lookup:o,loading:t,error:i}=x(r);return o?.kind==="observe"?s.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}):s.jsx("aside",{className:"s-observe-rail s-observe-rail--context",children:s.jsxs("div",{children:[s.jsx("div",{className:"s-observe-rail-label",children:o?.kind==="conversation"?"Conversation":"Session context"}),s.jsx("div",{className:"s-observe-empty",children:t?"Resolving session reference":i?"Session context unavailable":"No observe context captured for this session"})]})})}function Ws({sessionRef:r,navigate:o,machineId:t,renderBeforeContent:i,showObserveRail:p=!0,onLookup:l}){const{lookup:e,loading:u,error:d}=x(r);if(m.useEffect(()=>{e&&l?.(e)},[e,l]),e?.kind==="conversation")return s.jsxs(s.Fragment,{children:[i?.(e),s.jsx(S,{conversationId:e.conversationId,navigate:o})]});if(e?.kind==="observe")return s.jsxs(s.Fragment,{children:[i?.(e),s.jsx(w,{session:e.session,observe:e.observe,machineId:t,navigate:o}),s.jsx(R,{data:e.observe.data,agentId:e.observe.agentId??e.session?.agentId??void 0,sessionId:e.observe.sessionId??e.observe.refId,conversationId:e.session?.id??null,showRail:p,observeSource:e.observe.source,observeFidelity:e.observe.fidelity,originLabel:E(e.observe),defaultPresentation:"conversation"})]});if(u)return s.jsx("div",{className:"s-sessions-screen s-inbox-thread-redesign",children:s.jsx("section",{className:"s-thread-overview",children:s.jsxs("div",{className:"s-thread-overview-copy",children:[s.jsxs("div",{className:"s-sessions-header s-thread-overview-heading",children:[s.jsx("h2",{className:"s-page-title",children:"Session"}),s.jsx("span",{className:"s-meta s-tabular",children:r.slice(0,8)})]}),s.jsxs("p",{className:"s-thread-overview-summary s-session-ref-loading",children:[s.jsx("span",{className:"s-session-ref-loading-dot"}),s.jsx("span",{className:"s-session-ref-loading-dot"}),s.jsx("span",{className:"s-session-ref-loading-dot"}),"Resolving session reference"]})]})})});const c=F(r);return s.jsx("div",{className:"s-sessions-screen s-inbox-thread-redesign",children:s.jsx("section",{className:"s-thread-overview",children:s.jsxs("div",{className:"s-thread-overview-copy",children:[s.jsxs("div",{className:"s-sessions-header s-thread-overview-heading",children:[s.jsx("h2",{className:"s-page-title",children:c?"Process trace unavailable":"Session not found"}),s.jsx("span",{className:"s-meta s-tabular",children:r.slice(0,8)})]}),s.jsx("p",{className:"s-thread-overview-summary",children:c?"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."}),d&&s.jsx("p",{className:"s-session-ref-error-detail",children:d}),s.jsx("div",{className:"s-session-ref-nav-hint",children:s.jsx(N,{slot:"sessions",fallback:{view:"sessions"},navigate:o})})]})})})}export{Ms as SessionRefContextRail,Ws as SessionRefScreen};
@@ -0,0 +1 @@
1
+ import{j as r}from"./index-EsrkGBcv.js";import{RawSessionsTable as t}from"./RawSessionsTable-DzT90hWu.js";/* empty css */import"./DataTable-aH-jCyDq.js";/* empty css */import"./Provider-C35yu29I.js";import"./theme-vars-DNK0nn3k.js";import"./provider-Dojd8quC.js";import"./router-DCtl8wqb.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BCPRocpq.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-C97-iTMK.js";import"./runtime-picker-DXu2bOTh.js";import"./scout-voice-CZx60X6E.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-OvccU82H.js";import"./createLucideIcon-zZ8Hx7er.js";import"./media-blobs-Bi8pxr1u.js";import"./index-724SdE6r.js";import"./HarnessMark-C4naWc16.js";import"./conversation-model-FxDeWlle.js";import"./time-Dhsh_2EG.js";import"./conversations-DoAAO6kA.js";import"./colors-CFlbwC25.js";import"./NewChatOrigin-DFbF_XvR.js";import"./keyboard-nav-DDHegDbx.js";import"./x-DAehov0E.js";import"./chevron-down-l1mrh5S9.js";import"./search-DT42oyRW.js";import"./file-text-CnISiiw6.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DJr0v0D_.js";import"./TextDocumentSurface-D52m7Vd8.js";import"./index-CHD0qcfL.js";import"./chevron-right-DrfqcerI.js";import"./folder-D5prSkzz.js";import"./chevron-up-CETZJzjV.js";import"./code-xml-BhcNbLWU.js";import"./arrow-left-MVUKauwQ.js";import"./arrow-right-Bp-FpE5V.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DbVLgbWX.js";import"./SessionHopMenu-E6VJZrE0.js";import"./openContent-C6XO6kr5.js";import"./external-link-CUObqmgX.js";import"./tail-events-d0yAYxR0.js";function io({navigate:o}){return r.jsx(t,{navigate:o})}export{io as SessionsScreen};