@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,4 +1,4 @@
1
- import{z as We}from"./index-DvLtl7rV.js";function He(Te,Ie){for(var Le=0;Le<Ie.length;Le++){const ge=Ie[Le];if(typeof ge!="string"&&!Array.isArray(ge)){for(const ae in ge)if(ae!=="default"&&!(ae in Te)){const Re=Object.getOwnPropertyDescriptor(ge,ae);Re&&Object.defineProperty(Te,ae,Re.get?Re:{enumerable:!0,get:()=>ge[ae]})}}}return Object.freeze(Object.defineProperty(Te,Symbol.toStringTag,{value:"Module"}))}var Pe={exports:{}},Ne;function Ke(){return Ne||(Ne=1,(function(Te,Ie){(function(Le,ge){Te.exports=ge()})(globalThis,(()=>(()=>{var Le={2840:function(K,t,_){var i=this&&this.__decorate||function(s,e,l,o){var u,c=arguments.length,a=c<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,l):o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(s,e,l,o);else for(var m=s.length-1;m>=0;m--)(u=s[m])&&(a=(c<3?u(a):c>3?u(e,l,a):u(e,l))||a);return c>3&&a&&Object.defineProperty(e,l,a),a},v=this&&this.__param||function(s,e){return function(l,o){e(l,o,s)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityManager=void 0;const n=_(7721),f=_(4292),g=_(7150),p=_(7098),d=_(6501),r=_(7093);let h=class extends g.Disposable{constructor(s,e,l,o){super(),this._terminal=s,this._coreBrowserService=l,this._renderService=o,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="";const u=this._coreBrowserService.mainDocument;this._accessibilityContainer=u.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=u.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let c=0;c<this._terminal.rows;c++)this._rowElements[c]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[c]);if(this._topBoundaryFocusListener=c=>this._handleBoundaryFocus(c,0),this._bottomBoundaryFocusListener=c=>this._handleBoundaryFocus(c,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=u.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new f.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this._register(this._terminal.onResize((c=>this._handleResize(c.rows)))),this._register(this._terminal.onRender((c=>this._refreshRows(c.start,c.end)))),this._register(this._terminal.onScroll((()=>this._refreshRows()))),this._register(this._terminal.onA11yChar((c=>this._handleChar(c)))),this._register(this._terminal.onLineFeed((()=>this._handleChar(`
1
+ import{z as We}from"./index-BI9AljSD.js";function He(Te,Ie){for(var Le=0;Le<Ie.length;Le++){const ge=Ie[Le];if(typeof ge!="string"&&!Array.isArray(ge)){for(const ae in ge)if(ae!=="default"&&!(ae in Te)){const Re=Object.getOwnPropertyDescriptor(ge,ae);Re&&Object.defineProperty(Te,ae,Re.get?Re:{enumerable:!0,get:()=>ge[ae]})}}}return Object.freeze(Object.defineProperty(Te,Symbol.toStringTag,{value:"Module"}))}var Pe={exports:{}},Ne;function Ke(){return Ne||(Ne=1,(function(Te,Ie){(function(Le,ge){Te.exports=ge()})(globalThis,(()=>(()=>{var Le={2840:function(K,t,_){var i=this&&this.__decorate||function(s,e,l,o){var u,c=arguments.length,a=c<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,l):o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(s,e,l,o);else for(var m=s.length-1;m>=0;m--)(u=s[m])&&(a=(c<3?u(a):c>3?u(e,l,a):u(e,l))||a);return c>3&&a&&Object.defineProperty(e,l,a),a},v=this&&this.__param||function(s,e){return function(l,o){e(l,o,s)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityManager=void 0;const n=_(7721),f=_(4292),g=_(7150),p=_(7098),d=_(6501),r=_(7093);let h=class extends g.Disposable{constructor(s,e,l,o){super(),this._terminal=s,this._coreBrowserService=l,this._renderService=o,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="";const u=this._coreBrowserService.mainDocument;this._accessibilityContainer=u.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=u.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let c=0;c<this._terminal.rows;c++)this._rowElements[c]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[c]);if(this._topBoundaryFocusListener=c=>this._handleBoundaryFocus(c,0),this._bottomBoundaryFocusListener=c=>this._handleBoundaryFocus(c,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=u.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new f.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this._register(this._terminal.onResize((c=>this._handleResize(c.rows)))),this._register(this._terminal.onRender((c=>this._refreshRows(c.start,c.end)))),this._register(this._terminal.onScroll((()=>this._refreshRows()))),this._register(this._terminal.onA11yChar((c=>this._handleChar(c)))),this._register(this._terminal.onLineFeed((()=>this._handleChar(`
2
2
  `)))),this._register(this._terminal.onA11yTab((c=>this._handleTab(c)))),this._register(this._terminal.onKey((c=>this._handleKey(c.key)))),this._register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this._register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this._register((0,r.addDisposableListener)(u,"selectionchange",(()=>this._handleSelectionChange()))),this._register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRowsDimensions(),this._refreshRows(),this._register((0,g.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(s){for(let e=0;e<s;e++)this._handleChar(" ")}_handleChar(s){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==s&&(this._charsToAnnounce+=s):this._charsToAnnounce+=s,s===`
3
3
  `&&(this._liveRegionLineCount++,this._liveRegionLineCount===21&&(this._liveRegion.textContent+=n.tooMuchOutput.get())))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(s){this._clearLiveRegion(),new RegExp("\\p{Control}","u").test(s)||this._charsToConsume.push(s)}_refreshRows(s,e){this._liveRegionDebouncer.refresh(s,e,this._terminal.rows)}_renderRows(s,e){const l=this._terminal.buffer,o=l.lines.length.toString();for(let u=s;u<=e;u++){const c=l.lines.get(l.ydisp+u),a=[],m=c?.translateToString(!0,void 0,void 0,a)||"",S=(l.ydisp+u+1).toString(),R=this._rowElements[u];R&&(m.length===0?(R.textContent=" ",this._rowColumns.set(R,[0,1])):(R.textContent=m,this._rowColumns.set(R,a)),R.setAttribute("aria-posinset",S),R.setAttribute("aria-setsize",o),this._alignRowWidth(R))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(s,e){const l=s.target,o=this._rowElements[e===0?1:this._rowElements.length-2];if(l.getAttribute("aria-posinset")===(e===0?"1":`${this._terminal.buffer.lines.length}`)||s.relatedTarget!==o)return;let u,c;if(e===0?(u=l,c=this._rowElements.pop(),this._rowContainer.removeChild(c)):(u=this._rowElements.shift(),c=l,this._rowContainer.removeChild(u)),u.removeEventListener("focus",this._topBoundaryFocusListener),c.removeEventListener("focus",this._bottomBoundaryFocusListener),e===0){const a=this._createAccessibilityTreeNode();this._rowElements.unshift(a),this._rowContainer.insertAdjacentElement("afterbegin",a)}else{const a=this._createAccessibilityTreeNode();this._rowElements.push(a),this._rowContainer.appendChild(a)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(e===0?-1:1),this._rowElements[e===0?1:this._rowElements.length-2].focus(),s.preventDefault(),s.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;const s=this._coreBrowserService.mainDocument.getSelection();if(!s)return;if(s.isCollapsed)return void(this._rowContainer.contains(s.anchorNode)&&this._terminal.clearSelection());if(!s.anchorNode||!s.focusNode)return void console.error("anchorNode and/or focusNode are null");let e={node:s.anchorNode,offset:s.anchorOffset},l={node:s.focusNode,offset:s.focusOffset};if((e.node.compareDocumentPosition(l.node)&Node.DOCUMENT_POSITION_PRECEDING||e.node===l.node&&e.offset>l.offset)&&([e,l]=[l,e]),e.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(e={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(e.node))return;const o=this._rowElements.slice(-1)[0];if(l.node.compareDocumentPosition(o)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(l={node:o,offset:o.textContent?.length??0}),!this._rowContainer.contains(l.node))return;const u=({node:m,offset:S})=>{const R=m instanceof Text?m.parentNode:m;let T=parseInt(R?.getAttribute("aria-posinset"),10)-1;if(isNaN(T))return console.warn("row is invalid. Race condition?"),null;const C=this._rowColumns.get(R);if(!C)return console.warn("columns is null. Race condition?"),null;let y=S<C.length?C[S]:C.slice(-1)[0]+1;return y>=this._terminal.cols&&(++T,y=0),{row:T,column:y}},c=u(e),a=u(l);if(c&&a){if(c.row>a.row||c.row===a.row&&c.column>=a.column)throw new Error("invalid range");this._terminal.select(c.column,c.row,(a.row-c.row)*this._terminal.cols-c.column+a.column)}}_handleResize(s){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);for(;this._rowElements.length>s;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const s=this._coreBrowserService.mainDocument.createElement("div");return s.setAttribute("role","listitem"),s.tabIndex=-1,this._refreshRowDimensions(s),s}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let s=0;s<this._terminal.rows;s++)this._refreshRowDimensions(this._rowElements[s]),this._alignRowWidth(this._rowElements[s])}}_refreshRowDimensions(s){s.style.height=`${this._renderService.dimensions.css.cell.height}px`}_alignRowWidth(s){s.style.transform="";const e=s.getBoundingClientRect().width,l=this._rowColumns.get(s)?.slice(-1)?.[0];if(!l)return;const o=l*this._renderService.dimensions.css.cell.width;s.style.transform=`scaleX(${o/e})`}};t.AccessibilityManager=h,t.AccessibilityManager=h=i([v(1,d.IInstantiationService),v(2,p.ICoreBrowserService),v(3,p.IRenderService)],h)},7861:(K,t)=>{function _(f){return f.replace(/\r?\n/g,"\r")}function i(f,g){return g?"\x1B[200~"+f+"\x1B[201~":f}function v(f,g,p,d){f=i(f=_(f),p.decPrivateModes.bracketedPasteMode&&d.rawOptions.ignoreBracketedPasteMode!==!0),p.triggerDataEvent(f,!0),g.value=""}function n(f,g,p){const d=p.getBoundingClientRect(),r=f.clientX-d.left-10,h=f.clientY-d.top-10;g.style.width="20px",g.style.height="20px",g.style.left=`${r}px`,g.style.top=`${h}px`,g.style.zIndex="1000",g.focus()}Object.defineProperty(t,"__esModule",{value:!0}),t.prepareTextForTerminal=_,t.bracketTextForPaste=i,t.copyHandler=function(f,g){f.clipboardData&&f.clipboardData.setData("text/plain",g.selectionText),f.preventDefault()},t.handlePasteEvent=function(f,g,p,d){f.stopPropagation(),f.clipboardData&&v(f.clipboardData.getData("text/plain"),g,p,d)},t.paste=v,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(f,g,p,d,r){n(f,g,p),r&&d.rightClickSelect(f),g.value=d.selectionText,g.select()}},7174:(K,t,_)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorContrastCache=void 0;const i=_(7710);t.ColorContrastCache=class{constructor(){this._color=new i.TwoKeyMap,this._css=new i.TwoKeyMap}setCss(v,n,f){this._css.set(v,n,f)}getCss(v,n){return this._css.get(v,n)}setColor(v,n,f){this._color.set(v,n,f)}getColor(v,n){return this._color.get(v,n)}clear(){this._color.clear(),this._css.clear()}}},1718:(K,t,_)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreBrowserTerminal=void 0;const i=_(7861),v=_(7721),n=_(3285),f=_(4017),g=_(4196),p=_(9925),d=_(3618),r=_(3955),h=_(4792),s=_(945),e=_(9574),l=_(9820),o=_(9784),u=_(5783),c=_(2079),a=_(7098),m=_(9078),S=_(4103),R=_(5777),T=_(701),C=_(6107),y=_(3534),A=_(706),N=_(8693),I=_(4720),F=_(6501),E=_(2486),w=_(2840),b=_(8906),L=_(802),M=_(7093),P=_(7150);class U extends R.CoreTerminal{get linkifier(){return this._linkifier.value}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(x={}){super(x),this._linkifier=this._register(new P.MutableDisposable),this.browser=T,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new P.MutableDisposable),this._onCursorMove=this._register(new L.Emitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new L.Emitter),this.onKey=this._onKey.event,this._onRender=this._register(new L.Emitter),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new L.Emitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new L.Emitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new L.Emitter),this.onBell=this._onBell.event,this._onFocus=this._register(new L.Emitter),this._onBlur=this._register(new L.Emitter),this._onA11yCharEmitter=this._register(new L.Emitter),this._onA11yTabEmitter=this._register(new L.Emitter),this._onWillOpen=this._register(new L.Emitter),this._setup(),this._decorationService=this._instantiationService.createInstance(I.DecorationService),this._instantiationService.setService(F.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(l.LinkProviderService),this._instantiationService.setService(a.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(n.OscLinkProvider)),this._register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this._register(this._inputHandler.onRequestRefreshRows((k=>this.refresh(k?.start??0,k?.end??this.rows-1)))),this._register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this._register(this._inputHandler.onRequestReset((()=>this.reset()))),this._register(this._inputHandler.onRequestWindowsOptionsReport((k=>this._reportWindowsOptions(k)))),this._register(this._inputHandler.onColor((k=>this._handleColorEvent(k)))),this._register(L.Event.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(L.Event.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(L.Event.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(L.Event.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize((k=>this._afterResize(k.cols,k.rows)))),this._register((0,P.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(x){if(this._themeService)for(const k of x){let $,j="";switch(k.index){case 256:$="foreground",j="10";break;case 257:$="background",j="11";break;case 258:$="cursor",j="12";break;default:$="ansi",j="4;"+k.index}switch(k.type){case 0:const V=S.color.toColorRGB($==="ansi"?this._themeService.colors.ansi[k.index]:this._themeService.colors[$]);this.coreService.triggerDataEvent(`${y.C0.ESC}]${j};${(0,N.toRgbString)(V)}${y.C1_ESCAPED.ST}`);break;case 1:if($==="ansi")this._themeService.modifyColors((q=>q.ansi[k.index]=S.channels.toColor(...k.color)));else{const q=$;this._themeService.modifyColors((J=>J[q]=S.channels.toColor(...k.color)))}break;case 2:this._themeService.restoreColor(k.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(x){x?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(w.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(x){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(y.C0.ESC+"[I"),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(y.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const x=this.buffer.ybase+this.buffer.y,k=this.buffer.lines.get(x);if(!k)return;const $=Math.min(this.buffer.x,this.cols-1),j=this._renderService.dimensions.css.cell.height,V=k.getWidth($),q=this._renderService.dimensions.css.cell.width*V,J=this.buffer.y*this._renderService.dimensions.css.cell.height,se=$*this._renderService.dimensions.css.cell.width;this.textarea.style.left=se+"px",this.textarea.style.top=J+"px",this.textarea.style.width=q+"px",this.textarea.style.height=j+"px",this.textarea.style.lineHeight=j+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this._register((0,M.addDisposableListener)(this.element,"copy",(k=>{this.hasSelection()&&(0,i.copyHandler)(k,this._selectionService)})));const x=k=>(0,i.handlePasteEvent)(k,this.textarea,this.coreService,this.optionsService);this._register((0,M.addDisposableListener)(this.textarea,"paste",x)),this._register((0,M.addDisposableListener)(this.element,"paste",x)),T.isFirefox?this._register((0,M.addDisposableListener)(this.element,"mousedown",(k=>{k.button===2&&(0,i.rightClickHandler)(k,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this._register((0,M.addDisposableListener)(this.element,"contextmenu",(k=>{(0,i.rightClickHandler)(k,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),T.isLinux&&this._register((0,M.addDisposableListener)(this.element,"auxclick",(k=>{k.button===1&&(0,i.moveTextAreaUnderMouseCursor)(k,this.textarea,this.screenElement)})))}_bindKeys(){this._register((0,M.addDisposableListener)(this.textarea,"keyup",(x=>this._keyUp(x)),!0)),this._register((0,M.addDisposableListener)(this.textarea,"keydown",(x=>this._keyDown(x)),!0)),this._register((0,M.addDisposableListener)(this.textarea,"keypress",(x=>this._keyPress(x)),!0)),this._register((0,M.addDisposableListener)(this.textarea,"compositionstart",(()=>this._compositionHelper.compositionstart()))),this._register((0,M.addDisposableListener)(this.textarea,"compositionupdate",(x=>this._compositionHelper.compositionupdate(x)))),this._register((0,M.addDisposableListener)(this.textarea,"compositionend",(()=>this._compositionHelper.compositionend()))),this._register((0,M.addDisposableListener)(this.textarea,"input",(x=>this._inputEvent(x)),!0)),this._register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(x){if(!x)throw new Error("Terminal requires a parent element.");if(x.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=x.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),x.appendChild(this.element);const k=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),k.appendChild(this._viewportElement),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._register((0,M.addDisposableListener)(this.screenElement,"mousemove",(V=>this.updateCursorStyle(V)))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),k.appendChild(this.screenElement);const $=this.textarea=this._document.createElement("textarea");this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",v.promptLabel.get()),T.isChromeOS||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._register(this.optionsService.onSpecificOptionChange("disableStdin",(()=>$.readOnly=this.optionsService.rawOptions.disableStdin))),this.textarea.readOnly=this.optionsService.rawOptions.disableStdin,this._coreBrowserService=this._register(this._instantiationService.createInstance(e.CoreBrowserService,this.textarea,x.ownerDocument.defaultView??window,this._document??typeof window<"u"?window.document:null)),this._instantiationService.setService(a.ICoreBrowserService,this._coreBrowserService),this._register((0,M.addDisposableListener)(this.textarea,"focus",(V=>this._handleTextAreaFocus(V)))),this._register((0,M.addDisposableListener)(this.textarea,"blur",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(h.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(a.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(m.ThemeService),this._instantiationService.setService(a.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(s.CharacterJoinerService),this._instantiationService.setService(a.ICharacterJoinerService,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(u.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(a.IRenderService,this._renderService),this._register(this._renderService.onRenderedViewportChange((V=>this._onRender.fire(V)))),this.onResize((V=>this._renderService.resize(V.cols,V.rows))),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(o.MouseService),this._instantiationService.setService(a.IMouseService,this._mouseService);const j=this._linkifier.value=this._register(this._instantiationService.createInstance(b.Linkifier,this.screenElement));this.element.appendChild(k);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this._register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this._register(this.onBlur((()=>this._renderService.handleBlur()))),this._register(this.onFocus((()=>this._renderService.handleFocus()))),this._viewport=this._register(this._instantiationService.createInstance(f.Viewport,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines((V=>{super.scrollLines(V,!1),this.refresh(0,this.rows-1)}))),this._selectionService=this._register(this._instantiationService.createInstance(c.SelectionService,this.element,this.screenElement,j)),this._instantiationService.setService(a.ISelectionService,this._selectionService),this._register(this._selectionService.onRequestScrollLines((V=>this.scrollLines(V.amount,V.suppressScrollEvent)))),this._register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this._register(this._selectionService.onRequestRedraw((V=>this._renderService.handleSelectionChanged(V.start,V.end,V.columnSelectMode)))),this._register(this._selectionService.onLinuxMouseSelection((V=>{this.textarea.value=V,this.textarea.focus(),this.textarea.select()}))),this._register(L.Event.any(this._onScroll.event,this._inputHandler.onScroll)((()=>{this._selectionService.refresh(),this._viewport?.queueSync()}))),this._register(this._instantiationService.createInstance(g.BufferDecorationRenderer,this.screenElement)),this._register((0,M.addDisposableListener)(this.element,"mousedown",(V=>this._selectionService.handleMouseDown(V)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(w.AccessibilityManager,this)),this._register(this.optionsService.onSpecificOptionChange("screenReaderMode",(V=>this._handleScreenReaderModeOptionChange(V)))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(p.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRuler",(V=>{!this._overviewRulerRenderer&&V&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(p.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(r.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){const x=this,k=this.element;function $(q){const J=x._mouseService.getMouseReportCoords(q,x.screenElement);if(!J)return!1;let se,te;switch(q.overrideType||q.type){case"mousemove":te=32,q.buttons===void 0?(se=3,q.button!==void 0&&(se=q.button<3?q.button:3)):se=1&q.buttons?0:4&q.buttons?1:2&q.buttons?2:3;break;case"mouseup":te=0,se=q.button<3?q.button:3;break;case"mousedown":te=1,se=q.button<3?q.button:3;break;case"wheel":if(x._customWheelEventHandler&&x._customWheelEventHandler(q)===!1)return!1;const re=q.deltaY;if(re===0||x.coreMouseService.consumeWheelEvent(q,x._renderService?.dimensions?.device?.cell?.height,x._coreBrowserService?.dpr)===0)return!1;te=re<0?0:1,se=4;break;default:return!1}return!(te===void 0||se===void 0||se>4)&&x.coreMouseService.triggerMouseEvent({col:J.col,row:J.row,x:J.x,y:J.y,button:se,action:te,ctrl:q.ctrlKey,alt:q.altKey,shift:q.shiftKey})}const j={mouseup:null,wheel:null,mousedrag:null,mousemove:null},V={mouseup:q=>($(q),q.buttons||(this._document.removeEventListener("mouseup",j.mouseup),j.mousedrag&&this._document.removeEventListener("mousemove",j.mousedrag)),this.cancel(q)),wheel:q=>($(q),this.cancel(q,!0)),mousedrag:q=>{q.buttons&&$(q)},mousemove:q=>{q.buttons||$(q)}};this._register(this.coreMouseService.onProtocolChange((q=>{q?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(q)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&q?j.mousemove||(k.addEventListener("mousemove",V.mousemove),j.mousemove=V.mousemove):(k.removeEventListener("mousemove",j.mousemove),j.mousemove=null),16&q?j.wheel||(k.addEventListener("wheel",V.wheel,{passive:!1}),j.wheel=V.wheel):(k.removeEventListener("wheel",j.wheel),j.wheel=null),2&q?j.mouseup||(j.mouseup=V.mouseup):(this._document.removeEventListener("mouseup",j.mouseup),j.mouseup=null),4&q?j.mousedrag||(j.mousedrag=V.mousedrag):(this._document.removeEventListener("mousemove",j.mousedrag),j.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register((0,M.addDisposableListener)(k,"mousedown",(q=>{if(q.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(q))return $(q),j.mouseup&&this._document.addEventListener("mouseup",j.mouseup),j.mousedrag&&this._document.addEventListener("mousemove",j.mousedrag),this.cancel(q)}))),this._register((0,M.addDisposableListener)(k,"wheel",(q=>{if(!j.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(q)===!1)return!1;if(!this.buffer.hasScrollback){if(q.deltaY===0)return!1;if(x.coreMouseService.consumeWheelEvent(q,x._renderService?.dimensions?.device?.cell?.height,x._coreBrowserService?.dpr)===0)return this.cancel(q,!0);const J=y.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(q.deltaY<0?"A":"B");return this.coreService.triggerDataEvent(J,!0),this.cancel(q,!0)}}}),{passive:!1}))}refresh(x,k){this._renderService?.refreshRows(x,k)}updateCursorStyle(x){this._selectionService?.shouldColumnSelect(x)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(x,k){this._viewport?this._viewport.scrollLines(x):super.scrollLines(x,k),this.refresh(0,this.rows-1)}scrollPages(x){this.scrollLines(x*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(x){x&&this._viewport?this._viewport.scrollToLine(this.buffer.ybase,!0):this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(x){const k=x-this._bufferService.buffer.ydisp;k!==0&&this.scrollLines(k)}paste(x){(0,i.paste)(x,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(x){this._customKeyEventHandler=x}attachCustomWheelEventHandler(x){this._customWheelEventHandler=x}registerLinkProvider(x){return this._linkProviderService.registerLinkProvider(x)}registerCharacterJoiner(x){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");const k=this._characterJoinerService.register(x);return this.refresh(0,this.rows-1),k}deregisterCharacterJoiner(x){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(x)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(x){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+x)}registerDecoration(x){return this._decorationService.registerDecoration(x)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(x,k,$){this._selectionService.setSelection(x,k,$)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(x,k){this._selectionService?.selectLines(x,k)}_keyDown(x){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(x)===!1)return!1;const k=this.browser.isMac&&this.options.macOptionIsMeta&&x.altKey;if(!k&&!this._compositionHelper.keydown(x))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;k||x.key!=="Dead"&&x.key!=="AltGraph"||(this._unprocessedDeadKey=!0);const $=(0,A.evaluateKeyboardEvent)(x,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(x),$.type===3||$.type===2){const j=this.rows-1;return this.scrollLines($.type===2?-j:j),this.cancel(x,!0)}return $.type===1&&this.selectAll(),!!this._isThirdLevelShift(this.browser,x)||($.cancel&&this.cancel(x,!0),!$.key||!!(x.key&&!x.ctrlKey&&!x.altKey&&!x.metaKey&&x.key.length===1&&x.key.charCodeAt(0)>=65&&x.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):($.key!==y.C0.ETX&&$.key!==y.C0.CR||(this.textarea.value=""),this._onKey.fire({key:$.key,domEvent:x}),this._showCursor(),this.coreService.triggerDataEvent($.key,!0),!this.optionsService.rawOptions.screenReaderMode||x.altKey||x.ctrlKey?this.cancel(x,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(x,k){const $=x.isMac&&!this.options.macOptionIsMeta&&k.altKey&&!k.ctrlKey&&!k.metaKey||x.isWindows&&k.altKey&&k.ctrlKey&&!k.metaKey||x.isWindows&&k.getModifierState("AltGraph");return k.type==="keypress"?$:$&&(!k.keyCode||k.keyCode>47)}_keyUp(x){this._keyDownSeen=!1,this._customKeyEventHandler&&this._customKeyEventHandler(x)===!1||((function(k){return k.keyCode===16||k.keyCode===17||k.keyCode===18})(x)||this.focus(),this.updateCursorStyle(x),this._keyPressHandled=!1)}_keyPress(x){let k;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(x)===!1)return!1;if(this.cancel(x),x.charCode)k=x.charCode;else if(x.which===null||x.which===void 0)k=x.keyCode;else{if(x.which===0||x.charCode===0)return!1;k=x.which}return!(!k||(x.altKey||x.ctrlKey||x.metaKey)&&!this._isThirdLevelShift(this.browser,x)||(k=String.fromCharCode(k),this._onKey.fire({key:k,domEvent:x}),this._showCursor(),this.coreService.triggerDataEvent(k,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(x){if(x.data&&x.inputType==="insertText"&&(!x.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const k=x.data;return this.coreService.triggerDataEvent(k,!0),this.cancel(x),!0}return!1}resize(x,k){x!==this.cols||k!==this.rows?super.resize(x,k):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(x,k){this._charSizeService?.measure()}clear(){if(this.buffer.ybase!==0||this.buffer.y!==0){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let x=1;x<this.rows;x++)this.buffer.lines.push(this.buffer.getBlankLine(C.DEFAULT_ATTR_DATA));this._onScroll.fire({position:this.buffer.ydisp}),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;const x=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this._customKeyEventHandler=x,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains("focus")?this.coreService.triggerDataEvent(y.C0.ESC+"[I"):this.coreService.triggerDataEvent(y.C0.ESC+"[O")}_reportWindowsOptions(x){if(this._renderService)switch(x){case E.WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:const k=this._renderService.dimensions.css.canvas.width.toFixed(0),$=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${y.C0.ESC}[4;${$};${k}t`);break;case E.WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:const j=this._renderService.dimensions.css.cell.width.toFixed(0),V=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${y.C0.ESC}[6;${V};${j}t`)}}cancel(x,k){if(this.options.cancelEvents||k)return x.preventDefault(),x.stopPropagation(),!1}}t.CoreBrowserTerminal=U},8906:function(K,t,_){var i=this&&this.__decorate||function(h,s,e,l){var o,u=arguments.length,c=u<3?s:l===null?l=Object.getOwnPropertyDescriptor(s,e):l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")c=Reflect.decorate(h,s,e,l);else for(var a=h.length-1;a>=0;a--)(o=h[a])&&(c=(u<3?o(c):u>3?o(s,e,c):o(s,e))||c);return u>3&&c&&Object.defineProperty(s,e,c),c},v=this&&this.__param||function(h,s){return function(e,l){s(e,l,h)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Linkifier=void 0;const n=_(7150),f=_(6501),g=_(7098),p=_(802),d=_(7093);let r=class extends n.Disposable{get currentLink(){return this._currentLink}constructor(h,s,e,l,o){super(),this._element=h,this._mouseService=s,this._renderService=e,this._bufferService=l,this._linkProviderService=o,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new p.Emitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new p.Emitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register((0,n.toDisposable)((()=>{(0,n.dispose)(this._linkCacheDisposables),this._linkCacheDisposables.length=0,this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this._register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this._register((0,d.addDisposableListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this._register((0,d.addDisposableListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this._register((0,d.addDisposableListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this._register((0,d.addDisposableListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(h){this._lastMouseEvent=h;const s=this._positionFromMouseEvent(h,this._element,this._mouseService);if(!s)return;this._isMouseOut=!1;const e=h.composedPath();for(let l=0;l<e.length;l++){const o=e[l];if(o.classList.contains("xterm"))break;if(o.classList.contains("xterm-hover"))return}this._lastBufferCell&&s.x===this._lastBufferCell.x&&s.y===this._lastBufferCell.y||(this._handleHover(s),this._lastBufferCell=s)}_handleHover(h){if(this._activeLine!==h.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(h,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,h)||(this._clearCurrentLink(),this._askForLink(h,!0))}_askForLink(h,s){this._activeProviderReplies&&s||(this._activeProviderReplies?.forEach((l=>{l?.forEach((o=>{o.link.dispose&&o.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=h.y);let e=!1;for(const[l,o]of this._linkProviderService.linkProviders.entries())s?this._activeProviderReplies?.get(l)&&(e=this._checkLinkProviderResult(l,h,e)):o.provideLinks(h.y,(u=>{if(this._isMouseOut)return;const c=u?.map((a=>({link:a})));this._activeProviderReplies?.set(l,c),e=this._checkLinkProviderResult(l,h,e),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(h.y,this._activeProviderReplies)}))}_removeIntersectingLinks(h,s){const e=new Set;for(let l=0;l<s.size;l++){const o=s.get(l);if(o)for(let u=0;u<o.length;u++){const c=o[u],a=c.link.range.start.y<h?0:c.link.range.start.x,m=c.link.range.end.y>h?this._bufferService.cols:c.link.range.end.x;for(let S=a;S<=m;S++){if(e.has(S)){o.splice(u--,1);break}e.add(S)}}}}_checkLinkProviderResult(h,s,e){if(!this._activeProviderReplies)return e;const l=this._activeProviderReplies.get(h);let o=!1;for(let u=0;u<h;u++)this._activeProviderReplies.has(u)&&!this._activeProviderReplies.get(u)||(o=!0);if(!o&&l){const u=l.find((c=>this._linkAtPosition(c.link,s)));u&&(e=!0,this._handleNewLink(u))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!e)for(let u=0;u<this._activeProviderReplies.size;u++){const c=this._activeProviderReplies.get(u)?.find((a=>this._linkAtPosition(a.link,s)));if(c){e=!0,this._handleNewLink(c);break}}return e}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(h){if(!this._currentLink)return;const s=this._positionFromMouseEvent(h,this._element,this._mouseService);var e,l;s&&this._mouseDownLink&&(e=this._mouseDownLink.link,l=this._currentLink.link,e.text===l.text&&e.range.start.x===l.range.start.x&&e.range.start.y===l.range.start.y&&e.range.end.x===l.range.end.x&&e.range.end.y===l.range.end.y)&&this._linkAtPosition(this._currentLink.link,s)&&this._currentLink.link.activate(h,this._currentLink.link.text)}_clearCurrentLink(h,s){this._currentLink&&this._lastMouseEvent&&(!h||!s||this._currentLink.link.range.start.y>=h&&this._currentLink.link.range.end.y<=s)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,n.dispose)(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(h){if(!this._lastMouseEvent)return;const s=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);s&&this._linkAtPosition(h.link,s)&&(this._currentLink=h,this._currentLink.state={decorations:{underline:h.link.decorations===void 0||h.link.decorations.underline,pointerCursor:h.link.decorations===void 0||h.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,h.link,this._lastMouseEvent),h.link.decorations={},Object.defineProperties(h.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:e=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==e&&(this._currentLink.state.decorations.underline=e,this._currentLink.state.isHovered&&this._fireUnderlineEvent(h.link,e))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{if(!this._currentLink)return;const l=e.start===0?0:e.start+1+this._bufferService.buffer.ydisp,o=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=l&&this._currentLink.link.range.end.y<=o&&(this._clearCurrentLink(l,o),this._lastMouseEvent)){const u=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);u&&this._askForLink(u,!1)}}))))}_linkHover(h,s,e){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(s,!0),this._currentLink.state.decorations.pointerCursor&&h.classList.add("xterm-cursor-pointer")),s.hover&&s.hover(e,s.text)}_fireUnderlineEvent(h,s){const e=h.range,l=this._bufferService.buffer.ydisp,o=this._createLinkUnderlineEvent(e.start.x-1,e.start.y-l-1,e.end.x,e.end.y-l-1,void 0);(s?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(o)}_linkLeave(h,s,e){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(s,!1),this._currentLink.state.decorations.pointerCursor&&h.classList.remove("xterm-cursor-pointer")),s.leave&&s.leave(e,s.text)}_linkAtPosition(h,s){const e=h.range.start.y*this._bufferService.cols+h.range.start.x,l=h.range.end.y*this._bufferService.cols+h.range.end.x,o=s.y*this._bufferService.cols+s.x;return e<=o&&o<=l}_positionFromMouseEvent(h,s,e){const l=e.getCoords(h,s,this._bufferService.cols,this._bufferService.rows);if(l)return{x:l[0],y:l[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(h,s,e,l,o){return{x1:h,y1:s,x2:e,y2:l,cols:this._bufferService.cols,fg:o}}};t.Linkifier=r,t.Linkifier=r=i([v(1,g.IMouseService),v(2,g.IRenderService),v(3,f.IBufferService),v(4,g.ILinkProviderService)],r)},7721:(K,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0;let _="Terminal input";const i={get:()=>_,set:f=>_=f};t.promptLabel=i;let v="Too much output to announce, navigate to rows manually to read";const n={get:()=>v,set:f=>v=f};t.tooMuchOutput=n},3285:function(K,t,_){var i=this&&this.__decorate||function(d,r,h,s){var e,l=arguments.length,o=l<3?r:s===null?s=Object.getOwnPropertyDescriptor(r,h):s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(d,r,h,s);else for(var u=d.length-1;u>=0;u--)(e=d[u])&&(o=(l<3?e(o):l>3?e(r,h,o):e(r,h))||o);return l>3&&o&&Object.defineProperty(r,h,o),o},v=this&&this.__param||function(d,r){return function(h,s){r(h,s,d)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkProvider=void 0;const n=_(3055),f=_(6501);let g=class{constructor(d,r,h){this._bufferService=d,this._optionsService=r,this._oscLinkService=h}provideLinks(d,r){const h=this._bufferService.buffer.lines.get(d-1);if(!h)return void r(void 0);const s=[],e=this._optionsService.rawOptions.linkHandler,l=new n.CellData,o=h.getTrimmedLength();let u=-1,c=-1,a=!1;for(let m=0;m<o;m++)if(c!==-1||h.hasContent(m)){if(h.loadCell(m,l),l.hasExtendedAttrs()&&l.extended.urlId){if(c===-1){c=m,u=l.extended.urlId;continue}a=l.extended.urlId!==u}else c!==-1&&(a=!0);if(a||c!==-1&&m===o-1){const S=this._oscLinkService.getLinkData(u)?.uri;if(S){const R={start:{x:c+1,y:d},end:{x:m+(a||m!==o-1?0:1),y:d}};let T=!1;if(!e?.allowNonHttpProtocols)try{const C=new URL(S);["http:","https:"].includes(C.protocol)||(T=!0)}catch{T=!0}T||s.push({text:S,range:R,activate:(C,y)=>e?e.activate(C,y,R):p(0,y),hover:(C,y)=>e?.hover?.(C,y,R),leave:(C,y)=>e?.leave?.(C,y,R)})}a=!1,l.hasExtendedAttrs()&&l.extended.urlId?(c=m,u=l.extended.urlId):(c=-1,u=-1)}}r(s)}};function p(d,r){if(confirm(`Do you want to navigate to ${r}?
4
4
 
@@ -1 +1 @@
1
- import{c as a}from"./createLucideIcon-DezKXSG2.js";const o=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],e=a("zap",o);export{e as Z};
1
+ import{c as a}from"./createLucideIcon-DthwWQIg.js";const o=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],e=a("zap",o);export{e as Z};
@@ -50,7 +50,7 @@
50
50
  }
51
51
  }
52
52
  </script>
53
- <script type="module" crossorigin src="/assets/index-DvLtl7rV.js"></script>
53
+ <script type="module" crossorigin src="/assets/index-BI9AljSD.js"></script>
54
54
  <link rel="stylesheet" crossorigin href="/assets/index-i7TMxlwW.css">
55
55
  </head>
56
56
  <body>
package/dist/main.mjs CHANGED
@@ -2195,6 +2195,12 @@ var init_runtime_catalog = __esm(() => {
2195
2195
  reasoningEfforts = new Set(SCOUT_REASONING_EFFORTS);
2196
2196
  });
2197
2197
 
2198
+ // ../protocol/src/scout-baseline-runtime.ts
2199
+ var init_scout_baseline_runtime = () => {};
2200
+
2201
+ // ../protocol/src/session-title.ts
2202
+ var init_session_title = () => {};
2203
+
2198
2204
  // ../protocol/src/reserved-vocabulary.ts
2199
2205
  function scoutReservedVocabularyKind(value) {
2200
2206
  const normalized = normalizeAgentSelectorSegment(value ?? "");
@@ -2635,6 +2641,8 @@ var init_src = __esm(() => {
2635
2641
  init_runtime_profiles();
2636
2642
  init_runtime_execution();
2637
2643
  init_runtime_catalog();
2644
+ init_scout_baseline_runtime();
2645
+ init_session_title();
2638
2646
  init_reserved_vocabulary();
2639
2647
  init_scout_composer();
2640
2648
  init_inbox();
@@ -101462,7 +101470,7 @@ var init_stdio2 = __esm(() => {
101462
101470
  // ../../apps/desktop/src/shared/product.ts
101463
101471
  var SCOUT_APP_VERSION;
101464
101472
  var init_product = __esm(() => {
101465
- SCOUT_APP_VERSION = process.env.SCOUT_APP_VERSION?.trim() || "0.2.96";
101473
+ SCOUT_APP_VERSION = process.env.SCOUT_APP_VERSION?.trim() || "0.2.97";
101466
101474
  });
101467
101475
 
101468
101476
  // ../../apps/desktop/src/core/mcp/stdio-server-lifecycle.ts
@@ -105534,6 +105542,7 @@ __export(exports_install, {
105534
105542
  verifyDownloadedAsset: () => verifyDownloadedAsset,
105535
105543
  runInstallCommand: () => runInstallCommand,
105536
105544
  renderInstallCommandHelp: () => renderInstallCommandHelp,
105545
+ processIdsForMenuOutsideApp: () => processIdsForMenuOutsideApp,
105537
105546
  processIdsForInstalledApp: () => processIdsForInstalledApp,
105538
105547
  parseInstallArgs: () => parseInstallArgs,
105539
105548
  parseGithubAssetDigest: () => parseGithubAssetDigest,
@@ -105574,7 +105583,8 @@ function renderInstallCommandHelp() {
105574
105583
  " then codesign and Gatekeeper-assess the DMG before mounting. OpenScout.app",
105575
105584
  " must match the pinned bundle id and Team ID, pass codesign --deep --strict,",
105576
105585
  " and pass Gatekeeper execute after staging. A running copy of the installed",
105577
- " app is stopped first; replacement is staged and rolled back on failure.",
105586
+ " app and any stale ScoutMenu helpers from other checkouts are stopped first;",
105587
+ " replacement is staged and rolled back on failure.",
105578
105588
  " Quarantine attributes are not cleared.",
105579
105589
  "",
105580
105590
  " The app uses the local scout CLI for the bundled runtime. Install the CLI",
@@ -106025,37 +106035,69 @@ function processIdsForInstalledApp(psOutput, appPath) {
106025
106035
  }
106026
106036
  return pids;
106027
106037
  }
106028
- function listInstalledAppPids(deps) {
106038
+ function processIdsForMenuOutsideApp(psOutput, appPath) {
106039
+ const pids = [];
106040
+ for (const rawLine of psOutput.split(`
106041
+ `)) {
106042
+ const line = rawLine.trim();
106043
+ if (!line)
106044
+ continue;
106045
+ const match = line.match(/^(\d+)\s+(\S+)/);
106046
+ if (!match)
106047
+ continue;
106048
+ const pid = Number(match[1]);
106049
+ const executable = match[2];
106050
+ if (!Number.isInteger(pid) || pid <= 0)
106051
+ continue;
106052
+ if (executable !== MENU_PROCESS_EXECUTABLE && !executable.endsWith(`/${MENU_PROCESS_EXECUTABLE}`)) {
106053
+ continue;
106054
+ }
106055
+ if (executableIsInsideApp(executable, appPath))
106056
+ continue;
106057
+ pids.push(pid);
106058
+ }
106059
+ return pids;
106060
+ }
106061
+ function inspectInstallProcessIds(deps) {
106029
106062
  const result = deps.run("ps", ["-axo", "pid=,args="]);
106030
106063
  requireSuccess(result, "could not inspect running OpenScout processes");
106031
- return processIdsForInstalledApp(result.stdout, deps.appPath);
106064
+ return {
106065
+ installed: processIdsForInstalledApp(result.stdout, deps.appPath),
106066
+ staleMenus: processIdsForMenuOutsideApp(result.stdout, deps.appPath)
106067
+ };
106032
106068
  }
106033
- function isAppRunning(deps) {
106034
- return listInstalledAppPids(deps).length > 0;
106069
+ function listPidsBlockingInstall(deps) {
106070
+ const { installed, staleMenus } = inspectInstallProcessIds(deps);
106071
+ return [...new Set([...installed, ...staleMenus])];
106035
106072
  }
106036
- function waitUntilStopped2(deps, attempts) {
106073
+ function isInstallBlocked(deps) {
106074
+ return listPidsBlockingInstall(deps).length > 0;
106075
+ }
106076
+ function waitUntilInstallUnblocked(deps, attempts) {
106037
106077
  for (let index2 = 0;index2 < attempts; index2 += 1) {
106038
- if (!isAppRunning(deps))
106078
+ if (!isInstallBlocked(deps))
106039
106079
  return true;
106040
106080
  if (index2 + 1 < attempts)
106041
106081
  deps.sleep(STOP_POLL_MS);
106042
106082
  }
106043
- return !isAppRunning(deps);
106083
+ return !isInstallBlocked(deps);
106044
106084
  }
106045
106085
  function stopRunningApp(deps) {
106046
- const initialPids = listInstalledAppPids(deps);
106086
+ const { installed, staleMenus } = inspectInstallProcessIds(deps);
106087
+ const hadInstalledRunning = installed.length > 0;
106088
+ const initialPids = [...new Set([...installed, ...staleMenus])];
106047
106089
  if (initialPids.length === 0)
106048
106090
  return false;
106049
106091
  for (const pid of initialPids) {
106050
106092
  deps.run("kill", [String(pid)]);
106051
106093
  }
106052
- if (waitUntilStopped2(deps, STOP_POLL_ATTEMPTS))
106053
- return true;
106054
- for (const pid of listInstalledAppPids(deps)) {
106094
+ if (waitUntilInstallUnblocked(deps, STOP_POLL_ATTEMPTS))
106095
+ return hadInstalledRunning;
106096
+ for (const pid of listPidsBlockingInstall(deps)) {
106055
106097
  deps.run("kill", ["-9", String(pid)]);
106056
106098
  }
106057
- if (waitUntilStopped2(deps, STOP_POLL_ATTEMPTS))
106058
- return true;
106099
+ if (waitUntilInstallUnblocked(deps, STOP_POLL_ATTEMPTS))
106100
+ return hadInstalledRunning;
106059
106101
  throw new ScoutCliError("could not stop OpenScout before replacing it");
106060
106102
  }
106061
106103
  function launchApp(deps) {
@@ -106193,7 +106235,7 @@ async function runInstallCommand(context, args, dependencies = {}) {
106193
106235
  releaseInstallLock();
106194
106236
  }
106195
106237
  }
106196
- var OPENSCOUT_RELEASE_OWNER = "oscout", OPENSCOUT_RELEASE_REPOSITORY = "scout", OPENSCOUT_APP_NAME = "OpenScout.app", OPENSCOUT_APP_BUNDLE_ID = "app.openscout.scout", OPENSCOUT_SIGNING_TEAM_ID = "2U83JFPW66", DEFAULT_OPENSCOUT_APP_PATH, GITHUB_ASSET_DIGEST_ALGORITHM = "sha256", GITHUB_ASSET_DIGEST_HEX_LENGTH = 64, LATEST_DMG_ALIAS = "OpenScout.dmg", USER_AGENT = "scout-cli", BACKUP_SUFFIX = ".openscout-previous", INSTALL_LOCK_SUFFIX = ".openscout-install.lock", SHLOCK_PATH = "/usr/bin/shlock", STOP_POLL_ATTEMPTS = 50, STOP_POLL_MS = 100, HELP_FLAGS9;
106238
+ var OPENSCOUT_RELEASE_OWNER = "oscout", OPENSCOUT_RELEASE_REPOSITORY = "scout", OPENSCOUT_APP_NAME = "OpenScout.app", OPENSCOUT_APP_BUNDLE_ID = "app.openscout.scout", OPENSCOUT_SIGNING_TEAM_ID = "2U83JFPW66", DEFAULT_OPENSCOUT_APP_PATH, GITHUB_ASSET_DIGEST_ALGORITHM = "sha256", GITHUB_ASSET_DIGEST_HEX_LENGTH = 64, LATEST_DMG_ALIAS = "OpenScout.dmg", USER_AGENT = "scout-cli", BACKUP_SUFFIX = ".openscout-previous", INSTALL_LOCK_SUFFIX = ".openscout-install.lock", SHLOCK_PATH = "/usr/bin/shlock", STOP_POLL_ATTEMPTS = 50, STOP_POLL_MS = 100, MENU_PROCESS_EXECUTABLE = "ScoutMenu", HELP_FLAGS9;
106197
106239
  var init_install = __esm(() => {
106198
106240
  init_errors();
106199
106241
  DEFAULT_OPENSCOUT_APP_PATH = `/Applications/${OPENSCOUT_APP_NAME}`;
@@ -114639,9 +114681,9 @@ function renderMenuCommandHelp() {
114639
114681
  "",
114640
114682
  "Behavior:",
114641
114683
  " On macOS, `scout menu` loads the menu bar app from the installed OpenScout.app",
114642
- " (the menu ships as an embedded helper). If OpenScout.app is not installed, it",
114643
- " points you to `scout install`. Inside an OpenScout repo checkout it prefers",
114644
- " `apps/macos/bin/openscout-menu.ts` so launch/build/restart reuse the repo helper.",
114684
+ " (the menu ships as an embedded helper). If OpenScout.app is not installed, a",
114685
+ " repo checkout can fall back to `apps/macos/bin/openscout-menu.ts` for local",
114686
+ " development. `scout menu build` and `scout menu dmg` always require a checkout.",
114645
114687
  "",
114646
114688
  "Examples:",
114647
114689
  " scout menu",
@@ -114905,8 +114947,10 @@ async function runMenuCommand(context, args) {
114905
114947
  }
114906
114948
  const command = parseMenuCommand(args);
114907
114949
  await ensureMenuProviderTelemetry(context, command.action);
114908
- const helperPath = findRepoMenuHelper(defaultScoutContextDirectory(context));
114909
- const result = helperPath ? await runWithRepoHelper(context, helperPath, command) : await runWithInstalledApp(context, command);
114950
+ const installedAppPath = resolveInstalledAppBundlePath(context.env);
114951
+ const repoHelperPath = findRepoMenuHelper(defaultScoutContextDirectory(context));
114952
+ const preferRepoHelper = command.action === "build" || command.action === "dmg";
114953
+ const result = preferRepoHelper && repoHelperPath ? await runWithRepoHelper(context, repoHelperPath, command) : installedAppPath ? await runWithInstalledApp(context, command) : repoHelperPath ? await runWithRepoHelper(context, repoHelperPath, command) : await runWithInstalledApp(context, command);
114910
114954
  context.output.writeValue(result, renderMenuResult);
114911
114955
  }
114912
114956
  var MENU_BUNDLE_ID = "app.openscout.scout.menu", MENU_PROCESS_NAME = "ScoutMenu", APP_BUNDLE_ID = "app.openscout.scout", APP_BUNDLE_NAME = "OpenScout.app", EMBEDDED_MENU_RELATIVE_PATH, HELP_FLAGS14, COMMON_APP_BUNDLE_PATHS;
@@ -3161,6 +3161,12 @@ var init_runtime_catalog = __esm(() => {
3161
3161
  reasoningEfforts = new Set(SCOUT_REASONING_EFFORTS);
3162
3162
  });
3163
3163
 
3164
+ // ../protocol/src/scout-baseline-runtime.ts
3165
+ var init_scout_baseline_runtime = () => {};
3166
+
3167
+ // ../protocol/src/session-title.ts
3168
+ var init_session_title = () => {};
3169
+
3164
3170
  // ../protocol/src/reserved-vocabulary.ts
3165
3171
  function scoutReservedVocabularyKind(value) {
3166
3172
  const normalized = normalizeAgentSelectorSegment(value ?? "");
@@ -3462,6 +3468,8 @@ var init_src = __esm(() => {
3462
3468
  init_runtime_profiles();
3463
3469
  init_runtime_execution();
3464
3470
  init_runtime_catalog();
3471
+ init_scout_baseline_runtime();
3472
+ init_session_title();
3465
3473
  init_reserved_vocabulary();
3466
3474
  init_scout_composer();
3467
3475
  init_inbox();
@@ -5503,7 +5503,7 @@ function sortBy(array2, compareBy) {
5503
5503
  });
5504
5504
  }
5505
5505
  }
5506
- function compact(array2) {
5506
+ function compact2(array2) {
5507
5507
  return array2.filter((item) => item !== undefined && item !== false && item !== null);
5508
5508
  }
5509
5509
  function filter(array2, fn) {
@@ -5818,7 +5818,7 @@ var init_chunk_3PKNQ3KB = __esm(() => {
5818
5818
  __name(predicateOnArray, "predicateOnArray");
5819
5819
  __name(keyBy, "keyBy");
5820
5820
  __name(sortBy, "sortBy");
5821
- __name(compact, "compact");
5821
+ __name(compact2, "compact");
5822
5822
  __name(filter, "filter");
5823
5823
  __name(each, "each");
5824
5824
  __name(castArray, "castArray");
@@ -5833,7 +5833,7 @@ var init_chunk_3PKNQ3KB = __esm(() => {
5833
5833
  _ = {
5834
5834
  keyBy,
5835
5835
  sortBy,
5836
- compact,
5836
+ compact: compact2,
5837
5837
  keys: Object.keys,
5838
5838
  values: Object.values,
5839
5839
  some: /* @__PURE__ */ __name((a, fn) => a.some(fn), "some"),
@@ -44970,6 +44970,57 @@ function parseScoutRuntimeCatalog(value) {
44970
44970
  return errors3.length || !revision ? { ok: false, errors: errors3 } : { ok: true, catalog: { schemaVersion: "openscout.runtime-catalog.v1", revision, harnesses } };
44971
44971
  }
44972
44972
 
44973
+ // packages/protocol/src/session-title.ts
44974
+ var TITLE_MAX_CHARS = 72;
44975
+ var WRAPPER_TAGS = [
44976
+ "local-command-caveat",
44977
+ "task-notification",
44978
+ "command-name",
44979
+ "command-message",
44980
+ "command-args",
44981
+ "local-command"
44982
+ ];
44983
+ var BOILERPLATE = [
44984
+ /^caveat:\s*the messages below were generated by the user/iu,
44985
+ /^do not respond to these messages/iu,
44986
+ /^\[user\]$/iu
44987
+ ];
44988
+ function compact(value) {
44989
+ return value.replace(/\s+/gu, " ").trim();
44990
+ }
44991
+ function stripWrapperTags(value) {
44992
+ let next = value;
44993
+ for (const tag of WRAPPER_TAGS) {
44994
+ const block = new RegExp(`<${tag}\\b[^>]*>[\\s\\S]*?<\\/${tag}>`, "giu");
44995
+ const empty = new RegExp(`<${tag}\\b[^>]*\\/>`, "giu");
44996
+ next = next.replace(block, `
44997
+ `).replace(empty, `
44998
+ `);
44999
+ }
45000
+ next = next.replace(/<\/?[A-Za-z][\w:-]*\b[^>]*>/gu, `
45001
+ `);
45002
+ return next;
45003
+ }
45004
+ function isBoilerplate(value) {
45005
+ return BOILERPLATE.some((pattern) => pattern.test(value));
45006
+ }
45007
+ function looksLikeWrapperDump(value) {
45008
+ const lowered = value.toLowerCase();
45009
+ return WRAPPER_TAGS.some((tag) => lowered.includes(`<${tag}`)) || lowered.includes("caveat: the messages below were generated");
45010
+ }
45011
+ function logicalSessionTitle(source, fallback) {
45012
+ const raw = source?.trim() ?? "";
45013
+ const lines = (raw ? stripWrapperTags(raw) : "").split(/\n+/u).map((line) => compact(line)).filter((line) => line.length > 0 && !isBoilerplate(line) && !looksLikeWrapperDump(line));
45014
+ const candidate = lines.find((line) => line.length >= 12) ?? lines[0] ?? "";
45015
+ if (!candidate) {
45016
+ const fallbackText = fallback?.trim() ?? "";
45017
+ return fallbackText ? compact(fallbackText).slice(0, TITLE_MAX_CHARS) : null;
45018
+ }
45019
+ if (candidate.length <= TITLE_MAX_CHARS)
45020
+ return candidate;
45021
+ return `${candidate.slice(0, TITLE_MAX_CHARS - 1).trimEnd()}\u2026`;
45022
+ }
45023
+
44973
45024
  // packages/protocol/src/reserved-vocabulary.ts
44974
45025
  var SCOUT_RESERVED_ROUTE_WORDS = [
44975
45026
  "scout",
@@ -109664,7 +109715,7 @@ var DEFAULT_MAX_PENDING_KEYS = 512;
109664
109715
  var DEFAULT_MAX_TRACKED_KEYS = 4096;
109665
109716
  var DEFAULT_MAX_FLUSH_BATCH_SIZE = 128;
109666
109717
  var DEFAULT_RETRY_DELAY_MS = 1000;
109667
- var TITLE_MAX_CHARS = 96;
109718
+ var TITLE_MAX_CHARS2 = 96;
109668
109719
  var PREVIEW_MAX_CHARS = 240;
109669
109720
  var TRANSIENT_ACTIVE_STATES = new Set([
109670
109721
  "queued",
@@ -109707,16 +109758,13 @@ function sourceDisplayName(source) {
109707
109758
  return source.split(/[-_]+/gu).filter(Boolean).map((part) => `${part[0]?.toUpperCase() ?? ""}${part.slice(1)}`).join(" ") || "Harness";
109708
109759
  }
109709
109760
  function fallbackTitle(event) {
109710
- const project = compactOptional(event.project, TITLE_MAX_CHARS);
109761
+ const project = compactOptional(event.project, TITLE_MAX_CHARS2);
109711
109762
  return project ?? `${sourceDisplayName(event.source)} session`;
109712
109763
  }
109713
109764
  function contentTitle(event) {
109714
109765
  if (event.kind !== "user")
109715
109766
  return null;
109716
- const summary = compactOptional(event.summary, TITLE_MAX_CHARS);
109717
- if (!summary || summary.toLowerCase() === "[user]")
109718
- return null;
109719
- return summary;
109767
+ return logicalSessionTitle(event.summary);
109720
109768
  }
109721
109769
  function previewForEvent(event) {
109722
109770
  if (event.kind !== "user" && event.kind !== "assistant" && event.kind !== "tool") {
@@ -109907,7 +109955,7 @@ class ObservedSessionReducer {
109907
109955
  const nextTitle = existing?.explicitTitle ? existing.update.title : explicitTitle ?? existing?.update.title ?? fallbackTitle(event);
109908
109956
  const nextExplicitTitle = existing?.explicitTitle === true || explicitTitle !== null;
109909
109957
  const cwd = lifecycleActivity ? existing.update.cwd : compactOptional(event.cwd, PREVIEW_MAX_CHARS);
109910
- const project = lifecycleActivity ? existing.update.project : compactOptional(event.project, TITLE_MAX_CHARS);
109958
+ const project = lifecycleActivity ? existing.update.project : compactOptional(event.project, TITLE_MAX_CHARS2);
109911
109959
  const activityChanged = activity.activity !== priorActivity;
109912
109960
  const meaningfulActivity = preview !== null || activityChanged || !existing;
109913
109961
  const lastActivityAt = lifecycleActivity ? existing.update.lastActivityAt : meaningfulActivity ? Math.max(existing?.update.lastActivityAt ?? 0, observedAt2) : existing?.update.lastActivityAt ?? observedAt2;
@@ -9565,6 +9565,12 @@ var init_runtime_catalog = __esm(() => {
9565
9565
  reasoningEfforts = new Set(SCOUT_REASONING_EFFORTS);
9566
9566
  });
9567
9567
 
9568
+ // packages/protocol/src/scout-baseline-runtime.ts
9569
+ var init_scout_baseline_runtime = () => {};
9570
+
9571
+ // packages/protocol/src/session-title.ts
9572
+ var init_session_title = () => {};
9573
+
9568
9574
  // packages/protocol/src/reserved-vocabulary.ts
9569
9575
  function scoutReservedVocabularyKind(value) {
9570
9576
  const normalized = normalizeAgentSelectorSegment(value ?? "");
@@ -10130,6 +10136,8 @@ var init_src = __esm(() => {
10130
10136
  init_runtime_profiles();
10131
10137
  init_runtime_execution();
10132
10138
  init_runtime_catalog();
10139
+ init_scout_baseline_runtime();
10140
+ init_session_title();
10133
10141
  init_reserved_vocabulary();
10134
10142
  init_scout_composer();
10135
10143
  init_inbox();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openscout/scout",
3
- "version": "0.2.96",
3
+ "version": "0.2.97",
4
4
  "description": "Local-first control plane for discovering, messaging, and coordinating AI agents across Claude Code, Codex, and more",
5
5
  "keywords": [
6
6
  "openscout",
@@ -65,5 +65,5 @@
65
65
  "publishConfig": {
66
66
  "access": "public"
67
67
  },
68
- "gitHead": "32b205d7fbc6d0be7768f208eabcecbd7fa371b6"
68
+ "gitHead": "aa8585053c67291fbdf44d664f7f00ef4f5bf637"
69
69
  }
@@ -1 +0,0 @@
1
- import{r as t,j as m}from"./index-DvLtl7rV.js";import{u as a}from"./Provider-CtXJeLrP.js";import{A as n}from"./AgentLanesView-CetZZDyF.js";import{i as c,j as l}from"./router-B9vQkNJL.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.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"./time-Dhsh_2EG.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";/* empty css */import"./tail-events-Ps8KpKah.js";import"./observe-BpEm1INu.js";import"./terminal-sessions-BQ6t92tJ.js";import"./types-B0PlfpKc.js";import"./AgentAvatar-6-KBVKUu.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./openContent-C6XO6kr5.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./message-markup-C2LQDm_k.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./message-circle-mZCv8tvB.js";import"./wrench-DjkoAOQt.js";import"./external-link-Dp_a2vRZ.js";import"./AgentFloorView-YT-Jjccf.js";/* empty css */import"./agent-lanes-model-DXqjs0OK.js";import"./context-budget-DX_fwUs3.js";import"./lane-roster-store-DOdI1O13.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./AgentLanesPreflight-q20mTjms.js";import"./AgentLaneChrome-D8bARHMx.js";import"./AgentLaneCard-DI2iW9zO.js";/* empty css */import"./AgentLaneSummaryResize-CEBjmPTa.js";import"./clipboard-e3fSpeo7.js";import"./agent-lane-card-model-CNZMPkhc.js";import"./agent-lane-preview-BhplDYGf.js";import"./agent-lane-detail-ppJId6Jc.js";import"./AgentLaneDetailSheet-52un7dKC.js";import"./SlidePanel-B9ugxWgA.js";import"./LaneTraceDetailSheet-BUgHz-sd.js";import"./LaneTraceEventFocus-DM-hoPxG.js";function p(r){return new URLSearchParams(window.location.search).get(r)?.trim()||null}function Hr(){const{agents:r,navigate:o}=a(),e=t.useMemo(()=>c(),[]),s=t.useMemo(()=>l(),[]),i=t.useMemo(()=>({harnessFilter:p("harness"),projectFilter:p("project")}),[]);return m.jsx("div",{className:"s-agent-lanes-embed","data-scout-theme":!0,children:m.jsx(n,{navigate:o,agents:r,embedded:!0,profileId:e,laneSize:s,harnessFilter:i.harnessFilter,projectFilter:i.projectFilter})})}export{Hr as AgentLanesEmbedScreen};
@@ -1 +0,0 @@
1
- import{j as t}from"./index-DvLtl7rV.js";import{S as i}from"./SecondaryNav-BR4VRdgh.js";import{A as m}from"./secondaryNavConfig-BoQ_zYR9.js";import"./createLucideIcon-DezKXSG2.js";import"./message-square-C7t_qtuj.js";import"./file-text-CqJgwxmv.js";import"./search-CDko0PKE.js";import"./compass-Dt1AMXz2.js";import"./settings-Dyvpkb1D.js";import"./terminal-9GRS_Qdc.js";import"./git-branch-CK5v8F2v.js";import"./code-xml-D7pOQM9l.js";import"./scroll-text-Dze_dXtQ.js";function j({activeRoute:r,navigate:o}){return t.jsx(i,{ariaLabel:"Agents sections",activeRoute:r,groups:m,navigate:o})}export{j as AgentsSubnav};
@@ -1 +0,0 @@
1
- .cw-root{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-xl) var(--space-2xl) var(--space-6xl)}.cw-root--scoped{padding-top:var(--space-lg)}.cw-toolbar{flex:none;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.cw-modeToggle{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--pi-hairline);border-radius:9px;background:color-mix(in srgb,var(--hud-surface) 40%,transparent)}.cw-modeToggle button{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:none;border-radius:7px;background:transparent;color:var(--pi-dim);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background .15s var(--pi-ease),color .15s var(--pi-ease)}.cw-modeToggle button:hover{color:var(--pi-muted)}.cw-modeToggle button[data-active]{background:color-mix(in srgb,var(--hud-ink) 10%,transparent);color:var(--pi-ink);box-shadow:inset 0 0 0 1px var(--pi-hairline-strong)}.cw-search{flex:1 1 220px;min-width:180px;max-width:420px;display:flex;align-items:center;gap:7px;height:30px;padding:0 10px;border:1px solid var(--pi-hairline);border-radius:8px;background:color-mix(in srgb,var(--hud-surface) 34%,transparent);color:var(--pi-dim)}.cw-search input{flex:1;min-width:0;border:none;background:transparent;color:var(--pi-ink);font-size:var(--text-sm);font-family:var(--pi-sans)}.cw-search input:focus{outline:none}.cw-search input::placeholder{color:var(--pi-dim)}.cw-filters{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.cw-filtersIcon{color:var(--pi-dim);margin-right:2px}.cw-filters button{height:26px;padding:0 10px;border:1px solid var(--pi-hairline);border-radius:999px;background:color-mix(in srgb,var(--hud-surface) 30%,transparent);color:var(--pi-dim);font-size:var(--text-2xs);font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .15s var(--pi-ease),color .15s var(--pi-ease),border-color .15s var(--pi-ease)}.cw-filters button:hover{color:var(--pi-muted);border-color:var(--pi-hairline-strong)}.cw-filters button[data-active]{background:color-mix(in srgb,var(--pi-accent) 16%,transparent);border-color:color-mix(in srgb,var(--pi-accent) 40%,var(--pi-hairline));color:var(--pi-ink)}.cw-addProject{margin-left:auto;display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--pi-hairline);border-radius:8px;background:color-mix(in srgb,var(--hud-surface) 34%,transparent);color:var(--pi-muted);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background .15s var(--pi-ease),color .15s var(--pi-ease)}.cw-addProject:hover{color:var(--pi-ink);border-color:var(--pi-hairline-strong)}.cw-digest{flex:none;display:flex;align-items:center;gap:6px;color:var(--pi-dim);font-size:var(--text-xs);font-family:var(--pi-mono)}.cw-digest span[data-tone=live]{color:color-mix(in srgb,var(--pi-accent) 78%,var(--pi-ink))}.cw-digest span[data-tone=needs]{color:color-mix(in srgb,#d9a441 82%,var(--pi-ink));font-weight:650}.cw-digestSep{opacity:.5}.cw-empty{padding:48px 12px;text-align:center;color:var(--pi-dim);font-size:var(--text-sm)}.cw-agentDirectory,.cw-agentSection{display:flex;flex-direction:column;gap:var(--space-lg)}.cw-agentSectionHead{display:flex;align-items:baseline;gap:8px;padding-bottom:var(--space-xs);border-bottom:1px solid var(--pi-hairline)}.cw-agentSectionHead h2{margin:0;color:var(--pi-ink);font-size:var(--text-sm);font-weight:650}.cw-agentSectionHead span{color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-2xs)}.cw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-lg)}.cw-card{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--pi-hairline);border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,white 2.5%,transparent),transparent 40%),color-mix(in srgb,var(--hud-surface) 30%,transparent);transition:border-color .16s var(--pi-ease),transform .16s var(--pi-ease),background .16s var(--pi-ease)}.cw-card:hover{border-color:var(--pi-hairline-strong);transform:translateY(-1px)}.cw-card[data-status=needs]{border-color:color-mix(in srgb,#d9a441 45%,var(--pi-hairline))}.cw-card[data-status=working]{border-color:color-mix(in srgb,var(--pi-accent) 32%,var(--pi-hairline))}.cw-cardHead{display:flex;align-items:flex-start;gap:var(--space-md)}.cw-cardIdentity{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.cw-cardNameRow{display:flex;align-items:center;gap:8px;min-width:0}.cw-cardNameRow b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pi-ink);font-size:var(--text-md);font-weight:650}.cw-statusPill{flex:none;padding:2px 8px;border-radius:999px;font-size:var(--text-2xs);font-weight:650;letter-spacing:.01em;color:var(--pi-dim);background:color-mix(in srgb,var(--hud-ink) 8%,transparent);box-shadow:inset 0 0 0 1px var(--pi-hairline)}.cw-statusPill[data-status=needs]{color:color-mix(in srgb,#d9a441 88%,var(--pi-ink));background:color-mix(in srgb,#d9a441 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,#d9a441 40%,transparent)}.cw-statusPill[data-status=working]{color:color-mix(in srgb,var(--pi-accent) 84%,var(--pi-ink));background:color-mix(in srgb,var(--pi-accent) 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pi-accent) 32%,transparent)}.cw-statusPill[data-status=thinking]{color:color-mix(in srgb,#6fb7c7 86%,var(--pi-ink));background:color-mix(in srgb,#6fb7c7 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,#6fb7c7 32%,transparent)}.cw-cardSubline{display:flex;align-items:center;gap:6px;min-width:0;color:var(--pi-muted);font-size:var(--text-xs)}.cw-headline{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-substrates{display:flex;flex-wrap:wrap;gap:6px}.cw-substrateChip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--pi-hairline);border-radius:999px;background:color-mix(in srgb,var(--hud-surface) 26%,transparent);color:var(--pi-muted);font-size:var(--text-2xs);cursor:pointer;transition:border-color .15s var(--pi-ease),color .15s var(--pi-ease)}.cw-substrateChip:hover{border-color:var(--pi-hairline-strong);color:var(--pi-ink)}.cw-substrateChip[data-primary]{color:var(--pi-ink);background:color-mix(in srgb,var(--hud-ink) 6%,transparent)}.cw-substrateChip[data-live]{border-color:color-mix(in srgb,var(--pi-accent) 34%,var(--pi-hairline))}.cw-substrateChip em{font-style:normal;color:var(--pi-dim);font-family:var(--pi-mono)}.cw-work{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);padding-top:var(--space-2xs);border-top:1px solid var(--pi-hairline)}.cw-work p{flex:1;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pi-ink);font-size:var(--text-sm)}.cw-work time{flex:none;color:var(--pi-dim);font-size:var(--text-2xs);font-family:var(--pi-mono)}.cw-cardActions{display:flex;gap:6px}.cw-cardActions:empty{display:none}.cw-cardActions button{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;height:26px;border:1px solid var(--pi-hairline);border-radius:7px;background:transparent;color:var(--pi-muted);font-size:var(--text-2xs);font-weight:600;cursor:pointer;transition:background .15s var(--pi-ease),color .15s var(--pi-ease),border-color .15s var(--pi-ease)}.cw-cardActions button:hover{color:var(--pi-ink);border-color:var(--pi-hairline-strong);background:color-mix(in srgb,var(--hud-ink) 5%,transparent)}.cw-projectContext{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--pi-hairline);border-radius:7px;background:color-mix(in srgb,var(--hud-surface) 28%,transparent);color:var(--pi-muted);font-size:var(--text-2xs)}.cw-projectContext span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--pi-mono)}.cw-projectContext em{font-style:normal;color:var(--pi-dim)}.cw-workspaceList{display:flex;flex-direction:column;gap:5px}.cw-workspace{border:1px solid var(--pi-hairline);border-radius:8px;background:color-mix(in srgb,var(--hud-surface) 18%,transparent);overflow:hidden}.cw-workspace[data-state=needs]{border-color:color-mix(in srgb,#d9a441 40%,var(--pi-hairline))}.cw-workspace[data-state=live]{border-color:color-mix(in srgb,var(--pi-accent) 28%,var(--pi-hairline))}.cw-workspaceHead{width:100%;display:flex;align-items:center;gap:var(--space-md);min-height:44px;padding:8px 12px;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background .15s var(--pi-ease)}.cw-workspaceHead:hover{background:color-mix(in srgb,var(--hud-ink) 4%,transparent)}.cw-workspaceTitle{flex:none;display:flex;align-items:center;gap:6px;color:var(--pi-ink);font-size:var(--text-sm);font-weight:650}.cw-workspaceRoot{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pi-dim);font-family:var(--pi-mono);font-size:var(--text-xs)}.cw-workspaceMeta{flex:none;display:flex;align-items:center;gap:10px;color:var(--pi-dim);font-size:var(--text-xs)}.cw-workspaceMeta b{font-weight:650;color:var(--pi-muted)}.cw-workspaceMeta b[data-tone=needs]{color:color-mix(in srgb,#d9a441 85%,var(--pi-ink))}.cw-workspaceMeta b[data-tone=live]{color:color-mix(in srgb,var(--pi-accent) 82%,var(--pi-ink))}.cw-workspaceMeta time{font-family:var(--pi-mono)}.cw-modeToggle button:focus-visible,.cw-filters button:focus-visible,.cw-addProject:focus-visible,.cw-workspaceHead:focus-visible,.cw-substrateChip:focus-visible,.cw-cardActions button:focus-visible{outline:2px solid color-mix(in srgb,var(--pi-accent) 70%,white);outline-offset:2px}@media(max-width:600px){.cw-toolbar{flex-direction:column;align-items:stretch}.cw-search{flex:none;width:100%;min-width:0;max-width:none}.cw-addProject{margin-left:0}.cw-grid{grid-template-columns:1fr}.cw-workspaceHead{flex-wrap:wrap}.cw-workspaceRoot{flex:1 1 100%;order:3}.cw-workspaceMeta{flex-wrap:wrap}}
@@ -1 +0,0 @@
1
- import{j as t,r as m}from"./index-DvLtl7rV.js";import{A as E}from"./AgentAvatar-6-KBVKUu.js";import{t as F}from"./time-Dhsh_2EG.js";import{F as H,A as Q}from"./AddProjectForm-IqOtJfRs.js";import{i as D,h as q}from"./mesh-roster-Bc7T4b7z.js";import{d as O}from"./Provider-CtXJeLrP.js";import{a as U}from"./agent-specialization-BujJVUTD.js";import{o as K}from"./model-IGCUEsMy.js";import{s as T}from"./project-overview-helpers-BQTc_Ous.js";import{c as M}from"./createLucideIcon-DezKXSG2.js";import{S as G}from"./search-CDko0PKE.js";import{S as J}from"./sliders-horizontal-C8njVwfg.js";import{F as x,a as V}from"./DocumentFocusViewer-Do3wQ_3Z.js";import{M as X}from"./message-square-C7t_qtuj.js";const Y=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]],Z=M("rows-3",Y);const ee=[["path",{d:"m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44",key:"k4qptu"}],["path",{d:"m13.56 11.747 4.332-.924",key:"19l80z"}],["path",{d:"m16 21-3.105-6.21",key:"7oh9d"}],["path",{d:"M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z",key:"m7xp4m"}],["path",{d:"m6.158 8.633 1.114 4.456",key:"74o979"}],["path",{d:"m8 21 3.105-6.21",key:"1fvxut"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}]],te=M("telescope",ee);const se=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],ne=M("users",se);function z(e){return e.needs?3:e.working?2:1}function W(e){return[...e].sort((n,s)=>z(s)-z(n)||s.lastActivityAt-n.lastActivityAt)}function S(e){return[...new Set(e.map(n=>n?.trim().toLowerCase()).filter(n=>!!n))].sort()}function $(e){const n=[...new Set(e.map(s=>s?.trim()).filter(s=>!!s))];return n.length===0?null:n.length===1?n[0]:`${n.length} branches`}function _(e){return e.needs>0?"needs":e.working>0||e.liveSessionCount>0?"working":"idle"}function re(e){if(e.needs>0)return`${e.needs} ${e.needs===1?"item needs":"items need"} attention`;const n=Math.max(e.working,e.liveSessionCount);return n>0?`${n} active work ${n===1?"stream":"streams"}`:"No active work"}function ie(e,n){const s=W(n.filter(i=>i.projectSlug===e.slug)),r=S(s.map(i=>i.harness)),o={threadId:`project:${e.slug}`,projectSlug:e.slug,projectTitle:e.title,projectRoot:e.root,branch:$(e.branches.length>0?e.branches:s.map(i=>i.branch)),working:e.working>0||e.liveSessionCount>0,needs:e.needs>0,lastActivityAt:e.lastActivityAt,sessionCount:e.sessionCount,work:re(e),conversationId:null};return{kind:"project",key:`project:${e.slug}`,agentId:null,name:e.title,headline:"Project agent",harnesses:r,model:null,effort:null,status:_(e),needs:o.needs,working:o.working,substrates:[o],primary:o,work:o.work,conversationId:null,lastActivityAt:e.lastActivityAt,sessionCount:e.sessionCount}}function oe(e){const n=W(e),s=n[0];return{threadId:s.id,projectSlug:s.projectSlug,projectTitle:s.projectTitle,projectRoot:s.projectRoot,branch:$(n.map(r=>r.branch)),working:n.some(r=>r.working),needs:n.some(r=>r.needs),lastActivityAt:Math.max(...n.map(r=>r.lastActivityAt)),sessionCount:n.reduce((r,o)=>r+o.sessionCount,0),work:s.work,conversationId:s.conversationId}}function ae(e){const n=new Map;for(const s of e){const r=n.get(s.projectSlug)??[];r.push(s),n.set(s.projectSlug,r)}return[...n.values()].map(oe).sort((s,r)=>Number(r.needs)-Number(s.needs)||Number(r.working)-Number(s.working)||r.lastActivityAt-s.lastActivityAt)}function ce(e,n){return n.some(s=>s.needs)?"needs":e.some(s=>(s.state??"").toLowerCase().includes("think"))?"thinking":n.some(s=>s.working)||e.some(s=>/work|running|in_turn/iu.test(s.state??""))?"working":"idle"}function b(e){const n=e?.trim().replace(/\/+$/u,"");return n?n.replace(/^\/(?:Users|home)\/[^/]+(?=\/)/u,"~"):null}function le(e,n){return[n.root,...n.worktrees.map(r=>r.root)].map(b).filter(r=>!!r).some(r=>e===r||e.startsWith(`${r}/`))}function de(e,n,s){const r=new Set;for(const i of s)i.agentId===e.id&&r.add(i.projectSlug);const o=[e.projectRoot,e.cwd].map(b).filter(i=>!!i);for(const i of n){const c=[i.slug,i.title].map(d=>d.trim().toLowerCase());e.project&&c.includes(e.project.trim().toLowerCase())&&r.add(i.slug),e.workspaceQualifier&&c.includes(e.workspaceQualifier.trim().toLowerCase())&&r.add(i.slug),o.some(d=>le(d,i))&&r.add(i.slug)}if(r.size===0){const i=b(e.projectRoot??e.cwd);i?r.add(`root:${i}`):e.project?.trim()?r.add(`project:${e.project.trim().toLowerCase()}`):e.workspaceQualifier?.trim()&&r.add(`workspace:${e.workspaceQualifier.trim().toLowerCase()}`)}return r}function ue(e,n,s){const r=new Set;for(const o of e)for(const i of de(o,n,s))r.add(i);return r.size>1?!0:e.some(o=>!q(o)&&!o.workspaceQualifier?.trim()&&!o.cwd?.trim())}function he(e,n,s){const r=e.filter(D),o=new Map;for(const i of r){const c=i.definitionId.trim()||i.id,d=o.get(c)??[];d.push(i),o.set(c,d)}return[...o.entries()].flatMap(([i,c])=>{if(!ue(c,n,s))return[];const w=[...c].sort((l,k)=>(k.updatedAt??0)-(l.updatedAt??0))[0],p=new Set(c.map(l=>l.id)),v=s.filter(l=>l.agentId&&p.has(l.agentId)),h=ae(v),f=h[0]??null,u=S([...c.map(l=>l.harness),...v.map(l=>l.harness)]),y=S(c.map(l=>l.model)),A=S(c.map(l=>l.reasoningEffort)),j=ce(c,h),C=Math.max(0,...c.map(l=>l.updatedAt??0),...h.map(l=>l.lastActivityAt)),g=U(w);return[{kind:"role",key:`role:${i}`,agentId:w.id,name:w.name,headline:g.headline,harnesses:u,model:y.length===1?y[0]:null,effort:A.length===1?A[0]:null,status:j,needs:j==="needs",working:j==="working"||j==="thinking",substrates:h,primary:f,work:f?.work??g.headline,conversationId:f?.conversationId??w.conversationId,lastActivityAt:C,sessionCount:h.reduce((l,k)=>l+k.sessionCount,0)}]})}function L(e){switch(e.status){case"needs":return 3;case"working":return 2;case"thinking":return 1;case"idle":return 0}}function B(e,n,s,r=null){const o=O(s,r);return[...e.map(c=>ie(c,n)),...he(o,e,n)].sort((c,d)=>L(d)-L(c)||d.lastActivityAt-c.lastActivityAt||c.name.localeCompare(d.name))}function pe(e,n){switch(n){case"all":return!0;case"active":return e.status==="working"||e.status==="thinking";case"needs":return e.status==="needs";case"idle":return e.status==="idle"}}function je(e,n){const s=_(e);switch(n){case"all":return!0;case"active":return s==="working";case"needs":return s==="needs";case"idle":return s==="idle"}}function me(e,n){const s=n.trim().toLowerCase();return!s||e.name.toLowerCase().includes(s)||e.headline.toLowerCase().includes(s)||e.work.toLowerCase().includes(s)?!0:e.substrates.some(r=>r.projectTitle.toLowerCase().includes(s)||r.projectSlug.toLowerCase().includes(s)||(r.projectRoot?.toLowerCase().includes(s)??!1))}function we(e,n){const s=n.trim().toLowerCase();return s?e.title.toLowerCase().includes(s)||e.slug.toLowerCase().includes(s)||(e.root?.toLowerCase().includes(s)??!1):!0}function fe(e){switch(e){case"needs":return"Needs attention";case"working":return"Working";case"thinking":return"Thinking";case"idle":return"Idle"}}const ge=[{id:"all",label:"All"},{id:"active",label:"Active"},{id:"needs",label:"Needs attention"},{id:"idle",label:"Idle"}];function ke(e,n){if(n){e({view:"conversation",conversationId:n});return}e({view:"messages"})}function R(e,n){e({view:"code",project:n})}function xe(e,n,s){e(K(n,s))}function P(e,n,s){e({view:"agents-v2",projectSlug:s,...n.machineId?{machineId:n.machineId}:{},...n.showEphemeral?{showEphemeral:!0}:{}})}function ve({model:e,agents:n,route:s,navigate:r,nowMs:o}){const[i,c]=m.useState("projects"),[d,w]=m.useState("all"),[p,v]=m.useState(""),[h,f]=m.useState(!1),u=m.useMemo(()=>B(e.projects,e.threads,n,s.machineId??null),[n,e.projects,e.threads,s.machineId]),y=m.useMemo(()=>u.filter(a=>pe(a,d)&&me(a,p)),[u,p,d]),A=m.useMemo(()=>e.projects.filter(a=>je(a,d)&&we(a,p)),[e.projects,p,d]),j=e.projects.filter(a=>a.working>0||a.liveSessionCount>0).length,C=e.projects.filter(a=>a.needs>0).length,g=u.filter(a=>a.status==="working"||a.status==="thinking").length,l=u.filter(a=>a.status==="needs").length,k=u.filter(a=>a.kind==="project").length,N=u.filter(a=>a.kind==="role").length;return t.jsxs("main",{className:"cw-root","aria-label":"Projects and agents",children:[t.jsxs("div",{className:"cw-toolbar",children:[t.jsxs("div",{className:"cw-modeToggle",role:"group","aria-label":"Directory view",children:[t.jsxs("button",{type:"button","data-active":i==="projects"||void 0,"aria-pressed":i==="projects",onClick:()=>c("projects"),title:"Browse tracked projects",children:[t.jsx(Z,{size:13,strokeWidth:1.9,"aria-hidden":!0}),"Projects"]}),t.jsxs("button",{type:"button","data-active":i==="agents"||void 0,"aria-pressed":i==="agents",onClick:()=>c("agents"),title:"Browse durable agent identities",children:[t.jsx(ne,{size:13,strokeWidth:1.9,"aria-hidden":!0}),"Agents"]})]}),t.jsxs("label",{className:"cw-search",role:"search",children:[t.jsx(G,{size:13,strokeWidth:1.8,"aria-hidden":!0}),t.jsx("input",{type:"search",value:p,placeholder:i==="projects"?"Find project":"Find agent or project","aria-label":i==="projects"?"Find project":"Find agent or project",onChange:a=>v(a.currentTarget.value)})]}),t.jsxs("div",{className:"cw-filters","aria-label":"Status filter",children:[t.jsx(J,{size:12,strokeWidth:1.9,"aria-hidden":!0,className:"cw-filtersIcon"}),ge.map(a=>t.jsx("button",{type:"button","data-active":d===a.id||void 0,"aria-pressed":d===a.id,onClick:()=>w(a.id),children:a.label},a.id))]}),t.jsxs("button",{type:"button",className:"cw-addProject","aria-expanded":h,onClick:()=>f(a=>!a),children:[t.jsx(H,{size:13,strokeWidth:1.9,"aria-hidden":!0}),"Add project"]})]}),h?t.jsx(Q,{onClose:()=>f(!1)}):null,t.jsx("div",{className:"cw-digest",children:i==="projects"?t.jsxs(t.Fragment,{children:[t.jsxs("span",{children:[e.projects.length," projects"]}),t.jsx("span",{className:"cw-digestSep",children:"·"}),t.jsxs("span",{"data-tone":j>0?"live":void 0,children:[j," active"]}),C>0?t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"cw-digestSep",children:"·"}),t.jsxs("span",{"data-tone":"needs",children:[C," need you"]})]}):null]}):t.jsxs(t.Fragment,{children:[t.jsxs("span",{children:[k," project agents"]}),N>0?t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"cw-digestSep",children:"·"}),t.jsxs("span",{children:[N," role ",N===1?"agent":"agents"]})]}):null,t.jsx("span",{className:"cw-digestSep",children:"·"}),t.jsxs("span",{"data-tone":g>0?"live":void 0,children:[g," active"]}),l>0?t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"cw-digestSep",children:"·"}),t.jsxs("span",{"data-tone":"needs",children:[l," need you"]})]}):null]})}),i==="projects"?t.jsx(Ae,{projects:A,route:s,navigate:r,nowMs:o,allEmpty:e.projects.length===0}):t.jsx(Se,{members:y,route:s,navigate:r,nowMs:o,allEmpty:u.length===0})]})}function ye({project:e,threads:n,route:s,navigate:r,nowMs:o}){const i=B([e],n,[])[0];return t.jsx("main",{className:"cw-root cw-root--scoped","aria-label":`${e.title} agent`,children:t.jsx(I,{title:"Project agent",members:[i],route:s,navigate:r,nowMs:o})})}function Ae({projects:e,route:n,navigate:s,nowMs:r,allEmpty:o}){return e.length===0?t.jsx("div",{className:"cw-empty",children:o?"No projects are tracked yet.":"No projects match these filters."}):t.jsx("div",{className:"cw-workspaceList",children:e.map(i=>t.jsx(Ce,{project:i,route:n,navigate:s,nowMs:r},i.slug))})}function Ce({project:e,route:n,navigate:s,nowMs:r}){const o=e.working>0||e.liveSessionCount>0;return t.jsx("article",{className:"cw-workspace","data-state":e.needs>0?"needs":o?"live":void 0,children:t.jsxs("button",{type:"button",className:"cw-workspaceHead",onClick:()=>P(s,n,e.slug),children:[t.jsxs("span",{className:"cw-workspaceTitle",children:[t.jsx(x,{size:13,strokeWidth:1.7,"aria-hidden":!0}),"/",e.title]}),t.jsx("span",{className:"cw-workspaceRoot",title:e.root??void 0,children:e.root?T(e.root):"Discovered project"}),t.jsxs("span",{className:"cw-workspaceMeta",children:[e.needs>0?t.jsx("b",{"data-tone":"needs",children:"Needs you"}):null,o?t.jsx("b",{"data-tone":"live",children:"Active"}):null,t.jsxs("span",{children:[e.worktreeCount," ",e.worktreeCount===1?"worktree":"worktrees"]}),t.jsxs("span",{children:[e.sessionCount," ",e.sessionCount===1?"session":"sessions"]}),t.jsx("time",{children:e.lastActivityAt?F(e.lastActivityAt,r):"no activity"})]})]})})}function Se({members:e,route:n,navigate:s,nowMs:r,allEmpty:o}){if(e.length===0)return t.jsx("div",{className:"cw-empty",children:o?"No durable agents are registered yet.":"No agents match these filters."});const i=e.filter(d=>d.kind==="role"),c=e.filter(d=>d.kind==="project");return t.jsxs("div",{className:"cw-agentDirectory",children:[i.length>0?t.jsx(I,{title:"Role agents",members:i,route:n,navigate:s,nowMs:r}):null,c.length>0?t.jsx(I,{title:"Project agents",members:c,route:n,navigate:s,nowMs:r}):null]})}function I({title:e,members:n,route:s,navigate:r,nowMs:o}){return t.jsxs("section",{className:"cw-agentSection","aria-label":e,children:[t.jsxs("div",{className:"cw-agentSectionHead",children:[t.jsx("h2",{children:e}),t.jsx("span",{children:n.length})]}),t.jsx("div",{className:"cw-grid",children:n.map(i=>t.jsx(Ne,{member:i,route:s,navigate:r,nowMs:o},i.key))})]})}function Ne({member:e,route:n,navigate:s,nowMs:r}){const o=e.primary;return t.jsxs("article",{className:"cw-card","data-status":e.status,"data-kind":e.kind,children:[t.jsxs("header",{className:"cw-cardHead",children:[t.jsx(E,{agent:{name:e.name,state:be(e.status)},placement:"hero",size:46,presence:!0}),t.jsxs("div",{className:"cw-cardIdentity",children:[t.jsxs("div",{className:"cw-cardNameRow",children:[t.jsx("b",{title:e.name,children:e.name}),t.jsx("span",{className:"cw-statusPill","data-status":e.status,children:fe(e.status)})]}),t.jsx("div",{className:"cw-cardSubline",children:t.jsx("span",{className:"cw-headline",children:e.headline})})]})]}),e.kind==="project"&&o?t.jsxs("div",{className:"cw-projectContext",title:o.projectRoot??void 0,children:[t.jsx(x,{size:11,strokeWidth:1.8,"aria-hidden":!0}),t.jsx("span",{children:o.projectRoot?T(o.projectRoot):`/${o.projectTitle}`}),t.jsxs("em",{children:[e.sessionCount," ",e.sessionCount===1?"session":"sessions"]})]}):e.substrates.length>0?t.jsx("div",{className:"cw-substrates",children:e.substrates.map((i,c)=>t.jsx(Ie,{substrate:i,route:n,navigate:s,primary:c===0},i.threadId))}):null,t.jsxs("div",{className:"cw-work",children:[t.jsx("p",{title:e.work,children:e.work}),t.jsx("time",{children:e.lastActivityAt?F(e.lastActivityAt,r):"—"})]}),t.jsx("footer",{className:"cw-cardActions",children:e.kind==="project"&&o?t.jsxs(t.Fragment,{children:[t.jsxs("button",{type:"button",onClick:()=>P(s,n,o.projectSlug),children:[t.jsx(V,{size:12,strokeWidth:1.9,"aria-hidden":!0}),"Open project"]}),t.jsxs("button",{type:"button",onClick:()=>R(s,o.projectSlug),children:[t.jsx(x,{size:12,strokeWidth:1.9,"aria-hidden":!0}),"Browse code"]})]}):t.jsxs(t.Fragment,{children:[e.conversationId?t.jsxs("button",{type:"button",onClick:()=>ke(s,e.conversationId),children:[t.jsx(X,{size:12,strokeWidth:1.9,"aria-hidden":!0}),"Chat"]}):null,o?t.jsxs("button",{type:"button",onClick:()=>R(s,o.projectSlug),children:[t.jsx(x,{size:12,strokeWidth:1.9,"aria-hidden":!0}),"Browse code"]}):null,e.agentId?t.jsxs("button",{type:"button",onClick:()=>xe(s,n,e.agentId),children:[t.jsx(te,{size:12,strokeWidth:1.9,"aria-hidden":!0}),"Inspect"]}):null]})})]})}function be(e){switch(e){case"needs":return"needs_attention";case"working":return"in_turn";case"thinking":return"thinking";case"idle":return"idle"}}function Ie({substrate:e,route:n,navigate:s,primary:r=!1}){return t.jsxs("button",{type:"button",className:"cw-substrateChip","data-primary":r||void 0,"data-live":e.working||void 0,title:e.projectRoot??void 0,onClick:()=>P(s,n,e.projectSlug),children:[t.jsx(x,{size:11,strokeWidth:1.8,"aria-hidden":!0}),t.jsx("span",{children:e.projectTitle}),e.branch?t.jsxs("em",{children:["git: ",e.branch]}):null]})}const De=Object.freeze(Object.defineProperty({__proto__:null,CrewWorkspaces:ve,ProjectAgentDirectory:ye},Symbol.toStringTag,{value:"Module"}));export{ve as C,ye as P,ne as U,De as a};
@@ -1 +0,0 @@
1
- import{r as n,j as t}from"./index-DvLtl7rV.js";/* empty css */import{u as d}from"./Provider-CtXJeLrP.js";/* empty css */import{u as v}from"./page-status-E5jnk48p.js";import{A as x}from"./AgentLanesView-CetZZDyF.js";import{MissionControlView as j}from"./MissionControlView-E3V7bENU.js";import{OpsAgentsView as f}from"./OpsAgentsView-DI5wu1si.js";import{HostAdvisorView as w}from"./HostAdvisorView-Bok5Sk5c.js";import{AtopView as N}from"./AtopView-Daq_ob3z.js";import{TailView as c}from"./TailView-0uEIj2JH.js";import{u as g}from"./useContentSecondaryNav-pZe2Zfk1.js";import{OpsSubnav as S}from"./OpsSubnav-1K4Jaf__.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"./time-Dhsh_2EG.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";/* empty css */import"./tail-events-Ps8KpKah.js";import"./observe-BpEm1INu.js";import"./types-B0PlfpKc.js";import"./AgentAvatar-6-KBVKUu.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./openContent-C6XO6kr5.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./message-markup-C2LQDm_k.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./message-circle-mZCv8tvB.js";import"./wrench-DjkoAOQt.js";import"./external-link-Dp_a2vRZ.js";import"./AgentFloorView-YT-Jjccf.js";/* empty css */import"./agent-lanes-model-DXqjs0OK.js";import"./context-budget-DX_fwUs3.js";import"./lane-roster-store-DOdI1O13.js";import"./AgentLanesPreflight-q20mTjms.js";import"./AgentLaneChrome-D8bARHMx.js";import"./AgentLaneCard-DI2iW9zO.js";/* empty css */import"./AgentLaneSummaryResize-CEBjmPTa.js";import"./clipboard-e3fSpeo7.js";import"./agent-lane-card-model-CNZMPkhc.js";import"./agent-lane-preview-BhplDYGf.js";import"./agent-lane-detail-ppJId6Jc.js";import"./AgentLaneDetailSheet-52un7dKC.js";import"./SlidePanel-B9ugxWgA.js";import"./LaneTraceDetailSheet-BUgHz-sd.js";import"./LaneTraceEventFocus-DM-hoPxG.js";/* empty css */import"./mission-control-store-nDLdUZPA.js";import"./MissionContextRail-DF0_kiU7.js";import"./mission-wall-CocIM1cF.js";import"./mission-control-model-C0fByIjm.js";import"./MissionFocusOverlay-h15sQFvP.js";import"./MissionLogPane-BbdDKjUl.js";/* empty css */import"./DataTable-Bp8tU9AK.js";/* empty css */import"./useAgentHoverCard-DoBwV0LX.js";import"./sliders-horizontal-C8njVwfg.js";/* empty css */import"./compass-Dt1AMXz2.js";import"./layout-grid-DOChPJdZ.js";import"./refresh-cw-DMxGzDwn.js";import"./arrow-up-right-C6Wl-1uw.js";import"./cpu-DrqejfkB.js";import"./gauge-hU--hKVP.js";/* empty css */import"./SecondaryNav-BR4VRdgh.js";import"./secondaryNavConfig-BoQ_zYR9.js";import"./message-square-C7t_qtuj.js";import"./settings-Dyvpkb1D.js";import"./git-branch-CK5v8F2v.js";import"./scroll-text-Dze_dXtQ.js";const A=220;function F(){const r=v(),o=!!(r.hover||r.content),[i,p]=n.useState(o?{hover:r.hover,content:r.content}:null),[e,s]=n.useState(o?"enter":"hidden"),m=n.useRef(null);if(n.useEffect(()=>{if(o){m.current&&(clearTimeout(m.current),m.current=null),p({hover:r.hover,content:r.content}),s(h=>h==="show"?"show":"enter");const u=requestAnimationFrame(()=>s("show"));return()=>cancelAnimationFrame(u)}return s("leave"),m.current=setTimeout(()=>{s("hidden"),p(null),m.current=null},A),()=>{m.current&&(clearTimeout(m.current),m.current=null)}},[o,r.hover,r.content]),e==="hidden"||!i)return null;const a=i.hover?.label??i.hover?.route??null,l=i.hover?.label&&i.hover?.route?i.hover.route:null;return t.jsxs("div",{className:`s-page-status s-page-status--${e}`,role:"status","aria-live":"polite",children:[t.jsx("div",{className:"s-page-status-left",children:a&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-page-status-arrow","aria-hidden":!0,children:"→"}),t.jsx("span",{className:"s-page-status-target",children:a}),l&&t.jsx("span",{className:"s-page-status-route",children:l})]})}),t.jsx("div",{className:"s-page-status-right",children:i.content&&t.jsx("span",{className:"s-page-status-content",children:i.content})})]})}function qr({navigate:r,mode:o="mission",tailQuery:i}){const{agents:p,route:e}=d(),s=g();return t.jsxs("div",{className:"s-ops",children:[s?t.jsx("div",{className:"s-ops-header",children:t.jsx(S,{activeRoute:e,navigate:r})}):null,t.jsxs("div",{className:"s-ops-body",children:[o==="mission"&&t.jsx(j,{navigate:r,agents:p}),o==="agents"&&t.jsx(f,{navigate:r,agents:p}),o==="advisor"&&t.jsx(w,{navigate:r,agents:p}),o==="issues"&&t.jsx(c,{navigate:r,initialFilter:i,variant:"issues"}),o==="tail"&&t.jsx(c,{navigate:r,initialFilter:i,variant:"tail"}),o==="atop"&&t.jsx(N,{}),o==="lanes"&&t.jsx(x,{navigate:r,agents:p})]}),t.jsx(F,{})]})}export{qr as OpsScreen};
@@ -1 +0,0 @@
1
- import{j as t}from"./index-DvLtl7rV.js";import{S as p}from"./SecondaryNav-BR4VRdgh.js";import{O as i}from"./secondaryNavConfig-BoQ_zYR9.js";/* empty css */import"./createLucideIcon-DezKXSG2.js";import"./message-square-C7t_qtuj.js";import"./file-text-CqJgwxmv.js";import"./search-CDko0PKE.js";import"./compass-Dt1AMXz2.js";import"./settings-Dyvpkb1D.js";import"./terminal-9GRS_Qdc.js";import"./git-branch-CK5v8F2v.js";import"./code-xml-D7pOQM9l.js";import"./scroll-text-Dze_dXtQ.js";function v({activeRoute:r,navigate:o}){return t.jsx(p,{ariaLabel:"Ops sections",activeRoute:r,groups:i,navigate:o})}export{v as OpsSubnav};