@openscout/scout 0.2.96 → 0.2.97

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 (305) hide show
  1. package/bin/scoutd +0 -0
  2. package/dist/build-manifest.json +3 -3
  3. package/dist/client/assets/{ActivityScreen-BnoaUkVZ.js → ActivityScreen-y-5DLleY.js} +1 -1
  4. package/dist/client/assets/{AddProjectForm-IqOtJfRs.js → AddProjectForm-r_1tVuWk.js} +1 -1
  5. package/dist/client/assets/{AgentAvatar-6-KBVKUu.js → AgentAvatar-B7c0egdP.js} +1 -1
  6. package/dist/client/assets/{AgentConfigurationScreen-CuZJy07q.js → AgentConfigurationScreen-BD7Unt2P.js} +1 -1
  7. package/dist/client/assets/{AgentDefinitionsWorkspace-Iyl4BesU.js → AgentDefinitionsWorkspace-BbcZc9Xk.js} +1 -1
  8. package/dist/client/assets/{AgentDetailCard-C9rn3Fj5.js → AgentDetailCard-B_KLcgsP.js} +1 -1
  9. package/dist/client/assets/{AgentFloorView-YT-Jjccf.js → AgentFloorView-DMFiHs21.js} +1 -1
  10. package/dist/client/assets/{AgentInfoScreen-Dr99gQEZ.js → AgentInfoScreen-DHGLRddI.js} +1 -1
  11. package/dist/client/assets/{AgentLaneCard-DI2iW9zO.js → AgentLaneCard-ajZvcfdW.js} +1 -1
  12. package/dist/client/assets/{AgentLaneChrome-D8bARHMx.js → AgentLaneChrome-CTp39syR.js} +1 -1
  13. package/dist/client/assets/{AgentLaneDetailSheet-52un7dKC.js → AgentLaneDetailSheet-DRc-TpMB.js} +1 -1
  14. package/dist/client/assets/{AgentLaneSummaryResize-CEBjmPTa.js → AgentLaneSummaryResize-VMNDo7kD.js} +1 -1
  15. package/dist/client/assets/AgentLanesEmbedScreen-C5k_dDS8.js +1 -0
  16. package/dist/client/assets/{AgentLanesPreflight-q20mTjms.js → AgentLanesPreflight-CFadSaia.js} +1 -1
  17. package/dist/client/assets/{AgentLanesView-CetZZDyF.js → AgentLanesView-u5vpLwQf.js} +1 -1
  18. package/dist/client/assets/{AgentLiveActions-DrEJDJef.js → AgentLiveActions-CsQA3pu_.js} +1 -1
  19. package/dist/client/assets/{AgentMasterScreen-DJPnstoD.js → AgentMasterScreen-C5WlWNmk.js} +1 -1
  20. package/dist/client/assets/{AgentSessions-DCPCG4xb.js → AgentSessions-BePq5Lgc.js} +1 -1
  21. package/dist/client/assets/{AgentsConsole-CsYOoFJi.js → AgentsConsole-BuiZ_bDo.js} +1 -1
  22. package/dist/client/assets/{AgentsScreen-k8LvBuU_.js → AgentsScreen-CRi-hG2k.js} +1 -1
  23. package/dist/client/assets/AgentsSubnav-DUsya4WK.js +1 -0
  24. package/dist/client/assets/{AstronautSuit-DbjQtfD_.js → AstronautSuit-Cjjcv6yQ.js} +1 -1
  25. package/dist/client/assets/{AtopView-Daq_ob3z.js → AtopView-PxWQd-sX.js} +1 -1
  26. package/dist/client/assets/{BackToPicker-CXZjBRAe.js → BackToPicker-Cto0Ioz9.js} +1 -1
  27. package/dist/client/assets/{BriefingDetailScreen-CUCXO-KH.js → BriefingDetailScreen-C29smC5d.js} +1 -1
  28. package/dist/client/assets/{BriefingsScreen-B5oMTGKv.js → BriefingsScreen-DNyFBrPn.js} +1 -1
  29. package/dist/client/assets/{BrokerMetadataPanel-BsiU8lTD.js → BrokerMetadataPanel-DbaCQlhw.js} +1 -1
  30. package/dist/client/assets/{BrokerScreen-BPbOHhCS.js → BrokerScreen-CS0s4Gm4.js} +1 -1
  31. package/dist/client/assets/{CastPicker-_5E5hNUe.js → CastPicker-CTBHjjGw.js} +1 -1
  32. package/dist/client/assets/{ChatCollapsedStrip-D-eXhzPf.js → ChatCollapsedStrip-D4rc7wBQ.js} +1 -1
  33. package/dist/client/assets/{CodeDiffPane-n7W4iGUG.js → CodeDiffPane-QvxCUzTi.js} +1 -1
  34. package/dist/client/assets/{CodeProjectPicker-CMsbSTDq.js → CodeProjectPicker-DplkpM7f.js} +1 -1
  35. package/dist/client/assets/{CodeScreen-CeuO3EhR.js → CodeScreen-CrR2JaVj.js} +1 -1
  36. package/dist/client/assets/{ConversationComposer-CXPKx86g.js → ConversationComposer-H8_hsYSc.js} +1 -1
  37. package/dist/client/assets/{ConversationFeedRows-WrH-YI3L.js → ConversationFeedRows-hlEFlURs.js} +1 -1
  38. package/dist/client/assets/{ConversationHeader-BQWzGzLK.js → ConversationHeader-B0ZBhE_E.js} +1 -1
  39. package/dist/client/assets/{ConversationPanels-Dujvnmup.js → ConversationPanels-fMo6Uy1v.js} +2 -2
  40. package/dist/client/assets/{ConversationScreen-CR9pWB65.js → ConversationScreen-CXAHQwQ3.js} +1 -1
  41. package/dist/client/assets/{ConversationStatus-DVzSb2Hv.js → ConversationStatus-DI5GCiyW.js} +1 -1
  42. package/dist/client/assets/{CrewAvatar-BwXjyg8N.js → CrewAvatar-CXJHLNVM.js} +1 -1
  43. package/dist/client/assets/CrewWorkspaces-Bz2Dcnt4.js +1 -0
  44. package/dist/client/assets/CrewWorkspaces-Diq11KDq.css +1 -0
  45. package/dist/client/assets/{DataTable-Bp8tU9AK.js → DataTable-DXIlOlVu.js} +1 -1
  46. package/dist/client/assets/{DispatchAftermath-B-6rmXzL.js → DispatchAftermath-CrELgl2e.js} +1 -1
  47. package/dist/client/assets/{DocumentFocusViewer-Do3wQ_3Z.js → DocumentFocusViewer-DFFE85Tq.js} +1 -1
  48. package/dist/client/assets/{EmbeddableSurfacesLab-C1orRyP9.js → EmbeddableSurfacesLab-DgpewB3y.js} +1 -1
  49. package/dist/client/assets/{EmptyState-CJzXj1l5.js → EmptyState-D9X16fKq.js} +1 -1
  50. package/dist/client/assets/{FileViewerPane-Df6VzXjA.js → FileViewerPane-CY0RN78e.js} +1 -1
  51. package/dist/client/assets/{FlightObserveScreen-6mGnmWQA.js → FlightObserveScreen-qyzHzxLa.js} +1 -1
  52. package/dist/client/assets/{FollowScreen-DvnxYLVh.js → FollowScreen-wZ-z67mX.js} +1 -1
  53. package/dist/client/assets/{HarnessMark-B979GCSB.js → HarnessMark-DAaWPiT_.js} +1 -1
  54. package/dist/client/assets/{HarnessesScreen-CHTuv8p6.js → HarnessesScreen-DbKkQM4o.js} +1 -1
  55. package/dist/client/assets/{HerdrSession-B3McuYgi.js → HerdrSession-CYKRfBad.js} +1 -1
  56. package/dist/client/assets/{HomeHero-CdUVPjkG.js → HomeHero-DYyd3cpz.js} +1 -1
  57. package/dist/client/assets/{HostAdvisorView-Bok5Sk5c.js → HostAdvisorView-NtM0bsg8.js} +1 -1
  58. package/dist/client/assets/{KnowledgeSearchInspector-B7XSoJsu.js → KnowledgeSearchInspector-CU6BCFcS.js} +1 -1
  59. package/dist/client/assets/{KnowledgeSearchScreen-D3o3IODW.js → KnowledgeSearchScreen-DvbRRPQB.js} +1 -1
  60. package/dist/client/assets/{LaneToolHoverCard-HByf2ndx.js → LaneToolHoverCard-Bo2Zl-1a.js} +1 -1
  61. package/dist/client/assets/{LaneTraceDetailSheet-BUgHz-sd.js → LaneTraceDetailSheet-C3C8UjXv.js} +1 -1
  62. package/dist/client/assets/{LaneTraceEventFocus-DM-hoPxG.js → LaneTraceEventFocus-Cek_64zR.js} +1 -1
  63. package/dist/client/assets/{MeshCanvas-DCLJRsBy.js → MeshCanvas-TvsID4fe.js} +1 -1
  64. package/dist/client/assets/{MeshCanvasMinimap-cEFS9eW7.js → MeshCanvasMinimap-CxqeVVco.js} +1 -1
  65. package/dist/client/assets/{MeshScreen-BcxPkhm6.js → MeshScreen-BJ-j9YXv.js} +1 -1
  66. package/dist/client/assets/{MeshTopologyView-CCRPd8PU.js → MeshTopologyView-BjprutE8.js} +2 -2
  67. package/dist/client/assets/{MessagesScreen-Bb5l13MO.js → MessagesScreen-CyNIZ3-X.js} +1 -1
  68. package/dist/client/assets/{MissionContextRail-DF0_kiU7.js → MissionContextRail-Be0uXljQ.js} +1 -1
  69. package/dist/client/assets/{MissionControlView-E3V7bENU.js → MissionControlView-Bj7cAbZd.js} +1 -1
  70. package/dist/client/assets/{MissionFocusOverlay-h15sQFvP.js → MissionFocusOverlay-DvTw6ts5.js} +1 -1
  71. package/dist/client/assets/{MissionLeftAgentRow-KPdk9rSa.js → MissionLeftAgentRow-B0QG7Gys.js} +1 -1
  72. package/dist/client/assets/{MissionLogPane-BbdDKjUl.js → MissionLogPane-EsM_S3ro.js} +1 -1
  73. package/dist/client/assets/{NewAgentModal-DfHxad34.js → NewAgentModal-Cqiq1CE1.js} +1 -1
  74. package/dist/client/assets/{NewChatComposer-_Stj0fZy.js → NewChatComposer-C_1op4dH.js} +1 -1
  75. package/dist/client/assets/{NewChatOrigin-B1u7ki70.js → NewChatOrigin-D7hwp6dm.js} +1 -1
  76. package/dist/client/assets/{ObserveEmbedScreen-Co0xTii6.js → ObserveEmbedScreen-CGHI_hb5.js} +1 -1
  77. package/dist/client/assets/{ObserveTextFlow-ZQWwrK3i.js → ObserveTextFlow-BcrGQet8.js} +2 -2
  78. package/dist/client/assets/{ObservedTopologyPanel-BJUhDSuQ.js → ObservedTopologyPanel-BhVsvwkh.js} +1 -1
  79. package/dist/client/assets/{OpenScoutAppShell-CUd2yOLu.js → OpenScoutAppShell-BtfvMkAp.js} +1 -1
  80. package/dist/client/assets/{OpsAgentsView-DI5wu1si.js → OpsAgentsView-DBYtmLnh.js} +1 -1
  81. package/dist/client/assets/OpsScreen-CuYVgkC_.js +1 -0
  82. package/dist/client/assets/OpsSubnav-BEU4kKXm.js +1 -0
  83. package/dist/client/assets/ProjectAgentProfile-BhXAZEkW.js +1 -0
  84. package/dist/client/assets/{ProjectAgentProfileBar-k2QHHHsQ.js → ProjectAgentProfileBar-uJw9Wdfk.js} +1 -1
  85. package/dist/client/assets/{ProjectAgentProfileHero-Bpxk1ui2.js → ProjectAgentProfileHero-CIMS4Dy_.js} +1 -1
  86. package/dist/client/assets/{ProjectsInbox-C_bMHLCc.js → ProjectsInbox-JgU0lrY8.js} +1 -1
  87. package/dist/client/assets/{ProjectsRail-J-aH_pxT.js → ProjectsRail-p99BRBOa.js} +1 -1
  88. package/dist/client/assets/ProjectsScreen-BB45DU53.js +1 -0
  89. package/dist/client/assets/{ProjectsThreadAside-_ourdM-Q.js → ProjectsThreadAside-BHDTJWOz.js} +1 -1
  90. package/dist/client/assets/{Provider-CtXJeLrP.js → Provider-Bu-C8Hxc.js} +1 -1
  91. package/dist/client/assets/{RailRow-CEH2MFBw.js → RailRow-ClMmtaIE.js} +1 -1
  92. package/dist/client/assets/{RawSessionsTable-CDyrom-F.js → RawSessionsTable-BtKdQPiv.js} +1 -1
  93. package/dist/client/assets/{RealtimeVoiceScreen-DBl3DN1H.js → RealtimeVoiceScreen-KPHJgO1l.js} +1 -1
  94. package/dist/client/assets/{RepoDiffEmbedScreen-kY2pHjIs.js → RepoDiffEmbedScreen-CjZ5ew3y.js} +1 -1
  95. package/dist/client/assets/{RepoDiffPageScreen-C6LhoKrn.js → RepoDiffPageScreen-CdTFfmbk.js} +1 -1
  96. package/dist/client/assets/{RepoDiffViewer-BhcIIQQg.js → RepoDiffViewer-BFperHQg.js} +1 -1
  97. package/dist/client/assets/{RepoDiffViewerLazy-Csy_j9LD.js → RepoDiffViewerLazy-BkBmbi1Z.js} +2 -2
  98. package/dist/client/assets/{ReposScreen-B_cB0zu7.js → ReposScreen-C8dT4bK0.js} +1 -1
  99. package/dist/client/assets/{ScoutDeckSurface-CSy_fjcG.js → ScoutDeckSurface-BcJsm2Kq.js} +1 -1
  100. package/dist/client/assets/{ScoutSurface-CQVcSrin.js → ScoutSurface-DmzEtrx8.js} +1 -1
  101. package/dist/client/assets/{ScoutbotFxLab-DqGiLYNy.js → ScoutbotFxLab-DU15Plja.js} +1 -1
  102. package/dist/client/assets/{SecondaryNav-BR4VRdgh.js → SecondaryNav-BrXMtvKE.js} +1 -1
  103. package/dist/client/assets/{SessionEmbedScreen-BTlZ9gAg.js → SessionEmbedScreen-Bt4flmAx.js} +1 -1
  104. package/dist/client/assets/{SessionObserve-dQDN23pP.js → SessionObserve-BCehTlO8.js} +1 -1
  105. package/dist/client/assets/{SessionObserveEvidence-BRBGKAgd.js → SessionObserveEvidence-Bb6U-dem.js} +1 -1
  106. package/dist/client/assets/{SessionRefScreen-COVQMbtE.js → SessionRefScreen-C8BiRVPx.js} +1 -1
  107. package/dist/client/assets/SessionsScreen-BNvjUflN.js +1 -0
  108. package/dist/client/assets/{SettingsDrawer-RGVK_bmE.js → SettingsDrawer-BieUmb8g.js} +1 -1
  109. package/dist/client/assets/{SettingsScreen-CCxzy5IU.js → SettingsScreen-3JvX1WFL.js} +1 -1
  110. package/dist/client/assets/{ShikiPane-DYI9Hkge.js → ShikiPane-DPWsVNtn.js} +1 -1
  111. package/dist/client/assets/{SlidePanel-B9ugxWgA.js → SlidePanel-BMRIR6bH.js} +1 -1
  112. package/dist/client/assets/{SpriteAvatar-z5hHesx9.js → SpriteAvatar-56DTXxSV.js} +1 -1
  113. package/dist/client/assets/{StatusPill-BFvMjmZV.js → StatusPill-BcuYUgsD.js} +1 -1
  114. package/dist/client/assets/{TailView-0uEIj2JH.js → TailView-BDy8c2VB.js} +1 -1
  115. package/dist/client/assets/{Terminal-DouZeNxc.js → Terminal-BlUQY9_Z.js} +1 -1
  116. package/dist/client/assets/{TerminalEmbedScreen-dMNUbzXr.js → TerminalEmbedScreen-DTjxktyr.js} +1 -1
  117. package/dist/client/assets/{TerminalHeaderMount-BL07cd0q.js → TerminalHeaderMount-Cy-uxkey.js} +1 -1
  118. package/dist/client/assets/{TextDocumentSurface-BflAwXeZ.js → TextDocumentSurface-BeSwe3Yl.js} +1 -1
  119. package/dist/client/assets/{TmuxPeek-BTnjOQi0.js → TmuxPeek-B4no_aGI.js} +1 -1
  120. package/dist/client/assets/{VoicePermissionsPanel-CgQ6GGS-.js → VoicePermissionsPanel-Bd16scwz.js} +1 -1
  121. package/dist/client/assets/{WorkDetailScreen-CaLG-zDs.js → WorkDetailScreen-DIFQufak.js} +1 -1
  122. package/dist/client/assets/{WorkFilesViewer-B9Sil_No.js → WorkFilesViewer-CT5XEFGf.js} +1 -1
  123. package/dist/client/assets/{activity-DcrMApUY.js → activity-CqZafWfx.js} +1 -1
  124. package/dist/client/assets/{addon-fit-DMVrz5Sv.js → addon-fit-CM6F_JRD.js} +1 -1
  125. package/dist/client/assets/{addon-webgl-BYvpZUyu.js → addon-webgl-DRTiePFC.js} +1 -1
  126. package/dist/client/assets/{agent-autocomplete-B-5QTeas.js → agent-autocomplete-DXUBnlkN.js} +1 -1
  127. package/dist/client/assets/{agent-essentials-D7KRGYvF.js → agent-essentials-vytdybaX.js} +1 -1
  128. package/dist/client/assets/{agent-master-model-DqjrVI2h.js → agent-master-model-DAZL92oe.js} +1 -1
  129. package/dist/client/assets/{agent-specialization-BujJVUTD.js → agent-specialization-BtxLN4UR.js} +1 -1
  130. package/dist/client/assets/agents-project-DgbqDc65.css +1 -0
  131. package/dist/client/assets/{arc.es-NHqHWohb.js → arc.es-Bh84oHJ7.js} +1 -1
  132. package/dist/client/assets/{arrow-down-CKtSUjmW.js → arrow-down-DvTsLokL.js} +1 -1
  133. package/dist/client/assets/{arrow-left-Czpf-AE4.js → arrow-left-DHfdXJVZ.js} +1 -1
  134. package/dist/client/assets/{arrow-right-BuzMnLYP.js → arrow-right-BBsrogWf.js} +1 -1
  135. package/dist/client/assets/{arrow-up-right-C6Wl-1uw.js → arrow-up-right-CY0Vw_67.js} +1 -1
  136. package/dist/client/assets/{bot-rd0awxD3.js → bot-DzkOUFBb.js} +1 -1
  137. package/dist/client/assets/{check-ofKUE8yH.js → check-DbIkldnK.js} +1 -1
  138. package/dist/client/assets/{chevron-down-wciXnOQz.js → chevron-down-C475vltS.js} +1 -1
  139. package/dist/client/assets/{chevron-right-D-HdlPg8.js → chevron-right-CnZRSd-V.js} +1 -1
  140. package/dist/client/assets/{chunk-HRAB3GC3-Tyv9rzx7.js → chunk-HRAB3GC3-DLNT8aOo.js} +1 -1
  141. package/dist/client/assets/{chunk-JTPDIGGW-BC2Mandc.js → chunk-JTPDIGGW-Ci5j4vzV.js} +3 -3
  142. package/dist/client/assets/{chunk-T65CQEWV-C1AWTYZZ.js → chunk-T65CQEWV-BtNvicWs.js} +1 -1
  143. package/dist/client/assets/{chunk-YOZR3KYS-DwHPHa6f.js → chunk-YOZR3KYS-DN5EJulq.js} +1 -1
  144. package/dist/client/assets/{clock-B88r8OrZ.js → clock-DVvENUU5.js} +1 -1
  145. package/dist/client/assets/{code-xml-D7pOQM9l.js → code-xml-CvKBY3KA.js} +1 -1
  146. package/dist/client/assets/{compass-Dt1AMXz2.js → compass-BcRI_YXo.js} +1 -1
  147. package/dist/client/assets/content--T3p6akp.js +1 -0
  148. package/dist/client/assets/content-4nFMLuzF.js +1 -0
  149. package/dist/client/assets/content-BJ4nHvcu.js +1 -0
  150. package/dist/client/assets/{content-nkx0swDe.js → content-BNyAjpUl.js} +1 -1
  151. package/dist/client/assets/content-BmGp9wNl.js +1 -0
  152. package/dist/client/assets/content-CBWhwaRo.js +1 -0
  153. package/dist/client/assets/{content-C9ijJxyl.js → content-CQlykFbe.js} +1 -1
  154. package/dist/client/assets/content-CevL0DgF.js +1 -0
  155. package/dist/client/assets/content-Ch8pf2bj.js +1 -0
  156. package/dist/client/assets/content-Cpvdcm_l.js +1 -0
  157. package/dist/client/assets/content-DfS3vgAu.js +1 -0
  158. package/dist/client/assets/content-DpQdNePJ.js +1 -0
  159. package/dist/client/assets/content-Dqpibejl.js +1 -0
  160. package/dist/client/assets/content-TV0nd6-r.js +1 -0
  161. package/dist/client/assets/{content-BWPNyXJ0.js → content-odbb5H4U.js} +1 -1
  162. package/dist/client/assets/content-uXHLPHe0.js +1 -0
  163. package/dist/client/assets/{conversation-icons-tp9BX6X2.js → conversation-icons-CBMKBGHd.js} +1 -1
  164. package/dist/client/assets/{conversation-model-Dc02NsGp.js → conversation-model-QsJVfSeG.js} +1 -1
  165. package/dist/client/assets/conversation-motion-features-BFLHX2eg.js +1 -0
  166. package/dist/client/assets/{copy-CWWAJ75H.js → copy-Cj-owMb-.js} +1 -1
  167. package/dist/client/assets/{cpu-DrqejfkB.js → cpu-DuD3RFX5.js} +1 -1
  168. package/dist/client/assets/{createLucideIcon-DezKXSG2.js → createLucideIcon-DthwWQIg.js} +1 -1
  169. package/dist/client/assets/{discover-C2CZO4Tk.js → discover-B3uQlh5L.js} +2 -2
  170. package/dist/client/assets/embed-entry-DkRcHKTh.js +2 -0
  171. package/dist/client/assets/{external-link-Dp_a2vRZ.js → external-link-C_nxk0MJ.js} +1 -1
  172. package/dist/client/assets/{eye-BRyD0jno.js → eye-FnaaPfja.js} +1 -1
  173. package/dist/client/assets/{file-code-corner-muIVH_xO.js → file-code-corner-DDPq4Cur.js} +1 -1
  174. package/dist/client/assets/{file-text-CqJgwxmv.js → file-text--hfhwZH1.js} +1 -1
  175. package/dist/client/assets/{gauge-hU--hKVP.js → gauge-BVEknshP.js} +1 -1
  176. package/dist/client/assets/{gestures-DN4hEeqv.js → gestures-3gw5VgUS.js} +1 -1
  177. package/dist/client/assets/{git-branch-CK5v8F2v.js → git-branch-DJyvr0k-.js} +1 -1
  178. package/dist/client/assets/{home-moving-signal-BjDtEJUP.js → home-moving-signal-BPqBoNSm.js} +1 -1
  179. package/dist/client/assets/{home-now-card-nF8OotI-.js → home-now-card-UspVW2-2.js} +1 -1
  180. package/dist/client/assets/{home-now-card-nano-C-r_bBg5.js → home-now-card-nano-G8kMB32m.js} +1 -1
  181. package/dist/client/assets/{hooks-D46bABUP.js → hooks-BMsQzo9j.js} +1 -1
  182. package/dist/client/assets/{index-DvLtl7rV.js → index-BI9AljSD.js} +2 -2
  183. package/dist/client/assets/{index-kL1WLbeS.js → index-C-v0Z6ZS.js} +1 -1
  184. package/dist/client/assets/{index-CPrU5q04.js → index-D9DzUORB.js} +1 -1
  185. package/dist/client/assets/index-DfsTyYDx.js +1 -0
  186. package/dist/client/assets/{inspector-panel-Dkc7rLvY.js → inspector-panel-CFSArQ8Y.js} +1 -1
  187. package/dist/client/assets/{keyboard-nav-BLYDhL3Z.js → keyboard-nav-e6yGeorb.js} +1 -1
  188. package/dist/client/assets/{lane-roster-store-DOdI1O13.js → lane-roster-store-Q7pcblY5.js} +1 -1
  189. package/dist/client/assets/{layers-CSsg3JVP.js → layers-Dz2dKOnU.js} +1 -1
  190. package/dist/client/assets/{layout-grid-DOChPJdZ.js → layout-grid-Bvs5fdB4.js} +1 -1
  191. package/dist/client/assets/{left-BNRFiRsb.js → left-B4Ak-Ibt.js} +1 -1
  192. package/dist/client/assets/{left-BggzhgXN.js → left-BMb493FZ.js} +1 -1
  193. package/dist/client/assets/{left-YT7mIGuH.js → left-BjFLvVOC.js} +1 -1
  194. package/dist/client/assets/{left-B3wSE6ql.js → left-CsXQ8Q3G.js} +1 -1
  195. package/dist/client/assets/left-FNH7faCI.js +1 -0
  196. package/dist/client/assets/{left-CARCvvxS.js → left-POkqE8gI.js} +1 -1
  197. package/dist/client/assets/{left-CpokZYHt.js → left-UulOTcWh.js} +1 -1
  198. package/dist/client/assets/{left-advisor-CCY0vkcO.js → left-advisor-CJkQS2d6.js} +1 -1
  199. package/dist/client/assets/{left-agents-trhO5sL8.js → left-agents-CFMxyEjT.js} +1 -1
  200. package/dist/client/assets/{left-default-CG33elBs.js → left-default-rnX5HANc.js} +1 -1
  201. package/dist/client/assets/{left-lanes-CitMgeTp.js → left-lanes-BpLXT_qH.js} +1 -1
  202. package/dist/client/assets/{left-mission-Zl2m_5eU.js → left-mission-B0bhseWw.js} +1 -1
  203. package/dist/client/assets/library-D1iXfda2.js +1 -0
  204. package/dist/client/assets/{loader-circle-pM56HNhR.js → loader-circle-B2W9DPG5.js} +1 -1
  205. package/dist/client/assets/{local-agents-C8xAhbO5.js → local-agents-DKr-gIDC.js} +1 -1
  206. package/dist/client/assets/{mentions-DG6OQrsc.js → mentions-DuLQnEcn.js} +1 -1
  207. package/dist/client/assets/{mesh-ops-BZ1h5RQs.js → mesh-ops-CRR-KnCG.js} +1 -1
  208. package/dist/client/assets/{mesh-view-store-ChUOASK8.js → mesh-view-store-CiET-yN8.js} +1 -1
  209. package/dist/client/assets/{message-circle-mZCv8tvB.js → message-circle-B2DoYKDO.js} +1 -1
  210. package/dist/client/assets/{message-markup-C2LQDm_k.js → message-markup-Cc_O-WdA.js} +1 -1
  211. package/dist/client/assets/{message-square-C7t_qtuj.js → message-square-O-Hu9Mk2.js} +1 -1
  212. package/dist/client/assets/{mission-control-store-nDLdUZPA.js → mission-control-store-DDAgWKUl.js} +1 -1
  213. package/dist/client/assets/{observe-BpEm1INu.js → observe-Da2mRAsc.js} +1 -1
  214. package/dist/client/assets/{page-status-E5jnk48p.js → page-status-Crtgjbq3.js} +1 -1
  215. package/dist/client/assets/{paperclip-C64lkcbM.js → paperclip-BudMKSyr.js} +1 -1
  216. package/dist/client/assets/{persistent-state-EHXw8WNy.js → persistent-state-xJz-qAFc.js} +1 -1
  217. package/dist/client/assets/{plus-Co-dqKul.js → plus-BJ1If8vj.js} +1 -1
  218. package/dist/client/assets/{profile-APxDsN2P.js → profile-B3qDSbrH.js} +1 -1
  219. package/dist/client/assets/{projects-inbox-Cg4X2lUQ.js → projects-inbox-CLek3QaG.js} +1 -1
  220. package/dist/client/assets/{proxy-BiW5suC7.js → proxy-1BABCaDb.js} +1 -1
  221. package/dist/client/assets/{radio-BOxBQX-T.js → radio-B5OpHrrK.js} +1 -1
  222. package/dist/client/assets/{refresh-cw-DMxGzDwn.js → refresh-cw-DmNAhaH0.js} +1 -1
  223. package/dist/client/assets/resolve-panes-DXw-cHaj.js +1 -0
  224. package/dist/client/assets/resolve-sidebar-context-CDdbRDEa.js +1 -0
  225. package/dist/client/assets/{right-Bmfd3pjP.js → right-BgJ4mQLf.js} +1 -1
  226. package/dist/client/assets/{right-Dz_xD0Vj.js → right-Bk6h7o-Z.js} +1 -1
  227. package/dist/client/assets/{right-CkCCPbCX.js → right-BrICCmEt.js} +1 -1
  228. package/dist/client/assets/{right-CdkcrmeD.js → right-C1QIbqFZ.js} +1 -1
  229. package/dist/client/assets/{right-BwlW6E57.js → right-CfliKiHY.js} +1 -1
  230. package/dist/client/assets/{right-BuCgE0fZ.js → right-CtOLXB9s.js} +1 -1
  231. package/dist/client/assets/{right-CimaAvQN.js → right-D8id_DWQ.js} +1 -1
  232. package/dist/client/assets/{right-C0ybUw0j.js → right-DJ34yMAi.js} +1 -1
  233. package/dist/client/assets/{right-D3eSiy41.js → right-DiFmtw6d.js} +1 -1
  234. package/dist/client/assets/{right-BqI-nr9G.js → right-Lx79pxpG.js} +1 -1
  235. package/dist/client/assets/{rocket-BQm5_CvR.js → rocket-D3-TUJ2m.js} +1 -1
  236. package/dist/client/assets/{router-B9vQkNJL.js → router-DTtux5sP.js} +1 -1
  237. package/dist/client/assets/{scope-views-1IYJdl41.js → scope-views-CPM0sBw_.js} +1 -1
  238. package/dist/client/assets/{scout-voice-BVUqGhth.js → scout-voice-BZKsdquE.js} +1 -1
  239. package/dist/client/assets/{scoutbot-markdown-BQ_Ee2Ic.js → scoutbot-markdown-CQ7Y1McC.js} +1 -1
  240. package/dist/client/assets/{scroll-text-Dze_dXtQ.js → scroll-text-kPhYbh-M.js} +1 -1
  241. package/dist/client/assets/{search-CDko0PKE.js → search-DmFM_9jm.js} +1 -1
  242. package/dist/client/assets/{secondaryNavConfig-BoQ_zYR9.js → secondaryNavConfig-C9bQ9_IA.js} +1 -1
  243. package/dist/client/assets/{selection-bridge-Din6yV3h.js → selection-bridge-Dy2mtMyi.js} +1 -1
  244. package/dist/client/assets/{send-horizontal-CSjIm6xg.js → send-horizontal-qyjNgEaV.js} +1 -1
  245. package/dist/client/assets/{server-Bzj7lPIx.js → server-nWqndnxu.js} +1 -1
  246. package/dist/client/assets/{session-catalog-DsaZJXZt.js → session-catalog-BkmktBHI.js} +1 -1
  247. package/dist/client/assets/{session-table-BQfR7u6r.js → session-table-DKSF0mrS.js} +1 -1
  248. package/dist/client/assets/{settings-Dyvpkb1D.js → settings-C6h9y5XX.js} +1 -1
  249. package/dist/client/assets/{sliders-horizontal-C8njVwfg.js → sliders-horizontal-BhHKxsCO.js} +1 -1
  250. package/dist/client/assets/{sparkles-CETYrxGA.js → sparkles-Cf8gin88.js} +1 -1
  251. package/dist/client/assets/{sse-CD9MMUxl.js → sse-DDHEHUgz.js} +1 -1
  252. package/dist/client/assets/{tail-events-Ps8KpKah.js → tail-events-BdUrO0kb.js} +1 -1
  253. package/dist/client/assets/{terminal-9GRS_Qdc.js → terminal-C3YRPfyz.js} +1 -1
  254. package/dist/client/assets/{terminal-relay-GYMIvKs1.js → terminal-relay-BFhdIstF.js} +1 -1
  255. package/dist/client/assets/{terminal-takeover-_Jyys4me.js → terminal-takeover-B6H4llRR.js} +1 -1
  256. package/dist/client/assets/{text-BP3oyl8-.js → text-Faa3ZStB.js} +1 -1
  257. package/dist/client/assets/{use-conversation-list-C9ABzjXI.js → use-conversation-list-DO5J8T1H.js} +1 -1
  258. package/dist/client/assets/{use-fleet-active-asks-DAspZQjE.js → use-fleet-active-asks-BtgNnRgK.js} +1 -1
  259. package/dist/client/assets/{use-mesh-ops-items-Dh54ymEp.js → use-mesh-ops-items-N1HHhChY.js} +1 -1
  260. package/dist/client/assets/{use-reduced-motion-x8pJMVrG.js → use-reduced-motion-8WuxLa5l.js} +1 -1
  261. package/dist/client/assets/{use-scout-dev-flags-DhCbiDK3.js → use-scout-dev-flags-B31qTy6m.js} +1 -1
  262. package/dist/client/assets/{useAgentHoverCard-DoBwV0LX.js → useAgentHoverCard-Bkv-Uz_V.js} +1 -1
  263. package/dist/client/assets/useContentSecondaryNav-Bpkc8ayb.js +1 -0
  264. package/dist/client/assets/{usePierreRuntime-ejq9dCWV.js → usePierreRuntime-BfZHKAkI.js} +1 -1
  265. package/dist/client/assets/{wrench-DjkoAOQt.js → wrench-DkxnZRlR.js} +1 -1
  266. package/dist/client/assets/{x-CAbNespN.js → x-DfRJbqrh.js} +1 -1
  267. package/dist/client/assets/{xterm-Cf-ngcGP.js → xterm-CJw8Epxv.js} +1 -1
  268. package/dist/client/assets/{zap-Cq8eWkcF.js → zap-CIo8msJB.js} +1 -1
  269. package/dist/client/index.html +1 -1
  270. package/dist/main.mjs +65 -21
  271. package/dist/pairing-runtime-controller.mjs +8 -0
  272. package/dist/runtime/broker-daemon.mjs +58 -10
  273. package/dist/scout-control-plane-web.mjs +8 -0
  274. package/package.json +2 -2
  275. package/dist/client/assets/AgentLanesEmbedScreen-Dgcm7zd_.js +0 -1
  276. package/dist/client/assets/AgentsSubnav-C4xpQhsv.js +0 -1
  277. package/dist/client/assets/CrewWorkspaces-CkQDhyie.css +0 -1
  278. package/dist/client/assets/CrewWorkspaces-NKujRzwh.js +0 -1
  279. package/dist/client/assets/OpsScreen-D8fQafCl.js +0 -1
  280. package/dist/client/assets/OpsSubnav-1K4Jaf__.js +0 -1
  281. package/dist/client/assets/ProjectAgentProfile-Bdjd_dAx.js +0 -1
  282. package/dist/client/assets/ProjectsScreen-cVUkGbPz.js +0 -1
  283. package/dist/client/assets/SessionsScreen--5OJ3p3v.js +0 -1
  284. package/dist/client/assets/agents-project-COzHxZAF.css +0 -1
  285. package/dist/client/assets/content-9K38QchR.js +0 -1
  286. package/dist/client/assets/content-BRgnyXWh.js +0 -1
  287. package/dist/client/assets/content-BdkI07v3.js +0 -1
  288. package/dist/client/assets/content-C4oWa8SB.js +0 -1
  289. package/dist/client/assets/content-CFZ4rghn.js +0 -1
  290. package/dist/client/assets/content-CIqu_Ci_.js +0 -1
  291. package/dist/client/assets/content-CnJF9DGO.js +0 -1
  292. package/dist/client/assets/content-CriW8Y8u.js +0 -1
  293. package/dist/client/assets/content-DDCyPPk_.js +0 -1
  294. package/dist/client/assets/content-DtcZeh5m.js +0 -1
  295. package/dist/client/assets/content-U9tsdtle.js +0 -1
  296. package/dist/client/assets/content-hFLK3CON.js +0 -1
  297. package/dist/client/assets/content-p00KQrtD.js +0 -1
  298. package/dist/client/assets/conversation-motion-features-D9-RmBSq.js +0 -1
  299. package/dist/client/assets/embed-entry-BSMUykuG.js +0 -2
  300. package/dist/client/assets/index-zvhpRHao.js +0 -1
  301. package/dist/client/assets/left-B-SdEJSJ.js +0 -1
  302. package/dist/client/assets/library-DkALuCh5.js +0 -1
  303. package/dist/client/assets/resolve-panes-DeVJbS9c.js +0 -1
  304. package/dist/client/assets/resolve-sidebar-context-BQe5J6xF.js +0 -1
  305. package/dist/client/assets/useContentSecondaryNav-pZe2Zfk1.js +0 -1
@@ -1,2 +1,2 @@
1
- import{r as m,j as s}from"./index-DvLtl7rV.js";import{A as Me}from"./AgentAvatar-6-KBVKUu.js";import{H as ge}from"./HarnessMark-B979GCSB.js";import{a as Ee}from"./api-Co9aQ2Jw.js";import{r as Ie,i as $e}from"./ui-LM8pS8qE.js";import{t as _,d as We,n as ee}from"./time-Dhsh_2EG.js";import{p as Fe,l as De,s as Be,f as Oe}from"./terminal-sessions-BQ6t92tJ.js";import{u as ze}from"./Provider-CtXJeLrP.js";import{o as He}from"./openContent-C6XO6kr5.js";import{p as J}from"./NewChatComposer-_Stj0fZy.js";import{SessionRefScreen as qe}from"./SessionRefScreen-COVQMbtE.js";import{P as Ge,C as _e}from"./CrewWorkspaces-NKujRzwh.js";import{r as X,s as V}from"./project-overview-helpers-BQTc_Ous.js";import{u as Ve,r as Ke,c as Z,d as ae,g as Ue,s as re,a as le,e as Xe,h as be,i as Ye,j as Ze,f as Je,k as Qe}from"./projects-inbox-Cg4X2lUQ.js";import{g as es,a as ss,f as ce,b as ts}from"./api-HFH8wFyb.js";import{f as ns}from"./cache-CeWH_KzJ.js";import{A as ue}from"./arrow-up-right-C6Wl-1uw.js";import{C as is}from"./chevron-right-D-HdlPg8.js";import{F as os}from"./AddProjectForm-IqOtJfRs.js";import{S as as}from"./search-CDko0PKE.js";import{A as rs}from"./arrow-right-BuzMnLYP.js";import{E as ls}from"./external-link-Dp_a2vRZ.js";import{F as cs}from"./DocumentFocusViewer-Do3wQ_3Z.js";import"./SpriteAvatar-z5hHesx9.js";import"./colors-BtO5_zlx.js";import"./CrewAvatar-BwXjyg8N.js";import"./perf-PX8Rx0EP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./createLucideIcon-DezKXSG2.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./NewChatOrigin-B1u7ki70.js";import"./x-CAbNespN.js";import"./chevron-down-wciXnOQz.js";import"./tail-events-Ps8KpKah.js";import"./BackToPicker-CXZjBRAe.js";import"./ConversationScreen-CR9pWB65.js";import"./ConversationComposer-CXPKx86g.js";import"./zap-Cq8eWkcF.js";import"./message-markup-C2LQDm_k.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.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-BQWzGzLK.js";import"./AstronautSuit-DbjQtfD_.js";import"./ConversationFeedRows-WrH-YI3L.js";import"./ConversationPanels-Dujvnmup.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./activity-DcrMApUY.js";import"./message-circle-mZCv8tvB.js";import"./ConversationStatus-DVzSb2Hv.js";import"./check-ofKUE8yH.js";import"./sparkles-CETYrxGA.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./wrench-DjkoAOQt.js";import"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./mesh-roster-Bc7T4b7z.js";import"./agent-specialization-BujJVUTD.js";import"./model-IGCUEsMy.js";import"./agents-project-model-UYiamtrU.js";import"./sliders-horizontal-C8njVwfg.js";import"./message-square-C7t_qtuj.js";function de(e){const t=e?.trim();if(!t)return null;const i=t.split(/[\\/]/u).filter(Boolean).at(-1)??t;return i.endsWith(".jsonl")?i.slice(0,-6):i}function us(e){return e.surfaces.filter(t=>t.backend==="tmux")}function ds(e,t){return{terminalSessionId:e.id,terminalSurfaceKey:Be(t),sessionName:t.sessionName}}function ps(e,t){const i=de(t.agentId),n=new Set(t.sessionRefs.map(de).filter(r=>!!r)),a=i?.split(".",1)[0]??null;a?.startsWith("session-")&&n.add(a);for(const r of e){const o=us(r).find(u=>n.has(u.sessionName));if(o)return ds(r,o)}return null}function ms(e,t){const i=Fe(e.terminalSurfaceKey);return i?`scout://terminal?${new URLSearchParams({session:e.terminalSessionId,surface:De(i),mode:t}).toString()}`:null}const hs=1e4,fs=2e4,js=6e4,xs=15e3,gs=45e3,bs=["branch","unstaged","staged"];function te(e){const t=()=>{document.visibilityState==="visible"&&e()};return window.addEventListener("focus",t),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",t)}}function vs(e,t){const i=new Set;for(const n of[e,...t]){const a=n?.trim();a&&i.add(a.replace(/\/+$/u,""))}return[...i].slice(0,6)}function ws(e){return e.replace(/\/+$/u,"").split("/").pop()?.toLocaleLowerCase()??e.toLocaleLowerCase()}function Ns(e,t,i){return e.path===t||i?.worktrees.some(a=>a.path===e.path)?!0:e.repo.split("/").pop()?.toLocaleLowerCase()===(i?.name.toLocaleLowerCase()??ws(t))}function Q(e){return e&&typeof e=="object"&&"name"in e&&e.name==="AbortError"?"The repository scan timed out.":e instanceof Error?e.message:String(e)}function ks(e,t=[]){const i=vs(e,t).join("\0"),n=m.useMemo(()=>i?i.split("\0"):[],[i]),[a,r]=m.useState(()=>es()),[o,u]=m.useState(()=>ss()),[c,j]=m.useState(!!(e&&!X(a,e))),[h,v]=m.useState(!!e),[y,w]=m.useState(!!e),[I,L]=m.useState(null),[k,P]=m.useState(null),[F,M]=m.useState(()=>new Map),[B,A]=m.useState(()=>new Map),[S,$]=m.useState(0),R=m.useRef(null),T=m.useCallback(()=>{R.current=null,$(f=>f+1)},[]);m.useEffect(()=>{if(!e){j(!1),L(null);return}let f=!1,x=!1,b=!0;const D=async()=>{if(x)return;x=!0,f||(j(!0),L(null));let O=null;try{let W=null;const z=S>0&&b;b=!1;try{W=await ce("standard",z,xs)}catch(C){O=Q(C)}if((!W||!X(W,e))&&R.current!==e){R.current=e;try{const C=await ce("expanded",z,gs);X(C,e)&&(W=C)}catch(C){O=Q(C)}}!f&&W&&r(C=>X(W,e)?W:C&&X(C,e)?C:W),!f&&!X(W,e)&&L(O??"Repo Watch did not include this project in its latest scan.")}finally{x=!1,f||j(!1)}};D();const d=window.setInterval(()=>{document.visibilityState==="visible"&&D()},hs),E=te(()=>{D()});return()=>{f=!0,window.clearInterval(d),E()}},[e,S]),m.useEffect(()=>{if(n.length===0){w(!1),A(new Map);return}let f=!1,x=!1,b=!0;const D=async()=>{if(x)return;x=!0,f||w(!0);const O=await Promise.allSettled(n.map(W=>ns(W,[...bs],{force:S>0&&b,tier:"summary"})));if(b=!1,!f){const W=new Map,z=new Map;O.forEach((C,K)=>{const q=n[K];C.status==="fulfilled"?W.set(q,C.value.snapshot):z.set(q,Q(C.reason))}),M(C=>{const K=new Map(C);for(const q of n)K.delete(q);for(const[q,se]of W)K.set(q,se);return K}),A(z),w(!1)}x=!1};D();const d=window.setInterval(()=>{document.visibilityState==="visible"&&D()},fs),E=te(()=>{D()});return()=>{f=!0,window.clearInterval(d),E()}},[n,S]),m.useEffect(()=>{if(n.length===0){v(!1),P(null);return}let f=!1,x=!1;const b=async()=>{if(!x){x=!0;try{const E=await ts(n);f||(u(E),P(null))}catch(E){f||P(Q(E))}finally{x=!1,f||v(!1)}}};v(!0),P(null),b();const D=window.setInterval(()=>{document.visibilityState==="visible"&&b()},js),d=te(()=>{b()});return()=>{f=!0,window.clearInterval(D),d()}},[n,S]);const l=m.useMemo(()=>X(a,e),[e,a]),p=m.useMemo(()=>e?(o?.pullRequests??[]).filter(f=>Ns(f,e,l)):[],[l,e,o]),g=m.useMemo(()=>{const f=o?.paths.some(x=>n.includes(x))?o.warnings:[];return k?[k,...f]:f},[n,k,o]);return{project:l,pullRequests:p,pullRequestsLoading:h,pullRequestWarnings:g,repoLoading:c,repoError:I,diffSnapshots:F,diffErrors:B,diffLoading:y,refresh:T}}const Ss=[];function ys(e,t){return e.thread===t.thread&&e.crossProject===t.crossProject&&e.selected===t.selected&&e.cursor===t.cursor&&e.nowMs===t.nowMs&&e.workLabel===t.workLabel}const Cs=m.memo(function({thread:t,crossProject:i,selected:n,cursor:a,nowMs:r,onSelect:o,onOpen:u,rowRef:c,workLabel:j}){return s.jsxs("button",{ref:c,type:"button",className:"pi-row","data-state":t.group,"data-selected":n||void 0,"data-cursor":a||void 0,onClick:o,onDoubleClick:u,children:[s.jsx("span",{className:"pi-rowDot","aria-hidden":!0}),s.jsxs("span",{className:"pi-rowBody",children:[s.jsx("span",{className:"pi-rowWork",title:t.work,children:j??t.work}),s.jsxs("span",{className:"pi-rowAttr",children:[s.jsx("span",{className:"pi-rowAvatar",children:s.jsx(Me,{agent:{name:t.agentName,harness:t.harness,state:t.working?"in_turn":null},placement:"row",size:22})}),s.jsx("span",{className:"pi-rowAgent",title:t.agentName,children:t.agentName}),s.jsx("span",{className:"pi-rowHmark","aria-hidden":!0,children:s.jsx(ge,{harness:t.harness,size:11})}),i?s.jsxs("span",{className:"pi-rowChip",title:`/${t.projectTitle}`,children:["/",t.projectTitle]}):t.branch?s.jsx("span",{className:"pi-rowBranch",title:t.branch,children:t.branch}):null]})]}),s.jsxs("span",{className:"pi-rowVitals",children:[t.working?s.jsx("span",{className:"pi-rowLiveTag",children:"live"}):null,s.jsx("span",{className:"pi-rowAgo",children:t.lastActivityAt?_(t.lastActivityAt,r):"—"}),t.contextPct!=null?s.jsxs("span",{className:"pi-rowCtx",children:[t.contextPct,"%"]}):null]}),s.jsxs("span",{className:"pi-rowOpen","aria-hidden":!0,children:[s.jsx("span",{children:"Open"}),s.jsx(is,{size:14,strokeWidth:1.8})]})]})},ys);function pe({title:e,detail:t,tone:i="muted"}){return s.jsxs("div",{className:"pi-stateBlock","data-tone":i,role:i==="loading"?"status":"note",children:[s.jsx("span",{className:"pi-statePulse","aria-hidden":!0}),s.jsx("span",{className:"pi-stateTitle",children:e}),t?s.jsx("span",{className:"pi-stateDetail",children:t}):null]})}function As({rows:e=7}){return s.jsxs("div",{className:"pi-loadingRows","aria-hidden":"true",children:[s.jsxs("div",{className:"pi-sectionHead pi-sectionHead--loading",children:[s.jsx("span",{className:"pi-loadingLine pi-loadingLine--label"}),s.jsx("span",{className:"pi-loadingLine pi-loadingLine--count"})]}),Array.from({length:e},(t,i)=>s.jsxs("div",{className:"pi-row pi-row--loading",children:[s.jsx("span",{className:"pi-rowDot"}),s.jsxs("span",{className:"pi-rowBody",children:[s.jsx("span",{className:"pi-loadingLine pi-loadingLine--title"}),s.jsx("span",{className:"pi-loadingLine pi-loadingLine--meta"})]}),s.jsx("span",{className:"pi-rowVitals",children:s.jsx("span",{className:"pi-loadingLine pi-loadingLine--time"})})]},i))]})}function Rs({route:e,navigate:t,slug:i,model:n,mode:a,repoProject:r}){const o=n.projects.find(k=>k.slug===i)??null,c=Z(n.threads,i).filter(k=>k.kind==="agent"),j=o?.title??i,h=o?.root??null,v=(o?.agentCount??c.length)>0,y=e.machineId?{machineId:e.machineId}:{},w={view:"agents-v2",projectSlug:i,...y},I=Ts(o?.needs??0,Math.max(o?.working??0,o?.liveSessionCount??0),o?.agentCount??(c.length>0?1:0),o?.sessionCount??0),L=r?.worktrees.length??o?.worktreeCount??0;return s.jsxs("header",{className:"pi-projectHead",children:[s.jsx("div",{className:"pi-projectHeadTop",children:s.jsxs("div",{className:"pi-projectIdent",children:[s.jsx("h1",{className:"pi-projectTitle",children:j}),s.jsxs("div",{className:"pi-projectMeta",children:[h?s.jsx("span",{title:h,children:V(h)}):null,s.jsx("span",{className:"pi-projectDigest",children:I})]})]})}),s.jsxs("div",{className:"pi-projectFacets","aria-label":"Project sections",children:[s.jsx("button",{type:"button",className:"pi-projectFacet","data-selected":a==="overview"||void 0,onClick:()=>t(w),children:s.jsx("span",{children:"Overview"})}),s.jsxs("button",{type:"button",className:"pi-projectFacet","data-selected":a==="sessions"||void 0,onClick:()=>t({...w,indexView:"sessions"}),children:[s.jsx("span",{children:"Sessions"}),s.jsx("b",{children:o?.sessionCount??0})]}),v?s.jsxs("button",{type:"button",className:"pi-projectFacet","data-selected":a==="agents"||void 0,onClick:()=>t({...w,indexView:"agents"}),children:[s.jsx("span",{children:"Agents"}),s.jsx("b",{children:o?.agentCount??c.length})]}):null,s.jsxs("button",{type:"button",className:"pi-projectFacet",title:"Open worktrees in Repos",onClick:()=>t({view:"repos",...h?{root:h}:{},...y}),children:[s.jsx("span",{children:"Worktrees"}),s.jsx("b",{children:L}),s.jsx(ue,{className:"pi-projectFacetOut",size:11,strokeWidth:2,"aria-hidden":!0})]}),s.jsxs("button",{type:"button",className:"pi-projectFacet",disabled:!h,title:h?"Open this project's AGENTS.md":"No project root known",onClick:()=>t({view:"code",project:i,path:"AGENTS.md"}),children:[s.jsx("span",{children:"Rules"}),s.jsx("b",{children:h?"set":"—"}),s.jsx(ue,{className:"pi-projectFacetOut",size:11,strokeWidth:2,"aria-hidden":!0})]})]})]})}function Ts(e,t,i,n){const a=[];return t>0&&a.push(s.jsxs("b",{children:[t," active"]},"w")),e>0&&a.push(s.jsxs("b",{children:[e," needs you"]},"n")),a.push(s.jsxs("span",{children:[i," agent",i===1?"":"s"]},"a")),a.push(s.jsxs("span",{children:[n," session",n===1?"":"s"]},"s")),a.reduce((r,o,u)=>(u>0&&r.push(s.jsx("span",{children:" · "},`sep${u}`)),r.push(o),r),[])}function ve(e){if(e.length<=18)return e;const t=e.match(/^([0-9a-f]{8})-[0-9a-f-]{27,}$/iu);return t?t[1]:`${e.slice(0,10)}…${e.slice(-5)}`}function Ls(e,t){return`${t?0:e.projects.length} tracked`}function Ps({route:e,navigate:t,projects:i}){const{onboarding:n,refreshOnboarding:a,reload:r}=ze(),o=Ms(n?.defaultHarness),[u,c]=m.useState(""),[j,h]=m.useState(""),[v,y]=m.useState(o),[w,I]=m.useState(!1),[L,k]=m.useState(null),[P,F]=m.useState(null),[M,B]=m.useState(null);m.useEffect(()=>{y(o)},[o]);const A=m.useMemo(()=>Es(i),[i]),S=m.useMemo(()=>Is(A,u),[u,A]),$=m.useMemo(()=>A.find(d=>d.slug===j)??he(A,u),[u,A,j]),R=u.trim(),T=Ws(R)&&!he(A,R),l=$??(!T&&R?S[0]??null:null),p=l?"Open project":T?"Create project":"Find project",g=!!(l||T||R);m.useEffect(()=>{j&&(A.some(d=>d.slug===j)||h(""))},[A,j]),m.useEffect(()=>{if(!M)return;const d=A.find(E=>Fs(E,M));d&&(B(null),t(me(e,d.slug)))},[M,t,A,e]);const f=d=>{h(d.slug),c(d.title),k(null),F(null)},x=d=>{t(me(e,d.slug))},b=async d=>{I(!0),k(null),F(null);try{await Ee("/api/onboarding/project",{method:"POST",body:JSON.stringify({contextRoot:d,sourceRoots:[d],defaultHarness:v})}),B(d),F("Project created. Refreshing inventory."),h(""),c(""),Qe(),await Promise.all([a(),r()])}catch(E){k(E instanceof Error?E.message:"Could not create project.")}finally{I(!1)}},D=d=>{if(d.preventDefault(),!w){if(l){x(l);return}if(T){b(R);return}if(R){k("No project matches that search. Paste a repo path to create one.");return}k("Choose a project or paste a repo path.")}};return s.jsxs("div",{className:"pi-zero",children:[s.jsxs("div",{className:"pi-zeroHead",children:[s.jsxs("span",{className:"pi-zeroKicker",children:[s.jsx(os,{size:13,strokeWidth:1.9,"aria-hidden":!0}),"Projects"]}),s.jsx("h2",{children:"Pick a project to start."})]}),s.jsxs("form",{className:"pi-zeroComposer",onSubmit:D,children:[s.jsxs("div",{className:"pi-zeroBar",children:[s.jsxs("label",{className:"pi-zeroSelect",children:[s.jsx(as,{size:13,strokeWidth:1.8,"aria-hidden":!0}),s.jsxs("select",{value:j,"aria-label":"Choose project",onChange:d=>{const E=A.find(O=>O.slug===d.currentTarget.value);E?f(E):h("")},children:[s.jsx("option",{value:"",children:"Choose project"}),A.slice(0,80).map(d=>s.jsx("option",{value:d.slug,children:d.title},d.slug))]})]}),s.jsx("div",{className:"pi-zeroHarness",role:"group","aria-label":"Default harness",children:["claude","codex"].map(d=>s.jsx("button",{type:"button","data-on":v===d||void 0,onClick:()=>y(d),children:d==="claude"?"Claude":"Codex"},d))})]}),s.jsxs("div",{className:"pi-zeroInputRow",children:[s.jsx("textarea",{value:u,rows:2,placeholder:"Find project or paste /path/to/repo","aria-label":"Find or create project",onChange:d=>{c(d.currentTarget.value),h(""),k(null),F(null)},onKeyDown:d=>{d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),d.currentTarget.form?.requestSubmit())}}),s.jsxs("button",{type:"submit",className:"pi-zeroSend",disabled:w||!g,title:p,children:[s.jsx(rs,{size:15,strokeWidth:2,"aria-hidden":!0}),s.jsx("span",{children:w?"Working":p})]})]}),S.length>0?s.jsx("div",{className:"pi-zeroMatches","aria-label":"Matching projects",children:S.map(d=>s.jsxs("button",{type:"button",className:"pi-zeroMatch","data-selected":$?.slug===d.slug||void 0,onClick:()=>f(d),onDoubleClick:()=>x(d),children:[s.jsxs("span",{className:"pi-zeroMatchMain",children:[s.jsxs("span",{className:"pi-zeroMatchTitle",children:["/",d.title]}),s.jsx("span",{className:"pi-zeroMatchRoot",title:d.root??void 0,children:d.root?V(d.root):d.slug})]}),s.jsx("span",{className:"pi-zeroMatchMeta",children:Ds(d)})]},d.slug))}):R?s.jsx("div",{className:"pi-zeroEmpty",children:"No project matches."}):null,L?s.jsx("div",{className:"pi-zeroError",children:L}):null,P?s.jsx("div",{className:"pi-zeroStatus",children:P}):null]})]})}function Ms(e){return e==="codex"?"codex":"claude"}function me(e,t){return{view:"agents-v2",projectSlug:t,...e.showEphemeral?{showEphemeral:!0}:{},...e.machineId?{machineId:e.machineId}:{}}}function Es(e){return e.map(t=>({slug:t.slug,title:t.title,root:t.root,agentCount:t.agentCount,sessionCount:t.sessionCount,lastActivityAt:t.lastActivityAt})).sort((t,i)=>i.lastActivityAt-t.lastActivityAt||i.agentCount-t.agentCount||i.sessionCount-t.sessionCount||t.title.localeCompare(i.title))}function Is(e,t){const i=H(t);return i?e.map(n=>({option:n,score:$s(n,i)})).filter(n=>n.score!==null).sort((n,a)=>n.score-a.score||a.option.lastActivityAt-n.option.lastActivityAt||n.option.title.localeCompare(a.option.title)).slice(0,6).map(n=>n.option):e.slice(0,6)}function he(e,t){const i=H(t);return i?e.find(n=>{const a=H(n.root??""),r=H(n.root?J(n.root):"");return H(n.title)===i||H(n.slug)===i||a===i||r===i||H(n.root?V(n.root):"")===i})??null:null}function $s(e,t){const i=H(e.title),n=H(e.slug),a=H(e.root??""),r=H(e.root?J(e.root):"");return i===t||n===t||a===t||r===t?0:i.startsWith(t)||n.startsWith(t)||r.startsWith(t)?1:i.includes(t)||n.includes(t)||r.includes(t)?2:a.includes(t)?3:null}function H(e){return e.trim().toLowerCase().replace(/^~(?=\/)/u,"").replace(/\s+/g," ")}function Ws(e){const t=e.trim();return/^(~\/|\/|\.{1,2}\/)/u.test(t)||t.includes("/")}function Fs(e,t){const i=H(t);return i?[e.root??"",e.root?V(e.root):"",e.root?J(e.root):"",e.slug,e.title].map(H).some(a=>a===i||a.endsWith(i)):!1}function Ds(e){return[fe(e.agentCount,"agent"),fe(e.sessionCount,"session"),e.lastActivityAt?_(e.lastActivityAt):null].filter(Boolean).join(" · ")}function fe(e,t){return`${e} ${t}${e===1?"":"s"}`}function Bs(e,t){return Je(e,t)}function je(e){return/^native:process:/iu.test(e??"")}function Os(e){return e.startsWith("/")||e.startsWith("~/")||e.includes("/")&&/\.(jsonl?|events)$/i.test(e)}function we(e,t,i){const n=e?.trim()??"";return!n||Os(n)?t:n}function zs({session:e,sessionRef:t,threads:i,lookup:n,route:a,navigate:r,nowMs:o}){const[u,c]=m.useState(null),j=e?.agentName??a.selectedAgentId??a.agentId??"Session",h=e?.harness??"session",v=n?.kind==="observe"?n.observe.data:null,y=v?.metadata?.session,w=e?.lastActivityAt??n?.session?.lastMessageAt??null,[I,L,k]=m.useMemo(()=>[oe(v),ke(v,w),Vs(v,w)],[v,w]),P=y?.gitBranch??n?.session?.currentBranch??e?.branch??null,F=y?.model??null,M=y?.turnCount??v?.metadata?.usage?.assistantMessages??(n?.kind==="conversation"?n.session.messageCount:null),B=L?_(L,o):e?.lastActivityAt?_(e.lastActivityAt,o):"—",A=e?.working?`live · last ${B}`:B!=="—"?`last ${B}`:"trace resolving",S=we(e?.work,j),$=ve(t),R=n?.session??null,T=n?.kind==="observe"?n.observe.agentId??R?.agentId??e?.agentId:R?.agentId??e?.agentId,l=n?.kind==="observe"?n.observe.sessionId:R?.harnessSessionId,p=[j,h,F,P,I?`started ${We(I)}`:null,k,M!=null?`turn ${N(M)}`:null,$].filter(x=>!!x&&x!=="—");m.useEffect(()=>{let x=!0;return c(null),!T&&!l&&!t?()=>{x=!1}:(Oe({includeDiscovered:!0}).then(b=>{x&&c(ps(b,{agentId:T,sessionRefs:[t,l,e?.sessionId]}))}).catch(()=>{x&&c(null)}),()=>{x=!1})},[e?.sessionId,t,T,l]);const g=()=>{u&&He(r,{view:"terminal",terminalSessionId:u.terminalSessionId,terminalSurfaceKey:u.terminalSurfaceKey,mode:"takeover"},{returnTo:a})},f=u?ms(u,"takeover"):null;return s.jsxs("section",{className:"pi-sessionOverview","aria-label":"Session overview",children:[s.jsxs("section",{className:"pi-sessionMasthead","data-state":e?.working?"working":"recent",children:[s.jsxs("div",{className:"pi-sessionMastTop",children:[s.jsx("span",{className:"pi-sessionCrumb",children:"Sessions ▸"}),s.jsx("h2",{className:"pi-sessionHeadline",title:S,children:S}),s.jsxs("span",{className:"pi-sessionState",children:[e?.working?s.jsx("span",{className:"pi-sessionLiveDot","aria-hidden":!0}):null,A]})]}),s.jsx("div",{className:"pi-sessionMeta",children:p.map((x,b)=>s.jsxs("span",{title:b===p.length-1?t:x,children:[b===1?s.jsx(ge,{harness:h,size:11}):null,x]},`${x}:${b}`))}),u?s.jsxs("div",{className:"pi-sessionTerminalActions","aria-label":"tmux terminal actions",children:[s.jsxs("span",{className:"pi-sessionTerminalName",title:u.sessionName,children:["tmux · ",u.sessionName]}),s.jsx("button",{type:"button",onClick:g,children:"Open in web terminal"}),f?s.jsxs("a",{href:f,children:["Open in native terminal",s.jsx(ls,{size:11,strokeWidth:1.8,"aria-hidden":!0})]}):null]}):null]}),s.jsx(Qs,{lookup:n,session:e,threads:i,nowMs:o,route:a,navigate:r})]})}function Hs({session:e,sessionRef:t,threads:i,route:n,navigate:a,nowMs:r}){const[o,u]=m.useState(null);return m.useEffect(()=>{u(null)},[t]),s.jsx("main",{className:"pi-sessionDetail","aria-label":"Selected session",children:s.jsxs("div",{className:"pi-sessionContent",children:[s.jsx(zs,{session:e,sessionRef:t,threads:i,lookup:o,route:n,navigate:a,nowMs:r}),s.jsx(qe,{sessionRef:t,navigate:a,showObserveRail:!1,onLookup:u})]})})}function N(e){return typeof e!="number"||!Number.isFinite(e)?"—":Math.abs(e)<1e3?e.toLocaleString("en-US"):Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}function Ne(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?"—":`${N(e)} tok`}function G(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:null}function qs(e){const t=G(e?.contextInputTokens),i=G(e?.contextWindowTokens);return t===null||i===null?null:Math.max(0,Math.min(1,t/i))}function Gs(e){const t=[{key:"input",label:"input",value:G(e?.inputTokens)??0},{key:"cache-read",label:"cache rd",value:G(e?.cacheReadInputTokens)??0},{key:"cache-write",label:"cache wr",value:G(e?.cacheCreationInputTokens)??0},{key:"output",label:"output",value:G(e?.outputTokens)??0},{key:"reasoning",label:"reasoning",value:G(e?.reasoningOutputTokens)??0}].filter(r=>r.value>0),i=t.reduce((r,o)=>r+o.value,0),n=t.filter(r=>r.key!=="reasoning"||i>0&&r.value/i>=.02);if(n.length>0)return n;const a=G(e?.totalTokens);return a!==null?[{key:"total",label:"total",value:a}]:[]}function _s({buckets:e}){const t=e.reduce((i,n)=>i+n.value,0);return e.length===0?null:s.jsxs("div",{className:"pi-sessionGlanceTokens","aria-label":"Token usage",children:[s.jsx("div",{className:"pi-sessionGlanceTokenBars",children:e.map(i=>s.jsx("span",{className:"pi-sessionGlanceTokenSeg","data-kind":i.key,style:{flexGrow:t>0?Math.max(.035,i.value/t):1,flexBasis:0},title:`${i.label}: ${Ne(i.value)}`},i.key))}),s.jsx("div",{className:"pi-sessionGlanceTokenLegend",children:e.map(i=>s.jsxs("span",{children:[s.jsx("i",{"data-kind":i.key,"aria-hidden":!0}),i.label," ",s.jsx("b",{children:N(i.value)})]},i.key))})]})}function oe(e){const t=ee(e?.metadata?.session?.sessionStart);if(t!==null)return t;for(const i of e?.events??[]){const n=ee(i.at);if(n!==null)return n}return null}function ke(e,t){for(let a=(e?.events.length??0)-1;a>=0;a-=1){const r=ee(e?.events[a]?.at);if(r!==null)return r}const i=oe(e),n=e?.events.at(-1)?.t;return i!==null&&typeof n=="number"&&Number.isFinite(n)?i+n*1e3:ee(t)}function Vs(e,t){const i=oe(e),n=ke(e,t);if(i!==null&&n!==null)return ie(Math.max(0,n-i))||"—";const a=e?.events.at(-1)?.t;return typeof a=="number"&&Number.isFinite(a)&&ie(a*1e3)||"—"}function ie(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"";const t=Math.floor(e/1e3);if(t<60)return`${t}s`;const i=Math.floor(t/60);if(i<60)return`${i}m`;const n=Math.floor(i/60),a=i%60;if(n<48)return a>0?`${n}h ${a}m`:`${n}h`;const r=Math.floor(n/24),o=n%24;return o>0?`${r}d ${o}h`:`${r}d`}function Ks(e){const t=e?.metadata?.topology;if(!t)return null;const i=t.agents.length,n=t.agents.filter(u=>u.role!=="lead").length,a=t.groups.filter(u=>u.kind==="workflow").length,r=t.tasks.length,o=[];return n>0?o.push(`${n} worker${n===1?"":"s"}`):i>0&&o.push(`${i} agent${i===1?"":"s"}`),a>0&&o.push(`${a} workflow${a===1?"":"s"}`),r>0&&o.push(`${r} task${r===1?"":"s"}`),o.length?o.join(" · "):null}function Us(e){return[...e].sort((t,i)=>xe(i.state)-xe(t.state)||i.touches-t.touches||i.lastT-t.lastT||t.path.localeCompare(i.path)).slice(0,5).map(t=>({path:t.path,kind:t.state,detail:[t.touches>1?`${N(t.touches)} touches`:"1 touch",t.lastT>0?`last ${ie(t.lastT*1e3)}`:null].filter(Boolean).join(" · ")}))}function xe(e){switch(e){case"created":return 3;case"modified":return 2;case"read":return 1}}function Xs(e){const t=new Map;for(const i of e){if(i.kind!=="tool")continue;const n=Ys(i.tool||i.text),a=t.get(n)??{count:0,samples:[]};a.count+=1;const r=i.arg||i.detail||i.text;r&&a.samples.length<2&&a.samples.push(r),t.set(n,a)}return[...t.entries()].sort((i,n)=>n[1].count-i[1].count||i[0].localeCompare(n[0])).slice(0,5).map(([i,n])=>({name:i,count:n.count,detail:n.samples.join(" · ")||`${N(n.count)} uses`}))}function Ys(e){return(e.trim().split(/\s+/u)[0]??"tool").replace(/[_-]+/gu," ").toLowerCase()}function Zs({usage:e,contextPct:t,topology:i,workspace:n,projectRoot:a,branch:r}){const o=[];return t!==null&&o.push({label:"Context",value:`${t}%`,detail:t>=80?"approaching limit":"within window",tone:t>=80?"warn":void 0}),(e?.serviceTier||e?.planType||e?.speed)&&o.push({label:"Budget",value:e.serviceTier??e.planType??e.speed??"usage",detail:[e.planType,e.speed].filter(Boolean).join(" · ")||"provider metadata"}),n&&a&&n!==a?o.push({label:"Worktree",value:V(n),detail:"session cwd differs from project root",tone:"warn"}):r&&o.push({label:"Repo",value:r,detail:"session branch"}),i&&o.push({label:"Topology",value:i,detail:"observed harness hierarchy"}),(e?.webSearchRequests||e?.webFetchRequests)&&o.push({label:"Network",value:`${N((e.webSearchRequests??0)+(e.webFetchRequests??0))} req`,detail:[e.webSearchRequests?`${N(e.webSearchRequests)} search`:null,e.webFetchRequests?`${N(e.webFetchRequests)} fetch`:null].filter(Boolean).join(" · ")}),o.slice(0,4)}function Js({session:e,threads:t,nowMs:i}){return t.filter(n=>n.kind==="agent").filter(n=>n.agentId!==e?.agentId||n.work!==e?.work).sort((n,a)=>Number(a.working)-Number(n.working)||a.lastActivityAt-n.lastActivityAt).slice(0,4).map(n=>{const a=!!(e?.branch&&n.branch===e.branch),r=!!(e?.agentName&&n.agentName===e.agentName);return{thread:n,title:we(n.work,n.agentName,n.id),channel:n.conversationId?ve(n.conversationId):n.agentName,state:n.needs?"needs":n.working?"working":"recent",time:n.lastActivityAt?_(n.lastActivityAt,i):"—",participants:n.agentName,why:a?"same branch":r?"same agent":n.working?"active in project":"project thread"}})}function Y({label:e,value:t,title:i,detail:n}){return s.jsxs("span",{className:"pi-sessionGlanceField",title:i,children:[s.jsx("span",{children:e}),s.jsx("b",{children:t}),n?s.jsx("small",{children:n}):null]})}function Qs({lookup:e,session:t,threads:i,nowMs:n,route:a,navigate:r}){const[o,u]=m.useState(!1),c=m.useMemo(()=>{const T=e?.kind==="observe"?e.observe.data:null,l=T?.metadata?.session,p=T?.metadata?.usage,g=T?.events??[],f=T?.files??[],x=l?.turnCount??p?.assistantMessages??(e?.kind==="conversation"?e.session.messageCount:null),b=g.filter(U=>U.kind==="tool").length,D=f.filter(U=>U.state==="created").length,d=f.filter(U=>U.state==="modified").length,E=f.filter(U=>U.state==="read").length,O=D+d,W=qs(p),z=W!==null?Math.round(W*100):null,C=l?.cwd??e?.session?.workspaceRoot??t?.projectRoot??null,K=l?.gitBranch??e?.session?.currentBranch??t?.branch??null,q=Ks(T),se=Ne(p?.totalTokens??(typeof p?.inputTokens=="number"||typeof p?.outputTokens=="number"?(p?.inputTokens??0)+(p?.outputTokens??0):null)),ye=Gs(p),Ce=O>0?[d>0?`${N(d)} mod`:null,D>0?`${N(D)} new`:null].filter(Boolean).join(" · "):E>0?"read-only":"no file trace",Ae=f.length>0?`${N(f.length)} touched`:"—",Re=Us(f),Te=Xs(g),Le=Zs({usage:p,contextPct:z,topology:q,workspace:C,projectRoot:t?.projectRoot,branch:K}),Pe=Js({session:t,threads:i,nowMs:n});return{turnCount:x,toolCount:b,editCount:O,fileCountLabel:Ae,fileStateLabel:Ce,workspace:C,contextPct:z,showContext:z!==null,contextWarn:z!==null&&z>=80,tokenTotal:se,buckets:ye,fileSignals:Re,toolSignals:Te,contextSignals:Le,threadSignals:Pe,projectRoot:t?.projectRoot??null}},[e,t,i,n]),{turnCount:j,toolCount:h,editCount:v,fileCountLabel:y,fileStateLabel:w,workspace:I,contextPct:L,showContext:k,contextWarn:P,tokenTotal:F,buckets:M,fileSignals:B,toolSignals:A,contextSignals:S,threadSignals:$,projectRoot:R}=c;return s.jsxs("section",{className:"pi-sessionGlance","aria-label":"Session glance",children:[s.jsxs("div",{className:"pi-sessionVitals","aria-label":"Session vitals",children:[s.jsx(Y,{label:"Turns",value:N(j)}),s.jsx(Y,{label:"Tools",value:N(h)}),s.jsx(Y,{label:"Edits",value:N(v)}),s.jsx(Y,{label:"Files",value:y,detail:w!=="no file trace"?w:null}),I&&R&&I!==R?s.jsx(Y,{label:"Worktree",value:V(I),title:I}):null,k?s.jsxs("span",{className:"pi-sessionContextVital",title:"Context window usage",children:[s.jsx("span",{children:"Ctx"}),s.jsx("span",{className:"pi-sessionContextBar","aria-hidden":!0,children:s.jsx("span",{"data-warn":P||void 0,style:{width:`${L}%`}})}),s.jsxs("b",{"data-warn":P||void 0,children:[L,"%"]})]}):null,M.length>0?s.jsxs("button",{type:"button",className:"pi-sessionTokenToggle","aria-expanded":o,onClick:()=>u(T=>!T),children:[s.jsx("span",{children:"Tokens"}),s.jsx("b",{children:F}),s.jsx("i",{children:o?"▾":"▸"})]}):null]}),o&&M.length>0?s.jsx(_s,{buckets:M}):null,s.jsx(et,{files:B,tools:A,context:S,threads:$,route:a,navigate:r})]})}function et({files:e,tools:t,context:i,threads:n,route:a,navigate:r}){return s.jsxs("section",{className:"pi-sessionSignals","aria-label":"Session work signals",children:[s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsxs("div",{className:"pi-sessionSignalHead",children:[s.jsx("span",{children:"Files"}),s.jsx("b",{children:N(e.length)})]}),e.length>0?s.jsx("div",{className:"pi-sessionFileList",children:e.map(o=>s.jsxs("div",{className:"pi-sessionFileRow",children:[s.jsx("span",{"data-kind":o.kind,children:o.kind}),s.jsx("code",{title:o.path,children:o.path}),s.jsx("small",{children:o.detail})]},`${o.kind}:${o.path}`))}):s.jsx("span",{className:"pi-sessionSignalEmpty",children:"No file trace yet."})]}),s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsx("div",{className:"pi-sessionSignalHead",children:s.jsx("span",{children:"Tools · Context · Topology"})}),t.length>0?s.jsx("div",{className:"pi-sessionToolGrid",children:t.map(o=>s.jsxs("span",{className:"pi-sessionToolPill",title:o.detail,children:[s.jsx("b",{children:o.name}),s.jsx("em",{children:N(o.count)})]},o.name))}):null,i.length>0?s.jsx("div",{className:"pi-sessionContextList",children:i.map(o=>s.jsxs("div",{className:"pi-sessionContextRow",children:[s.jsx("span",{children:o.label}),s.jsx("b",{"data-tone":o.tone,children:o.value}),s.jsx("small",{children:o.detail})]},`${o.label}:${o.value}`))}):t.length===0?s.jsx("span",{className:"pi-sessionSignalEmpty",children:"Trace metadata is still resolving."}):null]}),s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsxs("div",{className:"pi-sessionSignalHead",children:[s.jsx("span",{children:"Recent threads"}),s.jsx("b",{children:N(n.length)})]}),n.length>0?s.jsx("div",{className:"pi-sessionThreadList",children:n.map(o=>s.jsxs("button",{type:"button",className:"pi-sessionThreadRow",onClick:()=>r(be(o.thread,a)),children:[s.jsx("span",{className:"pi-sessionThreadTitle",title:o.title,children:o.title}),s.jsxs("span",{className:"pi-sessionThreadMeta",children:[s.jsx("b",{children:o.channel}),s.jsx("em",{children:o.state}),s.jsx("small",{children:o.time})]}),s.jsxs("span",{className:"pi-sessionThreadWhy",children:[o.participants," · ",o.why]})]},o.thread.id))}):s.jsx("span",{className:"pi-sessionSignalEmpty",children:"No recent agent threads."})]})]})}function ne(e){return!e||e==="—"||/^\d+\s+branches$/iu.test(e)?null:e}function Se(e,t,i,n){const a=new Map,r=(u,c)=>{const j=u??e,h=ne(c),v=j??"project",y=a.get(v);if(y)return!y.branch&&h&&(y.branch=h),y;const w={key:v,root:j,branch:h,sessions:0,work:0,moving:0,lastActivityAt:0,repoWatch:null};return a.set(v,w),w};for(const u of t){const c=r(u.root,u.branch);u.working&&(c.moving+=1),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}const o=(u,c)=>{const j=u??e,h=a.get(j??"project");return h||(t.length>0?a.get(e??"")??a.values().next().value:r(u,c))};for(const u of i){const c=o(u.workspaceRoot??u.projectRoot,u.branch);c.sessions+=1,u.working&&(c.moving+=1,c.branch=ne(u.branch)??c.branch),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}for(const u of n){const c=o(u.workspaceRoot??u.projectRoot,u.branch);c.work+=1,u.working&&(c.moving+=1,c.branch=ne(u.branch)??c.branch),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}return a.size===0&&r(e,null),[...a.values()].sort((u,c)=>c.moving-u.moving||c.lastActivityAt-u.lastActivityAt||(u.root??"").localeCompare(c.root??""))}function st(e){return e.worktrees.map(t=>({key:t.id,root:t.path,branch:t.branch.name,sessions:t.sessions.length,work:t.agents.length,moving:t.agents.some($e)?1:0,lastActivityAt:t.lastCommitAt??0,repoWatch:t}))}function tt({pullRequests:e,loading:t,warnings:i,onRefresh:n,nowMs:a}){return s.jsxs("section",{className:"pi-projectPullRequests","aria-label":"Open pull requests",children:[s.jsxs("div",{className:"pi-projectPullRequestsHead",children:[s.jsx("span",{children:"Open PRs"}),s.jsx("b",{children:t&&e.length===0?"…":N(e.length)})]}),e.length>0?s.jsx("div",{className:"pi-projectPullRequestList",children:e.slice(0,6).map(r=>{const o=r.updatedAt?Date.parse(r.updatedAt):Number.NaN;return s.jsxs("a",{className:"pi-projectPullRequest",href:r.url,target:"_blank",rel:"noreferrer",children:[s.jsxs("span",{className:"pi-projectPullRequestNumber",children:["#",r.number]}),s.jsx("b",{title:r.title,children:r.title}),s.jsxs("span",{className:"pi-projectPullRequestBranch",title:`${r.headRefName} → ${r.baseRefName}`,children:[r.headRefName," → ",r.baseRefName]}),s.jsx("em",{children:r.isDraft?"draft":"open"}),s.jsx("time",{children:Number.isFinite(o)?_(o,a):"updated"})]},r.id)})}):s.jsxs("div",{className:"pi-projectPullRequestState","data-loading":t||void 0,children:[s.jsx("span",{children:t?"Checking GitHub for open pull requests…":i[0]??"No open pull requests for this repository."}),!t&&i.length>0?s.jsx("button",{type:"button",onClick:n,children:"Retry"}):null]})]})}function nt(e){const t=new Set;let i=0,n=0;const a=[];for(const r of e.layers){r.files.length>0&&a.push(r.kind);for(const o of r.files)t.add(o.newPath??o.oldPath??"unknown"),i+=o.additions??0,n+=o.deletions??0}return{additions:i,deletions:n,files:[...t],layers:a}}function it({additions:e,deletions:t}){return e+t===0?s.jsx("span",{className:"pi-projectWorktreeChurnBar","data-empty":!0}):s.jsxs("span",{className:"pi-projectWorktreeChurnBar","aria-label":`${e} additions and ${t} deletions`,children:[e>0?s.jsx("i",{"data-add":!0,style:{flexGrow:e}}):null,t>0?s.jsx("i",{"data-delete":!0,style:{flexGrow:t}}):null]})}function ot({project:e,repoProject:t,repoLoading:i,repoError:n,diffSnapshots:a,diffErrors:r,diffLoading:o,pullRequests:u,pullRequestsLoading:c,pullRequestWarnings:j,onRepositoryRefresh:h,threads:v,sessions:y,route:w,navigate:I,nowMs:L}){const k=e?.root??y[0]?.projectRoot??v[0]?.projectRoot??null,P=v.length,F=e?.sessionCount??y.length,M=e?.agentCount??0,B=Math.max(e?.lastActivityAt??0,y[0]?.lastActivityAt??0,v[0]?.lastActivityAt??0),A=e?.branches.length?e.branches:[...new Set([...y.map(l=>l.branch),...v.map(l=>l.branch)].filter(l=>!!l&&l!=="—"&&l!=="main"))],S=t?.worktrees.length?st(t):Se(k,e?.worktrees??[],y,v),$=S.find(l=>l.moving>0&&l.branch)?.branch??S.find(l=>l.branch)?.branch??A[0]??"main",R=k?J(k):e?.title??w.projectSlug??"project",T=S.find(l=>l.moving>0)?.key??S.find(l=>l.branch===$)?.key??S[0]?.key;return s.jsxs("main",{className:"pi-projectOverview","aria-label":"Project overview",children:[s.jsxs("section",{className:"pi-projectSnapshot","aria-label":"Project snapshot",children:[s.jsxs("div",{className:"pi-projectRepository",children:[s.jsxs("div",{className:"pi-projectRepositoryHead",children:[s.jsx("span",{children:"Repository"}),s.jsx(cs,{size:13,strokeWidth:1.7,"aria-hidden":!0})]}),s.jsxs("div",{className:"pi-projectRepositoryIdentity",children:[s.jsx("b",{children:R}),s.jsx("span",{title:k??void 0,children:k?V(k):w.projectSlug??"project"})]}),s.jsxs("div",{className:"pi-projectRepositoryCurrent",children:[S.some(l=>l.moving>0)?s.jsx("span",{className:"pi-projectRepositoryPulse","aria-label":"Active now"}):null,s.jsxs("span",{children:[s.jsx("small",{children:"Current branch"}),s.jsx("b",{title:$,children:$})]}),s.jsx("time",{children:B?_(B,L):"no activity"})]}),F>0||M>0||P>0?s.jsxs("div",{className:"pi-projectRepositoryStats","aria-label":"Repository activity",children:[F>0?s.jsxs("span",{children:[s.jsx("b",{children:N(F)})," ",F===1?"session":"sessions"]}):null,M>0?s.jsxs("span",{children:[s.jsx("b",{children:N(M)})," ",M===1?"agent":"agents"]}):null,P>0?s.jsxs("span",{children:[s.jsx("b",{children:N(P)})," ",P===1?"thread":"threads"]}):null]}):null]}),s.jsxs("div",{className:"pi-projectWorktrees",children:[s.jsxs("div",{className:"pi-projectWorktreesHead",children:[s.jsx("span",{children:"Worktree preview"}),s.jsx("b",{children:N(S.length)})]}),s.jsx("div",{className:"pi-projectWorktreeList",children:S.slice(0,6).map(l=>{const p=l.repoWatch,g=l.root?a.get(l.root)??null:null,f=g?nt(g):null,x=p?Ie(p):null,b=f?.additions??x?.add??0,D=f?.deletions??x?.del??0,d=f?.files.length??(p?Math.max(p.status.changedFiles,x?.files??0):0),E=!!(d>0||p&&(!p.status.clean||p.branch.ahead>0||p.branch.behind>0)),O=u.filter(C=>C.headRefName===l.branch),W=!!(l.root&&o&&!g&&!r.has(l.root)),z=l.root?r.get(l.root)??null:"No worktree path is available.";return s.jsxs("article",{className:"pi-projectWorktree","data-active":l.key===T||void 0,"data-stranded":E||void 0,children:[s.jsx("span",{className:"pi-projectWorktreeTop",children:s.jsx("b",{title:l.branch??"main",children:l.branch??"main"})}),s.jsx("em",{title:l.root??void 0,children:l.root?V(l.root):"workspace"}),g||p?s.jsxs("div",{className:"pi-projectWorktreeDiff","data-clean":!E||void 0,children:[E?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"pi-projectWorktreeChurn",children:[s.jsxs("b",{className:"pi-projectWorktreeAdd",children:["+",N(b)]}),s.jsxs("b",{className:"pi-projectWorktreeDel",children:["−",N(D)]}),s.jsx(it,{additions:b,deletions:D})]}),s.jsxs("small",{children:[N(d)," changed"]})]}):s.jsx("small",{children:"clean"}),l.root?s.jsx("button",{type:"button",className:"pi-projectWorktreeOpenDiff",onClick:()=>I({view:"repo-diff",path:l.root}),children:"View diff"}):null]}):s.jsxs("div",{className:"pi-projectWorktreeDiff","data-pending":!0,children:[s.jsx("small",{children:W||i?"Reading worktree diff…":z??n??"No diff data returned."}),!W&&!i?s.jsx("button",{type:"button",className:"pi-projectWorktreeOpenDiff",onClick:h,children:"Retry"}):null]}),f&&f.files.length>0?s.jsxs("span",{className:"pi-projectWorktreeFiles",title:f.files.join(`
1
+ import{r as m,j as s}from"./index-BI9AljSD.js";import{A as Me}from"./AgentAvatar-B7c0egdP.js";import{H as ge}from"./HarnessMark-DAaWPiT_.js";import{a as Ee}from"./api-Co9aQ2Jw.js";import{r as Ie,i as $e}from"./ui-LM8pS8qE.js";import{t as _,d as We,n as ee}from"./time-Dhsh_2EG.js";import{p as Fe,l as De,s as Be,f as Oe}from"./terminal-sessions-BQ6t92tJ.js";import{u as ze}from"./Provider-Bu-C8Hxc.js";import{o as He}from"./openContent-C6XO6kr5.js";import{p as J}from"./NewChatComposer-C_1op4dH.js";import{SessionRefScreen as qe}from"./SessionRefScreen-C8BiRVPx.js";import{P as Ge,C as _e}from"./CrewWorkspaces-Bz2Dcnt4.js";import{r as X,s as V}from"./project-overview-helpers-BQTc_Ous.js";import{u as Ve,r as Ke,c as Z,d as ae,g as Ue,s as re,a as le,e as Xe,h as be,i as Ye,j as Ze,f as Je,k as Qe}from"./projects-inbox-CLek3QaG.js";import{g as es,a as ss,f as ce,b as ts}from"./api-HFH8wFyb.js";import{f as ns}from"./cache-CeWH_KzJ.js";import{A as ue}from"./arrow-up-right-CY0Vw_67.js";import{C as is}from"./chevron-right-CnZRSd-V.js";import{F as os}from"./AddProjectForm-r_1tVuWk.js";import{S as as}from"./search-DmFM_9jm.js";import{A as rs}from"./arrow-right-BBsrogWf.js";import{E as ls}from"./external-link-C_nxk0MJ.js";import{F as cs}from"./DocumentFocusViewer-DFFE85Tq.js";import"./SpriteAvatar-56DTXxSV.js";import"./colors-BtO5_zlx.js";import"./CrewAvatar-CXJHLNVM.js";import"./perf-PX8Rx0EP.js";import"./router-DTtux5sP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./sse-DDHEHUgz.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./TextDocumentSurface-BeSwe3Yl.js";import"./file-text--hfhwZH1.js";import"./createLucideIcon-DthwWQIg.js";import"./code-xml-CvKBY3KA.js";import"./arrow-left-DHfdXJVZ.js";import"./scout-voice-BZKsdquE.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-e6yGeorb.js";import"./chunk-HRAB3GC3-DLNT8aOo.js";import"./text-Faa3ZStB.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-B2W9DPG5.js";import"./conversation-model-QsJVfSeG.js";import"./index-DfsTyYDx.js";import"./NewChatOrigin-D7hwp6dm.js";import"./x-DfRJbqrh.js";import"./chevron-down-C475vltS.js";import"./tail-events-BdUrO0kb.js";import"./BackToPicker-Cto0Ioz9.js";import"./ConversationScreen-CXAHQwQ3.js";import"./ConversationComposer-H8_hsYSc.js";import"./zap-CIo8msJB.js";import"./message-markup-Cc_O-WdA.js";import"./mentions-DuLQnEcn.js";import"./AgentDetailCard-B_KLcgsP.js";import"./AgentLiveActions-CsQA3pu_.js";import"./terminal-takeover-B6H4llRR.js";import"./eye-FnaaPfja.js";import"./terminal-C3YRPfyz.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-B0ZBhE_E.js";import"./AstronautSuit-Cjjcv6yQ.js";import"./ConversationFeedRows-hlEFlURs.js";import"./ConversationPanels-fMo6Uy1v.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-8WuxLa5l.js";import"./proxy-1BABCaDb.js";import"./activity-CqZafWfx.js";import"./message-circle-B2DoYKDO.js";import"./ConversationStatus-DI5GCiyW.js";import"./check-DbIkldnK.js";import"./sparkles-Cf8gin88.js";import"./SessionObserve-BCehTlO8.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-Bo2Zl-1a.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-BhVsvwkh.js";import"./ObserveTextFlow-BcrGQet8.js";import"./SessionObserveEvidence-Bb6U-dem.js";import"./wrench-DkxnZRlR.js";import"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./mesh-roster-Bc7T4b7z.js";import"./agent-specialization-BtxLN4UR.js";import"./model-IGCUEsMy.js";import"./agents-project-model-UYiamtrU.js";import"./sliders-horizontal-BhHKxsCO.js";import"./message-square-O-Hu9Mk2.js";function de(e){const t=e?.trim();if(!t)return null;const i=t.split(/[\\/]/u).filter(Boolean).at(-1)??t;return i.endsWith(".jsonl")?i.slice(0,-6):i}function us(e){return e.surfaces.filter(t=>t.backend==="tmux")}function ds(e,t){return{terminalSessionId:e.id,terminalSurfaceKey:Be(t),sessionName:t.sessionName}}function ps(e,t){const i=de(t.agentId),n=new Set(t.sessionRefs.map(de).filter(r=>!!r)),a=i?.split(".",1)[0]??null;a?.startsWith("session-")&&n.add(a);for(const r of e){const o=us(r).find(u=>n.has(u.sessionName));if(o)return ds(r,o)}return null}function ms(e,t){const i=Fe(e.terminalSurfaceKey);return i?`scout://terminal?${new URLSearchParams({session:e.terminalSessionId,surface:De(i),mode:t}).toString()}`:null}const hs=1e4,fs=2e4,js=6e4,xs=15e3,gs=45e3,bs=["branch","unstaged","staged"];function te(e){const t=()=>{document.visibilityState==="visible"&&e()};return window.addEventListener("focus",t),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",t)}}function vs(e,t){const i=new Set;for(const n of[e,...t]){const a=n?.trim();a&&i.add(a.replace(/\/+$/u,""))}return[...i].slice(0,6)}function ws(e){return e.replace(/\/+$/u,"").split("/").pop()?.toLocaleLowerCase()??e.toLocaleLowerCase()}function Ns(e,t,i){return e.path===t||i?.worktrees.some(a=>a.path===e.path)?!0:e.repo.split("/").pop()?.toLocaleLowerCase()===(i?.name.toLocaleLowerCase()??ws(t))}function Q(e){return e&&typeof e=="object"&&"name"in e&&e.name==="AbortError"?"The repository scan timed out.":e instanceof Error?e.message:String(e)}function ks(e,t=[]){const i=vs(e,t).join("\0"),n=m.useMemo(()=>i?i.split("\0"):[],[i]),[a,r]=m.useState(()=>es()),[o,u]=m.useState(()=>ss()),[c,j]=m.useState(!!(e&&!X(a,e))),[h,v]=m.useState(!!e),[y,w]=m.useState(!!e),[I,L]=m.useState(null),[k,P]=m.useState(null),[F,M]=m.useState(()=>new Map),[B,A]=m.useState(()=>new Map),[S,$]=m.useState(0),R=m.useRef(null),T=m.useCallback(()=>{R.current=null,$(f=>f+1)},[]);m.useEffect(()=>{if(!e){j(!1),L(null);return}let f=!1,x=!1,b=!0;const D=async()=>{if(x)return;x=!0,f||(j(!0),L(null));let O=null;try{let W=null;const z=S>0&&b;b=!1;try{W=await ce("standard",z,xs)}catch(C){O=Q(C)}if((!W||!X(W,e))&&R.current!==e){R.current=e;try{const C=await ce("expanded",z,gs);X(C,e)&&(W=C)}catch(C){O=Q(C)}}!f&&W&&r(C=>X(W,e)?W:C&&X(C,e)?C:W),!f&&!X(W,e)&&L(O??"Repo Watch did not include this project in its latest scan.")}finally{x=!1,f||j(!1)}};D();const d=window.setInterval(()=>{document.visibilityState==="visible"&&D()},hs),E=te(()=>{D()});return()=>{f=!0,window.clearInterval(d),E()}},[e,S]),m.useEffect(()=>{if(n.length===0){w(!1),A(new Map);return}let f=!1,x=!1,b=!0;const D=async()=>{if(x)return;x=!0,f||w(!0);const O=await Promise.allSettled(n.map(W=>ns(W,[...bs],{force:S>0&&b,tier:"summary"})));if(b=!1,!f){const W=new Map,z=new Map;O.forEach((C,K)=>{const q=n[K];C.status==="fulfilled"?W.set(q,C.value.snapshot):z.set(q,Q(C.reason))}),M(C=>{const K=new Map(C);for(const q of n)K.delete(q);for(const[q,se]of W)K.set(q,se);return K}),A(z),w(!1)}x=!1};D();const d=window.setInterval(()=>{document.visibilityState==="visible"&&D()},fs),E=te(()=>{D()});return()=>{f=!0,window.clearInterval(d),E()}},[n,S]),m.useEffect(()=>{if(n.length===0){v(!1),P(null);return}let f=!1,x=!1;const b=async()=>{if(!x){x=!0;try{const E=await ts(n);f||(u(E),P(null))}catch(E){f||P(Q(E))}finally{x=!1,f||v(!1)}}};v(!0),P(null),b();const D=window.setInterval(()=>{document.visibilityState==="visible"&&b()},js),d=te(()=>{b()});return()=>{f=!0,window.clearInterval(D),d()}},[n,S]);const l=m.useMemo(()=>X(a,e),[e,a]),p=m.useMemo(()=>e?(o?.pullRequests??[]).filter(f=>Ns(f,e,l)):[],[l,e,o]),g=m.useMemo(()=>{const f=o?.paths.some(x=>n.includes(x))?o.warnings:[];return k?[k,...f]:f},[n,k,o]);return{project:l,pullRequests:p,pullRequestsLoading:h,pullRequestWarnings:g,repoLoading:c,repoError:I,diffSnapshots:F,diffErrors:B,diffLoading:y,refresh:T}}const Ss=[];function ys(e,t){return e.thread===t.thread&&e.crossProject===t.crossProject&&e.selected===t.selected&&e.cursor===t.cursor&&e.nowMs===t.nowMs&&e.workLabel===t.workLabel}const Cs=m.memo(function({thread:t,crossProject:i,selected:n,cursor:a,nowMs:r,onSelect:o,onOpen:u,rowRef:c,workLabel:j}){return s.jsxs("button",{ref:c,type:"button",className:"pi-row","data-state":t.group,"data-selected":n||void 0,"data-cursor":a||void 0,onClick:o,onDoubleClick:u,children:[s.jsx("span",{className:"pi-rowDot","aria-hidden":!0}),s.jsxs("span",{className:"pi-rowBody",children:[s.jsx("span",{className:"pi-rowWork",title:t.work,children:j??t.work}),s.jsxs("span",{className:"pi-rowAttr",children:[s.jsx("span",{className:"pi-rowAvatar",children:s.jsx(Me,{agent:{name:t.agentName,harness:t.harness,state:t.working?"in_turn":null},placement:"row",size:22})}),s.jsx("span",{className:"pi-rowAgent",title:t.agentName,children:t.agentName}),s.jsx("span",{className:"pi-rowHmark","aria-hidden":!0,children:s.jsx(ge,{harness:t.harness,size:11})}),i?s.jsxs("span",{className:"pi-rowChip",title:`/${t.projectTitle}`,children:["/",t.projectTitle]}):t.branch?s.jsx("span",{className:"pi-rowBranch",title:t.branch,children:t.branch}):null]})]}),s.jsxs("span",{className:"pi-rowVitals",children:[t.working?s.jsx("span",{className:"pi-rowLiveTag",children:"live"}):null,s.jsx("span",{className:"pi-rowAgo",children:t.lastActivityAt?_(t.lastActivityAt,r):"—"}),t.contextPct!=null?s.jsxs("span",{className:"pi-rowCtx",children:[t.contextPct,"%"]}):null]}),s.jsxs("span",{className:"pi-rowOpen","aria-hidden":!0,children:[s.jsx("span",{children:"Open"}),s.jsx(is,{size:14,strokeWidth:1.8})]})]})},ys);function pe({title:e,detail:t,tone:i="muted"}){return s.jsxs("div",{className:"pi-stateBlock","data-tone":i,role:i==="loading"?"status":"note",children:[s.jsx("span",{className:"pi-statePulse","aria-hidden":!0}),s.jsx("span",{className:"pi-stateTitle",children:e}),t?s.jsx("span",{className:"pi-stateDetail",children:t}):null]})}function As({rows:e=7}){return s.jsxs("div",{className:"pi-loadingRows","aria-hidden":"true",children:[s.jsxs("div",{className:"pi-sectionHead pi-sectionHead--loading",children:[s.jsx("span",{className:"pi-loadingLine pi-loadingLine--label"}),s.jsx("span",{className:"pi-loadingLine pi-loadingLine--count"})]}),Array.from({length:e},(t,i)=>s.jsxs("div",{className:"pi-row pi-row--loading",children:[s.jsx("span",{className:"pi-rowDot"}),s.jsxs("span",{className:"pi-rowBody",children:[s.jsx("span",{className:"pi-loadingLine pi-loadingLine--title"}),s.jsx("span",{className:"pi-loadingLine pi-loadingLine--meta"})]}),s.jsx("span",{className:"pi-rowVitals",children:s.jsx("span",{className:"pi-loadingLine pi-loadingLine--time"})})]},i))]})}function Rs({route:e,navigate:t,slug:i,model:n,mode:a,repoProject:r}){const o=n.projects.find(k=>k.slug===i)??null,c=Z(n.threads,i).filter(k=>k.kind==="agent"),j=o?.title??i,h=o?.root??null,v=(o?.agentCount??c.length)>0,y=e.machineId?{machineId:e.machineId}:{},w={view:"agents-v2",projectSlug:i,...y},I=Ts(o?.needs??0,Math.max(o?.working??0,o?.liveSessionCount??0),o?.agentCount??(c.length>0?1:0),o?.sessionCount??0),L=r?.worktrees.length??o?.worktreeCount??0;return s.jsxs("header",{className:"pi-projectHead",children:[s.jsx("div",{className:"pi-projectHeadTop",children:s.jsxs("div",{className:"pi-projectIdent",children:[s.jsx("h1",{className:"pi-projectTitle",children:j}),s.jsxs("div",{className:"pi-projectMeta",children:[h?s.jsx("span",{title:h,children:V(h)}):null,s.jsx("span",{className:"pi-projectDigest",children:I})]})]})}),s.jsxs("div",{className:"pi-projectFacets","aria-label":"Project sections",children:[s.jsx("button",{type:"button",className:"pi-projectFacet","data-selected":a==="overview"||void 0,onClick:()=>t(w),children:s.jsx("span",{children:"Overview"})}),s.jsxs("button",{type:"button",className:"pi-projectFacet","data-selected":a==="sessions"||void 0,onClick:()=>t({...w,indexView:"sessions"}),children:[s.jsx("span",{children:"Sessions"}),s.jsx("b",{children:o?.sessionCount??0})]}),v?s.jsxs("button",{type:"button",className:"pi-projectFacet","data-selected":a==="agents"||void 0,onClick:()=>t({...w,indexView:"agents"}),children:[s.jsx("span",{children:"Agents"}),s.jsx("b",{children:o?.agentCount??c.length})]}):null,s.jsxs("button",{type:"button",className:"pi-projectFacet",title:"Open worktrees in Repos",onClick:()=>t({view:"repos",...h?{root:h}:{},...y}),children:[s.jsx("span",{children:"Worktrees"}),s.jsx("b",{children:L}),s.jsx(ue,{className:"pi-projectFacetOut",size:11,strokeWidth:2,"aria-hidden":!0})]}),s.jsxs("button",{type:"button",className:"pi-projectFacet",disabled:!h,title:h?"Open this project's AGENTS.md":"No project root known",onClick:()=>t({view:"code",project:i,path:"AGENTS.md"}),children:[s.jsx("span",{children:"Rules"}),s.jsx("b",{children:h?"set":"—"}),s.jsx(ue,{className:"pi-projectFacetOut",size:11,strokeWidth:2,"aria-hidden":!0})]})]})]})}function Ts(e,t,i,n){const a=[];return t>0&&a.push(s.jsxs("b",{children:[t," active"]},"w")),e>0&&a.push(s.jsxs("b",{children:[e," needs you"]},"n")),a.push(s.jsxs("span",{children:[i," agent",i===1?"":"s"]},"a")),a.push(s.jsxs("span",{children:[n," session",n===1?"":"s"]},"s")),a.reduce((r,o,u)=>(u>0&&r.push(s.jsx("span",{children:" · "},`sep${u}`)),r.push(o),r),[])}function ve(e){if(e.length<=18)return e;const t=e.match(/^([0-9a-f]{8})-[0-9a-f-]{27,}$/iu);return t?t[1]:`${e.slice(0,10)}…${e.slice(-5)}`}function Ls(e,t){return`${t?0:e.projects.length} tracked`}function Ps({route:e,navigate:t,projects:i}){const{onboarding:n,refreshOnboarding:a,reload:r}=ze(),o=Ms(n?.defaultHarness),[u,c]=m.useState(""),[j,h]=m.useState(""),[v,y]=m.useState(o),[w,I]=m.useState(!1),[L,k]=m.useState(null),[P,F]=m.useState(null),[M,B]=m.useState(null);m.useEffect(()=>{y(o)},[o]);const A=m.useMemo(()=>Es(i),[i]),S=m.useMemo(()=>Is(A,u),[u,A]),$=m.useMemo(()=>A.find(d=>d.slug===j)??he(A,u),[u,A,j]),R=u.trim(),T=Ws(R)&&!he(A,R),l=$??(!T&&R?S[0]??null:null),p=l?"Open project":T?"Create project":"Find project",g=!!(l||T||R);m.useEffect(()=>{j&&(A.some(d=>d.slug===j)||h(""))},[A,j]),m.useEffect(()=>{if(!M)return;const d=A.find(E=>Fs(E,M));d&&(B(null),t(me(e,d.slug)))},[M,t,A,e]);const f=d=>{h(d.slug),c(d.title),k(null),F(null)},x=d=>{t(me(e,d.slug))},b=async d=>{I(!0),k(null),F(null);try{await Ee("/api/onboarding/project",{method:"POST",body:JSON.stringify({contextRoot:d,sourceRoots:[d],defaultHarness:v})}),B(d),F("Project created. Refreshing inventory."),h(""),c(""),Qe(),await Promise.all([a(),r()])}catch(E){k(E instanceof Error?E.message:"Could not create project.")}finally{I(!1)}},D=d=>{if(d.preventDefault(),!w){if(l){x(l);return}if(T){b(R);return}if(R){k("No project matches that search. Paste a repo path to create one.");return}k("Choose a project or paste a repo path.")}};return s.jsxs("div",{className:"pi-zero",children:[s.jsxs("div",{className:"pi-zeroHead",children:[s.jsxs("span",{className:"pi-zeroKicker",children:[s.jsx(os,{size:13,strokeWidth:1.9,"aria-hidden":!0}),"Projects"]}),s.jsx("h2",{children:"Pick a project to start."})]}),s.jsxs("form",{className:"pi-zeroComposer",onSubmit:D,children:[s.jsxs("div",{className:"pi-zeroBar",children:[s.jsxs("label",{className:"pi-zeroSelect",children:[s.jsx(as,{size:13,strokeWidth:1.8,"aria-hidden":!0}),s.jsxs("select",{value:j,"aria-label":"Choose project",onChange:d=>{const E=A.find(O=>O.slug===d.currentTarget.value);E?f(E):h("")},children:[s.jsx("option",{value:"",children:"Choose project"}),A.slice(0,80).map(d=>s.jsx("option",{value:d.slug,children:d.title},d.slug))]})]}),s.jsx("div",{className:"pi-zeroHarness",role:"group","aria-label":"Default harness",children:["claude","codex"].map(d=>s.jsx("button",{type:"button","data-on":v===d||void 0,onClick:()=>y(d),children:d==="claude"?"Claude":"Codex"},d))})]}),s.jsxs("div",{className:"pi-zeroInputRow",children:[s.jsx("textarea",{value:u,rows:2,placeholder:"Find project or paste /path/to/repo","aria-label":"Find or create project",onChange:d=>{c(d.currentTarget.value),h(""),k(null),F(null)},onKeyDown:d=>{d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),d.currentTarget.form?.requestSubmit())}}),s.jsxs("button",{type:"submit",className:"pi-zeroSend",disabled:w||!g,title:p,children:[s.jsx(rs,{size:15,strokeWidth:2,"aria-hidden":!0}),s.jsx("span",{children:w?"Working":p})]})]}),S.length>0?s.jsx("div",{className:"pi-zeroMatches","aria-label":"Matching projects",children:S.map(d=>s.jsxs("button",{type:"button",className:"pi-zeroMatch","data-selected":$?.slug===d.slug||void 0,onClick:()=>f(d),onDoubleClick:()=>x(d),children:[s.jsxs("span",{className:"pi-zeroMatchMain",children:[s.jsxs("span",{className:"pi-zeroMatchTitle",children:["/",d.title]}),s.jsx("span",{className:"pi-zeroMatchRoot",title:d.root??void 0,children:d.root?V(d.root):d.slug})]}),s.jsx("span",{className:"pi-zeroMatchMeta",children:Ds(d)})]},d.slug))}):R?s.jsx("div",{className:"pi-zeroEmpty",children:"No project matches."}):null,L?s.jsx("div",{className:"pi-zeroError",children:L}):null,P?s.jsx("div",{className:"pi-zeroStatus",children:P}):null]})]})}function Ms(e){return e==="codex"?"codex":"claude"}function me(e,t){return{view:"agents-v2",projectSlug:t,...e.showEphemeral?{showEphemeral:!0}:{},...e.machineId?{machineId:e.machineId}:{}}}function Es(e){return e.map(t=>({slug:t.slug,title:t.title,root:t.root,agentCount:t.agentCount,sessionCount:t.sessionCount,lastActivityAt:t.lastActivityAt})).sort((t,i)=>i.lastActivityAt-t.lastActivityAt||i.agentCount-t.agentCount||i.sessionCount-t.sessionCount||t.title.localeCompare(i.title))}function Is(e,t){const i=H(t);return i?e.map(n=>({option:n,score:$s(n,i)})).filter(n=>n.score!==null).sort((n,a)=>n.score-a.score||a.option.lastActivityAt-n.option.lastActivityAt||n.option.title.localeCompare(a.option.title)).slice(0,6).map(n=>n.option):e.slice(0,6)}function he(e,t){const i=H(t);return i?e.find(n=>{const a=H(n.root??""),r=H(n.root?J(n.root):"");return H(n.title)===i||H(n.slug)===i||a===i||r===i||H(n.root?V(n.root):"")===i})??null:null}function $s(e,t){const i=H(e.title),n=H(e.slug),a=H(e.root??""),r=H(e.root?J(e.root):"");return i===t||n===t||a===t||r===t?0:i.startsWith(t)||n.startsWith(t)||r.startsWith(t)?1:i.includes(t)||n.includes(t)||r.includes(t)?2:a.includes(t)?3:null}function H(e){return e.trim().toLowerCase().replace(/^~(?=\/)/u,"").replace(/\s+/g," ")}function Ws(e){const t=e.trim();return/^(~\/|\/|\.{1,2}\/)/u.test(t)||t.includes("/")}function Fs(e,t){const i=H(t);return i?[e.root??"",e.root?V(e.root):"",e.root?J(e.root):"",e.slug,e.title].map(H).some(a=>a===i||a.endsWith(i)):!1}function Ds(e){return[fe(e.agentCount,"agent"),fe(e.sessionCount,"session"),e.lastActivityAt?_(e.lastActivityAt):null].filter(Boolean).join(" · ")}function fe(e,t){return`${e} ${t}${e===1?"":"s"}`}function Bs(e,t){return Je(e,t)}function je(e){return/^native:process:/iu.test(e??"")}function Os(e){return e.startsWith("/")||e.startsWith("~/")||e.includes("/")&&/\.(jsonl?|events)$/i.test(e)}function we(e,t,i){const n=e?.trim()??"";return!n||Os(n)?t:n}function zs({session:e,sessionRef:t,threads:i,lookup:n,route:a,navigate:r,nowMs:o}){const[u,c]=m.useState(null),j=e?.agentName??a.selectedAgentId??a.agentId??"Session",h=e?.harness??"session",v=n?.kind==="observe"?n.observe.data:null,y=v?.metadata?.session,w=e?.lastActivityAt??n?.session?.lastMessageAt??null,[I,L,k]=m.useMemo(()=>[oe(v),ke(v,w),Vs(v,w)],[v,w]),P=y?.gitBranch??n?.session?.currentBranch??e?.branch??null,F=y?.model??null,M=y?.turnCount??v?.metadata?.usage?.assistantMessages??(n?.kind==="conversation"?n.session.messageCount:null),B=L?_(L,o):e?.lastActivityAt?_(e.lastActivityAt,o):"—",A=e?.working?`live · last ${B}`:B!=="—"?`last ${B}`:"trace resolving",S=we(e?.work,j),$=ve(t),R=n?.session??null,T=n?.kind==="observe"?n.observe.agentId??R?.agentId??e?.agentId:R?.agentId??e?.agentId,l=n?.kind==="observe"?n.observe.sessionId:R?.harnessSessionId,p=[j,h,F,P,I?`started ${We(I)}`:null,k,M!=null?`turn ${N(M)}`:null,$].filter(x=>!!x&&x!=="—");m.useEffect(()=>{let x=!0;return c(null),!T&&!l&&!t?()=>{x=!1}:(Oe({includeDiscovered:!0}).then(b=>{x&&c(ps(b,{agentId:T,sessionRefs:[t,l,e?.sessionId]}))}).catch(()=>{x&&c(null)}),()=>{x=!1})},[e?.sessionId,t,T,l]);const g=()=>{u&&He(r,{view:"terminal",terminalSessionId:u.terminalSessionId,terminalSurfaceKey:u.terminalSurfaceKey,mode:"takeover"},{returnTo:a})},f=u?ms(u,"takeover"):null;return s.jsxs("section",{className:"pi-sessionOverview","aria-label":"Session overview",children:[s.jsxs("section",{className:"pi-sessionMasthead","data-state":e?.working?"working":"recent",children:[s.jsxs("div",{className:"pi-sessionMastTop",children:[s.jsx("span",{className:"pi-sessionCrumb",children:"Sessions ▸"}),s.jsx("h2",{className:"pi-sessionHeadline",title:S,children:S}),s.jsxs("span",{className:"pi-sessionState",children:[e?.working?s.jsx("span",{className:"pi-sessionLiveDot","aria-hidden":!0}):null,A]})]}),s.jsx("div",{className:"pi-sessionMeta",children:p.map((x,b)=>s.jsxs("span",{title:b===p.length-1?t:x,children:[b===1?s.jsx(ge,{harness:h,size:11}):null,x]},`${x}:${b}`))}),u?s.jsxs("div",{className:"pi-sessionTerminalActions","aria-label":"tmux terminal actions",children:[s.jsxs("span",{className:"pi-sessionTerminalName",title:u.sessionName,children:["tmux · ",u.sessionName]}),s.jsx("button",{type:"button",onClick:g,children:"Open in web terminal"}),f?s.jsxs("a",{href:f,children:["Open in native terminal",s.jsx(ls,{size:11,strokeWidth:1.8,"aria-hidden":!0})]}):null]}):null]}),s.jsx(Qs,{lookup:n,session:e,threads:i,nowMs:o,route:a,navigate:r})]})}function Hs({session:e,sessionRef:t,threads:i,route:n,navigate:a,nowMs:r}){const[o,u]=m.useState(null);return m.useEffect(()=>{u(null)},[t]),s.jsx("main",{className:"pi-sessionDetail","aria-label":"Selected session",children:s.jsxs("div",{className:"pi-sessionContent",children:[s.jsx(zs,{session:e,sessionRef:t,threads:i,lookup:o,route:n,navigate:a,nowMs:r}),s.jsx(qe,{sessionRef:t,navigate:a,showObserveRail:!1,onLookup:u})]})})}function N(e){return typeof e!="number"||!Number.isFinite(e)?"—":Math.abs(e)<1e3?e.toLocaleString("en-US"):Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}function Ne(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?"—":`${N(e)} tok`}function G(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:null}function qs(e){const t=G(e?.contextInputTokens),i=G(e?.contextWindowTokens);return t===null||i===null?null:Math.max(0,Math.min(1,t/i))}function Gs(e){const t=[{key:"input",label:"input",value:G(e?.inputTokens)??0},{key:"cache-read",label:"cache rd",value:G(e?.cacheReadInputTokens)??0},{key:"cache-write",label:"cache wr",value:G(e?.cacheCreationInputTokens)??0},{key:"output",label:"output",value:G(e?.outputTokens)??0},{key:"reasoning",label:"reasoning",value:G(e?.reasoningOutputTokens)??0}].filter(r=>r.value>0),i=t.reduce((r,o)=>r+o.value,0),n=t.filter(r=>r.key!=="reasoning"||i>0&&r.value/i>=.02);if(n.length>0)return n;const a=G(e?.totalTokens);return a!==null?[{key:"total",label:"total",value:a}]:[]}function _s({buckets:e}){const t=e.reduce((i,n)=>i+n.value,0);return e.length===0?null:s.jsxs("div",{className:"pi-sessionGlanceTokens","aria-label":"Token usage",children:[s.jsx("div",{className:"pi-sessionGlanceTokenBars",children:e.map(i=>s.jsx("span",{className:"pi-sessionGlanceTokenSeg","data-kind":i.key,style:{flexGrow:t>0?Math.max(.035,i.value/t):1,flexBasis:0},title:`${i.label}: ${Ne(i.value)}`},i.key))}),s.jsx("div",{className:"pi-sessionGlanceTokenLegend",children:e.map(i=>s.jsxs("span",{children:[s.jsx("i",{"data-kind":i.key,"aria-hidden":!0}),i.label," ",s.jsx("b",{children:N(i.value)})]},i.key))})]})}function oe(e){const t=ee(e?.metadata?.session?.sessionStart);if(t!==null)return t;for(const i of e?.events??[]){const n=ee(i.at);if(n!==null)return n}return null}function ke(e,t){for(let a=(e?.events.length??0)-1;a>=0;a-=1){const r=ee(e?.events[a]?.at);if(r!==null)return r}const i=oe(e),n=e?.events.at(-1)?.t;return i!==null&&typeof n=="number"&&Number.isFinite(n)?i+n*1e3:ee(t)}function Vs(e,t){const i=oe(e),n=ke(e,t);if(i!==null&&n!==null)return ie(Math.max(0,n-i))||"—";const a=e?.events.at(-1)?.t;return typeof a=="number"&&Number.isFinite(a)&&ie(a*1e3)||"—"}function ie(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"";const t=Math.floor(e/1e3);if(t<60)return`${t}s`;const i=Math.floor(t/60);if(i<60)return`${i}m`;const n=Math.floor(i/60),a=i%60;if(n<48)return a>0?`${n}h ${a}m`:`${n}h`;const r=Math.floor(n/24),o=n%24;return o>0?`${r}d ${o}h`:`${r}d`}function Ks(e){const t=e?.metadata?.topology;if(!t)return null;const i=t.agents.length,n=t.agents.filter(u=>u.role!=="lead").length,a=t.groups.filter(u=>u.kind==="workflow").length,r=t.tasks.length,o=[];return n>0?o.push(`${n} worker${n===1?"":"s"}`):i>0&&o.push(`${i} agent${i===1?"":"s"}`),a>0&&o.push(`${a} workflow${a===1?"":"s"}`),r>0&&o.push(`${r} task${r===1?"":"s"}`),o.length?o.join(" · "):null}function Us(e){return[...e].sort((t,i)=>xe(i.state)-xe(t.state)||i.touches-t.touches||i.lastT-t.lastT||t.path.localeCompare(i.path)).slice(0,5).map(t=>({path:t.path,kind:t.state,detail:[t.touches>1?`${N(t.touches)} touches`:"1 touch",t.lastT>0?`last ${ie(t.lastT*1e3)}`:null].filter(Boolean).join(" · ")}))}function xe(e){switch(e){case"created":return 3;case"modified":return 2;case"read":return 1}}function Xs(e){const t=new Map;for(const i of e){if(i.kind!=="tool")continue;const n=Ys(i.tool||i.text),a=t.get(n)??{count:0,samples:[]};a.count+=1;const r=i.arg||i.detail||i.text;r&&a.samples.length<2&&a.samples.push(r),t.set(n,a)}return[...t.entries()].sort((i,n)=>n[1].count-i[1].count||i[0].localeCompare(n[0])).slice(0,5).map(([i,n])=>({name:i,count:n.count,detail:n.samples.join(" · ")||`${N(n.count)} uses`}))}function Ys(e){return(e.trim().split(/\s+/u)[0]??"tool").replace(/[_-]+/gu," ").toLowerCase()}function Zs({usage:e,contextPct:t,topology:i,workspace:n,projectRoot:a,branch:r}){const o=[];return t!==null&&o.push({label:"Context",value:`${t}%`,detail:t>=80?"approaching limit":"within window",tone:t>=80?"warn":void 0}),(e?.serviceTier||e?.planType||e?.speed)&&o.push({label:"Budget",value:e.serviceTier??e.planType??e.speed??"usage",detail:[e.planType,e.speed].filter(Boolean).join(" · ")||"provider metadata"}),n&&a&&n!==a?o.push({label:"Worktree",value:V(n),detail:"session cwd differs from project root",tone:"warn"}):r&&o.push({label:"Repo",value:r,detail:"session branch"}),i&&o.push({label:"Topology",value:i,detail:"observed harness hierarchy"}),(e?.webSearchRequests||e?.webFetchRequests)&&o.push({label:"Network",value:`${N((e.webSearchRequests??0)+(e.webFetchRequests??0))} req`,detail:[e.webSearchRequests?`${N(e.webSearchRequests)} search`:null,e.webFetchRequests?`${N(e.webFetchRequests)} fetch`:null].filter(Boolean).join(" · ")}),o.slice(0,4)}function Js({session:e,threads:t,nowMs:i}){return t.filter(n=>n.kind==="agent").filter(n=>n.agentId!==e?.agentId||n.work!==e?.work).sort((n,a)=>Number(a.working)-Number(n.working)||a.lastActivityAt-n.lastActivityAt).slice(0,4).map(n=>{const a=!!(e?.branch&&n.branch===e.branch),r=!!(e?.agentName&&n.agentName===e.agentName);return{thread:n,title:we(n.work,n.agentName,n.id),channel:n.conversationId?ve(n.conversationId):n.agentName,state:n.needs?"needs":n.working?"working":"recent",time:n.lastActivityAt?_(n.lastActivityAt,i):"—",participants:n.agentName,why:a?"same branch":r?"same agent":n.working?"active in project":"project thread"}})}function Y({label:e,value:t,title:i,detail:n}){return s.jsxs("span",{className:"pi-sessionGlanceField",title:i,children:[s.jsx("span",{children:e}),s.jsx("b",{children:t}),n?s.jsx("small",{children:n}):null]})}function Qs({lookup:e,session:t,threads:i,nowMs:n,route:a,navigate:r}){const[o,u]=m.useState(!1),c=m.useMemo(()=>{const T=e?.kind==="observe"?e.observe.data:null,l=T?.metadata?.session,p=T?.metadata?.usage,g=T?.events??[],f=T?.files??[],x=l?.turnCount??p?.assistantMessages??(e?.kind==="conversation"?e.session.messageCount:null),b=g.filter(U=>U.kind==="tool").length,D=f.filter(U=>U.state==="created").length,d=f.filter(U=>U.state==="modified").length,E=f.filter(U=>U.state==="read").length,O=D+d,W=qs(p),z=W!==null?Math.round(W*100):null,C=l?.cwd??e?.session?.workspaceRoot??t?.projectRoot??null,K=l?.gitBranch??e?.session?.currentBranch??t?.branch??null,q=Ks(T),se=Ne(p?.totalTokens??(typeof p?.inputTokens=="number"||typeof p?.outputTokens=="number"?(p?.inputTokens??0)+(p?.outputTokens??0):null)),ye=Gs(p),Ce=O>0?[d>0?`${N(d)} mod`:null,D>0?`${N(D)} new`:null].filter(Boolean).join(" · "):E>0?"read-only":"no file trace",Ae=f.length>0?`${N(f.length)} touched`:"—",Re=Us(f),Te=Xs(g),Le=Zs({usage:p,contextPct:z,topology:q,workspace:C,projectRoot:t?.projectRoot,branch:K}),Pe=Js({session:t,threads:i,nowMs:n});return{turnCount:x,toolCount:b,editCount:O,fileCountLabel:Ae,fileStateLabel:Ce,workspace:C,contextPct:z,showContext:z!==null,contextWarn:z!==null&&z>=80,tokenTotal:se,buckets:ye,fileSignals:Re,toolSignals:Te,contextSignals:Le,threadSignals:Pe,projectRoot:t?.projectRoot??null}},[e,t,i,n]),{turnCount:j,toolCount:h,editCount:v,fileCountLabel:y,fileStateLabel:w,workspace:I,contextPct:L,showContext:k,contextWarn:P,tokenTotal:F,buckets:M,fileSignals:B,toolSignals:A,contextSignals:S,threadSignals:$,projectRoot:R}=c;return s.jsxs("section",{className:"pi-sessionGlance","aria-label":"Session glance",children:[s.jsxs("div",{className:"pi-sessionVitals","aria-label":"Session vitals",children:[s.jsx(Y,{label:"Turns",value:N(j)}),s.jsx(Y,{label:"Tools",value:N(h)}),s.jsx(Y,{label:"Edits",value:N(v)}),s.jsx(Y,{label:"Files",value:y,detail:w!=="no file trace"?w:null}),I&&R&&I!==R?s.jsx(Y,{label:"Worktree",value:V(I),title:I}):null,k?s.jsxs("span",{className:"pi-sessionContextVital",title:"Context window usage",children:[s.jsx("span",{children:"Ctx"}),s.jsx("span",{className:"pi-sessionContextBar","aria-hidden":!0,children:s.jsx("span",{"data-warn":P||void 0,style:{width:`${L}%`}})}),s.jsxs("b",{"data-warn":P||void 0,children:[L,"%"]})]}):null,M.length>0?s.jsxs("button",{type:"button",className:"pi-sessionTokenToggle","aria-expanded":o,onClick:()=>u(T=>!T),children:[s.jsx("span",{children:"Tokens"}),s.jsx("b",{children:F}),s.jsx("i",{children:o?"▾":"▸"})]}):null]}),o&&M.length>0?s.jsx(_s,{buckets:M}):null,s.jsx(et,{files:B,tools:A,context:S,threads:$,route:a,navigate:r})]})}function et({files:e,tools:t,context:i,threads:n,route:a,navigate:r}){return s.jsxs("section",{className:"pi-sessionSignals","aria-label":"Session work signals",children:[s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsxs("div",{className:"pi-sessionSignalHead",children:[s.jsx("span",{children:"Files"}),s.jsx("b",{children:N(e.length)})]}),e.length>0?s.jsx("div",{className:"pi-sessionFileList",children:e.map(o=>s.jsxs("div",{className:"pi-sessionFileRow",children:[s.jsx("span",{"data-kind":o.kind,children:o.kind}),s.jsx("code",{title:o.path,children:o.path}),s.jsx("small",{children:o.detail})]},`${o.kind}:${o.path}`))}):s.jsx("span",{className:"pi-sessionSignalEmpty",children:"No file trace yet."})]}),s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsx("div",{className:"pi-sessionSignalHead",children:s.jsx("span",{children:"Tools · Context · Topology"})}),t.length>0?s.jsx("div",{className:"pi-sessionToolGrid",children:t.map(o=>s.jsxs("span",{className:"pi-sessionToolPill",title:o.detail,children:[s.jsx("b",{children:o.name}),s.jsx("em",{children:N(o.count)})]},o.name))}):null,i.length>0?s.jsx("div",{className:"pi-sessionContextList",children:i.map(o=>s.jsxs("div",{className:"pi-sessionContextRow",children:[s.jsx("span",{children:o.label}),s.jsx("b",{"data-tone":o.tone,children:o.value}),s.jsx("small",{children:o.detail})]},`${o.label}:${o.value}`))}):t.length===0?s.jsx("span",{className:"pi-sessionSignalEmpty",children:"Trace metadata is still resolving."}):null]}),s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsxs("div",{className:"pi-sessionSignalHead",children:[s.jsx("span",{children:"Recent threads"}),s.jsx("b",{children:N(n.length)})]}),n.length>0?s.jsx("div",{className:"pi-sessionThreadList",children:n.map(o=>s.jsxs("button",{type:"button",className:"pi-sessionThreadRow",onClick:()=>r(be(o.thread,a)),children:[s.jsx("span",{className:"pi-sessionThreadTitle",title:o.title,children:o.title}),s.jsxs("span",{className:"pi-sessionThreadMeta",children:[s.jsx("b",{children:o.channel}),s.jsx("em",{children:o.state}),s.jsx("small",{children:o.time})]}),s.jsxs("span",{className:"pi-sessionThreadWhy",children:[o.participants," · ",o.why]})]},o.thread.id))}):s.jsx("span",{className:"pi-sessionSignalEmpty",children:"No recent agent threads."})]})]})}function ne(e){return!e||e==="—"||/^\d+\s+branches$/iu.test(e)?null:e}function Se(e,t,i,n){const a=new Map,r=(u,c)=>{const j=u??e,h=ne(c),v=j??"project",y=a.get(v);if(y)return!y.branch&&h&&(y.branch=h),y;const w={key:v,root:j,branch:h,sessions:0,work:0,moving:0,lastActivityAt:0,repoWatch:null};return a.set(v,w),w};for(const u of t){const c=r(u.root,u.branch);u.working&&(c.moving+=1),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}const o=(u,c)=>{const j=u??e,h=a.get(j??"project");return h||(t.length>0?a.get(e??"")??a.values().next().value:r(u,c))};for(const u of i){const c=o(u.workspaceRoot??u.projectRoot,u.branch);c.sessions+=1,u.working&&(c.moving+=1,c.branch=ne(u.branch)??c.branch),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}for(const u of n){const c=o(u.workspaceRoot??u.projectRoot,u.branch);c.work+=1,u.working&&(c.moving+=1,c.branch=ne(u.branch)??c.branch),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}return a.size===0&&r(e,null),[...a.values()].sort((u,c)=>c.moving-u.moving||c.lastActivityAt-u.lastActivityAt||(u.root??"").localeCompare(c.root??""))}function st(e){return e.worktrees.map(t=>({key:t.id,root:t.path,branch:t.branch.name,sessions:t.sessions.length,work:t.agents.length,moving:t.agents.some($e)?1:0,lastActivityAt:t.lastCommitAt??0,repoWatch:t}))}function tt({pullRequests:e,loading:t,warnings:i,onRefresh:n,nowMs:a}){return s.jsxs("section",{className:"pi-projectPullRequests","aria-label":"Open pull requests",children:[s.jsxs("div",{className:"pi-projectPullRequestsHead",children:[s.jsx("span",{children:"Open PRs"}),s.jsx("b",{children:t&&e.length===0?"…":N(e.length)})]}),e.length>0?s.jsx("div",{className:"pi-projectPullRequestList",children:e.slice(0,6).map(r=>{const o=r.updatedAt?Date.parse(r.updatedAt):Number.NaN;return s.jsxs("a",{className:"pi-projectPullRequest",href:r.url,target:"_blank",rel:"noreferrer",children:[s.jsxs("span",{className:"pi-projectPullRequestNumber",children:["#",r.number]}),s.jsx("b",{title:r.title,children:r.title}),s.jsxs("span",{className:"pi-projectPullRequestBranch",title:`${r.headRefName} → ${r.baseRefName}`,children:[r.headRefName," → ",r.baseRefName]}),s.jsx("em",{children:r.isDraft?"draft":"open"}),s.jsx("time",{children:Number.isFinite(o)?_(o,a):"updated"})]},r.id)})}):s.jsxs("div",{className:"pi-projectPullRequestState","data-loading":t||void 0,children:[s.jsx("span",{children:t?"Checking GitHub for open pull requests…":i[0]??"No open pull requests for this repository."}),!t&&i.length>0?s.jsx("button",{type:"button",onClick:n,children:"Retry"}):null]})]})}function nt(e){const t=new Set;let i=0,n=0;const a=[];for(const r of e.layers){r.files.length>0&&a.push(r.kind);for(const o of r.files)t.add(o.newPath??o.oldPath??"unknown"),i+=o.additions??0,n+=o.deletions??0}return{additions:i,deletions:n,files:[...t],layers:a}}function it({additions:e,deletions:t}){return e+t===0?s.jsx("span",{className:"pi-projectWorktreeChurnBar","data-empty":!0}):s.jsxs("span",{className:"pi-projectWorktreeChurnBar","aria-label":`${e} additions and ${t} deletions`,children:[e>0?s.jsx("i",{"data-add":!0,style:{flexGrow:e}}):null,t>0?s.jsx("i",{"data-delete":!0,style:{flexGrow:t}}):null]})}function ot({project:e,repoProject:t,repoLoading:i,repoError:n,diffSnapshots:a,diffErrors:r,diffLoading:o,pullRequests:u,pullRequestsLoading:c,pullRequestWarnings:j,onRepositoryRefresh:h,threads:v,sessions:y,route:w,navigate:I,nowMs:L}){const k=e?.root??y[0]?.projectRoot??v[0]?.projectRoot??null,P=v.length,F=e?.sessionCount??y.length,M=e?.agentCount??0,B=Math.max(e?.lastActivityAt??0,y[0]?.lastActivityAt??0,v[0]?.lastActivityAt??0),A=e?.branches.length?e.branches:[...new Set([...y.map(l=>l.branch),...v.map(l=>l.branch)].filter(l=>!!l&&l!=="—"&&l!=="main"))],S=t?.worktrees.length?st(t):Se(k,e?.worktrees??[],y,v),$=S.find(l=>l.moving>0&&l.branch)?.branch??S.find(l=>l.branch)?.branch??A[0]??"main",R=k?J(k):e?.title??w.projectSlug??"project",T=S.find(l=>l.moving>0)?.key??S.find(l=>l.branch===$)?.key??S[0]?.key;return s.jsxs("main",{className:"pi-projectOverview","aria-label":"Project overview",children:[s.jsxs("section",{className:"pi-projectSnapshot","aria-label":"Project snapshot",children:[s.jsxs("div",{className:"pi-projectRepository",children:[s.jsxs("div",{className:"pi-projectRepositoryHead",children:[s.jsx("span",{children:"Repository"}),s.jsx(cs,{size:13,strokeWidth:1.7,"aria-hidden":!0})]}),s.jsxs("div",{className:"pi-projectRepositoryIdentity",children:[s.jsx("b",{children:R}),s.jsx("span",{title:k??void 0,children:k?V(k):w.projectSlug??"project"})]}),s.jsxs("div",{className:"pi-projectRepositoryCurrent",children:[S.some(l=>l.moving>0)?s.jsx("span",{className:"pi-projectRepositoryPulse","aria-label":"Active now"}):null,s.jsxs("span",{children:[s.jsx("small",{children:"Current branch"}),s.jsx("b",{title:$,children:$})]}),s.jsx("time",{children:B?_(B,L):"no activity"})]}),F>0||M>0||P>0?s.jsxs("div",{className:"pi-projectRepositoryStats","aria-label":"Repository activity",children:[F>0?s.jsxs("span",{children:[s.jsx("b",{children:N(F)})," ",F===1?"session":"sessions"]}):null,M>0?s.jsxs("span",{children:[s.jsx("b",{children:N(M)})," ",M===1?"agent":"agents"]}):null,P>0?s.jsxs("span",{children:[s.jsx("b",{children:N(P)})," ",P===1?"thread":"threads"]}):null]}):null]}),s.jsxs("div",{className:"pi-projectWorktrees",children:[s.jsxs("div",{className:"pi-projectWorktreesHead",children:[s.jsx("span",{children:"Worktree preview"}),s.jsx("b",{children:N(S.length)})]}),s.jsx("div",{className:"pi-projectWorktreeList",children:S.slice(0,6).map(l=>{const p=l.repoWatch,g=l.root?a.get(l.root)??null:null,f=g?nt(g):null,x=p?Ie(p):null,b=f?.additions??x?.add??0,D=f?.deletions??x?.del??0,d=f?.files.length??(p?Math.max(p.status.changedFiles,x?.files??0):0),E=!!(d>0||p&&(!p.status.clean||p.branch.ahead>0||p.branch.behind>0)),O=u.filter(C=>C.headRefName===l.branch),W=!!(l.root&&o&&!g&&!r.has(l.root)),z=l.root?r.get(l.root)??null:"No worktree path is available.";return s.jsxs("article",{className:"pi-projectWorktree","data-active":l.key===T||void 0,"data-stranded":E||void 0,children:[s.jsx("span",{className:"pi-projectWorktreeTop",children:s.jsx("b",{title:l.branch??"main",children:l.branch??"main"})}),s.jsx("em",{title:l.root??void 0,children:l.root?V(l.root):"workspace"}),g||p?s.jsxs("div",{className:"pi-projectWorktreeDiff","data-clean":!E||void 0,children:[E?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"pi-projectWorktreeChurn",children:[s.jsxs("b",{className:"pi-projectWorktreeAdd",children:["+",N(b)]}),s.jsxs("b",{className:"pi-projectWorktreeDel",children:["−",N(D)]}),s.jsx(it,{additions:b,deletions:D})]}),s.jsxs("small",{children:[N(d)," changed"]})]}):s.jsx("small",{children:"clean"}),l.root?s.jsx("button",{type:"button",className:"pi-projectWorktreeOpenDiff",onClick:()=>I({view:"repo-diff",path:l.root}),children:"View diff"}):null]}):s.jsxs("div",{className:"pi-projectWorktreeDiff","data-pending":!0,children:[s.jsx("small",{children:W||i?"Reading worktree diff…":z??n??"No diff data returned."}),!W&&!i?s.jsx("button",{type:"button",className:"pi-projectWorktreeOpenDiff",onClick:h,children:"Retry"}):null]}),f&&f.files.length>0?s.jsxs("span",{className:"pi-projectWorktreeFiles",title:f.files.join(`
2
2
  `),children:[f.files.slice(0,2).map(C=>J(C)).join(" · "),f.files.length>2?` · +${f.files.length-2} more`:""]}):null,s.jsx("span",{className:"pi-projectWorktreeMeta",children:p?s.jsxs(s.Fragment,{children:[s.jsx("small",{children:p.branch.ahead>0||p.branch.behind>0?`${p.branch.ahead}↑ ${p.branch.behind}↓`:"synced"}),p.status.staged>0?s.jsxs("small",{children:[N(p.status.staged)," staged"]}):null,p.status.unstaged>0?s.jsxs("small",{children:[N(p.status.unstaged)," unstaged"]}):null,p.status.untracked>0?s.jsxs("small",{children:[N(p.status.untracked)," untracked"]}):null,p.status.conflicts>0?s.jsxs("small",{children:[N(p.status.conflicts)," conflicts"]}):null,f?.layers.map(C=>s.jsx("small",{children:C},C)),O.length>0?s.jsxs("small",{children:[O.length," PR",O.length===1?"":"s"]}):null]}):s.jsxs(s.Fragment,{children:[s.jsx("small",{children:l.lastActivityAt?_(l.lastActivityAt,L):"idle"}),s.jsxs("small",{children:[N(l.sessions)," sessions"]}),s.jsxs("small",{children:[N(l.work)," threads"]})]})})]},l.key)})}),S.length>6?s.jsxs("div",{className:"pi-projectWorktreeMore",children:["+",S.length-6," more worktrees"]}):null]})]}),s.jsx(tt,{pullRequests:u,loading:c,warnings:j,onRefresh:h,nowMs:L})]})}function at({project:e,threads:t,sessions:i,route:n,navigate:a,nowMs:r}){const o=e?.root??i[0]?.projectRoot??t[0]?.projectRoot??null,u=m.useMemo(()=>Se(o,e?.worktrees??[],i,t).map(j=>j.root).filter(j=>!!j),[e?.worktrees,o,i,t]),c=ks(o,u);return s.jsx(ot,{project:e,repoProject:c.project,repoLoading:c.repoLoading,repoError:c.repoError,diffSnapshots:c.diffSnapshots,diffErrors:c.diffErrors,diffLoading:c.diffLoading,pullRequests:c.pullRequests,pullRequestsLoading:c.pullRequestsLoading,pullRequestWarnings:c.pullRequestWarnings,onRepositoryRefresh:c.refresh,threads:t,sessions:i,route:n,navigate:a,nowMs:r})}function ei({route:e,navigate:t,zeroPreview:i=!1}){const{model:n,nowMs:a,loading:r,error:o,agents:u=Ss}=Ve(e),c=!!e.projectSlug,j=e.projectSlug?Ke(n,e.projectSlug)??e.projectSlug:null,h=j&&j!==e.projectSlug?{...e,projectSlug:j}:e,v=c&&!je(e.sessionId)?e.sessionId??null:null,y=m.useMemo(()=>v?Bs(n.sessions,h):null,[h,n.sessions,v]),w=c?e.indexView==="agents"?"agents":e.indexView==="sessions"?"sessions":"overview":"overview",I=c?n.projects.find(l=>l.slug===j)??null:null,L=m.useMemo(()=>{if(i)return[];if(!c)return[];const l=j,p=Z(n.threads,l),g=ae(n.sessions,l);return w==="overview"?[]:w==="agents"?[]:g.length>0?g:p},[j,n.sessions,n.threads,w,c,i]),k=m.useMemo(()=>Ue(L),[L]),P=m.useMemo(()=>k.flatMap(l=>l.items),[k]),F=n.projects.length>0||n.threads.length>0||n.sessions.length>0,M=r&&!F,B=r&&!i,A=!c&&!B&&(i||n.projects.length===0&&L.length===0),S=!c&&!A,[$,R]=m.useState(-1),T=m.useRef(new Map);return m.useEffect(()=>{!c||!e.sessionId||!je(e.sessionId)||t({...h,indexView:"sessions",sessionId:void 0,selectedAgentId:void 0})},[h,t,e.sessionId,c]),m.useEffect(()=>{R(-1)},[j]),m.useEffect(()=>{function l(p){const g=document.activeElement;if(!!g&&(g.tagName==="INPUT"||g.tagName==="TEXTAREA"||g.isContentEditable))return;const x=P.length;if(x){if(p.key==="ArrowDown"||p.key==="j")p.preventDefault(),R(b=>b<0?0:Math.min(x-1,b+1));else if(p.key==="ArrowUp"||p.key==="k")p.preventDefault(),R(b=>b<0?0:Math.max(0,b-1));else if(p.key==="Enter"){const b=P[$<0?0:$];b&&(p.preventDefault(),t(b.kind==="session"?re(b,h):le(b,h)))}}}return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[$,h,P,t]),m.useEffect(()=>{if($<0)return;const l=P[$];l&&T.current.get(l.id)?.scrollIntoView({block:"nearest"})},[$,P]),s.jsxs("div",{className:"s-pi s-pi-inbox","aria-busy":r||void 0,"data-loading":r||void 0,children:[c?s.jsx(Rs,{route:h,navigate:t,slug:j,model:n,mode:w,repoProject:null}):s.jsx("div",{className:"pi-inboxHead",children:s.jsxs("div",{className:"pi-inboxHeading",children:[s.jsx("h1",{className:"pi-inboxTitle",children:"Projects"}),s.jsx("span",{className:"pi-inboxDigest",children:Ls(n,i)})]})}),v?s.jsx(Hs,{session:y,sessionRef:v,threads:Z(n.threads,j),route:h,navigate:t,nowMs:a}):c&&w==="overview"?s.jsx(at,{project:I,threads:Z(n.threads,j),sessions:ae(n.sessions,j),route:h,navigate:t,nowMs:a}):c&&w==="agents"&&I?s.jsx(Ge,{project:I,threads:Z(n.threads,j),route:h,navigate:t,nowMs:a}):S?s.jsx(_e,{model:n,agents:u,route:e,navigate:t,nowMs:a}):s.jsxs("div",{className:"pi-threads",children:[M?s.jsx(As,{}):null,!M&&k.map(l=>{let p=0;for(const g of k){if(g.group===l.group)break;p+=g.items.length}return s.jsxs("div",{children:[s.jsxs("div",{className:"pi-sectionHead","data-tone":l.group,children:[s.jsx("span",{className:"pi-sectionLabel",children:l.label}),s.jsx("span",{className:"pi-sectionCount",children:l.items.length})]}),l.items.map((g,f)=>{const x=p+f;return s.jsx(Cs,{thread:g,crossProject:!c,selected:g.kind==="session"?Ye(g,h,n.sessions):Ze(g,h,n.threads),cursor:$===x,nowMs:a,onSelect:()=>{const b=g.kind==="session"?Xe(g,h):be(g,h);t(b)},onOpen:()=>t(g.kind==="session"?re(g,h):le(g,h)),rowRef:b=>{b?T.current.set(g.id,b):T.current.delete(g.id)}},g.id)})]},l.group)}),!M&&L.length===0?o&&!F?s.jsx(pe,{tone:"error",title:"Projects unavailable",detail:o}):A?s.jsx("div",{className:"pi-empty",children:s.jsx(Ps,{route:e,navigate:t,projects:n.projects})}):B?s.jsx("div",{className:"pi-empty",children:"Loading…"}):s.jsx(pe,{title:rt(c,w)}):null]})]})}function rt(e,t){return e&&t==="agents"?"No visible agents in this project.":e?"No sessions in this project yet.":"No projects yet."}export{ei as ProjectsInbox,Cs as ThreadRow};
@@ -1 +1 @@
1
- import{r as p,j as e}from"./index-DvLtl7rV.js";import{t as P}from"./time-Dhsh_2EG.js";import{F as y,A as b}from"./AddProjectForm-IqOtJfRs.js";import{s as k}from"./project-overview-helpers-BQTc_Ous.js";import{u as C,r as A}from"./projects-inbox-Cg4X2lUQ.js";import{S as x}from"./search-CDko0PKE.js";import{X as w}from"./x-CAbNespN.js";import{C as F}from"./chevron-down-wciXnOQz.js";import{F as v}from"./DocumentFocusViewer-Do3wQ_3Z.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./createLucideIcon-DezKXSG2.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./tail-events-Ps8KpKah.js";import"./Provider-CtXJeLrP.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./chevron-right-D-HdlPg8.js";import"./file-text-CqJgwxmv.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./mesh-roster-Bc7T4b7z.js";import"./agents-project-model-UYiamtrU.js";import"./model-IGCUEsMy.js";function G(t){return t.needs>0?"needs":t.working>0||t.liveSessionCount>0?"working":"idle"}function L(t){return[t.title,t.slug,t.root??""].join(" ").toLowerCase()}function R(t,a,s){const o=a.trim().toLowerCase();return[...o?t.filter(i=>L(i).includes(o)):t].sort((i,n)=>s==="name"?i.title.localeCompare(n.title):n.lastActivityAt-i.lastActivityAt||i.title.localeCompare(n.title))}function W({rows:t=7}){return e.jsx("div",{className:"pi-railLoading","aria-hidden":"true",children:Array.from({length:t},(a,s)=>e.jsx("div",{className:"pi-projectGroup pi-projectGroup--loading",children:e.jsx("div",{className:"pi-projectGroupHead pi-projectGroupHead--flat",children:e.jsxs("span",{className:"pi-projectPath pi-projectPath--flat",children:[e.jsx(v,{size:13,strokeWidth:1.6,"aria-hidden":!0}),e.jsxs("span",{className:"pi-projectPathStack",children:[e.jsx("span",{className:"pi-loadingLine pi-loadingLine--railProject"}),e.jsx("span",{className:"pi-loadingLine pi-loadingLine--railRoot"})]})]})})},s))})}function be({route:t,navigate:a,zeroPreview:s=!1}){const{model:o,nowMs:l,loading:i,error:n}=C(t),[c,j]=p.useState(""),[d,N]=p.useState("recent"),[h,u]=p.useState(!1),m=p.useMemo(()=>R(s?[]:o.projects,c,d),[o.projects,c,d,s]),g=t.projectSlug?A(o,t.projectSlug)??t.projectSlug:void 0,f=i&&o.projects.length===0&&!s,S=p.useCallback(r=>{a({view:"agents-v2",projectSlug:r,...t.machineId?{machineId:t.machineId}:{},...t.showEphemeral?{showEphemeral:!0}:{}})},[a,t.machineId,t.showEphemeral]);return e.jsxs("nav",{className:"s-pi s-pi-rail","aria-label":"Projects","aria-busy":i||void 0,"data-loading":i||void 0,children:[e.jsxs("div",{className:"pi-railFind",role:"search",children:[e.jsx(x,{size:13,strokeWidth:1.8,"aria-hidden":!0}),e.jsx("input",{className:"pi-railFindInput",type:"search",value:c,placeholder:"Find project","aria-label":"Find project",onChange:r=>j(r.currentTarget.value)}),c?e.jsx("button",{type:"button",className:"pi-railFindClear","aria-label":"Clear",onClick:()=>j(""),children:e.jsx(w,{size:12,strokeWidth:2,"aria-hidden":!0})}):null]}),e.jsx("div",{className:"pi-railBody",children:e.jsxs("div",{className:"pi-railGroup pi-railGroup--projects",children:[e.jsxs("div",{className:"pi-railProjectTools",children:[e.jsx("div",{className:"pi-railLabel",children:"Projects"}),e.jsxs("label",{className:"pi-railSortWrap",title:"Sort projects",children:[e.jsx("span",{className:"pi-srOnly",children:"Sort projects"}),e.jsxs("select",{className:"pi-railSort",value:d,"aria-label":"Sort projects",onChange:r=>N(r.currentTarget.value),children:[e.jsx("option",{value:"recent",children:"Recent"}),e.jsx("option",{value:"name",children:"Name"})]}),e.jsx(F,{size:12,strokeWidth:2,"aria-hidden":!0})]}),e.jsx("button",{type:"button",className:"pi-railAddBtn","aria-expanded":h,"aria-label":"Add project",title:"Add a project by path",onClick:()=>u(r=>!r),children:e.jsx(y,{size:13,strokeWidth:1.8,"aria-hidden":!0})})]}),h?e.jsx(b,{onClose:()=>u(!1)}):null,f?e.jsx(W,{}):n&&m.length===0?e.jsx("div",{className:"pi-railEmpty",children:"Projects unavailable."}):m.length===0?e.jsx("div",{className:"pi-railEmpty",children:c?"No projects matched.":"No projects yet."}):e.jsx("div",{className:"pi-projectIndex",children:m.map(r=>e.jsx(E,{project:r,selected:g===r.slug,nowMs:l,onOpen:S},r.slug))})]})}),e.jsx("div",{className:"pi-railFoot",children:e.jsxs("button",{type:"button",className:"pi-railFootBtn",onClick:()=>a({view:"search"}),children:[e.jsx(x,{size:13,strokeWidth:1.8,"aria-hidden":!0}),"Search all Scout"]})})]})}function E({project:t,selected:a,nowMs:s,onOpen:o}){const l=G(t),i=t.lastActivityAt?P(t.lastActivityAt,s):"No activity";return e.jsx("div",{className:"pi-projectGroup pi-projectGroup--flat","data-selected":a||void 0,"data-state":l,children:e.jsx("div",{className:"pi-projectGroupHead pi-projectGroupHead--flat",children:e.jsxs("button",{type:"button",className:"pi-projectPath pi-projectPath--flat",title:t.root??t.title,"aria-current":a?"page":void 0,"aria-label":`Open /${t.title}`,onClick:()=>o(t.slug),children:[e.jsx(v,{size:13,strokeWidth:1.6,"aria-hidden":!0}),e.jsxs("span",{className:"pi-projectPathStack",children:[e.jsxs("span",{className:"pi-projectPathText",children:["/",t.title]}),e.jsxs("span",{className:"pi-projectPathMeta",children:[e.jsx("span",{children:t.root?k(t.root):"Discovered project"}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsxs("span",{children:[t.worktreeCount," ",t.worktreeCount===1?"worktree":"worktrees"]}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("time",{children:i})]})]}),l!=="idle"?e.jsx("span",{className:"pi-projectState","data-state":l,children:l==="needs"?"Needs you":"Active"}):null]})})})}export{be as ProjectsRail,R as filterAndSortProjects};
1
+ import{r as p,j as e}from"./index-BI9AljSD.js";import{t as P}from"./time-Dhsh_2EG.js";import{F as y,A as b}from"./AddProjectForm-r_1tVuWk.js";import{s as k}from"./project-overview-helpers-BQTc_Ous.js";import{u as C,r as A}from"./projects-inbox-CLek3QaG.js";import{S as x}from"./search-DmFM_9jm.js";import{X as w}from"./x-DfRJbqrh.js";import{C as F}from"./chevron-down-C475vltS.js";import{F as v}from"./DocumentFocusViewer-DFFE85Tq.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./createLucideIcon-DthwWQIg.js";import"./router-DTtux5sP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./sse-DDHEHUgz.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./tail-events-BdUrO0kb.js";import"./Provider-Bu-C8Hxc.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./TextDocumentSurface-BeSwe3Yl.js";import"./chevron-right-CnZRSd-V.js";import"./file-text--hfhwZH1.js";import"./code-xml-CvKBY3KA.js";import"./arrow-left-DHfdXJVZ.js";import"./arrow-right-BBsrogWf.js";import"./scout-voice-BZKsdquE.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-e6yGeorb.js";import"./NewChatComposer-C_1op4dH.js";import"./text-Faa3ZStB.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-B2W9DPG5.js";import"./conversation-model-QsJVfSeG.js";import"./index-DfsTyYDx.js";import"./HarnessMark-DAaWPiT_.js";import"./NewChatOrigin-D7hwp6dm.js";import"./chunk-HRAB3GC3-DLNT8aOo.js";import"./mesh-roster-Bc7T4b7z.js";import"./agents-project-model-UYiamtrU.js";import"./model-IGCUEsMy.js";function G(t){return t.needs>0?"needs":t.working>0||t.liveSessionCount>0?"working":"idle"}function L(t){return[t.title,t.slug,t.root??""].join(" ").toLowerCase()}function R(t,a,s){const o=a.trim().toLowerCase();return[...o?t.filter(i=>L(i).includes(o)):t].sort((i,n)=>s==="name"?i.title.localeCompare(n.title):n.lastActivityAt-i.lastActivityAt||i.title.localeCompare(n.title))}function W({rows:t=7}){return e.jsx("div",{className:"pi-railLoading","aria-hidden":"true",children:Array.from({length:t},(a,s)=>e.jsx("div",{className:"pi-projectGroup pi-projectGroup--loading",children:e.jsx("div",{className:"pi-projectGroupHead pi-projectGroupHead--flat",children:e.jsxs("span",{className:"pi-projectPath pi-projectPath--flat",children:[e.jsx(v,{size:13,strokeWidth:1.6,"aria-hidden":!0}),e.jsxs("span",{className:"pi-projectPathStack",children:[e.jsx("span",{className:"pi-loadingLine pi-loadingLine--railProject"}),e.jsx("span",{className:"pi-loadingLine pi-loadingLine--railRoot"})]})]})})},s))})}function be({route:t,navigate:a,zeroPreview:s=!1}){const{model:o,nowMs:l,loading:i,error:n}=C(t),[c,j]=p.useState(""),[d,N]=p.useState("recent"),[h,u]=p.useState(!1),m=p.useMemo(()=>R(s?[]:o.projects,c,d),[o.projects,c,d,s]),g=t.projectSlug?A(o,t.projectSlug)??t.projectSlug:void 0,f=i&&o.projects.length===0&&!s,S=p.useCallback(r=>{a({view:"agents-v2",projectSlug:r,...t.machineId?{machineId:t.machineId}:{},...t.showEphemeral?{showEphemeral:!0}:{}})},[a,t.machineId,t.showEphemeral]);return e.jsxs("nav",{className:"s-pi s-pi-rail","aria-label":"Projects","aria-busy":i||void 0,"data-loading":i||void 0,children:[e.jsxs("div",{className:"pi-railFind",role:"search",children:[e.jsx(x,{size:13,strokeWidth:1.8,"aria-hidden":!0}),e.jsx("input",{className:"pi-railFindInput",type:"search",value:c,placeholder:"Find project","aria-label":"Find project",onChange:r=>j(r.currentTarget.value)}),c?e.jsx("button",{type:"button",className:"pi-railFindClear","aria-label":"Clear",onClick:()=>j(""),children:e.jsx(w,{size:12,strokeWidth:2,"aria-hidden":!0})}):null]}),e.jsx("div",{className:"pi-railBody",children:e.jsxs("div",{className:"pi-railGroup pi-railGroup--projects",children:[e.jsxs("div",{className:"pi-railProjectTools",children:[e.jsx("div",{className:"pi-railLabel",children:"Projects"}),e.jsxs("label",{className:"pi-railSortWrap",title:"Sort projects",children:[e.jsx("span",{className:"pi-srOnly",children:"Sort projects"}),e.jsxs("select",{className:"pi-railSort",value:d,"aria-label":"Sort projects",onChange:r=>N(r.currentTarget.value),children:[e.jsx("option",{value:"recent",children:"Recent"}),e.jsx("option",{value:"name",children:"Name"})]}),e.jsx(F,{size:12,strokeWidth:2,"aria-hidden":!0})]}),e.jsx("button",{type:"button",className:"pi-railAddBtn","aria-expanded":h,"aria-label":"Add project",title:"Add a project by path",onClick:()=>u(r=>!r),children:e.jsx(y,{size:13,strokeWidth:1.8,"aria-hidden":!0})})]}),h?e.jsx(b,{onClose:()=>u(!1)}):null,f?e.jsx(W,{}):n&&m.length===0?e.jsx("div",{className:"pi-railEmpty",children:"Projects unavailable."}):m.length===0?e.jsx("div",{className:"pi-railEmpty",children:c?"No projects matched.":"No projects yet."}):e.jsx("div",{className:"pi-projectIndex",children:m.map(r=>e.jsx(E,{project:r,selected:g===r.slug,nowMs:l,onOpen:S},r.slug))})]})}),e.jsx("div",{className:"pi-railFoot",children:e.jsxs("button",{type:"button",className:"pi-railFootBtn",onClick:()=>a({view:"search"}),children:[e.jsx(x,{size:13,strokeWidth:1.8,"aria-hidden":!0}),"Search all Scout"]})})]})}function E({project:t,selected:a,nowMs:s,onOpen:o}){const l=G(t),i=t.lastActivityAt?P(t.lastActivityAt,s):"No activity";return e.jsx("div",{className:"pi-projectGroup pi-projectGroup--flat","data-selected":a||void 0,"data-state":l,children:e.jsx("div",{className:"pi-projectGroupHead pi-projectGroupHead--flat",children:e.jsxs("button",{type:"button",className:"pi-projectPath pi-projectPath--flat",title:t.root??t.title,"aria-current":a?"page":void 0,"aria-label":`Open /${t.title}`,onClick:()=>o(t.slug),children:[e.jsx(v,{size:13,strokeWidth:1.6,"aria-hidden":!0}),e.jsxs("span",{className:"pi-projectPathStack",children:[e.jsxs("span",{className:"pi-projectPathText",children:["/",t.title]}),e.jsxs("span",{className:"pi-projectPathMeta",children:[e.jsx("span",{children:t.root?k(t.root):"Discovered project"}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsxs("span",{children:[t.worktreeCount," ",t.worktreeCount===1?"worktree":"worktrees"]}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("time",{children:i})]})]}),l!=="idle"?e.jsx("span",{className:"pi-projectState","data-state":l,children:l==="needs"?"Needs you":"Active"}):null]})})})}export{be as ProjectsRail,R as filterAndSortProjects};
@@ -0,0 +1 @@
1
+ import{j as i}from"./index-BI9AljSD.js";import{u as e}from"./Provider-Bu-C8Hxc.js";import{d as s}from"./types-B0PlfpKc.js";import{ProjectsInbox as c}from"./ProjectsInbox-JgU0lrY8.js";import{ProjectsRail as n}from"./ProjectsRail-p99BRBOa.js";import{ProjectAgentProfile as a}from"./ProjectAgentProfile-BhXAZEkW.js";import{i as l}from"./model-IGCUEsMy.js";/* empty css */import"./projects-inbox-CLek3QaG.js";import"./router-DTtux5sP.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./api-Co9aQ2Jw.js";import"./sse-DDHEHUgz.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-DFFE85Tq.js";import"./createLucideIcon-DthwWQIg.js";import"./TextDocumentSurface-BeSwe3Yl.js";import"./file-text--hfhwZH1.js";import"./x-DfRJbqrh.js";import"./chevron-right-CnZRSd-V.js";import"./code-xml-CvKBY3KA.js";import"./arrow-left-DHfdXJVZ.js";import"./arrow-right-BBsrogWf.js";import"./scout-voice-BZKsdquE.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-e6yGeorb.js";import"./NewChatComposer-C_1op4dH.js";import"./text-Faa3ZStB.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-B2W9DPG5.js";import"./conversation-model-QsJVfSeG.js";import"./time-Dhsh_2EG.js";import"./index-DfsTyYDx.js";import"./HarnessMark-DAaWPiT_.js";import"./NewChatOrigin-D7hwp6dm.js";import"./chevron-down-C475vltS.js";import"./search-DmFM_9jm.js";import"./chunk-HRAB3GC3-DLNT8aOo.js";import"./AgentAvatar-B7c0egdP.js";import"./SpriteAvatar-56DTXxSV.js";import"./CrewAvatar-CXJHLNVM.js";import"./ui-LM8pS8qE.js";import"./openContent-C6XO6kr5.js";import"./SessionRefScreen-C8BiRVPx.js";import"./tail-events-BdUrO0kb.js";import"./BackToPicker-Cto0Ioz9.js";import"./ConversationScreen-CXAHQwQ3.js";import"./ConversationComposer-H8_hsYSc.js";import"./zap-CIo8msJB.js";import"./message-markup-Cc_O-WdA.js";import"./mentions-DuLQnEcn.js";import"./AgentDetailCard-B_KLcgsP.js";import"./AgentLiveActions-CsQA3pu_.js";import"./terminal-takeover-B6H4llRR.js";import"./eye-FnaaPfja.js";import"./terminal-C3YRPfyz.js";import"./message-visibility-CGOmSSKs.js";import"./operator-attention-RqieiSY8.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";/* empty css */import"./ConversationHeader-B0ZBhE_E.js";import"./AstronautSuit-Cjjcv6yQ.js";import"./ConversationFeedRows-hlEFlURs.js";import"./ConversationPanels-fMo6Uy1v.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-8WuxLa5l.js";import"./proxy-1BABCaDb.js";import"./activity-CqZafWfx.js";import"./message-circle-B2DoYKDO.js";import"./ConversationStatus-DI5GCiyW.js";import"./check-DbIkldnK.js";import"./sparkles-Cf8gin88.js";import"./SessionObserve-BCehTlO8.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-Bo2Zl-1a.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-BhVsvwkh.js";import"./ObserveTextFlow-BcrGQet8.js";import"./SessionObserveEvidence-Bb6U-dem.js";import"./wrench-DkxnZRlR.js";import"./external-link-C_nxk0MJ.js";import"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./CrewWorkspaces-Bz2Dcnt4.js";import"./AddProjectForm-r_1tVuWk.js";import"./mesh-roster-Bc7T4b7z.js";import"./agent-specialization-BtxLN4UR.js";import"./project-overview-helpers-BQTc_Ous.js";import"./sliders-horizontal-BhHKxsCO.js";import"./message-square-O-Hu9Mk2.js";import"./api-HFH8wFyb.js";import"./cache-CeWH_KzJ.js";import"./arrow-up-right-CY0Vw_67.js";import"./agents-project-model-UYiamtrU.js";import"./AgentsSubnav-DUsya4WK.js";import"./SecondaryNav-BrXMtvKE.js";import"./secondaryNavConfig-C9bQ9_IA.js";import"./compass-BcRI_YXo.js";import"./settings-C6h9y5XX.js";import"./git-branch-DJyvr0k-.js";import"./scroll-text-kPhYbh-M.js";import"./profile-B3qDSbrH.js";import"./context-budget-DX_fwUs3.js";import"./session-catalog-BkmktBHI.js";import"./terminal-relay-BFhdIstF.js";/* empty css */import"./AgentDefinitionsWorkspace-BbcZc9Xk.js";import"./FileViewerPane-CY0RN78e.js";import"./agent-essentials-vytdybaX.js";/* empty css *//* empty css */import"./ProjectAgentProfileBar-uJw9Wdfk.js";function f({route:o,navigate:r}){const t=l(o),m=t?`profile:${o.agentId}`:"index",p=!t&&j();return i.jsx("div",{className:"s-av2","data-view":t?"profile":"index",children:i.jsx("div",{className:"av2-stagePane",children:t?i.jsx(a,{route:o,navigate:r}):i.jsx(c,{route:o,navigate:r,zeroPreview:p})},m)})}function Cr({navigate:o}){const{route:r}=e(),t=r.view==="agents-v2"?r:{view:"agents-v2"};return i.jsxs("div",{className:"pi-projectsEmbedShell",children:[i.jsx(n,{route:t,navigate:o}),i.jsx(f,{route:t,navigate:o})]})}const Ir=s({id:"projects",label:"Projects",route:{view:"agents-v2"},webPath:"/projects",screen:"ProjectsEmbedScreen",embed:{path:"/embed/projects",profile:"macos.projects",ownsInternalRoutes:!0,rootClassName:"s-projects-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},hosts:{macos:!0}}});function j(){if(typeof window>"u")return!1;const o=window.location.hostname.toLowerCase();if(o!=="localhost"&&o!=="127.0.0.1"&&o!=="::1")return!1;const r=new URLSearchParams(window.location.search).get("zero")?.trim().toLowerCase();return r==="projects"||r==="project"||r==="1"||r==="true"}export{Cr as ProjectsEmbedScreen,f as ProjectsScreen,Ir as scoutSurface};
@@ -1 +1 @@
1
- import{j as s}from"./index-DvLtl7rV.js";import{A as R}from"./AgentAvatar-6-KBVKUu.js";import{H as y}from"./HarnessMark-B979GCSB.js";import{t as O}from"./time-Dhsh_2EG.js";import{s as P}from"./project-overview-helpers-BQTc_Ous.js";import{u as H,t as T,a as B,s as C,f as L,b as z}from"./projects-inbox-Cg4X2lUQ.js";import{A as b}from"./arrow-up-right-C6Wl-1uw.js";import"./Provider-CtXJeLrP.js";import"./router-B9vQkNJL.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./api-Co9aQ2Jw.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./tail-events-Ps8KpKah.js";import"./mesh-roster-Bc7T4b7z.js";import"./agents-project-model-UYiamtrU.js";import"./model-IGCUEsMy.js";function V(i,o,t){if(t.sessionId){const r=L(o,t);if(r)return{kind:"session",session:r};const a=z(i,t);if(a)return{kind:"thread",thread:a}}if(t.selectedAgentId){const r=i.find(l=>l.agentId===t.selectedAgentId)??null;if(r)return{kind:"thread",thread:r};const a=o.find(l=>!l.sessionId&&l.agentId===t.selectedAgentId)??null;if(a)return{kind:"session",session:a}}return null}function p({label:i,value:o}){return s.jsxs("span",{className:"pi-stat",children:[s.jsx("span",{className:"pi-statLabel",children:i}),s.jsx("span",{className:"pi-statValue",children:o})]})}function Ps({route:i,navigate:o}){const{model:t,nowMs:r,loading:a,error:l}=H(i);if(!i.sessionId&&!i.selectedAgentId)return null;const d=V(t.threads,t.sessions,i);if(!d)return s.jsxs("div",{className:"s-pi s-pi-aside",children:[s.jsx("header",{className:"pi-asideHead",children:s.jsxs("div",{className:"pi-asideIdent",children:[s.jsx("div",{className:"pi-asideTop",children:s.jsx("span",{className:"pi-asideName",children:a?"Resolving selection":l?"Project data unavailable":"Selection unavailable"})}),s.jsx("div",{className:"pi-asideSub",children:s.jsxs("span",{className:"pi-asideStatus","data-tone":a?"working":"recent",children:[a?s.jsx("span",{className:"pi-asidePulse","aria-hidden":!0}):null,a?"loading":"idle"]})})]})}),s.jsx("div",{className:"pi-asideBody",children:s.jsx("p",{className:"pi-asideMuted",children:l??"The selected item is not in the current project snapshot."})})]});const n=d.kind==="thread"?d.thread:null,e=d.kind==="session"?d.session:null,m=n?.agentName??e?.agentName??"Session",h=n?.harness??e?.harness??"session",g=n?.projectTitle??e?.projectTitle??i.projectSlug??"project",x=n?.branch??e?.branch??null,c=n?.working??e?.working??!1,f=n?.needs?"needs":c?"working":"recent",I=n?.needs?"your turn":c?"working":e?"selected":"idle",k=n?.work??e?.work??"No session detail available.",v=n?.lastActivityAt??e?.lastActivityAt??0,j=e?.sessionId??n?.sessionId??null,u=n?.projectRoot??e?.projectRoot??null,N=n?T(n,i):null,w=n?B(n,i):e?C(e,i):i,A=e?e.route?.view==="conversation"?"Open conversation":e.route?.view==="sessions"?"Open session":e.agentId?"Open agent":"Open project":n?.kind==="native"?"Open session":n?.conversationId?"Open conversation":"Open agent",S={view:"agents-v2",...i.projectSlug?{projectSlug:i.projectSlug}:{},...i.indexView?{indexView:i.indexView}:{},...i.machineId?{machineId:i.machineId}:{},...i.showEphemeral?{showEphemeral:!0}:{}};return s.jsxs("div",{className:"s-pi s-pi-aside",children:[s.jsxs("header",{className:"pi-asideHead",children:[s.jsx("span",{className:"pi-asideAvatar",children:s.jsx(R,{agent:{name:m,harness:h,state:c?"in_turn":null},placement:"row",size:38})}),s.jsxs("div",{className:"pi-asideIdent",children:[s.jsxs("div",{className:"pi-asideTop",children:[s.jsx("span",{className:"pi-asideName",title:m,children:m}),s.jsx("span",{className:"pi-asideHmark","aria-hidden":!0,children:s.jsx(y,{harness:h,size:13})}),s.jsxs("span",{className:"pi-asideProj",children:["/",g]})]}),s.jsxs("div",{className:"pi-asideSub",children:[x?s.jsx("span",{className:"pi-asideBranch",children:x}):null,s.jsxs("span",{className:"pi-asideStatus","data-tone":f,children:[c?s.jsx("span",{className:"pi-asidePulse","aria-hidden":!0}):null,I]})]})]})]}),s.jsxs("div",{className:"pi-asideBody",children:[s.jsx("h2",{className:"pi-asideHeadline",children:k}),s.jsxs("div",{className:"pi-asideReadouts",children:[s.jsx(p,{label:"Last active",value:v?O(v,r):"—"}),s.jsx(p,{label:e?"Session":"Conversations",value:e?"1":String(n?.sessionCount??0)}),s.jsx(p,{label:"Harness",value:h}),n?.contextPct!=null?s.jsx(p,{label:"Context",value:`${n.contextPct}%`}):null]}),e?s.jsxs("div",{className:"pi-asideSection",children:[s.jsx("div",{className:"pi-asideSectionHead",children:"Session context"}),s.jsxs("div",{className:"pi-asideLine",children:[j?s.jsxs("span",{title:j,children:["ref · ",j]}):s.jsx("span",{children:"No stable session reference yet."}),u?s.jsxs("span",{title:u,children:["root · ",P(u)]}):null,e.conversationId?s.jsxs("span",{title:e.conversationId,children:["conversation · ",e.conversationId]}):null]})]}):null,s.jsxs("div",{className:"pi-asideActions",children:[s.jsxs("button",{type:"button",className:"pi-asideBtn pi-asideBtnPrimary",onClick:()=>o(w),children:[A,s.jsx(b,{size:13,strokeWidth:2,"aria-hidden":!0})]}),N?s.jsxs("button",{type:"button",className:"pi-asideBtn",onClick:()=>o(N),children:["Observe",s.jsx(b,{size:13,strokeWidth:2,"aria-hidden":!0})]}):null,s.jsx("button",{type:"button",className:"pi-asideBtn",onClick:()=>o(S),children:"Clear"})]})]})]})}export{Ps as ProjectsThreadAside};
1
+ import{j as s}from"./index-BI9AljSD.js";import{A as R}from"./AgentAvatar-B7c0egdP.js";import{H as y}from"./HarnessMark-DAaWPiT_.js";import{t as O}from"./time-Dhsh_2EG.js";import{s as P}from"./project-overview-helpers-BQTc_Ous.js";import{u as H,t as T,a as B,s as C,f as L,b as z}from"./projects-inbox-CLek3QaG.js";import{A as b}from"./arrow-up-right-CY0Vw_67.js";import"./Provider-Bu-C8Hxc.js";import"./router-DTtux5sP.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./api-Co9aQ2Jw.js";import"./sse-DDHEHUgz.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-DFFE85Tq.js";import"./createLucideIcon-DthwWQIg.js";import"./TextDocumentSurface-BeSwe3Yl.js";import"./file-text--hfhwZH1.js";import"./x-DfRJbqrh.js";import"./chevron-right-CnZRSd-V.js";import"./code-xml-CvKBY3KA.js";import"./arrow-left-DHfdXJVZ.js";import"./arrow-right-BBsrogWf.js";import"./scout-voice-BZKsdquE.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-e6yGeorb.js";import"./NewChatComposer-C_1op4dH.js";import"./text-Faa3ZStB.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-B2W9DPG5.js";import"./conversation-model-QsJVfSeG.js";import"./index-DfsTyYDx.js";import"./NewChatOrigin-D7hwp6dm.js";import"./chevron-down-C475vltS.js";import"./search-DmFM_9jm.js";import"./chunk-HRAB3GC3-DLNT8aOo.js";import"./SpriteAvatar-56DTXxSV.js";import"./CrewAvatar-CXJHLNVM.js";import"./tail-events-BdUrO0kb.js";import"./mesh-roster-Bc7T4b7z.js";import"./agents-project-model-UYiamtrU.js";import"./model-IGCUEsMy.js";function V(i,o,t){if(t.sessionId){const r=L(o,t);if(r)return{kind:"session",session:r};const a=z(i,t);if(a)return{kind:"thread",thread:a}}if(t.selectedAgentId){const r=i.find(l=>l.agentId===t.selectedAgentId)??null;if(r)return{kind:"thread",thread:r};const a=o.find(l=>!l.sessionId&&l.agentId===t.selectedAgentId)??null;if(a)return{kind:"session",session:a}}return null}function p({label:i,value:o}){return s.jsxs("span",{className:"pi-stat",children:[s.jsx("span",{className:"pi-statLabel",children:i}),s.jsx("span",{className:"pi-statValue",children:o})]})}function Ps({route:i,navigate:o}){const{model:t,nowMs:r,loading:a,error:l}=H(i);if(!i.sessionId&&!i.selectedAgentId)return null;const d=V(t.threads,t.sessions,i);if(!d)return s.jsxs("div",{className:"s-pi s-pi-aside",children:[s.jsx("header",{className:"pi-asideHead",children:s.jsxs("div",{className:"pi-asideIdent",children:[s.jsx("div",{className:"pi-asideTop",children:s.jsx("span",{className:"pi-asideName",children:a?"Resolving selection":l?"Project data unavailable":"Selection unavailable"})}),s.jsx("div",{className:"pi-asideSub",children:s.jsxs("span",{className:"pi-asideStatus","data-tone":a?"working":"recent",children:[a?s.jsx("span",{className:"pi-asidePulse","aria-hidden":!0}):null,a?"loading":"idle"]})})]})}),s.jsx("div",{className:"pi-asideBody",children:s.jsx("p",{className:"pi-asideMuted",children:l??"The selected item is not in the current project snapshot."})})]});const n=d.kind==="thread"?d.thread:null,e=d.kind==="session"?d.session:null,m=n?.agentName??e?.agentName??"Session",h=n?.harness??e?.harness??"session",g=n?.projectTitle??e?.projectTitle??i.projectSlug??"project",x=n?.branch??e?.branch??null,c=n?.working??e?.working??!1,f=n?.needs?"needs":c?"working":"recent",I=n?.needs?"your turn":c?"working":e?"selected":"idle",k=n?.work??e?.work??"No session detail available.",v=n?.lastActivityAt??e?.lastActivityAt??0,j=e?.sessionId??n?.sessionId??null,u=n?.projectRoot??e?.projectRoot??null,N=n?T(n,i):null,w=n?B(n,i):e?C(e,i):i,A=e?e.route?.view==="conversation"?"Open conversation":e.route?.view==="sessions"?"Open session":e.agentId?"Open agent":"Open project":n?.kind==="native"?"Open session":n?.conversationId?"Open conversation":"Open agent",S={view:"agents-v2",...i.projectSlug?{projectSlug:i.projectSlug}:{},...i.indexView?{indexView:i.indexView}:{},...i.machineId?{machineId:i.machineId}:{},...i.showEphemeral?{showEphemeral:!0}:{}};return s.jsxs("div",{className:"s-pi s-pi-aside",children:[s.jsxs("header",{className:"pi-asideHead",children:[s.jsx("span",{className:"pi-asideAvatar",children:s.jsx(R,{agent:{name:m,harness:h,state:c?"in_turn":null},placement:"row",size:38})}),s.jsxs("div",{className:"pi-asideIdent",children:[s.jsxs("div",{className:"pi-asideTop",children:[s.jsx("span",{className:"pi-asideName",title:m,children:m}),s.jsx("span",{className:"pi-asideHmark","aria-hidden":!0,children:s.jsx(y,{harness:h,size:13})}),s.jsxs("span",{className:"pi-asideProj",children:["/",g]})]}),s.jsxs("div",{className:"pi-asideSub",children:[x?s.jsx("span",{className:"pi-asideBranch",children:x}):null,s.jsxs("span",{className:"pi-asideStatus","data-tone":f,children:[c?s.jsx("span",{className:"pi-asidePulse","aria-hidden":!0}):null,I]})]})]})]}),s.jsxs("div",{className:"pi-asideBody",children:[s.jsx("h2",{className:"pi-asideHeadline",children:k}),s.jsxs("div",{className:"pi-asideReadouts",children:[s.jsx(p,{label:"Last active",value:v?O(v,r):"—"}),s.jsx(p,{label:e?"Session":"Conversations",value:e?"1":String(n?.sessionCount??0)}),s.jsx(p,{label:"Harness",value:h}),n?.contextPct!=null?s.jsx(p,{label:"Context",value:`${n.contextPct}%`}):null]}),e?s.jsxs("div",{className:"pi-asideSection",children:[s.jsx("div",{className:"pi-asideSectionHead",children:"Session context"}),s.jsxs("div",{className:"pi-asideLine",children:[j?s.jsxs("span",{title:j,children:["ref · ",j]}):s.jsx("span",{children:"No stable session reference yet."}),u?s.jsxs("span",{title:u,children:["root · ",P(u)]}):null,e.conversationId?s.jsxs("span",{title:e.conversationId,children:["conversation · ",e.conversationId]}):null]})]}):null,s.jsxs("div",{className:"pi-asideActions",children:[s.jsxs("button",{type:"button",className:"pi-asideBtn pi-asideBtnPrimary",onClick:()=>o(w),children:[A,s.jsx(b,{size:13,strokeWidth:2,"aria-hidden":!0})]}),N?s.jsxs("button",{type:"button",className:"pi-asideBtn",onClick:()=>o(N),children:["Observe",s.jsx(b,{size:13,strokeWidth:2,"aria-hidden":!0})]}):null,s.jsx("button",{type:"button",className:"pi-asideBtn",onClick:()=>o(S),children:"Clear"})]})]})]})}export{Ps as ProjectsThreadAside};