@openscout/scout 0.2.96 → 0.2.98

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 (395) hide show
  1. package/README.md +0 -1
  2. package/bin/scoutd +0 -0
  3. package/dist/build-manifest.json +3 -3
  4. package/dist/client/assets/ActivityScreen-sfonf5SR.js +1 -0
  5. package/dist/client/assets/{AddProjectForm-IqOtJfRs.js → AddProjectForm-fXndbzXT.js} +1 -1
  6. package/dist/client/assets/{AgentAvatar-6-KBVKUu.js → AgentAvatar-Dz79iTxB.js} +1 -1
  7. package/dist/client/assets/AgentConfigurationScreen-DDc3udYM.js +1 -0
  8. package/dist/client/assets/AgentDefinitionsWorkspace-DHDS9Pgd.js +1 -0
  9. package/dist/client/assets/{AgentDetailCard-C9rn3Fj5.js → AgentDetailCard-8viaEY8b.js} +1 -1
  10. package/dist/client/assets/AgentFloorView-DuyvyMMj.js +1 -0
  11. package/dist/client/assets/AgentInfoScreen-qntgg2q2.js +1 -0
  12. package/dist/client/assets/{AgentLaneCard-DI2iW9zO.js → AgentLaneCard-Cc9uyfBr.js} +1 -1
  13. package/dist/client/assets/{AgentLaneChrome-D8bARHMx.js → AgentLaneChrome-Dv2lBFoH.js} +1 -1
  14. package/dist/client/assets/{AgentLaneDetailSheet-52un7dKC.js → AgentLaneDetailSheet-CGqtqSHQ.js} +1 -1
  15. package/dist/client/assets/{AgentLaneSummaryResize-CEBjmPTa.js → AgentLaneSummaryResize-Di4u6df2.js} +1 -1
  16. package/dist/client/assets/AgentLanesEmbedScreen-BA6fRwkD.js +1 -0
  17. package/dist/client/assets/{AgentLanesPreflight-q20mTjms.js → AgentLanesPreflight-CCGBArIb.js} +1 -1
  18. package/dist/client/assets/AgentLanesView-96lHsoX7.js +2 -0
  19. package/dist/client/assets/{AgentLiveActions-DrEJDJef.js → AgentLiveActions-DlSKL60c.js} +1 -1
  20. package/dist/client/assets/AgentMasterScreen-DHrMuQ6_.js +1 -0
  21. package/dist/client/assets/{AgentSessions-DCPCG4xb.js → AgentSessions-DV9v34aq.js} +2 -2
  22. package/dist/client/assets/AgentsConsole-DTpVhS67.js +1 -0
  23. package/dist/client/assets/AgentsScreen-hZ4o2I-e.js +1 -0
  24. package/dist/client/assets/AgentsSubnav-Ci7uWM7P.js +1 -0
  25. package/dist/client/assets/{AstronautSuit-DbjQtfD_.js → AstronautSuit-CwB4Dw07.js} +1 -1
  26. package/dist/client/assets/{AtopView-Daq_ob3z.js → AtopView-D7vyQDtE.js} +1 -1
  27. package/dist/client/assets/{BackToPicker-CXZjBRAe.js → BackToPicker-BHicJyfc.js} +1 -1
  28. package/dist/client/assets/BriefingDetailScreen-B-wD_Bot.js +1 -0
  29. package/dist/client/assets/{BriefingsScreen-B5oMTGKv.js → BriefingsScreen-Cn4Mbam9.js} +1 -1
  30. package/dist/client/assets/{BrokerMetadataPanel-BsiU8lTD.js → BrokerMetadataPanel-BJSwU9XZ.js} +1 -1
  31. package/dist/client/assets/BrokerScreen-C8FQ5rlg.js +5 -0
  32. package/dist/client/assets/{CastPicker-_5E5hNUe.js → CastPicker-CkgTalIt.js} +1 -1
  33. package/dist/client/assets/{ChatCollapsedStrip-D-eXhzPf.js → ChatCollapsedStrip-7Wrg8Ge0.js} +1 -1
  34. package/dist/client/assets/{CodeDiffPane-n7W4iGUG.js → CodeDiffPane-DfluIWmO.js} +1 -1
  35. package/dist/client/assets/{CodeProjectPicker-CMsbSTDq.js → CodeProjectPicker-By_Wz9ex.js} +1 -1
  36. package/dist/client/assets/CodeScreen-cLC0tJ4S.js +1 -0
  37. package/dist/client/assets/ConversationComposer-BUIjWMBi.js +1 -0
  38. package/dist/client/assets/ConversationFeedRows-Bx0gFyG_.js +1 -0
  39. package/dist/client/assets/ConversationHeader-Bt2RBj93.js +1 -0
  40. package/dist/client/assets/{ConversationPanels-Dujvnmup.js → ConversationPanels-o6W-cOoU.js} +2 -2
  41. package/dist/client/assets/ConversationScreen-DIU7m_aC.js +2 -0
  42. package/dist/client/assets/{ConversationStatus-DVzSb2Hv.js → ConversationStatus-CTYOywFh.js} +1 -1
  43. package/dist/client/assets/{CrewAvatar-BwXjyg8N.js → CrewAvatar-CZ_faQ_s.js} +1 -1
  44. package/dist/client/assets/CrewWorkspaces-DNX-QQ1h.js +1 -0
  45. package/dist/client/assets/CrewWorkspaces-Diq11KDq.css +1 -0
  46. package/dist/client/assets/{DataTable-Bp8tU9AK.js → DataTable-C6aMSilS.js} +1 -1
  47. package/dist/client/assets/{DispatchAftermath-B-6rmXzL.js → DispatchAftermath-ZCEB75hh.js} +1 -1
  48. package/dist/client/assets/{DocumentFocusViewer-Do3wQ_3Z.js → DocumentFocusViewer-D8iB6SMt.js} +1 -1
  49. package/dist/client/assets/{EmbeddableSurfacesLab-C1orRyP9.js → EmbeddableSurfacesLab-D3iZiS8o.js} +1 -1
  50. package/dist/client/assets/{EmptyState-CJzXj1l5.js → EmptyState-CKPWFSjq.js} +1 -1
  51. package/dist/client/assets/{FileViewerPane-Df6VzXjA.js → FileViewerPane-CxNbcTYf.js} +1 -1
  52. package/dist/client/assets/FlightObserveScreen-BTe1YRPr.js +1 -0
  53. package/dist/client/assets/{FollowScreen-DvnxYLVh.js → FollowScreen-CkR-okdL.js} +1 -1
  54. package/dist/client/assets/{HarnessMark-B979GCSB.js → HarnessMark-DttReffF.js} +1 -1
  55. package/dist/client/assets/HarnessesScreen-COO_Q8VY.js +1 -0
  56. package/dist/client/assets/{HerdrSession-B3McuYgi.js → HerdrSession-DsuxCtfX.js} +1 -1
  57. package/dist/client/assets/{HomeHero-CdUVPjkG.js → HomeHero-DXJo2QSO.js} +1 -1
  58. package/dist/client/assets/{HostAdvisorView-Bok5Sk5c.js → HostAdvisorView-DeJ-8RZV.js} +1 -1
  59. package/dist/client/assets/{KnowledgeSearchInspector-B7XSoJsu.js → KnowledgeSearchInspector-W_zNIBRV.js} +1 -1
  60. package/dist/client/assets/KnowledgeSearchScreen-_rxJNUUh.js +1 -0
  61. package/dist/client/assets/{LaneToolHoverCard-HByf2ndx.js → LaneToolHoverCard-t7-XJP-h.js} +1 -1
  62. package/dist/client/assets/LaneTraceDetailSheet-DNIECgEl.js +1 -0
  63. package/dist/client/assets/{LaneTraceEventFocus-DM-hoPxG.js → LaneTraceEventFocus-BB5DhFQm.js} +1 -1
  64. package/dist/client/assets/{MeshCanvas-DCLJRsBy.js → MeshCanvas-DZv2ipsy.js} +1 -1
  65. package/dist/client/assets/{MeshCanvasMinimap-cEFS9eW7.js → MeshCanvasMinimap-BXHRNb7l.js} +1 -1
  66. package/dist/client/assets/MeshScreen-DuNvpDC5.js +1 -0
  67. package/dist/client/assets/{MeshTopologyView-CCRPd8PU.js → MeshTopologyView-Dc0GSrKa.js} +2 -2
  68. package/dist/client/assets/MessagesScreen-dNNPFwAc.js +1 -0
  69. package/dist/client/assets/{MissionContextRail-DF0_kiU7.js → MissionContextRail-DnCWPzAM.js} +1 -1
  70. package/dist/client/assets/MissionControlView-DmaThhNR.js +1 -0
  71. package/dist/client/assets/MissionFocusOverlay-K21ssTxv.js +1 -0
  72. package/dist/client/assets/MissionLeftAgentRow-CbQm4BLv.js +1 -0
  73. package/dist/client/assets/{MissionLogPane-BbdDKjUl.js → MissionLogPane-BLvSSIdT.js} +1 -1
  74. package/dist/client/assets/{NewAgentModal-DfHxad34.js → NewAgentModal-B7qxjZlW.js} +1 -1
  75. package/dist/client/assets/NewChatComposer-D2Ah4T-W.js +19 -0
  76. package/dist/client/assets/{NewChatOrigin-B1u7ki70.js → NewChatOrigin-DCn5cWPZ.js} +1 -1
  77. package/dist/client/assets/{ObserveEmbedScreen-Co0xTii6.js → ObserveEmbedScreen-DvKGsaLv.js} +2 -2
  78. package/dist/client/assets/{ObserveTextFlow-ZQWwrK3i.js → ObserveTextFlow-DCJ5EmD8.js} +2 -2
  79. package/dist/client/assets/{ObservedTopologyPanel-BJUhDSuQ.js → ObservedTopologyPanel-CJVqIqQ2.js} +1 -1
  80. package/dist/client/assets/{OpenScoutAppShell-CUd2yOLu.js → OpenScoutAppShell-C9TOLB7u.js} +2 -2
  81. package/dist/client/assets/OpsAgentsView-vIoY-AW1.js +1 -0
  82. package/dist/client/assets/OpsScreen-CJBwshEp.js +1 -0
  83. package/dist/client/assets/OpsSubnav-CjDTnp64.js +1 -0
  84. package/dist/client/assets/ProjectAgentProfile-Br1eTD7G.js +1 -0
  85. package/dist/client/assets/ProjectAgentProfileBar-CUzZ4Rpx.js +1 -0
  86. package/dist/client/assets/ProjectAgentProfileHero-mjxNcRvw.js +1 -0
  87. package/dist/client/assets/ProjectsInbox-Bq29DE_o.js +2 -0
  88. package/dist/client/assets/ProjectsRail-kMDA0yn4.js +1 -0
  89. package/dist/client/assets/ProjectsScreen-BDaJYhc0.js +1 -0
  90. package/dist/client/assets/ProjectsThreadAside-B940p3vW.js +1 -0
  91. package/dist/client/assets/Provider-D0bB7q6y.js +1 -0
  92. package/dist/client/assets/{RailRow-CEH2MFBw.js → RailRow-B88JVr62.js} +1 -1
  93. package/dist/client/assets/RawSessionsTable-CzGhEdiZ.js +1 -0
  94. package/dist/client/assets/RealtimeVoiceScreen-CyP1CWsX.js +1 -0
  95. package/dist/client/assets/{RepoDiffEmbedScreen-kY2pHjIs.js → RepoDiffEmbedScreen-mexrJPhW.js} +1 -1
  96. package/dist/client/assets/{RepoDiffPageScreen-C6LhoKrn.js → RepoDiffPageScreen-DbqX4L3q.js} +1 -1
  97. package/dist/client/assets/{RepoDiffViewer-BhcIIQQg.js → RepoDiffViewer-Bw5yMC4A.js} +1 -1
  98. package/dist/client/assets/{RepoDiffViewerLazy-Csy_j9LD.js → RepoDiffViewerLazy-DzfoFhbl.js} +2 -2
  99. package/dist/client/assets/{ReposScreen-B_cB0zu7.js → ReposScreen-CzbO1Fuy.js} +2 -2
  100. package/dist/client/assets/{ScoutDeckSurface-CSy_fjcG.js → ScoutDeckSurface-DQoZofzH.js} +1 -1
  101. package/dist/client/assets/{ScoutSurface-CQVcSrin.js → ScoutSurface-NlhDsPzg.js} +1 -1
  102. package/dist/client/assets/{ScoutbotFxLab-DqGiLYNy.js → ScoutbotFxLab-l2WAahCg.js} +1 -1
  103. package/dist/client/assets/{SecondaryNav-BR4VRdgh.js → SecondaryNav-Cs0_FQdj.js} +1 -1
  104. package/dist/client/assets/{SessionEmbedScreen-BTlZ9gAg.js → SessionEmbedScreen-CpduQ0O9.js} +1 -1
  105. package/dist/client/assets/{SessionObserve-dQDN23pP.js → SessionObserve-BVeTkcIl.js} +1 -1
  106. package/dist/client/assets/{SessionObserveEvidence-BRBGKAgd.js → SessionObserveEvidence-BkOezTGV.js} +1 -1
  107. package/dist/client/assets/SessionRefScreen-DetLMkTT.js +1 -0
  108. package/dist/client/assets/SessionsScreen-B-McKw6d.js +1 -0
  109. package/dist/client/assets/{SettingsDrawer-RGVK_bmE.js → SettingsDrawer-CPB32w0n.js} +3 -3
  110. package/dist/client/assets/SettingsScreen-BEzYFdjz.js +1 -0
  111. package/dist/client/assets/{ShikiPane-DYI9Hkge.js → ShikiPane-C0TuCATU.js} +1 -1
  112. package/dist/client/assets/{SlidePanel-B9ugxWgA.js → SlidePanel-CETQ5NTx.js} +1 -1
  113. package/dist/client/assets/{SpriteAvatar-z5hHesx9.js → SpriteAvatar-DFO4Kb4Z.js} +1 -1
  114. package/dist/client/assets/{StatusPill-BFvMjmZV.js → StatusPill-BllrY-eg.js} +1 -1
  115. package/dist/client/assets/{TailView-0uEIj2JH.js → TailView-_gKWfaQM.js} +2 -2
  116. package/dist/client/assets/Terminal-DWyZTZdY.js +1 -0
  117. package/dist/client/assets/TerminalEmbedScreen-_SSzwhWa.js +1 -0
  118. package/dist/client/assets/{TerminalHeaderMount-BL07cd0q.js → TerminalHeaderMount-CY7uIWBg.js} +1 -1
  119. package/dist/client/assets/{TextDocumentSurface-BflAwXeZ.js → TextDocumentSurface-2X1Gw4eA.js} +1 -1
  120. package/dist/client/assets/{TmuxPeek-BTnjOQi0.js → TmuxPeek-CqTJRhkI.js} +1 -1
  121. package/dist/client/assets/{VoicePermissionsPanel-CgQ6GGS-.js → VoicePermissionsPanel-C4vkU-sU.js} +1 -1
  122. package/dist/client/assets/{WorkDetailScreen-CaLG-zDs.js → WorkDetailScreen-DqGnuK0e.js} +3 -3
  123. package/dist/client/assets/{WorkFilesViewer-B9Sil_No.js → WorkFilesViewer-D8-4vF5l.js} +1 -1
  124. package/dist/client/assets/{activity-DcrMApUY.js → activity-CzTJ-YMX.js} +1 -1
  125. package/dist/client/assets/{addon-fit-DMVrz5Sv.js → addon-fit-Zx3A7pGS.js} +1 -1
  126. package/dist/client/assets/{addon-webgl-BYvpZUyu.js → addon-webgl-DitJj-N0.js} +1 -1
  127. package/dist/client/assets/{agent-autocomplete-B-5QTeas.js → agent-autocomplete-BlK8wY06.js} +1 -1
  128. package/dist/client/assets/{agent-essentials-D7KRGYvF.js → agent-essentials-K9B6kbTS.js} +1 -1
  129. package/dist/client/assets/{agent-lane-card-model-CNZMPkhc.js → agent-lane-card-model-CY3OE1Xu.js} +1 -1
  130. package/dist/client/assets/{agent-lanes-model-DXqjs0OK.js → agent-lanes-model-tc-1hE6q.js} +1 -1
  131. package/dist/client/assets/{agent-master-model-DqjrVI2h.js → agent-master-model-DMcHeNq3.js} +1 -1
  132. package/dist/client/assets/agent-specialization-CtF_jI34.js +1 -0
  133. package/dist/client/assets/agents-project-DgbqDc65.css +1 -0
  134. package/dist/client/assets/{arc.es-NHqHWohb.js → arc.es-BNXJqSw7.js} +1 -1
  135. package/dist/client/assets/{arrow-down-CKtSUjmW.js → arrow-down-BAGkhHA6.js} +1 -1
  136. package/dist/client/assets/{arrow-left-Czpf-AE4.js → arrow-left-eToA6GxC.js} +1 -1
  137. package/dist/client/assets/{arrow-right-BuzMnLYP.js → arrow-right-DTX42clh.js} +1 -1
  138. package/dist/client/assets/{arrow-up-right-C6Wl-1uw.js → arrow-up-right-B09GPwFl.js} +1 -1
  139. package/dist/client/assets/{bot-rd0awxD3.js → bot-WxKXYtEX.js} +1 -1
  140. package/dist/client/assets/{check-ofKUE8yH.js → check-Dz2SRHft.js} +1 -1
  141. package/dist/client/assets/{chevron-down-wciXnOQz.js → chevron-down-D120PY4g.js} +1 -1
  142. package/dist/client/assets/{chevron-right-D-HdlPg8.js → chevron-right-CowuvuE6.js} +1 -1
  143. package/dist/client/assets/{chunk-HRAB3GC3-Tyv9rzx7.js → chunk-HRAB3GC3-KjjrTLCU.js} +1 -1
  144. package/dist/client/assets/{chunk-JTPDIGGW-BC2Mandc.js → chunk-JTPDIGGW-COJ00z94.js} +3 -3
  145. package/dist/client/assets/{chunk-T65CQEWV-C1AWTYZZ.js → chunk-T65CQEWV-H2QEKfr1.js} +1 -1
  146. package/dist/client/assets/{chunk-YOZR3KYS-DwHPHa6f.js → chunk-YOZR3KYS-CrCgXw9l.js} +1 -1
  147. package/dist/client/assets/{clock-B88r8OrZ.js → clock-_9FDplIT.js} +1 -1
  148. package/dist/client/assets/{code-xml-D7pOQM9l.js → code-xml-CkkNdRmu.js} +1 -1
  149. package/dist/client/assets/{compass-Dt1AMXz2.js → compass-BdpImt_W.js} +1 -1
  150. package/dist/client/assets/content-0RBfbCIJ.js +1 -0
  151. package/dist/client/assets/content-BTmnk2bl.js +1 -0
  152. package/dist/client/assets/content-Bk5DKhyP.js +1 -0
  153. package/dist/client/assets/{content-nkx0swDe.js → content-Bw_8GE_S.js} +1 -1
  154. package/dist/client/assets/content-CI4gLEWi.js +1 -0
  155. package/dist/client/assets/content-CLCtp9Rb.js +1 -0
  156. package/dist/client/assets/content-C_FAGTNk.js +1 -0
  157. package/dist/client/assets/content-CnnzWOE3.js +1 -0
  158. package/dist/client/assets/content-DKlY98pO.js +1 -0
  159. package/dist/client/assets/content-Df7ndXTG.js +1 -0
  160. package/dist/client/assets/content-DkZDzzx3.js +1 -0
  161. package/dist/client/assets/content-DnGmb2L0.js +1 -0
  162. package/dist/client/assets/content-Ds-zs-Ss.js +1 -0
  163. package/dist/client/assets/content-JIWSyC0f.js +1 -0
  164. package/dist/client/assets/content-Q3TIYC8q.js +1 -0
  165. package/dist/client/assets/content-evaBfvxD.js +1 -0
  166. package/dist/client/assets/{context-budget-DX_fwUs3.js → context-budget-DqxWzalx.js} +1 -1
  167. package/dist/client/assets/{conversation-icons-tp9BX6X2.js → conversation-icons-DHGc9wbT.js} +1 -1
  168. package/dist/client/assets/conversation-model-C2KuZUXc.js +1 -0
  169. package/dist/client/assets/conversation-motion-features-BJnHs3Ul.js +1 -0
  170. package/dist/client/assets/{copy-CWWAJ75H.js → copy-BzdzWsQd.js} +1 -1
  171. package/dist/client/assets/{cpu-DrqejfkB.js → cpu-CHFIGw87.js} +1 -1
  172. package/dist/client/assets/{createLucideIcon-DezKXSG2.js → createLucideIcon-Dv8H8m7J.js} +1 -1
  173. package/dist/client/assets/discover-DutlV0ZU.js +2 -0
  174. package/dist/client/assets/embed-entry-CJG7WEVw.js +2 -0
  175. package/dist/client/assets/{external-link-Dp_a2vRZ.js → external-link-BvX5PfLh.js} +1 -1
  176. package/dist/client/assets/{eye-BRyD0jno.js → eye-C9cGk5z6.js} +1 -1
  177. package/dist/client/assets/{file-code-corner-muIVH_xO.js → file-code-corner-jlGFdr8d.js} +1 -1
  178. package/dist/client/assets/{file-text-CqJgwxmv.js → file-text-BHro8MkG.js} +1 -1
  179. package/dist/client/assets/{gauge-hU--hKVP.js → gauge-DSflSery.js} +1 -1
  180. package/dist/client/assets/{gestures-DN4hEeqv.js → gestures-YA5IIwp-.js} +1 -1
  181. package/dist/client/assets/{git-branch-CK5v8F2v.js → git-branch-Bc_eDIpG.js} +1 -1
  182. package/dist/client/assets/{home-moving-signal-BjDtEJUP.js → home-moving-signal-PHSqSBu_.js} +1 -1
  183. package/dist/client/assets/home-now-card-C_qsI6C6.js +1 -0
  184. package/dist/client/assets/{home-now-card-nano-C-r_bBg5.js → home-now-card-nano-Jmy7eJ6H.js} +1 -1
  185. package/dist/client/assets/{hooks-D46bABUP.js → hooks-ME7rmhpE.js} +1 -1
  186. package/dist/client/assets/{index-DvLtl7rV.js → index-C1VaWNuD.js} +2 -2
  187. package/dist/client/assets/index-C8UCRm2W.js +1 -0
  188. package/dist/client/assets/index-Cn0I2Hgi.js +1 -0
  189. package/dist/client/assets/index-Cx6Gbr6n.js +1 -0
  190. package/dist/client/assets/{inspector-panel-Dkc7rLvY.js → inspector-panel-CwrHjRaQ.js} +2 -2
  191. package/dist/client/assets/{keyboard-nav-BLYDhL3Z.js → keyboard-nav-B8sQ_8IF.js} +1 -1
  192. package/dist/client/assets/{lane-roster-store-DOdI1O13.js → lane-roster-store-DN2jxXF-.js} +1 -1
  193. package/dist/client/assets/{layers-CSsg3JVP.js → layers-CW2-qHsG.js} +1 -1
  194. package/dist/client/assets/{layout-grid-DOChPJdZ.js → layout-grid-BoVnPOk-.js} +1 -1
  195. package/dist/client/assets/left-BRu9pnqx.js +2 -0
  196. package/dist/client/assets/left-BjS1dKNV.js +2 -0
  197. package/dist/client/assets/left-CL-TVLJ7.js +1 -0
  198. package/dist/client/assets/left-DLpsDi55.js +1 -0
  199. package/dist/client/assets/left-DPcM9o8Y.js +1 -0
  200. package/dist/client/assets/left-MmTJf1tK.js +1 -0
  201. package/dist/client/assets/left-P80i5V8L.js +1 -0
  202. package/dist/client/assets/left-advisor-CbXVzAqS.js +1 -0
  203. package/dist/client/assets/left-agents-7mJsiNyr.js +1 -0
  204. package/dist/client/assets/left-default-COK26l3H.js +1 -0
  205. package/dist/client/assets/left-lanes-Dbdm9Veu.js +1 -0
  206. package/dist/client/assets/left-mission-DqGR5jby.js +1 -0
  207. package/dist/client/assets/library-COnWzUWv.js +1 -0
  208. package/dist/client/assets/{loader-circle-pM56HNhR.js → loader-circle-DmUG_YC7.js} +1 -1
  209. package/dist/client/assets/{local-agents-C8xAhbO5.js → local-agents-VP1-ZlPw.js} +1 -1
  210. package/dist/client/assets/{mentions-DG6OQrsc.js → mentions-BZ5SBMtc.js} +1 -1
  211. package/dist/client/assets/mesh-buckets-CLYS8Jx8.js +1 -0
  212. package/dist/client/assets/{mesh-ops-BZ1h5RQs.js → mesh-ops-CKSWgax2.js} +1 -1
  213. package/dist/client/assets/{mesh-view-store-ChUOASK8.js → mesh-view-store-CBM1za_N.js} +1 -1
  214. package/dist/client/assets/{message-circle-mZCv8tvB.js → message-circle-joGFxfj1.js} +1 -1
  215. package/dist/client/assets/{message-markup-C2LQDm_k.js → message-markup-DC0QFEZn.js} +1 -1
  216. package/dist/client/assets/{message-square-C7t_qtuj.js → message-square-BLiFqpe_.js} +1 -1
  217. package/dist/client/assets/{mission-control-store-nDLdUZPA.js → mission-control-store-CM8mQGg8.js} +1 -1
  218. package/dist/client/assets/model-CBkMvT1w.js +1 -0
  219. package/dist/client/assets/{observe-BpEm1INu.js → observe-BLmy4quB.js} +1 -1
  220. package/dist/client/assets/{page-status-E5jnk48p.js → page-status-BE0-J1xY.js} +1 -1
  221. package/dist/client/assets/{paperclip-C64lkcbM.js → paperclip-Br7wUDFl.js} +1 -1
  222. package/dist/client/assets/{persistent-state-EHXw8WNy.js → persistent-state-BubPQ7tT.js} +1 -1
  223. package/dist/client/assets/{plus-Co-dqKul.js → plus-BWKhylds.js} +1 -1
  224. package/dist/client/assets/profile-BCvk8jOQ.js +1 -0
  225. package/dist/client/assets/projects-inbox-BIW7nv-H.css +1 -0
  226. package/dist/client/assets/projects-inbox-DFbgVlXL.js +1 -0
  227. package/dist/client/assets/{proxy-BiW5suC7.js → proxy-DVDRhSRR.js} +1 -1
  228. package/dist/client/assets/{radio-BOxBQX-T.js → radio-CxIXS1nU.js} +1 -1
  229. package/dist/client/assets/{refresh-cw-DMxGzDwn.js → refresh-cw-Bkh7Cvnd.js} +1 -1
  230. package/dist/client/assets/resolve-panes-DhD5qmQO.js +1 -0
  231. package/dist/client/assets/resolve-sidebar-context-GqhZNRPY.js +1 -0
  232. package/dist/client/assets/right-B_08ilv6.js +1 -0
  233. package/dist/client/assets/right-Brm67HOL.js +1 -0
  234. package/dist/client/assets/right-BveAPKBW.js +1 -0
  235. package/dist/client/assets/right-CpTB_-Ya.js +1 -0
  236. package/dist/client/assets/right-CqC4Qdot.js +1 -0
  237. package/dist/client/assets/right-D91j9d5Y.js +1 -0
  238. package/dist/client/assets/{right-CimaAvQN.js → right-DVUq5374.js} +1 -1
  239. package/dist/client/assets/right-DaLRhYl3.js +1 -0
  240. package/dist/client/assets/right-Dt1wOwA5.js +1 -0
  241. package/dist/client/assets/right-DtzqIZQF.js +1 -0
  242. package/dist/client/assets/{rocket-BQm5_CvR.js → rocket-CnxqjX_K.js} +1 -1
  243. package/dist/client/assets/{router-B9vQkNJL.js → router-kfcaYqZr.js} +1 -1
  244. package/dist/client/assets/runtime-picker-C20lTGhV.js +1 -0
  245. package/dist/client/assets/{scope-views-1IYJdl41.js → scope-views-KPY85UUx.js} +1 -1
  246. package/dist/client/assets/{scout-voice-BVUqGhth.js → scout-voice-Cg1qfepC.js} +1 -1
  247. package/dist/client/assets/scoutbot-D7kGGyK_.js +3 -0
  248. package/dist/client/assets/{scoutbot-markdown-BQ_Ee2Ic.js → scoutbot-markdown-yb87JlSE.js} +1 -1
  249. package/dist/client/assets/{scroll-text-Dze_dXtQ.js → scroll-text-DFcBYy5J.js} +1 -1
  250. package/dist/client/assets/{search-CDko0PKE.js → search-FB2vVxCp.js} +1 -1
  251. package/dist/client/assets/{secondaryNavConfig-BoQ_zYR9.js → secondaryNavConfig-C0Srrmy8.js} +1 -1
  252. package/dist/client/assets/{selection-bridge-Din6yV3h.js → selection-bridge-qBGFCJv8.js} +1 -1
  253. package/dist/client/assets/{send-horizontal-CSjIm6xg.js → send-horizontal-CS7mxVhX.js} +1 -1
  254. package/dist/client/assets/{server-Bzj7lPIx.js → server-WY6gsbZz.js} +1 -1
  255. package/dist/client/assets/{session-catalog-DsaZJXZt.js → session-catalog-CG4oL_yN.js} +1 -1
  256. package/dist/client/assets/{session-table-BQfR7u6r.js → session-table-uJh3v-ly.js} +1 -1
  257. package/dist/client/assets/{settings-Dyvpkb1D.js → settings-DQEtqkM9.js} +1 -1
  258. package/dist/client/assets/{sliders-horizontal-C8njVwfg.js → sliders-horizontal-57e99_qO.js} +1 -1
  259. package/dist/client/assets/{sparkles-CETYrxGA.js → sparkles-D0vWLTyC.js} +1 -1
  260. package/dist/client/assets/{sse-CD9MMUxl.js → sse-B29iGBnw.js} +1 -1
  261. package/dist/client/assets/{system-surfaces-redesign-QVXNeGYw.css → system-surfaces-redesign-kuf3wuE_.css} +1 -1
  262. package/dist/client/assets/{tail-events-Ps8KpKah.js → tail-events-LK29oCKm.js} +1 -1
  263. package/dist/client/assets/{terminal-9GRS_Qdc.js → terminal-UDy4lzV1.js} +1 -1
  264. package/dist/client/assets/{terminal-relay-GYMIvKs1.js → terminal-relay-CXHMdain.js} +1 -1
  265. package/dist/client/assets/{terminal-screen-BLk4PAYt.css → terminal-screen-vMICbBJh.css} +1 -1
  266. package/dist/client/assets/{terminal-sessions-BQ6t92tJ.js → terminal-sessions-Bdt2W3Y4.js} +1 -1
  267. package/dist/client/assets/{terminal-takeover-_Jyys4me.js → terminal-takeover-BMeBjBB2.js} +1 -1
  268. package/dist/client/assets/{use-conversation-list-C9ABzjXI.js → use-conversation-list-UG-tMN67.js} +1 -1
  269. package/dist/client/assets/{use-fleet-active-asks-DAspZQjE.js → use-fleet-active-asks-CCGrll5q.js} +1 -1
  270. package/dist/client/assets/{use-mesh-ops-items-Dh54ymEp.js → use-mesh-ops-items-BjyeFJTz.js} +1 -1
  271. package/dist/client/assets/{use-reduced-motion-x8pJMVrG.js → use-reduced-motion-CPoX8iV2.js} +1 -1
  272. package/dist/client/assets/{use-scout-dev-flags-DhCbiDK3.js → use-scout-dev-flags-DTseRrFi.js} +1 -1
  273. package/dist/client/assets/{useAgentHoverCard-DoBwV0LX.js → useAgentHoverCard-BgTLNcF-.js} +1 -1
  274. package/dist/client/assets/useContentSecondaryNav-CoIoz7JU.js +1 -0
  275. package/dist/client/assets/useEmbedHeadline-DuUnwTB7.js +1 -0
  276. package/dist/client/assets/{usePierreRuntime-ejq9dCWV.js → usePierreRuntime-35AHf9RQ.js} +1 -1
  277. package/dist/client/assets/{wrench-DjkoAOQt.js → wrench-BfVeded5.js} +1 -1
  278. package/dist/client/assets/{x-CAbNespN.js → x-DgmmnPKt.js} +1 -1
  279. package/dist/client/assets/{xterm-Cf-ngcGP.js → xterm-DnJJmrCA.js} +1 -1
  280. package/dist/client/assets/{zap-Cq8eWkcF.js → zap-Bcja1lHG.js} +1 -1
  281. package/dist/client/index.html +1 -1
  282. package/dist/main.mjs +5180 -9874
  283. package/dist/node/main.mjs +18 -2
  284. package/dist/pairing-runtime-controller.mjs +31 -2
  285. package/dist/runtime/broker-daemon.mjs +87 -13
  286. package/dist/scout-control-plane-web.mjs +35 -3
  287. package/package.json +2 -5
  288. package/dist/client/assets/ActivityScreen-BnoaUkVZ.js +0 -1
  289. package/dist/client/assets/AgentConfigurationScreen-CuZJy07q.js +0 -1
  290. package/dist/client/assets/AgentDefinitionsWorkspace-Iyl4BesU.js +0 -1
  291. package/dist/client/assets/AgentFloorView-YT-Jjccf.js +0 -1
  292. package/dist/client/assets/AgentInfoScreen-Dr99gQEZ.js +0 -1
  293. package/dist/client/assets/AgentLanesEmbedScreen-Dgcm7zd_.js +0 -1
  294. package/dist/client/assets/AgentLanesView-CetZZDyF.js +0 -2
  295. package/dist/client/assets/AgentMasterScreen-DJPnstoD.js +0 -1
  296. package/dist/client/assets/AgentsConsole-CsYOoFJi.js +0 -1
  297. package/dist/client/assets/AgentsScreen-k8LvBuU_.js +0 -1
  298. package/dist/client/assets/AgentsSubnav-C4xpQhsv.js +0 -1
  299. package/dist/client/assets/BriefingDetailScreen-CUCXO-KH.js +0 -1
  300. package/dist/client/assets/BrokerScreen-BPbOHhCS.js +0 -5
  301. package/dist/client/assets/CodeScreen-CeuO3EhR.js +0 -1
  302. package/dist/client/assets/ConversationComposer-CXPKx86g.js +0 -1
  303. package/dist/client/assets/ConversationFeedRows-WrH-YI3L.js +0 -1
  304. package/dist/client/assets/ConversationHeader-BQWzGzLK.js +0 -1
  305. package/dist/client/assets/ConversationScreen-CR9pWB65.js +0 -2
  306. package/dist/client/assets/CrewWorkspaces-CkQDhyie.css +0 -1
  307. package/dist/client/assets/CrewWorkspaces-NKujRzwh.js +0 -1
  308. package/dist/client/assets/FlightObserveScreen-6mGnmWQA.js +0 -1
  309. package/dist/client/assets/HarnessesScreen-CHTuv8p6.js +0 -1
  310. package/dist/client/assets/KnowledgeSearchScreen-D3o3IODW.js +0 -1
  311. package/dist/client/assets/LaneTraceDetailSheet-BUgHz-sd.js +0 -1
  312. package/dist/client/assets/MeshScreen-BcxPkhm6.js +0 -1
  313. package/dist/client/assets/MessagesScreen-Bb5l13MO.js +0 -1
  314. package/dist/client/assets/MissionControlView-E3V7bENU.js +0 -1
  315. package/dist/client/assets/MissionFocusOverlay-h15sQFvP.js +0 -1
  316. package/dist/client/assets/MissionLeftAgentRow-KPdk9rSa.js +0 -1
  317. package/dist/client/assets/NewChatComposer-_Stj0fZy.js +0 -19
  318. package/dist/client/assets/OpsAgentsView-DI5wu1si.js +0 -1
  319. package/dist/client/assets/OpsScreen-D8fQafCl.js +0 -1
  320. package/dist/client/assets/OpsSubnav-1K4Jaf__.js +0 -1
  321. package/dist/client/assets/ProjectAgentProfile-Bdjd_dAx.js +0 -1
  322. package/dist/client/assets/ProjectAgentProfileBar-k2QHHHsQ.js +0 -1
  323. package/dist/client/assets/ProjectAgentProfileHero-Bpxk1ui2.js +0 -1
  324. package/dist/client/assets/ProjectsInbox-C_bMHLCc.js +0 -2
  325. package/dist/client/assets/ProjectsRail-J-aH_pxT.js +0 -1
  326. package/dist/client/assets/ProjectsScreen-cVUkGbPz.js +0 -1
  327. package/dist/client/assets/ProjectsThreadAside-_ourdM-Q.js +0 -1
  328. package/dist/client/assets/Provider-CtXJeLrP.js +0 -1
  329. package/dist/client/assets/RawSessionsTable-CDyrom-F.js +0 -1
  330. package/dist/client/assets/RealtimeVoiceScreen-DBl3DN1H.js +0 -1
  331. package/dist/client/assets/SessionRefScreen-COVQMbtE.js +0 -1
  332. package/dist/client/assets/SessionsScreen--5OJ3p3v.js +0 -1
  333. package/dist/client/assets/SettingsScreen-CCxzy5IU.js +0 -1
  334. package/dist/client/assets/Terminal-DouZeNxc.js +0 -1
  335. package/dist/client/assets/TerminalEmbedScreen-dMNUbzXr.js +0 -1
  336. package/dist/client/assets/agent-specialization-BujJVUTD.js +0 -1
  337. package/dist/client/assets/agents-project-COzHxZAF.css +0 -1
  338. package/dist/client/assets/agents-project-model-UYiamtrU.js +0 -1
  339. package/dist/client/assets/content-9K38QchR.js +0 -1
  340. package/dist/client/assets/content-BRgnyXWh.js +0 -1
  341. package/dist/client/assets/content-BWPNyXJ0.js +0 -1
  342. package/dist/client/assets/content-BdkI07v3.js +0 -1
  343. package/dist/client/assets/content-C4oWa8SB.js +0 -1
  344. package/dist/client/assets/content-C9ijJxyl.js +0 -1
  345. package/dist/client/assets/content-CFZ4rghn.js +0 -1
  346. package/dist/client/assets/content-CIqu_Ci_.js +0 -1
  347. package/dist/client/assets/content-CnJF9DGO.js +0 -1
  348. package/dist/client/assets/content-CriW8Y8u.js +0 -1
  349. package/dist/client/assets/content-DDCyPPk_.js +0 -1
  350. package/dist/client/assets/content-DtcZeh5m.js +0 -1
  351. package/dist/client/assets/content-U9tsdtle.js +0 -1
  352. package/dist/client/assets/content-hFLK3CON.js +0 -1
  353. package/dist/client/assets/content-p00KQrtD.js +0 -1
  354. package/dist/client/assets/conversation-model-Dc02NsGp.js +0 -1
  355. package/dist/client/assets/conversation-motion-features-D9-RmBSq.js +0 -1
  356. package/dist/client/assets/discover-C2CZO4Tk.js +0 -2
  357. package/dist/client/assets/embed-entry-BSMUykuG.js +0 -2
  358. package/dist/client/assets/home-now-card-nF8OotI-.js +0 -1
  359. package/dist/client/assets/index-CPrU5q04.js +0 -1
  360. package/dist/client/assets/index-kL1WLbeS.js +0 -1
  361. package/dist/client/assets/index-zvhpRHao.js +0 -1
  362. package/dist/client/assets/left-B-SdEJSJ.js +0 -1
  363. package/dist/client/assets/left-B3wSE6ql.js +0 -1
  364. package/dist/client/assets/left-BNRFiRsb.js +0 -2
  365. package/dist/client/assets/left-BggzhgXN.js +0 -1
  366. package/dist/client/assets/left-CARCvvxS.js +0 -2
  367. package/dist/client/assets/left-CpokZYHt.js +0 -1
  368. package/dist/client/assets/left-YT7mIGuH.js +0 -1
  369. package/dist/client/assets/left-advisor-CCY0vkcO.js +0 -1
  370. package/dist/client/assets/left-agents-trhO5sL8.js +0 -1
  371. package/dist/client/assets/left-default-CG33elBs.js +0 -1
  372. package/dist/client/assets/left-lanes-CitMgeTp.js +0 -1
  373. package/dist/client/assets/left-mission-Zl2m_5eU.js +0 -1
  374. package/dist/client/assets/library-DkALuCh5.js +0 -1
  375. package/dist/client/assets/mesh-buckets-6y3ZIibI.js +0 -1
  376. package/dist/client/assets/mesh-roster-Bc7T4b7z.js +0 -1
  377. package/dist/client/assets/model-IGCUEsMy.js +0 -1
  378. package/dist/client/assets/profile-APxDsN2P.js +0 -1
  379. package/dist/client/assets/projects-inbox-Cg4X2lUQ.js +0 -1
  380. package/dist/client/assets/projects-inbox-DRBl2N85.css +0 -1
  381. package/dist/client/assets/resolve-panes-DeVJbS9c.js +0 -1
  382. package/dist/client/assets/resolve-sidebar-context-BQe5J6xF.js +0 -1
  383. package/dist/client/assets/right-Bmfd3pjP.js +0 -1
  384. package/dist/client/assets/right-BqI-nr9G.js +0 -1
  385. package/dist/client/assets/right-BuCgE0fZ.js +0 -1
  386. package/dist/client/assets/right-BwlW6E57.js +0 -1
  387. package/dist/client/assets/right-C0ybUw0j.js +0 -1
  388. package/dist/client/assets/right-CdkcrmeD.js +0 -1
  389. package/dist/client/assets/right-CkCCPbCX.js +0 -1
  390. package/dist/client/assets/right-D3eSiy41.js +0 -1
  391. package/dist/client/assets/right-Dz_xD0Vj.js +0 -1
  392. package/dist/client/assets/scoutbot-BJIamJOH.js +0 -3
  393. package/dist/client/assets/text-BP3oyl8-.js +0 -1
  394. package/dist/client/assets/useContentSecondaryNav-pZe2Zfk1.js +0 -1
  395. /package/dist/client/assets/{text-BYAFNLNq.css → runtime-picker-BYAFNLNq.css} +0 -0
@@ -0,0 +1 @@
1
+ import{r,j as o}from"./index-C1VaWNuD.js";/* empty css */import{a as j}from"./api-Co9aQ2Jw.js";import{a as v}from"./sse-B29iGBnw.js";import{u as N}from"./Provider-D0bB7q6y.js";import{u as g}from"./use-fleet-active-asks-CCGrll5q.js";import{i as w}from"./colors-BtO5_zlx.js";import{R as a}from"./RailRow-B88JVr62.js";import"./perf-PX8Rx0EP.js";import"./index-BWHgHrtv.js";import"./router-kfcaYqZr.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Bdt2W3Y4.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D7kGGyK_.js";import"./NewChatComposer-D2Ah4T-W.js";import"./runtime-picker-C20lTGhV.js";import"./scout-voice-Cg1qfepC.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DmUG_YC7.js";import"./createLucideIcon-Dv8H8m7J.js";import"./conversation-model-C2KuZUXc.js";import"./time-Dhsh_2EG.js";import"./index-Cx6Gbr6n.js";import"./HarnessMark-DttReffF.js";import"./NewChatOrigin-DCn5cWPZ.js";import"./keyboard-nav-B8sQ_8IF.js";import"./x-DgmmnPKt.js";import"./chevron-down-D120PY4g.js";import"./search-FB2vVxCp.js";import"./file-text-BHro8MkG.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-D8iB6SMt.js";import"./TextDocumentSurface-2X1Gw4eA.js";import"./chevron-right-CowuvuE6.js";import"./code-xml-CkkNdRmu.js";import"./arrow-left-eToA6GxC.js";import"./arrow-right-DTX42clh.js";import"./chunk-HRAB3GC3-KjjrTLCU.js";import"./AgentAvatar-Dz79iTxB.js";import"./SpriteAvatar-DFO4Kb4Z.js";import"./CrewAvatar-CZ_faQ_s.js";const $=new Set(["message.posted","conversation.upserted","agent.updated"]);function k(e){const n=x(e.cwd),m=x(e.projectRoot);return e.authorityNodeName??e.homeNodeName??e.authorityNodeId??e.homeNodeId??e.transport??n??m??"local"}function R(e){return e.project??e.role??e.agentClass??"Unassigned"}function x(e){if(!e)return null;const n=e.split("/").filter(Boolean);return n[n.length-1]??null}function xt(){const{agents:e,navigate:n}=N(),[m,f]=r.useState([]),p=g(),c=r.useCallback(async()=>{const t=await j("/api/conversations").catch(()=>[]);f(t)},[]);r.useEffect(()=>{c()},[c]),v(t=>$.has(t.kind),()=>{c()});const h=r.useMemo(()=>e.filter(t=>w(t.state)).length,[e]),l=r.useMemo(()=>{let t=0;for(const s of p.asks)(s.status==="failed"||s.status==="needs_attention")&&(t+=1);return t},[p]),u=r.useMemo(()=>{const t=new Map;for(const s of e){const i=R(s);t.set(i,(t.get(i)??0)+1)}return[...t.entries()].sort((s,i)=>i[1]-s[1]).slice(0,8)},[e]),d=r.useMemo(()=>{const t=new Map;for(const s of e){const i=k(s);t.set(i,(t.get(i)??0)+1)}return[...t.entries()].sort((s,i)=>i[1]-s[1]).slice(0,8)},[e]);return o.jsxs("div",{className:"ctx-panel",children:[o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Agents"}),o.jsx(a,{name:"Overview",meta:`${e.length}`,tone:"neutral",onClick:()=>n({view:"inbox"})}),o.jsx(a,{name:"Agents",meta:`${h}`,tone:"callable",active:!0,onClick:()=>n({view:"ops",mode:"agents"})}),o.jsx(a,{name:"Sessions",meta:`${m.length}`,tone:"neutral",onClick:()=>n({view:"sessions"})}),o.jsx(a,{name:"Alerts",meta:`${l}`,tone:l>0?"in_turn":"neutral",unread:l>0,onClick:()=>n({view:"activity"})})]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Projects"}),u.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No projects"}):u.map(([t,s])=>o.jsx(a,{name:t,meta:`${s}`,tone:"neutral",title:`${s} agent${s===1?"":"s"} on ${t}`},t))]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Machines"}),d.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No machines"}):d.map(([t,s])=>o.jsx(a,{name:t,meta:`${s}`,tone:"neutral",title:`${s} agent${s===1?"":"s"} on ${t}`},t))]})]})}export{xt as OpsAgentsLeft};
@@ -0,0 +1 @@
1
+ import{r,j as o}from"./index-C1VaWNuD.js";/* empty css */import{a as h}from"./api-Co9aQ2Jw.js";import{n as f}from"./colors-BtO5_zlx.js";import{r as g,a as j}from"./operator-attention-RqieiSY8.js";import{u as N}from"./sse-B29iGBnw.js";import{t as c}from"./time-Dhsh_2EG.js";import{u as A}from"./Provider-D0bB7q6y.js";import{o as l}from"./openContent-C6XO6kr5.js";import{R as m}from"./RailRow-B88JVr62.js";import"./perf-PX8Rx0EP.js";import"./index-BWHgHrtv.js";import"./router-kfcaYqZr.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Bdt2W3Y4.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D7kGGyK_.js";import"./NewChatComposer-D2Ah4T-W.js";import"./runtime-picker-C20lTGhV.js";import"./scout-voice-Cg1qfepC.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DmUG_YC7.js";import"./createLucideIcon-Dv8H8m7J.js";import"./conversation-model-C2KuZUXc.js";import"./index-Cx6Gbr6n.js";import"./HarnessMark-DttReffF.js";import"./NewChatOrigin-DCn5cWPZ.js";import"./keyboard-nav-B8sQ_8IF.js";import"./x-DgmmnPKt.js";import"./chevron-down-D120PY4g.js";import"./search-FB2vVxCp.js";import"./file-text-BHro8MkG.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-D8iB6SMt.js";import"./TextDocumentSurface-2X1Gw4eA.js";import"./chevron-right-CowuvuE6.js";import"./code-xml-CkkNdRmu.js";import"./arrow-left-eToA6GxC.js";import"./arrow-right-DTX42clh.js";import"./chunk-HRAB3GC3-KjjrTLCU.js";import"./AgentAvatar-Dz79iTxB.js";import"./SpriteAvatar-DFO4Kb4Z.js";import"./CrewAvatar-CZ_faQ_s.js";const w=[{name:"Control",route:{view:"ops",mode:"mission"},active:e=>e.view==="ops"&&(e.mode===void 0||e.mode==="mission")},{name:"Dispatch",route:{view:"broker"},active:e=>e.view==="broker"},{name:"Mesh",route:{view:"mesh"},active:e=>e.view==="mesh"},{name:"Tail",route:{view:"ops",mode:"tail"},active:e=>e.view==="ops"&&e.mode==="tail"},{name:"Runtime",route:{view:"ops",mode:"atop"},active:e=>e.view==="ops"&&e.mode==="atop"}];function ut(){const{navigate:e,route:n}=A(),[p,d]=r.useState(null),s=r.useCallback(async()=>{const t=await h("/api/fleet").catch(()=>null);d(t)},[]);r.useEffect(()=>{s()},[s]),N(t=>{(t.kind==="message.posted"||t.kind==="flight.updated"||t.kind==="collaboration.event.appended")&&s()});const i=p?.needsAttention??[],a=(p?.activeAsks??[]).filter(t=>t.status!=="needs_attention"),u=t=>{l(e,g(t),{returnTo:n})},v=t=>{l(e,j(t),{returnTo:n})};return o.jsxs("div",{className:"ctx-panel ctx-panel--ops",children:[o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Surfaces"}),w.map(t=>o.jsx(m,{name:t.name,tone:"neutral",active:t.active(n),onClick:()=>e(t.route)},t.name))]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsxs("div",{className:"ctx-panel-section-label",children:["Needs you",i.length>0&&o.jsx("span",{className:"ctx-panel-count",children:i.length})]}),i.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"All clear"}):i.slice(0,4).map(t=>{const x=t.agentName??t.agentId??"operator";return o.jsx(m,{name:t.title,meta:c(t.updatedAt),tone:"in_turn",unread:!0,title:`${x} · ${t.kind}`,onClick:()=>u(t)},t.recordId)})]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsxs("div",{className:"ctx-panel-section-label",children:["Active",a.length>0&&o.jsx("span",{className:"ctx-panel-count",children:a.length})]}),a.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No active requests"}):a.slice(0,10).map(t=>o.jsx(m,{name:t.task,meta:c(t.updatedAt),tone:f(t.agentState),title:`${t.agentName??t.agentId} · ${t.statusLabel}`,onClick:()=>v(t)},t.invocationId))]})]})}export{ut as OpsDefaultLeft};
@@ -0,0 +1 @@
1
+ import{r as f,j as t}from"./index-C1VaWNuD.js";/* empty css */import{t as x}from"./time-Dhsh_2EG.js";import{u as b}from"./Provider-D0bB7q6y.js";import{R as g}from"./RailRow-B88JVr62.js";import{S as v}from"./SpriteAvatar-DFO4Kb4Z.js";import{n as L}from"./colors-BtO5_zlx.js";import{b as h,c as j,l as n,d as N}from"./agent-lanes-model-tc-1hE6q.js";import{u as _,b as A,g as p}from"./lane-roster-store-DN2jxXF-.js";import"./router-kfcaYqZr.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Bdt2W3Y4.js";import"./api-Co9aQ2Jw.js";import"./sse-B29iGBnw.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D7kGGyK_.js";import"./NewChatComposer-D2Ah4T-W.js";import"./runtime-picker-C20lTGhV.js";import"./scout-voice-Cg1qfepC.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DmUG_YC7.js";import"./createLucideIcon-Dv8H8m7J.js";import"./conversation-model-C2KuZUXc.js";import"./index-Cx6Gbr6n.js";import"./HarnessMark-DttReffF.js";import"./NewChatOrigin-DCn5cWPZ.js";import"./keyboard-nav-B8sQ_8IF.js";import"./x-DgmmnPKt.js";import"./chevron-down-D120PY4g.js";import"./search-FB2vVxCp.js";import"./file-text-BHro8MkG.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-D8iB6SMt.js";import"./TextDocumentSurface-2X1Gw4eA.js";import"./chevron-right-CowuvuE6.js";import"./code-xml-CkkNdRmu.js";import"./arrow-left-eToA6GxC.js";import"./arrow-right-DTX42clh.js";import"./chunk-HRAB3GC3-KjjrTLCU.js";import"./AgentAvatar-Dz79iTxB.js";import"./CrewAvatar-CZ_faQ_s.js";import"./context-budget-DqxWzalx.js";import"./lane-observe-vfyACHi0.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";function c(s,e,i){const a=`[data-lane-id="${s.replace(/["\\]/g,"\\$&")}"]`,r=typeof document<"u"?document.querySelector(a):null;if(r){r.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"}),r.focus();return}e&&i({view:"agents-v2",agentId:e,tab:"profile"})}function R(s){return s.filter(e=>!h(e)&&j(e)).sort((e,i)=>{const a=(i.updatedAt??0)-(e.updatedAt??0);return a!==0?a:n(e,"scout").localeCompare(n(i,"scout"))}).map(e=>({id:e.id,label:n(e,"scout"),statusLabel:N(e,"scout"),tone:L(e.state,e),agentId:e.id,updatedAt:e.updatedAt??void 0}))}function jo(){const{agents:s,navigate:e}=b(),i=_(),a=A(),r=f.useMemo(()=>R(s),[s]),l=i??r,d=l.some(o=>o.floor);return t.jsx("div",{className:"ctx-panel ctx-panel--ops",children:t.jsxs("section",{className:"ctx-panel-section",children:[t.jsxs("div",{className:"ctx-panel-section-label",children:[d?"Fleet":"Lanes",l.length>0&&t.jsx("span",{className:"ctx-panel-count",children:l.length})]}),l.length===0?t.jsx("div",{className:"ctx-panel-empty",children:"No active lanes"}):l.map(o=>o.floor?t.jsxs("button",{type:"button",className:`agent-floor__ledger-row is-rail${a===o.id?" is-focus":""}`,onClick:()=>{const m=p();m?m.onSelect(o.id):c(o.id,o.agentId,e)},onPointerEnter:()=>p()?.onHover(o.id),onPointerLeave:()=>p()?.onHover(null),children:[t.jsxs("span",{className:"agent-floor__ledger-id",children:[t.jsx(v,{name:o.label,size:16,tile:!0}),t.jsx("span",{className:"agent-floor__ledger-name",children:o.label}),t.jsx("span",{className:`agent-floor__card-dot${o.floor.live?" is-live":""}`})]}),t.jsx("span",{className:"agent-floor__ledger-strip",children:o.floor.strip.slice(-6).map((m,u)=>t.jsx("span",{className:`agent-floor__ledger-cell is-${m}`},u))})]},o.id):t.jsx(g,{name:o.label,sub:o.statusLabel||void 0,meta:o.updatedAt?x(o.updatedAt):void 0,tone:o.tone,title:o.statusLabel,onClick:()=>c(o.id,o.agentId,e)},o.id))]})})}export{jo as OpsLanesLeft};
@@ -0,0 +1 @@
1
+ import{r as c,j as s}from"./index-C1VaWNuD.js";/* empty css */import{n as S}from"./colors-BtO5_zlx.js";import{u as M,s as A,a as h,b as I,M as C,c as k,d as w,e as F,r as R,t as E}from"./mission-control-store-CM8mQGg8.js";import{u as K}from"./Provider-D0bB7q6y.js";import{a as T,b as q,r as B,m as D}from"./keyboard-nav-B8sQ_8IF.js";import{MissionLeftAgentRow as L}from"./MissionLeftAgentRow-CbQm4BLv.js";import"./router-kfcaYqZr.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Bdt2W3Y4.js";import"./api-Co9aQ2Jw.js";import"./sse-B29iGBnw.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D7kGGyK_.js";import"./NewChatComposer-D2Ah4T-W.js";import"./runtime-picker-C20lTGhV.js";import"./scout-voice-Cg1qfepC.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DmUG_YC7.js";import"./createLucideIcon-Dv8H8m7J.js";import"./conversation-model-C2KuZUXc.js";import"./time-Dhsh_2EG.js";import"./index-Cx6Gbr6n.js";import"./HarnessMark-DttReffF.js";import"./NewChatOrigin-DCn5cWPZ.js";import"./x-DgmmnPKt.js";import"./chevron-down-D120PY4g.js";import"./search-FB2vVxCp.js";import"./file-text-BHro8MkG.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-D8iB6SMt.js";import"./TextDocumentSurface-2X1Gw4eA.js";import"./chevron-right-CowuvuE6.js";import"./code-xml-CkkNdRmu.js";import"./arrow-left-eToA6GxC.js";import"./arrow-right-DTX42clh.js";import"./chunk-HRAB3GC3-KjjrTLCU.js";import"./page-status-BE0-J1xY.js";import"./RailRow-B88JVr62.js";import"./AgentAvatar-Dz79iTxB.js";import"./SpriteAvatar-DFO4Kb4Z.js";import"./CrewAvatar-CZ_faQ_s.js";function Fe(){const{navigate:r}=K(),i=M(),o=i.visibleAgents,m=c.useRef(null),p=c.useRef(null),v=T(),x=D(()=>m.current);q(c.useCallback(()=>p.current,[]));const[d,y]=c.useState(null),u=i.activityFilter==="active",a=i.selectedIds.length,j=e=>{y(t=>t===e?null:e)},N=()=>{if(a===0)return;const t=o.filter(l=>i.selectedIds.includes(l.id)).map(l=>l.handle??l.name).filter(Boolean).join("|");t&&r({view:"ops",mode:"tail",tailQuery:t})};return s.jsxs("div",{className:"ctx-panel ml-panel",children:[s.jsxs("div",{className:"ml-section",children:[s.jsx("div",{className:"ml-section-label",children:"Source"}),s.jsx("div",{className:"ml-chips ml-chips--primary",children:["all","scout","native"].map(e=>s.jsx("button",{type:"button",className:["ml-chip",i.sourceFilter===e&&"ml-chip--active"].filter(Boolean).join(" "),onClick:()=>A(e),children:e==="all"?"All":e==="scout"?"Scout":"Native"},e))})]}),s.jsx("div",{className:"ctx-panel-search",children:s.jsx("input",{ref:p,type:"text",className:"ctx-panel-search-input",placeholder:"Filter agents… (press /)",value:i.query,onChange:e=>h(e.target.value),onKeyDown:e=>{x(e),e.key==="Escape"&&i.query&&h("")}})}),s.jsx("div",{className:"ml-section ml-section--secondary",children:s.jsxs("div",{className:"ml-chips ml-chips--secondary",children:[["active","live","all"].map(e=>s.jsx("button",{type:"button",className:["ml-chip ml-chip--ghost",i.activityFilter===e&&"ml-chip--ghost-active"].filter(Boolean).join(" "),onClick:()=>I(e),children:e==="active"?"Active":e==="live"?"Live":"Any"},e)),u&&s.jsx("span",{className:"ml-divider","aria-hidden":!0}),u&&C.map(e=>s.jsx("button",{type:"button",className:["ml-chip ml-chip--ghost",i.activityWindowMs===e.value&&"ml-chip--ghost-active"].filter(Boolean).join(" "),onClick:()=>k(e.value),children:e.label},e.value))]})}),s.jsxs("div",{className:"ml-section ml-section--grouping",children:[s.jsx("div",{className:"ml-section-label",children:"Order by"}),s.jsx("div",{className:"ml-chips ml-chips--grouping",children:[["activity","Activity"],["workspace","Project"],["harness","Harness"],["state","Status"],["source","Source"]].map(([e,t])=>s.jsx("button",{type:"button",className:["ml-chip","ml-chip--group",i.groupMode===e&&"ml-chip--group-active"].filter(Boolean).join(" "),"aria-pressed":i.groupMode===e,onClick:()=>w(e),children:t},e))})]}),a>0?s.jsxs("div",{className:"ml-selection",children:[s.jsxs("span",{className:"ml-selection-label",children:[a," selected"]}),s.jsxs("div",{className:"ml-selection-actions",children:[s.jsx("button",{type:"button",className:"ml-selection-btn ml-selection-btn--primary",onClick:N,children:"Tail ↗"}),s.jsx("button",{type:"button",className:"ml-selection-btn",onClick:F,children:"Clear"})]})]}):s.jsxs("div",{className:"ml-count",children:[o.length," visible",s.jsx("span",{className:"ml-count-hint",children:"⌘-click · ⌘A all"})]}),s.jsx("div",{ref:m,className:"ctx-panel-list ctx-panel-list--scroll",onKeyDown:v,children:o.length===0?s.jsx("div",{className:"ctx-panel-empty",children:i.query?"No match":"Nothing visible"}):o.map((e,t)=>{const l=e.id===d,b=o.some(n=>n.id===d),g=i.selectedIds.includes(e.id),f=S(e.state);return s.jsx(L,{agent:e,state:f,isExpanded:l,isSelected:g,tabIndex:B(l,b,t===0),onToggle:n=>{n.metaKey||n.ctrlKey||n.shiftKey?E(e.id):j(e.id)},onReveal:()=>R(e.id),onOpen:()=>r({view:"agents-v2",agentId:e.id})},e.id)})})]})}export{Fe as OpsMissionLeft};
@@ -0,0 +1 @@
1
+ import{r as l,j as e}from"./index-C1VaWNuD.js";/* empty css */import{t as O}from"./time-Dhsh_2EG.js";import{u as H,b as $}from"./Provider-D0bB7q6y.js";import{S as G}from"./SpriteAvatar-DFO4Kb4Z.js";import{H as R}from"./HarnessMark-DttReffF.js";import{AgentSessions as J}from"./AgentSessions-DV9v34aq.js";import{a as T}from"./api-Co9aQ2Jw.js";import{g as q,p as V,b as _}from"./model-CBkMvT1w.js";import{c as Q,e as X,f as Y,g as Z}from"./NewChatComposer-D2Ah4T-W.js";import"./router-kfcaYqZr.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Bdt2W3Y4.js";import"./sse-B29iGBnw.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-D7kGGyK_.js";import"./DocumentFocusViewer-D8iB6SMt.js";import"./createLucideIcon-Dv8H8m7J.js";import"./TextDocumentSurface-2X1Gw4eA.js";import"./file-text-BHro8MkG.js";import"./x-DgmmnPKt.js";import"./chevron-right-CowuvuE6.js";import"./code-xml-CkkNdRmu.js";import"./arrow-left-eToA6GxC.js";import"./arrow-right-DTX42clh.js";import"./scout-voice-Cg1qfepC.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-B8sQ_8IF.js";import"./chunk-HRAB3GC3-KjjrTLCU.js";import"./openContent-C6XO6kr5.js";import"./clipboard-e3fSpeo7.js";import"./runtime-picker-C20lTGhV.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DmUG_YC7.js";import"./conversation-model-C2KuZUXc.js";import"./index-Cx6Gbr6n.js";import"./NewChatOrigin-DCn5cWPZ.js";import"./chevron-down-D120PY4g.js";import"./search-FB2vVxCp.js";const ee=30*6e4,D=a=>a==="pi"?"grok":a,K=a=>a?a.replace(/^claude-/,"").replace(/-\d{8}$/,""):null;function qe({agents:a,fleet:d,sessionByAgentId:c,sessions:A,discovery:k,loading:C,navigate:N,selectedAgentId:S}){const{route:u,reload:p,openContextCapture:j}=H(),m=u.view==="agents-v2"?u.projectSlug:void 0,v=l.useMemo(()=>{const n=new Map;for(const b of d?.activeAsks??[]){const i=n.get(b.agentId)??[];i.push(b),n.set(b.agentId,i)}return n},[d?.activeAsks]),f=l.useMemo(()=>a.map(n=>Q(n,c.get(n.id)??null,v.get(n.id)??[])),[v,a,c]),g=l.useMemo(()=>X(k,Date.now()),[k]),h=l.useMemo(()=>Y(f,A,g),[f,A,g]),w=l.useMemo(()=>h.find(n=>n.slice.slug===m)??h[0]??null,[h,m]),r=w?.slice.slug,M={selectAgent:n=>N({view:"agents-v2",agentId:n.agent.id,...r?{projectSlug:r}:{}}),openAgentPage:n=>N({view:"agents-v2",agentId:n.agent.id,tab:"profile"}),startSession:n=>j({intent:"new-task",projectPath:n.agent.projectRoot??n.agent.cwd??void 0}),openSession:n=>N(n),configureAgent:n=>N({view:"agents-v2",agentId:n.agent.id,tab:"config"}),restartAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/config`,{method:"POST",body:JSON.stringify({restart:!0})}).catch(()=>{})},stopAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/interrupt`,{method:"POST",body:JSON.stringify({})}).catch(()=>{})},archiveAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/archive`,{method:"POST",body:JSON.stringify({archived:!0})}).then(()=>p()).catch(()=>{})}};return!w&&C?e.jsx("div",{className:"s-aproj","aria-busy":"true",children:e.jsx("div",{className:"ap-loading",role:"status","aria-label":"Loading agents",children:Array.from({length:7},(n,b)=>e.jsx("span",{"aria-hidden":"true"},b))})}):w?e.jsx("div",{className:"s-aproj",children:e.jsx(te,{project:w,selectedAgentId:S,gestures:M,sessions:A})}):e.jsx("div",{className:"s-aproj",children:e.jsx("div",{className:"ap-empty",children:"No agents discovered yet — they appear here as harnesses register and work."})})}function se(){return e.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[e.jsx("circle",{cx:"7",cy:"7",r:"4.2",stroke:"currentColor",strokeWidth:"1.3"}),e.jsx("path",{d:"m10.5 10.5 3 3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}function ae({tone:a}){return a==="idle"?null:e.jsx("span",{className:"ap-dot","data-tone":a,"aria-hidden":!0})}function ne({g:a,gestures:d,sessions:c,selected:A,cursor:k,rowRef:C}){const N=$(),S=Date.now()-a.lastActivityAt<ee,u=a.needs?"needs":S?"live":"idle",p=a.nodes[0];if(!p)return null;const j=p.row.agent.handle?.trim()||a.name,m=a.branches.length>0?a.branches:["main"],v=m.length>1,f=v?`${m.length} branches`:m[0],g=[...new Set(a.nodes.map(r=>r.row.agent.model).filter(r=>!!r))],h=g.length>1,w=[{kind:"action",label:"Configure…",onSelect:()=>d.configureAgent(p.row)},{kind:"action",label:"Restart",onSelect:()=>d.restartAgent(p.row)},{kind:"separator"},{kind:"action",label:"Stop",onSelect:()=>d.stopAgent(p.row)},{kind:"action",label:"Archive",onSelect:()=>d.archiveAgent(p.row)}];return e.jsxs("div",{ref:C,tabIndex:-1,className:"ap-row","data-tone":u,"data-selected":A||void 0,"data-cursor":k||void 0,children:[e.jsxs("div",{className:"ap-rowMain",onClick:()=>d.selectAgent(p.row),children:[e.jsxs("div",{className:"ap-rowBody",children:[e.jsxs("div",{className:"ap-rowTop",children:[e.jsx(ae,{tone:u}),e.jsx("span",{className:"ap-rowMark","data-idle":u==="idle"||void 0,"aria-hidden":!0,children:e.jsx(R,{harness:D(a.harness),size:11})}),e.jsxs("span",{className:"ap-rowName","data-idle":u==="idle"||void 0,children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"@"}),j]}),a.needs?e.jsx("span",{className:"ap-needsWord",children:"needs you"}):u==="live"?e.jsx("span",{className:"ap-rowState",children:"working"}):null]}),e.jsxs("div",{className:"ap-rowMeta",children:[e.jsx("span",{className:"ap-rowBranch","data-dim":!0,title:v?m.join(" · "):void 0,children:f}),h?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"ap-rowDivider","aria-hidden":!0}),e.jsxs("span",{className:"ap-rowDim",title:g.join(" · "),children:[g.length," models"]})]}):null,a.sessionCount?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"ap-rowDivider","aria-hidden":!0}),e.jsxs("span",{className:"ap-rowDim",children:[a.sessionCount," session",a.sessionCount===1?"":"s"]})]}):null]})]}),e.jsxs("div",{className:"ap-rowTailWrap",children:[e.jsxs("div",{className:"ap-rowTail",children:[e.jsxs("div",{className:"ap-tailMeta","aria-hidden":u==="needs"||void 0,children:[e.jsx("span",{className:"ap-rowAgo",children:a.lastActivityAt?O(a.lastActivityAt):"—"}),!h&&K(a.model)?e.jsx("span",{className:"ap-rowModel",children:K(a.model)}):null]}),e.jsxs("div",{className:"ap-rowActions",children:[e.jsx("button",{type:"button",className:"ap-act ap-actPrimary",onClick:r=>{r.stopPropagation(),d.openAgentPage(p.row)},children:"Open ↗"}),e.jsx("button",{type:"button",className:"ap-act",onClick:r=>{r.stopPropagation(),d.startSession(p.row)},children:"+ Session"})]})]}),e.jsx("button",{type:"button",className:"ap-rowMore","aria-label":"Agent actions",title:"Configure · restart · stop",onClick:r=>{r.stopPropagation(),N(r,w)},children:"⋯"})]})]}),e.jsx(J,{agentIds:a.nodes.map(r=>r.row.agent.id),sessions:c})]})}function te({project:a,selectedAgentId:d,gestures:c,sessions:A}){const[k,C]=l.useState(""),[N,S]=l.useState(null),[u,p]=l.useState(!1),[j,m]=l.useState(-1),v=l.useRef(null),f=l.useRef(new Map),g=l.useMemo(()=>q(a),[a]),{primary:h,ephemeral:w}=l.useMemo(()=>V(g),[g]),r=l.useMemo(()=>_(a),[a]),M=l.useMemo(()=>[...new Set(h.map(s=>D(s.harness)))],[h]),n=k.trim().toLowerCase(),b=s=>(!N||D(s.harness)===N)&&(!n||s.name.toLowerCase().includes(n)||s.branches.some(t=>t.toLowerCase().includes(n))||s.harness.includes(n)),i=h.filter(b),I=w.filter(b),E=!!(n||N),o=i.find(s=>s.needs)??i[0],U=i.some(s=>s.needs),B=h.length<=1;Z(a);const W=g.reduce((s,t)=>s+t.sessionCount,0),z=s=>!!(d&&s.nodes.some(t=>t.row.agent.id===d));return l.useEffect(()=>{function s(t){const y=document.activeElement,L=!!y&&(y.tagName==="INPUT"||y.tagName==="TEXTAREA"||y.isContentEditable);if(t.key.toLowerCase()==="k"&&(t.metaKey||t.ctrlKey)||t.key==="/"&&!L){t.preventDefault(),v.current?.focus(),v.current?.select();return}if(t.key==="Escape"){L&&y?.blur();return}if(L)return;const F=i.length;if(F){if(t.key==="ArrowDown"||t.key==="j")t.preventDefault(),m(x=>x<0?0:Math.min(F-1,x+1));else if(t.key==="ArrowUp"||t.key==="k")t.preventDefault(),m(x=>x<0?0:Math.max(0,x-1));else if(t.key==="Enter"&&(t.metaKey||t.ctrlKey)){const x=i.find(P=>P.needs)??i[0];x&&(t.preventDefault(),m(i.indexOf(x)),c.selectAgent(x.nodes[0].row))}else if(t.key==="Enter"){const x=j<0?0:j,P=i[x];P&&(t.preventDefault(),m(x),c.selectAgent(P.nodes[0].row))}}}return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[i,j,c]),l.useEffect(()=>{if(!(j<0)){if(j>=i.length){m(i.length-1);return}f.current.get(i[j]?.name??"")?.scrollIntoView({block:"nearest"})}},[j,i]),e.jsx("div",{className:"ap-view",children:e.jsxs("div",{className:"ap-content",children:[e.jsxs("header",{className:"ap-head",children:[e.jsx(G,{name:a.slice.title,size:56,tile:!0}),e.jsxs("div",{className:"ap-headIdent",children:[e.jsx("div",{className:"ap-headTop",children:e.jsxs("h1",{className:"ap-headName",children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"/"}),a.slice.title]})}),a.slice.root?e.jsx("span",{className:"ap-headRoot",children:a.slice.root}):null]}),e.jsx("div",{className:"ap-headActions",children:e.jsx("button",{type:"button",className:"ap-headCta",disabled:!o,onClick:()=>o&&c.startSession(o.nodes[0].row),children:"+ New agent"})})]}),e.jsxs("div",{className:"ap-digest",children:[e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:h.length}),e.jsx("span",{className:"ap-statLbl",children:h.length===1?"agent":"agents"})]}),e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:W}),e.jsx("span",{className:"ap-statLbl",children:W===1?"session":"sessions"})]}),r.length>0?e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:r.length}),e.jsx("span",{className:"ap-statLbl",children:"in flight"})]}):null,e.jsx("span",{className:"ap-statMarks",children:M.map(s=>e.jsx("span",{title:s,"aria-hidden":!0,children:e.jsx(R,{harness:s,size:12})},s))})]}),o&&!E&&!B?e.jsxs("div",{className:"ap-resume","data-tone":o.needs?"needs":"live","aria-live":"polite",children:[e.jsx("span",{className:"ap-dot","data-tone":o.needs?"needs":"live","aria-hidden":!0}),e.jsx("span",{className:"ap-resumeLbl",children:o.needs?"Waiting on you":"Most recent"}),e.jsxs("span",{className:"ap-resumeWho",children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"@"}),o.nodes[0].row.agent.handle?.trim()||o.name]}),e.jsxs("span",{className:"ap-resumeMeta",children:[o.branches[0]??"main"," · ",o.lastActivityAt?O(o.lastActivityAt):"—"]}),e.jsxs("span",{className:"ap-resumeActions",children:[e.jsx("button",{type:"button",className:"ap-linkAccent",onClick:()=>c.selectAgent(o.nodes[0].row),children:o.needs?"Continue":"Resume"}),e.jsx("button",{type:"button",className:"ap-link",onClick:()=>c.openAgentPage(o.nodes[0].row),children:"Open ↗"})]})]}):null,B?null:e.jsxs("div",{className:"ap-find",children:[e.jsx("span",{className:"ap-findIco","aria-hidden":!0,children:e.jsx(se,{})}),e.jsx("input",{ref:v,className:"ap-findInput",placeholder:"Find an agent, branch, or harness… (⌘K)",value:k,onChange:s=>C(s.target.value)}),e.jsx("div",{className:"ap-findFilters",children:M.map(s=>e.jsxs("button",{type:"button",className:"ap-filter","data-on":N===s||void 0,onClick:()=>S(t=>t===s?null:s),children:[e.jsx(R,{harness:s,size:11}),s.charAt(0).toUpperCase()+s.slice(1)]},s))})]}),e.jsxs("div",{className:"ap-main",children:[e.jsxs("div",{className:"ap-sectionHead",children:[e.jsx("span",{className:"ap-sectionTitle",children:"Agents"}),e.jsxs("span",{className:"ap-sectionMeta",children:[i.length," shown",E?" · filtered":""]}),e.jsxs("span",{className:"ap-kbdHint","aria-hidden":!0,children:["↑↓ move · ↵ open",U?" · ⌘↵ needs":""]})]}),e.jsxs("div",{className:"ap-roster",children:[i.map((s,t)=>e.jsx(ne,{g:s,gestures:c,sessions:A,selected:z(s),cursor:j===t,rowRef:y=>{y?f.current.set(s.name,y):f.current.delete(s.name)}},s.name)),i.length===0?e.jsx("div",{className:"ap-empty",children:E?"No agents match.":I.length?"No primary agents — workflow & clone agents are in the fold below.":"No agents in this project yet."}):null]}),I.length?e.jsxs("div",{className:"ap-ephBlock",children:[e.jsxs("button",{type:"button",className:"ap-ephToggle",onClick:()=>p(s=>!s),children:[e.jsx("span",{className:"ap-ephCount",children:I.length})," ephemeral · workflow & clone agents",e.jsx("span",{className:"ap-ephCaret",children:u?"▴":"▾"})]}),u?e.jsx("div",{className:"ap-ephList",children:I.map(s=>e.jsxs("button",{type:"button",className:"ap-ephRow",onClick:()=>c.openAgentPage(s.nodes[0].row),children:[e.jsx("span",{className:"ap-ephMark","aria-hidden":!0,children:e.jsx(R,{harness:D(s.harness),size:10})}),e.jsx("span",{className:"ap-ephName",children:s.name}),e.jsx("span",{className:"ap-ephBranch",children:s.branches[0]??"main"}),e.jsx("span",{className:"ap-ephAgo",children:s.lastActivityAt?O(s.lastActivityAt):"—"})]},s.name))}):null]}):null,e.jsx("button",{type:"button",className:"ap-newAgent",disabled:!o,onClick:()=>o&&c.startSession(o.nodes[0].row),children:"+ New agent on this project"})]})]})})}export{qe as AgentsLibrary};
@@ -1 +1 @@
1
- import{c}from"./createLucideIcon-DezKXSG2.js";const e=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],a=c("loader-circle",e);export{a as L};
1
+ import{c}from"./createLucideIcon-Dv8H8m7J.js";const e=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],a=c("loader-circle",e);export{a as L};
@@ -1 +1 @@
1
- import{r}from"./index-DvLtl7rV.js";import{a as d}from"./api-Co9aQ2Jw.js";import{u as f}from"./Provider-CtXJeLrP.js";function p(e){if(!e)return null;const s=e.split("/").filter(Boolean);return s[s.length-1]??null}function m(e,s){if(!e)return[];const l=new Set;for(const t of s)t.cwd&&l.add(t.cwd),t.projectRoot&&l.add(t.projectRoot);const o=new Map;for(const t of e.transcripts){if(!t.cwd)continue;const n=o.get(t.cwd),a=t.lastEventAt??t.mtimeMs,c=n?.lastEventAt??n?.mtimeMs??0;(!n||a>c)&&o.set(t.cwd,t)}const i=[];for(const t of e.processes){if(t.harness==="scout-managed"||t.cwd&&l.has(t.cwd))continue;const n=t.cwd?o.get(t.cwd):void 0,a=n?.project??p(t.cwd)??null,c=n?.lastEventAt??n?.mtimeMs??e.generatedAt,u=n?.sessionId??null;i.push({id:`harness:${t.source}:${t.pid}`,definitionId:`harness:${t.source}:${t.pid}`,name:t.source,handle:null,agentClass:"organic",harness:t.source,state:"working",projectRoot:t.cwd,cwd:t.cwd,updatedAt:c,createdAt:null,transport:null,selector:null,defaultSelector:null,nodeQualifier:null,workspaceQualifier:null,wakePolicy:null,capabilities:[],project:a,branch:null,role:null,model:null,harnessSessionId:u,terminalSurface:null,harnessLogPath:n?.transcriptPath??null,conversationId:u??`harness:${t.pid}`,homeNodeId:null,homeNodeName:null,ownerId:null,ownerName:null,ownerHandle:null,staleLocalRegistration:!1,retiredFromFleet:!1,replacedByAgentId:null})}return i}function A(){const{agents:e}=f(),[s,l]=r.useState(null);r.useEffect(()=>{let t=!1;const n=async()=>{const c=await d("/api/tail/discover").catch(()=>null);t||l(c)};n();const a=setInterval(()=>{n()},1e4);return()=>{t=!0,clearInterval(a)}},[]);const o=r.useMemo(()=>m(s,e),[s,e]);return{agents:r.useMemo(()=>[...e,...o],[e,o]),scoutAgents:e,organicAgents:o,discovery:s}}export{A as u};
1
+ import{r}from"./index-C1VaWNuD.js";import{a as d}from"./api-Co9aQ2Jw.js";import{u as f}from"./Provider-D0bB7q6y.js";function p(e){if(!e)return null;const s=e.split("/").filter(Boolean);return s[s.length-1]??null}function m(e,s){if(!e)return[];const l=new Set;for(const t of s)t.cwd&&l.add(t.cwd),t.projectRoot&&l.add(t.projectRoot);const o=new Map;for(const t of e.transcripts){if(!t.cwd)continue;const n=o.get(t.cwd),a=t.lastEventAt??t.mtimeMs,c=n?.lastEventAt??n?.mtimeMs??0;(!n||a>c)&&o.set(t.cwd,t)}const i=[];for(const t of e.processes){if(t.harness==="scout-managed"||t.cwd&&l.has(t.cwd))continue;const n=t.cwd?o.get(t.cwd):void 0,a=n?.project??p(t.cwd)??null,c=n?.lastEventAt??n?.mtimeMs??e.generatedAt,u=n?.sessionId??null;i.push({id:`harness:${t.source}:${t.pid}`,definitionId:`harness:${t.source}:${t.pid}`,name:t.source,handle:null,agentClass:"organic",harness:t.source,state:"working",projectRoot:t.cwd,cwd:t.cwd,updatedAt:c,createdAt:null,transport:null,selector:null,defaultSelector:null,nodeQualifier:null,workspaceQualifier:null,wakePolicy:null,capabilities:[],project:a,branch:null,role:null,model:null,harnessSessionId:u,terminalSurface:null,harnessLogPath:n?.transcriptPath??null,conversationId:u??`harness:${t.pid}`,homeNodeId:null,homeNodeName:null,ownerId:null,ownerName:null,ownerHandle:null,staleLocalRegistration:!1,retiredFromFleet:!1,replacedByAgentId:null})}return i}function A(){const{agents:e}=f(),[s,l]=r.useState(null);r.useEffect(()=>{let t=!1;const n=async()=>{const c=await d("/api/tail/discover").catch(()=>null);t||l(c)};n();const a=setInterval(()=>{n()},1e4);return()=>{t=!0,clearInterval(a)}},[]);const o=r.useMemo(()=>m(s,e),[s,e]);return{agents:r.useMemo(()=>[...e,...o],[e,o]),scoutAgents:e,organicAgents:o,discovery:s}}export{A as u};
@@ -1 +1 @@
1
- import{j as l,r as d}from"./index-DvLtl7rV.js";import{n as y,e as F,f as V,d as K}from"./colors-BtO5_zlx.js";import{r as T}from"./index-zvhpRHao.js";import{a as Z}from"./api-Co9aQ2Jw.js";import{u as N}from"./Provider-CtXJeLrP.js";import{A as U}from"./AgentDetailCard-C9rn3Fj5.js";const X={workspace:"workspace",worktree:"workspace",branch:"workspace",profile:"profile",persona:"profile",harness:"harness",runtime:"harness",model:"model",node:"node",host:"node"};function G(e){return e.trim().replace(/^@+/,"").replace(/[.,!?;)\]]+$/,"")}function m(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const Y="scout";function B(e){return X[m(e)]??null}function D(e){const n=m(e.definitionId),t=e.workspaceQualifier?m(e.workspaceQualifier):void 0,r=e.profile?m(e.profile):void 0,o=e.harness?m(e.harness):void 0,i=o==="oc"?"opencode":o,s=e.model?m(e.model):void 0,c=e.nodeQualifier?m(e.nodeQualifier):void 0;return n?{definitionId:n,...t?{workspaceQualifier:t}:{},...r?{profile:r}:{},...i?{harness:i}:{},...s?{model:s}:{},...c?{nodeQualifier:c}:{}}:null}function O(e){const n=e.split(".").filter(Boolean),t=n.shift();if(!t)return null;const r={definitionId:t},o=[];for(const i of n){if(i.includes(":")){const[s,c=""]=i.split(":",2),a=B(s),u=m(c);if(!a||!u)return null;a==="workspace"?r.workspaceQualifier=u:a==="profile"?r.profile=u:a==="harness"?r.harness=u:a==="model"?r.model=u:a==="node"&&(r.nodeQualifier=u);continue}o.push(i)}if(o.length===1){const i=m(o[0]);if(!i)return null;r.workspaceQualifier=i}else if(o.length===2){const i=m(o[0]),s=m(o[1]);if(!i||!s)return null;r.workspaceQualifier||(r.workspaceQualifier=i),r.nodeQualifier||(r.nodeQualifier=s)}else if(o.length>2)return null;return M(r,{raw:e})}function J(e){const n=e.indexOf("#"),t=e.indexOf("?");if(n===-1&&t===-1||e.indexOf("#",n+1)!==-1||e.indexOf("?",t+1)!==-1||n!==-1&&t!==-1&&t<n)return null;const r=Math.min(...[n,t].filter(a=>a>=0)),o=e.slice(0,r);if(!o)return null;const i=O(o);if(!i)return null;const s=n>=0?e.slice(n+1,t>=0?t:e.length):"",c=t>=0?e.slice(t+1):"";return n>=0&&!s||t>=0&&!c||s.includes("#")||s.includes("?")||c.includes("#")||c.includes("?")||i.harness&&s||i.model&&c?null:M({definitionId:i.definitionId,nodeQualifier:i.nodeQualifier,workspaceQualifier:i.workspaceQualifier,profile:i.profile,harness:s||i.harness,model:c||i.model},{raw:e})}function q(e){const n=G(e);return!n||n.includes("@")?null:n.includes("#")||n.includes("?")?J(n):O(n)}function L(e,n={}){const t=D(e);if(!t)return n.includeSigil===!1?"":"@";const o=[`${n.includeSigil===!1?"":"@"}${t.definitionId}`];return t.workspaceQualifier&&o.push(t.workspaceQualifier),t.profile&&o.push(`profile:${t.profile}`),t.harness&&o.push(`harness:${t.harness}`),t.model&&o.push(`model:${t.model}`),t.nodeQualifier&&o.push(`node:${t.nodeQualifier}`),o.join(".")}function M(e,n={}){const t=D(e);return t?{raw:n.raw??L(t,{includeSigil:!1}),label:L(t),definitionId:t.definitionId,...t.nodeQualifier?{nodeQualifier:t.nodeQualifier}:{},...t.workspaceQualifier?{workspaceQualifier:t.workspaceQualifier}:{},...t.profile?{profile:t.profile}:{},...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{}}:null}function ee(e){return ne(e).parsed}function ne(e){const n=Array.from(e.matchAll(/(^|[\s([{'"`])@([a-z0-9][a-z0-9._/:-]*(?:#[a-z0-9][a-z0-9._/:-]*)?(?:\?[a-z0-9][a-z0-9._/:-]*)?)(?=$|[\s)\]}",.!?:;'"`])/gi)),t=new Map,r=[];for(const o of n){const i=o[2]??"",s=q(i);if(!s){i&&r.push(`@${i}`);continue}t.set(s.label,s)}return{parsed:Array.from(t.values()),unparsed:Array.from(new Set(r))}}const te=280,re=120,E=320,j=8,Q=new Map,ie=1e4;function p(e){const n=e?.trim().replace(/^@+/,"").toLowerCase();return n&&n.length>0?n:null}function W(e){const n=new Set,t=r=>{const o=p(r);o&&n.add(o)};return t(e.id),t(e.handle),t(e.name),t(e.selector),t(e.defaultSelector),t(e.definitionId),e.definitionId&&e.workspaceQualifier&&t(`${e.definitionId}.${e.workspaceQualifier}`),e.definitionId&&e.workspaceQualifier&&e.nodeQualifier&&(t(`${e.definitionId}.${e.workspaceQualifier}.${e.nodeQualifier}`),t(`${e.definitionId}.${e.workspaceQualifier}.node:${e.nodeQualifier}`)),e.definitionId&&e.nodeQualifier&&t(`${e.definitionId}.node:${e.nodeQualifier}`),n}function oe(e,n){const t=p(n.label),r=p(n.raw),o=W(e);return t&&o.has(t)||r&&o.has(r)?!0:n.definitionId&&p(e.definitionId)!==p(n.definitionId)||n.workspaceQualifier&&p(e.workspaceQualifier)!==p(n.workspaceQualifier)||n.nodeQualifier&&p(e.nodeQualifier)!==p(n.nodeQualifier)||n.harness&&p(e.harness)!==p(n.harness)||n.model&&p(e.model)!==p(n.model)?!1:!!n.definitionId}function _(e,n){const t=p(n.label),r=p(n.raw),o=W(e),i=t&&o.has(t)||r&&o.has(r)?1e3:0,s=[n.workspaceQualifier,n.nodeQualifier,n.harness,n.model,n.profile].filter(Boolean).length*100;y(e.state);const c=F(e.state,e)?30:V(e.state,e)?20:0;return i+s+c+Math.min(e.updatedAt??0,9999999999)/1e9}function se(e){const n=p(e.raw);return n&&n.split(".").length>=3?n:null}function H(e,n){const t=n.filter(r=>oe(r,e)).sort((r,o)=>_(o,e)-_(r,e));return t[0]?t[0]:null}async function le(e,n){const t=H(e,n),r=t?.id??se(e),o=r??e.label,i=Q.get(o);if(i&&Date.now()-i.fetchedAt<ie)return i.agent;if(!r)return Q.set(o,{agent:t,fetchedAt:Date.now()}),t;try{const s=await Z(`/api/agents/${encodeURIComponent(r)}`);return Q.set(o,{agent:s,fetchedAt:Date.now()}),s}catch{return Q.set(o,{agent:t,fetchedAt:Date.now()}),t}}function C(e){const n=window.innerWidth,t=window.innerHeight,r=Math.max(j,Math.min(n-E-j,e.left+e.width/2-E/2)),o=e.top-j;return o>200||e.bottom>t-200?{top:o,left:r,placement:"above"}:{top:e.bottom+j,left:r,placement:"below"}}function ae(e){let n=e;for(;n;){if(n instanceof HTMLElement&&n.dataset.scoutTheme)return n;n=n.parentElement??null}return document.body}function ce({identity:e,agent:n,triggerEl:t,onRequestClose:r}){const{agents:o,navigate:i}=N(),[s,c]=d.useState(()=>n??H(e,o)),[a,u]=d.useState(!n),[f,w]=d.useState(()=>C(t.getBoundingClientRect())),x=d.useRef(null),g=ae(t);d.useEffect(()=>{if(n){c(n),u(!1);return}let h=!1;return u(!0),le(e,o).then(I=>{h||(c(I),u(!1))}),()=>{h=!0}},[e,o,n]),d.useEffect(()=>{const h=()=>{w(C(t.getBoundingClientRect()))};return window.addEventListener("scroll",h,!0),window.addEventListener("resize",h),()=>{window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h)}},[t]),d.useEffect(()=>{const h=I=>{I.key==="Escape"&&r()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[r]);const k=d.useCallback(()=>{s&&(i({view:"agents-v2",agentId:s.id}),r())},[s,i,r]),b=f.placement==="above"?"bottom center":"top center",A=f.placement==="above"?"translateY(-100%)":"",$={position:"fixed",top:f.top,left:f.left,width:E,transform:A,transformOrigin:b};return s?T.createPortal(l.jsx("div",{onMouseEnter:()=>{},onMouseLeave:r,children:l.jsx(U,{ref:x,agent:s,pinned:!0,onOpen:k,onClose:r,onAction:r,style:$,className:"agent-card--mention"})}),g):T.createPortal(l.jsx("div",{ref:x,className:"agent-card agent-card--pinned agent-card--mention",role:"dialog","aria-label":`${e.label} snapshot`,style:$,onMouseEnter:()=>{},onMouseLeave:r,children:l.jsx("div",{style:{fontSize:"12px",color:"var(--dim)",padding:"4px 2px"},children:a?"loading…":l.jsxs(l.Fragment,{children:["No agent registered as ",l.jsx("code",{children:e.label}),"."]})})}),g)}function ue(e){return M({definitionId:e.definitionId,workspaceQualifier:e.workspaceQualifier??void 0,nodeQualifier:e.nodeQualifier??void 0,harness:e.harness??void 0,model:e.model??void 0})}function fe(e){const{agent:n,identity:t}=e,[r,o]=d.useState(!1),[i,s]=d.useState(!1),c=d.useRef(null),a=d.useRef(null),u=d.useRef(null),f=d.useCallback(()=>{a.current!==null&&(window.clearTimeout(a.current),a.current=null),u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),w=d.useCallback(()=>{r||(f(),a.current=window.setTimeout(()=>o(!0),te))},[r,f]),x=d.useCallback(()=>{i||(f(),u.current=window.setTimeout(()=>o(!1),re))},[i,f]),g=d.useCallback(()=>{f(),o(!1),s(!1)},[f]);d.useEffect(()=>()=>f(),[f]);const k=d.useMemo(()=>t??(n?ue(n):null),[t,n]),b=!!k,A=d.useCallback(v=>{if(v.preventDefault(),v.stopPropagation(),r&&i){g();return}f(),s(!0),o(!0)},[r,i,g,f]),$=d.useCallback(v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),s(!0),o(!0))},[]),h=b?{ref:c,onMouseEnter:w,onMouseLeave:x,onFocus:w,onBlur:x,onClick:A,onKeyDown:$,"data-hover-open":r?"true":void 0,"aria-haspopup":"dialog","aria-expanded":r}:{ref:c},I=r&&c.current&&k?l.jsx(ce,{identity:k,agent:n??null,triggerEl:c.current,onRequestClose:()=>{i?g():x()}}):null;return{triggerProps:h,popover:I,open:r,pinned:i}}function de({identity:e,color:n}){const{triggerProps:t,popover:r}=fe({identity:e});return l.jsxs(l.Fragment,{children:[l.jsx("span",{...t,className:"s-mention",role:"button",tabIndex:0,style:{"--mention-color":n},children:e.label}),r]})}const pe=["ts","tsx","js","jsx","mjs","cjs","md","mdx","txt","log","json","jsonc","yaml","yml","toml","css","scss","html","htm","sh","py","rb","go","rs","swift","kt","java","c","cpp","h","png","jpg","jpeg","gif","svg","webp","avif","env","conf","ini","gitignore","sql","xml"],he=pe.join("|"),S=new RegExp(`\\.(?:${he})(?:$|[?#])`,"i"),me=/^(?:\/Users\/|\/home\/|\/Volumes\/|\/var\/|\/etc\/|\/opt\/|\/tmp\/|\/private\/|\/mnt\/|\/Applications\/|\/usr\/|\/Library\/)/u,we=/(?:^|[\s(\[`'"])((?:~\/|\.\/|\.\.\/|\/)[A-Za-z0-9._/\-]+|[A-Za-z0-9._\-]+(?:\/[A-Za-z0-9._\-]+)+)/g;function xe(e){return e.startsWith("~/")||e.startsWith("./")||e.startsWith("../")?!0:e.startsWith("/")&&me.test(e)||S.test(e)}function P(e){const n=[],t=new RegExp(we.source,"g");let r;for(;(r=t.exec(e))!==null;){const o=r[1];if(!o)continue;const i=o.replace(/[.,;:!?]+$/u,"");if(!i||!xe(i))continue;const s=r[0].lastIndexOf(o);if(s<0)continue;const c=r.index+s;n.push({start:c,end:c+i.length,path:i})}return n}function ge(e){return/\.(png|jpe?g|gif|svg|webp|avif)(?:$|[?#])/iu.test(e)}function ve(e){return e.endsWith("/")?!0:!(e.split("/").pop()??"").includes(".")&&!e.startsWith("./")&&!e.startsWith("../")}function ke({kind:e}){return e==="dir"?l.jsx("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:l.jsx("path",{d:"M2 5a1 1 0 0 1 1-1h3.5l1.5 1.5h5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1Z"})}):e==="image"?l.jsxs("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[l.jsx("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),l.jsx("circle",{cx:"6",cy:"7",r:"1"}),l.jsx("path",{d:"m3 12 3.5-3 2.5 2 3-2.5L14 11"})]}):l.jsxs("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[l.jsx("path",{d:"M4 2h5l3 3v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1Z"}),l.jsx("path",{d:"M9 2v3h3"})]})}function R({path:e}){const{openFilePreview:n}=N(),t=ge(e)?"image":ve(e)?"dir":"file";return l.jsxs("button",{type:"button",className:"s-path-token",onClick:r=>{r.preventDefault(),r.stopPropagation(),n(e)},title:`Open ${e}`,children:[l.jsx(ke,{kind:t}),e]})}function Ie(e,n){if(n.length===0)return[{kind:"text",value:e}];const t=new Map;for(const s of n)t.set(s.label.toLowerCase(),s);const r=[];let o=e;const i=/@([a-z0-9][a-z0-9._/:-]*)/i;for(;o.length>0;){const s=i.exec(o);if(!s||s.index===void 0){r.push({kind:"text",value:o});break}s.index>0&&r.push({kind:"text",value:o.slice(0,s.index)});const c=s[0],a=c.toLowerCase(),u=t.get(a);u?r.push({kind:"mention",identity:u}):r.push({kind:"text",value:c}),o=o.slice(s.index+c.length)}return r}function $e(e,n){const t=[],r=/`([^`\n]+)`|\*\*(.+?)\*\*|\*([^*\s][^*]*?)\*|\[([^\]\n]+)\]\(([^)\s]+)\)|(https?:\/\/[^\s<>"')\]]+)/g;let o=0,i,s=0;const c=a=>{if(!a)return;const u=P(a);if(u.length===0){t.push(l.jsx("span",{children:a},`${n}-${s++}`));return}let f=0;for(const w of u)w.start>f&&t.push(l.jsx("span",{children:a.slice(f,w.start)},`${n}-${s++}`)),t.push(l.jsx(R,{path:w.path},`${n}-${s++}`)),f=w.end;f<a.length&&t.push(l.jsx("span",{children:a.slice(f)},`${n}-${s++}`))};for(;(i=r.exec(e))!==null;){if(i.index>o&&c(e.slice(o,i.index)),i[1]!==void 0){const a=i[1],u=P(` ${a}`);u.length===1&&u[0].path===a?t.push(l.jsx(R,{path:a},`${n}-${s++}`)):t.push(l.jsx("code",{className:"s-inline-code",children:a},`${n}-${s++}`))}else if(i[2]!==void 0)t.push(l.jsx("strong",{children:i[2]},`${n}-${s++}`));else if(i[3]!==void 0)t.push(l.jsx("em",{children:i[3]},`${n}-${s++}`));else if(i[4]!==void 0&&i[5]!==void 0&&z(i[5]))t.push(l.jsx("a",{className:"s-inline-link",href:i[5],target:"_blank",rel:"noreferrer",children:i[4]},`${n}-${s++}`));else if(i[6]!==void 0&&z(i[6])){const a=i[6].replace(/[.,;:!?]+$/u,""),u=i[6].slice(a.length);t.push(l.jsx("a",{className:"s-inline-link",href:a,target:"_blank",rel:"noreferrer",children:a},`${n}-${s++}`)),u&&t.push(l.jsx("span",{children:u},`${n}-${s++}`))}else t.push(l.jsx("span",{children:i[0]},`${n}-${s++}`));o=i.index+i[0].length}return o<e.length&&c(e.slice(o)),t.length>0?t:[l.jsx("span",{children:e},n)]}function z(e){return/^(?:https?:\/\/|mailto:|\/|#)/iu.test(e)}function Te(e){if(!e)return e??"";const n=ee(e);return Ie(e,n).flatMap((r,o)=>{if(r.kind==="text")return $e(r.value,o*100);const{identity:i}=r,c=i.definitionId===Y?"var(--accent)":K(i.definitionId);return l.jsx(de,{identity:i,color:c},o)})}export{Te as r};
1
+ import{j as l,r as d}from"./index-C1VaWNuD.js";import{n as y,e as F,f as V,d as K}from"./colors-BtO5_zlx.js";import{r as T}from"./index-Cx6Gbr6n.js";import{a as Z}from"./api-Co9aQ2Jw.js";import{u as N}from"./Provider-D0bB7q6y.js";import{A as U}from"./AgentDetailCard-8viaEY8b.js";const X={workspace:"workspace",worktree:"workspace",branch:"workspace",profile:"profile",persona:"profile",harness:"harness",runtime:"harness",model:"model",node:"node",host:"node"};function G(e){return e.trim().replace(/^@+/,"").replace(/[.,!?;)\]]+$/,"")}function m(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const Y="scout";function B(e){return X[m(e)]??null}function D(e){const n=m(e.definitionId),t=e.workspaceQualifier?m(e.workspaceQualifier):void 0,r=e.profile?m(e.profile):void 0,o=e.harness?m(e.harness):void 0,i=o==="oc"?"opencode":o,s=e.model?m(e.model):void 0,c=e.nodeQualifier?m(e.nodeQualifier):void 0;return n?{definitionId:n,...t?{workspaceQualifier:t}:{},...r?{profile:r}:{},...i?{harness:i}:{},...s?{model:s}:{},...c?{nodeQualifier:c}:{}}:null}function O(e){const n=e.split(".").filter(Boolean),t=n.shift();if(!t)return null;const r={definitionId:t},o=[];for(const i of n){if(i.includes(":")){const[s,c=""]=i.split(":",2),a=B(s),u=m(c);if(!a||!u)return null;a==="workspace"?r.workspaceQualifier=u:a==="profile"?r.profile=u:a==="harness"?r.harness=u:a==="model"?r.model=u:a==="node"&&(r.nodeQualifier=u);continue}o.push(i)}if(o.length===1){const i=m(o[0]);if(!i)return null;r.workspaceQualifier=i}else if(o.length===2){const i=m(o[0]),s=m(o[1]);if(!i||!s)return null;r.workspaceQualifier||(r.workspaceQualifier=i),r.nodeQualifier||(r.nodeQualifier=s)}else if(o.length>2)return null;return M(r,{raw:e})}function J(e){const n=e.indexOf("#"),t=e.indexOf("?");if(n===-1&&t===-1||e.indexOf("#",n+1)!==-1||e.indexOf("?",t+1)!==-1||n!==-1&&t!==-1&&t<n)return null;const r=Math.min(...[n,t].filter(a=>a>=0)),o=e.slice(0,r);if(!o)return null;const i=O(o);if(!i)return null;const s=n>=0?e.slice(n+1,t>=0?t:e.length):"",c=t>=0?e.slice(t+1):"";return n>=0&&!s||t>=0&&!c||s.includes("#")||s.includes("?")||c.includes("#")||c.includes("?")||i.harness&&s||i.model&&c?null:M({definitionId:i.definitionId,nodeQualifier:i.nodeQualifier,workspaceQualifier:i.workspaceQualifier,profile:i.profile,harness:s||i.harness,model:c||i.model},{raw:e})}function q(e){const n=G(e);return!n||n.includes("@")?null:n.includes("#")||n.includes("?")?J(n):O(n)}function L(e,n={}){const t=D(e);if(!t)return n.includeSigil===!1?"":"@";const o=[`${n.includeSigil===!1?"":"@"}${t.definitionId}`];return t.workspaceQualifier&&o.push(t.workspaceQualifier),t.profile&&o.push(`profile:${t.profile}`),t.harness&&o.push(`harness:${t.harness}`),t.model&&o.push(`model:${t.model}`),t.nodeQualifier&&o.push(`node:${t.nodeQualifier}`),o.join(".")}function M(e,n={}){const t=D(e);return t?{raw:n.raw??L(t,{includeSigil:!1}),label:L(t),definitionId:t.definitionId,...t.nodeQualifier?{nodeQualifier:t.nodeQualifier}:{},...t.workspaceQualifier?{workspaceQualifier:t.workspaceQualifier}:{},...t.profile?{profile:t.profile}:{},...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{}}:null}function ee(e){return ne(e).parsed}function ne(e){const n=Array.from(e.matchAll(/(^|[\s([{'"`])@([a-z0-9][a-z0-9._/:-]*(?:#[a-z0-9][a-z0-9._/:-]*)?(?:\?[a-z0-9][a-z0-9._/:-]*)?)(?=$|[\s)\]}",.!?:;'"`])/gi)),t=new Map,r=[];for(const o of n){const i=o[2]??"",s=q(i);if(!s){i&&r.push(`@${i}`);continue}t.set(s.label,s)}return{parsed:Array.from(t.values()),unparsed:Array.from(new Set(r))}}const te=280,re=120,E=320,j=8,Q=new Map,ie=1e4;function p(e){const n=e?.trim().replace(/^@+/,"").toLowerCase();return n&&n.length>0?n:null}function W(e){const n=new Set,t=r=>{const o=p(r);o&&n.add(o)};return t(e.id),t(e.handle),t(e.name),t(e.selector),t(e.defaultSelector),t(e.definitionId),e.definitionId&&e.workspaceQualifier&&t(`${e.definitionId}.${e.workspaceQualifier}`),e.definitionId&&e.workspaceQualifier&&e.nodeQualifier&&(t(`${e.definitionId}.${e.workspaceQualifier}.${e.nodeQualifier}`),t(`${e.definitionId}.${e.workspaceQualifier}.node:${e.nodeQualifier}`)),e.definitionId&&e.nodeQualifier&&t(`${e.definitionId}.node:${e.nodeQualifier}`),n}function oe(e,n){const t=p(n.label),r=p(n.raw),o=W(e);return t&&o.has(t)||r&&o.has(r)?!0:n.definitionId&&p(e.definitionId)!==p(n.definitionId)||n.workspaceQualifier&&p(e.workspaceQualifier)!==p(n.workspaceQualifier)||n.nodeQualifier&&p(e.nodeQualifier)!==p(n.nodeQualifier)||n.harness&&p(e.harness)!==p(n.harness)||n.model&&p(e.model)!==p(n.model)?!1:!!n.definitionId}function _(e,n){const t=p(n.label),r=p(n.raw),o=W(e),i=t&&o.has(t)||r&&o.has(r)?1e3:0,s=[n.workspaceQualifier,n.nodeQualifier,n.harness,n.model,n.profile].filter(Boolean).length*100;y(e.state);const c=F(e.state,e)?30:V(e.state,e)?20:0;return i+s+c+Math.min(e.updatedAt??0,9999999999)/1e9}function se(e){const n=p(e.raw);return n&&n.split(".").length>=3?n:null}function H(e,n){const t=n.filter(r=>oe(r,e)).sort((r,o)=>_(o,e)-_(r,e));return t[0]?t[0]:null}async function le(e,n){const t=H(e,n),r=t?.id??se(e),o=r??e.label,i=Q.get(o);if(i&&Date.now()-i.fetchedAt<ie)return i.agent;if(!r)return Q.set(o,{agent:t,fetchedAt:Date.now()}),t;try{const s=await Z(`/api/agents/${encodeURIComponent(r)}`);return Q.set(o,{agent:s,fetchedAt:Date.now()}),s}catch{return Q.set(o,{agent:t,fetchedAt:Date.now()}),t}}function C(e){const n=window.innerWidth,t=window.innerHeight,r=Math.max(j,Math.min(n-E-j,e.left+e.width/2-E/2)),o=e.top-j;return o>200||e.bottom>t-200?{top:o,left:r,placement:"above"}:{top:e.bottom+j,left:r,placement:"below"}}function ae(e){let n=e;for(;n;){if(n instanceof HTMLElement&&n.dataset.scoutTheme)return n;n=n.parentElement??null}return document.body}function ce({identity:e,agent:n,triggerEl:t,onRequestClose:r}){const{agents:o,navigate:i}=N(),[s,c]=d.useState(()=>n??H(e,o)),[a,u]=d.useState(!n),[f,w]=d.useState(()=>C(t.getBoundingClientRect())),x=d.useRef(null),g=ae(t);d.useEffect(()=>{if(n){c(n),u(!1);return}let h=!1;return u(!0),le(e,o).then(I=>{h||(c(I),u(!1))}),()=>{h=!0}},[e,o,n]),d.useEffect(()=>{const h=()=>{w(C(t.getBoundingClientRect()))};return window.addEventListener("scroll",h,!0),window.addEventListener("resize",h),()=>{window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h)}},[t]),d.useEffect(()=>{const h=I=>{I.key==="Escape"&&r()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[r]);const k=d.useCallback(()=>{s&&(i({view:"agents-v2",agentId:s.id}),r())},[s,i,r]),b=f.placement==="above"?"bottom center":"top center",A=f.placement==="above"?"translateY(-100%)":"",$={position:"fixed",top:f.top,left:f.left,width:E,transform:A,transformOrigin:b};return s?T.createPortal(l.jsx("div",{onMouseEnter:()=>{},onMouseLeave:r,children:l.jsx(U,{ref:x,agent:s,pinned:!0,onOpen:k,onClose:r,onAction:r,style:$,className:"agent-card--mention"})}),g):T.createPortal(l.jsx("div",{ref:x,className:"agent-card agent-card--pinned agent-card--mention",role:"dialog","aria-label":`${e.label} snapshot`,style:$,onMouseEnter:()=>{},onMouseLeave:r,children:l.jsx("div",{style:{fontSize:"12px",color:"var(--dim)",padding:"4px 2px"},children:a?"loading…":l.jsxs(l.Fragment,{children:["No agent registered as ",l.jsx("code",{children:e.label}),"."]})})}),g)}function ue(e){return M({definitionId:e.definitionId,workspaceQualifier:e.workspaceQualifier??void 0,nodeQualifier:e.nodeQualifier??void 0,harness:e.harness??void 0,model:e.model??void 0})}function fe(e){const{agent:n,identity:t}=e,[r,o]=d.useState(!1),[i,s]=d.useState(!1),c=d.useRef(null),a=d.useRef(null),u=d.useRef(null),f=d.useCallback(()=>{a.current!==null&&(window.clearTimeout(a.current),a.current=null),u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),w=d.useCallback(()=>{r||(f(),a.current=window.setTimeout(()=>o(!0),te))},[r,f]),x=d.useCallback(()=>{i||(f(),u.current=window.setTimeout(()=>o(!1),re))},[i,f]),g=d.useCallback(()=>{f(),o(!1),s(!1)},[f]);d.useEffect(()=>()=>f(),[f]);const k=d.useMemo(()=>t??(n?ue(n):null),[t,n]),b=!!k,A=d.useCallback(v=>{if(v.preventDefault(),v.stopPropagation(),r&&i){g();return}f(),s(!0),o(!0)},[r,i,g,f]),$=d.useCallback(v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),s(!0),o(!0))},[]),h=b?{ref:c,onMouseEnter:w,onMouseLeave:x,onFocus:w,onBlur:x,onClick:A,onKeyDown:$,"data-hover-open":r?"true":void 0,"aria-haspopup":"dialog","aria-expanded":r}:{ref:c},I=r&&c.current&&k?l.jsx(ce,{identity:k,agent:n??null,triggerEl:c.current,onRequestClose:()=>{i?g():x()}}):null;return{triggerProps:h,popover:I,open:r,pinned:i}}function de({identity:e,color:n}){const{triggerProps:t,popover:r}=fe({identity:e});return l.jsxs(l.Fragment,{children:[l.jsx("span",{...t,className:"s-mention",role:"button",tabIndex:0,style:{"--mention-color":n},children:e.label}),r]})}const pe=["ts","tsx","js","jsx","mjs","cjs","md","mdx","txt","log","json","jsonc","yaml","yml","toml","css","scss","html","htm","sh","py","rb","go","rs","swift","kt","java","c","cpp","h","png","jpg","jpeg","gif","svg","webp","avif","env","conf","ini","gitignore","sql","xml"],he=pe.join("|"),S=new RegExp(`\\.(?:${he})(?:$|[?#])`,"i"),me=/^(?:\/Users\/|\/home\/|\/Volumes\/|\/var\/|\/etc\/|\/opt\/|\/tmp\/|\/private\/|\/mnt\/|\/Applications\/|\/usr\/|\/Library\/)/u,we=/(?:^|[\s(\[`'"])((?:~\/|\.\/|\.\.\/|\/)[A-Za-z0-9._/\-]+|[A-Za-z0-9._\-]+(?:\/[A-Za-z0-9._\-]+)+)/g;function xe(e){return e.startsWith("~/")||e.startsWith("./")||e.startsWith("../")?!0:e.startsWith("/")&&me.test(e)||S.test(e)}function P(e){const n=[],t=new RegExp(we.source,"g");let r;for(;(r=t.exec(e))!==null;){const o=r[1];if(!o)continue;const i=o.replace(/[.,;:!?]+$/u,"");if(!i||!xe(i))continue;const s=r[0].lastIndexOf(o);if(s<0)continue;const c=r.index+s;n.push({start:c,end:c+i.length,path:i})}return n}function ge(e){return/\.(png|jpe?g|gif|svg|webp|avif)(?:$|[?#])/iu.test(e)}function ve(e){return e.endsWith("/")?!0:!(e.split("/").pop()??"").includes(".")&&!e.startsWith("./")&&!e.startsWith("../")}function ke({kind:e}){return e==="dir"?l.jsx("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:l.jsx("path",{d:"M2 5a1 1 0 0 1 1-1h3.5l1.5 1.5h5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1Z"})}):e==="image"?l.jsxs("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[l.jsx("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),l.jsx("circle",{cx:"6",cy:"7",r:"1"}),l.jsx("path",{d:"m3 12 3.5-3 2.5 2 3-2.5L14 11"})]}):l.jsxs("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[l.jsx("path",{d:"M4 2h5l3 3v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1Z"}),l.jsx("path",{d:"M9 2v3h3"})]})}function R({path:e}){const{openFilePreview:n}=N(),t=ge(e)?"image":ve(e)?"dir":"file";return l.jsxs("button",{type:"button",className:"s-path-token",onClick:r=>{r.preventDefault(),r.stopPropagation(),n(e)},title:`Open ${e}`,children:[l.jsx(ke,{kind:t}),e]})}function Ie(e,n){if(n.length===0)return[{kind:"text",value:e}];const t=new Map;for(const s of n)t.set(s.label.toLowerCase(),s);const r=[];let o=e;const i=/@([a-z0-9][a-z0-9._/:-]*)/i;for(;o.length>0;){const s=i.exec(o);if(!s||s.index===void 0){r.push({kind:"text",value:o});break}s.index>0&&r.push({kind:"text",value:o.slice(0,s.index)});const c=s[0],a=c.toLowerCase(),u=t.get(a);u?r.push({kind:"mention",identity:u}):r.push({kind:"text",value:c}),o=o.slice(s.index+c.length)}return r}function $e(e,n){const t=[],r=/`([^`\n]+)`|\*\*(.+?)\*\*|\*([^*\s][^*]*?)\*|\[([^\]\n]+)\]\(([^)\s]+)\)|(https?:\/\/[^\s<>"')\]]+)/g;let o=0,i,s=0;const c=a=>{if(!a)return;const u=P(a);if(u.length===0){t.push(l.jsx("span",{children:a},`${n}-${s++}`));return}let f=0;for(const w of u)w.start>f&&t.push(l.jsx("span",{children:a.slice(f,w.start)},`${n}-${s++}`)),t.push(l.jsx(R,{path:w.path},`${n}-${s++}`)),f=w.end;f<a.length&&t.push(l.jsx("span",{children:a.slice(f)},`${n}-${s++}`))};for(;(i=r.exec(e))!==null;){if(i.index>o&&c(e.slice(o,i.index)),i[1]!==void 0){const a=i[1],u=P(` ${a}`);u.length===1&&u[0].path===a?t.push(l.jsx(R,{path:a},`${n}-${s++}`)):t.push(l.jsx("code",{className:"s-inline-code",children:a},`${n}-${s++}`))}else if(i[2]!==void 0)t.push(l.jsx("strong",{children:i[2]},`${n}-${s++}`));else if(i[3]!==void 0)t.push(l.jsx("em",{children:i[3]},`${n}-${s++}`));else if(i[4]!==void 0&&i[5]!==void 0&&z(i[5]))t.push(l.jsx("a",{className:"s-inline-link",href:i[5],target:"_blank",rel:"noreferrer",children:i[4]},`${n}-${s++}`));else if(i[6]!==void 0&&z(i[6])){const a=i[6].replace(/[.,;:!?]+$/u,""),u=i[6].slice(a.length);t.push(l.jsx("a",{className:"s-inline-link",href:a,target:"_blank",rel:"noreferrer",children:a},`${n}-${s++}`)),u&&t.push(l.jsx("span",{children:u},`${n}-${s++}`))}else t.push(l.jsx("span",{children:i[0]},`${n}-${s++}`));o=i.index+i[0].length}return o<e.length&&c(e.slice(o)),t.length>0?t:[l.jsx("span",{children:e},n)]}function z(e){return/^(?:https?:\/\/|mailto:|\/|#)/iu.test(e)}function Te(e){if(!e)return e??"";const n=ee(e);return Ie(e,n).flatMap((r,o)=>{if(r.kind==="text")return $e(r.value,o*100);const{identity:i}=r,c=i.definitionId===Y?"var(--accent)":K(i.definitionId);return l.jsx(de,{identity:i,color:c},o)})}export{Te as r};
@@ -0,0 +1 @@
1
+ import{a as b}from"./Provider-D0bB7q6y.js";function i(t){return t?t.replace(/^https?:\/\//,"").split("/")[0].split(":")[0].split(".")[0]||t.slice(0,8):""}function h(t){return t&&((t.hostName?i(t.hostName):null)||t.name)||"this host"}function w(t){if(!t)return"Host";const e=h(t.localNode);return e==="this host"?"Host":e}function L(t){return i(t.hostName)||t.name||"tailnet peer"}function N(t){return i(t.dnsName)||i(t.hostName)||(t.name??"").toLowerCase()}function p(t){return i(t.hostName)||(t.name?i(t.name):"")}function y(t){const e=(t.hostName??t.dnsName??t.name??"").trim().toLowerCase();return e?i(e).toLowerCase()==="localhost"||e==="127.0.0.1"||e.startsWith("localhost."):!1}function C(t,e){const u=b(t),s=new Map,l=e.localNode?.id??"local",f=h(e.localNode),m=(e.localNode&&e.nodes?.[e.localNode.id]?.host)??e.nodes?.[l]?.host;s.set(l,{machineId:l,machineLabel:f,reachability:"this",online:!0,host:m,agents:[]});for(const o of u){const n=o.authorityNodeId??o.homeNodeId??l;if(n!==l&&!e.nodes?.[n])continue;let a=s.get(n);if(!a){const c=e.nodes?.[n];a={machineId:n,machineLabel:h(c)||o.authorityNodeName||o.homeNodeName||n,reachability:"peer",online:!0,host:c?.host,agents:[]},s.set(n,a)}a.agents.push(o)}const r=new Set;for(const o of s.values()){r.add(o.machineLabel.toLowerCase());const n=e.nodes?.[o.machineId];if(n){const a=p(n);a&&r.add(a.toLowerCase())}}for(const o of e.tailscale?.peers??[]){if(y(o))continue;const n=L(o),a=N(o).toLowerCase();if(a&&r.has(a)||r.has(n.toLowerCase()))continue;const c=`tailnet:${o.id}`;s.has(c)||(s.set(c,{machineId:c,machineLabel:n,reachability:"tailnet",online:!!(o.online&&e.tailscale?.running),agents:[]}),a&&r.add(a),r.add(n.toLowerCase()))}const d=o=>o.reachability==="this"?0:o.reachability==="peer"?1:2;return Array.from(s.values()).sort((o,n)=>{const a=d(o)-d(n);return a!==0?a:o.machineLabel.localeCompare(n.machineLabel)})}export{C as b,w as l};
@@ -1 +1 @@
1
- import{r as p}from"./index-DvLtl7rV.js";const M={active:"active",moving:"moving",done:"done",archive:"archive"},b=["active","moving","done","archive"],h=300*1e3,O=1800*1e3,S=1440*60*1e3;function L(t,n=Date.now()){const o=n-u(t);return o<=h?"active":o<=O?"moving":o<=S?"done":"archive"}const i="openscout.meshOps.lastLookAt";function y(){if(typeof window>"u")return 0;try{const t=window.localStorage.getItem(i);return t?Number(t)||0:Date.now()}catch{return Date.now()}}function A(){if(!(typeof window>"u"))try{window.localStorage.setItem(i,String(Date.now()))}catch{}}function E(t,n){return u(t)>n}function v(t){if(t.labels.length>0)return t.labels[0];if(t.projectRoot){const n=t.projectRoot.split("/").filter(Boolean);return n[n.length-1]??t.projectRoot}return"unlabeled"}function u(t){return t.lastMeaningfulAt??t.updatedAt}const l="openscout.mesh-ops.lab.",r={lastLook:!0,routeStrip:!0,compact:!1,relays:!1,simulateHosts:!1};function m(){if(typeof window>"u")return r;const t=n=>{try{const o=window.localStorage.getItem(`${l}${n}`);return o===null?r[n]:o==="1"}catch{return r[n]}};return{lastLook:t("lastLook"),routeStrip:t("routeStrip"),compact:t("compact"),relays:t("relays"),simulateHosts:t("simulateHosts")}}function _(t,n){if(!(typeof window>"u"))try{window.localStorage.setItem(`${l}${t}`,n?"1":"0")}catch{}}let e={status:"idle",error:null,generatedAt:null,items:[],hosts:[],machineId:null,selectedItemId:null,groupBy:"family",attnFilter:null,unattributedOnly:!1,lab:m(),refreshToken:0};const a=new Set;function s(){for(const t of a)t()}function D(t){e={...e,status:"loading",error:null,machineId:t},s()}function R(t,n,o,c=[]){const f=e.selectedItemId!==null&&!n.some(d=>d.id===e.selectedItemId);e={...e,status:"ready",error:null,items:n,hosts:c,generatedAt:o,machineId:t,selectedItemId:f?null:e.selectedItemId},s()}function F(t,n){e={...e,status:"error",error:n,machineId:t},s()}function T(t){e.selectedItemId!==t&&(e={...e,selectedItemId:t},s())}function H(t){e.groupBy!==t&&(e={...e,groupBy:t},s())}function N(t){e.attnFilter!==t&&(e={...e,attnFilter:t},s())}function B(t){e.unattributedOnly!==t&&(e={...e,unattributedOnly:t},s())}function G(t){const n={...e.lab,[t]:!e.lab[t]};_(t,n[t]),e={...e,lab:n},s()}function P(){e={...e,refreshToken:e.refreshToken+1},s()}function g(t){return a.add(t),()=>{a.delete(t)}}function I(){return e}function W(){return p.useSyncExternalStore(g,I)}function k(){return e}export{b as M,T as a,A as b,u as c,M as d,N as e,v as f,H as g,G as h,E as i,P as j,D as k,R as l,k as m,F as n,y as r,B as s,L as t,W as u};
1
+ import{r as p}from"./index-C1VaWNuD.js";const M={active:"active",moving:"moving",done:"done",archive:"archive"},b=["active","moving","done","archive"],h=300*1e3,O=1800*1e3,S=1440*60*1e3;function L(t,n=Date.now()){const o=n-u(t);return o<=h?"active":o<=O?"moving":o<=S?"done":"archive"}const i="openscout.meshOps.lastLookAt";function y(){if(typeof window>"u")return 0;try{const t=window.localStorage.getItem(i);return t?Number(t)||0:Date.now()}catch{return Date.now()}}function A(){if(!(typeof window>"u"))try{window.localStorage.setItem(i,String(Date.now()))}catch{}}function E(t,n){return u(t)>n}function v(t){if(t.labels.length>0)return t.labels[0];if(t.projectRoot){const n=t.projectRoot.split("/").filter(Boolean);return n[n.length-1]??t.projectRoot}return"unlabeled"}function u(t){return t.lastMeaningfulAt??t.updatedAt}const l="openscout.mesh-ops.lab.",r={lastLook:!0,routeStrip:!0,compact:!1,relays:!1,simulateHosts:!1};function m(){if(typeof window>"u")return r;const t=n=>{try{const o=window.localStorage.getItem(`${l}${n}`);return o===null?r[n]:o==="1"}catch{return r[n]}};return{lastLook:t("lastLook"),routeStrip:t("routeStrip"),compact:t("compact"),relays:t("relays"),simulateHosts:t("simulateHosts")}}function _(t,n){if(!(typeof window>"u"))try{window.localStorage.setItem(`${l}${t}`,n?"1":"0")}catch{}}let e={status:"idle",error:null,generatedAt:null,items:[],hosts:[],machineId:null,selectedItemId:null,groupBy:"family",attnFilter:null,unattributedOnly:!1,lab:m(),refreshToken:0};const a=new Set;function s(){for(const t of a)t()}function D(t){e={...e,status:"loading",error:null,machineId:t},s()}function R(t,n,o,c=[]){const f=e.selectedItemId!==null&&!n.some(d=>d.id===e.selectedItemId);e={...e,status:"ready",error:null,items:n,hosts:c,generatedAt:o,machineId:t,selectedItemId:f?null:e.selectedItemId},s()}function F(t,n){e={...e,status:"error",error:n,machineId:t},s()}function T(t){e.selectedItemId!==t&&(e={...e,selectedItemId:t},s())}function H(t){e.groupBy!==t&&(e={...e,groupBy:t},s())}function N(t){e.attnFilter!==t&&(e={...e,attnFilter:t},s())}function B(t){e.unattributedOnly!==t&&(e={...e,unattributedOnly:t},s())}function G(t){const n={...e.lab,[t]:!e.lab[t]};_(t,n[t]),e={...e,lab:n},s()}function P(){e={...e,refreshToken:e.refreshToken+1},s()}function g(t){return a.add(t),()=>{a.delete(t)}}function I(){return e}function W(){return p.useSyncExternalStore(g,I)}function k(){return e}export{b as M,T as a,A as b,u as c,M as d,N as e,v as f,H as g,G as h,E as i,P as j,D as k,R as l,k as m,F as n,y as r,B as s,L as t,W as u};
@@ -1 +1 @@
1
- import{r as d}from"./index-DvLtl7rV.js";const u=new Set(["in_turn","in_flight","needs_attention","callable","blocked"]),l="openscout.mesh.machinePositions.v1";function f(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(l);if(!e)return{};const n=JSON.parse(e);if(n&&typeof n=="object"){const i={};for(const[c,o]of Object.entries(n))o&&typeof o=="object"&&typeof o.x=="number"&&typeof o.y=="number"&&(i[c]={x:o.x,y:o.y});return i}}catch{}return{}}function r(e){if(!(typeof window>"u"))try{window.localStorage.setItem(l,JSON.stringify(e))}catch{}}let t={mode:"map",density:"comfortable",selectedId:null,selectedType:null,meshSnapshot:null,probeCache:{},query:"",stateFilter:"all",agentStateFilters:u,hiddenMachineIds:new Set,collapsedMachineIds:new Set,treeFullMachineIds:new Set,scrollTargetMachineId:null,machinePositions:f()};const a=new Set;function s(){for(const e of a)e()}function p(e){t.mode!==e&&(t={...t,mode:e},s())}function g(e){t.density!==e&&(t={...t,density:e},s())}function w(e,n){t.selectedId===e&&t.selectedType===n||(t={...t,selectedId:e,selectedType:n},s())}function y(e){t={...t,meshSnapshot:e},s()}function I(e){t.query!==e&&(t={...t,query:e},s())}function b(e){t.stateFilter!==e&&(t={...t,stateFilter:e},s())}function T(e){const n=new Set(t.agentStateFilters);n.has(e)?n.delete(e):n.add(e),t={...t,agentStateFilters:n},s()}function x(e){const n=new Set(t.treeFullMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,treeFullMachineIds:n},s()}function P(e){const n=new Set(t.hiddenMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,hiddenMachineIds:n},s()}function _(e,n){const i=new Set;for(const c of n)c!==e&&i.add(c);t={...t,hiddenMachineIds:i},s()}function m(){t.hiddenMachineIds.size!==0&&(t={...t,hiddenMachineIds:new Set},s())}function F(e){const n=new Set(t.collapsedMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,collapsedMachineIds:n},s()}function A(e,n){const i={...t.machinePositions,[e]:n};t={...t,machinePositions:i},r(i),s()}function O(){if(Object.keys(t.machinePositions).length===0)return;const e={};t={...t,machinePositions:e},r(e),s()}function E(e){t={...t,scrollTargetMachineId:e},s(),queueMicrotask(()=>{t.scrollTargetMachineId===e&&(t={...t,scrollTargetMachineId:null},s())})}function h(e){return a.add(e),()=>{a.delete(e)}}function S(){return t}function j(){return d.useSyncExternalStore(h,S)}export{F as a,A as b,w as c,O as d,p as e,g as f,I as g,b as h,T as i,m as j,x as k,_ as l,E as r,y as s,P as t,j as u};
1
+ import{r as d}from"./index-C1VaWNuD.js";const u=new Set(["in_turn","in_flight","needs_attention","callable","blocked"]),l="openscout.mesh.machinePositions.v1";function f(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(l);if(!e)return{};const n=JSON.parse(e);if(n&&typeof n=="object"){const i={};for(const[c,o]of Object.entries(n))o&&typeof o=="object"&&typeof o.x=="number"&&typeof o.y=="number"&&(i[c]={x:o.x,y:o.y});return i}}catch{}return{}}function r(e){if(!(typeof window>"u"))try{window.localStorage.setItem(l,JSON.stringify(e))}catch{}}let t={mode:"map",density:"comfortable",selectedId:null,selectedType:null,meshSnapshot:null,probeCache:{},query:"",stateFilter:"all",agentStateFilters:u,hiddenMachineIds:new Set,collapsedMachineIds:new Set,treeFullMachineIds:new Set,scrollTargetMachineId:null,machinePositions:f()};const a=new Set;function s(){for(const e of a)e()}function p(e){t.mode!==e&&(t={...t,mode:e},s())}function g(e){t.density!==e&&(t={...t,density:e},s())}function w(e,n){t.selectedId===e&&t.selectedType===n||(t={...t,selectedId:e,selectedType:n},s())}function y(e){t={...t,meshSnapshot:e},s()}function I(e){t.query!==e&&(t={...t,query:e},s())}function b(e){t.stateFilter!==e&&(t={...t,stateFilter:e},s())}function T(e){const n=new Set(t.agentStateFilters);n.has(e)?n.delete(e):n.add(e),t={...t,agentStateFilters:n},s()}function x(e){const n=new Set(t.treeFullMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,treeFullMachineIds:n},s()}function P(e){const n=new Set(t.hiddenMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,hiddenMachineIds:n},s()}function _(e,n){const i=new Set;for(const c of n)c!==e&&i.add(c);t={...t,hiddenMachineIds:i},s()}function m(){t.hiddenMachineIds.size!==0&&(t={...t,hiddenMachineIds:new Set},s())}function F(e){const n=new Set(t.collapsedMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,collapsedMachineIds:n},s()}function A(e,n){const i={...t.machinePositions,[e]:n};t={...t,machinePositions:i},r(i),s()}function O(){if(Object.keys(t.machinePositions).length===0)return;const e={};t={...t,machinePositions:e},r(e),s()}function E(e){t={...t,scrollTargetMachineId:e},s(),queueMicrotask(()=>{t.scrollTargetMachineId===e&&(t={...t,scrollTargetMachineId:null},s())})}function h(e){return a.add(e),()=>{a.delete(e)}}function S(){return t}function j(){return d.useSyncExternalStore(h,S)}export{F as a,A as b,w as c,O as d,p as e,g as f,I as g,b as h,T as i,m as j,x as k,_ as l,E as r,y as s,P as t,j as u};
@@ -1 +1 @@
1
- import{c as e}from"./createLucideIcon-DezKXSG2.js";const c=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],a=e("message-circle",c);export{a as M};
1
+ import{c as e}from"./createLucideIcon-Dv8H8m7J.js";const c=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],a=e("message-circle",c);export{a as M};
@@ -1,4 +1,4 @@
1
- import{j as i}from"./index-DvLtl7rV.js";import{r as c}from"./mentions-DG6OQrsc.js";const h=/^```([a-z0-9_-]+)?\s*$/iu,E=/^(#{1,6})\s+(.+)$/u,L=/^(?:-{3,}|\*{3,}|_{3,})$/u,_=/^\s*[-*]\s+(.+)$/u,M=/^\s*\d+[.)]\s+(.+)$/u,w=/^\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)+\|?$/u;function B(e){return/[\r\n]/u.test(e)||!(/(?:(?:\\r)?\\n){2}/u.test(e)||/(?:\\r)?\\n(?=\s*(?:#{1,6}\s|[-*+]\s|>\s|\d+[.)]\s|[A-Z][A-Za-z ]{0,40}:))/u.test(e))?e:e.replace(/\\r\\n|\\n|\\r/gu,`
1
+ import{j as i}from"./index-C1VaWNuD.js";import{r as c}from"./mentions-BZ5SBMtc.js";const h=/^```([a-z0-9_-]+)?\s*$/iu,E=/^(#{1,6})\s+(.+)$/u,L=/^(?:-{3,}|\*{3,}|_{3,})$/u,_=/^\s*[-*]\s+(.+)$/u,M=/^\s*\d+[.)]\s+(.+)$/u,w=/^\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)+\|?$/u;function B(e){return/[\r\n]/u.test(e)||!(/(?:(?:\\r)?\\n){2}/u.test(e)||/(?:\\r)?\\n(?=\s*(?:#{1,6}\s|[-*+]\s|>\s|\d+[.)]\s|[A-Z][A-Za-z ]{0,40}:))/u.test(e))?e:e.replace(/\\r\\n|\\n|\\r/gu,`
2
2
  `)}function P(e){const s=B(e).replace(/\r\n?/gu,`
3
3
  `).trim();return s?s.replace(/([^\n])\s+---\s+(?=(?:#{1,6}\s|\*\*|[A-Z0-9]))/gu,`$1
4
4
 
@@ -1 +1 @@
1
- import{c as a}from"./createLucideIcon-DezKXSG2.js";const e=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],o=a("message-square",e);export{o as M};
1
+ import{c as a}from"./createLucideIcon-Dv8H8m7J.js";const e=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],o=a("message-square",e);export{o as M};
@@ -1 +1 @@
1
- import{r as o}from"./index-DvLtl7rV.js";const c=[{label:"5m",value:5*6e4},{label:"30m",value:30*6e4},{label:"4h",value:240*6e4},{label:"24h",value:1440*6e4}];let t={activityFilter:"active",sourceFilter:"all",activityWindowMs:c[3].value,groupMode:"activity",query:"",focusedId:null,revealRequest:null,visibleAgents:[],selectedIds:[]};const u=new Set;let a=0;function s(){for(const e of u)e()}function I(e){t.activityFilter!==e&&(t={...t,activityFilter:e},s())}function g(e){t.sourceFilter!==e&&(t={...t,sourceFilter:e},s())}function y(e){t.activityWindowMs!==e&&(t={...t,activityWindowMs:e},s())}function A(e){t.groupMode!==e&&(t={...t,groupMode:e},s())}function S(e){t.query!==e&&(t={...t,query:e},s())}function h(e){t.focusedId!==e&&(t={...t,focusedId:e},s())}function b(e){a+=1,t={...t,revealRequest:{id:e,serial:a}},s()}function p(e){t.revealRequest?.serial===e&&(t={...t,revealRequest:null},s())}function f(e,n){if(e===n)return!0;if(e.length!==n.length)return!1;for(let i=0;i<e.length;i++){const r=e[i],l=n[i];if(r.id!==l.id||r.state!==l.state||r.updatedAt!==l.updatedAt||r.activity!==l.activity||r.lastActiveAt!==l.lastActiveAt)return!1}return!0}function q(e){f(t.visibleAgents,e)||(t={...t,visibleAgents:e},s())}function _(e){const n=t.selectedIds.includes(e);t={...t,selectedIds:n?t.selectedIds.filter(i=>i!==e):[...t.selectedIds,e]},s()}function R(){t.selectedIds.length!==0&&(t={...t,selectedIds:[]},s())}function d(e){return u.add(e),()=>{u.delete(e)}}function v(){return t}function F(){return o.useSyncExternalStore(d,v)}export{c as M,S as a,I as b,y as c,A as d,R as e,q as f,p as g,h,b as r,g as s,_ as t,F as u};
1
+ import{r as o}from"./index-C1VaWNuD.js";const c=[{label:"5m",value:5*6e4},{label:"30m",value:30*6e4},{label:"4h",value:240*6e4},{label:"24h",value:1440*6e4}];let t={activityFilter:"active",sourceFilter:"all",activityWindowMs:c[3].value,groupMode:"activity",query:"",focusedId:null,revealRequest:null,visibleAgents:[],selectedIds:[]};const u=new Set;let a=0;function s(){for(const e of u)e()}function I(e){t.activityFilter!==e&&(t={...t,activityFilter:e},s())}function g(e){t.sourceFilter!==e&&(t={...t,sourceFilter:e},s())}function y(e){t.activityWindowMs!==e&&(t={...t,activityWindowMs:e},s())}function A(e){t.groupMode!==e&&(t={...t,groupMode:e},s())}function S(e){t.query!==e&&(t={...t,query:e},s())}function h(e){t.focusedId!==e&&(t={...t,focusedId:e},s())}function b(e){a+=1,t={...t,revealRequest:{id:e,serial:a}},s()}function p(e){t.revealRequest?.serial===e&&(t={...t,revealRequest:null},s())}function f(e,n){if(e===n)return!0;if(e.length!==n.length)return!1;for(let i=0;i<e.length;i++){const r=e[i],l=n[i];if(r.id!==l.id||r.state!==l.state||r.updatedAt!==l.updatedAt||r.activity!==l.activity||r.lastActiveAt!==l.lastActiveAt)return!1}return!0}function q(e){f(t.visibleAgents,e)||(t={...t,visibleAgents:e},s())}function _(e){const n=t.selectedIds.includes(e);t={...t,selectedIds:n?t.selectedIds.filter(i=>i!==e):[...t.selectedIds,e]},s()}function R(){t.selectedIds.length!==0&&(t={...t,selectedIds:[]},s())}function d(e){return u.add(e),()=>{u.delete(e)}}function v(){return t}function F(){return o.useSyncExternalStore(d,v)}export{c as M,S as a,I as b,y as c,A as d,R as e,q as f,p as g,h,b as r,g as s,_ as t,F as u};
@@ -0,0 +1 @@
1
+ import{t as d}from"./time-Dhsh_2EG.js";const g=30*6e4;function p(e){return/\bcard\b/i.test(e)||/\b\d{3,}\b/i.test(e)||/sco\d{2,}/i.test(e)||/grok\d+$/i.test(e)||/codex\s*\d+$/i.test(e)||/message\s+(attach|workflow)/i.test(e)}function f(e){const t=new Map;for(const o of e.agents){const s=o.row.agent.name,i=t.get(s)??[];i.push(o),t.set(s,i)}const n=[];for(const[o,s]of t){const i=[...new Set(s.map(r=>r.row.branch).filter(r=>r&&r!=="—"))],a=[...new Set(s.map(r=>r.row.harness).filter(Boolean))],l=[...new Set(s.map(r=>r.row.agent.model).filter(r=>!!r))];n.push({name:o,harness:a.length===1?a[0]:"mixed",model:a.length===1&&l.length===1?l[0]:null,nodes:[...s].sort((r,c)=>(c.row.lastActivityAt??0)-(r.row.lastActivityAt??0)),branches:i,sessionCount:s.reduce((r,c)=>r+c.sessions.length,0),lastActivityAt:Math.max(0,...s.map(r=>r.row.lastActivityAt??0)),needs:s.some(r=>r.row.activeAskCount>0),ephemeral:p(o)})}return n.sort((o,s)=>o.needs!==s.needs?o.needs?-1:1:s.lastActivityAt-o.lastActivityAt||s.sessionCount-o.sessionCount)}function I(e){const t=new Map;for(const n of e.agents){const o=n.row.branch;!o||o==="—"||o==="main"||t.set(o,Math.max(t.get(o)??0,n.row.lastActivityAt??0))}return[...t.entries()].sort((n,o)=>o[1]-n[1]).map(([n])=>n)}function y(e,t){return t-e.lastActivityAt<g}function h(e){return{primary:e.filter(t=>!t.ephemeral),ephemeral:e.filter(t=>t.ephemeral)}}function b(e){return e==="pi"?"grok":e.toLowerCase()}function j(e,t){const n=[];for(const o of e){const s=f(o),{primary:i,ephemeral:a}=h(s),l=t?[...i,...a]:i;for(const r of l){const c=r.nodes[0];c&&n.push({group:r,projectSlug:o.slice.slug,projectTitle:o.slice.title,projectRoot:o.slice.root,leadRow:c.row,leadAgent:c.row.agent})}}return n.sort(m)}function m(e,t){return e.group.needs!==t.group.needs?e.group.needs?-1:1:t.group.lastActivityAt-e.group.lastActivityAt||t.group.sessionCount-e.group.sessionCount}function w(e){const t=(e.preview??"").replace(/^\[ask:[^\]]+\]\s*/i,"").replace(/\s+/g," ").trim();if(t)return t;const n=e.title?.trim();return n&&n!==e.agentName?n:"Untitled session"}function u(e,t=140){if(!e?.trim())return"";let n=e.replace(/^\[ask:[^\]]+\]\s*/gi,"").replace(/^#+\s+/gm,"").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/^[-*•]\s+/gm,"").replace(/\s+/g," ").trim();return n?n.length>t?`${n.slice(0,t-1).trim()}…`:n:""}function A(e){const t=[],n=(s,i)=>{const a=u(s);!a||a==="Untitled session"||t.push({text:a,at:i})};for(const s of e.group.nodes){s.row.session&&n(w(s.row.session),s.row.session.lastMessageAt??0);for(const i of s.sessions)n(i.detail??i.label,i.lastActivityAt??0)}return t.length===0?null:t.reduce((s,i)=>i.at>s.at?i:s).text}function k(e,t){const n=e.leadRow.activeTask?u(e.leadRow.activeTask):null;if(n)return n;const o=A(e);if(o)return o;if(e.group.sessionCount>0){const s=e.group.lastActivityAt?d(e.group.lastActivityAt):null;return s?`Idle · last active ${s}`:`Idle · ${e.group.sessionCount} sessions`}return t==="idle"?"No recent activity":e.leadRow.stateLabel}function x(e){return{view:"agents-v2",...e.projectSlug?{projectSlug:e.projectSlug}:{},...e.harness?{harness:e.harness}:{},...e.node?{node:e.node}:{},...e.set?{set:e.set}:{},...e.indexView?{indexView:e.indexView}:{},...e.stateFilter?{stateFilter:e.stateFilter}:{},...e.showEphemeral?{showEphemeral:!0}:{},...e.selectedAgentId?{selectedAgentId:e.selectedAgentId}:{},..."machineId"in e&&e.machineId?{machineId:e.machineId}:{}}}function C(e){return!!e.agentId}function R(e,t){return{...e,view:"agents-v2",agentId:t,selectedAgentId:void 0,sessionId:void 0,tab:void 0,conversationId:void 0}}export{j as a,I as b,y as c,k as d,u as e,f as g,b as h,C as i,R as o,h as p,x as r};
@@ -1 +1 @@
1
- import{r}from"./index-DvLtl7rV.js";import{a as L}from"./api-Co9aQ2Jw.js";import{a as S}from"./colors-BtO5_zlx.js";import{i as y,o as E}from"./surface-activity-B1rgWB1i.js";const _=1e4,b=6e4;function O(t,s){const[p,i]=r.useState({}),c=s?.enabled??!0,o=r.useRef(!0),f=r.useRef(!1),l=r.useRef(!1),u=s?.pauseWhenHidden??!1,d=t.map(e=>e.id.trim()).filter(e=>e.length>0).join(","),I=t.some(e=>S(e.state))?s?.activeIntervalMs??_:s?.idleIntervalMs??b,n=r.useCallback(async()=>{if(c){if(t.length===0){i({});return}if(!(u&&!y())){if(f.current){l.current=!0;return}f.current=!0;try{const e=d?`?ids=${encodeURIComponent(d)}`:"",v=await L(`/api/observe/agents${e}`);if(!o.current)return;i(h=>{const m={};for(const a of t)m[a.id]=h[a.id];for(const a of v){const{agentId:R,...A}=a;m[R]=A}return m})}finally{f.current=!1,l.current&&(l.current=!1,n())}}}},[d,t,c,u]);return r.useEffect(()=>{if(o.current=!0,!c||t.length===0)return i({}),()=>{o.current=!1};n();const e=setInterval(()=>{n()},I),v=u?E(()=>{n()}):null;return()=>{o.current=!1,clearInterval(e),v?.()}},[t.length,c,n,u,I]),p}export{O as u};
1
+ import{r}from"./index-C1VaWNuD.js";import{a as L}from"./api-Co9aQ2Jw.js";import{a as S}from"./colors-BtO5_zlx.js";import{i as y,o as E}from"./surface-activity-B1rgWB1i.js";const _=1e4,b=6e4;function O(t,s){const[p,i]=r.useState({}),c=s?.enabled??!0,o=r.useRef(!0),f=r.useRef(!1),l=r.useRef(!1),u=s?.pauseWhenHidden??!1,d=t.map(e=>e.id.trim()).filter(e=>e.length>0).join(","),I=t.some(e=>S(e.state))?s?.activeIntervalMs??_:s?.idleIntervalMs??b,n=r.useCallback(async()=>{if(c){if(t.length===0){i({});return}if(!(u&&!y())){if(f.current){l.current=!0;return}f.current=!0;try{const e=d?`?ids=${encodeURIComponent(d)}`:"",v=await L(`/api/observe/agents${e}`);if(!o.current)return;i(h=>{const m={};for(const a of t)m[a.id]=h[a.id];for(const a of v){const{agentId:R,...A}=a;m[R]=A}return m})}finally{f.current=!1,l.current&&(l.current=!1,n())}}}},[d,t,c,u]);return r.useEffect(()=>{if(o.current=!0,!c||t.length===0)return i({}),()=>{o.current=!1};n();const e=setInterval(()=>{n()},I),v=u?E(()=>{n()}):null;return()=>{o.current=!1,clearInterval(e),v?.()}},[t.length,c,n,u,I]),p}export{O as u};
@@ -1 +1 @@
1
- import{r as u}from"./index-DvLtl7rV.js";let e={hover:null,content:null};const n=new Set;function s(){for(const t of n)t()}function i(t){return n.add(t),()=>{n.delete(t)}}function r(){return e}function c(){return u.useSyncExternalStore(i,r,r)}function o(t){e.hover!==t&&(e={...e,hover:t},s())}function f(t){return!t||!t.route&&!t.label?{onPointerEnter:void 0,onPointerLeave:void 0}:{onPointerEnter:()=>o(t),onPointerLeave:()=>{e.hover===t&&o(null)}}}export{f as s,c as u};
1
+ import{r as u}from"./index-C1VaWNuD.js";let e={hover:null,content:null};const n=new Set;function s(){for(const t of n)t()}function i(t){return n.add(t),()=>{n.delete(t)}}function r(){return e}function c(){return u.useSyncExternalStore(i,r,r)}function o(t){e.hover!==t&&(e={...e,hover:t},s())}function f(t){return!t||!t.route&&!t.label?{onPointerEnter:void 0,onPointerLeave:void 0}:{onPointerEnter:()=>o(t),onPointerLeave:()=>{e.hover===t&&o(null)}}}export{f as s,c as u};
@@ -1 +1 @@
1
- import{c}from"./createLucideIcon-DezKXSG2.js";const a=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],o=c("paperclip",a);export{o as P};
1
+ import{c}from"./createLucideIcon-Dv8H8m7J.js";const a=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],o=c("paperclip",a);export{o as P};
@@ -1 +1 @@
1
- import{r as a}from"./index-DvLtl7rV.js";const i="openscout:persistent-state-change";function d(t,e){typeof window>"u"||window.dispatchEvent(new CustomEvent(i,{detail:{key:t,value:e}}))}function w(t){try{return window.localStorage.getItem(t)}catch{return null}}function c(t,e){try{window.localStorage.setItem(t,e)}catch{}d(t,e)}function l(t){const[e,n]=a.useState(()=>typeof window>"u"?null:w(t));return a.useEffect(()=>{n(w(t));const s=r=>{const u=r.detail;!u||u.key!==t||n(u.value)},o=r=>{r.key===t&&n(r.newValue)};return window.addEventListener(i,s),window.addEventListener("storage",o),()=>{window.removeEventListener(i,s),window.removeEventListener("storage",o)}},[t]),e}function m(t,e){const n=l(t),s=n===null?e:n==="true",o=a.useCallback(r=>{c(t,r?"true":"false")},[t]);return[s,o]}function g(t,e){const n=l(t),s=n===null?Number.NaN:Number(n),o=Number.isFinite(s)?s:e,r=a.useCallback(u=>{c(t,String(u))},[t]);return[o,r]}function E(t,e){const s=l(t)??e,o=a.useCallback(r=>{c(t,r)},[t]);return[s,o]}export{E as a,m as b,g as u};
1
+ import{r as a}from"./index-C1VaWNuD.js";const i="openscout:persistent-state-change";function d(t,e){typeof window>"u"||window.dispatchEvent(new CustomEvent(i,{detail:{key:t,value:e}}))}function w(t){try{return window.localStorage.getItem(t)}catch{return null}}function c(t,e){try{window.localStorage.setItem(t,e)}catch{}d(t,e)}function l(t){const[e,n]=a.useState(()=>typeof window>"u"?null:w(t));return a.useEffect(()=>{n(w(t));const s=r=>{const u=r.detail;!u||u.key!==t||n(u.value)},o=r=>{r.key===t&&n(r.newValue)};return window.addEventListener(i,s),window.addEventListener("storage",o),()=>{window.removeEventListener(i,s),window.removeEventListener("storage",o)}},[t]),e}function m(t,e){const n=l(t),s=n===null?e:n==="true",o=a.useCallback(r=>{c(t,r?"true":"false")},[t]);return[s,o]}function g(t,e){const n=l(t),s=n===null?Number.NaN:Number(n),o=Number.isFinite(s)?s:e,r=a.useCallback(u=>{c(t,String(u))},[t]);return[o,r]}function E(t,e){const s=l(t)??e,o=a.useCallback(r=>{c(t,r)},[t]);return[s,o]}export{E as a,m as b,g as u};
@@ -1 +1 @@
1
- import{c as e}from"./createLucideIcon-DezKXSG2.js";const o=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],c=e("plus",o);export{c as P};
1
+ import{c as e}from"./createLucideIcon-Dv8H8m7J.js";const o=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],c=e("plus",o);export{c as P};
@@ -0,0 +1 @@
1
+ import{r as u,j as s}from"./index-C1VaWNuD.js";import{A as Z}from"./AgentAvatar-Dz79iTxB.js";import{a as B}from"./api-Co9aQ2Jw.js";import{d as _,c as rs}from"./context-budget-DqxWzalx.js";import{b as ls,p as K,n as ss,h as q}from"./NewChatComposer-D2Ah4T-W.js";import{b as Q,r as es,s as ts,a as ns}from"./session-catalog-CG4oL_yN.js";import{u as X}from"./sse-B29iGBnw.js";import{t as z}from"./time-Dhsh_2EG.js";import{B as cs}from"./BackToPicker-BHicJyfc.js";import{o as F}from"./openContent-C6XO6kr5.js";import{u as G}from"./Provider-D0bB7q6y.js";import{ConversationScreen as ds}from"./ConversationScreen-DIU7m_aC.js";import{S as ms}from"./SessionObserve-BVeTkcIl.js";import{H as as}from"./HarnessMark-DttReffF.js";/* empty css */import{AgentDefinitionsWorkspace as ps}from"./AgentDefinitionsWorkspace-DHDS9Pgd.js";import{AgentEssentialsGlyph as us}from"./agent-essentials-K9B6kbTS.js";import"./SpriteAvatar-DFO4Kb4Z.js";import"./colors-BtO5_zlx.js";import"./CrewAvatar-CZ_faQ_s.js";import"./perf-PX8Rx0EP.js";import"./runtime-picker-C20lTGhV.js";import"./scout-voice-Cg1qfepC.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DmUG_YC7.js";import"./createLucideIcon-Dv8H8m7J.js";import"./conversation-model-C2KuZUXc.js";import"./index-Cx6Gbr6n.js";import"./NewChatOrigin-DCn5cWPZ.js";import"./keyboard-nav-B8sQ_8IF.js";import"./x-DgmmnPKt.js";import"./chevron-down-D120PY4g.js";import"./search-FB2vVxCp.js";import"./file-text-BHro8MkG.js";import"./terminal-relay-CXHMdain.js";import"./router-kfcaYqZr.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Bdt2W3Y4.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D7kGGyK_.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-D8iB6SMt.js";import"./TextDocumentSurface-2X1Gw4eA.js";import"./chevron-right-CowuvuE6.js";import"./code-xml-CkkNdRmu.js";import"./arrow-left-eToA6GxC.js";import"./arrow-right-DTX42clh.js";import"./chunk-HRAB3GC3-KjjrTLCU.js";import"./ConversationComposer-BUIjWMBi.js";import"./zap-Bcja1lHG.js";import"./message-markup-DC0QFEZn.js";import"./mentions-BZ5SBMtc.js";import"./AgentDetailCard-8viaEY8b.js";import"./AgentLiveActions-DlSKL60c.js";import"./terminal-takeover-BMeBjBB2.js";import"./eye-C9cGk5z6.js";import"./terminal-UDy4lzV1.js";import"./message-visibility-CGOmSSKs.js";import"./operator-attention-RqieiSY8.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-Bt2RBj93.js";import"./AstronautSuit-CwB4Dw07.js";import"./ConversationFeedRows-Bx0gFyG_.js";import"./ConversationPanels-o6W-cOoU.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-CPoX8iV2.js";import"./proxy-DVDRhSRR.js";import"./activity-CzTJ-YMX.js";import"./message-circle-joGFxfj1.js";import"./tail-events-LK29oCKm.js";import"./ConversationStatus-CTYOywFh.js";import"./check-Dz2SRHft.js";import"./sparkles-D0vWLTyC.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-t7-XJP-h.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-CJVqIqQ2.js";import"./ObserveTextFlow-DCJ5EmD8.js";import"./SessionObserveEvidence-BkOezTGV.js";import"./wrench-BfVeded5.js";import"./external-link-BvX5PfLh.js";import"./agent-specialization-CtF_jI34.js";import"./project-overview-helpers-BQTc_Ous.js";import"./FileViewerPane-CxNbcTYf.js";/* empty css */function hs(e){if(e===null)return"age unknown";const t=Math.max(0,Math.round(e/6e4));if(t<60)return`${t}m old`;const o=Math.floor(t/60),c=t%60;return c>0?`${o}h ${c}m old`:`${o}h old`}function Y(e){return`${e.turnCount} turn${e.turnCount===1?"":"s"}`}function xs(e){return e?e.startsWith("/Users/")?"~/"+e.split("/").slice(3).join("/"):e:null}function is(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu.test(e)?e:e.length>16?`${e.slice(0,8)}…${e.slice(-4)}`:e}function vs(e){return e.replace(/^relay-/u,"").replace(/-arts-mac-mini-local-(claude|codex)$/u,"")}function fs(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:`${e}`}function U(e){return typeof e!="number"||!Number.isFinite(e)?"-":Math.abs(e)<1e3?`${Math.round(e)}`:Math.abs(e)<1e6?`${(e/1e3).toFixed(e%1e3===0?0:1)}k`:`${(e/1e6).toFixed(1)}m`}function js(e){if(!Number.isFinite(e)||e<=0)return"0s";if(e<60)return`${Math.round(e)}s`;const t=Math.round(e),o=Math.floor(t/3600),c=Math.floor(t%3600/60),i=t%60;return o>0?`${o}h ${c}m`:c>=10||i===0?`${c}m`:`${c}m ${i}s`}function Ns(e,t=32){if(e.length===0)return[];const o=e[e.length-1].t||1,c=new Array(t).fill(0);for(const i of e){const m=Math.min(t-1,Math.max(0,Math.floor(i.t/o*t)));c[m]+=1}return c}function bs(e){return e.kind!=="boot"&&e.kind!=="system"}function ws({buckets:e,emptyTitle:t,emptyDetail:o}){if(e.length===0)return s.jsxs("div",{className:"s-sum-observed-empty",children:[s.jsx("span",{children:t}),s.jsx("strong",{children:o})]});const c=Math.max(...e,1),i=240,m=20,r=1,p=(i-r*(e.length-1))/e.length;return s.jsxs("div",{className:"s-sum-spark",children:[s.jsx("svg",{viewBox:`0 0 ${i} ${m}`,preserveAspectRatio:"none",className:"s-sum-spark-svg","aria-hidden":!0,children:e.map((l,h)=>{const x=Math.max(1,l/c*m);return s.jsx("rect",{x:h*(p+r),y:m-x,width:p,height:x,fill:"var(--accent)",opacity:.22+.62*(l/c)},h)})}),s.jsxs("div",{className:"s-sum-spark-axis",children:[s.jsx("span",{children:"session start"}),s.jsx("span",{children:"now"})]})]})}function ys({agentId:e,session:t,active:o,onPrimary:c,primaryLabel:i,primaryTitle:m}){const[r,p]=u.useState(null),[l,h]=u.useState(null),x=u.useCallback(async()=>{const g=new URLSearchParams({sessionId:t.id}),[P,J]=await Promise.all([B(`/api/agents/${encodeURIComponent(e)}/observe?${g}`).catch(()=>null),B(`/api/agents/${encodeURIComponent(e)}/session/context`).catch(()=>null)]);p(P),h(J)},[e,t.id]);u.useEffect(()=>{x()},[x]),X(()=>{x()});const N=r?.data,v=(N?.events??[]).filter(bs),w=v.filter(g=>g.kind==="tool"),S=w.filter(g=>g.tool==="edit"||g.tool==="write"),y=w.filter(g=>g.tool==="read"),f=N?.files.length??0,b=N?.metadata?.session?.turnCount,$=l?.activeSessionId===t.id?l.turnCount:void 0,C=v.length>0||f>0,d=r?r.source==="unavailable"?"unavailable":C?"observed":"waiting":"loading",R=d==="loading"?"Loading trace":d==="unavailable"?"No trace source":"Session created",L=d==="loading"?"checking for terminal or transcript activity":d==="unavailable"?"this session has no observable transcript attached":"no agent work has been recorded yet",H=[{k:"turns",v:U(b??$)},{k:"tools",v:U(w.length)},{k:"edits",v:U(S.length)},{k:"reads",v:U(y.length)},{k:"files",v:U(f)},{k:"window",v:js(v.length>0?v[v.length-1].t:0)}],D=N?.metadata?.usage,a=_(D,{model:N?.metadata?.session?.model??t.model,adapterType:t.harness}),E=a?`${a.usedLabel} / ${a.budgetLabel} ctx`:l?Y(l):"context",T=a?`${a.pct}%${a.overLimit?" over":""}`:"tokens unavailable",O=l&&l.sessionAgeMs!==null?hs(l.sessionAgeMs):null,A=a&&l?`${Y(l)}${O?` · ${O}`:""}`:O,n=r?.sessionId?.trim()||r?.data.metadata?.session?.externalSessionId?.trim()||r?.data.metadata?.session?.threadId?.trim()||null,j=t.harnessSessionId?.trim()||t.threadId?.trim()||t.externalSessionId?.trim()||(o?n:null)||null,k=t.runtimeSessionId?.trim()||t.surfaceSessionId?.trim()||(j&&j!==t.id?t.id:null),M=j??t.id,W=j&&t.harness==="codex"?"codex session id":j&&t.harness?`${t.harness} session id`:t.id.startsWith("relay-")?"runtime id":"session id",V=t.cwd?K(t.cwd):"workspace";return s.jsxs("div",{className:"s-sum",children:[s.jsxs("div",{className:"s-sum-session-state",children:[s.jsx("span",{className:`s-sum-session-dot${o?" s-sum-session-dot--active":""}`}),s.jsxs("span",{className:"s-sum-session-copy",children:[s.jsx("strong",{children:o?"Session attached":"Previous session"}),s.jsxs("span",{className:"s-sum-session-ref",title:M,children:[s.jsx("span",{children:W}),s.jsx("code",{children:M})]}),k&&k!==M&&s.jsxs("span",{className:"s-sum-session-profile",title:k,children:["runtime ",k]}),s.jsx("small",{title:t.cwd||void 0,children:V})]}),d!=="observed"?s.jsx("span",{className:`s-sum-trace-pill s-sum-trace-pill--${d}`,children:d==="waiting"?"waiting for work":d==="loading"?"checking trace":"no trace"}):null]}),s.jsxs("div",{className:"s-sum-cols",children:[s.jsxs("div",{className:"s-sum-col s-sum-col--activity",children:[s.jsx("div",{className:"s-sum-label",children:"Observed work"}),s.jsx(ws,{buckets:Ns(v),emptyTitle:R,emptyDetail:L})]}),s.jsxs("div",{className:"s-sum-col s-sum-col--context",children:[s.jsx("div",{className:"s-sum-label",children:"Context"}),s.jsxs("div",{className:"s-sum-ctx-head",children:[s.jsx("span",{className:"s-sum-ctx-size",children:E}),s.jsx("span",{className:"s-sum-ctx-pct",children:T})]}),a?s.jsx("div",{className:"s-sum-gauge","aria-label":`Context ${a.pct}%`,children:s.jsx("div",{className:"s-sum-gauge-fill",style:{width:`${rs(a)}%`}})}):s.jsx("div",{className:"s-sum-ctx-unavailable",children:"No token-window usage yet"}),A&&s.jsx("div",{className:"s-sum-ctx-runway",children:A})]})]}),s.jsxs("div",{className:"s-sum-foot",children:[C?s.jsx("div",{className:"s-sum-stats",children:H.map((g,P)=>s.jsxs("span",{className:"s-sum-stat",children:[P>0&&s.jsx("span",{className:"s-sum-stat-sep",children:"·"}),s.jsx("span",{className:"s-sum-stat-v",children:g.v}),s.jsx("span",{className:"s-sum-stat-k",children:g.k})]},g.k))}):s.jsx("div",{className:"s-sum-status-note",children:o?"The session exists, but no turn/tool/file activity has reached Scout yet.":"This prior session has no observable work trace."}),s.jsx("button",{type:"button",className:"s-sess-explore-primary",onClick:c,title:m,children:i})]})]})}function pt({agent:e,name:t,sessionCatalog:o,conversationId:c,navigate:i,route:m,homeView:r="agents-v2"}){const{focusedSession:p,focusSession:l}=G(),h=es(e,o),x=u.useMemo(()=>ts(o?.sessions??[],h),[o?.sessions,h]),N=x.find(n=>n.id===h)??null,I=N?.model??null,v=N?.reasoningEffort??e.reasoningEffort??null,S=[!!(I&&I!==e.model)&&I?`Session model: ${I}`:null,v?`Effort: ${v}`:null].filter(Boolean).join(" · ")||null,[y,f]=u.useState("idle"),[b,$]=u.useState(null),[C,d]=u.useState("idle"),[R,L]=u.useState(null);u.useEffect(()=>{f("idle"),$(null),d("idle"),L(null)},[e.id]);const H=m.view==="agents-v2"&&m.agentId===e.id?m.sessionId:null,D=ns(e.id,p,h,x,H),a=Q(H,x);u.useEffect(()=>{a&&(p?.agentId===e.id&&p.sessionId===a||l(e.id,a))},[e.id,p?.agentId,p?.sessionId,l,a]);const E=async()=>{if(C!=="opening"){d("opening"),L(null);try{const n=await q({...e,conversationId:c});i({view:r,agentId:e.id,conversationId:n,tab:"message"})}catch(n){L(n instanceof Error?n.message:"Could not open chat.")}finally{d("idle")}}},T=async()=>{if(y!=="starting"){f("starting"),$(null);try{const n=await B("/api/sessions",{method:"POST",body:JSON.stringify(ss(e))}),j=n.sessionId?.trim();if(j){F(i,{view:"sessions",sessionId:j},{returnTo:m});return}const k=n.conversationId?.trim();if(!k)throw new Error("Session started, but no conversation was returned.");i({view:r,agentId:n.agentId?.trim()||e.id,conversationId:k,tab:"message"})}catch(n){$(n instanceof Error?n.message:"Could not start a new session.")}finally{f("idle")}}},O=n=>F(i,{view:"sessions",sessionId:n.id},{returnTo:m}),A=n=>{l(e.id,n)};return s.jsxs("div",{className:"s-sess-root",children:[s.jsxs("header",{className:"s-sess-head",children:[s.jsxs("div",{className:"s-sess-id",children:[s.jsx("span",{className:"s-sess-avatar",children:s.jsx(Z,{agent:e,size:46,tile:!0,presence:!1})}),s.jsxs("div",{className:"s-sess-id-copy",children:[s.jsxs("div",{className:"s-sess-name-row",children:[s.jsx("span",{className:"s-sess-name",children:t}),e.handle&&s.jsxs("span",{className:"s-sess-handle",children:["@",e.handle.replace(/^@+/,"")]})]}),s.jsx(us,{agent:e,chipTitle:S})]})]}),s.jsxs("div",{className:"s-sess-head-actions",children:[s.jsx("button",{type:"button",className:"s-sess-action",onClick:()=>i({view:r,agentId:e.id,tab:"config"}),children:"Edit config"}),s.jsx("button",{type:"button",className:"s-sess-action s-sess-action--accent",disabled:y==="starting",onClick:T,children:y==="starting"?"Starting...":"+ New session"}),b&&s.jsx("div",{className:"s-sess-action-error",children:b}),R&&s.jsx("div",{className:"s-sess-action-error",children:R})]})]}),s.jsxs("section",{className:"s-sess-band",children:[s.jsxs("header",{className:"s-sess-band-head",children:[s.jsx("span",{className:"s-sess-band-label",children:"Recent sessions"}),x.length>0&&s.jsxs("span",{className:"s-sess-band-meta",children:[x.length," sessions"]})]}),s.jsx("div",{className:"s-sess-list",children:x.length===0?s.jsxs("div",{className:"s-sess-empty",children:["No sessions yet — start a new session for ",t,"."]}):x.map(n=>{const j=n.id===h,k=n.id===D,M=n.harness??e.harness??"session",W=n.model??e.model,V=W&&M&&W.startsWith(`${M}-`)?W.slice(M.length+1):W,g=[M,V,n.reasoningEffort].filter(os=>!!os).join(" · "),P=n.surfaceSessionId?`${n.transport??e.transport??"terminal"} surface ${vs(n.surfaceSessionId)}`:n.transport&&n.transport!==M?`${n.transport} surface`:null,J=j?"now":n.endedAt?`ended · ${z(n.endedAt)||"recent"}`:z(n.startedAt)||"recent";return s.jsxs("div",{className:`s-sess-item${k?" s-sess-item--selected":""}`,children:[s.jsxs("button",{type:"button",className:`s-sess-row${j?" s-sess-row--active":""}${k?" s-sess-row--selected":""}`,onClick:()=>A(n.id),"aria-expanded":k,children:[s.jsx("span",{className:"s-mod-dot s-sess-row-dot",style:{background:j?"var(--accent)":"var(--dim)",opacity:j?1:.55}}),s.jsxs("span",{className:"s-sess-row-main",children:[s.jsxs("span",{className:"s-sess-row-top",children:[s.jsx("span",{className:"s-sess-row-id",title:n.id,children:is(n.id)}),s.jsx("span",{className:"s-sess-row-tag",children:g})]}),s.jsxs("span",{className:"s-sess-row-sub",title:P??void 0,children:[n.cwd?K(n.cwd):"workspace",P?` · ${P}`:""]})]}),s.jsx("span",{className:`s-sess-row-when${j?" s-sess-row-when--active":""}`,children:J})]}),k&&s.jsx(ys,{agentId:e.id,session:n,active:j,onPrimary:()=>j?void E():O(n),primaryLabel:j?"Continue":"Resume",primaryTitle:j?"Send a message into this conversation":"Reopen this conversation and message it"})]},n.id)})})]})]})}function Ss(e){let t;if(e.kind==="tool"){const o=e.arg?.trim()||e.text?.trim()||"";t=`${e.tool??"tool"}${o?` ${o}`:""}`.trim()}else t=e.text?.trim()||e.kind;return t.length>160?`${t.slice(0,157)}…`:t}function ks({agent:e,session:t,active:o,onContinue:c,onTakeover:i,onOpen:m}){const[r,p]=u.useState(null),l=u.useCallback(async()=>{const d=await B(`/api/agents/${encodeURIComponent(e.id)}/observe`).catch(()=>null);p(d)},[e.id]);u.useEffect(()=>{p(null),l()},[l]),X(()=>{l()});const h=r?.data.events??[],x=e.branch||(t.cwd?K(t.cwd):"main"),N=e.model&&e.harness&&e.model.startsWith(`${e.harness}-`)?e.model.slice(e.harness.length+1):e.model??null,I=t.harness??e.harness??"session",v=(()=>{for(const d of h)if((d.kind==="message"||d.kind==="ask")&&d.text?.trim())return d.text.trim();return null})()??(t.cwd?K(t.cwd):null)??e.name,w=r?.data.metadata?.usage??null,S=w?.assistantMessages??null,y=_(w,{model:r?.data.metadata?.session?.model??N,adapterType:I}),f=y?Math.min(100,y.pct):null,b=o?"live":"idle",$=h.length,C=h.slice(-6).map(d=>({t:d.at??d.t?z(d.at??d.t):"",text:Ss(d),kind:d.kind}));return s.jsxs("section",{className:"ap-focus ap-profileCard","data-tone":b,"aria-label":v,children:[s.jsxs("header",{className:"ap-focusHead",children:[s.jsx("h1",{className:"ap-focusTitle",children:v}),s.jsx("span",{className:"ap-focusState","data-tone":b,children:o?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ap-dot","data-tone":"live","aria-hidden":!0})," working"]}):"idle"}),s.jsx("button",{type:"button",className:"ap-focusOpen",onClick:m,children:"Open ↗"})]}),s.jsxs("div",{className:"ap-focusAttr",children:[s.jsxs("span",{className:"ap-focusAttrText",children:[x,N?` · ${N}`:""]}),s.jsx("span",{className:"ap-rowMark","aria-hidden":!0,children:s.jsx(as,{harness:I,size:11})})]}),s.jsxs("div",{className:"ap-decision",children:[s.jsx("button",{type:"button",className:"ap-decisionPrimary",onClick:c,children:o?"Continue":"Resume"}),s.jsx("button",{type:"button",className:"ap-decisionGhost",onClick:i,children:"Take over"}),s.jsxs("span",{className:"ap-decisionMeta",children:[f!=null?s.jsxs("span",{children:[s.jsx("span",{className:"ap-metaKey",children:"ctx"}),f,"%"]}):null,w&&(w.inputTokens||w.outputTokens)?s.jsxs("span",{children:[s.jsx("span",{className:"ap-metaKey",children:"tokens"}),fs(w.inputTokens??0)," in"]}):null,S!=null?s.jsxs("span",{children:[s.jsx("span",{className:"ap-metaKey",children:"turns"}),S]}):null]})]}),s.jsxs("div",{className:"ap-logHead",children:[s.jsx("span",{className:"ap-logHeadTitle",children:"Session log"}),s.jsx("span",{className:"ap-logHeadMeta",children:r===null?"loading…":`${r.source} · ${$} events`})]}),s.jsx("div",{className:"ap-log",children:r===null?s.jsx("div",{className:"ap-traceLoading",children:"Resolving the most recent session…"}):C.length===0?s.jsx("div",{className:"ap-traceLoading",children:"No activity captured for this session yet."}):C.map((d,R)=>s.jsxs("div",{className:"ap-logLine","data-kind":d.kind,children:[s.jsx("span",{className:"ap-logT",children:d.t}),s.jsx("span",{className:"ap-logText",children:d.text})]},R))})]})}function gs({agent:e,name:t,sessionCatalog:o,conversationId:c,navigate:i,route:m}){const{focusedSession:r,focusSession:p}=G(),l=es(e,o),h=u.useMemo(()=>ts(o?.sessions??[],l),[o?.sessions,l]),x=h.find(a=>a.id===l)??h[0]??null,N=m.view==="agents-v2"&&m.agentId===e.id?m.sessionId:null,I=ns(e.id,r,l,h,N),v=Q(N,h);u.useEffect(()=>{v&&(r?.agentId===e.id&&r.sessionId===v||p(e.id,v))},[e.id,r?.agentId,r?.sessionId,p,v]);const w=e.model&&e.harness&&e.model.startsWith(`${e.harness}-`)?e.model.slice(e.harness.length+1):e.model??null,S=e.cwd?xs(e.cwd)??e.cwd:null,y=e.homeNodeName?e.homeNodeName.replace(/\.local$/i,""):null,f=e.handle?.trim().replace(/^@+/,"")||null,b=f?`@${f}`:t,$=f&&t.toLowerCase()!==f.toLowerCase()?t:[e.project?`/${e.project}`:null,e.branch,w].filter(Boolean).join(" · "),C=a=>m.view==="agents-v2"?{...m,...a,view:"agents-v2"}:{view:"agents-v2",agentId:e.id,...a},d=async()=>{try{const a=await q({...e,conversationId:c});i(C({agentId:e.id,conversationId:a,tab:"message"}))}catch{}},R=async()=>{try{const a=await B("/api/sessions",{method:"POST",body:JSON.stringify(ss(e))}),E=a.sessionId?.trim();if(E){F(i,{view:"sessions",sessionId:E},{returnTo:m});return}const T=a.conversationId?.trim();i(C({agentId:a.agentId?.trim()||e.id,...T?{conversationId:T}:{},tab:"message"}))}catch{}},L=a=>F(i,{view:"sessions",sessionId:a.id},{returnTo:m}),H=()=>F(i,{view:"terminal",agentId:e.id,mode:"takeover"},{returnTo:m}),D=a=>{p(e.id,a)};return s.jsxs("div",{className:"ap-profile",children:[s.jsxs("header",{className:"ap-profileHead",children:[s.jsx(Z,{agent:e,size:48,tile:!0,presence:!1}),s.jsxs("div",{className:"ap-profileIdent",children:[s.jsxs("div",{className:"ap-profileTop",children:[e.harness?s.jsx("span",{className:"ap-rowMark","aria-hidden":!0,children:s.jsx(as,{harness:e.harness,size:13})}):null,s.jsx("h1",{className:"ap-profileName",title:b,children:b})]}),s.jsx("span",{className:"ap-profileSub",title:$,children:$||S||"—"}),f&&t.toLowerCase()!==f.toLowerCase()?s.jsx("span",{className:"ap-profileId",title:e.id,children:t}):null]}),s.jsxs("div",{className:"ap-headActions",children:[s.jsx("button",{type:"button",className:"ap-headGhost",onClick:()=>i(C({agentId:e.id,tab:"config"})),children:"Edit config"}),s.jsx("button",{type:"button",className:"ap-headCta",onClick:()=>{R()},children:"+ New session"})]})]}),s.jsxs("div",{className:"ap-profileBody",children:[s.jsxs("div",{className:"ap-profileMain",children:[s.jsx("div",{className:"ap-profileSection",children:"Current session"}),x?s.jsx(ks,{agent:e,session:x,active:x.id===l,onContinue:()=>{d()},onTakeover:H,onOpen:()=>{d()}}):s.jsxs("div",{className:"ap-traceLoading",children:["No active session for ",t,"."]}),s.jsxs("div",{className:"ap-profileSection",children:["Sessions ",s.jsx("span",{className:"ap-profileCount",children:h.length})]}),h.length===0?s.jsxs("div",{className:"ap-empty",children:["No sessions yet — start a new session for ",t,"."]}):s.jsxs("div",{className:"ap-sessTable",children:[s.jsxs("div",{className:"ap-sessTableHead","aria-hidden":!0,children:[s.jsx("span",{}),s.jsx("span",{children:"Session"}),s.jsx("span",{children:"Engine"}),s.jsx("span",{children:"Last"})]}),h.map(a=>{const E=a.id===l,T=E?"now":a.endedAt?`ended · ${z(a.endedAt)||"recent"}`:z(a.startedAt)||"recent",O=a.cwd?K(a.cwd):is(a.id),A=a.harness??e.harness??"session",n=a.model??e.model,j=n&&n.startsWith(`${A}-`)?n.slice(A.length+1):n,k=[A,j,a.reasoningEffort].filter(Boolean).join(" · ");return s.jsxs("button",{type:"button",className:"ap-sessRow","data-tone":E?"live":"idle","data-selected":a.id===I||void 0,onClick:()=>E?D(a.id):L(a),children:[E?s.jsx("span",{className:"ap-dot","data-tone":"live","aria-hidden":!0}):s.jsx("span",{className:"ap-sessRowDot","aria-hidden":!0}),s.jsx("span",{className:"ap-sessRowName",title:a.id,children:O}),s.jsx("span",{className:"ap-sessRowEngine",children:k}),s.jsx("span",{className:"ap-sessRowWhen",children:T})]},a.id)})]})]}),s.jsxs("aside",{className:"ap-profileAside",children:[s.jsxs("div",{className:"ap-group",children:[s.jsx("div",{className:"ap-groupHead",children:"Place"}),S?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"root"}),s.jsx("span",{className:"ap-kvVal",children:S})]}):null,y?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"host"}),s.jsx("span",{className:"ap-kvVal",children:y})]}):null,e.branch?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"branch"}),s.jsx("span",{className:"ap-kvVal",children:e.branch})]}):null]}),s.jsxs("div",{className:"ap-group",children:[s.jsx("div",{className:"ap-groupHead",children:"Runtime"}),e.harness?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"harness"}),s.jsx("span",{className:"ap-kvVal",children:e.harness})]}):null,w?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"model"}),s.jsx("span",{className:"ap-kvVal",children:w})]}):null]})]})]})]})}function ut({agent:e,allAgents:t,conversationId:o,navigate:c,activeTab:i,renderProfile:m}){const{name:r}=ls(e,t),[p,l]=u.useState(null),[h,x]=u.useState(!1),[N,I]=u.useState(null),{route:v}=G(),w=v.view==="agents-v2"&&v.agentId===e.id?v.sessionId??null:null,S=Q(w,N?.sessions??[])??w,y=u.useCallback(async()=>{const b=await B(`/api/agents/${encodeURIComponent(e.id)}/session-catalog`).catch(()=>null);I(b)},[e.id]),f=u.useCallback(async()=>{x(!0);try{const b=S?new URLSearchParams({sessionId:S}):null,$=await B(`/api/agents/${encodeURIComponent(e.id)}/observe${b?`?${b}`:""}`);l($)}catch{l({agentId:e.id,source:"unavailable",fidelity:"synthetic",historyPath:null,sessionId:null,updatedAt:Date.now(),data:{events:[{id:`${e.id}:observe-error`,t:0,kind:"system",text:"Observer data is temporarily unavailable.",detail:"Retrying will resume once the session source becomes reachable."}],files:[],contextUsage:[],live:!1}})}finally{x(!1)}},[e.id,S]);return u.useEffect(()=>{I(null),y();const b=window.setTimeout(()=>{y()},3e3);return()=>window.clearTimeout(b)},[y]),u.useEffect(()=>{l(null),x(!1)},[e.id,S]),u.useEffect(()=>{i==="observe"&&f()},[i,f]),X(()=>{y(),i==="observe"&&f()}),u.useEffect(()=>{if(i!=="observe"||!p?.data.live)return;const b=setInterval(()=>{f()},2500);return()=>clearInterval(b)},[i,p?.data.live,f]),s.jsxs("div",{className:`s-profile-center${i!=="profile"?" s-profile-center--tabbed":" s-profile-center--modular"}`,children:[i==="profile"&&(m?m({agent:e,sessionCatalog:N,conversationId:o,navigate:c,route:v}):s.jsx("div",{className:"s-aproj s-aproj--profile",children:s.jsx(gs,{agent:e,name:r,sessionCatalog:N,conversationId:o,navigate:c,route:v})})),i==="config"&&s.jsx(ps,{agent:e,navigate:c,homeView:"agents-v2"}),i==="observe"&&s.jsx("div",{className:"s-profile-tab-conversation",children:h&&!p?s.jsxs("div",{className:"s-profile-activity-empty",children:[s.jsx("div",{className:"s-profile-activity-empty-title",children:"Loading trace"}),s.jsx("div",{className:"s-profile-activity-empty-detail",children:"Resolving the best available live or history-backed session stream for this agent."})]}):s.jsx(ms,{data:p?.data,agentId:e.id,sessionId:p?.sessionId,observeSource:p?.source,observeFidelity:p?.fidelity,showRail:!1})}),i==="message"&&(o?s.jsx("div",{className:"s-profile-tab-conversation",children:s.jsx(ds,{conversationId:o,navigate:c,embedded:!0})}):s.jsx(Is,{agent:e,navigate:c}))]})}function Is({agent:e,navigate:t}){const{route:o}=G(),[c,i]=u.useState("idle"),[m,r]=u.useState(null),p=async()=>{if(c!=="opening"){i("opening"),r(null);try{const l=await q(e);t(o.view==="agents-v2"?{...o,view:"agents-v2",agentId:e.id,conversationId:l,tab:"message"}:{view:"agents-v2",agentId:e.id,conversationId:l,tab:"message"})}catch(l){r(l instanceof Error?l.message:"Could not open chat.")}finally{i("idle")}}};return s.jsx("div",{className:"s-profile-tab-conversation",children:s.jsxs("div",{className:"s-profile-activity-empty",children:[s.jsx("div",{className:"s-profile-activity-empty-title",children:"No chat yet"}),s.jsxs("div",{className:"s-profile-activity-empty-detail",children:["Open a direct chat with ",e.name,". The broker will create a real chat ID and keep routing by this agent identity."]}),m&&s.jsx("div",{className:"s-sess-action-error",children:m}),s.jsx("button",{type:"button",className:"s-sess-action",disabled:c==="opening",onClick:()=>{p()},children:c==="opening"?"Opening...":"Open chat"})]})})}function ht({agent:e,conversationId:t,activeTab:o,navigate:c}){const i=[{key:"profile",label:"Sessions"},{key:"config",label:"Config"},{key:"observe",label:"Trace"},{key:"message",label:"Message"}],m=r=>c({view:"agents-v2",agentId:e.id,...t?{conversationId:t}:{},tab:r});return s.jsxs("div",{className:"s-agent-bar",children:[s.jsx(cs,{slot:"agents",fallback:{view:"agents-v2"},navigate:c,className:"s-agent-bar-back"}),s.jsx("nav",{className:"s-profile-tabs s-agent-bar-tabs",children:i.map(r=>s.jsx("button",{type:"button",className:`s-profile-tab${o===r.key?" s-profile-tab--active":""}`,disabled:r.disabled,onClick:()=>m(r.key),children:r.label},r.key))})]})}export{ut as AgentDetailWithRail,ht as AgentProfileBar,pt as AgentProfileSessionsCenter,ks as CurrentSessionCard};
@@ -0,0 +1 @@
1
+ .s-pi{--pi-bg: var(--hud-bg);--pi-ink: var(--scout-chrome-ink-strong);--pi-muted: var(--scout-chrome-ink-soft);--pi-dim: var(--scout-chrome-ink-faint);--pi-hairline: color-mix(in srgb, var(--hud-ink) 8%, transparent);--pi-hairline-strong: color-mix(in srgb, var(--hud-ink) 15%, transparent);--pi-accent: var(--accent);--pi-accent-soft: var(--hud-accent-soft);--pi-surface: color-mix(in srgb, var(--hud-surface) 58%, var(--pi-bg));--pi-mono: var(--hud-font-mono);--pi-sans: var(--hud-font-sans);--pi-ease: cubic-bezier(.22, 1, .36, 1);height:100%;min-height:0;display:flex;flex-direction:column;color:var(--pi-ink);font-family:var(--pi-sans);-webkit-font-smoothing:antialiased}.pi-tnum{font-variant-numeric:tabular-nums}.pi-shell{height:100%;min-height:0;display:grid;grid-template-columns:minmax(268px,316px) minmax(0,1fr);background:var(--pi-bg)}.pi-shell[data-aside]{grid-template-columns:minmax(268px,316px) minmax(0,1fr) minmax(320px,380px)}.pi-srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pi-loadingLine{display:block;min-width:0;height:8px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--hud-ink) 6%,transparent),color-mix(in srgb,var(--hud-ink) 13%,transparent),color-mix(in srgb,var(--hud-ink) 6%,transparent));background-size:220% 100%;animation:pi-shimmer 1.35s ease-in-out infinite}.pi-stateBlock{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:42px 24px;color:var(--pi-dim);text-align:center;animation:pi-fade-in .16s var(--pi-ease)}.pi-statePulse{width:7px;height:7px;border-radius:999px;background:color-mix(in srgb,var(--pi-muted) 64%,transparent)}.pi-stateBlock[data-tone=loading] .pi-statePulse{background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft);animation:pi-pulse 1.8s ease-in-out infinite}.pi-stateBlock[data-tone=error] .pi-statePulse{background:color-mix(in srgb,#ff6b57 72%,var(--pi-accent))}.pi-stateTitle{color:var(--pi-muted);font-size:var(--text-md);font-weight:650}.pi-stateDetail{max-width:420px;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-xs);line-height:1.45}.s-pi-rail{display:flex;flex-direction:column;height:100%;min-height:0;border-right:1px solid var(--pi-hairline);background:color-mix(in srgb,var(--hud-surface) 22%,transparent)}.s-projects-embed,.pi-projectsEmbedShell{width:100%;height:100vh;min-height:0}.pi-projectsEmbedShell{display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;background:var(--hud-bg)}.pi-projectsEmbedShell>.s-av2{min-width:0}.s-discovered-embed.s-projects-embed .pi-inboxTitle,.s-discovered-embed.s-projects-embed .pi-projectTitle,.pi-projectsEmbedShell .pi-inboxTitle,.pi-projectsEmbedShell .pi-projectTitle{display:none}.s-discovered-embed.s-projects-embed .pi-inboxHead,.pi-projectsEmbedShell .pi-inboxHead{min-height:0;padding-block:6px;align-items:center}.s-discovered-embed.s-projects-embed .pi-projectHead,.pi-projectsEmbedShell .pi-projectHead{gap:6px;padding-block:6px}.pi-railFind{flex:none;display:flex;align-items:center;gap:7px;height:30px;margin:12px 10px 8px;padding:0 9px;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--hud-surface) 44%,transparent);color:var(--pi-dim)}.pi-railFind:focus-within{border-color:color-mix(in srgb,var(--pi-accent) 45%,var(--pi-hairline))}.pi-railFindInput{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--pi-ink);font-size:var(--text-md);font-family:var(--pi-sans)}.pi-railFindInput::placeholder{color:var(--pi-dim)}.pi-railFindClear{flex:none;display:inline-flex;background:none;border:none;cursor:pointer;color:var(--pi-dim);padding:2px;border-radius:5px}.pi-railFindClear:hover{color:var(--pi-ink)}.pi-railBody{flex:1;min-height:0;overflow-y:auto;padding:4px 10px 12px;scrollbar-width:thin}.pi-railGroup{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}.pi-railGroup--projects{gap:0}.pi-railLabel{font-size:var(--text-2xs);font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--pi-muted);padding:3px 8px 5px}.pi-railDisclosure{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:4px 9px 6px;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--pi-dim)}.pi-railDisclosure:hover{color:var(--pi-muted)}.pi-railChev{display:inline-block;transition:transform .15s var(--pi-ease);font-size:var(--text-2xs)}.pi-railDisclosure[data-open] .pi-railChev{transform:rotate(90deg)}.pi-railEmpty{padding:6px 9px;font-size:var(--text-sm);color:var(--pi-dim)}.pi-railFoot{flex:none;padding:8px 10px 10px;border-top:1px solid var(--pi-hairline)}.pi-railFootBtn{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:1px solid transparent;cursor:pointer;padding:6px 9px;border-radius:7px;font-size:var(--text-sm);font-weight:560;color:var(--pi-dim);transition:background .12s var(--pi-ease),color .12s var(--pi-ease)}.pi-railFootBtn:hover{background:color-mix(in srgb,var(--hud-surface) 55%,transparent);color:var(--pi-ink)}.pi-railProjectTools{display:flex;align-items:center;gap:8px;padding-right:2px}.pi-railProjectTools .pi-railLabel{flex:1;min-width:0}.pi-railAddBtn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--hud-surface) 35%,transparent);color:var(--pi-dim);cursor:pointer}.pi-railAddBtn:hover{color:var(--pi-ink);border-color:var(--pi-hairline-strong)}.pi-railAddBtn[aria-expanded=true]{color:var(--pi-accent);border-color:color-mix(in srgb,var(--pi-accent) 45%,var(--pi-hairline))}.pi-addProject{display:flex;flex-direction:column;gap:4px;margin:6px 0 8px}.pi-addProjectBox{display:flex;align-items:center;gap:7px;height:30px;padding:0 9px;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--hud-surface) 44%,transparent);color:var(--pi-dim)}.pi-addProjectBox:focus-within{border-color:color-mix(in srgb,var(--pi-accent) 45%,var(--pi-hairline))}.pi-addProjectInput{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--pi-ink);font-family:var(--pi-mono);font-size:var(--text-sm)}.pi-addProjectInput::placeholder{color:var(--pi-dim)}.pi-addProjectSubmit{flex:none;border:0;background:none;padding:2px;color:var(--pi-accent);font-size:var(--text-sm);font-weight:600;cursor:pointer}.pi-addProjectSubmit:disabled{color:var(--pi-dim);cursor:default}.pi-addProjectNote{padding:0 2px;font-size:var(--text-sm);color:var(--pi-muted)}.pi-addProjectNote[data-tone=error]{color:var(--red, #c25555)}.pi-railSortWrap{position:relative;flex:none;display:inline-flex;align-items:center;width:86px;height:25px;padding:0 18px 0 8px;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--hud-surface) 35%,transparent);color:var(--pi-dim)}.pi-railSortWrap svg{position:absolute;right:5px;pointer-events:none}.pi-railSort{width:100%;min-width:0;appearance:none;border:0;outline:0;background:none;color:var(--pi-muted);font-size:var(--text-xs);font-family:var(--pi-sans);cursor:pointer}.pi-railSortWrap:focus-within{border-color:color-mix(in srgb,var(--pi-accent) 45%,var(--pi-hairline))}.pi-pinnedSessions{margin:2px 0 10px;padding:5px 0 8px;border-bottom:1px solid var(--pi-hairline)}.pi-recentReplies{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--pi-hairline)}.pi-recentReplies .pi-projectSessionTitle{color:var(--pi-ink)}.pi-pinnedLabel{padding:0 8px 4px;font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pi-accent)}.pi-projectGroup{position:relative;margin:5px 0 9px}.pi-projectGroup--loading{opacity:.78;pointer-events:none}.pi-projectGroup--loading .pi-projectPath{cursor:default}.pi-loadingLine--railProject{width:72%;height:9px}.pi-loadingLine--railSession{width:calc(100% - 42px);height:7px;margin:7px 10px 7px 35px}.pi-projectGroup[data-selected]{padding:3px;margin-inline:-3px;border-radius:8px;background:color-mix(in srgb,var(--hud-ink) 4%,transparent)}.pi-projectGroupHead{display:grid;grid-template-columns:minmax(0,1fr) 22px;align-items:center;gap:2px;min-width:0}.pi-projectPath{width:100%;min-width:0;height:27px;display:flex;align-items:center;gap:7px;padding:0 6px;border:1px solid transparent;border-radius:7px;background:none;color:var(--pi-muted);cursor:pointer;text-align:left}.pi-projectPath:hover{color:var(--pi-ink);background:color-mix(in srgb,var(--hud-surface) 48%,transparent)}.pi-projectGroup[data-selected] .pi-projectPath{color:var(--pi-ink)}.pi-projectGroup[data-state=working] .pi-projectPath svg,.pi-projectGroup[data-state=needs] .pi-projectPath svg{color:var(--pi-accent)}.pi-projectPathText{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:620}.pi-projectPathToggle{width:22px;height:24px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:none;color:var(--pi-dim);opacity:0;cursor:pointer;transition:opacity .14s var(--pi-ease),color .14s var(--pi-ease)}.pi-projectGroupHead:hover .pi-projectPathToggle,.pi-projectGroupHead:focus-within .pi-projectPathToggle{color:var(--pi-muted);opacity:.88}.pi-projectPathToggle:hover{color:var(--pi-ink);background:color-mix(in srgb,var(--hud-ink) 6%,transparent);opacity:1}.pi-projectIndex{display:flex;flex-direction:column;gap:2px}.pi-projectGroup--flat{margin:0}.pi-projectGroup--flat[data-selected]{margin:0;padding:0;background:transparent}.pi-projectGroupHead--flat{display:block}.pi-projectPath--flat{height:auto;min-height:47px;padding:6px 7px;gap:8px}.pi-projectGroup--flat[data-selected] .pi-projectPath--flat{background:color-mix(in srgb,var(--pi-accent) 8%,transparent);border-color:color-mix(in srgb,var(--pi-accent) 22%,var(--pi-hairline))}.pi-projectPath--flat>svg{flex:none;align-self:flex-start;margin-top:3px}.pi-projectPathStack{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.pi-projectPathMeta{min-width:0;display:flex;align-items:center;gap:5px;overflow:hidden;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs);white-space:nowrap}.pi-projectPathMeta>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.pi-projectState{flex:none;align-self:flex-start;margin-top:1px;color:color-mix(in srgb,var(--pi-accent) 78%,var(--pi-ink));font-size:10px;font-weight:650}.pi-projectState[data-state=needs]{color:color-mix(in srgb,#d9a441 84%,var(--pi-ink))}.pi-loadingLine--railRoot{width:52%;height:6px}.pi-projectPath--flat:focus-visible,.pi-railAddBtn:focus-visible,.pi-railFootBtn:focus-visible,.pi-railFindClear:focus-visible{outline:2px solid color-mix(in srgb,var(--pi-accent) 70%,white);outline-offset:1px}.pi-projectSessionList{display:flex;flex-direction:column;gap:0;margin-top:1px}.pi-projectSession{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 22px 22px auto;align-items:center;gap:4px;min-height:25px;margin-left:22px;border-radius:6px;color:var(--pi-muted)}.pi-projectSession:hover{color:var(--pi-ink);background:color-mix(in srgb,var(--scout-chrome-hover) 66%,transparent)}.pi-projectSession[data-selected]{color:var(--pi-ink);background:color-mix(in srgb,var(--pi-accent) 9%,transparent)}.pi-projectSession[data-pinned]{color:var(--pi-ink)}.pi-projectSessionMain{min-width:0;display:flex;align-items:center;gap:6px;height:25px;padding:0 0 0 13px;border:0;background:none;color:inherit;cursor:pointer;text-align:left;overflow:hidden}.pi-projectSessionTitle{position:relative;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm)}.pi-projectSessionTitle:before{content:"";position:absolute;left:-11px;top:50%;width:5px;height:5px;border-radius:999px;transform:translateY(-50%);background:color-mix(in srgb,var(--pi-dim) 46%,transparent)}.pi-projectSession[data-active] .pi-projectSessionTitle:before{background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft)}.pi-projectSessionProject{flex:0 1 auto;min-width:0;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pi-dim)}.pi-projectSessionWhen{padding-right:5px;font-family:var(--pi-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--pi-dim)}.pi-sessionPin,.pi-sessionArchive{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--pi-dim);opacity:0;pointer-events:none;cursor:pointer;transition:opacity .12s var(--pi-ease),background .12s var(--pi-ease),color .12s var(--pi-ease)}.pi-projectSession:hover .pi-sessionPin,.pi-projectSession:focus-within .pi-sessionPin,.pi-projectSession[data-pinned] .pi-sessionPin,.pi-projectSession:hover .pi-sessionArchive,.pi-projectSession:focus-within .pi-sessionArchive{opacity:1;pointer-events:auto}.pi-sessionPin:hover,.pi-sessionArchive:hover{color:var(--pi-ink);background:color-mix(in srgb,var(--hud-ink) 6%,transparent)}.pi-sessionArchive:hover{color:var(--scout-danger, #ef4444)}.pi-sessionPin[data-pinned]{color:var(--pi-accent)}.pi-sessionPin[data-pinned] svg{fill:currentColor}.pi-projectSessionEmpty{padding:5px 8px 5px 35px;font-size:var(--text-sm);color:var(--pi-dim)}.pi-projectShowMore{display:block;width:calc(100% - 24px);margin:2px 0 0 24px;padding:4px 0 3px;border:0;background:none;color:color-mix(in srgb,var(--pi-dim) 72%,transparent);font-size:var(--text-xs);font-weight:600;text-align:left;cursor:pointer}.pi-projectShowMore:hover{color:var(--pi-dim)}.pi-sessionHoverCard{position:fixed;z-index:50;width:304px;min-height:154px;display:flex;flex-direction:column;gap:7px;padding:11px 12px;border:1px solid var(--pi-hairline-strong);border-radius:8px;background:color-mix(in srgb,var(--hud-surface) 94%,var(--pi-bg));box-shadow:0 18px 46px color-mix(in srgb,black 36%,transparent);color:var(--pi-ink);pointer-events:none}.pi-sessionHoverKicker{display:flex;justify-content:space-between;gap:12px;color:var(--pi-dim);font-size:var(--text-2xs);font-family:var(--pi-mono);font-variant-numeric:tabular-nums}.pi-sessionHoverTitle{font-size:var(--text-md);font-weight:680;color:var(--pi-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-sessionHoverContext{font-size:var(--text-sm);color:var(--pi-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-sessionHoverFacts{display:flex;flex-wrap:wrap;gap:5px}.pi-sessionHoverFacts span{min-width:0;max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 6px;border:1px solid var(--pi-hairline);border-radius:6px;color:var(--pi-muted);font-size:var(--text-xs);font-family:var(--pi-mono)}.pi-sessionHoverRef{margin-top:auto;color:var(--pi-dim);font-size:var(--text-xs);font-family:var(--pi-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-pi-inbox{display:flex;flex-direction:column;height:100%;min-height:0;background:radial-gradient(1100px 380px at 6% -10%,color-mix(in srgb,var(--pi-accent) 4%,transparent),transparent 58%),var(--pi-bg)}.pi-inboxHead{flex:none;display:flex;align-items:center;min-height:54px;padding:8px clamp(18px,3vw,42px);border-bottom:1px solid var(--pi-hairline)}.pi-inboxHeading{min-width:0;display:flex;align-items:baseline;gap:10px}.pi-inboxTitle{flex:none;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.01em;color:var(--pi-ink);margin:0}.pi-inboxDigest{font-size:var(--text-sm);font-family:var(--pi-mono);font-variant-numeric:tabular-nums;color:var(--pi-dim)}.pi-meta{flex:1;min-height:0;width:100%;overflow-y:auto;padding:18px clamp(18px,3vw,42px) 48px;scrollbar-width:thin;animation:pi-fade-in .14s var(--pi-ease)}.pi-metaShortcuts{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.pi-shortcut{display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:0 11px;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--hud-surface) 28%,transparent);color:var(--pi-muted);font-size:var(--text-sm);font-weight:560;cursor:pointer;transition:color .12s var(--pi-ease),border-color .12s var(--pi-ease)}.pi-shortcut:hover{color:var(--pi-ink);border-color:var(--pi-hairline-strong)}.pi-shortcut svg{color:var(--pi-dim)}.pi-shortcut:hover svg{color:var(--pi-muted)}.pi-shortcut[aria-expanded=true]{color:var(--pi-accent);border-color:color-mix(in srgb,var(--pi-accent) 38%,var(--pi-hairline))}.pi-meta .pi-addProject{width:min(100%,560px);margin:8px 0 0}.pi-metaSection{min-width:0;width:min(100%,980px);margin-top:20px}.pi-recentRow{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:7px 12px;border:0;border-bottom:1px solid var(--pi-hairline);background:none;color:var(--pi-muted);text-align:left;cursor:pointer;transition:background .12s var(--pi-ease)}.pi-recentRow:hover{background:color-mix(in srgb,var(--scout-chrome-hover) 62%,transparent);color:var(--pi-ink)}.pi-recentDot{width:6px;height:6px;border-radius:999px;background:color-mix(in srgb,var(--pi-dim) 42%,transparent)}.pi-recentRow[data-state=live] .pi-recentDot{background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft);animation:pi-pulse 2.4s ease-in-out infinite}.pi-recentRow[data-state=needs] .pi-recentDot{background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft)}.pi-recentMain{min-width:0;display:flex;align-items:baseline;gap:9px}.pi-recentTitle{flex:none;max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:600;color:var(--pi-ink)}.pi-recentRoot{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--pi-mono);font-size:var(--text-2xs);color:var(--pi-dim)}.pi-recentMeta{flex:none;display:flex;align-items:baseline;gap:10px;font-family:var(--pi-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--pi-dim)}.pi-recentMeta b{color:var(--pi-accent);font-weight:650}.pi-diffRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:7px 12px;border-bottom:1px solid var(--pi-hairline)}.pi-diffMain{min-width:0;display:flex;align-items:baseline;gap:8px;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.pi-diffMain:hover .pi-diffProject{color:var(--pi-accent)}.pi-diffProject{flex:none;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:600;color:var(--pi-ink)}.pi-diffBranch{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--pi-mono);font-size:var(--text-2xs);color:var(--pi-dim)}.pi-diffChurn{flex:none;display:flex;align-items:baseline;gap:7px;font-family:var(--pi-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.pi-diffChurn small{color:var(--pi-dim);font-size:var(--text-2xs)}.pi-metaEmpty{padding:16px 12px;border-bottom:1px solid var(--pi-hairline);color:var(--pi-dim);font-size:var(--text-sm)}.pi-projectHead{flex:none;display:flex;align-items:flex-start;flex-direction:column;gap:9px;padding:10px 16px;border-bottom:1px solid var(--pi-hairline)}.pi-projectHeadTop{width:100%;min-width:0}.pi-projectIdent{min-width:0;display:flex;flex-direction:column;gap:4px}.pi-projectTitle{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-2xl);font-weight:680;letter-spacing:-.01em;color:var(--pi-ink)}.pi-projectMeta{min-width:0;display:flex;align-items:center;gap:8px;overflow:hidden;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-xs)}.pi-projectMeta>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-projectFacets{flex:none;display:flex;align-items:center;gap:2px;min-width:0;padding:2px;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--hud-surface) 18%,transparent)}.pi-projectFacet{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 8px;border:0;border-radius:5px;background:transparent;color:var(--pi-muted);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:color .12s var(--pi-ease),background .12s var(--pi-ease)}.pi-projectFacet b{font-family:var(--pi-mono);font-variant-numeric:tabular-nums;font-size:var(--text-2xs);color:var(--pi-dim)}.pi-projectFacet:hover{color:var(--pi-ink)}.pi-projectFacet[data-selected]{color:var(--pi-accent);border-color:color-mix(in srgb,var(--pi-accent) 38%,var(--pi-hairline));background:color-mix(in srgb,var(--pi-accent-soft) 24%,transparent)}.pi-projectFacet[data-selected] b{color:var(--pi-accent)}.pi-projectFacet:disabled{cursor:default;color:var(--pi-dim)}.pi-projectFacet:disabled:hover{color:var(--pi-dim);border-color:var(--pi-hairline)}.pi-projectFacetOut{flex:none;color:var(--pi-dim)}.pi-projectFacet:hover .pi-projectFacetOut{color:var(--pi-muted)}.pi-projectOverview{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;padding:12px 16px 24px;background:color-mix(in srgb,var(--pi-bg) 97%,black)}.pi-projectSnapshot{display:grid;grid-template-columns:minmax(280px,.56fr) minmax(0,2fr);gap:10px;align-items:stretch}.pi-projectRepository,.pi-projectWorktrees,.pi-projectPullRequests{min-width:0;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--pi-bg) 94%,black)}.pi-projectRepository{display:flex;flex-direction:column;align-self:start;overflow:hidden}.pi-projectRepositoryHead,.pi-projectWorktreesHead,.pi-projectPullRequestsHead{min-height:34px;display:flex;align-items:center;gap:8px;padding:0 8px;color:var(--pi-muted);font-size:var(--text-xs);font-weight:680}.pi-projectRepositoryHead{justify-content:space-between;color:var(--pi-dim)}.pi-projectRepositoryHead span,.pi-projectWorktreesHead span,.pi-projectPullRequestsHead span{color:var(--pi-muted);font-size:var(--text-2xs);font-weight:740;letter-spacing:.08em;text-transform:uppercase}.pi-projectRepositoryIdentity{min-width:0;display:flex;flex-direction:column;gap:3px;padding:11px 12px 8px}.pi-projectRepositoryIdentity b,.pi-projectRepositoryIdentity span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-projectRepositoryIdentity b{color:var(--pi-ink);font-size:var(--text-xl);font-weight:680}.pi-projectRepositoryIdentity span{color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs)}.pi-projectRepositoryCurrent{min-width:0;display:flex;align-items:center;gap:8px;margin:0 10px 9px;padding:7px 8px;border:1px solid var(--pi-hairline);border-radius:6px;background:color-mix(in srgb,var(--hud-surface) 7%,transparent)}.pi-projectRepositoryCurrent>span:not(.pi-projectRepositoryPulse){min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}.pi-projectRepositoryCurrent small,.pi-projectRepositoryCurrent b,.pi-projectRepositoryCurrent time{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-projectRepositoryCurrent small,.pi-projectRepositoryCurrent time{color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs)}.pi-projectRepositoryCurrent b{color:var(--pi-muted);font-family:var(--pi-mono);font-size:var(--text-xs);font-weight:550}.pi-projectRepositoryCurrent time{flex:none}.pi-projectRepositoryPulse{flex:none;width:6px;height:6px;border-radius:999px;background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft);animation:pi-pulse 2.2s ease-in-out infinite}.pi-projectRepositoryStats{min-width:0;display:flex;align-items:center;gap:20px;margin-top:auto;padding:8px 10px;border-top:1px solid var(--pi-hairline)}.pi-projectRepositoryStats span{overflow:hidden;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap}.pi-projectRepositoryStats b{color:var(--pi-muted);font-weight:680}.pi-projectWorktrees{display:flex;flex-direction:column;overflow:hidden}.pi-projectWorktreesHead b,.pi-projectPullRequestsHead b{color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.pi-projectWorktreeList{min-width:0;display:flex;flex-direction:column}.pi-projectWorktree{min-width:0;min-height:82px;display:grid;grid-template-columns:minmax(150px,.65fr) minmax(260px,1.35fr);grid-template-areas:"name diff" "path diff" "files meta";align-items:center;gap:4px 18px;padding:9px 10px;border-bottom:1px solid var(--pi-hairline);color:var(--pi-muted);background:color-mix(in srgb,var(--hud-surface) 7%,transparent)}.pi-projectWorktree:last-child{border-bottom:0}.pi-projectWorktree[data-active]{background:color-mix(in srgb,var(--pi-accent-soft) 14%,var(--pi-bg))}.pi-projectWorktree[data-stranded]{background:color-mix(in srgb,var(--hud-status-warn, #d4a64a) 3%,var(--pi-bg))}.pi-projectWorktreeTop{grid-area:name;min-width:0;display:flex;align-items:center;gap:8px}.pi-projectWorktreeTop b{flex:1}.pi-projectWorktree>em{grid-area:path}.pi-projectWorktreeMeta{grid-area:meta;min-width:0;display:flex;flex-wrap:wrap;gap:0;overflow:visible}.pi-projectWorktree b,.pi-projectWorktree em,.pi-projectWorktree small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-projectWorktree b{color:var(--pi-ink);font-size:var(--text-sm);font-weight:650}.pi-projectWorktree em,.pi-projectWorktree small{color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs);font-style:normal}.pi-projectWorktreeMeta small+small:before{content:"·";margin:0 6px;color:var(--pi-dim)}.pi-projectWorktreeDiff{grid-area:diff;min-width:0;display:flex;align-items:center;gap:10px;min-height:30px;font-family:var(--pi-mono);font-size:var(--text-2xs)}.pi-projectWorktreeDiff b{font-weight:620}.pi-projectWorktreeDiff small{color:var(--pi-dim)}.pi-projectWorktreeDiff[data-clean] small{color:var(--pi-muted)}.pi-projectWorktreeChurn{min-width:0;display:flex;align-items:center;gap:7px}.pi-projectWorktreeChurnBar{width:clamp(74px,9vw,138px);height:5px;display:flex;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--hud-ink) 8%,transparent)}.pi-projectWorktreeChurnBar i{min-width:2px;height:100%}.pi-projectWorktreeChurnBar i[data-add]{background:var(--hud-status-ok, #79c99e)}.pi-projectWorktreeChurnBar i[data-delete]{background:var(--hud-status-error, #d98276)}.pi-projectWorktreeAdd{color:var(--hud-status-ok, #79c99e)}.pi-projectWorktreeDel{color:var(--hud-status-error, #d98276)}.pi-projectWorktreeOpenDiff,.pi-projectPullRequestState button{flex:none;min-height:24px;padding:0 7px;border:1px solid var(--pi-hairline-strong);border-radius:5px;background:color-mix(in srgb,var(--hud-surface) 30%,transparent);color:var(--pi-muted);font:inherit;font-family:var(--pi-mono);font-size:var(--text-2xs);cursor:pointer}.pi-projectWorktreeOpenDiff{margin-left:auto}.pi-projectWorktreeOpenDiff:hover,.pi-projectPullRequestState button:hover{border-color:color-mix(in srgb,var(--pi-accent) 38%,var(--pi-hairline));color:var(--pi-ink)}.pi-projectWorktreeFiles{grid-area:files;min-width:0;overflow:hidden;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-3xs);text-overflow:ellipsis;white-space:nowrap}.pi-projectWorktreeMore{padding:0 10px 9px;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs)}.pi-projectPullRequests{overflow:hidden}.pi-projectPullRequestList{display:flex;flex-direction:column}.pi-projectPullRequest{min-width:0;min-height:34px;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(170px,.55fr) auto auto;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px solid var(--pi-hairline);color:var(--pi-muted);text-decoration:none}.pi-projectPullRequest:last-child{border-bottom:0}.pi-projectPullRequest:hover{background:color-mix(in srgb,var(--hud-surface) 45%,transparent)}.pi-projectPullRequestState{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;color:var(--pi-dim);font-size:var(--text-xs)}.pi-projectPullRequestState[data-loading] span:before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:999px;background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft);animation:pi-pulse 2.2s ease-in-out infinite}.pi-projectPullRequestNumber{color:var(--pi-accent);font-family:var(--pi-mono);font-size:var(--text-2xs)}.pi-projectPullRequest b,.pi-projectPullRequestBranch{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-projectPullRequest b{color:var(--pi-ink);font-size:var(--text-sm);font-weight:520}.pi-projectPullRequestBranch,.pi-projectPullRequest em,.pi-projectPullRequest time{color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs);font-style:normal;white-space:nowrap}.pi-sessionDetail{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:color-mix(in srgb,var(--pi-bg) 96%,black);animation:pi-fade-in .14s var(--pi-ease)}.pi-sessionOverview{flex:none;display:flex;flex-direction:column;min-width:0;border-bottom:1px solid var(--pi-hairline);background:color-mix(in srgb,var(--hud-surface) 6%,transparent)}.pi-sessionMasthead{flex:none;display:flex;flex-direction:column;gap:5px;min-width:0;padding:11px 16px 12px;border-bottom:1px solid var(--pi-hairline);background:color-mix(in srgb,var(--hud-surface) 14%,var(--pi-bg))}.pi-sessionMastTop{min-width:0;display:flex;align-items:baseline;gap:10px}.pi-sessionCrumb{flex:none;color:var(--pi-muted);font-family:var(--pi-mono);font-size:var(--text-2xs);font-weight:720;letter-spacing:.06em;text-transform:uppercase}.pi-sessionHeadline{min-width:0;margin:0;color:var(--pi-ink);font-size:var(--text-2xl);font-weight:680;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-sessionState{flex:none;margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--pi-muted);font-family:var(--pi-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.pi-sessionLiveDot{width:6px;height:6px;border-radius:999px;background:var(--pi-accent)}.pi-sessionMeta{min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 0;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.pi-sessionMeta>span{min-width:0;display:inline-flex;align-items:center;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-sessionMeta>span+span:before{content:"·";margin:0 7px;color:var(--pi-dim)}.pi-sessionMeta>span:first-child{color:var(--pi-muted)}.pi-sessionMeta svg{flex:none}.pi-sessionTerminalActions{min-width:0;display:flex;align-items:center;gap:7px;padding-top:3px}.pi-sessionTerminalActions button,.pi-sessionTerminalActions a{min-height:24px;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--pi-hairline-strong);border-radius:5px;background:color-mix(in srgb,var(--hud-surface) 16%,transparent);color:var(--pi-muted);font:650 9.5px/1 var(--pi-mono);text-decoration:none;cursor:pointer}.pi-sessionTerminalActions button:hover,.pi-sessionTerminalActions a:hover{border-color:color-mix(in srgb,var(--pi-accent) 36%,var(--pi-hairline-strong));background:color-mix(in srgb,var(--pi-accent) 8%,transparent);color:var(--pi-ink)}.pi-sessionTerminalName{min-width:0;max-width:260px;overflow:hidden;color:var(--pi-dim);font:600 9.5px/1 var(--pi-mono);text-overflow:ellipsis;white-space:nowrap}.pi-sessionGlance{flex:none;display:flex;flex-direction:column;min-width:0;background:color-mix(in srgb,var(--pi-bg) 94%,black)}.pi-sessionVitals{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;padding:9px 16px;border-bottom:1px solid var(--pi-hairline)}.pi-sessionGlanceField{min-width:0;display:inline-flex;align-items:baseline;gap:6px;font-family:var(--pi-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.pi-sessionGlanceField span{flex:none;color:var(--pi-dim);font-size:var(--text-3xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.pi-sessionGlanceField b{min-width:0;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pi-ink);font-weight:620}.pi-sessionGlanceField small{color:var(--pi-dim);font-size:var(--text-2xs)}.pi-sessionContextVital{display:inline-flex;align-items:center;gap:7px;font-family:var(--pi-mono);font-variant-numeric:tabular-nums}.pi-sessionContextVital>span:first-child{color:var(--pi-dim);font-size:var(--text-3xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.pi-sessionContextBar{width:64px;height:4px;overflow:hidden;border-radius:2px;background:var(--pi-hairline)}.pi-sessionContextBar span{display:block;height:100%;background:var(--pi-accent)}.pi-sessionContextBar span[data-warn]{background:var(--hud-warn)}.pi-sessionContextVital b[data-warn]{color:var(--hud-warn)}.pi-sessionContextVital b{color:var(--pi-ink);font-size:var(--text-sm);font-weight:640}.pi-sessionTokenToggle{display:inline-flex;align-items:baseline;gap:6px;padding:0;border:0;background:transparent;cursor:pointer;color:var(--pi-muted);font-family:var(--pi-mono);font-variant-numeric:tabular-nums}.pi-sessionTokenToggle span{color:var(--pi-dim);font-size:var(--text-3xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.pi-sessionTokenToggle b{color:var(--pi-ink);font-size:var(--text-sm);font-weight:640}.pi-sessionTokenToggle i{color:var(--pi-dim);font-size:var(--text-2xs);font-style:normal}.pi-sessionGlanceTokens{min-width:0;display:flex;flex-direction:column;gap:7px;padding:10px 16px 12px;border-bottom:1px solid var(--pi-hairline);background:color-mix(in srgb,var(--hud-surface) 8%,transparent)}.pi-sessionGlanceTokenBars{min-width:0;height:16px;display:flex;gap:2px;overflow:hidden;border-radius:5px}.pi-sessionGlanceTokenSeg{min-width:0;background:color-mix(in srgb,var(--pi-accent) 15%,transparent)}.pi-sessionGlanceTokenSeg[data-kind=cache-read]{background:color-mix(in srgb,var(--pi-accent) 25%,transparent)}.pi-sessionGlanceTokenSeg[data-kind=cache-write]{background:color-mix(in srgb,var(--pi-accent) 11%,transparent)}.pi-sessionGlanceTokenSeg[data-kind=output]{background:color-mix(in srgb,var(--pi-ink) 11%,transparent)}.pi-sessionGlanceTokenSeg[data-kind=reasoning]{background:color-mix(in srgb,var(--hud-warn) 18%,transparent)}.pi-sessionGlanceTokenSeg[data-kind=total]{background:color-mix(in srgb,var(--pi-accent) 20%,transparent)}.pi-sessionGlanceTokenLegend{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px;color:var(--pi-muted);font-family:var(--pi-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.pi-sessionGlanceTokenLegend span{display:flex;align-items:center;gap:6px}.pi-sessionGlanceTokenLegend i{width:8px;height:8px;border-radius:2px;background:color-mix(in srgb,var(--pi-accent) 15%,transparent)}.pi-sessionGlanceTokenLegend i[data-kind=cache-read]{background:color-mix(in srgb,var(--pi-accent) 25%,transparent)}.pi-sessionGlanceTokenLegend i[data-kind=cache-write]{background:color-mix(in srgb,var(--pi-accent) 11%,transparent)}.pi-sessionGlanceTokenLegend i[data-kind=output]{background:color-mix(in srgb,var(--pi-ink) 11%,transparent)}.pi-sessionGlanceTokenLegend i[data-kind=reasoning]{background:color-mix(in srgb,var(--hud-warn) 18%,transparent)}.pi-sessionGlanceTokenLegend b{color:var(--pi-ink);font-weight:640}.pi-sessionSignals{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr) minmax(280px,1fr);gap:1px;background:var(--pi-hairline)}.pi-sessionSignalCol{min-width:0;padding:12px 14px 14px;background:color-mix(in srgb,var(--pi-bg) 94%,black)}.pi-sessionSignalHead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-3xs);font-weight:740;letter-spacing:.08em;text-transform:uppercase}.pi-sessionSignalHead b{color:var(--pi-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.pi-sessionSignalEmpty{color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs)}.pi-sessionFileList,.pi-sessionContextList,.pi-sessionThreadList{display:flex;flex-direction:column;gap:7px}.pi-sessionFileRow{display:grid;grid-template-columns:64px minmax(0,1fr);gap:2px 10px;align-items:baseline;font-family:var(--pi-mono);font-size:var(--text-xs)}.pi-sessionFileRow span{color:var(--pi-dim);font-size:var(--text-3xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.pi-sessionFileRow span[data-kind=created],.pi-sessionFileRow span[data-kind=modified]{color:var(--pi-accent)}.pi-sessionFileRow code{min-width:0;overflow:hidden;color:var(--pi-ink);font:inherit;text-overflow:ellipsis;white-space:nowrap}.pi-sessionFileRow small{grid-column:2;color:var(--pi-muted);font-size:var(--text-2xs)}.pi-sessionToolGrid{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.pi-sessionToolPill{display:inline-flex;align-items:baseline;gap:6px;padding:3px 7px 4px;border:1px solid var(--pi-hairline);border-radius:6px;background:color-mix(in srgb,var(--hud-surface) 22%,transparent);font-family:var(--pi-mono);font-size:var(--text-xs)}.pi-sessionToolPill b{color:var(--pi-ink);font-weight:600}.pi-sessionToolPill em{color:var(--pi-muted);font-style:normal;font-variant-numeric:tabular-nums}.pi-sessionContextRow{display:grid;grid-template-columns:68px auto minmax(0,1fr);gap:8px;align-items:baseline;font-family:var(--pi-mono);font-size:var(--text-xs)}.pi-sessionContextRow span{color:var(--pi-dim);font-size:var(--text-3xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.pi-sessionContextRow b{color:var(--pi-ink);font-weight:640}.pi-sessionContextRow b[data-tone=warn]{color:var(--hud-warn)}.pi-sessionContextRow b[data-tone=good]{color:var(--pi-accent)}.pi-sessionContextRow small{min-width:0;overflow:hidden;color:var(--pi-muted);text-overflow:ellipsis;white-space:nowrap}.pi-sessionThreadRow{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.pi-sessionThreadRow:hover .pi-sessionThreadTitle{color:var(--pi-accent)}.pi-sessionThreadTitle{min-width:0;overflow:hidden;color:var(--pi-ink);font-size:var(--text-sm);font-weight:620;text-overflow:ellipsis;white-space:nowrap}.pi-sessionThreadMeta{display:inline-flex;align-items:baseline;gap:7px;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.pi-sessionThreadMeta b{color:var(--pi-muted);font-weight:600}.pi-sessionThreadMeta em{color:var(--pi-accent);font-style:normal;text-transform:uppercase}.pi-sessionThreadWhy{grid-column:1 / -1;min-width:0;overflow:hidden;flex:none;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap}.pi-sessionContent{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.pi-sessionContent>.s-observe,.pi-sessionContent>.s-sessions-screen,.pi-sessionContent>.s-conversation{flex:1;min-height:0}.pi-sessionContent .s-observe-main{padding:22px 28px 42px}.pi-sessionContent .s-observe-stream{max-width:min(100%,1120px)}.pi-threads{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;animation:pi-fade-in .14s var(--pi-ease)}.pi-loadingRows{animation:pi-fade-in .16s var(--pi-ease)}.pi-sectionHead--loading{min-height:31px}.pi-loadingLine--label{width:90px}.pi-loadingLine--count{width:20px}.pi-sectionHead{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;padding:8px 16px 6px;background:color-mix(in srgb,var(--pi-bg) 90%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--pi-hairline)}.pi-sectionLabel{font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pi-muted)}.pi-sectionHead[data-tone=needs] .pi-sectionLabel,.pi-sectionHead[data-tone=working] .pi-sectionLabel{color:var(--pi-accent)}.pi-sectionCount{font-size:var(--text-2xs);font-family:var(--pi-mono);font-variant-numeric:tabular-nums;color:var(--pi-dim)}.pi-row{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--pi-hairline);cursor:pointer;padding:10px 16px;transition:background .12s var(--pi-ease),box-shadow .12s var(--pi-ease)}.pi-row--loading{cursor:default;pointer-events:none}.pi-row--loading .pi-rowDot{background:color-mix(in srgb,var(--hud-ink) 12%,transparent)}.pi-loadingLine--title{width:min(420px,72%);height:10px}.pi-loadingLine--meta{width:min(260px,52%);height:7px}.pi-loadingLine--time{width:36px;height:7px}.pi-row:hover,.pi-row:focus-visible{outline:none;background:color-mix(in srgb,var(--hud-surface) 72%,transparent);box-shadow:inset 0 0 0 1px var(--pi-hairline-strong)}.pi-row[data-selected]{background:color-mix(in srgb,var(--pi-accent-soft) 24%,var(--pi-surface))}.pi-row[data-cursor]:not([data-selected]){background:color-mix(in srgb,var(--hud-surface) 58%,transparent)}.pi-rowDot{flex:none;width:7px;height:7px;border-radius:999px;background:var(--pi-dim)}.pi-row[data-state=working] .pi-rowDot{background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft);animation:pi-pulse 2.4s ease-in-out infinite}.pi-row[data-state=needs] .pi-rowDot{background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft)}.pi-rowBody{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.pi-rowWork{font-size:var(--text-lg);color:var(--pi-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-row[data-needs] .pi-rowWork{color:var(--pi-ink);font-weight:620}.pi-row[data-selected] .pi-rowWork{color:var(--pi-ink)}.pi-row:hover .pi-rowWork,.pi-row:focus-visible .pi-rowWork{color:var(--pi-ink)}.pi-rowAttr{display:flex;align-items:center;gap:7px;min-width:0}.pi-rowAvatar{flex:none;display:inline-flex}.pi-rowAgent{flex:none;font-size:var(--text-sm);font-weight:600;color:var(--pi-muted);max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-rowHmark{flex:none;display:inline-flex;color:var(--pi-dim)}.pi-rowChip{flex:none;font-size:var(--text-xs);font-family:var(--pi-mono);color:var(--pi-dim);border:1px solid var(--pi-hairline);border-radius:5px;padding:0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:34%}.pi-rowBranch{flex:1;min-width:0;font-size:var(--text-xs);font-family:var(--pi-mono);color:var(--pi-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-rowVitals{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:44px}.pi-rowAgo{font-size:var(--text-xs);font-family:var(--pi-mono);font-variant-numeric:tabular-nums;color:var(--pi-dim)}.pi-rowCtx{font-size:var(--text-2xs);font-family:var(--pi-mono);font-variant-numeric:tabular-nums;color:var(--pi-muted)}.pi-rowNeedsTag{font-size:var(--text-3xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pi-bg);background:var(--pi-accent);padding:1px 6px;border-radius:999px}.pi-rowLiveTag{font-size:var(--text-3xs);font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--pi-accent);border:1px solid color-mix(in srgb,var(--pi-accent) 50%,transparent);padding:0 5px;border-radius:999px}.pi-rowOpen{flex:none;width:54px;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;color:var(--pi-dim);font-size:var(--text-xs);font-weight:650;transition:color .12s var(--pi-ease)}.pi-rowOpen span{opacity:0;transform:translate(3px);transition:opacity .12s var(--pi-ease),transform .12s var(--pi-ease)}.pi-row:hover .pi-rowOpen,.pi-row:focus-visible .pi-rowOpen,.pi-row[data-selected] .pi-rowOpen{color:var(--pi-ink)}.pi-row:hover .pi-rowOpen span,.pi-row:focus-visible .pi-rowOpen span,.pi-row[data-selected] .pi-rowOpen span{opacity:1;transform:translate(0)}.pi-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:60px 20px;color:var(--pi-dim);font-size:var(--text-md);text-align:center}.pi-emptyHint{font-size:var(--text-sm);color:var(--pi-dim)}.pi-zero{width:min(680px,100%);display:flex;flex-direction:column;gap:13px;align-items:stretch;color:var(--pi-ink)}.pi-zeroHead{display:flex;flex-direction:column;gap:5px;align-items:center}.pi-zeroKicker{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pi-muted)}.pi-zeroHead h2{margin:0;color:var(--pi-ink);font-size:var(--text-3xl);font-weight:680;letter-spacing:0}.pi-zeroComposer{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--pi-hairline-strong);border-radius:8px;background:color-mix(in srgb,var(--hud-surface) 52%,transparent);box-shadow:0 18px 46px color-mix(in srgb,black 18%,transparent)}.pi-zeroBar{display:flex;align-items:center;justify-content:space-between;gap:10px}.pi-zeroSelect{flex:1;min-width:0;height:30px;display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid var(--pi-hairline);border-radius:7px;color:var(--pi-dim);background:color-mix(in srgb,var(--pi-bg) 54%,transparent)}.pi-zeroSelect select{width:100%;min-width:0;appearance:none;border:0;outline:0;background:none;color:var(--pi-muted);font:inherit;font-size:var(--text-md)}.pi-zeroHarness{flex:none;display:inline-flex;align-items:center;gap:3px;padding:2px;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--pi-bg) 54%,transparent)}.pi-zeroHarness button{height:24px;padding:0 9px;border:0;border-radius:5px;background:none;color:var(--pi-dim);font-size:var(--text-sm);font-weight:650;cursor:pointer}.pi-zeroHarness button[data-on]{color:var(--pi-ink);background:color-mix(in srgb,var(--pi-accent-soft) 34%,var(--pi-surface))}.pi-zeroInputRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.pi-zeroInputRow textarea{min-width:0;resize:vertical;min-height:54px;max-height:150px;padding:9px 10px;border:1px solid var(--pi-hairline);border-radius:7px;outline:none;background:color-mix(in srgb,var(--pi-bg) 70%,transparent);color:var(--pi-ink);font:inherit;font-size:var(--text-lg);line-height:1.35}.pi-zeroInputRow textarea::placeholder{color:var(--pi-dim)}.pi-zeroInputRow textarea:focus,.pi-zeroSelect:focus-within{border-color:color-mix(in srgb,var(--pi-accent) 45%,var(--pi-hairline))}.pi-zeroSend{height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1px solid var(--pi-accent);border-radius:7px;background:var(--pi-accent);color:var(--pi-bg);font-size:var(--text-md);font-weight:700;cursor:pointer}.pi-zeroSend:disabled{opacity:.45;cursor:default}.pi-zeroMatches{display:flex;flex-direction:column;gap:2px}.pi-zeroMatch{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:36px;padding:5px 8px;border:1px solid transparent;border-radius:7px;background:none;color:var(--pi-muted);text-align:left;cursor:pointer}.pi-zeroMatch:hover,.pi-zeroMatch[data-selected]{color:var(--pi-ink);background:color-mix(in srgb,var(--scout-chrome-hover) 68%,transparent)}.pi-zeroMatchMain{min-width:0;display:flex;flex-direction:column;gap:2px}.pi-zeroMatchTitle,.pi-zeroMatchRoot,.pi-zeroMatchMeta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-zeroMatchTitle{font-size:var(--text-md);font-weight:650;color:inherit}.pi-zeroMatchRoot,.pi-zeroMatchMeta{font-size:var(--text-xs);font-family:var(--pi-mono);color:var(--pi-dim)}.pi-zeroMatchMeta{flex:none;max-width:220px;text-align:right}.pi-zeroEmpty,.pi-zeroError,.pi-zeroStatus{padding:2px 4px 0;font-size:var(--text-sm);text-align:left}.pi-zeroEmpty{color:var(--pi-dim)}.pi-zeroError{color:var(--pi-accent)}.pi-zeroStatus{color:var(--pi-muted)}.s-pi-aside{display:flex;flex-direction:column;height:100%;min-height:0;border-left:1px solid var(--pi-hairline);background:var(--pi-bg);color:var(--pi-ink);animation:pi-fade-in .14s var(--pi-ease)}.pi-asideHead{flex:none;display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--pi-hairline)}.pi-asideAvatar{flex:none;display:inline-flex}.pi-asideIdent{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.pi-asideTop{display:flex;align-items:center;gap:8px}.pi-asideName{font-size:var(--text-2xl);font-weight:680;letter-spacing:-.01em;color:var(--pi-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pi-asideHmark{flex:none;display:inline-flex;color:var(--pi-muted)}.pi-asideProj{flex:none;font-size:var(--text-sm);font-family:var(--pi-mono);color:var(--pi-dim)}.pi-asideSub{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.pi-asideBranch{font-size:var(--text-sm);font-family:var(--pi-mono);color:var(--pi-muted);border:1px solid var(--pi-hairline);border-radius:6px;padding:1px 7px}.pi-asideStatus{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm);font-weight:600}.pi-asideStatus[data-tone=working]{color:var(--pi-accent)}.pi-asideStatus[data-tone=recent]{color:var(--pi-dim)}.pi-asideStatus[data-tone=needs]{color:var(--pi-bg);background:var(--pi-accent);padding:2px 8px;border-radius:999px;font-size:var(--text-2xs);letter-spacing:.03em;text-transform:uppercase}.pi-asidePulse{width:7px;height:7px;border-radius:999px;background:var(--pi-accent);box-shadow:0 0 0 3px var(--pi-accent-soft);animation:pi-pulse 1.8s ease-in-out infinite}.pi-asideBody{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin}.pi-asideHeadline{margin:0;font-size:var(--text-2xl);font-weight:600;line-height:1.35;letter-spacing:-.01em;color:var(--pi-ink)}.pi-asideMuted{margin:0;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-xs);line-height:1.5}.pi-asideReadouts{display:flex;flex-wrap:wrap;gap:6px 26px;padding:2px 0}.pi-stat{display:flex;flex-direction:column;gap:2px}.pi-statLabel{font-size:var(--text-2xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--pi-muted)}.pi-statValue{font-size:var(--text-lg);font-family:var(--pi-mono);font-variant-numeric:tabular-nums;color:var(--pi-ink)}.pi-asideSection{display:flex;flex-direction:column;gap:6px}.pi-asideSectionHead{font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pi-muted)}.pi-asideLine{display:flex;flex-direction:column;gap:4px;font-size:var(--text-md);line-height:1.5;color:var(--pi-muted);background:var(--pi-surface);border:1px solid var(--pi-hairline);border-radius:10px;padding:9px 12px}.pi-asideActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}.pi-asideBtn{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-md);font-weight:600;color:var(--pi-muted);background:none;border:1px solid var(--pi-hairline);border-radius:8px;padding:8px 13px;cursor:pointer;transition:color .12s var(--pi-ease),border-color .12s var(--pi-ease)}.pi-asideBtn:hover{color:var(--pi-ink);border-color:var(--pi-hairline-strong)}.pi-asideBtnPrimary{color:var(--pi-bg);background:var(--pi-accent);border-color:var(--pi-accent)}.pi-asideBtnPrimary:hover{color:var(--pi-bg);filter:brightness(1.06)}@keyframes pi-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes pi-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes pi-fade-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.pi-rowDot,.pi-asidePulse,.pi-statePulse,.pi-loadingLine,.pi-loadingRows,.pi-threads,.pi-sessionDetail,.s-pi-aside,.pi-projectRepositoryPulse{animation:none}}@media(max-width:1120px){.pi-projectSnapshot{grid-template-columns:1fr}}@media(max-width:860px){.pi-projectsEmbedShell,.pi-shell{grid-template-columns:minmax(0,1fr)}.s-pi-rail{display:none}.pi-shell[data-aside]{grid-template-columns:minmax(0,1fr)}.s-pi-aside{display:none}.pi-projectHead{grid-template-columns:minmax(0,1fr)}.pi-inboxHeading{justify-content:space-between}.pi-meta{padding:18px 12px 36px}.pi-projectFacets{max-width:100%;overflow-x:auto}.pi-projectOverview{padding:12px}.pi-projectSnapshot,.pi-projectWorktree{grid-template-columns:1fr}.pi-projectWorktree{grid-template-areas:"name" "path" "diff" "files" "meta"}.pi-projectPullRequest{grid-template-columns:auto minmax(0,1fr) auto auto}.pi-projectPullRequestBranch{display:none}.pi-sessionMastTop{align-items:flex-start;flex-direction:column}.pi-sessionState{margin-left:0}.pi-sessionTerminalActions{align-items:flex-start;flex-wrap:wrap}.pi-sessionTerminalName{flex-basis:100%}.pi-sessionSignals{grid-template-columns:1fr}.pi-sessionMasthead,.pi-sessionVitals,.pi-sessionGlanceTokens{padding-inline:12px}.pi-zeroBar,.pi-zeroInputRow,.pi-zeroMatch{grid-template-columns:1fr;align-items:stretch;flex-direction:column}.pi-zeroHarness,.pi-zeroSend{width:100%;justify-content:center}.pi-zeroMatchMeta{max-width:100%;text-align:left}}
@@ -0,0 +1 @@
1
+ import{r as T}from"./index-C1VaWNuD.js";import{a as p}from"./api-Co9aQ2Jw.js";import{b as F}from"./router-kfcaYqZr.js";import{u as H}from"./sse-B29iGBnw.js";import{i as A,o as V}from"./surface-activity-B1rgWB1i.js";import{u as $}from"./tail-events-LK29oCKm.js";import{q as P,u as x,v as W,w as Y,x as J}from"./Provider-D0bB7q6y.js";import{v as E}from"./conversation-model-C2KuZUXc.js";const U=50;function N(e){const s=e.source.trim().toLowerCase(),t=e.sessionId.trim(),n=t.split(/[\\/]/u).filter(Boolean).at(-1)??t,o=n.endsWith(".jsonl")?n.slice(0,-6):n;return s&&o?`${s}\0${o}`:`event\0${e.id}`}function D(e,s){const t=new Map;for(const n of e){if(!P(n))continue;const o=N(n),l=t.get(o);(!l||n.ts>=l.ts)&&t.set(o,n)}return[...t.values()].sort((n,o)=>o.ts-n.ts||o.id.localeCompare(n.id)).slice(0,s)}function z(e){const s=e.now??Date.now;let t="idle",n=0,o=null,l=0;const c=()=>t==="idle"||t==="error"&&s()>=n;return{shouldRun:c,run(){if(o)return o;if(!c())return Promise.resolve();t="loading";const a=l;let i;return i=Promise.resolve().then(e.load).then(()=>{l===a&&(t="ready")}).catch(()=>{l===a&&(t="error",n=s()+e.retryDelayMs)}).finally(()=>{o===i&&(o=null)}),o=i,i},reset(){l+=1,t="idle",n=0,o=null}}}function G(e,s=t=>{const n=setTimeout(t,U);return()=>clearTimeout(n)}){const t=new Map;let n=null;const o=()=>{if(n=null,t.size===0)return;const l=[...t.values()];t.clear(),e(l)};return{push(l){t.set(N(l),l),n??=s(o)},cancel(){n?.(),n=null,t.clear()}}}function Q(e){if(typeof window<"u"){const t=window;if(t.requestIdleCallback){const n=t.requestIdleCallback(e,{timeout:1e3});return()=>t.cancelIdleCallback?.(n)}}const s=setTimeout(e,0);return()=>clearTimeout(s)}const X=6e4,O=3e4,Z=1e3,b=200,ee=5e3,te="/api/tail/discover?scope=hot&limit=160",se=`/api/tail/recent?limit=${b}&transcripts=1&mode=assistant-replies`;let r={sessions:[],fleet:null,discovery:null,recentEvents:[],loadedAt:null,loading:!0,error:null,nowMs:Date.now()};const M=new Set;let u=0,m=null,S=!1,h=null,d=null,w=null,g=null,C=null,j=0;function B(){for(const e of[...M])e()}function ne(e,s){const t=n=>JSON.stringify([n?.transcripts??[],n?.processes??[]]);return e&&t(e)===t(s)?e:s}function I(e){r={...r,...e},B()}const _=z({retryDelayMs:ee,load:async()=>{const e=await p(se),s=D([...r.recentEvents,...e.events??[]],b),t=E(r.recentEvents,s);t!==r.recentEvents&&I({recentEvents:t})}});function oe(){h||!_.shouldRun()||(h=Q(()=>{h=null,u>0&&_.run()}))}const K=G(e=>{const s=D([...r.recentEvents,...e],b),t=E(r.recentEvents,s);t!==r.recentEvents&&I({recentEvents:t})});function re(e){P(e)&&K.push(e)}async function f(e){if(m)return S=!0,m;m=(async()=>{j+=1,typeof window<"u"&&(window.__projectsInboxLoads=j),r.loadedAt===null&&e!=="background"&&I({loading:!0,error:null});const[s,t,n]=await Promise.allSettled([p("/api/conversations"),p("/api/fleet"),p(te)]),o=s.status==="fulfilled"?E(r.sessions,s.value):r.sessions,l=t.status==="fulfilled"?Y(r.fleet,t.value):r.fleet,c=n.status==="fulfilled"?ne(r.discovery,n.value):r.discovery,a=[s,t,n].find(q=>q.status==="rejected"),i=a?a.reason instanceof Error?a.reason.message:String(a.reason):null,v=o!==r.sessions||l!==r.fleet||c!==r.discovery||i!==r.error||r.loading;r={...r,sessions:o,fleet:l,discovery:c,error:i,loading:!1,loadedAt:Date.now()},v&&B(),oe()})();try{await m}finally{m=null,S&&u>0&&(S=!1,f("background"))}}function le(){A()&&(d||(d=setTimeout(()=>{d=null,f("background")},Z)))}function ce(){f("initial"),w=setInterval(()=>{A()&&f("background")},X),g=setInterval(()=>{A()&&I({nowMs:Date.now()})},O),C=V(()=>{f("background")})}function ie(){h?.(),h=null,_.reset(),K.cancel(),d&&(clearTimeout(d),d=null),w&&(clearInterval(w),w=null),g&&(clearInterval(g),g=null),C?.(),C=null}function Ie(){f("background")}function ae(){const[e,s]=T.useState(r);return T.useEffect(()=>{const t=()=>s(r);return M.add(t),u+=1,u===1&&ce(),t(),()=>{M.delete(t),u-=1,u===0&&ie()}},[]),H(le),$(re),e}let L=null,y=null,k=null;function ue(e,s){return!!e&&e.length===s.length&&e.every((t,n)=>t===s[n])}function R(e,s,t){if(!e?.length)return s;const n=new Map(e.map(c=>[t(c),c]));let o=e.length===s.length;const l=s.map((c,a)=>{const i=n.get(t(c)),v=i?E(i,c):c;return v!==e[a]&&(o=!1),v});return o?e:l}function de(e,s){if(!e)return s;const t=R(e.projects,s.projects,c=>c.slug),n=R(e.threads,s.threads,c=>c.id),o=R(e.sessions,s.sessions,c=>c.id),l=E(e.projectAliases,J(e.projectAliases,s.projectAliases,t));return t===e.projects&&n===e.threads&&o===e.sessions&&l===e.projectAliases?e:{projects:t,threads:n,sessions:o,projectAliases:l}}function fe(e){const s=[e.agents,e.sessions,e.fleet,e.discovery,e.recentEvents,e.machineId,Math.floor(e.nowMs/O),e.showEphemeral];if(ue(L,s)&&y)return y;const t=W(e),n=`${e.machineId??""}\0${e.showEphemeral?"ephemeral":"durable"}`,o=de(k===n?y:null,t);return L=s,y=o,k=n,o}function Se(e){const s=ae(),{agents:t}=x(),n=F(e),o=!!e.showEphemeral;return{model:T.useMemo(()=>fe({agents:t,machineId:n,sessions:s.sessions,fleet:s.fleet,discovery:s.discovery,recentEvents:s.recentEvents,nowMs:s.nowMs,showEphemeral:o}),[t,n,s.sessions,s.fleet,s.discovery,s.recentEvents,s.nowMs,o]),agents:t,nowMs:s.nowMs,loading:s.loading,loadedAt:s.loadedAt,error:s.error}}export{Ie as r,Se as u};
@@ -1 +1 @@
1
- import{r as s,j as u}from"./index-DvLtl7rV.js";import{l as c,L as f,c as l}from"./use-reduced-motion-x8pJMVrG.js";function p({children:r,features:e,strict:d=!1}){const[,i]=s.useState(!a(e)),t=s.useRef(void 0);if(!a(e)){const{renderer:n,...o}=e;t.current=n,c(o)}return s.useEffect(()=>{a(e)&&e().then(({renderer:n,...o})=>{c(o),t.current=n,i(!0)})},[]),u.jsx(f.Provider,{value:{renderer:t.current,strict:d},children:r})}function a(r){return typeof r=="function"}const L=l();export{p as L,L as m};
1
+ import{r as s,j as u}from"./index-C1VaWNuD.js";import{l as c,L as f,c as l}from"./use-reduced-motion-CPoX8iV2.js";function p({children:r,features:e,strict:d=!1}){const[,i]=s.useState(!a(e)),t=s.useRef(void 0);if(!a(e)){const{renderer:n,...o}=e;t.current=n,c(o)}return s.useEffect(()=>{a(e)&&e().then(({renderer:n,...o})=>{c(o),t.current=n,i(!0)})},[]),u.jsx(f.Provider,{value:{renderer:t.current,strict:d},children:r})}function a(r){return typeof r=="function"}const L=l();export{p as L,L as m};
@@ -1 +1 @@
1
- import{c as a}from"./createLucideIcon-DezKXSG2.js";const c=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],o=a("radio",c);export{o as R};
1
+ import{c as a}from"./createLucideIcon-Dv8H8m7J.js";const c=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],o=a("radio",c);export{o as R};
@@ -1 +1 @@
1
- import{c as e}from"./createLucideIcon-DezKXSG2.js";const c=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],a=e("refresh-cw",c);export{a as R};
1
+ import{c as e}from"./createLucideIcon-Dv8H8m7J.js";const c=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],a=e("refresh-cw",c);export{a as R};