@openscout/scout 0.2.96 → 0.2.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/ActivityScreen-sfonf5SR.js +1 -0
- package/dist/client/assets/{AddProjectForm-IqOtJfRs.js → AddProjectForm-fXndbzXT.js} +1 -1
- package/dist/client/assets/{AgentAvatar-6-KBVKUu.js → AgentAvatar-Dz79iTxB.js} +1 -1
- package/dist/client/assets/AgentConfigurationScreen-DDc3udYM.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-DHDS9Pgd.js +1 -0
- package/dist/client/assets/{AgentDetailCard-C9rn3Fj5.js → AgentDetailCard-8viaEY8b.js} +1 -1
- package/dist/client/assets/AgentFloorView-DuyvyMMj.js +1 -0
- package/dist/client/assets/AgentInfoScreen-qntgg2q2.js +1 -0
- package/dist/client/assets/{AgentLaneCard-DI2iW9zO.js → AgentLaneCard-Cc9uyfBr.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-D8bARHMx.js → AgentLaneChrome-Dv2lBFoH.js} +1 -1
- package/dist/client/assets/{AgentLaneDetailSheet-52un7dKC.js → AgentLaneDetailSheet-CGqtqSHQ.js} +1 -1
- package/dist/client/assets/{AgentLaneSummaryResize-CEBjmPTa.js → AgentLaneSummaryResize-Di4u6df2.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-BA6fRwkD.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-q20mTjms.js → AgentLanesPreflight-CCGBArIb.js} +1 -1
- package/dist/client/assets/AgentLanesView-96lHsoX7.js +2 -0
- package/dist/client/assets/{AgentLiveActions-DrEJDJef.js → AgentLiveActions-DlSKL60c.js} +1 -1
- package/dist/client/assets/AgentMasterScreen-DHrMuQ6_.js +1 -0
- package/dist/client/assets/{AgentSessions-DCPCG4xb.js → AgentSessions-DV9v34aq.js} +2 -2
- package/dist/client/assets/AgentsConsole-DTpVhS67.js +1 -0
- package/dist/client/assets/AgentsScreen-hZ4o2I-e.js +1 -0
- package/dist/client/assets/AgentsSubnav-Ci7uWM7P.js +1 -0
- package/dist/client/assets/{AstronautSuit-DbjQtfD_.js → AstronautSuit-CwB4Dw07.js} +1 -1
- package/dist/client/assets/{AtopView-Daq_ob3z.js → AtopView-D7vyQDtE.js} +1 -1
- package/dist/client/assets/{BackToPicker-CXZjBRAe.js → BackToPicker-BHicJyfc.js} +1 -1
- package/dist/client/assets/BriefingDetailScreen-B-wD_Bot.js +1 -0
- package/dist/client/assets/{BriefingsScreen-B5oMTGKv.js → BriefingsScreen-Cn4Mbam9.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-BsiU8lTD.js → BrokerMetadataPanel-BJSwU9XZ.js} +1 -1
- package/dist/client/assets/BrokerScreen-C8FQ5rlg.js +5 -0
- package/dist/client/assets/{CastPicker-_5E5hNUe.js → CastPicker-CkgTalIt.js} +1 -1
- package/dist/client/assets/{ChatCollapsedStrip-D-eXhzPf.js → ChatCollapsedStrip-7Wrg8Ge0.js} +1 -1
- package/dist/client/assets/{CodeDiffPane-n7W4iGUG.js → CodeDiffPane-DfluIWmO.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-CMsbSTDq.js → CodeProjectPicker-By_Wz9ex.js} +1 -1
- package/dist/client/assets/CodeScreen-cLC0tJ4S.js +1 -0
- package/dist/client/assets/ConversationComposer-BUIjWMBi.js +1 -0
- package/dist/client/assets/ConversationFeedRows-Bx0gFyG_.js +1 -0
- package/dist/client/assets/ConversationHeader-Bt2RBj93.js +1 -0
- package/dist/client/assets/{ConversationPanels-Dujvnmup.js → ConversationPanels-o6W-cOoU.js} +2 -2
- package/dist/client/assets/ConversationScreen-DIU7m_aC.js +2 -0
- package/dist/client/assets/{ConversationStatus-DVzSb2Hv.js → ConversationStatus-CTYOywFh.js} +1 -1
- package/dist/client/assets/{CrewAvatar-BwXjyg8N.js → CrewAvatar-CZ_faQ_s.js} +1 -1
- package/dist/client/assets/CrewWorkspaces-DNX-QQ1h.js +1 -0
- package/dist/client/assets/CrewWorkspaces-Diq11KDq.css +1 -0
- package/dist/client/assets/{DataTable-Bp8tU9AK.js → DataTable-C6aMSilS.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-B-6rmXzL.js → DispatchAftermath-ZCEB75hh.js} +1 -1
- package/dist/client/assets/{DocumentFocusViewer-Do3wQ_3Z.js → DocumentFocusViewer-D8iB6SMt.js} +1 -1
- package/dist/client/assets/{EmbeddableSurfacesLab-C1orRyP9.js → EmbeddableSurfacesLab-D3iZiS8o.js} +1 -1
- package/dist/client/assets/{EmptyState-CJzXj1l5.js → EmptyState-CKPWFSjq.js} +1 -1
- package/dist/client/assets/{FileViewerPane-Df6VzXjA.js → FileViewerPane-CxNbcTYf.js} +1 -1
- package/dist/client/assets/FlightObserveScreen-BTe1YRPr.js +1 -0
- package/dist/client/assets/{FollowScreen-DvnxYLVh.js → FollowScreen-CkR-okdL.js} +1 -1
- package/dist/client/assets/{HarnessMark-B979GCSB.js → HarnessMark-DttReffF.js} +1 -1
- package/dist/client/assets/HarnessesScreen-COO_Q8VY.js +1 -0
- package/dist/client/assets/{HerdrSession-B3McuYgi.js → HerdrSession-DsuxCtfX.js} +1 -1
- package/dist/client/assets/{HomeHero-CdUVPjkG.js → HomeHero-DXJo2QSO.js} +1 -1
- package/dist/client/assets/{HostAdvisorView-Bok5Sk5c.js → HostAdvisorView-DeJ-8RZV.js} +1 -1
- package/dist/client/assets/{KnowledgeSearchInspector-B7XSoJsu.js → KnowledgeSearchInspector-W_zNIBRV.js} +1 -1
- package/dist/client/assets/KnowledgeSearchScreen-_rxJNUUh.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-HByf2ndx.js → LaneToolHoverCard-t7-XJP-h.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-DNIECgEl.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-DM-hoPxG.js → LaneTraceEventFocus-BB5DhFQm.js} +1 -1
- package/dist/client/assets/{MeshCanvas-DCLJRsBy.js → MeshCanvas-DZv2ipsy.js} +1 -1
- package/dist/client/assets/{MeshCanvasMinimap-cEFS9eW7.js → MeshCanvasMinimap-BXHRNb7l.js} +1 -1
- package/dist/client/assets/MeshScreen-DuNvpDC5.js +1 -0
- package/dist/client/assets/{MeshTopologyView-CCRPd8PU.js → MeshTopologyView-Dc0GSrKa.js} +2 -2
- package/dist/client/assets/MessagesScreen-dNNPFwAc.js +1 -0
- package/dist/client/assets/{MissionContextRail-DF0_kiU7.js → MissionContextRail-DnCWPzAM.js} +1 -1
- package/dist/client/assets/MissionControlView-DmaThhNR.js +1 -0
- package/dist/client/assets/MissionFocusOverlay-K21ssTxv.js +1 -0
- package/dist/client/assets/MissionLeftAgentRow-CbQm4BLv.js +1 -0
- package/dist/client/assets/{MissionLogPane-BbdDKjUl.js → MissionLogPane-BLvSSIdT.js} +1 -1
- package/dist/client/assets/{NewAgentModal-DfHxad34.js → NewAgentModal-B7qxjZlW.js} +1 -1
- package/dist/client/assets/NewChatComposer-D2Ah4T-W.js +19 -0
- package/dist/client/assets/{NewChatOrigin-B1u7ki70.js → NewChatOrigin-DCn5cWPZ.js} +1 -1
- package/dist/client/assets/{ObserveEmbedScreen-Co0xTii6.js → ObserveEmbedScreen-DvKGsaLv.js} +2 -2
- package/dist/client/assets/{ObserveTextFlow-ZQWwrK3i.js → ObserveTextFlow-DCJ5EmD8.js} +2 -2
- package/dist/client/assets/{ObservedTopologyPanel-BJUhDSuQ.js → ObservedTopologyPanel-CJVqIqQ2.js} +1 -1
- package/dist/client/assets/{OpenScoutAppShell-CUd2yOLu.js → OpenScoutAppShell-C9TOLB7u.js} +2 -2
- package/dist/client/assets/OpsAgentsView-vIoY-AW1.js +1 -0
- package/dist/client/assets/OpsScreen-CJBwshEp.js +1 -0
- package/dist/client/assets/OpsSubnav-CjDTnp64.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-Br1eTD7G.js +1 -0
- package/dist/client/assets/ProjectAgentProfileBar-CUzZ4Rpx.js +1 -0
- package/dist/client/assets/ProjectAgentProfileHero-mjxNcRvw.js +1 -0
- package/dist/client/assets/ProjectsInbox-Bq29DE_o.js +2 -0
- package/dist/client/assets/ProjectsRail-kMDA0yn4.js +1 -0
- package/dist/client/assets/ProjectsScreen-BDaJYhc0.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-B940p3vW.js +1 -0
- package/dist/client/assets/Provider-D0bB7q6y.js +1 -0
- package/dist/client/assets/{RailRow-CEH2MFBw.js → RailRow-B88JVr62.js} +1 -1
- package/dist/client/assets/RawSessionsTable-CzGhEdiZ.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-CyP1CWsX.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-kY2pHjIs.js → RepoDiffEmbedScreen-mexrJPhW.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-C6LhoKrn.js → RepoDiffPageScreen-DbqX4L3q.js} +1 -1
- package/dist/client/assets/{RepoDiffViewer-BhcIIQQg.js → RepoDiffViewer-Bw5yMC4A.js} +1 -1
- package/dist/client/assets/{RepoDiffViewerLazy-Csy_j9LD.js → RepoDiffViewerLazy-DzfoFhbl.js} +2 -2
- package/dist/client/assets/{ReposScreen-B_cB0zu7.js → ReposScreen-CzbO1Fuy.js} +2 -2
- package/dist/client/assets/{ScoutDeckSurface-CSy_fjcG.js → ScoutDeckSurface-DQoZofzH.js} +1 -1
- package/dist/client/assets/{ScoutSurface-CQVcSrin.js → ScoutSurface-NlhDsPzg.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-DqGiLYNy.js → ScoutbotFxLab-l2WAahCg.js} +1 -1
- package/dist/client/assets/{SecondaryNav-BR4VRdgh.js → SecondaryNav-Cs0_FQdj.js} +1 -1
- package/dist/client/assets/{SessionEmbedScreen-BTlZ9gAg.js → SessionEmbedScreen-CpduQ0O9.js} +1 -1
- package/dist/client/assets/{SessionObserve-dQDN23pP.js → SessionObserve-BVeTkcIl.js} +1 -1
- package/dist/client/assets/{SessionObserveEvidence-BRBGKAgd.js → SessionObserveEvidence-BkOezTGV.js} +1 -1
- package/dist/client/assets/SessionRefScreen-DetLMkTT.js +1 -0
- package/dist/client/assets/SessionsScreen-B-McKw6d.js +1 -0
- package/dist/client/assets/{SettingsDrawer-RGVK_bmE.js → SettingsDrawer-CPB32w0n.js} +3 -3
- package/dist/client/assets/SettingsScreen-BEzYFdjz.js +1 -0
- package/dist/client/assets/{ShikiPane-DYI9Hkge.js → ShikiPane-C0TuCATU.js} +1 -1
- package/dist/client/assets/{SlidePanel-B9ugxWgA.js → SlidePanel-CETQ5NTx.js} +1 -1
- package/dist/client/assets/{SpriteAvatar-z5hHesx9.js → SpriteAvatar-DFO4Kb4Z.js} +1 -1
- package/dist/client/assets/{StatusPill-BFvMjmZV.js → StatusPill-BllrY-eg.js} +1 -1
- package/dist/client/assets/{TailView-0uEIj2JH.js → TailView-_gKWfaQM.js} +2 -2
- package/dist/client/assets/Terminal-DWyZTZdY.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-_SSzwhWa.js +1 -0
- package/dist/client/assets/{TerminalHeaderMount-BL07cd0q.js → TerminalHeaderMount-CY7uIWBg.js} +1 -1
- package/dist/client/assets/{TextDocumentSurface-BflAwXeZ.js → TextDocumentSurface-2X1Gw4eA.js} +1 -1
- package/dist/client/assets/{TmuxPeek-BTnjOQi0.js → TmuxPeek-CqTJRhkI.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-CgQ6GGS-.js → VoicePermissionsPanel-C4vkU-sU.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-CaLG-zDs.js → WorkDetailScreen-DqGnuK0e.js} +3 -3
- package/dist/client/assets/{WorkFilesViewer-B9Sil_No.js → WorkFilesViewer-D8-4vF5l.js} +1 -1
- package/dist/client/assets/{activity-DcrMApUY.js → activity-CzTJ-YMX.js} +1 -1
- package/dist/client/assets/{addon-fit-DMVrz5Sv.js → addon-fit-Zx3A7pGS.js} +1 -1
- package/dist/client/assets/{addon-webgl-BYvpZUyu.js → addon-webgl-DitJj-N0.js} +1 -1
- package/dist/client/assets/{agent-autocomplete-B-5QTeas.js → agent-autocomplete-BlK8wY06.js} +1 -1
- package/dist/client/assets/{agent-essentials-D7KRGYvF.js → agent-essentials-K9B6kbTS.js} +1 -1
- package/dist/client/assets/{agent-lane-card-model-CNZMPkhc.js → agent-lane-card-model-CY3OE1Xu.js} +1 -1
- package/dist/client/assets/{agent-lanes-model-DXqjs0OK.js → agent-lanes-model-tc-1hE6q.js} +1 -1
- package/dist/client/assets/{agent-master-model-DqjrVI2h.js → agent-master-model-DMcHeNq3.js} +1 -1
- package/dist/client/assets/agent-specialization-CtF_jI34.js +1 -0
- package/dist/client/assets/agents-project-DgbqDc65.css +1 -0
- package/dist/client/assets/{arc.es-NHqHWohb.js → arc.es-BNXJqSw7.js} +1 -1
- package/dist/client/assets/{arrow-down-CKtSUjmW.js → arrow-down-BAGkhHA6.js} +1 -1
- package/dist/client/assets/{arrow-left-Czpf-AE4.js → arrow-left-eToA6GxC.js} +1 -1
- package/dist/client/assets/{arrow-right-BuzMnLYP.js → arrow-right-DTX42clh.js} +1 -1
- package/dist/client/assets/{arrow-up-right-C6Wl-1uw.js → arrow-up-right-B09GPwFl.js} +1 -1
- package/dist/client/assets/{bot-rd0awxD3.js → bot-WxKXYtEX.js} +1 -1
- package/dist/client/assets/{check-ofKUE8yH.js → check-Dz2SRHft.js} +1 -1
- package/dist/client/assets/{chevron-down-wciXnOQz.js → chevron-down-D120PY4g.js} +1 -1
- package/dist/client/assets/{chevron-right-D-HdlPg8.js → chevron-right-CowuvuE6.js} +1 -1
- package/dist/client/assets/{chunk-HRAB3GC3-Tyv9rzx7.js → chunk-HRAB3GC3-KjjrTLCU.js} +1 -1
- package/dist/client/assets/{chunk-JTPDIGGW-BC2Mandc.js → chunk-JTPDIGGW-COJ00z94.js} +3 -3
- package/dist/client/assets/{chunk-T65CQEWV-C1AWTYZZ.js → chunk-T65CQEWV-H2QEKfr1.js} +1 -1
- package/dist/client/assets/{chunk-YOZR3KYS-DwHPHa6f.js → chunk-YOZR3KYS-CrCgXw9l.js} +1 -1
- package/dist/client/assets/{clock-B88r8OrZ.js → clock-_9FDplIT.js} +1 -1
- package/dist/client/assets/{code-xml-D7pOQM9l.js → code-xml-CkkNdRmu.js} +1 -1
- package/dist/client/assets/{compass-Dt1AMXz2.js → compass-BdpImt_W.js} +1 -1
- package/dist/client/assets/content-0RBfbCIJ.js +1 -0
- package/dist/client/assets/content-BTmnk2bl.js +1 -0
- package/dist/client/assets/content-Bk5DKhyP.js +1 -0
- package/dist/client/assets/{content-nkx0swDe.js → content-Bw_8GE_S.js} +1 -1
- package/dist/client/assets/content-CI4gLEWi.js +1 -0
- package/dist/client/assets/content-CLCtp9Rb.js +1 -0
- package/dist/client/assets/content-C_FAGTNk.js +1 -0
- package/dist/client/assets/content-CnnzWOE3.js +1 -0
- package/dist/client/assets/content-DKlY98pO.js +1 -0
- package/dist/client/assets/content-Df7ndXTG.js +1 -0
- package/dist/client/assets/content-DkZDzzx3.js +1 -0
- package/dist/client/assets/content-DnGmb2L0.js +1 -0
- package/dist/client/assets/content-Ds-zs-Ss.js +1 -0
- package/dist/client/assets/content-JIWSyC0f.js +1 -0
- package/dist/client/assets/content-Q3TIYC8q.js +1 -0
- package/dist/client/assets/content-evaBfvxD.js +1 -0
- package/dist/client/assets/{context-budget-DX_fwUs3.js → context-budget-DqxWzalx.js} +1 -1
- package/dist/client/assets/{conversation-icons-tp9BX6X2.js → conversation-icons-DHGc9wbT.js} +1 -1
- package/dist/client/assets/conversation-model-C2KuZUXc.js +1 -0
- package/dist/client/assets/conversation-motion-features-BJnHs3Ul.js +1 -0
- package/dist/client/assets/{copy-CWWAJ75H.js → copy-BzdzWsQd.js} +1 -1
- package/dist/client/assets/{cpu-DrqejfkB.js → cpu-CHFIGw87.js} +1 -1
- package/dist/client/assets/{createLucideIcon-DezKXSG2.js → createLucideIcon-Dv8H8m7J.js} +1 -1
- package/dist/client/assets/discover-DutlV0ZU.js +2 -0
- package/dist/client/assets/embed-entry-CJG7WEVw.js +2 -0
- package/dist/client/assets/{external-link-Dp_a2vRZ.js → external-link-BvX5PfLh.js} +1 -1
- package/dist/client/assets/{eye-BRyD0jno.js → eye-C9cGk5z6.js} +1 -1
- package/dist/client/assets/{file-code-corner-muIVH_xO.js → file-code-corner-jlGFdr8d.js} +1 -1
- package/dist/client/assets/{file-text-CqJgwxmv.js → file-text-BHro8MkG.js} +1 -1
- package/dist/client/assets/{gauge-hU--hKVP.js → gauge-DSflSery.js} +1 -1
- package/dist/client/assets/{gestures-DN4hEeqv.js → gestures-YA5IIwp-.js} +1 -1
- package/dist/client/assets/{git-branch-CK5v8F2v.js → git-branch-Bc_eDIpG.js} +1 -1
- package/dist/client/assets/{home-moving-signal-BjDtEJUP.js → home-moving-signal-PHSqSBu_.js} +1 -1
- package/dist/client/assets/home-now-card-C_qsI6C6.js +1 -0
- package/dist/client/assets/{home-now-card-nano-C-r_bBg5.js → home-now-card-nano-Jmy7eJ6H.js} +1 -1
- package/dist/client/assets/{hooks-D46bABUP.js → hooks-ME7rmhpE.js} +1 -1
- package/dist/client/assets/{index-DvLtl7rV.js → index-C1VaWNuD.js} +2 -2
- package/dist/client/assets/index-C8UCRm2W.js +1 -0
- package/dist/client/assets/index-Cn0I2Hgi.js +1 -0
- package/dist/client/assets/index-Cx6Gbr6n.js +1 -0
- package/dist/client/assets/{inspector-panel-Dkc7rLvY.js → inspector-panel-CwrHjRaQ.js} +2 -2
- package/dist/client/assets/{keyboard-nav-BLYDhL3Z.js → keyboard-nav-B8sQ_8IF.js} +1 -1
- package/dist/client/assets/{lane-roster-store-DOdI1O13.js → lane-roster-store-DN2jxXF-.js} +1 -1
- package/dist/client/assets/{layers-CSsg3JVP.js → layers-CW2-qHsG.js} +1 -1
- package/dist/client/assets/{layout-grid-DOChPJdZ.js → layout-grid-BoVnPOk-.js} +1 -1
- package/dist/client/assets/left-BRu9pnqx.js +2 -0
- package/dist/client/assets/left-BjS1dKNV.js +2 -0
- package/dist/client/assets/left-CL-TVLJ7.js +1 -0
- package/dist/client/assets/left-DLpsDi55.js +1 -0
- package/dist/client/assets/left-DPcM9o8Y.js +1 -0
- package/dist/client/assets/left-MmTJf1tK.js +1 -0
- package/dist/client/assets/left-P80i5V8L.js +1 -0
- package/dist/client/assets/left-advisor-CbXVzAqS.js +1 -0
- package/dist/client/assets/left-agents-7mJsiNyr.js +1 -0
- package/dist/client/assets/left-default-COK26l3H.js +1 -0
- package/dist/client/assets/left-lanes-Dbdm9Veu.js +1 -0
- package/dist/client/assets/left-mission-DqGR5jby.js +1 -0
- package/dist/client/assets/library-COnWzUWv.js +1 -0
- package/dist/client/assets/{loader-circle-pM56HNhR.js → loader-circle-DmUG_YC7.js} +1 -1
- package/dist/client/assets/{local-agents-C8xAhbO5.js → local-agents-VP1-ZlPw.js} +1 -1
- package/dist/client/assets/{mentions-DG6OQrsc.js → mentions-BZ5SBMtc.js} +1 -1
- package/dist/client/assets/mesh-buckets-CLYS8Jx8.js +1 -0
- package/dist/client/assets/{mesh-ops-BZ1h5RQs.js → mesh-ops-CKSWgax2.js} +1 -1
- package/dist/client/assets/{mesh-view-store-ChUOASK8.js → mesh-view-store-CBM1za_N.js} +1 -1
- package/dist/client/assets/{message-circle-mZCv8tvB.js → message-circle-joGFxfj1.js} +1 -1
- package/dist/client/assets/{message-markup-C2LQDm_k.js → message-markup-DC0QFEZn.js} +1 -1
- package/dist/client/assets/{message-square-C7t_qtuj.js → message-square-BLiFqpe_.js} +1 -1
- package/dist/client/assets/{mission-control-store-nDLdUZPA.js → mission-control-store-CM8mQGg8.js} +1 -1
- package/dist/client/assets/model-CBkMvT1w.js +1 -0
- package/dist/client/assets/{observe-BpEm1INu.js → observe-BLmy4quB.js} +1 -1
- package/dist/client/assets/{page-status-E5jnk48p.js → page-status-BE0-J1xY.js} +1 -1
- package/dist/client/assets/{paperclip-C64lkcbM.js → paperclip-Br7wUDFl.js} +1 -1
- package/dist/client/assets/{persistent-state-EHXw8WNy.js → persistent-state-BubPQ7tT.js} +1 -1
- package/dist/client/assets/{plus-Co-dqKul.js → plus-BWKhylds.js} +1 -1
- package/dist/client/assets/profile-BCvk8jOQ.js +1 -0
- package/dist/client/assets/projects-inbox-BIW7nv-H.css +1 -0
- package/dist/client/assets/projects-inbox-DFbgVlXL.js +1 -0
- package/dist/client/assets/{proxy-BiW5suC7.js → proxy-DVDRhSRR.js} +1 -1
- package/dist/client/assets/{radio-BOxBQX-T.js → radio-CxIXS1nU.js} +1 -1
- package/dist/client/assets/{refresh-cw-DMxGzDwn.js → refresh-cw-Bkh7Cvnd.js} +1 -1
- package/dist/client/assets/resolve-panes-DhD5qmQO.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-GqhZNRPY.js +1 -0
- package/dist/client/assets/right-B_08ilv6.js +1 -0
- package/dist/client/assets/right-Brm67HOL.js +1 -0
- package/dist/client/assets/right-BveAPKBW.js +1 -0
- package/dist/client/assets/right-CpTB_-Ya.js +1 -0
- package/dist/client/assets/right-CqC4Qdot.js +1 -0
- package/dist/client/assets/right-D91j9d5Y.js +1 -0
- package/dist/client/assets/{right-CimaAvQN.js → right-DVUq5374.js} +1 -1
- package/dist/client/assets/right-DaLRhYl3.js +1 -0
- package/dist/client/assets/right-Dt1wOwA5.js +1 -0
- package/dist/client/assets/right-DtzqIZQF.js +1 -0
- package/dist/client/assets/{rocket-BQm5_CvR.js → rocket-CnxqjX_K.js} +1 -1
- package/dist/client/assets/{router-B9vQkNJL.js → router-kfcaYqZr.js} +1 -1
- package/dist/client/assets/runtime-picker-C20lTGhV.js +1 -0
- package/dist/client/assets/{scope-views-1IYJdl41.js → scope-views-KPY85UUx.js} +1 -1
- package/dist/client/assets/{scout-voice-BVUqGhth.js → scout-voice-Cg1qfepC.js} +1 -1
- package/dist/client/assets/scoutbot-D7kGGyK_.js +3 -0
- package/dist/client/assets/{scoutbot-markdown-BQ_Ee2Ic.js → scoutbot-markdown-yb87JlSE.js} +1 -1
- package/dist/client/assets/{scroll-text-Dze_dXtQ.js → scroll-text-DFcBYy5J.js} +1 -1
- package/dist/client/assets/{search-CDko0PKE.js → search-FB2vVxCp.js} +1 -1
- package/dist/client/assets/{secondaryNavConfig-BoQ_zYR9.js → secondaryNavConfig-C0Srrmy8.js} +1 -1
- package/dist/client/assets/{selection-bridge-Din6yV3h.js → selection-bridge-qBGFCJv8.js} +1 -1
- package/dist/client/assets/{send-horizontal-CSjIm6xg.js → send-horizontal-CS7mxVhX.js} +1 -1
- package/dist/client/assets/{server-Bzj7lPIx.js → server-WY6gsbZz.js} +1 -1
- package/dist/client/assets/{session-catalog-DsaZJXZt.js → session-catalog-CG4oL_yN.js} +1 -1
- package/dist/client/assets/{session-table-BQfR7u6r.js → session-table-uJh3v-ly.js} +1 -1
- package/dist/client/assets/{settings-Dyvpkb1D.js → settings-DQEtqkM9.js} +1 -1
- package/dist/client/assets/{sliders-horizontal-C8njVwfg.js → sliders-horizontal-57e99_qO.js} +1 -1
- package/dist/client/assets/{sparkles-CETYrxGA.js → sparkles-D0vWLTyC.js} +1 -1
- package/dist/client/assets/{sse-CD9MMUxl.js → sse-B29iGBnw.js} +1 -1
- package/dist/client/assets/{system-surfaces-redesign-QVXNeGYw.css → system-surfaces-redesign-kuf3wuE_.css} +1 -1
- package/dist/client/assets/{tail-events-Ps8KpKah.js → tail-events-LK29oCKm.js} +1 -1
- package/dist/client/assets/{terminal-9GRS_Qdc.js → terminal-UDy4lzV1.js} +1 -1
- package/dist/client/assets/{terminal-relay-GYMIvKs1.js → terminal-relay-CXHMdain.js} +1 -1
- package/dist/client/assets/{terminal-screen-BLk4PAYt.css → terminal-screen-vMICbBJh.css} +1 -1
- package/dist/client/assets/{terminal-sessions-BQ6t92tJ.js → terminal-sessions-Bdt2W3Y4.js} +1 -1
- package/dist/client/assets/{terminal-takeover-_Jyys4me.js → terminal-takeover-BMeBjBB2.js} +1 -1
- package/dist/client/assets/{use-conversation-list-C9ABzjXI.js → use-conversation-list-UG-tMN67.js} +1 -1
- package/dist/client/assets/{use-fleet-active-asks-DAspZQjE.js → use-fleet-active-asks-CCGrll5q.js} +1 -1
- package/dist/client/assets/{use-mesh-ops-items-Dh54ymEp.js → use-mesh-ops-items-BjyeFJTz.js} +1 -1
- package/dist/client/assets/{use-reduced-motion-x8pJMVrG.js → use-reduced-motion-CPoX8iV2.js} +1 -1
- package/dist/client/assets/{use-scout-dev-flags-DhCbiDK3.js → use-scout-dev-flags-DTseRrFi.js} +1 -1
- package/dist/client/assets/{useAgentHoverCard-DoBwV0LX.js → useAgentHoverCard-BgTLNcF-.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-CoIoz7JU.js +1 -0
- package/dist/client/assets/useEmbedHeadline-DuUnwTB7.js +1 -0
- package/dist/client/assets/{usePierreRuntime-ejq9dCWV.js → usePierreRuntime-35AHf9RQ.js} +1 -1
- package/dist/client/assets/{wrench-DjkoAOQt.js → wrench-BfVeded5.js} +1 -1
- package/dist/client/assets/{x-CAbNespN.js → x-DgmmnPKt.js} +1 -1
- package/dist/client/assets/{xterm-Cf-ngcGP.js → xterm-DnJJmrCA.js} +1 -1
- package/dist/client/assets/{zap-Cq8eWkcF.js → zap-Bcja1lHG.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/main.mjs +5180 -9874
- package/dist/node/main.mjs +18 -2
- package/dist/pairing-runtime-controller.mjs +31 -2
- package/dist/runtime/broker-daemon.mjs +87 -13
- package/dist/scout-control-plane-web.mjs +35 -3
- package/package.json +2 -5
- package/dist/client/assets/ActivityScreen-BnoaUkVZ.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-CuZJy07q.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-Iyl4BesU.js +0 -1
- package/dist/client/assets/AgentFloorView-YT-Jjccf.js +0 -1
- package/dist/client/assets/AgentInfoScreen-Dr99gQEZ.js +0 -1
- package/dist/client/assets/AgentLanesEmbedScreen-Dgcm7zd_.js +0 -1
- package/dist/client/assets/AgentLanesView-CetZZDyF.js +0 -2
- package/dist/client/assets/AgentMasterScreen-DJPnstoD.js +0 -1
- package/dist/client/assets/AgentsConsole-CsYOoFJi.js +0 -1
- package/dist/client/assets/AgentsScreen-k8LvBuU_.js +0 -1
- package/dist/client/assets/AgentsSubnav-C4xpQhsv.js +0 -1
- package/dist/client/assets/BriefingDetailScreen-CUCXO-KH.js +0 -1
- package/dist/client/assets/BrokerScreen-BPbOHhCS.js +0 -5
- package/dist/client/assets/CodeScreen-CeuO3EhR.js +0 -1
- package/dist/client/assets/ConversationComposer-CXPKx86g.js +0 -1
- package/dist/client/assets/ConversationFeedRows-WrH-YI3L.js +0 -1
- package/dist/client/assets/ConversationHeader-BQWzGzLK.js +0 -1
- package/dist/client/assets/ConversationScreen-CR9pWB65.js +0 -2
- package/dist/client/assets/CrewWorkspaces-CkQDhyie.css +0 -1
- package/dist/client/assets/CrewWorkspaces-NKujRzwh.js +0 -1
- package/dist/client/assets/FlightObserveScreen-6mGnmWQA.js +0 -1
- package/dist/client/assets/HarnessesScreen-CHTuv8p6.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-D3o3IODW.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-BUgHz-sd.js +0 -1
- package/dist/client/assets/MeshScreen-BcxPkhm6.js +0 -1
- package/dist/client/assets/MessagesScreen-Bb5l13MO.js +0 -1
- package/dist/client/assets/MissionControlView-E3V7bENU.js +0 -1
- package/dist/client/assets/MissionFocusOverlay-h15sQFvP.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-KPdk9rSa.js +0 -1
- package/dist/client/assets/NewChatComposer-_Stj0fZy.js +0 -19
- package/dist/client/assets/OpsAgentsView-DI5wu1si.js +0 -1
- package/dist/client/assets/OpsScreen-D8fQafCl.js +0 -1
- package/dist/client/assets/OpsSubnav-1K4Jaf__.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-Bdjd_dAx.js +0 -1
- package/dist/client/assets/ProjectAgentProfileBar-k2QHHHsQ.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-Bpxk1ui2.js +0 -1
- package/dist/client/assets/ProjectsInbox-C_bMHLCc.js +0 -2
- package/dist/client/assets/ProjectsRail-J-aH_pxT.js +0 -1
- package/dist/client/assets/ProjectsScreen-cVUkGbPz.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-_ourdM-Q.js +0 -1
- package/dist/client/assets/Provider-CtXJeLrP.js +0 -1
- package/dist/client/assets/RawSessionsTable-CDyrom-F.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-DBl3DN1H.js +0 -1
- package/dist/client/assets/SessionRefScreen-COVQMbtE.js +0 -1
- package/dist/client/assets/SessionsScreen--5OJ3p3v.js +0 -1
- package/dist/client/assets/SettingsScreen-CCxzy5IU.js +0 -1
- package/dist/client/assets/Terminal-DouZeNxc.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-dMNUbzXr.js +0 -1
- package/dist/client/assets/agent-specialization-BujJVUTD.js +0 -1
- package/dist/client/assets/agents-project-COzHxZAF.css +0 -1
- package/dist/client/assets/agents-project-model-UYiamtrU.js +0 -1
- package/dist/client/assets/content-9K38QchR.js +0 -1
- package/dist/client/assets/content-BRgnyXWh.js +0 -1
- package/dist/client/assets/content-BWPNyXJ0.js +0 -1
- package/dist/client/assets/content-BdkI07v3.js +0 -1
- package/dist/client/assets/content-C4oWa8SB.js +0 -1
- package/dist/client/assets/content-C9ijJxyl.js +0 -1
- package/dist/client/assets/content-CFZ4rghn.js +0 -1
- package/dist/client/assets/content-CIqu_Ci_.js +0 -1
- package/dist/client/assets/content-CnJF9DGO.js +0 -1
- package/dist/client/assets/content-CriW8Y8u.js +0 -1
- package/dist/client/assets/content-DDCyPPk_.js +0 -1
- package/dist/client/assets/content-DtcZeh5m.js +0 -1
- package/dist/client/assets/content-U9tsdtle.js +0 -1
- package/dist/client/assets/content-hFLK3CON.js +0 -1
- package/dist/client/assets/content-p00KQrtD.js +0 -1
- package/dist/client/assets/conversation-model-Dc02NsGp.js +0 -1
- package/dist/client/assets/conversation-motion-features-D9-RmBSq.js +0 -1
- package/dist/client/assets/discover-C2CZO4Tk.js +0 -2
- package/dist/client/assets/embed-entry-BSMUykuG.js +0 -2
- package/dist/client/assets/home-now-card-nF8OotI-.js +0 -1
- package/dist/client/assets/index-CPrU5q04.js +0 -1
- package/dist/client/assets/index-kL1WLbeS.js +0 -1
- package/dist/client/assets/index-zvhpRHao.js +0 -1
- package/dist/client/assets/left-B-SdEJSJ.js +0 -1
- package/dist/client/assets/left-B3wSE6ql.js +0 -1
- package/dist/client/assets/left-BNRFiRsb.js +0 -2
- package/dist/client/assets/left-BggzhgXN.js +0 -1
- package/dist/client/assets/left-CARCvvxS.js +0 -2
- package/dist/client/assets/left-CpokZYHt.js +0 -1
- package/dist/client/assets/left-YT7mIGuH.js +0 -1
- package/dist/client/assets/left-advisor-CCY0vkcO.js +0 -1
- package/dist/client/assets/left-agents-trhO5sL8.js +0 -1
- package/dist/client/assets/left-default-CG33elBs.js +0 -1
- package/dist/client/assets/left-lanes-CitMgeTp.js +0 -1
- package/dist/client/assets/left-mission-Zl2m_5eU.js +0 -1
- package/dist/client/assets/library-DkALuCh5.js +0 -1
- package/dist/client/assets/mesh-buckets-6y3ZIibI.js +0 -1
- package/dist/client/assets/mesh-roster-Bc7T4b7z.js +0 -1
- package/dist/client/assets/model-IGCUEsMy.js +0 -1
- package/dist/client/assets/profile-APxDsN2P.js +0 -1
- package/dist/client/assets/projects-inbox-Cg4X2lUQ.js +0 -1
- package/dist/client/assets/projects-inbox-DRBl2N85.css +0 -1
- package/dist/client/assets/resolve-panes-DeVJbS9c.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-BQe5J6xF.js +0 -1
- package/dist/client/assets/right-Bmfd3pjP.js +0 -1
- package/dist/client/assets/right-BqI-nr9G.js +0 -1
- package/dist/client/assets/right-BuCgE0fZ.js +0 -1
- package/dist/client/assets/right-BwlW6E57.js +0 -1
- package/dist/client/assets/right-C0ybUw0j.js +0 -1
- package/dist/client/assets/right-CdkcrmeD.js +0 -1
- package/dist/client/assets/right-CkCCPbCX.js +0 -1
- package/dist/client/assets/right-D3eSiy41.js +0 -1
- package/dist/client/assets/right-Dz_xD0Vj.js +0 -1
- package/dist/client/assets/scoutbot-BJIamJOH.js +0 -3
- package/dist/client/assets/text-BP3oyl8-.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-pZe2Zfk1.js +0 -1
- /package/dist/client/assets/{text-BYAFNLNq.css → runtime-picker-BYAFNLNq.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as f,j as e}from"./index-DvLtl7rV.js";import{d as w,c as N,n as $}from"./colors-BtO5_zlx.js";import{u as C}from"./keyboard-nav-BLYDhL3Z.js";import{t as j}from"./time-Dhsh_2EG.js";import{M,f as S}from"./text-BP3oyl8-.js";import{s as v}from"./page-status-E5jnk48p.js";import"./perf-PX8Rx0EP.js";import"./index-zvhpRHao.js";import{K as k}from"./mission-control-model-C0fByIjm.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./createLucideIcon-DezKXSG2.js";function Q({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{Q as FocusOverlay};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as o}from"./index-DvLtl7rV.js";import{c as j}from"./colors-BtO5_zlx.js";import{s as x}from"./page-status-E5jnk48p.js";import{t as m}from"./time-Dhsh_2EG.js";import{R as b}from"./RailRow-CEH2MFBw.js";import"./AgentAvatar-6-KBVKUu.js";import"./Provider-CtXJeLrP.js";import"./router-B9vQkNJL.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./api-Co9aQ2Jw.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";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,19 +0,0 @@
|
|
|
1
|
-
import{j as i,r as l}from"./index-DvLtl7rV.js";import{f as Lt,M as zn}from"./text-BP3oyl8-.js";import{C as Gn,c as Wn,S as bs,G as qn,H as Kn}from"./conversation-model-Dc02NsGp.js";import{a as q,p as Jn}from"./api-Co9aQ2Jw.js";import{r as Xn}from"./index-zvhpRHao.js";import{H as ws}from"./HarnessMark-B979GCSB.js";import{n as Vn,c as Yn,d as Qn}from"./colors-BtO5_zlx.js";import{NewChatOrigin as Zn}from"./NewChatOrigin-B1u7ki70.js";import{u as er}from"./keyboard-nav-BLYDhL3Z.js";import{X as tr}from"./x-CAbNespN.js";import{C as sr}from"./chevron-down-wciXnOQz.js";import{S as nr}from"./search-CDko0PKE.js";import{L as rr}from"./loader-circle-pM56HNhR.js";import{F as or}from"./file-text-CqJgwxmv.js";const ar={schemaVersion:"openscout.runtime-catalog.v1",revision:"2026-09-01.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-fable-5",label:"Fable 5",enabled:!0,family:"Fable",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:[]}]},Ht=["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"},Y=ar;function Bt(e,t=Y){return t.harnesses.find(n=>n.id===e)}function ir(e=Y){return e.harnesses.find(t=>t.enabled&&t.default)?.id??e.harnesses.find(t=>t.enabled)?.id??null}function Ws(e,t=Y){const n=Bt(e,t);return n?.models.find(s=>s.enabled&&s.default)?.id??n?.models.find(s=>s.enabled)?.id??null}function cr(e,t,n=Y){const s=Bt(e,n);if(!s||!s.enabled)return null;const r=t?s.models.find(a=>a.enabled&&a.id===t):void 0;return r?.reasoningEfforts===null?null:r?.reasoningEfforts??s.reasoningEfforts}function qs(e,t,n=Y){const s=Bt(e,n),r=t?s?.models.find(m=>m.enabled&&m.id===t):void 0,a=cr(e,t,n),u=r?.defaultReasoningEffort??s?.defaultReasoningEffort??null;return u&&a?.includes(u)?u:a?.[0]??null}function lr(e=Y){return Object.fromEntries(e.harnesses.filter(t=>t.enabled).map(t=>{const n=Ws(t.id,e);return[t.id,{model:n,reasoningEffort:qs(t.id,n,e)}]}))}const ur=lr();Object.fromEntries(Y.harnesses.filter(e=>e.enabled).map(e=>{const t=Ht.filter(n=>e.reasoningEfforts?.includes(n)||e.models.some(s=>s.enabled&&s.reasoningEfforts?.includes(n)));return[e.id,t]}));function dr(e=Y){const t=new Map;for(const n of e.harnesses)if(n.enabled)for(const s of n.models){if(!s.enabled)continue;const r=t.get(s.id);if(r){r.harnesses.includes(n.id)||r.harnesses.push(n.id);continue}t.set(s.id,{id:s.id,label:s.label,...s.description?{description:s.description}:{},harnesses:[n.id],source:"default",...s.family?{family:s.family}:{},...s.version?{version:s.version}:{}})}return Array.from(t.values())}const fr=dr(),mr={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 hr(e=Y){return Ht.flatMap(t=>{const n=[],s=[];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)),m=a.length===0&&r.reasoningEfforts?.includes(t);u.length===0&&!m||(n.push(r.id),a.length>0&&u.length<a.length&&s.push(...u.map(d=>d.id)))}return n.length===0?[]:[{id:t,label:Gs[t],description:mr[t],harnesses:n,...s.length>0?{models:s}:{}}]})}const pr=hr(),Ks=new Set(["md","markdown","mdx","mdown","mkd"]),gr=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"]),br=new Set(["dockerfile","containerfile","makefile","gemfile","rakefile","procfile","brewfile"]),wr=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 zt(e){const t=Js(e),n=t.lastIndexOf(".");return n>=0?t.slice(n+1):""}function yr(e){return Ks.has(zt(e))}function vr(e){const t=Js(e);return br.has(t)?!0:gr.has(zt(e))}function Xs(e){return yr(e)||vr(e)}function Vs(e,t){if(!Xs(t))return null;const n=zt(t);if(Ks.has(n))return"text/markdown";switch(n){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 s=e.trim().toLowerCase();return wr.has(s)?s:"text/plain"}function xr(e,t){const n=e.trim().toLowerCase();return n.startsWith("image/")||n.startsWith("video/")||n==="text/markdown"||n==="text/x-markdown"?!0:t?Vs(n,t)?!0:!n||n==="application/octet-stream"?Xs(t):!1:!1}function jr(e){const t=e.type.trim().toLowerCase();return t.startsWith("image/")||t.startsWith("video/")?t:Vs(t,e.name)??t}function Je(e){return xr(e.type,e.name)}function Sr(e){return jr(e)}function ct(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 n=[];for(const s of e.items){if(s.kind!=="file")continue;const r=s.getAsFile();r&&n.push(r)}return n}function Cr(e){return Ys(e).filter(Je)}function Oa(e){return Cr(e)}function kr(e){return new Promise((t,n)=>{const s=new FileReader;s.onload=()=>{const r=typeof s.result=="string"?s.result:"",a=r.indexOf(",");t(a>=0?r.slice(a+1):r)},s.onerror=()=>n(s.error??new Error("Could not read file.")),s.readAsDataURL(e)})}async function Ar(e){if(!Je(e))throw new Error("Only markdown, code, image, and video files can be routed.");const t=await kr(e);return q("/api/blobs",{method:"POST",body:JSON.stringify({data:t,mediaType:Sr(e),fileName:e.name})})}async function Mr(e){const t=e.filter(Je);if(t.length===0)throw new Error("Drop markdown, code, an image, or a video clip to route.");return(await Promise.all(t.map(s=>Ar(s)))).map((s,r)=>({id:s.id,mediaType:s.mediaType,fileName:s.fileName??t[r]?.name,url:s.url}))}function Ir(e,t){const n=t?.trim();return n?e.find(s=>s.id===n)??null:null}function Er(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 n=Ir(t,e.agentId),s=e.conversationId??n?.conversationId??null;return{agentId:e.agentId,conversationId:s,label:n?.name??e.agentId,canUseExistingChat:!!s}}return{agentId:null,conversationId:null,label:"Pick a project",canUseExistingChat:!1}}function ys({label:e,items:t,activeIndex:n,placement:s="above",onPick:r,onActiveIndexChange:a}){return t.length===0?null:i.jsxs("div",{className:"s-msg-compose-suggest surface-card","data-placement":s,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,m)=>{const d=m===n;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:w=>{w.preventDefault(),r(m)},onMouseEnter:()=>a(m),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 G="",Nr={none:"no reasoning",minimal:"lightest",low:"triage",medium:"default",high:"deep",xhigh:"exhaustive",max:"fullest",ultra:"beyond max"},Rr=Ht.map(e=>({value:e,label:Gs[e],note:Nr[e]}));function $e(e,t){return e.harnesses.find(n=>n.value===t)}function Gt(e,t){return $e(e,t)?.models??[]}function Ae(e,t,n){const s=$e(e,t),r=s?s.efforts===null?null:s.efforts??e.efforts:e.efforts;if(!r||!n)return r;const a=new Set((s?.models??[]).map(u=>u.value));return a.has(n)?r.filter(u=>{if(!u.models||u.models.length===0)return!0;const m=u.models.filter(d=>a.has(d));return m.length===0||m.includes(n)}):r}function Qs(e,t){const s=Gt(e,t.harness).find(r=>r.value===t.model);return s||(t.model.trim()?{value:t.model,label:t.model,note:"custom"}:{value:G,label:"Default",note:"harness picks"})}function Tr(e,t){const n=$e(e,t.harness),s=n?.label??t.harness??"Default",r=Qs(e,t),a=Ae(e,t.harness,t.model),u=a?.find(w=>w.value===t.effort),m=u?.label??t.effort,d=a?`Runtime: ${s}, model ${r.label}, effort ${m}`:`Runtime: ${s}, model ${r.label}`;return{harness:n,harnessLabel:s,model:r,modelLabel:r.label,effort:u,effortLabel:m,supportsEffort:a!==null,summary:d}}function Lr(e,t,n){const s={...t,...n};if(!(n.harness!==void 0&&n.harness!==t.harness)){if(n.model===void 0||n.model===t.model)return s;const p=Ae(e,s.harness,s.model);if(!p||s.effort===G||p.some(Z=>Z.value===s.effort))return s;const F=(Ae(e,t.harness,t.model)??e.efforts).findIndex(Z=>Z.value===t.effort),Q=Math.min(Math.max(F,0),p.length-1);return s.effort=p[Q]?.value??p[0]?.value??G,s}const a=$e(e,s.harness);s.model=n.model??a?.defaultModel??G,n.effort===void 0&&a?.defaultEffort&&(s.effort=a.defaultEffort);const u=Ae(e,s.harness,s.model);if(!u)return s.effort=G,s;if(u.some(p=>p.value===s.effort))return s;const d=(Ae(e,t.harness,t.model)??e.efforts).findIndex(p=>p.value===t.effort),w=Math.min(Math.max(d,0),u.length-1);return s.effort=u[w]?.value??u[0]?.value??G,s}function Pr(e,t){const n=t?.harness??e.harnesses.find(a=>!a.disabled)?.value??"",s=Ae(e,n),r=s?.find(a=>a.note==="default")?.value??s?.[Math.floor((s.length-1)/2)]?.value??G;return{harness:n,model:t?.model??$e(e,n)?.defaultModel??Gt(e,n)[1]?.value??G,effort:s?t?.effort??$e(e,n)?.defaultEffort??r:G}}function Dr(e,t){const n=t.trim().toLowerCase();return n?e.filter(s=>`${s.label} ${s.value} ${s.note??""}`.toLowerCase().includes(n)):e}function qe(...e){for(const t of e){const n=t?.trim();if(n)return n}}function Zs(e){const t=e.harnesses.map(s=>{const r=e.defaultsByHarness?.[s.id],a=s.ready!==!1,u=[{value:G,label:"Default",note:"harness picks"},...e.models.filter(d=>d.harnesses.includes(s.id)).map(d=>({value:d.id,label:d.label,note:qe(d.description)}))],m=e.efforts.filter(d=>d.harnesses.includes(s.id));return{value:s.id,label:s.label,note:a?qe(s.description):qe(s.detail,s.state,"unavailable"),disabled:!a,defaultModel:r?.model??G,defaultEffort:r?.reasoningEffort??G,models:u,efforts:m.length===0?null:m.map(d=>({value:d.id,label:d.label,note:qe(d.description),...d.models?.length?{models:[...d.models]}:{}}))}}),n=e.efforts.map(s=>({value:s.id,label:s.label,note:qe(s.description)}));return{harnesses:t,efforts:n.length>0?n:Rr}}const $r=6,vs=400,_r=14,Or=300,ke=8,Et=["harness","model","effort"],Fr={harness:"horizontal",model:"horizontal",effort:"horizontal"};function Ur(){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 Hr({ctx:e}){const{efforts:t,value:n,set:s}=e;if(!t)return null;const r=Math.max(0,t.findIndex(a=>a.value===n.effort));return i.jsx("div",{className:"s-rt-ladder",role:"radiogroup","aria-label":"Reasoning effort",children:t.map((a,u)=>{const m=u===r;return i.jsxs("button",{type:"button",role:"radio","aria-checked":m,title:a.note,onClick:()=>s({effort:a.value}),...e.cell("effort",u),className:"s-rt-step",children:[i.jsx("span",{className:"s-rt-step-bar","data-state":m?"current":u<r?"filled":"empty"}),i.jsx("span",{className:"s-rt-step-label",children:a.label})]},a.value)})})}function Br({harnessLabel:e}){return i.jsxs("p",{className:"s-rt-effort-absent",children:[e," has no effort control."]})}function Nt({children:e}){return i.jsx("h3",{className:"s-rt-label",children:e})}function zr({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 Gr({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 Wr({ctx:e}){return e.status!=="ready"||e.models.length===0?i.jsx(Gr,{ctx:e}):i.jsx("div",{role:"listbox","aria-label":"Model",className:"s-rt-models",children:e.models.map((t,n)=>{const s=t.value===e.value.model,r=t.disabled??!1;return i.jsx("button",{type:"button",role:"option","aria-selected":s,"aria-disabled":r||void 0,onClick:()=>{r||e.set({model:t.value})},"data-on":s||void 0,"data-disabled":r||void 0,title:t.note,...e.cell("model",n),style:{animationDelay:`${Math.min(n,6)*16}ms`},className:"s-rt-opt s-rt-model-opt",children:t.label},t.value||"default")})},e.value.harness)}function xs({value:e,defaultValue:t,onChange:n,catalog:s,status:r="ready",statusMessage:a,onRetry:u,disabled:m=!1,showEffort:d,searchable:w="auto",className:p}){const[x,F]=l.useState(!1),[Q,Z]=l.useState(""),[Ye,Qe]=l.useState(()=>Pr(s,t)),M=e??Ye,C=l.useRef(null),he=l.useRef(null),pe=l.useRef(null),ge=l.useRef(null),I=l.useId(),je=l.useCallback(f=>{const y=Lr(s,M,f);e===void 0&&Qe(y),n?.(y),f.harness!==void 0&&f.harness!==M.harness&&Z("")},[s,e,n,M]),L=s.harnesses,Oe=l.useMemo(()=>Gt(s,M.harness),[s,M.harness]),_=l.useMemo(()=>{const f=Qs(s,M);return f.note!=="custom"?Oe:[...Oe,f]},[Oe,s,M]),ie=l.useMemo(()=>Dr(_,Q),[_,Q]),Fe=Ae(s,M.harness,M.model),ee=d===!1?null:d===!0?Fe??s.efforts:Fe,te=w==="auto"?_.length>$r:w,U=Tr(s,M),N=l.useRef(new Map),[be,T]=l.useState({group:"model",index:0}),P=l.useMemo(()=>({harness:L.length,model:r==="ready"?ie.length:0,effort:ee?.length??0}),[ee?.length,L.length,ie.length,r]),ce=l.useCallback(f=>f==="harness"?Math.max(0,L.findIndex(y=>y.value===M.harness)):f==="model"?Math.max(0,ie.findIndex(y=>y.value===M.model)):Math.max(0,ee?.findIndex(y=>y.value===M.effort)??0),[ee,L,ie,M]),R=l.useCallback((f,y)=>{T({group:f,index:y}),N.current.get(`${f}:${y}`)?.focus()},[]),se=l.useCallback((f,y)=>{const b=Et.indexOf(f);for(let S=b+y;S>=0&&S<Et.length;S+=y){const k=Et[S];if(P[k]>0)return R(k,Math.min(ce(k),P[k]-1)),!0}return!1},[P,R,ce]),Ze=l.useCallback((f,y)=>({ref:b=>{const S=`${f}:${y}`;b?N.current.set(S,b):N.current.delete(S)},tabIndex:be.group===f&&be.index===y?0:-1,onFocus:()=>T({group:f,index:y}),onKeyDown:b=>{const S=Fr[f]==="vertical",k=S?"ArrowDown":"ArrowRight",K=S?"ArrowUp":"ArrowLeft",z=S?"ArrowRight":"ArrowDown",He=S?"ArrowLeft":"ArrowUp",O=P[f];O!==0&&(f==="model"&&b.key==="ArrowUp"&&te?(b.preventDefault(),T({group:f,index:y}),ge.current?.focus()):b.key===k?(b.preventDefault(),R(f,(y+1)%O)):b.key===K?(b.preventDefault(),R(f,(y-1+O)%O)):b.key===z?(b.preventDefault(),se(f,1)):b.key===He?(b.preventDefault(),se(f,-1)):b.key==="Home"?(b.preventDefault(),R(f,0)):b.key==="End"&&(b.preventDefault(),R(f,O-1)))}}),[P,be,R,se,te]),we=l.useCallback(f=>{if(f.key==="ArrowDown"&&P.model>0)f.preventDefault(),R("model",0);else if(f.key==="ArrowUp")f.preventDefault(),se("model",-1);else if(f.key==="Enter"&&P.model===1){f.preventDefault();const y=ie[0];y.disabled||je({model:y.value})}else f.key==="Escape"&&Q&&(f.preventDefault(),f.stopPropagation(),Z(""))},[P.model,R,se,ie,Q,je]),[H,Ue]=l.useState(null),ye=l.useCallback(()=>{const f=he.current;if(!f)return;const y=f.getBoundingClientRect(),b=y.top,S=window.innerHeight-y.bottom,k=b>=Or||b>=S?"up":"down",K=Math.min(vs,window.innerWidth-ke*2),z=Math.min(Math.max(ke,y.right-K),Math.max(ke,window.innerWidth-K-ke));Ue({left:z,top:k==="up"?y.top-ke:y.bottom+ke,placement:k})},[]);l.useLayoutEffect(()=>{if(!x)return;ye();const f=()=>ye();return window.addEventListener("scroll",f,!0),window.addEventListener("resize",f),()=>{window.removeEventListener("scroll",f,!0),window.removeEventListener("resize",f)}},[x,ye]);const E=l.useCallback(f=>{F(!1),f&&he.current?.focus()},[]);l.useEffect(()=>{if(!x)return;const f=b=>{const S=b.target;C.current?.contains(S)||pe.current?.contains(S)||F(!1)},y=b=>{b.key==="Escape"&&(b.stopPropagation(),E(!0))};return document.addEventListener("pointerdown",f),document.addEventListener("keydown",y),()=>{document.removeEventListener("pointerdown",f),document.removeEventListener("keydown",y)}},[x,E]),l.useEffect(()=>{if(!x)return;const f=P.model>0?"model":"harness",y=Math.min(ce(f),Math.max(0,P[f]-1));T({group:f,index:y});const b=requestAnimationFrame(()=>{const S=N.current.get(`${f}:${y}`);S?S.focus():pe.current?.focus()});return()=>cancelAnimationFrame(b)},[x]),l.useEffect(()=>{x||Z("")},[x]),l.useEffect(()=>{m&&F(!1)},[m]);const B={value:M,set:je,status:r,statusMessage:a,onRetry:u,harnesses:L,models:ie,efforts:ee,harnessLabel:U.harnessLabel,searchable:te,query:Q,setQuery:Z,searchRef:ge,cell:Ze,onSearchKeyDown:we};return i.jsxs("div",{ref:C,className:p?`s-rt-root ${p}`:"s-rt-root",style:{position:"relative",display:"inline-flex"},children:[i.jsxs("button",{ref:he,type:"button",className:`s-rt-chip${m?" s-rt-chip--disabled":""}`,"aria-haspopup":"dialog","aria-expanded":x,"aria-controls":x?I:void 0,"aria-label":U.summary,disabled:m,onClick:()=>F(f=>!f),children:[i.jsx(ws,{harness:M.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:U.modelLabel},U.modelLabel)}),ee&&U.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":M.effort,children:U.effortLabel})]}):null]}),i.jsx(Ur,{})]}),x&&H?Xn.createPortal(i.jsxs("div",{ref:pe,id:I,role:"dialog","aria-label":"Runtime",tabIndex:-1,"data-placement":H.placement,className:"s-rt-panel",style:{left:H.left,width:Math.min(vs,window.innerWidth-ke*2),...H.placement==="up"?{bottom:window.innerHeight-H.top}:{top:H.top}},children:[i.jsxs("section",{className:"s-rt-band",style:{animationDelay:"20ms"},children:[i.jsx(Nt,{children:"Harness"}),i.jsx("div",{className:"s-rt-options",role:"radiogroup","aria-label":"Harness",children:L.map((f,y)=>{const b=f.value===M.harness,S=f.disabled??!1;return i.jsxs("button",{type:"button",role:"radio","aria-checked":b,"aria-disabled":S||void 0,onClick:()=>{S||B.set({harness:f.value})},"data-on":b||void 0,"data-disabled":S||void 0,title:f.note,...B.cell("harness",y),className:"s-rt-opt s-rt-harness-opt",children:[i.jsx(ws,{harness:f.value||"unknown",size:13,className:"s-rt-opt-mark",title:null}),i.jsx("span",{children:f.label})]},f.value||"default")})})]}),i.jsxs("section",{className:"s-rt-band",style:{animationDelay:"45ms"},children:[i.jsx(Nt,{children:"Model"}),te?i.jsx(zr,{ctx:B}):null,i.jsx(Wr,{ctx:B}),U.model.note?i.jsx("p",{className:"s-rt-band-note",children:U.model.note}):null]}),i.jsxs("section",{className:"s-rt-band",style:{animationDelay:"70ms"},children:[i.jsx(Nt,{children:"Effort"}),i.jsx("div",{className:"s-rt-effort",children:ee?i.jsx(Hr,{ctx:B}):i.jsx(Br,{harnessLabel:U.harnessLabel})})]})]}),document.body):null]})}const Pt="scout:newchat:frame:v1",qr=620,js=420,Ss=300,mt=12,Kr=210,Jr=154;function en(e){return e>qr}function Cs(e,t,n){if(!en(n.width))return null;const s=e??t;return s?pt(s,n):null}function Xr(e){return e?Math.max(Jr,Math.round(e.height-Kr)):null}function ks(e,t,n){const s=n-t-mt;return Math.round(Math.max(mt,Math.min(e,s)))}function pt(e,t){const n=Math.round(Math.max(js,Math.min(e.width,Math.max(js,t.width-mt*2)))),s=Math.round(Math.max(Ss,Math.min(e.height,Math.max(Ss,t.height-mt*2))));return{x:ks(e.x,n,t.width),y:ks(e.y,s,t.height),width:n,height:s}}function Vr(e,t,n,s){return pt({...e,x:e.x+t,y:e.y+n},s)}function Yr(e,t,n,s,r){const a=s==="s"?e.width:e.width+t,u=s==="e"?e.height:e.height+n;return pt({...e,width:a,height:u},r)}function Qr(e){if(!e||typeof e!="object")return!1;const t=e;return["x","y","width","height"].every(n=>typeof t[n]=="number"&&Number.isFinite(t[n]))}function Zr(e){if(!e)return null;try{const t=JSON.parse(e);return Qr(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:Zr(localStorage.getItem(Pt))}catch{return null}}function Ms(e){try{if(typeof localStorage>"u")return;if(!e){localStorage.removeItem(Pt);return}localStorage.setItem(Pt,JSON.stringify(e))}catch{}}const Dt=ir()??"",Is=Ws(Dt),Me={schemaVersion:"openscout.runtime-capabilities.v1",catalogVersion:Y.schemaVersion,defaults:{harness:Dt,model:Is,reasoningEffort:qs(Dt,Is)},defaultsByHarness:ur,harnesses:Y.harnesses.filter(e=>e.enabled&&e.listed!==!1).map(e=>({id:e.id,label:e.label})),models:fr.map(e=>({id:e.id,label:e.label,...e.description?{description:e.description}:{},harnesses:[...e.harnesses]})),efforts:pr.map(e=>({id:e.id,label:e.label,...e.description?{description:e.description}:{},harnesses:[...e.harnesses],...e.models?{models:[...e.models]}:{}}))};function Fa(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 eo="|";function Es(e){return e<55296?e:e<57344?e+8192:e-2048}function to(e,t){if(e===t)return 0;const n=Math.min(e.length,t.length);for(let s=0;s<n;s+=1){const r=e.charCodeAt(s),a=t.charCodeAt(s);if(r!==a)return Es(r)<Es(a)?-1:1}return e.length===t.length?0:e.length<t.length?-1:1}function Ns(e){return Number.isFinite(e)?e:0}function so(e,t){const n=Ns(e.createdAt),s=Ns(t.createdAt);return n!==s?n<s?-1:1:to(e.id,t.id)}function no(e){return`${Number.isFinite(e.createdAt)?Math.max(0,Math.trunc(e.createdAt)):0}${eo}${e.id}`}const ro=10,oo=80,Rs=300,Ts=100,tn=2e3,ao=ro,xe=new Map,me=new Map;let sn=0;function Ee(e){return e.trim()}function io(e){const t=new Map;for(const n of e)t.set(n.id,n);return[...t.values()].sort(so)}function co(){if(xe.size<=ao)return;let e=null,t=Number.POSITIVE_INFINITY;for(const[n,s]of xe)s.touchedAt<t&&(e=n,t=s.touchedAt);e&&xe.delete(e)}function Ie(e){const t=Ee(e),n=xe.get(t);return n?(n.touchedAt=++sn,n.messages):null}function Wt(e,t,n={}){const s=Ee(e);if(!s)return[];const r=xe.get(s),a=io(t).slice(-tn);return xe.set(s,{messages:a,historyLoaded:n.historyLoaded??r?.historyLoaded??!1,historyExhausted:n.historyExhausted??r?.historyExhausted??!1,touchedAt:++sn}),co(),a}function nn(e,t){const n=Ie(e)??[];return Wt(e,[...n,...t])}function rn(e){return xe.get(Ee(e))?.historyLoaded??!1}function lo(e){const t=xe.get(Ee(e));return!!(t&&t.historyLoaded&&!t.historyExhausted&&t.messages.length>0&&t.messages.length<tn)}async function Ua(e,t={}){const n=Ee(e);if(!n)return[];const s=Ie(n);if(s&&!t.refresh)return s;const r=me.get(n);if(r)return r;const a=q(`/api/messages?conversationId=${encodeURIComponent(n)}&limit=${oo}`).then(u=>nn(n,u));me.set(n,a);try{return await a}finally{me.delete(n)}}async function uo(e){const t=Ee(e);if(!t)return[];if(rn(t))return Ie(t)??[];const n=`${t}:history`,s=me.get(n);if(s)return s;const r=q(`/api/messages?conversationId=${encodeURIComponent(t)}&limit=${Rs}`).then(a=>Wt(t,[...Ie(t)??[],...a],{historyLoaded:!0,historyExhausted:a.length<Rs}));me.set(n,r);try{return await r}finally{me.delete(n)}}async function Ha(e){const t=Ee(e);if(!t)return[];if(!rn(t))return uo(t);if(!lo(t))return Ie(t)??[];const n=Ie(t)??[],s=n[0];if(!s)return n;const r=no(s),a=`${t}:before:${r}`,u=me.get(a);if(u)return u;const m=q(`/api/messages?conversationId=${encodeURIComponent(t)}&limit=${Ts}&beforeMessageId=${encodeURIComponent(r)}`).then(d=>Wt(t,[...d,...Ie(t)??[]],{historyLoaded:!0,historyExhausted:d.length<Ts}));me.set(a,m);try{return await m}finally{me.delete(a)}}const fo=12e4,Xe=new Map;function mo(){const e=globalThis.crypto?.randomUUID?.();return e?`web-${e}`:`web-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function ho(e){const t=e.conversationId.trim(),n=e.messageId.trim();if(!t||!n)return;nn(t,[{id:n,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 s=e.flightId?.trim(),r=e.agentId?.trim();!s||!r||Xe.set(t,{flight:{id:s,invocationId:e.invocationId?.trim()||`pending:${s}`,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()+fo})}function Ba(e,t=Date.now()){const n=e.trim(),s=Xe.get(n);return s?s.expiresAt<=t?(Xe.delete(n),null):s.flight:null}function za(e,t){const n=e.trim(),s=Xe.get(n);s&&(!t||s.flight.id===t)&&Xe.delete(n)}const po=1200,go=new Set(["Page","URL"]);function on(e){return e.trim().slice(0,po)}function bo(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((n,s)=>{t.push({label:`Note ${s+1}`,value:n})}),t.filter(n=>n.value.trim())}function wo(e,t){const n=[];for(const r of t){const a=r.value.trim();a&&(go.has(r.label)?n.push(`${r.label}: ${a}`):n.push(`${r.label}:
|
|
2
|
-
${a.split(`
|
|
3
|
-
`).map(u=>`> ${u}`).join(`
|
|
4
|
-
`)}`))}const s=e.trim();return s&&n.push(s),n.join(`
|
|
5
|
-
|
|
6
|
-
`)}const yo=6,Ls=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(),n=vo(e.attachmentCount??0),s=[t,n].filter(Boolean).join(`
|
|
7
|
-
`)||"(message has no text)";return s.length<=Ls?s:`${s.slice(0,Ls-1).trimEnd()}…`}function xo(e){const t=an(e).split(/\r?\n/gu).map(n=>`> ${n}`).join(`
|
|
8
|
-
`);return`Forwarded from ${e.actorLabel} in Scout
|
|
9
|
-
|
|
10
|
-
${t}`}function Ga(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 n=e.messages[t],s=e.messages.slice(Math.max(0,t-yo),t).filter(a=>a.body.trim()||(a.attachmentCount??0)>0),r=s.map(a=>`${a.actorLabel}:
|
|
11
|
-
${an(a)}`).join(`
|
|
12
|
-
|
|
13
|
-
`).slice(-8e3).trim();return{selectedMessage:xo(n),selectedMessageId:n.id,sourceConversationId:e.conversationId,...r?{recentContext:r}:{},recentMessageCount:s.length}}function jo(e,t,n){const s=n.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 s?r?`${s}
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
${r}`:s: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 $t(){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 n=[];for(const s of t){const r=typeof s=="string"?un(s):null;r&&!n.includes(r)&&n.push(r)}return n.slice(0,ln)}catch{return[]}}function Ps(e){const t=un(e);if(!t)return $t();const n=[t,...$t().filter(s=>s!==t)].slice(0,ln);if(typeof window<"u")try{window.localStorage.setItem(cn,JSON.stringify(n))}catch{}return n}async function So(e){const t=e.conversationId?.trim();if(t)return t;const n=e.projectRoot?.trim()||e.cwd?.trim(),s=await q("/api/conversations/direct",{method:"POST",body:JSON.stringify({agentId:e.id,targetLabel:e.selector??e.defaultSelector??e.name,...n?{projectPath:n}:{}})}),r=s.chatId?.trim()??s.conversationId?.trim()??s.cId?.trim()??s.id?.trim();if(!r)throw new Error("Chat was created, but no chat id was returned.");return r}function W(e){if(!e)return null;const t=e.replace(/\/+$/,""),n=t.lastIndexOf("/");return n>=0?t.slice(n+1):t}function _e(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(/\/+$/,""),n=t.lastIndexOf("/");return n>=0?t.slice(0,n)||"/":null}function _t(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=Co(e);if(t)return{title:_t(W(t)??"Unscoped"),root:t};const n=W(e)?.trim().toLowerCase();if(!n||n==="~")return null;const r=n.match(/^(.+?)(?:-(?:parity|codex))?-c\d+$/)?.[1];if(!r)return null;const a=dn(e);return{title:_t(r),root:a?`${a}/${r}`:r}}function Co(e){const t=e.replace(/\/+$/,"");if(/^(?:~|\/Users\/[^/]+)\/\.codex\/worktrees\//u.test(t))return null;const n=t.match(/^(.*)\/([^/]+)-worktrees(?:\/[^/]+)+$/);return n?.[1]&&n[2]?`${n[1]}/${n[2]}`:t.match(/^(.*\/[^/]+)\/(?:\.worktrees|worktrees)(?:\/[^/]+)+$/)?.[1]??null}function ko(e){const n=W(e)?.match(/^(.+)-\d+$/u),s=dn(e);return n?.[1]&&s?`${s}/${n[1]}`:null}function Ao(e){const t=e?.trim();if(!t)return null;const n=t.match(/^(\/Users\/[^/]+\/dev\/[^/]+)/);if(n?.[1])return n[1];const s=t.match(/^(~\/dev\/[^/]+)/);if(s?.[1])return s[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 n=t[1]??"";return n?`~${n}`:"~"}function qt(e){const t=_e(e);if(!t)return null;const s=fn(t)?.root??ko(t)??t,a=Mo(Ao(s)??s);return a==="~"||/^\/(Users|home)\/[^/]+$/.test(a)||/^\/(Users|home)$/.test(a)?null:a}function Ot(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+\d+$/,"").replace(/\s+/g,"")}function Io(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-\d+$/,"")}function Eo(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function Ds(e){const t=e.root??"";return t?Ft(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 Ro(e){const t=new Map;for(const n of e){const s=t.get(n.slug)??[];s.push(n),t.set(n.slug,s)}for(const n of t.values()){if(n.length<=1)continue;const s=[...n].sort(No)[0];for(const r of n)r!==s&&(r.slug=`${r.slug}-${Eo(r.key)}`)}}function To(e,t){const n=qt(e);return n?`root:${n}`:`project:${Ot(t)||"unscoped"}`}function Ft(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 n=qt(t),s=n?_t(W(n)??(e?.trim()||"Unscoped")):e?.trim()||"Unscoped";return{key:To(n,s),title:s,root:n,slug:Io(W(n)??s)||"unscoped"}}const Lo=new Set(["empty","unknown","unscoped","untitled","general"]);function Po(e,t){e.agents.push(...t.agents),e.scoutSessions.push(...t.scoutSessions),e.nativeSessions.push(...t.nativeSessions),e.workflows.push(...t.workflows)}function Do(e){const t=new Map;for(const n of e.values()){if(!n.root)continue;const s=Ot(W(n.root)??n.title);s&&!t.has(s)&&t.set(s,n)}for(const[n,s]of[...e.entries()]){if(s.root)continue;const r=Ot(s.title),a=r?t.get(r):void 0;a?(Po(a,s),e.delete(n)):(!r||Lo.has(s.title.trim().toLowerCase())||s.agents.length===0&&s.scoutSessions.length===0)&&e.delete(n)}}function Wa(e,t){if(t.filter(r=>r.name===e.name).length<=1)return{name:e.name,qualifier:null};const s=e.project??e.branch??e.id.replace(/^.*\./,"");return{name:e.name,qualifier:s}}function qa(e){const t=[...e].filter(r=>r.kind==="direct"&&!!r.agentId).sort((r,a)=>(a.lastMessageAt??0)-(r.lastMessageAt??0)),n=new Map,s=new Map;for(const r of t){const a=s.get(r.agentId);(!a||$o(r,a))&&(n.set(r.agentId,r.id),s.set(r.agentId,r))}return{conversationByAgentId:n,sessionByAgentId:s}}function $o(e,t){const n=e.lastMessageAt??0,s=t.lastMessageAt??0;return n!==s?n>s:e.id<t.id}const lt={needs_attention:0,in_turn:1,in_flight:2,callable:3,blocked:4},_o=6e4;function Ve(e,t){const n=_e(t),s=fn(n);return s?$s(s.title,s.root):$s(e,n)}function Oo(e){const t=_e(e.agent.projectRoot??e.agent.cwd),n=e.agent.project??e.project;return Ve(n,t)}function Fo(e){return Ve(e.project,e.cwd)}function Uo(e){return Ve(e.agentName??e.title,e.workspaceRoot)}function Ho(e){return Ve(e.project.title,e.project.root)}function ht(e){const t=e?.trim();if(!t)return null;const n=W(t)??t;return n.endsWith(".jsonl")?n.slice(0,-6):n}function Le(e,t){const n=t?.trim();n&&e.add(n.toLowerCase());const s=ht(n);s&&e.add(s.toLowerCase())}function mn(e){const t=new Set;return Le(t,e.agent.conversationId),Le(t,e.agent.harnessSessionId),Le(t,e.agent.harnessLogPath),Le(t,e.session?.id),Le(t,e.session?.harnessSessionId),Le(t,e.session?.harnessLogPath),t}function De(e,t){const n=t?.trim();if(n&&e.has(n.toLowerCase()))return!0;const s=ht(n);return!!(s&&e.has(s.toLowerCase()))}function Bo(e,t){if(e.agentId&&e.agentId===t.agent.id)return!0;const n=mn(t);return De(n,e.id)||De(n,e.harnessSessionId)||De(n,e.harnessLogPath)}function zo(e,t){const n=e?.command?.toLowerCase();return n?[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=>n.includes(r.toLowerCase())):!1}function Go(e,t){const n=mn(t);return De(n,e.refId)||De(n,e.sessionId)||De(n,e.transcriptPath)||zo(e.process,t)}function Ka(e,t){if(!e)return[];const n=[];for(const s of e.transcripts??[]){const r=s.source||"unknown",a=ht(s.sessionId)??ht(s.transcriptPath);if(!a)continue;const u=(s.lastEventAt??s.mtimeMs)||null;n.push({key:`transcript:${s.transcriptPath}`,refId:a,source:r,project:s.project?.trim()||W(s.cwd)||W(s.transcriptPath)||"unknown",cwd:_e(s.cwd),transcriptPath:s.transcriptPath,sessionId:s.sessionId,mtimeMs:s.mtimeMs,size:s.size,status:u&&t-u<=_o?"active":"idle",process:null,lastActivityAt:u})}for(const s of e.processes??[]){const r=s.source||"unknown",a=_e(s.cwd);n.push({key:`process:${r}:${s.pid}`,refId:`pid-${s.pid}`,source:r,project:W(a)??"unknown",cwd:a,transcriptPath:null,sessionId:null,mtimeMs:null,size:null,status:"active",process:s,lastActivityAt:null})}return n.sort((s,r)=>{const a=(s.status==="active"?0:1)-(r.status==="active"?0:1);return a!==0?a:(r.lastActivityAt??0)-(s.lastActivityAt??0)||s.project.localeCompare(r.project)})}function Wo(e){if(!e)return"—";const t=e.replace(/^session[_:-]?/i,"");return t.length>10?t.slice(0,8):t}function Pe(e){const t=e?.trim();return t||void 0}function qo(e){const t=Pe(e.projectRoot)??Pe(e.cwd);return{target:{agentId:e.id,...t?{projectPath:t}:{}},execution:{session:"new",...Pe(e.harness)?{harness:Pe(e.harness)}:{},...Pe(e.model)?{model:Pe(e.model)}:{}}}}function Ko(e){if(e.length===0)return null;const t={working:0,needs_attention:1,queued:2,failed:3,completed:4},n=[...e].sort((s,r)=>{const a=t[s.status]-t[r.status];return a!==0?a:(r.updatedAt??0)-(s.updatedAt??0)})[0];return(n.summary??n.task??n.statusLabel??"").trim()||null}function Ja(e,t,n){const s=Vn(e.state,e),r=e.project??W(e.projectRoot)??"Unscoped",a=e.branch??"—",u=Lt(e.harness)??Lt(e.agentClass)??"agent";return{agent:e,status:s,stateLabel:Yn(e.state,e),project:r,branch:a,harness:u,session:t,activeTask:Ko(n),activeAskCount:n.length,lastActivityAt:Math.max(0,t?.lastMessageAt??0,e.updatedAt??0)||null}}function Jo(e){return{...e,agents:[],scoutSessions:[],nativeSessions:[],workflows:[],status:"callable",lastActivityAt:null}}function ut(e,t){const n=e.get(t.key);if(n)return t.root&&(!n.root||Ft(n.root)&&!Ft(t.root))&&(n.root=t.root),n;const s=Jo(t);return e.set(t.key,s),s}function Xo(e){const t=e.agents.some(p=>p.status==="in_turn"||p.status==="in_flight"),n=e.nativeSessions.some(p=>p.status==="active"),s=e.workflows.some(p=>p.activeTaskCount>0||p.status==="running"),r=e.agents.some(p=>p.status==="callable");e.status=t||n||s?"in_turn":r?"callable":"blocked";const a=e.agents.map(p=>p.lastActivityAt??0),u=e.scoutSessions.map(p=>p.lastMessageAt??0),m=e.nativeSessions.map(p=>p.lastActivityAt??0),d=e.workflows.map(p=>p.lastActivityAt??0),w=Math.max(0,...a,...u,...m,...d);e.lastActivityAt=w||null}function Vo(e,t,n,s){const r=new Map,a=new Map;for(const d of e){const w=Oo(d);ut(r,w).agents.push(d),a.set(d.agent.id,w.key)}for(const d of n)ut(r,Fo(d)).nativeSessions.push(d);for(const d of s)ut(r,Ho(d)).workflows.push(d);const u=new Map;for(const d of t){const w=d.agentId?a.get(d.agentId):void 0,p=w?r.get(w)??null:qt(d.workspaceRoot)?ut(r,Uo(d)):null;if(!p)continue;const x=p,F=u.get(x.key)??new Set;F.has(d.id)||(F.add(d.id),u.set(x.key,F),x.scoutSessions.push(d))}Do(r);for(const d of r.values())d.agents.sort((w,p)=>{const x=lt[w.status]-lt[p.status];return x!==0?x:(p.lastActivityAt??0)-(w.lastActivityAt??0)||w.agent.name.localeCompare(p.agent.name)}),d.scoutSessions.sort((w,p)=>(p.lastMessageAt??0)-(w.lastMessageAt??0)),d.nativeSessions.sort((w,p)=>{const x=(w.status==="active"?0:1)-(p.status==="active"?0:1);return x!==0?x:(p.lastActivityAt??0)-(w.lastActivityAt??0)}),d.workflows.sort((w,p)=>{const x=(p.activeTaskCount>0?1:0)-(w.activeTaskCount>0?1:0);return x!==0?x:(p.lastActivityAt??0)-(w.lastActivityAt??0)||w.label.localeCompare(p.label)}),Xo(d);const m=[...r.values()];return Ro(m),m.sort((d,w)=>{const p=lt[d.status]-lt[w.status];return p!==0?p:(w.lastActivityAt??0)-(d.lastActivityAt??0)||d.title.localeCompare(w.title)})}function _s(e){const t=Lt(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 Os(e){return{key:`native:${e.key}`,kind:"native",status:e.status,harness:e.source,label:Wo(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 Yo(e,t){return e.agent.name.localeCompare(t.agent.name)||e.agent.id.localeCompare(t.agent.id)}function Fs(e){const t={workflow:0,native:1,scout:2};return[...e].sort((n,s)=>{const r=t[n.kind]-t[s.kind];return r!==0?r:n.harness.localeCompare(s.harness)||n.key.localeCompare(s.key)})}function Qo(e){const t=new Set,n=new Set,s=[...e.agents].sort(Yo).map(a=>{const u=[];for(const m of e.scoutSessions)t.has(m.id)||Bo(m,a)&&(t.add(m.id),u.push(_s(m)));for(const m of e.nativeSessions)n.has(m.key)||Go(m,a)&&(n.add(m.key),u.push(Os(m)));return{key:a.agent.id,row:a,sessions:Fs(u)}}),r=Fs([...e.nativeSessions.filter(a=>!n.has(a.key)).map(Os),...e.scoutSessions.filter(a=>!t.has(a.id)).map(_s)]);return{agents:s,unassignedSessions:r}}const Zo=e=>e.status==="in_turn"||e.status==="in_flight";function ea(e){let t=e.row.lastActivityAt??0;for(const n of e.sessions)t=Math.max(t,n.lastActivityAt??0);return t}function Us(e){return e.agents.filter(t=>Zo(t.row)).length}function Hs(e){return e.agents.some(t=>t.row.activeAskCount>0)}function Xa(e,t,n){const r=Vo(e,t,n,[]).map(a=>{const u=Qo(a);let m=0;for(const d of u.agents)m=Math.max(m,ea(d));for(const d of u.unassignedSessions)m=Math.max(m,d.lastActivityAt??0);return{slice:a,agents:u.agents,unassigned:u.unassignedSessions,lastActivityAt:m}});return r.sort((a,u)=>{const m=Hs(a)?1:0,d=Hs(u)?1:0;if(m!==d)return d-m;const w=Us(a),p=Us(u);return w!==p?p-w:u.lastActivityAt-a.lastActivityAt}),r}function Va(e,t){if(!t)return null;const n=t.trim().replace(/^@+/,"");if(!n)return null;const s=e.find(m=>m.id===n);if(s)return s;if(n.split(".").filter(Boolean).length>=3)return null;const a=e.filter(m=>m.handle===n||m.selector===`@${n}`||m.defaultSelector===`@${n}`||m.id.startsWith(`${n}.`)),u=Array.from(new Map(a.map(m=>[m.id,m])).values());return u.length===1?u[0]:null}function Ya(e){const n=e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return n[n.length-1]??e}function Qa(e){const t=_e(e.projectRoot??e.cwd),n=e.project??W(t);return Ve(n,t)}function Ke(e){const t=e?.trim();return t?t.length>1?t.replace(/\/+$/u,""):t:null}function Ut(e){return e.split("/").filter(Boolean).at(-1)??e}function ta(e,t,n="claude"){const s=new Map;for(const r of e){const a=Ke(r.root);a&&s.set(a,{id:r.id||`project:${a}`,title:r.title?.trim()||Ut(a),root:a,defaultHarness:r.defaultHarness?.trim()||n,source:"inventory",registrationKind:r.registrationKind?.trim()||null})}for(const r of t){const a=Ke(r.projectRoot??r.cwd);!a||s.has(a)||s.set(a,{id:`agent-project:${a}`,title:r.project?.trim()||Ut(a),root:a,defaultHarness:r.harness?.trim()||n,source:"agent",registrationKind:null})}return[...s.values()].sort((r,a)=>r.title.localeCompare(a.title,void 0,{sensitivity:"base"})||r.root.localeCompare(a.root))}function sa(e,t){const n=e.title.toLocaleLowerCase(),s=e.root.toLocaleLowerCase(),r=Ut(e.root).toLocaleLowerCase();return n===t||r===t||s===t?0:n.startsWith(t)||r.startsWith(t)?1:s.startsWith(t)?2:t.split(/\s+/u).filter(Boolean).every(u=>n.includes(u)||s.includes(u))?3:null}function na(e,t){if(t.length===0)return[...e];const n=new Map(e.map(a=>[a.root,a])),s=[],r=new Set;for(const a of t){const u=n.get(a);!u||r.has(a)||(r.add(a),s.push(u))}return[...s,...e.filter(a=>!r.has(a.root))]}function ra(e,t){const n=t.trim().toLocaleLowerCase();return n?e.map(s=>({project:s,score:sa(s,n)})).filter(s=>s.score!==null).sort((s,r)=>s.score-r.score||s.project.title.localeCompare(r.project.title,void 0,{sensitivity:"base"})||s.project.root.localeCompare(r.project.root)).map(s=>s.project):[...e]}function oa(e,t){return e===t||e.startsWith(`${t}/`)}function aa(e,t){const n=Ke(t.preferredRoot);if(n){const r=e.find(a=>a.root===n);if(r)return r}for(const r of t.recentRoots??[]){const a=Ke(r);if(!a)continue;const u=e.find(m=>m.root===a);if(u)return u}const s=Ke(t.currentDirectory);if(s){const r=e.filter(a=>oa(s,a.root)).sort((a,u)=>u.root.length-a.root.length)[0];if(r)return r}return e[0]??null}async function ia(e){await q("/api/send",{method:"POST",body:JSON.stringify({conversationId:e.conversationId,body:e.body?.trim()??"",attachments:e.attachments})})}async function ca(e,t){const n=t?.attachments?.filter(Boolean)??[],s=t?.instructions?.trim(),r=qo(e),a=s||n.length>0?{...r,seed:{...s?{instructions:s}:{},...n.length>0?{attachments:n}:{},...t?.clientMessageId?{clientMessageId:t.clientMessageId}:{}}}:r;return await q("/api/sessions",{method:"POST",body:JSON.stringify(a)})}async function la(e){const t=e.projectPath.trim(),n=e.harness?.trim(),s=e.model?.trim(),r=e.reasoningEffort?.trim(),a=e.instructions?.trim(),u=e.fromMessageId?.trim(),m=e.fromConversationId?.trim(),d=e.attachments?.filter(Boolean)??[];return q("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:t},execution:{session:"new",...n?{harness:n}:{},...s?{model:s}:{},...r?{reasoningEffort:r}:{}},agent:{persistence:"one_time"},...a||d.length>0||u&&m?{seed:{...a?{instructions:a}:{},...d.length>0?{attachments:d}:{},...e.clientMessageId?{clientMessageId:e.clientMessageId}:{},...u&&m?{fromMessageId:u,fromConversationId:m}:{}}}:{}})})}async function Za(e){return q("/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 ua(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";case"grok-acp":case"grok_acp":return"grok-acp";case"kimi":return"kimi";case"opencode":case"opencode_acp":return"opencode";default:return}}function ei(e){const t=ua(e);return t&&["claude","codex","grok","opencode","pi"].includes(t)?t:void 0}async function ti(e){const t=e.projectPath.trim(),n=e.sessionId.trim(),s=e.instructions.trim(),r=e.harness?.trim()||void 0,a=e.model?.trim()||void 0,u=e.reasoningEffort?.trim()||void 0;return q("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:t},execution:{session:"existing",targetSessionId:n,...r?{harness:r}:{},...a?{model:a}:{},...u?{reasoningEffort:u}:{}},seed:{instructions:s}})})}async function da(e,t){const n=t.message?.trim();if(t.mode==="existing-chat"){const a=await So(e);return await ia({conversationId:a,body:n||"Shared capture",attachments:t.attachments}),{conversationId:a,agentId:e.id}}const s=await ca(e,{instructions:n||"Shared capture for context.",attachments:t.attachments}),r=s.conversationId?.trim();if(!r)throw new Error("Session started, but no conversation was returned.");return{conversationId:r,agentId:s.agentId?.trim()||e.id}}const hn=Me.harnesses.map(e=>({id:e.id,label:e.label??e.id,description:null,state:null,ready:null,detail:null})),fa=Me.models.map(e=>({id:e.id,label:e.label??e.id,description:e.description??null,harnesses:[...e.harnesses],source:"catalog"})),ma=Me.efforts.map(e=>({...e,harnesses:[...e.harnesses],...e.models?{models:[...e.models]}:{}})),dt={defaults:{harness:Me.defaults?.harness??"claude",model:Me.defaults?.model??null,reasoningEffort:Me.defaults?.reasoningEffort??"medium"},defaultsByHarness:Me.defaultsByHarness,harnesses:hn,models:fa,efforts:ma};let Rt=null;const Bs="/api/runner/options",ha=5*6e4,zs=5;function pa(e,t){const n=e.defaults.harness===t?e.defaults.model?.trim()??"":"";return n&&e.models.some(s=>s.id===n&&s.harnesses.includes(t))?n:e.models.find(s=>s.harnesses.includes(t))?.id??""}function ga(e,t){const n=e.efforts.filter(s=>s.harnesses.includes(t));return n.find(s=>s.id===e.defaults.reasoningEffort)?.id??n.find(s=>s.id==="medium")?.id??n[0]?.id??""}function ba(e){return URL.createObjectURL(e)}function Tt(e){return e.replace(/^\/Users\/[^/]+/u,"~")}function wa(e){return e.split("/").filter(Boolean).at(-1)??e}function ya(e){const t=e.trim();return t.startsWith("/")||t.startsWith("~/")}function va({file:e,onRemove:t}){const n=l.useMemo(()=>ba(e),[e]);l.useEffect(()=>()=>URL.revokeObjectURL(n),[n]);const s=e.type.startsWith("video/"),r=e.type.startsWith("image/");return i.jsxs("div",{className:"s-newchat-attachment",children:[s?i.jsx("video",{src:n,muted:!0,playsInline:!0}):r?i.jsx("img",{src:n,alt:e.name}):i.jsxs("div",{className:"s-newchat-attachment-file",title:e.name,children:[i.jsx(or,{size:24,"aria-hidden":"true"}),i.jsx("span",{children:e.name})]}),i.jsx("span",{className:"s-newchat-attachment-badge",children:s?"video":r?"image":"file"}),i.jsx("button",{type:"button",className:"s-newchat-attachment-remove","aria-label":`Remove ${e.name}`,onClick:t,children:"×"})]})}function ft(){return{width:window.innerWidth,height:window.innerHeight}}function xa({agents:e,route:t,navigate:n,onClose:s,initialAgentId:r,initialConversationId:a,initialMessage:u,initialFiles:m,initialAttachmentFeedback:d,initialIntent:w="new-task",initialProjectPath:p,initialForwardContext:x,initialForwardContextMode:F="selected-message",defaultMode:Q,draftRestored:Z=!1,onDraftChange:Ye,onDraftConsumed:Qe}){const M=l.useMemo(()=>Er(t,e),[t,e]),C=w==="forward-message"&&!!x,he=l.useMemo(()=>[...e].sort((o,c)=>(c.updatedAt??0)-(o.updatedAt??0)),[e]),pe=w==="route-capture"?r??M.agentId??null:null,ge=w==="route-capture"?a??M.conversationId:null,I=he.find(o=>o.id===pe)??null,je=I?.projectRoot??I?.cwd??null,[L,Oe]=l.useState(null),[_,ie]=l.useState(()=>Rt??Jn(Bs,ha)),[Fe,ee]=l.useState(null),[te,U]=l.useState(null),[N,be]=l.useState(()=>p||je||""),[T,P]=l.useState(""),[ce,R]=l.useState(0),[se,Ze]=l.useState(()=>$t()),[we,H]=l.useState(!1),[Ue,ye]=l.useState(null),[E,B]=l.useState(()=>u??""),[f,y]=l.useState(F),[b,S]=l.useState({open:!1,query:"",triggerStart:-1,index:0}),[k,K]=l.useState({open:!1,query:"",triggerStart:-1,index:0}),[z,He]=l.useState(()=>[...m??[]]),[O,Kt]=l.useState(()=>Q||(ge?"existing-chat":"new-session")),[pn,Jt]=l.useState("idle"),[gn,gt]=l.useState("idle"),[Xt,Se]=l.useState(null),[et,Vt]=l.useState(()=>d??null),[Be]=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()??"")}}),[bt,bn]=l.useState(!1),[le,Yt]=l.useState(()=>I?.harness?.trim()||dt.defaults.harness),[tt,Qt]=l.useState(()=>I?.model?.trim()||dt.defaults.model||""),[st,Zt]=l.useState(dt.defaults.reasoningEffort||""),[wt,es]=l.useState(()=>Z?"Restored your unsent draft.":null),[wn,yt]=l.useState(0),{ref:vt,onKeyDown:yn}=er(!0),D=l.useRef(null),xt=l.useRef(null),Ce=l.useRef(0),nt=l.useRef(!!p),ts=l.useRef(!1),[ne,Ne]=l.useState(null),[vn,jt]=l.useState(null),ze=l.useRef(null);l.useEffect(()=>{typeof window>"u"||Ne(Cs(null,As(),ft()))},[]),l.useEffect(()=>{if(typeof window>"u")return;const o=()=>{Ne(c=>{const g=ft();return Cs(c,c?null:As(),g)})};return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[]);const xn=l.useCallback(()=>{if(ne)return ne;const o=vt.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)}},[ne,vt]),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),ze.current={base:g,x:o.clientX,y:o.clientY,edge:c},jt(c?"resize":"move"),Ne(pt(g,ft())))},Sn=o=>{const c=ze.current;if(!c)return;const g=o.clientX-c.x,h=o.clientY-c.y,v=ft();Ne(c.edge?Yr(c.base,g,h,c.edge,v):Vr(c.base,g,h,v))},ss=o=>{if(ze.current){ze.current=null,jt(null);try{o.currentTarget.releasePointerCapture(o.pointerId)}catch{}Ne(c=>(c&&Ms(c),c))}},Cn=()=>{ze.current=null,jt(null),Ne(null),Ms(null)},rt=o=>({onPointerDown:c=>jn(c,o),onPointerMove:Sn,onPointerUp:ss,onPointerCancel:ss}),ns=Xr(ne),kn=ne?{position:"absolute",left:ne.x,top:ne.y,width:ne.width,height:ne.height,maxWidth:"none",maxHeight:"none",...ns?{"--s-newchat-input-min":`${ns}px`}:{}}:void 0,re=l.useMemo(()=>na(ta(L?.projects??[],e,L?.context.defaultHarness??"claude"),se),[e,L,se]),A=re.find(o=>o.root===N)??null??(N?{id:`direct:${N}`,title:wa(N),root:N,defaultHarness:L?.context.defaultHarness??I?.harness??"claude",source:"agent",registrationKind:null}:null),St=l.useMemo(()=>{const o=new Set,c=A?he.filter(h=>h.projectRoot?.trim()===A.root||h.cwd?.trim()===A.root):[];return(c.length>0?c:he).flatMap(h=>{if(h.retiredFromFleet)return[];const v=h.handle?.trim().replace(/^@+/,"")||Wn(h.id)||"",X=v.toLowerCase();return!v||o.has(X)?[]:(o.add(X),[{id:h.id,label:v,name:h.name||v,handle:v}])})},[A,he]),oe=(_?.harnesses??hn).find(o=>o.id===le)??null,rs=l.useMemo(()=>{const o=Zs(_??dt);return le&&!o.harnesses.some(c=>c.value===le)?{...o,harnesses:[...o.harnesses,{value:le,label:le,models:[{value:"",label:"Default",note:"harness picks"}]}]}:o},[_,le]),Ge=l.useMemo(()=>ra(re,T),[T,re]),ae=l.useMemo(()=>{const o=Ge.slice(0,zs);if(!N||o.some(g=>g.root===N))return o;const c=Ge.find(g=>g.root===N);return c?[c,...o.slice(0,zs-1)]:o},[Ge,N]),ve=ya(T)&&!re.some(o=>o.root===T.trim())?T.trim():null,ot=ae.length+(ve?1:0),An=Math.max(0,(T.trim()?Ge.length:re.length)-ae.length),Mn=!!(I&&A&&[I.projectRoot,I.cwd].some(o=>o?.trim()===A.root)),J=z.length>0,j=pn==="starting",os=wn>0,at=Mn&&!!(I?.conversationId||ge),Re=!J||!at||O==="new-session",as=Re&&oe?.ready===!1,is=C?"Forward to new task":J?"Route capture":"New task",cs=l.useMemo(()=>C?[]:bo({pageTitle:Be.title,pageUrl:Be.url,selection:bt?Be.selection:void 0}),[bt,C,Be]),ue=C&&x?jo(x,f,E):wo(E,cs),In=gn==="uploading"?"Uploading capture":C?"Forwarding to new task":J?"Routing capture":"Sending message",En=J?`Submitted to ${A?.title??I?.name??"Scout"}. Opening the chat when the broker returns it.`:ue?`Routing your first message through /${A?.title??I?.name??"project"}.`:`Starting a project-routed chat in /${A?.title??I?.name??"project"}.`,ls=J&&at,Nn=Re&&(!!te||oe?.ready===!1),Rn=ls||!C&&Nn,de=l.useMemo(()=>{if(!b.open)return[];const o=b.query.toLowerCase();return o?bs.filter(c=>c.command.toLowerCase().startsWith(`/${o}`)||c.command.toLowerCase().includes(o)):bs},[b.open,b.query]),fe=l.useMemo(()=>{if(!k.open)return[];const o=k.query.toLowerCase();return o?St.filter(c=>c.handle.toLowerCase().includes(o)||c.name.toLowerCase().includes(o)||c.label.toLowerCase().includes(o)).slice(0,8):St.slice(0,8)},[St,k.open,k.query]),Ct=l.useCallback(()=>{S(o=>o.open?{...o,open:!1}:o),K(o=>o.open?{...o,open:!1}:o)},[]),We=l.useCallback((o,c)=>{const g=qn(o,c);S(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);K(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)=>{B(o),We(o,c?.caret??o.length)},[We]),kt=l.useCallback(o=>{const c=b.triggerStart;if(c<0)return;const g=D.current?.selectionStart??E.length,h=E.slice(0,c),v=E.slice(g),X=`${h}${o.insert}${v}`;B(X),S(V=>({...V,open:!1})),requestAnimationFrame(()=>{const V=D.current;if(!V)return;const $=h.length+o.insert.length;V.focus(),V.setSelectionRange($,$)})},[E,b.triggerStart]),At=l.useCallback(o=>{const c=k.triggerStart;if(c<0)return;const g=D.current?.selectionStart??E.length,h=E.slice(0,c),v=E.slice(g),X=`@${o.handle}${v.length===0||!v.startsWith(" ")?" ":""}`,V=`${h}${X}${v}`;B(V),K($=>({...$,open:!1})),requestAnimationFrame(()=>{const $=D.current;if(!$)return;const Te=h.length+X.length;$.focus(),$.setSelectionRange(Te,Te)})},[k.triggerStart,E]),us=l.useCallback(o=>{if(j)return;const g=D.current?.selectionStart??E.length,h=E.slice(0,g),v=E.slice(g),V=`${h&&!/\s$/.test(h)?" ":""}${o}`,$=`${h}${V}${v}`,Te=h.length+V.length;B($),We($,Te),requestAnimationFrame(()=>{const It=D.current;It&&(It.focus(),It.setSelectionRange(Te,Te))})},[j,E,We]),Ln=l.useCallback(o=>{const c=b.open&&de.length>0,g=k.open&&fe.length>0;if(!c&&!g)return!1;if(o.key==="ArrowDown")return c?S(h=>({...h,index:(h.index+1)%de.length})):K(h=>({...h,index:(h.index+1)%fe.length})),!0;if(o.key==="ArrowUp")return c?S(h=>({...h,index:(h.index-1+de.length)%de.length})):K(h=>({...h,index:(h.index-1+fe.length)%fe.length})),!0;if(o.key==="Escape")return Ct(),!0;if((o.key==="Enter"||o.key==="Tab")&&!o.shiftKey&&!o.metaKey&&!o.ctrlKey&&!o.altKey){if(c){const h=de[b.index]??de[0];h&&kt(h)}else{const h=fe[k.index]??fe[0];h&&At(h)}return!0}return!1},[At,kt,Ct,fe,de,k.index,k.open,b.index,b.open]),Mt=l.useCallback(()=>{j||s()},[j,s]),Pn=l.useCallback(()=>{es("Draft kept open. Use Esc or × when you are ready to close it."),requestAnimationFrame(()=>D.current?.focus())},[]);l.useEffect(()=>{const o=c=>{c.key==="Escape"&&(c.preventDefault(),Mt())};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[Mt]),l.useEffect(()=>{if(!wt)return;const o=window.setTimeout(()=>es(null),5e3);return()=>window.clearTimeout(o)},[wt]),l.useEffect(()=>{D.current?.focus()},[]);const ds=l.useCallback(()=>{let o=!1;return q("/api/agent-config/snapshot").then(c=>{o||(Oe(c),ee(null))}).catch(c=>{o||ee(c instanceof Error?c.message:"Could not load projects.")}),()=>{o=!0}},[]);l.useEffect(()=>{if(!(!we||L))return ds()},[L,ds,we]);const fs=l.useCallback(()=>{q(Bs).then(o=>{Rt=o,ie(o),U(null)}).catch(()=>{Rt||U("Live model availability is unavailable. Using the bundled catalog.")})},[]);l.useEffect(()=>{fs()},[fs]),l.useEffect(()=>{if(nt.current||re.length===0)return;const o=aa(re,{preferredRoot:je,currentDirectory:L?.context.currentDirectory,recentRoots:se});o&&be(o.root)},[L?.context.currentDirectory,je,re,se]),l.useEffect(()=>{if(ts.current)return;const o=A?.defaultHarness?.trim()||I?.harness?.trim()||_?.defaults.harness||"claude";if(Yt(o),!_)return;const c=I?.model?.trim()??"",g=_.models.some(h=>h.id===c&&h.harnesses.includes(o));Qt(g?c:pa(_,o)),Zt(ga(_,o))},[I?.harness,I?.model,_,A?.defaultHarness,A?.root]),l.useLayoutEffect(()=>{Ye?.({intent:w,...pe?{agentId:pe}:{},...ge?{conversationId:ge}:{},message:E,files:z,attachmentFeedback:et,mode:O,projectPath:N,projectQuery:T,...C&&x?{forwardContext:x}:{},forwardContextMode:f})},[et,z,f,x,w,C,E,O,Ye,N,T,pe,ge,A?.title]);const ms=l.useCallback((o,c="Added")=>{if(j)return;const g=o.filter(Je),h=o.filter(v=>!Je(v));if(g.length>0&&(He(v=>[...v,...g]),Vt(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`;Se(`${v} ${h.length===1?"is":"are"} not supported. Attach markdown, code, an image, or a video clip.`)}else g.length>0&&Se(null)},[j]),it=l.useCallback((o,c)=>{const g=Ys(o);if(g.length===0){Se("Scout could not read that file. Try dropping or pasting it again.");return}ms(g,c)},[ms]),Dn=l.useCallback(o=>{j||!ct(o.dataTransfer)||(o.preventDefault(),o.stopPropagation(),Ce.current+=1,yt(Ce.current))},[j]),$n=l.useCallback(o=>{j||!ct(o.dataTransfer)||(o.preventDefault(),o.stopPropagation(),o.dataTransfer.dropEffect="copy")},[j]),_n=l.useCallback(o=>{Ce.current!==0&&(o.preventDefault(),o.stopPropagation(),Ce.current=Math.max(0,Ce.current-1),yt(Ce.current))},[]),On=l.useCallback(o=>{ct(o.dataTransfer)&&(o.preventDefault(),o.stopPropagation(),Ce.current=0,yt(0),it(o.dataTransfer,"Added"))},[it]),Fn=l.useCallback(o=>{j||!ct(o.clipboardData)||(o.preventDefault(),o.stopPropagation(),it(o.clipboardData,"Pasted"))},[it,j]),hs=o=>{nt.current=!0,Ze(Ps(o.root)),be(o.root),P(""),R(0),H(!1),ye(null),requestAnimationFrame(()=>D.current?.focus())},ps=o=>{const c=o.trim();c&&(nt.current=!0,Ze(Ps(c)),be(c),P(""),R(0),H(!1),ye(null),requestAnimationFrame(()=>D.current?.focus()))},Un=()=>{nt.current=!0,be(""),P(""),R(0),H(!1),ye(null),requestAnimationFrame(()=>D.current?.focus())},Hn=o=>{if(o.key==="ArrowDown"||o.key==="ArrowUp"){o.preventDefault(),R(c=>{if(ot===0)return 0;const g=o.key==="ArrowDown"?1:-1;return(c+g+ot)%ot});return}if(o.key==="Enter"){o.preventDefault();const c=ae[ce];c?hs(c):ve&&ce===ae.length&&ps(ve);return}o.key==="Escape"&&we&&T&&(o.preventDefault(),o.stopPropagation(),P(""),R(0))},gs=o=>{ts.current=!0,Yt(o.harness),Qt(o.model),Zt(o.effort)},Bn=async()=>{if(j)return;if(C&&!ue){Se("Add instructions, or choose a context option that includes the source message."),requestAnimationFrame(()=>D.current?.focus());return}if(!A){Se(null),ye("Choose a project before starting this task."),H(!0),requestAnimationFrame(()=>xt.current?.focus());return}if(as)return;Jt("starting"),gt(z.length>0?"uploading":"starting"),Se(null);const o=mo(),c=Date.now();try{let g=[];if(z.length>0&&(g=await Mr(z),gt("starting")),J&&I&&at&&O==="existing-chat"){const $=await da(I,{mode:O==="existing-chat"&&at?"existing-chat":"new-session",message:ue,attachments:g});B(""),He([]),Vt(null),n({view:"agents-v2",agentId:$.agentId,conversationId:$.conversationId,tab:"message"}),Qe?.(),s();return}const h=await la({projectPath:A.root,harness:le,...tt?{model:tt}:{},...st?{reasoningEffort:st}:{},...ue?{instructions:ue}:J?{instructions:"Shared capture for context."}:{},...g.length>0?{attachments:g}:{},...C&&x?{fromMessageId:x.selectedMessageId,fromConversationId:x.sourceConversationId}:{},clientMessageId:o}),v=h.conversationId?.trim();if(!v)throw new Error("Message sent, but no Chat was returned.");const X=h.messageId?.trim();X&&ho({conversationId:v,messageId:X,clientMessageId:o,body:ue||(g.length>0?"Shared capture for context.":"New session started."),attachments:g,agentId:h.agentId,flightId:h.flightId,invocationId:h.invocationId,createdAt:c}),B(""),n({view:"conversation",conversationId:v}),Qe?.(),s()}catch(g){Se(g instanceof Error?g.message:J?"Could not route capture.":"Could not send message."),Jt("idle"),gt("idle")}};return i.jsx("div",{className:"s-newchat-backdrop",onClick:Pn,onDragEnter:Dn,onDragOver:$n,onDragLeave:_n,onDrop:On,onPaste:Fn,role:"presentation",children:i.jsxs("div",{ref:vt,className:`s-newchat-panel${j?" s-newchat-panel--starting":""}${os?" s-newchat-panel--dragging":""}`,style:kn,"data-framed":ne?"true":void 0,"data-gesture":vn??void 0,role:"dialog","aria-modal":"true","aria-label":is,onClick:o=>o.stopPropagation(),onKeyDown:yn,tabIndex:-1,children:[i.jsxs("header",{className:"s-newchat-head",title:"Drag to move · double-click to recenter",onDoubleClick:Cn,...rt(null),children:[i.jsx("span",{className:"s-newchat-title",children:is}),i.jsx("div",{className:"s-newchat-head-status",children:i.jsx("span",{role:"status","aria-live":"polite",children:wt})}),i.jsx("button",{type:"button",className:"s-newchat-close",onClick:Mt,disabled:j,"aria-label":"Close (Esc)",title:"Close (Esc)",children:i.jsx(tr,{size:14,"aria-hidden":"true"})})]}),os?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:[C?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(Zn,{context:cs,selection:Be.selection,attached:bt,onToggleSelection:()=>bn(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":A?void 0:"true","aria-expanded":we,"aria-controls":"s-newchat-project-panel","aria-describedby":Ue?"s-newchat-project-reminder":void 0,disabled:j,onClick:()=>{const o=!we;H(o),requestAnimationFrame(o?()=>xt.current?.focus():()=>D.current?.focus())},children:[i.jsx("span",{className:"s-newchat-project-summary-title",children:A?`/${A.title}`:"Choose a project"}),A?i.jsx("span",{className:"s-newchat-project-summary-path",title:A.root,children:Tt(A.root)}):i.jsx("span",{className:"s-newchat-project-summary-path",children:"Required when you send"}),i.jsx(sr,{size:13,"aria-hidden":"true"})]})]}),Ue?i.jsx("p",{id:"s-newchat-project-reminder",className:"s-newchat-project-reminder",role:"alert",children:Ue}):null,we?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(nr,{size:13,"aria-hidden":"true",className:"s-newchat-project-search-icon"}),i.jsx("input",{ref:xt,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":ot>0?`s-newchat-project-option-${ce}`:void 0,value:T,placeholder:L?"Filter projects, or type a path…":"Loading projects…",disabled:j,spellCheck:!1,autoComplete:"off",onChange:o=>{P(o.currentTarget.value),R(0)},onKeyDown:Hn})]}),i.jsxs("div",{id:"s-newchat-project-results",className:"s-newchat-project-results",role:"listbox","aria-label":"Projects",children:[ae.map((o,c)=>i.jsxs("div",{id:`s-newchat-project-option-${c}`,role:"option","aria-selected":o.root===N,"aria-disabled":j||void 0,className:"s-newchat-project-option","data-active":c===ce||void 0,onMouseDown:g=>g.preventDefault(),onMouseEnter:()=>R(c),onClick:()=>{j||hs(o)},children:[i.jsxs("span",{className:"s-newchat-project-option-title",children:["/",o.title]}),i.jsx("span",{className:"s-newchat-project-option-path",children:Tt(o.root)})]},o.root)),ve?i.jsxs("div",{id:`s-newchat-project-option-${ae.length}`,role:"option","aria-selected":ve===N,"aria-disabled":j||void 0,className:"s-newchat-project-option s-newchat-project-option--path","data-active":ce===ae.length||void 0,onMouseDown:o=>o.preventDefault(),onMouseEnter:()=>R(ae.length),onClick:()=>{j||ps(ve)},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:Tt(ve)})]}):null,ae.length===0&&!ve?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:[An>0?i.jsxs("p",{className:"s-newchat-project-foot",children:[ae.length," of"," ",T.trim()?Ge.length:re.length,T.trim()?" matches":" projects"," · type to narrow"]}):i.jsx("span",{}),A?i.jsx("button",{type:"button",className:"s-newchat-project-clear",onClick:Un,children:"Clear project"}):null]}),Fe&&re.length===0?i.jsx("div",{className:"s-newchat-error",role:"alert",children:Fe}):null]}):null,C&&x?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(xs,{catalog:rs,value:{harness:le,model:tt,effort:st},onChange:gs,status:"ready",disabled:j||!Re})}),Re&&(te||oe?.ready===!1)?i.jsx("p",{className:"s-newchat-runtime-note",role:"alert",children:oe?.ready===!1?oe.detail||`${oe.label} is unavailable.`:te}):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":f==="selected-message",disabled:j,onClick:()=>y("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":f==="recent-context",disabled:j||x.recentMessageCount===0,onClick:()=>y("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:x.recentMessageCount>0?`Carry ${x.recentMessageCount} preceding visible ${x.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":f==="instructions-only",disabled:j,onClick:()=>y("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,C?i.jsx("span",{className:"label-md s-newchat-field-label",children:"Instructions"}):null,i.jsx(zn,{density:"panel",value:E,onChange:Tn,onSend:()=>{Bn()},sendOnEnter:!0,textareaRef:D,placeholder:C?"Add what the new task should do (optional)…":J?"What should the agent do with this?":"Describe the task, or leave blank…","aria-label":C?"Instructions for the new task":"Message",disabled:j,sending:j,canSend:!j&&!as&&(!C||!!ue),rows:7,maxHeightPx:280,sendTitle:C?"Forward to new task (Enter)":J?"Route (Enter)":"Start task (Enter)",sendAriaLabel:C?"Forward to new task":J?"Route capture":"Start task",overlay:i.jsxs(i.Fragment,{children:[b.open?i.jsx(ys,{label:"Slash commands",placement:"inside",items:de.map(o=>({id:o.command,token:o.label,description:o.description})),activeIndex:b.index,onPick:o=>{const c=de[o];c&&kt(c)},onActiveIndexChange:o=>S(c=>({...c,index:o}))}):null,k.open?i.jsx(ys,{label:"Mention agent",placement:"inside",items:fe.map(o=>({id:o.id,token:`@${o.handle}`,description:o.name,avatar:{label:o.name[0]?.toUpperCase()??"?",color:Qn(o.name)}})),activeIndex:k.index,onPick:o=>{const c=fe[o];c&&At(c)},onActiveIndexChange:o=>K(c=>({...c,index:o}))}):null]}),onSelect:o=>{const c=o.currentTarget;We(c.value,c.selectionStart)},onBlur:()=>window.setTimeout(Ct,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:j,onClick:()=>us("/"),children:"/Commands"}),i.jsx("span",{"aria-hidden":"true",children:"·"}),i.jsx("button",{type:"button",className:"s-newchat-command-trigger",disabled:j,onClick:()=>us("@"),children:"@Agents"})]}),tools:C?void 0:i.jsx(xs,{catalog:rs,value:{harness:le,model:tt,effort:st},onChange:gs,status:"ready",disabled:j||!Re})}),z.length>0?i.jsx("div",{className:"s-newchat-attachments","aria-label":"Attached captures",children:z.map((o,c)=>i.jsx(va,{file:o,onRemove:()=>He(g=>g.filter((h,v)=>v!==c))},`${o.name}:${o.size}:${c}`))}):null,et?i.jsx("div",{className:"s-newchat-attachment-feedback",role:"status","aria-live":"polite",children:et}):null,Xt&&i.jsx("div",{className:"s-newchat-error",role:"alert",children:Xt}),j&&i.jsxs("div",{className:"s-newchat-progress",role:"status","aria-live":"polite",children:[i.jsx(rr,{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:En}),ue&&i.jsx("span",{className:"s-newchat-progress-message",children:ue})]})]})]}),Rn?i.jsxs("div",{className:"s-newchat-config",children:[ls?i.jsxs("div",{className:"s-newchat-mode",role:"group","aria-label":"Delivery mode",children:[i.jsx("button",{type:"button",className:`s-newchat-mode-btn${O==="existing-chat"?" s-newchat-mode-btn--on":""}`,disabled:j,onClick:()=>Kt("existing-chat"),children:"Existing chat"}),i.jsx("button",{type:"button",className:`s-newchat-mode-btn${O==="new-session"?" s-newchat-mode-btn--on":""}`,disabled:j,onClick:()=>Kt("new-session"),children:"New chat"})]}):null,Re&&(te||oe?.ready===!1)?i.jsx("p",{className:"s-newchat-runtime-note",role:"alert",children:oe?.ready===!1?oe.detail||`${oe.label} is unavailable.`:te}):null]}):null]}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--e","aria-hidden":"true",title:"Drag to resize",...rt("e")}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--s","aria-hidden":"true",title:"Drag to resize",...rt("s")}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--se","aria-hidden":"true",title:"Drag to resize",...rt("se")})]})})}const si=Object.freeze(Object.defineProperty({__proto__:null,NewChatComposer:xa},Symbol.toStringTag,{value:"Module"}));export{mo as A,Mr as B,ei as C,Za as D,ti as E,Fa as F,Ae as G,xs as H,Zo as I,Er as J,Ys as K,si as L,ys as M,xa as N,Me as R,Qa as a,Wa as b,Ja as c,qa as d,Ka as e,Xa as f,Us as g,So as h,Hs as i,Je as j,Oa as k,ct as l,Cr as m,qo as n,Ie as o,Ya as p,Ba as q,Va as r,lo as s,rn as t,uo as u,Ua as v,Wt as w,za as x,Ha as y,Ga as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as p,j as r}from"./index-DvLtl7rV.js";/* empty css */import{i as J,n as Z,s as ee}from"./colors-BtO5_zlx.js";import{a as A}from"./api-Co9aQ2Jw.js";import{u as te}from"./sse-CD9MMUxl.js";import{t as re}from"./time-Dhsh_2EG.js";import{D as ne}from"./DataTable-Bp8tU9AK.js";import{u as ae}from"./useAgentHoverCard-DoBwV0LX.js";import{S as se}from"./search-CDko0PKE.js";import{S as oe}from"./sliders-horizontal-C8njVwfg.js";import"./perf-PX8Rx0EP.js";import"./index-BWHgHrtv.js";/* empty css */import"./index-zvhpRHao.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./Provider-CtXJeLrP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./openContent-C6XO6kr5.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";function ie(e,t){return{model:t?.data.metadata?.session?.model??e.model??null,provider:t?.data.metadata?.session?.modelProvider??e.providerName??null}}const ce=["openai","codex","codex_app_server"],ue=["anthropic","claude","claude-code","claude_stream_json"],W={"openai:gpt-5.5":{provider:"openai",model:"gpt-5.5",inputPerM:5,cachedInputPerM:.5,cacheWritePerM:null,outputPerM:30,webSearchPer1K:10},"openai:gpt-5.5-pro":{provider:"openai",model:"gpt-5.5-pro",inputPerM:30,cachedInputPerM:null,cacheWritePerM:null,outputPerM:180,webSearchPer1K:10},"openai:gpt-5.4":{provider:"openai",model:"gpt-5.4",inputPerM:2.5,cachedInputPerM:.25,cacheWritePerM:null,outputPerM:15,webSearchPer1K:10},"openai:gpt-5.4-mini":{provider:"openai",model:"gpt-5.4-mini",inputPerM:.75,cachedInputPerM:.075,cacheWritePerM:null,outputPerM:4.5,webSearchPer1K:10},"openai:gpt-5.4-nano":{provider:"openai",model:"gpt-5.4-nano",inputPerM:.2,cachedInputPerM:.02,cacheWritePerM:null,outputPerM:1.25,webSearchPer1K:10},"openai:gpt-5.4-pro":{provider:"openai",model:"gpt-5.4-pro",inputPerM:30,cachedInputPerM:null,cacheWritePerM:null,outputPerM:180,webSearchPer1K:10},"openai:gpt-5.3-codex":{provider:"openai",model:"gpt-5.3-codex",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.3-chat-latest":{provider:"openai",model:"gpt-5.3-chat-latest",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.2":{provider:"openai",model:"gpt-5.2",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.2-codex":{provider:"openai",model:"gpt-5.2-codex",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.2-chat-latest":{provider:"openai",model:"gpt-5.2-chat-latest",inputPerM:1.75,cachedInputPerM:.175,cacheWritePerM:null,outputPerM:14,webSearchPer1K:10},"openai:gpt-5.2-pro":{provider:"openai",model:"gpt-5.2-pro",inputPerM:21,cachedInputPerM:null,cacheWritePerM:null,outputPerM:168,webSearchPer1K:10},"openai:gpt-5.1":{provider:"openai",model:"gpt-5.1",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5.1-codex":{provider:"openai",model:"gpt-5.1-codex",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5.1-codex-max":{provider:"openai",model:"gpt-5.1-codex-max",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5.1-chat-latest":{provider:"openai",model:"gpt-5.1-chat-latest",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5":{provider:"openai",model:"gpt-5",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5-codex":{provider:"openai",model:"gpt-5-codex",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5-chat-latest":{provider:"openai",model:"gpt-5-chat-latest",inputPerM:1.25,cachedInputPerM:.125,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-5-mini":{provider:"openai",model:"gpt-5-mini",inputPerM:.25,cachedInputPerM:.025,cacheWritePerM:null,outputPerM:2,webSearchPer1K:10},"openai:gpt-5-nano":{provider:"openai",model:"gpt-5-nano",inputPerM:.05,cachedInputPerM:.005,cacheWritePerM:null,outputPerM:.4,webSearchPer1K:10},"openai:gpt-5-pro":{provider:"openai",model:"gpt-5-pro",inputPerM:15,cachedInputPerM:null,cacheWritePerM:null,outputPerM:120,webSearchPer1K:10},"openai:gpt-4.1":{provider:"openai",model:"gpt-4.1",inputPerM:2,cachedInputPerM:.5,cacheWritePerM:null,outputPerM:8,webSearchPer1K:10},"openai:gpt-4.1-mini":{provider:"openai",model:"gpt-4.1-mini",inputPerM:.4,cachedInputPerM:.1,cacheWritePerM:null,outputPerM:1.6,webSearchPer1K:10},"openai:gpt-4.1-nano":{provider:"openai",model:"gpt-4.1-nano",inputPerM:.1,cachedInputPerM:.025,cacheWritePerM:null,outputPerM:.4,webSearchPer1K:10},"openai:gpt-4o":{provider:"openai",model:"gpt-4o",inputPerM:2.5,cachedInputPerM:1.25,cacheWritePerM:null,outputPerM:10,webSearchPer1K:10},"openai:gpt-4o-mini":{provider:"openai",model:"gpt-4o-mini",inputPerM:.15,cachedInputPerM:.075,cacheWritePerM:null,outputPerM:.6,webSearchPer1K:10},"anthropic:claude-opus-4.6":{provider:"anthropic",model:"claude-opus-4.6",inputPerM:5,cachedInputPerM:.5,cacheWritePerM:6.25,outputPerM:25,webSearchPer1K:10},"anthropic:claude-opus-4.5":{provider:"anthropic",model:"claude-opus-4.5",inputPerM:5,cachedInputPerM:.5,cacheWritePerM:6.25,outputPerM:25,webSearchPer1K:10},"anthropic:claude-opus-4.1":{provider:"anthropic",model:"claude-opus-4.1",inputPerM:15,cachedInputPerM:1.5,cacheWritePerM:18.75,outputPerM:75,webSearchPer1K:10},"anthropic:claude-opus-4":{provider:"anthropic",model:"claude-opus-4",inputPerM:15,cachedInputPerM:1.5,cacheWritePerM:18.75,outputPerM:75,webSearchPer1K:10},"anthropic:claude-sonnet-4.6":{provider:"anthropic",model:"claude-sonnet-4.6",inputPerM:3,cachedInputPerM:.3,cacheWritePerM:3.75,outputPerM:15,webSearchPer1K:10},"anthropic:claude-sonnet-4.5":{provider:"anthropic",model:"claude-sonnet-4.5",inputPerM:3,cachedInputPerM:.3,cacheWritePerM:3.75,outputPerM:15,webSearchPer1K:10},"anthropic:claude-sonnet-4":{provider:"anthropic",model:"claude-sonnet-4",inputPerM:3,cachedInputPerM:.3,cacheWritePerM:3.75,outputPerM:15,webSearchPer1K:10},"anthropic:claude-3-7-sonnet":{provider:"anthropic",model:"claude-3-7-sonnet",inputPerM:3,cachedInputPerM:.3,cacheWritePerM:3.75,outputPerM:15,webSearchPer1K:10},"anthropic:claude-haiku-4.5":{provider:"anthropic",model:"claude-haiku-4.5",inputPerM:1,cachedInputPerM:.1,cacheWritePerM:1.25,outputPerM:5,webSearchPer1K:10}},le={"claude-sonnet-4-5":"anthropic:claude-sonnet-4.5","claude-sonnet-4-6":"anthropic:claude-sonnet-4.6","claude-opus-4-5":"anthropic:claude-opus-4.5","claude-opus-4-6":"anthropic:claude-opus-4.6","claude-haiku-4-5":"anthropic:claude-haiku-4.5"};function pe(e){const t=e.provider?.trim().toLowerCase()??"",s=e.adapterType?.trim().toLowerCase()??"",a=V(e.model)??"",i=[t,s].filter(Boolean);return i.some(o=>ce.some(c=>o.includes(c)))?"openai":i.some(o=>ue.some(c=>o.includes(c)))?"anthropic":a.startsWith("gpt-")||a.startsWith("o")||a.includes("codex")?"openai":a.startsWith("claude-")?"anthropic":"unknown"}function V(e){return e?e.trim().toLowerCase().replace(/^(openai|anthropic)\//,"").replace(/_/g,"-").replace(/-\d{8}$/,""):null}function de(e){const t=x(e?.inputTokens),s=x(e?.cacheReadInputTokens),a=x(e?.cacheCreationInputTokens),i=x(e?.outputTokens),o=x(e?.reasoningOutputTokens),c=[t,i].reduce((m,b)=>m+(b??0),0),h=x(e?.totalTokens)??(c||null);return{input:t,uncachedInput:t==null?null:Math.max(0,t-(s??0)-(a??0)),cachedInput:s,cacheWrite:a,output:i,reasoningOutput:o,total:h,webSearchRequests:x(e?.webSearchRequests),webFetchRequests:x(e?.webFetchRequests)}}function he(e){const t=pe(e),s=V(e.model),a=de(e.usage),i=me(t,s),o=ge(e);if(!i.rateCard)return{provider:t,model:s,rateCard:null,rateCardSource:"unknown",capturedAt:e.capturedAt??Date.now(),usage:a,lineItems:[],totalUsd:null,billedTotalUsd:null,billingMode:o,subscriptionWindows:e.subscriptionWindows??[]};const c=i.rateCard,h=a.uncachedInput??a.input??0,m=a.cachedInput??0,b=a.cacheWrite??0,g=a.output??0,v=a.webSearchRequests??0,f=[j("input","Input",h,c.inputPerM,o),j("cached_input","Cached input",m,c.cachedInputPerM??c.inputPerM,o),j("cache_write","Cache write",b,c.cacheWritePerM??c.inputPerM,o),j("output","Output",g,c.outputPerM,o),{key:"web_search",label:"Web search",quantity:v,unit:"requests",rate:c.webSearchPer1K??0,billedRate:o==="subscription"?0:c.webSearchPer1K??0,costUsd:v/1e3*(c.webSearchPer1K??0),billedCostUsd:o==="subscription"?0:v/1e3*(c.webSearchPer1K??0)}].filter(P=>P.quantity>0);return{provider:t,model:s,rateCard:c,rateCardSource:i.source,capturedAt:e.capturedAt??Date.now(),usage:a,lineItems:f,totalUsd:f.reduce((P,d)=>P+d.costUsd,0),billedTotalUsd:f.reduce((P,d)=>P+d.billedCostUsd,0),billingMode:o,subscriptionWindows:e.subscriptionWindows??[]}}function me(e,t){if(e==="unknown")return{rateCard:null,source:"unknown"};const s=t?`${e}:${t}`:null;if(s&&W[s])return{rateCard:W[s],source:"exact"};const a=t?le[t]:null;if(a&&W[a])return{rateCard:W[a],source:"alias"};if(e==="anthropic"){if(t?.includes("opus"))return{rateCard:W["anthropic:claude-opus-4.5"],source:"provider-default"};if(t?.includes("haiku"))return{rateCard:W["anthropic:claude-haiku-4.5"],source:"provider-default"};if(t?.includes("sonnet")||!t)return{rateCard:W["anthropic:claude-sonnet-4.5"],source:"provider-default"}}return{rateCard:null,source:"unknown"}}function j(e,t,s,a,i){const o=i==="subscription"?0:a;return{key:e,label:t,quantity:s,unit:"tokens",rate:a,billedRate:o,costUsd:s/1e6*a,billedCostUsd:s/1e6*o}}function x(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function ge(e){if(e.billingMode)return e.billingMode;const t=e.adapterType?.trim().toLowerCase();if(t==="claude-code"||t==="claude_stream_json")return"subscription";const s=e.usage?.planType?.trim().toLowerCase();return!s||s==="api"||s.includes("api")?"api":"subscription"}const Pe=1500,T=1440*6e4,Me=90*6e4,E={needs_attention:0,in_turn:1,in_flight:2,callable:3,blocked:4},be=[{key:"agent",label:"Agent",kind:"custom",sortable:!0,sortValue:e=>e.agent.name.toLowerCase(),defaultWidth:220,minWidth:160,render:e=>r.jsxs("div",{className:"s-ops-agents-agent-cell",children:[r.jsx("span",{className:"s-ops-agents-dot",style:{background:ee(e.state)},"aria-hidden":!0}),r.jsx("span",{className:"s-ops-agents-agent-name",title:e.agent.name,children:e.agent.handle??e.agent.name})]})},{key:"task",label:"Active task",kind:"custom",sortable:!0,sortValue:e=>(e.activeTask??"").toLowerCase()||null,defaultWidth:240,minWidth:140,render:e=>e.activeTask?r.jsx("span",{className:"s-ops-agents-task",title:e.activeTask,children:e.activeTask}):r.jsx("span",{className:"s-ops-agents-task s-ops-agents-task--idle",children:"—"})},{key:"team",label:"Project",kind:"text",defaultWidth:140,minWidth:90,cls:"s-ops-agents-meta",render:e=>r.jsx("span",{className:"s-ops-agents-meta-cell",children:e.team}),sortValue:e=>e.team.toLowerCase()},{key:"machine",label:"Machine",kind:"text",defaultWidth:120,minWidth:88,cls:"s-ops-agents-meta",render:e=>r.jsx("span",{className:"s-ops-agents-meta-cell",children:e.machine}),sortValue:e=>e.machine.toLowerCase()},{key:"active",label:"Active",kind:"number",defaultWidth:90,minWidth:64,cls:"s-ops-agents-num",render:e=>e.activeFlights,sortValue:e=>e.activeFlights},{key:"sessions24h",label:"24h sessions",kind:"number",defaultWidth:108,minWidth:78,cls:"s-ops-agents-num",render:e=>e.sessions24h,sortValue:e=>e.sessions24h},{key:"throughput",label:"Throughput",kind:"custom",sortable:!1,defaultWidth:110,minWidth:90,render:e=>r.jsx(ke,{values:e.throughput,warn:e.errors>0})},{key:"avgLatency",label:"Avg latency",kind:"number",defaultWidth:108,minWidth:80,cls:"s-ops-agents-num",render:e=>D(e.avgLatencyMs),sortValue:e=>e.avgLatencyMs},{key:"input",label:"Input",kind:"number",defaultWidth:88,minWidth:64,cls:"s-ops-agents-num",render:e=>w(e.usage.uncachedInput??e.usage.input),sortValue:e=>e.usage.uncachedInput??e.usage.input??null},{key:"cacheRead",label:"Cache read",kind:"number",defaultWidth:98,minWidth:72,cls:"s-ops-agents-num",render:e=>w(e.usage.cachedInput),sortValue:e=>e.usage.cachedInput??null},{key:"cacheWrite",label:"Cache write",kind:"number",defaultWidth:98,minWidth:72,cls:"s-ops-agents-num",render:e=>w(e.usage.cacheWrite),sortValue:e=>e.usage.cacheWrite??null},{key:"output",label:"Output",kind:"number",defaultWidth:88,minWidth:64,cls:"s-ops-agents-num",render:e=>w(e.usage.output),sortValue:e=>e.usage.output??null},{key:"apiEquiv",label:"API equiv",kind:"number",defaultWidth:92,minWidth:72,cls:"s-ops-agents-num",render:e=>r.jsx("span",{className:e.cost.rateCardSource==="unknown"?"s-ops-agents-num--dim":void 0,children:N(e.cost.totalUsd)}),sortValue:e=>e.cost.totalUsd??null},{key:"billed",label:"Billed",kind:"number",defaultWidth:92,minWidth:72,cls:"s-ops-agents-num",render:e=>r.jsx("span",{className:e.cost.billingMode==="subscription"?"s-ops-agents-num--covered":void 0,children:N(e.cost.billedTotalUsd)}),sortValue:e=>e.cost.billedTotalUsd??null},{key:"errors",label:"Errors",kind:"number",defaultWidth:72,minWidth:58,cls:"s-ops-agents-num",render:e=>r.jsx("span",{className:e.errors>0?"s-ops-agents-num--warn":void 0,children:e.errors}),sortValue:e=>e.errors},{key:"lastActive",label:"Last active",kind:"time",defaultWidth:104,minWidth:78,cls:"s-ops-agents-last",render:e=>e.lastActiveAt?re(e.lastActiveAt):"—",sortValue:e=>e.lastActiveAt}];function U(e){if(!e)return null;const t=e.replace(/\/+$/,""),s=t.lastIndexOf("/");return s>=0?t.slice(s+1):t}function w(e){return e==null?"—":e>=1e6?`${(e/1e6).toFixed(e>=1e7?0:1)}M`:e>=1e3?`${(e/1e3).toFixed(e>=1e4?0:1)}K`:String(e)}function D(e){return e==null?"—":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`}function N(e){return e==null?"$—":e<1?`$${e.toFixed(3)}`:`$${e.toFixed(2)}`}function fe(e,t){if(!e)return null;const s=e.data.events.filter(i=>i.kind==="message"||i.kind==="tool").filter(i=>t-i.t<=Me).sort((i,o)=>i.t-o.t);if(s.length<2)return null;const a=[];for(let i=1;i<s.length;i+=1){const o=s[i].t-s[i-1].t;o>0&&o<12e4&&a.push(o)}return a.length===0?null:Math.round(a.reduce((i,o)=>i+o,0)/a.length)}function ve(e,t){const s=new Array(24).fill(0),a=t-T;for(const i of e){if(i.ts<a||i.ts>t)continue;const o=Math.min(23,Math.max(0,Math.floor((i.ts-a)/T*s.length)));s[o]+=1}return s}function ke({values:e,warn:t=!1}){const i=Math.max(1,...e),o=e.map((c,h)=>{const m=h/Math.max(1,e.length-1)*92,b=22-c/i*19-1.5;return`${m.toFixed(1)},${b.toFixed(1)}`}).join(" ");return r.jsx("svg",{className:`s-ops-agents-spark${t?" s-ops-agents-spark--warn":""}`,viewBox:"0 0 92 22","aria-hidden":"true",children:r.jsx("polyline",{points:o,fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})})}function xe(e){return e.authorityNodeName??e.homeNodeName??e.authorityNodeId??e.homeNodeId??e.transport??U(e.cwd)??U(e.projectRoot)??"local"}function We(e){return e.project??e.role??e.agentClass??"Unassigned"}function Se(e){if(e.length===0)return null;const t={working:0,needs_attention:1,queued:2,failed:3,completed:4},a=[...e].sort((o,c)=>{const h=t[o.status]-t[c.status];return h!==0?h:(c.updatedAt??0)-(o.updatedAt??0)})[0];return(a.task??a.summary??"").trim()||null}function we(e,t,s,a,i,o){const c=t.filter(l=>l.agentId===e.id),h=c.filter(l=>{const I=l.lastMessageAt??0;return I>0&&o-I<=T}),m=e.conversationId,b=s.filter(l=>l.actorName===e.name||!!(m&&l.conversationId===m)),g=i.get(e.id),{model:v,provider:f}=ie(e,g),P=he({adapterType:g?.data.metadata?.session?.adapterType,capturedAt:g?.updatedAt??o,model:v,provider:f,usage:g?.data.metadata?.usage}),d=a.filter(l=>l.agentId===e.id);return{agent:e,team:We(e),machine:xe(e),model:v,provider:f,state:Z(e.state),activeFlights:d.length,activeTask:Se(d),sessions24h:h.length,throughput:ve(b,o),avgLatencyMs:fe(g,o),usage:P.usage,cost:P,errors:d.filter(l=>l.status==="failed"||l.status==="needs_attention").length,lastActiveAt:Math.max(0,...c.map(l=>l.lastMessageAt??0),...b.map(l=>l.ts),e.updatedAt??0)||null}}function ft({navigate:e,agents:t}){const[s,a]=p.useState(null),[i,o]=p.useState([]),[c,h]=p.useState([]),[m,b]=p.useState([]),[g,v]=p.useState(""),[f,P]=p.useState(()=>Date.now()),d=p.useRef(null),l=p.useCallback(async()=>{const n=t.map(X=>X.id).join(","),[u,k,L,$]=await Promise.allSettled([A("/api/fleet"),A("/api/conversations"),A("/api/activity"),n?A(`/api/observe/agents?ids=${encodeURIComponent(n)}`):Promise.resolve([])]);u.status==="fulfilled"&&a(u.value),k.status==="fulfilled"&&o(k.value),L.status==="fulfilled"&&h(L.value),$.status==="fulfilled"&&b($.value),P(Date.now())},[t]);p.useEffect(()=>{l()},[l]);const I=p.useCallback(()=>{d.current||(d.current=setTimeout(()=>{d.current=null,l()},Pe))},[l]);te(I),p.useEffect(()=>()=>{d.current&&(clearTimeout(d.current),d.current=null)},[]),p.useEffect(()=>{const n=setInterval(()=>P(Date.now()),1e3);return()=>clearInterval(n)},[]);const R=p.useMemo(()=>new Map(m.map(n=>[n.agentId,n])),[m]),M=p.useMemo(()=>{const n=s?.activeAsks??[];return t.map(u=>we(u,i,c,n,R,f))},[c,t,s?.activeAsks,f,R,i]),S=p.useMemo(()=>{const n=g.trim().toLowerCase();return n?M.filter(u=>`${u.agent.name} ${u.team} ${u.machine} ${u.agent.handle??""} ${u.agent.harness??""} ${u.activeTask??""}`.toLowerCase().includes(n)):M},[g,M]),[K,F]=p.useState({key:"lastActive",dir:-1}),O=p.useMemo(()=>K?.key==="agent"?void 0:(n,u)=>E[n.state]-E[u.state],[K?.key]),q=p.useMemo(()=>S.map(n=>n.agent),[S]),B=p.useMemo(()=>S.map(n=>n.agent.id),[S]),y=ae({agents:q,orderedIds:B,navigate:e,selectMode:"preview"}),z=M.filter(n=>n.state==="in_turn"||n.state==="in_flight").length,H=M.filter(n=>J(n.agent.state,n.agent)).length,Y=M.reduce((n,u)=>n+(u.usage.total??0),0),_=M.some(n=>n.cost.totalUsd!=null)?M.reduce((n,u)=>n+(u.cost.totalUsd??0),0):null,G=M.some(n=>n.cost.billedTotalUsd!=null)?M.reduce((n,u)=>n+(u.cost.billedTotalUsd??0),0):null,Q=(()=>{const n=M.map(u=>u.avgLatencyMs).filter(u=>u!=null);return n.length===0?null:Math.round(n.reduce((u,k)=>u+k,0)/n.length)})();return r.jsxs("div",{className:"s-ops-agents",children:[r.jsxs("main",{className:"s-ops-agents-main",children:[r.jsxs("div",{className:"s-ops-agents-toolbar",children:[r.jsxs("div",{className:"s-ops-agents-breadcrumb",children:["Agents ",r.jsx("span",{children:"/"})," Directory"]}),r.jsxs("div",{className:"s-ops-agents-live",children:[r.jsx("span",{className:"s-ops-agents-live-dot"}),H," active"]}),r.jsxs("div",{className:"s-ops-agents-search",children:[r.jsx(se,{size:13}),r.jsx("input",{value:g,onChange:n=>v(n.target.value),placeholder:"Search agents, tasks, projects, machines…"})]}),r.jsx("button",{className:"s-ops-agents-icon-btn",type:"button",title:"Filters",children:r.jsx(oe,{size:14})})]}),r.jsx("section",{className:"s-ops-agents-hero",children:r.jsxs("div",{children:[r.jsx("div",{className:"s-ops-agents-kicker",children:"Agents"}),r.jsx("h1",{children:"All agents"}),r.jsx("p",{children:"Every registered agent across the local fleet, sorted by live status."})]})}),r.jsxs("section",{className:"s-ops-agents-stats",children:[r.jsx(C,{label:"Running",value:String(z),sub:`of ${t.length} total`}),r.jsx(C,{label:"Tokens",value:w(Y||null),sub:_==null?"usage metadata pending":`${N(_)} API equiv`}),r.jsx(C,{label:"Avg latency",value:D(Q),sub:"recent observe events"}),r.jsx(C,{label:"Billed",value:N(G),sub:"subscription usage can mark this down"})]}),r.jsxs("section",{className:"s-ops-agents-table-panel",children:[r.jsxs("div",{className:"s-ops-agents-table-title",children:["Agents ",r.jsx("span",{children:S.length}),r.jsxs("span",{className:"s-ops-agents-hint","aria-hidden":!0,children:[r.jsx("kbd",{children:"↑"}),r.jsx("kbd",{children:"↓"})," navigate · ",r.jsx("kbd",{children:"enter"})," pin · ",r.jsx("kbd",{children:"o"})," open · ",r.jsx("kbd",{children:"esc"})," clear"]})]}),r.jsx("div",{className:"s-ops-agents-table-wrap",ref:y.containerRef,children:r.jsx(ne,{rows:S,columns:be,rowId:n=>n.agent.id,storageKey:"openscout.opsAgents.cols",sort:K,onSortChange:F,secondarySort:O,density:"compact",rowBindings:n=>{const u=y.bind(n);return{...u,onKeyDown:k=>{k.key!=="Enter"&&k.key!==" "||(k.preventDefault(),u.onClick())}}},rowState:n=>y.getState(n),empty:{title:"No agents match",body:"Adjust the search to find a different slice of the fleet."},className:"s-ops-agents-data-table",ariaLabel:"Agents directory"})})]})]}),y.card]})}function C({label:e,value:t,sub:s,tone:a="default"}){return r.jsxs("div",{className:`s-ops-agents-metric s-ops-agents-metric--${a}`,children:[r.jsx("div",{className:"s-ops-agents-metric-label",children:e}),r.jsx("div",{className:"s-ops-agents-metric-value",children:t}),r.jsx("div",{className:"s-ops-agents-metric-sub",children:s})]})}export{ft as OpsAgentsView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,j as t}from"./index-DvLtl7rV.js";/* empty css */import{u as d}from"./Provider-CtXJeLrP.js";/* empty css */import{u as v}from"./page-status-E5jnk48p.js";import{A as x}from"./AgentLanesView-CetZZDyF.js";import{MissionControlView as j}from"./MissionControlView-E3V7bENU.js";import{OpsAgentsView as f}from"./OpsAgentsView-DI5wu1si.js";import{HostAdvisorView as w}from"./HostAdvisorView-Bok5Sk5c.js";import{AtopView as N}from"./AtopView-Daq_ob3z.js";import{TailView as c}from"./TailView-0uEIj2JH.js";import{u as g}from"./useContentSecondaryNav-pZe2Zfk1.js";import{OpsSubnav as S}from"./OpsSubnav-1K4Jaf__.js";import"./router-B9vQkNJL.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./api-Co9aQ2Jw.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./time-Dhsh_2EG.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";/* empty css */import"./tail-events-Ps8KpKah.js";import"./observe-BpEm1INu.js";import"./types-B0PlfpKc.js";import"./AgentAvatar-6-KBVKUu.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./openContent-C6XO6kr5.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./message-markup-C2LQDm_k.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./message-circle-mZCv8tvB.js";import"./wrench-DjkoAOQt.js";import"./external-link-Dp_a2vRZ.js";import"./AgentFloorView-YT-Jjccf.js";/* empty css */import"./agent-lanes-model-DXqjs0OK.js";import"./context-budget-DX_fwUs3.js";import"./lane-roster-store-DOdI1O13.js";import"./AgentLanesPreflight-q20mTjms.js";import"./AgentLaneChrome-D8bARHMx.js";import"./AgentLaneCard-DI2iW9zO.js";/* empty css */import"./AgentLaneSummaryResize-CEBjmPTa.js";import"./clipboard-e3fSpeo7.js";import"./agent-lane-card-model-CNZMPkhc.js";import"./agent-lane-preview-BhplDYGf.js";import"./agent-lane-detail-ppJId6Jc.js";import"./AgentLaneDetailSheet-52un7dKC.js";import"./SlidePanel-B9ugxWgA.js";import"./LaneTraceDetailSheet-BUgHz-sd.js";import"./LaneTraceEventFocus-DM-hoPxG.js";/* empty css */import"./mission-control-store-nDLdUZPA.js";import"./MissionContextRail-DF0_kiU7.js";import"./mission-wall-CocIM1cF.js";import"./mission-control-model-C0fByIjm.js";import"./MissionFocusOverlay-h15sQFvP.js";import"./MissionLogPane-BbdDKjUl.js";/* empty css */import"./DataTable-Bp8tU9AK.js";/* empty css */import"./useAgentHoverCard-DoBwV0LX.js";import"./sliders-horizontal-C8njVwfg.js";/* empty css */import"./compass-Dt1AMXz2.js";import"./layout-grid-DOChPJdZ.js";import"./refresh-cw-DMxGzDwn.js";import"./arrow-up-right-C6Wl-1uw.js";import"./cpu-DrqejfkB.js";import"./gauge-hU--hKVP.js";/* empty css */import"./SecondaryNav-BR4VRdgh.js";import"./secondaryNavConfig-BoQ_zYR9.js";import"./message-square-C7t_qtuj.js";import"./settings-Dyvpkb1D.js";import"./git-branch-CK5v8F2v.js";import"./scroll-text-Dze_dXtQ.js";const A=220;function F(){const r=v(),o=!!(r.hover||r.content),[i,p]=n.useState(o?{hover:r.hover,content:r.content}:null),[e,s]=n.useState(o?"enter":"hidden"),m=n.useRef(null);if(n.useEffect(()=>{if(o){m.current&&(clearTimeout(m.current),m.current=null),p({hover:r.hover,content:r.content}),s(h=>h==="show"?"show":"enter");const u=requestAnimationFrame(()=>s("show"));return()=>cancelAnimationFrame(u)}return s("leave"),m.current=setTimeout(()=>{s("hidden"),p(null),m.current=null},A),()=>{m.current&&(clearTimeout(m.current),m.current=null)}},[o,r.hover,r.content]),e==="hidden"||!i)return null;const a=i.hover?.label??i.hover?.route??null,l=i.hover?.label&&i.hover?.route?i.hover.route:null;return t.jsxs("div",{className:`s-page-status s-page-status--${e}`,role:"status","aria-live":"polite",children:[t.jsx("div",{className:"s-page-status-left",children:a&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"s-page-status-arrow","aria-hidden":!0,children:"→"}),t.jsx("span",{className:"s-page-status-target",children:a}),l&&t.jsx("span",{className:"s-page-status-route",children:l})]})}),t.jsx("div",{className:"s-page-status-right",children:i.content&&t.jsx("span",{className:"s-page-status-content",children:i.content})})]})}function qr({navigate:r,mode:o="mission",tailQuery:i}){const{agents:p,route:e}=d(),s=g();return t.jsxs("div",{className:"s-ops",children:[s?t.jsx("div",{className:"s-ops-header",children:t.jsx(S,{activeRoute:e,navigate:r})}):null,t.jsxs("div",{className:"s-ops-body",children:[o==="mission"&&t.jsx(j,{navigate:r,agents:p}),o==="agents"&&t.jsx(f,{navigate:r,agents:p}),o==="advisor"&&t.jsx(w,{navigate:r,agents:p}),o==="issues"&&t.jsx(c,{navigate:r,initialFilter:i,variant:"issues"}),o==="tail"&&t.jsx(c,{navigate:r,initialFilter:i,variant:"tail"}),o==="atop"&&t.jsx(N,{}),o==="lanes"&&t.jsx(x,{navigate:r,agents:p})]}),t.jsx(F,{})]})}export{qr as OpsScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t}from"./index-DvLtl7rV.js";import{S as p}from"./SecondaryNav-BR4VRdgh.js";import{O as i}from"./secondaryNavConfig-BoQ_zYR9.js";/* empty css */import"./createLucideIcon-DezKXSG2.js";import"./message-square-C7t_qtuj.js";import"./file-text-CqJgwxmv.js";import"./search-CDko0PKE.js";import"./compass-Dt1AMXz2.js";import"./settings-Dyvpkb1D.js";import"./terminal-9GRS_Qdc.js";import"./git-branch-CK5v8F2v.js";import"./code-xml-D7pOQM9l.js";import"./scroll-text-Dze_dXtQ.js";function v({activeRoute:r,navigate:o}){return t.jsx(p,{ariaLabel:"Ops sections",activeRoute:r,groups:i,navigate:o})}export{v as OpsSubnav};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as m,j as o}from"./index-DvLtl7rV.js";import{a as A}from"./api-Co9aQ2Jw.js";import{u as b,d as S}from"./Provider-CtXJeLrP.js";import{b as y}from"./router-B9vQkNJL.js";import{u as P}from"./sse-CD9MMUxl.js";import{AgentsSubnav as N}from"./AgentsSubnav-C4xpQhsv.js";import{AgentDetailWithRail as B,AgentProfileSessionsCenter as E}from"./profile-APxDsN2P.js";import{r as R,d as C,b as M}from"./NewChatComposer-_Stj0fZy.js";/* empty css *//* empty css *//* empty css */import{ProjectAgentProfileBar as w}from"./ProjectAgentProfileBar-k2QHHHsQ.js";/* empty css */import"./perf-PX8Rx0EP.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./index-BWHgHrtv.js";import"./SecondaryNav-BR4VRdgh.js";import"./secondaryNavConfig-BoQ_zYR9.js";import"./message-square-C7t_qtuj.js";import"./search-CDko0PKE.js";import"./compass-Dt1AMXz2.js";import"./settings-Dyvpkb1D.js";import"./terminal-9GRS_Qdc.js";import"./git-branch-CK5v8F2v.js";import"./scroll-text-Dze_dXtQ.js";import"./AgentAvatar-6-KBVKUu.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./HarnessMark-B979GCSB.js";import"./context-budget-DX_fwUs3.js";import"./session-catalog-DsaZJXZt.js";import"./terminal-relay-GYMIvKs1.js";import"./time-Dhsh_2EG.js";import"./BackToPicker-CXZjBRAe.js";import"./openContent-C6XO6kr5.js";import"./ConversationScreen-CR9pWB65.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./ConversationComposer-CXPKx86g.js";import"./index-zvhpRHao.js";import"./zap-Cq8eWkcF.js";import"./conversation-model-Dc02NsGp.js";import"./message-markup-C2LQDm_k.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./eye-BRyD0jno.js";import"./message-visibility-CGOmSSKs.js";import"./operator-attention-RqieiSY8.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";import"./ConversationHeader-BQWzGzLK.js";import"./AstronautSuit-DbjQtfD_.js";import"./ConversationFeedRows-WrH-YI3L.js";import"./ConversationPanels-Dujvnmup.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./chevron-down-wciXnOQz.js";import"./activity-DcrMApUY.js";import"./message-circle-mZCv8tvB.js";import"./tail-events-Ps8KpKah.js";import"./ConversationStatus-DVzSb2Hv.js";import"./check-ofKUE8yH.js";import"./sparkles-CETYrxGA.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./wrench-DjkoAOQt.js";import"./external-link-Dp_a2vRZ.js";/* empty css */import"./AgentDefinitionsWorkspace-Iyl4BesU.js";import"./agent-specialization-BujJVUTD.js";import"./project-overview-helpers-BQTc_Ous.js";import"./FileViewerPane-Df6VzXjA.js";import"./agent-essentials-D7KRGYvF.js";import"./NewChatOrigin-B1u7ki70.js";import"./model-IGCUEsMy.js";import"./agents-project-model-UYiamtrU.js";function wo({route:t,navigate:r}){const{agents:e}=b(),p=y(t),n=m.useMemo(()=>S(e,p),[e,p]),[f,g]=m.useState([]),a=m.useCallback(async()=>{const s=await A("/api/conversations").catch(()=>[]);g(s)},[]);m.useEffect(()=>{a()},[a]),P(()=>{a()});const i=R(n,t.agentId),c=!!(t.agentId&&i&&i.id!==t.agentId),{conversationByAgentId:j}=C(f);if(m.useEffect(()=>{!t.agentId||!i||!c||r({...t,view:"agents-v2",agentId:i.id})},[r,t,i,t.agentId,c]),!i)return o.jsx(v,{activeRoute:t,navigate:r,children:o.jsx("div",{className:"av2-empty",children:"Agent not found."})});const d=t.conversationId??j.get(i.id)??i.conversationId??null,l=t.tab??(t.conversationId?"message":"profile");return o.jsx("div",{className:"s-av2-profileShell",children:o.jsx(v,{activeRoute:t,navigate:r,bar:o.jsx(w,{agent:i,conversationId:d,activeTab:l,route:t,navigate:r}),children:o.jsx("div",{className:"av2-profileCanvas",children:o.jsx(B,{agent:i,allAgents:n,conversationId:d,navigate:r,activeTab:l,renderProfile:({agent:s,sessionCatalog:x,conversationId:h,navigate:I,route:u})=>o.jsx(E,{agent:s,name:M(s,n).name,sessionCatalog:x,conversationId:h,navigate:I,route:u,homeView:"agents-v2"})})})})})}function v({activeRoute:t,children:r,navigate:e,bar:p}){return o.jsxs("div",{className:"s-secondary-nav-shell",children:[o.jsx("div",{className:"s-secondary-nav-bar",children:p??o.jsx(N,{activeRoute:t,navigate:e})}),o.jsx("div",{className:"s-secondary-nav-body",children:r})]})}export{wo as ProjectAgentProfile};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as a}from"./index-DvLtl7rV.js";import{r as c}from"./model-IGCUEsMy.js";import"./agents-project-model-UYiamtrU.js";import"./time-Dhsh_2EG.js";function d({agent:i,conversationId:s,activeTab:o,route:l,navigate:r}){const t=[{key:"profile",label:"Sessions"},{key:"config",label:"Config"},{key:"observe",label:"Trace"},{key:"message",label:"Message"}],n=e=>r({...l,view:"agents-v2",agentId:i.id,...s?{conversationId:s}:{},tab:e});return a.jsxs("div",{className:"av2-profileBar",children:[a.jsxs("button",{type:"button",className:"av2-profileBack",onClick:()=>r(c(l)),children:[a.jsx("span",{className:"av2-profileBackGlyph","aria-hidden":!0,children:"←"}),"Project"]}),a.jsx("nav",{className:"av2-profileTabs","aria-label":"Agent views",children:t.map(e=>a.jsx("button",{type:"button",className:"av2-profileTab","data-on":o===e.key||void 0,onClick:()=>n(e.key),children:e.label},e.key))})]})}export{d as ProjectAgentProfileBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as c,j as e}from"./index-DvLtl7rV.js";import{i as y,c as L}from"./colors-BtO5_zlx.js";import{a as u}from"./api-Co9aQ2Jw.js";import{u as T}from"./sse-CD9MMUxl.js";import{t as P}from"./time-Dhsh_2EG.js";import{o as R}from"./openContent-C6XO6kr5.js";import{A as E}from"./AgentAvatar-6-KBVKUu.js";import{H as O}from"./HarnessMark-B979GCSB.js";import{n as V}from"./NewChatComposer-_Stj0fZy.js";import{h as B}from"./model-IGCUEsMy.js";import"./perf-PX8Rx0EP.js";import"./index-BWHgHrtv.js";import"./Provider-CtXJeLrP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./agents-project-model-UYiamtrU.js";function U(s){return s?s.startsWith("/Users/")?`~/${s.split("/").slice(3).join("/")}`:s:null}function _(s){const a=s.model?.trim();if(!a)return null;const o=s.harness?.trim();return o&&a.startsWith(`${o}-`)?a.slice(o.length+1).replace(/-\d{8}$/,""):a.replace(/^claude-/,"").replace(/-\d{8}$/,"")}function g(s){const a=new Map;for(const o of s){if(o.kind!=="tool"||!o.tool)continue;const t=o.tool.toLowerCase();a.set(t,(a.get(t)??0)+1)}return[...a.entries()].sort((o,t)=>t[1]-o[1]||o[0].localeCompare(t[0])).map(([o])=>o).slice(0,6)}function i({label:s,value:a,title:o}){return a?.trim()?e.jsxs("div",{className:"av2-coreMetaItem",title:o??a,children:[e.jsx("span",{className:"av2-coreMetaLabel",children:s}),e.jsx("span",{className:"av2-coreMetaValue",children:a})]}):null}function ys({agent:s,route:a,navigate:o}){const[t,h]=c.useState(null),[C,v]=c.useState(null),m=c.useCallback(async()=>{const[r,l]=await Promise.all([u(`/api/agents/${encodeURIComponent(s.id)}/observe`).catch(()=>null),u(`/api/agents/${encodeURIComponent(s.id)}/session-catalog`).catch(()=>null)]);h(r),v(l)},[s.id]);c.useEffect(()=>{h(null),v(null),m()},[m]),T(()=>{m()});const p=s.handle?.trim().replace(/^@+/,"")||null,j=p?`@${p}`:s.name,n=s.harness?B(s.harness):null,H=_(s),w=U(s.cwd??s.projectRoot),M=(s.homeNodeName??s.authorityNodeName??"").replace(/\.local$/i,"").replace(/-local-openscout$/i,""),I=y(s.state),k=L(s.state,s),x=t?.data.events??[],d=c.useMemo(()=>g(x),[x]),f=t?.data.metadata?.usage??null,N=(()=>{const r=f?.contextWindowTokens??0,l=f?.contextInputTokens??0;return!r||r<=0||l<=0?null:Math.min(100,Math.max(0,Math.round(l/r*100)))})(),A=C?.sessions?.length??0,$=s.transport==="claude_stream_json"?"stream-json":s.transport==="codex_app_server"?"app-server":s.transport?.trim()||null,S=async()=>{try{const r=await u("/api/sessions",{method:"POST",body:JSON.stringify(V(s))}),l=r.sessionId?.trim();if(l){R(o,{view:"sessions",sessionId:l},{returnTo:a});return}const b=r.conversationId?.trim();o({...a,view:"agents-v2",agentId:r.agentId?.trim()||s.id,...b?{conversationId:b}:{},tab:"message"})}catch{}};return e.jsxs("header",{className:"av2-profileHero",children:[e.jsx(E,{agent:s,size:56,tile:!0,presence:!0}),e.jsxs("div",{className:"av2-profileHeroCore",children:[e.jsxs("div",{className:"av2-profileHeroTop",children:[e.jsxs("div",{className:"av2-profileHeroIdent",children:[e.jsx("h1",{className:"av2-profileHeroTitle",title:j,children:j}),e.jsxs("span",{className:"av2-profileHeroState","data-online":I||void 0,children:[e.jsx("span",{className:"av2-profileHeroDot","aria-hidden":!0}),k,s.updatedAt?` · ${P(s.updatedAt)}`:""]}),p&&s.name.toLowerCase()!==p.toLowerCase()?e.jsx("span",{className:"av2-profileHeroBroker",title:s.id,children:s.name}):e.jsx("span",{className:"av2-profileHeroBroker",title:s.id,children:s.id})]}),e.jsxs("div",{className:"av2-profileHeroActions",children:[e.jsx("button",{type:"button",className:"av2-heroGhost",onClick:()=>o({...a,view:"agents-v2",agentId:s.id,tab:"config"}),children:"Edit config"}),e.jsx("button",{type:"button",className:"av2-heroCta",onClick:()=>{S()},children:"+ New session"})]})]}),e.jsxs("div",{className:"av2-profileHeroMeta",children:[e.jsx(i,{label:"Project",value:s.project?`/${s.project}`:null}),e.jsx(i,{label:"Branch",value:s.branch}),e.jsx(i,{label:"Harness",value:n?n.charAt(0).toUpperCase()+n.slice(1):null,title:s.harness??void 0}),e.jsx(i,{label:"Model",value:H}),e.jsx(i,{label:"Host",value:M||null}),e.jsx(i,{label:"Root",value:w,title:s.cwd??s.projectRoot??void 0}),e.jsx(i,{label:"Transport",value:$})]}),e.jsxs("div",{className:"av2-profileHeroSignal",children:[n?e.jsx("span",{className:"av2-signalMark",title:s.harness??n,children:e.jsx(O,{harness:n,size:12})}):null,e.jsxs("span",{className:"av2-signalChip",children:[e.jsx("span",{className:"av2-signalLabel",children:"Sessions"}),e.jsx("span",{className:"av2-signalValue",children:A})]}),N!=null?e.jsxs("span",{className:"av2-signalChip",children:[e.jsx("span",{className:"av2-signalLabel",children:"Ctx"}),e.jsxs("span",{className:"av2-signalValue",children:[N,"%"]})]}):null,d.length>0?e.jsxs("span",{className:"av2-signalChip av2-signalChip--wide",title:d.join(" · "),children:[e.jsx("span",{className:"av2-signalLabel",children:"Tools"}),e.jsx("span",{className:"av2-signalValue",children:d.join(" · ")})]}):t?e.jsxs("span",{className:"av2-signalChip",children:[e.jsx("span",{className:"av2-signalLabel",children:"Tools"}),e.jsx("span",{className:"av2-signalValue",children:"—"})]}):null]})]})]})}export{ys as ProjectAgentProfileHero};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as m,j as s}from"./index-DvLtl7rV.js";import{A as Me}from"./AgentAvatar-6-KBVKUu.js";import{H as ge}from"./HarnessMark-B979GCSB.js";import{a as Ee}from"./api-Co9aQ2Jw.js";import{r as Ie,i as $e}from"./ui-LM8pS8qE.js";import{t as _,d as We,n as ee}from"./time-Dhsh_2EG.js";import{p as Fe,l as De,s as Be,f as Oe}from"./terminal-sessions-BQ6t92tJ.js";import{u as ze}from"./Provider-CtXJeLrP.js";import{o as He}from"./openContent-C6XO6kr5.js";import{p as J}from"./NewChatComposer-_Stj0fZy.js";import{SessionRefScreen as qe}from"./SessionRefScreen-COVQMbtE.js";import{P as Ge,C as _e}from"./CrewWorkspaces-NKujRzwh.js";import{r as X,s as V}from"./project-overview-helpers-BQTc_Ous.js";import{u as Ve,r as Ke,c as Z,d as ae,g as Ue,s as re,a as le,e as Xe,h as be,i as Ye,j as Ze,f as Je,k as Qe}from"./projects-inbox-Cg4X2lUQ.js";import{g as es,a as ss,f as ce,b as ts}from"./api-HFH8wFyb.js";import{f as ns}from"./cache-CeWH_KzJ.js";import{A as ue}from"./arrow-up-right-C6Wl-1uw.js";import{C as is}from"./chevron-right-D-HdlPg8.js";import{F as os}from"./AddProjectForm-IqOtJfRs.js";import{S as as}from"./search-CDko0PKE.js";import{A as rs}from"./arrow-right-BuzMnLYP.js";import{E as ls}from"./external-link-Dp_a2vRZ.js";import{F as cs}from"./DocumentFocusViewer-Do3wQ_3Z.js";import"./SpriteAvatar-z5hHesx9.js";import"./colors-BtO5_zlx.js";import"./CrewAvatar-BwXjyg8N.js";import"./perf-PX8Rx0EP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./createLucideIcon-DezKXSG2.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./NewChatOrigin-B1u7ki70.js";import"./x-CAbNespN.js";import"./chevron-down-wciXnOQz.js";import"./tail-events-Ps8KpKah.js";import"./BackToPicker-CXZjBRAe.js";import"./ConversationScreen-CR9pWB65.js";import"./ConversationComposer-CXPKx86g.js";import"./zap-Cq8eWkcF.js";import"./message-markup-C2LQDm_k.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./message-visibility-CGOmSSKs.js";import"./operator-attention-RqieiSY8.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-BQWzGzLK.js";import"./AstronautSuit-DbjQtfD_.js";import"./ConversationFeedRows-WrH-YI3L.js";import"./ConversationPanels-Dujvnmup.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./activity-DcrMApUY.js";import"./message-circle-mZCv8tvB.js";import"./ConversationStatus-DVzSb2Hv.js";import"./check-ofKUE8yH.js";import"./sparkles-CETYrxGA.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./wrench-DjkoAOQt.js";import"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./mesh-roster-Bc7T4b7z.js";import"./agent-specialization-BujJVUTD.js";import"./model-IGCUEsMy.js";import"./agents-project-model-UYiamtrU.js";import"./sliders-horizontal-C8njVwfg.js";import"./message-square-C7t_qtuj.js";function de(e){const t=e?.trim();if(!t)return null;const i=t.split(/[\\/]/u).filter(Boolean).at(-1)??t;return i.endsWith(".jsonl")?i.slice(0,-6):i}function us(e){return e.surfaces.filter(t=>t.backend==="tmux")}function ds(e,t){return{terminalSessionId:e.id,terminalSurfaceKey:Be(t),sessionName:t.sessionName}}function ps(e,t){const i=de(t.agentId),n=new Set(t.sessionRefs.map(de).filter(r=>!!r)),a=i?.split(".",1)[0]??null;a?.startsWith("session-")&&n.add(a);for(const r of e){const o=us(r).find(u=>n.has(u.sessionName));if(o)return ds(r,o)}return null}function ms(e,t){const i=Fe(e.terminalSurfaceKey);return i?`scout://terminal?${new URLSearchParams({session:e.terminalSessionId,surface:De(i),mode:t}).toString()}`:null}const hs=1e4,fs=2e4,js=6e4,xs=15e3,gs=45e3,bs=["branch","unstaged","staged"];function te(e){const t=()=>{document.visibilityState==="visible"&&e()};return window.addEventListener("focus",t),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",t)}}function vs(e,t){const i=new Set;for(const n of[e,...t]){const a=n?.trim();a&&i.add(a.replace(/\/+$/u,""))}return[...i].slice(0,6)}function ws(e){return e.replace(/\/+$/u,"").split("/").pop()?.toLocaleLowerCase()??e.toLocaleLowerCase()}function Ns(e,t,i){return e.path===t||i?.worktrees.some(a=>a.path===e.path)?!0:e.repo.split("/").pop()?.toLocaleLowerCase()===(i?.name.toLocaleLowerCase()??ws(t))}function Q(e){return e&&typeof e=="object"&&"name"in e&&e.name==="AbortError"?"The repository scan timed out.":e instanceof Error?e.message:String(e)}function ks(e,t=[]){const i=vs(e,t).join("\0"),n=m.useMemo(()=>i?i.split("\0"):[],[i]),[a,r]=m.useState(()=>es()),[o,u]=m.useState(()=>ss()),[c,j]=m.useState(!!(e&&!X(a,e))),[h,v]=m.useState(!!e),[y,w]=m.useState(!!e),[I,L]=m.useState(null),[k,P]=m.useState(null),[F,M]=m.useState(()=>new Map),[B,A]=m.useState(()=>new Map),[S,$]=m.useState(0),R=m.useRef(null),T=m.useCallback(()=>{R.current=null,$(f=>f+1)},[]);m.useEffect(()=>{if(!e){j(!1),L(null);return}let f=!1,x=!1,b=!0;const D=async()=>{if(x)return;x=!0,f||(j(!0),L(null));let O=null;try{let W=null;const z=S>0&&b;b=!1;try{W=await ce("standard",z,xs)}catch(C){O=Q(C)}if((!W||!X(W,e))&&R.current!==e){R.current=e;try{const C=await ce("expanded",z,gs);X(C,e)&&(W=C)}catch(C){O=Q(C)}}!f&&W&&r(C=>X(W,e)?W:C&&X(C,e)?C:W),!f&&!X(W,e)&&L(O??"Repo Watch did not include this project in its latest scan.")}finally{x=!1,f||j(!1)}};D();const d=window.setInterval(()=>{document.visibilityState==="visible"&&D()},hs),E=te(()=>{D()});return()=>{f=!0,window.clearInterval(d),E()}},[e,S]),m.useEffect(()=>{if(n.length===0){w(!1),A(new Map);return}let f=!1,x=!1,b=!0;const D=async()=>{if(x)return;x=!0,f||w(!0);const O=await Promise.allSettled(n.map(W=>ns(W,[...bs],{force:S>0&&b,tier:"summary"})));if(b=!1,!f){const W=new Map,z=new Map;O.forEach((C,K)=>{const q=n[K];C.status==="fulfilled"?W.set(q,C.value.snapshot):z.set(q,Q(C.reason))}),M(C=>{const K=new Map(C);for(const q of n)K.delete(q);for(const[q,se]of W)K.set(q,se);return K}),A(z),w(!1)}x=!1};D();const d=window.setInterval(()=>{document.visibilityState==="visible"&&D()},fs),E=te(()=>{D()});return()=>{f=!0,window.clearInterval(d),E()}},[n,S]),m.useEffect(()=>{if(n.length===0){v(!1),P(null);return}let f=!1,x=!1;const b=async()=>{if(!x){x=!0;try{const E=await ts(n);f||(u(E),P(null))}catch(E){f||P(Q(E))}finally{x=!1,f||v(!1)}}};v(!0),P(null),b();const D=window.setInterval(()=>{document.visibilityState==="visible"&&b()},js),d=te(()=>{b()});return()=>{f=!0,window.clearInterval(D),d()}},[n,S]);const l=m.useMemo(()=>X(a,e),[e,a]),p=m.useMemo(()=>e?(o?.pullRequests??[]).filter(f=>Ns(f,e,l)):[],[l,e,o]),g=m.useMemo(()=>{const f=o?.paths.some(x=>n.includes(x))?o.warnings:[];return k?[k,...f]:f},[n,k,o]);return{project:l,pullRequests:p,pullRequestsLoading:h,pullRequestWarnings:g,repoLoading:c,repoError:I,diffSnapshots:F,diffErrors:B,diffLoading:y,refresh:T}}const Ss=[];function ys(e,t){return e.thread===t.thread&&e.crossProject===t.crossProject&&e.selected===t.selected&&e.cursor===t.cursor&&e.nowMs===t.nowMs&&e.workLabel===t.workLabel}const Cs=m.memo(function({thread:t,crossProject:i,selected:n,cursor:a,nowMs:r,onSelect:o,onOpen:u,rowRef:c,workLabel:j}){return s.jsxs("button",{ref:c,type:"button",className:"pi-row","data-state":t.group,"data-selected":n||void 0,"data-cursor":a||void 0,onClick:o,onDoubleClick:u,children:[s.jsx("span",{className:"pi-rowDot","aria-hidden":!0}),s.jsxs("span",{className:"pi-rowBody",children:[s.jsx("span",{className:"pi-rowWork",title:t.work,children:j??t.work}),s.jsxs("span",{className:"pi-rowAttr",children:[s.jsx("span",{className:"pi-rowAvatar",children:s.jsx(Me,{agent:{name:t.agentName,harness:t.harness,state:t.working?"in_turn":null},placement:"row",size:22})}),s.jsx("span",{className:"pi-rowAgent",title:t.agentName,children:t.agentName}),s.jsx("span",{className:"pi-rowHmark","aria-hidden":!0,children:s.jsx(ge,{harness:t.harness,size:11})}),i?s.jsxs("span",{className:"pi-rowChip",title:`/${t.projectTitle}`,children:["/",t.projectTitle]}):t.branch?s.jsx("span",{className:"pi-rowBranch",title:t.branch,children:t.branch}):null]})]}),s.jsxs("span",{className:"pi-rowVitals",children:[t.working?s.jsx("span",{className:"pi-rowLiveTag",children:"live"}):null,s.jsx("span",{className:"pi-rowAgo",children:t.lastActivityAt?_(t.lastActivityAt,r):"—"}),t.contextPct!=null?s.jsxs("span",{className:"pi-rowCtx",children:[t.contextPct,"%"]}):null]}),s.jsxs("span",{className:"pi-rowOpen","aria-hidden":!0,children:[s.jsx("span",{children:"Open"}),s.jsx(is,{size:14,strokeWidth:1.8})]})]})},ys);function pe({title:e,detail:t,tone:i="muted"}){return s.jsxs("div",{className:"pi-stateBlock","data-tone":i,role:i==="loading"?"status":"note",children:[s.jsx("span",{className:"pi-statePulse","aria-hidden":!0}),s.jsx("span",{className:"pi-stateTitle",children:e}),t?s.jsx("span",{className:"pi-stateDetail",children:t}):null]})}function As({rows:e=7}){return s.jsxs("div",{className:"pi-loadingRows","aria-hidden":"true",children:[s.jsxs("div",{className:"pi-sectionHead pi-sectionHead--loading",children:[s.jsx("span",{className:"pi-loadingLine pi-loadingLine--label"}),s.jsx("span",{className:"pi-loadingLine pi-loadingLine--count"})]}),Array.from({length:e},(t,i)=>s.jsxs("div",{className:"pi-row pi-row--loading",children:[s.jsx("span",{className:"pi-rowDot"}),s.jsxs("span",{className:"pi-rowBody",children:[s.jsx("span",{className:"pi-loadingLine pi-loadingLine--title"}),s.jsx("span",{className:"pi-loadingLine pi-loadingLine--meta"})]}),s.jsx("span",{className:"pi-rowVitals",children:s.jsx("span",{className:"pi-loadingLine pi-loadingLine--time"})})]},i))]})}function Rs({route:e,navigate:t,slug:i,model:n,mode:a,repoProject:r}){const o=n.projects.find(k=>k.slug===i)??null,c=Z(n.threads,i).filter(k=>k.kind==="agent"),j=o?.title??i,h=o?.root??null,v=(o?.agentCount??c.length)>0,y=e.machineId?{machineId:e.machineId}:{},w={view:"agents-v2",projectSlug:i,...y},I=Ts(o?.needs??0,Math.max(o?.working??0,o?.liveSessionCount??0),o?.agentCount??(c.length>0?1:0),o?.sessionCount??0),L=r?.worktrees.length??o?.worktreeCount??0;return s.jsxs("header",{className:"pi-projectHead",children:[s.jsx("div",{className:"pi-projectHeadTop",children:s.jsxs("div",{className:"pi-projectIdent",children:[s.jsx("h1",{className:"pi-projectTitle",children:j}),s.jsxs("div",{className:"pi-projectMeta",children:[h?s.jsx("span",{title:h,children:V(h)}):null,s.jsx("span",{className:"pi-projectDigest",children:I})]})]})}),s.jsxs("div",{className:"pi-projectFacets","aria-label":"Project sections",children:[s.jsx("button",{type:"button",className:"pi-projectFacet","data-selected":a==="overview"||void 0,onClick:()=>t(w),children:s.jsx("span",{children:"Overview"})}),s.jsxs("button",{type:"button",className:"pi-projectFacet","data-selected":a==="sessions"||void 0,onClick:()=>t({...w,indexView:"sessions"}),children:[s.jsx("span",{children:"Sessions"}),s.jsx("b",{children:o?.sessionCount??0})]}),v?s.jsxs("button",{type:"button",className:"pi-projectFacet","data-selected":a==="agents"||void 0,onClick:()=>t({...w,indexView:"agents"}),children:[s.jsx("span",{children:"Agents"}),s.jsx("b",{children:o?.agentCount??c.length})]}):null,s.jsxs("button",{type:"button",className:"pi-projectFacet",title:"Open worktrees in Repos",onClick:()=>t({view:"repos",...h?{root:h}:{},...y}),children:[s.jsx("span",{children:"Worktrees"}),s.jsx("b",{children:L}),s.jsx(ue,{className:"pi-projectFacetOut",size:11,strokeWidth:2,"aria-hidden":!0})]}),s.jsxs("button",{type:"button",className:"pi-projectFacet",disabled:!h,title:h?"Open this project's AGENTS.md":"No project root known",onClick:()=>t({view:"code",project:i,path:"AGENTS.md"}),children:[s.jsx("span",{children:"Rules"}),s.jsx("b",{children:h?"set":"—"}),s.jsx(ue,{className:"pi-projectFacetOut",size:11,strokeWidth:2,"aria-hidden":!0})]})]})]})}function Ts(e,t,i,n){const a=[];return t>0&&a.push(s.jsxs("b",{children:[t," active"]},"w")),e>0&&a.push(s.jsxs("b",{children:[e," needs you"]},"n")),a.push(s.jsxs("span",{children:[i," agent",i===1?"":"s"]},"a")),a.push(s.jsxs("span",{children:[n," session",n===1?"":"s"]},"s")),a.reduce((r,o,u)=>(u>0&&r.push(s.jsx("span",{children:" · "},`sep${u}`)),r.push(o),r),[])}function ve(e){if(e.length<=18)return e;const t=e.match(/^([0-9a-f]{8})-[0-9a-f-]{27,}$/iu);return t?t[1]:`${e.slice(0,10)}…${e.slice(-5)}`}function Ls(e,t){return`${t?0:e.projects.length} tracked`}function Ps({route:e,navigate:t,projects:i}){const{onboarding:n,refreshOnboarding:a,reload:r}=ze(),o=Ms(n?.defaultHarness),[u,c]=m.useState(""),[j,h]=m.useState(""),[v,y]=m.useState(o),[w,I]=m.useState(!1),[L,k]=m.useState(null),[P,F]=m.useState(null),[M,B]=m.useState(null);m.useEffect(()=>{y(o)},[o]);const A=m.useMemo(()=>Es(i),[i]),S=m.useMemo(()=>Is(A,u),[u,A]),$=m.useMemo(()=>A.find(d=>d.slug===j)??he(A,u),[u,A,j]),R=u.trim(),T=Ws(R)&&!he(A,R),l=$??(!T&&R?S[0]??null:null),p=l?"Open project":T?"Create project":"Find project",g=!!(l||T||R);m.useEffect(()=>{j&&(A.some(d=>d.slug===j)||h(""))},[A,j]),m.useEffect(()=>{if(!M)return;const d=A.find(E=>Fs(E,M));d&&(B(null),t(me(e,d.slug)))},[M,t,A,e]);const f=d=>{h(d.slug),c(d.title),k(null),F(null)},x=d=>{t(me(e,d.slug))},b=async d=>{I(!0),k(null),F(null);try{await Ee("/api/onboarding/project",{method:"POST",body:JSON.stringify({contextRoot:d,sourceRoots:[d],defaultHarness:v})}),B(d),F("Project created. Refreshing inventory."),h(""),c(""),Qe(),await Promise.all([a(),r()])}catch(E){k(E instanceof Error?E.message:"Could not create project.")}finally{I(!1)}},D=d=>{if(d.preventDefault(),!w){if(l){x(l);return}if(T){b(R);return}if(R){k("No project matches that search. Paste a repo path to create one.");return}k("Choose a project or paste a repo path.")}};return s.jsxs("div",{className:"pi-zero",children:[s.jsxs("div",{className:"pi-zeroHead",children:[s.jsxs("span",{className:"pi-zeroKicker",children:[s.jsx(os,{size:13,strokeWidth:1.9,"aria-hidden":!0}),"Projects"]}),s.jsx("h2",{children:"Pick a project to start."})]}),s.jsxs("form",{className:"pi-zeroComposer",onSubmit:D,children:[s.jsxs("div",{className:"pi-zeroBar",children:[s.jsxs("label",{className:"pi-zeroSelect",children:[s.jsx(as,{size:13,strokeWidth:1.8,"aria-hidden":!0}),s.jsxs("select",{value:j,"aria-label":"Choose project",onChange:d=>{const E=A.find(O=>O.slug===d.currentTarget.value);E?f(E):h("")},children:[s.jsx("option",{value:"",children:"Choose project"}),A.slice(0,80).map(d=>s.jsx("option",{value:d.slug,children:d.title},d.slug))]})]}),s.jsx("div",{className:"pi-zeroHarness",role:"group","aria-label":"Default harness",children:["claude","codex"].map(d=>s.jsx("button",{type:"button","data-on":v===d||void 0,onClick:()=>y(d),children:d==="claude"?"Claude":"Codex"},d))})]}),s.jsxs("div",{className:"pi-zeroInputRow",children:[s.jsx("textarea",{value:u,rows:2,placeholder:"Find project or paste /path/to/repo","aria-label":"Find or create project",onChange:d=>{c(d.currentTarget.value),h(""),k(null),F(null)},onKeyDown:d=>{d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),d.currentTarget.form?.requestSubmit())}}),s.jsxs("button",{type:"submit",className:"pi-zeroSend",disabled:w||!g,title:p,children:[s.jsx(rs,{size:15,strokeWidth:2,"aria-hidden":!0}),s.jsx("span",{children:w?"Working":p})]})]}),S.length>0?s.jsx("div",{className:"pi-zeroMatches","aria-label":"Matching projects",children:S.map(d=>s.jsxs("button",{type:"button",className:"pi-zeroMatch","data-selected":$?.slug===d.slug||void 0,onClick:()=>f(d),onDoubleClick:()=>x(d),children:[s.jsxs("span",{className:"pi-zeroMatchMain",children:[s.jsxs("span",{className:"pi-zeroMatchTitle",children:["/",d.title]}),s.jsx("span",{className:"pi-zeroMatchRoot",title:d.root??void 0,children:d.root?V(d.root):d.slug})]}),s.jsx("span",{className:"pi-zeroMatchMeta",children:Ds(d)})]},d.slug))}):R?s.jsx("div",{className:"pi-zeroEmpty",children:"No project matches."}):null,L?s.jsx("div",{className:"pi-zeroError",children:L}):null,P?s.jsx("div",{className:"pi-zeroStatus",children:P}):null]})]})}function Ms(e){return e==="codex"?"codex":"claude"}function me(e,t){return{view:"agents-v2",projectSlug:t,...e.showEphemeral?{showEphemeral:!0}:{},...e.machineId?{machineId:e.machineId}:{}}}function Es(e){return e.map(t=>({slug:t.slug,title:t.title,root:t.root,agentCount:t.agentCount,sessionCount:t.sessionCount,lastActivityAt:t.lastActivityAt})).sort((t,i)=>i.lastActivityAt-t.lastActivityAt||i.agentCount-t.agentCount||i.sessionCount-t.sessionCount||t.title.localeCompare(i.title))}function Is(e,t){const i=H(t);return i?e.map(n=>({option:n,score:$s(n,i)})).filter(n=>n.score!==null).sort((n,a)=>n.score-a.score||a.option.lastActivityAt-n.option.lastActivityAt||n.option.title.localeCompare(a.option.title)).slice(0,6).map(n=>n.option):e.slice(0,6)}function he(e,t){const i=H(t);return i?e.find(n=>{const a=H(n.root??""),r=H(n.root?J(n.root):"");return H(n.title)===i||H(n.slug)===i||a===i||r===i||H(n.root?V(n.root):"")===i})??null:null}function $s(e,t){const i=H(e.title),n=H(e.slug),a=H(e.root??""),r=H(e.root?J(e.root):"");return i===t||n===t||a===t||r===t?0:i.startsWith(t)||n.startsWith(t)||r.startsWith(t)?1:i.includes(t)||n.includes(t)||r.includes(t)?2:a.includes(t)?3:null}function H(e){return e.trim().toLowerCase().replace(/^~(?=\/)/u,"").replace(/\s+/g," ")}function Ws(e){const t=e.trim();return/^(~\/|\/|\.{1,2}\/)/u.test(t)||t.includes("/")}function Fs(e,t){const i=H(t);return i?[e.root??"",e.root?V(e.root):"",e.root?J(e.root):"",e.slug,e.title].map(H).some(a=>a===i||a.endsWith(i)):!1}function Ds(e){return[fe(e.agentCount,"agent"),fe(e.sessionCount,"session"),e.lastActivityAt?_(e.lastActivityAt):null].filter(Boolean).join(" · ")}function fe(e,t){return`${e} ${t}${e===1?"":"s"}`}function Bs(e,t){return Je(e,t)}function je(e){return/^native:process:/iu.test(e??"")}function Os(e){return e.startsWith("/")||e.startsWith("~/")||e.includes("/")&&/\.(jsonl?|events)$/i.test(e)}function we(e,t,i){const n=e?.trim()??"";return!n||Os(n)?t:n}function zs({session:e,sessionRef:t,threads:i,lookup:n,route:a,navigate:r,nowMs:o}){const[u,c]=m.useState(null),j=e?.agentName??a.selectedAgentId??a.agentId??"Session",h=e?.harness??"session",v=n?.kind==="observe"?n.observe.data:null,y=v?.metadata?.session,w=e?.lastActivityAt??n?.session?.lastMessageAt??null,[I,L,k]=m.useMemo(()=>[oe(v),ke(v,w),Vs(v,w)],[v,w]),P=y?.gitBranch??n?.session?.currentBranch??e?.branch??null,F=y?.model??null,M=y?.turnCount??v?.metadata?.usage?.assistantMessages??(n?.kind==="conversation"?n.session.messageCount:null),B=L?_(L,o):e?.lastActivityAt?_(e.lastActivityAt,o):"—",A=e?.working?`live · last ${B}`:B!=="—"?`last ${B}`:"trace resolving",S=we(e?.work,j),$=ve(t),R=n?.session??null,T=n?.kind==="observe"?n.observe.agentId??R?.agentId??e?.agentId:R?.agentId??e?.agentId,l=n?.kind==="observe"?n.observe.sessionId:R?.harnessSessionId,p=[j,h,F,P,I?`started ${We(I)}`:null,k,M!=null?`turn ${N(M)}`:null,$].filter(x=>!!x&&x!=="—");m.useEffect(()=>{let x=!0;return c(null),!T&&!l&&!t?()=>{x=!1}:(Oe({includeDiscovered:!0}).then(b=>{x&&c(ps(b,{agentId:T,sessionRefs:[t,l,e?.sessionId]}))}).catch(()=>{x&&c(null)}),()=>{x=!1})},[e?.sessionId,t,T,l]);const g=()=>{u&&He(r,{view:"terminal",terminalSessionId:u.terminalSessionId,terminalSurfaceKey:u.terminalSurfaceKey,mode:"takeover"},{returnTo:a})},f=u?ms(u,"takeover"):null;return s.jsxs("section",{className:"pi-sessionOverview","aria-label":"Session overview",children:[s.jsxs("section",{className:"pi-sessionMasthead","data-state":e?.working?"working":"recent",children:[s.jsxs("div",{className:"pi-sessionMastTop",children:[s.jsx("span",{className:"pi-sessionCrumb",children:"Sessions ▸"}),s.jsx("h2",{className:"pi-sessionHeadline",title:S,children:S}),s.jsxs("span",{className:"pi-sessionState",children:[e?.working?s.jsx("span",{className:"pi-sessionLiveDot","aria-hidden":!0}):null,A]})]}),s.jsx("div",{className:"pi-sessionMeta",children:p.map((x,b)=>s.jsxs("span",{title:b===p.length-1?t:x,children:[b===1?s.jsx(ge,{harness:h,size:11}):null,x]},`${x}:${b}`))}),u?s.jsxs("div",{className:"pi-sessionTerminalActions","aria-label":"tmux terminal actions",children:[s.jsxs("span",{className:"pi-sessionTerminalName",title:u.sessionName,children:["tmux · ",u.sessionName]}),s.jsx("button",{type:"button",onClick:g,children:"Open in web terminal"}),f?s.jsxs("a",{href:f,children:["Open in native terminal",s.jsx(ls,{size:11,strokeWidth:1.8,"aria-hidden":!0})]}):null]}):null]}),s.jsx(Qs,{lookup:n,session:e,threads:i,nowMs:o,route:a,navigate:r})]})}function Hs({session:e,sessionRef:t,threads:i,route:n,navigate:a,nowMs:r}){const[o,u]=m.useState(null);return m.useEffect(()=>{u(null)},[t]),s.jsx("main",{className:"pi-sessionDetail","aria-label":"Selected session",children:s.jsxs("div",{className:"pi-sessionContent",children:[s.jsx(zs,{session:e,sessionRef:t,threads:i,lookup:o,route:n,navigate:a,nowMs:r}),s.jsx(qe,{sessionRef:t,navigate:a,showObserveRail:!1,onLookup:u})]})})}function N(e){return typeof e!="number"||!Number.isFinite(e)?"—":Math.abs(e)<1e3?e.toLocaleString("en-US"):Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}function Ne(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?"—":`${N(e)} tok`}function G(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:null}function qs(e){const t=G(e?.contextInputTokens),i=G(e?.contextWindowTokens);return t===null||i===null?null:Math.max(0,Math.min(1,t/i))}function Gs(e){const t=[{key:"input",label:"input",value:G(e?.inputTokens)??0},{key:"cache-read",label:"cache rd",value:G(e?.cacheReadInputTokens)??0},{key:"cache-write",label:"cache wr",value:G(e?.cacheCreationInputTokens)??0},{key:"output",label:"output",value:G(e?.outputTokens)??0},{key:"reasoning",label:"reasoning",value:G(e?.reasoningOutputTokens)??0}].filter(r=>r.value>0),i=t.reduce((r,o)=>r+o.value,0),n=t.filter(r=>r.key!=="reasoning"||i>0&&r.value/i>=.02);if(n.length>0)return n;const a=G(e?.totalTokens);return a!==null?[{key:"total",label:"total",value:a}]:[]}function _s({buckets:e}){const t=e.reduce((i,n)=>i+n.value,0);return e.length===0?null:s.jsxs("div",{className:"pi-sessionGlanceTokens","aria-label":"Token usage",children:[s.jsx("div",{className:"pi-sessionGlanceTokenBars",children:e.map(i=>s.jsx("span",{className:"pi-sessionGlanceTokenSeg","data-kind":i.key,style:{flexGrow:t>0?Math.max(.035,i.value/t):1,flexBasis:0},title:`${i.label}: ${Ne(i.value)}`},i.key))}),s.jsx("div",{className:"pi-sessionGlanceTokenLegend",children:e.map(i=>s.jsxs("span",{children:[s.jsx("i",{"data-kind":i.key,"aria-hidden":!0}),i.label," ",s.jsx("b",{children:N(i.value)})]},i.key))})]})}function oe(e){const t=ee(e?.metadata?.session?.sessionStart);if(t!==null)return t;for(const i of e?.events??[]){const n=ee(i.at);if(n!==null)return n}return null}function ke(e,t){for(let a=(e?.events.length??0)-1;a>=0;a-=1){const r=ee(e?.events[a]?.at);if(r!==null)return r}const i=oe(e),n=e?.events.at(-1)?.t;return i!==null&&typeof n=="number"&&Number.isFinite(n)?i+n*1e3:ee(t)}function Vs(e,t){const i=oe(e),n=ke(e,t);if(i!==null&&n!==null)return ie(Math.max(0,n-i))||"—";const a=e?.events.at(-1)?.t;return typeof a=="number"&&Number.isFinite(a)&&ie(a*1e3)||"—"}function ie(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"";const t=Math.floor(e/1e3);if(t<60)return`${t}s`;const i=Math.floor(t/60);if(i<60)return`${i}m`;const n=Math.floor(i/60),a=i%60;if(n<48)return a>0?`${n}h ${a}m`:`${n}h`;const r=Math.floor(n/24),o=n%24;return o>0?`${r}d ${o}h`:`${r}d`}function Ks(e){const t=e?.metadata?.topology;if(!t)return null;const i=t.agents.length,n=t.agents.filter(u=>u.role!=="lead").length,a=t.groups.filter(u=>u.kind==="workflow").length,r=t.tasks.length,o=[];return n>0?o.push(`${n} worker${n===1?"":"s"}`):i>0&&o.push(`${i} agent${i===1?"":"s"}`),a>0&&o.push(`${a} workflow${a===1?"":"s"}`),r>0&&o.push(`${r} task${r===1?"":"s"}`),o.length?o.join(" · "):null}function Us(e){return[...e].sort((t,i)=>xe(i.state)-xe(t.state)||i.touches-t.touches||i.lastT-t.lastT||t.path.localeCompare(i.path)).slice(0,5).map(t=>({path:t.path,kind:t.state,detail:[t.touches>1?`${N(t.touches)} touches`:"1 touch",t.lastT>0?`last ${ie(t.lastT*1e3)}`:null].filter(Boolean).join(" · ")}))}function xe(e){switch(e){case"created":return 3;case"modified":return 2;case"read":return 1}}function Xs(e){const t=new Map;for(const i of e){if(i.kind!=="tool")continue;const n=Ys(i.tool||i.text),a=t.get(n)??{count:0,samples:[]};a.count+=1;const r=i.arg||i.detail||i.text;r&&a.samples.length<2&&a.samples.push(r),t.set(n,a)}return[...t.entries()].sort((i,n)=>n[1].count-i[1].count||i[0].localeCompare(n[0])).slice(0,5).map(([i,n])=>({name:i,count:n.count,detail:n.samples.join(" · ")||`${N(n.count)} uses`}))}function Ys(e){return(e.trim().split(/\s+/u)[0]??"tool").replace(/[_-]+/gu," ").toLowerCase()}function Zs({usage:e,contextPct:t,topology:i,workspace:n,projectRoot:a,branch:r}){const o=[];return t!==null&&o.push({label:"Context",value:`${t}%`,detail:t>=80?"approaching limit":"within window",tone:t>=80?"warn":void 0}),(e?.serviceTier||e?.planType||e?.speed)&&o.push({label:"Budget",value:e.serviceTier??e.planType??e.speed??"usage",detail:[e.planType,e.speed].filter(Boolean).join(" · ")||"provider metadata"}),n&&a&&n!==a?o.push({label:"Worktree",value:V(n),detail:"session cwd differs from project root",tone:"warn"}):r&&o.push({label:"Repo",value:r,detail:"session branch"}),i&&o.push({label:"Topology",value:i,detail:"observed harness hierarchy"}),(e?.webSearchRequests||e?.webFetchRequests)&&o.push({label:"Network",value:`${N((e.webSearchRequests??0)+(e.webFetchRequests??0))} req`,detail:[e.webSearchRequests?`${N(e.webSearchRequests)} search`:null,e.webFetchRequests?`${N(e.webFetchRequests)} fetch`:null].filter(Boolean).join(" · ")}),o.slice(0,4)}function Js({session:e,threads:t,nowMs:i}){return t.filter(n=>n.kind==="agent").filter(n=>n.agentId!==e?.agentId||n.work!==e?.work).sort((n,a)=>Number(a.working)-Number(n.working)||a.lastActivityAt-n.lastActivityAt).slice(0,4).map(n=>{const a=!!(e?.branch&&n.branch===e.branch),r=!!(e?.agentName&&n.agentName===e.agentName);return{thread:n,title:we(n.work,n.agentName,n.id),channel:n.conversationId?ve(n.conversationId):n.agentName,state:n.needs?"needs":n.working?"working":"recent",time:n.lastActivityAt?_(n.lastActivityAt,i):"—",participants:n.agentName,why:a?"same branch":r?"same agent":n.working?"active in project":"project thread"}})}function Y({label:e,value:t,title:i,detail:n}){return s.jsxs("span",{className:"pi-sessionGlanceField",title:i,children:[s.jsx("span",{children:e}),s.jsx("b",{children:t}),n?s.jsx("small",{children:n}):null]})}function Qs({lookup:e,session:t,threads:i,nowMs:n,route:a,navigate:r}){const[o,u]=m.useState(!1),c=m.useMemo(()=>{const T=e?.kind==="observe"?e.observe.data:null,l=T?.metadata?.session,p=T?.metadata?.usage,g=T?.events??[],f=T?.files??[],x=l?.turnCount??p?.assistantMessages??(e?.kind==="conversation"?e.session.messageCount:null),b=g.filter(U=>U.kind==="tool").length,D=f.filter(U=>U.state==="created").length,d=f.filter(U=>U.state==="modified").length,E=f.filter(U=>U.state==="read").length,O=D+d,W=qs(p),z=W!==null?Math.round(W*100):null,C=l?.cwd??e?.session?.workspaceRoot??t?.projectRoot??null,K=l?.gitBranch??e?.session?.currentBranch??t?.branch??null,q=Ks(T),se=Ne(p?.totalTokens??(typeof p?.inputTokens=="number"||typeof p?.outputTokens=="number"?(p?.inputTokens??0)+(p?.outputTokens??0):null)),ye=Gs(p),Ce=O>0?[d>0?`${N(d)} mod`:null,D>0?`${N(D)} new`:null].filter(Boolean).join(" · "):E>0?"read-only":"no file trace",Ae=f.length>0?`${N(f.length)} touched`:"—",Re=Us(f),Te=Xs(g),Le=Zs({usage:p,contextPct:z,topology:q,workspace:C,projectRoot:t?.projectRoot,branch:K}),Pe=Js({session:t,threads:i,nowMs:n});return{turnCount:x,toolCount:b,editCount:O,fileCountLabel:Ae,fileStateLabel:Ce,workspace:C,contextPct:z,showContext:z!==null,contextWarn:z!==null&&z>=80,tokenTotal:se,buckets:ye,fileSignals:Re,toolSignals:Te,contextSignals:Le,threadSignals:Pe,projectRoot:t?.projectRoot??null}},[e,t,i,n]),{turnCount:j,toolCount:h,editCount:v,fileCountLabel:y,fileStateLabel:w,workspace:I,contextPct:L,showContext:k,contextWarn:P,tokenTotal:F,buckets:M,fileSignals:B,toolSignals:A,contextSignals:S,threadSignals:$,projectRoot:R}=c;return s.jsxs("section",{className:"pi-sessionGlance","aria-label":"Session glance",children:[s.jsxs("div",{className:"pi-sessionVitals","aria-label":"Session vitals",children:[s.jsx(Y,{label:"Turns",value:N(j)}),s.jsx(Y,{label:"Tools",value:N(h)}),s.jsx(Y,{label:"Edits",value:N(v)}),s.jsx(Y,{label:"Files",value:y,detail:w!=="no file trace"?w:null}),I&&R&&I!==R?s.jsx(Y,{label:"Worktree",value:V(I),title:I}):null,k?s.jsxs("span",{className:"pi-sessionContextVital",title:"Context window usage",children:[s.jsx("span",{children:"Ctx"}),s.jsx("span",{className:"pi-sessionContextBar","aria-hidden":!0,children:s.jsx("span",{"data-warn":P||void 0,style:{width:`${L}%`}})}),s.jsxs("b",{"data-warn":P||void 0,children:[L,"%"]})]}):null,M.length>0?s.jsxs("button",{type:"button",className:"pi-sessionTokenToggle","aria-expanded":o,onClick:()=>u(T=>!T),children:[s.jsx("span",{children:"Tokens"}),s.jsx("b",{children:F}),s.jsx("i",{children:o?"▾":"▸"})]}):null]}),o&&M.length>0?s.jsx(_s,{buckets:M}):null,s.jsx(et,{files:B,tools:A,context:S,threads:$,route:a,navigate:r})]})}function et({files:e,tools:t,context:i,threads:n,route:a,navigate:r}){return s.jsxs("section",{className:"pi-sessionSignals","aria-label":"Session work signals",children:[s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsxs("div",{className:"pi-sessionSignalHead",children:[s.jsx("span",{children:"Files"}),s.jsx("b",{children:N(e.length)})]}),e.length>0?s.jsx("div",{className:"pi-sessionFileList",children:e.map(o=>s.jsxs("div",{className:"pi-sessionFileRow",children:[s.jsx("span",{"data-kind":o.kind,children:o.kind}),s.jsx("code",{title:o.path,children:o.path}),s.jsx("small",{children:o.detail})]},`${o.kind}:${o.path}`))}):s.jsx("span",{className:"pi-sessionSignalEmpty",children:"No file trace yet."})]}),s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsx("div",{className:"pi-sessionSignalHead",children:s.jsx("span",{children:"Tools · Context · Topology"})}),t.length>0?s.jsx("div",{className:"pi-sessionToolGrid",children:t.map(o=>s.jsxs("span",{className:"pi-sessionToolPill",title:o.detail,children:[s.jsx("b",{children:o.name}),s.jsx("em",{children:N(o.count)})]},o.name))}):null,i.length>0?s.jsx("div",{className:"pi-sessionContextList",children:i.map(o=>s.jsxs("div",{className:"pi-sessionContextRow",children:[s.jsx("span",{children:o.label}),s.jsx("b",{"data-tone":o.tone,children:o.value}),s.jsx("small",{children:o.detail})]},`${o.label}:${o.value}`))}):t.length===0?s.jsx("span",{className:"pi-sessionSignalEmpty",children:"Trace metadata is still resolving."}):null]}),s.jsxs("div",{className:"pi-sessionSignalCol",children:[s.jsxs("div",{className:"pi-sessionSignalHead",children:[s.jsx("span",{children:"Recent threads"}),s.jsx("b",{children:N(n.length)})]}),n.length>0?s.jsx("div",{className:"pi-sessionThreadList",children:n.map(o=>s.jsxs("button",{type:"button",className:"pi-sessionThreadRow",onClick:()=>r(be(o.thread,a)),children:[s.jsx("span",{className:"pi-sessionThreadTitle",title:o.title,children:o.title}),s.jsxs("span",{className:"pi-sessionThreadMeta",children:[s.jsx("b",{children:o.channel}),s.jsx("em",{children:o.state}),s.jsx("small",{children:o.time})]}),s.jsxs("span",{className:"pi-sessionThreadWhy",children:[o.participants," · ",o.why]})]},o.thread.id))}):s.jsx("span",{className:"pi-sessionSignalEmpty",children:"No recent agent threads."})]})]})}function ne(e){return!e||e==="—"||/^\d+\s+branches$/iu.test(e)?null:e}function Se(e,t,i,n){const a=new Map,r=(u,c)=>{const j=u??e,h=ne(c),v=j??"project",y=a.get(v);if(y)return!y.branch&&h&&(y.branch=h),y;const w={key:v,root:j,branch:h,sessions:0,work:0,moving:0,lastActivityAt:0,repoWatch:null};return a.set(v,w),w};for(const u of t){const c=r(u.root,u.branch);u.working&&(c.moving+=1),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}const o=(u,c)=>{const j=u??e,h=a.get(j??"project");return h||(t.length>0?a.get(e??"")??a.values().next().value:r(u,c))};for(const u of i){const c=o(u.workspaceRoot??u.projectRoot,u.branch);c.sessions+=1,u.working&&(c.moving+=1,c.branch=ne(u.branch)??c.branch),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}for(const u of n){const c=o(u.workspaceRoot??u.projectRoot,u.branch);c.work+=1,u.working&&(c.moving+=1,c.branch=ne(u.branch)??c.branch),c.lastActivityAt=Math.max(c.lastActivityAt,u.lastActivityAt)}return a.size===0&&r(e,null),[...a.values()].sort((u,c)=>c.moving-u.moving||c.lastActivityAt-u.lastActivityAt||(u.root??"").localeCompare(c.root??""))}function st(e){return e.worktrees.map(t=>({key:t.id,root:t.path,branch:t.branch.name,sessions:t.sessions.length,work:t.agents.length,moving:t.agents.some($e)?1:0,lastActivityAt:t.lastCommitAt??0,repoWatch:t}))}function tt({pullRequests:e,loading:t,warnings:i,onRefresh:n,nowMs:a}){return s.jsxs("section",{className:"pi-projectPullRequests","aria-label":"Open pull requests",children:[s.jsxs("div",{className:"pi-projectPullRequestsHead",children:[s.jsx("span",{children:"Open PRs"}),s.jsx("b",{children:t&&e.length===0?"…":N(e.length)})]}),e.length>0?s.jsx("div",{className:"pi-projectPullRequestList",children:e.slice(0,6).map(r=>{const o=r.updatedAt?Date.parse(r.updatedAt):Number.NaN;return s.jsxs("a",{className:"pi-projectPullRequest",href:r.url,target:"_blank",rel:"noreferrer",children:[s.jsxs("span",{className:"pi-projectPullRequestNumber",children:["#",r.number]}),s.jsx("b",{title:r.title,children:r.title}),s.jsxs("span",{className:"pi-projectPullRequestBranch",title:`${r.headRefName} → ${r.baseRefName}`,children:[r.headRefName," → ",r.baseRefName]}),s.jsx("em",{children:r.isDraft?"draft":"open"}),s.jsx("time",{children:Number.isFinite(o)?_(o,a):"updated"})]},r.id)})}):s.jsxs("div",{className:"pi-projectPullRequestState","data-loading":t||void 0,children:[s.jsx("span",{children:t?"Checking GitHub for open pull requests…":i[0]??"No open pull requests for this repository."}),!t&&i.length>0?s.jsx("button",{type:"button",onClick:n,children:"Retry"}):null]})]})}function nt(e){const t=new Set;let i=0,n=0;const a=[];for(const r of e.layers){r.files.length>0&&a.push(r.kind);for(const o of r.files)t.add(o.newPath??o.oldPath??"unknown"),i+=o.additions??0,n+=o.deletions??0}return{additions:i,deletions:n,files:[...t],layers:a}}function it({additions:e,deletions:t}){return e+t===0?s.jsx("span",{className:"pi-projectWorktreeChurnBar","data-empty":!0}):s.jsxs("span",{className:"pi-projectWorktreeChurnBar","aria-label":`${e} additions and ${t} deletions`,children:[e>0?s.jsx("i",{"data-add":!0,style:{flexGrow:e}}):null,t>0?s.jsx("i",{"data-delete":!0,style:{flexGrow:t}}):null]})}function ot({project:e,repoProject:t,repoLoading:i,repoError:n,diffSnapshots:a,diffErrors:r,diffLoading:o,pullRequests:u,pullRequestsLoading:c,pullRequestWarnings:j,onRepositoryRefresh:h,threads:v,sessions:y,route:w,navigate:I,nowMs:L}){const k=e?.root??y[0]?.projectRoot??v[0]?.projectRoot??null,P=v.length,F=e?.sessionCount??y.length,M=e?.agentCount??0,B=Math.max(e?.lastActivityAt??0,y[0]?.lastActivityAt??0,v[0]?.lastActivityAt??0),A=e?.branches.length?e.branches:[...new Set([...y.map(l=>l.branch),...v.map(l=>l.branch)].filter(l=>!!l&&l!=="—"&&l!=="main"))],S=t?.worktrees.length?st(t):Se(k,e?.worktrees??[],y,v),$=S.find(l=>l.moving>0&&l.branch)?.branch??S.find(l=>l.branch)?.branch??A[0]??"main",R=k?J(k):e?.title??w.projectSlug??"project",T=S.find(l=>l.moving>0)?.key??S.find(l=>l.branch===$)?.key??S[0]?.key;return s.jsxs("main",{className:"pi-projectOverview","aria-label":"Project overview",children:[s.jsxs("section",{className:"pi-projectSnapshot","aria-label":"Project snapshot",children:[s.jsxs("div",{className:"pi-projectRepository",children:[s.jsxs("div",{className:"pi-projectRepositoryHead",children:[s.jsx("span",{children:"Repository"}),s.jsx(cs,{size:13,strokeWidth:1.7,"aria-hidden":!0})]}),s.jsxs("div",{className:"pi-projectRepositoryIdentity",children:[s.jsx("b",{children:R}),s.jsx("span",{title:k??void 0,children:k?V(k):w.projectSlug??"project"})]}),s.jsxs("div",{className:"pi-projectRepositoryCurrent",children:[S.some(l=>l.moving>0)?s.jsx("span",{className:"pi-projectRepositoryPulse","aria-label":"Active now"}):null,s.jsxs("span",{children:[s.jsx("small",{children:"Current branch"}),s.jsx("b",{title:$,children:$})]}),s.jsx("time",{children:B?_(B,L):"no activity"})]}),F>0||M>0||P>0?s.jsxs("div",{className:"pi-projectRepositoryStats","aria-label":"Repository activity",children:[F>0?s.jsxs("span",{children:[s.jsx("b",{children:N(F)})," ",F===1?"session":"sessions"]}):null,M>0?s.jsxs("span",{children:[s.jsx("b",{children:N(M)})," ",M===1?"agent":"agents"]}):null,P>0?s.jsxs("span",{children:[s.jsx("b",{children:N(P)})," ",P===1?"thread":"threads"]}):null]}):null]}),s.jsxs("div",{className:"pi-projectWorktrees",children:[s.jsxs("div",{className:"pi-projectWorktreesHead",children:[s.jsx("span",{children:"Worktree preview"}),s.jsx("b",{children:N(S.length)})]}),s.jsx("div",{className:"pi-projectWorktreeList",children:S.slice(0,6).map(l=>{const p=l.repoWatch,g=l.root?a.get(l.root)??null:null,f=g?nt(g):null,x=p?Ie(p):null,b=f?.additions??x?.add??0,D=f?.deletions??x?.del??0,d=f?.files.length??(p?Math.max(p.status.changedFiles,x?.files??0):0),E=!!(d>0||p&&(!p.status.clean||p.branch.ahead>0||p.branch.behind>0)),O=u.filter(C=>C.headRefName===l.branch),W=!!(l.root&&o&&!g&&!r.has(l.root)),z=l.root?r.get(l.root)??null:"No worktree path is available.";return s.jsxs("article",{className:"pi-projectWorktree","data-active":l.key===T||void 0,"data-stranded":E||void 0,children:[s.jsx("span",{className:"pi-projectWorktreeTop",children:s.jsx("b",{title:l.branch??"main",children:l.branch??"main"})}),s.jsx("em",{title:l.root??void 0,children:l.root?V(l.root):"workspace"}),g||p?s.jsxs("div",{className:"pi-projectWorktreeDiff","data-clean":!E||void 0,children:[E?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"pi-projectWorktreeChurn",children:[s.jsxs("b",{className:"pi-projectWorktreeAdd",children:["+",N(b)]}),s.jsxs("b",{className:"pi-projectWorktreeDel",children:["−",N(D)]}),s.jsx(it,{additions:b,deletions:D})]}),s.jsxs("small",{children:[N(d)," changed"]})]}):s.jsx("small",{children:"clean"}),l.root?s.jsx("button",{type:"button",className:"pi-projectWorktreeOpenDiff",onClick:()=>I({view:"repo-diff",path:l.root}),children:"View diff"}):null]}):s.jsxs("div",{className:"pi-projectWorktreeDiff","data-pending":!0,children:[s.jsx("small",{children:W||i?"Reading worktree diff…":z??n??"No diff data returned."}),!W&&!i?s.jsx("button",{type:"button",className:"pi-projectWorktreeOpenDiff",onClick:h,children:"Retry"}):null]}),f&&f.files.length>0?s.jsxs("span",{className:"pi-projectWorktreeFiles",title:f.files.join(`
|
|
2
|
-
`),children:[f.files.slice(0,2).map(C=>J(C)).join(" · "),f.files.length>2?` · +${f.files.length-2} more`:""]}):null,s.jsx("span",{className:"pi-projectWorktreeMeta",children:p?s.jsxs(s.Fragment,{children:[s.jsx("small",{children:p.branch.ahead>0||p.branch.behind>0?`${p.branch.ahead}↑ ${p.branch.behind}↓`:"synced"}),p.status.staged>0?s.jsxs("small",{children:[N(p.status.staged)," staged"]}):null,p.status.unstaged>0?s.jsxs("small",{children:[N(p.status.unstaged)," unstaged"]}):null,p.status.untracked>0?s.jsxs("small",{children:[N(p.status.untracked)," untracked"]}):null,p.status.conflicts>0?s.jsxs("small",{children:[N(p.status.conflicts)," conflicts"]}):null,f?.layers.map(C=>s.jsx("small",{children:C},C)),O.length>0?s.jsxs("small",{children:[O.length," PR",O.length===1?"":"s"]}):null]}):s.jsxs(s.Fragment,{children:[s.jsx("small",{children:l.lastActivityAt?_(l.lastActivityAt,L):"idle"}),s.jsxs("small",{children:[N(l.sessions)," sessions"]}),s.jsxs("small",{children:[N(l.work)," threads"]})]})})]},l.key)})}),S.length>6?s.jsxs("div",{className:"pi-projectWorktreeMore",children:["+",S.length-6," more worktrees"]}):null]})]}),s.jsx(tt,{pullRequests:u,loading:c,warnings:j,onRefresh:h,nowMs:L})]})}function at({project:e,threads:t,sessions:i,route:n,navigate:a,nowMs:r}){const o=e?.root??i[0]?.projectRoot??t[0]?.projectRoot??null,u=m.useMemo(()=>Se(o,e?.worktrees??[],i,t).map(j=>j.root).filter(j=>!!j),[e?.worktrees,o,i,t]),c=ks(o,u);return s.jsx(ot,{project:e,repoProject:c.project,repoLoading:c.repoLoading,repoError:c.repoError,diffSnapshots:c.diffSnapshots,diffErrors:c.diffErrors,diffLoading:c.diffLoading,pullRequests:c.pullRequests,pullRequestsLoading:c.pullRequestsLoading,pullRequestWarnings:c.pullRequestWarnings,onRepositoryRefresh:c.refresh,threads:t,sessions:i,route:n,navigate:a,nowMs:r})}function ei({route:e,navigate:t,zeroPreview:i=!1}){const{model:n,nowMs:a,loading:r,error:o,agents:u=Ss}=Ve(e),c=!!e.projectSlug,j=e.projectSlug?Ke(n,e.projectSlug)??e.projectSlug:null,h=j&&j!==e.projectSlug?{...e,projectSlug:j}:e,v=c&&!je(e.sessionId)?e.sessionId??null:null,y=m.useMemo(()=>v?Bs(n.sessions,h):null,[h,n.sessions,v]),w=c?e.indexView==="agents"?"agents":e.indexView==="sessions"?"sessions":"overview":"overview",I=c?n.projects.find(l=>l.slug===j)??null:null,L=m.useMemo(()=>{if(i)return[];if(!c)return[];const l=j,p=Z(n.threads,l),g=ae(n.sessions,l);return w==="overview"?[]:w==="agents"?[]:g.length>0?g:p},[j,n.sessions,n.threads,w,c,i]),k=m.useMemo(()=>Ue(L),[L]),P=m.useMemo(()=>k.flatMap(l=>l.items),[k]),F=n.projects.length>0||n.threads.length>0||n.sessions.length>0,M=r&&!F,B=r&&!i,A=!c&&!B&&(i||n.projects.length===0&&L.length===0),S=!c&&!A,[$,R]=m.useState(-1),T=m.useRef(new Map);return m.useEffect(()=>{!c||!e.sessionId||!je(e.sessionId)||t({...h,indexView:"sessions",sessionId:void 0,selectedAgentId:void 0})},[h,t,e.sessionId,c]),m.useEffect(()=>{R(-1)},[j]),m.useEffect(()=>{function l(p){const g=document.activeElement;if(!!g&&(g.tagName==="INPUT"||g.tagName==="TEXTAREA"||g.isContentEditable))return;const x=P.length;if(x){if(p.key==="ArrowDown"||p.key==="j")p.preventDefault(),R(b=>b<0?0:Math.min(x-1,b+1));else if(p.key==="ArrowUp"||p.key==="k")p.preventDefault(),R(b=>b<0?0:Math.max(0,b-1));else if(p.key==="Enter"){const b=P[$<0?0:$];b&&(p.preventDefault(),t(b.kind==="session"?re(b,h):le(b,h)))}}}return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[$,h,P,t]),m.useEffect(()=>{if($<0)return;const l=P[$];l&&T.current.get(l.id)?.scrollIntoView({block:"nearest"})},[$,P]),s.jsxs("div",{className:"s-pi s-pi-inbox","aria-busy":r||void 0,"data-loading":r||void 0,children:[c?s.jsx(Rs,{route:h,navigate:t,slug:j,model:n,mode:w,repoProject:null}):s.jsx("div",{className:"pi-inboxHead",children:s.jsxs("div",{className:"pi-inboxHeading",children:[s.jsx("h1",{className:"pi-inboxTitle",children:"Projects"}),s.jsx("span",{className:"pi-inboxDigest",children:Ls(n,i)})]})}),v?s.jsx(Hs,{session:y,sessionRef:v,threads:Z(n.threads,j),route:h,navigate:t,nowMs:a}):c&&w==="overview"?s.jsx(at,{project:I,threads:Z(n.threads,j),sessions:ae(n.sessions,j),route:h,navigate:t,nowMs:a}):c&&w==="agents"&&I?s.jsx(Ge,{project:I,threads:Z(n.threads,j),route:h,navigate:t,nowMs:a}):S?s.jsx(_e,{model:n,agents:u,route:e,navigate:t,nowMs:a}):s.jsxs("div",{className:"pi-threads",children:[M?s.jsx(As,{}):null,!M&&k.map(l=>{let p=0;for(const g of k){if(g.group===l.group)break;p+=g.items.length}return s.jsxs("div",{children:[s.jsxs("div",{className:"pi-sectionHead","data-tone":l.group,children:[s.jsx("span",{className:"pi-sectionLabel",children:l.label}),s.jsx("span",{className:"pi-sectionCount",children:l.items.length})]}),l.items.map((g,f)=>{const x=p+f;return s.jsx(Cs,{thread:g,crossProject:!c,selected:g.kind==="session"?Ye(g,h,n.sessions):Ze(g,h,n.threads),cursor:$===x,nowMs:a,onSelect:()=>{const b=g.kind==="session"?Xe(g,h):be(g,h);t(b)},onOpen:()=>t(g.kind==="session"?re(g,h):le(g,h)),rowRef:b=>{b?T.current.set(g.id,b):T.current.delete(g.id)}},g.id)})]},l.group)}),!M&&L.length===0?o&&!F?s.jsx(pe,{tone:"error",title:"Projects unavailable",detail:o}):A?s.jsx("div",{className:"pi-empty",children:s.jsx(Ps,{route:e,navigate:t,projects:n.projects})}):B?s.jsx("div",{className:"pi-empty",children:"Loading…"}):s.jsx(pe,{title:rt(c,w)}):null]})]})}function rt(e,t){return e&&t==="agents"?"No visible agents in this project.":e?"No sessions in this project yet.":"No projects yet."}export{ei as ProjectsInbox,Cs as ThreadRow};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as p,j as e}from"./index-DvLtl7rV.js";import{t as P}from"./time-Dhsh_2EG.js";import{F as y,A as b}from"./AddProjectForm-IqOtJfRs.js";import{s as k}from"./project-overview-helpers-BQTc_Ous.js";import{u as C,r as A}from"./projects-inbox-Cg4X2lUQ.js";import{S as x}from"./search-CDko0PKE.js";import{X as w}from"./x-CAbNespN.js";import{C as F}from"./chevron-down-wciXnOQz.js";import{F as v}from"./DocumentFocusViewer-Do3wQ_3Z.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./createLucideIcon-DezKXSG2.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./tail-events-Ps8KpKah.js";import"./Provider-CtXJeLrP.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./chevron-right-D-HdlPg8.js";import"./file-text-CqJgwxmv.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./mesh-roster-Bc7T4b7z.js";import"./agents-project-model-UYiamtrU.js";import"./model-IGCUEsMy.js";function G(t){return t.needs>0?"needs":t.working>0||t.liveSessionCount>0?"working":"idle"}function L(t){return[t.title,t.slug,t.root??""].join(" ").toLowerCase()}function R(t,a,s){const o=a.trim().toLowerCase();return[...o?t.filter(i=>L(i).includes(o)):t].sort((i,n)=>s==="name"?i.title.localeCompare(n.title):n.lastActivityAt-i.lastActivityAt||i.title.localeCompare(n.title))}function W({rows:t=7}){return e.jsx("div",{className:"pi-railLoading","aria-hidden":"true",children:Array.from({length:t},(a,s)=>e.jsx("div",{className:"pi-projectGroup pi-projectGroup--loading",children:e.jsx("div",{className:"pi-projectGroupHead pi-projectGroupHead--flat",children:e.jsxs("span",{className:"pi-projectPath pi-projectPath--flat",children:[e.jsx(v,{size:13,strokeWidth:1.6,"aria-hidden":!0}),e.jsxs("span",{className:"pi-projectPathStack",children:[e.jsx("span",{className:"pi-loadingLine pi-loadingLine--railProject"}),e.jsx("span",{className:"pi-loadingLine pi-loadingLine--railRoot"})]})]})})},s))})}function be({route:t,navigate:a,zeroPreview:s=!1}){const{model:o,nowMs:l,loading:i,error:n}=C(t),[c,j]=p.useState(""),[d,N]=p.useState("recent"),[h,u]=p.useState(!1),m=p.useMemo(()=>R(s?[]:o.projects,c,d),[o.projects,c,d,s]),g=t.projectSlug?A(o,t.projectSlug)??t.projectSlug:void 0,f=i&&o.projects.length===0&&!s,S=p.useCallback(r=>{a({view:"agents-v2",projectSlug:r,...t.machineId?{machineId:t.machineId}:{},...t.showEphemeral?{showEphemeral:!0}:{}})},[a,t.machineId,t.showEphemeral]);return e.jsxs("nav",{className:"s-pi s-pi-rail","aria-label":"Projects","aria-busy":i||void 0,"data-loading":i||void 0,children:[e.jsxs("div",{className:"pi-railFind",role:"search",children:[e.jsx(x,{size:13,strokeWidth:1.8,"aria-hidden":!0}),e.jsx("input",{className:"pi-railFindInput",type:"search",value:c,placeholder:"Find project","aria-label":"Find project",onChange:r=>j(r.currentTarget.value)}),c?e.jsx("button",{type:"button",className:"pi-railFindClear","aria-label":"Clear",onClick:()=>j(""),children:e.jsx(w,{size:12,strokeWidth:2,"aria-hidden":!0})}):null]}),e.jsx("div",{className:"pi-railBody",children:e.jsxs("div",{className:"pi-railGroup pi-railGroup--projects",children:[e.jsxs("div",{className:"pi-railProjectTools",children:[e.jsx("div",{className:"pi-railLabel",children:"Projects"}),e.jsxs("label",{className:"pi-railSortWrap",title:"Sort projects",children:[e.jsx("span",{className:"pi-srOnly",children:"Sort projects"}),e.jsxs("select",{className:"pi-railSort",value:d,"aria-label":"Sort projects",onChange:r=>N(r.currentTarget.value),children:[e.jsx("option",{value:"recent",children:"Recent"}),e.jsx("option",{value:"name",children:"Name"})]}),e.jsx(F,{size:12,strokeWidth:2,"aria-hidden":!0})]}),e.jsx("button",{type:"button",className:"pi-railAddBtn","aria-expanded":h,"aria-label":"Add project",title:"Add a project by path",onClick:()=>u(r=>!r),children:e.jsx(y,{size:13,strokeWidth:1.8,"aria-hidden":!0})})]}),h?e.jsx(b,{onClose:()=>u(!1)}):null,f?e.jsx(W,{}):n&&m.length===0?e.jsx("div",{className:"pi-railEmpty",children:"Projects unavailable."}):m.length===0?e.jsx("div",{className:"pi-railEmpty",children:c?"No projects matched.":"No projects yet."}):e.jsx("div",{className:"pi-projectIndex",children:m.map(r=>e.jsx(E,{project:r,selected:g===r.slug,nowMs:l,onOpen:S},r.slug))})]})}),e.jsx("div",{className:"pi-railFoot",children:e.jsxs("button",{type:"button",className:"pi-railFootBtn",onClick:()=>a({view:"search"}),children:[e.jsx(x,{size:13,strokeWidth:1.8,"aria-hidden":!0}),"Search all Scout"]})})]})}function E({project:t,selected:a,nowMs:s,onOpen:o}){const l=G(t),i=t.lastActivityAt?P(t.lastActivityAt,s):"No activity";return e.jsx("div",{className:"pi-projectGroup pi-projectGroup--flat","data-selected":a||void 0,"data-state":l,children:e.jsx("div",{className:"pi-projectGroupHead pi-projectGroupHead--flat",children:e.jsxs("button",{type:"button",className:"pi-projectPath pi-projectPath--flat",title:t.root??t.title,"aria-current":a?"page":void 0,"aria-label":`Open /${t.title}`,onClick:()=>o(t.slug),children:[e.jsx(v,{size:13,strokeWidth:1.6,"aria-hidden":!0}),e.jsxs("span",{className:"pi-projectPathStack",children:[e.jsxs("span",{className:"pi-projectPathText",children:["/",t.title]}),e.jsxs("span",{className:"pi-projectPathMeta",children:[e.jsx("span",{children:t.root?k(t.root):"Discovered project"}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsxs("span",{children:[t.worktreeCount," ",t.worktreeCount===1?"worktree":"worktrees"]}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("time",{children:i})]})]}),l!=="idle"?e.jsx("span",{className:"pi-projectState","data-state":l,children:l==="needs"?"Needs you":"Active"}):null]})})})}export{be as ProjectsRail,R as filterAndSortProjects};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as i}from"./index-DvLtl7rV.js";import{u as e}from"./Provider-CtXJeLrP.js";import{d as s}from"./types-B0PlfpKc.js";import{ProjectsInbox as c}from"./ProjectsInbox-C_bMHLCc.js";import{ProjectsRail as n}from"./ProjectsRail-J-aH_pxT.js";import{ProjectAgentProfile as a}from"./ProjectAgentProfile-Bdjd_dAx.js";import{i as l}from"./model-IGCUEsMy.js";/* empty css */import"./projects-inbox-Cg4X2lUQ.js";import"./router-B9vQkNJL.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./api-Co9aQ2Jw.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./time-Dhsh_2EG.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./AgentAvatar-6-KBVKUu.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./ui-LM8pS8qE.js";import"./openContent-C6XO6kr5.js";import"./SessionRefScreen-COVQMbtE.js";import"./tail-events-Ps8KpKah.js";import"./BackToPicker-CXZjBRAe.js";import"./ConversationScreen-CR9pWB65.js";import"./ConversationComposer-CXPKx86g.js";import"./zap-Cq8eWkcF.js";import"./message-markup-C2LQDm_k.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./message-visibility-CGOmSSKs.js";import"./operator-attention-RqieiSY8.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";/* empty css */import"./ConversationHeader-BQWzGzLK.js";import"./AstronautSuit-DbjQtfD_.js";import"./ConversationFeedRows-WrH-YI3L.js";import"./ConversationPanels-Dujvnmup.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./activity-DcrMApUY.js";import"./message-circle-mZCv8tvB.js";import"./ConversationStatus-DVzSb2Hv.js";import"./check-ofKUE8yH.js";import"./sparkles-CETYrxGA.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./wrench-DjkoAOQt.js";import"./external-link-Dp_a2vRZ.js";import"./session-ref-lookup-state-SATH_jAP.js";/* empty css */import"./CrewWorkspaces-NKujRzwh.js";import"./AddProjectForm-IqOtJfRs.js";import"./mesh-roster-Bc7T4b7z.js";import"./agent-specialization-BujJVUTD.js";import"./project-overview-helpers-BQTc_Ous.js";import"./sliders-horizontal-C8njVwfg.js";import"./message-square-C7t_qtuj.js";import"./api-HFH8wFyb.js";import"./cache-CeWH_KzJ.js";import"./arrow-up-right-C6Wl-1uw.js";import"./agents-project-model-UYiamtrU.js";import"./AgentsSubnav-C4xpQhsv.js";import"./SecondaryNav-BR4VRdgh.js";import"./secondaryNavConfig-BoQ_zYR9.js";import"./compass-Dt1AMXz2.js";import"./settings-Dyvpkb1D.js";import"./git-branch-CK5v8F2v.js";import"./scroll-text-Dze_dXtQ.js";import"./profile-APxDsN2P.js";import"./context-budget-DX_fwUs3.js";import"./session-catalog-DsaZJXZt.js";import"./terminal-relay-GYMIvKs1.js";/* empty css */import"./AgentDefinitionsWorkspace-Iyl4BesU.js";import"./FileViewerPane-Df6VzXjA.js";import"./agent-essentials-D7KRGYvF.js";/* empty css *//* empty css */import"./ProjectAgentProfileBar-k2QHHHsQ.js";function f({route:o,navigate:r}){const t=l(o),m=t?`profile:${o.agentId}`:"index",p=!t&&j();return i.jsx("div",{className:"s-av2","data-view":t?"profile":"index",children:i.jsx("div",{className:"av2-stagePane",children:t?i.jsx(a,{route:o,navigate:r}):i.jsx(c,{route:o,navigate:r,zeroPreview:p})},m)})}function Cr({navigate:o}){const{route:r}=e(),t=r.view==="agents-v2"?r:{view:"agents-v2"};return i.jsxs("div",{className:"pi-projectsEmbedShell",children:[i.jsx(n,{route:t,navigate:o}),i.jsx(f,{route:t,navigate:o})]})}const Ir=s({id:"projects",label:"Projects",route:{view:"agents-v2"},webPath:"/projects",screen:"ProjectsEmbedScreen",embed:{path:"/embed/projects",profile:"macos.projects",ownsInternalRoutes:!0,rootClassName:"s-projects-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},hosts:{macos:!0}}});function j(){if(typeof window>"u")return!1;const o=window.location.hostname.toLowerCase();if(o!=="localhost"&&o!=="127.0.0.1"&&o!=="::1")return!1;const r=new URLSearchParams(window.location.search).get("zero")?.trim().toLowerCase();return r==="projects"||r==="project"||r==="1"||r==="true"}export{Cr as ProjectsEmbedScreen,f as ProjectsScreen,Ir as scoutSurface};
|