@openscout/scout 0.2.78 → 0.2.79

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 (391) hide show
  1. package/README.md +19 -0
  2. package/bin/scoutd +0 -0
  3. package/dist/build-manifest.json +3 -3
  4. package/dist/client/assets/ActivityScreen-DnqqRSlS.js +1 -0
  5. package/dist/client/assets/{AddProjectForm-DMnobKch.js → AddProjectForm-BoVtelSP.js} +1 -1
  6. package/dist/client/assets/{AgentAvatar-D90c1Rzk.js → AgentAvatar-CufDA4A-.js} +1 -1
  7. package/dist/client/assets/AgentConfigurationScreen-CJqoMA0J.js +1 -0
  8. package/dist/client/assets/AgentDefinitionsWorkspace-FpEkb-tu.js +1 -0
  9. package/dist/client/assets/{AgentDetailCard-BcRBRp88.js → AgentDetailCard-DxxVkgT1.js} +1 -1
  10. package/dist/client/assets/AgentFloorView-CycUn0Lv.js +1 -0
  11. package/dist/client/assets/AgentInfoScreen-CAQAxpAK.js +1 -0
  12. package/dist/client/assets/{AgentLaneCard-RrNnDZu8.js → AgentLaneCard-DTUvE96I.js} +1 -1
  13. package/dist/client/assets/{AgentLaneChrome-D9ZwUKrl.js → AgentLaneChrome-BfVygkgL.js} +1 -1
  14. package/dist/client/assets/{AgentLaneDetailSheet-BXbPls9N.js → AgentLaneDetailSheet-CWs9wKWk.js} +1 -1
  15. package/dist/client/assets/{AgentLaneSummaryResize-BhFmGNzT.js → AgentLaneSummaryResize-CMgzYvAA.js} +1 -1
  16. package/dist/client/assets/AgentLanesEmbedScreen-BUCW4nUj.js +1 -0
  17. package/dist/client/assets/{AgentLanesPreflight-eSAoDsPi.js → AgentLanesPreflight-KWfLcaNB.js} +1 -1
  18. package/dist/client/assets/AgentLanesView-CxfbV8Kd.js +2 -0
  19. package/dist/client/assets/{AgentLiveActions-DBtnD0qE.js → AgentLiveActions-CZdAInEu.js} +1 -1
  20. package/dist/client/assets/{AgentSessions-DyqOf4nG.js → AgentSessions-Bkr0lyry.js} +2 -2
  21. package/dist/client/assets/AgentsConsole-WtFVqaPJ.js +1 -0
  22. package/dist/client/assets/AgentsScreen-BMXvuiA2.js +1 -0
  23. package/dist/client/assets/AgentsSubnav-BTNjPYoA.js +1 -0
  24. package/dist/client/assets/{AtopView-BCkae3e1.js → AtopView-_OKDlZ1h.js} +1 -1
  25. package/dist/client/assets/BackToPicker-CkUmHuuo.js +1 -0
  26. package/dist/client/assets/{BriefingDetailScreen-BwFyysT8.js → BriefingDetailScreen-i54EtZKW.js} +1 -1
  27. package/dist/client/assets/{BriefingsScreen-BQEevztH.js → BriefingsScreen-CBrHojlQ.js} +1 -1
  28. package/dist/client/assets/{BrokerMetadataPanel-7UjcuNjd.js → BrokerMetadataPanel-opTLuZU6.js} +1 -1
  29. package/dist/client/assets/{BrokerScreen-7ekklu88.js → BrokerScreen-CObCQvoy.js} +2 -2
  30. package/dist/client/assets/{ChatCollapsedStrip-CQSYSd8s.js → ChatCollapsedStrip-Dr2vmKXQ.js} +1 -1
  31. package/dist/client/assets/CodeDiffPane-CLOGjwul.js +1 -0
  32. package/dist/client/assets/{CodeProjectPicker-DqKFCpLU.js → CodeProjectPicker-DTV8hR6A.js} +1 -1
  33. package/dist/client/assets/CodeScreen-BXqi72NK.js +1 -0
  34. package/dist/client/assets/{ContextMenu-bARZqTzD.js → ContextMenu-BlBQhpax.js} +1 -1
  35. package/dist/client/assets/{ConversationComposer-Bla3DDvM.js → ConversationComposer-BBNPa5S9.js} +1 -1
  36. package/dist/client/assets/ConversationFeedRows-BuejHMCY.js +1 -0
  37. package/dist/client/assets/ConversationHeader-DXMT-YXv.js +1 -0
  38. package/dist/client/assets/ConversationPanels-DHCtilQF.js +2 -0
  39. package/dist/client/assets/ConversationScreen-DSxIt9pq.css +1 -0
  40. package/dist/client/assets/ConversationScreen-Dz2d_Z_F.js +1 -0
  41. package/dist/client/assets/ConversationStatus-DSgdVofa.js +1 -0
  42. package/dist/client/assets/{DataTable-E8s_MmoA.js → DataTable-0DwuXyvW.js} +1 -1
  43. package/dist/client/assets/{DispatchAftermath-Dpe88DFX.js → DispatchAftermath-BrreQifA.js} +1 -1
  44. package/dist/client/assets/{DocumentFocusViewer-BeVwwl26.js → DocumentFocusViewer-DU_9BHsD.js} +1 -1
  45. package/dist/client/assets/{EmbeddableSurfacesLab-BQqFQVnI.js → EmbeddableSurfacesLab-DdaswbfI.js} +1 -1
  46. package/dist/client/assets/{EmptyState-4F9XDFQm.js → EmptyState-CoL-QuUO.js} +1 -1
  47. package/dist/client/assets/{FileViewerPane-CLgUhSm4.js → FileViewerPane-C9Ly01Ef.js} +1 -1
  48. package/dist/client/assets/{FleetSearch-Dz5euQJe.js → FleetSearch-DlWTLl-v.js} +1 -1
  49. package/dist/client/assets/FlightObserveScreen-C-9S0nA5.js +1 -0
  50. package/dist/client/assets/{FollowScreen-DZ4qfYOY.js → FollowScreen--Q04xSSE.js} +1 -1
  51. package/dist/client/assets/{HarnessMark-Cbv3Ib0c.js → HarnessMark-Dm_qm1Ku.js} +1 -1
  52. package/dist/client/assets/HarnessesScreen-Y54viPX8.js +1 -0
  53. package/dist/client/assets/{HomeHero-B3uYd-pP.js → HomeHero-Cfsow7qL.js} +1 -1
  54. package/dist/client/assets/KnowledgeSearchInspector-DKashKoH.js +1 -0
  55. package/dist/client/assets/KnowledgeSearchScreen-DsdDz8wY.js +1 -0
  56. package/dist/client/assets/{LaneToolHoverCard-Bla0gBdm.js → LaneToolHoverCard-BzehBmdi.js} +1 -1
  57. package/dist/client/assets/LaneTraceDetailSheet-CBf_aNZx.js +1 -0
  58. package/dist/client/assets/{LaneTraceEventFocus-BF9ERP5O.js → LaneTraceEventFocus-DYvHfs_3.js} +1 -1
  59. package/dist/client/assets/{MeshCanvas-DFEPkpqY.js → MeshCanvas-DIjlrMPU.js} +2 -2
  60. package/dist/client/assets/{MeshCanvasMinimap-CyVFYixr.js → MeshCanvasMinimap-DEq-PkF0.js} +1 -1
  61. package/dist/client/assets/MeshScreen-TgDtz-1l.js +1 -0
  62. package/dist/client/assets/{MeshTopologyView-CalkZghg.js → MeshTopologyView-BMHpH5BU.js} +2 -2
  63. package/dist/client/assets/{MessageComposerSuggestions-DpxN9WiB.js → MessageComposerSuggestions-zAUUcLOv.js} +1 -1
  64. package/dist/client/assets/MessagesScreen-BTQL0UcE.js +1 -0
  65. package/dist/client/assets/{MissionControlView-lUeAiSVg.js → MissionControlView-D59SPnAm.js} +1 -1
  66. package/dist/client/assets/{MissionFocusOverlay-wlCmWDCT.js → MissionFocusOverlay-C7cPt6eU.js} +1 -1
  67. package/dist/client/assets/MissionLeftAgentRow-CxlH3dON.js +1 -0
  68. package/dist/client/assets/{MissionLogPane-__MVtEl9.js → MissionLogPane-Ye3YlF9s.js} +1 -1
  69. package/dist/client/assets/{NewAgentModal-Bg-eWHpY.js → NewAgentModal-DprvD4EK.js} +1 -1
  70. package/dist/client/assets/NewChatComposer-B5FnPyzS.js +19 -0
  71. package/dist/client/assets/{NewChatOrigin-Bk2OyVjI.js → NewChatOrigin--pHWUb4V.js} +1 -1
  72. package/dist/client/assets/ObserveEmbedScreen-CfvrnOiZ.js +2 -0
  73. package/dist/client/assets/{ObserveTextFlow-rsFj_rVo.js → ObserveTextFlow-CBitljxi.js} +2 -2
  74. package/dist/client/assets/{ObservedTopologyPanel-DyUeV98H.js → ObservedTopologyPanel-Dv6fbHzW.js} +1 -1
  75. package/dist/client/assets/OpenScoutAppShell-BIp0WitK.js +87 -0
  76. package/dist/client/assets/OpsAgentsView-CoBfAigH.js +1 -0
  77. package/dist/client/assets/OpsScreen-Bbo0W64T.js +1 -0
  78. package/dist/client/assets/OpsSubnav-CoN8utF8.js +1 -0
  79. package/dist/client/assets/{PlanView-C1CjH3PG.js → PlanView-DYtt8H37.js} +1 -1
  80. package/dist/client/assets/ProjectAgentProfile-FiiIcB5R.js +1 -0
  81. package/dist/client/assets/{ProjectAgentProfileBar-CtTpj6fU.js → ProjectAgentProfileBar-B3IvVbqS.js} +1 -1
  82. package/dist/client/assets/ProjectAgentProfileHero-D5E8yvDj.js +1 -0
  83. package/dist/client/assets/ProjectsInbox-BWiXjGi7.js +2 -0
  84. package/dist/client/assets/{ProjectsRail-BgiuV4LR.js → ProjectsRail-DEDS-M1c.js} +1 -1
  85. package/dist/client/assets/ProjectsScreen-Cxk4CuYn.js +1 -0
  86. package/dist/client/assets/ProjectsThreadAside-BF66ugT5.js +1 -0
  87. package/dist/client/assets/Provider-tFc3jqZ4.js +1 -0
  88. package/dist/client/assets/{RailRow-BoGxAHNF.js → RailRow-BTlVAnHS.js} +1 -1
  89. package/dist/client/assets/RawSessionsTable-BsGVgZB3.js +1 -0
  90. package/dist/client/assets/RealtimeVoiceScreen-B0Bem5Rc.js +1 -0
  91. package/dist/client/assets/{RepoDiffEmbedScreen-C0rumUME.js → RepoDiffEmbedScreen-CtTdlQ2A.js} +1 -1
  92. package/dist/client/assets/{RepoDiffPageScreen-DMv6DioL.js → RepoDiffPageScreen-BRvaVYoC.js} +1 -1
  93. package/dist/client/assets/RepoDiffViewer-Bo0gREMj.js +7 -0
  94. package/dist/client/assets/RepoDiffViewerLazy-C8UPk4oo.js +2 -0
  95. package/dist/client/assets/{ReposScreen-CB_YBWYf.js → ReposScreen-BBkJf8xT.js} +2 -2
  96. package/dist/client/assets/{ScoutDeckSurface-CxIYFyWx.js → ScoutDeckSurface-Bi9ov9Bm.js} +1 -1
  97. package/dist/client/assets/{ScoutSurface-CYz_TcWC.js → ScoutSurface-DEQg_7Io.js} +1 -1
  98. package/dist/client/assets/{ScoutbotBroadcastChip-L_R9atj0.js → ScoutbotBroadcastChip-DJXuyn73.js} +1 -1
  99. package/dist/client/assets/{ScoutbotFxLab-CgiZMDMW.js → ScoutbotFxLab-BgsuLDjo.js} +1 -1
  100. package/dist/client/assets/{ScoutbotRealtimeVoiceCall-FMQOr1Np.js → ScoutbotRealtimeVoiceCall-Bzyl0BCS.js} +1 -1
  101. package/dist/client/assets/{SecondaryNav-B3-nh5dM.js → SecondaryNav-Bks0CO2h.js} +1 -1
  102. package/dist/client/assets/SessionEmbedScreen-b0Zgmfx5.js +1 -0
  103. package/dist/client/assets/SessionObserve-CLrHfAKZ.css +1 -0
  104. package/dist/client/assets/SessionObserve-Dlx5vDaV.js +12 -0
  105. package/dist/client/assets/SessionObserveEvidence-ChBD1d4c.js +1 -0
  106. package/dist/client/assets/SessionRefScreen-D7TfPYPN.js +1 -0
  107. package/dist/client/assets/SessionsScreen-BlknOWAd.js +1 -0
  108. package/dist/client/assets/{SettingsDrawer-XfdAa_nD.js → SettingsDrawer-C587L1i1.js} +3 -3
  109. package/dist/client/assets/SettingsDrawer-UX7pFJU_.css +1 -0
  110. package/dist/client/assets/SettingsScreen-BIlYxv_a.js +1 -0
  111. package/dist/client/assets/{ShikiPane-Ap1iPxYb.js → ShikiPane-I_OTW5NO.js} +1 -1
  112. package/dist/client/assets/{SlidePanel-COwtoJqR.js → SlidePanel-FCqT1zO3.js} +1 -1
  113. package/dist/client/assets/SpriteAvatar-CQs-jC-v.js +1 -0
  114. package/dist/client/assets/{StatusPill-DhBL__p8.js → StatusPill-CbABggnQ.js} +1 -1
  115. package/dist/client/assets/{TailView-DGj_5HA9.js → TailView-C_MXVSum.js} +2 -2
  116. package/dist/client/assets/Terminal-DwZyo8kA.js +1 -0
  117. package/dist/client/assets/TerminalEmbedScreen-Czp3tQyd.js +1 -0
  118. package/dist/client/assets/{TextDocumentSurface-BpAw4eQS.js → TextDocumentSurface-C-9EtYqt.js} +1 -1
  119. package/dist/client/assets/{TmuxPeek-m1osv33Q.js → TmuxPeek-Dz1gJ2pU.js} +1 -1
  120. package/dist/client/assets/{VoicePermissionsPanel-DsK53ar4.js → VoicePermissionsPanel-MfICy9kk.js} +1 -1
  121. package/dist/client/assets/{WorkDetailScreen-Bx0JimPC.js → WorkDetailScreen-Cs7kdllj.js} +3 -3
  122. package/dist/client/assets/{WorkFilesViewer-Btl6C2Q1.js → WorkFilesViewer-CF-nhtZ4.js} +1 -1
  123. package/dist/client/assets/{activity-CA8qS6PI.js → activity-WhBf3FXP.js} +1 -1
  124. package/dist/client/assets/{addon-fit-BZ-kXjeN.js → addon-fit-q-x_HytU.js} +1 -1
  125. package/dist/client/assets/{addon-webgl-D9-EQVEK.js → addon-webgl-fhhvEA9h.js} +1 -1
  126. package/dist/client/assets/{agent-essentials-BSY1o46q.js → agent-essentials-DyJiUGpZ.js} +1 -1
  127. package/dist/client/assets/agent-identity-xQHedtLl.js +1 -0
  128. package/dist/client/assets/agent-lane-card-BkWVDYM8.css +1 -0
  129. package/dist/client/assets/{agent-lane-card-model-r2frk57c.js → agent-lane-card-model-BCIwPjEh.js} +1 -1
  130. package/dist/client/assets/{agent-lane-detail-Djm3YJEa.js → agent-lane-detail-Cw4QVAgH.js} +1 -1
  131. package/dist/client/assets/{agent-lane-preview-CmHVe3dU.js → agent-lane-preview-BtnfNyFR.js} +1 -1
  132. package/dist/client/assets/{agent-lanes-model-B4YTt4OF.js → agent-lanes-model-Bl6xfviL.js} +1 -1
  133. package/dist/client/assets/{arc.es-CQBb-dVu.js → arc.es-DPJ0xRV6.js} +1 -1
  134. package/dist/client/assets/{arrow-down-BPLe0am9.js → arrow-down-DsD-dYj-.js} +1 -1
  135. package/dist/client/assets/{arrow-left-DEZzHiPS.js → arrow-left-WjQIN9J6.js} +1 -1
  136. package/dist/client/assets/{arrow-up-right-ClxBnsi7.js → arrow-up-right-CtTDrZJr.js} +1 -1
  137. package/dist/client/assets/{bot-eu8pBNvI.js → bot-B_Uzf4_O.js} +1 -1
  138. package/dist/client/assets/{check-DjgFiBxb.js → check-BbgHJX8u.js} +1 -1
  139. package/dist/client/assets/{chevron-down-BGk5qoEw.js → chevron-down-BFai6ZfE.js} +1 -1
  140. package/dist/client/assets/{chevron-right-XiIHsk4m.js → chevron-right-CyUa1zXx.js} +1 -1
  141. package/dist/client/assets/chunk-HRAB3GC3-CvwpNg-G.js +1 -0
  142. package/dist/client/assets/{chunk-T65CQEWV-CrzwSeEt.js → chunk-T65CQEWV-DI4NKdNq.js} +1 -1
  143. package/dist/client/assets/{chunk-YOZR3KYS-Bet8khjg.js → chunk-YOZR3KYS-BW85tiCr.js} +3 -3
  144. package/dist/client/assets/clock-DviOalxA.js +1 -0
  145. package/dist/client/assets/{code-xml-B6jOCM4V.js → code-xml-05TD3uOC.js} +1 -1
  146. package/dist/client/assets/content-2u_eV3fX.js +1 -0
  147. package/dist/client/assets/content-5irOghrY.js +1 -0
  148. package/dist/client/assets/content-8Z_0CwtD.js +1 -0
  149. package/dist/client/assets/content-B38YRDBu.js +1 -0
  150. package/dist/client/assets/content-BE3uK0LB.js +1 -0
  151. package/dist/client/assets/{content-C2EwTb2y.js → content-BtIxSqVY.js} +1 -1
  152. package/dist/client/assets/content-CFsPAihU.js +1 -0
  153. package/dist/client/assets/content-CKj5g5tu.js +1 -0
  154. package/dist/client/assets/{content-D5kJmfgl.js → content-CLDWXf9Z.js} +1 -1
  155. package/dist/client/assets/content-CRr73E0r.js +1 -0
  156. package/dist/client/assets/content-CVR75_Uj.js +1 -0
  157. package/dist/client/assets/content-Czdp7_JQ.js +1 -0
  158. package/dist/client/assets/content-D0_EJ6nP.js +1 -0
  159. package/dist/client/assets/content-DNmxpNhD.js +1 -0
  160. package/dist/client/assets/content-XpbI9uxd.js +1 -0
  161. package/dist/client/assets/content-cyxWdgKQ.js +1 -0
  162. package/dist/client/assets/{context-budget-CbB4BDcO.js → context-budget-DX_fwUs3.js} +1 -1
  163. package/dist/client/assets/{conversation-icons-IIG5ha6D.js → conversation-icons-DohQL6GI.js} +1 -1
  164. package/dist/client/assets/conversation-model-C4yb6_FA.js +1 -0
  165. package/dist/client/assets/conversation-motion-features-CifSdJtm.js +1 -0
  166. package/dist/client/assets/{copy-CQGYbxdu.js → copy-CwCAivnc.js} +1 -1
  167. package/dist/client/assets/{createLucideIcon-OpA4Amw5.js → createLucideIcon-DlxlBfLC.js} +1 -1
  168. package/dist/client/assets/discover-DoiAJo4Z.js +2 -0
  169. package/dist/client/assets/embed-entry-D1Or9S4d.js +2 -0
  170. package/dist/client/assets/{external-link-CXBytO9o.js → external-link-CnjcXf32.js} +1 -1
  171. package/dist/client/assets/{eye-0PvebX_a.js → eye-So8tNNK6.js} +1 -1
  172. package/dist/client/assets/{file-text-BODxCjcz.js → file-text-i3xTDUjJ.js} +1 -1
  173. package/dist/client/assets/{gestures-CcwOTu8C.js → gestures-CgvAMd6F.js} +1 -1
  174. package/dist/client/assets/{home-moving-signal-CK147hxn.js → home-moving-signal-BdkERL6B.js} +1 -1
  175. package/dist/client/assets/home-now-card-lLkv6nQs.js +1 -0
  176. package/dist/client/assets/{home-now-card-nano-BcjnOU9H.js → home-now-card-nano-CkLHUQ4J.js} +1 -1
  177. package/dist/client/assets/hooks-BPLDD9yu.js +2 -0
  178. package/dist/client/assets/inbox-thread-redesign-B_1ocqaX.css +1 -0
  179. package/dist/client/assets/index-DGoLx89y.js +1 -0
  180. package/dist/client/assets/index-DITWsjFb.css +1 -0
  181. package/dist/client/assets/index-m6dFtY5f.js +1 -0
  182. package/dist/client/assets/index-pY8-Mz7y.js +1 -0
  183. package/dist/client/assets/{index-DMiGbrBt.js → index-sUomXsrf.js} +6 -6
  184. package/dist/client/assets/{inspector-panel-DPoCWxKs.js → inspector-panel-DhXd-YbT.js} +2 -2
  185. package/dist/client/assets/{keyboard-nav-2kv_tGUS.js → keyboard-nav-BhZZ5HEq.js} +1 -1
  186. package/dist/client/assets/knowledge-search-D_bLoYtC.css +1 -0
  187. package/dist/client/assets/{lane-observe-D0rfKDnU.js → lane-observe-DrhKkQ3A.js} +1 -1
  188. package/dist/client/assets/{lane-roster-store-D8x1jac2.js → lane-roster-store-NE15Oe6M.js} +1 -1
  189. package/dist/client/assets/left-B6eawimv.js +1 -0
  190. package/dist/client/assets/left-BL2uBHe0.js +2 -0
  191. package/dist/client/assets/left-BNJguPDG.js +1 -0
  192. package/dist/client/assets/left-BvCtvN0f.js +1 -0
  193. package/dist/client/assets/left-CfBb6bxM.js +1 -0
  194. package/dist/client/assets/left-DTrlBF0h.js +2 -0
  195. package/dist/client/assets/left-agents-DsOHgDCY.js +1 -0
  196. package/dist/client/assets/left-d4hlBBxY.js +1 -0
  197. package/dist/client/assets/left-default-BRCwoCJr.js +1 -0
  198. package/dist/client/assets/left-lanes-DNtoRzoV.js +1 -0
  199. package/dist/client/assets/left-mission-DsTu2X5Y.js +1 -0
  200. package/dist/client/assets/left-plan-CtySjsXC.js +2 -0
  201. package/dist/client/assets/library-CLpgWNJO.js +1 -0
  202. package/dist/client/assets/{loader-circle-CbHjZsz1.js → loader-circle-lWOOKezu.js} +1 -1
  203. package/dist/client/assets/{local-agents--00gLMqr.js → local-agents-C7fDHLVC.js} +1 -1
  204. package/dist/client/assets/{mentions-jSuTGeet.js → mentions-CY_wPZc5.js} +1 -1
  205. package/dist/client/assets/mesh-ops-B1kDjizF.css +1 -0
  206. package/dist/client/assets/mesh-ops-Kn8pCtyJ.js +1 -0
  207. package/dist/client/assets/{mesh-view-store-CWidRbTE.js → mesh-view-store-D14ihwkF.js} +1 -1
  208. package/dist/client/assets/{message-circle-CG-96zts.js → message-circle-C5UZ6fO7.js} +1 -1
  209. package/dist/client/assets/{message-markup-3J9pi3nx.js → message-markup-C8Nx04sP.js} +1 -1
  210. package/dist/client/assets/{message-square-DSaGpjFU.js → message-square-BD-4UUdc.js} +1 -1
  211. package/dist/client/assets/{mission-control-store-BlnEhiCq.js → mission-control-store-xQHVQdm8.js} +1 -1
  212. package/dist/client/assets/{model-CpAxGuis.js → model-IGCUEsMy.js} +1 -1
  213. package/dist/client/assets/{observe-CuLGD9Zp.js → observe-uJfIlIUV.js} +1 -1
  214. package/dist/client/assets/{page-status-DpkedE1F.js → page-status-BymFEFai.js} +1 -1
  215. package/dist/client/assets/paperclip-DL9BXPp2.js +1 -0
  216. package/dist/client/assets/{plus--b1raV_O.js → plus-C9lTjsgd.js} +1 -1
  217. package/dist/client/assets/profile-BqY5tesX.js +1 -0
  218. package/dist/client/assets/{projects-inbox-CHyUFQ6w.js → projects-inbox-DfVmGFFk.js} +1 -1
  219. package/dist/client/assets/{radio-Bz8ZePxj.js → radio-DedMyP8J.js} +1 -1
  220. package/dist/client/assets/{refresh-cw-BBmAnCB7.js → refresh-cw-D8PFyhUa.js} +1 -1
  221. package/dist/client/assets/repo-diff-DyYmQMSA.css +1 -0
  222. package/dist/client/assets/resolve-panes-1xeZMuaw.js +1 -0
  223. package/dist/client/assets/resolve-sidebar-context-PLr32WHN.js +1 -0
  224. package/dist/client/assets/right-1x7HzabC.js +1 -0
  225. package/dist/client/assets/{right-DjRXbnRP.js → right-C1sIsSHR.js} +1 -1
  226. package/dist/client/assets/right-CFzPUzlF.js +1 -0
  227. package/dist/client/assets/right-CRKyeJDk.js +1 -0
  228. package/dist/client/assets/right-CagzkLWg.js +1 -0
  229. package/dist/client/assets/right-CsV149pN.js +1 -0
  230. package/dist/client/assets/right-DITNyG2s.js +1 -0
  231. package/dist/client/assets/right-E3nNcLE3.js +1 -0
  232. package/dist/client/assets/right-eUQvSjd7.js +1 -0
  233. package/dist/client/assets/right-ozp4nM44.js +1 -0
  234. package/dist/client/assets/{rocket-BSNS_rLs.js → rocket-CriBwkHM.js} +1 -1
  235. package/dist/client/assets/router-Dja9_ygK.js +1 -0
  236. package/dist/client/assets/{runtime-picker-Bcl5iIX5.js → runtime-picker-DOZpZOlt.js} +1 -1
  237. package/dist/client/assets/{scope-views-U-ucT9m0.js → scope-views-BF_RvGKU.js} +1 -1
  238. package/dist/client/assets/{scout-voice-CU5c0LGi.js → scout-voice-BZ4KqADJ.js} +1 -1
  239. package/dist/client/assets/{scroll-text-D6Pdnar7.js → scroll-text-BIYf6g6N.js} +1 -1
  240. package/dist/client/assets/{search-CWfZtOt2.js → search-DCT_EvPr.js} +1 -1
  241. package/dist/client/assets/secondaryNavConfig-Drb7wPG4.js +1 -0
  242. package/dist/client/assets/{selection-bridge-16pk1qyG.js → selection-bridge-CJOTyYQs.js} +1 -1
  243. package/dist/client/assets/{send-horizontal-Bg5-QggH.js → send-horizontal-DDwOgEs3.js} +1 -1
  244. package/dist/client/assets/{server-CPp4ZJhZ.js → server-CHZCp3cF.js} +1 -1
  245. package/dist/client/assets/{session-catalog-BmoyVTJ_.js → session-catalog-XhGxCtP-.js} +1 -1
  246. package/dist/client/assets/{session-table-DZcrKoIH.js → session-table-sAVe44a4.js} +1 -1
  247. package/dist/client/assets/{sliders-horizontal-1oW76Xc9.js → sliders-horizontal-B9Nj-Y4J.js} +1 -1
  248. package/dist/client/assets/sparkles-up7pVlX-.js +1 -0
  249. package/dist/client/assets/{sse-CjIkKo46.js → sse-CVoGDiKW.js} +1 -1
  250. package/dist/client/assets/{tail-events-D19uAGe3.js → tail-events-CTipUIli.js} +1 -1
  251. package/dist/client/assets/{terminal-B9AOZQKR.js → terminal-DXQISjZn.js} +1 -1
  252. package/dist/client/assets/{terminal-relay-CWbJ1RCW.js → terminal-relay-B5Sma7fK.js} +1 -1
  253. package/dist/client/assets/{terminal-takeover-B8UeD9OX.js → terminal-takeover-X97KCSJk.js} +1 -1
  254. package/dist/client/assets/{time-DltNTpLl.js → time-Dhsh_2EG.js} +1 -1
  255. package/dist/client/assets/{use-conversation-list-Byab41G6.js → use-conversation-list-B1T6J_qE.js} +1 -1
  256. package/dist/client/assets/{use-fleet-active-asks-BIbQx5AS.js → use-fleet-active-asks-DLofGhhK.js} +1 -1
  257. package/dist/client/assets/use-mesh-ops-items-ByGZk8rU.js +1 -0
  258. package/dist/client/assets/{use-reduced-motion-RRBkmVkk.js → use-reduced-motion-Cvk-HRKg.js} +1 -1
  259. package/dist/client/assets/use-scout-dev-flags-BHvg3G2c.js +1 -0
  260. package/dist/client/assets/{useAgentHoverCard-DMrbBif0.js → useAgentHoverCard-D5e8Qg1z.js} +1 -1
  261. package/dist/client/assets/useContentSecondaryNav-ZfBNi3d4.js +1 -0
  262. package/dist/client/assets/usePierreRuntime-DIVunfX0.js +50 -0
  263. package/dist/client/assets/{wrench-Bkc_0lKF.js → wrench-pEVd8JnN.js} +1 -1
  264. package/dist/client/assets/{x-D3GElQbe.js → x-0XjXwGqq.js} +1 -1
  265. package/dist/client/assets/{xterm-BKR8oAkR.js → xterm-CRLlV1Xp.js} +1 -1
  266. package/dist/client/index.html +2 -2
  267. package/dist/drizzle/0007_lean_venus.sql +26 -0
  268. package/dist/drizzle/0008_luxuriant_ted_forrester.sql +1 -0
  269. package/dist/drizzle/meta/0007_snapshot.json +5767 -0
  270. package/dist/drizzle/meta/0008_snapshot.json +5774 -0
  271. package/dist/drizzle/meta/_journal.json +14 -0
  272. package/dist/main.mjs +27836 -4437
  273. package/dist/node/main.mjs +31770 -12098
  274. package/dist/pairing-runtime-controller.mjs +37653 -16847
  275. package/dist/runtime/base-daemon.mjs +109 -18
  276. package/dist/runtime/broker-daemon.mjs +22018 -2739
  277. package/dist/runtime/broker-process-manager.mjs +122 -12
  278. package/dist/runtime/mesh-discover.mjs +90 -13
  279. package/dist/scout-control-plane-web.mjs +22453 -3299
  280. package/dist/scout-web-server.mjs +22453 -3299
  281. package/dist/statusline.mjs +2 -0
  282. package/package.json +3 -1
  283. package/dist/client/assets/ActivityScreen-Cu_1V4bq.js +0 -1
  284. package/dist/client/assets/AgentConfigurationScreen-BqfOz90D.js +0 -1
  285. package/dist/client/assets/AgentDefinitionsWorkspace-CUpUrY57.js +0 -1
  286. package/dist/client/assets/AgentFloorView-8LoAEBwS.js +0 -1
  287. package/dist/client/assets/AgentInfoScreen-DZs2_ibL.js +0 -1
  288. package/dist/client/assets/AgentLanesEmbedScreen-W3qs022h.js +0 -1
  289. package/dist/client/assets/AgentLanesView-B9vuEEmZ.js +0 -2
  290. package/dist/client/assets/AgentsConsole-BgiYP2wR.js +0 -1
  291. package/dist/client/assets/AgentsScreen-DBi8x4MB.js +0 -1
  292. package/dist/client/assets/AgentsSubnav-DIEO4NPx.js +0 -1
  293. package/dist/client/assets/BackToPicker-BRvfostO.js +0 -1
  294. package/dist/client/assets/CodeDiffPane-DDPt6KPh.js +0 -1
  295. package/dist/client/assets/CodeScreen-BxCrpRHd.js +0 -1
  296. package/dist/client/assets/ConversationFeedRows-B_gPxcqA.js +0 -1
  297. package/dist/client/assets/ConversationHeader-DE3FC0m-.js +0 -1
  298. package/dist/client/assets/ConversationPanels-DLek4H6A.js +0 -2
  299. package/dist/client/assets/ConversationScreen-BDRhx-RU.js +0 -1
  300. package/dist/client/assets/ConversationScreen-C9yMAMYF.css +0 -1
  301. package/dist/client/assets/ConversationStatus-BwVLiiO4.js +0 -1
  302. package/dist/client/assets/FlightObserveScreen-6RpZYwVz.js +0 -1
  303. package/dist/client/assets/HarnessesScreen-CznAImej.js +0 -1
  304. package/dist/client/assets/KnowledgeSearchInspector-Dgdkfvvz.js +0 -1
  305. package/dist/client/assets/KnowledgeSearchScreen-DJDGGaqC.js +0 -1
  306. package/dist/client/assets/LaneTraceDetailSheet-D1CspRbl.js +0 -1
  307. package/dist/client/assets/MeshScreen-DFgevn8N.js +0 -1
  308. package/dist/client/assets/MessagesScreen-C8YKW10Y.js +0 -1
  309. package/dist/client/assets/MissionLeftAgentRow-BpZWntfl.js +0 -1
  310. package/dist/client/assets/NewChatComposer-Cs6OsxK6.js +0 -19
  311. package/dist/client/assets/ObserveEmbedScreen-y2EpuqRZ.js +0 -2
  312. package/dist/client/assets/OpenScoutAppShell-C_URc8sV.js +0 -87
  313. package/dist/client/assets/OpsAgentsView-UN7iOscs.js +0 -1
  314. package/dist/client/assets/OpsScreen-Buf3LKjb.js +0 -1
  315. package/dist/client/assets/OpsSubnav-DsuXzHah.js +0 -1
  316. package/dist/client/assets/ProjectAgentProfile-DJusrAV-.js +0 -1
  317. package/dist/client/assets/ProjectAgentProfileHero-BFwNJo_N.js +0 -1
  318. package/dist/client/assets/ProjectsInbox-GhVMxOhw.js +0 -2
  319. package/dist/client/assets/ProjectsScreen-eNUBy4YU.js +0 -1
  320. package/dist/client/assets/ProjectsThreadAside-CoBgnHmr.js +0 -1
  321. package/dist/client/assets/Provider-C7UKGHQy.js +0 -1
  322. package/dist/client/assets/RawSessionsTable-DL8y_eEy.js +0 -1
  323. package/dist/client/assets/RealtimeVoiceScreen-ffS-39zy.js +0 -1
  324. package/dist/client/assets/RepoDiffViewer-D_exm6xK.js +0 -7
  325. package/dist/client/assets/RepoDiffViewerLazy-BPgF92Bg.js +0 -2
  326. package/dist/client/assets/SessionEmbedScreen-BVC7yvWF.js +0 -1
  327. package/dist/client/assets/SessionObserve-BpggNO_M.css +0 -1
  328. package/dist/client/assets/SessionObserve-yfXFafp8.js +0 -12
  329. package/dist/client/assets/SessionRefScreen-DRgJu7Jo.js +0 -1
  330. package/dist/client/assets/SessionsScreen-D6XUsZfA.js +0 -1
  331. package/dist/client/assets/SettingsDrawer-CmJt72ww.css +0 -1
  332. package/dist/client/assets/SettingsScreen-Cy8z-EuR.js +0 -1
  333. package/dist/client/assets/SpriteAvatar-DyaGuhik.js +0 -1
  334. package/dist/client/assets/Terminal-CqvGbjXU.js +0 -1
  335. package/dist/client/assets/TerminalEmbedScreen-DuZZFFzW.js +0 -1
  336. package/dist/client/assets/agent-lane-card-Dm7YWoew.css +0 -1
  337. package/dist/client/assets/content-BDt9VBPk.js +0 -1
  338. package/dist/client/assets/content-BIXf4cKR.js +0 -1
  339. package/dist/client/assets/content-BLm0NBJM.js +0 -1
  340. package/dist/client/assets/content-C5UbLsDF.js +0 -1
  341. package/dist/client/assets/content-CR3vdrYY.js +0 -1
  342. package/dist/client/assets/content-CSPVmo2s.js +0 -1
  343. package/dist/client/assets/content-C_FGqx1X.js +0 -1
  344. package/dist/client/assets/content-CvlVUOG8.js +0 -1
  345. package/dist/client/assets/content-DTpQsomG.js +0 -1
  346. package/dist/client/assets/content-DikVsqLf.js +0 -1
  347. package/dist/client/assets/content-DlUe5Ono.js +0 -1
  348. package/dist/client/assets/content-GIBv_55n.js +0 -1
  349. package/dist/client/assets/content-Q2oclDzi.js +0 -1
  350. package/dist/client/assets/conversation-model-B47vYmWN.js +0 -1
  351. package/dist/client/assets/conversation-motion-features-BdAONVls.js +0 -1
  352. package/dist/client/assets/discover-C1YwpBDE.js +0 -2
  353. package/dist/client/assets/embed-entry-BAcGL3g9.js +0 -2
  354. package/dist/client/assets/home-now-card-BgvNWuea.js +0 -1
  355. package/dist/client/assets/hooks-B6y_O2FB.js +0 -2
  356. package/dist/client/assets/inbox-thread-redesign-Bz4FjWzr.css +0 -1
  357. package/dist/client/assets/index-BcuhqXLe.js +0 -1
  358. package/dist/client/assets/index-CJXzfjo9.js +0 -1
  359. package/dist/client/assets/index-DQPvraRS.js +0 -1
  360. package/dist/client/assets/index-DxGoC5l5.css +0 -1
  361. package/dist/client/assets/knowledge-search-CVxQwxPn.js +0 -1
  362. package/dist/client/assets/knowledge-search-DjrQdiiW.css +0 -1
  363. package/dist/client/assets/left-C--GiIh8.js +0 -2
  364. package/dist/client/assets/left-Cj7Rt89X.js +0 -1
  365. package/dist/client/assets/left-CpNEtFEg.js +0 -1
  366. package/dist/client/assets/left-CzXAuK_t.js +0 -2
  367. package/dist/client/assets/left-agents-Bo9sO1by.js +0 -1
  368. package/dist/client/assets/left-bN4PCAXa.js +0 -1
  369. package/dist/client/assets/left-default-DV9GdvYi.js +0 -1
  370. package/dist/client/assets/left-jYYGAOYD.js +0 -1
  371. package/dist/client/assets/left-lanes-D0l_Co7V.js +0 -1
  372. package/dist/client/assets/left-mission-Ci7zREkQ.js +0 -1
  373. package/dist/client/assets/left-plan-D4U1uflW.js +0 -2
  374. package/dist/client/assets/library-D-RxGiCw.js +0 -1
  375. package/dist/client/assets/profile-CVRziEDA.js +0 -1
  376. package/dist/client/assets/repo-diff-C9Qs-bEn.css +0 -1
  377. package/dist/client/assets/resolve-panes-r9B3mpW7.js +0 -1
  378. package/dist/client/assets/resolve-sidebar-context-DcG8xGaB.js +0 -1
  379. package/dist/client/assets/right-BHeiIaty.js +0 -1
  380. package/dist/client/assets/right-BkgKo9VT.js +0 -1
  381. package/dist/client/assets/right-BpEU5jWE.js +0 -1
  382. package/dist/client/assets/right-CRZXoy-X.js +0 -1
  383. package/dist/client/assets/right-ChF_pbPy.js +0 -1
  384. package/dist/client/assets/right-DMoUT3KN.js +0 -1
  385. package/dist/client/assets/right-T4Ue6EqM.js +0 -1
  386. package/dist/client/assets/right-wzrLXKur.js +0 -1
  387. package/dist/client/assets/router-Bq5dwf78.js +0 -1
  388. package/dist/client/assets/secondaryNavConfig-DqUIp0Es.js +0 -1
  389. package/dist/client/assets/sparkles-ClfRJQ6w.js +0 -1
  390. package/dist/client/assets/useContentSecondaryNav-DMl1WNm7.js +0 -1
  391. package/dist/client/assets/usePierreRuntime-wC-yMtBb.js +0 -50
@@ -1,5 +1,5 @@
1
- import{r as n,j as e}from"./index-DMiGbrBt.js";import{r as xs}from"./index-CJXzfjo9.js";import{D as js}from"./runtime-picker-Bcl5iIX5.js";import{E as Ee}from"./EmptyState-4F9XDFQm.js";import{u as ks,i as vs}from"./MessageComposerSuggestions-DpxN9WiB.js";import{r as ws,R as Ns,e as Ss,a as Cs}from"./NewChatComposer-Cs6OsxK6.js";import{a as le}from"./api-h5zurxmi.js";import{c as Xe}from"./clipboard-e3fSpeo7.js";import{u as Is}from"./sse-CjIkKo46.js";import{b as Pe}from"./status-tone-BM_zuRy1.js";import{t as Fe,a as Ze,n as X}from"./time-DltNTpLl.js";import{u as es,A as Rs}from"./Provider-C7UKGHQy.js";import{o as $e}from"./openContent-C6XO6kr5.js";import{g as As,b as ce,h as ss,e as $s,i as Ds,d as Es,j as Fs,k as Ms,l as Ls,m as Ts}from"./broker-display-pp33bLsu.js";import{BrokerMetadataPanel as Ps}from"./BrokerMetadataPanel-7UjcuNjd.js";import{DispatchAftermath as zs}from"./DispatchAftermath-Dpe88DFX.js";import{i as Bs,c as qs,n as Ue}from"./keyboard-nav-2kv_tGUS.js";import{ShikiPane as Os}from"./ShikiPane-Ap1iPxYb.js";import{d as _s}from"./types-B0PlfpKc.js";/* empty css */import{L as Se}from"./loader-circle-CbHjZsz1.js";import{X as Me}from"./x-D3GElQbe.js";import{E as De}from"./external-link-CXBytO9o.js";import{A as Ks}from"./arrow-down-BPLe0am9.js";import{B as He}from"./bot-eu8pBNvI.js";import{R as Je}from"./refresh-cw-BBmAnCB7.js";import{C as We}from"./chevron-down-BGk5qoEw.js";import{C as rs}from"./check-DjgFiBxb.js";import{C as as}from"./copy-CQGYbxdu.js";import{M as ts}from"./message-square-DSaGpjFU.js";import{S as Us,P as Hs}from"./sparkles-ClfRJQ6w.js";import{P as Js}from"./plus--b1raV_O.js";import{S as Ws}from"./send-horizontal-Bg5-QggH.js";import{c as ns}from"./createLucideIcon-OpA4Amw5.js";import{R as Qs}from"./radio-Bz8ZePxj.js";import{b as Vs,M as Ys}from"./DocumentFocusViewer-BeVwwl26.js";const Gs=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]],Xs=ns("at-sign",Gs);const Zs=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],er=ns("hash",Zs),sr=160;function Qe(s){const a=new URLSearchParams({limit:String(sr)});return s&&a.set("cursor",s),`/api/broker?${a.toString()}`}const Ve={index:-1,request:0};function rr(s,a){return{index:a,request:s.request+1}}function os(s,a){return a===s.index?s:{index:a,request:s.request}}function ar(s,a){return s.index<a?s:os(s,a>0?a-1:-1)}function tr(s,a){return s.request!==a}function nr({enabled:s,rowCount:a,onActivateRow:t,onClearSelection:i}){const[f,d]=n.useState(Ve),b=f.index,u=n.useRef(new Map),c=n.useRef(Ve.request),x=n.useCallback(y=>{d(m=>rr(m,typeof y=="function"?y(m.index):y))},[]),j=n.useCallback(y=>{d(m=>os(m,typeof y=="function"?y(m.index):y))},[]);n.useEffect(()=>{if(!tr(f,c.current)||(c.current=f.request,f.index<0))return;const y=u.current.get(f.index);y?.scrollIntoView({block:"nearest"}),y?.focus()},[f]),n.useEffect(()=>{d(y=>ar(y,a))},[a]);const R=n.useCallback((y,m)=>{m?u.current.set(y,m):u.current.delete(y)},[]);n.useEffect(()=>{if(!s)return;const y=m=>{if(document.querySelector(".sys-broker-page")&&!(Bs(m.target)||qs())&&a!==0){if(m.key==="Escape"){i&&(m.preventDefault(),i(),j(-1));return}if(m.key==="ArrowDown"||m.key==="j"){m.preventDefault(),x(I=>Ue(I,a,1));return}if(m.key==="ArrowUp"||m.key==="k"){m.preventDefault(),x(I=>Ue(I,a,-1));return}if(m.key==="Home"||m.key==="g"&&!m.shiftKey){m.preventDefault(),x(0);return}if(m.key==="End"||m.key==="G"){m.preventDefault(),x(a-1);return}if(m.key==="Enter"||m.key===" "){const I=b<0?0:b;m.preventDefault(),x(I),t(I)}}};return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[s,b,x,t,i,a,j]);const U=n.useCallback(y=>({tabIndex:b===y?0:-1,ref:m=>R(y,m),onFocus:()=>j(y)}),[b,R,j]);return{focusedIndex:b,setFocusedIndex:j,getRowFocusProps:U}}const ye=["all","delivered","failed"],or={all:"All",delivered:"Delivered",failed:"Failed"};function ir(s){switch(s){case"success":return"Success";case"failed_query":return"Query failure";case"failed_delivery":return"Delivery failure";default:return"Delivery attempt"}}function is(s){return s.messageId??s.deliveryId??s.invocationId??s.id}function ls(s){switch(Pe(s.kind,s.status)){case"success":return"Delivered";case"danger":return"Failed";case"working":return"Pending";case"warning":return"Held";default:return s.status?s.status.charAt(0).toUpperCase()+s.status.slice(1):"Queued"}}function Le(s){if(!s)return"··";const a=s.trim().split(/\s+/).filter(Boolean);if(a.length===0)return"··";const t=a[a.length-1];return/^\d+$/.test(t)?t.slice(-2):a.length>=2?(a[0][0]+a[1][0]).toUpperCase():s.trim().slice(0,2).toUpperCase()}function lr(s){const a=X(s)??0;return new Date(a).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Ye(s){const a=X(s);return a===null?"—":new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Re(s,a,t=0){if(!s||typeof s!="object"||Array.isArray(s)||t>3)return;const i=s;for(const f of a)if(i[f]!==void 0&&i[f]!==null)return i[f];for(const f of Object.values(i)){const d=Re(f,a,t+1);if(d!==void 0)return d}}function T(s,...a){const t=Re(s.metadata,a);return typeof t!="string"&&typeof t!="number"?null:String(t).trim()||null}function Ce(s,...a){const t=Re(s.metadata,a);return typeof t=="number"||typeof t=="string"?X(t):null}function cs(s){switch(s){case"dm":return"Direct · agent";case"channel":return"Channel";case"broadcast":return"Broadcast";case null:return"No route";default:return s.replaceAll("_"," ")}}function Ie(s,a){if(a==="to")return s.route==="channel"?"Channel":s.route==="broadcast"?"Broadcast":s.target?.toLowerCase().includes("operator")?"Operator":"Agent lane";const t=T(s,"class","actorClass")?.toLowerCase();return t==="operator"||t==="human"?"Operator":t==="agent"?"Agent":s.actorName?.toLowerCase().includes("operator")?"Operator":"Sender"}function cr(s){const a=Re(s.metadata,["latencyMs","durationMs"]);if(typeof a=="number"&&Number.isFinite(a)&&a>=0)return a<1e3?`${Math.round(a)}ms`:`${(a/1e3).toFixed(a<1e4?1:0)}s`;const t=Ce(s,"sentAt","createdAt")??X(s.ts),i=Ce(s,"deliveredAt","completedAt");if(t===null||i===null||i<t)return"—";const f=i-t;return f<1e3?`${f}ms`:`${(f/1e3).toFixed(f<1e4?1:0)}s`}function Te({route:s}){switch(s){case"channel":return e.jsx(er,{size:12,"aria-hidden":"true"});case"broadcast":return e.jsx(Qs,{size:12,"aria-hidden":"true"});case"dm":return e.jsx(Xs,{size:12,"aria-hidden":"true"});default:return e.jsx(ts,{size:12,"aria-hidden":"true"})}}function dr(s,a){if(!a)return null;const t=a.trim().replace(/^@/,"").toLowerCase();return s.find(i=>[i.id,i.name,i.handle,i.selector,i.defaultSelector,i.conversationId,i.harnessSessionId].some(f=>f?.trim().replace(/^@/,"").toLowerCase()===t))??null}function ur(s,a,t){const i=t?.authorityNodeName??t?.homeNodeName??t?.authorityNodeId??t?.homeNodeId??T(s,"machine","machineName","nodeName");return(t?[{label:"Status",value:t.state},{label:"Handle",value:t.handle?`@${t.handle.replace(/^@/,"")}`:null},{label:"Project",value:t.project},{label:"Branch",value:t.branch},{label:"Runtime",value:[t.harness,t.model,t.reasoningEffort].filter(Boolean).join(" · ")||null},{label:"Machine",value:i},{label:"Working dir",value:t.cwd??t.projectRoot},{label:"Session",value:t.harnessSessionId},{label:"Conversation",value:t.conversationId??s.conversationId}]:[{label:"Kind",value:a==="to"&&s.conversationId?"Session route":Ie(s,a)},{label:"Channel",value:cs(s.route)},{label:"Session",value:a==="to"?s.target:T(s,"sessionId","harnessSessionId")},{label:"Conversation",value:s.conversationId},{label:"Harness",value:T(s,"harness")},{label:"Model",value:T(s,"model")},{label:"Project",value:T(s,"project","projectName")},{label:"Branch",value:T(s,"branch")},{label:"Machine",value:i}]).filter(d=>!!d.value)}function Ge({attempt:s,agents:a,side:t}){const i=t==="from"?s.actorName:s.target,f=dr(a,i),d=f?.name??i??(t==="from"?"Unknown":"No target"),b=f?"Agent":t==="to"&&s.conversationId?"Session":Ie(s,t),u=ur(s,t,f),c=`dispatch-endpoint-${s.id}-${t}`;return e.jsxs("span",{className:`sys-broker-endpoint sys-broker-endpoint--${t}`,tabIndex:0,"aria-describedby":c,children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:f||t==="from"?Le(d):e.jsx(Te,{route:s.route})}),e.jsx("span",{className:"sys-broker-endpoint-name",title:d,children:d}),e.jsxs("span",{className:"sys-broker-endpoint-card",id:c,role:"tooltip",children:[e.jsxs("span",{className:"sys-broker-endpoint-card-head",children:[e.jsx("span",{className:"sys-broker-avatar","aria-hidden":"true",children:f||t==="from"?Le(d):e.jsx(Te,{route:s.route})}),e.jsxs("span",{children:[e.jsx("strong",{children:d}),e.jsx("small",{children:b})]})]}),e.jsx("span",{className:"sys-broker-endpoint-card-body",children:u.map(x=>e.jsxs("span",{className:"sys-broker-endpoint-card-field",children:[e.jsx("small",{children:x.label}),e.jsx("code",{title:x.value,children:x.value})]},x.label))})]})]})}function ge(s){const a=X(s)??0,t=new Date(a);return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}function hr(s,a=Date.now()){const t=X(s)??0,i=new Date(t),f=new Date(a),d=new Date(a);return d.setDate(d.getDate()-1),ge(s)===ge(f.getTime())?"Today":ge(s)===ge(d.getTime())?"Yesterday":i.toLocaleDateString(void 0,{month:"short",day:"numeric",year:i.getFullYear()===f.getFullYear()?void 0:"numeric"})}function fr(s,a,t){return{...a,source:s.source,attempts:[...s.attempts,...a.attempts],failedQueries:s.failedQueries,failedDeliveries:s.failedDeliveries,dialogue:s.dialogue,ledger:{...a.ledger,cursors:{...s.ledger.cursors,[t]:a.ledger.cursors[t]},hasMore:{...s.ledger.hasMore,[t]:a.ledger.hasMore[t]}}}}function mr({navigate:s,embedded:a=!1,initialAttemptId:t}){const{route:i,agents:f,selectedBrokerAttempt:d,inspectBrokerAttempt:b,clearBrokerAttempt:u}=es(),[c,x]=n.useState(null),j=i.view==="broker"?i.filter??"all":"all",[R,U]=n.useState(!0),[y,m]=n.useState(!1),[I,oe]=n.useState(!1),[q,P]=n.useState(null),H=n.useRef(null),D=n.useRef(0),L=n.useRef(null),J=n.useCallback(async(o="initial")=>{const h=++D.current;!H.current&&o!=="background"?(U(!0),P(null)):m(!0);try{const k=await le(Qe());if(h!==D.current)return;H.current=k,x(k),P(null)}catch(k){if(h!==D.current)return;P(k instanceof Error?k.message:String(k))}finally{h===D.current&&(U(!1),m(!1))}},[]),ie=n.useCallback(async()=>{const o=H.current;if(!o||I)return;const h="attempts",k=o.ledger.cursors[h];if(!k||!o.ledger.hasMore[h])return;const w=++D.current;oe(!0),P(null);try{const C=await le(Qe(k));if(w!==D.current)return;const ue=H.current,M=ue?fr(ue,C,h):C;H.current=M,x(M)}catch(C){if(w!==D.current)return;P(C instanceof Error?C.message:String(C))}finally{w===D.current&&oe(!1)}},[I]),Z=n.useCallback(()=>{L.current||(L.current=setTimeout(()=>{L.current=null,J("background")},250))},[J]);n.useEffect(()=>(J("initial"),()=>{L.current&&clearTimeout(L.current)}),[J]),Is(o=>{(o.kind==="message.posted"||o.kind==="delivery.planned"||o.kind==="delivery.attempted"||o.kind==="delivery.state.changed"||o.kind==="scout.dispatched")&&Z()});const v=n.useMemo(()=>{if(!c)return[];const o=new Map(c.dialogue.map(h=>[h.id,h.body]));return As(c.attempts).map(h=>{const k=h.messageId?o.get(h.messageId):null;return k&&k!==h.detail?{...h,detail:k}:h})},[c]),E=n.useMemo(()=>{switch(j){case"delivered":return v.filter(o=>!ce(o));case"failed":return v.filter(ce);default:return v}},[j,v]),O=c?.ledger.hasMore.attempts??!1,ee=n.useMemo(()=>({all:v.length,delivered:v.filter(o=>!ce(o)).length,failed:v.filter(ce).length}),[v]),z=n.useMemo(()=>{const o=i.view==="broker"?i.attemptId:void 0;return!c||!o?null:v.find(h=>h.id===o)??c.attempts.find(h=>h.id===o)??c.failedQueries.find(h=>h.id===o)??c.failedDeliveries.find(h=>h.id===o)??null},[c,v,i]),W=z?`${z.id}\0${z.status}\0${z.ts}`:null,se=d?`${d.id}\0${d.status}\0${d.ts}`:null;n.useEffect(()=>{z&&W!==se&&b(z)},[se,b,z,W]);const[A,$]=n.useState(null),_=n.useRef(!1),S=n.useCallback(o=>{if(a){_.current=!0,$(o);return}b(o)},[a,b]),Q=n.useCallback(()=>{if(a){_.current=!0,$(null);return}u()},[u,a]),V=n.useCallback(o=>{const h=E[o];h&&(S(h),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}})))},[E,S]),{getRowFocusProps:re,setFocusedIndex:K}=nr({enabled:!!c&&E.length>0,rowCount:E.length,onActivateRow:V,onClearSelection:Q}),ae=A?.id??null,xe=A?`${A.id} ${A.status} ${A.ts}`:null;n.useEffect(()=>{if(!a||!ae)return;const o=v.find(h=>h.id===ae);o&&`${o.id} ${o.status} ${o.ts}`!==xe&&$(o)},[a,ae,xe,v]),n.useEffect(()=>{if(!a||!t||!c||_.current||A)return;const o=v.find(h=>h.id===t)??c.attempts.find(h=>h.id===t)??c.failedQueries.find(h=>h.id===t)??c.failedDeliveries.find(h=>h.id===t);o&&(_.current=!0,$(o))},[c,a,A,v,t]),n.useEffect(()=>{const o=i.view==="broker"?i.attemptId:void 0;if(!o)return;const h=E.findIndex(k=>k.id===o);h>=0&&K(h)},[E,j,i,K]);const je=n.useCallback(o=>{const k=(ye.indexOf(j)+o+ye.length)%ye.length,w=ye[k];s({view:"broker",...w==="all"?{}:{filter:w}})},[j,s]),F=a?A:null;return e.jsx("div",{className:`s-ops${a?" s-ops--embedded":""}${F?" s-ops--split":""}`,children:e.jsxs("div",{className:"s-ops-body",children:[e.jsxs("div",{className:"sys-surface-page sys-surface-page-wide sys-surface-page-fluid sys-broker-page",children:[e.jsxs("div",{className:"sys-ledger-toolbar","aria-label":"Dispatch controls",children:[c?e.jsx("div",{className:"sys-tab-row sys-tab-row--toolbar",role:"tablist","aria-label":"Dispatch message filters",onKeyDown:o=>{o.key==="ArrowRight"?(o.preventDefault(),je(1)):o.key==="ArrowLeft"&&(o.preventDefault(),je(-1))},children:ye.map(o=>e.jsxs("button",{type:"button",role:"tab","aria-selected":j===o,className:`sys-tab${j===o?" sys-tab-active":""}`,onClick:()=>s({view:"broker",...o==="all"?{}:{filter:o}}),children:[e.jsx("span",{children:or[o]}),e.jsx("span",{className:"sys-tab-count",children:ee[o]})]},o))}):e.jsx("div",{className:"sys-ledger-kicker",children:"Dispatch ledger"}),e.jsxs("div",{className:"sys-page-actions sys-ledger-actions",children:[e.jsx("div",{className:"sys-sync-note",children:R?"Loading dispatch ledger...":c?`Updated ${Fe(c.generatedAt)}${c.source?.latestMessageAt?` · latest message ${Fe(c.source.latestMessageAt)}`:""}`:"Waiting for dispatch data"}),e.jsx("button",{type:"button",className:"s-btn",disabled:R||y,onClick:()=>{J("manual")},children:y?"Refreshing...":"Refresh"})]})]}),q&&e.jsxs("div",{className:"sys-banner sys-banner-warning",children:[e.jsx("strong",{children:"Refresh failed."}),e.jsx("span",{children:q})]}),y&&c&&e.jsxs("div",{className:"sys-broker-source-note",role:"status","aria-live":"polite",children:[e.jsx(Se,{className:"sys-broker-source-spinner",size:12,"aria-hidden":"true"}),e.jsx("strong",{children:"Updating dispatches…"})]}),!y&&c?.source?.mode==="sqlite_projection"&&c.source.status==="degraded"&&c.source.detail&&e.jsxs("div",{className:"sys-broker-source-note sys-broker-source-note--warning",role:"status","aria-label":c.source.detail,title:c.source.detail,children:[e.jsx("span",{className:"sys-broker-source-dot","aria-hidden":"true"}),e.jsx("strong",{children:"Dispatch may be out of date"}),e.jsx("span",{children:"Live broker unavailable; showing saved dispatch history."})]}),R&&!c&&e.jsx(Ee,{title:"Loading dispatch",body:"Reading the dispatch database snapshot."}),!R&&!c&&!q&&e.jsx(Ee,{title:"No dispatch data",body:"No dispatch rows are available yet."}),c&&e.jsxs(e.Fragment,{children:[e.jsx(pr,{attempts:E,agents:f,selectedAttemptId:a?A?.id??null:d?.id??(i.view==="broker"?i.attemptId??null:null),onInspect:S,getRowFocusProps:re}),E.length>0&&O&&e.jsx("div",{className:"sys-ledger-footer",children:e.jsx("button",{type:"button",className:"s-btn",disabled:I,onClick:()=>{ie()},children:I?"Loading older...":"Load older"})})]})]}),F&&e.jsx("div",{className:"s-broker-embed-detail",children:e.jsx(ds,{attempt:F,navigate:s,onClose:Q})})]})})}function pr({attempts:s,agents:a,selectedAttemptId:t,onInspect:i,getRowFocusProps:f}){if(s.length===0)return e.jsx(Ee,{title:"No dispatch rows",body:"No dispatch rows are available yet."});const d=s.reduce((b,u,c)=>{const x=ge(u.ts),j=b[b.length-1];return j?.key===x?j.attempts.push({attempt:u,index:c}):b.push({key:x,label:hr(u.ts),attempts:[{attempt:u,index:c}]}),b},[]);return e.jsxs("div",{className:"sys-broker-wire","aria-label":"Dispatch ledger",children:[e.jsxs("div",{className:"sys-broker-wire-head","aria-hidden":"true",children:[e.jsx("span",{className:"sys-broker-col sys-broker-col--status",children:"Status"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--from",children:"From"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--to",children:"To"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--msg",children:"Message"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--time",children:"Time"})]}),d.map(b=>e.jsxs("section",{className:"sys-broker-day","aria-labelledby":`dispatch-day-${b.key}`,children:[e.jsxs("header",{className:"sys-broker-day-head",children:[e.jsx("h2",{id:`dispatch-day-${b.key}`,children:b.label}),e.jsxs("span",{children:[b.attempts.length," ",b.attempts.length===1?"dispatch":"dispatches"]})]}),e.jsx("div",{className:"sys-broker-wire-body",role:"list",children:b.attempts.map(({attempt:u,index:c})=>{const x=Pe(u.kind,u.status),j=ce(u),R=ss(u),U=$s(u.detail,Ds(u)),y=ls(u),m=()=>{i(u),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}}))};return e.jsxs("div",{role:"listitem",className:`sys-broker-wire-row${j?" sys-broker-wire-row--failure":""}${t===u.id?" sys-broker-wire-row--selected":""}`,"aria-label":`Inspect ${u.detail}`,onClick:m,...f(c),children:[e.jsxs("div",{className:"sys-broker-cell sys-broker-col--status",children:[e.jsx("span",{className:`sys-broker-dot sys-broker-dot--${x}`,"aria-hidden":"true"}),e.jsx("span",{className:`sys-broker-state sys-broker-state--${x}`,children:y})]}),e.jsx("div",{className:"sys-broker-cell sys-broker-col--from",children:e.jsx(Ge,{attempt:u,agents:a,side:"from"})}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--to",children:[e.jsx(Rs,{className:"sys-broker-route-arrow",size:13,"aria-hidden":"true"}),e.jsx(Ge,{attempt:u,agents:a,side:"to"})]}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--msg",children:[e.jsx("span",{className:"sys-broker-msg",title:u.detail,children:U}),j&&R&&e.jsx("span",{className:"sys-broker-msg-error",title:R,children:R})]}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--time",children:[e.jsx("time",{className:"sys-broker-time-rel",title:Ze(u.ts),children:Fe(u.ts)}),e.jsx("span",{className:"sys-broker-time-abs",children:lr(u.ts)})]})]},u.id)})})]},b.key))]})}function br(s){const a=is(s);return[{label:"Kind",value:ir(s.kind)},{label:"Time",value:Ze(s.ts)},{label:"Actor",value:s.actorName},{label:"Target",value:s.target},{label:"Route",value:s.route},{label:"Conversation",value:s.conversationId},{label:"Reference",value:a},{label:"Message",value:s.messageId===a?null:s.messageId},{label:"Delivery",value:s.deliveryId===a?null:s.deliveryId},{label:"Invocation",value:s.invocationId===a?null:s.invocationId}].filter(t=>!!t.value)}function de({value:s,subject:a,className:t}){const[i,f]=n.useState("idle"),d=n.useRef(null);n.useEffect(()=>{f("idle")},[s]),n.useEffect(()=>()=>{d.current&&clearTimeout(d.current)},[]);const b=n.useCallback(async()=>{const x=await Xe(s);d.current&&clearTimeout(d.current),f(x?"copied":"failed"),d.current=setTimeout(()=>{f("idle"),d.current=null},1500)},[s]),u=i==="copied",c=i==="failed";return e.jsx("button",{type:"button",className:`sys-copy-btn${t?` ${t}`:""}${u?" sys-copy-btn--copied":""}${c?" sys-copy-btn--failed":""}`,onClick:()=>{b()},title:u?`Copied ${a}`:c?"Copy failed":`Copy ${a}`,"aria-label":u?`Copied ${a}`:c?`Copy ${a} failed`:`Copy ${a}`,children:u?e.jsx(rs,{size:14,"aria-hidden":"true"}):e.jsx(as,{size:14,"aria-hidden":"true"})})}function yr(s){const a=s.trim();if(a.startsWith("{")||a.startsWith("["))try{return{code:JSON.stringify(JSON.parse(a),null,2),path:"payload.json",language:"JSON"}}catch{}return{code:s,path:"payload.md",language:"Text · Markdown"}}function gr({payload:s}){const a=n.useMemo(()=>yr(s),[s]),[t,i]=n.useState(!1),f=n.useRef(null),d=a.code.split(`
1
+ import{r as n,j as e}from"./index-sUomXsrf.js";import{r as xs}from"./index-m6dFtY5f.js";import{D as js}from"./runtime-picker-DOZpZOlt.js";import{E as Ee}from"./EmptyState-CoL-QuUO.js";import{u as ks,i as vs}from"./MessageComposerSuggestions-zAUUcLOv.js";import{r as ws,R as Ns,e as Ss,a as Cs}from"./NewChatComposer-B5FnPyzS.js";import{a as le}from"./api-h5zurxmi.js";import{c as Xe}from"./clipboard-e3fSpeo7.js";import{u as Is}from"./sse-CVoGDiKW.js";import{b as Pe}from"./status-tone-BM_zuRy1.js";import{t as Fe,b as Ze,n as X}from"./time-Dhsh_2EG.js";import{u as es,A as Rs}from"./Provider-tFc3jqZ4.js";import{o as $e}from"./openContent-C6XO6kr5.js";import{g as As,b as ce,h as ss,e as $s,i as Ds,d as Es,j as Fs,k as Ms,l as Ls,m as Ts}from"./broker-display-pp33bLsu.js";import{BrokerMetadataPanel as Ps}from"./BrokerMetadataPanel-opTLuZU6.js";import{DispatchAftermath as zs}from"./DispatchAftermath-BrreQifA.js";import{i as Bs,c as qs,n as Ue}from"./keyboard-nav-BhZZ5HEq.js";import{ShikiPane as Os}from"./ShikiPane-I_OTW5NO.js";import{d as _s}from"./types-B0PlfpKc.js";/* empty css */import{L as Se}from"./loader-circle-lWOOKezu.js";import{X as Me}from"./x-0XjXwGqq.js";import{E as De}from"./external-link-CnjcXf32.js";import{A as Ks}from"./arrow-down-DsD-dYj-.js";import{B as He}from"./bot-B_Uzf4_O.js";import{R as Je}from"./refresh-cw-D8PFyhUa.js";import{C as We}from"./chevron-down-BFai6ZfE.js";import{C as rs}from"./check-BbgHJX8u.js";import{C as as}from"./copy-CwCAivnc.js";import{M as ts}from"./message-square-BD-4UUdc.js";import{S as Us}from"./sparkles-up7pVlX-.js";import{P as Hs}from"./paperclip-DL9BXPp2.js";import{P as Js}from"./plus-C9lTjsgd.js";import{S as Ws}from"./send-horizontal-DDwOgEs3.js";import{c as ns}from"./createLucideIcon-DlxlBfLC.js";import{R as Qs}from"./radio-DedMyP8J.js";import{b as Vs,M as Ys}from"./DocumentFocusViewer-DU_9BHsD.js";const Gs=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]],Xs=ns("at-sign",Gs);const Zs=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],er=ns("hash",Zs),sr=160;function Qe(s){const a=new URLSearchParams({limit:String(sr)});return s&&a.set("cursor",s),`/api/broker?${a.toString()}`}const Ve={index:-1,request:0};function rr(s,a){return{index:a,request:s.request+1}}function os(s,a){return a===s.index?s:{index:a,request:s.request}}function ar(s,a){return s.index<a?s:os(s,a>0?a-1:-1)}function tr(s,a){return s.request!==a}function nr({enabled:s,rowCount:a,onActivateRow:t,onClearSelection:i}){const[f,d]=n.useState(Ve),b=f.index,u=n.useRef(new Map),c=n.useRef(Ve.request),x=n.useCallback(y=>{d(m=>rr(m,typeof y=="function"?y(m.index):y))},[]),j=n.useCallback(y=>{d(m=>os(m,typeof y=="function"?y(m.index):y))},[]);n.useEffect(()=>{if(!tr(f,c.current)||(c.current=f.request,f.index<0))return;const y=u.current.get(f.index);y?.scrollIntoView({block:"nearest"}),y?.focus()},[f]),n.useEffect(()=>{d(y=>ar(y,a))},[a]);const R=n.useCallback((y,m)=>{m?u.current.set(y,m):u.current.delete(y)},[]);n.useEffect(()=>{if(!s)return;const y=m=>{if(document.querySelector(".sys-broker-page")&&!(Bs(m.target)||qs())&&a!==0){if(m.key==="Escape"){i&&(m.preventDefault(),i(),j(-1));return}if(m.key==="ArrowDown"||m.key==="j"){m.preventDefault(),x(I=>Ue(I,a,1));return}if(m.key==="ArrowUp"||m.key==="k"){m.preventDefault(),x(I=>Ue(I,a,-1));return}if(m.key==="Home"||m.key==="g"&&!m.shiftKey){m.preventDefault(),x(0);return}if(m.key==="End"||m.key==="G"){m.preventDefault(),x(a-1);return}if(m.key==="Enter"||m.key===" "){const I=b<0?0:b;m.preventDefault(),x(I),t(I)}}};return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[s,b,x,t,i,a,j]);const U=n.useCallback(y=>({tabIndex:b===y?0:-1,ref:m=>R(y,m),onFocus:()=>j(y)}),[b,R,j]);return{focusedIndex:b,setFocusedIndex:j,getRowFocusProps:U}}const ye=["all","delivered","failed"],or={all:"All",delivered:"Delivered",failed:"Failed"};function ir(s){switch(s){case"success":return"Success";case"failed_query":return"Query failure";case"failed_delivery":return"Delivery failure";default:return"Delivery attempt"}}function is(s){return s.messageId??s.deliveryId??s.invocationId??s.id}function ls(s){switch(Pe(s.kind,s.status)){case"success":return"Delivered";case"danger":return"Failed";case"working":return"Pending";case"warning":return"Held";default:return s.status?s.status.charAt(0).toUpperCase()+s.status.slice(1):"Queued"}}function Le(s){if(!s)return"··";const a=s.trim().split(/\s+/).filter(Boolean);if(a.length===0)return"··";const t=a[a.length-1];return/^\d+$/.test(t)?t.slice(-2):a.length>=2?(a[0][0]+a[1][0]).toUpperCase():s.trim().slice(0,2).toUpperCase()}function lr(s){const a=X(s)??0;return new Date(a).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Ye(s){const a=X(s);return a===null?"—":new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Re(s,a,t=0){if(!s||typeof s!="object"||Array.isArray(s)||t>3)return;const i=s;for(const f of a)if(i[f]!==void 0&&i[f]!==null)return i[f];for(const f of Object.values(i)){const d=Re(f,a,t+1);if(d!==void 0)return d}}function T(s,...a){const t=Re(s.metadata,a);return typeof t!="string"&&typeof t!="number"?null:String(t).trim()||null}function Ce(s,...a){const t=Re(s.metadata,a);return typeof t=="number"||typeof t=="string"?X(t):null}function cs(s){switch(s){case"dm":return"Direct · agent";case"channel":return"Channel";case"broadcast":return"Broadcast";case null:return"No route";default:return s.replaceAll("_"," ")}}function Ie(s,a){if(a==="to")return s.route==="channel"?"Channel":s.route==="broadcast"?"Broadcast":s.target?.toLowerCase().includes("operator")?"Operator":"Agent lane";const t=T(s,"class","actorClass")?.toLowerCase();return t==="operator"||t==="human"?"Operator":t==="agent"?"Agent":s.actorName?.toLowerCase().includes("operator")?"Operator":"Sender"}function cr(s){const a=Re(s.metadata,["latencyMs","durationMs"]);if(typeof a=="number"&&Number.isFinite(a)&&a>=0)return a<1e3?`${Math.round(a)}ms`:`${(a/1e3).toFixed(a<1e4?1:0)}s`;const t=Ce(s,"sentAt","createdAt")??X(s.ts),i=Ce(s,"deliveredAt","completedAt");if(t===null||i===null||i<t)return"—";const f=i-t;return f<1e3?`${f}ms`:`${(f/1e3).toFixed(f<1e4?1:0)}s`}function Te({route:s}){switch(s){case"channel":return e.jsx(er,{size:12,"aria-hidden":"true"});case"broadcast":return e.jsx(Qs,{size:12,"aria-hidden":"true"});case"dm":return e.jsx(Xs,{size:12,"aria-hidden":"true"});default:return e.jsx(ts,{size:12,"aria-hidden":"true"})}}function dr(s,a){if(!a)return null;const t=a.trim().replace(/^@/,"").toLowerCase();return s.find(i=>[i.id,i.name,i.handle,i.selector,i.defaultSelector,i.conversationId,i.harnessSessionId].some(f=>f?.trim().replace(/^@/,"").toLowerCase()===t))??null}function ur(s,a,t){const i=t?.authorityNodeName??t?.homeNodeName??t?.authorityNodeId??t?.homeNodeId??T(s,"machine","machineName","nodeName");return(t?[{label:"Status",value:t.state},{label:"Handle",value:t.handle?`@${t.handle.replace(/^@/,"")}`:null},{label:"Project",value:t.project},{label:"Branch",value:t.branch},{label:"Runtime",value:[t.harness,t.model,t.reasoningEffort].filter(Boolean).join(" · ")||null},{label:"Machine",value:i},{label:"Working dir",value:t.cwd??t.projectRoot},{label:"Session",value:t.harnessSessionId},{label:"Conversation",value:t.conversationId??s.conversationId}]:[{label:"Kind",value:a==="to"&&s.conversationId?"Session route":Ie(s,a)},{label:"Channel",value:cs(s.route)},{label:"Session",value:a==="to"?s.target:T(s,"sessionId","harnessSessionId")},{label:"Conversation",value:s.conversationId},{label:"Harness",value:T(s,"harness")},{label:"Model",value:T(s,"model")},{label:"Project",value:T(s,"project","projectName")},{label:"Branch",value:T(s,"branch")},{label:"Machine",value:i}]).filter(d=>!!d.value)}function Ge({attempt:s,agents:a,side:t}){const i=t==="from"?s.actorName:s.target,f=dr(a,i),d=f?.name??i??(t==="from"?"Unknown":"No target"),b=f?"Agent":t==="to"&&s.conversationId?"Session":Ie(s,t),u=ur(s,t,f),c=`dispatch-endpoint-${s.id}-${t}`;return e.jsxs("span",{className:`sys-broker-endpoint sys-broker-endpoint--${t}`,tabIndex:0,"aria-describedby":c,children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:f||t==="from"?Le(d):e.jsx(Te,{route:s.route})}),e.jsx("span",{className:"sys-broker-endpoint-name",title:d,children:d}),e.jsxs("span",{className:"sys-broker-endpoint-card",id:c,role:"tooltip",children:[e.jsxs("span",{className:"sys-broker-endpoint-card-head",children:[e.jsx("span",{className:"sys-broker-avatar","aria-hidden":"true",children:f||t==="from"?Le(d):e.jsx(Te,{route:s.route})}),e.jsxs("span",{children:[e.jsx("strong",{children:d}),e.jsx("small",{children:b})]})]}),e.jsx("span",{className:"sys-broker-endpoint-card-body",children:u.map(x=>e.jsxs("span",{className:"sys-broker-endpoint-card-field",children:[e.jsx("small",{children:x.label}),e.jsx("code",{title:x.value,children:x.value})]},x.label))})]})]})}function ge(s){const a=X(s)??0,t=new Date(a);return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}function hr(s,a=Date.now()){const t=X(s)??0,i=new Date(t),f=new Date(a),d=new Date(a);return d.setDate(d.getDate()-1),ge(s)===ge(f.getTime())?"Today":ge(s)===ge(d.getTime())?"Yesterday":i.toLocaleDateString(void 0,{month:"short",day:"numeric",year:i.getFullYear()===f.getFullYear()?void 0:"numeric"})}function fr(s,a,t){return{...a,source:s.source,attempts:[...s.attempts,...a.attempts],failedQueries:s.failedQueries,failedDeliveries:s.failedDeliveries,dialogue:s.dialogue,ledger:{...a.ledger,cursors:{...s.ledger.cursors,[t]:a.ledger.cursors[t]},hasMore:{...s.ledger.hasMore,[t]:a.ledger.hasMore[t]}}}}function mr({navigate:s,embedded:a=!1,initialAttemptId:t}){const{route:i,agents:f,selectedBrokerAttempt:d,inspectBrokerAttempt:b,clearBrokerAttempt:u}=es(),[c,x]=n.useState(null),j=i.view==="broker"?i.filter??"all":"all",[R,U]=n.useState(!0),[y,m]=n.useState(!1),[I,oe]=n.useState(!1),[q,P]=n.useState(null),H=n.useRef(null),D=n.useRef(0),L=n.useRef(null),J=n.useCallback(async(o="initial")=>{const h=++D.current;!H.current&&o!=="background"?(U(!0),P(null)):m(!0);try{const k=await le(Qe());if(h!==D.current)return;H.current=k,x(k),P(null)}catch(k){if(h!==D.current)return;P(k instanceof Error?k.message:String(k))}finally{h===D.current&&(U(!1),m(!1))}},[]),ie=n.useCallback(async()=>{const o=H.current;if(!o||I)return;const h="attempts",k=o.ledger.cursors[h];if(!k||!o.ledger.hasMore[h])return;const w=++D.current;oe(!0),P(null);try{const C=await le(Qe(k));if(w!==D.current)return;const ue=H.current,M=ue?fr(ue,C,h):C;H.current=M,x(M)}catch(C){if(w!==D.current)return;P(C instanceof Error?C.message:String(C))}finally{w===D.current&&oe(!1)}},[I]),Z=n.useCallback(()=>{L.current||(L.current=setTimeout(()=>{L.current=null,J("background")},250))},[J]);n.useEffect(()=>(J("initial"),()=>{L.current&&clearTimeout(L.current)}),[J]),Is(o=>{(o.kind==="message.posted"||o.kind==="delivery.planned"||o.kind==="delivery.attempted"||o.kind==="delivery.state.changed"||o.kind==="scout.dispatched")&&Z()});const v=n.useMemo(()=>{if(!c)return[];const o=new Map(c.dialogue.map(h=>[h.id,h.body]));return As(c.attempts).map(h=>{const k=h.messageId?o.get(h.messageId):null;return k&&k!==h.detail?{...h,detail:k}:h})},[c]),E=n.useMemo(()=>{switch(j){case"delivered":return v.filter(o=>!ce(o));case"failed":return v.filter(ce);default:return v}},[j,v]),O=c?.ledger.hasMore.attempts??!1,ee=n.useMemo(()=>({all:v.length,delivered:v.filter(o=>!ce(o)).length,failed:v.filter(ce).length}),[v]),z=n.useMemo(()=>{const o=i.view==="broker"?i.attemptId:void 0;return!c||!o?null:v.find(h=>h.id===o)??c.attempts.find(h=>h.id===o)??c.failedQueries.find(h=>h.id===o)??c.failedDeliveries.find(h=>h.id===o)??null},[c,v,i]),W=z?`${z.id}\0${z.status}\0${z.ts}`:null,se=d?`${d.id}\0${d.status}\0${d.ts}`:null;n.useEffect(()=>{z&&W!==se&&b(z)},[se,b,z,W]);const[A,$]=n.useState(null),_=n.useRef(!1),S=n.useCallback(o=>{if(a){_.current=!0,$(o);return}b(o)},[a,b]),Q=n.useCallback(()=>{if(a){_.current=!0,$(null);return}u()},[u,a]),V=n.useCallback(o=>{const h=E[o];h&&(S(h),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}})))},[E,S]),{getRowFocusProps:re,setFocusedIndex:K}=nr({enabled:!!c&&E.length>0,rowCount:E.length,onActivateRow:V,onClearSelection:Q}),ae=A?.id??null,xe=A?`${A.id} ${A.status} ${A.ts}`:null;n.useEffect(()=>{if(!a||!ae)return;const o=v.find(h=>h.id===ae);o&&`${o.id} ${o.status} ${o.ts}`!==xe&&$(o)},[a,ae,xe,v]),n.useEffect(()=>{if(!a||!t||!c||_.current||A)return;const o=v.find(h=>h.id===t)??c.attempts.find(h=>h.id===t)??c.failedQueries.find(h=>h.id===t)??c.failedDeliveries.find(h=>h.id===t);o&&(_.current=!0,$(o))},[c,a,A,v,t]),n.useEffect(()=>{const o=i.view==="broker"?i.attemptId:void 0;if(!o)return;const h=E.findIndex(k=>k.id===o);h>=0&&K(h)},[E,j,i,K]);const je=n.useCallback(o=>{const k=(ye.indexOf(j)+o+ye.length)%ye.length,w=ye[k];s({view:"broker",...w==="all"?{}:{filter:w}})},[j,s]),F=a?A:null;return e.jsx("div",{className:`s-ops${a?" s-ops--embedded":""}${F?" s-ops--split":""}`,children:e.jsxs("div",{className:"s-ops-body",children:[e.jsxs("div",{className:"sys-surface-page sys-surface-page-wide sys-surface-page-fluid sys-broker-page",children:[e.jsxs("div",{className:"sys-ledger-toolbar","aria-label":"Dispatch controls",children:[c?e.jsx("div",{className:"sys-tab-row sys-tab-row--toolbar",role:"tablist","aria-label":"Dispatch message filters",onKeyDown:o=>{o.key==="ArrowRight"?(o.preventDefault(),je(1)):o.key==="ArrowLeft"&&(o.preventDefault(),je(-1))},children:ye.map(o=>e.jsxs("button",{type:"button",role:"tab","aria-selected":j===o,className:`sys-tab${j===o?" sys-tab-active":""}`,onClick:()=>s({view:"broker",...o==="all"?{}:{filter:o}}),children:[e.jsx("span",{children:or[o]}),e.jsx("span",{className:"sys-tab-count",children:ee[o]})]},o))}):e.jsx("div",{className:"sys-ledger-kicker",children:"Dispatch ledger"}),e.jsxs("div",{className:"sys-page-actions sys-ledger-actions",children:[e.jsx("div",{className:"sys-sync-note",children:R?"Loading dispatch ledger...":c?`Updated ${Fe(c.generatedAt)}${c.source?.latestMessageAt?` · latest message ${Fe(c.source.latestMessageAt)}`:""}`:"Waiting for dispatch data"}),e.jsx("button",{type:"button",className:"s-btn",disabled:R||y,onClick:()=>{J("manual")},children:y?"Refreshing...":"Refresh"})]})]}),q&&e.jsxs("div",{className:"sys-banner sys-banner-warning",children:[e.jsx("strong",{children:"Refresh failed."}),e.jsx("span",{children:q})]}),y&&c&&e.jsxs("div",{className:"sys-broker-source-note",role:"status","aria-live":"polite",children:[e.jsx(Se,{className:"sys-broker-source-spinner",size:12,"aria-hidden":"true"}),e.jsx("strong",{children:"Updating dispatches…"})]}),!y&&c?.source?.mode==="sqlite_projection"&&c.source.status==="degraded"&&c.source.detail&&e.jsxs("div",{className:"sys-broker-source-note sys-broker-source-note--warning",role:"status","aria-label":c.source.detail,title:c.source.detail,children:[e.jsx("span",{className:"sys-broker-source-dot","aria-hidden":"true"}),e.jsx("strong",{children:"Dispatch may be out of date"}),e.jsx("span",{children:"Live broker unavailable; showing saved dispatch history."})]}),R&&!c&&e.jsx(Ee,{title:"Loading dispatch",body:"Reading the dispatch database snapshot."}),!R&&!c&&!q&&e.jsx(Ee,{title:"No dispatch data",body:"No dispatch rows are available yet."}),c&&e.jsxs(e.Fragment,{children:[e.jsx(pr,{attempts:E,agents:f,selectedAttemptId:a?A?.id??null:d?.id??(i.view==="broker"?i.attemptId??null:null),onInspect:S,getRowFocusProps:re}),E.length>0&&O&&e.jsx("div",{className:"sys-ledger-footer",children:e.jsx("button",{type:"button",className:"s-btn",disabled:I,onClick:()=>{ie()},children:I?"Loading older...":"Load older"})})]})]}),F&&e.jsx("div",{className:"s-broker-embed-detail",children:e.jsx(ds,{attempt:F,navigate:s,onClose:Q})})]})})}function pr({attempts:s,agents:a,selectedAttemptId:t,onInspect:i,getRowFocusProps:f}){if(s.length===0)return e.jsx(Ee,{title:"No dispatch rows",body:"No dispatch rows are available yet."});const d=s.reduce((b,u,c)=>{const x=ge(u.ts),j=b[b.length-1];return j?.key===x?j.attempts.push({attempt:u,index:c}):b.push({key:x,label:hr(u.ts),attempts:[{attempt:u,index:c}]}),b},[]);return e.jsxs("div",{className:"sys-broker-wire","aria-label":"Dispatch ledger",children:[e.jsxs("div",{className:"sys-broker-wire-head","aria-hidden":"true",children:[e.jsx("span",{className:"sys-broker-col sys-broker-col--status",children:"Status"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--from",children:"From"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--to",children:"To"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--msg",children:"Message"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--time",children:"Time"})]}),d.map(b=>e.jsxs("section",{className:"sys-broker-day","aria-labelledby":`dispatch-day-${b.key}`,children:[e.jsxs("header",{className:"sys-broker-day-head",children:[e.jsx("h2",{id:`dispatch-day-${b.key}`,children:b.label}),e.jsxs("span",{children:[b.attempts.length," ",b.attempts.length===1?"dispatch":"dispatches"]})]}),e.jsx("div",{className:"sys-broker-wire-body",role:"list",children:b.attempts.map(({attempt:u,index:c})=>{const x=Pe(u.kind,u.status),j=ce(u),R=ss(u),U=$s(u.detail,Ds(u)),y=ls(u),m=()=>{i(u),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}}))};return e.jsxs("div",{role:"listitem",className:`sys-broker-wire-row${j?" sys-broker-wire-row--failure":""}${t===u.id?" sys-broker-wire-row--selected":""}`,"aria-label":`Inspect ${u.detail}`,onClick:m,...f(c),children:[e.jsxs("div",{className:"sys-broker-cell sys-broker-col--status",children:[e.jsx("span",{className:`sys-broker-dot sys-broker-dot--${x}`,"aria-hidden":"true"}),e.jsx("span",{className:`sys-broker-state sys-broker-state--${x}`,children:y})]}),e.jsx("div",{className:"sys-broker-cell sys-broker-col--from",children:e.jsx(Ge,{attempt:u,agents:a,side:"from"})}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--to",children:[e.jsx(Rs,{className:"sys-broker-route-arrow",size:13,"aria-hidden":"true"}),e.jsx(Ge,{attempt:u,agents:a,side:"to"})]}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--msg",children:[e.jsx("span",{className:"sys-broker-msg",title:u.detail,children:U}),j&&R&&e.jsx("span",{className:"sys-broker-msg-error",title:R,children:R})]}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--time",children:[e.jsx("time",{className:"sys-broker-time-rel",title:Ze(u.ts),children:Fe(u.ts)}),e.jsx("span",{className:"sys-broker-time-abs",children:lr(u.ts)})]})]},u.id)})})]},b.key))]})}function br(s){const a=is(s);return[{label:"Kind",value:ir(s.kind)},{label:"Time",value:Ze(s.ts)},{label:"Actor",value:s.actorName},{label:"Target",value:s.target},{label:"Route",value:s.route},{label:"Conversation",value:s.conversationId},{label:"Reference",value:a},{label:"Message",value:s.messageId===a?null:s.messageId},{label:"Delivery",value:s.deliveryId===a?null:s.deliveryId},{label:"Invocation",value:s.invocationId===a?null:s.invocationId}].filter(t=>!!t.value)}function de({value:s,subject:a,className:t}){const[i,f]=n.useState("idle"),d=n.useRef(null);n.useEffect(()=>{f("idle")},[s]),n.useEffect(()=>()=>{d.current&&clearTimeout(d.current)},[]);const b=n.useCallback(async()=>{const x=await Xe(s);d.current&&clearTimeout(d.current),f(x?"copied":"failed"),d.current=setTimeout(()=>{f("idle"),d.current=null},1500)},[s]),u=i==="copied",c=i==="failed";return e.jsx("button",{type:"button",className:`sys-copy-btn${t?` ${t}`:""}${u?" sys-copy-btn--copied":""}${c?" sys-copy-btn--failed":""}`,onClick:()=>{b()},title:u?`Copied ${a}`:c?"Copy failed":`Copy ${a}`,"aria-label":u?`Copied ${a}`:c?`Copy ${a} failed`:`Copy ${a}`,children:u?e.jsx(rs,{size:14,"aria-hidden":"true"}):e.jsx(as,{size:14,"aria-hidden":"true"})})}function yr(s){const a=s.trim();if(a.startsWith("{")||a.startsWith("["))try{return{code:JSON.stringify(JSON.parse(a),null,2),path:"payload.json",language:"JSON"}}catch{}return{code:s,path:"payload.md",language:"Text · Markdown"}}function gr({payload:s}){const a=n.useMemo(()=>yr(s),[s]),[t,i]=n.useState(!1),f=n.useRef(null),d=a.code.split(`
2
2
  `).length;n.useEffect(()=>{const u=f.current;!u||!t||u.open||u.showModal()},[t]),n.useEffect(()=>{i(!1)},[s]);const b=e.jsx("div",{className:"sys-broker-payload-code","data-language":a.path==="payload.json"?"json":"markdown",role:"region","aria-label":`Dispatch payload, ${a.language}`,tabIndex:0,children:e.jsx(Os,{code:a.code,path:a.path})});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"sys-broker-payload-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Payload"}),e.jsxs("span",{className:"sys-broker-payload-meta",children:[a.language," · ",d," ",d===1?"line":"lines"]}),e.jsx(de,{value:s,subject:"payload"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-payload-expand",onClick:()=>i(!0),title:"Expand payload","aria-label":"Expand payload",children:e.jsx(Vs,{size:14,"aria-hidden":"true"})})]}),e.jsx("div",{className:"sys-broker-payload-resizer",children:b}),t&&xs.createPortal(e.jsxs("dialog",{ref:f,className:"sys-broker-payload-dialog","aria-label":"Expanded dispatch payload",onCancel:u=>{u.preventDefault(),i(!1)},onClose:()=>i(!1),children:[e.jsxs("header",{className:"sys-broker-payload-dialog-head",children:[e.jsxs("div",{children:[e.jsx("span",{className:"sys-detail-label",children:"Dispatch payload"}),e.jsxs("span",{className:"sys-broker-payload-meta",children:[a.language," · ",d," ",d===1?"line":"lines"]})]}),e.jsx(de,{value:s,subject:"payload"}),e.jsx("button",{type:"button",className:"sys-copy-btn",onClick:()=>i(!1),title:"Return payload to inspector","aria-label":"Return payload to inspector",children:e.jsx(Ys,{size:14,"aria-hidden":"true"})})]}),e.jsx("div",{className:"sys-broker-payload-dialog-body",children:b})]}),document.body)]})}function xr({attempt:s}){const a=Ts(s);return e.jsxs("div",{className:"sys-broker-route-failure",role:"status",children:[e.jsx("span",{className:"sys-broker-route-failure-mark","aria-hidden":"true",children:e.jsx(Me,{size:14})}),e.jsxs("div",{children:[e.jsx("span",{className:"sys-detail-label",children:"Routing stopped"}),e.jsx("strong",{children:a}),e.jsx("p",{children:s.detail})]}),e.jsx(de,{value:s.detail,subject:"failure detail"})]})}function ds({attempt:s,navigate:a,onClose:t}){const{route:i,agents:f,scoutbotAgentId:d}=es(),b=br(s),u=Es(s.metadata),c=ce(s),x=s.kind==="failed_query",j=ss(s),R=Pe(s.kind,s.status),U=Ce(s,"sentAt","createdAt")??X(s.ts),y=Ce(s,"deliveredAt","completedAt")??X(s.ts),m=is(s),[I,oe]=n.useState("idle"),[q,P]=n.useState("idle"),[H,D]=n.useState(null),[L,J]=n.useState(null),[ie,Z]=n.useState(""),[v,E]=n.useState(""),[O,ee]=n.useState("idle"),[z,W]=n.useState(null),[se,A]=n.useState(""),[$,_]=n.useState(""),[S,Q]=n.useState(""),[V,re]=n.useState(""),[K,ae]=n.useState("medium"),[xe,je]=n.useState(null),[F,o]=n.useState([]),[h,k]=n.useState(!1),[w,C]=n.useState("idle"),[ue,M]=n.useState(null),ke=T(s,"harness"),ve=T(s,"model"),we=T(s,"reasoningEffort","effort"),ze=n.useRef(null),Be=n.useRef(null),he=n.useMemo(()=>Fs(s),[s]),N=n.useMemo(()=>f.filter(r=>!r.retiredFromFleet&&!r.staleLocalRegistration).slice().sort((r,l)=>r.id===d?-1:l.id===d?1:(l.updatedAt??0)-(r.updatedAt??0)||r.name.localeCompare(l.name)),[f,d]),fe=n.useMemo(()=>Ms(s,N)?.id??"",[s,N]),me=N.some(r=>r.id===d)?d:N[0]?.id??"",Ne=N[0]?.id??"",te=N.find(r=>r.id===me)??null,us=n.useMemo(()=>{const r=new Map;for(const l of N){const p=l.projectRoot?.trim()||l.cwd?.trim();if(!p)continue;const g=p.split("/").filter(Boolean).at(-1)??p;r.set(p,l.project?.trim()||g)}return[...r.entries()].map(([l,p])=>({path:l,label:p}))},[N]),qe=n.useRef({originalTargetAgentId:fe,firstRoutableAgentId:Ne,defaultForwardAgentId:me,defaultForwardAgent:te,effort:"medium"});qe.current={originalTargetAgentId:fe,firstRoutableAgentId:Ne,defaultForwardAgentId:me,defaultForwardAgent:te,effort:T(s,"reasoningEffort","effort")||"medium"};const pe=n.useRef(!1);n.useEffect(()=>{const r=qe.current;pe.current=!1,oe("idle"),P("idle"),D(null),J(null),Z(""),E(r.originalTargetAgentId||r.firstRoutableAgentId),ee("idle"),W(null),A(r.defaultForwardAgentId),_(r.defaultForwardAgent?.projectRoot?.trim()||r.defaultForwardAgent?.cwd?.trim()||""),Q(r.defaultForwardAgent?.harness?.trim()||""),re(r.defaultForwardAgent?.model?.trim()||""),ae(r.effort),o([]),k(!1),C("idle"),M(null)},[s.id]),n.useEffect(()=>{pe.current||(E(r=>r||fe||Ne),A(r=>r||me),_(r=>r||te?.projectRoot?.trim()||te?.cwd?.trim()||""),Q(r=>r||te?.harness?.trim()||""),re(r=>r||te?.model?.trim()||""))},[te,me,Ne,fe]),n.useEffect(()=>{const r=new URLSearchParams({scope:"global+project"});$&&r.set("projectRoot",$);let l=!1;return le(`/api/runner/options?${r.toString()}`).then(p=>{!l&&p.schemaVersion==="openscout.runtime-capabilities.v1"&&je(p)}).catch(()=>{}),()=>{l=!0}},[$]);const hs=n.useCallback(async()=>{const r=await Xe(he);oe(r?"copied":"failed"),window.setTimeout(()=>oe("idle"),1500)},[he]),fs=n.useCallback(r=>{k(!0),Z(r),window.requestAnimationFrame(()=>ze.current?.focus())},[]),ms=n.useCallback(async()=>{const r=N.find(l=>l.id===v);if(!(!r||O==="sending")){ee("sending"),W(null);try{const l=await le("/api/ask",{method:"POST",body:JSON.stringify({body:s.detail,targetAgentId:r.id,targetLabel:r.name,...ke||ve||we?{execution:{...ke?{harness:ke}:{},...ve?{model:ve}:{},...we?{reasoningEffort:we}:{},session:"new"}}:{},metadata:{source:"scout-dispatch-redispatch",originalDispatchId:s.id,...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),p=l.flightId??l.flight?.id;ee("sent"),W(`New dispatch sent to ${r.name}${p?` · ${p}`:""}`)}catch(l){ee("failed"),W(`Retry failed. ${l instanceof Error?l.message:String(l)}`)}}},[s,v,O,we,ke,ve,N]),Oe=n.useCallback(async()=>{const r=ie.trim(),l=N.find(p=>p.id===se);if(!(!r||!l||w==="sending")){C("sending"),M(F.length>0?`Uploading ${F.length} ${F.length===1?"attachment":"attachments"}…`:null);try{const p=F.length>0?await ks(F):[],g=await le("/api/ask",{method:"POST",body:JSON.stringify({body:`${r}
3
3
 
4
4
  Attached dispatch context:
5
- ${he}`,targetAgentId:l.id,targetLabel:l.name,...p.length>0?{attachments:p}:{},execution:{...S?{harness:S}:{},...V?{model:V}:{},...K?{reasoningEffort:K}:{}},metadata:{source:"scout-dispatch-forward",originalDispatchId:s.id,...$?{targetProjectPath:$}:{},...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),Y=g.flightId??g.flight?.id;C("sent"),M(`Request sent to ${l.name}${Y?` · ${Y}`:""}`),Z(""),o([])}catch(p){C("failed"),M(`Request wasn't sent. ${p instanceof Error?p.message:String(p)}`)}}},[s,he,se,K,F,S,V,$,w,ie,N]),ps=n.useCallback(r=>{const l=r.filter(vs),p=r.length-l.length;l.length>0&&(o(g=>[...g,...l]),C("idle"),M(null)),p>0&&(C("failed"),M("Attach markdown, code, an image, or a video clip."))},[]),bs=c?["Get a second opinion","Propose a recovery plan","Draft a follow-up"]:["Summarize this dispatch","Draft a follow-up","What changed?"],B=N.find(r=>r.id===v)??null,ne=N.find(r=>r.id===se)??null,be=N.filter(r=>$?(r.projectRoot?.trim()||r.cwd?.trim())===$:!0),_e=xe??Ns,Ae=n.useMemo(()=>{const r=ws(_e),l=[V,ne?.harness===S?ne.model:null,...be.filter(g=>g.harness===S).map(g=>g.model)].map(g=>g?.trim()).filter(g=>!!g);let p=r.harnesses;return p.some(g=>g.value===S)||(p=[{value:S,label:S||"default",models:[]},...p]),p=p.map(g=>{if(g.value!==S)return g;const Y=g.models.some(G=>G.value==="")?g.models:[{value:"",label:"Default",note:"harness picks"},...g.models],gs=new Set(Y.map(G=>G.value)),Ke=l.filter(G=>!gs.has(G)).map(G=>({value:G,label:G,note:"observed"}));return Ke.length===0&&Y===g.models?g:{...g,models:[...Y,...Ke]}}),{...r,harnesses:p}},[_e,ne,S,V,be]);n.useEffect(()=>{const r=Ss(Ae,S);!r||r.some(l=>l.value===K)||ae(r.find(l=>l.value==="medium")?.value??r[0]?.value??"")},[Ae,S,K]);const ys=n.useCallback(async()=>{P("running"),D(null);try{const r=await le("/api/broker/dispatch-review",{method:"POST",body:JSON.stringify(Ls(s))});P("sent"),J(r.conversationId),D(r.conversationId?`Report started${r.targetLabel?` with ${r.targetLabel}`:""}. Open the conversation to follow it.`:`Report started${r.targetLabel?` with ${r.targetLabel}`:""}${r.flightId?` · ${r.flightId}`:""}.`)}catch(r){P("failed"),D(`Couldn't start the report. ${r instanceof Error?r.message:String(r)}`)}},[s]);return e.jsxs("aside",{className:"sys-panel sys-broker-inspector","aria-label":"Dispatch route inspector",children:[e.jsx("header",{className:"sys-broker-inspector-head",children:e.jsxs("div",{className:"sys-broker-inspector-status",children:[e.jsx("span",{className:`sys-broker-dot sys-broker-dot--${R}`,"aria-hidden":"true"}),e.jsx("strong",{className:`sys-broker-state sys-broker-state--${R}`,children:ls(s)}),e.jsx("code",{title:m,children:m}),e.jsx(de,{value:he,subject:"dispatch context",className:"sys-broker-inspector-copy"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-inspector-close",onClick:t,title:"Close inspector","aria-label":"Close inspector",children:e.jsx(Me,{size:14,"aria-hidden":"true"})})]})}),e.jsxs("div",{className:"sys-broker-inspector-body",children:[e.jsxs("section",{className:"sys-broker-route-stack","aria-label":"Dispatch route",children:[e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-route-avatar","aria-hidden":"true",children:Le(s.actorName)}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["From · ",Ie(s,"from")]}),e.jsx("strong",{children:s.actorName??"Unknown sender"})]}),s.conversationId&&e.jsxs("button",{type:"button",className:"sys-broker-route-button",onClick:()=>$e(a,{view:"conversation",conversationId:s.conversationId},{returnTo:i}),children:[e.jsx(De,{size:11,"aria-hidden":"true"}),"Route"]})]}),e.jsx(Ks,{className:"sys-broker-route-down",size:17,"aria-hidden":"true"}),e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-route-target-icon","aria-hidden":"true",children:e.jsx(Te,{route:s.route})}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["To · ",Ie(s,"to")]}),e.jsx("code",{title:s.target??"No target",children:s.target??"No target"})]}),s.conversationId&&e.jsxs("button",{type:"button",className:"sys-broker-route-button",onClick:()=>$e(a,{view:"conversation",conversationId:s.conversationId},{returnTo:i}),children:[e.jsx(De,{size:11,"aria-hidden":"true"}),"Route"]})]})]}),e.jsxs("dl",{className:"sys-broker-delivery-grid",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Channel"}),e.jsx("dd",{children:cs(s.route)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Latency"}),e.jsx("dd",{className:"sys-broker-delivery-accent",children:cr(s)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Sent"}),e.jsx("dd",{children:Ye(U)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:c?"Failed":"Delivered"}),e.jsx("dd",{children:Ye(y)})]})]}),e.jsxs("section",{className:"sys-broker-payload",children:[x?e.jsx(xr,{attempt:s}):e.jsx(gr,{payload:s.detail}),c&&!x&&j&&e.jsxs("div",{className:"sys-broker-inspector-error",role:"status",children:[e.jsx("span",{className:"sys-broker-inspector-error-label",children:"Error"}),e.jsx("p",{children:j})]})]}),e.jsx(zs,{attempt:s,targetAgentId:fe||null,navigate:a,returnTo:i}),c&&e.jsxs("section",{className:"sys-broker-report","aria-labelledby":"dispatch-report-title",children:[e.jsxs("div",{className:"sys-broker-action-head",children:[e.jsx("span",{className:"sys-broker-action-mark","aria-hidden":"true",children:e.jsx(He,{size:12})}),e.jsxs("div",{children:[e.jsx("span",{id:"dispatch-report-title",children:"Failure report"}),e.jsx("small",{children:"Codex will inspect this dispatch and report the likely cause, confidence, and recommended next step in a new conversation."})]})]}),e.jsxs("button",{type:"button",className:"sys-broker-report-button",disabled:q==="running"||q==="sent"&&!L,onClick:()=>{if(L){$e(a,{view:"conversation",conversationId:L},{returnTo:i});return}ys()},children:[q==="running"?e.jsx(Se,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):L?e.jsx(De,{size:13,"aria-hidden":"true"}):e.jsx(He,{size:13,"aria-hidden":"true"}),q==="running"?"Starting report…":L?"Open report conversation":"Start failure report"]}),H&&e.jsx("div",{className:`sys-broker-review-status sys-broker-review-status--${q}`,role:"status",children:H})]}),e.jsxs("section",{className:"sys-broker-redispatch","aria-labelledby":"dispatch-redispatch-title",children:[e.jsxs("div",{className:"sys-broker-action-head",children:[e.jsx("span",{className:"sys-broker-action-mark","aria-hidden":"true",children:e.jsx(Je,{size:12})}),e.jsxs("div",{children:[e.jsx("span",{id:"dispatch-redispatch-title",children:"Retry delivery"}),e.jsx("small",{children:"Send the original payload as a new dispatch. Use this after the destination is available again."})]})]}),e.jsxs("div",{className:"sys-broker-redispatch-controls",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Destination"}),e.jsx("select",{value:v,disabled:O==="sending"||N.length===0,onChange:r=>{E(r.target.value),ee("idle"),W(null)},children:N.length===0?e.jsx("option",{value:"",children:"No agents available"}):e.jsxs(e.Fragment,{children:[!v&&e.jsx("option",{value:"",children:"Original destination unavailable"}),N.map(r=>e.jsxs("option",{value:r.id,children:[r.id===d?"Scout":r.name,r.project?` · ${r.project}`:""]},r.id))]})})]}),e.jsxs("button",{type:"button",className:"sys-broker-redispatch-send",disabled:!B||O==="sending",onClick:()=>{ms()},children:[O==="sending"?e.jsx(Se,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(Je,{size:13,"aria-hidden":"true"}),O==="sending"?"Retrying…":"Retry dispatch"]})]}),B&&e.jsxs("div",{className:"sys-broker-action-target-meta",children:[B.harness&&e.jsx("span",{children:B.harness}),B.model&&e.jsx("span",{children:B.model}),(B.cwd??B.projectRoot)&&e.jsx("code",{children:B.cwd??B.projectRoot})]}),z&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${O}`,role:"status",children:z})]}),e.jsxs("details",{className:"sys-broker-technical",children:[e.jsxs("summary",{children:[e.jsx("span",{children:"Technical details"}),e.jsx(We,{size:13,"aria-hidden":"true"})]}),e.jsx("div",{className:"sys-broker-inspector-rows",children:b.map(r=>e.jsxs("div",{className:"sys-broker-inspector-row",children:[e.jsx("span",{className:"sys-detail-label",children:r.label}),e.jsx("code",{className:"sys-detail-value",children:r.value}),e.jsx(de,{value:r.value,subject:r.label.toLowerCase()})]},r.label))}),e.jsxs("div",{className:"sys-broker-metadata",children:[e.jsxs("div",{className:"sys-broker-metadata-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Metadata"}),e.jsx(de,{value:u,subject:"metadata",className:"sys-broker-metadata-copy"})]}),e.jsx(Ps,{metadata:s.metadata,rawJson:u})]})]}),e.jsxs("button",{type:"button",className:"sys-broker-copy-context",onClick:()=>{hs()},children:[I==="copied"?e.jsx(rs,{size:12,"aria-hidden":"true"}):e.jsx(as,{size:12,"aria-hidden":"true"}),I==="copied"?"Context copied":I==="failed"?"Copy failed":"Copy dispatch context"]})]}),e.jsxs("section",{className:`sys-broker-forward${h?" sys-broker-forward--expanded":""}`,"aria-labelledby":"dispatch-forward-title",children:[e.jsxs("button",{type:"button",className:"sys-broker-forward-toggle","aria-expanded":h,"aria-controls":"dispatch-forward-content",onClick:()=>k(r=>!r),children:[e.jsxs("div",{className:"sys-broker-action-head",children:[e.jsx("span",{className:"sys-broker-action-mark","aria-hidden":"true",children:e.jsx(ts,{size:12})}),e.jsxs("div",{children:[e.jsx("span",{id:"dispatch-forward-title",children:"Ask another agent"}),e.jsx("small",{children:"Optional · forwards this dispatch context."})]})]}),e.jsx(We,{className:"sys-broker-forward-chevron",size:15,"aria-hidden":"true"})]}),h&&e.jsxs("div",{id:"dispatch-forward-content",children:[e.jsx("div",{className:"sys-broker-forward-intro",children:e.jsx("div",{className:"sys-broker-ask-prompts","aria-label":"Suggested requests",children:bs.map(r=>e.jsxs("button",{type:"button",onClick:()=>fs(r),children:[e.jsx(Us,{size:11,"aria-hidden":"true"}),r]},r))})}),e.jsxs("form",{className:"sys-broker-message-composer",onSubmit:r=>{r.preventDefault(),Oe()},children:[e.jsx("label",{htmlFor:"dispatch-message-input",children:"Request"}),e.jsx("textarea",{ref:ze,id:"dispatch-message-input",value:ie,rows:3,placeholder:`What should ${ne?.id===d?"Scout":ne?.name??"this agent"} investigate or do?`,disabled:w==="sending",onChange:r=>{Z(r.target.value),w!=="idle"&&(C("idle"),M(null))},onKeyDown:r=>{r.key==="Enter"&&(r.metaKey||r.ctrlKey)&&(r.preventDefault(),Oe())}}),F.length>0&&e.jsx("div",{className:"sys-broker-composer-attachments","aria-label":"Attachments",children:F.map((r,l)=>e.jsxs("span",{children:[e.jsx(Hs,{size:10,"aria-hidden":"true"}),e.jsx("span",{title:r.name,children:r.name}),e.jsx("button",{type:"button",onClick:()=>o(p=>p.filter((g,Y)=>Y!==l)),"aria-label":`Remove ${r.name}`,children:e.jsx(Me,{size:10,"aria-hidden":"true"})})]},`${r.name}:${r.size}:${l}`))}),e.jsxs("footer",{children:[e.jsxs("div",{className:"sys-broker-composer-left",children:[e.jsx("input",{ref:Be,type:"file",multiple:!0,hidden:!0,disabled:w==="sending",onChange:r=>{ps([...r.target.files??[]]),r.target.value=""}}),e.jsx("button",{type:"button",className:"sys-broker-composer-attach",disabled:w==="sending",onClick:()=>Be.current?.click(),"aria-label":"Attach files",title:"Attach files",children:e.jsx(Js,{size:16,"aria-hidden":"true"})}),e.jsx("span",{className:"sys-broker-message-attachment",title:m,children:"Dispatch context included"})]}),e.jsxs("div",{className:"sys-broker-composer-targets",children:[e.jsx("span",{className:"sys-broker-composer-route-label",children:"Send to"}),e.jsxs("label",{title:"Project target",children:[e.jsx("span",{children:"Project"}),e.jsxs("select",{"aria-label":"Project target",value:$,disabled:w==="sending",onChange:r=>{const l=r.target.value,p=N.find(g=>!l||(g.projectRoot?.trim()||g.cwd?.trim())===l)??null;pe.current=!0,_(l),p&&(A(p.id),Q(p.harness?.trim()||""),re(p.model?.trim()||""))},children:[e.jsx("option",{value:"",children:"Any project"}),us.map(r=>e.jsx("option",{value:r.path,children:r.label},r.path))]})]}),e.jsxs("label",{title:"Agent target",children:[e.jsx("span",{children:"Agent"}),e.jsx("select",{"aria-label":"Agent target",value:se,disabled:w==="sending"||be.length===0,onChange:r=>{const l=N.find(p=>p.id===r.target.value)??null;pe.current=!0,A(r.target.value),l&&(_(l.projectRoot?.trim()||l.cwd?.trim()||""),Q(l.harness?.trim()||""),re(l.model?.trim()||"")),C("idle"),M(null)},children:be.length===0?e.jsx("option",{value:"",children:"No agents"}):be.map(r=>e.jsx("option",{value:r.id,children:r.id===d?"Scout":r.name},r.id))})]}),e.jsx(Cs,{catalog:Ae,value:{harness:S,model:V,effort:K},onChange:r=>{pe.current=!0,Q(r.harness),re(r.model),ae(r.effort)},disabled:w==="sending"}),e.jsx(js,{className:"sys-broker-composer-mic",disabled:w==="sending",onAppend:r=>Z(l=>l.trim()?`${l.trimEnd()} ${r}`:r),onError:r=>{C("failed"),M(r)}})]}),e.jsx("button",{type:"submit",className:"sys-broker-composer-send",disabled:!ie.trim()||!ne||w==="sending","aria-label":`Ask ${ne?.name??"recipient"} about this dispatch`,children:w==="sending"?e.jsx(Se,{size:14,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(Ws,{size:14,"aria-hidden":"true"})})]})]}),ue&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${w}`,role:"status",children:ue})]})]})]})}const jr=_s({id:"dispatch",label:"Dispatch",route:{view:"broker"},webPath:"/dispatch",screen:"BrokerScreen",embed:{path:"/embed/dispatch",profile:"macos.dispatch",rootClassName:"s-broker-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},ownsInternalRoutes:!0,resolveEmbedProps:s=>{const a=s.get("attempt")?.trim();return a?{initialAttemptId:a}:{}},hosts:{macos:!0}}}),aa=Object.freeze(Object.defineProperty({__proto__:null,BrokerAttemptInspector:ds,BrokerScreen:mr,scoutSurface:jr},Symbol.toStringTag,{value:"Module"}));export{ds as B,mr as a,Qe as b,aa as c};
5
+ ${he}`,targetAgentId:l.id,targetLabel:l.name,...p.length>0?{attachments:p}:{},execution:{...S?{harness:S}:{},...V?{model:V}:{},...K?{reasoningEffort:K}:{}},metadata:{source:"scout-dispatch-forward",originalDispatchId:s.id,...$?{targetProjectPath:$}:{},...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),Y=g.flightId??g.flight?.id;C("sent"),M(`Request sent to ${l.name}${Y?` · ${Y}`:""}`),Z(""),o([])}catch(p){C("failed"),M(`Request wasn't sent. ${p instanceof Error?p.message:String(p)}`)}}},[s,he,se,K,F,S,V,$,w,ie,N]),ps=n.useCallback(r=>{const l=r.filter(vs),p=r.length-l.length;l.length>0&&(o(g=>[...g,...l]),C("idle"),M(null)),p>0&&(C("failed"),M("Attach markdown, code, an image, or a video clip."))},[]),bs=c?["Get a second opinion","Propose a recovery plan","Draft a follow-up"]:["Summarize this dispatch","Draft a follow-up","What changed?"],B=N.find(r=>r.id===v)??null,ne=N.find(r=>r.id===se)??null,be=N.filter(r=>$?(r.projectRoot?.trim()||r.cwd?.trim())===$:!0),_e=xe??Ns,Ae=n.useMemo(()=>{const r=ws(_e),l=[V,ne?.harness===S?ne.model:null,...be.filter(g=>g.harness===S).map(g=>g.model)].map(g=>g?.trim()).filter(g=>!!g);let p=r.harnesses;return p.some(g=>g.value===S)||(p=[{value:S,label:S||"default",models:[]},...p]),p=p.map(g=>{if(g.value!==S)return g;const Y=g.models.some(G=>G.value==="")?g.models:[{value:"",label:"Default",note:"harness picks"},...g.models],gs=new Set(Y.map(G=>G.value)),Ke=l.filter(G=>!gs.has(G)).map(G=>({value:G,label:G,note:"observed"}));return Ke.length===0&&Y===g.models?g:{...g,models:[...Y,...Ke]}}),{...r,harnesses:p}},[_e,ne,S,V,be]);n.useEffect(()=>{const r=Ss(Ae,S);!r||r.some(l=>l.value===K)||ae(r.find(l=>l.value==="medium")?.value??r[0]?.value??"")},[Ae,S,K]);const ys=n.useCallback(async()=>{P("running"),D(null);try{const r=await le("/api/broker/dispatch-review",{method:"POST",body:JSON.stringify(Ls(s))});P("sent"),J(r.conversationId),D(r.conversationId?`Report started${r.targetLabel?` with ${r.targetLabel}`:""}. Open the conversation to follow it.`:`Report started${r.targetLabel?` with ${r.targetLabel}`:""}${r.flightId?` · ${r.flightId}`:""}.`)}catch(r){P("failed"),D(`Couldn't start the report. ${r instanceof Error?r.message:String(r)}`)}},[s]);return e.jsxs("aside",{className:"sys-panel sys-broker-inspector","aria-label":"Dispatch route inspector",children:[e.jsx("header",{className:"sys-broker-inspector-head",children:e.jsxs("div",{className:"sys-broker-inspector-status",children:[e.jsx("span",{className:`sys-broker-dot sys-broker-dot--${R}`,"aria-hidden":"true"}),e.jsx("strong",{className:`sys-broker-state sys-broker-state--${R}`,children:ls(s)}),e.jsx("code",{title:m,children:m}),e.jsx(de,{value:he,subject:"dispatch context",className:"sys-broker-inspector-copy"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-inspector-close",onClick:t,title:"Close inspector","aria-label":"Close inspector",children:e.jsx(Me,{size:14,"aria-hidden":"true"})})]})}),e.jsxs("div",{className:"sys-broker-inspector-body",children:[e.jsxs("section",{className:"sys-broker-route-stack","aria-label":"Dispatch route",children:[e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-route-avatar","aria-hidden":"true",children:Le(s.actorName)}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["From · ",Ie(s,"from")]}),e.jsx("strong",{children:s.actorName??"Unknown sender"})]}),s.conversationId&&e.jsxs("button",{type:"button",className:"sys-broker-route-button",onClick:()=>$e(a,{view:"conversation",conversationId:s.conversationId},{returnTo:i}),children:[e.jsx(De,{size:11,"aria-hidden":"true"}),"Route"]})]}),e.jsx(Ks,{className:"sys-broker-route-down",size:17,"aria-hidden":"true"}),e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-route-target-icon","aria-hidden":"true",children:e.jsx(Te,{route:s.route})}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["To · ",Ie(s,"to")]}),e.jsx("code",{title:s.target??"No target",children:s.target??"No target"})]}),s.conversationId&&e.jsxs("button",{type:"button",className:"sys-broker-route-button",onClick:()=>$e(a,{view:"conversation",conversationId:s.conversationId},{returnTo:i}),children:[e.jsx(De,{size:11,"aria-hidden":"true"}),"Route"]})]})]}),e.jsxs("dl",{className:"sys-broker-delivery-grid",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Channel"}),e.jsx("dd",{children:cs(s.route)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Latency"}),e.jsx("dd",{className:"sys-broker-delivery-accent",children:cr(s)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Sent"}),e.jsx("dd",{children:Ye(U)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:c?"Failed":"Delivered"}),e.jsx("dd",{children:Ye(y)})]})]}),e.jsxs("section",{className:"sys-broker-payload",children:[x?e.jsx(xr,{attempt:s}):e.jsx(gr,{payload:s.detail}),c&&!x&&j&&e.jsxs("div",{className:"sys-broker-inspector-error",role:"status",children:[e.jsx("span",{className:"sys-broker-inspector-error-label",children:"Error"}),e.jsx("p",{children:j})]})]}),e.jsx(zs,{attempt:s,targetAgentId:fe||null,navigate:a,returnTo:i}),c&&e.jsxs("section",{className:"sys-broker-report","aria-labelledby":"dispatch-report-title",children:[e.jsxs("div",{className:"sys-broker-action-head",children:[e.jsx("span",{className:"sys-broker-action-mark","aria-hidden":"true",children:e.jsx(He,{size:12})}),e.jsxs("div",{children:[e.jsx("span",{id:"dispatch-report-title",children:"Failure report"}),e.jsx("small",{children:"Codex will inspect this dispatch and report the likely cause, confidence, and recommended next step in a new conversation."})]})]}),e.jsxs("button",{type:"button",className:"sys-broker-report-button",disabled:q==="running"||q==="sent"&&!L,onClick:()=>{if(L){$e(a,{view:"conversation",conversationId:L},{returnTo:i});return}ys()},children:[q==="running"?e.jsx(Se,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):L?e.jsx(De,{size:13,"aria-hidden":"true"}):e.jsx(He,{size:13,"aria-hidden":"true"}),q==="running"?"Starting report…":L?"Open report conversation":"Start failure report"]}),H&&e.jsx("div",{className:`sys-broker-review-status sys-broker-review-status--${q}`,role:"status",children:H})]}),e.jsxs("section",{className:"sys-broker-redispatch","aria-labelledby":"dispatch-redispatch-title",children:[e.jsxs("div",{className:"sys-broker-action-head",children:[e.jsx("span",{className:"sys-broker-action-mark","aria-hidden":"true",children:e.jsx(Je,{size:12})}),e.jsxs("div",{children:[e.jsx("span",{id:"dispatch-redispatch-title",children:"Retry delivery"}),e.jsx("small",{children:"Send the original payload as a new dispatch. Use this after the destination is available again."})]})]}),e.jsxs("div",{className:"sys-broker-redispatch-controls",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Destination"}),e.jsx("select",{value:v,disabled:O==="sending"||N.length===0,onChange:r=>{E(r.target.value),ee("idle"),W(null)},children:N.length===0?e.jsx("option",{value:"",children:"No agents available"}):e.jsxs(e.Fragment,{children:[!v&&e.jsx("option",{value:"",children:"Original destination unavailable"}),N.map(r=>e.jsxs("option",{value:r.id,children:[r.id===d?"Scout":r.name,r.project?` · ${r.project}`:""]},r.id))]})})]}),e.jsxs("button",{type:"button",className:"sys-broker-redispatch-send",disabled:!B||O==="sending",onClick:()=>{ms()},children:[O==="sending"?e.jsx(Se,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(Je,{size:13,"aria-hidden":"true"}),O==="sending"?"Retrying…":"Retry dispatch"]})]}),B&&e.jsxs("div",{className:"sys-broker-action-target-meta",children:[B.harness&&e.jsx("span",{children:B.harness}),B.model&&e.jsx("span",{children:B.model}),(B.cwd??B.projectRoot)&&e.jsx("code",{children:B.cwd??B.projectRoot})]}),z&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${O}`,role:"status",children:z})]}),e.jsxs("details",{className:"sys-broker-technical",children:[e.jsxs("summary",{children:[e.jsx("span",{children:"Technical details"}),e.jsx(We,{size:13,"aria-hidden":"true"})]}),e.jsx("div",{className:"sys-broker-inspector-rows",children:b.map(r=>e.jsxs("div",{className:"sys-broker-inspector-row",children:[e.jsx("span",{className:"sys-detail-label",children:r.label}),e.jsx("code",{className:"sys-detail-value",children:r.value}),e.jsx(de,{value:r.value,subject:r.label.toLowerCase()})]},r.label))}),e.jsxs("div",{className:"sys-broker-metadata",children:[e.jsxs("div",{className:"sys-broker-metadata-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Metadata"}),e.jsx(de,{value:u,subject:"metadata",className:"sys-broker-metadata-copy"})]}),e.jsx(Ps,{metadata:s.metadata,rawJson:u})]})]}),e.jsxs("button",{type:"button",className:"sys-broker-copy-context",onClick:()=>{hs()},children:[I==="copied"?e.jsx(rs,{size:12,"aria-hidden":"true"}):e.jsx(as,{size:12,"aria-hidden":"true"}),I==="copied"?"Context copied":I==="failed"?"Copy failed":"Copy dispatch context"]})]}),e.jsxs("section",{className:`sys-broker-forward${h?" sys-broker-forward--expanded":""}`,"aria-labelledby":"dispatch-forward-title",children:[e.jsxs("button",{type:"button",className:"sys-broker-forward-toggle","aria-expanded":h,"aria-controls":"dispatch-forward-content",onClick:()=>k(r=>!r),children:[e.jsxs("div",{className:"sys-broker-action-head",children:[e.jsx("span",{className:"sys-broker-action-mark","aria-hidden":"true",children:e.jsx(ts,{size:12})}),e.jsxs("div",{children:[e.jsx("span",{id:"dispatch-forward-title",children:"Ask another agent"}),e.jsx("small",{children:"Optional · forwards this dispatch context."})]})]}),e.jsx(We,{className:"sys-broker-forward-chevron",size:15,"aria-hidden":"true"})]}),h&&e.jsxs("div",{id:"dispatch-forward-content",children:[e.jsx("div",{className:"sys-broker-forward-intro",children:e.jsx("div",{className:"sys-broker-ask-prompts","aria-label":"Suggested requests",children:bs.map(r=>e.jsxs("button",{type:"button",onClick:()=>fs(r),children:[e.jsx(Us,{size:11,"aria-hidden":"true"}),r]},r))})}),e.jsxs("form",{className:"sys-broker-message-composer",onSubmit:r=>{r.preventDefault(),Oe()},children:[e.jsx("label",{htmlFor:"dispatch-message-input",children:"Request"}),e.jsx("textarea",{ref:ze,id:"dispatch-message-input",value:ie,rows:3,placeholder:`What should ${ne?.id===d?"Scout":ne?.name??"this agent"} investigate or do?`,disabled:w==="sending",onChange:r=>{Z(r.target.value),w!=="idle"&&(C("idle"),M(null))},onKeyDown:r=>{r.key==="Enter"&&(r.metaKey||r.ctrlKey)&&(r.preventDefault(),Oe())}}),F.length>0&&e.jsx("div",{className:"sys-broker-composer-attachments","aria-label":"Attachments",children:F.map((r,l)=>e.jsxs("span",{children:[e.jsx(Hs,{size:10,"aria-hidden":"true"}),e.jsx("span",{title:r.name,children:r.name}),e.jsx("button",{type:"button",onClick:()=>o(p=>p.filter((g,Y)=>Y!==l)),"aria-label":`Remove ${r.name}`,children:e.jsx(Me,{size:10,"aria-hidden":"true"})})]},`${r.name}:${r.size}:${l}`))}),e.jsxs("footer",{children:[e.jsxs("div",{className:"sys-broker-composer-left",children:[e.jsx("input",{ref:Be,type:"file",multiple:!0,hidden:!0,disabled:w==="sending",onChange:r=>{ps([...r.target.files??[]]),r.target.value=""}}),e.jsx("button",{type:"button",className:"sys-broker-composer-attach",disabled:w==="sending",onClick:()=>Be.current?.click(),"aria-label":"Attach files",title:"Attach files",children:e.jsx(Js,{size:16,"aria-hidden":"true"})}),e.jsx("span",{className:"sys-broker-message-attachment",title:m,children:"Dispatch context included"})]}),e.jsxs("div",{className:"sys-broker-composer-targets",children:[e.jsx("span",{className:"sys-broker-composer-route-label",children:"Send to"}),e.jsxs("label",{title:"Project target",children:[e.jsx("span",{children:"Project"}),e.jsxs("select",{"aria-label":"Project target",value:$,disabled:w==="sending",onChange:r=>{const l=r.target.value,p=N.find(g=>!l||(g.projectRoot?.trim()||g.cwd?.trim())===l)??null;pe.current=!0,_(l),p&&(A(p.id),Q(p.harness?.trim()||""),re(p.model?.trim()||""))},children:[e.jsx("option",{value:"",children:"Any project"}),us.map(r=>e.jsx("option",{value:r.path,children:r.label},r.path))]})]}),e.jsxs("label",{title:"Agent target",children:[e.jsx("span",{children:"Agent"}),e.jsx("select",{"aria-label":"Agent target",value:se,disabled:w==="sending"||be.length===0,onChange:r=>{const l=N.find(p=>p.id===r.target.value)??null;pe.current=!0,A(r.target.value),l&&(_(l.projectRoot?.trim()||l.cwd?.trim()||""),Q(l.harness?.trim()||""),re(l.model?.trim()||"")),C("idle"),M(null)},children:be.length===0?e.jsx("option",{value:"",children:"No agents"}):be.map(r=>e.jsx("option",{value:r.id,children:r.id===d?"Scout":r.name},r.id))})]}),e.jsx(Cs,{catalog:Ae,value:{harness:S,model:V,effort:K},onChange:r=>{pe.current=!0,Q(r.harness),re(r.model),ae(r.effort)},disabled:w==="sending"}),e.jsx(js,{className:"sys-broker-composer-mic",disabled:w==="sending",onAppend:r=>Z(l=>l.trim()?`${l.trimEnd()} ${r}`:r),onError:r=>{C("failed"),M(r)}})]}),e.jsx("button",{type:"submit",className:"sys-broker-composer-send",disabled:!ie.trim()||!ne||w==="sending","aria-label":`Ask ${ne?.name??"recipient"} about this dispatch`,children:w==="sending"?e.jsx(Se,{size:14,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(Ws,{size:14,"aria-hidden":"true"})})]})]}),ue&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${w}`,role:"status",children:ue})]})]})]})}const jr=_s({id:"dispatch",label:"Dispatch",route:{view:"broker"},webPath:"/dispatch",screen:"BrokerScreen",embed:{path:"/embed/dispatch",profile:"macos.dispatch",rootClassName:"s-broker-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},ownsInternalRoutes:!0,resolveEmbedProps:s=>{const a=s.get("attempt")?.trim();return a?{initialAttemptId:a}:{}},hosts:{macos:!0}}}),ta=Object.freeze(Object.defineProperty({__proto__:null,BrokerAttemptInspector:ds,BrokerScreen:mr,scoutSurface:jr},Symbol.toStringTag,{value:"Module"}));export{ds as B,mr as a,Qe as b,ta as c};
@@ -1 +1 @@
1
- import{j as t,r as g}from"./index-DMiGbrBt.js";import{i as A,k,l as N,a as D}from"./conversation-model-B47vYmWN.js";import{l as L,i as E,a as _,p as w}from"./conversation-prefs-DNre-Lcx.js";import{u as O,m as P,g as R}from"./Provider-C7UKGHQy.js";import{b as U}from"./router-Bq5dwf78.js";import{l as T,i as C,s as V}from"./sessionRead-CvFz2RHv.js";import{u as z}from"./use-conversation-list-Byab41G6.js";import{d as H}from"./colors-BtO5_zlx.js";/* empty css */function q({children:a,count:l,tone:s="default",title:n}){return t.jsxs("div",{className:["collapsed-strip-label",s!=="default"&&`collapsed-strip-label--${s}`,l!=null&&"collapsed-strip-label--has-count"].filter(Boolean).join(" "),title:n??a,children:[t.jsx("span",{className:"collapsed-strip-label-mark","aria-hidden":!0}),t.jsx("span",{className:"collapsed-strip-label-text",children:a}),l!=null?t.jsx("span",{className:"collapsed-strip-label-count",children:l}):null]})}function F({label:a,emptyMark:l="·",showLabel:s=!0,labelTone:n="default",labelCount:r,children:d}){const c=!d||Array.isArray(d)&&d.length===0,u=s?t.jsx(q,{tone:n,count:r,children:a}):null;return c?t.jsxs("div",{className:"collapsed-strip collapsed-strip--empty","aria-hidden":!0,children:[u,t.jsx("span",{className:"collapsed-strip-empty-mark",children:l})]}):t.jsxs("div",{className:"collapsed-strip",role:"list","aria-label":a,children:[u,d]})}function G(){return t.jsx("div",{className:"collapsed-strip-rule","aria-hidden":!0})}function J({title:a,active:l,tone:s="default",ava:n,avaColor:r,glyph:d,dot:c,pinned:u,onClick:h}){const j=["collapsed-chip",s==="channel"&&"collapsed-chip--channel",s==="neutral"&&"collapsed-chip--neutral",s==="attention"&&"collapsed-chip--attention",s==="unread"&&"collapsed-chip--unread",l&&"collapsed-chip--active",u&&"collapsed-chip--pinned"].filter(Boolean).join(" ");return t.jsxs("button",{type:"button",role:"listitem",className:j,title:a,"aria-label":a,"aria-current":l?"page":void 0,onClick:h,children:[n?t.jsx("span",{className:"collapsed-chip-ava",style:r?{background:r}:void 0,children:n}):t.jsx("span",{className:"collapsed-chip-glyph",children:d}),c?t.jsx("span",{className:["collapsed-chip-dot",c==="attention"&&"collapsed-chip-dot--attention",c==="live"&&"collapsed-chip-dot--live"].filter(Boolean).join(" "),"aria-hidden":!0}):null,u?t.jsx("span",{className:"collapsed-chip-pin","aria-hidden":!0}):null]})}function K(a){const l=a.trim(),s=l.split(/[\s/_-]+/).filter(Boolean);if(s.length>=2){const n=s[s.length-1];return/^\d+$/.test(n)&&s.length>=3?(s[s.length-2][0]??"?").toUpperCase():(n[0]??"?").toUpperCase()}return(l[0]??"?").toUpperCase()}const Q=3,W=3,X=4,Y=3;function I(a,l){return[...a].sort((s,n)=>{const r=C(s.lastMessageAt,s.id,l)?0:1,d=C(n.lastMessageAt,n.id,l)?0:1;return r!==d?r-d:(n.lastMessageAt??0)-(s.lastMessageAt??0)})}function Z(){const{route:a,navigate:l,agents:s}=O(),{sessions:n}=z(),[r,d]=g.useState(()=>L()),[c,u]=g.useState(()=>T()),h=U(a),j=g.useMemo(()=>P(s,h),[s,h]),$=a.view==="messages"||a.view==="conversation"?a.conversationId:void 0;g.useEffect(()=>{d(L()),u(T())},[]);const i=g.useMemo(()=>{const e=R(n,j,h).filter(o=>!E(o.id,r)),m=e.filter(o=>_(o.id,r)).sort((o,y)=>w(y.id,r)-w(o.id,r)||(y.lastMessageAt??0)-(o.lastMessageAt??0)).slice(0,Q),f=new Set(m.map(o=>o.id)),p=e.filter(o=>!f.has(o.id));return{pinned:m,channels:I(p.filter(N),c).slice(0,W),dms:I(p.filter(k),c).slice(0,X),observed:I(p.filter(A),c).slice(0,Y),totals:{channels:p.filter(N).length,dms:p.filter(k).length,observed:p.filter(A).length,pinned:e.filter(o=>_(o.id,r)).length}}},[n,j,h,r,c]),B=e=>{u(V(e.id)),l({view:"messages",conversationId:e.id,...h?{machineId:h}:{}})},S=[...i.pinned,...i.channels,...i.dms,...i.observed],M=S.filter(e=>C(e.lastMessageAt,e.id,c)).length,x=(e,m=!1)=>{const f=D(e),p=N(e),o=C(e.lastMessageAt,e.id,c);return t.jsx(J,{title:m?`${f} · pinned`:f,active:e.id===$,tone:p?"channel":o?"unread":"default",ava:p?void 0:K(e.agentName??f),avaColor:p?void 0:H(e.agentName??f),glyph:p?"#":void 0,dot:o?"unread":null,pinned:m,onClick:()=>B(e)},e.id)},v=[];return i.pinned.length&&v.push(t.jsx(b,{mark:"Pin",count:i.totals.pinned,children:i.pinned.map(e=>x(e,!0))},"pin")),i.channels.length&&v.push(t.jsx(b,{mark:"#",count:i.totals.channels,children:i.channels.map(e=>x(e))},"ch")),i.dms.length&&v.push(t.jsx(b,{mark:"DM",count:i.totals.dms,children:i.dms.map(e=>x(e))},"dm")),i.observed.length&&v.push(t.jsx(b,{mark:"Obs",count:i.totals.observed,children:i.observed.map(e=>x(e))},"obs")),t.jsx(F,{label:"Chat",emptyMark:"#",labelTone:M>0?"accent":"default",labelCount:M>0?M:S.length||void 0,children:v.flatMap((e,m)=>m===0?[e]:[t.jsx(G,{},`rule-${m}`),e])})}function b({mark:a,count:l,children:s}){return t.jsxs("div",{className:"collapsed-strip-section",role:"group","aria-label":a,children:[t.jsxs("div",{className:"collapsed-strip-section-mark",title:l!=null?`${a} · ${l}`:a,children:[t.jsx("span",{className:"collapsed-strip-section-mark-text",children:a}),l!=null&&l>0?t.jsx("span",{className:"collapsed-strip-section-mark-count",children:l>99?"99+":l}):null]}),s]})}const ce=Object.freeze(Object.defineProperty({__proto__:null,ChatCollapsedStrip:Z},Symbol.toStringTag,{value:"Module"}));export{F as C,Z as a,J as b,K as c,G as d,ce as e};
1
+ import{j as t,r as g}from"./index-sUomXsrf.js";import{i as A,k,l as N,a as D}from"./conversation-model-C4yb6_FA.js";import{l as L,i as E,a as _,p as w}from"./conversation-prefs-DNre-Lcx.js";import{u as O,m as P,g as R}from"./Provider-tFc3jqZ4.js";import{b as U}from"./router-Dja9_ygK.js";import{l as T,i as C,s as V}from"./sessionRead-CvFz2RHv.js";import{u as z}from"./use-conversation-list-B1T6J_qE.js";import{d as H}from"./colors-BtO5_zlx.js";/* empty css */function q({children:a,count:l,tone:s="default",title:n}){return t.jsxs("div",{className:["collapsed-strip-label",s!=="default"&&`collapsed-strip-label--${s}`,l!=null&&"collapsed-strip-label--has-count"].filter(Boolean).join(" "),title:n??a,children:[t.jsx("span",{className:"collapsed-strip-label-mark","aria-hidden":!0}),t.jsx("span",{className:"collapsed-strip-label-text",children:a}),l!=null?t.jsx("span",{className:"collapsed-strip-label-count",children:l}):null]})}function F({label:a,emptyMark:l="·",showLabel:s=!0,labelTone:n="default",labelCount:r,children:d}){const c=!d||Array.isArray(d)&&d.length===0,u=s?t.jsx(q,{tone:n,count:r,children:a}):null;return c?t.jsxs("div",{className:"collapsed-strip collapsed-strip--empty","aria-hidden":!0,children:[u,t.jsx("span",{className:"collapsed-strip-empty-mark",children:l})]}):t.jsxs("div",{className:"collapsed-strip",role:"list","aria-label":a,children:[u,d]})}function G(){return t.jsx("div",{className:"collapsed-strip-rule","aria-hidden":!0})}function J({title:a,active:l,tone:s="default",ava:n,avaColor:r,glyph:d,dot:c,pinned:u,onClick:h}){const j=["collapsed-chip",s==="channel"&&"collapsed-chip--channel",s==="neutral"&&"collapsed-chip--neutral",s==="attention"&&"collapsed-chip--attention",s==="unread"&&"collapsed-chip--unread",l&&"collapsed-chip--active",u&&"collapsed-chip--pinned"].filter(Boolean).join(" ");return t.jsxs("button",{type:"button",role:"listitem",className:j,title:a,"aria-label":a,"aria-current":l?"page":void 0,onClick:h,children:[n?t.jsx("span",{className:"collapsed-chip-ava",style:r?{background:r}:void 0,children:n}):t.jsx("span",{className:"collapsed-chip-glyph",children:d}),c?t.jsx("span",{className:["collapsed-chip-dot",c==="attention"&&"collapsed-chip-dot--attention",c==="live"&&"collapsed-chip-dot--live"].filter(Boolean).join(" "),"aria-hidden":!0}):null,u?t.jsx("span",{className:"collapsed-chip-pin","aria-hidden":!0}):null]})}function K(a){const l=a.trim(),s=l.split(/[\s/_-]+/).filter(Boolean);if(s.length>=2){const n=s[s.length-1];return/^\d+$/.test(n)&&s.length>=3?(s[s.length-2][0]??"?").toUpperCase():(n[0]??"?").toUpperCase()}return(l[0]??"?").toUpperCase()}const Q=3,W=3,X=4,Y=3;function I(a,l){return[...a].sort((s,n)=>{const r=C(s.lastMessageAt,s.id,l)?0:1,d=C(n.lastMessageAt,n.id,l)?0:1;return r!==d?r-d:(n.lastMessageAt??0)-(s.lastMessageAt??0)})}function Z(){const{route:a,navigate:l,agents:s}=O(),{sessions:n}=z(),[r,d]=g.useState(()=>L()),[c,u]=g.useState(()=>T()),h=U(a),j=g.useMemo(()=>P(s,h),[s,h]),$=a.view==="messages"||a.view==="conversation"?a.conversationId:void 0;g.useEffect(()=>{d(L()),u(T())},[]);const i=g.useMemo(()=>{const e=R(n,j,h).filter(o=>!E(o.id,r)),m=e.filter(o=>_(o.id,r)).sort((o,y)=>w(y.id,r)-w(o.id,r)||(y.lastMessageAt??0)-(o.lastMessageAt??0)).slice(0,Q),f=new Set(m.map(o=>o.id)),p=e.filter(o=>!f.has(o.id));return{pinned:m,channels:I(p.filter(N),c).slice(0,W),dms:I(p.filter(k),c).slice(0,X),observed:I(p.filter(A),c).slice(0,Y),totals:{channels:p.filter(N).length,dms:p.filter(k).length,observed:p.filter(A).length,pinned:e.filter(o=>_(o.id,r)).length}}},[n,j,h,r,c]),B=e=>{u(V(e.id)),l({view:"messages",conversationId:e.id,...h?{machineId:h}:{}})},S=[...i.pinned,...i.channels,...i.dms,...i.observed],M=S.filter(e=>C(e.lastMessageAt,e.id,c)).length,x=(e,m=!1)=>{const f=D(e),p=N(e),o=C(e.lastMessageAt,e.id,c);return t.jsx(J,{title:m?`${f} · pinned`:f,active:e.id===$,tone:p?"channel":o?"unread":"default",ava:p?void 0:K(e.agentName??f),avaColor:p?void 0:H(e.agentName??f),glyph:p?"#":void 0,dot:o?"unread":null,pinned:m,onClick:()=>B(e)},e.id)},v=[];return i.pinned.length&&v.push(t.jsx(b,{mark:"Pin",count:i.totals.pinned,children:i.pinned.map(e=>x(e,!0))},"pin")),i.channels.length&&v.push(t.jsx(b,{mark:"#",count:i.totals.channels,children:i.channels.map(e=>x(e))},"ch")),i.dms.length&&v.push(t.jsx(b,{mark:"DM",count:i.totals.dms,children:i.dms.map(e=>x(e))},"dm")),i.observed.length&&v.push(t.jsx(b,{mark:"Obs",count:i.totals.observed,children:i.observed.map(e=>x(e))},"obs")),t.jsx(F,{label:"Chat",emptyMark:"#",labelTone:M>0?"accent":"default",labelCount:M>0?M:S.length||void 0,children:v.flatMap((e,m)=>m===0?[e]:[t.jsx(G,{},`rule-${m}`),e])})}function b({mark:a,count:l,children:s}){return t.jsxs("div",{className:"collapsed-strip-section",role:"group","aria-label":a,children:[t.jsxs("div",{className:"collapsed-strip-section-mark",title:l!=null?`${a} · ${l}`:a,children:[t.jsx("span",{className:"collapsed-strip-section-mark-text",children:a}),l!=null&&l>0?t.jsx("span",{className:"collapsed-strip-section-mark-count",children:l>99?"99+":l}):null]}),s]})}const ce=Object.freeze(Object.defineProperty({__proto__:null,ChatCollapsedStrip:Z},Symbol.toStringTag,{value:"Module"}));export{F as C,Z as a,J as b,K as c,G as d,ce as e};
@@ -0,0 +1 @@
1
+ import{r as o,j as a}from"./index-sUomXsrf.js";import{f as k}from"./cache-Dr0why2k.js";import{u as F,f as I,l as N,L as _,D}from"./usePierreRuntime-DIVunfX0.js";/* empty css */const R=["unstaged","staged","branch"];function L(n){if(!n.startsWith("/"))return null;const t=[];for(const e of n.split("/"))if(!(!e||e==="."))if(e===".."){if(t.length===0)return null;t.pop()}else t.push(e);return t}function A(n,t){const e=L(n),s=L(t);return!e||!s||s.length<=e.length||e.some((c,u)=>s[u]!==c)?null:s.slice(e.length).join("/")}function y(n,t){return n.files.findIndex(e=>e.newPath===t||e.oldPath===t)}function K(n,t){return n.find(e=>y(e,t)>=0)?.kind??null}const M=()=>{},T=()=>{};function O({root:n,file:t}){const e=o.useMemo(()=>A(n,t),[t,n]),[s,c]=o.useState(null),[u,d]=o.useState("loading"),[P,m]=o.useState(null),[S,h]=o.useState(null),{pierre:j,pierrePhase:v,pierreError:C,pierreTheme:b,retryPierre:E}=F(s);o.useEffect(()=>{let r=!1;if(c(null),d("loading"),m(null),h(null),!e){d("ready");return}return k(n,R,{files:[e],tier:"patch"}).then(i=>{r||(c(i.snapshot),h(K(i.snapshot.layers,e)),d("ready"))},i=>{r||(m(i instanceof Error?i.message:String(i)),d("error"))}),()=>{r=!0}},[e,n]);const f=o.useMemo(()=>e?s?.layers.filter(r=>y(r,e)>=0)??[]:[],[e,s]),l=f.find(r=>r.kind===S)??f[0]??null,p=l&&e?y(l,e):-1,g=l&&p>=0?I(l.files[p],p):null;return u==="loading"?a.jsx("div",{className:"s-code-empty",children:"Loading file changes…"}):u==="error"?a.jsx("div",{className:"s-code-empty",children:P??"Couldn’t load this file’s changes."}):!s||!l||!g?a.jsx("div",{className:"s-code-empty",children:"No tracked patch is available. The file is clean, or it is untracked and has no Git baseline yet."}):a.jsxs("div",{className:"s-code-diff",children:[f.length>1?a.jsx("div",{className:"s-code-diffLayers",role:"tablist","aria-label":"Change layer",children:f.map(r=>{const i=N(r),x=r.kind===l.kind;return a.jsxs("button",{type:"button",role:"tab","aria-selected":x,className:"s-code-diffLayer","data-selected":x||void 0,onClick:()=>h(r.kind),children:[_[r.kind],a.jsxs("span",{children:["+",i.add," −",i.del]})]},r.kind)})}):null,a.jsx(D,{layer:l,patchLayer:l,patchPhase:"ready",patchError:null,selectedFileKey:g,renderKey:s.render.renderKey,theme:b,layout:"split",pierre:j,pierrePhase:v,pierreError:C,onRetryPierre:E,onIncludeLineContext:M,onIncludeSelectionContext:T,contextActions:!1})]})}const G=Object.freeze(Object.defineProperty({__proto__:null,CodeDiffPane:O},Symbol.toStringTag,{value:"Module"}));export{O as C,G as a,A as r};
@@ -1,2 +1,2 @@
1
- import{r as h,j as i}from"./index-DMiGbrBt.js";import{C as ne}from"./chevron-down-BGk5qoEw.js";import{S as oe}from"./search-CWfZtOt2.js";const se=new Set(["hud","tail","terminal","services","pair","osn-auth","notification","code","file"]);function L(e){const t=e?.trim();return t||void 0}function q(e){if(!e)return;const t=Number.parseInt(e,10);return Number.isSafeInteger(t)&&t>0?t:void 0}function ce(e){return e.split("/").filter(t=>t.length>0).map(encodeURIComponent).join("/")}function R(e){return e.map(t=>{try{return decodeURIComponent(t)}catch{return t}}).join("/")}function ie(e){const t=q(e.get("line")),n=q(e.get("endLine")),r=t&&n&&n>=t?n:void 0;return{...L(e.get("wt"))?{wt:L(e.get("wt"))}:{},...t?{line:t}:{},...r?{endLine:r}:{}}}function G(e){const t=e.trim();if(!t)return null;if(t.startsWith("/")||t.startsWith("~/")){const u=t.replace(/^~/,""),d=t.startsWith("~")?t:u;return{root:d,file:d}}if(!/^scout:/i.test(t))return null;let n;try{n=new URL(t)}catch{return null}if(n.protocol.toLowerCase()!=="scout:")return null;const r=(n.hostname||n.host||"").toLowerCase(),c=n.pathname.split("/").filter(u=>u.length>0),s=ie(n.searchParams);if(!r||r==="file"){const u=c;if(u.length===0)return null;const d=`/${R(u)}`,m=L(n.searchParams.get("root")),j=L(n.searchParams.get("file"));return{root:m??d,file:j??d,...s}}if(r==="code"){if(c.length===0){const m=L(n.searchParams.get("root")),j=L(n.searchParams.get("file")),b=L(n.searchParams.get("project")),y=L(n.searchParams.get("path"));return!m&&!j&&!b?{...s}:{...m?{root:m}:{},...j?{file:j}:{},...b?{project:b}:{},...y?{path:y}:{},...s}}const u=R([c[0]]),d=c.length>1?R(c.slice(1)):void 0;return{project:u,...d?{path:d}:{},...s}}if(se.has(r))return null;const a=decodeURIComponent(r),l=c.length>0?R(c):void 0;return{project:a,...l?{path:l}:{},...s}}function ae(e){const t=new URLSearchParams;e.wt&&t.set("wt",e.wt),e.line&&e.line>0&&t.set("line",String(e.line)),e.line&&e.endLine&&e.endLine>=e.line&&t.set("endLine",String(e.endLine));const n=t.toString(),r=n?`?${n}`:"";if(e.project)return`scout://${e.path?`${encodeURIComponent(e.project)}/${ce(e.path)}`:encodeURIComponent(e.project)}${r}`;const c=e.file??e.root;return c?`scout://${c.startsWith("/")?c:`/${c}`}${r}`:`scout://code${r}`}function le(e,t){const n=e.trim();if(!n)return null;let r=null;for(const c of t)(n===c||n.startsWith(`${c}/`))&&(!r||c.length>r.length)&&(r=c);return r?{root:r,file:n===r?null:n}:null}function ue(e){const t=e.trim();return t?!!(t.startsWith("/")||t.startsWith("~/")||/^scout:/i.test(t)):!1}function B(e){return e.toLowerCase().replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function de(e){const t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function fe(e){return e.branch.detached?"detached":e.branch.name??"no branch"}function pe(e){return e.status.clean?"":`${e.status.changedFiles} changed`}function he(e){const t=[];for(const n of e)for(const[r,c]of n.worktrees.entries())t.push({root:c.path,projectId:n.id,projectName:n.name,projectSlug:B(n.name)||B(de(n.name)),worktreeName:c.name,branchLabel:fe(c),dirtyLabel:pe(c),isPrimary:r===0,changedFiles:c.status.changedFiles});return t}function v(e){return e.toLocaleLowerCase().replace(/[\s/_-]+/g," ").trim()}function me(e,t,n=0){const r=v(t);if(!r)return n;const c=r.split(" ").filter(Boolean),s=v(e.projectName),a=v(e.root),l=v(e.branchLabel),u=v(e.worktreeName),d=`${s} ${a} ${l} ${u} ${e.projectSlug}`;if(!c.every(j=>d.includes(j)))return-1;let m=n/100;return s===r||e.projectSlug===r.replace(/\s+/g,"-")?m+=120:s.startsWith(r)||e.projectSlug.startsWith(r.replace(/\s+/g,"-"))?m+=80:s.includes(r)&&(m+=48),(l.startsWith(r)||l.includes(r))&&(m+=34),u.includes(r)&&(m+=24),a.includes(r)&&(m+=20),m+=c.reduce((j,b)=>j+(s.startsWith(b)?12:0),0),m}function ge(e,t,n,r=12){const c=new Map(n.map((a,l)=>[a,n.length-l])),s=e.map(a=>({option:a,score:me(a,t,c.get(a.root)??0)})).filter(a=>a.score>=0);return t.trim()?s.sort((a,l)=>l.score-a.score||a.option.projectName.localeCompare(l.option.projectName)):s.sort((a,l)=>{const u=c.get(a.option.root)??-1,d=c.get(l.option.root)??-1;return u!==d?d-u:a.option.projectName.localeCompare(l.option.projectName)||a.option.branchLabel.localeCompare(l.option.branchLabel)}),s.slice(0,r).map(a=>a.option)}function Y(e){return e.isPrimary?e.projectName:`${e.projectName} · ${e.branchLabel}`}function D(e){return e.dirtyLabel?`${e.branchLabel} · ${e.dirtyLabel}`:e.branchLabel}function O(e){const t=typeof window<"u"?window.__OPEN_SCOUT_HOME:void 0;if(t&&e.startsWith(`${t}/`))return`~/${e.slice(t.length+1)}`;if(e.startsWith("/Users/")){const n=e.slice(7),r=n.indexOf("/");if(r>0)return`~${n.slice(r)}`}if(e.startsWith("/home/")){const n=e.slice(6),r=n.indexOf("/");if(r>0)return`~${n.slice(r)}`}return e}const Q="openscout.code.tree:",_="openscout.code.lastRoot",V="openscout.code.recentRoots",je=8;function Ce(e){if(typeof window>"u")return null;try{const t=window.localStorage.getItem(Q+e);if(!t)return null;const n=JSON.parse(t);return!n||typeof n.entries!="object"||!Array.isArray(n.expanded)?null:n}catch{return null}}function Re(e,t){if(typeof window>"u")return;const n={};for(const r of[e,...t.expanded]){const c=t.entries.get(r);c&&(n[r]=c)}try{window.localStorage.setItem(Q+e,JSON.stringify({entries:n,expanded:[...t.expanded],selectedFile:t.selectedFile,savedAt:Date.now()}))}catch{}}function Oe(){if(typeof window>"u")return null;try{return window.localStorage.getItem(_)}catch{return null}}function M(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(V);if(!e){const n=window.localStorage.getItem(_);return n?[n]:[]}const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>typeof n=="string"&&n.length>0):[]}catch{return[]}}function Pe(e){if(!(typeof window>"u"))try{window.localStorage.setItem(_,e);const t=M().filter(r=>r!==e),n=[e,...t].slice(0,je);window.localStorage.setItem(V,JSON.stringify(n))}catch{}}const we=6,be=12;function k(e){return e.toLowerCase().replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function W(e){const t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function X(e,t,n){const r=G(e);if(!r)return null;if(r.root||r.file){const c=t.map(u=>u.root),s=xe(r.file??r.root,c),a=le(s,c);if(a)return{root:a.root,file:a.file,line:r.line,endLine:r.endLine};const l=W(s).includes(".");return{root:l?Le(s):s,file:l?s:null,line:r.line,endLine:r.endLine}}if(r.project){const c=ke(n,r.project,r.wt??null,t);if(!c)return null;const s=r.path?`${c.root}/${r.path}`:null;return{root:c.root,file:s,project:r.project,path:r.path,wt:r.wt,line:r.line,endLine:r.endLine}}return null}function xe(e,t){if(!e.startsWith("~/")&&e!=="~")return e;for(const n of t){const r=n.match(/^(\/Users\/[^/]+)/)??n.match(/^(\/home\/[^/]+)/);if(r)return`${r[1]}${e.slice(1)}`}return e}function Le(e){const t=e.lastIndexOf("/");return t>0?e.slice(0,t):e}function ke(e,t,n,r){if(e){const a=k(t),l=e.projects.find(u=>k(u.name)===a||k(W(u.root))===a);if(l)return{root:(n?l.worktrees.find(d=>d.name===n||d.branch.name===n||k(d.name)===k(n)):l.worktrees[0])?.path??l.root}}const c=k(t),s=r.find(a=>a.projectSlug===c);return s?{root:s.root}:null}function ye(e){if(e.project)return ae({project:e.project,path:e.path,wt:e.wt,line:e.line,endLine:e.endLine});const t=e.file??e.root;return t?O(t):"Deep link"}function Ne({snapshot:e,root:t,onSelect:n}){const[r,c]=h.useState(!1),[s,a]=h.useState(""),[l,u]=h.useState(0),[d,m]=h.useState(()=>M()),j=h.useRef(null),b=h.useRef(null),y=h.useRef(null),N=h.useId().replaceAll(":",""),P=`code-project-results-${N}`,x=h.useMemo(()=>he(e?.projects??[]),[e]),I=h.useMemo(()=>{const o=new Map;for(const f of x)o.set(f.root,f);return o},[x]),C=t?I.get(t)??null:null;h.useEffect(()=>{m(M())},[t,r]);const U=h.useMemo(()=>{const o=[];for(const f of d){const $=I.get(f);if($&&o.push($),o.length>=we)break}return o},[d,I]),w=ue(s),A=w?G(s):null,p=w?X(s,x,e):null,g=h.useMemo(()=>w?[]:ge(x,s,d,be),[x,s,d,w]),Z=(p?1:0)+g.length,S=h.useMemo(()=>{if(!s.trim()||w)return"";const o=g.find(f=>f.projectName.toLocaleLowerCase().startsWith(s.toLocaleLowerCase()));return o&&o.projectName.length>s.length?o.projectName:""},[s,g,w]);h.useEffect(()=>u(0),[s,r]),h.useEffect(()=>{if(!r)return;const o=window.setTimeout(()=>b.current?.focus(),20);return()=>window.clearTimeout(o)},[r]),h.useEffect(()=>{if(!r)return;function o(f){j.current?.contains(f.target)||(c(!1),a(""))}return document.addEventListener("pointerdown",o),()=>document.removeEventListener("pointerdown",o)},[r]);const E=()=>{a(""),c(!1),window.setTimeout(()=>y.current?.focus(),0)},T=o=>{n({root:o}),E()},F=()=>{p&&(n(p),E())},ee=o=>{if(o.key==="ArrowDown")o.preventDefault(),u(f=>Math.min(f+1,Math.max(Z-1,0)));else if(o.key==="ArrowUp")o.preventDefault(),u(f=>Math.max(f-1,0));else if(o.key==="Enter"){if(o.preventDefault(),p&&(l===0||g.length===0)){F();return}const f=p?l-1:l;g[f]&&T(g[f].root)}else o.key==="ArrowRight"&&S&&o.currentTarget.selectionStart===s.length?(o.preventDefault(),a(S)):o.key==="Escape"&&(o.preventDefault(),E())},te=C?Y(C):t?O(t):"Pick a project…",z=C?D(C):null,H=!!p&&l===0,re=p&&l===0?`${N}-deeplink`:g[p?l-1:l]?`${N}-opt-${g[p?l-1:l].root}`:void 0;return i.jsxs("div",{className:"s-code-picker",ref:j,children:[i.jsxs("button",{ref:y,type:"button",className:"s-code-pickerTrigger","aria-haspopup":"listbox","aria-expanded":r,"aria-controls":r?P:void 0,"aria-label":"Project or worktree",onClick:()=>c(o=>!o),children:[i.jsx("span",{className:"s-code-pickerTriggerName",children:te}),z?i.jsx("span",{className:"s-code-pickerTriggerDetail",children:z}):null,i.jsx(ne,{size:13,"aria-hidden":!0,className:"s-code-pickerChevron","data-open":r||void 0})]}),r?i.jsxs("div",{className:"s-code-pickerPanel",role:"dialog","aria-label":"Choose a project",children:[U.length>0&&!w?i.jsx("div",{className:"s-code-pickerRecents","aria-label":"Recent projects",children:U.map(o=>i.jsx("button",{type:"button",className:"s-code-pickerChip","data-active":o.root===t||void 0,title:`${o.projectName} · ${D(o)}
1
+ import{r as h,j as i}from"./index-sUomXsrf.js";import{C as ne}from"./chevron-down-BFai6ZfE.js";import{S as oe}from"./search-DCT_EvPr.js";const se=new Set(["hud","tail","terminal","services","pair","osn-auth","notification","code","file"]);function L(e){const t=e?.trim();return t||void 0}function q(e){if(!e)return;const t=Number.parseInt(e,10);return Number.isSafeInteger(t)&&t>0?t:void 0}function ce(e){return e.split("/").filter(t=>t.length>0).map(encodeURIComponent).join("/")}function R(e){return e.map(t=>{try{return decodeURIComponent(t)}catch{return t}}).join("/")}function ie(e){const t=q(e.get("line")),n=q(e.get("endLine")),r=t&&n&&n>=t?n:void 0;return{...L(e.get("wt"))?{wt:L(e.get("wt"))}:{},...t?{line:t}:{},...r?{endLine:r}:{}}}function G(e){const t=e.trim();if(!t)return null;if(t.startsWith("/")||t.startsWith("~/")){const u=t.replace(/^~/,""),d=t.startsWith("~")?t:u;return{root:d,file:d}}if(!/^scout:/i.test(t))return null;let n;try{n=new URL(t)}catch{return null}if(n.protocol.toLowerCase()!=="scout:")return null;const r=(n.hostname||n.host||"").toLowerCase(),c=n.pathname.split("/").filter(u=>u.length>0),s=ie(n.searchParams);if(!r||r==="file"){const u=c;if(u.length===0)return null;const d=`/${R(u)}`,m=L(n.searchParams.get("root")),j=L(n.searchParams.get("file"));return{root:m??d,file:j??d,...s}}if(r==="code"){if(c.length===0){const m=L(n.searchParams.get("root")),j=L(n.searchParams.get("file")),b=L(n.searchParams.get("project")),y=L(n.searchParams.get("path"));return!m&&!j&&!b?{...s}:{...m?{root:m}:{},...j?{file:j}:{},...b?{project:b}:{},...y?{path:y}:{},...s}}const u=R([c[0]]),d=c.length>1?R(c.slice(1)):void 0;return{project:u,...d?{path:d}:{},...s}}if(se.has(r))return null;const a=decodeURIComponent(r),l=c.length>0?R(c):void 0;return{project:a,...l?{path:l}:{},...s}}function ae(e){const t=new URLSearchParams;e.wt&&t.set("wt",e.wt),e.line&&e.line>0&&t.set("line",String(e.line)),e.line&&e.endLine&&e.endLine>=e.line&&t.set("endLine",String(e.endLine));const n=t.toString(),r=n?`?${n}`:"";if(e.project)return`scout://${e.path?`${encodeURIComponent(e.project)}/${ce(e.path)}`:encodeURIComponent(e.project)}${r}`;const c=e.file??e.root;return c?`scout://${c.startsWith("/")?c:`/${c}`}${r}`:`scout://code${r}`}function le(e,t){const n=e.trim();if(!n)return null;let r=null;for(const c of t)(n===c||n.startsWith(`${c}/`))&&(!r||c.length>r.length)&&(r=c);return r?{root:r,file:n===r?null:n}:null}function ue(e){const t=e.trim();return t?!!(t.startsWith("/")||t.startsWith("~/")||/^scout:/i.test(t)):!1}function B(e){return e.toLowerCase().replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function de(e){const t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function fe(e){return e.branch.detached?"detached":e.branch.name??"no branch"}function pe(e){return e.status.clean?"":`${e.status.changedFiles} changed`}function he(e){const t=[];for(const n of e)for(const[r,c]of n.worktrees.entries())t.push({root:c.path,projectId:n.id,projectName:n.name,projectSlug:B(n.name)||B(de(n.name)),worktreeName:c.name,branchLabel:fe(c),dirtyLabel:pe(c),isPrimary:r===0,changedFiles:c.status.changedFiles});return t}function v(e){return e.toLocaleLowerCase().replace(/[\s/_-]+/g," ").trim()}function me(e,t,n=0){const r=v(t);if(!r)return n;const c=r.split(" ").filter(Boolean),s=v(e.projectName),a=v(e.root),l=v(e.branchLabel),u=v(e.worktreeName),d=`${s} ${a} ${l} ${u} ${e.projectSlug}`;if(!c.every(j=>d.includes(j)))return-1;let m=n/100;return s===r||e.projectSlug===r.replace(/\s+/g,"-")?m+=120:s.startsWith(r)||e.projectSlug.startsWith(r.replace(/\s+/g,"-"))?m+=80:s.includes(r)&&(m+=48),(l.startsWith(r)||l.includes(r))&&(m+=34),u.includes(r)&&(m+=24),a.includes(r)&&(m+=20),m+=c.reduce((j,b)=>j+(s.startsWith(b)?12:0),0),m}function ge(e,t,n,r=12){const c=new Map(n.map((a,l)=>[a,n.length-l])),s=e.map(a=>({option:a,score:me(a,t,c.get(a.root)??0)})).filter(a=>a.score>=0);return t.trim()?s.sort((a,l)=>l.score-a.score||a.option.projectName.localeCompare(l.option.projectName)):s.sort((a,l)=>{const u=c.get(a.option.root)??-1,d=c.get(l.option.root)??-1;return u!==d?d-u:a.option.projectName.localeCompare(l.option.projectName)||a.option.branchLabel.localeCompare(l.option.branchLabel)}),s.slice(0,r).map(a=>a.option)}function Y(e){return e.isPrimary?e.projectName:`${e.projectName} · ${e.branchLabel}`}function D(e){return e.dirtyLabel?`${e.branchLabel} · ${e.dirtyLabel}`:e.branchLabel}function O(e){const t=typeof window<"u"?window.__OPEN_SCOUT_HOME:void 0;if(t&&e.startsWith(`${t}/`))return`~/${e.slice(t.length+1)}`;if(e.startsWith("/Users/")){const n=e.slice(7),r=n.indexOf("/");if(r>0)return`~${n.slice(r)}`}if(e.startsWith("/home/")){const n=e.slice(6),r=n.indexOf("/");if(r>0)return`~${n.slice(r)}`}return e}const Q="openscout.code.tree:",_="openscout.code.lastRoot",V="openscout.code.recentRoots",je=8;function Ce(e){if(typeof window>"u")return null;try{const t=window.localStorage.getItem(Q+e);if(!t)return null;const n=JSON.parse(t);return!n||typeof n.entries!="object"||!Array.isArray(n.expanded)?null:n}catch{return null}}function Re(e,t){if(typeof window>"u")return;const n={};for(const r of[e,...t.expanded]){const c=t.entries.get(r);c&&(n[r]=c)}try{window.localStorage.setItem(Q+e,JSON.stringify({entries:n,expanded:[...t.expanded],selectedFile:t.selectedFile,savedAt:Date.now()}))}catch{}}function Oe(){if(typeof window>"u")return null;try{return window.localStorage.getItem(_)}catch{return null}}function M(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(V);if(!e){const n=window.localStorage.getItem(_);return n?[n]:[]}const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>typeof n=="string"&&n.length>0):[]}catch{return[]}}function Pe(e){if(!(typeof window>"u"))try{window.localStorage.setItem(_,e);const t=M().filter(r=>r!==e),n=[e,...t].slice(0,je);window.localStorage.setItem(V,JSON.stringify(n))}catch{}}const we=6,be=12;function k(e){return e.toLowerCase().replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function W(e){const t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function X(e,t,n){const r=G(e);if(!r)return null;if(r.root||r.file){const c=t.map(u=>u.root),s=xe(r.file??r.root,c),a=le(s,c);if(a)return{root:a.root,file:a.file,line:r.line,endLine:r.endLine};const l=W(s).includes(".");return{root:l?Le(s):s,file:l?s:null,line:r.line,endLine:r.endLine}}if(r.project){const c=ke(n,r.project,r.wt??null,t);if(!c)return null;const s=r.path?`${c.root}/${r.path}`:null;return{root:c.root,file:s,project:r.project,path:r.path,wt:r.wt,line:r.line,endLine:r.endLine}}return null}function xe(e,t){if(!e.startsWith("~/")&&e!=="~")return e;for(const n of t){const r=n.match(/^(\/Users\/[^/]+)/)??n.match(/^(\/home\/[^/]+)/);if(r)return`${r[1]}${e.slice(1)}`}return e}function Le(e){const t=e.lastIndexOf("/");return t>0?e.slice(0,t):e}function ke(e,t,n,r){if(e){const a=k(t),l=e.projects.find(u=>k(u.name)===a||k(W(u.root))===a);if(l)return{root:(n?l.worktrees.find(d=>d.name===n||d.branch.name===n||k(d.name)===k(n)):l.worktrees[0])?.path??l.root}}const c=k(t),s=r.find(a=>a.projectSlug===c);return s?{root:s.root}:null}function ye(e){if(e.project)return ae({project:e.project,path:e.path,wt:e.wt,line:e.line,endLine:e.endLine});const t=e.file??e.root;return t?O(t):"Deep link"}function Ne({snapshot:e,root:t,onSelect:n}){const[r,c]=h.useState(!1),[s,a]=h.useState(""),[l,u]=h.useState(0),[d,m]=h.useState(()=>M()),j=h.useRef(null),b=h.useRef(null),y=h.useRef(null),N=h.useId().replaceAll(":",""),P=`code-project-results-${N}`,x=h.useMemo(()=>he(e?.projects??[]),[e]),I=h.useMemo(()=>{const o=new Map;for(const f of x)o.set(f.root,f);return o},[x]),C=t?I.get(t)??null:null;h.useEffect(()=>{m(M())},[t,r]);const U=h.useMemo(()=>{const o=[];for(const f of d){const $=I.get(f);if($&&o.push($),o.length>=we)break}return o},[d,I]),w=ue(s),A=w?G(s):null,p=w?X(s,x,e):null,g=h.useMemo(()=>w?[]:ge(x,s,d,be),[x,s,d,w]),Z=(p?1:0)+g.length,S=h.useMemo(()=>{if(!s.trim()||w)return"";const o=g.find(f=>f.projectName.toLocaleLowerCase().startsWith(s.toLocaleLowerCase()));return o&&o.projectName.length>s.length?o.projectName:""},[s,g,w]);h.useEffect(()=>u(0),[s,r]),h.useEffect(()=>{if(!r)return;const o=window.setTimeout(()=>b.current?.focus(),20);return()=>window.clearTimeout(o)},[r]),h.useEffect(()=>{if(!r)return;function o(f){j.current?.contains(f.target)||(c(!1),a(""))}return document.addEventListener("pointerdown",o),()=>document.removeEventListener("pointerdown",o)},[r]);const E=()=>{a(""),c(!1),window.setTimeout(()=>y.current?.focus(),0)},T=o=>{n({root:o}),E()},F=()=>{p&&(n(p),E())},ee=o=>{if(o.key==="ArrowDown")o.preventDefault(),u(f=>Math.min(f+1,Math.max(Z-1,0)));else if(o.key==="ArrowUp")o.preventDefault(),u(f=>Math.max(f-1,0));else if(o.key==="Enter"){if(o.preventDefault(),p&&(l===0||g.length===0)){F();return}const f=p?l-1:l;g[f]&&T(g[f].root)}else o.key==="ArrowRight"&&S&&o.currentTarget.selectionStart===s.length?(o.preventDefault(),a(S)):o.key==="Escape"&&(o.preventDefault(),E())},te=C?Y(C):t?O(t):"Pick a project…",z=C?D(C):null,H=!!p&&l===0,re=p&&l===0?`${N}-deeplink`:g[p?l-1:l]?`${N}-opt-${g[p?l-1:l].root}`:void 0;return i.jsxs("div",{className:"s-code-picker",ref:j,children:[i.jsxs("button",{ref:y,type:"button",className:"s-code-pickerTrigger","aria-haspopup":"listbox","aria-expanded":r,"aria-controls":r?P:void 0,"aria-label":"Project or worktree",onClick:()=>c(o=>!o),children:[i.jsx("span",{className:"s-code-pickerTriggerName",children:te}),z?i.jsx("span",{className:"s-code-pickerTriggerDetail",children:z}):null,i.jsx(ne,{size:13,"aria-hidden":!0,className:"s-code-pickerChevron","data-open":r||void 0})]}),r?i.jsxs("div",{className:"s-code-pickerPanel",role:"dialog","aria-label":"Choose a project",children:[U.length>0&&!w?i.jsx("div",{className:"s-code-pickerRecents","aria-label":"Recent projects",children:U.map(o=>i.jsx("button",{type:"button",className:"s-code-pickerChip","data-active":o.root===t||void 0,title:`${o.projectName} · ${D(o)}
2
2
  ${o.root}`,onClick:()=>T(o.root),children:Y(o)},o.root))}):null,i.jsxs("div",{className:"s-code-pickerSearch",children:[i.jsx(oe,{size:13,"aria-hidden":!0,className:"s-code-pickerSearchIcon"}),i.jsxs("div",{className:"s-code-pickerInputStack",children:[S?i.jsxs("div",{className:"s-code-pickerGhost","aria-hidden":!0,children:[i.jsx("span",{children:s}),S.slice(s.length)]}):null,i.jsx("input",{ref:b,className:"s-code-pickerInput",type:"search",role:"combobox",value:s,onChange:o=>a(o.currentTarget.value),onKeyDown:ee,placeholder:"Project, scout:// path, or branch…","aria-label":"Find a project","aria-autocomplete":"both","aria-expanded":"true","aria-controls":P,"aria-activedescendant":re,autoComplete:"off",spellCheck:!1})]}),S?i.jsx("kbd",{className:"s-code-pickerHint",children:"→"}):null]}),i.jsxs("div",{className:"s-code-pickerHeading",children:[i.jsx("span",{children:w?p?"Deep link":"Unrecognized link":s.trim()?g.length?"Matches":"No matches":"All projects"}),i.jsx("span",{children:w?p?"open with ↵":"no match":s.trim()?`${g.length} shown`:x.length?`${Math.min(g.length,x.length)} of ${x.length}`:e?"No repos yet":"Loading…"})]}),i.jsxs("div",{id:P,className:"s-code-pickerResults",role:"listbox","aria-label":"Projects",children:[p?i.jsxs("button",{id:`${N}-deeplink`,type:"button",role:"option","aria-selected":H,tabIndex:-1,className:"s-code-pickerOption s-code-pickerOption--deep","data-active":H||void 0,onMouseEnter:()=>u(0),onClick:F,children:[i.jsx("span",{className:"s-code-pickerOptionMain",children:i.jsx("strong",{children:"Open deep link"})}),i.jsx("span",{className:"s-code-pickerOptionPath",title:s.trim(),children:A?ye(A):s.trim()}),i.jsxs("span",{className:"s-code-pickerOptionMeta",children:[O(p.root),p.file?` · ${W(p.file)}`:""]})]}):null,g.map((o,f)=>{const $=p?f+1:f,J=$===l,K=o.root===t;return i.jsxs("button",{id:`${N}-opt-${o.root}`,type:"button",role:"option","aria-selected":J,"aria-current":K||void 0,tabIndex:-1,className:"s-code-pickerOption","data-active":J||void 0,"data-selected":K||void 0,onMouseEnter:()=>u($),onClick:()=>T(o.root),children:[i.jsxs("span",{className:"s-code-pickerOptionMain",children:[i.jsx("strong",{children:o.projectName}),o.isPrimary?null:i.jsx("span",{className:"s-code-pickerWorktree",children:"worktree"})]}),i.jsx("span",{className:"s-code-pickerOptionPath",title:o.root,children:O(o.root)}),i.jsx("span",{className:"s-code-pickerOptionMeta",children:D(o)})]},o.root)})]}),g.length===0&&s.trim()&&!p?i.jsx("div",{className:"s-code-pickerEmpty",role:"status",children:w?"Could not resolve that scout:// link. Try a project slug or absolute path.":`No project matches “${s}”. Try a folder name, branch, path, or scout:// link.`}):null,i.jsxs("div",{className:"s-code-pickerGuide",children:[i.jsxs("span",{children:[i.jsx("kbd",{children:"↑"}),i.jsx("kbd",{children:"↓"})," move"]}),i.jsxs("span",{children:[i.jsx("kbd",{children:"↵"})," open"]}),i.jsxs("span",{children:[i.jsx("kbd",{children:"esc"})," close"]})]})]}):null]})}const Ie=Object.freeze(Object.defineProperty({__proto__:null,CodeProjectPicker:Ne,resolvePickerDeepLink:X},Symbol.toStringTag,{value:"Module"}));export{Ne as C,Ce as a,Pe as b,Ie as c,ae as f,Oe as r,O as s,Re as w};
@@ -0,0 +1 @@
1
+ import{r as s,j as i}from"./index-sUomXsrf.js";import{a as te}from"./api-h5zurxmi.js";import{c as pe}from"./clipboard-e3fSpeo7.js";import{f as Ie}from"./scoutbot-BTIErYHo.js";import{g as Be,f as he}from"./api-BkjHJfgJ.js";import{d as Pe}from"./types-B0PlfpKc.js";import{r as We,C as _e}from"./CodeDiffPane-CLOGjwul.js";import{r as Ue,a as ze,w as Ae,b as Oe,f as me,C as He,s as Ke}from"./CodeProjectPicker-DTV8hR6A.js";import{ShikiPane as qe}from"./ShikiPane-I_OTW5NO.js";/* empty css */import{A as Ge}from"./arrow-left-WjQIN9J6.js";import{C as Ve}from"./chevron-right-CyUa1zXx.js";import{C as Xe}from"./check-BbgHJX8u.js";import{C as Je}from"./copy-CwCAivnc.js";import"./cache-Dr0why2k.js";import"./usePierreRuntime-DIVunfX0.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";/* empty css */import"./chevron-down-BFai6ZfE.js";import"./createLucideIcon-DlxlBfLC.js";import"./search-DCT_EvPr.js";const Qe=new Set(["node_modules",".git","dist",".next",".build","DerivedData","__pycache__",".venv","target"]);function ke(n){const l=n.lastIndexOf("/");return l>0?n.slice(0,l):"/"}function ne(n){const l=n.lastIndexOf("/");return l>=0?n.slice(l+1):n}function z(n){return n<1024?`${n} B`:n<1024*1024?`${(n/1024).toFixed(1)} KB`:`${(n/(1024*1024)).toFixed(1)} MB`}function b(n){return n.toLowerCase().replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function Ye(n,l,m){const k=b(l),f=n.projects.find(d=>b(d.name)===k||b(ne(d.root))===k);if(!f)return null;const w=m?f.worktrees.find(d=>d.name===m||d.branch.name===m||b(d.name)===b(m)):f.worktrees[0];return{projectName:f.name,root:w?.path??f.root}}function ve(n,l){if(!l.startsWith(`${n}/`))return[];const m=l.slice(n.length+1).split("/"),k=[];let f=n;for(const w of m.slice(0,-1))f=`${f}/${w}`,k.push(f);return k}function Ze(n){switch(n){case"untracked":return"U";case"conflicted":return"C";case"staged":return"S";case"unstaged":return"M";case"staged+unstaged":return"SM";default:return n.charAt(0).toUpperCase()}}function je(n,l,m,k,f){const w=m.get(n);if(!w){f.push({path:`${n}#loading`,name:"Loading…",kind:"file",depth:l,loading:!0});return}for(const d of w)d.kind==="directory"&&Qe.has(d.name)||(f.push({path:d.path,name:d.name,kind:d.kind,depth:l}),d.kind==="directory"&&k.has(d.path)&&je(d.path,l+1,m,k,f))}function Ct({route:n,navigate:l,root:m,file:k,project:f,path:w,wt:d,line:we,endLine:Ce,returnConversationId:xe,embedded:A=!1}){const $=m??n?.root??null,M=k??n?.file??null,C=f??n?.project??null,O=w??n?.path??null,re=d??n?.wt??null,g=we??n?.line,x=Ce??n?.endLine,j=xe??n?.returnConversationId??null,[p,se]=s.useState(()=>Be()),[r,H]=s.useState(()=>$??(C?null:Ue())),[S,K]=s.useState(()=>new Map),[y,D]=s.useState(()=>new Set),[ie,q]=s.useState(null),[a,T]=s.useState(M),[c,I]=s.useState(null),[Se,G]=s.useState(!1),[oe,B]=s.useState(null),[ae,V]=s.useState("idle"),[R,X]=s.useState("source"),[h,J]=s.useState(()=>g&&g>0?{line:g,...x&&x>=g?{endLine:x}:{}}:null);s.useEffect(()=>{J(g&&g>0?{line:g,...x&&x>=g?{endLine:x}:{}}:null)},[x,g]),s.useEffect(()=>{if(p)return;let e=!1;return he("quick",!1,2e4).then(t=>{e||se(t)}).catch(()=>{}),()=>{e=!0}},[p]);const L=s.useCallback(async e=>{try{const t=await te(`/api/file/preview?path=${encodeURIComponent(e)}`);if(t.kind!=="directory")return;const o=t.entries.map(u=>({name:u.name,path:u.path,kind:u.kind}));K(u=>new Map(u).set(e,o))}catch(t){q(t instanceof Error?t.message:String(t))}},[]),N=s.useCallback((e,t)=>{if(!t)return;const o=ve(e,t);if(o.length!==0){D(u=>new Set([...u,...o]));for(const u of o)L(u)}},[L]);s.useEffect(()=>{if(!C||!p)return;const e=Ye(p,C,re);if(!e){q(`No project matching "${C}".`);return}const t=O?`${e.root}/${O}`:null;H(e.root),T(t),N(e.root,t)},[C,O,re,p,N]),s.useEffect(()=>{if(r||C||!p)return;const e=p.projects[0];e&&H(e.worktrees[0]?.path??e.root)},[r,C,p]);const ce=s.useRef(a);ce.current=a,s.useEffect(()=>{if(!r)return;q(null);const e=ze(r),t=ce.current,o=t?ve(r,t):[];e?(K(new Map(Object.entries(e.entries))),D(new Set([...e.expanded,...o])),!t&&e.selectedFile&&T(e.selectedFile)):(K(new Map),D(new Set(o)));const u=new Set([r,...e?.expanded??[],...o]);for(const ee of u)L(ee);he("quick",!1,2e4).then(se).catch(()=>{})},[r,L]),s.useEffect(()=>{!r||S.size===0||(Ae(r,{entries:S,expanded:y,selectedFile:a}),Oe(r))},[r,S,y,a]),s.useEffect(()=>{!$||!M||N($,M)},[$,M,N]);const Q=s.useRef(new Map),Y=s.useRef(new Set),be=3e4,P=s.useCallback(e=>{const t=Q.current.get(e);return t?Date.now()-t.at>be?(Q.current.delete(e),null):t.preview:null},[]),W=s.useCallback((e,t)=>{const o=Q.current;if(o.set(e,{at:Date.now(),preview:t}),o.size>80){const u=o.keys().next().value;u&&o.delete(u)}},[]),ye=s.useCallback(e=>{P(e)||Y.current.has(e)||(Y.current.add(e),te(`/api/file/preview?path=${encodeURIComponent(e)}`).then(t=>W(e,t)).catch(()=>{}).finally(()=>Y.current.delete(e)))},[P,W]);s.useEffect(()=>{if(V("idle"),!a){I(null),B(null);return}const e=P(a);if(e){I(e.kind==="file"?e:null),B(null),G(!1);return}let t=!1;return G(!0),B(null),te(`/api/file/preview?path=${encodeURIComponent(a)}`).then(o=>{t||(W(a,o),I(o.kind==="file"?o:null))}).catch(o=>{t||(I(null),B(o instanceof Error?o.message:String(o)))}).finally(()=>{t||G(!1)}),()=>{t=!0}},[a,P,W]);const Le=s.useMemo(()=>{if(!r)return[];const e=[];return je(r,0,S,y,e),e},[r,S,y]),le=s.useCallback((e,t)=>{const o=j?{returnConversationId:j}:{};if(p){for(const u of p.projects)for(const[ee,ue]of u.worktrees.entries())if(ue.path===e){const fe=t&&t.startsWith(`${e}/`)?t.slice(e.length+1):void 0;return{view:"code",project:b(u.name),...fe?{path:fe}:{},...ee>0?{wt:ue.name}:{},...o}}}return{view:"code",root:e,...t?{file:t}:{},...o}},[j,p]),Z=s.useCallback(()=>{if(!j)return;const e={view:"conversation",conversationId:j};Ie({type:"navigate",route:e})||l?.(e)},[l,j]);s.useEffect(()=>{if(!j)return;const e=t=>{if(!(!t.metaKey||t.key!=="[")){if(t.target instanceof HTMLElement){const o=t.target.tagName;if(o==="INPUT"||o==="TEXTAREA"||t.target.isContentEditable)return}t.preventDefault(),Z()}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[j,Z]);const _=s.useCallback((e,t)=>{A||!l||l(le(e,t))},[A,l,le]),Ne=s.useCallback(e=>{D(t=>{const o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o}),S.has(e)||L(e)},[S,L]),Ee=s.useCallback(e=>{J(null),T(e),r&&_(r,e)},[r,_]),v=s.useMemo(()=>{if(!p||!r)return null;for(const e of p.projects)for(const t of e.worktrees)if(t.path===r)return{project:e,worktree:t};return null},[p,r]),E=s.useMemo(()=>{const e=new Map;if(!r||!v)return e;for(const t of v.worktree.status.files)e.set(`${r}/${t.path}`,t.status);return e},[r,v]),Re=s.useMemo(()=>{const e=new Set;if(!r)return e;for(const t of E.keys()){let o=ke(t);for(;o.startsWith(r)&&(e.add(o),o!==r);)o=ke(o)}return e},[r,E]),U=!!(r&&a&&We(r,a));s.useEffect(()=>{U||X("source")},[U]);const Fe=a&&r&&a.startsWith(`${r}/`)?a.slice(r.length+1):c?.kind==="file"?c.title:a?ne(a):null,$e=s.useCallback(async()=>{if(!c||c.kind!=="file"||!c.previewable)return;await pe(c.content)&&(V("copied"),window.setTimeout(()=>V("idle"),1500))},[c]),[Me,de]=s.useState("idle"),F=s.useMemo(()=>{if(!r)return null;if(v){const e=a&&a.startsWith(`${r}/`)?a.slice(r.length+1):void 0,t=v.project.worktrees[0]?.path;return me({project:b(v.project.name),...e?{path:e}:{},...t&&t!==r?{wt:v.worktree.name}:{},...h?.line?{line:h.line}:{},...h?.endLine?{endLine:h.endLine}:{}})}return me({...a?{file:a}:{root:r},...h?.line?{line:h.line}:{},...h?.endLine?{endLine:h.endLine}:{}})},[r,a,v,h]),De=s.useCallback(async()=>{if(!F)return;await pe(F)&&(de("copied"),window.setTimeout(()=>de("idle"),1500))},[F]),Te=s.useCallback(e=>{J(e.line&&e.line>0?{line:e.line,...e.endLine&&e.endLine>=e.line?{endLine:e.endLine}:{}}:null),T(e.file??null),H(e.root),e.file&&N(e.root,e.file),_(e.root,e.file??null)},[N,_]);return i.jsxs("div",{className:"s-code-screen","data-embedded":A||void 0,children:[i.jsxs("div",{className:"s-code-head",children:[j?i.jsxs("button",{type:"button",className:"s-code-returnThread",onClick:Z,title:"Back to thread (⌘[)",children:[i.jsx(Ge,{size:13,strokeWidth:1.9,"aria-hidden":!0}),i.jsx("span",{children:"Back to thread"})]}):null,i.jsx(He,{snapshot:p,root:r,onSelect:Te}),v?.worktree.diff.branchShortstat?i.jsx("span",{className:"s-code-headStat",children:v.worktree.diff.branchShortstat}):null,r?i.jsx("span",{className:"s-code-headPath",title:r,children:Ke(r)}):null,F?i.jsx("button",{type:"button",className:"s-code-copyLink",title:F,onClick:()=>{De()},children:Me==="copied"?"Copied scout://":"Copy scout://"}):null]}),i.jsxs("div",{className:"s-code-body",children:[i.jsx("div",{className:"s-code-tree",role:"tree","aria-label":"Files",children:ie?i.jsx("div",{className:"s-code-treeNote",children:ie}):r?Le.map(e=>e.loading?i.jsx("div",{className:"s-code-node s-code-node--loading",style:{paddingLeft:10+e.depth*14},children:e.name},e.path):i.jsxs("button",{type:"button",role:"treeitem",className:"s-code-node","data-selected":e.path===a||void 0,"data-diff":e.kind==="file"?E.get(e.path):void 0,"aria-expanded":e.kind==="directory"?y.has(e.path):void 0,style:{paddingLeft:10+e.depth*14},onClick:()=>e.kind==="directory"?Ne(e.path):Ee(e.path),onMouseEnter:e.kind==="file"?()=>ye(e.path):void 0,children:[e.kind==="directory"?i.jsx(Ve,{size:11,strokeWidth:2,className:"s-code-nodeChevron","data-open":y.has(e.path)||void 0,"aria-hidden":!0}):i.jsx("span",{className:"s-code-nodeSpacer","aria-hidden":!0}),i.jsx("span",{className:"s-code-nodeName",children:e.name}),e.kind==="file"&&E.has(e.path)?i.jsx("span",{className:"s-code-nodeBadge","data-diff":E.get(e.path),children:Ze(E.get(e.path)??"")}):null,e.kind==="directory"&&Re.has(e.path)?i.jsx("span",{className:"s-code-nodeDot","aria-label":"Contains changes"}):null]},e.path)):i.jsx("div",{className:"s-code-treeNote",children:"No repo selected."})}),i.jsxs("div",{className:"s-code-main",children:[a?i.jsxs("div",{className:"s-code-fileHead",children:[i.jsx("span",{className:"s-code-filePath",children:Fe}),U?i.jsxs("div",{className:"s-code-fileMode",role:"tablist","aria-label":"File view",children:[i.jsx("button",{type:"button",role:"tab","aria-selected":R==="source","data-selected":R==="source"||void 0,onClick:()=>X("source"),children:"Source"}),i.jsx("button",{type:"button",role:"tab","aria-selected":R==="changes","data-selected":R==="changes"||void 0,onClick:()=>X("changes"),children:"Changes"})]}):null,c?.kind==="file"?i.jsxs("span",{className:"s-code-fileMeta",children:[z(c.sizeBytes),c.previewable&&c.truncated?" · truncated":"",h?` · L${h.line}${h.endLine?`–${h.endLine}`:""}`:""]}):null,c?.kind==="file"&&c.previewable?i.jsxs(i.Fragment,{children:[i.jsxs("button",{type:"button",className:"s-code-fileAction",onClick:()=>{$e()},title:"Copy file contents",children:[ae==="copied"?i.jsx(Xe,{size:12,"aria-hidden":!0}):i.jsx(Je,{size:12,"aria-hidden":!0}),ae==="copied"?"Copied":"Copy"]}),i.jsx("a",{className:"s-code-fileAction",href:c.rawUrl,target:"_blank",rel:"noreferrer",children:"Raw"})]}):null]}):null,R==="changes"&&U&&r&&a?i.jsx(_e,{root:r,file:a},`${r}\0${a}`):Se?i.jsxs("div",{className:"s-code-empty",children:["Loading ",a?ne(a):"file","…"]}):oe?i.jsx("div",{className:"s-code-empty",children:oe}):c&&c.kind==="file"&&c.previewable?i.jsxs(i.Fragment,{children:[c.truncated?i.jsxs("div",{className:"s-code-fileNote",children:["Showing the first ",z(256*1024)," of ",z(c.sizeBytes)," ·"," ",i.jsx("a",{href:c.rawUrl,target:"_blank",rel:"noreferrer",children:"open raw"})]}):null,i.jsx(qe,{code:c.content,path:c.path,focusLine:h?.line,endLine:h?.endLine})]}):c&&c.kind==="file"?i.jsxs("div",{className:"s-code-empty",children:[c.previewReason," · ",z(c.sizeBytes)," ·"," ",i.jsx("a",{href:c.rawUrl,target:"_blank",rel:"noreferrer",children:"open raw"})]}):i.jsx("div",{className:"s-code-empty",children:"Pick a file to read."})]})]})]})}const xt=Pe({id:"code",label:"Code Browser",route:{view:"code"},webPath:"/code",screen:"CodeContent",embed:{path:"/embed/code",profile:"macos.code",rootClassName:"s-code-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},hosts:{macos:!0},resolveEmbedProps:n=>({root:n.get("root")?.trim()||void 0,file:n.get("file")?.trim()||void 0,project:n.get("project")?.trim()||void 0,path:n.get("path")?.trim()||void 0,wt:n.get("wt")?.trim()||void 0,line:ge(n.get("line")),endLine:ge(n.get("endLine")),returnConversationId:n.get("fromConversation")?.trim()||void 0})}});function ge(n){if(!n)return;const l=Number.parseInt(n,10);return Number.isSafeInteger(l)&&l>0?l:void 0}export{Ct as CodeContent,xt as scoutSurface};
@@ -1 +1 @@
1
- import{r as u,j as s}from"./index-DMiGbrBt.js";const x={current:null,setMenu:null};function p(){return u.useCallback((i,t)=>{i.preventDefault(),i.stopPropagation(),x.setMenu?.({position:{x:i.clientX,y:i.clientY},items:t})},[])}function f({children:i}){const[t,w]=u.useState(null),d=u.useRef(null);x.setMenu=w;const r=u.useCallback(()=>{w(null)},[]);return u.useEffect(()=>{if(!t)return;const e=n=>{n.target instanceof Node&&d.current?.contains(n.target)||r()},o=n=>{n.key==="Escape"&&r()},l=()=>r(),c=n=>{n.defaultPrevented||r()};return window.addEventListener("mousedown",e,!0),window.addEventListener("keydown",o),window.addEventListener("wheel",l,!0),window.addEventListener("contextmenu",c),()=>{window.removeEventListener("mousedown",e,!0),window.removeEventListener("keydown",o),window.removeEventListener("wheel",l,!0),window.removeEventListener("contextmenu",c)}},[t,r]),u.useLayoutEffect(()=>{if(!t||!d.current)return;const e=d.current,o=e.getBoundingClientRect(),l=window.innerWidth,c=window.innerHeight;let n=t.position.x,a=t.position.y;n+o.width>l-8&&(n=l-o.width-8),a+o.height>c-8&&(a=c-o.height-8),n<8&&(n=8),a<8&&(a=8),e.style.left=`${n}px`,e.style.top=`${a}px`,e.style.visibility="visible"},[t]),s.jsxs(s.Fragment,{children:[i,t&&s.jsx("div",{ref:d,className:"s-context-menu",style:{left:t.position.x,top:t.position.y,visibility:"hidden"},role:"menu",onMouseDown:e=>e.stopPropagation(),children:t.items.map((e,o)=>e.kind==="separator"?s.jsx("div",{className:"s-context-menu-sep",role:"separator"},o):s.jsxs("button",{type:"button",className:"s-context-menu-item",role:"menuitem",onClick:()=>{e.onSelect(),r()},children:[s.jsx("span",{className:"s-context-menu-label",children:e.label}),e.shortcut&&s.jsx("span",{className:"s-context-menu-shortcut",children:e.shortcut})]},o))})]})}export{f as C,p as u};
1
+ import{r as u,j as s}from"./index-sUomXsrf.js";const x={current:null,setMenu:null};function p(){return u.useCallback((i,t)=>{i.preventDefault(),i.stopPropagation(),x.setMenu?.({position:{x:i.clientX,y:i.clientY},items:t})},[])}function f({children:i}){const[t,w]=u.useState(null),d=u.useRef(null);x.setMenu=w;const r=u.useCallback(()=>{w(null)},[]);return u.useEffect(()=>{if(!t)return;const e=n=>{n.target instanceof Node&&d.current?.contains(n.target)||r()},o=n=>{n.key==="Escape"&&r()},l=()=>r(),c=n=>{n.defaultPrevented||r()};return window.addEventListener("mousedown",e,!0),window.addEventListener("keydown",o),window.addEventListener("wheel",l,!0),window.addEventListener("contextmenu",c),()=>{window.removeEventListener("mousedown",e,!0),window.removeEventListener("keydown",o),window.removeEventListener("wheel",l,!0),window.removeEventListener("contextmenu",c)}},[t,r]),u.useLayoutEffect(()=>{if(!t||!d.current)return;const e=d.current,o=e.getBoundingClientRect(),l=window.innerWidth,c=window.innerHeight;let n=t.position.x,a=t.position.y;n+o.width>l-8&&(n=l-o.width-8),a+o.height>c-8&&(a=c-o.height-8),n<8&&(n=8),a<8&&(a=8),e.style.left=`${n}px`,e.style.top=`${a}px`,e.style.visibility="visible"},[t]),s.jsxs(s.Fragment,{children:[i,t&&s.jsx("div",{ref:d,className:"s-context-menu",style:{left:t.position.x,top:t.position.y,visibility:"hidden"},role:"menu",onMouseDown:e=>e.stopPropagation(),children:t.items.map((e,o)=>e.kind==="separator"?s.jsx("div",{className:"s-context-menu-sep",role:"separator"},o):s.jsxs("button",{type:"button",className:"s-context-menu-item",role:"menuitem",onClick:()=>{e.onSelect(),r()},children:[s.jsx("span",{className:"s-context-menu-label",children:e.label}),e.shortcut&&s.jsx("span",{className:"s-context-menu-shortcut",children:e.shortcut})]},o))})]})}export{f as C,p as u};
@@ -1 +1 @@
1
- import{r as d,j as e}from"./index-DMiGbrBt.js";import{d as J}from"./colors-BtO5_zlx.js";import{M as Y}from"./runtime-picker-Bcl5iIX5.js";import{i as Z,r as ee,d as M,a as se,M as _}from"./MessageComposerSuggestions-DpxN9WiB.js";import{F as te}from"./file-text-BODxCjcz.js";import"./index-CJXzfjo9.js";import{c as ae}from"./createLucideIcon-OpA4Amw5.js";import{X as ne}from"./x-D3GElQbe.js";const re=[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]],oe=ae("reply",re),H="Only markdown, code, images, and video clips can be attached.";function je(){const[o,g]=d.useState([]),[m,x]=d.useState(null),[c,p]=d.useState(null),[u,j]=d.useState(0),a=d.useRef(null),k=d.useCallback((n,l="Attached")=>{const i=n.filter(Z);return i.length===0?(n.length>0&&p(H),0):(p(null),g(C=>{const P=new Set(C.map(h=>`${h.name}:${h.size}:${h.lastModified}`)),R=i.filter(h=>!P.has(`${h.name}:${h.size}:${h.lastModified}`));return R.length>0?[...C,...R]:C}),x(i.length===1?`${l} ${i[0]?.name??"1 attachment"}.`:`${l} ${i.length} attachments.`),i.length)},[]),b=d.useCallback(n=>{g(l=>l.filter(i=>i!==n)),x(null)},[]),$=d.useCallback(()=>{g([]),x(null),p(null),j(0)},[]),q=d.useCallback(()=>{a.current?.click()},[]),E=d.useCallback(n=>{const l=ee(n.clipboardData);l.length!==0&&(n.preventDefault(),k(l,"Pasted"))},[k]),f=d.useMemo(()=>({onDragOver:n=>{M(n.dataTransfer)&&(n.preventDefault(),j(l=>l===0?1:l))},onDragLeave:n=>{n.currentTarget.contains(n.relatedTarget)||j(0)},onDrop:n=>{if(!M(n.dataTransfer))return;n.preventDefault(),j(0);const l=se(n.dataTransfer);if(l.length===0){p(H);return}k(l,"Dropped")}}),[k]);return{files:o,hasFiles:o.length>0,feedback:m,error:c,dragActive:u>0,stage:k,remove:b,clear:$,setError:p,openPicker:q,dropHandlers:f,onPaste:E,inputRef:a}}function le({file:o,onRemove:g}){const m=d.useMemo(()=>URL.createObjectURL(o),[o]);d.useEffect(()=>()=>URL.revokeObjectURL(m),[m]);const x=o.type.startsWith("video/"),c=o.type.startsWith("image/");return e.jsxs("div",{className:"s-msg-compose-attachment",children:[x?e.jsx("video",{src:m,muted:!0,playsInline:!0}):c?e.jsx("img",{src:m,alt:o.name}):e.jsxs("div",{className:"s-msg-compose-attachment-file",title:o.name,children:[e.jsx(te,{size:18,"aria-hidden":"true"}),e.jsx("span",{children:o.name})]}),e.jsx("button",{type:"button",className:"s-msg-compose-attachment-remove","aria-label":`Remove ${o.name}`,onClick:g,children:"×"})]})}function ce({attachments:o,accept:g="image/*,video/*,text/markdown,.md,.markdown,text/plain,.txt"}){const{files:m,feedback:x,error:c,remove:p,stage:u,inputRef:j}=o;return e.jsxs(e.Fragment,{children:[e.jsx("input",{ref:j,type:"file",multiple:!0,accept:g,className:"s-msg-compose-file-input",onChange:a=>{u([...a.target.files??[]]),a.target.value=""}}),m.length>0?e.jsx("div",{className:"s-msg-compose-attachments","aria-label":"Staged attachments",children:m.map(a=>e.jsx(le,{file:a,onRemove:()=>p(a)},`${a.name}:${a.size}:${a.lastModified}`))}):null,c?e.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"error",role:"alert",children:c}):x?e.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"muted",role:"status",children:x}):null]})}function ie({composeRef:o,draft:g,setDraft:m,composePlaceholder:x,slashState:c,setSlashState:p,filteredSlashCommands:u,applySlashCommand:j,mentionState:a,setMentionState:k,filteredMentions:b,applyMention:$,updateTriggersFromDraft:q,closeSuggestions:E,replyTarget:f,onCancelReply:n,isStopMode:l,sending:i,composeAction:C,onSend:P,onInterrupt:R,sendReceipt:h,attachments:v,isAgentBusy:I,busyIntent:T,onBusyIntentChange:L,queued:N,queueNote:K,onEditQueued:W,editingQueuedId:w,editingAttachmentCount:A,onCancelEdit:S,onUnqueue:Q,onSendQueuedNow:B}){const V=e.jsxs(e.Fragment,{children:[c.open?e.jsx(_,{label:"Slash commands",items:u.map(s=>({id:s.command,token:s.label,description:s.description})),activeIndex:c.index,onPick:s=>{const t=u[s];t&&j(t)},onActiveIndexChange:s=>p(t=>({...t,index:s}))}):null,a.open?e.jsx(_,{label:"Mention agent",items:b.map(s=>({id:s.id,token:`@${s.handle}`,description:s.name,avatar:{label:s.name[0]?.toUpperCase()??"?",color:J(s.name)}})),activeIndex:a.index,onPick:s=>{const t=b[s];t&&$(t)},onActiveIndexChange:s=>k(t=>({...t,index:s}))}):null]}),X=g.trim().length>0,D=w!==null,O=X||v.hasFiles||A>0,F=I&&O,y=F&&T==="steer",U=D?N.findIndex(s=>s.id===w)+1:0,z=F?e.jsxs("div",{className:"s-msg-compose-mode",role:"group","aria-label":"What Send does while this turn is running",children:[e.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"queue","aria-pressed":T==="queue",title:"Hold this draft until the running turn lands",disabled:i,onClick:()=>L("queue"),children:"Queue"}),e.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"steer","aria-pressed":T==="steer",title:"Interrupt the running turn and deliver this now",disabled:i,onClick:()=>L("steer"),children:"Steer"})]}):null,G=N.length>0||z?e.jsxs("div",{className:"s-msg-compose-queue",role:"group","aria-label":"Queued messages",children:[e.jsxs("div",{className:"s-msg-compose-queue-head",children:[e.jsx("span",{className:"s-msg-compose-queue-kicker",children:N.length>0?`Queue · ${N.length}`:"Queues next"}),e.jsx("span",{className:"s-msg-compose-queue-hint",children:D?y?`Rewriting ${U} — send interrupts this turn`:`Rewriting ${U} — send returns it to its place`:N.length>0?y?"Send interrupts this turn":K??"":y?"Interrupts this turn on send":"Sends when this turn lands"}),z]}),N.map((s,t)=>e.jsxs("div",{className:"s-msg-compose-queue-row","data-editing":s.id===w?"true":void 0,children:[e.jsx("span",{className:"s-msg-compose-queue-index",children:t+1}),e.jsx("span",{className:"s-msg-compose-queue-body",children:s.body.trim()||"Attachments only"}),s.attachments.length>0?e.jsxs("span",{className:"s-msg-compose-queue-clip",children:[s.attachments.length," file",s.attachments.length===1?"":"s"]}):null,s.id===w?e.jsx("button",{type:"button",className:"s-msg-compose-queue-edit",title:"Stop rewriting — leave this row as it was","aria-label":`Cancel rewriting queued message ${t+1}`,onClick:S,children:"Cancel edit"}):e.jsx("button",{type:"button",className:"s-msg-compose-queue-edit",title:"Pull this back into the input box to rewrite it","aria-label":`Edit queued message ${t+1}`,disabled:i||D,onClick:()=>W(s.id),children:"Edit"}),e.jsx("button",{type:"button",className:"s-msg-compose-queue-now",title:"Interrupt this turn and send this now","aria-label":`Send queued message ${t+1} now`,disabled:i||s.id===w,onClick:()=>B(s.id),children:"Send now"}),e.jsx("button",{type:"button",className:"s-msg-compose-queue-drop",title:"Cancel — drop this from the queue","aria-label":`Cancel queued message ${t+1}`,onClick:()=>Q(s.id),children:"×"})]},s.id))]}):null;return e.jsx(Y,{density:"thread",value:g,onChange:(s,t)=>{m(s),q(s,t?.caret??s.length)},onSend:P,placeholder:x,sending:i,stopMode:l,onStop:R,canSend:O,sendTitle:y?"Steer — interrupt this turn and send now (Cmd+Enter)":F?"Queue for the next turn (Cmd+Enter)":"Send (Cmd+Enter)",sendAriaLabel:y?"Steer — interrupt this turn and send now (Cmd+Enter)":F?"Queue message for the next turn (Cmd+Enter)":C==="steer"?"Send follow-up (Cmd+Enter)":"Send message (Cmd+Enter)",showAttach:!0,onAttach:v.openPicker,onPaste:v.onPaste,dropHandlers:v.dropHandlers,dragActive:v.dragActive,textareaRef:o,overlay:V,above:G,aboveAttached:!0,header:e.jsxs(e.Fragment,{children:[f?e.jsxs("div",{className:"s-thread-compose-reply",role:"status",children:[e.jsx(oe,{className:"s-thread-compose-reply-icon",size:13,strokeWidth:1.8,"aria-hidden":"true"}),e.jsx("span",{className:"s-thread-compose-reply-label",children:"Replying to"}),e.jsx("span",{className:"s-thread-compose-reply-actor",children:f.actorLabel}),e.jsx("span",{className:"s-thread-compose-reply-preview",title:f.preview,children:f.preview}),e.jsx("button",{type:"button",className:"s-thread-compose-reply-cancel","aria-label":"Cancel reply",title:"Cancel reply",onClick:n,children:e.jsx(ne,{size:13,strokeWidth:1.8,"aria-hidden":"true"})})]}):null,D&&A>0?e.jsxs("div",{className:"s-msg-compose-carried",role:"status",children:[A," file",A===1?"":"s"," stay attached to this draft"]}):null,e.jsx(ce,{attachments:v})]}),status:h?e.jsx("div",{className:"s-thread-compose-receipt","data-tone":h.tone,role:"status",children:h.text}):null,tools:e.jsxs("span",{className:"s-thread-compose-hint s-msg-compose-tools-hint",children:[e.jsx("kbd",{className:"s-kbd",children:"/"})," commands"," · ",e.jsx("kbd",{className:"s-kbd",children:"@"})," agents"]}),onSelect:s=>{const t=s.currentTarget;q(t.value,t.selectionStart)},onBlur:()=>{setTimeout(E,120)},onKeyDown:s=>{if(!(c.open&&u.length>0||a.open&&b.length>0))return!1;if(s.key==="ArrowDown")return c.open?p(r=>({...r,index:(r.index+1)%u.length})):a.open&&k(r=>({...r,index:(r.index+1)%b.length})),!0;if(s.key==="ArrowUp")return c.open?p(r=>({...r,index:(r.index-1+u.length)%u.length})):a.open&&k(r=>({...r,index:(r.index-1+b.length)%b.length})),!0;if(s.key==="Escape")return E(),!0;if((s.key==="Enter"||s.key==="Tab")&&!s.shiftKey&&!s.metaKey&&!s.ctrlKey&&!s.altKey){if(c.open){const r=u[c.index]??u[0];r&&j(r)}else if(a.open){const r=b[a.index]??b[0];r&&$(r)}return!0}return!1}})}const ke=Object.freeze(Object.defineProperty({__proto__:null,ConversationComposer:ie},Symbol.toStringTag,{value:"Module"}));export{ie as C,ke as a,je as u};
1
+ import{r as d,j as e}from"./index-sUomXsrf.js";import{d as J}from"./colors-BtO5_zlx.js";import{M as Y}from"./runtime-picker-DOZpZOlt.js";import{i as Z,r as ee,d as M,a as se,M as _}from"./MessageComposerSuggestions-zAUUcLOv.js";import{F as te}from"./file-text-i3xTDUjJ.js";import"./index-m6dFtY5f.js";import{c as ae}from"./createLucideIcon-DlxlBfLC.js";import{X as ne}from"./x-0XjXwGqq.js";const re=[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]],oe=ae("reply",re),H="Only markdown, code, images, and video clips can be attached.";function je(){const[o,g]=d.useState([]),[m,x]=d.useState(null),[c,p]=d.useState(null),[u,j]=d.useState(0),a=d.useRef(null),k=d.useCallback((n,l="Attached")=>{const i=n.filter(Z);return i.length===0?(n.length>0&&p(H),0):(p(null),g(C=>{const P=new Set(C.map(h=>`${h.name}:${h.size}:${h.lastModified}`)),R=i.filter(h=>!P.has(`${h.name}:${h.size}:${h.lastModified}`));return R.length>0?[...C,...R]:C}),x(i.length===1?`${l} ${i[0]?.name??"1 attachment"}.`:`${l} ${i.length} attachments.`),i.length)},[]),b=d.useCallback(n=>{g(l=>l.filter(i=>i!==n)),x(null)},[]),$=d.useCallback(()=>{g([]),x(null),p(null),j(0)},[]),q=d.useCallback(()=>{a.current?.click()},[]),E=d.useCallback(n=>{const l=ee(n.clipboardData);l.length!==0&&(n.preventDefault(),k(l,"Pasted"))},[k]),f=d.useMemo(()=>({onDragOver:n=>{M(n.dataTransfer)&&(n.preventDefault(),j(l=>l===0?1:l))},onDragLeave:n=>{n.currentTarget.contains(n.relatedTarget)||j(0)},onDrop:n=>{if(!M(n.dataTransfer))return;n.preventDefault(),j(0);const l=se(n.dataTransfer);if(l.length===0){p(H);return}k(l,"Dropped")}}),[k]);return{files:o,hasFiles:o.length>0,feedback:m,error:c,dragActive:u>0,stage:k,remove:b,clear:$,setError:p,openPicker:q,dropHandlers:f,onPaste:E,inputRef:a}}function le({file:o,onRemove:g}){const m=d.useMemo(()=>URL.createObjectURL(o),[o]);d.useEffect(()=>()=>URL.revokeObjectURL(m),[m]);const x=o.type.startsWith("video/"),c=o.type.startsWith("image/");return e.jsxs("div",{className:"s-msg-compose-attachment",children:[x?e.jsx("video",{src:m,muted:!0,playsInline:!0}):c?e.jsx("img",{src:m,alt:o.name}):e.jsxs("div",{className:"s-msg-compose-attachment-file",title:o.name,children:[e.jsx(te,{size:18,"aria-hidden":"true"}),e.jsx("span",{children:o.name})]}),e.jsx("button",{type:"button",className:"s-msg-compose-attachment-remove","aria-label":`Remove ${o.name}`,onClick:g,children:"×"})]})}function ce({attachments:o,accept:g="image/*,video/*,text/markdown,.md,.markdown,text/plain,.txt"}){const{files:m,feedback:x,error:c,remove:p,stage:u,inputRef:j}=o;return e.jsxs(e.Fragment,{children:[e.jsx("input",{ref:j,type:"file",multiple:!0,accept:g,className:"s-msg-compose-file-input",onChange:a=>{u([...a.target.files??[]]),a.target.value=""}}),m.length>0?e.jsx("div",{className:"s-msg-compose-attachments","aria-label":"Staged attachments",children:m.map(a=>e.jsx(le,{file:a,onRemove:()=>p(a)},`${a.name}:${a.size}:${a.lastModified}`))}):null,c?e.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"error",role:"alert",children:c}):x?e.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"muted",role:"status",children:x}):null]})}function ie({composeRef:o,draft:g,setDraft:m,composePlaceholder:x,slashState:c,setSlashState:p,filteredSlashCommands:u,applySlashCommand:j,mentionState:a,setMentionState:k,filteredMentions:b,applyMention:$,updateTriggersFromDraft:q,closeSuggestions:E,replyTarget:f,onCancelReply:n,isStopMode:l,sending:i,composeAction:C,onSend:P,onInterrupt:R,sendReceipt:h,attachments:v,isAgentBusy:I,busyIntent:T,onBusyIntentChange:L,queued:N,queueNote:K,onEditQueued:W,editingQueuedId:w,editingAttachmentCount:A,onCancelEdit:S,onUnqueue:Q,onSendQueuedNow:B}){const V=e.jsxs(e.Fragment,{children:[c.open?e.jsx(_,{label:"Slash commands",items:u.map(s=>({id:s.command,token:s.label,description:s.description})),activeIndex:c.index,onPick:s=>{const t=u[s];t&&j(t)},onActiveIndexChange:s=>p(t=>({...t,index:s}))}):null,a.open?e.jsx(_,{label:"Mention agent",items:b.map(s=>({id:s.id,token:`@${s.handle}`,description:s.name,avatar:{label:s.name[0]?.toUpperCase()??"?",color:J(s.name)}})),activeIndex:a.index,onPick:s=>{const t=b[s];t&&$(t)},onActiveIndexChange:s=>k(t=>({...t,index:s}))}):null]}),X=g.trim().length>0,D=w!==null,O=X||v.hasFiles||A>0,F=I&&O,y=F&&T==="steer",U=D?N.findIndex(s=>s.id===w)+1:0,z=F?e.jsxs("div",{className:"s-msg-compose-mode",role:"group","aria-label":"What Send does while this turn is running",children:[e.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"queue","aria-pressed":T==="queue",title:"Hold this draft until the running turn lands",disabled:i,onClick:()=>L("queue"),children:"Queue"}),e.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"steer","aria-pressed":T==="steer",title:"Interrupt the running turn and deliver this now",disabled:i,onClick:()=>L("steer"),children:"Steer"})]}):null,G=N.length>0||z?e.jsxs("div",{className:"s-msg-compose-queue",role:"group","aria-label":"Queued messages",children:[e.jsxs("div",{className:"s-msg-compose-queue-head",children:[e.jsx("span",{className:"s-msg-compose-queue-kicker",children:N.length>0?`Queue · ${N.length}`:"Queues next"}),e.jsx("span",{className:"s-msg-compose-queue-hint",children:D?y?`Rewriting ${U} — send interrupts this turn`:`Rewriting ${U} — send returns it to its place`:N.length>0?y?"Send interrupts this turn":K??"":y?"Interrupts this turn on send":"Sends when this turn lands"}),z]}),N.map((s,t)=>e.jsxs("div",{className:"s-msg-compose-queue-row","data-editing":s.id===w?"true":void 0,children:[e.jsx("span",{className:"s-msg-compose-queue-index",children:t+1}),e.jsx("span",{className:"s-msg-compose-queue-body",children:s.body.trim()||"Attachments only"}),s.attachments.length>0?e.jsxs("span",{className:"s-msg-compose-queue-clip",children:[s.attachments.length," file",s.attachments.length===1?"":"s"]}):null,s.id===w?e.jsx("button",{type:"button",className:"s-msg-compose-queue-edit",title:"Stop rewriting — leave this row as it was","aria-label":`Cancel rewriting queued message ${t+1}`,onClick:S,children:"Cancel edit"}):e.jsx("button",{type:"button",className:"s-msg-compose-queue-edit",title:"Pull this back into the input box to rewrite it","aria-label":`Edit queued message ${t+1}`,disabled:i||D,onClick:()=>W(s.id),children:"Edit"}),e.jsx("button",{type:"button",className:"s-msg-compose-queue-now",title:"Interrupt this turn and send this now","aria-label":`Send queued message ${t+1} now`,disabled:i||s.id===w,onClick:()=>B(s.id),children:"Send now"}),e.jsx("button",{type:"button",className:"s-msg-compose-queue-drop",title:"Cancel — drop this from the queue","aria-label":`Cancel queued message ${t+1}`,onClick:()=>Q(s.id),children:"×"})]},s.id))]}):null;return e.jsx(Y,{density:"thread",value:g,onChange:(s,t)=>{m(s),q(s,t?.caret??s.length)},onSend:P,placeholder:x,sending:i,stopMode:l,onStop:R,canSend:O,sendTitle:y?"Steer — interrupt this turn and send now (Cmd+Enter)":F?"Queue for the next turn (Cmd+Enter)":"Send (Cmd+Enter)",sendAriaLabel:y?"Steer — interrupt this turn and send now (Cmd+Enter)":F?"Queue message for the next turn (Cmd+Enter)":C==="steer"?"Send follow-up (Cmd+Enter)":"Send message (Cmd+Enter)",showAttach:!0,onAttach:v.openPicker,onPaste:v.onPaste,dropHandlers:v.dropHandlers,dragActive:v.dragActive,textareaRef:o,overlay:V,above:G,aboveAttached:!0,header:e.jsxs(e.Fragment,{children:[f?e.jsxs("div",{className:"s-thread-compose-reply",role:"status",children:[e.jsx(oe,{className:"s-thread-compose-reply-icon",size:13,strokeWidth:1.8,"aria-hidden":"true"}),e.jsx("span",{className:"s-thread-compose-reply-label",children:"Replying to"}),e.jsx("span",{className:"s-thread-compose-reply-actor",children:f.actorLabel}),e.jsx("span",{className:"s-thread-compose-reply-preview",title:f.preview,children:f.preview}),e.jsx("button",{type:"button",className:"s-thread-compose-reply-cancel","aria-label":"Cancel reply",title:"Cancel reply",onClick:n,children:e.jsx(ne,{size:13,strokeWidth:1.8,"aria-hidden":"true"})})]}):null,D&&A>0?e.jsxs("div",{className:"s-msg-compose-carried",role:"status",children:[A," file",A===1?"":"s"," stay attached to this draft"]}):null,e.jsx(ce,{attachments:v})]}),status:h?e.jsx("div",{className:"s-thread-compose-receipt","data-tone":h.tone,role:"status",children:h.text}):null,tools:e.jsxs("span",{className:"s-thread-compose-hint s-msg-compose-tools-hint",children:[e.jsx("kbd",{className:"s-kbd",children:"/"})," commands"," · ",e.jsx("kbd",{className:"s-kbd",children:"@"})," agents"]}),onSelect:s=>{const t=s.currentTarget;q(t.value,t.selectionStart)},onBlur:()=>{setTimeout(E,120)},onKeyDown:s=>{if(!(c.open&&u.length>0||a.open&&b.length>0))return!1;if(s.key==="ArrowDown")return c.open?p(r=>({...r,index:(r.index+1)%u.length})):a.open&&k(r=>({...r,index:(r.index+1)%b.length})),!0;if(s.key==="ArrowUp")return c.open?p(r=>({...r,index:(r.index-1+u.length)%u.length})):a.open&&k(r=>({...r,index:(r.index-1+b.length)%b.length})),!0;if(s.key==="Escape")return E(),!0;if((s.key==="Enter"||s.key==="Tab")&&!s.shiftKey&&!s.metaKey&&!s.ctrlKey&&!s.altKey){if(c.open){const r=u[c.index]??u[0];r&&j(r)}else if(a.open){const r=b[a.index]??b[0];r&&$(r)}return!0}return!1}})}const ke=Object.freeze(Object.defineProperty({__proto__:null,ConversationComposer:ie},Symbol.toStringTag,{value:"Module"}));export{ie as C,ke as a,je as u};
@@ -0,0 +1 @@
1
+ import{j as t}from"./index-sUomXsrf.js";import{M as p}from"./message-markup-C8Nx04sP.js";import{f as n}from"./conversation-model-C4yb6_FA.js";import{t as d}from"./time-Dhsh_2EG.js";import"./mentions-CY_wPZc5.js";import"./colors-BtO5_zlx.js";import"./index-m6dFtY5f.js";import"./api-h5zurxmi.js";import"./Provider-tFc3jqZ4.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./HarnessMark-Dm_qm1Ku.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./AgentDetailCard-DxxVkgT1.js";import"./AgentLiveActions-CZdAInEu.js";import"./terminal-takeover-X97KCSJk.js";import"./openContent-C6XO6kr5.js";import"./eye-So8tNNK6.js";import"./terminal-DXQISjZn.js";function l({at:a}){const r=n(a);return t.jsxs("div",{className:"s-thread-day-divider","aria-label":r,children:[t.jsx("span",{className:"s-thread-day-line","aria-hidden":"true"}),t.jsx("span",{className:"s-thread-day-label",children:r}),t.jsx("span",{className:"s-thread-day-line","aria-hidden":"true"})]})}function st({row:a,expanded:r,showDayDivider:e,onToggle:s}){const m=`Sent to ${a.recipients.length} agents`;return t.jsxs("div",{className:["s-thread-feed-block","s-thread-fanout",e&&"s-thread-feed-block--full-width"].filter(Boolean).join(" "),children:[e&&t.jsx(l,{at:a.createdAt}),a.messages.map(i=>t.jsx("span",{id:`msg-${i.id}`,className:"s-thread-fanout-anchor","aria-hidden":"true"},i.id)),t.jsxs("button",{type:"button",className:"s-thread-fanout-summary","aria-expanded":r,onClick:s,title:a.recipients.join(", "),children:[t.jsx("span",{className:"s-thread-fanout-caret","aria-hidden":"true",children:r?"▾":"▸"}),t.jsx("span",{className:"s-thread-fanout-label",children:m}),t.jsx("span",{className:"s-thread-fanout-time",children:d(a.createdAt)})]}),r&&t.jsxs("div",{className:"s-thread-fanout-detail",children:[t.jsx("ul",{className:"s-thread-fanout-recipients",children:a.messages.map((i,o)=>t.jsx("li",{className:"s-thread-fanout-recipient",children:a.recipients[o]},i.id))}),t.jsx("div",{className:"s-thread-fanout-body",children:t.jsx(p,{text:a.messages[0].body})})]})]})}export{st as FanOutRow,l as ThreadDayDivider};
@@ -0,0 +1 @@
1
+ import{j as e}from"./index-sUomXsrf.js";import{c as p}from"./clipboard-e3fSpeo7.js";import{b as A}from"./router-Dja9_ygK.js";import{A as f}from"./AgentAvatar-CufDA4A-.js";import{u as $}from"./ContextMenu-BlBQhpax.js";import{B as I}from"./BackToPicker-CkUmHuuo.js";import{o as j}from"./openContent-C6XO6kr5.js";import{v as S,w as L}from"./conversation-model-C4yb6_FA.js";import{E as M}from"./eye-So8tNNK6.js";import{c as T}from"./createLucideIcon-DlxlBfLC.js";import"./terminal-sessions-D5CIR2OL.js";import"./api-h5zurxmi.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";import"./colors-BtO5_zlx.js";import"./time-Dhsh_2EG.js";const B=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],F=T("user-plus",B);function Z({showBackNav:r,isDm:t,navigate:l,route:n,canonicalConversationId:x,threadTitle:d,agentId:c,sessionId:a,detailRoute:h,visibleParticipants:b,hiddenParticipantCount:v,operator:m,canAddParticipants:k,onToggleAddParticipant:g}){const C=$(),u=A(n);return e.jsxs("div",{className:"s-thread-center-header",onClick:s=>{s.target?.closest("button,a,input,select,textarea")||!t||!h||j(l,h,{returnTo:n})},style:t&&h?{cursor:"pointer"}:void 0,onContextMenu:s=>{const o=[{kind:"action",label:"Copy Title",onSelect:()=>{p(d)}}];c&&o.push({kind:"action",label:"Copy Agent ID",onSelect:()=>{p(c)}}),!c&&a&&o.push({kind:"action",label:"Copy Session ID",onSelect:()=>{p(a)}}),o.push({kind:"action",label:"Copy Conversation ID",onSelect:()=>{p(x)}}),C(s,o)},children:[r&&e.jsx(I,{slot:"conversation",fallback:{view:"inbox"},navigate:l,label:"Back",className:"s-thread-header-back"}),e.jsx("div",{className:"s-thread-center-header-info",children:t&&h?e.jsx("button",{type:"button",className:"s-thread-center-header-name",title:`Open ${d} details`,onClick:()=>j(l,h,{returnTo:n}),children:d}):e.jsx("span",{className:"s-thread-center-header-name",children:d})}),e.jsxs("div",{className:"s-thread-center-header-right",children:[b.length>0&&e.jsxs("div",{className:"s-thread-participants","aria-label":"Conversation participants",children:[b.map(s=>{const i=[s.model??(s.harness?"model unknown":null),s.reasoningEffort].filter(Boolean).join(" · ")||null,w=i?`${s.name} · ${i}`:s.title,y=e.jsxs(e.Fragment,{children:[e.jsx(f,{agent:s.agent??void 0,name:s.name,placement:"turn",className:"s-thread-participant-avatar",title:s.name}),e.jsxs("span",{className:"s-thread-participant-identity",children:[e.jsx("span",{className:"s-thread-participant-name",children:s.name}),i&&e.jsx("span",{className:"s-thread-participant-model",title:i,children:i})]})]}),N=s.agent?{view:"agents-v2",agentId:s.agent.id,...u?{machineId:u}:{}}:s.sessionId?{view:"sessions",sessionId:s.sessionId,...u?{machineId:u}:{}}:null;return N?e.jsx("button",{type:"button",className:"s-thread-participant-pill s-thread-participant-pill--button",title:`Open ${s.name} ${s.agent?"profile":"session"}${i?` · ${i}`:""}`,onClick:()=>j(l,N,{returnTo:n}),children:y},s.id):e.jsx("span",{className:"s-thread-participant-pill",title:w,children:y},s.id)}),v>0&&e.jsxs("span",{className:"s-thread-participant-overflow",children:["+",v]}),m.active?e.jsxs("span",{className:"s-thread-participant-pill s-thread-participant-pill--operator",title:`${m.name} · in this conversation`,children:[e.jsx(f,{name:m.name,placement:"turn",className:"s-thread-participant-avatar s-thread-participant-avatar--operator",title:m.name}),e.jsx("span",{className:"s-thread-participant-identity",children:e.jsx("span",{className:"s-thread-participant-name",children:"You"})})]}):e.jsxs("span",{className:"s-thread-participant-observer",title:`${m.name} · observing (not in thread)`,children:[e.jsx(M,{size:12,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Observing"})]})]}),k&&e.jsx("button",{type:"button",className:"s-thread-add-participant-trigger",onClick:g,title:"Add participant","aria-label":"Add participant",children:e.jsx(F,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})]})]})}function R({canonicalConversationId:r,conversationAlias:t}){return e.jsxs("div",{className:"s-thread-identity-row",children:[e.jsxs("button",{type:"button",className:"s-thread-identity-chip",title:r,onClick:()=>{p(r)},children:[e.jsx("span",{children:S()}),e.jsx("strong",{children:L(r)})]}),t&&e.jsxs("span",{className:"s-thread-identity-chip",title:t,children:[e.jsx("span",{children:"Alias"}),e.jsx("strong",{children:t})]})]})}function P({agents:r,addParticipantId:t,setAddParticipantId:l,addingParticipant:n,addParticipantError:x,onCancel:d,onSubmit:c}){return e.jsxs("form",{className:"s-thread-add-participant",onSubmit:a=>{a.preventDefault(),c()},children:[e.jsxs("div",{className:"s-thread-add-participant-row",children:[e.jsxs("div",{className:"s-thread-add-participant-field",children:[e.jsx("label",{className:"s-thread-add-participant-label",htmlFor:"thread-add-participant-select",children:"Agent"}),e.jsx("select",{id:"thread-add-participant-select",className:"s-thread-add-participant-select",value:t,onChange:a=>l(a.target.value),autoFocus:!0,children:r.map(a=>e.jsx("option",{value:a.id,children:a.name},a.id))})]}),e.jsxs("div",{className:"s-thread-add-participant-actions",children:[e.jsx("button",{type:"button",className:"s-btn s-btn-sm",onClick:d,disabled:n,children:"Cancel"}),e.jsx("button",{type:"submit",className:"s-btn s-btn-primary s-btn-sm",disabled:n||t.trim().length===0,children:n?"Adding...":"Add"})]})]}),x&&e.jsx("div",{className:"s-thread-add-participant-error",children:x})]})}export{P as AddParticipantForm,Z as ConversationHeader,R as ConversationIdentityRow};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-CifSdJtm.js","assets/gestures-CgvAMd6F.js","assets/index-sUomXsrf.js","assets/index-DITWsjFb.css","assets/use-reduced-motion-Cvk-HRKg.js"])))=>i.map(i=>d[i]);
2
+ import{j as e,_ as M,r as x}from"./index-sUomXsrf.js";import{b as L,t as _,g as S,r as R,d as $,m as w,c as E,e as I,p as P}from"./conversation-model-C4yb6_FA.js";import{n as W,d as b,f as B,s as z}from"./colors-BtO5_zlx.js";import{i as y}from"./sessionRead-CvFz2RHv.js";import{t as j,f as k}from"./time-Dhsh_2EG.js";import{u as U}from"./Provider-tFc3jqZ4.js";import{o as f}from"./openContent-C6XO6kr5.js";import{u as D,L as F,m as p}from"./use-reduced-motion-Cvk-HRKg.js";import{A as O}from"./activity-WhBf3FXP.js";import{T as H}from"./terminal-DXQISjZn.js";import{M as K}from"./message-circle-C5UZ6fO7.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./api-h5zurxmi.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";const G=[{head:"30%",body:"88%",short:"62%"},{head:"22%",body:"76%",short:"48%"},{head:"34%",body:"82%",short:"68%"}],J=()=>M(()=>import("./conversation-motion-features-CifSdJtm.js"),__vite__mapDeps([0,1,2,3,4])).then(a=>a.default);function Y({onOpenTrace:a,onOpenTerminal:i,onSteer:d,compact:r=!1}){return!a&&!i&&!d?null:e.jsxs("nav",{className:`s-thread-working-actions${r?" s-thread-working-actions--compact":""}`,"aria-label":"Working turn actions",children:[a&&e.jsxs("button",{type:"button",className:"s-thread-working-action s-thread-working-action--primary",onClick:a,title:"Watch this run's live trace",children:[e.jsx(O,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Live trace"})]}),i&&e.jsxs("button",{type:"button",className:"s-thread-working-action",onClick:i,title:"Jump into this agent's terminal",children:[e.jsx(H,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Terminal"})]}),d&&e.jsxs("button",{type:"button",className:"s-thread-working-action",onClick:d,title:"Write an interrupting message to steer this turn",children:[e.jsx(K,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Steer…"})]})]})}const q={think:"Thinking",tool:"Tool",ask:"Prompt",message:"Says",note:"Note",system:"System",boot:"Boot"};function N({steps:a,phase:i,limit:d=5,compact:r=!1}){const l=a.slice(-d),o=a.length-l.length;return l.length===0?i?e.jsxs("div",{className:"s-thread-steps-phase",children:[e.jsx("span",{children:i.label}),e.jsx("strong",{children:i.detail})]}):null:e.jsxs("div",{className:`s-thread-steps${r?" s-thread-steps--compact":""}`,children:[o>0&&e.jsxs("div",{className:"s-thread-steps-elided",children:[o," earlier step",o===1?"":"s"]}),e.jsx("ol",{"aria-label":"Live steps in this turn",children:l.map(s=>e.jsxs("li",{"data-kind":s.kind,children:[e.jsx("span",{className:"s-thread-step-mark","aria-hidden":"true"}),e.jsx("span",{className:"s-thread-step-kind",children:q[s.kind]}),e.jsxs("span",{className:"s-thread-step-body",children:[s.tool?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"s-thread-step-tool",children:s.tool}),s.arg&&e.jsx("span",{className:"s-thread-step-arg",children:s.arg})]}):e.jsx("span",{className:"s-thread-step-text",children:s.text}),s.repeatCount>1&&e.jsxs("span",{className:"s-thread-step-repeat",children:["×",s.repeatCount]}),s.outcome&&e.jsx("span",{className:"s-thread-step-outcome",children:s.outcome})]}),e.jsx("time",{title:k(s.ts),children:j(s.ts)})]},s.id))})]})}function Q({events:a,limit:i=3,compact:d=!1}){const r=a.slice(0,i);return r.length===0?null:e.jsx("ol",{className:`s-thread-motion-events${d?" s-thread-motion-events--compact":""}`,"aria-label":"Latest run activity",children:r.map(l=>e.jsxs("li",{children:[e.jsx("span",{className:"s-thread-motion-event-kind",children:L(l.kind)}),e.jsx("span",{className:"s-thread-motion-event-summary",children:_(l)??"Activity recorded"}),e.jsx("time",{title:k(l.ts),children:j(l.ts)})]},l.id))})}function He(){const a=D();return e.jsx(F,{features:J,strict:!0,children:e.jsxs(p.section,{className:"s-thread-skeleton","aria-busy":"true","aria-live":"polite",initial:a?!1:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:[.2,.7,.3,1]},children:[e.jsxs("div",{className:"s-thread-skeleton-intro",role:"status",children:[e.jsxs("div",{className:"s-thread-loader-mark","aria-hidden":"true",children:[e.jsx(p.span,{className:"s-thread-loader-orbit",animate:a?void 0:{rotate:360},transition:{duration:3.2,ease:"linear",repeat:1/0},children:e.jsx("span",{})}),e.jsx(p.span,{className:"s-thread-loader-core",animate:a?void 0:{scale:[.88,1,.88],opacity:[.58,1,.58]},transition:{duration:1.8,ease:"easeInOut",repeat:1/0}})]}),e.jsxs("span",{className:"s-thread-skeleton-copy",children:[e.jsx("strong",{children:"Composer ready"}),e.jsx("span",{children:"Gathering the conversation…"})]})]}),e.jsx("div",{className:"s-thread-skeleton-turns","aria-hidden":"true",children:G.map((i,d)=>e.jsxs(p.div,{className:"s-thread-skeleton-turn",initial:a?!1:{opacity:0,y:7},animate:{opacity:1,y:0},transition:{delay:a?0:.05+d*.055,duration:.24,ease:[.2,.7,.3,1]},children:[e.jsx("span",{className:"s-thread-skeleton-avatar"}),e.jsxs("div",{className:"s-thread-skeleton-lines",children:[e.jsx("span",{className:"s-thread-skeleton-line s-thread-skeleton-line--head",style:{width:i.head}}),e.jsx("span",{className:"s-thread-skeleton-line",style:{width:i.body}}),e.jsx("span",{className:"s-thread-skeleton-line s-thread-skeleton-line--short",style:{width:i.short}})]})]},`${i.head}-${i.body}`))})]})})}function Ke({sessions:a,activeConversationId:i,needsYouIds:d,lastViewed:r,navigate:l}){const o=a.filter(n=>d.has(n.id)||n.agentId&&d.has(n.agentId)),s=x.useMemo(()=>S(a),[a]);return e.jsx("aside",{className:"s-thread-rail",children:e.jsxs("div",{className:"s-thread-rail-scroll",children:[o.length>0&&e.jsxs("div",{className:"s-thread-rail-section s-thread-rail-section--needs-you",children:[e.jsx("div",{className:"s-thread-rail-section-label",children:"Needs you"}),o.map(n=>e.jsx(g,{session:n,active:n.id===i,unread:y(n.lastMessageAt,n.id,r),needsYou:!0,navigate:l},`needs-${n.id}`))]}),s.map(n=>e.jsxs("div",{className:"s-thread-rail-section",children:[e.jsx("div",{className:"s-thread-rail-section-label",children:n.workspace}),n.sessions.map(c=>e.jsx(g,{session:c,active:c.id===i,unread:y(c.lastMessageAt,c.id,r),needsYou:!1,navigate:l},c.id))]},n.workspace))]})})}function Ge({sessionMeta:a,agents:i,flights:d,conversationId:r,navigate:l,route:o}){const s=x.useMemo(()=>a?a.participantIds.filter(t=>t!=="operator").map(t=>R(i,[t])).filter(t=>t!==null):[],[a,i]),n={id:"operator",name:"You",handle:"operator",activity:null,state:"ready",agent:null},c=x.useMemo(()=>s.map(t=>({id:t.id,name:t.name,handle:w(t)??E(t.id)??t.id,activity:$(t,d,r),state:W(t.state),agent:t})),[s,d,r]),h=[n,...c];return e.jsxs("aside",{className:"s-thread-sidebar",children:[e.jsxs("div",{className:"s-thread-sidebar-section",children:[e.jsx("div",{className:"s-thread-sidebar-label",children:"In this conversation"}),h.map(t=>{const m=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"s-ops-avatar",style:{"--size":"28px",background:b(t.name)},children:t.name[0]?.toUpperCase()??"?"}),e.jsxs("div",{className:"s-thread-sidebar-participant-info",children:[e.jsx("span",{className:"s-thread-sidebar-participant-name",children:t.name}),e.jsxs("span",{className:"s-thread-sidebar-participant-handle",children:["@",t.handle]})]}),e.jsx("div",{className:"s-thread-sidebar-participant-activity",children:t.activity?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"s-thread-sidebar-activity-dot s-thread-sidebar-activity-dot--pulse",style:{background:"var(--green)"}}),e.jsx("span",{className:"s-thread-sidebar-activity-label",children:t.activity})]}):B(t.state)||t.id==="operator"?e.jsx("span",{className:"s-thread-sidebar-activity-dot",style:{background:z(t.state)}}):e.jsx("span",{className:"s-thread-sidebar-activity-dot",style:{background:"var(--dim)"}})})]});return t.agent?e.jsx("button",{type:"button",className:"s-thread-sidebar-participant s-thread-sidebar-participant--clickable",onClick:()=>f(l,{view:"agents-v2",agentId:t.agent.id},{returnTo:o}),title:`Open ${t.name} profile`,children:m},t.id):e.jsx("div",{className:"s-thread-sidebar-participant",children:m},t.id)})]}),c.length>0&&e.jsxs("div",{className:"s-thread-sidebar-section",children:[e.jsx("div",{className:"s-thread-sidebar-label",children:"Conversation mesh"}),e.jsx(V,{participants:c})]})]})}function Je({agentName:a,title:i,detail:d,snapshot:r,events:l,steps:o,phase:s,tone:n,workspaceName:c,branch:h,startedAt:t,onOpenTrace:m,onOpenTerminal:A,onSteer:C}){const T=t?j(t):"now";return e.jsxs("section",{className:`s-thread-motion-panel s-thread-motion-panel--${n}`,"aria-live":"polite",children:[e.jsxs("div",{className:"s-thread-motion-head",children:[e.jsx("div",{className:"s-thread-motion-beacon","aria-hidden":"true",children:e.jsx("span",{})}),e.jsxs("div",{className:"s-thread-motion-title-block",children:[e.jsx("div",{className:"s-thread-motion-kicker",children:"Currently working"}),e.jsx("h2",{children:i}),e.jsx("p",{children:d})]})]}),e.jsx("div",{className:"s-thread-motion-meter","aria-hidden":"true",children:X.map((u,v)=>e.jsx("span",{style:{"--bar-height":`${u}%`,"--bar-delay":`${v*74}ms`}},`${u}-${v}`))}),e.jsxs("dl",{className:"s-thread-motion-stats",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Session"}),e.jsx("dd",{children:T})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Activity"}),e.jsx("dd",{children:r.activityLabel})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Last"}),e.jsx("dd",{children:r.lastActivityLabel})]})]}),e.jsxs("div",{className:"s-thread-motion-latest",children:[e.jsx("span",{children:a}),e.jsx("strong",{children:r.latest})]}),o.length>0?e.jsx(N,{steps:o,phase:null,limit:6}):l.length>0?e.jsx(Q,{events:l,limit:4}):s?e.jsx(N,{steps:o,phase:s,limit:6}):e.jsxs("div",{className:"s-thread-motion-waiting",children:[e.jsx("span",{children:"Session created"}),e.jsx("strong",{children:"waiting for the first trace event"})]}),(c||h)&&e.jsxs("div",{className:"s-thread-motion-chips",children:[c&&e.jsx("span",{children:c}),h&&e.jsx("span",{children:h})]}),e.jsx(Y,{onOpenTrace:m,onOpenTerminal:A,onSteer:C})]})}function g({session:a,active:i,unread:d,needsYou:r,navigate:l}){const{route:o}=U(),s=I(a),n=(a.agentName??s)[0]?.toUpperCase()??"?",c=a.kind==="direct",h=P(a.workspaceRoot)??a.kind;return e.jsxs("button",{type:"button",className:["s-thread-rail-item",i&&"s-thread-rail-item--active",r&&"s-thread-rail-item--needs-you"].filter(Boolean).join(" "),onClick:()=>f(l,{view:"conversation",conversationId:a.id},{returnTo:o}),children:[c?e.jsx("div",{className:"s-thread-rail-avatar",style:{background:b(a.agentName??s)},children:n}):e.jsx("div",{className:"s-thread-rail-avatar s-thread-rail-avatar--channel",children:"#"}),e.jsxs("div",{className:"s-thread-rail-body",children:[e.jsx("span",{className:"s-thread-rail-name",children:s}),e.jsx("span",{className:"s-thread-rail-sub",children:h})]}),e.jsxs("div",{className:"s-thread-rail-trailing",children:[d&&!r&&e.jsx("span",{className:"s-thread-rail-presence-dot",style:{background:"var(--accent)"}}),r&&e.jsx("span",{className:"s-thread-rail-badge s-thread-rail-badge--amber",children:"!"})]})]})}function V({participants:a}){const o=a.map((s,n)=>{const c=2*Math.PI*n/a.length-Math.PI/2;return{...s,x:130+55*Math.cos(c),y:80+55*Math.sin(c)}});return e.jsx("div",{className:"s-thread-mini-mesh",children:e.jsxs("svg",{viewBox:"0 0 260 160","aria-label":"Conversation participant mesh",children:[o.map(s=>e.jsx("line",{x1:130,y1:80,x2:s.x,y2:s.y,className:"s-thread-mini-mesh-edge"},`edge-${s.id}`)),e.jsx("circle",{cx:130,cy:80,r:16,className:"s-thread-mini-mesh-node s-thread-mini-mesh-node--center"}),e.jsx("text",{x:130,y:80,className:"s-thread-mini-mesh-label s-thread-mini-mesh-label--center",children:"OP"}),o.map(s=>e.jsxs("g",{children:[e.jsx("circle",{cx:s.x,cy:s.y,r:16,className:"s-thread-mini-mesh-node",style:s.state==="in_turn"||s.state==="in_flight"?{stroke:"var(--green)"}:void 0}),e.jsx("text",{x:s.x,y:s.y,className:"s-thread-mini-mesh-label",children:s.name.slice(0,3).toUpperCase()})]},`node-${s.id}`))]})})}const X=[42,76,54,88,34,66,92,48,72,38,84,58];export{Ke as ChannelRail,Ge as PresenceSidebar,He as ThreadLoadingSkeleton,Je as ThreadMotionPanel,Y as WorkingTurnActions,Q as WorkingTurnActivityPreview,N as WorkingTurnSteps};