@openscout/scout 0.2.87 → 0.2.91
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.
- package/README.md +10 -5
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +4 -4
- package/dist/client/assets/ActivityScreen-BUeb4ERK.js +1 -0
- package/dist/client/assets/{AddProjectForm-Dw2oyCcz.js → AddProjectForm-DtTfn4Zk.js} +1 -1
- package/dist/client/assets/AgentAvatar-CneOa70z.js +1 -0
- package/dist/client/assets/AgentConfigurationScreen-CkZ7EjZh.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-0Y3kqMtv.js +1 -0
- package/dist/client/assets/{AgentDetailCard-2DZQahiN.js → AgentDetailCard-Dtc02KUO.js} +1 -1
- package/dist/client/assets/AgentFloorView-B5raPB_U.js +1 -0
- package/dist/client/assets/AgentInfoScreen-DFG4ElZD.js +1 -0
- package/dist/client/assets/{AgentLaneCard-CeSjWWwh.js → AgentLaneCard-BRAkw8YJ.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-Do7CXwin.js → AgentLaneChrome-T8QE5742.js} +1 -1
- package/dist/client/assets/AgentLaneDetailSheet-C8RYotnv.js +4 -0
- package/dist/client/assets/{AgentLaneSummaryResize--lHgnncr.js → AgentLaneSummaryResize-FyYweLo_.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-Br7cmZVO.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-BwkGk8JH.js → AgentLanesPreflight-Cil3dNwu.js} +1 -1
- package/dist/client/assets/AgentLanesView-DPfO8MOo.js +2 -0
- package/dist/client/assets/{AgentLiveActions-BmXDRxER.js → AgentLiveActions-DwScaVRF.js} +1 -1
- package/dist/client/assets/AgentSessions-DKoWA0Lm.js +6 -0
- package/dist/client/assets/AgentsConsole-DoBIWGoq.js +1 -0
- package/dist/client/assets/AgentsScreen-JuUiSuwY.js +1 -0
- package/dist/client/assets/AgentsSubnav-BV0WAgzf.js +1 -0
- package/dist/client/assets/{AtopView-DOKJbiJL.js → AtopView-ycxMrRwp.js} +1 -1
- package/dist/client/assets/BackToPicker-D6WgIDb-.js +1 -0
- package/dist/client/assets/BriefingDetailScreen-Zw-taW1s.js +6 -0
- package/dist/client/assets/{BriefingsScreen-DLIJ8eYj.js → BriefingsScreen-BerYOoWS.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-C8WERmHF.js → BrokerMetadataPanel-Cu93j-Ga.js} +1 -1
- package/dist/client/assets/BrokerScreen-CeN90URH.js +5 -0
- package/dist/client/assets/ChatCollapsedStrip-DdKyMSEM.js +1 -0
- package/dist/client/assets/{CodeDiffPane-CtgqIuS0.js → CodeDiffPane-BjCOBLze.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-C4W_udc7.js → CodeProjectPicker-NSGdCaK0.js} +1 -1
- package/dist/client/assets/{CodeScreen-WhTvVUKY.js → CodeScreen-CA9Sq6Dx.js} +1 -1
- package/dist/client/assets/ContextMenu-DnFcmfMR.js +1 -0
- package/dist/client/assets/ConversationComposer-CjRXFkvY.js +1 -0
- package/dist/client/assets/ConversationFeedRows-CgRTIpAv.js +1 -0
- package/dist/client/assets/ConversationHeader-CRmdtuL7.js +1 -0
- package/dist/client/assets/ConversationPanels-DCkcLIHk.js +2 -0
- package/dist/client/assets/ConversationScreen-Br0QQ3xo.js +1 -0
- package/dist/client/assets/ConversationScreen-yIKEsm-8.css +1 -0
- package/dist/client/assets/ConversationStatus-BJ1CMbAv.js +1 -0
- package/dist/client/assets/{DataTable-DFacT2uu.js → DataTable-Dzqiaha4.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-D797PbCe.js → DispatchAftermath-B0WMg_z3.js} +1 -1
- package/dist/client/assets/DocumentFocusViewer-CZVVIAD5.js +1 -0
- package/dist/client/assets/{EmbeddableSurfacesLab-JczLmmF-.js → EmbeddableSurfacesLab-C3a7hJWO.js} +1 -1
- package/dist/client/assets/{EmptyState-uQbB-bvP.js → EmptyState-CYNJZMrZ.js} +1 -1
- package/dist/client/assets/{FileViewerPane-ebbCtnHE.js → FileViewerPane-Fwt8_KmD.js} +1 -1
- package/dist/client/assets/FleetSearch-Dsi_l2KW.js +1 -0
- package/dist/client/assets/FleetSearch-EXOe8ulE.css +1 -0
- package/dist/client/assets/FlightObserveScreen-g_tiGmvz.js +1 -0
- package/dist/client/assets/{FollowScreen-Bfu2_KtU.js → FollowScreen-Bb_rcrzi.js} +1 -1
- package/dist/client/assets/{HarnessMark-CEzmPFHC.js → HarnessMark-DrE57dUq.js} +1 -1
- package/dist/client/assets/HarnessesScreen-CAsCJ_tG.js +1 -0
- package/dist/client/assets/{HerdrSession-BDLa_rrK.js → HerdrSession-1eVu9Owj.js} +1 -1
- package/dist/client/assets/HomeHero-DEl-WBsT.css +1 -0
- package/dist/client/assets/HomeHero-W445QrG1.js +1 -0
- package/dist/client/assets/{KnowledgeSearchInspector-GjmxYBi_.js → KnowledgeSearchInspector-CbPVg3fr.js} +1 -1
- package/dist/client/assets/KnowledgeSearchScreen-C1lN1xJk.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-DCY-m0JK.js → LaneToolHoverCard-BkBcDYm-.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-CzTd44rf.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-BfKZ7G5c.js → LaneTraceEventFocus-BmMmPTyJ.js} +1 -1
- package/dist/client/assets/{MeshCanvas-CZYHLTvw.js → MeshCanvas-DwkjsiJ5.js} +2 -2
- package/dist/client/assets/{MeshCanvasMinimap-D3mJ78CM.js → MeshCanvasMinimap-vmCpU1sD.js} +1 -1
- package/dist/client/assets/MeshScreen-CkMepUpT.js +1 -0
- package/dist/client/assets/{MeshTopologyView-A-wh0Ad1.js → MeshTopologyView-BD2xLE2C.js} +2 -2
- package/dist/client/assets/MessageComposerSuggestions-qbalTne_.js +1 -0
- package/dist/client/assets/MessagesScreen-C8UynyLC.js +1 -0
- package/dist/client/assets/{MissionContextRail-MTL2EAnr.js → MissionContextRail-D5MEP2f4.js} +1 -1
- package/dist/client/assets/MissionControlView-K_I7eftL.js +1 -0
- package/dist/client/assets/MissionFocusOverlay-CWKLdUKG.js +1 -0
- package/dist/client/assets/MissionLeftAgentRow-ByGrNAcs.js +1 -0
- package/dist/client/assets/MissionLogPane-ZwHJ137T.js +1 -0
- package/dist/client/assets/{NewAgentModal-Ctixol4_.js → NewAgentModal-Do9aVvan.js} +1 -1
- package/dist/client/assets/NewChatComposer-DKlNX1UA.js +19 -0
- package/dist/client/assets/{NewChatOrigin-CCiPg_WR.js → NewChatOrigin-DXPvX-hh.js} +1 -1
- package/dist/client/assets/ObserveEmbedScreen-Dghsq2on.js +2 -0
- package/dist/client/assets/ObserveTextFlow-DWNlmTVm.js +2 -0
- package/dist/client/assets/ObservedTopologyPanel-BlmGoxCE.js +2 -0
- package/dist/client/assets/OpenScoutAppShell-DDqQi-oe.js +87 -0
- package/dist/client/assets/OpsAgentsView-Bn_fGBdo.js +1 -0
- package/dist/client/assets/OpsScreen-DHnT-Q9R.js +1 -0
- package/dist/client/assets/OpsSubnav-CJRD7MjM.js +1 -0
- package/dist/client/assets/PlanView-B6gKo543.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-Be1VOkI4.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-B4RqrI0Q.js → ProjectAgentProfileBar-C5QWwZCn.js} +1 -1
- package/dist/client/assets/ProjectAgentProfileHero-DC7Dd8VL.js +1 -0
- package/dist/client/assets/ProjectsInbox-DCLrDmj1.js +2 -0
- package/dist/client/assets/ProjectsRail-C4hiXYSb.js +1 -0
- package/dist/client/assets/ProjectsScreen-jruZRjgD.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-DYmL2dCY.js +1 -0
- package/dist/client/assets/Provider-p-xuaAoE.js +1 -0
- package/dist/client/assets/RailRow-Cf9LOiEj.css +1 -0
- package/dist/client/assets/RailRow-bRkkXIpR.js +1 -0
- package/dist/client/assets/RawSessionsTable-B7WKmXrk.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-BzP3BQq9.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-Cr1SL5ht.js → RepoDiffEmbedScreen-xjzjcJ_c.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-DeC8fsh_.js → RepoDiffPageScreen-DRzIY-dk.js} +1 -1
- package/dist/client/assets/RepoDiffViewer-CNDp01KM.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-b6vjYxez.js +2 -0
- package/dist/client/assets/{ReposScreen-BQwIShXf.js → ReposScreen-CpaLC_NU.js} +6 -6
- package/dist/client/assets/ScoutDeckSurface-DkpZ-0DH.js +1 -0
- package/dist/client/assets/{ScoutSurface-DdVzN3DA.js → ScoutSurface-BENBUt5-.js} +1 -1
- package/dist/client/assets/ScoutbotBroadcastChip-CGZyxS5H.js +2 -0
- package/dist/client/assets/{agent-autocomplete-C7xwIcwd.css → ScoutbotBroadcastChip-CxtYZWPZ.css} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-sLjfSKtS.js → ScoutbotFxLab-Bk2ZsfPp.js} +1 -1
- package/dist/client/assets/ScoutbotRealtimeVoiceCall-n63LdBZs.js +1 -0
- package/dist/client/assets/{SecondaryNav-CCQqTT3e.js → SecondaryNav-B4IsujYh.js} +1 -1
- package/dist/client/assets/{SessionEmbedScreen-BrLMZJ3N.js → SessionEmbedScreen-CPfH-jqN.js} +1 -1
- package/dist/client/assets/{SessionObserve-pbozyqVv.js → SessionObserve-B-SkP3tu.js} +1 -1
- package/dist/client/assets/{SessionObserveEvidence-C54Xvbps.js → SessionObserveEvidence-CF5jnH3-.js} +1 -1
- package/dist/client/assets/SessionRefScreen-C-4jjmVG.js +1 -0
- package/dist/client/assets/SessionsScreen-HAjFvmIq.js +1 -0
- package/dist/client/assets/SettingsDrawer-DATxwZrn.js +3 -0
- package/dist/client/assets/SettingsDrawer-UX7pFJU_.css +1 -0
- package/dist/client/assets/SettingsScreen-Bu53X7J_.js +1 -0
- package/dist/client/assets/{ShikiPane-CiVH-45m.js → ShikiPane-DH8yYDks.js} +1 -1
- package/dist/client/assets/{SlidePanel-BLrLF9dt.js → SlidePanel-RFXJpfUa.js} +1 -1
- package/dist/client/assets/{SpriteAvatar-vpHO-rXs.js → SpriteAvatar-CEYdCzem.js} +1 -1
- package/dist/client/assets/{StatusPill-a3XBw1GG.js → StatusPill-9uy70ttd.js} +1 -1
- package/dist/client/assets/{TailView-C3rjOV7i.js → TailView-6bIrgdxN.js} +2 -2
- package/dist/client/assets/Terminal-BI6km7H4.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-D4JOWwtm.js +1 -0
- package/dist/client/assets/{TextDocumentSurface-B29xZNlI.js → TextDocumentSurface-BcP9vvji.js} +1 -1
- package/dist/client/assets/{TmuxPeek-eVfqPB4m.js → TmuxPeek-IaWqCgyJ.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-DpInOlVq.js → VoicePermissionsPanel-C80iZxgy.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-DYwgGaJs.js → WorkDetailScreen-CweZ6fEd.js} +3 -3
- package/dist/client/assets/WorkFilesViewer-Dy_-06iI.js +1 -0
- package/dist/client/assets/{activity-DTqqWiyV.js → activity-DS0u0Itf.js} +1 -1
- package/dist/client/assets/{addon-fit-CcaylYTX.js → addon-fit-CN888B3D.js} +1 -1
- package/dist/client/assets/{addon-webgl-B37iuzOG.js → addon-webgl-CoAnanQS.js} +1 -1
- package/dist/client/assets/{agent-essentials-DbbJm3ne.js → agent-essentials-CuK4G_zS.js} +1 -1
- package/dist/client/assets/agent-identity-BxCsXnDp.js +1 -0
- package/dist/client/assets/{agent-lane-card-model-CSugZCdy.js → agent-lane-card-model-q4cwzLX4.js} +1 -1
- package/dist/client/assets/{agent-lane-detail-D5EIlX7_.js → agent-lane-detail-BNNm6FNu.js} +1 -1
- package/dist/client/assets/{agent-lane-preview-BhplDYGf.js → agent-lane-preview-C33Dwpn7.js} +1 -1
- package/dist/client/assets/{agent-lanes-DlqcEf0l.css → agent-lanes-BDNktFBZ.css} +1 -1
- package/dist/client/assets/{agent-lanes-model-BKOs_32K.js → agent-lanes-model-VYQ5a68i.js} +2 -2
- package/dist/client/assets/{api-BHHEUSS3.js → api-BkjHJfgJ.js} +1 -1
- package/dist/client/assets/api-h5zurxmi.js +1 -0
- package/dist/client/assets/{arc.es-BRPqOKIx.js → arc.es-BET9ev6q.js} +1 -1
- package/dist/client/assets/arrow-down-DxxPnPwh.js +1 -0
- package/dist/client/assets/{arrow-left-B0CdJdAC.js → arrow-left-CXDkJuCg.js} +1 -1
- package/dist/client/assets/{arrow-up-right-CilNLf4t.js → arrow-up-right-Bj8RjSqW.js} +1 -1
- package/dist/client/assets/{bot-Ba3gcRVa.js → bot-BSGSicKC.js} +1 -1
- package/dist/client/assets/broker-display-pp33bLsu.js +2 -0
- package/dist/client/assets/{cache-BO2Bd_LV.js → cache-Dr0why2k.js} +1 -1
- package/dist/client/assets/{check-BdovFDz8.js → check-BfA0T8UD.js} +1 -1
- package/dist/client/assets/{chevron-down-Jh540uf3.js → chevron-down-BVg09D6U.js} +1 -1
- package/dist/client/assets/{chevron-right-CV7sEVBS.js → chevron-right-CaEwYkxE.js} +1 -1
- package/dist/client/assets/{chunk-HRAB3GC3-BYQZ1LOn.js → chunk-HRAB3GC3-HhKwnZCi.js} +1 -1
- package/dist/client/assets/chunk-JTPDIGGW-DX2eTIQ_.js +46 -0
- package/dist/client/assets/chunk-T65CQEWV-D-bOfuCH.js +1 -0
- package/dist/client/assets/chunk-YOZR3KYS-oS9dlQCI.js +2 -0
- package/dist/client/assets/{clock-DpfYdWcr.js → clock-C3TUL7D7.js} +1 -1
- package/dist/client/assets/{code-xml-CPzpZkhu.js → code-xml-Dbvjk9Kw.js} +1 -1
- package/dist/client/assets/collapsed-strip-Dz-of2SM.css +1 -0
- package/dist/client/assets/content-BQuEedeL.js +1 -0
- package/dist/client/assets/content-BUae-L_N.js +1 -0
- package/dist/client/assets/content-BfG98J1k.js +1 -0
- package/dist/client/assets/content-BkVTfkAC.js +1 -0
- package/dist/client/assets/content-BsNMos_d.js +1 -0
- package/dist/client/assets/content-C2TZOKSE.js +1 -0
- package/dist/client/assets/content-CCn98eSk.js +1 -0
- package/dist/client/assets/content-CJuH5cDP.js +1 -0
- package/dist/client/assets/content-CYnPp9yo.js +1 -0
- package/dist/client/assets/content-CcrUhm4P.js +1 -0
- package/dist/client/assets/content-CiOMtgQc.js +1 -0
- package/dist/client/assets/content-CxuVONeQ.js +1 -0
- package/dist/client/assets/content-Dmq9n1_L.js +1 -0
- package/dist/client/assets/content-DskHP2NI.js +1 -0
- package/dist/client/assets/content-DvvzL2HK.js +1 -0
- package/dist/client/assets/content-snCAUbwv.js +1 -0
- package/dist/client/assets/{conversation-icons-bHIIZ9z3.js → conversation-icons-DmC_Ak3z.js} +1 -1
- package/dist/client/assets/conversation-model-CHwHZNw-.js +1 -0
- package/dist/client/assets/conversation-motion-features-DPiGTO21.js +1 -0
- package/dist/client/assets/{copy-DQAM0eSY.js → copy-C79v_7D-.js} +1 -1
- package/dist/client/assets/{createLucideIcon-Da0lq809.js → createLucideIcon-DCq_3fQn.js} +1 -1
- package/dist/client/assets/ctx-panel-B4s49N9e.css +1 -0
- package/dist/client/assets/discover-IEnbrH8_.js +2 -0
- package/dist/client/assets/embed-entry-XUPb-AzL.js +2 -0
- package/dist/client/assets/{external-link-BheHazeW.js → external-link-Dd8xaveL.js} +1 -1
- package/dist/client/assets/{eye-B908WSFH.js → eye-DkU59kfl.js} +1 -1
- package/dist/client/assets/{file-text-BGVkHS4_.js → file-text-BITQqGtF.js} +1 -1
- package/dist/client/assets/gestures-B5rLNRpi.js +1 -0
- package/dist/client/assets/home-moving-signal-Bs635mVw.js +1 -0
- package/dist/client/assets/home-moving-signal-CAa0V91u.css +1 -0
- package/dist/client/assets/home-now-card-VxlLjg1A.js +1 -0
- package/dist/client/assets/{home-now-card-nano-iwd10r9G.js → home-now-card-nano-C06GMiwD.js} +1 -1
- package/dist/client/assets/hooks-BWiLxTw1.js +2 -0
- package/dist/client/assets/index-9as_JTUs.css +1 -0
- package/dist/client/assets/index-BTj2MguM.js +1 -0
- package/dist/client/assets/index-BZovGpDk.js +10 -0
- package/dist/client/assets/index-CvF09yvf.css +1 -0
- package/dist/client/assets/index-DiiEQwdc.js +1 -0
- package/dist/client/assets/index-vbaJ8sin.js +1 -0
- package/dist/client/assets/inspector-panel-C96HcyK5.js +2 -0
- package/dist/client/assets/{keyboard-nav-feLCB3Zm.js → keyboard-nav-CHo_xmjw.js} +1 -1
- package/dist/client/assets/{lane-observe-vfyACHi0.js → lane-observe-BA3g9aVd.js} +1 -1
- package/dist/client/assets/{lane-roster-store-BAmj273z.js → lane-roster-store-B6ybJlHJ.js} +1 -1
- package/dist/client/assets/left-Bk3XnxPD.css +1 -0
- package/dist/client/assets/left-BuJ0wJW1.js +2 -0
- package/dist/client/assets/left-C6Zj3cR4.js +1 -0
- package/dist/client/assets/left-CCoobxPS.css +1 -0
- package/dist/client/assets/left-COMAiMfB.js +2 -0
- package/dist/client/assets/left-Ce4WKYPK.js +1 -0
- package/dist/client/assets/left-DMJkmJOF.js +1 -0
- package/dist/client/assets/left-DrCbY6ja.js +1 -0
- package/dist/client/assets/left-agents-BuSyVNGE.js +1 -0
- package/dist/client/assets/left-default-DRHywOKX.js +1 -0
- package/dist/client/assets/left-l92tw5Kc.js +1 -0
- package/dist/client/assets/left-lanes-4-aUyyrV.js +1 -0
- package/dist/client/assets/left-mission-e849d_Td.js +1 -0
- package/dist/client/assets/left-plan-MchYwAB_.js +2 -0
- package/dist/client/assets/library-DygjpA6u.js +1 -0
- package/dist/client/assets/{loader-circle-Be0T8xv2.js → loader-circle-B-l2Wj3-.js} +1 -1
- package/dist/client/assets/{local-agents-Q6KQ12B9.js → local-agents-Wof5knTJ.js} +1 -1
- package/dist/client/assets/{mentions-KNASbAjG.js → mentions-BjXfeF7t.js} +1 -1
- package/dist/client/assets/{mesh-ops-C-i8OMiM.js → mesh-ops-C1gq8zKf.js} +1 -1
- package/dist/client/assets/{mesh-view-store-B0lqpw8M.js → mesh-view-store-B56D3f77.js} +1 -1
- package/dist/client/assets/{message-circle-2v9Udia0.js → message-circle-BwVx5X0q.js} +1 -1
- package/dist/client/assets/{message-markup-BP2nH9kQ.js → message-markup-DlVX-iuc.js} +1 -1
- package/dist/client/assets/{message-square-DURSOrUr.js → message-square-BnkG6tae.js} +1 -1
- package/dist/client/assets/mission-control-m3BTDQ9l.css +1 -0
- package/dist/client/assets/{mission-control-store-HeCy97KT.js → mission-control-store-CMgIVjLJ.js} +1 -1
- package/dist/client/assets/model-Co0zkMIc.js +1 -0
- package/dist/client/assets/{observe-DkAhvkfn.js → observe-DVHAcIrv.js} +1 -1
- package/dist/client/assets/{operator-attention-BqoWAlhp.js → operator-attention-BwSPeheT.js} +1 -1
- package/dist/client/assets/{page-status-CEP5pGf3.js → page-status-Bg2hd27j.js} +1 -1
- package/dist/client/assets/paperclip-DblaLD_N.js +1 -0
- package/dist/client/assets/plan-view-D56fneVF.css +1 -0
- package/dist/client/assets/{plus-ZReaTFF-.js → plus-BAI0t5g9.js} +1 -1
- package/dist/client/assets/profile-3Q4sUtvJ.js +1 -0
- package/dist/client/assets/projects-inbox-Da2hYEn6.js +1 -0
- package/dist/client/assets/{radio-BC9TO5Pl.js → radio-BGtkyCG9.js} +1 -1
- package/dist/client/assets/{refresh-cw-C4E58VJK.js → refresh-cw-DtF8xPqX.js} +1 -1
- package/dist/client/assets/resolve-panes-D4tlKNCT.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-B27lj3Ci.js +1 -0
- package/dist/client/assets/right-B8qg3JdB.js +1 -0
- package/dist/client/assets/{right-BarpRgcv.js → right-BU_W1kSH.js} +1 -1
- package/dist/client/assets/right-BlR7h0US.js +1 -0
- package/dist/client/assets/right-BwgwTGGd.js +1 -0
- package/dist/client/assets/right-ByptvkVX.js +1 -0
- package/dist/client/assets/right-CUP-NIDG.js +1 -0
- package/dist/client/assets/right-Ch_jrNe2.js +1 -0
- package/dist/client/assets/right-Dd2DscRz.js +1 -0
- package/dist/client/assets/right-DmVHd8Xj.js +1 -0
- package/dist/client/assets/{right-CIzaNH58.js → right-c4PAdFYZ.js} +1 -1
- package/dist/client/assets/{rocket-BahfIwFz.js → rocket-BWh18pt_.js} +1 -1
- package/dist/client/assets/router-63XV_E7f.js +1 -0
- package/dist/client/assets/{text-B2UZi3l9.js → runtime-picker-BXKJbLot.js} +1 -1
- package/dist/client/assets/runtime-picker-vhm0gtLs.css +1 -0
- package/dist/client/assets/{scope-views-CmG2X_S0.js → scope-views-Dm2_-NPi.js} +1 -1
- package/dist/client/assets/scout-voice-D8Q5sZOL.js +1 -0
- package/dist/client/assets/{scoutbot-D4vuKzOL.js → scoutbot-BTIErYHo.js} +2 -2
- package/dist/client/assets/{scroll-text-uulNqrf7.js → scroll-text-DZb3mmYo.js} +1 -1
- package/dist/client/assets/{search-HmdKXdtR.js → search-1QMVOxF3.js} +1 -1
- package/dist/client/assets/secondaryNavConfig-c0cz3MkJ.js +1 -0
- package/dist/client/assets/{selection-bridge-n4wNTm1B.js → selection-bridge-O9C4kGfF.js} +1 -1
- package/dist/client/assets/{send-horizontal-DOjHkZCD.js → send-horizontal-DbyEkGql.js} +1 -1
- package/dist/client/assets/{server-CX-xQjJA.js → server-Bncn9S7r.js} +1 -1
- package/dist/client/assets/{session-catalog-b7B1Sof1.js → session-catalog-DC6BlBBC.js} +1 -1
- package/dist/client/assets/{session-table-Djain1Qr.js → session-table-BUPq9Viy.js} +1 -1
- package/dist/client/assets/{sliders-horizontal-D2O6QiDN.js → sliders-horizontal-CMe8Bay1.js} +1 -1
- package/dist/client/assets/{sparkles-CgTby-ap.js → sparkles-_7cTZsIH.js} +1 -1
- package/dist/client/assets/{sse-QSbhyq9A.js → sse-Bb0EOcU9.js} +1 -1
- package/dist/client/assets/system-surfaces-redesign-B7GQhfpw.css +1 -0
- package/dist/client/assets/{tail-display-DcliDVkW.js → tail-display-BRcJltQa.js} +1 -1
- package/dist/client/assets/{tail-events-B7BrDaFi.js → tail-events-C12pfUax.js} +1 -1
- package/dist/client/assets/{terminal-relay-C2TUIuh1.js → terminal-relay-BgfVJXIL.js} +1 -1
- package/dist/client/assets/{terminal-sessions-D4dHTRkt.js → terminal-sessions-AmSgHklm.js} +1 -1
- package/dist/client/assets/{terminal-takeover-BArLfNtd.js → terminal-takeover--05EYhJm.js} +1 -1
- package/dist/client/assets/{terminal-DNZTCr6a.js → terminal-xGf_F3y7.js} +1 -1
- package/dist/client/assets/text-DsBWV_4k.js +1 -0
- package/dist/client/assets/{use-conversation-list-htp0Ui63.js → use-conversation-list-DWX02INv.js} +1 -1
- package/dist/client/assets/{use-fleet-active-asks-BhuTn5mV.js → use-fleet-active-asks-Cnwa4hTK.js} +1 -1
- package/dist/client/assets/{use-mesh-ops-items-CD-qsvNX.js → use-mesh-ops-items-BRFm37oY.js} +1 -1
- package/dist/client/assets/use-reduced-motion-C8cWvIZ3.js +1 -0
- package/dist/client/assets/use-scout-dev-flags-FkMreOOb.js +1 -0
- package/dist/client/assets/{useAgentHoverCard-BIrm8esH.js → useAgentHoverCard-DvPZSJK3.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-CNlrhvvx.js +1 -0
- package/dist/client/assets/{usePierreRuntime-CVTMzChM.js → usePierreRuntime-C8WJ0X3F.js} +1 -1
- package/dist/client/assets/{wrench-DwFKomxg.js → wrench-_tHBGTop.js} +1 -1
- package/dist/client/assets/{x-DuzAbpk5.js → x-CrGUKNRv.js} +1 -1
- package/dist/client/assets/{xterm-xQGYNyB-.js → xterm-Ks-VlLTq.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/main.mjs +38 -169
- package/dist/node/main.mjs +240 -272
- package/dist/pairing-runtime-controller.mjs +476 -394
- package/dist/runtime/base-daemon.mjs +121 -49
- package/dist/runtime/broker-daemon.mjs +60 -171
- package/dist/runtime/broker-process-manager.mjs +0 -6
- package/dist/runtime/mesh-discover.mjs +0 -6
- package/dist/scout-control-plane-web.mjs +477 -672
- package/dist/scout-web-server.mjs +477 -672
- package/package.json +7 -6
- package/dist/client/assets/ActivityScreen-DRHTQIxu.js +0 -1
- package/dist/client/assets/AgentAvatar-CQqJcwOQ.js +0 -1
- package/dist/client/assets/AgentAvatar-CUZZARWG.css +0 -1
- package/dist/client/assets/AgentConfigurationScreen-C3OI6JmZ.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-D0LDEqfl.js +0 -1
- package/dist/client/assets/AgentFloorView-CoGh2q5f.js +0 -1
- package/dist/client/assets/AgentInfoScreen-5ybfIL9p.js +0 -1
- package/dist/client/assets/AgentLaneDetailSheet-BD8B51ka.js +0 -4
- package/dist/client/assets/AgentLanesEmbedScreen-FRTVASPw.js +0 -1
- package/dist/client/assets/AgentLanesView-Bm85ittm.js +0 -2
- package/dist/client/assets/AgentSessions-C_tAfGN2.js +0 -6
- package/dist/client/assets/AgentsConsole-DsHWsaOJ.js +0 -1
- package/dist/client/assets/AgentsScreen-Bod6AHlA.js +0 -1
- package/dist/client/assets/AgentsSubnav-CsvYzzQ-.js +0 -1
- package/dist/client/assets/AstronautSuit-C05Ezxl9.js +0 -1
- package/dist/client/assets/BackToPicker-CXsbxbHM.js +0 -1
- package/dist/client/assets/BriefingDetailScreen-Uvnk3t0v.js +0 -1
- package/dist/client/assets/BrokerScreen-LZ3T7hGG.js +0 -5
- package/dist/client/assets/Canvas-BO9mx5_P.js +0 -1
- package/dist/client/assets/ChatCollapsedStrip-CtLPTLTY.js +0 -1
- package/dist/client/assets/ConversationComposer-DPWu3HvK.js +0 -1
- package/dist/client/assets/ConversationFeedRows-MhcPfxUr.js +0 -1
- package/dist/client/assets/ConversationHeader-Ce7TENb9.js +0 -1
- package/dist/client/assets/ConversationPanels-D-b5SLO-.js +0 -6
- package/dist/client/assets/ConversationScreen-C5HnXd5w.css +0 -1
- package/dist/client/assets/ConversationScreen-D77SoLos.js +0 -1
- package/dist/client/assets/ConversationStatus-lIvSKRic.js +0 -1
- package/dist/client/assets/CrewWorkspaces-CJhBKVoZ.css +0 -1
- package/dist/client/assets/CrewWorkspaces-CdojnRMG.js +0 -1
- package/dist/client/assets/DocumentFocusViewer-CetjnYut.js +0 -1
- package/dist/client/assets/FlightObserveScreen-sqvt7HUO.js +0 -1
- package/dist/client/assets/HarnessesScreen-CGhRsqD5.js +0 -1
- package/dist/client/assets/HomeHero-7JwycwFY.css +0 -1
- package/dist/client/assets/HomeHero-DdxTQ-6a.js +0 -1
- package/dist/client/assets/HostAdvisorView-BAUi5ZxX.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-CRei9pyl.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-CFsCvKa3.js +0 -1
- package/dist/client/assets/MeshScreen-dxNxRtKm.js +0 -1
- package/dist/client/assets/MessagesScreen-CR5v-WIE.js +0 -1
- package/dist/client/assets/MissionControlView-BGj1qnI2.js +0 -1
- package/dist/client/assets/MissionFocusOverlay-hWi6y87j.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-BSRRiiig.js +0 -1
- package/dist/client/assets/MissionLogPane-bbG_pM9B.js +0 -1
- package/dist/client/assets/NewChatComposer-BPsg8shF.js +0 -19
- package/dist/client/assets/ObserveEmbedScreen-Be87Chod.js +0 -2
- package/dist/client/assets/ObserveTextFlow-CKYltTPJ.js +0 -2
- package/dist/client/assets/ObservedTopologyPanel-CfHYu-4Z.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-DPeP1vtK.js +0 -88
- package/dist/client/assets/OpsAgentsView-dEtw9yt-.js +0 -1
- package/dist/client/assets/OpsScreen-QXRJY8Vf.js +0 -1
- package/dist/client/assets/OpsSubnav-BK9Fj3gU.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-BjykZ2Xd.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-Bc0g8rhW.js +0 -1
- package/dist/client/assets/ProjectsInbox--ZIqo-IE.js +0 -2
- package/dist/client/assets/ProjectsRail-CzS0qTCI.js +0 -1
- package/dist/client/assets/ProjectsScreen-0gx7f30h.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-BsQRFbdy.js +0 -1
- package/dist/client/assets/Provider-Cd-QZltN.js +0 -1
- package/dist/client/assets/RailRow-B0sRaJc6.css +0 -1
- package/dist/client/assets/RailRow-BY6fxePa.js +0 -1
- package/dist/client/assets/RawSessionsTable-CbopOF34.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-CU4uXz4C.js +0 -9
- package/dist/client/assets/RepoDiffViewer-CiTOWK_Z.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-BU3V7Kwq.js +0 -2
- package/dist/client/assets/ScoutDeckSurface-BncYKicb.js +0 -1
- package/dist/client/assets/SessionRefScreen-UVNVrwAf.js +0 -1
- package/dist/client/assets/SessionsScreen-KeDb5gz4.js +0 -1
- package/dist/client/assets/SettingsDrawer-CWdj0VvN.js +0 -3
- package/dist/client/assets/SettingsDrawer-J-8x1eII.css +0 -1
- package/dist/client/assets/SettingsScreen-C7zJgZzj.js +0 -1
- package/dist/client/assets/Terminal-CMQFmHnn.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-GvpoGERN.js +0 -1
- package/dist/client/assets/TerminalRelay-CIHlLVf1.js +0 -46
- package/dist/client/assets/WorkFilesViewer-C7H5fXaZ.js +0 -1
- package/dist/client/assets/agent-autocomplete-cOPLtuhM.js +0 -2
- package/dist/client/assets/agent-identity-CIMT7oV6.js +0 -1
- package/dist/client/assets/agent-specialization-D3-sqwhU.js +0 -1
- package/dist/client/assets/api-DEHEgJ9m.js +0 -1
- package/dist/client/assets/archive-DPMdoW_D.js +0 -1
- package/dist/client/assets/arrow-right-YRBoTTyf.js +0 -1
- package/dist/client/assets/broker-display-Q75fupqG.js +0 -2
- package/dist/client/assets/collapsed-strip-raJWthAH.css +0 -1
- package/dist/client/assets/compass-D5Io6BIV.js +0 -1
- package/dist/client/assets/content-3b_jmxEx.js +0 -1
- package/dist/client/assets/content-B-i0XY-t.js +0 -1
- package/dist/client/assets/content-BD-DNFmb.js +0 -1
- package/dist/client/assets/content-BGeo5tgd.js +0 -1
- package/dist/client/assets/content-BMvXPLiQ.js +0 -1
- package/dist/client/assets/content-BWTbfMDg.js +0 -1
- package/dist/client/assets/content-BwCmeUmF.js +0 -1
- package/dist/client/assets/content-C1K3NcZa.js +0 -1
- package/dist/client/assets/content-C34J5_Af.js +0 -1
- package/dist/client/assets/content-CGRtIS2m.js +0 -1
- package/dist/client/assets/content-CIJo_-JS.js +0 -1
- package/dist/client/assets/content-CvqIqVAV.js +0 -1
- package/dist/client/assets/content-DRnwm-Vu.js +0 -1
- package/dist/client/assets/content-Dh39SSvP.js +0 -1
- package/dist/client/assets/content-DoypqDj5.js +0 -1
- package/dist/client/assets/content-n3mvc6NQ.js +0 -1
- package/dist/client/assets/conversation-model-CIzM7aXT.js +0 -1
- package/dist/client/assets/conversation-motion-features-CrP5K-dk.js +0 -1
- package/dist/client/assets/cpu-CtQc0Z9D.js +0 -1
- package/dist/client/assets/credentials-qwds23lv.js +0 -1
- package/dist/client/assets/ctx-panel-D_HJ3nhb.css +0 -1
- package/dist/client/assets/discover-DdkMhTAV.js +0 -2
- package/dist/client/assets/embed-entry-DoSM1GZB.js +0 -2
- package/dist/client/assets/file-code-corner-C5Pc6znt.js +0 -1
- package/dist/client/assets/gauge-sc_gb5Zw.js +0 -1
- package/dist/client/assets/gestures-AzPBSf20.js +0 -1
- package/dist/client/assets/git-branch-CdJU49Af.js +0 -1
- package/dist/client/assets/home-moving-signal-CZo2bYBi.js +0 -1
- package/dist/client/assets/home-moving-signal-DMguaRWR.css +0 -1
- package/dist/client/assets/home-now-card-DgxfZHcR.js +0 -1
- package/dist/client/assets/hooks-CeCCO6Yg.js +0 -2
- package/dist/client/assets/host-advisor-B2Fqs5Dd.css +0 -1
- package/dist/client/assets/index-BIiI9gfa.js +0 -1
- package/dist/client/assets/index-CD2foMB8.js +0 -1
- package/dist/client/assets/index-DReHD_4U.js +0 -1
- package/dist/client/assets/index-DzlEgstl.css +0 -1
- package/dist/client/assets/index-NRbRrZw-.js +0 -10
- package/dist/client/assets/index-wLwc74Pu.css +0 -1
- package/dist/client/assets/inspector-panel-CBf8pW7s.js +0 -2
- package/dist/client/assets/layers-D9fblkql.js +0 -1
- package/dist/client/assets/layout-grid-Vd1chalc.js +0 -1
- package/dist/client/assets/left-41_3QKk1.js +0 -1
- package/dist/client/assets/left-B3ofA1Pr.js +0 -2
- package/dist/client/assets/left-BWBZQhxQ.js +0 -1
- package/dist/client/assets/left-BhA6essi.js +0 -1
- package/dist/client/assets/left-BmTKCv4f.js +0 -1
- package/dist/client/assets/left-CCGR6tIF.js +0 -2
- package/dist/client/assets/left-DH44V4I_.css +0 -1
- package/dist/client/assets/left-Dfwzkwh_.js +0 -1
- package/dist/client/assets/left-R2OOE7VG.css +0 -1
- package/dist/client/assets/left-advisor-yrzW1Kwz.js +0 -1
- package/dist/client/assets/left-agents-Bgahk0FF.js +0 -1
- package/dist/client/assets/left-default-CtkfAquc.js +0 -1
- package/dist/client/assets/left-lanes-CpujaVN3.js +0 -1
- package/dist/client/assets/left-mission-Bbd-fW6W.js +0 -1
- package/dist/client/assets/library-Dx14WNGd.js +0 -1
- package/dist/client/assets/mission-control-CnU7dNt1.css +0 -1
- package/dist/client/assets/persistent-state-Bm_0TmZL.js +0 -1
- package/dist/client/assets/profile-Y0X7HZHc.js +0 -1
- package/dist/client/assets/projects-inbox-Cbfj4Hx7.js +0 -1
- package/dist/client/assets/provider-Bq0ScH3v.js +0 -1
- package/dist/client/assets/proxy-DtC2iXnT.js +0 -1
- package/dist/client/assets/resolve-panes-BI3WdDS-.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-_g0pIxOr.js +0 -1
- package/dist/client/assets/right-BA0F8fPI.js +0 -1
- package/dist/client/assets/right-C4GXB45w.js +0 -1
- package/dist/client/assets/right-CXetlD8X.js +0 -1
- package/dist/client/assets/right-CnRcQS_I.js +0 -1
- package/dist/client/assets/right-D2_rmbAH.js +0 -1
- package/dist/client/assets/right-Dqp--KwX.js +0 -1
- package/dist/client/assets/right-HJJzRuGD.js +0 -1
- package/dist/client/assets/right-WCMb8YXJ.js +0 -1
- package/dist/client/assets/router-Bx1tiwVe.js +0 -1
- package/dist/client/assets/scout-voice-BT3gYDhU.js +0 -1
- package/dist/client/assets/scoutbot-markdown-DIhLsYxz.js +0 -6
- package/dist/client/assets/secondaryNavConfig-BVQiyAXu.js +0 -1
- package/dist/client/assets/settings-BpKRzxOD.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-QVXNeGYw.css +0 -1
- package/dist/client/assets/text-rLpBg4_z.css +0 -1
- package/dist/client/assets/use-reduced-motion-0fAsybdo.js +0 -1
- package/dist/client/assets/use-scout-dev-flags-DV_I6URU.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-4atpGgFw.js +0 -1
- package/dist/client/assets/usePersistentState-InmPXIN4.js +0 -1
- package/dist/client/assets/zap-CocRNtyr.js +0 -1
- package/dist/client/crew/brik-bust.webp +0 -0
- package/dist/client/crew/brik-chip-id.webp +0 -0
- package/dist/client/crew/lulu-bust.webp +0 -0
- package/dist/client/crew/milo-bust.webp +0 -0
- package/dist/client/crew/milo-chip-id.webp +0 -0
- package/dist/client/crew/nori-bust.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/blink-half.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/blink-shut.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-left.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-right.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-up.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/rest.webp +0 -0
- package/dist/client/crew/sheets/sprout/blink-half.webp +0 -0
- package/dist/client/crew/sheets/sprout/blink-shut.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-left.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-right.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-up.webp +0 -0
- package/dist/client/crew/sprout-bust.webp +0 -0
- package/dist/client/crew/sprout-chip-id.webp +0 -0
- package/dist/client/crew/vex-bust.webp +0 -0
- package/dist/client/crew/vex-chip-id.webp +0 -0
- package/dist/client/crew/wrench-bust.webp +0 -0
- package/dist/client/crew/wrench-chip-id.webp +0 -0
- /package/dist/client/assets/{DocumentFocusViewer-BSC_JwVE.css → document-focus-viewer-BSC_JwVE.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as c,j as s}from"./index-NRbRrZw-.js";/* empty css */import{H as ds}from"./HarnessMark-CEzmPFHC.js";import{a as b}from"./api-DEHEgJ9m.js";import{u as hs}from"./sse-QSbhyq9A.js";import{t as C}from"./time-Dhsh_2EG.js";import{C as ms}from"./compass-D5Io6BIV.js";import{F as us}from"./file-text-BGVkHS4_.js";import{L as ps}from"./layout-grid-Vd1chalc.js";import{R as xs}from"./refresh-cw-C4E58VJK.js";import{A as H}from"./arrow-up-right-CilNLf4t.js";import{C as Ns}from"./cpu-CtQc0Z9D.js";import{G as fs,D as js}from"./gauge-sc_gb5Zw.js";import{c as gs}from"./createLucideIcon-Da0lq809.js";import"./index-BWHgHrtv.js";const bs=[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]],ks=gs("folder-git-2",bs),vs=.8,ws=20,F="░",T="·",Ss=["▏","▎","▍","▌","▋","▊","▉"];function ys(a,r=ws){const o=Number.isFinite(a)?Math.min(1,Math.max(0,a)):0,d=Math.round(o*100);if(o<=0)return{filled:"",rest:T.repeat(r),cells:r,percent:0};const i=o*r;let h=Math.floor(i),m=Math.round((i-h)*8);return m===8&&(h+=1,m=0),h>=r?{filled:F.repeat(r),rest:"",cells:r,percent:d}:m===0?h===0?{filled:"▏",rest:T.repeat(r-1),cells:r,percent:d}:{filled:F.repeat(h),rest:T.repeat(r-h),cells:r,percent:d}:{filled:F.repeat(h)+Ss[m-1],rest:T.repeat(r-h-1),cells:r,percent:d}}function S(a){return a.kind==="status"||typeof a.fill!="number"||!Number.isFinite(a.fill)?null:Math.min(1,Math.max(0,a.fill))}function _(a){const r=S(a);return r!==null&&r>=vs}function J(a){return S(a)===0}function $s(a){if(a===null)return{verdict:"Reading",figures:"provider budgets still arriving",showGauges:!1,near:[],unused:0,configured:0,peakPercent:null};if(a.length===0)return{verdict:"All clear",figures:"no provider budgets reported",showGauges:!1,near:[],unused:0,configured:0,peakPercent:null};const r=[...a].filter(_).sort((v,D)=>(S(D)??0)-(S(v)??0)),o=a.filter(J).length,d=a.map(S).filter(v=>v!==null),i=d.length>0?Math.round(Math.max(...d)*100):null,h=a.length-o;let m;r.length>0?m=`${r.length} near ceiling`:h===0?m="Unused":m=`Peak ${i??0}%`;const f=[r.length>0?r.map(v=>`${v.label} ${Math.round((S(v)??0)*100)}%`).join(" · "):null,`${a.length} configured`,o>0&&h>0?`${o} unused`:null].filter(Boolean).join(" · ");return{verdict:m,figures:f,showGauges:!0,near:r,unused:o,configured:a.length,peakPercent:i}}function Es(a,r){if(!a)return r||"process";if(a.includes("--append-system-prompt")){const o=a.match(/session-[a-zA-Z0-9_-]+/);return o?`${r||"harness"} (relay ${o[0]})`:`${r||"harness"} (prompted relay)`}return a.length>70?`${a.slice(0,67)}...`:a}function I(a){if(!a)return"workspace";const r=a.replace(/\/+$/,"").split("/");return r[r.length-1]||a}function Rs(a){if(!a)return;const[r,o]=a.includes("-")?a.split("-"):["0",a],d=o.split(":").map(f=>Number.parseInt(f,10));if(d.length<2||d.some(f=>!Number.isFinite(f)))return;const[i,h,m]=d.length===3?d:[0,d[0],d[1]];return((Number.parseInt(r,10)||0)*24+i)*3600+h*60+m}function Z(a){if(a<60)return`${Math.round(a)}s`;const r=Math.floor(a/60);if(r<60)return`${r}m`;const o=Math.floor(r/60),d=r%60;return o<24?d?`${o}h${String(d).padStart(2,"0")}m`:`${o}h`:`${Math.floor(o/24)}d${o%24}h`}function As(a){const r=a.split("/").filter(Boolean);return r[r.length-1]||a}const X={stalled_relay:"relay",idle_process:"process",uncommitted_branch:"branch",unresumed_session:"session"};function Ps({gauge:a}){const r=S(a),o=_(a),d=J(a),i=ys(r??0),h=r!==null,m=o?"warn":d||!h?"unused":"ok",f=d?"UNUSED":a.resetAt?`RESET ${C(a.resetAt)}`:a.statusLabel||a.usedLabel||"";return s.jsxs("div",{className:`s-host-rack-row ${o?"s-host-rack-row--warn":""} ${d||!h?"s-host-rack-row--unused":""}`,children:[s.jsx("span",{className:"s-host-rack-name font-mono",children:a.label}),s.jsxs("span",{className:`s-host-gauge s-host-gauge--${m}`,role:"meter","aria-label":h?`${a.label} ${i.percent} percent`:`${a.label} ${a.statusLabel||"no quota"}`,"aria-valuemin":h?0:void 0,"aria-valuemax":h?100:void 0,"aria-valuenow":h?i.percent:void 0,children:[s.jsx("span",{className:"s-host-gauge-chrome","aria-hidden":"true",children:"["}),s.jsx("span",{className:"s-host-gauge-fill","aria-hidden":"true",children:i.filled}),s.jsx("span",{className:"s-host-gauge-rest","aria-hidden":"true",children:i.rest}),s.jsx("span",{className:"s-host-gauge-chrome","aria-hidden":"true",children:"]"})]}),s.jsx("span",{className:`s-host-rack-right font-mono ${o?"s-host-rack-age--warn":""} ${d||!h?"s-host-rack-dim":""}`,children:h?`${i.percent}%`:"—"}),s.jsx("span",{className:"s-host-rack-right s-host-rack-dim font-mono s-host-rack-truncate",children:f})]})}function Js({navigate:a,agents:r}){const[o,d]=c.useState(null),[i,h]=c.useState(null),[m,f]=c.useState(null),[v,D]=c.useState(null),[z,ss]=c.useState(null),[L,es]=c.useState(null),[O,ts]=c.useState([]),[Ms,as]=c.useState(null),[V,ns]=c.useState([]),[Ts,rs]=c.useState([]),[Is,K]=c.useState(!0),[E,W]=c.useState(!1),[Cs,os]=c.useState(Date.now()),[G,Y]=c.useState("inquiry"),[ls,Ds]=c.useState(!1),[Ls,Os]=c.useState({"q-attention":!0,"q-dropped":!0,"q-quotas":!0,"q-posture":!0}),R=c.useCallback(async(e=!1)=>{e?W(!0):K(!0);try{const[t,n,l,k,P,p,N,M,B,q]=await Promise.allSettled([b("/.host-info"),b("/api/build"),b("/api/service-budgets"),b("/api/tail/discover"),b("/api/knowledge/status"),b("/api/pairing-state"),b("/api/terminal-sessions"),b("/api/fleet"),b("/api/sessions"),b("/api/activity")]);t.status==="fulfilled"&&d(t.value),n.status==="fulfilled"&&h(n.value),l.status==="fulfilled"?f(l.value?.gauges??[]):l.status==="rejected"&&f([]),k.status==="fulfilled"&&D(k.value),P.status==="fulfilled"&&ss(P.value),p.status==="fulfilled"&&es(p.value),N.status==="fulfilled"&&N.value?.sessions&&ts(N.value.sessions),M.status==="fulfilled"&&as(M.value),B.status==="fulfilled"&&Array.isArray(B.value)&&ns(B.value),q.status==="fulfilled"&&Array.isArray(q.value)&&rs(q.value),os(Date.now())}finally{K(!1),W(!1)}},[]);c.useEffect(()=>{R()},[R]),hs(()=>{R(!0)});const x=v?.processes??[],is=ls?x:x.slice(0,5);c.useMemo(()=>{const e={};for(const t of r){const n=t.harness||"other";e[n]||(e[n]={total:0,active:0}),e[n].total+=1,t.state==="working"&&(e[n].active+=1)}for(const t of x){const n=t.harness||"other";e[n]||(e[n]={total:0,active:0}),e[n].total=Math.max(e[n].total,1),e[n].active=Math.max(e[n].active,1)}return e},[r,x]);const $=c.useMemo(()=>{const e=new Map;for(const t of r){const n=t.projectRoot||t.cwd||"unknown";e.has(n)||e.set(n,{root:n,name:I(n),agents:[],branches:new Set,processes:[]});const l=e.get(n);l.agents.push(t),t.branch&&l.branches.add(t.branch)}for(const t of x)if(t.cwd)for(const[n,l]of e.entries())(t.cwd.startsWith(n)||n.startsWith(t.cwd))&&l.processes.push(t);return Array.from(e.values())},[r,x]),w=c.useMemo(()=>{const e=$.reduce((p,N)=>p+Math.max(1,N.agents.length+N.processes.length*3),0),t=$.map(p=>{const N=Math.max(1,p.agents.length+p.processes.length*3),M=e>0?Math.round(N/e*100):0;return{...p,weight:N,percent:M,primaryBranch:Array.from(p.branches)[0]||p.name==="openscout"&&i?.gitBranch||"main"}}).sort((p,N)=>N.weight-p.weight),n=t.slice(0,5),l=t[0],k=t.slice(5),P=k.reduce((p,N)=>p+N.percent,0);return{ranked:t,topProjects:n,topProject:l,otherProjects:k,otherPercent:P,totalProjects:t.length}},[$,i]),j=c.useMemo(()=>{const e=[];for(const t of x)if(t.command&&t.command.includes("--append-system-prompt")){const n=t.command.match(/session-[a-zA-Z0-9_-]+/),l=n?n[0]:`PID ${t.pid}`;e.push({id:`relay-${t.pid}`,kind:"stalled_relay",title:l,subtitle:`Launched in ${I(t.cwd)} · PID ${t.pid} · Runtime ${t.etime||"active"}`,ageLabel:t.etime||"active",ageSeconds:Rs(t.etime),projectRoot:t.cwd||void 0,harness:t.harness,pid:t.pid,severity:"warn",actionLabel:"Tail Process",actionRoute:{view:"ops",mode:"mission"}})}i?.gitBranch&&i.gitBranch!=="main"&&e.push({id:"branch-divergence",kind:"uncommitted_branch",title:i.gitBranch,subtitle:`Local worktree is ahead with uncommitted edits on ${i.runtime?.platform||"darwin"}`,ageLabel:"Unmerged",projectRoot:"/Users/art/dev/openscout",severity:"neutral",actionLabel:"Inspect Repos",actionRoute:{view:"repos"}});for(const t of V.slice(0,4))t.lastMessageAt&&Date.now()-t.lastMessageAt>3600*1e3&&e.push({id:`session-${t.id}`,kind:"unresumed_session",title:t.title||t.id,subtitle:`Last turn recorded ${C(t.lastMessageAt)} · ${t.messageCount} messages · ${I(t.workspaceRoot)}`,ageLabel:C(t.lastMessageAt),ageSeconds:(Date.now()-t.lastMessageAt)/1e3,conversationId:t.id,projectRoot:t.workspaceRoot||void 0,harness:t.harness||void 0,severity:"info",actionLabel:"Open Chat",actionRoute:{view:"conversation",conversationId:t.id}});return e},[x,i,V]),g=c.useMemo(()=>m?.length?[...m].sort((e,t)=>(t.fill??0)-(e.fill??0))[0]:null,[m]),u=c.useMemo(()=>{const e=w.ranked;if(e.length===0)return null;const t=e[0].percent,n=w.otherProjects;return{verdict:t>=50?"Concentrated":t>=25?"Weighted":"Scattered",topPercent:t,tailPercent:w.otherPercent,tailCount:n.length,tailAgents:n.reduce((l,k)=>l+k.agents.length,0),tailProcesses:n.reduce((l,k)=>l+k.processes.length,0),aboveTen:e.filter(l=>l.percent>=10).length}},[w]),y=c.useMemo(()=>{const e=j.reduce((n,l)=>(n[l.kind]=(n[l.kind]??0)+1,n),{}),t=j.map(n=>n.ageSeconds).filter(n=>typeof n=="number").sort((n,l)=>l-n)[0];return{verdict:j.length===0?"Nothing unattended":`${j.length} unattended`,byKind:e,oldestLabel:t?Z(t):null}},[j]),U=c.useMemo(()=>$s(m),[m]),A=c.useMemo(()=>{const e=O.length,t=z?.indexedSessions??0,n=L?.trustedPeerCount??0,l=o?.brokerUrl||(o?.ports?.broker?`127.0.0.1:${o.ports.broker}`:null);return[{key:"broker",label:"broker",detail:l?[l,o?.brokerSocketPath?As(o.brokerSocketPath):null].filter(Boolean).join(" · "):"endpoint not reported",state:l?"UP":"UNKNOWN",tone:l?"ok":"unknown"},{key:"pty",label:"pty relay",detail:e>0?`${e} socket${e===1?"":"s"}`:"0 sockets · latency unmeasured",state:e>0?"ACTIVE":"IDLE",tone:e>0?"ok":"idle"},{key:"knowledge",label:"knowledge",detail:t>0?`${t.toLocaleString()} transcript${t===1?"":"s"} indexed`:"0 transcripts indexed",state:t>0?"INDEXED":"EMPTY",tone:t>0?"ok":"warn",action:t>0?void 0:{label:"Index",route:{view:"search"}}},{key:"mesh",label:"mesh",detail:n>0?`${n} trusted peer${n===1?"":"s"} · scope ${o?.advertiseScope||"mesh"}`:`no trusted peers · scope ${o?.advertiseScope||"mesh"}`,state:n>0?"PAIRED":"UNPAIRED",tone:n>0?"ok":"idle"}]},[o,O,z,L]),Q=c.useMemo(()=>{const e=A.reduce((n,l)=>(n[l.tone]=(n[l.tone]??0)+1,n),{}),t=A.filter(n=>n.tone==="warn");return{verdict:t.length>0?`${t.length} ${t.length===1?"needs":"need"} attention`:"All nominal",figures:[e.ok?`${e.ok} up`:null,e.idle?`${e.idle} idle`:null,e.warn?`${e.warn} empty`:null,e.unknown?`${e.unknown} unknown`:null].filter(Boolean).join(" · ")}},[A]);o?.nodeName||o?.hostName;const cs=i?.runtime?`${i.runtime.platform} ${i.runtime.arch} · ${i.runtime.engine} ${i.runtime.engineVersion}`:"Darwin arm64";return s.jsxs("div",{className:"s-host-view",children:[s.jsxs("header",{className:"s-host-header",children:[s.jsxs("div",{className:"s-host-header-left",children:[s.jsxs("div",{className:"s-host-header-status-line",children:[s.jsx("span",{className:"dot dot--sm dot--working dot--pulse","aria-hidden":"true"}),s.jsxs("span",{className:"label-xs s-host-mono-dim",children:["NODE: ",o?.nodeId||"local"]}),s.jsx("span",{className:"s-host-header-divider",children:"/"}),s.jsx("span",{className:"label-xs s-host-mono-dim",children:cs}),i?.gitHash&&s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"s-host-header-divider",children:"/"}),s.jsxs("span",{className:"label-xs s-host-mono-dim",children:["git:",i.gitHash.slice(0,7)]})]})]}),s.jsxs("h1",{className:"s-host-title",children:[s.jsx(ms,{size:22,className:"s-host-title-icon"}),s.jsx("span",{children:"Host Advisor"})]})]}),s.jsxs("div",{className:"s-host-header-right",children:[s.jsxs("div",{className:"s-host-mode-toggle",role:"group","aria-label":"Advisor Format",children:[s.jsxs("button",{type:"button",className:`s-host-mode-btn ${G==="inquiry"?"s-host-mode-btn--active":""}`,onClick:()=>Y("inquiry"),title:"Formatted Executive Inquiries & Operator Answers",children:[s.jsx(us,{size:12}),s.jsx("span",{children:"Inquiries"})]}),s.jsxs("button",{type:"button",className:`s-host-mode-btn ${G==="matrix"?"s-host-mode-btn--active":""}`,onClick:()=>Y("matrix"),title:"Compact Infrastructure Matrix",children:[s.jsx(ps,{size:12}),s.jsx("span",{children:"Matrix"})]})]}),s.jsxs("button",{type:"button",className:`btn btn--sm ${E?"btn--accent":""}`,disabled:E,onClick:()=>{R(!0)},children:[s.jsx(xs,{size:12,className:E?"s-spin":""}),s.jsx("span",{children:E?"Scanning...":"Refresh"})]})]})]}),s.jsxs("section",{className:"s-host-readouts","aria-label":"Host Readouts",children:[s.jsxs("div",{className:"s-host-readout",children:[s.jsx("span",{className:"label-xs s-host-readout-label",children:"AGENTS"}),s.jsx("span",{className:"s-host-readout-figure",children:r.length}),s.jsxs("span",{className:"label-xs s-host-readout-qual",children:[x.length," PROCESS",x.length===1?"":"ES"]})]}),s.jsxs("div",{className:"s-host-readout",children:[s.jsx("span",{className:"label-xs s-host-readout-label",children:"ROOTS"}),s.jsx("span",{className:"s-host-readout-figure",children:$.length}),s.jsx("span",{className:"label-xs s-host-readout-qual",children:u?`TOP SHARE ${u.topPercent}%`:"NONE ACTIVE"})]}),s.jsxs("div",{className:`s-host-readout ${g&&_(g)?"s-host-readout--warn":""}`,children:[s.jsx("span",{className:"label-xs s-host-readout-label",children:"PEAK BUDGET"}),s.jsx("span",{className:"s-host-readout-figure",children:g?`${Math.round((g.fill??0)*100)}%`:"—"}),s.jsx("span",{className:"label-xs s-host-readout-qual",children:g?`${g.label}${g.resetAt?` · RESET ${C(g.resetAt)}`:""}`:"NO PROVIDERS CONFIGURED"})]}),s.jsxs("div",{className:`s-host-readout ${j.length>0?"s-host-readout--flag":""}`,children:[s.jsx("span",{className:"label-xs s-host-readout-label",children:"UNATTENDED"}),s.jsx("span",{className:"s-host-readout-figure",children:j.length}),s.jsx("span",{className:"label-xs s-host-readout-qual",children:y.oldestLabel?`OLDEST ${y.oldestLabel}`:"NONE OPEN"})]}),s.jsxs("div",{className:"s-host-readout",children:[s.jsx("span",{className:"label-xs s-host-readout-label",children:"MESH PEERS"}),s.jsx("span",{className:"s-host-readout-figure",children:L?.trustedPeerCount??0}),s.jsxs("span",{className:"label-xs s-host-readout-qual",children:["SCOPE ",(o?.advertiseScope||"mesh").toUpperCase()]})]})]}),G==="inquiry"?s.jsxs("div",{className:"s-host-readings","aria-label":"Host Readings",children:[s.jsxs("article",{className:"s-host-reading",children:[s.jsxs("div",{className:"s-host-reading-head",children:[s.jsx("span",{className:"label-xs s-host-reading-num",children:"01 // ATTENTION"}),s.jsx("span",{className:"s-host-reading-verdict",children:u?.verdict??"No active roots"}),s.jsx("span",{className:"s-host-reading-figures",children:u?s.jsxs(s.Fragment,{children:["top ",u.topPercent,"%",s.jsx("span",{className:"s-host-sep",children:"·"}),"tail ",u.tailPercent,"%",s.jsx("span",{className:"s-host-sep",children:"·"}),u.aboveTen," root",u.aboveTen===1?"":"s"," above 10%"]}):s.jsx(s.Fragment,{children:"no agents or processes bound to a workspace"})}),s.jsxs("button",{type:"button",className:"btn btn--sm",onClick:()=>a({view:"repos"}),children:[s.jsx("span",{children:"Repos"}),s.jsx(H,{size:10})]})]}),w.ranked.length>0&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"s-host-share-bar",children:[w.topProjects.map((e,t)=>s.jsx("div",{className:`s-host-share-seg s-host-share-seg--${Math.min(t,4)}`,style:{width:`${e.percent}%`},title:`${e.name} ${e.percent}%`,children:s.jsxs("span",{className:"s-host-share-seg-label font-mono text-2xs",children:[e.name," ",e.percent,"%"]})},e.root)),u&&u.tailCount>0&&s.jsx("div",{className:"s-host-share-seg s-host-share-seg--tail",style:{flex:1},children:s.jsxs("span",{className:"s-host-share-seg-label font-mono text-2xs",children:[u.tailCount," OTHER ROOTS — ",u.tailPercent,"%"]})})]}),s.jsxs("div",{className:"s-host-rack s-host-rack--roots",children:[s.jsxs("div",{className:"s-host-rack-row s-host-rack-row--head",children:[s.jsx("span",{className:"label-xs",children:"ROOT"}),s.jsx("span",{className:"label-xs",children:"SHARE"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"PCT"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"AGENTS"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"PROCS"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"BRANCH"})]}),w.topProjects.map(e=>s.jsxs("div",{className:"s-host-rack-row",children:[s.jsx("span",{className:"s-host-rack-name font-mono",children:e.name}),s.jsx("span",{className:"s-host-rack-track",children:s.jsx("span",{className:"s-host-rack-fill",style:{width:`${u&&u.topPercent>0?Math.round(e.percent/u.topPercent*100):0}%`}})}),s.jsxs("span",{className:"s-host-rack-right font-mono",children:[e.percent,"%"]}),s.jsx("span",{className:"s-host-rack-right s-host-rack-dim font-mono",children:e.agents.length}),s.jsx("span",{className:"s-host-rack-right s-host-rack-dim font-mono",children:e.processes.length}),s.jsx("span",{className:"s-host-rack-right s-host-rack-dim font-mono s-host-rack-truncate",children:e.primaryBranch})]},e.root)),u&&u.tailCount>0&&s.jsxs("div",{className:"s-host-rack-row s-host-rack-row--tail",children:[s.jsxs("span",{className:"s-host-rack-name font-mono",children:["tail — ",u.tailCount," roots"]}),s.jsx("span",{className:"s-host-rack-track s-host-rack-track--hatch"}),s.jsxs("span",{className:"s-host-rack-right font-mono",children:[u.tailPercent,"%"]}),s.jsx("span",{className:"s-host-rack-right s-host-rack-dim font-mono",children:u.tailAgents}),s.jsx("span",{className:"s-host-rack-right s-host-rack-dim font-mono",children:u.tailProcesses}),s.jsxs("span",{className:"s-host-rack-right s-host-rack-dim font-mono",children:["each below ",w.topProjects.at(-1)?.percent??0,"%"]})]})]})]})]}),s.jsxs("article",{className:"s-host-reading",children:[s.jsxs("div",{className:"s-host-reading-head",children:[s.jsx("span",{className:"label-xs s-host-reading-num",children:"02 // UNATTENDED"}),s.jsx("span",{className:"s-host-reading-verdict",children:y.verdict}),s.jsx("span",{className:"s-host-reading-figures",children:j.length>0?s.jsxs(s.Fragment,{children:[y.oldestLabel&&s.jsxs(s.Fragment,{children:["oldest ",y.oldestLabel,s.jsx("span",{className:"s-host-sep",children:"·"})]}),Object.entries(y.byKind).map(([e,t])=>`${t} ${X[e]??e}`).join(" · "),s.jsx("span",{className:"s-host-sep",children:"·"}),"of ",x.length," processes"]}):s.jsx(s.Fragment,{children:"no idle relays, diverged branches or stale conversations"})})]}),j.length>0&&s.jsxs("div",{className:"s-host-rack s-host-rack--unattended",children:[s.jsxs("div",{className:"s-host-rack-row s-host-rack-row--head",children:[s.jsx("span",{className:"label-xs"}),s.jsx("span",{className:"label-xs",children:"SIGNAL"}),s.jsx("span",{className:"label-xs",children:"ROOT"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"REF"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"AGE"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"ACTION"})]}),j.map(e=>s.jsxs("div",{className:"s-host-rack-row",children:[s.jsx("span",{className:`dot dot--sm ${e.severity==="warn"?"dot--warning":"dot--neutral"}`,"aria-hidden":"true"}),s.jsx("span",{className:"s-host-rack-name font-mono s-host-rack-truncate",children:e.title}),s.jsx("span",{className:"s-host-rack-dim font-mono s-host-rack-truncate",children:e.projectRoot?I(e.projectRoot):"—"}),s.jsx("span",{className:"s-host-rack-right s-host-rack-dim font-mono",children:e.pid?`pid ${e.pid}`:X[e.kind]??e.kind}),s.jsx("span",{className:`s-host-rack-right font-mono s-host-rack-age ${e.severity==="warn"?"s-host-rack-age--warn":""}`,children:e.ageSeconds?Z(e.ageSeconds):e.ageLabel}),s.jsx("span",{className:"s-host-rack-right s-host-rack-actions",children:e.actionRoute&&s.jsx("button",{type:"button",className:"btn btn--sm",onClick:()=>e.actionRoute&&a(e.actionRoute),children:e.actionLabel})})]},e.id))]})]}),s.jsxs("article",{className:"s-host-reading",children:[s.jsxs("div",{className:"s-host-reading-head",children:[s.jsx("span",{className:"label-xs s-host-reading-num",children:"03 // BUDGETS"}),s.jsx("span",{className:"s-host-reading-verdict",children:U.verdict}),s.jsx("span",{className:"s-host-reading-figures",children:U.figures}),s.jsxs("button",{type:"button",className:"btn btn--sm",onClick:()=>a({view:"harnesses"}),children:[s.jsx("span",{children:"Providers"}),s.jsx(H,{size:10})]})]}),U.showGauges&&m&&s.jsxs("div",{className:"s-host-rack s-host-rack--budgets",children:[s.jsxs("div",{className:"s-host-rack-row s-host-rack-row--head",children:[s.jsx("span",{className:"label-xs",children:"PROVIDER"}),s.jsx("span",{className:"label-xs",children:"GAUGE"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"PCT"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"NOTE"})]}),m.map(e=>s.jsx(Ps,{gauge:e},e.id))]})]}),s.jsxs("article",{className:"s-host-reading",children:[s.jsxs("div",{className:"s-host-reading-head",children:[s.jsx("span",{className:"label-xs s-host-reading-num",children:"04 // SUBSYSTEMS"}),s.jsx("span",{className:"s-host-reading-verdict",children:Q.verdict}),s.jsx("span",{className:"s-host-reading-figures",children:Q.figures})]}),s.jsxs("div",{className:"s-host-rack s-host-rack--subsystems",children:[s.jsxs("div",{className:"s-host-rack-row s-host-rack-row--head",children:[s.jsx("span",{className:"label-xs"}),s.jsx("span",{className:"label-xs",children:"SUBSYSTEM"}),s.jsx("span",{className:"label-xs",children:"DETAIL"}),s.jsx("span",{className:"label-xs s-host-rack-right",children:"STATE"})]}),A.map(e=>s.jsxs("div",{className:"s-host-rack-row",children:[s.jsx("span",{className:`dot dot--sm s-host-dot--${e.tone}`,"aria-hidden":"true"}),s.jsx("span",{className:"s-host-rack-name font-mono",children:e.label}),s.jsx("span",{className:"s-host-rack-dim font-mono s-host-rack-truncate",children:e.detail}),s.jsxs("span",{className:"s-host-rack-right s-host-rack-actions",children:[e.action&&s.jsx("button",{type:"button",className:"btn btn--sm s-host-btn-accent",onClick:()=>e.action&&a(e.action.route),children:e.action.label}),s.jsx("span",{className:`chip chip--sm chip--mono s-host-state s-host-state--${e.tone}`,children:e.state})]})]},e.key))]})]})]}):s.jsxs("div",{className:"s-host-matrix-container",children:[s.jsxs("section",{className:"s-host-telemetry-grid","aria-label":"Host Telemetry Overview",children:[s.jsxs("div",{className:"s-host-stat-box",children:[s.jsxs("div",{className:"s-host-stat-head",children:[s.jsx("span",{className:"label-xs s-host-stat-label",children:"REGISTERED AGENTS"}),s.jsx(Ns,{size:13,className:"s-host-stat-icon"})]}),s.jsxs("div",{className:"s-host-stat-body",children:[s.jsx("span",{className:"s-host-stat-big",children:r.length}),s.jsxs("span",{className:"s-host-stat-kicker",children:[x.length," background processes"]})]})]}),s.jsxs("div",{className:"s-host-stat-box",children:[s.jsxs("div",{className:"s-host-stat-head",children:[s.jsx("span",{className:"label-xs s-host-stat-label",children:"SERVICE QUOTA RADAR"}),s.jsx(fs,{size:13,className:"s-host-stat-icon"})]}),s.jsxs("div",{className:"s-host-stat-body",children:[s.jsx("span",{className:"s-host-stat-big",children:g?`${Math.round((g.fill??0)*100)}%`:"Nominal"}),s.jsx("span",{className:"s-host-stat-kicker",children:"peak token consumption"})]})]}),s.jsxs("div",{className:"s-host-stat-box",children:[s.jsxs("div",{className:"s-host-stat-head",children:[s.jsx("span",{className:"label-xs s-host-stat-label",children:"WORKSPACES & REPOS"}),s.jsx(ks,{size:13,className:"s-host-stat-icon"})]}),s.jsxs("div",{className:"s-host-stat-body",children:[s.jsx("span",{className:"s-host-stat-big",children:$.length}),s.jsx("span",{className:"s-host-stat-kicker",children:"registered project roots"})]})]}),s.jsxs("div",{className:"s-host-stat-box",children:[s.jsxs("div",{className:"s-host-stat-head",children:[s.jsx("span",{className:"label-xs s-host-stat-label",children:"SUBSYSTEM RELAYS"}),s.jsx(js,{size:13,className:"s-host-stat-icon"})]}),s.jsxs("div",{className:"s-host-stat-body",children:[s.jsx("span",{className:"s-host-stat-big",children:O.length}),s.jsx("span",{className:"s-host-stat-kicker",children:"live terminal relays"})]})]})]}),s.jsxs("section",{className:"s-host-block","aria-label":"Active Processes",children:[s.jsx("div",{className:"s-host-block-head",children:s.jsxs("span",{className:"label-xs",children:["ACTIVE HARNESS PROCESSES (",x.length,")"]})}),s.jsx("div",{className:"s-host-table-box",children:s.jsx("div",{className:"s-host-table",children:is.map(e=>s.jsxs("div",{className:"s-host-table-row",children:[s.jsxs("div",{className:"s-host-table-cell-main",children:[s.jsx("span",{className:"dot dot--sm dot--working dot--pulse","aria-hidden":"true"}),s.jsx(ds,{harness:e.harness,size:13}),s.jsx("span",{className:"font-semibold text-xs font-mono",children:Es(e.command,e.harness)}),s.jsxs("span",{className:"chip chip--sm chip--ghost chip--mono",children:["PID ",e.pid]}),e.etime&&s.jsx("span",{className:"chip chip--sm chip--ghost chip--mono",children:e.etime})]}),s.jsx("div",{className:"s-host-table-cell-action",children:s.jsxs("button",{type:"button",className:"btn btn--sm",onClick:()=>a({view:"ops",mode:"mission"}),children:[s.jsx("span",{children:"Tail"}),s.jsx(H,{size:10})]})})]},e.pid))})})]})]})]})}export{Js as HostAdvisorView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as l,j as e}from"./index-NRbRrZw-.js";/* empty css */import{a as F}from"./api-DEHEgJ9m.js";import{d as we}from"./time-Dhsh_2EG.js";import{u as ve}from"./Provider-Cd-QZltN.js";import{o as le,p as Ce,q as Ee,t as Ke,v as oe,K as m,S as qe,x as fe,y as Le,z as Ae,A as Ie,B as ce,C as ue,D as Te,E as He,F as Re,G as $e,H as De,I as Fe}from"./router-Bx1tiwVe.js";import{S as Me}from"./search-HmdKXdtR.js";import{X as We}from"./x-DuzAbpk5.js";import{L as de}from"./loader-circle-Be0T8xv2.js";import{c as Oe}from"./createLucideIcon-Da0lq809.js";import{S as Pe}from"./sparkles-CgTby-ap.js";import{C as Ue}from"./chevron-down-Jh540uf3.js";import{C as ze}from"./clock-DpfYdWcr.js";import"./provider-Bq0ScH3v.js";import"./sse-QSbhyq9A.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-CetjnYut.js";import"./TextDocumentSurface-B29xZNlI.js";import"./file-text-BGVkHS4_.js";import"./chevron-right-CV7sEVBS.js";import"./code-xml-CPzpZkhu.js";import"./arrow-left-B0CdJdAC.js";import"./arrow-right-YRBoTTyf.js";import"./scout-voice-BT3gYDhU.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-feLCB3Zm.js";import"./NewChatComposer-BPsg8shF.js";import"./text-B2UZi3l9.js";import"./voice-levels-Dcr3jglk.js";import"./conversation-model-CIzM7aXT.js";import"./index-CD2foMB8.js";import"./HarnessMark-CEzmPFHC.js";import"./NewChatOrigin-CCiPg_WR.js";import"./chunk-HRAB3GC3-BYQZ1LOn.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";const _e=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Be=Oe("funnel",_e);function y(i){return new Intl.NumberFormat("en-US").format(i||0)}function Ge({text:i,query:a}){return e.jsx(e.Fragment,{children:De(i,a).map((o,c)=>o.match?e.jsx("mark",{children:o.text},c):e.jsx("span",{children:o.text},c))})}function Je(i,a){i.target===i.currentTarget&&(i.key!=="Enter"&&i.key!==" "||(i.preventDefault(),a()))}async function Xe(){return F("/api/knowledge/status")}async function Qe(i){const a=new URLSearchParams;for(const o of i)a.append("key",o);return a.set("limit","200"),F(`/api/knowledge/search-primitives?${a.toString()}`)}async function G(i,a){const o=new URLSearchParams({q:i,limit:String(m.hitLimit)});if(a.sourceKinds.length>0)for(const u of a.sourceKinds)o.append("sourceKind",u);for(const u of a.harness)o.append("harness",u);for(const u of a.project)o.append("project",u);const c=$e(a.timeWindow);return c!=null&&o.set("updatedAfterMs",String(c)),F(`/api/knowledge/search?${o.toString()}`)}async function he(i=!1){return F("/api/knowledge/sessions/index",{method:"POST",body:JSON.stringify({days:m.days,limit:m.sessionLimit,force:i})})}const Ve=Le;function I({active:i,onClick:a,count:o,label:c,ariaLabel:u}){return e.jsxs("button",{type:"button",className:`ks-chip${i?" ks-chip--active":""}`,onClick:a,"aria-pressed":i,"aria-label":u??c,children:[e.jsx("span",{className:"ks-chip-label",children:c}),typeof o=="number"?e.jsx("span",{className:"ks-chip-count","aria-hidden":"true",children:y(o)}):null]})}function xe(i){return i&&i.split(/[\s_-]+/u).filter(a=>a.length>0).map(a=>a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}function me(i,a,o=6){return i?i.filter(c=>c.key===a&&c.value.length>0).sort((c,u)=>u.count-c.count||c.value.localeCompare(u.value)).slice(0,o):[]}function pe(i){return i.sourceKinds.length>0||i.harness.length>0||i.project.length>0||i.timeWindow!=="all"}function Ye(i){const a=[];return i.sourceKinds.length>0&&a.push(i.sourceKinds.map(o=>fe[o]??o).join(" + ")),i.harness.length>0&&a.push(i.harness.map(xe).join(" + ")),i.project.length>0&&a.push(i.project.join(" + ")),i.timeWindow!=="all"&&a.push(Fe(i.timeWindow)),a.length>0?`Filters: ${a.join(" · ")}`:""}function Fs({navigate:i,mode:a,hitId:o,routeFilters:c}){const{selectedKnowledgeHit:u,inspectKnowledgeHit:g,clearKnowledgeHit:S}=ve(),ke=l.useMemo(()=>c||(typeof window>"u"?le():Ce(window.location.search)),[c]),[E,T]=l.useState(null),[J,je]=l.useState(null),[n,M]=l.useState(ke),[w,X]=l.useState([]),[W,Q]=l.useState(!1),[K,H]=l.useState(!1),[O,b]=l.useState(null),[ye,R]=l.useState(!1),[V,Y]=l.useState(!1),q=l.useRef(n);q.current=n;const p=(E?.chunks??0)>0,$=E?.activeJobs[0]??null,v=l.useMemo(()=>Ee(w),[w]),Z=K||!!$,L=n.query.trim(),P=Ke(n);l.useEffect(()=>{c&&M(s=>oe(s,c)?s:c)},[c]);const f=l.useMemo(()=>{const s=[];for(const t of v)s.push(...t.moments);return s},[v]),C=l.useCallback((s,t)=>{X(t.hits),T(t.status);const d=(o?t.hits.find(x=>x.id===o):void 0)??t.hits[0];d?g(d,s.query,s):S()},[o,g,S]),U=l.useCallback(async s=>{const t=s.query.trim();if(!t){X([]),S();return}Q(!0);try{b(null),C(s,await G(t,s))}catch(r){b(r instanceof Error?r.message:String(r))}finally{Q(!1)}},[C,S]),ee=l.useCallback(async(s=!1)=>{H(!0);try{b(null);const t=await he(s);T(t.status),R(!0);const r=q.current;t.status.chunks>0&&r.query.trim()&&C(r,await G(r.query.trim(),r))}catch(t){b(t instanceof Error?t.message:String(t))}finally{H(!1)}},[C]);l.useEffect(()=>{let s=!1;return(async()=>{try{const t=await Xe();if(s)return;T(t),R(!0),b(null)}catch{}if(!s){H(!0);try{b(null);const t=await he(!1);if(s)return;T(t.status),R(!0);const r=q.current;t.status.chunks>0&&r.query.trim()&&C(r,await G(r.query.trim(),r))}catch(t){s||(b(t instanceof Error?t.message:String(t)),R(!0))}finally{s||H(!1)}}})(),()=>{s=!0}},[C]),l.useEffect(()=>{if(!p||V)return;let s=!1;return(async()=>{try{const t=await Qe(["harness","project","sourceKind"]);s||(je(t),Y(!0))}catch{s||Y(!0)}})(),()=>{s=!0}},[p,V]),l.useEffect(()=>{if(!p)return;const s=window.setTimeout(()=>{U(n)},m.debounceMs);return()=>window.clearTimeout(s)},[n,p,U]);const ge=s=>{if(s.preventDefault(),!p&&!K){ee(!1);return}U(n)},j=l.useCallback(s=>{M(t=>{const r={...t,...s};return oe(t,r)?t:(i({view:"search",...a?{mode:a}:{},filters:r},{replace:!0}),r)})},[a,i]),A=l.useCallback(()=>{const s=le();M(s),i({view:"search",...a?{mode:a}:{},filters:s},{replace:!0})},[a,i]),be=l.useCallback(()=>{f[0]&&g(f[0],q.current.query)},[f,g]);l.useEffect(()=>{function s(t){const r=t.target,d=r&&(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable);if(t.key==="/"&&!d){t.preventDefault();const x=document.querySelector(".ks-search-input");x?.focus(),x?.select()}else if(t.key==="Escape"&&!d)f.length>0?S():A();else if(!d&&(t.key==="j"||t.key==="k")){if(f.length===0)return;t.preventDefault();const x=u?f.findIndex(z=>z.id===u.id):-1,N=t.key==="j"?Math.min(f.length-1,x+1):Math.max(0,x-1),D=f[N];D&&g(D,q.current.query)}}return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[f,g,S,u,A]);const Ne=E?we(E.generatedAt)||"just now":"—",Se=Z?$?`Indexing ${y($.progress.indexed??0)} of ${y($.progress.discovered??0)}`:p?`Refreshing last ${m.days} days in the background`:`Building last ${m.days} days of sessions`:p?`${y(E?.chunks??0)} moments · last ${m.days} days · updated ${Ne}`:ye?"No index yet":"Loading index",se=me(J?.facets,"harness"),te=me(J?.facets,"project");return e.jsxs("main",{className:"ks-page",children:[e.jsxs("div",{className:"ks-shell",children:[e.jsx("header",{className:"ks-header",children:e.jsxs("div",{className:"ks-header-titles",children:[e.jsx("span",{className:"ks-eyebrow",children:"Search"}),e.jsx("h1",{children:"Find anything you ran, opened, or decided"}),e.jsxs("p",{children:["Search across sessions, skills, MCP tools, codebase, and context packs from the last ",m.days," days."]})]})}),e.jsxs("form",{className:"ks-search-form",onSubmit:ge,role:"search",children:[e.jsx(Me,{size:17,strokeWidth:1.75,"aria-hidden":"true"}),e.jsx("input",{value:n.query,onChange:s=>j({query:s.target.value}),placeholder:"Search topics, files, decisions, agents…",className:"ks-search-input",spellCheck:!1,autoFocus:!0,"aria-label":"Search OpenScout knowledge"}),n.query?e.jsx("button",{type:"button",className:"ks-search-clear",onClick:()=>j({query:""}),"aria-label":"Clear search",children:e.jsx(We,{size:14,"aria-hidden":"true"})}):e.jsx("span",{className:"ks-search-hint","aria-hidden":"true",children:"/"}),W?e.jsx(de,{size:15,className:"ks-spin","aria-hidden":"true"}):null]}),e.jsxs("section",{className:"ks-filterbar","aria-label":"Search filters",children:[e.jsxs("div",{className:"ks-filterbar-row",children:[e.jsxs("span",{className:"ks-filterbar-label",children:[e.jsx(Be,{size:12,"aria-hidden":"true"}),"Source"]}),e.jsx("div",{className:"ks-chip-row",role:"group","aria-label":"Source kind filters",children:qe.map(s=>e.jsx(I,{active:n.sourceKinds.includes(s),onClick:()=>j({sourceKinds:n.sourceKinds.includes(s)?n.sourceKinds.filter(t=>t!==s):[...n.sourceKinds,s]}),label:fe[s]??s},s))})]}),se.length>0?e.jsxs("div",{className:"ks-filterbar-row",children:[e.jsxs("span",{className:"ks-filterbar-label",children:[e.jsx(Pe,{size:12,"aria-hidden":"true"}),"Agent"]}),e.jsx("div",{className:"ks-chip-row",role:"group","aria-label":"Harness filters",children:se.map(s=>e.jsx(I,{active:n.harness.includes(s.value),onClick:()=>j({harness:n.harness.includes(s.value)?n.harness.filter(t=>t!==s.value):[...n.harness,s.value]}),label:xe(s.value),count:s.count},`harness:${s.value}`))})]}):null,te.length>0?e.jsxs("div",{className:"ks-filterbar-row",children:[e.jsxs("span",{className:"ks-filterbar-label",children:[e.jsx(Ue,{size:12,"aria-hidden":"true"}),"Project"]}),e.jsx("div",{className:"ks-chip-row",role:"group","aria-label":"Project filters",children:te.map(s=>e.jsx(I,{active:n.project.includes(s.value),onClick:()=>j({project:n.project.includes(s.value)?n.project.filter(t=>t!==s.value):[...n.project,s.value]}),label:s.value,count:s.count},`project:${s.value}`))})]}):null,e.jsxs("div",{className:"ks-filterbar-row ks-filterbar-row--inline",children:[e.jsxs("span",{className:"ks-filterbar-label",children:[e.jsx(ze,{size:12,"aria-hidden":"true"}),"Time"]}),e.jsxs("div",{className:"ks-chip-row",role:"group","aria-label":"Time window filter",children:[e.jsx(I,{active:n.timeWindow==="all",onClick:()=>j({timeWindow:"all"}),label:"Any time"}),Ve.map(s=>e.jsx(I,{active:n.timeWindow===s.value,onClick:()=>j({timeWindow:s.value}),label:s.label},s.value))]}),pe(n)?e.jsx("button",{type:"button",className:"ks-clear-all",onClick:A,children:"Clear filters"}):null]})]}),O?e.jsx("section",{className:"ks-error",role:"alert",children:O}):null,!p&&!O?e.jsxs("div",{className:"ks-empty-state",children:[e.jsx("strong",{children:K?"Preparing your session index":"Preparing search"}),e.jsxs("span",{children:["First load builds the last ",m.days," days"," ","(up to ",y(m.sessionLimit)," sessions). You can keep this page open — results appear as soon as the index is ready."]})]}):null,p?e.jsxs("div",{className:"ks-hit-list",role:"listbox","aria-label":"Search results",children:[e.jsxs("div",{className:"ks-hit-list-head","aria-live":"polite",children:[e.jsx("span",{children:W?"Searching…":L?`${y(v.length)} session${v.length===1?"":"s"}`:"Ready"}),L&&w.length>0?e.jsxs("span",{className:"ks-hit-list-meta",children:[y(w.length)," moment",w.length===1?"":"s",P?e.jsxs(e.Fragment,{children:[" · ",e.jsx("button",{type:"button",className:"ks-text-action",onClick:A,children:"Clear filters"})]}):null]}):null]}),L&&v.length===0&&!W?e.jsxs("div",{className:"ks-empty-hit",children:[e.jsxs("strong",{children:["No matches for “",L,"”"]}),e.jsxs("span",{children:["Try a project name, file path, or topic from recent work",P?", or clear one of the filters above.":"."]}),e.jsxs("div",{className:"ks-empty-hit-actions",children:[e.jsx("button",{type:"button",className:"ks-text-action",onClick:()=>j({query:""}),children:"Clear query"}),P?e.jsx("button",{type:"button",className:"ks-text-action",onClick:A,children:"Clear all filters"}):null]})]}):null,L?null:e.jsxs("div",{className:"ks-empty-hit ks-empty-hit--quiet",children:[e.jsx("strong",{children:"Start with a query"}),e.jsxs("span",{children:["Type a topic, file path, agent, or session hint. Use"," ",e.jsx("kbd",{children:"/"})," to focus this field, ",e.jsx("kbd",{children:"j"}),"/",e.jsx("kbd",{children:"k"})," to walk results, ",e.jsx("kbd",{children:"↵"})," to select, ",e.jsx("kbd",{children:"⌘↵"})," to open the session."]}),e.jsx("button",{type:"button",className:"ks-text-action",onClick:be,disabled:w.length===0,children:"Pick the first result automatically"})]}),e.jsx("div",{className:"ks-hit-list-body",children:v.map((s,t)=>{const r=s.best,d=Ae(r),x=Ie(r),N=ce(ue(r)),D=()=>{N&&i({view:"sessions",sessionId:N})},z=s.moments.some(k=>u?.id===k.id);return e.jsxs("section",{className:`ks-session${z?" ks-session--selected":""}`,"aria-label":`Session ${t+1}`,children:[e.jsxs("header",{className:"ks-session-head",children:[e.jsxs("div",{className:"ks-session-topline",children:[e.jsxs("div",{className:"ks-session-meta",children:[d.agent?e.jsx("span",{className:"ks-hit-chip",children:d.agent}):null,d.project?e.jsx("span",{children:d.project}):null,d.session?e.jsxs("span",{className:"ks-hit-session",title:N??d.session,children:["session ",d.session]}):null,e.jsxs("span",{className:"ks-session-count",children:[y(s.moments.length)," match",s.moments.length===1?"":"es"]})]}),d.when?e.jsx("time",{className:"ks-hit-when",children:d.when}):null]}),e.jsx("button",{type:"button",className:"ks-session-goal",onClick:D,title:N?"Open session":void 0,children:x})]}),e.jsx("div",{className:"ks-session-moments",children:s.moments.map(k=>{const ie=Te(k,n.query),ae=u?.id===k.id,_=He(k,n.query,200),ne=Re(k),B=()=>g(k,n.query),re=()=>{const h=ce(ue(k))??N;if(!h){B();return}i({view:"sessions",sessionId:h})};return e.jsx("article",{className:`ks-hit${ae?" ks-hit--selected":""}`,role:"option","aria-selected":ae,tabIndex:0,onClick:B,onDoubleClick:re,onKeyDown:h=>{if(h.key==="Enter"&&(h.metaKey||h.ctrlKey)){h.preventDefault(),re();return}Je(h,B)},children:e.jsxs("div",{className:"ks-hit-body",children:[ne.length>0?e.jsx("div",{className:"ks-hit-details ks-hit-details--moment","aria-label":"Turn",children:ne.map(h=>e.jsx("span",{className:"ks-hit-details-strong",children:h},h))}):null,e.jsx("h3",{className:"ks-hit-title",children:ie}),_&&_!==ie?e.jsx("p",{className:"ks-hit-snippet",children:e.jsx(Ge,{text:_,query:n.query})}):null]})},k.id)})})]},s.collectionId)})})]}):null]}),e.jsxs("footer",{className:"ks-foot-status","aria-live":"polite",children:[e.jsxs("span",{className:"ks-foot-status-facts",children:[Z?e.jsx(de,{size:12,className:"ks-spin","aria-hidden":"true"}):null,Se,pe(n)?e.jsxs(e.Fragment,{children:[" · ",Ye(n)]}):null]}),e.jsx("button",{type:"button",className:"ks-text-action",onClick:()=>{ee(!0)},disabled:K,children:K?"Updating…":"Update index"})]})]})}export{Fs as KnowledgeSearchScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as f,j as e}from"./index-NRbRrZw-.js";import{S as L}from"./SlidePanel-BLrLF9dt.js";import{A as j}from"./AgentAvatar-CQqJcwOQ.js";import{H as S}from"./HarnessMark-CEzmPFHC.js";import{t as N}from"./time-Dhsh_2EG.js";import{o as g,f as k,b as y}from"./lane-observe-vfyACHi0.js";import{S as A}from"./SessionObserve-pbozyqVv.js";import{LaneTraceEventFocus as E}from"./LaneTraceEventFocus-BfKZ7G5c.js";import{b as T}from"./agent-lane-detail-D5EIlX7_.js";import{l as I,a as z}from"./agent-lanes-model-BKOs_32K.js";import"./Provider-Cd-QZltN.js";import"./provider-Bq0ScH3v.js";import"./router-Bx1tiwVe.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./api-DEHEgJ9m.js";import"./sse-QSbhyq9A.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-CetjnYut.js";import"./createLucideIcon-Da0lq809.js";import"./TextDocumentSurface-B29xZNlI.js";import"./file-text-BGVkHS4_.js";import"./x-DuzAbpk5.js";import"./chevron-right-CV7sEVBS.js";import"./code-xml-CPzpZkhu.js";import"./arrow-left-B0CdJdAC.js";import"./arrow-right-YRBoTTyf.js";import"./scout-voice-BT3gYDhU.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-feLCB3Zm.js";import"./NewChatComposer-BPsg8shF.js";import"./text-B2UZi3l9.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Be0T8xv2.js";import"./conversation-model-CIzM7aXT.js";import"./index-CD2foMB8.js";import"./NewChatOrigin-CCiPg_WR.js";import"./chevron-down-Jh540uf3.js";import"./search-HmdKXdtR.js";import"./chunk-HRAB3GC3-BYQZ1LOn.js";import"./SpriteAvatar-vpHO-rXs.js";import"./agent-identity-CIMT7oV6.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-DCY-m0JK.js";import"./lane-ask-display-B6iCAVcd.js";import"./mentions-KNASbAjG.js";import"./AgentDetailCard-2DZQahiN.js";import"./AgentLiveActions-BmXDRxER.js";import"./terminal-takeover-BArLfNtd.js";import"./openContent-C6XO6kr5.js";import"./eye-B908WSFH.js";import"./terminal-DNZTCr6a.js";import"./message-markup-BP2nH9kQ.js";import"./ObservedTopologyPanel-CfHYu-4Z.js";import"./ObserveTextFlow-CKYltTPJ.js";import"./use-reduced-motion-0fAsybdo.js";import"./proxy-DtC2iXnT.js";import"./SessionObserveEvidence-C54Xvbps.js";import"./message-circle-2v9Udia0.js";import"./wrench-DwFKomxg.js";import"./external-link-BheHazeW.js";import"./context-budget-DX_fwUs3.js";const M={think:"Thought",tool:"Tool",ask:"Request",message:"Message",note:"Note",system:"System",boot:"Boot"};function Ve({target:d,onClose:n}){const{lane:i,event:t}=d,{agent:s,observe:l,source:r,lastActiveAt:a}=i,p=f.useMemo(()=>T(i),[i]),c=I(s,r),v=z(s,r),h=M[t.kind]??t.kind,u=l?.metadata?.session?.sessionStart,o=g(t,u),b=o!=null?k(o,a):void 0,x=o!=null?y(o):void 0,m=t.kind==="tool"||t.kind==="ask"?t:void 0;return e.jsxs(L,{open:!0,onClose:n,side:"right",owner:"openscout.lane-trace",layer:"elevated",resizable:!0,defaultSize:980,minSize:560,maxSize:1280,scrollLock:!0,ariaLabel:`${c} session trace`,className:"s-lane-trace-sheet",children:[e.jsxs("div",{className:"s-slide-header s-lane-trace-sheet-header",children:[e.jsx(j,{agent:s,placement:"row",size:28,presence:!1,className:"s-agent-lane-avatar"}),e.jsxs("div",{className:"s-lane-trace-sheet-header-copy",children:[e.jsx("div",{className:"s-lane-trace-sheet-title",children:c}),e.jsxs("div",{className:"s-lane-trace-sheet-sub",children:[v," · ",h,a?` · ${N(a)}`:""]})]}),e.jsx("span",{className:"s-slide-spacer"}),e.jsx(S,{harness:s.harness??p.harness,size:18,className:"s-lane-trace-sheet-hmark"}),e.jsx("button",{type:"button",className:"s-slide-close",onClick:n,"aria-label":"Close",children:"×"})]}),e.jsx("div",{className:"s-slide-body s-lane-trace-sheet-body",children:e.jsx(A,{data:l??void 0,agentId:r==="scout"?s.id:void 0,sessionId:s.harnessSessionId??p.sessionId,showRail:!0,variant:"default",initialCursorT:t.t,focusEventId:t.id,inlineFocusEventId:m?.id,inlineFocusContent:m?e.jsx(E,{event:m,wallLabel:b,wallTitle:x,variant:"inline"}):void 0})})]})}export{Ve as LaneTraceDetailSheet};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as d,j as e}from"./index-NRbRrZw-.js";import{a as B}from"./api-DEHEgJ9m.js";import{t as A}from"./time-Dhsh_2EG.js";import{n as _,b as D,s as z,c as F}from"./colors-BtO5_zlx.js";import{u as O,c as H}from"./Provider-Cd-QZltN.js";import{d as K}from"./router-Bx1tiwVe.js";import{MeshCanvas as U}from"./MeshCanvas-CZYHLTvw.js";import{u as V}from"./useAgentHoverCard-BIrm8esH.js";import{u as Q}from"./local-agents-Q6KQ12B9.js";import{u as J,a as W,s as X,e as E,f as I,g as Y,h as L}from"./mesh-view-store-B0lqpw8M.js";import{u as Z}from"./useContentSecondaryNav-4atpGgFw.js";import{OpsSubnav as G}from"./OpsSubnav-BK9Fj3gU.js";/* empty css *//* empty css */import"./provider-Bq0ScH3v.js";import"./sse-QSbhyq9A.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-CetjnYut.js";import"./createLucideIcon-Da0lq809.js";import"./TextDocumentSurface-B29xZNlI.js";import"./file-text-BGVkHS4_.js";import"./x-DuzAbpk5.js";import"./chevron-right-CV7sEVBS.js";import"./code-xml-CPzpZkhu.js";import"./arrow-left-B0CdJdAC.js";import"./arrow-right-YRBoTTyf.js";import"./scout-voice-BT3gYDhU.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-feLCB3Zm.js";import"./NewChatComposer-BPsg8shF.js";import"./text-B2UZi3l9.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Be0T8xv2.js";import"./conversation-model-CIzM7aXT.js";import"./index-CD2foMB8.js";import"./HarnessMark-CEzmPFHC.js";import"./NewChatOrigin-CCiPg_WR.js";import"./chevron-down-Jh540uf3.js";import"./search-HmdKXdtR.js";import"./chunk-HRAB3GC3-BYQZ1LOn.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./Canvas-BO9mx5_P.js";import"./mesh-buckets-CfAukILK.js";import"./AgentDetailCard-2DZQahiN.js";import"./AgentLiveActions-BmXDRxER.js";import"./terminal-takeover-BArLfNtd.js";import"./openContent-C6XO6kr5.js";import"./eye-B908WSFH.js";import"./terminal-DNZTCr6a.js";import"./SecondaryNav-CCQqTT3e.js";import"./secondaryNavConfig-BVQiyAXu.js";import"./message-square-DURSOrUr.js";import"./compass-D5Io6BIV.js";import"./settings-BpKRzxOD.js";import"./git-branch-CdJU49Af.js";import"./scroll-text-uulNqrf7.js";/* empty css */function ee(c){const p=new Map,x=new Map;for(const a of c){const o=a.project??"Unassigned",i=o.toLowerCase(),m=a.branch??"—";let r=p.get(i);r||(r=new Map,p.set(i,r));const u=r.get(m)??[];u.push(a),r.set(m,u);let s=x.get(i);s||(s=new Map,x.set(i,s)),s.set(o,(s.get(o)??0)+1)}const g=a=>{const o=x.get(a);if(!o)return a;let i=null,m=-1;for(const[r,u]of o)u>m&&(i=r,m=u);return i??a},j=[];for(const[a,o]of p){const i=g(a),m=[];let r=0;const u={in_turn:0,in_flight:0,needs_attention:0,callable:0,blocked:0},s=[];for(const[l,n]of o){const t=[...n].sort((h,b)=>(b.updatedAt??0)-(h.updatedAt??0)),y=t.reduce((h,b)=>Math.max(h,b.updatedAt??0),0);r=Math.max(r,y);for(const h of t)u[_(h.state)]+=1,s.push(h);m.push({branch:l,agents:t,latest:y})}m.sort((l,n)=>n.latest-l.latest),j.push({project:i,branches:m,agents:s,latest:r,counts:u})}return j.sort((a,o)=>o.latest-a.latest),j}function T(c){return c?c.replace(/^\/Users\/[^/]+/,"~"):null}function se({agents:c,emptyTitle:p="No agents registered",emptyBody:x="Agents connected to this broker will appear here.",selectMode:g="preview"}){const{navigate:j}=O(),a=d.useMemo(()=>ee(c),[c]),[o,i]=d.useState(()=>new Set),m=d.useMemo(()=>{const s=[];for(const l of a)if(!o.has(l.project))for(const n of l.branches)for(const t of n.agents)s.push(t.id);return s},[a,o]),r=V({agents:c,orderedIds:m,navigate:j,selectMode:g});if(c.length===0)return e.jsxs("div",{className:"sys-list-empty",children:[e.jsx("h3",{children:p}),e.jsx("p",{children:x})]});const u=s=>{i(l=>{const n=new Set(l);return n.has(s)?n.delete(s):n.add(s),n})};return e.jsxs("div",{className:"mesh-tree",ref:r.containerRef,children:[a.map(s=>{const l=o.has(s.project);return e.jsxs("div",{className:`mesh-tree-group${l?" mesh-tree-group--collapsed":""}`,children:[e.jsxs("button",{type:"button",className:"mesh-tree-project",onClick:()=>u(s.project),"aria-expanded":!l,children:[e.jsx("span",{className:`mesh-tree-caret${l?"":" mesh-tree-caret--open"}`,"aria-hidden":!0,children:"›"}),e.jsx("span",{className:"mesh-tree-project-name",children:s.project}),e.jsx("span",{className:"mesh-tree-project-count",children:s.agents.length}),e.jsxs("span",{className:"mesh-tree-counts",children:[s.counts.in_turn+s.counts.in_flight+s.counts.needs_attention>0&&e.jsxs("span",{className:"mesh-tree-count mesh-tree-count--working",children:[e.jsx("span",{className:"mesh-tree-count-dot"}),s.counts.in_turn+s.counts.in_flight+s.counts.needs_attention]}),s.counts.callable>0&&e.jsxs("span",{className:"mesh-tree-count mesh-tree-count--available",children:[e.jsx("span",{className:"mesh-tree-count-dot"}),s.counts.callable]}),s.counts.blocked>0&&e.jsxs("span",{className:"mesh-tree-count mesh-tree-count--offline",children:[e.jsx("span",{className:"mesh-tree-count-dot"}),s.counts.blocked]})]}),e.jsx("span",{className:"mesh-tree-project-time",children:s.latest?A(s.latest):""})]}),!l&&e.jsx("div",{className:"mesh-tree-branches",children:s.branches.map(n=>e.jsxs("div",{className:"mesh-tree-branch",children:[e.jsxs("div",{className:"mesh-tree-branch-head",children:[e.jsx("span",{className:"mesh-tree-branch-elbow","aria-hidden":!0,children:"└"}),e.jsx("span",{className:"mesh-tree-branch-name",children:n.branch})]}),e.jsx("div",{className:"mesh-tree-agents",children:n.agents.map(t=>{const y=_(t.state),h=D(t.state),b=t.agentClass==="organic",S=r.getState(t.id),k=T(t.cwd)??T(t.projectRoot),f=t.harnessSessionId?t.harnessSessionId.slice(0,8):null,v=[];k&&v.push({kind:"cwd",text:k}),t.harness&&v.push({kind:"harness",text:t.harness}),t.model&&v.push({kind:"model",text:t.model}),f&&v.push({kind:"sess",text:`sess:${f}`});const $=r.bind(t.id);return e.jsxs("button",{type:"button",className:`mesh-tree-agent${b?" mesh-tree-agent--organic":""}${S.isActive?" mesh-tree-agent--active":""}${S.isPinned?" mesh-tree-agent--pinned":""}`,title:b?`${t.harness??t.name} · organic session`:void 0,...$,children:[e.jsx("span",{className:`mesh-tree-agent-dot mesh-tree-agent-dot--${h}`,style:{background:z(t.state)}}),e.jsx("span",{className:"mesh-tree-agent-name",children:t.handle??t.name}),b&&e.jsx("span",{className:"mesh-tree-agent-organic","aria-label":"organic session",children:"○"}),e.jsx("span",{className:"mesh-tree-agent-inline",children:v.map((w,R)=>e.jsxs("span",{className:`mesh-tree-agent-inline-part mesh-tree-agent-inline-part--${w.kind}`,children:[R>0&&e.jsx("span",{className:"mesh-tree-agent-inline-sep",children:"·"}),w.text]},w.kind))}),e.jsx("span",{className:`mesh-tree-agent-state mesh-tree-agent-state--${h}`,children:F(y)}),e.jsx("span",{className:"mesh-tree-agent-time",children:t.updatedAt?A(t.updatedAt):""})]},t.id)})})]},n.branch))})]},s.project)}),r.card]})}function P({mode:c,density:p,query:x,stateFilter:g,loading:j,refreshing:a,error:o,lastLoadedAt:i,hasMesh:m,onRefresh:r}){return e.jsxs("div",{className:`mesh-hud mesh-hud--${c}`,children:[e.jsxs("div",{className:"mesh-hud-left",children:[e.jsxs("div",{className:"mesh-mode-toggle",children:[e.jsx("button",{type:"button",className:`mesh-mode-btn${c==="map"?" mesh-mode-btn--active":""}`,onClick:()=>E("map"),children:"Map"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${c==="tree"?" mesh-mode-btn--active":""}`,onClick:()=>E("tree"),children:"Tree"})]}),e.jsxs("div",{className:"mesh-mode-toggle mesh-density-toggle",role:"group","aria-label":"Density","aria-hidden":c!=="map","data-mode-only":"map",children:[e.jsx("button",{type:"button",className:`mesh-mode-btn${p==="compact"?" mesh-mode-btn--active":""}`,onClick:()=>I("compact"),disabled:c!=="map",title:"Compact — dots",children:"Compact"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${p==="comfortable"?" mesh-mode-btn--active":""}`,onClick:()=>I("comfortable"),disabled:c!=="map",title:"Comfortable — chips",children:"Comfortable"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${p==="spacious"?" mesh-mode-btn--active":""}`,onClick:()=>I("spacious"),disabled:c!=="map",title:"Spacious — cards",children:"Spacious"})]})]}),m&&e.jsxs("div",{className:"mesh-hud-filters",children:[e.jsx("input",{type:"search",className:"mesh-hud-search",placeholder:"Filter agents…",value:x,onChange:u=>Y(u.target.value),spellCheck:!1,autoCorrect:"off",autoCapitalize:"off"}),e.jsxs("div",{className:"mesh-mode-toggle",role:"group","aria-label":"State",children:[e.jsx("button",{type:"button",className:`mesh-mode-btn${g==="all"?" mesh-mode-btn--active":""}`,onClick:()=>L("all"),children:"All"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${g==="in_turn"?" mesh-mode-btn--active":""}`,onClick:()=>L("in_turn"),children:"In turn"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${g==="callable"?" mesh-mode-btn--active":""}`,onClick:()=>L("callable"),children:"Callable"})]})]}),e.jsxs("div",{className:"mesh-hud-right",children:[e.jsx("span",{className:"mesh-hud-sync",children:j?"Loading…":o&&m?`Last sync old — ${i?A(i):"unknown"}`:i?A(i):"—"}),e.jsx("button",{type:"button",className:"s-btn",disabled:j||a,onClick:r,children:a?"Refreshing…":"Refresh"})]})]})}function is({navigate:c}){const[p,x]=d.useState(!0),[g,j]=d.useState(!1),[a,o]=d.useState(null),[i,m]=d.useState(null),{mode:r,density:u,query:s,stateFilter:l,meshSnapshot:n}=J(),{agents:t}=Q(),{route:y}=O(),h=K(y),b=d.useMemo(()=>H(t,h,n?.localNode?.id),[t,h,n?.localNode?.id]),S=d.useRef(null),k=d.useRef(0);d.useEffect(()=>{S.current=n},[n]),d.useEffect(()=>{h&&W(h,"node")},[h]);const f=d.useCallback(async(C="initial")=>{const N=++k.current;!(S.current!==null)&&C!=="background"?(x(!0),o(null)):j(!0);try{const M=await B("/api/mesh");if(N!==k.current)return;X(M),o(null),m(Date.now())}catch(M){if(N!==k.current)return;o(M instanceof Error?M.message:String(M))}finally{N===k.current&&(x(!1),j(!1))}},[]);d.useEffect(()=>{f("initial")},[f]),d.useEffect(()=>{const C=setInterval(()=>{f("background")},1e4);return()=>clearInterval(C)},[f]);const v=d.useMemo(()=>{const C=s.trim().toLowerCase();return b.filter(N=>l!=="all"&&_(N.state)!==l?!1:C?`${N.name??""} ${N.handle??""} ${N.harness??""} ${N.project??""} ${N.branch??""}`.toLowerCase().includes(C):!0)},[s,b,l]),$={mode:r,density:u,query:s,stateFilter:l,loading:p,refreshing:g,error:a,lastLoadedAt:i,hasMesh:!!n,onRefresh:()=>{f("manual")}},w=r==="map"?e.jsxs("div",{className:"mesh-map-canvas",children:[n&&e.jsx(U,{mesh:n,agents:v}),p&&!n&&e.jsx("div",{className:"mesh-canvas-center",children:e.jsx("p",{className:"mesh-canvas-center-label",children:"Loading mesh…"})}),!p&&!n&&a&&e.jsxs("div",{className:"mesh-canvas-center",children:[e.jsx("p",{className:"mesh-canvas-center-label",children:a}),e.jsx("button",{type:"button",className:"s-btn",onClick:()=>{f("manual")},children:"Try again"})]}),e.jsx(P,{...$})]}):e.jsxs("div",{className:"mesh-tree-page",children:[e.jsx(P,{...$}),p&&!n&&e.jsxs("div",{className:"sys-panel sys-state-card mesh-tree-state",children:[e.jsx("h3",{className:"sys-state-title",children:"Loading mesh status"}),e.jsx("p",{className:"sys-state-body",children:"Inspecting broker reachability and peer discovery inputs."})]}),!p&&!n&&a&&e.jsxs("div",{className:"sys-panel sys-state-card sys-state-card-error mesh-tree-state",children:[e.jsx("h3",{className:"sys-state-title",children:"Mesh status is unavailable"}),e.jsx("p",{className:"sys-state-body",children:a}),e.jsx("div",{className:"sys-inline-actions",children:e.jsx("button",{type:"button",className:"s-btn",onClick:()=>{f("manual")},children:"Try again"})})]}),n&&e.jsxs("section",{className:"mesh-tree-panel",children:[e.jsxs("div",{className:"mesh-tree-hint","aria-hidden":!0,children:[e.jsx("kbd",{children:"↑"}),e.jsx("kbd",{children:"↓"}),e.jsx("span",{children:"navigate"}),e.jsx("span",{className:"mesh-tree-hint-sep",children:"·"}),e.jsx("kbd",{children:"enter"}),e.jsx("span",{children:"pin"}),e.jsx("span",{className:"mesh-tree-hint-sep",children:"·"}),e.jsx("kbd",{children:"o"}),e.jsx("span",{children:"open"}),e.jsx("span",{className:"mesh-tree-hint-sep",children:"·"}),e.jsx("kbd",{children:"esc"}),e.jsx("span",{children:"clear"})]}),e.jsx(se,{agents:v,emptyTitle:b.length===0?h?"No agents on this machine":"No agents registered":"No agents match your filter",emptyBody:b.length===0?"Agents connected to this broker will appear here.":"Try clearing the search or switching the state pill back to All."})]})]}),R=Z();return e.jsxs("div",{className:"s-ops",children:[R?e.jsx("div",{className:"s-ops-header",children:e.jsx(G,{activeRoute:y,navigate:c})}):null,e.jsx("div",{className:"s-ops-body",children:w})]})}export{is as MeshScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,r as a}from"./index-NRbRrZw-.js";import{i as w,a as C}from"./conversation-model-CIzM7aXT.js";import{u as M,m as S,d as b}from"./Provider-Cd-QZltN.js";import{d as A}from"./router-Bx1tiwVe.js";import{l as I,i as B,s as E}from"./sessionRead-CvFz2RHv.js";import{u as L}from"./use-conversation-list-htp0Ui63.js";import{u as R}from"./use-fleet-active-asks-BhuTn5mV.js";import{ConversationScreen as D}from"./ConversationScreen-D77SoLos.js";import{P as O}from"./plus-ZReaTFF-.js";import"./createLucideIcon-Da0lq809.js";import"./colors-BtO5_zlx.js";import"./time-Dhsh_2EG.js";import"./provider-Bq0ScH3v.js";import"./api-DEHEgJ9m.js";import"./sse-QSbhyq9A.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-CetjnYut.js";import"./TextDocumentSurface-B29xZNlI.js";import"./file-text-BGVkHS4_.js";import"./x-DuzAbpk5.js";import"./chevron-right-CV7sEVBS.js";import"./code-xml-CPzpZkhu.js";import"./arrow-left-B0CdJdAC.js";import"./arrow-right-YRBoTTyf.js";import"./scout-voice-BT3gYDhU.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-feLCB3Zm.js";import"./NewChatComposer-BPsg8shF.js";import"./text-B2UZi3l9.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Be0T8xv2.js";import"./index-CD2foMB8.js";import"./HarnessMark-CEzmPFHC.js";import"./NewChatOrigin-CCiPg_WR.js";import"./chevron-down-Jh540uf3.js";import"./search-HmdKXdtR.js";import"./chunk-HRAB3GC3-BYQZ1LOn.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./ConversationComposer-DPWu3HvK.js";import"./AgentAvatar-CQqJcwOQ.js";import"./SpriteAvatar-vpHO-rXs.js";import"./agent-identity-CIMT7oV6.js";import"./zap-CocRNtyr.js";import"./message-markup-BP2nH9kQ.js";import"./mentions-KNASbAjG.js";import"./AgentDetailCard-2DZQahiN.js";import"./AgentLiveActions-BmXDRxER.js";import"./terminal-takeover-BArLfNtd.js";import"./openContent-C6XO6kr5.js";import"./eye-B908WSFH.js";import"./terminal-DNZTCr6a.js";import"./message-visibility-kJM8XcSG.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-Ce7TENb9.js";import"./BackToPicker-CXsbxbHM.js";import"./AstronautSuit-C05Ezxl9.js";import"./ConversationFeedRows-MhcPfxUr.js";import"./ConversationPanels-D-b5SLO-.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-0fAsybdo.js";import"./proxy-DtC2iXnT.js";import"./activity-DTqqWiyV.js";import"./message-circle-2v9Udia0.js";import"./tail-events-B7BrDaFi.js";import"./ConversationStatus-lIvSKRic.js";import"./check-BdovFDz8.js";import"./sparkles-CgTby-ap.js";function it({conversationId:s,navigate:c}){return s?e.jsx(D,{conversationId:s,navigate:c,showBackNav:!1}):e.jsx(P,{})}function P(){const{onlineCount:s,apiConnection:c,reload:j,route:N,agents:d,openContextCapture:k,navigate:u}=M(),{sessions:y,loading:p,loadError:n}=L(),[x]=a.useState(()=>I()),v=R(),t=c.status==="offline",i=A(N),f=a.useRef(!1),h=a.useMemo(()=>{const m=S(d,i);return[...b(y,m,i)].sort((g,o)=>(o.lastMessageAt??0)-(g.lastMessageAt??0))},[y,d,i]),r=a.useMemo(()=>{const m=h.filter(o=>!w(o));return m.find(o=>o.agentId?v.get(o.agentId)?.status==="needs_attention"&&B(o.lastMessageAt,o.id,x):!1)??m[0]},[h,v,x]);a.useEffect(()=>{f.current||p||n||t||r&&(f.current=!0,E(r.id),u({view:"messages",conversationId:r.id,...i?{machineId:i}:{}},{replace:!0}))},[r,p,n,t,i,u]);const l=!t&&!n&&(p||!!r);return e.jsx("div",{className:`s-conv-empty${t?" s-conv-empty--offline":""}`,children:e.jsxs("div",{className:"s-conv-empty-inner",children:[e.jsx($,{}),e.jsx("div",{className:"s-conv-empty-eyebrow",children:t?"Connection":"Conversations"}),e.jsx("p",{className:"s-conv-empty-title",children:t?"Scout server offline":l?"Opening your latest conversation":n?"Chats unavailable":"Nothing open yet"}),e.jsx("p",{className:"s-conv-empty-detail",children:t?"Start or restart Scout services. Chats and context will appear when the server responds.":l?V(r):n||"Start a chat by choosing an agent and sending the first message."}),t||n?e.jsx("button",{type:"button",className:"s-conv-empty-action",onClick:()=>{j()},children:"Retry connection"}):l?null:e.jsxs("button",{type:"button",className:"s-conv-empty-new",onClick:()=>k(),children:[e.jsx(O,{size:16,"aria-hidden":"true"}),"New chat"]}),e.jsxs("div",{className:"s-conv-empty-ambient",children:[e.jsx("span",{className:"s-conv-empty-ambient-dot","aria-hidden":"true"}),t?"waiting for server":`${s} ${s===1?"agent":"agents"} active`]})]})})}function V(s){return s?C(s):"Finding where you left off."}function $(){return e.jsxs("svg",{className:"s-conv-empty-mesh",viewBox:"0 0 72 72",fill:"none","aria-hidden":"true",children:[e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"14",y1:"20",x2:"36",y2:"12"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"36",y1:"12",x2:"58",y2:"24"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"14",y1:"20",x2:"24",y2:"46"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"24",y1:"46",x2:"36",y2:"12"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"24",y1:"46",x2:"50",y2:"54"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"50",y1:"54",x2:"58",y2:"24"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"36",y1:"12",x2:"50",y2:"54"}),e.jsx("circle",{className:"s-conv-empty-mesh-node",cx:"14",cy:"20",r:"2.5"}),e.jsx("circle",{className:"s-conv-empty-mesh-node",cx:"58",cy:"24",r:"2.5"}),e.jsx("circle",{className:"s-conv-empty-mesh-node",cx:"24",cy:"46",r:"2.5"}),e.jsx("circle",{className:"s-conv-empty-mesh-node",cx:"50",cy:"54",r:"2.5"}),e.jsx("circle",{className:"s-conv-empty-mesh-node s-conv-empty-mesh-node--accent",cx:"36",cy:"12",r:"3.5"})]})}export{it as MessagesScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,j as a}from"./index-NRbRrZw-.js";/* empty css */import{a as K}from"./api-DEHEgJ9m.js";import{u as Ae,f as Re,g as ge,t as U,h as b,e as ue}from"./mission-control-store-HeCy97KT.js";import{u as be}from"./observe-DkAhvkfn.js";import{h as me}from"./NewChatComposer-BPsg8shF.js";import{i as Ee,c as je}from"./keyboard-nav-feLCB3Zm.js";import{g as Me}from"./tail-display-DcliDVkW.js";import{u as Le}from"./tail-events-B7BrDaFi.js";import{u as Te}from"./Provider-Cd-QZltN.js";import{MissionContextRail as ke}from"./MissionContextRail-MTL2EAnr.js";import{FocusOverlay as Ne}from"./MissionFocusOverlay-hWi6y87j.js";import{MissionLogPane as Ce}from"./MissionLogPane-bbG_pM9B.js";import{o as Fe}from"./agent-lanes-model-BKOs_32K.js";import{A as Oe}from"./mission-control-model-C0fByIjm.js";import{b as Pe,s as _e,f as De,c as We,n as $e,d as Ke,m as Ve,W as qe}from"./mission-wall-CocIM1cF.js";import"./colors-BtO5_zlx.js";import"./surface-activity-B1rgWB1i.js";import"./text-B2UZi3l9.js";import"./scout-voice-BT3gYDhU.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Be0T8xv2.js";import"./createLucideIcon-Da0lq809.js";import"./conversation-model-CIzM7aXT.js";import"./time-Dhsh_2EG.js";import"./index-CD2foMB8.js";import"./HarnessMark-CEzmPFHC.js";import"./NewChatOrigin-CCiPg_WR.js";import"./x-DuzAbpk5.js";import"./chevron-down-Jh540uf3.js";import"./search-HmdKXdtR.js";import"./file-text-BGVkHS4_.js";import"./lane-edit-display-C_Aujldz.js";import"./index-BWHgHrtv.js";import"./provider-Bq0ScH3v.js";import"./router-Bx1tiwVe.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./sse-QSbhyq9A.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-CetjnYut.js";import"./TextDocumentSurface-B29xZNlI.js";import"./chevron-right-CV7sEVBS.js";import"./code-xml-CPzpZkhu.js";import"./arrow-left-B0CdJdAC.js";import"./arrow-right-YRBoTTyf.js";import"./chunk-HRAB3GC3-BYQZ1LOn.js";import"./bash-format-BRV5C6Gv.js";import"./context-budget-DX_fwUs3.js";import"./page-status-CEP5pGf3.js";import"./agent-lane-detail-D5EIlX7_.js";import"./lane-observe-vfyACHi0.js";import"./agent-lane-preview-BhplDYGf.js";import"./lane-ask-display-B6iCAVcd.js";function He(t,o,r,c){if(o<=0)return-1;const d=o-1,x=Math.max(1,Math.floor(r));if(t<0||t>d)return c==="left"||c==="up"||c==="last"?d:0;switch(c){case"first":return 0;case"last":return d;case"left":return Math.max(0,t-1);case"right":return Math.min(d,t+1);case"up":{const v=t-x;return v>=0?v:t}case"down":{const v=t+x;return v<=d?v:d}}}function Be(t){switch(t){case"h":case"ArrowLeft":return"left";case"l":case"ArrowRight":return"right";case"k":case"ArrowUp":return"up";case"j":case"ArrowDown":return"down";case"g":case"Home":return"first";case"G":case"End":return"last";default:return null}}const $=4e3,Qe=250,ze=3e4,Ue=1500,Ge=1800;function Je(t,o){return t.map(r=>({id:r.id,name:r.name,handle:r.handle,state:r.state,project:r.project,branch:r.branch,harness:r.harness,model:r.model,sessionIds:o.get(r.id)??[]}))}function Ye(t){return{id:`native:${t.source}:${t.sessionId}`,definitionId:`native:${t.source}:${t.sessionId}`,name:`${t.source} · ${t.project}`,handle:t.sessionId.slice(0,8),agentClass:"native-session",harness:t.source,state:t.live?"working":"ready",projectRoot:t.cwd,cwd:t.cwd,updatedAt:t.lastActiveAt,createdAt:null,transport:"tail",selector:null,defaultSelector:null,nodeQualifier:null,workspaceQualifier:null,wakePolicy:null,capabilities:[],project:t.project,branch:t.attribution==="unattributed"?"native session":t.attribution,role:"native session",model:null,harnessSessionId:t.sessionId,terminalSurface:null,harnessLogPath:t.logPath,conversationId:null,homeNodeId:null,homeNodeName:null,ownerId:null,ownerName:null,ownerHandle:null,staleLocalRegistration:!1,retiredFromFleet:!1,replacedByAgentId:null}}function fe(t){return t.agentClass==="native-session"||t.id.startsWith("native:")}function de(t,o){if(t.agent){const r=o.find(c=>c.id===t.agent.id);if(r)return r}return Ye(t)}function Xe(t,o){const r=o.find(c=>c.sessionId?.trim()===t.sessionId);return r||{source:t.source,transcriptPath:t.logPath??"",sessionId:t.sessionId,cwd:t.cwd,project:t.project,harness:t.attribution,mtimeMs:t.lastActiveAt,size:0}}function Ze(t,o){const r=t.harnessSessionId?.trim();if(!r)throw new Error("This native session has no session id to continue.");const c=t.projectRoot?.trim()||t.cwd?.trim();if(!c)throw new Error("This native session has no project path to route from.");const d=t.harness?.trim(),x=t.model?.trim();return{target:{projectPath:c},execution:{session:"existing",targetSessionId:r,...d?{harness:d}:{},...x?{model:x}:{}},agent:{persistence:"one_time",...t.handle?.trim()?{handle:t.handle.trim()}:{}},seed:{instructions:o}}}async function et(t,o){if(fe(t)){await K("/api/sessions",{method:"POST",body:JSON.stringify(Ze(t,o))});return}const r=await me(t);await K("/api/send",{method:"POST",body:JSON.stringify({body:o,chatId:r,execution:{...t.harness?.trim()?{harness:t.harness.trim()}:{},...t.model?.trim()?{model:t.model.trim()}:{}}})})}function tt(t,o,r){return t.live?"active":t.lastActiveAt>0&&o-t.lastActiveAt<=r?"recent":"idle"}function rs({navigate:t,agents:o}){const r=Ae(),{openFilePreview:c}=Te(),{activityFilter:d,sourceFilter:x,activityWindowMs:v,groupMode:G,query:J,focusedId:F,revealRequest:A}=r,[Y,X]=n.useState([]),[O,pe]=n.useState(null),[y,he]=n.useState(()=>Date.now()),T=be(o),P=n.useRef([]);Le(e=>{P.current.push(e)}),n.useEffect(()=>{const e=setInterval(()=>{if(P.current.length===0)return;const s=P.current;P.current=[],X(i=>{const p=new Set(i.map(w=>w.id)),u=s.filter(w=>!w.id||!p.has(w.id));if(u.length===0)return i;const h=i.concat(u);return h.length>$?h.slice(h.length-$):h})},Qe);return()=>clearInterval(e)},[]),n.useEffect(()=>{const e=setInterval(()=>he(Date.now()),1e4);return()=>clearInterval(e)},[]),n.useEffect(()=>{let e=!1;return K(`/api/tail/recent?limit=${Ue}`).then(s=>{if(e)return;const i=s.events??[];X(p=>{const u=new Set(p.map(w=>w.id)),h=i.filter(w=>!u.has(w.id)).concat(p);return h.length>$?h.slice(h.length-$):h})}).catch(()=>{}),()=>{e=!0}},[]),n.useEffect(()=>{let e=!1;const s=async()=>{try{const p=await K("/api/tail/discover");e||pe(p)}catch{}};s();const i=setInterval(()=>{s()},ze);return()=>{e=!0,clearInterval(i)}},[]);const Z=n.useMemo(()=>{const e=new Map;for(const s of o){const i=T[s.id],p=[s.harnessSessionId,i?.sessionId,i?.data.metadata?.session?.externalSessionId].map(u=>u?.trim()).filter(u=>!!u);e.set(s.id,[...new Set(p)])}return e},[o,T]),R=n.useMemo(()=>Pe({events:Me(Y),transcripts:O?.transcripts??[],agents:Je(o,Z),now:y,liveWindowMs:Oe}),[o,O?.transcripts,y,Z,Y]),[g,V]=n.useState(null),I=n.useMemo(()=>{const e=_e(De(R,{sourceFilter:x,activityFilter:d,query:J,now:y,activeWindowMs:v}),G);if(!g)return e;const s=e.find(i=>i.id===g);return s?[s,...e.filter(i=>i.id!==g)]:e},[d,v,G,R,y,g,J,x]),ee=n.useRef(null),q=n.useRef({w:0,h:0}),te=n.useRef(0);te.current=I.length;const[m,ve]=n.useState(()=>We(0,{w:0,h:0})),H=n.useRef(m),_=n.useCallback((e,s)=>{const i=$e(H.current,e,s);i!==H.current&&(H.current=i,ve(i))},[]);n.useEffect(()=>{const e=ee.current;if(!e)return;const s=new ResizeObserver(([i])=>{q.current={w:i.contentRect.width,h:i.contentRect.height},_(te.current,q.current)});return s.observe(e),()=>s.disconnect()},[_]),n.useLayoutEffect(()=>{_(I.length,q.current)},[I.length,_]);const E=n.useMemo(()=>I.slice(0,m.shown),[I,m.shown]),se=n.useRef(1);se.current=Math.max(1,m.cols),n.useEffect(()=>{Re(I.map(e=>({id:e.id,name:e.agent?.name??Ve(e),handle:e.agent?.handle??Ke(e),harness:e.source,branch:e.agent?.branch??null,project:e.project,model:e.agent?.model??null,state:e.agent?.state??null,agentClass:e.agent?"agent":"native-session",updatedAt:e.lastActiveAt,source:e.agent||e.attribution==="scout-managed"?"scout":"native",activity:tt(e,y,v),lastActiveAt:e.lastActiveAt})))},[v,y,I]);const[we,ne]=n.useState(null),re=n.useRef(null),k=n.useRef(null);n.useEffect(()=>{A&&re.current!==A.serial&&(re.current=A.serial,V(A.id),ne(A.id),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>ne(null),Ge),ge(A.serial))},[A]),n.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const N=F?R.find(e=>e.id===F)??null:null,f=n.useMemo(()=>N?de(N,o):null,[o,N]),Ie=N?.agent?T[N.agent.id]?.data??null:null,[S,C]=n.useState(null),[j,D]=n.useState(!1),xe=S?E.findIndex(e=>e.id===S):-1,ie=n.useRef({index:-1,ids:[]});ie.current={index:xe,ids:E.map(e=>e.id)};const B=S?R.find(e=>e.id===S)??null:null,l=j?B:null;n.useEffect(()=>{j&&!B&&D(!1)},[B,j]);const Q=n.useRef(new Map),ye=n.useCallback((e,s)=>{s?Q.current.set(e,s):Q.current.delete(e)},[]);n.useEffect(()=>{S&&Q.current.get(S)?.focus({preventScroll:!0})},[S]);const oe=n.useMemo(()=>{if(!l)return null;const e=de(l,o),s=(l.agent?T[l.agent.id]?.data??null:null)??Fe(Xe(l,O?.transcripts??[]),l.lines,l.live,{now:y});return{id:l.id,agent:e,source:l.agent?"scout":"native",observe:s,lastActiveAt:l.lastActiveAt,current:l.live}},[o,O?.transcripts,y,T,l]),ae=n.useCallback(e=>{t({view:"ops",mode:"tail",tailQuery:e.sessionId})},[t]),z=n.useCallback(e=>{C(e),D(!0)},[]),le=n.useRef({focusedId:F,railOpen:j,pinnedId:g,selectedIds:r.selectedIds,visibleAgents:r.visibleAgents});le.current={focusedId:F,railOpen:j,pinnedId:g,selectedIds:r.selectedIds,visibleAgents:r.visibleAgents},n.useEffect(()=>{const e=s=>{if(Ee(s.target))return;const i=le.current;if(i.focusedId){s.key==="Escape"&&b(null);return}if(je())return;if(s.key==="Escape"){i.railOpen?D(!1):i.selectedIds.length>0?ue():i.pinnedId?V(null):C(null);return}if((s.metaKey||s.ctrlKey)&&s.key==="a"){if(i.visibleAgents.length===0)return;s.preventDefault();const W=i.visibleAgents.map(L=>L.id);if(W.every(L=>i.selectedIds.includes(L))){ue();return}for(const L of W)i.selectedIds.includes(L)||U(L);return}if(s.metaKey||s.ctrlKey||s.altKey)return;const{index:p,ids:u}=ie.current;if(u.length===0)return;const h=Be(s.key);if(h){s.preventDefault();const W=He(p,u.length,se.current,h);C(u[W]??null);return}const w=p<0?0:p,M=u[w];if(M){if(s.key==="Enter"||s.key==="i"){s.preventDefault(),z(M);return}if(s.key==="o"){s.preventDefault(),C(M),b(M);return}(s.key==="x"||s.key===" ")&&(s.preventDefault(),C(M),U(M))}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[z]);const Se=E.reduce((e,s)=>e+s.lines.length,0),ce=R.length-I.length;return a.jsxs("div",{className:"s-wall",children:[a.jsxs("div",{className:"s-wall-status",children:[a.jsx("span",{className:"s-wall-status-key",children:"logs"}),a.jsxs("span",{className:"s-wall-status-value",children:[m.shown,"/",I.length]}),a.jsx("span",{className:"s-wall-status-key",children:"grid"}),a.jsx("span",{className:"s-wall-status-value",children:m.cols>0?`${m.cols}×${m.rows}`:"—"}),a.jsx("span",{className:"s-wall-status-key",children:"lines"}),a.jsx("span",{className:"s-wall-status-value",children:Se}),m.hidden>0&&a.jsxs("span",{className:"s-wall-status-hidden",title:"Least recently active logs are withheld to keep panes readable",children:[m.hidden," withheld"]}),ce>0&&a.jsxs("span",{className:"s-wall-status-hidden",title:"Sessions discovery knows of that have produced no output to tail",children:[ce," quiet"]}),E.length>0&&a.jsxs("span",{className:"s-wall-status-keys",children:[a.jsx("kbd",{children:"hjkl"})," move · ",a.jsx("kbd",{children:"⏎"})," context · ",a.jsx("kbd",{children:"o"})," expand"]}),g&&a.jsx("button",{type:"button",className:"s-wall-status-pin",onClick:()=>V(null),children:"unpin"})]}),a.jsx("div",{ref:ee,className:`s-wall-grid${j?" s-wall-grid--railed":""}`,style:{gridTemplateColumns:`repeat(${Math.max(1,m.cols)}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${Math.max(1,m.rows)}, minmax(0, 1fr))`,gap:qe},children:E.length===0?a.jsxs("div",{className:"s-wall-empty",children:[a.jsx("div",{className:"s-wall-empty-title",children:R.length===0?"No logs on the wire":"No matching logs"}),a.jsx("div",{className:"s-wall-empty-sub",children:R.length===0?"Panes appear as sessions start writing to their transcripts.":"Widen the activity window or clear the filter."})]}):E.map(e=>a.jsx(Ce,{log:e,selected:r.selectedIds.includes(e.id),revealed:we===e.id,cursor:S===e.id,paneRef:s=>ye(e.id,s),onOpen:()=>z(e.id),onToggleSelected:()=>U(e.id),onOpenLog:()=>ae(e)},e.id))}),l&&oe&&a.jsx(ke,{log:l,lane:oe,onClose:()=>D(!1),onExpand:()=>b(l.id),onTail:()=>ae(l),onOpenLog:()=>t({view:"sessions",sessionId:l.sessionId}),onOpenFile:c}),f&&a.jsx(Ne,{agent:f,observe:Ie,onClose:()=>b(null),onSend:e=>et(f,e),onOpenConversation:()=>{if(b(null),fe(f)&&f.harnessSessionId){t({view:"sessions",sessionId:f.harnessSessionId});return}me(f).then(e=>t({view:"conversation",conversationId:e})).catch(()=>t({view:"agents-v2",agentId:f.id,tab:"message"}))},onTail:()=>{b(null),t({view:"ops",mode:"tail",tailQuery:f.harnessSessionId??f.handle??f.name})},onProfile:()=>{b(null),t({view:"agents-v2",agentId:f.id})}})]})}export{rs as MissionControlView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as f,j as e}from"./index-NRbRrZw-.js";import{d as w,c as N,n as $}from"./colors-BtO5_zlx.js";import{u as C}from"./keyboard-nav-feLCB3Zm.js";import{t as j}from"./time-Dhsh_2EG.js";import{M,f as S}from"./text-B2UZi3l9.js";import{s as v}from"./page-status-CEP5pGf3.js";import"./index-CD2foMB8.js";import{K as k}from"./mission-control-model-C0fByIjm.js";import"./scout-voice-BT3gYDhU.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Be0T8xv2.js";import"./createLucideIcon-Da0lq809.js";function J({agent:s,observe:a,onClose:l,onSend:o,onOpenConversation:r,onTail:d,onProfile:h}){const p=w(s.name),{ref:m,onKeyDown:u}=C(),[i,n]=f.useState("profile"),c=t=>{if(u(t),t.defaultPrevented)return;const y=t.target;y instanceof HTMLInputElement||y instanceof HTMLTextAreaElement||(y?.isContentEditable??!1)||(t.key==="1"?(t.preventDefault(),n("profile")):t.key==="2"?(t.preventDefault(),n("activity")):t.key==="3"&&(t.preventDefault(),n("message")))};return e.jsx("div",{className:"s-mission-overlay",onClick:l,children:e.jsxs("div",{ref:m,role:"dialog","aria-modal":"true","aria-labelledby":"mission-overlay-title",onClick:t=>t.stopPropagation(),onKeyDown:c,tabIndex:-1,className:"s-mission-overlay-dialog",children:[e.jsxs("div",{className:"s-mission-overlay-header",children:[e.jsx("div",{className:"s-ops-avatar",style:{"--size":"28px",background:p},children:s.name[0]?.toUpperCase()}),e.jsxs("div",{className:"s-mission-overlay-identity",children:[e.jsxs("div",{className:"s-mission-overlay-name",id:"mission-overlay-title",children:[s.name," ",e.jsx("span",{className:"s-mission-overlay-handle",children:s.handle?`@${s.handle}`:""})]}),e.jsxs("div",{className:"s-mission-overlay-meta",children:[s.project??"—"," · ",s.branch??"main"," · ",N(s.state)]})]}),e.jsx("button",{className:"s-mission-overlay-close",onClick:l,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"✕"})]}),e.jsxs("div",{className:"s-mission-overlay-tabs",role:"tablist",children:[e.jsxs("div",{className:"s-mission-overlay-tabs-group",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":i==="profile",className:`s-mission-overlay-tab${i==="profile"?" s-mission-overlay-tab--active":""}`,onClick:()=>n("profile"),children:"Profile"}),e.jsx("button",{type:"button",role:"tab","aria-selected":i==="activity",className:`s-mission-overlay-tab${i==="activity"?" s-mission-overlay-tab--active":""}`,onClick:()=>n("activity"),children:"Activity"}),e.jsx("button",{type:"button",role:"tab","aria-selected":i==="message",className:`s-mission-overlay-tab${i==="message"?" s-mission-overlay-tab--active":""}`,onClick:()=>n("message"),children:"Message"})]}),e.jsxs("div",{className:"s-mission-overlay-tabs-action",children:[i==="profile"&&e.jsx("button",{type:"button",className:"s-mission-overlay-jump",onClick:h,...v({label:`Open profile · ${s.handle??s.name}`,route:`/agents/${s.id}`}),children:"Open profile ↗"}),i==="activity"&&e.jsx("button",{type:"button",className:"s-mission-overlay-jump",onClick:d,...v({label:`Tail · ${s.handle??s.name}`,route:`/ops/tail?q=${encodeURIComponent(s.handle??s.name)}`}),children:"Open in Tail ↗"}),i==="message"&&e.jsx("button",{type:"button",className:"s-mission-overlay-jump",onClick:r,...v({label:`Open conversation with ${s.handle??s.name}`,...s.conversationId?{route:`/c/${s.conversationId}`}:{}}),children:"Open conversation ↗"})]})]}),e.jsxs("div",{className:"s-mission-overlay-body",children:[i==="profile"&&e.jsx(E,{agent:s}),i==="activity"&&e.jsx(D,{agent:s,observe:a,onOpenConversation:r,onMessage:()=>n("message")}),i==="message"&&e.jsx(O,{agent:s,onSend:o,onOpenConversation:r})]})]})})}function E({agent:s}){const a=[["MODEL",[s.harness,s.model].filter(Boolean).join("/")||"—"],["AT",[s.project,s.branch].filter(Boolean).join("/")||"—"],["CWD",s.cwd||s.projectRoot||"—"],["AGENT",s.agentClass||"—"],["ROLE",s.role||s.transport||"—"],["MACHINE",s.authorityNodeName??s.homeNodeName??s.authorityNodeId??s.homeNodeId??"—"],["OWNER",s.ownerHandle??s.ownerName??s.ownerId??"—"],["SPAWNED",s.createdAt?j(s.createdAt):"—"],["STATE",N(s.state)]];return e.jsx("div",{className:"s-focus-tab",children:e.jsx("dl",{className:"s-focus-spec",children:a.map(([l,o])=>e.jsxs("div",{className:"s-focus-spec-row",children:[e.jsx("dt",{className:"s-focus-spec-label",children:l}),e.jsx("dd",{className:"s-focus-spec-value",title:o,children:o})]},l))})})}const T={tool:"▸",think:"·",ask:"?",message:"✉",note:"•",system:"◇",boot:"↑"};function A(s,a){if(a){const o=Date.now()-(a+s*1e3);return o<6e4?`${Math.max(0,Math.round(o/1e3))}s`:o<36e5?`${Math.round(o/6e4)}m`:o<864e5?`${Math.round(o/36e5)}h`:`${Math.round(o/864e5)}d`}const l=Math.max(0,Math.round(s));return l<60?`${l}s`:l<3600?`${Math.round(l/60)}m`:`${Math.round(l/3600)}h`}function I(s){if(s.kind==="tool"){const a=s.tool??"tool";return s.arg?`${a} · ${s.arg}`:a}return s.kind==="ask"?s.text||"request received":s.text||s.detail||k[s.kind]||s.kind}function D({agent:s,observe:a,onOpenConversation:l,onMessage:o}){const r=a?.events??[],d=a?.metadata?.usage,h=typeof a?.metadata?.session?.sessionStart=="number"?(a?.metadata?.session).sessionStart:null,p=r.slice(-14).reverse(),m=d?.assistantMessages??r.filter(t=>t.kind==="message").length,u=r.filter(t=>t.kind==="tool").length,i=r.filter(t=>t.kind==="tool"&&(t.tool==="edit"||t.tool==="write")).length,n=a?.contextUsage&&a.contextUsage.length>0?Math.round(a.contextUsage[a.contextUsage.length-1]*100):null,c=n!==null?`${n}%`:d?.contextWindowTokens&&d?.contextInputTokens?`${Math.round(d.contextInputTokens/d.contextWindowTokens*100)}%`:"—";return e.jsxs("div",{className:"s-focus-tab s-focus-tab--activity-preview",children:[e.jsxs("dl",{className:"s-focus-stats",children:[e.jsx(b,{label:"Turns",value:m||"—"}),e.jsx(b,{label:"Tools",value:u||"—"}),e.jsx(b,{label:"Edits",value:i||"—"}),e.jsx(b,{label:"Context",value:c})]}),p.length===0?e.jsx(L,{agent:s,onOpenConversation:l,onMessage:o}):e.jsx("ul",{className:"s-focus-activity-list",children:p.map(t=>e.jsxs("li",{className:`s-focus-activity-row s-focus-activity-row--${t.kind}`,children:[e.jsx("span",{className:"s-focus-activity-time",children:A(t.t,h)}),e.jsx("span",{className:"s-focus-activity-glyph","aria-hidden":!0,children:T[t.kind]??"·"}),e.jsx("span",{className:"s-focus-activity-kind",children:k[t.kind]??t.kind}),e.jsx("span",{className:"s-focus-activity-text",children:I(t)})]},t.id))})]})}function L({agent:s,onOpenConversation:a,onMessage:l}){const o=S(s.role),r=[s.harness,s.model].filter(Boolean).join("/"),d=[s.project,s.branch].filter(Boolean).join("/"),h=$(s.state),p=N(h),m=s.createdAt?j(s.createdAt):null,u=s.updatedAt?j(s.updatedAt):null,i=s.homeNodeName??s.homeNodeId,n=s.ownerHandle??s.ownerName??s.ownerId,c=[];return o&&c.push({label:"Role",value:o}),r&&c.push({label:"Stack",value:r}),d&&c.push({label:"At",value:d}),i&&c.push({label:"Home",value:i}),n&&c.push({label:"Owner",value:n}),m&&c.push({label:"Spawned",value:m}),c.push({label:"State",value:p}),u&&c.push({label:"Last seen",value:u}),e.jsxs("div",{className:"s-focus-activity-empty s-focus-activity-empty--rich",children:[e.jsxs("div",{className:"s-focus-activity-empty-head",children:[e.jsx("span",{className:"s-focus-activity-empty-eyebrow",children:"No tool or turn events recorded"}),e.jsx("span",{className:"s-focus-activity-empty-title",children:s.handle??s.name})]}),e.jsx("dl",{className:"s-focus-activity-empty-facts",children:c.map(t=>e.jsxs("div",{className:"s-focus-activity-empty-fact",children:[e.jsx("dt",{children:t.label}),e.jsx("dd",{title:t.value,children:t.value})]},t.label))}),e.jsxs("div",{className:"s-focus-activity-empty-actions",children:[e.jsx("button",{type:"button",className:"s-focus-activity-empty-btn",onClick:a,...v({label:`Open conversation with ${s.handle??s.name}`,...s.conversationId?{route:`/c/${s.conversationId}`}:{}}),children:"Open conversation ↗"}),e.jsx("button",{type:"button",className:"s-focus-activity-empty-btn s-focus-activity-empty-btn--primary",onClick:l,...v({label:`Compose message · ${s.handle??s.name}`}),children:"Send a message"})]})]})}function b({label:s,value:a}){return e.jsxs("div",{className:"s-focus-stat",children:[e.jsx("dt",{className:"s-focus-stat-label",children:s}),e.jsx("dd",{className:"s-focus-stat-value",children:a})]})}function O({agent:s,onSend:a,onOpenConversation:l}){const[o,r]=f.useState(""),[d,h]=f.useState(!1),[p,m]=f.useState(!1),[u,i]=f.useState(null),n=f.useRef(null);f.useEffect(()=>{n.current?.focus()},[]);const c=async()=>{const y=o.trim();if(!(!y||d)){h(!0),i(null);try{await a(y),r(""),m(!0),setTimeout(()=>m(!1),1800)}catch(x){i(x instanceof Error?x.message:String(x))}finally{h(!1)}}},t=s.handle??s.name;return e.jsx("div",{className:"s-focus-tab",children:e.jsx("div",{className:"s-focus-compose",children:e.jsx(M,{density:"panel",value:o,onChange:r,onSend:()=>{c()},sending:d,placeholder:`Message @${t}…`,textareaRef:n,rows:4,"aria-label":`Message @${t}`,header:e.jsxs("div",{className:"s-focus-compose-label",children:["Message ",e.jsxs("span",{className:"s-focus-compose-target",children:["@",t]})]}),tools:e.jsx("div",{className:"s-focus-compose-hint",children:u?e.jsxs("span",{className:"s-focus-compose-error",children:["Send failed: ",u]}):p?e.jsxs("span",{className:"s-focus-compose-ok",children:["Sent ↗"," ",e.jsx("button",{type:"button",className:"s-focus-compose-link",onClick:l,children:"Open Chat"})]}):e.jsx("span",{children:"Send starts a Run, or steers the active Run when this agent is already working."})})})})})}export{J as FocusOverlay};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as o}from"./index-NRbRrZw-.js";import{c as j}from"./colors-BtO5_zlx.js";import{s as x}from"./page-status-CEP5pGf3.js";import{t as m}from"./time-Dhsh_2EG.js";import{R as b}from"./RailRow-BY6fxePa.js";import"./AgentAvatar-CQqJcwOQ.js";import"./Provider-Cd-QZltN.js";import"./provider-Bq0ScH3v.js";import"./router-Bx1tiwVe.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./api-DEHEgJ9m.js";import"./sse-QSbhyq9A.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-CetjnYut.js";import"./createLucideIcon-Da0lq809.js";import"./TextDocumentSurface-B29xZNlI.js";import"./file-text-BGVkHS4_.js";import"./x-DuzAbpk5.js";import"./chevron-right-CV7sEVBS.js";import"./code-xml-CPzpZkhu.js";import"./arrow-left-B0CdJdAC.js";import"./arrow-right-YRBoTTyf.js";import"./scout-voice-BT3gYDhU.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-feLCB3Zm.js";import"./NewChatComposer-BPsg8shF.js";import"./text-B2UZi3l9.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Be0T8xv2.js";import"./conversation-model-CIzM7aXT.js";import"./index-CD2foMB8.js";import"./HarnessMark-CEzmPFHC.js";import"./NewChatOrigin-CCiPg_WR.js";import"./chevron-down-Jh540uf3.js";import"./search-HmdKXdtR.js";import"./chunk-HRAB3GC3-BYQZ1LOn.js";import"./SpriteAvatar-vpHO-rXs.js";import"./agent-identity-CIMT7oV6.js";function et({agent:t,state:r,isExpanded:e,isSelected:s,tabIndex:p,onToggle:a,onReveal:n,onOpen:c}){const l=x({label:`Focus ${t.handle??t.name}`,route:`/ops/control · ${t.id}`}),d=o.jsxs(o.Fragment,{children:[o.jsxs("dl",{className:"rr-spec-list",children:[o.jsx(i,{label:"MODEL",value:[t.harness,t.model].filter(Boolean).join("/")||"—"}),o.jsx(i,{label:"AT",value:[t.project,t.branch].filter(Boolean).join("/")||"—"}),o.jsx(i,{label:"STATE",value:j(r)}),o.jsx(i,{label:"ACTIVITY",value:t.activity}),o.jsx(i,{label:"SOURCE",value:t.source})]}),o.jsxs("div",{className:"ml-detail-actions",children:[o.jsx("button",{type:"button",className:"ml-detail-btn",onClick:n,children:"Reveal on wall"}),o.jsx("button",{type:"button",className:"ml-detail-btn ml-detail-btn--primary",onClick:c,children:"Open ↗"})]})]});return o.jsx(b,{name:t.handle??t.name,meta:t.lastActiveAt?m(t.lastActiveAt):t.updatedAt?m(t.updatedAt):void 0,tone:r,caret:e?"open":"closed",selected:s,expanded:e,detail:d,tabIndex:p,onClick:u=>a(u),onPointerEnter:l.onPointerEnter,onPointerLeave:l.onPointerLeave})}function i({label:t,value:r}){return o.jsxs("div",{className:"rr-spec",children:[o.jsx("dt",{className:"rr-spec-label",children:t}),o.jsx("dd",{className:"rr-spec-value",title:r,children:r})]})}export{et as MissionLeftAgentRow};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,j as l}from"./index-NRbRrZw-.js";import{H as k}from"./HarnessMark-CEzmPFHC.js";import{n as y}from"./colors-BtO5_zlx.js";import{s as P}from"./page-status-CEP5pGf3.js";import{c as T,b as I,T as A,d as C}from"./tail-display-DcliDVkW.js";import{d as E}from"./time-Dhsh_2EG.js";import{s as H}from"./mission-control-model-C0fByIjm.js";import{m as F,a as K}from"./mission-wall-CocIM1cF.js";import"./lane-edit-display-C_Aujldz.js";const R=24;function G({log:s,selected:f,revealed:h,cursor:t=!1,onOpen:c,onToggleSelected:w,onOpenLog:v,paneRef:j}){const i=n.useRef(null),m=n.useRef(!0),o=n.useMemo(()=>T(s.lines.map(e=>({event:e,meta:void 0}))).map(e=>({...e,outcome:e.event.kind==="tool-result"?I(e.event).result?.outcome??null:null})),[s.lines]),x=n.useCallback(()=>{const e=i.current;if(!e)return;const a=e.scrollHeight-e.scrollTop-e.clientHeight;m.current=a<=R},[]);n.useEffect(()=>{const e=i.current;!e||!m.current||(e.scrollTop=e.scrollHeight)},[o.length,s.lastActiveAt]);const N=y(s.agent?.state??null),r=F(s),b=K(s),p=[s.project,s.agent?.branch].filter(Boolean).join("/")||s.cwd||"—",d=P({label:`Focus ${r}`,route:`/ops/control · ${s.sessionId}`}),L=e=>{if(e.metaKey||e.ctrlKey||e.shiftKey){w();return}c()};return l.jsxs("div",{ref:j,className:["s-wall-pane",s.live?"s-wall-pane--live":null,f?"s-wall-pane--selected":null,h?"s-wall-pane--revealed":null,t?"s-wall-pane--cursor":null].filter(Boolean).join(" "),"data-cursor":t?!0:void 0,tabIndex:t?0:-1,onClick:L,onPointerEnter:d.onPointerEnter,onPointerLeave:d.onPointerLeave,children:[l.jsxs("div",{className:"s-wall-pane-head",children:[l.jsx("span",{className:"s-wall-pane-dot",style:{background:s.agent?H(N):"var(--dim)"},"aria-hidden":!0}),l.jsx(k,{harness:s.source,size:11,title:null}),l.jsx("button",{type:"button",className:"s-wall-pane-title",title:s.agent?.name??s.sessionId,"aria-label":`Focus ${r}`,onClick:e=>{e.stopPropagation(),c()},children:r}),l.jsx("span",{className:"s-wall-pane-where",title:s.cwd??p,children:p}),l.jsx("span",{className:"s-wall-pane-spacer"}),s.live&&l.jsx("span",{className:"s-wall-pane-live",children:"live"}),l.jsx("button",{type:"button",className:"s-wall-pane-file",title:s.logPath??`session ${s.sessionId}`,onClick:e=>{e.stopPropagation(),v()},children:b})]}),l.jsx("div",{className:"s-wall-pane-body",ref:i,onScroll:x,children:o.length===0?l.jsx("div",{className:"s-wall-pane-idle",children:"no output since page load"}):o.map(({event:e,repeatCount:a,outcome:u})=>l.jsxs("div",{className:["s-wall-line",`s-wall-line--${e.kind}`,u==="success"?"s-wall-line--result-ok":null,u==="error"?"s-wall-line--result-error":null].filter(Boolean).join(" "),children:[l.jsx("span",{className:"s-wall-line-time",children:E(e.ts,{milliseconds:!1})||"—"}),l.jsx("span",{className:"s-wall-line-glyph",title:C[e.kind],children:A[e.kind]}),l.jsxs("span",{className:"s-wall-line-text",children:[e.summary,a>1&&l.jsxs("span",{className:"s-wall-line-repeat",title:`${a} identical events`,children:[" ","×",a]})]})]},e.id))})]})}export{G as MissionLogPane};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{j as i,r as l}from"./index-NRbRrZw-.js";import{f as Ot,M as zn}from"./text-B2UZi3l9.js";import{C as Gn,c as Wn,S as vs,G as qn,H as Kn}from"./conversation-model-CIzM7aXT.js";import{a as W}from"./api-DEHEgJ9m.js";import{r as Jn}from"./index-CD2foMB8.js";import{H as ys}from"./HarnessMark-CEzmPFHC.js";import{n as Vn,c as Xn,d as Yn}from"./colors-BtO5_zlx.js";import{NewChatOrigin as Qn}from"./NewChatOrigin-CCiPg_WR.js";import{u as Zn}from"./keyboard-nav-feLCB3Zm.js";import{X as er}from"./x-DuzAbpk5.js";import{C as tr}from"./chevron-down-Jh540uf3.js";import{S as sr}from"./search-HmdKXdtR.js";import{L as Tt}from"./loader-circle-Be0T8xv2.js";import{F as nr}from"./file-text-BGVkHS4_.js";const rr={schemaVersion:"openscout.runtime-catalog.v1",revision:"2026-08-18.1",harnesses:[{id:"claude",label:"Claude Code",enabled:!0,default:!0,reasoningEfforts:["low","medium","high","xhigh","max"],defaultReasoningEffort:"medium",models:[{id:"claude-opus-5",label:"Opus 5",enabled:!0,default:!0,family:"Opus",version:"5"},{id:"claude-sonnet-4-6",label:"Sonnet 4.6",enabled:!0,family:"Sonnet",version:"4.6"},{id:"claude-haiku-4-5",label:"Haiku 4.5",enabled:!0,family:"Haiku",version:"4.5"},{id:"claude-opus-4-8",label:"Opus 4.8",enabled:!0,family:"Opus",version:"4.8"},{id:"claude-opus-4-7",label:"Opus 4.7",enabled:!0,family:"Opus",version:"4.7"},{id:"claude-sonnet-4-5",label:"Sonnet 4.5",enabled:!0,family:"Sonnet",version:"4.5"}]},{id:"codex",label:"Codex",enabled:!0,reasoningEfforts:["low","medium","high","xhigh"],defaultReasoningEffort:"medium",models:[{id:"gpt-5.6-sol",label:"5.6 Sol",enabled:!0,default:!0,family:"GPT",version:"5.6 Sol",reasoningEfforts:["low","medium","high","xhigh","ultra"]},{id:"gpt-5.6-terra",label:"5.6 Terra",enabled:!0,family:"GPT",version:"5.6 Terra",reasoningEfforts:["low","medium","high","xhigh","ultra"]},{id:"gpt-5.6-luna",label:"5.6 Luna",enabled:!0,family:"GPT",version:"5.6 Luna"},{id:"gpt-5.5",label:"5.5",enabled:!0,family:"GPT",version:"5.5"},{id:"gpt-5.5-mini",label:"5.5 mini",enabled:!0,family:"GPT",version:"5.5 mini"}]},{id:"grok",label:"Grok CLI",enabled:!0,listed:!1,reasoningEfforts:["low","medium","high","xhigh"],defaultReasoningEffort:"medium",models:[{id:"grok-4.6",label:"Grok 4.6",enabled:!0,default:!0,family:"Grok",version:"4.6",contextWindowTokens:5e5},{id:"grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5"},{id:"grok-4.3",label:"Grok 4.3",enabled:!0,family:"Grok",version:"4.3"}]},{id:"grok-acp",label:"Grok",enabled:!0,reasoningEfforts:null,models:[{id:"grok-4.6",label:"Grok 4.6",enabled:!0,default:!0,family:"Grok",version:"4.6",contextWindowTokens:5e5},{id:"grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5"},{id:"grok-4.3",label:"Grok 4.3",enabled:!0,family:"Grok",version:"4.3"}]},{id:"kimi",label:"Kimi Code",enabled:!0,reasoningEfforts:null,models:[]},{id:"flue",label:"Flue",enabled:!0,reasoningEfforts:null,models:[]},{id:"cursor",label:"Cursor CLI",enabled:!0,reasoningEfforts:null,models:[]},{id:"opencode",label:"OpenCode",enabled:!0,reasoningEfforts:null,models:[{id:"opencode-go/glm-5.2",label:"GLM-5.2",enabled:!0,default:!0,family:"GLM",version:"5.2"},{id:"opencode-go/glm-5.1",label:"GLM-5.1",enabled:!0,family:"GLM",version:"5.1"},{id:"opencode-go/kimi-k3",label:"Kimi K3",enabled:!0,family:"Kimi",version:"K3"},{id:"opencode-go/qwen3.8-max",label:"Qwen3.8 Max",enabled:!0,family:"Qwen",version:"3.8 Max"},{id:"opencode-go/minimax-m3",label:"MiniMax M3",enabled:!0,family:"MiniMax",version:"M3"},{id:"opencode-go/deepseek-v4-pro",label:"DeepSeek V4 Pro",enabled:!0,family:"DeepSeek",version:"V4 Pro"},{id:"opencode-go/grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5"},{id:"opencode/nemotron-3-ultra-free",label:"Nemotron 3 Ultra (free)",enabled:!0,family:"Nemotron",version:"3 Ultra Free"},{id:"opencode/laguna-s-2.1-free",label:"Laguna S 2.1 (free)",enabled:!0,family:"Laguna",version:"S 2.1 Free"}]},{id:"pi",label:"Pi",enabled:!0,reasoningEfforts:null,models:[]}]},qt=["none","minimal","low","medium","high","xhigh","max","ultra"],Gs={none:"None",minimal:"Minimal",low:"Light",medium:"Medium",high:"High",xhigh:"Extra High",max:"Max",ultra:"Ultra"},V=rr;function Kt(e,t=V){return t.harnesses.find(s=>s.id===e)}function or(e=V){return e.harnesses.find(t=>t.enabled&&t.default)?.id??e.harnesses.find(t=>t.enabled)?.id??null}function Ws(e,t=V){const s=Kt(e,t);return s?.models.find(n=>n.enabled&&n.default)?.id??s?.models.find(n=>n.enabled)?.id??null}function ar(e,t,s=V){const n=Kt(e,s);if(!n||!n.enabled)return null;const r=t?n.models.find(a=>a.enabled&&a.id===t):void 0;return r?.reasoningEfforts===null?null:r?.reasoningEfforts??n.reasoningEfforts}function qs(e,t,s=V){const n=Kt(e,s),r=t?n?.models.find(f=>f.enabled&&f.id===t):void 0,a=ar(e,t,s),u=r?.defaultReasoningEffort??n?.defaultReasoningEffort??null;return u&&a?.includes(u)?u:a?.[0]??null}function ir(e=V){return Object.fromEntries(e.harnesses.filter(t=>t.enabled).map(t=>{const s=Ws(t.id,e);return[t.id,{model:s,reasoningEffort:qs(t.id,s,e)}]}))}const cr=ir();Object.fromEntries(V.harnesses.filter(e=>e.enabled).map(e=>{const t=qt.filter(s=>e.reasoningEfforts?.includes(s)||e.models.some(n=>n.enabled&&n.reasoningEfforts?.includes(s)));return[e.id,t]}));function lr(e=V){const t=new Map;for(const s of e.harnesses)if(s.enabled)for(const n of s.models){if(!n.enabled)continue;const r=t.get(n.id);if(r){r.harnesses.includes(s.id)||r.harnesses.push(s.id);continue}t.set(n.id,{id:n.id,label:n.label,...n.description?{description:n.description}:{},harnesses:[s.id],source:"default",...n.family?{family:n.family}:{},...n.version?{version:n.version}:{}})}return Array.from(t.values())}const ur=lr(),dr={none:"No extra thinking",minimal:"Smallest reasoning budget",low:"Fast responses with lighter reasoning",medium:"Balanced speed and reasoning depth",high:"Greater reasoning depth for complex work",xhigh:"Extra high reasoning depth",max:"Maximum reasoning depth",ultra:"Maximum reasoning with delegation"};function fr(e=V){return qt.flatMap(t=>{const s=[],n=[];for(const r of e.harnesses){if(!r.enabled)continue;const a=r.models.filter(d=>d.enabled),u=a.filter(d=>(d.reasoningEfforts??r.reasoningEfforts)?.includes(t)),f=a.length===0&&r.reasoningEfforts?.includes(t);u.length===0&&!f||(s.push(r.id),a.length>0&&u.length<a.length&&n.push(...u.map(d=>d.id)))}return s.length===0?[]:[{id:t,label:Gs[t],description:dr[t],harnesses:s,...n.length>0?{models:n}:{}}]})}const mr=fr(),Ks=new Set(["md","markdown","mdx","mdown","mkd"]),hr=new Set(["c","cc","cpp","cxx","h","hh","hpp","hxx","cjs","mjs","js","jsx","ts","tsx","py","pyw","pyi","rs","go","java","kt","kts","swift","cs","rb","php","lua","r","sh","bash","zsh","fish","ps1","bat","cmd","sql","prisma","json","jsonc","json5","yaml","yml","toml","xml","html","htm","xhtml","css","scss","sass","less","vue","svelte","astro","graphql","gql","zig","ex","exs","erl","hrl","hs","clj","cljs","cljc","dart","tf","hcl","nix","env","ini","cfg","conf","properties","txt","log","cmake","gradle","groovy","patch","diff","proto","wat"]),pr=new Set(["dockerfile","containerfile","makefile","gemfile","rakefile","procfile","brewfile"]),gr=new Set(["text/markdown","text/x-markdown","text/plain","text/javascript","text/typescript","text/css","text/html","text/yaml","text/toml","text/x-shellscript","application/json","application/javascript"]);function Js(e){return e.trim().split(/[/\\]/).pop()?.toLowerCase()??""}function Jt(e){const t=Js(e),s=t.lastIndexOf(".");return s>=0?t.slice(s+1):""}function wr(e){return Ks.has(Jt(e))}function br(e){const t=Js(e);return pr.has(t)?!0:hr.has(Jt(e))}function Vs(e){return wr(e)||br(e)}function Xs(e,t){if(!Vs(t))return null;const s=Jt(t);if(Ks.has(s))return"text/markdown";switch(s){case"json":case"jsonc":case"json5":return"application/json";case"yaml":case"yml":return"text/yaml";case"toml":return"text/toml";case"html":case"htm":case"xhtml":return"text/html";case"css":case"scss":case"sass":case"less":return"text/css";case"js":case"jsx":case"mjs":case"cjs":return"text/javascript";case"ts":case"tsx":return"text/typescript";case"sh":case"bash":case"zsh":case"fish":return"text/x-shellscript"}const n=e.trim().toLowerCase();return gr.has(n)?n:"text/plain"}function vr(e,t){const s=e.trim().toLowerCase();return s.startsWith("image/")||s.startsWith("video/")||s==="text/markdown"||s==="text/x-markdown"?!0:t?Xs(s,t)?!0:!s||s==="application/octet-stream"?Vs(t):!1:!1}function yr(e){const t=e.type.trim().toLowerCase();return t.startsWith("image/")||t.startsWith("video/")?t:Xs(t,e.name)??t}function Xe(e){return vr(e.type,e.name)}function xr(e){return yr(e)}function dt(e){return e?e.files.length>0||[...e.types].some(t=>t.toLowerCase()==="files")?!0:[...e.items].some(t=>t.kind==="file"):!1}function Ys(e){if(!e)return[];const t=[...e.files];if(t.length>0)return t;const s=[];for(const n of e.items){if(n.kind!=="file")continue;const r=n.getAsFile();r&&s.push(r)}return s}function jr(e){return Ys(e).filter(Xe)}function $a(e){return jr(e)}function Sr(e){return new Promise((t,s)=>{const n=new FileReader;n.onload=()=>{const r=typeof n.result=="string"?n.result:"",a=r.indexOf(",");t(a>=0?r.slice(a+1):r)},n.onerror=()=>s(n.error??new Error("Could not read file.")),n.readAsDataURL(e)})}async function Cr(e){if(!Xe(e))throw new Error("Only markdown, code, image, and video files can be routed.");const t=await Sr(e);return W("/api/blobs",{method:"POST",body:JSON.stringify({data:t,mediaType:xr(e),fileName:e.name})})}async function kr(e){const t=e.filter(Xe);if(t.length===0)throw new Error("Drop markdown, code, an image, or a video clip to route.");return(await Promise.all(t.map(n=>Cr(n)))).map((n,r)=>({id:n.id,mediaType:n.mediaType,fileName:n.fileName??t[r]?.name,url:n.url}))}function Mr(e,t){const s=t?.trim();return s?e.find(n=>n.id===s)??null:null}function Ar(e,t){if(e.view==="conversation"&&e.conversationId)return{agentId:null,conversationId:e.conversationId,label:"Current chat",canUseExistingChat:!0};if(e.view==="messages"&&e.conversationId)return{agentId:null,conversationId:e.conversationId,label:"Current chat",canUseExistingChat:!0};if(e.view==="agents-v2"&&e.agentId){const s=Mr(t,e.agentId),n=e.conversationId??s?.conversationId??null;return{agentId:e.agentId,conversationId:n,label:s?.name??e.agentId,canUseExistingChat:!!n}}return{agentId:null,conversationId:null,label:"Pick a project",canUseExistingChat:!1}}function xs({label:e,items:t,activeIndex:s,placement:n="above",onPick:r,onActiveIndexChange:a}){return t.length===0?null:i.jsxs("div",{className:"s-msg-compose-suggest surface-card","data-placement":n,role:"listbox","aria-label":e,children:[i.jsxs("div",{className:"s-msg-compose-suggest-header",children:[i.jsx("span",{className:"s-msg-compose-suggest-label label-xs text-muted",children:e}),i.jsxs("span",{className:"label-xs text-dim s-msg-compose-suggest-count",children:[t.length," options"]})]}),i.jsx("div",{className:"s-msg-compose-suggest-list",children:t.map((u,f)=>{const d=f===s;return i.jsxs("button",{type:"button",role:"option","aria-selected":d,className:`s-msg-compose-suggest-item${d?" s-msg-compose-suggest-item--active":""}`,onMouseDown:b=>{b.preventDefault(),r(f)},onMouseEnter:()=>a(f),children:[d&&i.jsx("span",{className:"s-msg-compose-suggest-active-indicator","aria-hidden":"true"}),u.avatarNode?i.jsx("span",{className:"s-msg-compose-suggest-avatar-node","aria-hidden":"true",children:u.avatarNode}):u.avatar?i.jsx("span",{className:"s-ops-avatar s-msg-compose-suggest-avatar",style:{"--size":"20px",background:u.avatar.color},"aria-hidden":"true",children:u.avatar.label}):null,i.jsx("span",{className:"s-msg-compose-suggest-token",children:u.token}),i.jsx("span",{className:"s-msg-compose-suggest-desc",children:u.description}),d&&i.jsx("span",{className:"s-msg-compose-suggest-pick-hint label-xs text-dim",children:i.jsx(Gn,{size:10,"aria-hidden":"true"})})]},u.id)})}),i.jsx("div",{className:"s-msg-compose-suggest-footer",children:i.jsxs("span",{className:"label-xs text-dim",children:[i.jsx("kbd",{className:"s-kbd",children:"↑"})," ",i.jsx("kbd",{className:"s-kbd",children:"↓"})," navigate · ",i.jsx("kbd",{className:"s-kbd",children:"↵"})," select · ",i.jsx("kbd",{className:"s-kbd",children:"esc"})," close"]})})]})}const z="",Ir={none:"no reasoning",minimal:"lightest",low:"triage",medium:"default",high:"deep",xhigh:"exhaustive",max:"fullest",ultra:"beyond max"},Nr=qt.map(e=>({value:e,label:Gs[e],note:Ir[e]}));function _e(e,t){return e.harnesses.find(s=>s.value===t)}function Vt(e,t){return _e(e,t)?.models??[]}function Me(e,t,s){const n=_e(e,t),r=n?n.efforts===null?null:n.efforts??e.efforts:e.efforts;if(!r||!s)return r;const a=new Set((n?.models??[]).map(u=>u.value));return a.has(s)?r.filter(u=>{if(!u.models||u.models.length===0)return!0;const f=u.models.filter(d=>a.has(d));return f.length===0||f.includes(s)}):r}function Qs(e,t){const n=Vt(e,t.harness).find(r=>r.value===t.model);return n||(t.model.trim()?{value:t.model,label:t.model,note:"custom"}:{value:z,label:"Default",note:"harness picks"})}function Er(e,t){const s=_e(e,t.harness),n=s?.label??t.harness??"Default",r=Qs(e,t),a=Me(e,t.harness,t.model),u=a?.find(b=>b.value===t.effort),f=u?.label??t.effort,d=a?`Runtime: ${n}, model ${r.label}, effort ${f}`:`Runtime: ${n}, model ${r.label}`;return{harness:s,harnessLabel:n,model:r,modelLabel:r.label,effort:u,effortLabel:f,supportsEffort:a!==null,summary:d}}function Rr(e,t,s){const n={...t,...s};if(!(s.harness!==void 0&&s.harness!==t.harness)){if(s.model===void 0||s.model===t.model)return n;const p=Me(e,n.harness,n.model);if(!p||n.effort===z||p.some(Y=>Y.value===n.effort))return n;const F=(Me(e,t.harness,t.model)??e.efforts).findIndex(Y=>Y.value===t.effort),X=Math.min(Math.max(F,0),p.length-1);return n.effort=p[X]?.value??p[0]?.value??z,n}const a=_e(e,n.harness);n.model=s.model??a?.defaultModel??z,s.effort===void 0&&a?.defaultEffort&&(n.effort=a.defaultEffort);const u=Me(e,n.harness,n.model);if(!u)return n.effort=z,n;if(u.some(p=>p.value===n.effort))return n;const d=(Me(e,t.harness,t.model)??e.efforts).findIndex(p=>p.value===t.effort),b=Math.min(Math.max(d,0),u.length-1);return n.effort=u[b]?.value??u[0]?.value??z,n}function Tr(e,t){const s=t?.harness??e.harnesses.find(a=>!a.disabled)?.value??"",n=Me(e,s),r=n?.find(a=>a.note==="default")?.value??n?.[Math.floor((n.length-1)/2)]?.value??z;return{harness:s,model:t?.model??_e(e,s)?.defaultModel??Vt(e,s)[1]?.value??z,effort:n?t?.effort??_e(e,s)?.defaultEffort??r:z}}function Lr(e,t){const s=t.trim().toLowerCase();return s?e.filter(n=>`${n.label} ${n.value} ${n.note??""}`.toLowerCase().includes(s)):e}function Ke(...e){for(const t of e){const s=t?.trim();if(s)return s}}function Zs(e){const t=e.harnesses.map(n=>{const r=e.defaultsByHarness?.[n.id],a=n.ready!==!1,u=[{value:z,label:"Default",note:"harness picks"},...e.models.filter(d=>d.harnesses.includes(n.id)).map(d=>({value:d.id,label:d.label,note:Ke(d.description)}))],f=e.efforts.filter(d=>d.harnesses.includes(n.id));return{value:n.id,label:n.label,note:a?Ke(n.description):Ke(n.detail,n.state,"unavailable"),disabled:!a,defaultModel:r?.model??z,defaultEffort:r?.reasoningEffort??z,models:u,efforts:f.length===0?null:f.map(d=>({value:d.id,label:d.label,note:Ke(d.description),...d.models?.length?{models:[...d.models]}:{}}))}}),s=e.efforts.map(n=>({value:n.id,label:n.label,note:Ke(n.description)}));return{harnesses:t,efforts:s.length>0?s:Nr}}const Pr=6,Lt=34,Pt=460,$r=14,Dr=300,Je=8,$t=["harness","model","effort"],_r={harness:"vertical",model:"vertical",effort:"horizontal"};function Or(){return i.jsx("svg",{className:"s-rt-chip-chevron",width:"8",height:"5",viewBox:"0 0 8 5",fill:"none","aria-hidden":"true",children:i.jsx("path",{d:"M1 1.2 4 4 7 1.2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function Fr({ctx:e}){const{efforts:t,value:s,set:n}=e;if(!t)return null;const r=Math.max(0,t.findIndex(a=>a.value===s.effort));return i.jsx("div",{className:"s-rt-ladder",role:"radiogroup","aria-label":"Reasoning effort",children:t.map((a,u)=>{const f=u===r;return i.jsxs("button",{type:"button",role:"radio","aria-checked":f,title:a.note,onClick:()=>n({effort:a.value}),...e.cell("effort",u),className:"s-rt-step",children:[i.jsx("span",{className:"s-rt-step-bar","data-state":f?"current":u<r?"filled":"empty"}),i.jsx("span",{className:"s-rt-step-label",children:a.label})]},a.value)})})}function Ur({harnessLabel:e}){return i.jsxs("p",{className:"s-rt-effort-absent",children:[e," has no effort control."]})}function Hr({option:e,selected:t,index:s,ctx:n}){const r=e.disabled??!1;return i.jsxs("button",{type:"button",role:"option","aria-selected":t,"aria-disabled":r||void 0,onClick:()=>{r||n.set({model:e.value})},"data-on":t||void 0,"data-disabled":r||void 0,...n.cell("model",s),style:{animationDelay:`${Math.min(s,6)*16}ms`},className:"s-rt-row s-rt-model-row",children:[i.jsx("span",{"aria-hidden":!0,className:"s-rt-dot"}),i.jsx("span",{className:"s-rt-row-label",children:e.label}),e.note?i.jsx("span",{className:"s-rt-note",children:e.note}):null]})}function Br({ctx:e}){return i.jsxs("div",{className:"s-rt-search",children:[i.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 12 12","aria-hidden":"true",className:"s-rt-search-icon",children:[i.jsx("circle",{cx:"5",cy:"5",r:"3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),i.jsx("path",{d:"M7.6 7.6 10.5 10.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),i.jsx("input",{ref:e.searchRef,type:"text",value:e.query,onChange:t=>e.setQuery(t.target.value),onKeyDown:e.onSearchKeyDown,placeholder:"Filter models","aria-label":"Filter models",spellCheck:!1,autoComplete:"off",className:"s-rt-search-input"}),e.query?i.jsx("button",{type:"button",onClick:()=>{e.setQuery(""),e.searchRef.current?.focus()},"aria-label":"Clear filter",className:"s-rt-search-clear",children:"clear"}):null]})}function zr({ctx:e}){return e.status==="loading"?i.jsxs("div",{className:"s-rt-status","aria-busy":!0,role:"status",children:[i.jsx("span",{className:"s-rt-sr",children:"Loading models"}),[0,1,2].map(t=>i.jsx("span",{"aria-hidden":!0,className:"s-rt-skel",style:{animationDelay:`${t*90}ms`}},t))]}):e.status==="error"?i.jsxs("div",{role:"alert",className:"s-rt-status s-rt-status--error",children:[i.jsx("span",{className:"s-rt-status-message",children:e.statusMessage??"Model catalog unavailable."}),e.onRetry?i.jsx("button",{type:"button",onClick:e.onRetry,className:"s-rt-retry",children:"Retry"}):null]}):i.jsx("p",{className:"s-rt-empty",children:e.query.trim()?`No model matches “${e.query.trim()}”.`:"No models listed."})}function Gr({ctx:e}){return e.status!=="ready"||e.models.length===0?i.jsx(zr,{ctx:e}):i.jsx("div",{role:"listbox","aria-label":"Model",className:"s-rt-models",children:e.models.map((t,s)=>i.jsx(Hr,{option:t,index:s,selected:t.value===e.value.model,ctx:e},t.value||"default"))},e.value.harness)}function js({value:e,defaultValue:t,onChange:s,catalog:n,status:r="ready",statusMessage:a,onRetry:u,disabled:f=!1,showEffort:d,searchable:b="auto",className:p}){const[y,F]=l.useState(!1),[X,Y]=l.useState(""),[Ze,et]=l.useState(()=>Tr(n,t)),C=e??Ze,k=l.useRef(null),fe=l.useRef(null),me=l.useRef(null),he=l.useRef(null),A=l.useId(),Se=l.useCallback(m=>{const w=Rr(n,C,m);e===void 0&&et(w),s?.(w),m.harness!==void 0&&m.harness!==C.harness&&Y("")},[n,e,s,C]),P=n.harnesses,Fe=l.useMemo(()=>Vt(n,C.harness),[n,C.harness]),D=l.useMemo(()=>{const m=Qs(n,C);return m.note!=="custom"?Fe:[...Fe,m]},[Fe,n,C]),re=l.useMemo(()=>Lr(D,X),[D,X]),Ue=Me(n,C.harness,C.model),Q=d===!1?null:d===!0?Ue??n.efforts:Ue,$=b==="auto"?D.length>Pr:b,Z=Er(n,C),N=l.useRef(new Map),[pe,R]=l.useState({group:"model",index:0}),T=l.useMemo(()=>({harness:P.length,model:r==="ready"?re.length:0,effort:Q?.length??0}),[Q?.length,P.length,re.length,r]),oe=l.useCallback(m=>m==="harness"?Math.max(0,P.findIndex(w=>w.value===C.harness)):m==="model"?Math.max(0,re.findIndex(w=>w.value===C.model)):Math.max(0,Q?.findIndex(w=>w.value===C.effort)??0),[Q,P,re,C]),E=l.useCallback((m,w)=>{R({group:m,index:w}),N.current.get(`${m}:${w}`)?.focus()},[]),ge=l.useCallback((m,w)=>{const j=$t.indexOf(m);for(let x=j+w;x>=0&&x<$t.length;x+=w){const L=$t[x];if(T[L]>0)return E(L,Math.min(oe(L),T[L]-1)),!0}return!1},[T,E,oe]),tt=l.useCallback((m,w)=>({ref:j=>{const x=`${m}:${w}`;j?N.current.set(x,j):N.current.delete(x)},tabIndex:pe.group===m&&pe.index===w?0:-1,onFocus:()=>R({group:m,index:w}),onKeyDown:j=>{const x=_r[m]==="vertical",L=x?"ArrowDown":"ArrowRight",B=x?"ArrowUp":"ArrowLeft",Be=x?"ArrowRight":"ArrowDown",ae=x?"ArrowLeft":"ArrowUp",ve=T[m];if(ve!==0)if(j.key===L)j.preventDefault(),E(m,(w+1)%ve);else if(j.key===B){if(j.preventDefault(),m==="model"&&w===0&&$){R({group:m,index:0}),he.current?.focus();return}E(m,(w-1+ve)%ve)}else j.key===Be?(j.preventDefault(),ge(m,1)):j.key===ae?(j.preventDefault(),ge(m,-1)):j.key==="Home"?(j.preventDefault(),E(m,0)):j.key==="End"&&(j.preventDefault(),E(m,ve-1))}}),[T,pe,E,ge,$]),Ee=l.useCallback(m=>{if(m.key==="ArrowDown"&&T.model>0)m.preventDefault(),E("model",0);else if(m.key==="Enter"&&T.model===1){m.preventDefault();const w=re[0];w.disabled||Se({model:w.value})}else m.key==="Escape"&&X&&(m.preventDefault(),m.stopPropagation(),Y(""))},[T.model,E,re,X,Se]),[U,He]=l.useState(null),we=l.useCallback(()=>{const m=fe.current;if(!m)return;const w=m.getBoundingClientRect(),j=w.top,x=window.innerHeight-w.bottom,L=j>=Dr||j>=x?"up":"down",B=Math.min(Math.max(Je,w.right-Pt),Math.max(Je,window.innerWidth-Pt-Je));He({left:B,top:L==="up"?w.top-Je:w.bottom+Je,placement:L})},[]);l.useLayoutEffect(()=>{if(!y)return;we();const m=()=>we();return window.addEventListener("scroll",m,!0),window.addEventListener("resize",m),()=>{window.removeEventListener("scroll",m,!0),window.removeEventListener("resize",m)}},[y,we]);const I=l.useCallback(m=>{F(!1),m&&fe.current?.focus()},[]);l.useEffect(()=>{if(!y)return;const m=j=>{const x=j.target;k.current?.contains(x)||me.current?.contains(x)||F(!1)},w=j=>{j.key==="Escape"&&(j.stopPropagation(),I(!0))};return document.addEventListener("pointerdown",m),document.addEventListener("keydown",w),()=>{document.removeEventListener("pointerdown",m),document.removeEventListener("keydown",w)}},[y,I]),l.useEffect(()=>{if(!y)return;const m=T.model>0?"model":"harness",w=Math.min(oe(m),Math.max(0,T[m]-1));R({group:m,index:w});const j=requestAnimationFrame(()=>{const x=N.current.get(`${m}:${w}`);x?x.focus():me.current?.focus()});return()=>cancelAnimationFrame(j)},[y]),l.useEffect(()=>{y||Y("")},[y]),l.useEffect(()=>{f&&F(!1)},[f]);const be=Math.max(0,P.findIndex(m=>m.value===C.harness)),H={value:C,set:Se,status:r,statusMessage:a,onRetry:u,harnesses:P,models:re,efforts:Q,harnessLabel:Z.harnessLabel,searchable:$,query:X,setQuery:Y,searchRef:he,cell:tt,onSearchKeyDown:Ee};return i.jsxs("div",{ref:k,className:p?`s-rt-root ${p}`:"s-rt-root",style:{position:"relative",display:"inline-flex"},children:[i.jsxs("button",{ref:fe,type:"button",className:`s-rt-chip${f?" s-rt-chip--disabled":""}`,"aria-haspopup":"dialog","aria-expanded":y,"aria-controls":y?A:void 0,"aria-label":Z.summary,disabled:f,onClick:()=>F(m=>!m),children:[i.jsx(ys,{harness:C.harness||"unknown",size:12,className:"s-rt-chip-mark",title:null}),i.jsxs("span",{className:"s-rt-chip-type",children:[i.jsx("span",{className:"s-rt-chip-model",style:{maxWidth:`${$r}ch`},children:i.jsx("span",{className:"s-rt-chip-model-text",children:Z.modelLabel},Z.modelLabel)}),Q&&Z.effortLabel?i.jsxs(i.Fragment,{children:[i.jsx("span",{"aria-hidden":!0,className:"s-rt-chip-divider"}),i.jsx("span",{className:"s-rt-chip-effort","data-effort":C.effort,children:Z.effortLabel})]}):null]}),i.jsx(Or,{})]}),y&&U?Jn.createPortal(i.jsx("div",{ref:me,id:A,role:"dialog","aria-label":"Runtime",tabIndex:-1,"data-placement":U.placement,className:"s-rt-panel",style:{left:U.left,width:Pt,...U.placement==="up"?{bottom:window.innerHeight-U.top}:{top:U.top}},children:i.jsxs("div",{className:"s-rt-rail",children:[i.jsxs("div",{className:"s-rt-rail-main",children:[i.jsxs("div",{className:"s-rt-harnesses",role:"radiogroup","aria-label":"Harness",children:[i.jsx("span",{"aria-hidden":!0,className:"s-rt-marker",style:{height:Lt-10,transform:`translateY(${be*Lt+5}px)`}}),P.map((m,w)=>{const j=m.value===C.harness,x=m.disabled??!1;return i.jsxs("button",{type:"button",role:"radio","aria-checked":j,"aria-disabled":x||void 0,onClick:()=>{x||H.set({harness:m.value})},style:{height:Lt},"data-on":j||void 0,"data-disabled":x||void 0,title:x?m.note:void 0,...H.cell("harness",w),className:"s-rt-harness",children:[i.jsx(ys,{harness:m.value||"unknown",size:14,className:"s-rt-opt-mark",title:null}),i.jsx("span",{className:"s-rt-harness-label",children:m.label})]},m.value||"default")})]}),i.jsxs("div",{className:"s-rt-models-col",children:[$?i.jsx(Br,{ctx:H}):null,i.jsx(Gr,{ctx:H})]})]}),i.jsx("div",{className:"s-rt-effort-foot",children:Q?i.jsx(Fr,{ctx:H}):i.jsx(Ur,{harnessLabel:Z.harnessLabel})})]})}),document.body):null]})}const Ft="scout:newchat:frame:v1",Wr=620,Ss=420,Cs=300,gt=12,qr=210,Kr=154;function en(e){return e>Wr}function ks(e,t,s){if(!en(s.width))return null;const n=e??t;return n?bt(n,s):null}function Jr(e){return e?Math.max(Kr,Math.round(e.height-qr)):null}function Ms(e,t,s){const n=s-t-gt;return Math.round(Math.max(gt,Math.min(e,n)))}function bt(e,t){const s=Math.round(Math.max(Ss,Math.min(e.width,Math.max(Ss,t.width-gt*2)))),n=Math.round(Math.max(Cs,Math.min(e.height,Math.max(Cs,t.height-gt*2))));return{x:Ms(e.x,s,t.width),y:Ms(e.y,n,t.height),width:s,height:n}}function Vr(e,t,s,n){return bt({...e,x:e.x+t,y:e.y+s},n)}function Xr(e,t,s,n,r){const a=n==="s"?e.width:e.width+t,u=n==="e"?e.height:e.height+s;return bt({...e,width:a,height:u},r)}function Yr(e){if(!e||typeof e!="object")return!1;const t=e;return["x","y","width","height"].every(s=>typeof t[s]=="number"&&Number.isFinite(t[s]))}function Qr(e){if(!e)return null;try{const t=JSON.parse(e);return Yr(t)?{x:t.x,y:t.y,width:t.width,height:t.height}:null}catch{return null}}function As(){try{return typeof localStorage>"u"?null:Qr(localStorage.getItem(Ft))}catch{return null}}function Is(e){try{if(typeof localStorage>"u")return;if(!e){localStorage.removeItem(Ft);return}localStorage.setItem(Ft,JSON.stringify(e))}catch{}}const Ut=or()??"",Ns=Ws(Ut),Ae={schemaVersion:"openscout.runtime-capabilities.v1",catalogVersion:V.schemaVersion,defaults:{harness:Ut,model:Ns,reasoningEffort:qs(Ut,Ns)},defaultsByHarness:cr,harnesses:V.harnesses.filter(e=>e.enabled&&e.listed!==!1).map(e=>({id:e.id,label:e.label})),models:ur.map(e=>({id:e.id,label:e.label,...e.description?{description:e.description}:{},harnesses:[...e.harnesses]})),efforts:mr.map(e=>({id:e.id,label:e.label,...e.description?{description:e.description}:{},harnesses:[...e.harnesses],...e.models?{models:[...e.models]}:{}}))};function Da(e){return Zs({defaultsByHarness:e.defaultsByHarness,harnesses:e.harnesses.map(t=>({id:t.id,label:t.label??t.id})),models:e.models.map(t=>({id:t.id,label:t.label??t.id,description:t.description,harnesses:t.harnesses})),efforts:e.efforts.map(t=>({id:t.id,label:t.label,description:t.description,harnesses:t.harnesses,...t.models?.length?{models:[...t.models]}:{}}))})}const Zr="|";function Es(e){return e<55296?e:e<57344?e+8192:e-2048}function eo(e,t){if(e===t)return 0;const s=Math.min(e.length,t.length);for(let n=0;n<s;n+=1){const r=e.charCodeAt(n),a=t.charCodeAt(n);if(r!==a)return Es(r)<Es(a)?-1:1}return e.length===t.length?0:e.length<t.length?-1:1}function Rs(e){return Number.isFinite(e)?e:0}function to(e,t){const s=Rs(e.createdAt),n=Rs(t.createdAt);return s!==n?s<n?-1:1:eo(e.id,t.id)}function so(e){return`${Number.isFinite(e.createdAt)?Math.max(0,Math.trunc(e.createdAt)):0}${Zr}${e.id}`}const no=10,ro=80,Ts=300,Ls=100,tn=2e3,oo=no,je=new Map,de=new Map;let sn=0;function Ne(e){return e.trim()}function ao(e){const t=new Map;for(const s of e)t.set(s.id,s);return[...t.values()].sort(to)}function io(){if(je.size<=oo)return;let e=null,t=Number.POSITIVE_INFINITY;for(const[s,n]of je)n.touchedAt<t&&(e=s,t=n.touchedAt);e&&je.delete(e)}function Ie(e){const t=Ne(e),s=je.get(t);return s?(s.touchedAt=++sn,s.messages):null}function Xt(e,t,s={}){const n=Ne(e);if(!n)return[];const r=je.get(n),a=ao(t).slice(-tn);return je.set(n,{messages:a,historyLoaded:s.historyLoaded??r?.historyLoaded??!1,historyExhausted:s.historyExhausted??r?.historyExhausted??!1,touchedAt:++sn}),io(),a}function nn(e,t){const s=Ie(e)??[];return Xt(e,[...s,...t])}function rn(e){return je.get(Ne(e))?.historyLoaded??!1}function co(e){const t=je.get(Ne(e));return!!(t&&t.historyLoaded&&!t.historyExhausted&&t.messages.length>0&&t.messages.length<tn)}async function _a(e,t={}){const s=Ne(e);if(!s)return[];const n=Ie(s);if(n&&!t.refresh)return n;const r=de.get(s);if(r)return r;const a=W(`/api/messages?conversationId=${encodeURIComponent(s)}&limit=${ro}`).then(u=>nn(s,u));de.set(s,a);try{return await a}finally{de.delete(s)}}async function lo(e){const t=Ne(e);if(!t)return[];if(rn(t))return Ie(t)??[];const s=`${t}:history`,n=de.get(s);if(n)return n;const r=W(`/api/messages?conversationId=${encodeURIComponent(t)}&limit=${Ts}`).then(a=>Xt(t,[...Ie(t)??[],...a],{historyLoaded:!0,historyExhausted:a.length<Ts}));de.set(s,r);try{return await r}finally{de.delete(s)}}async function Oa(e){const t=Ne(e);if(!t)return[];if(!rn(t))return lo(t);if(!co(t))return Ie(t)??[];const s=Ie(t)??[],n=s[0];if(!n)return s;const r=so(n),a=`${t}:before:${r}`,u=de.get(a);if(u)return u;const f=W(`/api/messages?conversationId=${encodeURIComponent(t)}&limit=${Ls}&beforeMessageId=${encodeURIComponent(r)}`).then(d=>Xt(t,[...d,...Ie(t)??[]],{historyLoaded:!0,historyExhausted:d.length<Ls}));de.set(a,f);try{return await f}finally{de.delete(a)}}const uo=12e4,Ye=new Map;function fo(){const e=globalThis.crypto?.randomUUID?.();return e?`web-${e}`:`web-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function mo(e){const t=e.conversationId.trim(),s=e.messageId.trim();if(!t||!s)return;nn(t,[{id:s,conversationId:t,actorId:"operator",actorName:"operator",body:e.body,createdAt:e.createdAt,class:"operator",...e.attachments?.length?{attachments:e.attachments}:{},metadata:{clientMessageId:e.clientMessageId}}]);const n=e.flightId?.trim(),r=e.agentId?.trim();!n||!r||Ye.set(t,{flight:{id:n,invocationId:e.invocationId?.trim()||`pending:${n}`,agentId:r,agentName:null,conversationId:t,collaborationRecordId:null,state:"queued",summary:"Request accepted; waiting for worker activity.",startedAt:e.createdAt,completedAt:null,sessions:[]},expiresAt:Date.now()+uo})}function Fa(e,t=Date.now()){const s=e.trim(),n=Ye.get(s);return n?n.expiresAt<=t?(Ye.delete(s),null):n.flight:null}function Ua(e,t){const s=e.trim(),n=Ye.get(s);n&&(!t||n.flight.id===t)&&Ye.delete(s)}const ho=1200,po=new Set(["Page","URL"]);function on(e){return e.trim().slice(0,ho)}function go(e){const t=[{label:"Page",value:e.pageTitle??""},{label:"URL",value:e.pageUrl??""}];return e.selection?.trim()&&t.push({label:"Selection",value:on(e.selection)}),(e.notes??[]).forEach((s,n)=>{t.push({label:`Note ${n+1}`,value:s})}),t.filter(s=>s.value.trim())}function wo(e,t){const s=[];for(const r of t){const a=r.value.trim();a&&(po.has(r.label)?s.push(`${r.label}: ${a}`):s.push(`${r.label}:
|
|
2
|
-
${a.split(`
|
|
3
|
-
`).map(u=>`> ${u}`).join(`
|
|
4
|
-
`)}`))}const n=e.trim();return n&&s.push(n),s.join(`
|
|
5
|
-
|
|
6
|
-
`)}const bo=6,Ps=1600;function vo(e){return e===0?"":e===1?"[1 attachment remains on the source Scout message; not copied]":`[${e} attachments remain on the source Scout message; not copied]`}function an(e){const t=e.body.trim(),s=vo(e.attachmentCount??0),n=[t,s].filter(Boolean).join(`
|
|
7
|
-
`)||"(message has no text)";return n.length<=Ps?n:`${n.slice(0,Ps-1).trimEnd()}…`}function yo(e){const t=an(e).split(/\r?\n/gu).map(s=>`> ${s}`).join(`
|
|
8
|
-
`);return`Forwarded from ${e.actorLabel} in Scout
|
|
9
|
-
|
|
10
|
-
${t}`}function Ha(e){const t=e.messages.findIndex(a=>a.id===e.selectedMessageId);if(t<0)throw new Error("The selected message is no longer available in this conversation.");const s=e.messages[t],n=e.messages.slice(Math.max(0,t-bo),t).filter(a=>a.body.trim()||(a.attachmentCount??0)>0),r=n.map(a=>`${a.actorLabel}:
|
|
11
|
-
${an(a)}`).join(`
|
|
12
|
-
|
|
13
|
-
`).slice(-8e3).trim();return{selectedMessage:yo(s),selectedMessageId:s.id,sourceConversationId:e.conversationId,...r?{recentContext:r}:{},recentMessageCount:n.length}}function xo(e,t,s){const n=s.trim(),r=t==="instructions-only"?"":t==="recent-context"&&e.recentContext?[`Recent Scout conversation before the forwarded message (${e.recentMessageCount} ${e.recentMessageCount===1?"message":"messages"})`,e.recentContext,e.selectedMessage].join(`
|
|
14
|
-
|
|
15
|
-
`):e.selectedMessage;return n?r?`${n}
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
${r}`:n:r}const cn="openscout.project-recency.v1",ln=12;function un(e){const t=e?.trim();return t?t.length>1?t.replace(/\/+$/u,""):t:null}function Ht(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(cn);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const s=[];for(const n of t){const r=typeof n=="string"?un(n):null;r&&!s.includes(r)&&s.push(r)}return s.slice(0,ln)}catch{return[]}}function $s(e){const t=un(e);if(!t)return Ht();const s=[t,...Ht().filter(n=>n!==t)].slice(0,ln);if(typeof window<"u")try{window.localStorage.setItem(cn,JSON.stringify(s))}catch{}return s}async function jo(e){const t=e.conversationId?.trim();if(t)return t;const s=e.projectRoot?.trim()||e.cwd?.trim(),n=await W("/api/conversations/direct",{method:"POST",body:JSON.stringify({agentId:e.id,targetLabel:e.selector??e.defaultSelector??e.name,...s?{projectPath:s}:{}})}),r=n.chatId?.trim()??n.conversationId?.trim()??n.cId?.trim()??n.id?.trim();if(!r)throw new Error("Chat was created, but no chat id was returned.");return r}function G(e){if(!e)return null;const t=e.replace(/\/+$/,""),s=t.lastIndexOf("/");return s>=0?t.slice(s+1):t}function Oe(e){const t=e?.trim();return t&&(t==="/private/tmp"||t.startsWith("/private/tmp/")?t.replace(/^\/private\/tmp/u,"/tmp"):t).replace(/\/+$/,"")||null}function dn(e){const t=e.replace(/\/+$/,""),s=t.lastIndexOf("/");return s>=0?t.slice(0,s)||"/":null}function Bt(e){return e.split(/[-_\s]+/).filter(Boolean).map(t=>t.slice(0,1).toUpperCase()+t.slice(1)).join(" ")}function fn(e){if(!e)return null;const t=So(e);if(t)return{title:Bt(G(t)??"Unscoped"),root:t};const s=G(e)?.trim().toLowerCase();if(!s||s==="~")return null;const r=s.match(/^(.+?)(?:-(?:parity|codex))?-c\d+$/)?.[1];if(!r)return null;const a=dn(e);return{title:Bt(r),root:a?`${a}/${r}`:r}}function So(e){const t=e.replace(/\/+$/,"");if(/^(?:~|\/Users\/[^/]+)\/\.codex\/worktrees\//u.test(t))return null;const s=t.match(/^(.*)\/([^/]+)-worktrees(?:\/[^/]+)+$/);return s?.[1]&&s[2]?`${s[1]}/${s[2]}`:t.match(/^(.*\/[^/]+)\/(?:\.worktrees|worktrees)(?:\/[^/]+)+$/)?.[1]??null}function Co(e){const s=G(e)?.match(/^(.+)-\d+$/u),n=dn(e);return s?.[1]&&n?`${n}/${s[1]}`:null}function ko(e){const t=e?.trim();if(!t)return null;const s=t.match(/^(\/Users\/[^/]+\/dev\/[^/]+)/);if(s?.[1])return s[1];const n=t.match(/^(~\/dev\/[^/]+)/);if(n?.[1])return n[1];const r=t.match(/\.claude\/projects\/-Users-([^-]+)-dev-([^/]+)/);if(r?.[1]&&r[2]){const a=r[2].split("-packages-")[0]??r[2];return`/Users/${r[1]}/dev/${a}`}return null}function Mo(e){const t=e.match(/^\/(?:Users|home)\/[^/]+(\/.*)?$/);if(!t)return e;const s=t[1]??"";return s?`~${s}`:"~"}function Yt(e){const t=Oe(e);if(!t)return null;const n=fn(t)?.root??Co(t)??t,a=Mo(ko(n)??n);return a==="~"||/^\/(Users|home)\/[^/]+$/.test(a)||/^\/(Users|home)$/.test(a)?null:a}function zt(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+\d+$/,"").replace(/\s+/g,"")}function Ao(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-\d+$/,"")}function Io(e){let t=2166136261;for(let s=0;s<e.length;s++)t^=e.charCodeAt(s),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function Ds(e){const t=e.root??"";return t?Gt(t)?3:t.startsWith("~/dev/")||/^\/Users\/[^/]+\/dev\//.test(t)?0:t.startsWith("~/")?1:2:4}function No(e,t){return Ds(e)-Ds(t)||e.key.localeCompare(t.key)}function Eo(e){const t=new Map;for(const s of e){const n=t.get(s.slug)??[];n.push(s),t.set(s.slug,n)}for(const s of t.values()){if(s.length<=1)continue;const n=[...s].sort(No)[0];for(const r of s)r!==n&&(r.slug=`${r.slug}-${Io(r.key)}`)}}function Ro(e,t){const s=Yt(e);return s?`root:${s}`:`project:${zt(t)||"unscoped"}`}function Gt(e){return!!(e?.startsWith("/tmp/")||e?.startsWith("/private/tmp/")||e?.startsWith("/var/tmp/")||e?.startsWith("/private/var/tmp/")||/^\/(?:private\/)?var\/folders\/[^/]+\/[^/]+\/T\//.test(e??""))}function _s(e,t){const s=Yt(t),n=s?Bt(G(s)??(e?.trim()||"Unscoped")):e?.trim()||"Unscoped";return{key:Ro(s,n),title:n,root:s,slug:Ao(G(s)??n)||"unscoped"}}const To=new Set(["empty","unknown","unscoped","untitled","general"]);function Lo(e,t){e.agents.push(...t.agents),e.scoutSessions.push(...t.scoutSessions),e.nativeSessions.push(...t.nativeSessions),e.workflows.push(...t.workflows)}function Po(e){const t=new Map;for(const s of e.values()){if(!s.root)continue;const n=zt(G(s.root)??s.title);n&&!t.has(n)&&t.set(n,s)}for(const[s,n]of[...e.entries()]){if(n.root)continue;const r=zt(n.title),a=r?t.get(r):void 0;a?(Lo(a,n),e.delete(s)):(!r||To.has(n.title.trim().toLowerCase())||n.agents.length===0&&n.scoutSessions.length===0)&&e.delete(s)}}function Ba(e,t){if(t.filter(r=>r.name===e.name).length<=1)return{name:e.name,qualifier:null};const n=e.project??e.branch??e.id.replace(/^.*\./,"");return{name:e.name,qualifier:n}}function za(e){const t=[...e].filter(r=>r.kind==="direct"&&!!r.agentId).sort((r,a)=>(a.lastMessageAt??0)-(r.lastMessageAt??0)),s=new Map,n=new Map;for(const r of t){const a=n.get(r.agentId);(!a||$o(r,a))&&(s.set(r.agentId,r.id),n.set(r.agentId,r))}return{conversationByAgentId:s,sessionByAgentId:n}}function $o(e,t){const s=e.lastMessageAt??0,n=t.lastMessageAt??0;return s!==n?s>n:e.id<t.id}const ft={needs_attention:0,in_turn:1,in_flight:2,callable:3,blocked:4},Do=6e4;function Qe(e,t){const s=Oe(t),n=fn(s);return n?_s(n.title,n.root):_s(e,s)}function _o(e){const t=Oe(e.agent.projectRoot??e.agent.cwd),s=e.agent.project??e.project;return Qe(s,t)}function Oo(e){return Qe(e.project,e.cwd)}function Fo(e){return Qe(e.agentName??e.title,e.workspaceRoot)}function Uo(e){return Qe(e.project.title,e.project.root)}function wt(e){const t=e?.trim();if(!t)return null;const s=G(t)??t;return s.endsWith(".jsonl")?s.slice(0,-6):s}function Pe(e,t){const s=t?.trim();s&&e.add(s.toLowerCase());const n=wt(s);n&&e.add(n.toLowerCase())}function mn(e){const t=new Set;return Pe(t,e.agent.conversationId),Pe(t,e.agent.harnessSessionId),Pe(t,e.agent.harnessLogPath),Pe(t,e.session?.id),Pe(t,e.session?.harnessSessionId),Pe(t,e.session?.harnessLogPath),t}function De(e,t){const s=t?.trim();if(s&&e.has(s.toLowerCase()))return!0;const n=wt(s);return!!(n&&e.has(n.toLowerCase()))}function Ho(e,t){if(e.agentId&&e.agentId===t.agent.id)return!0;const s=mn(t);return De(s,e.id)||De(s,e.harnessSessionId)||De(s,e.harnessLogPath)}function Bo(e,t){const s=e?.command?.toLowerCase();return s?[t.agent.id,t.agent.selector?.replace(/^@/,"").replace(/\.node:.+$/,""),t.agent.defaultSelector?.replace(/^@/,"").replace(/\.node:.+$/,""),t.agent.harnessSessionId].filter(r=>!!(r&&r.length>=8)).some(r=>s.includes(r.toLowerCase())):!1}function zo(e,t){const s=mn(t);return De(s,e.refId)||De(s,e.sessionId)||De(s,e.transcriptPath)||Bo(e.process,t)}function Ga(e,t){if(!e)return[];const s=[];for(const n of e.transcripts??[]){const r=n.source||"unknown",a=wt(n.sessionId)??wt(n.transcriptPath);if(!a)continue;const u=(n.lastEventAt??n.mtimeMs)||null;s.push({key:`transcript:${n.transcriptPath}`,refId:a,source:r,project:n.project?.trim()||G(n.cwd)||G(n.transcriptPath)||"unknown",cwd:Oe(n.cwd),transcriptPath:n.transcriptPath,sessionId:n.sessionId,mtimeMs:n.mtimeMs,size:n.size,status:u&&t-u<=Do?"active":"idle",process:null,lastActivityAt:u})}for(const n of e.processes??[]){const r=n.source||"unknown",a=Oe(n.cwd);s.push({key:`process:${r}:${n.pid}`,refId:`pid-${n.pid}`,source:r,project:G(a)??"unknown",cwd:a,transcriptPath:null,sessionId:null,mtimeMs:null,size:null,status:"active",process:n,lastActivityAt:null})}return s.sort((n,r)=>{const a=(n.status==="active"?0:1)-(r.status==="active"?0:1);return a!==0?a:(r.lastActivityAt??0)-(n.lastActivityAt??0)||n.project.localeCompare(r.project)})}function Go(e){if(!e)return"—";const t=e.replace(/^session[_:-]?/i,"");return t.length>10?t.slice(0,8):t}function $e(e){const t=e?.trim();return t||void 0}function Wo(e){const t=$e(e.projectRoot)??$e(e.cwd);return{target:{agentId:e.id,...t?{projectPath:t}:{}},execution:{session:"new",...$e(e.harness)?{harness:$e(e.harness)}:{},...$e(e.model)?{model:$e(e.model)}:{}}}}function qo(e){if(e.length===0)return null;const t={working:0,needs_attention:1,queued:2,failed:3,completed:4},s=[...e].sort((n,r)=>{const a=t[n.status]-t[r.status];return a!==0?a:(r.updatedAt??0)-(n.updatedAt??0)})[0];return(s.summary??s.task??s.statusLabel??"").trim()||null}function Wa(e,t,s){const n=Vn(e.state,e),r=e.project??G(e.projectRoot)??"Unscoped",a=e.branch??"—",u=Ot(e.harness)??Ot(e.agentClass)??"agent";return{agent:e,status:n,stateLabel:Xn(e.state,e),project:r,branch:a,harness:u,session:t,activeTask:qo(s),activeAskCount:s.length,lastActivityAt:Math.max(0,t?.lastMessageAt??0,e.updatedAt??0)||null}}function Ko(e){return{...e,agents:[],scoutSessions:[],nativeSessions:[],workflows:[],status:"callable",lastActivityAt:null}}function mt(e,t){const s=e.get(t.key);if(s)return t.root&&(!s.root||Gt(s.root)&&!Gt(t.root))&&(s.root=t.root),s;const n=Ko(t);return e.set(t.key,n),n}function Jo(e){const t=e.agents.some(p=>p.status==="in_turn"||p.status==="in_flight"),s=e.nativeSessions.some(p=>p.status==="active"),n=e.workflows.some(p=>p.activeTaskCount>0||p.status==="running"),r=e.agents.some(p=>p.status==="callable");e.status=t||s||n?"in_turn":r?"callable":"blocked";const a=e.agents.map(p=>p.lastActivityAt??0),u=e.scoutSessions.map(p=>p.lastMessageAt??0),f=e.nativeSessions.map(p=>p.lastActivityAt??0),d=e.workflows.map(p=>p.lastActivityAt??0),b=Math.max(0,...a,...u,...f,...d);e.lastActivityAt=b||null}function Vo(e,t,s,n){const r=new Map,a=new Map;for(const d of e){const b=_o(d);mt(r,b).agents.push(d),a.set(d.agent.id,b.key)}for(const d of s)mt(r,Oo(d)).nativeSessions.push(d);for(const d of n)mt(r,Uo(d)).workflows.push(d);const u=new Map;for(const d of t){const b=d.agentId?a.get(d.agentId):void 0,p=b?r.get(b)??null:Yt(d.workspaceRoot)?mt(r,Fo(d)):null;if(!p)continue;const y=p,F=u.get(y.key)??new Set;F.has(d.id)||(F.add(d.id),u.set(y.key,F),y.scoutSessions.push(d))}Po(r);for(const d of r.values())d.agents.sort((b,p)=>{const y=ft[b.status]-ft[p.status];return y!==0?y:(p.lastActivityAt??0)-(b.lastActivityAt??0)||b.agent.name.localeCompare(p.agent.name)}),d.scoutSessions.sort((b,p)=>(p.lastMessageAt??0)-(b.lastMessageAt??0)),d.nativeSessions.sort((b,p)=>{const y=(b.status==="active"?0:1)-(p.status==="active"?0:1);return y!==0?y:(p.lastActivityAt??0)-(b.lastActivityAt??0)}),d.workflows.sort((b,p)=>{const y=(p.activeTaskCount>0?1:0)-(b.activeTaskCount>0?1:0);return y!==0?y:(p.lastActivityAt??0)-(b.lastActivityAt??0)||b.label.localeCompare(p.label)}),Jo(d);const f=[...r.values()];return Eo(f),f.sort((d,b)=>{const p=ft[d.status]-ft[b.status];return p!==0?p:(b.lastActivityAt??0)-(d.lastActivityAt??0)||d.title.localeCompare(b.title)})}function Os(e){const t=Ot(e.harness)??"scout";return{key:`scout:${e.id}`,kind:"scout",status:e.kind,harness:t,label:e.title||e.agentName||e.id,detail:e.preview??e.id,lastActivityAt:e.lastMessageAt,route:{view:"conversation",conversationId:e.id}}}function Fs(e){return{key:`native:${e.key}`,kind:"native",status:e.status,harness:e.source,label:Go(e.sessionId??e.refId),detail:e.transcriptPath??e.process?.command??e.cwd,lastActivityAt:e.lastActivityAt,route:e.sessionId||e.transcriptPath?{view:"sessions",sessionId:e.refId}:null}}function Xo(e,t){return e.agent.name.localeCompare(t.agent.name)||e.agent.id.localeCompare(t.agent.id)}function Us(e){const t={workflow:0,native:1,scout:2};return[...e].sort((s,n)=>{const r=t[s.kind]-t[n.kind];return r!==0?r:s.harness.localeCompare(n.harness)||s.key.localeCompare(n.key)})}function Yo(e){const t=new Set,s=new Set,n=[...e.agents].sort(Xo).map(a=>{const u=[];for(const f of e.scoutSessions)t.has(f.id)||Ho(f,a)&&(t.add(f.id),u.push(Os(f)));for(const f of e.nativeSessions)s.has(f.key)||zo(f,a)&&(s.add(f.key),u.push(Fs(f)));return{key:a.agent.id,row:a,sessions:Us(u)}}),r=Us([...e.nativeSessions.filter(a=>!s.has(a.key)).map(Fs),...e.scoutSessions.filter(a=>!t.has(a.id)).map(Os)]);return{agents:n,unassignedSessions:r}}const Qo=e=>e.status==="in_turn"||e.status==="in_flight";function Zo(e){let t=e.row.lastActivityAt??0;for(const s of e.sessions)t=Math.max(t,s.lastActivityAt??0);return t}function Hs(e){return e.agents.filter(t=>Qo(t.row)).length}function Bs(e){return e.agents.some(t=>t.row.activeAskCount>0)}function qa(e,t,s){const r=Vo(e,t,s,[]).map(a=>{const u=Yo(a);let f=0;for(const d of u.agents)f=Math.max(f,Zo(d));for(const d of u.unassignedSessions)f=Math.max(f,d.lastActivityAt??0);return{slice:a,agents:u.agents,unassigned:u.unassignedSessions,lastActivityAt:f}});return r.sort((a,u)=>{const f=Bs(a)?1:0,d=Bs(u)?1:0;if(f!==d)return d-f;const b=Hs(a),p=Hs(u);return b!==p?p-b:u.lastActivityAt-a.lastActivityAt}),r}function Ka(e,t){if(!t)return null;const s=t.trim().replace(/^@+/,"");if(!s)return null;const n=e.find(f=>f.id===s);if(n)return n;if(s.split(".").filter(Boolean).length>=3)return null;const a=e.filter(f=>f.handle===s||f.selector===`@${s}`||f.defaultSelector===`@${s}`||f.id.startsWith(`${s}.`)),u=Array.from(new Map(a.map(f=>[f.id,f])).values());return u.length===1?u[0]:null}function Ja(e){const s=e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return s[s.length-1]??e}function Va(e){const t=Oe(e.projectRoot??e.cwd),s=e.project??G(t);return Qe(s,t)}function Ve(e){const t=e?.trim();return t?t.length>1?t.replace(/\/+$/u,""):t:null}function Wt(e){return e.split("/").filter(Boolean).at(-1)??e}function ea(e,t,s="claude"){const n=new Map;for(const r of e){const a=Ve(r.root);a&&n.set(a,{id:r.id||`project:${a}`,title:r.title?.trim()||Wt(a),root:a,defaultHarness:r.defaultHarness?.trim()||s,source:"inventory",registrationKind:r.registrationKind?.trim()||null})}for(const r of t){const a=Ve(r.projectRoot??r.cwd);!a||n.has(a)||n.set(a,{id:`agent-project:${a}`,title:r.project?.trim()||Wt(a),root:a,defaultHarness:r.harness?.trim()||s,source:"agent",registrationKind:null})}return[...n.values()].sort((r,a)=>r.title.localeCompare(a.title,void 0,{sensitivity:"base"})||r.root.localeCompare(a.root))}function ta(e,t){const s=e.title.toLocaleLowerCase(),n=e.root.toLocaleLowerCase(),r=Wt(e.root).toLocaleLowerCase();return s===t||r===t||n===t?0:s.startsWith(t)||r.startsWith(t)?1:n.startsWith(t)?2:t.split(/\s+/u).filter(Boolean).every(u=>s.includes(u)||n.includes(u))?3:null}function sa(e,t){if(t.length===0)return[...e];const s=new Map(e.map(a=>[a.root,a])),n=[],r=new Set;for(const a of t){const u=s.get(a);!u||r.has(a)||(r.add(a),n.push(u))}return[...n,...e.filter(a=>!r.has(a.root))]}function na(e,t){const s=t.trim().toLocaleLowerCase();return s?e.map(n=>({project:n,score:ta(n,s)})).filter(n=>n.score!==null).sort((n,r)=>n.score-r.score||n.project.title.localeCompare(r.project.title,void 0,{sensitivity:"base"})||n.project.root.localeCompare(r.project.root)).map(n=>n.project):[...e]}function ra(e,t){return e===t||e.startsWith(`${t}/`)}function oa(e,t){const s=Ve(t.preferredRoot);if(s){const r=e.find(a=>a.root===s);if(r)return r}for(const r of t.recentRoots??[]){const a=Ve(r);if(!a)continue;const u=e.find(f=>f.root===a);if(u)return u}const n=Ve(t.currentDirectory);if(n){const r=e.filter(a=>ra(n,a.root)).sort((a,u)=>u.root.length-a.root.length)[0];if(r)return r}return e[0]??null}async function aa(e){await W("/api/send",{method:"POST",body:JSON.stringify({conversationId:e.conversationId,body:e.body?.trim()??"",attachments:e.attachments})})}async function ia(e,t){const s=t?.attachments?.filter(Boolean)??[],n=t?.instructions?.trim(),r=Wo(e),a=n||s.length>0?{...r,seed:{...n?{instructions:n}:{},...s.length>0?{attachments:s}:{},...t?.clientMessageId?{clientMessageId:t.clientMessageId}:{}}}:r;return await W("/api/sessions",{method:"POST",body:JSON.stringify(a)})}async function ca(e){const t=e.projectPath.trim(),s=e.harness?.trim(),n=e.model?.trim(),r=e.reasoningEffort?.trim(),a=e.instructions?.trim(),u=e.fromMessageId?.trim(),f=e.fromConversationId?.trim(),d=e.attachments?.filter(Boolean)??[];return W("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:t},execution:{session:"new",...s?{harness:s}:{},...n?{model:n}:{},...r?{reasoningEffort:r}:{}},agent:{persistence:"one_time"},...a||d.length>0||u&&f?{seed:{...a?{instructions:a}:{},...d.length>0?{attachments:d}:{},...e.clientMessageId?{clientMessageId:e.clientMessageId}:{},...u&&f?{fromMessageId:u,fromConversationId:f}:{}}}:{}})})}async function Xa(e){return W("/api/sessions",{method:"POST",body:JSON.stringify({target:{agentId:e.agentId.trim()},execution:{session:"existing",targetSessionId:e.sessionId.trim()},seed:{instructions:e.instructions.trim()}})})}function Ya(e){const t=e?.trim().toLowerCase();if(t)switch(t){case"claude":case"claude-code":case"claude_code":case"claude_stream_json":return"claude";case"codex":case"codex_app_server":return"codex";case"pi":case"pi_rpc":return"pi";case"cursor":case"cursor_exec":return"cursor";case"grok":return"grok";default:return}}async function Qa(e){const t=e.projectPath.trim(),s=e.sessionId.trim(),n=e.instructions.trim(),r=e.harness?.trim()||void 0,a=e.model?.trim()||void 0,u=e.reasoningEffort?.trim()||void 0;return W("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:t},execution:{session:"existing",targetSessionId:s,...r?{harness:r}:{},...a?{model:a}:{},...u?{reasoningEffort:u}:{}},seed:{instructions:n}})})}async function la(e,t){const s=t.message?.trim();if(t.mode==="existing-chat"){const a=await jo(e);return await aa({conversationId:a,body:s||"Shared capture",attachments:t.attachments}),{conversationId:a,agentId:e.id}}const n=await ia(e,{instructions:s||"Shared capture for context.",attachments:t.attachments}),r=n.conversationId?.trim();if(!r)throw new Error("Session started, but no conversation was returned.");return{conversationId:r,agentId:n.agentId?.trim()||e.id}}const hn=Ae.harnesses.map(e=>({id:e.id,label:e.label??e.id,description:null,state:null,ready:null,detail:null})),ua=Ae.models.map(e=>({id:e.id,label:e.label??e.id,description:e.description??null,harnesses:[...e.harnesses],source:"catalog"})),da=Ae.efforts.map(e=>({...e,harnesses:[...e.harnesses],...e.models?{models:[...e.models]}:{}})),ht={defaults:{harness:Ae.defaults?.harness??"claude",model:Ae.defaults?.model??null,reasoningEffort:Ae.defaults?.reasoningEffort??"medium"},defaultsByHarness:Ae.defaultsByHarness,harnesses:hn,models:ua,efforts:da};let Dt=null;const zs=5;function fa(e,t){const s=e.defaults.harness===t?e.defaults.model?.trim()??"":"";return s&&e.models.some(n=>n.id===s&&n.harnesses.includes(t))?s:e.models.find(n=>n.harnesses.includes(t))?.id??""}function ma(e,t){const s=e.efforts.filter(n=>n.harnesses.includes(t));return s.find(n=>n.id===e.defaults.reasoningEffort)?.id??s.find(n=>n.id==="medium")?.id??s[0]?.id??""}function ha(e){return URL.createObjectURL(e)}function _t(e){return e.replace(/^\/Users\/[^/]+/u,"~")}function pa(e){return e.split("/").filter(Boolean).at(-1)??e}function ga(e){const t=e.trim();return t.startsWith("/")||t.startsWith("~/")}function wa({file:e,onRemove:t}){const s=l.useMemo(()=>ha(e),[e]);l.useEffect(()=>()=>URL.revokeObjectURL(s),[s]);const n=e.type.startsWith("video/"),r=e.type.startsWith("image/");return i.jsxs("div",{className:"s-newchat-attachment",children:[n?i.jsx("video",{src:s,muted:!0,playsInline:!0}):r?i.jsx("img",{src:s,alt:e.name}):i.jsxs("div",{className:"s-newchat-attachment-file",title:e.name,children:[i.jsx(nr,{size:24,"aria-hidden":"true"}),i.jsx("span",{children:e.name})]}),i.jsx("span",{className:"s-newchat-attachment-badge",children:n?"video":r?"image":"file"}),i.jsx("button",{type:"button",className:"s-newchat-attachment-remove","aria-label":`Remove ${e.name}`,onClick:t,children:"×"})]})}function pt(){return{width:window.innerWidth,height:window.innerHeight}}function ba({agents:e,route:t,navigate:s,onClose:n,initialAgentId:r,initialConversationId:a,initialMessage:u,initialFiles:f,initialAttachmentFeedback:d,initialIntent:b="new-task",initialProjectPath:p,initialForwardContext:y,initialForwardContextMode:F="selected-message",defaultMode:X,draftRestored:Y=!1,onDraftChange:Ze,onDraftConsumed:et}){const C=l.useMemo(()=>Ar(t,e),[t,e]),k=b==="forward-message"&&!!y,fe=l.useMemo(()=>[...e].sort((o,c)=>(c.updatedAt??0)-(o.updatedAt??0)),[e]),me=b==="route-capture"?r??C.agentId??null:null,he=b==="route-capture"?a??C.conversationId:null,A=fe.find(o=>o.id===me)??null,Se=A?.projectRoot??A?.cwd??null,[P,Fe]=l.useState(null),[D,re]=l.useState(Dt),[Ue,Q]=l.useState(null),[$,Z]=l.useState(null),[N,pe]=l.useState(()=>p||Se||""),[R,T]=l.useState(""),[oe,E]=l.useState(0),[ge,tt]=l.useState(()=>Ht()),[Ee,U]=l.useState(!1),[He,we]=l.useState(null),[I,be]=l.useState(()=>u??""),[H,m]=l.useState(F),[w,j]=l.useState({open:!1,query:"",triggerStart:-1,index:0}),[x,L]=l.useState({open:!1,query:"",triggerStart:-1,index:0}),[B,Be]=l.useState(()=>[...f??[]]),[ae,ve]=l.useState(()=>X||(he?"existing-chat":"new-session")),[pn,Qt]=l.useState("idle"),[gn,vt]=l.useState("idle"),[Zt,Ce]=l.useState(null),[st,es]=l.useState(()=>d??null),[ze]=l.useState(()=>{if(typeof window>"u")return{title:"",url:"",selection:""};const o=document.activeElement,c=o instanceof HTMLInputElement||o instanceof HTMLTextAreaElement;return{title:document.title,url:window.location.href,selection:c?"":on(window.getSelection()?.toString()??"")}}),[yt,wn]=l.useState(!1),[ie,ts]=l.useState(()=>A?.harness?.trim()||ht.defaults.harness),[nt,ss]=l.useState(()=>A?.model?.trim()||ht.defaults.model||""),[rt,ns]=l.useState(ht.defaults.reasoningEffort||""),[xt,rs]=l.useState(()=>Y?"Restored your unsent draft.":null),[bn,jt]=l.useState(0),{ref:St,onKeyDown:vn}=Zn(!0),_=l.useRef(null),Ct=l.useRef(null),ke=l.useRef(0),ot=l.useRef(!!p),os=l.useRef(!1),[ee,Re]=l.useState(null),[yn,kt]=l.useState(null),Ge=l.useRef(null);l.useEffect(()=>{typeof window>"u"||Re(ks(null,As(),pt()))},[]),l.useEffect(()=>{if(typeof window>"u")return;const o=()=>{Re(c=>{const g=pt();return ks(c,c?null:As(),g)})};return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[]);const xn=l.useCallback(()=>{if(ee)return ee;const o=St.current;if(!o)return null;const c=o.getBoundingClientRect();return{x:Math.round(c.left),y:Math.round(c.top),width:Math.round(c.width),height:Math.round(c.height)}},[ee,St]),jn=(o,c)=>{if(typeof window>"u"||o.button!==0||!en(window.innerWidth)||!c&&o.target?.closest("button"))return;const g=xn();g&&(o.preventDefault(),o.currentTarget.setPointerCapture(o.pointerId),Ge.current={base:g,x:o.clientX,y:o.clientY,edge:c},kt(c?"resize":"move"),Re(bt(g,pt())))},Sn=o=>{const c=Ge.current;if(!c)return;const g=o.clientX-c.x,h=o.clientY-c.y,v=pt();Re(c.edge?Xr(c.base,g,h,c.edge,v):Vr(c.base,g,h,v))},as=o=>{if(Ge.current){Ge.current=null,kt(null);try{o.currentTarget.releasePointerCapture(o.pointerId)}catch{}Re(c=>(c&&Is(c),c))}},Cn=()=>{Ge.current=null,kt(null),Re(null),Is(null)},at=o=>({onPointerDown:c=>jn(c,o),onPointerMove:Sn,onPointerUp:as,onPointerCancel:as}),is=Jr(ee),kn=ee?{position:"absolute",left:ee.x,top:ee.y,width:ee.width,height:ee.height,maxWidth:"none",maxHeight:"none",...is?{"--s-newchat-input-min":`${is}px`}:{}}:void 0,te=l.useMemo(()=>sa(ea(P?.projects??[],e,P?.context.defaultHarness??"claude"),ge),[e,P,ge]),M=te.find(o=>o.root===N)??null??(N?{id:`direct:${N}`,title:pa(N),root:N,defaultHarness:P?.context.defaultHarness??A?.harness??"claude",source:"agent",registrationKind:null}:null),Mt=l.useMemo(()=>{const o=new Set,c=M?fe.filter(h=>h.projectRoot?.trim()===M.root||h.cwd?.trim()===M.root):[];return(c.length>0?c:fe).flatMap(h=>{if(h.retiredFromFleet)return[];const v=h.handle?.trim().replace(/^@+/,"")||Wn(h.id)||"",K=v.toLowerCase();return!v||o.has(K)?[]:(o.add(K),[{id:h.id,label:v,name:h.name||v,handle:v}])})},[M,fe]),se=(D?.harnesses??hn).find(o=>o.id===ie)??null,Te=!D&&!$,cs=l.useMemo(()=>{const o=Zs(D??ht);return ie&&!o.harnesses.some(c=>c.value===ie)?{...o,harnesses:[...o.harnesses,{value:ie,label:ie,models:[{value:"",label:"Default",note:"harness picks"}]}]}:o},[D,ie]),We=l.useMemo(()=>na(te,R),[R,te]),ne=l.useMemo(()=>{const o=We.slice(0,zs);if(!N||o.some(g=>g.root===N))return o;const c=We.find(g=>g.root===N);return c?[c,...o.slice(0,zs-1)]:o},[We,N]),ye=ga(R)&&!te.some(o=>o.root===R.trim())?R.trim():null,it=ne.length+(ye?1:0),Mn=Math.max(0,(R.trim()?We.length:te.length)-ne.length),An=!!(A&&M&&[A.projectRoot,A.cwd].some(o=>o?.trim()===M.root)),q=B.length>0,S=pn==="starting",ls=bn>0,ct=An&&!!(A?.conversationId||he),xe=!q||!ct||ae==="new-session",us=xe&&(Te||se?.ready===!1),ds=k?"Forward to new task":q?"Route capture":"New task",fs=l.useMemo(()=>k?[]:go({pageTitle:ze.title,pageUrl:ze.url,selection:yt?ze.selection:void 0}),[yt,k,ze]),ce=k&&y?xo(y,H,I):wo(I,fs),In=gn==="uploading"?"Uploading capture":k?"Forwarding to new task":q?"Routing capture":"Sending message",Nn=q?`Submitted to ${M?.title??A?.name??"Scout"}. Opening the chat when the broker returns it.`:ce?`Routing your first message through /${M?.title??A?.name??"project"}.`:`Starting a project-routed chat in /${M?.title??A?.name??"project"}.`,ms=q&&ct,En=xe&&(Te||!!$||se?.ready===!1),Rn=ms||!k&&En,le=l.useMemo(()=>{if(!w.open)return[];const o=w.query.toLowerCase();return o?vs.filter(c=>c.command.toLowerCase().startsWith(`/${o}`)||c.command.toLowerCase().includes(o)):vs},[w.open,w.query]),ue=l.useMemo(()=>{if(!x.open)return[];const o=x.query.toLowerCase();return o?Mt.filter(c=>c.handle.toLowerCase().includes(o)||c.name.toLowerCase().includes(o)||c.label.toLowerCase().includes(o)).slice(0,8):Mt.slice(0,8)},[Mt,x.open,x.query]),At=l.useCallback(()=>{j(o=>o.open?{...o,open:!1}:o),L(o=>o.open?{...o,open:!1}:o)},[]),qe=l.useCallback((o,c)=>{const g=qn(o,c);j(v=>g?{open:!0,query:g.query,triggerStart:g.start,index:v.open&&v.triggerStart===g.start?v.index:0}:v.open?{...v,open:!1}:v);const h=Kn(o,c);L(v=>h?{open:!0,query:h.query,triggerStart:h.start,index:v.open&&v.triggerStart===h.start?v.index:0}:v.open?{...v,open:!1}:v)},[]),Tn=l.useCallback((o,c)=>{be(o),qe(o,c?.caret??o.length)},[qe]),It=l.useCallback(o=>{const c=w.triggerStart;if(c<0)return;const g=_.current?.selectionStart??I.length,h=I.slice(0,c),v=I.slice(g),K=`${h}${o.insert}${v}`;be(K),j(J=>({...J,open:!1})),requestAnimationFrame(()=>{const J=_.current;if(!J)return;const O=h.length+o.insert.length;J.focus(),J.setSelectionRange(O,O)})},[I,w.triggerStart]),Nt=l.useCallback(o=>{const c=x.triggerStart;if(c<0)return;const g=_.current?.selectionStart??I.length,h=I.slice(0,c),v=I.slice(g),K=`@${o.handle}${v.length===0||!v.startsWith(" ")?" ":""}`,J=`${h}${K}${v}`;be(J),L(O=>({...O,open:!1})),requestAnimationFrame(()=>{const O=_.current;if(!O)return;const Le=h.length+K.length;O.focus(),O.setSelectionRange(Le,Le)})},[x.triggerStart,I]),hs=l.useCallback(o=>{if(S)return;const g=_.current?.selectionStart??I.length,h=I.slice(0,g),v=I.slice(g),J=`${h&&!/\s$/.test(h)?" ":""}${o}`,O=`${h}${J}${v}`,Le=h.length+J.length;be(O),qe(O,Le),requestAnimationFrame(()=>{const Rt=_.current;Rt&&(Rt.focus(),Rt.setSelectionRange(Le,Le))})},[S,I,qe]),Ln=l.useCallback(o=>{const c=w.open&&le.length>0,g=x.open&&ue.length>0;if(!c&&!g)return!1;if(o.key==="ArrowDown")return c?j(h=>({...h,index:(h.index+1)%le.length})):L(h=>({...h,index:(h.index+1)%ue.length})),!0;if(o.key==="ArrowUp")return c?j(h=>({...h,index:(h.index-1+le.length)%le.length})):L(h=>({...h,index:(h.index-1+ue.length)%ue.length})),!0;if(o.key==="Escape")return At(),!0;if((o.key==="Enter"||o.key==="Tab")&&!o.shiftKey&&!o.metaKey&&!o.ctrlKey&&!o.altKey){if(c){const h=le[w.index]??le[0];h&&It(h)}else{const h=ue[x.index]??ue[0];h&&Nt(h)}return!0}return!1},[Nt,It,At,ue,le,x.index,x.open,w.index,w.open]),Et=l.useCallback(()=>{S||n()},[S,n]),Pn=l.useCallback(()=>{rs("Draft kept open. Use Esc or × when you are ready to close it."),requestAnimationFrame(()=>_.current?.focus())},[]);l.useEffect(()=>{const o=c=>{c.key==="Escape"&&(c.preventDefault(),Et())};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[Et]),l.useEffect(()=>{if(!xt)return;const o=window.setTimeout(()=>rs(null),5e3);return()=>window.clearTimeout(o)},[xt]),l.useEffect(()=>{_.current?.focus()},[]),l.useEffect(()=>{let o=!1;return W("/api/agent-config/snapshot").then(c=>{o||(Fe(c),Q(null))}).catch(c=>{o||Q(c instanceof Error?c.message:"Could not load projects.")}),()=>{o=!0}},[]);const lt=l.useCallback(()=>{W("/api/runner/options").then(o=>{Dt=o,re(o),Z(null)}).catch(()=>{Dt||Z("Model catalog unavailable. Harness defaults are still available.")})},[]);l.useEffect(()=>{lt()},[lt]),l.useEffect(()=>{if(ot.current||te.length===0)return;const o=oa(te,{preferredRoot:Se,currentDirectory:P?.context.currentDirectory,recentRoots:ge});o&&pe(o.root)},[P?.context.currentDirectory,Se,te,ge]),l.useEffect(()=>{if(os.current)return;const o=M?.defaultHarness?.trim()||A?.harness?.trim()||D?.defaults.harness||"claude";if(ts(o),!D)return;const c=A?.model?.trim()??"",g=D.models.some(h=>h.id===c&&h.harnesses.includes(o));ss(g?c:fa(D,o)),ns(ma(D,o))},[A?.harness,A?.model,D,M?.defaultHarness,M?.root]),l.useLayoutEffect(()=>{Ze?.({intent:b,...me?{agentId:me}:{},...he?{conversationId:he}:{},message:I,files:B,attachmentFeedback:st,mode:ae,projectPath:N,projectQuery:R,...k&&y?{forwardContext:y}:{},forwardContextMode:H})},[st,B,H,y,b,k,I,ae,Ze,N,R,me,he,M?.title]);const ps=l.useCallback((o,c="Added")=>{if(S)return;const g=o.filter(Xe),h=o.filter(v=>!Xe(v));if(g.length>0&&(Be(v=>[...v,...g]),es(g.length===1?`${c} ${g[0]?.name??"1 attachment"}.`:`${c} ${g.length} attachments.`)),h.length>0){const v=h.length===1?h[0]?.name??"That file":`${h.length} files`;Ce(`${v} ${h.length===1?"is":"are"} not supported. Attach markdown, code, an image, or a video clip.`)}else g.length>0&&Ce(null)},[S]),ut=l.useCallback((o,c)=>{const g=Ys(o);if(g.length===0){Ce("Scout could not read that file. Try dropping or pasting it again.");return}ps(g,c)},[ps]),$n=l.useCallback(o=>{S||!dt(o.dataTransfer)||(o.preventDefault(),o.stopPropagation(),ke.current+=1,jt(ke.current))},[S]),Dn=l.useCallback(o=>{S||!dt(o.dataTransfer)||(o.preventDefault(),o.stopPropagation(),o.dataTransfer.dropEffect="copy")},[S]),_n=l.useCallback(o=>{ke.current!==0&&(o.preventDefault(),o.stopPropagation(),ke.current=Math.max(0,ke.current-1),jt(ke.current))},[]),On=l.useCallback(o=>{dt(o.dataTransfer)&&(o.preventDefault(),o.stopPropagation(),ke.current=0,jt(0),ut(o.dataTransfer,"Added"))},[ut]),Fn=l.useCallback(o=>{S||!dt(o.clipboardData)||(o.preventDefault(),o.stopPropagation(),ut(o.clipboardData,"Pasted"))},[ut,S]),gs=o=>{ot.current=!0,tt($s(o.root)),pe(o.root),T(""),E(0),U(!1),we(null),requestAnimationFrame(()=>_.current?.focus())},ws=o=>{const c=o.trim();c&&(ot.current=!0,tt($s(c)),pe(c),T(""),E(0),U(!1),we(null),requestAnimationFrame(()=>_.current?.focus()))},Un=()=>{ot.current=!0,pe(""),T(""),E(0),U(!1),we(null),requestAnimationFrame(()=>_.current?.focus())},Hn=o=>{if(o.key==="ArrowDown"||o.key==="ArrowUp"){o.preventDefault(),E(c=>{if(it===0)return 0;const g=o.key==="ArrowDown"?1:-1;return(c+g+it)%it});return}if(o.key==="Enter"){o.preventDefault();const c=ne[oe];c?gs(c):ye&&oe===ne.length&&ws(ye);return}o.key==="Escape"&&Ee&&R&&(o.preventDefault(),o.stopPropagation(),T(""),E(0))},bs=o=>{os.current=!0,ts(o.harness),ss(o.model),ns(o.effort)},Bn=async()=>{if(S)return;if(k&&!ce){Ce("Add instructions, or choose a context option that includes the source message."),requestAnimationFrame(()=>_.current?.focus());return}if(!M){Ce(null),we("Choose a project before starting this task."),U(!0),requestAnimationFrame(()=>Ct.current?.focus());return}if(us)return;Qt("starting"),vt(B.length>0?"uploading":"starting"),Ce(null);const o=fo(),c=Date.now();try{let g=[];if(B.length>0&&(g=await kr(B),vt("starting")),q&&A&&ct&&ae==="existing-chat"){const O=await la(A,{mode:ae==="existing-chat"&&ct?"existing-chat":"new-session",message:ce,attachments:g});be(""),Be([]),es(null),s({view:"agents-v2",agentId:O.agentId,conversationId:O.conversationId,tab:"message"}),et?.(),n();return}const h=await ca({projectPath:M.root,harness:ie,...nt?{model:nt}:{},...rt?{reasoningEffort:rt}:{},...ce?{instructions:ce}:q?{instructions:"Shared capture for context."}:{},...g.length>0?{attachments:g}:{},...k&&y?{fromMessageId:y.selectedMessageId,fromConversationId:y.sourceConversationId}:{},clientMessageId:o}),v=h.conversationId?.trim();if(!v)throw new Error("Message sent, but no Chat was returned.");const K=h.messageId?.trim();K&&mo({conversationId:v,messageId:K,clientMessageId:o,body:ce||(g.length>0?"Shared capture for context.":"New session started."),attachments:g,agentId:h.agentId,flightId:h.flightId,invocationId:h.invocationId,createdAt:c}),be(""),s({view:"conversation",conversationId:v}),et?.(),n()}catch(g){Ce(g instanceof Error?g.message:q?"Could not route capture.":"Could not send message."),Qt("idle"),vt("idle")}};return i.jsx("div",{className:"s-newchat-backdrop",onClick:Pn,onDragEnter:$n,onDragOver:Dn,onDragLeave:_n,onDrop:On,onPaste:Fn,role:"presentation",children:i.jsxs("div",{ref:St,className:`s-newchat-panel${S?" s-newchat-panel--starting":""}${ls?" s-newchat-panel--dragging":""}`,style:kn,"data-framed":ee?"true":void 0,"data-gesture":yn??void 0,role:"dialog","aria-modal":"true","aria-label":ds,onClick:o=>o.stopPropagation(),onKeyDown:vn,tabIndex:-1,children:[i.jsxs("header",{className:"s-newchat-head",title:"Drag to move · double-click to recenter",onDoubleClick:Cn,...at(null),children:[i.jsx("span",{className:"s-newchat-title",children:ds}),i.jsx("div",{className:"s-newchat-head-status",children:i.jsx("span",{role:"status","aria-live":"polite",children:xt})}),i.jsx("button",{type:"button",className:"s-newchat-close",onClick:Et,disabled:S,"aria-label":"Close (Esc)",title:"Close (Esc)",children:i.jsx(er,{size:14,"aria-hidden":"true"})})]}),ls?i.jsx("div",{className:"s-newchat-drop-prompt",role:"status","aria-live":"polite",children:"Drop to attach markdown, code, images, or video"}):null,i.jsxs("div",{className:"s-newchat-body",children:[i.jsxs("div",{className:"s-newchat-lead",children:[k?i.jsx("p",{className:"s-newchat-forward-intro",children:"Choose the destination, runtime, and visible Scout context to carry into a fresh task."}):null,i.jsx(Qn,{context:fs,selection:ze.selection,attached:yt,onToggleSelection:()=>wn(o=>!o)}),i.jsxs("div",{className:"s-newchat-project-bar",children:[i.jsx("span",{className:"label-md s-newchat-project-label",children:"Project"}),i.jsxs("button",{type:"button",className:"s-newchat-project-summary","data-empty":M?void 0:"true","aria-expanded":Ee,"aria-controls":"s-newchat-project-panel","aria-describedby":He?"s-newchat-project-reminder":void 0,disabled:S,onClick:()=>{const o=!Ee;U(o),requestAnimationFrame(o?()=>Ct.current?.focus():()=>_.current?.focus())},children:[i.jsx("span",{className:"s-newchat-project-summary-title",children:M?`/${M.title}`:"Choose a project"}),M?i.jsx("span",{className:"s-newchat-project-summary-path",title:M.root,children:_t(M.root)}):i.jsx("span",{className:"s-newchat-project-summary-path",children:"Required when you send"}),i.jsx(tr,{size:13,"aria-hidden":"true"})]})]}),He?i.jsx("p",{id:"s-newchat-project-reminder",className:"s-newchat-project-reminder",role:"alert",children:He}):null,Ee?i.jsxs("div",{id:"s-newchat-project-panel",className:"s-newchat-project-panel",children:[i.jsxs("div",{className:"s-newchat-project-picker",children:[i.jsx(sr,{size:13,"aria-hidden":"true",className:"s-newchat-project-search-icon"}),i.jsx("input",{ref:Ct,id:"s-newchat-project-search",className:"s-newchat-project-search",type:"search",role:"combobox","aria-label":"Filter projects or enter a project path","aria-autocomplete":"list","aria-expanded":"true","aria-controls":"s-newchat-project-results","aria-activedescendant":it>0?`s-newchat-project-option-${oe}`:void 0,value:R,placeholder:P?"Filter projects, or type a path…":"Loading projects…",disabled:S,spellCheck:!1,autoComplete:"off",onChange:o=>{T(o.currentTarget.value),E(0)},onKeyDown:Hn})]}),i.jsxs("div",{id:"s-newchat-project-results",className:"s-newchat-project-results",role:"listbox","aria-label":"Projects",children:[ne.map((o,c)=>i.jsxs("div",{id:`s-newchat-project-option-${c}`,role:"option","aria-selected":o.root===N,"aria-disabled":S||void 0,className:"s-newchat-project-option","data-active":c===oe||void 0,onMouseDown:g=>g.preventDefault(),onMouseEnter:()=>E(c),onClick:()=>{S||gs(o)},children:[i.jsxs("span",{className:"s-newchat-project-option-title",children:["/",o.title]}),i.jsx("span",{className:"s-newchat-project-option-path",children:_t(o.root)})]},o.root)),ye?i.jsxs("div",{id:`s-newchat-project-option-${ne.length}`,role:"option","aria-selected":ye===N,"aria-disabled":S||void 0,className:"s-newchat-project-option s-newchat-project-option--path","data-active":oe===ne.length||void 0,onMouseDown:o=>o.preventDefault(),onMouseEnter:()=>E(ne.length),onClick:()=>{S||ws(ye)},children:[i.jsx("span",{className:"s-newchat-project-option-title",children:"Use this project path"}),i.jsx("span",{className:"s-newchat-project-option-path",children:_t(ye)})]}):null,ne.length===0&&!ye?i.jsx("p",{className:"s-newchat-project-empty",children:"No project matched. Type an absolute path such as ~/dev/my-project."}):null]}),i.jsxs("div",{className:"s-newchat-project-panel-foot",children:[Mn>0?i.jsxs("p",{className:"s-newchat-project-foot",children:[ne.length," of"," ",R.trim()?We.length:te.length,R.trim()?" matches":" projects"," · type to narrow"]}):i.jsx("span",{}),M?i.jsx("button",{type:"button",className:"s-newchat-project-clear",onClick:Un,children:"Clear project"}):null]}),Ue&&te.length===0?i.jsx("div",{className:"s-newchat-error",role:"alert",children:Ue}):null]}):null,k&&y?i.jsxs("div",{className:"s-newchat-forward-config",children:[i.jsxs("div",{className:"s-newchat-field",children:[i.jsx("span",{className:"label-md s-newchat-field-label",children:"Runtime"}),i.jsx("div",{className:"s-newchat-forward-runtime",children:i.jsx(js,{catalog:cs,value:{harness:ie,model:nt,effort:rt},onChange:bs,status:Te?"loading":$?"error":"ready",statusMessage:$??void 0,onRetry:lt,disabled:S||!xe})}),xe&&Te?i.jsxs("p",{className:"s-newchat-runtime-note","data-pending":"true",role:"status",children:[i.jsx(Tt,{size:11,className:"s-newchat-runtime-note-spinner","aria-hidden":"true"}),"Loading the model catalog…"]}):xe&&($||se?.ready===!1)?i.jsx("p",{className:"s-newchat-runtime-note",role:"alert",children:se?.ready===!1?se.detail||`${se.label} is unavailable.`:$}):null]}),i.jsxs("div",{className:"s-newchat-field",children:[i.jsx("span",{id:"s-newchat-forward-context-label",className:"label-md s-newchat-field-label",children:"Context"}),i.jsxs("div",{className:"s-newchat-context-options",role:"radiogroup","aria-labelledby":"s-newchat-forward-context-label",children:[i.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":H==="selected-message",disabled:S,onClick:()=>m("selected-message"),children:[i.jsx("span",{className:"s-newchat-context-option-title",children:"Selected message"}),i.jsx("span",{className:"s-newchat-context-option-copy",children:"Carry only the message you chose."})]}),i.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":H==="recent-context",disabled:S||y.recentMessageCount===0,onClick:()=>m("recent-context"),children:[i.jsx("span",{className:"s-newchat-context-option-title",children:"Recent context + message"}),i.jsx("span",{className:"s-newchat-context-option-copy",children:y.recentMessageCount>0?`Carry ${y.recentMessageCount} preceding visible ${y.recentMessageCount===1?"message":"messages"}, then this message.`:"No preceding visible messages are available."})]}),i.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":H==="instructions-only",disabled:S,onClick:()=>m("instructions-only"),children:[i.jsx("span",{className:"s-newchat-context-option-title",children:"Instructions only"}),i.jsx("span",{className:"s-newchat-context-option-copy",children:"Start clean without source conversation text."})]})]}),i.jsx("p",{className:"s-newchat-context-note",children:"Recent context is a bounded Scout excerpt, not a generated summary or full model context."})]})]}):null,k?i.jsx("span",{className:"label-md s-newchat-field-label",children:"Instructions"}):null,i.jsx(zn,{density:"panel",value:I,onChange:Tn,onSend:()=>{Bn()},sendOnEnter:!0,textareaRef:_,placeholder:k?"Add what the new task should do (optional)…":q?"What should the agent do with this?":"Describe the task, or leave blank…","aria-label":k?"Instructions for the new task":"Message",disabled:S,sending:S,canSend:!S&&!us&&(!k||!!ce),rows:7,maxHeightPx:280,sendTitle:k?"Forward to new task (Enter)":q?"Route (Enter)":"Start task (Enter)",sendAriaLabel:k?"Forward to new task":q?"Route capture":"Start task",overlay:i.jsxs(i.Fragment,{children:[w.open?i.jsx(xs,{label:"Slash commands",placement:"inside",items:le.map(o=>({id:o.command,token:o.label,description:o.description})),activeIndex:w.index,onPick:o=>{const c=le[o];c&&It(c)},onActiveIndexChange:o=>j(c=>({...c,index:o}))}):null,x.open?i.jsx(xs,{label:"Mention agent",placement:"inside",items:ue.map(o=>({id:o.id,token:`@${o.handle}`,description:o.name,avatar:{label:o.name[0]?.toUpperCase()??"?",color:Yn(o.name)}})),activeIndex:x.index,onPick:o=>{const c=ue[o];c&&Nt(c)},onActiveIndexChange:o=>L(c=>({...c,index:o}))}):null]}),onSelect:o=>{const c=o.currentTarget;qe(c.value,c.selectionStart)},onBlur:()=>window.setTimeout(At,120),onKeyDown:Ln,leadingTools:i.jsxs("div",{className:"s-newchat-compose-triggers","aria-label":"Message shortcuts",children:[i.jsx("button",{type:"button",className:"s-newchat-command-trigger",disabled:S,onClick:()=>hs("/"),children:"/Commands"}),i.jsx("span",{"aria-hidden":"true",children:"·"}),i.jsx("button",{type:"button",className:"s-newchat-command-trigger",disabled:S,onClick:()=>hs("@"),children:"@Agents"})]}),tools:k?void 0:i.jsx(js,{catalog:cs,value:{harness:ie,model:nt,effort:rt},onChange:bs,status:Te?"loading":$?"error":"ready",statusMessage:$??void 0,onRetry:lt,disabled:S||!xe})}),B.length>0?i.jsx("div",{className:"s-newchat-attachments","aria-label":"Attached captures",children:B.map((o,c)=>i.jsx(wa,{file:o,onRemove:()=>Be(g=>g.filter((h,v)=>v!==c))},`${o.name}:${o.size}:${c}`))}):null,st?i.jsx("div",{className:"s-newchat-attachment-feedback",role:"status","aria-live":"polite",children:st}):null,Zt&&i.jsx("div",{className:"s-newchat-error",role:"alert",children:Zt}),S&&i.jsxs("div",{className:"s-newchat-progress",role:"status","aria-live":"polite",children:[i.jsx(Tt,{size:14,className:"s-newchat-progress-spinner","aria-hidden":"true"}),i.jsxs("div",{className:"s-newchat-progress-copy",children:[i.jsx("span",{className:"label-md s-newchat-progress-title",children:In}),i.jsx("span",{className:"s-newchat-progress-detail",children:Nn}),ce&&i.jsx("span",{className:"s-newchat-progress-message",children:ce})]})]})]}),Rn?i.jsxs("div",{className:"s-newchat-config",children:[ms?i.jsxs("div",{className:"s-newchat-mode",role:"group","aria-label":"Delivery mode",children:[i.jsx("button",{type:"button",className:`s-newchat-mode-btn${ae==="existing-chat"?" s-newchat-mode-btn--on":""}`,disabled:S,onClick:()=>ve("existing-chat"),children:"Existing chat"}),i.jsx("button",{type:"button",className:`s-newchat-mode-btn${ae==="new-session"?" s-newchat-mode-btn--on":""}`,disabled:S,onClick:()=>ve("new-session"),children:"New chat"})]}):null,xe&&Te?i.jsxs("p",{className:"s-newchat-runtime-note","data-pending":"true",role:"status",children:[i.jsx(Tt,{size:11,className:"s-newchat-runtime-note-spinner","aria-hidden":"true"}),"Loading the model catalog…"]}):xe&&($||se?.ready===!1)?i.jsx("p",{className:"s-newchat-runtime-note",role:"alert",children:se?.ready===!1?se.detail||`${se.label} is unavailable.`:$}):null]}):null]}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--e","aria-hidden":"true",title:"Drag to resize",...at("e")}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--s","aria-hidden":"true",title:"Drag to resize",...at("s")}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--se","aria-hidden":"true",title:"Drag to resize",...at("se")})]})})}const Za=Object.freeze(Object.defineProperty({__proto__:null,NewChatComposer:ba},Symbol.toStringTag,{value:"Module"}));export{Me as A,js as B,Xe as C,$a as D,dt as E,jr as F,Ya as G,Xa as H,Qa as I,Ar as J,Ys as K,Za as L,xs as M,ba as N,Ae as R,Va as a,Ba as b,Wa as c,za as d,Ga as e,qa as f,Hs as g,jo as h,Bs as i,Qo as j,Ie as k,Fa as l,co as m,Wo as n,rn as o,Ja as p,lo as q,Ka as r,_a as s,Ua as t,Oa as u,Ha as v,Xt as w,fo as x,kr as y,Da as z};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as o,j as e}from"./index-NRbRrZw-.js";import{a as v}from"./api-DEHEgJ9m.js";import{d as b,S as u}from"./SessionObserve-pbozyqVv.js";import{u as h}from"./sse-QSbhyq9A.js";import{f as x}from"./time-Dhsh_2EG.js";import{SessionObserveEmbedStatus as f}from"./SessionObserveEvidence-C54Xvbps.js";import{E as p}from"./external-link-BheHazeW.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-DCY-m0JK.js";import"./index-CD2foMB8.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./colors-BtO5_zlx.js";import"./mentions-KNASbAjG.js";import"./Provider-Cd-QZltN.js";import"./provider-Bq0ScH3v.js";import"./router-Bx1tiwVe.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-CetjnYut.js";import"./createLucideIcon-Da0lq809.js";import"./TextDocumentSurface-B29xZNlI.js";import"./file-text-BGVkHS4_.js";import"./x-DuzAbpk5.js";import"./chevron-right-CV7sEVBS.js";import"./code-xml-CPzpZkhu.js";import"./arrow-left-B0CdJdAC.js";import"./arrow-right-YRBoTTyf.js";import"./scout-voice-BT3gYDhU.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-feLCB3Zm.js";import"./NewChatComposer-BPsg8shF.js";import"./text-B2UZi3l9.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Be0T8xv2.js";import"./conversation-model-CIzM7aXT.js";import"./HarnessMark-CEzmPFHC.js";import"./NewChatOrigin-CCiPg_WR.js";import"./chevron-down-Jh540uf3.js";import"./search-HmdKXdtR.js";import"./chunk-HRAB3GC3-BYQZ1LOn.js";import"./AgentDetailCard-2DZQahiN.js";import"./AgentLiveActions-BmXDRxER.js";import"./terminal-takeover-BArLfNtd.js";import"./openContent-C6XO6kr5.js";import"./eye-B908WSFH.js";import"./terminal-DNZTCr6a.js";import"./message-markup-BP2nH9kQ.js";import"./ObservedTopologyPanel-CfHYu-4Z.js";import"./ObserveTextFlow-CKYltTPJ.js";import"./use-reduced-motion-0fAsybdo.js";import"./proxy-DtC2iXnT.js";import"./message-circle-2v9Udia0.js";import"./wrench-DwFKomxg.js";import"./index-BWHgHrtv.js";const j=2500,g=240,N=5;function I({ask:r,sessionId:s}){const[i,c]=o.useState(!1);if(!r)return e.jsxs("section",{className:"s-observe-embed-ask s-observe-embed-ask--unknown",children:[e.jsx("div",{className:"s-observe-embed-ask-kicker",children:"Ask"}),e.jsx("div",{className:"s-observe-embed-ask-unknown",children:"Not available for this observed session."})]});const m=r.task.length>g||r.task.split(`
|
|
2
|
-
`).length>N,n=r.conversationId?`/messages/${encodeURIComponent(r.conversationId)}${r.messageId?`#msg-${encodeURIComponent(r.messageId)}`:""}`:null,d=`/flights/${encodeURIComponent(r.flightId)}/observe${s?`?session=${encodeURIComponent(s)}`:""}`;return e.jsxs("section",{className:"s-observe-embed-ask",children:[e.jsxs("div",{className:"s-observe-embed-ask-head",children:[e.jsxs("div",{children:[e.jsx("div",{className:"s-observe-embed-ask-kicker",children:"Ask"}),e.jsxs("div",{className:"s-observe-embed-ask-byline",children:[e.jsx("span",{children:r.requesterName}),e.jsx("span",{"aria-hidden":"true",children:"·"}),e.jsx("time",{dateTime:new Date(r.requestedAt).toISOString(),children:x(r.requestedAt)})]})]}),e.jsxs("nav",{className:"s-observe-embed-ask-links","aria-label":"Run provenance",children:[n&&e.jsxs("a",{href:n,target:"_top",children:["Origin ",e.jsx(p,{size:11,"aria-hidden":"true"})]}),e.jsxs("a",{href:d,target:"_top",children:["Flight ",e.jsx(p,{size:11,"aria-hidden":"true"})]})]})]}),e.jsx("div",{className:`s-observe-embed-ask-body${i?" is-expanded":""}`,children:r.task}),m&&e.jsx("button",{type:"button",className:"s-observe-embed-ask-toggle","aria-expanded":i,onClick:()=>c(t=>!t),children:i?"Show less":"Show full ask"})]})}function Ce({agentId:r}){const[s,i]=o.useState(null),[c,m]=o.useState(!0),[n,d]=o.useState(null),t=o.useCallback(async(l=!1)=>{l||m(!0),d(null);try{const a=await v(`/api/agents/${encodeURIComponent(r)}/observe`);i(a)}catch(a){l||i(null),d(a instanceof Error?a.message:String(a))}finally{m(!1)}},[r]);return o.useEffect(()=>{t();const l=window.setInterval(()=>{t(!0)},j);return()=>window.clearInterval(l)},[t]),h(()=>{t(!0)}),n&&!s?e.jsx("div",{className:"s-observe-embed-page",children:e.jsxs("div",{className:"s-observe-embed-empty",children:[e.jsx("div",{className:"s-observe-embed-empty-title",children:"Observe unavailable"}),e.jsx("div",{className:"s-observe-embed-empty-detail",children:n})]})}):c&&!s?e.jsx("div",{className:"s-observe-embed-page",children:e.jsxs("div",{className:"s-observe-embed-empty",children:[e.jsx("div",{className:"s-observe-embed-empty-title",children:"Resolving trace"}),e.jsx("div",{className:"s-observe-embed-empty-detail",children:r})]})}):e.jsxs("div",{className:"s-observe-embed-page",children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(f,{source:s.source,fidelity:s.fidelity,sessionId:s.sessionId,evidence:b({source:s.source,fidelity:s.fidelity,live:s.data.live,eventCount:s.data.events.length})}),e.jsx(I,{ask:s.initiatingAsk,sessionId:s.sessionId})]}),e.jsx(u,{data:s?.data,agentId:r,sessionId:s?.sessionId,showRail:!1,observeSource:s?.source,observeFidelity:s?.fidelity})]})}export{I as InitiatingAsk,Ce as ObserveEmbedScreen};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-CrP5K-dk.js","assets/gestures-AzPBSf20.js","assets/index-NRbRrZw-.js","assets/index-DzlEgstl.css","assets/use-reduced-motion-0fAsybdo.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as n,j as e,_ as b}from"./index-NRbRrZw-.js";import{l as p}from"./lane-observe-vfyACHi0.js";import{C as f}from"./chevron-down-Jh540uf3.js";import{u as h}from"./use-reduced-motion-0fAsybdo.js";import{L as g,m as x}from"./proxy-DtC2iXnT.js";import"./time-Dhsh_2EG.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./createLucideIcon-Da0lq809.js";const j=420,N=()=>b(()=>import("./conversation-motion-features-CrP5K-dk.js"),__vite__mapDeps([0,1,2,3,4])).then(t=>t.default);function R({text:t}){const s=h(),[o,i]=n.useState(!0),r=n.useRef(null);return n.useEffect(()=>(i(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>i(!1),j),()=>{r.current&&clearTimeout(r.current)}),[t]),e.jsx(g,{features:N,strict:!0,children:e.jsx(x.span,{className:"s-observe-stream-cursor","data-receiving":o||void 0,"aria-hidden":"true",initial:!1,animate:s||o?{opacity:1}:{opacity:[1,.28,1]},transition:s||o?{duration:.12}:{duration:1.05,ease:"linear",repeat:1/0}})})}function w({text:t,live:s,compact:o=!1,copyControl:i}){const r=n.useId(),c=t.trim(),[a,d]=n.useState(s),u=n.useRef(s);n.useEffect(()=>{s?d(!0):u.current&&d(!1),u.current=s},[s]);const l=p(c,o?120:168,1),m=e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"s-observe-reasoning-state",children:[e.jsx("span",{className:"s-observe-reasoning-dot","aria-hidden":"true"}),s?"Thinking":"Reasoning"]}),!s&&!a&&l?e.jsx("span",{className:"s-observe-reasoning-preview",title:c,children:l}):null,s?null:e.jsx(f,{className:"s-observe-reasoning-chevron",size:12,strokeWidth:1.8,"aria-hidden":"true"})]});return e.jsxs("div",{className:["s-observe-block","s-observe-reasoning",o&&"s-observe-reasoning--compact",s&&"s-observe-reasoning--live",a&&"s-observe-reasoning--open"].filter(Boolean).join(" "),"aria-busy":s||void 0,children:[s?e.jsx("div",{className:"s-observe-reasoning-header",role:"status",children:m}):e.jsx("button",{type:"button",className:"s-observe-reasoning-header s-observe-reasoning-header--button","aria-expanded":a,"aria-controls":r,"aria-label":a?"Hide reasoning":"Show reasoning",onClick:()=>d(v=>!v),children:m}),e.jsx("div",{id:r,className:"s-observe-reasoning-body","aria-hidden":!a,inert:a?void 0:!0,children:e.jsx("div",{className:"s-observe-reasoning-body-clip",children:e.jsxs("div",{className:"s-observe-reasoning-body-inner",children:[e.jsxs("div",{className:"s-observe-reasoning-text",children:[c,s?e.jsx(R,{text:c}):null]}),i?e.jsx("div",{className:"s-observe-reasoning-tools",children:i}):null]})})})]})}export{w as ObserveReasoningDisclosure,R as ObserveStreamCursor};
|