@openscout/scout 0.2.94 → 0.2.96
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/NOTICE +14 -0
- package/README.md +164 -342
- package/bin/scout +26 -10
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/{ActivityScreen--eANwuxa.js → ActivityScreen-BnoaUkVZ.js} +1 -1
- package/dist/client/assets/{AddProjectForm-CcD6qvV8.js → AddProjectForm-IqOtJfRs.js} +1 -1
- package/dist/client/assets/{AgentAvatar-CYhf6twS.js → AgentAvatar-6-KBVKUu.js} +1 -1
- package/dist/client/assets/{AgentConfigurationScreen-BTI24HQX.js → AgentConfigurationScreen-CuZJy07q.js} +1 -1
- package/dist/client/assets/{AgentDefinitionsWorkspace-srmN6-vj.js → AgentDefinitionsWorkspace-Iyl4BesU.js} +1 -1
- package/dist/client/assets/{AgentDetailCard-UqPNpcvB.js → AgentDetailCard-C9rn3Fj5.js} +1 -1
- package/dist/client/assets/{AgentFloorView-XXNgI5Cj.js → AgentFloorView-YT-Jjccf.js} +1 -1
- package/dist/client/assets/{AgentInfoScreen-CimdOnZ9.js → AgentInfoScreen-Dr99gQEZ.js} +1 -1
- package/dist/client/assets/{AgentLaneCard-Z-aOBR3W.js → AgentLaneCard-DI2iW9zO.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-CyhA1reW.js → AgentLaneChrome-D8bARHMx.js} +1 -1
- package/dist/client/assets/{AgentLaneDetailSheet-BNzjMjIH.js → AgentLaneDetailSheet-52un7dKC.js} +1 -1
- package/dist/client/assets/{AgentLaneSummaryResize-Box8-_rS.js → AgentLaneSummaryResize-CEBjmPTa.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-Dgcm7zd_.js +1 -0
- package/dist/client/assets/AgentLanesPreflight-q20mTjms.js +1 -0
- package/dist/client/assets/AgentLanesView-CetZZDyF.js +2 -0
- package/dist/client/assets/{AgentLiveActions-BwuzOE8h.js → AgentLiveActions-DrEJDJef.js} +1 -1
- package/dist/client/assets/AgentMasterScreen-DJPnstoD.js +1 -0
- package/dist/client/assets/{AgentSessions-CsZwoukw.js → AgentSessions-DCPCG4xb.js} +1 -1
- package/dist/client/assets/{AgentsConsole-KCao4XmX.js → AgentsConsole-CsYOoFJi.js} +1 -1
- package/dist/client/assets/{AgentsScreen-CtPAmwRX.js → AgentsScreen-k8LvBuU_.js} +1 -1
- package/dist/client/assets/AgentsSubnav-C4xpQhsv.js +1 -0
- package/dist/client/assets/{AstronautSuit-Ckx7lu7G.js → AstronautSuit-DbjQtfD_.js} +1 -1
- package/dist/client/assets/{AtopView-DYlpgEHf.js → AtopView-Daq_ob3z.js} +1 -1
- package/dist/client/assets/{BackToPicker-4JaeRvDm.js → BackToPicker-CXZjBRAe.js} +1 -1
- package/dist/client/assets/{BriefingDetailScreen-D6-xqrpo.js → BriefingDetailScreen-CUCXO-KH.js} +1 -1
- package/dist/client/assets/{BriefingsScreen-DKxSDEmk.js → BriefingsScreen-B5oMTGKv.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-BbREmsbK.js → BrokerMetadataPanel-BsiU8lTD.js} +1 -1
- package/dist/client/assets/{BrokerScreen-fbPIouMw.js → BrokerScreen-BPbOHhCS.js} +1 -1
- package/dist/client/assets/{CastPicker-BcA2vDDV.js → CastPicker-_5E5hNUe.js} +1 -1
- package/dist/client/assets/ChatCollapsedStrip-D-eXhzPf.js +1 -0
- package/dist/client/assets/{CodeDiffPane-Cn8Y9hAt.js → CodeDiffPane-n7W4iGUG.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-nPFktrco.js → CodeProjectPicker-CMsbSTDq.js} +1 -1
- package/dist/client/assets/{CodeScreen-BlAxtxE5.js → CodeScreen-CeuO3EhR.js} +1 -1
- package/dist/client/assets/{ConversationComposer-2HjbGPL9.js → ConversationComposer-CXPKx86g.js} +1 -1
- package/dist/client/assets/{ConversationFeedRows-C6wUqJrx.js → ConversationFeedRows-WrH-YI3L.js} +1 -1
- package/dist/client/assets/{ConversationHeader-C8vfXaTF.js → ConversationHeader-BQWzGzLK.js} +1 -1
- package/dist/client/assets/{ConversationPanels-CNCIbpqU.js → ConversationPanels-Dujvnmup.js} +2 -2
- package/dist/client/assets/ConversationScreen-CR9pWB65.js +2 -0
- package/dist/client/assets/{ConversationStatus-DZuyKsWN.js → ConversationStatus-DVzSb2Hv.js} +1 -1
- package/dist/client/assets/{CrewAvatar-CTIuxp4G.js → CrewAvatar-BwXjyg8N.js} +1 -1
- package/dist/client/assets/CrewWorkspaces-CkQDhyie.css +1 -0
- package/dist/client/assets/CrewWorkspaces-NKujRzwh.js +1 -0
- package/dist/client/assets/{DataTable-6IDhanr5.js → DataTable-Bp8tU9AK.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-DC1u9itO.js → DispatchAftermath-B-6rmXzL.js} +1 -1
- package/dist/client/assets/{DocumentFocusViewer-DZVhS7as.js → DocumentFocusViewer-Do3wQ_3Z.js} +1 -1
- package/dist/client/assets/{EmbeddableSurfacesLab-BKUFJMCV.js → EmbeddableSurfacesLab-C1orRyP9.js} +1 -1
- package/dist/client/assets/{EmptyState-CeBl0iGd.js → EmptyState-CJzXj1l5.js} +1 -1
- package/dist/client/assets/{FileViewerPane-DQlpNt2S.js → FileViewerPane-Df6VzXjA.js} +1 -1
- package/dist/client/assets/FlightObserveScreen-6mGnmWQA.js +1 -0
- package/dist/client/assets/{FollowScreen-BXHOp3gb.js → FollowScreen-DvnxYLVh.js} +1 -1
- package/dist/client/assets/{HarnessMark-D5CA5uSp.js → HarnessMark-B979GCSB.js} +1 -1
- package/dist/client/assets/{HarnessesScreen-DhFXq1qz.js → HarnessesScreen-CHTuv8p6.js} +1 -1
- package/dist/client/assets/{HerdrSession-BRhs5LIR.js → HerdrSession-B3McuYgi.js} +1 -1
- package/dist/client/assets/{HomeHero-DMABJuze.js → HomeHero-CdUVPjkG.js} +1 -1
- package/dist/client/assets/{HostAdvisorView-RAociATV.js → HostAdvisorView-Bok5Sk5c.js} +1 -1
- package/dist/client/assets/{KnowledgeSearchInspector-CZPyVNSw.js → KnowledgeSearchInspector-B7XSoJsu.js} +1 -1
- package/dist/client/assets/{KnowledgeSearchScreen-mGTKIg00.js → KnowledgeSearchScreen-D3o3IODW.js} +1 -1
- package/dist/client/assets/{LaneToolHoverCard-D_DMlBeT.js → LaneToolHoverCard-HByf2ndx.js} +1 -1
- package/dist/client/assets/{LaneTraceDetailSheet-BEHg3LmH.js → LaneTraceDetailSheet-BUgHz-sd.js} +1 -1
- package/dist/client/assets/{LaneTraceEventFocus-DVimcizS.js → LaneTraceEventFocus-DM-hoPxG.js} +1 -1
- package/dist/client/assets/{MeshCanvas-BOuZx4AM.js → MeshCanvas-DCLJRsBy.js} +1 -1
- package/dist/client/assets/{MeshCanvasMinimap-wL-1N94e.js → MeshCanvasMinimap-cEFS9eW7.js} +1 -1
- package/dist/client/assets/{MeshScreen-DMY9Bmh5.js → MeshScreen-BcxPkhm6.js} +1 -1
- package/dist/client/assets/{MeshTopologyView-DiDcX5f4.js → MeshTopologyView-CCRPd8PU.js} +2 -2
- package/dist/client/assets/MessagesScreen-Bb5l13MO.js +1 -0
- package/dist/client/assets/{MissionContextRail-DrNKXG5u.js → MissionContextRail-DF0_kiU7.js} +1 -1
- package/dist/client/assets/{MissionControlView-ByBlHVN8.js → MissionControlView-E3V7bENU.js} +1 -1
- package/dist/client/assets/{MissionFocusOverlay-D1i6R6Zt.js → MissionFocusOverlay-h15sQFvP.js} +1 -1
- package/dist/client/assets/{MissionLeftAgentRow-DN9NcCML.js → MissionLeftAgentRow-KPdk9rSa.js} +1 -1
- package/dist/client/assets/{MissionLogPane-DSeIv3Xo.js → MissionLogPane-BbdDKjUl.js} +1 -1
- package/dist/client/assets/{NewAgentModal-V7yK6J6j.js → NewAgentModal-DfHxad34.js} +1 -1
- package/dist/client/assets/NewChatComposer-_Stj0fZy.js +19 -0
- package/dist/client/assets/{NewChatOrigin-DdpzE4kz.js → NewChatOrigin-B1u7ki70.js} +1 -1
- package/dist/client/assets/{ObserveEmbedScreen-l_Q3ts2q.js → ObserveEmbedScreen-Co0xTii6.js} +1 -1
- package/dist/client/assets/{ObserveTextFlow-BSEtYTxU.js → ObserveTextFlow-ZQWwrK3i.js} +2 -2
- package/dist/client/assets/{ObservedTopologyPanel-CdGUXxGR.js → ObservedTopologyPanel-BJUhDSuQ.js} +1 -1
- package/dist/client/assets/{OpenScoutAppShell-DN8dOSK4.js → OpenScoutAppShell-CUd2yOLu.js} +25 -25
- package/dist/client/assets/{OpsAgentsView-ntGr4pz4.js → OpsAgentsView-DI5wu1si.js} +1 -1
- package/dist/client/assets/OpsScreen-D8fQafCl.js +1 -0
- package/dist/client/assets/OpsSubnav-1K4Jaf__.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-Bdjd_dAx.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-BQET-qrY.js → ProjectAgentProfileBar-k2QHHHsQ.js} +1 -1
- package/dist/client/assets/{ProjectAgentProfileHero-Ck8mThtx.js → ProjectAgentProfileHero-Bpxk1ui2.js} +1 -1
- package/dist/client/assets/ProjectsInbox-C_bMHLCc.js +2 -0
- package/dist/client/assets/ProjectsRail-J-aH_pxT.js +1 -0
- package/dist/client/assets/ProjectsScreen-cVUkGbPz.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-_ourdM-Q.js +1 -0
- package/dist/client/assets/{Provider-B2xuo3rf.js → Provider-CtXJeLrP.js} +1 -1
- package/dist/client/assets/{RailRow-B-GycCBx.js → RailRow-CEH2MFBw.js} +1 -1
- package/dist/client/assets/{RawSessionsTable-AQThi6sm.js → RawSessionsTable-CDyrom-F.js} +1 -1
- package/dist/client/assets/RealtimeVoiceScreen-DBl3DN1H.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-DXWoRF_c.js → RepoDiffEmbedScreen-kY2pHjIs.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-D_274ExO.js → RepoDiffPageScreen-C6LhoKrn.js} +1 -1
- package/dist/client/assets/{RepoDiffViewer-DbedmHDX.js → RepoDiffViewer-BhcIIQQg.js} +1 -1
- package/dist/client/assets/{RepoDiffViewerLazy-C0--fPtk.js → RepoDiffViewerLazy-Csy_j9LD.js} +2 -2
- package/dist/client/assets/{ReposScreen-D39_YG4H.js → ReposScreen-B_cB0zu7.js} +1 -1
- package/dist/client/assets/ScoutDeckSurface-CSy_fjcG.js +1 -0
- package/dist/client/assets/{ScoutSurface-UsRy0t-I.js → ScoutSurface-CQVcSrin.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-Fmdfboxs.js → ScoutbotFxLab-DqGiLYNy.js} +1 -1
- package/dist/client/assets/{SecondaryNav-o2RL9H8H.js → SecondaryNav-BR4VRdgh.js} +1 -1
- package/dist/client/assets/SessionEmbedScreen-BTlZ9gAg.js +1 -0
- package/dist/client/assets/{SessionObserve-Dsd0j05N.js → SessionObserve-dQDN23pP.js} +1 -1
- package/dist/client/assets/{SessionObserveEvidence-DopQYDkD.js → SessionObserveEvidence-BRBGKAgd.js} +1 -1
- package/dist/client/assets/SessionRefScreen-COVQMbtE.js +1 -0
- package/dist/client/assets/SessionsScreen--5OJ3p3v.js +1 -0
- package/dist/client/assets/{SettingsDrawer-_AwuopMS.js → SettingsDrawer-RGVK_bmE.js} +1 -1
- package/dist/client/assets/{SettingsScreen-Cw4DDfJP.js → SettingsScreen-CCxzy5IU.js} +1 -1
- package/dist/client/assets/{ShikiPane-BfHc_3pM.js → ShikiPane-DYI9Hkge.js} +1 -1
- package/dist/client/assets/{SlidePanel-C-q7XwTa.js → SlidePanel-B9ugxWgA.js} +1 -1
- package/dist/client/assets/{SpriteAvatar-Bs68ZENy.js → SpriteAvatar-z5hHesx9.js} +1 -1
- package/dist/client/assets/{StatusPill-ZZQwxB1a.js → StatusPill-BFvMjmZV.js} +1 -1
- package/dist/client/assets/{TailView-Q4FVMsUH.js → TailView-0uEIj2JH.js} +1 -1
- package/dist/client/assets/{Terminal-D7zqHwHV.js → Terminal-DouZeNxc.js} +1 -1
- package/dist/client/assets/{TerminalEmbedScreen-CXIJ7qv6.js → TerminalEmbedScreen-dMNUbzXr.js} +1 -1
- package/dist/client/assets/{TerminalHeaderMount-BnBLOPbb.js → TerminalHeaderMount-BL07cd0q.js} +1 -1
- package/dist/client/assets/{TextDocumentSurface-CKQP-cBT.js → TextDocumentSurface-BflAwXeZ.js} +1 -1
- package/dist/client/assets/{TmuxPeek-V9dGESfO.js → TmuxPeek-BTnjOQi0.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-k7sbLXx2.js → VoicePermissionsPanel-CgQ6GGS-.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-60p9litn.js → WorkDetailScreen-CaLG-zDs.js} +1 -1
- package/dist/client/assets/{WorkFilesViewer-BjJS7GyM.js → WorkFilesViewer-B9Sil_No.js} +1 -1
- package/dist/client/assets/{activity-Bj3Hnbj3.js → activity-DcrMApUY.js} +1 -1
- package/dist/client/assets/{addon-fit-BL-NTWRU.js → addon-fit-DMVrz5Sv.js} +1 -1
- package/dist/client/assets/{addon-webgl-CIMgmNjg.js → addon-webgl-BYvpZUyu.js} +1 -1
- package/dist/client/assets/{agent-autocomplete-DXlvdc4b.js → agent-autocomplete-B-5QTeas.js} +1 -1
- package/dist/client/assets/{agent-essentials-BOMHR0_U.js → agent-essentials-D7KRGYvF.js} +1 -1
- package/dist/client/assets/{agent-lane-card-model-CTLxf3R4.js → agent-lane-card-model-CNZMPkhc.js} +1 -1
- package/dist/client/assets/{agent-lanes-model-AfrjRNK5.js → agent-lanes-model-DXqjs0OK.js} +2 -2
- package/dist/client/assets/agent-master-I1W-5d-x.css +1 -0
- package/dist/client/assets/agent-master-model-DqjrVI2h.js +1 -0
- package/dist/client/assets/{agent-specialization-BIPIBW8u.js → agent-specialization-BujJVUTD.js} +1 -1
- package/dist/client/assets/{arc.es-IR5r6sj_.js → arc.es-NHqHWohb.js} +1 -1
- package/dist/client/assets/{arrow-down-BydciYFZ.js → arrow-down-CKtSUjmW.js} +1 -1
- package/dist/client/assets/{arrow-left-CghA0kTw.js → arrow-left-Czpf-AE4.js} +1 -1
- package/dist/client/assets/{arrow-right-iJFv3jNh.js → arrow-right-BuzMnLYP.js} +1 -1
- package/dist/client/assets/{arrow-up-right-CCfZXPqD.js → arrow-up-right-C6Wl-1uw.js} +1 -1
- package/dist/client/assets/{bot-B5sub1-i.js → bot-rd0awxD3.js} +1 -1
- package/dist/client/assets/{check-C18YQC90.js → check-ofKUE8yH.js} +1 -1
- package/dist/client/assets/{chevron-down-Mp9mu_yd.js → chevron-down-wciXnOQz.js} +1 -1
- package/dist/client/assets/{chevron-right-CzH-TaSF.js → chevron-right-D-HdlPg8.js} +1 -1
- package/dist/client/assets/{chunk-HRAB3GC3-swV8PA2k.js → chunk-HRAB3GC3-Tyv9rzx7.js} +1 -1
- package/dist/client/assets/{chunk-JTPDIGGW-BKXqcLKw.js → chunk-JTPDIGGW-BC2Mandc.js} +3 -3
- package/dist/client/assets/{chunk-T65CQEWV-vYbNJ8E6.js → chunk-T65CQEWV-C1AWTYZZ.js} +1 -1
- package/dist/client/assets/{chunk-YOZR3KYS-U65yUmqt.js → chunk-YOZR3KYS-DwHPHa6f.js} +1 -1
- package/dist/client/assets/{clock-B4PTFi5m.js → clock-B88r8OrZ.js} +1 -1
- package/dist/client/assets/{code-xml-Jtxsp5d1.js → code-xml-D7pOQM9l.js} +1 -1
- package/dist/client/assets/{compass-0_54-vz3.js → compass-Dt1AMXz2.js} +1 -1
- package/dist/client/assets/content-9K38QchR.js +1 -0
- package/dist/client/assets/content-BRgnyXWh.js +1 -0
- package/dist/client/assets/{content-CHghn-rT.js → content-BWPNyXJ0.js} +1 -1
- package/dist/client/assets/content-BdkI07v3.js +1 -0
- package/dist/client/assets/content-C4oWa8SB.js +1 -0
- package/dist/client/assets/content-C9ijJxyl.js +1 -0
- package/dist/client/assets/content-CFZ4rghn.js +1 -0
- package/dist/client/assets/content-CIqu_Ci_.js +1 -0
- package/dist/client/assets/content-CnJF9DGO.js +1 -0
- package/dist/client/assets/content-CriW8Y8u.js +1 -0
- package/dist/client/assets/content-DDCyPPk_.js +1 -0
- package/dist/client/assets/content-DtcZeh5m.js +1 -0
- package/dist/client/assets/content-U9tsdtle.js +1 -0
- package/dist/client/assets/content-hFLK3CON.js +1 -0
- package/dist/client/assets/{content-DMbawvqU.js → content-nkx0swDe.js} +1 -1
- package/dist/client/assets/content-p00KQrtD.js +1 -0
- package/dist/client/assets/{conversation-icons-BV10B2Me.js → conversation-icons-tp9BX6X2.js} +1 -1
- package/dist/client/assets/{conversation-model-CwF6Y9gx.js → conversation-model-Dc02NsGp.js} +1 -1
- package/dist/client/assets/conversation-motion-features-D9-RmBSq.js +1 -0
- package/dist/client/assets/{copy-Dtpx4FOE.js → copy-CWWAJ75H.js} +1 -1
- package/dist/client/assets/{cpu-BjVis9mc.js → cpu-DrqejfkB.js} +1 -1
- package/dist/client/assets/{createLucideIcon-DXpqZP7I.js → createLucideIcon-DezKXSG2.js} +1 -1
- package/dist/client/assets/{ctx-panel-D_HJ3nhb.css → ctx-panel-F05jXK4Q.css} +1 -1
- package/dist/client/assets/discover-C2CZO4Tk.js +2 -0
- package/dist/client/assets/embed-entry-BSMUykuG.js +2 -0
- package/dist/client/assets/{external-link-Ckiyzjwo.js → external-link-Dp_a2vRZ.js} +1 -1
- package/dist/client/assets/{eye-CpfyvdLq.js → eye-BRyD0jno.js} +1 -1
- package/dist/client/assets/{file-code-corner-7mo7EviR.js → file-code-corner-muIVH_xO.js} +1 -1
- package/dist/client/assets/{file-text-KijGBnME.js → file-text-CqJgwxmv.js} +1 -1
- package/dist/client/assets/{gauge-y-Xg8Mrv.js → gauge-hU--hKVP.js} +1 -1
- package/dist/client/assets/{gestures-Bq9XnSqY.js → gestures-DN4hEeqv.js} +1 -1
- package/dist/client/assets/{git-branch-BQ_x8KZL.js → git-branch-CK5v8F2v.js} +1 -1
- package/dist/client/assets/{home-moving-signal-DtRpiNa0.js → home-moving-signal-BjDtEJUP.js} +1 -1
- package/dist/client/assets/{home-now-card-DFb4GOgM.js → home-now-card-nF8OotI-.js} +1 -1
- package/dist/client/assets/{home-now-card-nano-D--m9jpq.js → home-now-card-nano-C-r_bBg5.js} +1 -1
- package/dist/client/assets/{hooks-9d1SoaQA.js → hooks-D46bABUP.js} +1 -1
- package/dist/client/assets/index-CPrU5q04.js +1 -0
- package/dist/client/assets/{index-CZ-05hKz.js → index-DvLtl7rV.js} +5 -5
- package/dist/client/assets/index-kL1WLbeS.js +1 -0
- package/dist/client/assets/index-zvhpRHao.js +1 -0
- package/dist/client/assets/{inspector-panel-C-EhEDYy.js → inspector-panel-Dkc7rLvY.js} +1 -1
- package/dist/client/assets/{keyboard-nav-DFhAJkW3.js → keyboard-nav-BLYDhL3Z.js} +1 -1
- package/dist/client/assets/{lane-roster-store-gUBsydNf.js → lane-roster-store-DOdI1O13.js} +1 -1
- package/dist/client/assets/{layers-CGou-LwV.js → layers-CSsg3JVP.js} +1 -1
- package/dist/client/assets/{layout-grid-BrZt31QH.js → layout-grid-DOChPJdZ.js} +1 -1
- package/dist/client/assets/left-B-SdEJSJ.js +1 -0
- package/dist/client/assets/{left-B_o51JV6.js → left-B3wSE6ql.js} +1 -1
- package/dist/client/assets/{left-CwHZCGO3.js → left-BNRFiRsb.js} +1 -1
- package/dist/client/assets/{left-DA0amyfu.js → left-BggzhgXN.js} +1 -1
- package/dist/client/assets/left-CARCvvxS.js +2 -0
- package/dist/client/assets/left-CpokZYHt.js +1 -0
- package/dist/client/assets/{left-CwLs0okF.js → left-YT7mIGuH.js} +1 -1
- package/dist/client/assets/{left-advisor-DU3s01gk.js → left-advisor-CCY0vkcO.js} +1 -1
- package/dist/client/assets/left-agents-trhO5sL8.js +1 -0
- package/dist/client/assets/{left-default-uvuvDmt0.js → left-default-CG33elBs.js} +1 -1
- package/dist/client/assets/{left-lanes-DnNLgec8.js → left-lanes-CitMgeTp.js} +1 -1
- package/dist/client/assets/{left-mission-DN3-NLPC.js → left-mission-Zl2m_5eU.js} +1 -1
- package/dist/client/assets/{library-DIo5NiGP.js → library-DkALuCh5.js} +1 -1
- package/dist/client/assets/{loader-circle-BiohlpM3.js → loader-circle-pM56HNhR.js} +1 -1
- package/dist/client/assets/{local-agents-wUIaBcEr.js → local-agents-C8xAhbO5.js} +1 -1
- package/dist/client/assets/{mentions-CcPFMbmZ.js → mentions-DG6OQrsc.js} +1 -1
- package/dist/client/assets/{mesh-buckets-ByyFXdKT.js → mesh-buckets-6y3ZIibI.js} +1 -1
- package/dist/client/assets/{mesh-ops-CvGyjK84.js → mesh-ops-BZ1h5RQs.js} +1 -1
- package/dist/client/assets/{mesh-roster-n2nDpEmA.js → mesh-roster-Bc7T4b7z.js} +1 -1
- package/dist/client/assets/{mesh-view-store-BpxGm71b.js → mesh-view-store-ChUOASK8.js} +1 -1
- package/dist/client/assets/{message-circle-B2ddzBrX.js → message-circle-mZCv8tvB.js} +1 -1
- package/dist/client/assets/{message-markup-RkfmDfME.js → message-markup-C2LQDm_k.js} +1 -1
- package/dist/client/assets/{message-square-D9YYWE0x.js → message-square-C7t_qtuj.js} +1 -1
- package/dist/client/assets/{message-visibility-DwxgcgYK.js → message-visibility-CGOmSSKs.js} +1 -1
- package/dist/client/assets/{mission-control-store-Bf4b54MV.js → mission-control-store-nDLdUZPA.js} +1 -1
- package/dist/client/assets/{observe-CJRIvOCn.js → observe-BpEm1INu.js} +1 -1
- package/dist/client/assets/{page-status-BptpTdQ-.js → page-status-E5jnk48p.js} +1 -1
- package/dist/client/assets/{paperclip-B1UNGl5d.js → paperclip-C64lkcbM.js} +1 -1
- package/dist/client/assets/{persistent-state-YI-WHSCF.js → persistent-state-EHXw8WNy.js} +1 -1
- package/dist/client/assets/{plus-CuU_X0-8.js → plus-Co-dqKul.js} +1 -1
- package/dist/client/assets/{profile-rY8jO38P.js → profile-APxDsN2P.js} +1 -1
- package/dist/client/assets/projects-inbox-Cg4X2lUQ.js +1 -0
- package/dist/client/assets/projects-inbox-DRBl2N85.css +1 -0
- package/dist/client/assets/{proxy-DnLpZIi9.js → proxy-BiW5suC7.js} +1 -1
- package/dist/client/assets/{radio-Dm1ItnA4.js → radio-BOxBQX-T.js} +1 -1
- package/dist/client/assets/{refresh-cw-BRn9Oxxl.js → refresh-cw-DMxGzDwn.js} +1 -1
- package/dist/client/assets/resolve-panes-DeVJbS9c.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-BQe5J6xF.js +1 -0
- package/dist/client/assets/{right-BJltPRnd.js → right-Bmfd3pjP.js} +1 -1
- package/dist/client/assets/{right-Beh3nCUB.js → right-BqI-nr9G.js} +1 -1
- package/dist/client/assets/{right-D3aTKf1F.js → right-BuCgE0fZ.js} +1 -1
- package/dist/client/assets/{right-Shpw_xDy.js → right-BwlW6E57.js} +1 -1
- package/dist/client/assets/{right-CPP7GyOm.js → right-C0ybUw0j.js} +1 -1
- package/dist/client/assets/{right-BbyYdzHn.js → right-CdkcrmeD.js} +1 -1
- package/dist/client/assets/{right-CJnB_Bg7.js → right-CimaAvQN.js} +1 -1
- package/dist/client/assets/{right-C1yumXNx.js → right-CkCCPbCX.js} +1 -1
- package/dist/client/assets/{right-DI1B79nR.js → right-D3eSiy41.js} +1 -1
- package/dist/client/assets/{right-DtsRNX5b.js → right-Dz_xD0Vj.js} +1 -1
- package/dist/client/assets/{rocket-DOwXHKWA.js → rocket-BQm5_CvR.js} +1 -1
- package/dist/client/assets/router-B9vQkNJL.js +1 -0
- package/dist/client/assets/{scope-views-A4_vP97W.js → scope-views-1IYJdl41.js} +1 -1
- package/dist/client/assets/{scout-voice-BhPzrc6P.js → scout-voice-BVUqGhth.js} +1 -1
- package/dist/client/assets/{scoutbot-markdown-jh7tzFB1.js → scoutbot-markdown-BQ_Ee2Ic.js} +1 -1
- package/dist/client/assets/{scroll-text-DO0GQzvN.js → scroll-text-Dze_dXtQ.js} +1 -1
- package/dist/client/assets/{search-D1tJSAWe.js → search-CDko0PKE.js} +1 -1
- package/dist/client/assets/{secondaryNavConfig-B9IF8wXl.js → secondaryNavConfig-BoQ_zYR9.js} +1 -1
- package/dist/client/assets/{selection-bridge-i2S9zpf8.js → selection-bridge-Din6yV3h.js} +1 -1
- package/dist/client/assets/{send-horizontal-CgLppsIC.js → send-horizontal-CSjIm6xg.js} +1 -1
- package/dist/client/assets/{server-Dymv5Emh.js → server-Bzj7lPIx.js} +1 -1
- package/dist/client/assets/{session-catalog-DNaOEzoQ.js → session-catalog-DsaZJXZt.js} +1 -1
- package/dist/client/assets/session-ref-lookup-state-SATH_jAP.js +1 -0
- package/dist/client/assets/{session-table-PTQVoTyc.js → session-table-BQfR7u6r.js} +1 -1
- package/dist/client/assets/{settings-2fC_G9nX.js → settings-Dyvpkb1D.js} +1 -1
- package/dist/client/assets/{sliders-horizontal-BPSMHhbm.js → sliders-horizontal-C8njVwfg.js} +1 -1
- package/dist/client/assets/{sparkles-Dy8p5xN8.js → sparkles-CETYrxGA.js} +1 -1
- package/dist/client/assets/{sse-CiOSzE5n.js → sse-CD9MMUxl.js} +1 -1
- package/dist/client/assets/{tail-events-BMQmSx1n.js → tail-events-Ps8KpKah.js} +1 -1
- package/dist/client/assets/{terminal-yN9xN-h9.js → terminal-9GRS_Qdc.js} +1 -1
- package/dist/client/assets/{terminal-relay-9lhzEp2V.js → terminal-relay-GYMIvKs1.js} +1 -1
- package/dist/client/assets/{terminal-takeover-DANQfTcy.js → terminal-takeover-_Jyys4me.js} +1 -1
- package/dist/client/assets/{text-CnZ0e1-V.js → text-BP3oyl8-.js} +1 -1
- package/dist/client/assets/{text-rLpBg4_z.css → text-BYAFNLNq.css} +1 -1
- package/dist/client/assets/{use-conversation-list-D9BNLfnW.js → use-conversation-list-C9ABzjXI.js} +1 -1
- package/dist/client/assets/use-fleet-active-asks-DAspZQjE.js +1 -0
- package/dist/client/assets/{use-mesh-ops-items-BIvIHlqe.js → use-mesh-ops-items-Dh54ymEp.js} +1 -1
- package/dist/client/assets/{use-reduced-motion-CKkhq9c5.js → use-reduced-motion-x8pJMVrG.js} +1 -1
- package/dist/client/assets/{use-scout-dev-flags-B2KCzPxn.js → use-scout-dev-flags-DhCbiDK3.js} +1 -1
- package/dist/client/assets/{useAgentHoverCard-CHBsxcbp.js → useAgentHoverCard-DoBwV0LX.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-pZe2Zfk1.js +1 -0
- package/dist/client/assets/{usePierreRuntime-DUuXH5yp.js → usePierreRuntime-ejq9dCWV.js} +1 -1
- package/dist/client/assets/{wrench-YcXMlsh2.js → wrench-DjkoAOQt.js} +1 -1
- package/dist/client/assets/{x-e3h2hDsp.js → x-CAbNespN.js} +1 -1
- package/dist/client/assets/{xterm-Byp1Hep_.js → xterm-Cf-ngcGP.js} +1 -1
- package/dist/client/assets/{zap-nMcjPoWB.js → zap-Cq8eWkcF.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/drizzle/0009_old_korg.sql +72 -0
- package/dist/drizzle/0010_sparkling_colonel_america.sql +2 -0
- package/dist/drizzle/0011_funny_onslaught.sql +4 -0
- package/dist/drizzle/0012_high_blazing_skull.sql +16 -0
- package/dist/drizzle/0013_perfect_juggernaut.sql +1 -0
- package/dist/drizzle/0014_legal_meggan.sql +6 -0
- package/dist/drizzle/0015_lame_marvel_boy.sql +12 -0
- package/dist/drizzle/0016_early_goliath.sql +6 -0
- package/dist/drizzle/meta/0009_snapshot.json +6262 -0
- package/dist/drizzle/meta/0010_snapshot.json +6286 -0
- package/dist/drizzle/meta/0011_snapshot.json +6337 -0
- package/dist/drizzle/meta/0012_snapshot.json +6458 -0
- package/dist/drizzle/meta/0013_snapshot.json +6465 -0
- package/dist/drizzle/meta/0014_snapshot.json +6503 -0
- package/dist/drizzle/meta/0015_snapshot.json +6596 -0
- package/dist/drizzle/meta/0016_snapshot.json +6611 -0
- package/dist/drizzle/meta/_journal.json +56 -0
- package/dist/main.mjs +1311 -363
- package/dist/node/main.mjs +314 -12
- package/dist/pairing-runtime-controller.mjs +608 -108
- package/dist/runtime/base-daemon.mjs +30 -3
- package/dist/runtime/broker-daemon.mjs +4771 -529
- package/dist/runtime/broker-process-manager.mjs +23 -2
- package/dist/runtime/mesh-discover.mjs +23 -2
- package/dist/scout-control-plane-web.mjs +1914 -478
- package/package.json +25 -6
- package/dist/client/assets/AgentLanesEmbedScreen-BmLnN4on.js +0 -1
- package/dist/client/assets/AgentLanesPreflight-5B6sXvRB.js +0 -1
- package/dist/client/assets/AgentLanesView-DHyzVBk6.js +0 -2
- package/dist/client/assets/AgentsSubnav-CDMjKeYC.js +0 -1
- package/dist/client/assets/ChatCollapsedStrip-Ycm0ecaX.js +0 -1
- package/dist/client/assets/ConversationScreen-BNULZAp2.js +0 -2
- package/dist/client/assets/CrewWorkspaces-CJhBKVoZ.css +0 -1
- package/dist/client/assets/CrewWorkspaces-CkPYIA46.js +0 -1
- package/dist/client/assets/FlightObserveScreen-CDWGSKZg.js +0 -1
- package/dist/client/assets/MessagesScreen-Eulveud3.js +0 -1
- package/dist/client/assets/NewChatComposer-hlWT-nbR.js +0 -19
- package/dist/client/assets/OpsScreen-Ppen_Lmj.js +0 -1
- package/dist/client/assets/OpsSubnav-GAKsoSor.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-BLlp2e6t.js +0 -1
- package/dist/client/assets/ProjectsInbox-Dlt8OQ8O.js +0 -2
- package/dist/client/assets/ProjectsRail-DCfNMmnW.js +0 -1
- package/dist/client/assets/ProjectsScreen-BP-hmI1m.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-CWpMjGIH.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-D7zZHK_t.js +0 -1
- package/dist/client/assets/ScoutDeckSurface-CKT3qdqY.js +0 -1
- package/dist/client/assets/SessionEmbedScreen-RD5XOx7R.js +0 -1
- package/dist/client/assets/SessionRefScreen-B_cTv47v.js +0 -1
- package/dist/client/assets/SessionsScreen-Bq0Z77On.js +0 -1
- package/dist/client/assets/archive-BjcGiAy8.js +0 -1
- package/dist/client/assets/content-6RvWTrtk.js +0 -1
- package/dist/client/assets/content-BCgwMUqz.js +0 -1
- package/dist/client/assets/content-Bf2VLhx0.js +0 -1
- package/dist/client/assets/content-BrU_38-m.js +0 -1
- package/dist/client/assets/content-BvvJN8rN.js +0 -1
- package/dist/client/assets/content-CAeEqYPw.js +0 -1
- package/dist/client/assets/content-CI_Z9DXk.js +0 -1
- package/dist/client/assets/content-CbyKONhW.js +0 -1
- package/dist/client/assets/content-Czogvp43.js +0 -1
- package/dist/client/assets/content-DFk0zNzX.js +0 -1
- package/dist/client/assets/content-DHe4DgkA.js +0 -1
- package/dist/client/assets/content-DTz7cKjo.js +0 -1
- package/dist/client/assets/content-E3kudY-W.js +0 -1
- package/dist/client/assets/content-LpO0aO_U.js +0 -1
- package/dist/client/assets/conversation-motion-features-BKkCRaWR.js +0 -1
- package/dist/client/assets/discover-CHbrEItO.js +0 -2
- package/dist/client/assets/embed-entry-vil28MyU.js +0 -2
- package/dist/client/assets/index-BVlMw8x_.js +0 -1
- package/dist/client/assets/index-Cn0GR-q1.js +0 -1
- package/dist/client/assets/index-DosI4AG9.js +0 -1
- package/dist/client/assets/left-BpgWnaah.js +0 -1
- package/dist/client/assets/left-Cx0kv6pe.js +0 -1
- package/dist/client/assets/left-agents-qL5PpUY-.js +0 -1
- package/dist/client/assets/left-z-6CkuBe.js +0 -2
- package/dist/client/assets/projects-inbox-BBs1hG13.css +0 -1
- package/dist/client/assets/projects-inbox-D-zAb9Gp.js +0 -1
- package/dist/client/assets/resolve-panes-DO6LkwhQ.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-CIF288wY.js +0 -1
- package/dist/client/assets/router-DJj2WbDg.js +0 -1
- package/dist/client/assets/use-fleet-active-asks-BeAdcl09.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-D0mUhxTF.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,r as u}from"./index-CZ-05hKz.js";/* empty css */import{AgentLaneCockpitPane as w,cockpitHeightTier as y}from"./AgentLaneSummaryResize-Box8-_rS.js";import{c as $}from"./clipboard-e3fSpeo7.js";import{H as L}from"./HarnessMark-D5CA5uSp.js";function F(){return a.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",className:"s-lane-card-gmark",children:a.jsx("path",{d:"M2 4.2c0-.4.3-.7.7-.7h2.1l1 1h3.5c.4 0 .7.3.7.7V9c0 .4-.3.7-.7.7H2.7c-.4 0-.7-.3-.7-.7V4.2Z",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinejoin:"round"})})}function T(){return a.jsxs("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",className:"s-lane-card-gmark",children:[a.jsx("circle",{cx:"6",cy:"3",r:"1.5",fill:"none",stroke:"currentColor",strokeWidth:"1"}),a.jsx("circle",{cx:"6",cy:"9",r:"1.5",fill:"none",stroke:"currentColor",strokeWidth:"1"}),a.jsx("path",{d:"M6 4.5v3",stroke:"currentColor",strokeWidth:"1"})]})}function W({dir:s}){return a.jsx("span",{className:"s-lane-card-dir","aria-hidden":"true",children:s==="from"?"←":"→"})}function M(){return a.jsxs(a.Fragment,{children:[a.jsx("i",{className:"s-lane-card-gl s-lane-card-gl-t","aria-hidden":"true"}),a.jsx("i",{className:"s-lane-card-gl s-lane-card-gl-b","aria-hidden":"true"}),a.jsx("i",{className:"s-lane-card-gl s-lane-card-gl-l","aria-hidden":"true"}),a.jsx("i",{className:"s-lane-card-gl s-lane-card-gl-r","aria-hidden":"true"})]})}function d({value:s,label:l,side:n}){const[r,e]=u.useState(!1),c=u.useRef(null);u.useEffect(()=>()=>{c.current&&clearTimeout(c.current)},[]);const i=u.useCallback(t=>{t.preventDefault(),t.stopPropagation(),$(s).then(o=>{o&&(e(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>e(!1),1100))})},[s]);return a.jsx("button",{type:"button",className:`s-lane-card-copydot s-lane-card-copydot--${n}${r?" s-lane-card-copydot--done":""}`,onClick:i,title:r?"Copied":`Copy ${l}`,"aria-label":r?`Copied ${l}`:`Copy ${l}`,children:r?a.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:a.jsx("path",{d:"M2.5 6.2 4.8 8.5 9.5 3.8",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}):a.jsxs("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:[a.jsx("rect",{x:"3.4",y:"3.4",width:"5.8",height:"5.8",rx:"1.3",fill:"none",stroke:"currentColor",strokeWidth:"1"}),a.jsx("path",{d:"M2.4 7.2V2.8c0-.4.3-.7.7-.7h4",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})]})})}function N({value:s,label:l,group:n}){const r=!!n&&n.rows.length>0;return a.jsxs("span",{className:`s-lane-card-instr${r?" s-lane-card-instr--pop":""}`,children:[a.jsx("span",{className:"s-lane-card-instr-val",children:s}),a.jsx("span",{className:"s-lane-card-instr-label",children:l}),r&&a.jsxs("span",{className:"s-lane-card-pop",role:"tooltip",children:[a.jsxs("span",{className:"s-lane-card-pop-h",children:[a.jsx("span",{className:"s-lane-card-pop-title",children:l}),a.jsx("span",{className:"s-lane-card-pop-count",children:n.more>0?`top ${n.rows.length} · ${s}`:s})]}),a.jsxs("span",{className:"s-lane-card-pop-list",children:[n.rows.map((e,c)=>a.jsxs("span",{className:"s-lane-card-pop-row",title:e.full??e.text,children:[a.jsx("span",{className:`s-lane-card-pop-mark s-lane-card-pop-mark--${e.tone}`,children:e.mark}),a.jsx("span",{className:"s-lane-card-pop-text",children:e.text})]},`${c}:${e.full||e.text}`)),n.more>0&&a.jsxs("span",{className:"s-lane-card-pop-more",children:["+",n.more," more"]})]})]})]})}function P(s){return s.toLocaleString()}function B(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(s>=1e5?0:1)}k`:`${s}`}function S({usage:s}){return s.dials.length===0?null:a.jsxs("div",{className:"s-lane-card-cockpit-tokens","aria-label":"Token usage",children:[a.jsxs("div",{className:"s-lane-card-cockpit-tokens-head",children:[a.jsxs("span",{className:"s-lane-card-cockpit-tokens-label",children:[a.jsx("span",{className:"s-lane-card-cockpit-tokens-mark","aria-hidden":"true",children:"◎"}),"Tokens"]}),s.total!=null&&a.jsx("span",{className:"s-lane-card-cockpit-tokens-hint",children:B(s.total)})]}),a.jsx("div",{className:"s-lane-card-cockpit-dials",children:s.dials.map(l=>a.jsxs("span",{className:"s-lane-card-cockpit-dial",children:[a.jsx("span",{className:"s-lane-card-cockpit-dial-value",children:P(l.value)}),a.jsx("span",{className:"s-lane-card-cockpit-dial-label",children:l.label})]},l.label))})]})}function I({pops:s}){const l=s.edits.rows.length>0,n=l?s.edits:s.files;if(n.rows.length===0)return null;const r=l?"Files modified":"Files touched";return a.jsxs("div",{className:"s-lane-card-cockpit-files","aria-label":r,children:[a.jsxs("div",{className:"s-lane-card-cockpit-tokens-head",children:[a.jsx("span",{className:"s-lane-card-cockpit-tokens-label",children:r}),a.jsx("span",{className:"s-lane-card-cockpit-tokens-hint",children:n.rows.length+n.more})]}),a.jsxs("div",{className:"s-lane-card-cockpit-files-list",children:[n.rows.map((e,c)=>a.jsxs("span",{className:"s-lane-card-cockpit-file",title:e.full??e.text,children:[a.jsx("span",{className:`s-lane-card-pop-mark s-lane-card-pop-mark--${e.tone}`,children:e.mark}),a.jsx("span",{className:"s-lane-card-cockpit-file-text",children:e.text})]},`${c}:${e.full||e.text}`)),n.more>0&&a.jsxs("span",{className:"s-lane-card-cockpit-file s-lane-card-cockpit-file--more",children:["+",n.more," more"]})]})]})}function g({model:s,cockpitHeight:l=null}){const n=y(l)==="stats";return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"s-lane-card-summary",children:s.head?.placeholder?a.jsxs("div",{className:`s-lane-card-wait${s.working?" s-lane-card-wait--working":""}`,children:[a.jsx("span",{className:"s-lane-card-wait-dot","aria-hidden":"true"}),a.jsx("span",{className:"s-lane-card-wait-label",children:s.head.text})]}):a.jsxs("div",{className:`s-lane-card-current${s.head?.dir?"":" s-lane-card-current--console"}`,children:[s.head?.dir?a.jsx(W,{dir:s.head.dir}):a.jsx("span",{className:"s-lane-card-prompt","aria-hidden":"true",children:"❯"}),a.jsxs("span",{className:"s-lane-card-headwrap",children:[a.jsx("span",{className:"s-lane-card-head-text",children:s.head?.text??"Waiting for trace activity…"}),s.head?.full&&a.jsx("span",{className:"s-lane-card-headpop",role:"tooltip",children:s.head.full})]})]})}),a.jsxs("div",{className:"s-lane-card-accs",children:[a.jsx("div",{className:"s-lane-card-accs-tools",children:s.stats.tools>0?a.jsxs(a.Fragment,{children:[a.jsx(N,{value:s.stats.tools,label:"tools",group:s.pops.tools}),s.stats.edits>0&&a.jsx(N,{value:s.stats.edits,label:"edits",group:s.pops.edits}),s.stats.reads>0&&a.jsx(N,{value:s.stats.reads,label:"reads",group:s.pops.reads}),s.stats.files>0&&a.jsx(N,{value:s.stats.files,label:"files",group:s.pops.files})]}):a.jsx("span",{className:"s-lane-card-accs-empty",children:"no tool activity yet"})}),a.jsxs("div",{className:"s-lane-card-vitals",children:[a.jsxs("span",{className:`s-lane-card-instr s-lane-card-instr--ctx${s.context==null?" s-lane-card-instr--ctx-pending":""}`,title:s.context==null?"Context window — awaiting usage":`Context window ${s.context}% used`,children:[a.jsx("span",{className:"s-lane-card-gauge","aria-hidden":"true",children:a.jsx("span",{className:"s-lane-card-gauge-fill",style:{width:`${s.context??0}%`}})}),a.jsx("span",{className:"s-lane-card-instr-val",children:s.context==null?"—":`${s.context}%`}),a.jsx("span",{className:"s-lane-card-instr-label",children:"ctx"})]}),s.tokens&&a.jsxs("span",{className:"s-lane-card-instr",title:"Tokens currently in context",children:[a.jsx("span",{className:"s-lane-card-instr-val",children:s.tokens}),a.jsx("span",{className:"s-lane-card-instr-label",children:"ctx tokens"})]}),s.turns!=null&&a.jsxs("span",{className:"s-lane-card-instr",children:[a.jsx("span",{className:"s-lane-card-instr-val",children:s.turns}),a.jsx("span",{className:"s-lane-card-instr-label",children:s.turns===1?"turn":"turns"})]})]})]}),n&&(s.tokenUsage?a.jsx(S,{usage:s.tokenUsage}):a.jsx(I,{pops:s.pops}))]})}function V({model:s,avatar:l,trace:n,collapsed:r=!1,onToggleCollapsed:e,onOpen:c,cockpitHeight:i}){const{name:t,harness:o,model:h,effort:k,cwd:p,cwdFull:f,branch:x,sessionId:j,sessionIdFull:v,parentSessionId:m,parentSessionLabel:b}=s;return a.jsxs("section",{className:`s-lane-card${s.working?" s-lane-card--working":""}${r?" s-lane-card--collapsed":""}`,"aria-label":`${t} lane`,children:[c&&a.jsx("button",{type:"button",className:"s-lane-card-hit",onClick:c,"aria-label":`Inspect ${t}`}),a.jsxs("div",{className:"s-lane-card-head",children:[a.jsxs("span",{className:"s-lane-card-anchor s-lane-card-anchor--av",children:[a.jsx(M,{}),l]}),a.jsxs("div",{className:"s-lane-card-ident",children:[a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--trail s-lane-card-namebox",children:[a.jsx("span",{className:"s-lane-card-name s-lane-card-sel",children:t}),s.authority&&a.jsx("span",{className:"s-lane-card-authority",title:s.authority.title,children:s.authority.label}),a.jsx(d,{value:t,label:"agent name",side:"trail"})]}),p&&a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--trail s-lane-card-d s-lane-card-d--strong",title:f??p,children:[a.jsx(F,{}),a.jsx("span",{className:"s-lane-card-val s-lane-card-sel",children:p}),a.jsx(d,{value:f??p,label:"working directory",side:"trail"})]}),x&&a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--trail s-lane-card-d",title:x,children:[a.jsx("span",{className:"s-lane-card-gchar","aria-hidden":"true",children:"⎇"}),a.jsx("span",{className:"s-lane-card-val s-lane-card-sel",children:x}),a.jsx(d,{value:x,label:"branch",side:"trail"})]})]}),a.jsxs("div",{className:"s-lane-card-meta",children:[o&&a.jsx("span",{className:"s-lane-card-anchor s-lane-card-anchor--hm",children:a.jsx(L,{harness:o,size:30,className:"s-lane-card-hmark"})}),a.jsxs("div",{className:"s-lane-card-meta-lines",children:[(h||k)&&a.jsxs("div",{className:"s-lane-card-meta-run",children:[h&&a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--lead s-lane-card-modelwrap",children:[a.jsx("span",{className:"s-lane-card-meta-model s-lane-card-sel",children:h}),a.jsx(d,{value:h,label:"model",side:"lead"})]}),k&&a.jsx("span",{className:"s-lane-card-meta-effort s-lane-card-sel",children:k})]}),(j||m)&&a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--lead s-lane-card-meta-sid",children:[a.jsx(T,{}),j&&a.jsx("span",{className:"s-lane-card-val s-lane-card-sel",children:j}),m&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"s-lane-card-gchar","aria-hidden":"true",children:"↳"}),a.jsx("span",{className:"s-lane-card-val s-lane-card-sel",children:b??m})]}),a.jsx(d,{value:v??m??j??"",label:"session id",side:"lead"})]}),a.jsxs("div",{className:"s-lane-card-meta-foot",children:[s.time&&a.jsxs("span",{className:"s-lane-card-time",children:[a.jsx("span",{className:"s-lane-card-time-dot","aria-hidden":"true"}),s.time]}),e&&a.jsx("button",{type:"button",className:"s-lane-card-caret","aria-label":r?"Expand summary":"Collapse summary","aria-expanded":!r,onClick:C=>{C.stopPropagation(),e()},children:a.jsx("svg",{viewBox:"0 0 10 10",width:"10",height:"10","aria-hidden":"true",children:a.jsx("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})]}),!r&&(i!==void 0?a.jsx(w,{cockpitHeight:i,children:a.jsx(g,{model:s,cockpitHeight:i})}):a.jsx(g,{model:s})),n]})}export{V as AgentLaneCard};
|
|
1
|
+
import{j as a,r as u}from"./index-DvLtl7rV.js";/* empty css */import{AgentLaneCockpitPane as w,cockpitHeightTier as y}from"./AgentLaneSummaryResize-CEBjmPTa.js";import{c as $}from"./clipboard-e3fSpeo7.js";import{H as L}from"./HarnessMark-B979GCSB.js";function F(){return a.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",className:"s-lane-card-gmark",children:a.jsx("path",{d:"M2 4.2c0-.4.3-.7.7-.7h2.1l1 1h3.5c.4 0 .7.3.7.7V9c0 .4-.3.7-.7.7H2.7c-.4 0-.7-.3-.7-.7V4.2Z",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinejoin:"round"})})}function T(){return a.jsxs("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",className:"s-lane-card-gmark",children:[a.jsx("circle",{cx:"6",cy:"3",r:"1.5",fill:"none",stroke:"currentColor",strokeWidth:"1"}),a.jsx("circle",{cx:"6",cy:"9",r:"1.5",fill:"none",stroke:"currentColor",strokeWidth:"1"}),a.jsx("path",{d:"M6 4.5v3",stroke:"currentColor",strokeWidth:"1"})]})}function W({dir:s}){return a.jsx("span",{className:"s-lane-card-dir","aria-hidden":"true",children:s==="from"?"←":"→"})}function M(){return a.jsxs(a.Fragment,{children:[a.jsx("i",{className:"s-lane-card-gl s-lane-card-gl-t","aria-hidden":"true"}),a.jsx("i",{className:"s-lane-card-gl s-lane-card-gl-b","aria-hidden":"true"}),a.jsx("i",{className:"s-lane-card-gl s-lane-card-gl-l","aria-hidden":"true"}),a.jsx("i",{className:"s-lane-card-gl s-lane-card-gl-r","aria-hidden":"true"})]})}function d({value:s,label:l,side:n}){const[r,e]=u.useState(!1),c=u.useRef(null);u.useEffect(()=>()=>{c.current&&clearTimeout(c.current)},[]);const i=u.useCallback(t=>{t.preventDefault(),t.stopPropagation(),$(s).then(o=>{o&&(e(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>e(!1),1100))})},[s]);return a.jsx("button",{type:"button",className:`s-lane-card-copydot s-lane-card-copydot--${n}${r?" s-lane-card-copydot--done":""}`,onClick:i,title:r?"Copied":`Copy ${l}`,"aria-label":r?`Copied ${l}`:`Copy ${l}`,children:r?a.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:a.jsx("path",{d:"M2.5 6.2 4.8 8.5 9.5 3.8",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}):a.jsxs("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:[a.jsx("rect",{x:"3.4",y:"3.4",width:"5.8",height:"5.8",rx:"1.3",fill:"none",stroke:"currentColor",strokeWidth:"1"}),a.jsx("path",{d:"M2.4 7.2V2.8c0-.4.3-.7.7-.7h4",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})]})})}function N({value:s,label:l,group:n}){const r=!!n&&n.rows.length>0;return a.jsxs("span",{className:`s-lane-card-instr${r?" s-lane-card-instr--pop":""}`,children:[a.jsx("span",{className:"s-lane-card-instr-val",children:s}),a.jsx("span",{className:"s-lane-card-instr-label",children:l}),r&&a.jsxs("span",{className:"s-lane-card-pop",role:"tooltip",children:[a.jsxs("span",{className:"s-lane-card-pop-h",children:[a.jsx("span",{className:"s-lane-card-pop-title",children:l}),a.jsx("span",{className:"s-lane-card-pop-count",children:n.more>0?`top ${n.rows.length} · ${s}`:s})]}),a.jsxs("span",{className:"s-lane-card-pop-list",children:[n.rows.map((e,c)=>a.jsxs("span",{className:"s-lane-card-pop-row",title:e.full??e.text,children:[a.jsx("span",{className:`s-lane-card-pop-mark s-lane-card-pop-mark--${e.tone}`,children:e.mark}),a.jsx("span",{className:"s-lane-card-pop-text",children:e.text})]},`${c}:${e.full||e.text}`)),n.more>0&&a.jsxs("span",{className:"s-lane-card-pop-more",children:["+",n.more," more"]})]})]})]})}function P(s){return s.toLocaleString()}function B(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(s>=1e5?0:1)}k`:`${s}`}function S({usage:s}){return s.dials.length===0?null:a.jsxs("div",{className:"s-lane-card-cockpit-tokens","aria-label":"Token usage",children:[a.jsxs("div",{className:"s-lane-card-cockpit-tokens-head",children:[a.jsxs("span",{className:"s-lane-card-cockpit-tokens-label",children:[a.jsx("span",{className:"s-lane-card-cockpit-tokens-mark","aria-hidden":"true",children:"◎"}),"Tokens"]}),s.total!=null&&a.jsx("span",{className:"s-lane-card-cockpit-tokens-hint",children:B(s.total)})]}),a.jsx("div",{className:"s-lane-card-cockpit-dials",children:s.dials.map(l=>a.jsxs("span",{className:"s-lane-card-cockpit-dial",children:[a.jsx("span",{className:"s-lane-card-cockpit-dial-value",children:P(l.value)}),a.jsx("span",{className:"s-lane-card-cockpit-dial-label",children:l.label})]},l.label))})]})}function I({pops:s}){const l=s.edits.rows.length>0,n=l?s.edits:s.files;if(n.rows.length===0)return null;const r=l?"Files modified":"Files touched";return a.jsxs("div",{className:"s-lane-card-cockpit-files","aria-label":r,children:[a.jsxs("div",{className:"s-lane-card-cockpit-tokens-head",children:[a.jsx("span",{className:"s-lane-card-cockpit-tokens-label",children:r}),a.jsx("span",{className:"s-lane-card-cockpit-tokens-hint",children:n.rows.length+n.more})]}),a.jsxs("div",{className:"s-lane-card-cockpit-files-list",children:[n.rows.map((e,c)=>a.jsxs("span",{className:"s-lane-card-cockpit-file",title:e.full??e.text,children:[a.jsx("span",{className:`s-lane-card-pop-mark s-lane-card-pop-mark--${e.tone}`,children:e.mark}),a.jsx("span",{className:"s-lane-card-cockpit-file-text",children:e.text})]},`${c}:${e.full||e.text}`)),n.more>0&&a.jsxs("span",{className:"s-lane-card-cockpit-file s-lane-card-cockpit-file--more",children:["+",n.more," more"]})]})]})}function g({model:s,cockpitHeight:l=null}){const n=y(l)==="stats";return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"s-lane-card-summary",children:s.head?.placeholder?a.jsxs("div",{className:`s-lane-card-wait${s.working?" s-lane-card-wait--working":""}`,children:[a.jsx("span",{className:"s-lane-card-wait-dot","aria-hidden":"true"}),a.jsx("span",{className:"s-lane-card-wait-label",children:s.head.text})]}):a.jsxs("div",{className:`s-lane-card-current${s.head?.dir?"":" s-lane-card-current--console"}`,children:[s.head?.dir?a.jsx(W,{dir:s.head.dir}):a.jsx("span",{className:"s-lane-card-prompt","aria-hidden":"true",children:"❯"}),a.jsxs("span",{className:"s-lane-card-headwrap",children:[a.jsx("span",{className:"s-lane-card-head-text",children:s.head?.text??"Waiting for trace activity…"}),s.head?.full&&a.jsx("span",{className:"s-lane-card-headpop",role:"tooltip",children:s.head.full})]})]})}),a.jsxs("div",{className:"s-lane-card-accs",children:[a.jsx("div",{className:"s-lane-card-accs-tools",children:s.stats.tools>0?a.jsxs(a.Fragment,{children:[a.jsx(N,{value:s.stats.tools,label:"tools",group:s.pops.tools}),s.stats.edits>0&&a.jsx(N,{value:s.stats.edits,label:"edits",group:s.pops.edits}),s.stats.reads>0&&a.jsx(N,{value:s.stats.reads,label:"reads",group:s.pops.reads}),s.stats.files>0&&a.jsx(N,{value:s.stats.files,label:"files",group:s.pops.files})]}):a.jsx("span",{className:"s-lane-card-accs-empty",children:"no tool activity yet"})}),a.jsxs("div",{className:"s-lane-card-vitals",children:[a.jsxs("span",{className:`s-lane-card-instr s-lane-card-instr--ctx${s.context==null?" s-lane-card-instr--ctx-pending":""}`,title:s.context==null?"Context window — awaiting usage":`Context window ${s.context}% used`,children:[a.jsx("span",{className:"s-lane-card-gauge","aria-hidden":"true",children:a.jsx("span",{className:"s-lane-card-gauge-fill",style:{width:`${s.context??0}%`}})}),a.jsx("span",{className:"s-lane-card-instr-val",children:s.context==null?"—":`${s.context}%`}),a.jsx("span",{className:"s-lane-card-instr-label",children:"ctx"})]}),s.tokens&&a.jsxs("span",{className:"s-lane-card-instr",title:"Tokens currently in context",children:[a.jsx("span",{className:"s-lane-card-instr-val",children:s.tokens}),a.jsx("span",{className:"s-lane-card-instr-label",children:"ctx tokens"})]}),s.turns!=null&&a.jsxs("span",{className:"s-lane-card-instr",children:[a.jsx("span",{className:"s-lane-card-instr-val",children:s.turns}),a.jsx("span",{className:"s-lane-card-instr-label",children:s.turns===1?"turn":"turns"})]})]})]}),n&&(s.tokenUsage?a.jsx(S,{usage:s.tokenUsage}):a.jsx(I,{pops:s.pops}))]})}function V({model:s,avatar:l,trace:n,collapsed:r=!1,onToggleCollapsed:e,onOpen:c,cockpitHeight:i}){const{name:t,harness:o,model:h,effort:k,cwd:p,cwdFull:f,branch:x,sessionId:j,sessionIdFull:v,parentSessionId:m,parentSessionLabel:b}=s;return a.jsxs("section",{className:`s-lane-card${s.working?" s-lane-card--working":""}${r?" s-lane-card--collapsed":""}`,"aria-label":`${t} lane`,children:[c&&a.jsx("button",{type:"button",className:"s-lane-card-hit",onClick:c,"aria-label":`Inspect ${t}`}),a.jsxs("div",{className:"s-lane-card-head",children:[a.jsxs("span",{className:"s-lane-card-anchor s-lane-card-anchor--av",children:[a.jsx(M,{}),l]}),a.jsxs("div",{className:"s-lane-card-ident",children:[a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--trail s-lane-card-namebox",children:[a.jsx("span",{className:"s-lane-card-name s-lane-card-sel",children:t}),s.authority&&a.jsx("span",{className:"s-lane-card-authority",title:s.authority.title,children:s.authority.label}),a.jsx(d,{value:t,label:"agent name",side:"trail"})]}),p&&a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--trail s-lane-card-d s-lane-card-d--strong",title:f??p,children:[a.jsx(F,{}),a.jsx("span",{className:"s-lane-card-val s-lane-card-sel",children:p}),a.jsx(d,{value:f??p,label:"working directory",side:"trail"})]}),x&&a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--trail s-lane-card-d",title:x,children:[a.jsx("span",{className:"s-lane-card-gchar","aria-hidden":"true",children:"⎇"}),a.jsx("span",{className:"s-lane-card-val s-lane-card-sel",children:x}),a.jsx(d,{value:x,label:"branch",side:"trail"})]})]}),a.jsxs("div",{className:"s-lane-card-meta",children:[o&&a.jsx("span",{className:"s-lane-card-anchor s-lane-card-anchor--hm",children:a.jsx(L,{harness:o,size:30,className:"s-lane-card-hmark"})}),a.jsxs("div",{className:"s-lane-card-meta-lines",children:[(h||k)&&a.jsxs("div",{className:"s-lane-card-meta-run",children:[h&&a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--lead s-lane-card-modelwrap",children:[a.jsx("span",{className:"s-lane-card-meta-model s-lane-card-sel",children:h}),a.jsx(d,{value:h,label:"model",side:"lead"})]}),k&&a.jsx("span",{className:"s-lane-card-meta-effort s-lane-card-sel",children:k})]}),(j||m)&&a.jsxs("span",{className:"s-lane-card-fieldc s-lane-card-fieldc--lead s-lane-card-meta-sid",children:[a.jsx(T,{}),j&&a.jsx("span",{className:"s-lane-card-val s-lane-card-sel",children:j}),m&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"s-lane-card-gchar","aria-hidden":"true",children:"↳"}),a.jsx("span",{className:"s-lane-card-val s-lane-card-sel",children:b??m})]}),a.jsx(d,{value:v??m??j??"",label:"session id",side:"lead"})]}),a.jsxs("div",{className:"s-lane-card-meta-foot",children:[s.time&&a.jsxs("span",{className:"s-lane-card-time",children:[a.jsx("span",{className:"s-lane-card-time-dot","aria-hidden":"true"}),s.time]}),e&&a.jsx("button",{type:"button",className:"s-lane-card-caret","aria-label":r?"Expand summary":"Collapse summary","aria-expanded":!r,onClick:C=>{C.stopPropagation(),e()},children:a.jsx("svg",{viewBox:"0 0 10 10",width:"10",height:"10","aria-hidden":"true",children:a.jsx("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})]}),!r&&(i!==void 0?a.jsx(w,{cockpitHeight:i,children:a.jsx(g,{model:s,cockpitHeight:i})}):a.jsx(g,{model:s})),n]})}export{V as AgentLaneCard};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-DvLtl7rV.js";const p=["sm","md","lg"];function j({title:n,width:l,defaultWidth:c,pinned:s,onTogglePin:h,onWidthChange:d,onResizeStart:m,resizing:r,widthControls:o=!0,statusLabel:t,live:g}){const i=typeof l=="string"?l:c;return e.jsxs("div",{className:`s-agent-lane-chrome${r?" s-agent-lane-chrome--resizing":""}`,children:[e.jsxs("div",{className:"s-agent-lane-chrome-body",children:[e.jsxs("div",{className:"s-agent-lane-chrome-top",children:[e.jsx("button",{type:"button",className:`s-agent-lane-chrome-pin${s?" s-agent-lane-chrome-pin--on":""}`,"aria-pressed":s,title:s?"Unpin lane":"Pin lane",onClick:h,children:e.jsx(u,{filled:s})}),e.jsx("span",{className:"s-agent-lane-chrome-title",title:n,children:n}),t?e.jsxs("span",{className:`s-agent-lane-chrome-status${g?" s-agent-lane-chrome-status--live":""}`,title:t,children:[e.jsx("span",{className:"s-agent-lane-chrome-status-dot","aria-hidden":"true"}),e.jsx("span",{className:"s-agent-lane-chrome-status-label",children:t})]}):null]}),o?e.jsx("div",{className:"s-agent-lane-chrome-widths",role:"group","aria-label":"Lane width",children:p.map(a=>e.jsx("button",{type:"button",className:`s-agent-lane-chrome-width-btn${i===a?" s-agent-lane-chrome-width-btn--on":""}`,"aria-pressed":i===a,title:`${a.toUpperCase()} width`,onClick:()=>d(a),children:a.toUpperCase()},a))}):null]}),o?e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize lane width",title:"Drag to resize lane",className:`s-agent-lane-width-handle${r?" s-agent-lane-width-handle--active":""}`,onPointerDown:m}):null]})}function u({filled:n}){return e.jsx("svg",{viewBox:"0 0 12 12",width:"12",height:"12","aria-hidden":"true",children:e.jsx("path",{d:"M4.2 1.8h3.6l.5 1.8 1.9.8-.2 1.1-1.7.4-.8 3.1H4.3l-.8-3.1-1.7-.4-.2-1.1 1.9-.8.5-1.8Z",fill:n?"currentColor":"none",stroke:"currentColor",strokeWidth:"0.9",strokeLinejoin:"round"})})}export{j as AgentLaneChrome};
|
package/dist/client/assets/{AgentLaneDetailSheet-BNzjMjIH.js → AgentLaneDetailSheet-52un7dKC.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as i,j as e}from"./index-CZ-05hKz.js";import{S as qe}from"./SlidePanel-C-q7XwTa.js";import{a as me}from"./api-Co9aQ2Jw.js";import{A as Ge}from"./AgentAvatar-CYhf6twS.js";import{H as Je}from"./HarnessMark-D5CA5uSp.js";import{t as de}from"./time-Dhsh_2EG.js";import{h as Ke}from"./tail-display-DcliDVkW.js";import{a as Ve}from"./colors-BtO5_zlx.js";import{c as Q}from"./clipboard-e3fSpeo7.js";import{d as Qe,c as Ue}from"./context-budget-DX_fwUs3.js";import{Q as Xe}from"./router-DJj2WbDg.js";import{u as Ye}from"./Provider-B2xuo3rf.js";import{s as Ze,t as es,b as ss}from"./bash-format-BRV5C6Gv.js";import{i as as}from"./keyboard-nav-DFhAJkW3.js";import{o as ie}from"./openContent-C6XO6kr5.js";import{b as ts,f as Ie}from"./agent-lane-preview-BhplDYGf.js";import{i as ns}from"./synthetic-agent-routing-aduMYO7P.js";import{b as $e,c as ls,a as is,l as cs,r as rs,d as os}from"./agent-lane-detail-ppJId6Jc.js";import{l as ds,a as hs,s as us}from"./agent-lanes-model-AfrjRNK5.js";import{E as pe}from"./external-link-Ckiyzjwo.js";async function ms(s){return me("/api/session-control/compact",{method:"POST",body:JSON.stringify(s)})}function Te(s){return ns(s.id)}function ps(s){return $e(s).sessionId?.trim()||null}function Pe(s){const t=ps(s);if(!t)return null;const c=Te(s.agent)?void 0:s.agent.id;return{view:"sessions",sessionId:t,...c?{agentId:c}:{}}}function fs(s){return Pe(s)}function xs(s){return Te(s.agent)?null:{view:"agents-v2",agentId:s.agent.id,tab:"profile"}}const js={created:"+",modified:"~",read:"○"},gs={blocked:"blocked",completed:"done",in_progress:"active",pending:"todo",unknown:"step"},Ae=["s-lane-sheet-vitals","s-lane-sheet-runtime","s-lane-sheet-files","s-lane-sheet-commands","s-lane-sheet-plans","s-lane-sheet-docs"];function he(s){return!!(s&&Ae.includes(s))}function vs(){if(typeof window>"u")return null;const s=window.location.hash.replace(/^#/,"");return he(s)?s:null}function ce(s){return typeof s!="number"||!Number.isFinite(s)?"—":s.toLocaleString()}function Ns(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(s>=1e5?0:1)}k`:`${s}`}function bs(s){const t=s.lastIndexOf("/");return t<0?{dir:"",base:s}:{dir:s.slice(0,t+1),base:s.slice(t+1)}}function ws(s,t){const c=new Map;for(const l of t?.events??[]){if(l.kind!=="tool"||!l.diff||!l.arg)continue;const r=l.arg.trim().split(/[\\/]/).filter(Boolean).pop();if(!r)continue;const u=c.get(r)??{add:0,del:0};u.add+=l.diff.add??0,u.del+=l.diff.del??0,c.set(r,u)}return s.map(l=>{const r=l.path.split(/[\\/]/).filter(Boolean).pop()??l.path,u=c.get(r);return{...l,add:u?.add??0,del:u?.del??0}})}function re(s,t=48){return s?s.length<=t?s:`…${s.slice(-(t-1))}`:"—"}async function ks(s){await me("/api/local-path/reveal",{method:"POST",body:JSON.stringify({path:s.path,...s.basePath?{basePath:s.basePath}:{},...s.agentId?{agentId:s.agentId}:{},...s.sessionId?{sessionId:s.sessionId}:{}})})}function ue(s,t){return s.startsWith("/")||s.startsWith("~/")?s:t?`${t.replace(/\/$/u,"")}/${s}`:s}function U({value:s,label:t}){const[c,l]=i.useState(!1),r=i.useRef(null);i.useEffect(()=>()=>{r.current&&clearTimeout(r.current)},[]);const u=i.useCallback(m=>{m.preventDefault(),m.stopPropagation(),Q(s).then(d=>{d&&(l(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>l(!1),1100))})},[s]);return e.jsx("button",{type:"button",className:`s-lane-sheet-copy${c?" s-lane-sheet-copy--done":""}`,onClick:u,title:c?"Copied":`Copy ${t}`,"aria-label":c?`Copied ${t}`:`Copy ${t}`,children:c?e.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:e.jsx("path",{d:"M2.5 6.2 4.8 8.5 9.5 3.8",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}):e.jsxs("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:[e.jsx("rect",{x:"3.4",y:"3.4",width:"5.8",height:"5.8",rx:"1.3",fill:"none",stroke:"currentColor",strokeWidth:"1"}),e.jsx("path",{d:"M2.4 7.2V2.8c0-.4.3-.7.7-.7h4",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})]})})}function De({path:s,basePath:t,agentId:c,sessionId:l,label:r}){return e.jsx("button",{type:"button",className:"s-lane-sheet-reveal",title:`Reveal ${r} in OS`,"aria-label":`Reveal ${r} in OS`,onClick:u=>{u.preventDefault(),u.stopPropagation(),ks({path:s,basePath:t,agentId:c,sessionId:l}).catch(m=>console.warn("Failed to reveal local path",m))},children:e.jsx(pe,{size:11,strokeWidth:1.6})})}function V({id:s,label:t,count:c,actions:l}){return e.jsxs("div",{className:"s-lane-sheet-sechead",id:s,children:[e.jsx("span",{className:"s-lane-sheet-sechead-label",children:t}),c!=null&&c!==!1&&e.jsx("span",{className:"s-lane-sheet-sechead-count",children:c}),e.jsx("span",{className:"s-lane-sheet-sechead-rule","aria-hidden":"true"}),l&&e.jsx("span",{className:"s-lane-sheet-sechead-actions",children:l})]})}function C({children:s,onClick:t,primary:c=!1,disabled:l=!1}){return e.jsx("button",{type:"button",className:`s-lane-sheet-ghost${c?" s-lane-sheet-ghost--primary":""}`,onClick:t,disabled:l,children:s})}function L({label:s,value:t,title:c,copy:l,reveal:r}){return e.jsxs("div",{className:"s-lane-sheet-meta-row",children:[e.jsx("dt",{children:s}),e.jsxs("dd",{className:"s-lane-sheet-fact",children:[e.jsx("span",{className:"s-lane-sheet-fact-val",title:c??t,children:t}),r&&e.jsx(De,{...r,label:s}),l&&e.jsx(U,{value:l,label:s})]})]})}function oe({file:s,basePath:t,agentId:c,sessionId:l,onOpen:r}){const u=Ie(s),m=s.path,d=ue(m,t),{dir:b,base:B}=bs(m),$=s.add>0||s.del>0;return e.jsxs("div",{className:"s-lane-sheet-frow",title:m,children:[e.jsx("span",{className:`s-lane-sheet-fstate s-lane-sheet-fstate--${s.state}`,"aria-hidden":"true",children:js[s.state]??"○"}),e.jsxs("span",{className:"s-lane-sheet-fpath",children:[b&&e.jsx("span",{className:"s-lane-sheet-fdir",children:b}),e.jsx("span",{className:"s-lane-sheet-fbase",children:B})]}),$&&e.jsxs("span",{className:"s-lane-sheet-fdiff",children:[s.add>0&&e.jsxs("span",{className:"s-lane-sheet-file-add",children:["+",s.add]}),s.del>0&&e.jsxs("span",{className:"s-lane-sheet-file-del",children:["−",s.del]})]}),e.jsxs("span",{className:"s-lane-sheet-frow-acts",children:[e.jsx("button",{type:"button",className:"s-lane-sheet-rowact",title:`Open ${u} in diff`,"aria-label":`Open ${u} in diff`,onClick:()=>r(d),children:e.jsx(pe,{size:11,strokeWidth:1.6})}),e.jsx(De,{path:m,basePath:t,agentId:c,sessionId:l,label:u}),e.jsx(U,{value:m,label:"file path"})]})]})}function ys({entry:s}){const{dir:t,rest:c}=Ze(es(s.command)),l=ss(c||s.command);return e.jsxs("div",{className:"s-lane-sheet-crow",title:s.command,children:[e.jsx("span",{className:"s-lane-sheet-cmark","aria-hidden":"true",children:"❯"}),e.jsxs("span",{className:"s-lane-sheet-ctext",children:[t&&e.jsxs("span",{className:"s-lane-sheet-bash-dir",children:[t,"/"]}),l.map((r,u)=>e.jsxs("span",{className:`s-lane-sheet-bash-${r.tier}${r.known?" s-lane-sheet-bash-prog--known":""}${r.flag?" s-lane-sheet-bash-flag":""}`,children:[u>0?" ":"",r.text]},u))]}),s.outcome&&e.jsx("span",{className:"s-lane-sheet-cresult",children:s.outcome}),e.jsx("span",{className:"s-lane-sheet-crow-acts",children:e.jsx(U,{value:s.command,label:"command"})})]})}function Le({label:s,hint:t,children:c}){const[l,r]=i.useState(!1);return e.jsxs("div",{className:`s-lane-sheet-disc${l?" s-lane-sheet-disc--open":""}`,children:[e.jsxs("button",{type:"button",className:"s-lane-sheet-disc-head","aria-expanded":l,onClick:()=>r(u=>!u),children:[e.jsx("span",{className:`s-lane-sheet-disc-caret${l?" s-lane-sheet-disc-caret--open":""}`,"aria-hidden":"true",children:"›"}),e.jsx("span",{className:"s-lane-sheet-disc-label",children:s}),t!=null&&t!==!1&&e.jsx("span",{className:"s-lane-sheet-disc-hint",children:t})]}),l&&e.jsx("div",{className:"s-lane-sheet-disc-body",children:c})]})}function Cs({plan:s,onOpen:t}){const[c,l]=i.useState(!1),r=s.steps.filter(m=>m.status==="completed").length,u=s.steps.find(m=>m.status==="in_progress");return e.jsxs("div",{className:`s-lane-sheet-plan${c?" s-lane-sheet-plan--open":""}`,children:[e.jsxs("button",{type:"button",className:"s-lane-sheet-plan-head","aria-expanded":c,onClick:()=>l(m=>!m),children:[e.jsx("span",{className:`s-lane-sheet-plan-caret${c?" s-lane-sheet-plan-caret--open":""}`,"aria-hidden":"true",children:"›"}),e.jsx("span",{className:"s-lane-sheet-plan-title",title:s.title,children:s.title}),e.jsxs("span",{className:"s-lane-sheet-plan-tally",children:[r,"/",s.steps.length]})]}),!c&&u&&e.jsxs("div",{className:"s-lane-sheet-plan-now",title:u.text,children:[e.jsx("span",{className:"s-lane-sheet-plan-now-mark","aria-hidden":"true",children:"▸"}),e.jsx("span",{className:"s-lane-sheet-plan-now-text",children:u.text})]}),c&&e.jsxs("div",{className:"s-lane-sheet-plan-steps",children:[s.steps.map(m=>e.jsxs("div",{className:`s-lane-sheet-pstep s-lane-sheet-pstep--${m.status}`,children:[e.jsx("span",{className:"s-lane-sheet-pstep-box","aria-hidden":"true",children:m.status==="completed"?"✓":m.status==="in_progress"?"▸":"○"}),e.jsx("span",{className:"s-lane-sheet-pstep-text",children:m.text})]},m.id)),e.jsx("div",{className:"s-lane-sheet-plan-foot",children:e.jsx(C,{onClick:t,children:"Open in Plans →"})})]})]})}function Ss({document:s,expanded:t,onToggle:c,onOpen:l}){const r=os(s),u=s.steps.length>0;return e.jsxs("article",{className:"s-lane-sheet-doc",children:[e.jsxs("button",{type:"button",className:"s-lane-sheet-doc-head","aria-expanded":t,onClick:c,children:[e.jsx("span",{className:"s-lane-sheet-doc-title",children:s.title}),e.jsxs("span",{className:"s-lane-sheet-doc-meta",children:[u?`${s.steps.length} steps`:Ie(s.path)," · ",de(s.updatedAt)]}),!t&&r&&e.jsx("span",{className:"s-lane-sheet-doc-excerpt",children:r})]}),t&&e.jsxs("div",{className:"s-lane-sheet-doc-body",children:[s.summary&&e.jsx("p",{className:"s-lane-sheet-doc-summary",children:s.summary}),u&&s.steps.length>0&&e.jsx("ol",{className:"s-lane-sheet-doc-steps",children:s.steps.map(m=>e.jsxs("li",{className:`s-lane-sheet-doc-step s-lane-sheet-doc-step--${m.status}`,children:[e.jsx("span",{className:"s-lane-sheet-doc-step-state",children:gs[m.status]}),e.jsx("span",{className:"s-lane-sheet-doc-step-text",children:m.text})]},m.id))}),(s.body||s.rawText)&&e.jsx("pre",{className:"s-lane-sheet-doc-pre",children:s.body||s.rawText}),e.jsx("button",{type:"button",className:"s-lane-sheet-doc-open",onClick:l,children:"Open in Plans"})]})]})}function Ls({lane:s,navigate:t,returnRoute:c,onClose:l,navigationEnabled:r=!0,onPinProject:u,projectPinned:m=!1}){const{agent:d,observe:b,source:B,lastActiveAt:$}=s,{openFilePreview:A}=Ye(),X=i.useMemo(()=>Ve(d.state??null,d),[d]),w=i.useMemo(()=>ts(b,d,{isLive:X}),[b,d,X]),[D,Y]=i.useState(!1),[O,fe]=i.useState([]),[F,xe]=i.useState([]),[Oe,Fe]=i.useState(null),[_,Ee]=i.useState(!1),[Re,je]=i.useState(!1),[z,ge]=i.useState(!1),[ve,Z]=i.useState(null),[x,ee]=i.useState("s-lane-sheet-vitals"),E=i.useRef(null),se=i.useRef(null);i.useEffect(()=>()=>{E.current&&clearTimeout(E.current)},[]);const Ne=i.useCallback(a=>{typeof window>"u"||window.location.hash!==`#${a}`&&Xe({hash:a,replace:!1})},[]),W=i.useCallback(a=>{const h=se.current,f=h?.querySelector(`#${a}`);if(!h||!f)return!1;const g=h.getBoundingClientRect().top,y=f.getBoundingClientRect().top;return h.scrollTop=Math.max(0,h.scrollTop+y-g),ee(a),!0},[]),T=i.useCallback((a,h)=>{a.preventDefault(),W(h)&&Ne(h)},[W,Ne]),H=ds(d,B),Me=hs(d,B),n=i.useMemo(()=>$e(s),[s]),o=s.facts,I=o?.turn?.phase?o.turn.phase==="started":X,ae=ls(s),p=i.useMemo(()=>{const a=o?.touchedFiles.length?o.touchedFiles:is(b,1/0),h=ws(a,b),f=h.filter(v=>v.state==="created"),g=h.filter(v=>v.state==="modified"),y=h.filter(v=>v.state==="read"),M=[...f,...g];return{created:f,modified:g,read:y,changed:M,totalAdd:M.reduce((v,N)=>v+N.add,0),totalDel:M.reduce((v,N)=>v+N.del,0)}},[o,b]),q=p.changed.length+p.read.length,S=i.useMemo(()=>cs(b),[b]),te=i.useMemo(()=>p.changed.map(a=>ue(a.path,n.cwd)).join(`
|
|
1
|
+
import{r as i,j as e}from"./index-DvLtl7rV.js";import{S as qe}from"./SlidePanel-B9ugxWgA.js";import{a as me}from"./api-Co9aQ2Jw.js";import{A as Ge}from"./AgentAvatar-6-KBVKUu.js";import{H as Je}from"./HarnessMark-B979GCSB.js";import{t as de}from"./time-Dhsh_2EG.js";import{h as Ke}from"./tail-display-DcliDVkW.js";import{a as Ve}from"./colors-BtO5_zlx.js";import{c as Q}from"./clipboard-e3fSpeo7.js";import{d as Qe,c as Ue}from"./context-budget-DX_fwUs3.js";import{Q as Xe}from"./router-B9vQkNJL.js";import{u as Ye}from"./Provider-CtXJeLrP.js";import{s as Ze,t as es,b as ss}from"./bash-format-BRV5C6Gv.js";import{i as as}from"./keyboard-nav-BLYDhL3Z.js";import{o as ie}from"./openContent-C6XO6kr5.js";import{b as ts,f as Ie}from"./agent-lane-preview-BhplDYGf.js";import{i as ns}from"./synthetic-agent-routing-aduMYO7P.js";import{b as $e,c as ls,a as is,l as cs,r as rs,d as os}from"./agent-lane-detail-ppJId6Jc.js";import{l as ds,a as hs,s as us}from"./agent-lanes-model-DXqjs0OK.js";import{E as pe}from"./external-link-Dp_a2vRZ.js";async function ms(s){return me("/api/session-control/compact",{method:"POST",body:JSON.stringify(s)})}function Te(s){return ns(s.id)}function ps(s){return $e(s).sessionId?.trim()||null}function Pe(s){const t=ps(s);if(!t)return null;const c=Te(s.agent)?void 0:s.agent.id;return{view:"sessions",sessionId:t,...c?{agentId:c}:{}}}function fs(s){return Pe(s)}function xs(s){return Te(s.agent)?null:{view:"agents-v2",agentId:s.agent.id,tab:"profile"}}const js={created:"+",modified:"~",read:"○"},gs={blocked:"blocked",completed:"done",in_progress:"active",pending:"todo",unknown:"step"},Ae=["s-lane-sheet-vitals","s-lane-sheet-runtime","s-lane-sheet-files","s-lane-sheet-commands","s-lane-sheet-plans","s-lane-sheet-docs"];function he(s){return!!(s&&Ae.includes(s))}function vs(){if(typeof window>"u")return null;const s=window.location.hash.replace(/^#/,"");return he(s)?s:null}function ce(s){return typeof s!="number"||!Number.isFinite(s)?"—":s.toLocaleString()}function Ns(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(s>=1e5?0:1)}k`:`${s}`}function bs(s){const t=s.lastIndexOf("/");return t<0?{dir:"",base:s}:{dir:s.slice(0,t+1),base:s.slice(t+1)}}function ws(s,t){const c=new Map;for(const l of t?.events??[]){if(l.kind!=="tool"||!l.diff||!l.arg)continue;const r=l.arg.trim().split(/[\\/]/).filter(Boolean).pop();if(!r)continue;const u=c.get(r)??{add:0,del:0};u.add+=l.diff.add??0,u.del+=l.diff.del??0,c.set(r,u)}return s.map(l=>{const r=l.path.split(/[\\/]/).filter(Boolean).pop()??l.path,u=c.get(r);return{...l,add:u?.add??0,del:u?.del??0}})}function re(s,t=48){return s?s.length<=t?s:`…${s.slice(-(t-1))}`:"—"}async function ks(s){await me("/api/local-path/reveal",{method:"POST",body:JSON.stringify({path:s.path,...s.basePath?{basePath:s.basePath}:{},...s.agentId?{agentId:s.agentId}:{},...s.sessionId?{sessionId:s.sessionId}:{}})})}function ue(s,t){return s.startsWith("/")||s.startsWith("~/")?s:t?`${t.replace(/\/$/u,"")}/${s}`:s}function U({value:s,label:t}){const[c,l]=i.useState(!1),r=i.useRef(null);i.useEffect(()=>()=>{r.current&&clearTimeout(r.current)},[]);const u=i.useCallback(m=>{m.preventDefault(),m.stopPropagation(),Q(s).then(d=>{d&&(l(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>l(!1),1100))})},[s]);return e.jsx("button",{type:"button",className:`s-lane-sheet-copy${c?" s-lane-sheet-copy--done":""}`,onClick:u,title:c?"Copied":`Copy ${t}`,"aria-label":c?`Copied ${t}`:`Copy ${t}`,children:c?e.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:e.jsx("path",{d:"M2.5 6.2 4.8 8.5 9.5 3.8",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}):e.jsxs("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:[e.jsx("rect",{x:"3.4",y:"3.4",width:"5.8",height:"5.8",rx:"1.3",fill:"none",stroke:"currentColor",strokeWidth:"1"}),e.jsx("path",{d:"M2.4 7.2V2.8c0-.4.3-.7.7-.7h4",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round"})]})})}function De({path:s,basePath:t,agentId:c,sessionId:l,label:r}){return e.jsx("button",{type:"button",className:"s-lane-sheet-reveal",title:`Reveal ${r} in OS`,"aria-label":`Reveal ${r} in OS`,onClick:u=>{u.preventDefault(),u.stopPropagation(),ks({path:s,basePath:t,agentId:c,sessionId:l}).catch(m=>console.warn("Failed to reveal local path",m))},children:e.jsx(pe,{size:11,strokeWidth:1.6})})}function V({id:s,label:t,count:c,actions:l}){return e.jsxs("div",{className:"s-lane-sheet-sechead",id:s,children:[e.jsx("span",{className:"s-lane-sheet-sechead-label",children:t}),c!=null&&c!==!1&&e.jsx("span",{className:"s-lane-sheet-sechead-count",children:c}),e.jsx("span",{className:"s-lane-sheet-sechead-rule","aria-hidden":"true"}),l&&e.jsx("span",{className:"s-lane-sheet-sechead-actions",children:l})]})}function C({children:s,onClick:t,primary:c=!1,disabled:l=!1}){return e.jsx("button",{type:"button",className:`s-lane-sheet-ghost${c?" s-lane-sheet-ghost--primary":""}`,onClick:t,disabled:l,children:s})}function L({label:s,value:t,title:c,copy:l,reveal:r}){return e.jsxs("div",{className:"s-lane-sheet-meta-row",children:[e.jsx("dt",{children:s}),e.jsxs("dd",{className:"s-lane-sheet-fact",children:[e.jsx("span",{className:"s-lane-sheet-fact-val",title:c??t,children:t}),r&&e.jsx(De,{...r,label:s}),l&&e.jsx(U,{value:l,label:s})]})]})}function oe({file:s,basePath:t,agentId:c,sessionId:l,onOpen:r}){const u=Ie(s),m=s.path,d=ue(m,t),{dir:b,base:B}=bs(m),$=s.add>0||s.del>0;return e.jsxs("div",{className:"s-lane-sheet-frow",title:m,children:[e.jsx("span",{className:`s-lane-sheet-fstate s-lane-sheet-fstate--${s.state}`,"aria-hidden":"true",children:js[s.state]??"○"}),e.jsxs("span",{className:"s-lane-sheet-fpath",children:[b&&e.jsx("span",{className:"s-lane-sheet-fdir",children:b}),e.jsx("span",{className:"s-lane-sheet-fbase",children:B})]}),$&&e.jsxs("span",{className:"s-lane-sheet-fdiff",children:[s.add>0&&e.jsxs("span",{className:"s-lane-sheet-file-add",children:["+",s.add]}),s.del>0&&e.jsxs("span",{className:"s-lane-sheet-file-del",children:["−",s.del]})]}),e.jsxs("span",{className:"s-lane-sheet-frow-acts",children:[e.jsx("button",{type:"button",className:"s-lane-sheet-rowact",title:`Open ${u} in diff`,"aria-label":`Open ${u} in diff`,onClick:()=>r(d),children:e.jsx(pe,{size:11,strokeWidth:1.6})}),e.jsx(De,{path:m,basePath:t,agentId:c,sessionId:l,label:u}),e.jsx(U,{value:m,label:"file path"})]})]})}function ys({entry:s}){const{dir:t,rest:c}=Ze(es(s.command)),l=ss(c||s.command);return e.jsxs("div",{className:"s-lane-sheet-crow",title:s.command,children:[e.jsx("span",{className:"s-lane-sheet-cmark","aria-hidden":"true",children:"❯"}),e.jsxs("span",{className:"s-lane-sheet-ctext",children:[t&&e.jsxs("span",{className:"s-lane-sheet-bash-dir",children:[t,"/"]}),l.map((r,u)=>e.jsxs("span",{className:`s-lane-sheet-bash-${r.tier}${r.known?" s-lane-sheet-bash-prog--known":""}${r.flag?" s-lane-sheet-bash-flag":""}`,children:[u>0?" ":"",r.text]},u))]}),s.outcome&&e.jsx("span",{className:"s-lane-sheet-cresult",children:s.outcome}),e.jsx("span",{className:"s-lane-sheet-crow-acts",children:e.jsx(U,{value:s.command,label:"command"})})]})}function Le({label:s,hint:t,children:c}){const[l,r]=i.useState(!1);return e.jsxs("div",{className:`s-lane-sheet-disc${l?" s-lane-sheet-disc--open":""}`,children:[e.jsxs("button",{type:"button",className:"s-lane-sheet-disc-head","aria-expanded":l,onClick:()=>r(u=>!u),children:[e.jsx("span",{className:`s-lane-sheet-disc-caret${l?" s-lane-sheet-disc-caret--open":""}`,"aria-hidden":"true",children:"›"}),e.jsx("span",{className:"s-lane-sheet-disc-label",children:s}),t!=null&&t!==!1&&e.jsx("span",{className:"s-lane-sheet-disc-hint",children:t})]}),l&&e.jsx("div",{className:"s-lane-sheet-disc-body",children:c})]})}function Cs({plan:s,onOpen:t}){const[c,l]=i.useState(!1),r=s.steps.filter(m=>m.status==="completed").length,u=s.steps.find(m=>m.status==="in_progress");return e.jsxs("div",{className:`s-lane-sheet-plan${c?" s-lane-sheet-plan--open":""}`,children:[e.jsxs("button",{type:"button",className:"s-lane-sheet-plan-head","aria-expanded":c,onClick:()=>l(m=>!m),children:[e.jsx("span",{className:`s-lane-sheet-plan-caret${c?" s-lane-sheet-plan-caret--open":""}`,"aria-hidden":"true",children:"›"}),e.jsx("span",{className:"s-lane-sheet-plan-title",title:s.title,children:s.title}),e.jsxs("span",{className:"s-lane-sheet-plan-tally",children:[r,"/",s.steps.length]})]}),!c&&u&&e.jsxs("div",{className:"s-lane-sheet-plan-now",title:u.text,children:[e.jsx("span",{className:"s-lane-sheet-plan-now-mark","aria-hidden":"true",children:"▸"}),e.jsx("span",{className:"s-lane-sheet-plan-now-text",children:u.text})]}),c&&e.jsxs("div",{className:"s-lane-sheet-plan-steps",children:[s.steps.map(m=>e.jsxs("div",{className:`s-lane-sheet-pstep s-lane-sheet-pstep--${m.status}`,children:[e.jsx("span",{className:"s-lane-sheet-pstep-box","aria-hidden":"true",children:m.status==="completed"?"✓":m.status==="in_progress"?"▸":"○"}),e.jsx("span",{className:"s-lane-sheet-pstep-text",children:m.text})]},m.id)),e.jsx("div",{className:"s-lane-sheet-plan-foot",children:e.jsx(C,{onClick:t,children:"Open in Plans →"})})]})]})}function Ss({document:s,expanded:t,onToggle:c,onOpen:l}){const r=os(s),u=s.steps.length>0;return e.jsxs("article",{className:"s-lane-sheet-doc",children:[e.jsxs("button",{type:"button",className:"s-lane-sheet-doc-head","aria-expanded":t,onClick:c,children:[e.jsx("span",{className:"s-lane-sheet-doc-title",children:s.title}),e.jsxs("span",{className:"s-lane-sheet-doc-meta",children:[u?`${s.steps.length} steps`:Ie(s.path)," · ",de(s.updatedAt)]}),!t&&r&&e.jsx("span",{className:"s-lane-sheet-doc-excerpt",children:r})]}),t&&e.jsxs("div",{className:"s-lane-sheet-doc-body",children:[s.summary&&e.jsx("p",{className:"s-lane-sheet-doc-summary",children:s.summary}),u&&s.steps.length>0&&e.jsx("ol",{className:"s-lane-sheet-doc-steps",children:s.steps.map(m=>e.jsxs("li",{className:`s-lane-sheet-doc-step s-lane-sheet-doc-step--${m.status}`,children:[e.jsx("span",{className:"s-lane-sheet-doc-step-state",children:gs[m.status]}),e.jsx("span",{className:"s-lane-sheet-doc-step-text",children:m.text})]},m.id))}),(s.body||s.rawText)&&e.jsx("pre",{className:"s-lane-sheet-doc-pre",children:s.body||s.rawText}),e.jsx("button",{type:"button",className:"s-lane-sheet-doc-open",onClick:l,children:"Open in Plans"})]})]})}function Ls({lane:s,navigate:t,returnRoute:c,onClose:l,navigationEnabled:r=!0,onPinProject:u,projectPinned:m=!1}){const{agent:d,observe:b,source:B,lastActiveAt:$}=s,{openFilePreview:A}=Ye(),X=i.useMemo(()=>Ve(d.state??null,d),[d]),w=i.useMemo(()=>ts(b,d,{isLive:X}),[b,d,X]),[D,Y]=i.useState(!1),[O,fe]=i.useState([]),[F,xe]=i.useState([]),[Oe,Fe]=i.useState(null),[_,Ee]=i.useState(!1),[Re,je]=i.useState(!1),[z,ge]=i.useState(!1),[ve,Z]=i.useState(null),[x,ee]=i.useState("s-lane-sheet-vitals"),E=i.useRef(null),se=i.useRef(null);i.useEffect(()=>()=>{E.current&&clearTimeout(E.current)},[]);const Ne=i.useCallback(a=>{typeof window>"u"||window.location.hash!==`#${a}`&&Xe({hash:a,replace:!1})},[]),W=i.useCallback(a=>{const h=se.current,f=h?.querySelector(`#${a}`);if(!h||!f)return!1;const g=h.getBoundingClientRect().top,y=f.getBoundingClientRect().top;return h.scrollTop=Math.max(0,h.scrollTop+y-g),ee(a),!0},[]),T=i.useCallback((a,h)=>{a.preventDefault(),W(h)&&Ne(h)},[W,Ne]),H=ds(d,B),Me=hs(d,B),n=i.useMemo(()=>$e(s),[s]),o=s.facts,I=o?.turn?.phase?o.turn.phase==="started":X,ae=ls(s),p=i.useMemo(()=>{const a=o?.touchedFiles.length?o.touchedFiles:is(b,1/0),h=ws(a,b),f=h.filter(v=>v.state==="created"),g=h.filter(v=>v.state==="modified"),y=h.filter(v=>v.state==="read"),M=[...f,...g];return{created:f,modified:g,read:y,changed:M,totalAdd:M.reduce((v,N)=>v+N.add,0),totalDel:M.reduce((v,N)=>v+N.del,0)}},[o,b]),q=p.changed.length+p.read.length,S=i.useMemo(()=>cs(b),[b]),te=i.useMemo(()=>p.changed.map(a=>ue(a.path,n.cwd)).join(`
|
|
2
2
|
`),[p.changed,n.cwd]),be=i.useMemo(()=>{const a=[`agent: ${H}`],h=d.harness??n.harness,f=o?.model??n.model;(h||f||o?.effort)&&a.push(`harness: ${[h,f,o?.effort].filter(Boolean).join(" · ")}`);const g=o?.branch??n.branch;return g&&a.push(`branch: ${g}`),n.cwd&&a.push(`cwd: ${n.cwd}`),n.sessionId&&a.push(`session: ${n.sessionId}`),d.harnessLogPath&&a.push(`transcript: ${d.harnessLogPath}`),o?.originator&&a.push(`origin: ${o.originator}`),a.join(`
|
|
3
3
|
`)},[d,o,H,n]),we=i.useMemo(()=>S.map(a=>a.command).join(`
|
|
4
4
|
`),[S]),Be=i.useCallback(()=>{Q(be)},[be]),_e=i.useCallback(()=>{Q(we)},[we]),ze=i.useCallback(()=>{for(const a of p.changed)A(ue(a.path,n.cwd))},[p.changed,n.cwd,A]),We=i.useCallback(()=>{te&&Q(te).then(a=>{a&&(je(!0),E.current&&clearTimeout(E.current),E.current=setTimeout(()=>je(!1),1100))})},[te]),j=o?.usage??n.usage,ke=i.useMemo(()=>j?[{label:"in",value:j.inputTokens},{label:"out",value:j.outputTokens},{label:"cache rd",value:j.cacheReadInputTokens},{label:"cache wr",value:j.cacheCreationInputTokens},{label:"total",value:j.totalTokens},{label:"reasoning",value:j.reasoningOutputTokens}].filter(a=>typeof a.value=="number"):[],[j]),k=i.useMemo(()=>Qe(j,{model:o?.model??n.model,adapterType:d.harness??n.harness}),[j,o?.model,n.model,d.harness,n.harness]),ne=!!(o?.compaction?.eligible&&us(d.harness??n.harness)&&n.sessionId),He=i.useCallback(async()=>{if(!(!ne||z)){ge(!0),Z(null);try{const a=await ms({harness:d.harness??n.harness,sessionId:n.sessionId,transcriptPath:d.harnessLogPath,agentId:d.id});(!a.ok||!a.delivered)&&Z(a.error??"Compaction was not delivered to the harness")}catch(a){Z(a instanceof Error?a.message:"Compaction request failed")}finally{ge(!1)}}},[d.harness,d.harnessLogPath,d.id,ne,z,n.harness,n.sessionId]),ye=$?de($):null,G=i.useMemo(()=>Pe(s),[s]),P=i.useMemo(()=>xs(s),[s]),J=i.useMemo(()=>fs(s),[s]),R=i.useCallback(()=>{!r||!G||(ie(t,G,{returnTo:c}),l())},[t,r,l,c,G]),le=i.useCallback(()=>{if(r){if(P){ie(t,P,{returnTo:c}),l();return}R()}},[t,r,l,R,P,c]),K=i.useCallback(()=>{!r||!J||(ie(t,J,{returnTo:c}),l())},[t,r,l,c,J]);i.useEffect(()=>{const a=h=>{if(!as(h.target))switch(h.key.toLowerCase()){case"o":h.preventDefault(),R();break;case"t":h.preventDefault(),K();break;case"p":if(!P)return;h.preventDefault(),le();break}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[le,R,K,P]);const Ce=i.useCallback(a=>{r&&(t({view:"ops",mode:"advisor",planDocumentId:a}),l())},[t,r,l]);return i.useEffect(()=>{let a=!1;return Y(!1),me("/api/plan-documents").then(h=>{if(a)return;const f=rs(h.documents,s);fe(f.plans),xe(f.docs),Y(!0)}).catch(()=>{a||(fe([]),xe([]),Y(!0))}),()=>{a=!0}},[s.id]),i.useEffect(()=>{const a=()=>{const h=vs();h&&window.requestAnimationFrame(()=>{W(h)})};return a(),window.addEventListener("hashchange",a),window.addEventListener("popstate",a),()=>{window.removeEventListener("hashchange",a),window.removeEventListener("popstate",a)}},[s.id,S.length,W]),i.useEffect(()=>{const a=se.current;if(!a)return;let h=0;const f=()=>{h=0;const y=Ae.map(N=>a.querySelector(`#${N}`)).filter(N=>!!N);if(y.length===0)return;if(a.scrollTop+a.clientHeight>=a.scrollHeight-2){const N=y[y.length-1].id;he(N)&&ee(N);return}const M=a.getBoundingClientRect().top+18,v=y.reduce((N,Se)=>Se.getBoundingClientRect().top<=M?Se:N,y[0]);he(v.id)&&ee(v.id)},g=()=>{h||(h=window.requestAnimationFrame(f))};return f(),a.addEventListener("scroll",g,{passive:!0}),window.addEventListener("resize",g),()=>{h&&window.cancelAnimationFrame(h),a.removeEventListener("scroll",g),window.removeEventListener("resize",g)}},[S.length,D,O.length,F.length]),e.jsxs(qe,{open:!0,onClose:l,side:"right",owner:"openscout.agent-lane",resizable:!0,defaultSize:720,minSize:420,maxSize:960,scrollLock:!0,ariaLabel:`${H} lane detail`,className:"s-lane-sheet",children:[e.jsxs("div",{className:"s-slide-header s-lane-sheet-header",children:[e.jsx(Ge,{agent:d,placement:"row",size:28,presence:!1,className:"s-agent-lane-avatar"}),e.jsxs("div",{className:"s-lane-sheet-header-copy",children:[e.jsx("div",{className:"s-lane-sheet-title",children:H}),e.jsxs("div",{className:"s-lane-sheet-sub",children:[Me," · ",$?de($):"idle"]})]}),e.jsx("span",{className:"s-slide-spacer"}),e.jsxs("div",{className:"s-lane-sheet-header-cta",children:[e.jsx(Je,{harness:d.harness??n.harness,size:18,className:`s-lane-sheet-hmark${I?" s-lane-sheet-hmark--working":""}`}),r?e.jsxs(e.Fragment,{children:[e.jsx(C,{primary:!0,onClick:R,disabled:!G,children:"Open session"}),P?e.jsx(C,{onClick:le,children:"Agent profile"}):null,e.jsx(C,{onClick:K,disabled:!J,children:"Traces"})]}):null,ae?e.jsx(C,{onClick:()=>u?.(ae),disabled:m||!u,children:e.jsx("span",{title:ae,children:m?"Project pinned":"Pin project"})}):null]}),e.jsx("button",{type:"button",className:"s-slide-close",onClick:l,"aria-label":"Close",children:"×"})]}),e.jsxs("nav",{className:"s-lane-sheet-anchors","aria-label":"Jump to section",children:[e.jsx("a",{href:"#s-lane-sheet-vitals",className:`s-lane-sheet-anchor${x==="s-lane-sheet-vitals"?" s-lane-sheet-anchor--active":""}`,"aria-current":x==="s-lane-sheet-vitals"?"location":void 0,onClick:a=>T(a,"s-lane-sheet-vitals"),children:"Vitals"}),e.jsx("a",{href:"#s-lane-sheet-runtime",className:`s-lane-sheet-anchor${x==="s-lane-sheet-runtime"?" s-lane-sheet-anchor--active":""}`,"aria-current":x==="s-lane-sheet-runtime"?"location":void 0,onClick:a=>T(a,"s-lane-sheet-runtime"),children:"Runtime"}),e.jsxs("a",{href:"#s-lane-sheet-files",className:`s-lane-sheet-anchor${x==="s-lane-sheet-files"?" s-lane-sheet-anchor--active":""}`,"aria-current":x==="s-lane-sheet-files"?"location":void 0,onClick:a=>T(a,"s-lane-sheet-files"),children:["Files",q>0&&e.jsx("span",{className:"s-lane-sheet-anchor-n",children:q})]}),S.length>0&&e.jsxs("a",{href:"#s-lane-sheet-commands",className:`s-lane-sheet-anchor${x==="s-lane-sheet-commands"?" s-lane-sheet-anchor--active":""}`,"aria-current":x==="s-lane-sheet-commands"?"location":void 0,onClick:a=>T(a,"s-lane-sheet-commands"),children:["Commands",e.jsx("span",{className:"s-lane-sheet-anchor-n",children:S.length})]}),e.jsx("a",{href:"#s-lane-sheet-plans",className:`s-lane-sheet-anchor${x==="s-lane-sheet-plans"?" s-lane-sheet-anchor--active":""}`,"aria-current":x==="s-lane-sheet-plans"?"location":void 0,onClick:a=>T(a,"s-lane-sheet-plans"),children:"Plans"}),e.jsx("a",{href:"#s-lane-sheet-docs",className:`s-lane-sheet-anchor${x==="s-lane-sheet-docs"?" s-lane-sheet-anchor--active":""}`,"aria-current":x==="s-lane-sheet-docs"?"location":void 0,onClick:a=>T(a,"s-lane-sheet-docs"),children:"Docs"}),I&&o?.turn&&e.jsxs("span",{className:"s-lane-sheet-anchorbar-turn",children:["turn ",o.turn.phase,o.turn.index?` · #${o.turn.index}`:""]})]}),e.jsxs("div",{ref:se,className:`s-slide-body s-lane-sheet-body${I?" s-lane-sheet-body--working":" s-lane-sheet-body--idle"}`,children:[e.jsxs("section",{id:"s-lane-sheet-vitals",className:`s-lane-sheet-section s-lane-sheet-vitals${I?"":" s-lane-sheet-vitals--idle"}`,children:[w&&e.jsxs("div",{className:"s-lane-sheet-vitals-now",children:[e.jsxs("div",{className:"s-lane-sheet-vitals-now-top",children:[e.jsxs("span",{className:"s-lane-sheet-vitals-live","aria-hidden":"true",children:[e.jsx("span",{className:"s-lane-sheet-vitals-live-dot"}),e.jsx("span",{className:"s-lane-sheet-vitals-live-ring"})]}),e.jsx("span",{className:"s-lane-sheet-vitals-now-label",children:I?"executing now":"last action"}),I&&o?.turn&&e.jsxs("span",{className:"s-lane-sheet-vitals-now-turn",children:["turn ",o.turn.phase,o.turn.index?` · #${o.turn.index}`:""]})]}),e.jsxs("div",{className:"s-lane-sheet-vitals-well",children:[w.headlineFrom==="user"?e.jsx("span",{className:"s-lane-sheet-vitals-prompt","aria-hidden":"true",children:"←"}):w.headlineFrom==="agent"?e.jsx("span",{className:"s-lane-sheet-vitals-prompt","aria-hidden":"true",children:"→"}):e.jsx("span",{className:"s-lane-sheet-vitals-prompt s-lane-sheet-vitals-prompt--cmd","aria-hidden":"true",children:"❯"}),e.jsx("span",{className:"s-lane-sheet-vitals-cmd",title:w.headFull,children:w.headline}),I&&e.jsx("span",{className:"s-lane-sheet-vitals-caret","aria-hidden":"true"}),e.jsxs("span",{className:"s-lane-sheet-vitals-now-acts",children:[r&&e.jsx("button",{type:"button",className:"s-lane-sheet-reveal",title:"Open trace at this step","aria-label":"Open trace",onClick:K,children:e.jsx(pe,{size:11,strokeWidth:1.6})}),w.headFull&&w.headFull!==w.headline&&e.jsx(U,{value:w.headFull,label:"current action"})]})]})]}),k&&e.jsxs("div",{className:`s-lane-sheet-vitals-gauge${k.overLimit?" s-lane-sheet-vitals-gauge--over":""}`,children:[e.jsxs("div",{className:"s-lane-sheet-vitals-gauge-top",children:[e.jsx("span",{className:"s-lane-sheet-vitals-gauge-label",children:"context"}),e.jsxs("span",{className:"s-lane-sheet-vitals-gauge-read",children:[e.jsx("b",{children:k.usedLabel}),e.jsxs("span",{className:"s-lane-sheet-vitals-gauge-of",children:[" / ",k.budgetLabel]}),e.jsx("span",{className:"s-lane-sheet-vitals-gauge-unit",children:" tokens"}),e.jsxs("span",{className:"s-lane-sheet-vitals-gauge-pct",children:[k.pct,"%",k.overLimit?" over":""]})]}),ne&&e.jsx("button",{type:"button",className:"s-lane-sheet-vitals-compact",onClick:()=>{He()},disabled:z,title:"Force a context compaction on this live session",children:z?"Compacting…":"Compact context"})]}),e.jsxs("div",{className:"s-lane-sheet-vitals-gaugebar",role:"meter","aria-label":"context budget","aria-valuenow":k.pct,"aria-valuemin":0,"aria-valuemax":Math.max(100,k.pct),children:[e.jsx("span",{className:"s-lane-sheet-vitals-gaugebar-fill",style:{width:`${Ue(k)}%`},children:e.jsx("span",{className:"s-lane-sheet-vitals-gaugebar-edge","aria-hidden":"true"})}),[25,50,75].map(a=>e.jsx("span",{className:"s-lane-sheet-vitals-gaugebar-tick",style:{left:`${a}%`},"aria-hidden":"true"},a))]}),ve&&e.jsx("div",{className:"s-lane-sheet-vitals-compact-error",role:"status",children:ve}),o?.compaction?.lastCompactedSummary&&e.jsxs("div",{className:"s-lane-sheet-vitals-compact-note",children:["last compaction · ",o.compaction.lastCompactedSummary]})]}),e.jsxs("div",{className:"s-lane-sheet-vitals-cadence",children:[e.jsx("b",{children:ce(n.events)})," events · ",e.jsx("b",{children:ce(n.tools)})," tools",ye?e.jsxs(e.Fragment,{children:[" · ",ye]}):null]})]}),e.jsxs("section",{id:"s-lane-sheet-runtime",className:"s-lane-sheet-section",children:[e.jsxs(Le,{label:"Runtime",hint:[d.harness??n.harness,o?.model??n.model].filter(Boolean).join(" · ")||void 0,children:[e.jsxs("dl",{className:"s-lane-sheet-meta",children:[e.jsx(L,{label:"Effort",value:o?.effort??"—"}),e.jsx(L,{label:"Branch",value:o?.branch??n.branch??"—",copy:o?.branch??n.branch??null}),e.jsx(L,{label:"Working dir",value:re(n.cwd),title:n.cwd??void 0,copy:n.cwd??null,reveal:n.cwd?{path:n.cwd,basePath:n.cwd,agentId:d.id,sessionId:n.sessionId}:void 0}),e.jsx(L,{label:"Session",value:re(n.sessionId,36),title:n.sessionId??void 0,copy:n.sessionId??null}),d.harnessLogPath&&e.jsx(L,{label:"Transcript",value:re(d.harnessLogPath,36),title:d.harnessLogPath,copy:d.harnessLogPath,reveal:{path:d.harnessLogPath,basePath:n.cwd,agentId:d.id,sessionId:n.sessionId}}),e.jsx(L,{label:"Origin",value:o?.originator??"—",copy:o?.originator??null}),e.jsx(L,{label:"Attribution",value:o?.attribution?Ke(o.attribution):"—"}),o?.currentTask&&e.jsx(L,{label:"Task",value:o.currentTask,title:o.currentTask,copy:o.currentTask})]}),e.jsx("div",{className:"s-lane-sheet-disc-bar",children:e.jsx(C,{onClick:Be,children:"Copy diagnostics"})})]}),ke.length>0&&e.jsx(Le,{label:"Tokens",hint:typeof j?.totalTokens=="number"?Ns(j.totalTokens):void 0,children:e.jsx("div",{className:"s-lane-sheet-dials",children:ke.map(a=>e.jsxs("span",{className:"s-lane-sheet-dial",children:[e.jsx("span",{className:"s-lane-sheet-dial-value",children:ce(a.value)}),e.jsx("span",{className:"s-lane-sheet-dial-label",children:a.label})]},a.label))})})]}),e.jsxs("section",{id:"s-lane-sheet-files",className:"s-lane-sheet-section",children:[e.jsx(V,{label:"Files",count:q>0?`${p.changed.length} changed · ${p.read.length} read`:void 0,actions:p.changed.length>0?e.jsxs(e.Fragment,{children:[(p.totalAdd>0||p.totalDel>0)&&e.jsxs("span",{className:"s-lane-sheet-file-diff","aria-hidden":"true",children:[p.totalAdd>0&&e.jsxs("span",{className:"s-lane-sheet-file-add",children:["+",p.totalAdd]}),p.totalDel>0&&e.jsxs("span",{className:"s-lane-sheet-file-del",children:["−",p.totalDel]})]}),e.jsx(C,{onClick:We,children:Re?"Copied":"Copy changed"}),e.jsx(C,{onClick:ze,children:"Open all → diff"})]}):void 0}),q===0?e.jsx("div",{className:"s-lane-sheet-empty",children:"No files touched in this session yet."}):e.jsxs("div",{className:"s-lane-sheet-filegroups",children:[p.created.length>0&&e.jsxs("div",{className:"s-lane-sheet-filegroup",children:[e.jsxs("div",{className:"s-lane-sheet-fglabel",children:[e.jsx("span",{className:"s-lane-sheet-fgmark s-lane-sheet-fgmark--created","aria-hidden":"true"}),"new",e.jsx("span",{className:"s-lane-sheet-fgcount",children:p.created.length})]}),e.jsx("div",{className:"s-lane-sheet-files",children:p.created.map(a=>e.jsx(oe,{file:a,basePath:n.cwd,agentId:d.id,sessionId:n.sessionId,onOpen:A},a.path))})]}),p.modified.length>0&&e.jsxs("div",{className:"s-lane-sheet-filegroup",children:[e.jsxs("div",{className:"s-lane-sheet-fglabel",children:[e.jsx("span",{className:"s-lane-sheet-fgmark s-lane-sheet-fgmark--modified","aria-hidden":"true"}),"modified",e.jsx("span",{className:"s-lane-sheet-fgcount",children:p.modified.length})]}),e.jsx("div",{className:"s-lane-sheet-files",children:p.modified.map(a=>e.jsx(oe,{file:a,basePath:n.cwd,agentId:d.id,sessionId:n.sessionId,onOpen:A},a.path))})]}),p.read.length>0&&e.jsxs("div",{className:"s-lane-sheet-filegroup",children:[e.jsxs("button",{type:"button",className:"s-lane-sheet-fglabel s-lane-sheet-fglabel--btn","aria-expanded":_,onClick:()=>Ee(a=>!a),children:[e.jsx("span",{className:`s-lane-sheet-fgcaret${_?" s-lane-sheet-fgcaret--open":""}`,"aria-hidden":"true",children:"›"}),e.jsx("span",{className:"s-lane-sheet-fgmark s-lane-sheet-fgmark--read","aria-hidden":"true"}),"read",e.jsx("span",{className:"s-lane-sheet-fgcount",children:p.read.length}),!_&&e.jsx("span",{className:"s-lane-sheet-fghint",children:"collapsed"})]}),_&&e.jsx("div",{className:"s-lane-sheet-files",children:p.read.map(a=>e.jsx(oe,{file:a,basePath:n.cwd,agentId:d.id,sessionId:n.sessionId,onOpen:A},a.path))})]})]})]}),S.length>0&&e.jsxs("section",{id:"s-lane-sheet-commands",className:"s-lane-sheet-section",children:[e.jsx(V,{label:"Commands",count:"recent",actions:e.jsx(C,{onClick:_e,children:"Copy all"})}),e.jsx("div",{className:"s-lane-sheet-cmds",children:S.map(a=>e.jsx(ys,{entry:a},a.id))})]}),e.jsxs("section",{id:"s-lane-sheet-plans",className:"s-lane-sheet-section",children:[e.jsx(V,{label:"Plans",count:D&&O.length>0?O.length:void 0}),D?O.length===0?e.jsx("div",{className:"s-lane-sheet-empty",children:"No plans matched this session yet."}):e.jsx("div",{className:"s-lane-sheet-plans",children:O.map(a=>e.jsx(Cs,{plan:a,onOpen:()=>Ce(a.id)},a.id))}):e.jsx("div",{className:"s-lane-sheet-empty",children:"Indexing plan documents…"})]}),e.jsxs("section",{id:"s-lane-sheet-docs",className:"s-lane-sheet-section",children:[e.jsx(V,{label:"Docs",count:D&&F.length>0?F.length:void 0}),D?F.length===0?e.jsx("div",{className:"s-lane-sheet-empty",children:"No related docs matched this session yet."}):e.jsx("div",{className:"s-lane-sheet-docs",children:F.map(a=>e.jsx(Ss,{document:a,expanded:Oe===a.id,onToggle:()=>Fe(h=>h===a.id?null:a.id),onOpen:()=>Ce(a.id)},a.id))}):e.jsx("div",{className:"s-lane-sheet-empty",children:"Indexing documents…"})]})]})]})}const Vs=Object.freeze(Object.defineProperty({__proto__:null,AgentLaneDetailSheet:Ls},Symbol.toStringTag,{value:"Module"}));export{Ls as A,Vs as a,Te as i};
|
package/dist/client/assets/{AgentLaneSummaryResize-Box8-_rS.js → AgentLaneSummaryResize-CEBjmPTa.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,j as R}from"./index-
|
|
1
|
+
import{r as a,j as R}from"./index-DvLtl7rV.js";const d="openscout:agent-lanes-cockpit-height",S="openscout:agent-lanes-summary-height",m=48,i=220,_=120,h=112,T=80,C=200,H=112;function v(e){if(!e)return i;const t=e.getBoundingClientRect().height,r=Math.floor(t-H-C);return Math.max(m,Math.min(i,r))}function x(e){return e===null?"auto":e<T?"compact":e<h?"default":"stats"}function w(){try{const e=sessionStorage.getItem(d)??sessionStorage.getItem(S);if(!e||e==="auto")return null;const t=Number(e);return Number.isFinite(t)?Math.min(i,Math.max(m,t)):null}catch{return null}}function f(e){try{if(e===null){sessionStorage.setItem(d,"auto");return}sessionStorage.setItem(d,String(Math.round(e)))}catch{}}function y(e){const[t,r]=a.useState(!1),s=a.useRef({y:0,h:_,max:i}),c=a.useRef(null),L=a.useCallback((n,o)=>{n.preventDefault(),n.currentTarget.setPointerCapture(n.pointerId);const u=n.currentTarget.closest(".s-agent-lane"),l=u?.querySelector(".s-agent-lane-cockpit")?.getBoundingClientRect().height??_,p=o??l,A=v(u);s.current={y:n.clientY,h:p,max:A},c.current=p,r(!0),document.body.classList.add("s-agent-lanes--resizing-summary")},[]),E=a.useCallback(()=>{r(n=>(n&&(document.body.classList.remove("s-agent-lanes--resizing-summary"),f(c.current)),!1))},[]);a.useEffect(()=>{if(!t)return;const n=u=>{const g=u.clientY-s.current.y,l=Math.min(s.current.max,Math.max(m,s.current.h+g));c.current=l,e(l)},o=()=>E();return window.addEventListener("pointermove",n),window.addEventListener("pointerup",o),window.addEventListener("pointercancel",o),()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",o),window.removeEventListener("pointercancel",o)}},[E,t,e]);const M=a.useCallback(()=>{c.current=null,e(null),f(null)},[e]);return{beginResize:L,resetSummaryHeight:M,resizing:t}}function z({cockpitHeight:e,children:t}){const r=e!==null,s=x(e);return R.jsx("div",{className:`s-agent-lane-cockpit${r?` s-agent-lane-cockpit--sized s-agent-lane-cockpit--${s}`:""}`,style:r?{height:e,maxHeight:e}:void 0,children:t})}function N({onResizeStart:e,onReset:t,active:r}){return R.jsx("div",{role:"separator","aria-orientation":"horizontal","aria-label":"Resize tools panel",title:"Drag to resize tools panel · double-click to reset","aria-valuemin":m,"aria-valuemax":i,className:`s-agent-lane-split${r?" s-agent-lane-split--active":""}`,onPointerDown:e,onDoubleClick:s=>{s.preventDefault(),s.stopPropagation(),t()}})}export{z as AgentLaneCockpitPane,N as AgentLaneSummaryResizeHandle,T as LANE_COCKPIT_COMPACT_HEIGHT,h as LANE_COCKPIT_STATS_HEIGHT,_ as LANE_SUMMARY_HEIGHT_DEFAULT,i as LANE_SUMMARY_HEIGHT_MAX,m as LANE_SUMMARY_HEIGHT_MIN,d as LANE_SUMMARY_HEIGHT_STORAGE_KEY,v as cockpitHeightMaxForLane,x as cockpitHeightTier,w as readStoredLaneSummaryHeight,y as useLaneSummaryResize,f as writeStoredLaneSummaryHeight};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,j as m}from"./index-DvLtl7rV.js";import{u as a}from"./Provider-CtXJeLrP.js";import{A as n}from"./AgentLanesView-CetZZDyF.js";import{i as c,j as l}from"./router-B9vQkNJL.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./time-Dhsh_2EG.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";/* empty css */import"./tail-events-Ps8KpKah.js";import"./observe-BpEm1INu.js";import"./terminal-sessions-BQ6t92tJ.js";import"./types-B0PlfpKc.js";import"./AgentAvatar-6-KBVKUu.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./openContent-C6XO6kr5.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./message-markup-C2LQDm_k.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./message-circle-mZCv8tvB.js";import"./wrench-DjkoAOQt.js";import"./external-link-Dp_a2vRZ.js";import"./AgentFloorView-YT-Jjccf.js";/* empty css */import"./agent-lanes-model-DXqjs0OK.js";import"./context-budget-DX_fwUs3.js";import"./lane-roster-store-DOdI1O13.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./AgentLanesPreflight-q20mTjms.js";import"./AgentLaneChrome-D8bARHMx.js";import"./AgentLaneCard-DI2iW9zO.js";/* empty css */import"./AgentLaneSummaryResize-CEBjmPTa.js";import"./clipboard-e3fSpeo7.js";import"./agent-lane-card-model-CNZMPkhc.js";import"./agent-lane-preview-BhplDYGf.js";import"./agent-lane-detail-ppJId6Jc.js";import"./AgentLaneDetailSheet-52un7dKC.js";import"./SlidePanel-B9ugxWgA.js";import"./LaneTraceDetailSheet-BUgHz-sd.js";import"./LaneTraceEventFocus-DM-hoPxG.js";function p(r){return new URLSearchParams(window.location.search).get(r)?.trim()||null}function Hr(){const{agents:r,navigate:o}=a(),e=t.useMemo(()=>c(),[]),s=t.useMemo(()=>l(),[]),i=t.useMemo(()=>({harnessFilter:p("harness"),projectFilter:p("project")}),[]);return m.jsx("div",{className:"s-agent-lanes-embed","data-scout-theme":!0,children:m.jsx(n,{navigate:o,agents:r,embedded:!0,profileId:e,laneSize:s,harnessFilter:i.harnessFilter,projectFilter:i.projectFilter})})}export{Hr as AgentLanesEmbedScreen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as d,j as s}from"./index-DvLtl7rV.js";import{t as $}from"./time-Dhsh_2EG.js";const w=3,E=12;function z(e,n){return n===0&&(e.discovery==="loading"||e.recent==="loading")}function A(e){const n=e?.trim();return n?n.slice(0,13):null}function x(e){const n=e.lastEventAt;return typeof n=="number"&&Number.isFinite(n)&&n>0?n:e.mtimeMs}function D(e){return e.sessionId?.trim()||e.transcriptPath}function _(e){const n=e.max??E;if(e.discoveryPhase==="loading")return{cells:[],blindCells:Math.min(e.blindCells??w,n),identified:!1};const i=e.discovery?.transcripts??[],a=new Set,t=[];for(const l of i.filter(c=>{if(e.matchTranscript&&!e.matchTranscript(c))return!1;const r=e.now-x(c);return r>=0?r<=e.windowMs:!0}).sort((c,r)=>x(r)-x(c))){const c=D(l);if(!a.has(c)&&(a.add(c),t.push({key:c,source:l.source,sessionLabel:A(l.sessionId),project:l.project,cwd:l.cwd,lastActiveAt:x(l)}),t.length>=n))break}return{cells:t,blindCells:0,identified:!0}}function T(e){return e.sessionLabel?`${e.source}:${e.sessionLabel}`:e.source}const I=260,P=100;function B(e,n){const[i,a]=d.useState(e),[t,l]=d.useState(!1);return d.useEffect(()=>{if(e){a(!0),l(!1);return}if(!i)return;if(n<=0){a(!1),l(!1);return}l(!0);const c=setTimeout(()=>{a(!1),l(!1)},n);return()=>clearTimeout(c)},[e,n,i]),{visible:i,exiting:t}}function R(e,n){const i=d.useRef(Date.now()),[a,t]=d.useState({discoveryMs:null,recentMs:null,deckMs:null}),[l,c]=d.useState(0);return d.useEffect(()=>{t(r=>{const o=r.discoveryMs===null&&e.discovery!=="loading"?Date.now()-i.current:r.discoveryMs,m=r.recentMs===null&&e.recent!=="loading"?Date.now()-i.current:r.recentMs;return o===r.discoveryMs&&m===r.recentMs?r:{...r,discoveryMs:o,recentMs:m}})},[e.discovery,e.recent]),d.useEffect(()=>{n&&t(r=>r.deckMs===null?{...r,deckMs:Date.now()-i.current}:r)},[n]),d.useEffect(()=>{if(a.deckMs!==null)return;const r=()=>c(Date.now()-i.current);r();const o=setInterval(r,P);return()=>clearInterval(o)},[a.deckMs]),{...a,elapsedMs:l}}function N({seed:e,rows:n}){const i=d.useMemo(()=>{const a=[68,92,54,80,61,74];return Array.from({length:n},(t,l)=>a[(e+l)%a.length])},[n,e]);return s.jsx("div",{className:"s-lane-pre-bars","aria-hidden":"true",children:i.map((a,t)=>s.jsx("span",{className:"s-lane-pre-bar",style:{width:`${a}%`,animationDelay:`${e*110+t*90}ms`}},`${t}-${a}`))})}function S({cell:e,index:n,nowMs:i,style:a}){if(!e)return s.jsxs("div",{className:"s-lane-pre s-lane-pre--blind",style:a,"aria-hidden":"true",children:[s.jsxs("div",{className:"s-lane-pre-head",children:[s.jsx("span",{className:"s-lane-pre-ghost s-lane-pre-ghost--dot"}),s.jsx("span",{className:"s-lane-pre-ghost s-lane-pre-ghost--name"}),s.jsx("span",{className:"s-lane-pre-spacer"}),s.jsx("span",{className:"s-lane-pre-ghost s-lane-pre-ghost--meta"})]}),s.jsx(N,{seed:n,rows:6})]});const t=[e.project,e.cwd].find(l=>!!l)??"—";return s.jsxs("div",{className:"s-lane-pre",style:a,children:[s.jsxs("div",{className:"s-lane-pre-head",children:[s.jsx("span",{className:"s-lane-pre-dot","aria-hidden":"true"}),s.jsx("span",{className:"s-lane-pre-title",children:T(e)}),s.jsx("span",{className:"s-lane-pre-where",title:e.cwd??t,children:t}),s.jsx("span",{className:"s-lane-pre-spacer"}),s.jsx("span",{className:"s-lane-pre-age",children:$(e.lastActiveAt,i)})]}),s.jsx(N,{seed:n,rows:5})]})}function F({discovery:e,discoveryPhase:n,windowMs:i,nowMs:a,layout:t,gridColumns:l,laneWidthPx:c,matchTranscript:r}){const o=t==="grid",m=d.useMemo(()=>_({discovery:e,discoveryPhase:n,windowMs:i,now:a,matchTranscript:r}),[e,n,r,a,i]),h=m.identified?m.cells:Array.from({length:m.blindCells},()=>null);if(t==="none"||h.length===0)return s.jsx("div",{className:"s-agent-lanes-preflight-empty","aria-hidden":"true"});const p=h.map((f,b)=>s.jsx(S,{cell:f,index:b,nowMs:a,style:o?void 0:{width:`${c}px`,flex:"none"}},f?.key??`blind-${b}`));return o?s.jsx("div",{className:"s-agent-lanes-grid s-agent-lanes-grid--preflight","data-grid-columns":l,"aria-label":"Lane deck loading",children:p}):s.jsx("div",{className:"s-agent-lanes-body",children:s.jsx("section",{className:"s-agent-lanes-zone s-agent-lanes-zone--main",children:s.jsx("div",{className:"s-agent-lanes-scroll","aria-label":"Lane deck loading",children:p})})})}function y(e){return e==="ready"?"OK":e==="error"?"WARN":"RUN"}function j(e){return`s-lane-boot-step s-lane-boot-step--${e}`}function u(e,n){return`${e.toLocaleString()} ${n}${e===1?"":"s"}`}function g(e){return e===null?"":`${Math.round(e)}ms`}function K({loadState:e,sourceCount:n,processCount:i,eventCount:a,laneCount:t,horizonLabel:l,handedOff:c,exiting:r}){const o=R(e,c),m=e.discovery!=="loading"&&e.recent!=="loading",h=e.discovery==="ready"?`${u(n,"session source")} indexed`:e.discovery==="error"?"session source scan unavailable":"scanning local transcripts and harness processes",p=e.recent==="ready"?`${u(a,"recent event")} merged`:e.recent==="error"?"history replay unavailable; live signals remain enabled":`reading turns and tool output for the ${l} view`,f=t>0?`${u(t,"lane")} composed`:e.recent==="error"?`${u(a,"live signal")} in, no history`:a>0?`${u(a,"signal")} in, waiting on replay`:"waiting on first signals",b=e.discovery==="ready"?"done":e.discovery==="error"?"warn":"running",v=e.recent==="ready"?"done":e.recent==="error"?"warn":e.discovery==="loading"?"pending":"running",L=c?"done":e.recent==="loading"?"pending":"running",M=o.deckMs!==null?g(o.deckMs):o.elapsedMs<1e3?g(o.elapsedMs):`${(o.elapsedMs/1e3).toFixed(1)}s`,k=t>0;return s.jsxs("div",{className:["s-lane-boot",k?"s-lane-boot--bare":null,r?"s-lane-boot--exiting":null].filter(Boolean).join(" "),role:"status","aria-live":"polite","aria-busy":!m,children:[s.jsx("div",{className:"s-lane-boot-veil","aria-hidden":"true"}),s.jsxs("div",{className:"s-lane-boot-sheet",children:[s.jsxs("div",{className:"s-lane-boot-head",children:[s.jsx("span",{className:`s-lane-boot-dot${m?" s-lane-boot-dot--done":""}`,"aria-hidden":"true"}),s.jsx("span",{className:"s-lane-boot-lead",children:"Starting agent tail"}),s.jsxs("span",{className:"s-lane-boot-count",children:[n.toLocaleString()," sources"]}),s.jsxs("span",{className:"s-lane-boot-count",children:[i.toLocaleString()," live"]}),s.jsxs("span",{className:"s-lane-boot-count",children:[a.toLocaleString()," events"]}),t>0?s.jsxs("span",{className:"s-lane-boot-count",children:[t.toLocaleString()," lanes"]}):null,s.jsx("span",{className:"s-lane-boot-spacer"}),s.jsxs("span",{className:"s-lane-boot-meta",children:["lookback ",l]}),s.jsx("span",{className:"s-lane-boot-elapsed","aria-hidden":"true",children:M})]}),s.jsxs("div",{className:"s-lane-boot-log",children:[s.jsxs("div",{className:j(b),children:[s.jsx("span",{className:"s-lane-boot-state",children:y(e.discovery)}),s.jsx("strong",{className:"s-lane-boot-name",children:"discover sessions"}),s.jsx("code",{className:"s-lane-boot-detail",children:h}),s.jsx("span",{className:"s-lane-boot-timing",children:g(o.discoveryMs)})]}),s.jsxs("div",{className:j(v),children:[s.jsx("span",{className:"s-lane-boot-state",children:y(e.recent)}),s.jsx("strong",{className:"s-lane-boot-name",children:"replay recent tail"}),s.jsx("code",{className:"s-lane-boot-detail",children:p}),s.jsx("span",{className:"s-lane-boot-timing",children:g(o.recentMs)})]}),s.jsxs("div",{className:j(L),children:[s.jsx("span",{className:"s-lane-boot-state",children:c?"OK":"LIVE"}),s.jsx("strong",{className:"s-lane-boot-name",children:"assemble lanes"}),s.jsx("code",{className:"s-lane-boot-detail",children:f}),s.jsx("span",{className:"s-lane-boot-timing",children:g(o.deckMs)})]})]})]})]})}const G=Object.freeze(Object.defineProperty({__proto__:null,AgentLanesLoadingSheet:K,AgentLanesPreflightDeck:F,LANE_BOOT_EXIT_MS:I,useLaneBootVisibility:B},Symbol.toStringTag,{value:"Module"}));export{F as A,I as L,K as a,G as b,z as s,B as u};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,j as o}from"./index-DvLtl7rV.js";/* empty css */import{a as rn}from"./api-Co9aQ2Jw.js";import{u as Fn}from"./tail-events-Ps8KpKah.js";import{i as _e,o as on}from"./surface-activity-B1rgWB1i.js";import{u as Wn}from"./observe-BpEm1INu.js";import{f as Hn}from"./terminal-sessions-BQ6t92tJ.js";import{n as ln}from"./colors-BtO5_zlx.js";import{S as Bn}from"./Provider-CtXJeLrP.js";import{d as Vn}from"./types-B0PlfpKc.js";import{A as Gn}from"./AgentAvatar-6-KBVKUu.js";import{h as Kn,S as Un}from"./SessionObserve-dQDN23pP.js";import{W as qn,X as cn,Y as Yn,Z as Zn,_ as Xn,$ as Xe,a0 as Jn,a1 as Qn,a2 as et,a3 as nt,a4 as tt,a5 as Ce,a6 as st,a7 as at,a8 as rt,a9 as dn,aa as ot,ab as it,i as un,j as fn}from"./router-B9vQkNJL.js";import{AgentFloorView as lt}from"./AgentFloorView-YT-Jjccf.js";import{u as ct,s as dt,A as ut,a as ft,L as mt}from"./AgentLanesPreflight-q20mTjms.js";import{AgentLaneChrome as ht}from"./AgentLaneChrome-D8bARHMx.js";import{AgentLaneCard as gt}from"./AgentLaneCard-DI2iW9zO.js";import{a as pt}from"./agent-lane-card-model-CNZMPkhc.js";import{c as Lt}from"./agent-lane-detail-ppJId6Jc.js";import{i as yt,A as bt}from"./AgentLaneDetailSheet-52un7dKC.js";import{LaneTraceDetailSheet as vt}from"./LaneTraceDetailSheet-BUgHz-sd.js";import{readStoredLaneSummaryHeight as St,useLaneSummaryResize as kt,AgentLaneSummaryResizeHandle as xt}from"./AgentLaneSummaryResize-CEBjmPTa.js";import{A as ge,l as Z,j as Et,k as mn,m as Nt,e as wt,g as Rt,n as jt,r as Ct,d as hn,D as It,h as At,i as Tt}from"./agent-lanes-model-DXqjs0OK.js";import{i as _t,c as Pt,n as Je}from"./keyboard-nav-BLYDhL3Z.js";import{p as Qe}from"./lane-roster-store-DOdI1O13.js";function Pe(e){return[e.source,e.sessionId,e.ts,e.kind,e.summary].join("\0")}function Dt(e){const n=new Set,t=[];for(const s of e){const i=Pe(s);n.has(i)||(n.add(i),t.push(s))}return t}function Mt(e,n){return e.length<=n?e:[...e].sort((t,s)=>t.ts-s.ts).slice(e.length-n)}function zt(e,n,t){const s=Pe(n);for(const l of e)if(Pe(l)===s)return e;const i=[...e,n];return i.length>t?i.slice(i.length-t):i}function Ot(e,n,t){return Mt(Dt([...n,...e]),t)}const $t=500;function Ie(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):null}function Ft(e){return JSON.stringify([Ie(e.recentLimit),e.includeTranscriptReplay,Ie(e.recentWindowMs),e.discoveryScope??null,Ie(e.discoveryLimit)])}function Wt(e,n){return e==="error"||n==="error"}function Ht(e,n){return n?Math.min(e,$t):e}async function Bt(e){const n=await e.load(!1);if(e.publish(n,"live"),e.markReady(),!e.includeTranscriptReplay)return{replay:"not-requested"};try{return e.publish(await e.load(!0),"replay"),{replay:"loaded"}}catch{return{replay:"failed"}}}function Vt(e){return e.discovery==="error"||e.recent==="error"?e.discoveryLoaded&&e.recentLoaded?"degraded":"blank":"none"}const Gt=500,Kt=6e4;function Ut(){return{generatedAt:Date.now(),processes:[],transcripts:[],totals:{total:0,scoutManaged:0,hudsonManaged:0,unattributed:0,transcripts:0}}}async function qt(e,n,t){const s=new URLSearchParams({limit:String(e)});return n&&s.set("transcripts","true"),typeof t=="number"&&Number.isFinite(t)&&t>0&&s.set("windowMs",String(Math.floor(t))),(await rn(`/api/tail/recent?${s.toString()}`)).events??[]}function Yt(e,n){const t=new URLSearchParams;e&&t.set("scope",e),typeof n=="number"&&Number.isFinite(n)&&n>0&&t.set("limit",String(Math.floor(n)));const s=t.toString();return s?`/api/tail/discover?${s}`:"/api/tail/discover"}function Zt(e){const n=e?.recentLimit??Gt,t=e?.enabled??!0,s=e?.discoveryIntervalMs??Kt,i=e?.includeTranscriptReplay??!1,l=e?.discoveryScope,f=e?.discoveryLimit,y=e?.recentWindowMs,u=e?.pauseWhenHidden??!1,d=Ft({recentLimit:n,includeTranscriptReplay:i,recentWindowMs:y,discoveryScope:l,discoveryLimit:f}),[m,c]=a.useState(null),[p,L]=a.useState([]),[R,b]=a.useState({discovery:"loading",recent:"loading",discoveryLoaded:!1,recentLoaded:!1}),I=a.useRef("loading"),h=a.useRef("idle"),A=a.useRef(null),x=a.useRef(null),j=a.useRef(0);Fn(S=>{L(k=>zt(k,S,n))},t);const v=a.useCallback((S=!1)=>{if(!t||u&&!S&&!_e())return Promise.resolve();S&&(I.current="loading",b(w=>({...w,recent:"loading"})));const k=d,T=x.current;if(T?.key===k)return T.promise;const M=++j.current;h.current=i?"loading":"ready";let z;return z=Bt({includeTranscriptReplay:i,load:w=>qt(w?n:Ht(n,i),w,y),publish:(w,F)=>{if(M!==j.current)return;const B=()=>{L(W=>Ot(W,w,n))};F==="replay"?a.startTransition(B):B()},markReady:()=>{M===j.current&&(I.current="ready",b(w=>({...w,recent:"ready",recentLoaded:!0})))}}).then(w=>{M===j.current&&(i&&(h.current=w.replay==="failed"?"error":"ready"),w.replay!=="failed"&&(A.current=d))}).catch(()=>{M===j.current&&(I.current="error",i&&(h.current="error"),b(w=>({...w,recent:"error"})))}).finally(()=>{x.current?.promise===z&&(x.current=null)}),x.current={key:k,promise:z},z},[t,d,i,u,n,y]),D=a.useCallback(async(S=!1)=>{if(t&&!(u&&!S&&!_e())){S&&b(k=>({...k,discovery:"loading"}));try{const k=await rn(Yt(l,f));c(k),b(T=>({...T,discovery:"ready",discoveryLoaded:!0})),Wt(I.current,h.current)&&v()}catch{c(k=>k??Ut()),b(k=>({...k,discovery:"error"}))}}},[f,l,t,u,v]),C=a.useCallback(async()=>{await Promise.all([D(!0),v(!0)])},[D,v]);return a.useEffect(()=>{if(!t)return;let S=!1,k=!0;const T=()=>{S||D(k),k=!1};T();const M=setInterval(T,s),z=u?on(T):null;return()=>{S=!0,clearInterval(M),z?.()}},[s,t,u,D]),a.useEffect(()=>{t||(j.current+=1,x.current=null,A.current=null,h.current="idle")},[t]),a.useEffect(()=>{t&&A.current!==d&&v(!0)},[t,d,v]),{discovery:m,events:p,loadState:R,refreshDiscovery:D,retryInitialLoad:C}}function Xt({lanes:e,inspectedLaneId:n,onInspect:t,onHorizonChange:s,onTogglePin:i}){const[l,f]=a.useState(-1),y=a.useRef(new Map);a.useEffect(()=>{if(l<0)return;if(l>=e.length){f(e.length-1);return}const m=e[l];if(!m)return;const c=y.current.get(m.id);c?.scrollIntoView({block:"nearest",inline:"nearest"}),c?.focus()},[l,e]),a.useEffect(()=>{n||l>=e.length&&f(e.length>0?e.length-1:-1)},[l,n,e.length]);const u=a.useCallback((m,c)=>{c?y.current.set(m,c):y.current.delete(m)},[]);a.useEffect(()=>{const m=c=>{if(!document.querySelector(".s-agent-lanes")||_t(c.target)||Pt()||n||e.length===0)return;const p=Number(c.key)-1;if(!c.metaKey&&!c.ctrlKey&&!c.altKey&&p>=0&&p<ge.length){c.preventDefault(),s(ge[p].key);return}if(c.key==="ArrowDown"||c.key==="j"){c.preventDefault(),f(L=>Je(L,e.length,1));return}if(c.key==="ArrowUp"||c.key==="k"){c.preventDefault(),f(L=>Je(L,e.length,-1));return}if(c.key==="Home"||c.key==="g"&&!c.shiftKey){c.preventDefault(),f(0);return}if(c.key==="End"||c.key==="G"){c.preventDefault(),f(e.length-1);return}if(c.key==="Enter"||c.key==="i"){const L=l<0?0:l,R=e[L];if(!R)return;c.preventDefault(),f(L),t(R);return}if(c.key.toLowerCase()==="p"&&i){const L=l<0?0:l,R=e[L];if(!R)return;c.preventDefault(),f(L),i(R)}};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[l,n,e,s,t,i]);const d=a.useCallback((m,c)=>({"data-cursor":l===m?!0:void 0,tabIndex:l===m?0:-1,ref:p=>u(c,p),onFocus:()=>f(m)}),[l,u]);return{focusedIndex:l,getLaneFocusProps:d}}function Jt(e){return e.trim().replace(/\/+$/u,"").split(/[\\/]/u).filter(Boolean).pop()?.trim()||null}function he(e){return e.trim().toLowerCase().replace(/['"]/gu,"").replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function gn(e,n){if(!n)return!0;const t=he(n);return e.some(s=>{const i=s?.trim();if(!i)return!1;const l=i.toLowerCase(),f=Jt(i);return l===n||he(i)===t||!!(f&&(f.toLowerCase()===n||he(f)===t))})}function Qt(e,n){const t=n?.trim().toLowerCase()||null,{agent:s,facts:i,source:l}=e;return gn([s.harness,s.definitionId,i?.attribution,l],t)}function es(e,n){const t=n?.trim().toLowerCase()||null,{agent:s,facts:i,source:l}=e;return gn([s.project,s.projectRoot,s.cwd,i?.cwd,Z(s,l)],t)}function ns(e){return ln(e.agent.state??null,e.agent)==="needs_attention"?!0:Kn(e.observe?.events??[])}function en(e,n,t,s){return cn(t?.width??e.laneWidths[n.id],s??e.defaultLaneWidth)}function ts(e,n){switch(e.kind){case"session":return n.filter(t=>t.id===e.sessionId);case"harness":return n.filter(t=>Qt(t,e.harness));case"project":return n.filter(t=>es(t,e.projectPath));case"attention":return n.filter(t=>ns(t));default:return[]}}function nn(e,n,t){n.has(t.lane.id)||(n.add(t.lane.id),e.push({key:t.slot?`${t.slot.id}:${t.lane.id}`:t.lane.id,lane:t.lane,widthPx:t.widthPx,zone:t.zone,position:t.position,slotId:t.slot?.id,laneDefId:t.laneDef?.id,isPinned:t.zone!=="main"}))}function Ae(e){return[...e].sort((n,t)=>{const s=Yn(n.zone,t.zone);return s!==0?s:n.position!==t.position?n.position-t.position:n.lane.id.localeCompare(t.lane.id)})}function ss(e){const{autoLanes:n,deck:t,defaultWidthTier:s}=e,i=new Set,l=[],f=[],y=[],u=new Map(t.laneDefs.map(p=>[p.id,p]));for(const p of qn(t.slots)){const L=u.get(p.laneDefId);if(!L)continue;const R=ts(L,n),b=p.zone==="pinned_left"?l:p.zone==="pinned_right"?y:f;for(const I of R)nn(b,i,{lane:I,zone:p.zone,position:p.position,widthPx:en(t,I,p,s),slot:p,laneDef:L})}if(t.showAutoLanes){let p=0;for(const L of n)i.has(L.id)||(nn(f,i,{lane:L,zone:"main",position:p,widthPx:en(t,L,void 0,s)}),p+=1)}const d=Ae(l),m=Ae(f),c=Ae(y);return{pinnedLeft:d,main:m,pinnedRight:c,flat:[...d,...m,...c]}}function as(e){return e.slots.some(n=>n.laneDefId===Xn)}function me(e,n){const t=`harness:${he(n)}`;return e.slots.some(s=>s.laneDefId===t)}function rs(e,n){const t=Zn(n);return e.slots.some(s=>s.laneDefId===t)}function os(e,n,t){const[s,i]=a.useState(()=>Xe(e,n));a.useEffect(()=>{i(Xe(e,n))},[n,e]);const l=a.useCallback(h=>{Jn(h),i(h)},[]),f=a.useMemo(()=>ss({autoLanes:t,deck:s,defaultWidthTier:n}),[t,s,n]),y=a.useCallback((h,A="pinned_left")=>{l(Qn(s,{laneId:h.id,title:Z(h.agent,h.source),zone:A,width:s.laneWidths[h.id]}))},[s,l]),u=a.useCallback(h=>{l(et(s,h))},[s,l]),d=a.useCallback((h,A)=>{l(nt(s,h,A))},[s,l]),m=a.useCallback(h=>{l(tt(s,h))},[s,l]),c=a.useCallback((h,A)=>{l(Ce(s,{kind:"harness",title:A??`${h} sessions`,harness:h,zone:"pinned_left",width:s.defaultLaneWidth}))},[s,l]),p=a.useCallback((h,A)=>{const x=h.trim();if(!x)return;const j=A?.trim()||x.split(/[\\/]/u).filter(Boolean).pop()||x;l(Ce(s,{kind:"project",title:j,projectPath:x,zone:"main",width:s.defaultLaneWidth}))},[s,l]),L=a.useCallback(()=>{l(Ce(s,{kind:"attention",title:"Needs attention",zone:"pinned_left",width:"sm"}))},[s,l]),R=a.useCallback(()=>{l(st(s))},[s,l]),b=a.useCallback(h=>at(s,h),[s]),I=a.useCallback(h=>rt(s,h),[s]);return{deck:s,layout:f,pinLane:y,unpinLane:u,setLaneWidth:d,setDefaultLaneWidth:m,addHarnessLane:c,addAttentionLane:L,addProjectLane:p,clearPins:R,isPinned:b,pinnedZone:I}}function is(e){const[n,t]=a.useState(null),s=a.useRef({laneId:"",x:0,width:512}),i=a.useRef(512),l=a.useCallback((u,d,m)=>{d.preventDefault(),d.stopPropagation(),d.currentTarget.setPointerCapture(d.pointerId),s.current={laneId:u,x:d.clientX,width:m},i.current=m,t(u),document.body.classList.add("s-agent-lanes--resizing-width")},[]),f=a.useCallback(()=>{t(u=>{if(u){document.body.classList.remove("s-agent-lanes--resizing-width");const d=dn(i.current);e(s.current.laneId,d.tier??d.px)}return null})},[e]);a.useEffect(()=>{if(!n)return;const u=m=>{const c=m.clientX-s.current.x;i.current=Math.min(ot,Math.max(it,s.current.width+c));const p=document.querySelector(`[data-lane-id="${s.current.laneId}"]`);p&&p.style.setProperty("--lane-width",`${i.current}px`)},d=()=>f();return window.addEventListener("pointermove",u),window.addEventListener("pointerup",d),window.addEventListener("pointercancel",d),()=>{window.removeEventListener("pointermove",u),window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",d)}},[f,n]);const y=a.useCallback((u,d)=>{e(u,d),document.querySelector(`[data-lane-id="${u}"]`)?.style.removeProperty("--lane-width")},[e]);return{beginResize:l,resetLaneWidth:y,resizingLaneId:n}}const tn=[{key:"lanes",label:"lanes"},{key:"grid",label:"grid"},{key:"floor",label:"floor"}],ls=[{key:"auto",label:"auto"},{key:"2",label:"2"},{key:"3",label:"3"},{key:"4",label:"4"}];function cs(e,n=!1){return e==="grid"?"grid":e==="floor"?n?"lanes":"floor":"lanes"}function ds(e){return e==="2"||e==="3"||e==="4"?e:"auto"}function us(e){return e?tn.filter(n=>n.key!=="floor"):tn}const pn="openscout:agent-lanes-horizon",Ln="openscout:agent-lanes-layout",yn="openscout:agent-lanes-grid-columns",bn="openscout:agent-lanes-technical-rollup",fs=`${bn}:lane:`,ms="openscout:agent-lanes-scroll",hs=96,gs=160,ps=6e4,Ls=6e4,ys=3e4,bs=3e4,vs=3e4,Ss=12e4,ks=["pinned-left","main","pinned-right"];function sn(){return!_e()}function vn(e,n){return`${ms}:${e}:${n}`}function xs(e,n){try{const t=sessionStorage.getItem(vn(e,n)),s=t?Number.parseFloat(t):0;return Number.isFinite(s)&&s>0?s:0}catch{return 0}}function Es(e,n,t){try{sessionStorage.setItem(vn(e,n),String(Math.max(0,Math.round(t))))}catch{}}function Ns(){try{const e=sessionStorage.getItem(pn);if(e&&ge.some(n=>n.key===e))return e}catch{}return It}function ws(e){try{const n=sessionStorage.getItem(Ln);return cs(n,e)}catch{}return"lanes"}function Rs(){try{return ds(sessionStorage.getItem(yn))}catch{return"auto"}}function js(){try{const e=sessionStorage.getItem(bn);if(e==="0")return!1;if(e==="1")return!0}catch{}return null}function Sn(e){return`${fs}${encodeURIComponent(e)}`}function an(e){try{const n=sessionStorage.getItem(Sn(e));if(n==="0")return!1;if(n==="1")return!0}catch{}return js()??!1}function Cs(e,n){try{sessionStorage.setItem(Sn(e),n?"1":"0")}catch{}}function Is(e,n){const t=a.useRef(new Map),s=a.useRef({}),i=a.useCallback((u,d=t.current.get(u))=>{if(!d)return;const m=s.current[u]??xs(e,u);if(m<=0)return;const c=Math.max(0,d.scrollWidth-d.clientWidth),p=Math.min(m,c);Math.abs(d.scrollLeft-p)>1&&(d.scrollLeft=p)},[e]),l=a.useCallback(()=>{for(const u of ks)i(u)},[i]);a.useLayoutEffect(()=>{l();const u=window.requestAnimationFrame(l);return()=>window.cancelAnimationFrame(u)},[e,l,n]);const f=a.useCallback((u,d)=>{if(!d){t.current.delete(u);return}t.current.set(u,d),i(u,d)},[i]);return{handleLaneScroll:a.useCallback((u,d)=>{const m=d.currentTarget.scrollLeft;s.current[u]=m,Es(e,u,m)},[e]),setLaneScrollNode:f}}function As({issue:e}){const n=e.agentNames?.length?e.agentNames.join(", "):e.agentIds?.join(", "),t=e.transcriptPaths?.join(" · "),s=[n,t].filter(Boolean).join(" · ");return o.jsxs("li",{className:"s-agent-lanes-issues-item",children:[o.jsx("span",{className:"s-agent-lanes-issues-kind",children:e.kind.replaceAll("_"," ")}),o.jsx("span",{className:"s-agent-lanes-issues-message",children:e.message}),s?o.jsx("span",{className:"s-agent-lanes-issues-detail",children:s}):null]})}function Ts({loadState:e,onRetry:n}){const t=[e.discovery==="error"?"session discovery":"",e.recent==="error"?"recent history":""].filter(Boolean).join(" and "),s=e.recent==="error"?"Recent activity could not be loaded":"Session discovery could not be completed";return o.jsx("div",{className:"s-agent-lanes-empty s-agent-lanes-empty--degraded",role:"alert",children:o.jsxs("div",{className:"s-agent-lanes-empty-card",children:[o.jsxs("div",{className:"s-agent-lanes-empty-rail","aria-hidden":"true",children:[o.jsx("span",{}),o.jsx("span",{}),o.jsx("span",{})]}),o.jsxs("div",{className:"s-agent-lanes-empty-copy",children:[o.jsx("span",{className:"s-agent-lanes-empty-kicker",children:"Tail incomplete"}),o.jsx("h2",{children:s}),o.jsxs("p",{children:["Scout could not finish ",t||"the tail scan",", so this is not being treated as a quiet interval."]}),o.jsx("p",{className:"s-agent-lanes-empty-secondary",children:"Live events can still arrive while Scout retries."})]}),o.jsx("div",{className:"s-agent-lanes-empty-actions",children:o.jsx("button",{type:"button",onClick:n,children:"Retry tail scan"})})]})})}function _s({activeFilterLabel:e,horizon:n,horizonLabel:t,showAutoLanes:s,onHorizonChange:i,onAddAttentionLane:l,onAddCodexLane:f,sourceCount:y,eventCount:u,degraded:d=!1,onRetry:m}){const c=!!e,p=c?"No matching lanes":s?`No activity in the last ${t}`:"No pinned lanes",L=c?`${e} has no activity in the last ${t}.`:s?`Scout checked ${y.toLocaleString()} session source${y===1?"":"s"} and ${u.toLocaleString()} recent tail event${u===1?"":"s"}; nothing is active in this interval.`:"Automatic lanes are off, and this deck has no pinned sessions.",R=d?"The last tail refresh failed, so this reading is from the previous scan and may be behind.":s?"Scout will keep listening. New turns and tool output will appear here automatically.":"Pin a session lane or turn automatic lanes back on to populate the deck.",b=n==="5m"?"30m":n==="24h"?null:"24h";return o.jsx("div",{className:"s-agent-lanes-empty",role:"status","aria-live":"polite",children:o.jsxs("div",{className:"s-agent-lanes-empty-card",children:[o.jsxs("div",{className:"s-agent-lanes-empty-rail","aria-hidden":"true",children:[o.jsx("span",{}),o.jsx("span",{}),o.jsx("span",{})]}),o.jsxs("div",{className:"s-agent-lanes-empty-copy",children:[o.jsx("span",{className:"s-agent-lanes-empty-kicker",children:d?"Tail refresh behind":c?"Filter checked":s?"Tail scanned":"Lane deck ready"}),o.jsx("h2",{children:p}),o.jsx("p",{children:L}),o.jsx("p",{className:"s-agent-lanes-empty-secondary",children:R})]}),o.jsxs("div",{className:"s-agent-lanes-empty-actions",children:[d&&m?o.jsx("button",{type:"button",onClick:m,children:"Retry tail scan"}):null,b?o.jsxs("button",{type:"button",onClick:()=>i(b),children:["Look back ",mn(b)]}):null,o.jsx("button",{type:"button",onClick:l,children:"Show attention"}),o.jsx("button",{type:"button",onClick:f,children:"Pin Codex sessions"})]})]})})}function Ps({lane:e,widthPx:n,laneTitle:t,pinned:s,laneWidth:i,defaultWidth:l,isNew:f,nowMs:y,traceWindowMs:u,traceWindowLabel:d,summaryHeight:m,onSummaryResizeStart:c,onSummaryResizeReset:p,summaryResizing:L,onInspect:R,onTraceEventSelect:b,onTogglePin:I,onWidthChange:h,onWidthResizeStart:A,widthResizing:x,focusProps:j,operatorName:v,grid:D=!1}){const{agent:C,observe:S,source:k}=e,T=Tt(S),M=!!S,z=T?" s-agent-lane--live":"",w=f?" s-agent-lane--new":"",[F,B]=a.useState(!0),[W,V]=a.useState(()=>an(e.id)),G=a.useRef(e.id);a.useEffect(()=>{if(G.current!==e.id){G.current=e.id,V(an(e.id));return}Cs(e.id,W)},[W,e.id]);const O=j?.ref,U=j?{"data-cursor":j["data-cursor"],tabIndex:j.tabIndex,onFocus:j.onFocus}:void 0,K=()=>o.jsx("section",{className:"s-agent-lane-trace","aria-label":`${Z(C,k)} trace`,children:o.jsx("div",{className:"s-agent-lane-body",children:M?o.jsx(Un,{data:S??void 0,agentId:e.source==="scout"?C.id:void 0,sessionId:C.harnessSessionId,showRail:!1,variant:"lane",nowMs:y,traceWindowMs:u,traceWindowLabel:d,laneCollapseTechnicalEvents:W,onLaneCollapseTechnicalEventsChange:V,laneOperatorName:v,onLaneEventSelect:X=>b(e,X)}):o.jsx("div",{className:"s-agent-lane-empty",children:"Waiting for trace activity…"})})}),te=a.useMemo(()=>pt(e,{isLive:T,nowMs:y}),[e,T,y]),se=a.useMemo(K,[M,S,e.source,C.id,C.harnessSessionId,y,u,d,W,v,b,e]);return o.jsxs("article",{ref:O,"data-lane-id":e.id,className:`s-agent-lane${D?" s-agent-lane--grid":""}${z}${w}${s?" s-agent-lane--pinned":""}${j?.["data-cursor"]?" s-agent-lane--cursor":""}`,style:D?void 0:{"--lane-width":`${n}px`},...U,children:[o.jsx(ht,{title:t,width:i,defaultWidth:l,pinned:s,onTogglePin:I,onWidthChange:h,onResizeStart:A,resizing:x,statusLabel:hn(C,k),live:T,widthControls:!D}),o.jsx(gt,{model:te,avatar:o.jsx(Gn,{agent:C,placement:"row",size:44,presence:!1,tile:!1}),collapsed:F,cockpitHeight:F?void 0:m,onToggleCollapsed:()=>B(X=>!X),onOpen:()=>R(e)}),!F&&o.jsx(xt,{onResizeStart:c,onReset:p,active:L}),se]})}function Ds({navigate:e,agents:n,data:t,embedded:s=!1,laneSize:i="lg",profileId:l,harnessFilter:f,projectFilter:y}){const u=a.useContext(Bn),d=t?.agents??n??u?.agents??[],m=t?.operatorName?.trim()||u?.onboarding?.operatorName?.trim()||void 0,c=l??un(),p=i??fn(),[L,R]=a.useState(Date.now()),[b,I]=a.useState(Ns),[h,A]=a.useState(()=>ws(s)),[x,j]=a.useState(Rs),v=!s&&h==="floor",D=h==="grid",C=v?"4h":b,[S,k]=a.useState(St),[T,M]=a.useState([]),{beginResize:z,resetSummaryHeight:w,resizing:F}=kt(k),B=a.useCallback(r=>z(r,S),[z,S]),W=At(),V=Et(C),G=Zt({enabled:!t,includeTranscriptReplay:!0,discoveryIntervalMs:s?ps:Ls,recentLimit:W,recentWindowMs:V,discoveryLimit:s?hs:gs,pauseWhenHidden:!0}),O=t?.discovery??G.discovery,U=t?.tailEvents??G.events,K=t?.loadState??G.loadState,te=t?.retryInitialLoad??G.retryInitialLoad,se=t?.terminalSessions??T,X={view:"ops",mode:"lanes"},J=mn(C),De=s?ys:1e4,Me=s?bs:1e4;a.useEffect(()=>{const r=setInterval(()=>{sn()||R(Date.now())},De);return()=>clearInterval(r)},[De]),a.useEffect(()=>{if(t)return;let r=!1;const g=async()=>{if(!sn())try{const Re=await Hn({includeDiscovered:!1});r||M(Re)}catch{r||M([])}};g();const N=setInterval(()=>{g()},Me),P=on(()=>{g()});return()=>{r=!0,clearInterval(N),P()}},[t,Me]),a.useEffect(()=>{try{sessionStorage.setItem(pn,b)}catch{}},[b]),a.useEffect(()=>{try{sessionStorage.setItem(Ln,h)}catch{}},[h]),a.useEffect(()=>{try{sessionStorage.setItem(yn,x)}catch{}},[x]);const kn=a.useRef(Nt()),ze=a.useRef(""),[ae,Oe]=a.useState(()=>new Set),[ye,$e]=a.useState(null),xn=a.useMemo(()=>d.filter(r=>wt(r,L,C)),[d,L,C]),En=Wn(xn,{enabled:!t,activeIntervalMs:s?vs:void 0,idleIntervalMs:s?Ss:void 0,pauseWhenHidden:!0}),Fe=t?.observeCache??En,We=Vt(K),He=We==="blank",Nn=We==="degraded",Be=O?.totals.transcripts??O?.transcripts?.length??0;a.useEffect(()=>{if(ae.size===0)return;const r=setTimeout(()=>Oe(new Set),900);return()=>clearTimeout(r)},[ae]);const{lanes:re,issues:$,freshLaneIds:be}=a.useMemo(()=>{const r=Rt({transcripts:O?.transcripts??[],tailEvents:U,processes:O?.processes??[],scoutAgents:d,terminalSessions:se,observeCache:Fe,now:L,workingOnly:!0,horizon:C}),g=jt(r.lanes,kn.current),N=[...Ct(O),...r.issues];return{lanes:g.lanes,issues:N,freshLaneIds:g.newLaneIds}},[O,U,d,se,Fe,L,C]);a.useEffect(()=>{const r=$.map(g=>`${g.id}\0${g.message}`).join(`
|
|
2
|
+
`);r!==ze.current&&(ze.current=r,$.length!==0&&console.warn(`[agent-lanes] ${$.length} roster issue${$.length===1?"":"s"}`,$))},[$]),a.useEffect(()=>{be.length!==0&&Oe(r=>{const g=new Set(r);for(const N of be)g.add(N);return g})},[be.join("\0")]);const Q=a.useMemo(()=>re.find(r=>r.id===ye)??null,[ye,re]),ve=a.useMemo(()=>re.filter(r=>zs(r,{harnessFilter:f,projectFilter:y})),[re,f,y]),wn=a.useCallback(r=>Os(r,{harnessFilter:f,projectFilter:y}),[f,y]),{deck:_,layout:E,pinLane:oe,unpinLane:ie,setLaneWidth:Se,addHarnessLane:ee,addAttentionLane:Ve,addProjectLane:Rn,clearPins:jn,isPinned:le}=os(c,p,ve),{beginResize:Ge,resizingLaneId:Ke}=is(Se),ke=a.useMemo(()=>$s({harnessFilter:f,projectFilter:y}),[f,y]),xe=a.useMemo(()=>Q?Lt(Q):null,[Q]),Cn=a.useMemo(()=>xe?rs(_,xe):!1,[_,xe]),In=a.useMemo(()=>[E.pinnedLeft,E.main,E.pinnedRight].map(r=>r.map(g=>`${g.key}:${g.widthPx}`).join(",")).join("/"),[E.main,E.pinnedLeft,E.pinnedRight]),{handleLaneScroll:q,setLaneScrollNode:Y}=Is(c,In),An=a.useCallback(r=>{Y("pinned-left",r)},[Y]),Tn=a.useCallback(r=>{Y("main",r)},[Y]),_n=a.useCallback(r=>{Y("pinned-right",r)},[Y]),Pn=a.useCallback(r=>{q("pinned-left",r)},[q]),Dn=a.useCallback(r=>{q("main",r)},[q]),Mn=a.useCallback(r=>{q("pinned-right",r)},[q]),ne=E.flat,Ee=E.pinnedLeft.length+E.pinnedRight.length,ce=v?ve.length:ne.length,de=ct(dt(K,ce),He?0:mt);a.useEffect(()=>{if(v)return;const r=ne.map(g=>{const{lane:N}=g;return{id:N.id,label:Z(N.agent,N.source),statusLabel:hn(N.agent,N.source),tone:ln(N.agent.state,N.agent),agentId:yt(N.agent)?void 0:N.agent.id,updatedAt:N.lastActiveAt>0?N.lastActiveAt:void 0}});Qe(r)},[ne,v]),a.useEffect(()=>()=>Qe(null),[]);const[Ue,Ne]=a.useState(null),we=a.useCallback(r=>{$e(r.id)},[]),qe=a.useCallback((r,g)=>{Ne({lane:r,event:g})},[]),zn=a.useCallback(r=>{const g=r.observe?.events.at(-1);g&&Ne({lane:r,event:g})},[]),On=a.useCallback(r=>{le(r.id)?ie(r.id):oe(r)},[le,oe,ie]),{getLaneFocusProps:Ye}=Xt({lanes:ne.map(r=>r.lane),inspectedLaneId:ye,onInspect:we,onHorizonChange:I,onTogglePin:On}),[ue,H]=a.useState(!1),Ze=a.useRef(null);a.useEffect(()=>{if(!ue)return;const r=g=>{Ze.current?.contains(g.target)||H(!1)};return window.addEventListener("pointerdown",r),()=>window.removeEventListener("pointerdown",r)},[ue]);const fe=a.useCallback((r,g,N=!1)=>{const{lane:P}=r,Re=Z(P.agent,P.source),$n=_.laneWidths[P.id]??dn(r.widthPx).tier??r.widthPx;return o.jsx(Ps,{lane:P,widthPx:r.widthPx,laneTitle:Re,pinned:r.isPinned,laneWidth:$n,defaultWidth:_.defaultLaneWidth,isNew:ae.has(P.id),nowMs:L,traceWindowMs:V,traceWindowLabel:J,summaryHeight:S,onSummaryResizeStart:B,onSummaryResizeReset:w,summaryResizing:F,onInspect:we,onTraceEventSelect:qe,onTogglePin:()=>{le(P.id)?ie(P.id):oe(P)},onWidthChange:je=>Se(P.id,je),onWidthResizeStart:je=>Ge(P.id,je,r.widthPx),widthResizing:Ke===P.id,focusProps:Ye(g,P.id),operatorName:m,grid:N},r.key)},[Ge,_.defaultLaneWidth,_.laneWidths,Ye,B,J,we,qe,le,m,ae,L,oe,w,Ke,Se,S,F,V,ie]);return o.jsxs("div",{className:`s-agent-lanes${s?" s-agent-lanes--embedded s-agent-lanes--low-motion":""}`,"data-lane-profile":c,"data-lane-layout":v?"floor":h,"data-lanes-deck-version":"1",children:[o.jsxs("div",{className:"s-agent-lanes-bar",children:[o.jsxs("div",{className:"s-agent-lanes-bar-leading",children:[o.jsx("div",{className:"s-agent-lanes-title",children:"Agent Lanes"}),o.jsxs("div",{className:"s-agent-lanes-meta","aria-label":"Lane deck status",children:[o.jsxs("span",{className:"s-agent-lanes-meta-stat",children:[ce," live"]}),!v&&Ee>0?o.jsxs("span",{className:"s-agent-lanes-meta-stat",children:[Ee," pinned"]}):null,o.jsx("span",{className:"s-agent-lanes-meta-stat",children:v?"past 30m · lanes 4h":`trace ${J}`}),ke?o.jsx("span",{className:"s-agent-lanes-meta-filter",children:ke}):null,o.jsxs("span",{className:"s-agent-lanes-meta-detail",children:["deck v1 · ",c]})]})]}),o.jsxs("div",{className:"s-agent-lanes-bar-controls",children:[o.jsx("div",{className:"s-agent-lanes-layouts",role:"group","aria-label":"Lane layout",children:us(s).map(r=>o.jsx("button",{type:"button",className:`s-agent-lanes-horizon${h===r.key?" s-agent-lanes-horizon--on":""}`,"aria-pressed":h===r.key,onClick:()=>A(r.key),children:r.label},r.key))}),D?o.jsx("div",{className:"s-agent-lanes-grid-density",role:"group","aria-label":"Grid columns",children:ls.map(r=>o.jsx("button",{type:"button",className:`s-agent-lanes-horizon${x===r.key?" s-agent-lanes-horizon--on":""}`,"aria-pressed":x===r.key,title:r.key==="auto"?"Fit columns to the available width":`${r.key} columns`,onClick:()=>j(r.key),children:r.label},r.key))}):null,o.jsxs("div",{className:"s-agent-lanes-deck-menu",ref:Ze,hidden:v,children:[o.jsx("button",{type:"button",className:"s-agent-lanes-deck-btn","aria-expanded":ue,onClick:()=>H(r=>!r),children:"+ Lane"}),ue?o.jsxs("div",{className:"s-agent-lanes-deck-popover",role:"menu",children:[o.jsx("button",{type:"button",role:"menuitem",className:"s-agent-lanes-deck-item",onClick:()=>{Ve(),H(!1)},disabled:as(_),children:"Needs attention"}),o.jsx("button",{type:"button",role:"menuitem",className:"s-agent-lanes-deck-item",onClick:()=>{ee("codex","Codex sessions"),H(!1)},disabled:me(_,"codex"),children:"Codex sessions"}),o.jsx("button",{type:"button",role:"menuitem",className:"s-agent-lanes-deck-item",onClick:()=>{ee("claude","Claude sessions"),H(!1)},disabled:me(_,"claude"),children:"Claude sessions"}),o.jsx("button",{type:"button",role:"menuitem",className:"s-agent-lanes-deck-item",onClick:()=>{ee("grok","Grok sessions"),H(!1)},disabled:me(_,"grok"),children:"Grok sessions"}),o.jsx("button",{type:"button",role:"menuitem",className:"s-agent-lanes-deck-item",onClick:()=>{ee("kimi","Kimi sessions"),H(!1)},disabled:me(_,"kimi"),children:"Kimi sessions"}),o.jsx("button",{type:"button",role:"menuitem",className:"s-agent-lanes-deck-item s-agent-lanes-deck-item--danger",onClick:()=>{jn(),H(!1)},disabled:Ee===0,children:"Clear pinned lanes"})]}):null]}),v?null:o.jsx("div",{className:"s-agent-lanes-horizons",role:"group","aria-label":"Activity window",children:ge.map((r,g)=>o.jsx("button",{type:"button",className:`s-agent-lanes-horizon${b===r.key?" s-agent-lanes-horizon--on":""}`,"aria-pressed":b===r.key,title:`${r.label} window (${g+1})`,onClick:()=>I(r.key),children:r.label},r.key))})]})]}),t==null&&$.length>0?o.jsxs("div",{className:"s-agent-lanes-issues",role:"status","aria-live":"polite",children:[o.jsxs("div",{className:"s-agent-lanes-issues-head",children:[o.jsx("span",{className:"s-agent-lanes-issues-badge",children:"Roster issues"}),o.jsxs("span",{className:"s-agent-lanes-issues-meta",children:[$.length," fleet/transcript warning",$.length===1?"":"s"," — lanes follow tail, not agent registry"]})]}),o.jsx("ul",{className:"s-agent-lanes-issues-list",children:$.map(r=>o.jsx(As,{issue:r},r.id))})]}):null,ce===0?de.visible?o.jsx(ut,{discovery:O,discoveryPhase:K.discovery,windowMs:V,nowMs:L,layout:v?"none":D?"grid":"scroll",gridColumns:x,laneWidthPx:cn(_.defaultLaneWidth,_.defaultLaneWidth),matchTranscript:wn}):He?o.jsx(Ts,{loadState:K,onRetry:()=>{te()}}):o.jsx(_s,{activeFilterLabel:ke,horizon:b,horizonLabel:J,showAutoLanes:_.showAutoLanes,onHorizonChange:I,onAddAttentionLane:Ve,onAddCodexLane:()=>ee("codex","Codex sessions"),sourceCount:Be,eventCount:U.length,degraded:Nn,onRetry:()=>{te()}}):v?o.jsx(lt,{lanes:ve,now:L,onOpenTrace:zn,railLedger:!0,operatorName:m}):D?o.jsx("div",{className:"s-agent-lanes-grid","data-grid-columns":x,role:"listbox","aria-label":"Agent lane grid",children:ne.map((r,g)=>fe(r,g,!0))}):o.jsxs("div",{className:"s-agent-lanes-body",children:[E.pinnedLeft.length>0?o.jsxs("section",{className:"s-agent-lanes-zone s-agent-lanes-zone--pinned-left","aria-label":"Pinned lanes",children:[o.jsx("div",{className:"s-agent-lanes-zone-label",children:"Pinned"}),o.jsx("div",{ref:An,className:"s-agent-lanes-scroll",role:"listbox","aria-label":"Pinned agent lanes",onScroll:Pn,children:E.pinnedLeft.map((r,g)=>fe(r,g))})]}):null,E.main.length>0?o.jsxs("section",{className:"s-agent-lanes-zone s-agent-lanes-zone--main","aria-label":"Active lanes",children:[E.pinnedLeft.length>0?o.jsx("div",{className:"s-agent-lanes-zone-label",children:"Live"}):null,o.jsx("div",{ref:Tn,className:"s-agent-lanes-scroll",role:"listbox","aria-label":"Active agent lanes",onScroll:Dn,children:E.main.map((r,g)=>fe(r,E.pinnedLeft.length+g))})]}):null,E.pinnedRight.length>0?o.jsxs("section",{className:"s-agent-lanes-zone s-agent-lanes-zone--pinned-right","aria-label":"Pinned right lanes",children:[o.jsx("div",{className:"s-agent-lanes-zone-label",children:"Pinned"}),o.jsx("div",{ref:_n,className:"s-agent-lanes-scroll",role:"listbox","aria-label":"Pinned right agent lanes",onScroll:Mn,children:E.pinnedRight.map((r,g)=>fe(r,E.pinnedLeft.length+E.main.length+g))})]}):null]}),de.visible?o.jsx(ft,{loadState:K,sourceCount:Be,processCount:O?.processes.length??0,eventCount:U.length,laneCount:ce,horizonLabel:J,handedOff:de.exiting,exiting:de.exiting}):null,Q&&o.jsx(bt,{lane:Q,navigate:e,returnRoute:X,navigationEnabled:t==null,onClose:()=>$e(null),onPinProject:Rn,projectPinned:Cn}),Ue&&o.jsx(vt,{target:Ue,onClose:()=>Ne(null)})]})}function pe(e){const n=e?.trim().toLowerCase();return n||null}function Te(e){return e.trim().toLowerCase().replace(/['"]/gu,"").replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function Ms(e){return e.trim().replace(/\/+$/u,"").split(/[\\/]/u).filter(Boolean).pop()?.trim()||null}function Le(e,n){if(!n)return!0;const t=Te(n);return e.some(s=>{const i=s?.trim();if(!i)return!1;const l=i.toLowerCase(),f=Ms(i);return l===n||Te(i)===t||!!(f&&(f.toLowerCase()===n||Te(f)===t))})}function zs(e,n){const t=pe(n.harnessFilter),s=pe(n.projectFilter),{agent:i,facts:l,source:f}=e;return Le([i.harness,i.definitionId,l?.attribution,f],t)&&Le([i.project,i.projectRoot,i.cwd,l?.cwd,Z(i,f)],s)}function Os(e,n){return Le([e.harness,e.source],pe(n.harnessFilter))&&Le([e.project,e.cwd],pe(n.projectFilter))}function $s(e){return[e.harnessFilter?.trim()?`harness ${e.harnessFilter.trim()}`:"",e.projectFilter?.trim()?`project ${e.projectFilter.trim()}`:""].filter(Boolean).join(" · ")}const Fs=Vn({id:"lanes",label:"Agent Lanes",route:{view:"ops",mode:"lanes"},webPath:"/ops/lanes",screen:"AgentLanesView",embed:{path:"/embed/agent-lanes",aliases:["/ops/lanes/embed","/embed/lanes","/embed/traces"],profile:"macos.lanes",rootClassName:"s-agent-lanes-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},hosts:{macos:!0},resolveEmbedProps:e=>({profileId:un(),laneSize:fn(),harnessFilter:e.get("harness")?.trim()||null,projectFilter:e.get("project")?.trim()||null})}}),fa=Object.freeze(Object.defineProperty({__proto__:null,AgentLanesView:Ds,scoutSurface:Fs},Symbol.toStringTag,{value:"Module"}));export{Ds as A,fa as a,ss as r,Zt as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,j as t}from"./index-
|
|
1
|
+
import{r as i,j as t}from"./index-DvLtl7rV.js";import{n as W,e as q,f as D}from"./colors-BtO5_zlx.js";import{a as G}from"./api-Co9aQ2Jw.js";import{q as M}from"./terminal-takeover-_Jyys4me.js";import{t as S}from"./time-Dhsh_2EG.js";import{u as U}from"./Provider-CtXJeLrP.js";import{o as N}from"./openContent-C6XO6kr5.js";import{E as F}from"./eye-BRyD0jno.js";import{T as H}from"./terminal-9GRS_Qdc.js";function A(e){return e?e.length>18?`${e.slice(0,8)}...${e.slice(-6)}`:e:null}function ee({agent:e,catalog:r,navigate:I,returnTo:g,variant:m="default",className:O,onNavigate:v}){const p=U(),[L,c]=i.useState(null),[$,b]=i.useState(!1),f=I??p.navigate,h=g??p.route;i.useEffect(()=>{b(!1)},[e.id]),i.useEffect(()=>{if(r!==void 0){c(null);return}let s=!1;return G(`/api/agents/${encodeURIComponent(e.id)}/session-catalog`).then(R=>{s||c(R)}).catch(()=>{s||c(null)}),()=>{s=!0}},[e.id,r]);const a=r===void 0?L:r,u=e.terminalSurface??(e.transport==="tmux"&&e.harnessSessionId?{backend:"tmux",sessionName:e.harnessSessionId,paneId:null,socketDir:null}:null),o=a?.activeSessionId??(u?e.harnessSessionId??u.sessionName:null),T=i.useMemo(()=>a?.sessions.find(s=>s.id===o)??null,[o,a?.sessions]);W(e.state);const n=!!(u&&o),w=n||!!a?.resumeCommand,x=q(e.state,e),l=m==="compact",E=x?o?l?n?"Live terminal":"Live trace":`Live ${A(o)}`:"Working":o?l?n?"Terminal":"Trace":`${n?"Terminal":"Trace"} ${A(o)}`:D(e.state,e)?"Callable":"No live turn",j=T?.startedAt?S(T.startedAt):e.updatedAt?S(e.updatedAt):null,y=n?l?"Observe":"Observe terminal":l?"Trace":"Observe trace",k=n?"Observe the live terminal":"Open the web observe trace",d=s=>{v?.(),N(f,{view:"terminal",agentId:e.id,mode:s},{returnTo:h})},C=()=>{v?.(),N(f,{view:"agents-v2",agentId:e.id,tab:"observe"},{returnTo:h})},z=()=>{if(n){d("takeover");return}const s=a?.resumeCommand;s&&(b(!0),M({command:s,cwd:a?.resumeCwd,agentId:e.id}).then(()=>d("takeover")))},B=["agent-live-actions",`agent-live-actions--${m}`,x?"agent-live-actions--live":"",O??""].filter(Boolean).join(" ");return t.jsxs("div",{className:B,children:[t.jsxs("div",{className:"agent-live-actions-status",children:[t.jsx("span",{className:"agent-live-actions-dot"}),t.jsx("span",{className:"agent-live-actions-status-main",children:E}),j&&t.jsx("span",{className:"agent-live-actions-status-detail",children:j})]}),t.jsxs("div",{className:"agent-live-actions-buttons",children:[t.jsxs("button",{type:"button",className:"agent-live-actions-button agent-live-actions-button--primary",onClick:()=>n?d("observe"):C(),title:k,"aria-label":k,children:[t.jsx(F,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),t.jsx("span",{children:y})]}),n&&t.jsx("button",{type:"button",className:"agent-live-actions-button",onClick:C,title:"Open the web observe trace",children:t.jsx("span",{children:"Trace"})}),w&&t.jsxs("button",{type:"button",className:"agent-live-actions-button",onClick:z,title:a?.resumeCommand??"Open interactive terminal takeover",children:[t.jsx(H,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),t.jsx("span",{children:$?"Going...":"Takeover"})]})]})]})}export{ee as A};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as b,j as t}from"./index-DvLtl7rV.js";import{A as C}from"./AgentAvatar-6-KBVKUu.js";import{H as S}from"./HarnessMark-B979GCSB.js";import{u as B,b as L,f as T}from"./use-fleet-active-asks-DAspZQjE.js";import{b as F,p as R,N as _,t as u}from"./agent-master-model-DqjrVI2h.js";import{t as q}from"./time-Dhsh_2EG.js";import{u as z}from"./use-conversation-list-C9ABzjXI.js";import{u as E}from"./Provider-CtXJeLrP.js";import{ConversationScreen as A}from"./ConversationScreen-CR9pWB65.js";/* empty css */import{A as O}from"./arrow-up-right-C6Wl-1uw.js";import{X as H}from"./x-CAbNespN.js";import"./SpriteAvatar-z5hHesx9.js";import"./colors-BtO5_zlx.js";import"./CrewAvatar-BwXjyg8N.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./message-visibility-CGOmSSKs.js";import"./conversation-model-Dc02NsGp.js";import"./createLucideIcon-DezKXSG2.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"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.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"./index-zvhpRHao.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.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"./openContent-C6XO6kr5.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.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"./BackToPicker-CXZjBRAe.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"./tail-events-Ps8KpKah.js";import"./ConversationStatus-DVzSb2Hv.js";import"./check-ofKUE8yH.js";import"./sparkles-CETYrxGA.js";function de({agentId:e,threadId:m,machineId:r,navigate:n}){const{agents:h}=E(),{sessions:v,loading:k}=z(),l=B(),{agent:i,memberAgentIds:j,sessions:g,master:o,threads:x,thread:a}=b.useMemo(()=>F({agentId:e,threadId:m,machineId:r,agents:h,sessions:v}),[e,m,r,h,v]),w=b.useMemo(()=>L(l,j),[l,j]),p=s=>({view:"messages",agentId:e,...s?{threadId:s}:{},...r?{machineId:r}:{}}),M=s=>({view:"messages",conversationId:s,...r?{machineId:r}:{}}),d=i?.name??g[0]?.agentName??e.split(".")[0]??e,y=(()=>{const s=R(i);return s===_?null:s})(),c=W(w),f=[y,c?.label??i?.branch??null].filter(Boolean).join(" · ");return t.jsxs("div",{className:"amv",children:[t.jsxs("section",{className:"amv-main",children:[t.jsxs("header",{className:"amv-head",children:[t.jsx(C,{agent:i??{name:d,harness:o?.harness??null,state:null},placement:"row",size:32}),t.jsxs("div",{className:"amv-ident",children:[t.jsx("span",{className:"amv-name",children:d}),f?t.jsxs("span",{className:"amv-sub",children:[c?t.jsx("span",{className:"amv-dot","data-tone":c.tone,"aria-hidden":!0}):null,f]}):null]}),i?.harness??o?.harness?t.jsx(S,{harness:i?.harness??o?.harness??"",size:14}):null]}),x.length>0?t.jsx("div",{className:"amv-strip",role:"list","aria-label":"Session threads",children:x.map(s=>{const N=s.id===a?.id;return t.jsxs("button",{type:"button",role:"listitem",className:`amv-card${N?" amv-card--on":""}`,onClick:()=>n(N?p():p(s.id)),children:[t.jsx("span",{className:"amv-mark","data-state":J(s,l),"aria-hidden":!0}),t.jsx("span",{className:"amv-cardTitle",children:u(s)}),t.jsx("span",{className:"amv-cardMeta",children:s.lastMessageAt?q(s.lastMessageAt):"—"})]},s.id)})}):null,t.jsx("div",{className:"amv-feed",children:o?t.jsx(A,{conversationId:o.id,navigate:n,embedded:!0,showBackNav:!1},o.id):t.jsx("div",{className:"amv-empty",children:k?"Loading conversations…":`No conversations with ${d} yet.`})})]}),a?t.jsxs("aside",{className:"amv-thread","aria-label":"Thread",children:[t.jsxs("header",{className:"amv-threadHead",children:[t.jsxs("div",{className:"amv-threadIdent",children:[t.jsx("span",{className:"amv-threadKicker",children:"Thread"}),t.jsx("span",{className:"amv-threadTitle",title:u(a),children:u(a)})]}),t.jsx("button",{type:"button",className:"amv-threadBtn",title:"Open as full conversation","aria-label":"Open as full conversation",onClick:()=>n(M(a.id)),children:t.jsx(O,{size:14,strokeWidth:2,"aria-hidden":!0})}),t.jsx("button",{type:"button",className:"amv-threadBtn",title:"Close thread","aria-label":"Close thread",onClick:()=>n(p()),children:t.jsx(H,{size:14,strokeWidth:2,"aria-hidden":!0})})]}),t.jsx("div",{className:"amv-threadBody",children:t.jsx(A,{conversationId:a.id,navigate:n,embedded:!0,showBackNav:!1},a.id)})]}):null]})}function W(e){return e?e.status==="working"?{label:"working",tone:"working"}:e.status==="needs_attention"?{label:"needs you",tone:"attention"}:e.status==="queued"?{label:"starting",tone:"pending"}:null:null}function $(e){return e.status==="needs_attention"?"needs_you":e.status==="working"||e.status==="queued"?"working":"quiet"}function J(e,m){const r=T(m,e);return r?$(r):"quiet"}export{de as AgentMasterScreen};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as s,r as p}from"./index-
|
|
1
|
+
import{j as s,r as p}from"./index-DvLtl7rV.js";import{u as K}from"./Provider-CtXJeLrP.js";import{o as E}from"./openContent-C6XO6kr5.js";import{a as H}from"./api-Co9aQ2Jw.js";import{c as P}from"./clipboard-e3fSpeo7.js";import{t as D}from"./time-Dhsh_2EG.js";import"./router-B9vQkNJL.js";import"./perf-PX8Rx0EP.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"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";const q=30*6e4,z=/^(?:hey|hi|hello)\b[^,]{0,24},\s*|^(?:can|could|would|will)\s+(?:you|we|i)\s+(?:please\s+)?|^please\s+|^let'?s\s+/i,L={created:"+",modified:"~",read:"·"};function J(e){const a=(e.preview??"").replace(/^\[ask:[^\]]+\]\s*/i,"").replace(/\s+/g," ").replace(z,"").trim();if(a)return a.length>150?`${a.slice(0,150).replace(/\s+\S*$/,"")}…`:a;const t=e.title?.trim();return t&&t!==e.agentName?t:"Untitled session"}function R(e){if(!e)return"—";const a=e.replace(/\.jsonl$/,"").replace(/^c\./,"").replace(/^session[_:-]?/i,"");return a.length<=10?a:`${a.slice(0,8)}…${a.slice(-3)}`}function Q(e){return e.replace(/^\/(?:Users|home)\/[^/]+\/(?:dev\/|projects\/|src\/|code\/)?/,"")}function u(e){return!e||e<=0?"0":e<1e3?`${e}`:`${(e/1e3).toFixed(e<1e4?1:0).replace(/\.0$/,"")}k`}function X(e){const a=new Map;for(const t of e){if(t.kind!=="tool")continue;const l=(t.tool??"tool").toLowerCase();a.set(l,(a.get(l)??0)+1)}return[...a.entries()].map(([t,l])=>({name:t,n:l})).sort((t,l)=>l.n-t.n).slice(0,8)}function F(){const[e,a]=p.useState(!1),t=p.useRef(null),l=p.useCallback(r=>{P(r).then(c=>{c&&(a(!0),t.current&&window.clearTimeout(t.current),t.current=window.setTimeout(()=>a(!1),1200))})},[]);return p.useEffect(()=>()=>{t.current&&window.clearTimeout(t.current)},[]),[e,l]}function B({copied:e}){return s.jsx("svg",{className:"ap-sx-copyIco",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:e?s.jsx("path",{d:"M2.6 6.3 5 8.6 9.5 3.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}):s.jsxs(s.Fragment,{children:[s.jsx("rect",{x:"3.6",y:"3.6",width:"6",height:"6",rx:"1.3",stroke:"currentColor",strokeWidth:"1.05"}),s.jsx("path",{d:"M7.8 3.6V2.5A1.1 1.1 0 0 0 6.7 1.4H2.5A1.1 1.1 0 0 0 1.4 2.5v4.2A1.1 1.1 0 0 0 2.5 7.8h1.1",stroke:"currentColor",strokeWidth:"1.05",strokeLinecap:"round",strokeLinejoin:"round"})]})})}function Y({value:e,display:a,title:t,className:l}){const[r,c]=F();return s.jsxs("button",{type:"button",className:l?`ap-sx-copy ${l}`:"ap-sx-copy","data-copied":r||void 0,title:r?"Copied":t??e,"aria-label":`Copy ${e}`,onClick:o=>{o.stopPropagation(),c(e)},children:[s.jsx("span",{className:"ap-sx-copyText",children:a}),s.jsx(B,{copied:r})]})}function Z({session:e,agentId:a,status:t}){const{route:l,navigate:r}=K(),[c,o]=p.useState(null),[v,d]=p.useState("loading"),h=e.harnessSessionId??e.id;p.useEffect(()=>{if(!a){d("loaded");return}let n=!1;return d("loading"),o(null),H(`/api/agents/${encodeURIComponent(a)}/observe`).then(i=>{n||(o(i),d("loaded"))}).catch(()=>{n||d("loaded")}),()=>{n=!0}},[a]);const m=c?.data??null,b=m?.metadata,x=b?.usage,g=b?.session,f=m?.files??[],k=p.useMemo(()=>X(m?.events??[]),[m?.events]),[T,O]=F(),M=g?.gitBranch?.trim()||e.currentBranch?.trim()||"—",S=g?.model?.trim()||"—",y=g?.turnCount??x?.assistantMessages??e.messageCount??null,w=g?.sessionStart??e.lastMessageAt??null,A=x?.contextInputTokens??0,C=x?.contextWindowTokens??0,j=C>0?Math.min(100,Math.round(A/C*100)):null,I=(x?.cacheReadInputTokens??0)+(x?.cacheCreationInputTokens??0),W=()=>E(r,{view:"sessions",sessionId:e.id},{returnTo:l}),U=()=>E(r,{view:"terminal",agentId:a,mode:"takeover"},{returnTo:l}),V=[["branch",M],["model",S],["started",w?D(w):"—"],["turns",y!=null?`${y}`:"—"]],_=()=>{const i=[["session",h],["agent",a||"—"],["branch",M],["model",S],["cwd",g?.cwd?.trim()||"—"],["started",w?new Date(w).toISOString():"—"],["turns",y!=null?`${y}`:"—"],["context",j!=null?`${u(A)} / ${u(C)} (${j}%)`:"—"]].map(([N,G])=>`${`${N}:`.padEnd(9)}${G}`).join(`
|
|
2
2
|
`),$=f.length?`
|
|
3
3
|
|
|
4
4
|
files touched:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as h,j as s}from"./index-CZ-05hKz.js";import{A as B}from"./AgentAvatar-CYhf6twS.js";import{H as S,h as w}from"./HarnessMark-D5CA5uSp.js";import{c as P}from"./colors-BtO5_zlx.js";import{f as R}from"./text-CnZ0e1-V.js";import{t as C}from"./time-Dhsh_2EG.js";import"./Provider-B2xuo3rf.js";import"./router-DJj2WbDg.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./api-Co9aQ2Jw.js";import"./sse-CiOSzE5n.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-DZVhS7as.js";import"./createLucideIcon-DXpqZP7I.js";import"./TextDocumentSurface-CKQP-cBT.js";import"./file-text-KijGBnME.js";import"./x-e3h2hDsp.js";import"./chevron-right-CzH-TaSF.js";import"./code-xml-Jtxsp5d1.js";import"./arrow-left-CghA0kTw.js";import"./arrow-right-iJFv3jNh.js";import"./scout-voice-BhPzrc6P.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-DFhAJkW3.js";import"./NewChatComposer-hlWT-nbR.js";import"./conversation-model-CwF6Y9gx.js";import"./index-BVlMw8x_.js";import"./NewChatOrigin-DdpzE4kz.js";import"./chevron-down-Mp9mu_yd.js";import"./search-D1tJSAWe.js";import"./loader-circle-BiohlpM3.js";import"./chunk-HRAB3GC3-swV8PA2k.js";import"./SpriteAvatar-Bs68ZENy.js";import"./CrewAvatar-CTIuxp4G.js";import"./voice-levels-Dcr3jglk.js";function K(n){return n.needsYou?"needs":n.status==="in_turn"||n.status==="in_flight"?"live":"idle"}const H=[{id:"prompt",label:"System prompt",sigil:"◆"},{id:"config",label:"Config",sigil:"▤"},{id:"conversations",label:"Conversations",sigil:"◇"},{id:"context",label:"Context",sigil:"▸"}],q={prompt:"System prompt",config:"Config",conversations:"Conversations",context:"Context"};function U(n){return n?n.replace(/^\/Users\/[^/]+/,"~").replace(/^\/home\/[^/]+/,"~"):""}const k=(n,e)=>`${n} ${e}${n===1?"":"s"}`;function Ds({projects:n,initialSelection:e,onEdit:a,onInterrupt:l,onResetContext:i,onOpenConversation:m,onNewAgent:o}){const d=h.useMemo(()=>n.flatMap(t=>t.agents.map(c=>[t,c])),[n]),x=d[0]?.[1],[u,A]=h.useState(e?.agentId??x?.agent.id??null),[F,E]=h.useState(e?.facet??"prompt"),[I,y]=h.useState(()=>new Set(u?[u]:[])),[M,V]=h.useState(""),g=M.trim().toLowerCase(),D=h.useMemo(()=>g?n.map(t=>({...t,agents:t.agents.filter(c=>c.agent.name.toLowerCase().includes(g)||(c.agent.harness??"").toLowerCase().includes(g)||t.slug.toLowerCase().includes(g))})).filter(t=>t.agents.length>0):n,[n,g]),v=h.useMemo(()=>{for(const[t,c]of d)if(c.agent.id===u)return{project:t,entry:c};return null},[d,u]),T=n.reduce((t,c)=>t+c.agents.length,0),_=T*H.length,z=(t,c)=>{A(t),c&&E(c),y(r=>new Set(r).add(t))},$=t=>{y(c=>{const r=new Set(c);return r.has(t)?r.delete(t):r.add(t),r}),A(t)};return s.jsxs("div",{className:"s-acon",children:[s.jsxs("div",{className:"ac-shell",children:[s.jsxs("aside",{className:"ac-tree",children:[s.jsxs("div",{className:"ac-treeHead",children:[s.jsx("span",{className:"ac-treeIco","aria-hidden":!0,children:"⌕"}),s.jsx("input",{className:"ac-treeFind",placeholder:"Filter agents…",value:M,onChange:t=>V(t.target.value)})]}),s.jsxs("div",{className:"ac-treeScroll",children:[D.map(t=>s.jsxs("div",{className:"ac-treeGroup",children:[s.jsxs("div",{className:"ac-treeProject",children:[s.jsx("span",{className:"ac-sigil",children:"/"}),t.slug,s.jsx("span",{className:"ac-treeProjectCount",children:t.agents.length})]}),t.agents.map(c=>{const r=I.has(c.agent.id),f=K(c),G=c.agent.id===u;return s.jsxs("div",{className:"ac-agentBlock",children:[s.jsxs("button",{type:"button",className:"ac-agent","data-open":r||void 0,onClick:()=>$(c.agent.id),children:[s.jsx("span",{className:"ac-agentChev","data-open":r||void 0,"aria-hidden":!0,children:"▸"}),s.jsx("span",{className:"ac-agentAvatar","aria-hidden":!0,children:s.jsx(B,{agent:{name:c.agent.name,harness:c.agent.harness,state:c.agent.state},placement:"node",size:16})}),s.jsx("span",{className:"ac-agentName","data-idle":f==="idle"||void 0,children:c.agent.name}),f==="needs"?s.jsx("span",{className:"ac-needs",children:"needs you"}):null,s.jsxs("span",{className:"ac-agentTail",children:[f!=="idle"?s.jsx("span",{className:"ac-dot","data-tone":f,"aria-hidden":!0}):null,c.agent.harness?s.jsx("span",{className:"ac-agentMark","aria-hidden":!0,children:s.jsx(S,{harness:c.agent.harness,size:11})}):null]})]}),r?s.jsx("div",{className:"ac-facets",children:H.map(j=>{const L=j.id==="conversations"?c.sessions.length:void 0,W=G&&F===j.id;return s.jsxs("button",{type:"button",className:"ac-facet","data-active":W||void 0,onClick:()=>z(c.agent.id,j.id),children:[s.jsx("span",{className:"ac-facetSigil","aria-hidden":!0,children:j.sigil}),s.jsx("span",{className:"ac-facetLabel",children:j.label}),L!=null?s.jsx("span",{className:"ac-facetCount",children:L}):null]},j.id)})}):null]},c.agent.id)})]},t.key)),o?s.jsx("button",{type:"button",className:"ac-newAgent",onClick:o,children:"+ new agent"}):null]})]}),s.jsx("main",{className:"ac-read",children:v?s.jsx(Y,{project:v.project,entry:v.entry,facet:F,onEdit:a,onInterrupt:l,onResetContext:i,onOpenConversation:m}):s.jsx("div",{className:"ac-empty",children:"No agents."})}),s.jsx("aside",{className:"ac-rail",children:v?s.jsx(ss,{entry:v.entry,onOpenConversation:m}):null})]}),s.jsxs("div",{className:"ac-foot",children:[s.jsx("span",{className:"ac-footStat",children:k(n.length,"project")}),s.jsx("span",{className:"ac-footSep",children:"·"}),s.jsx("span",{className:"ac-footStat",children:k(T,"agent")}),s.jsx("span",{className:"ac-footSep",children:"·"}),s.jsx("span",{className:"ac-footStat",children:k(_,"facet")})]})]})}function Y({project:n,entry:e,facet:a,onEdit:l,onInterrupt:i,onResetContext:m,onOpenConversation:o}){const{agent:d,config:x}=e,u=e.status==="in_turn"||e.status==="in_flight";return s.jsxs(s.Fragment,{children:[s.jsxs("header",{className:"ac-readHead",children:[s.jsxs("div",{className:"ac-crumb",children:[s.jsx("span",{className:"ac-crumbDim",children:n.slug}),s.jsx("span",{className:"ac-crumbSep",children:"/"}),s.jsxs("span",{className:"ac-crumbAgent",children:["@",d.name]}),s.jsx("span",{className:"ac-crumbSep",children:"/"}),s.jsx("span",{className:"ac-crumbFacet",children:q[a]})]}),s.jsxs("div",{className:"ac-readActions",children:[(a==="prompt"||a==="config")&&l&&x.editable?s.jsx("button",{type:"button",className:"ac-actPrimary",onClick:()=>l(d.id),children:"Edit"}):null,u&&i?s.jsx("button",{type:"button",className:"ac-act",onClick:()=>i(d.id),children:"Interrupt"}):null,a==="context"&&m?s.jsx("button",{type:"button",className:"ac-act",onClick:()=>m(d.id),children:"Reset"}):null,o?s.jsx("button",{type:"button",className:"ac-act",onClick:()=>o(d.id),children:"Open ↗"}):null]})]}),s.jsxs("div",{className:"ac-metaStrip",children:[s.jsx(b,{k:"Type",v:Q(a)}),x.model?s.jsx(b,{k:"Model",v:x.model,mono:!0}):null,s.jsx(b,{k:"Editable",v:x.editable?"yes":"read-only"}),e.lastActivityAt?s.jsx(b,{k:"Active",v:C(e.lastActivityAt)}):null]}),s.jsxs("div",{className:"ac-readBody",children:[a==="prompt"?s.jsx(J,{entry:e}):null,a==="config"?s.jsx(X,{entry:e}):null,a==="conversations"?s.jsx(Z,{entry:e,onOpenConversation:o}):null,a==="context"?s.jsx(O,{entry:e}):null]})]})}function Q(n){switch(n){case"prompt":return"Markdown · system prompt";case"config":return"Runtime config";case"conversations":return"Conversation list";case"context":return"Live context window"}}function J({entry:n}){const{agent:e,config:a}=n,l=a.systemPrompt.trim()||a.templateHint||"default template",i=!a.systemPrompt.trim();return s.jsxs("div",{className:"ac-doc",children:[s.jsxs("div",{className:"ac-docHead",children:[s.jsx("span",{className:"ac-docKey",children:"name"}),s.jsx("span",{className:"ac-docVal",children:e.name}),e.role?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ac-docKey",children:"role"}),s.jsx("span",{className:"ac-docVal",children:R(e.role)??e.role})]}):null,s.jsx("span",{className:"ac-docKey",children:"harness"}),s.jsx("span",{className:"ac-docVal",children:w(e.harness)}),a.model?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ac-docKey",children:"model"}),s.jsx("span",{className:"ac-docVal",children:a.model})]}):null]}),s.jsx("div",{className:"ac-docLabel",children:i?"Default template":"System prompt"}),s.jsx("pre",{className:"ac-prose","data-default":i||void 0,children:l})]})}function X({entry:n}){const{agent:e,config:a}=n;return s.jsxs("div",{className:"ac-config",children:[s.jsxs(N,{k:"Harness",children:[s.jsx("span",{className:"ac-inlineMark",children:s.jsx(S,{harness:e.harness,size:12})}),w(e.harness)]}),s.jsx(N,{k:"Model",children:a.model??"—"}),s.jsx(N,{k:"Permissions",children:a.permission??"default"}),s.jsx(N,{k:"Transport",children:a.runtime.transport}),s.jsx(N,{k:"Workdir",mono:!0,title:a.runtime.cwd,children:U(a.runtime.cwd)||a.runtime.cwd}),s.jsx(N,{k:"Session",mono:!0,children:a.runtime.sessionId}),a.launchArgs.length?s.jsxs("div",{className:"ac-configBlock",children:[s.jsx("div",{className:"ac-configKey",children:"Launch"}),s.jsxs("pre",{className:"ac-cmd",children:[a.runtime.harness," ",a.launchArgs.join(" ")]})]}):null,a.capabilities.length?s.jsxs("div",{className:"ac-configBlock",children:[s.jsx("div",{className:"ac-configKey",children:"Capabilities"}),s.jsx("div",{className:"ac-chips",children:a.capabilities.map(l=>s.jsx("span",{className:"ac-chip",children:l},l))})]}):null]})}function Z({entry:n,onOpenConversation:e}){return n.sessions.length?s.jsx("div",{className:"ac-convos",children:n.sessions.map(a=>s.jsxs("button",{type:"button",className:"ac-convo",disabled:!e,onClick:()=>e?.(n.agent.id,a.id),children:[s.jsx("span",{className:"ac-convoDot","aria-hidden":!0}),s.jsxs("span",{className:"ac-convoBody",children:[s.jsx("span",{className:"ac-convoTitle",children:a.title||a.preview||"Conversation"}),a.preview&&a.title?s.jsx("span",{className:"ac-convoPreview",children:a.preview}):null,s.jsxs("span",{className:"ac-convoMeta",children:[a.currentBranch?s.jsx("span",{className:"ac-convoBranch",children:a.currentBranch}):null,s.jsxs("span",{children:[a.messageCount," msgs"]}),a.lastMessageAt?s.jsx("span",{children:C(a.lastMessageAt)}):null]})]})]},a.id))}):s.jsx("div",{className:"ac-empty",children:"No conversations yet."})}function O({entry:n}){const e=n.context;if(!e)return s.jsx("div",{className:"ac-empty",children:"No live context — agent is not in an active session."});const a=e.usedPercent!=null?Math.round(e.usedPercent):null;return s.jsxs("div",{className:"ac-ctx",children:[s.jsxs("div",{className:"ac-ctxTop",children:[s.jsx("span",{className:"ac-ctxState","data-state":e.state,children:e.state}),s.jsxs("span",{className:"ac-ctxTurns",children:[e.turnCount," turns"]})]}),a!=null?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"ac-ctxGauge",children:s.jsx("span",{className:"ac-ctxFill",style:{width:`${Math.min(100,a)}%`}})}),s.jsxs("div",{className:"ac-ctxRead",children:[s.jsxs("span",{className:"ac-ctxNum",children:[a,"%"]}),s.jsx("span",{className:"ac-ctxDim",children:"of context window used"})]})]}):null,e.contextInputTokens!=null&&e.contextWindowTokens!=null?s.jsxs("div",{className:"ac-ctxTokens",children:[e.contextInputTokens.toLocaleString()," / ",e.contextWindowTokens.toLocaleString()," ","tokens"]}):null]})}function ss({entry:n,onOpenConversation:e}){const{agent:a,config:l}=n,i=K(n),m=a.ownerName||a.ownerHandle||null;return s.jsxs("div",{className:"ac-railInner",children:[s.jsxs("div",{className:"ac-railIdent",children:[s.jsx("span",{className:"ac-railAvatar","aria-hidden":!0,children:s.jsx(B,{agent:{name:a.name,harness:a.harness,state:a.state},placement:"inspector"})}),s.jsxs("div",{className:"ac-railNames",children:[s.jsxs("div",{className:"ac-railName",children:["@",a.name]}),a.role?s.jsx("div",{className:"ac-railRole",children:R(a.role)??a.role}):null]})]}),s.jsxs("div",{className:"ac-railState","data-tone":i==="idle"?void 0:i,children:[i!=="idle"?s.jsx("span",{className:"ac-dot","data-tone":i,"aria-hidden":!0}):null,s.jsx("span",{children:n.needsYou?"Needs you":P(a.state)})]}),n.activeTask?s.jsx("div",{className:"ac-railTask",children:n.activeTask}):null,s.jsxs("div",{className:"ac-railGroup",children:[s.jsx(p,{k:"Harness",v:w(a.harness),mark:a.harness}),s.jsx(p,{k:"Model",v:l.model??"—"}),m?s.jsx(p,{k:"Owner",v:m}):null,a.branch?s.jsx(p,{k:"Branch",v:a.branch,mono:!0}):null,s.jsx(p,{k:"State",v:P(a.state)}),a.updatedAt?s.jsx(p,{k:"Updated",v:C(a.updatedAt)}):null,s.jsx(p,{k:"Sessions",v:String(n.sessions.length)})]}),l.permission?s.jsxs("div",{className:"ac-railSub",children:[s.jsx("div",{className:"ac-railSubHead",children:"Permissions"}),s.jsx("span",{className:"ac-chip",children:l.permission})]}):null,l.capabilities.length?s.jsxs("div",{className:"ac-railSub",children:[s.jsxs("div",{className:"ac-railSubHead",children:["Capabilities · ",l.capabilities.length]}),s.jsx("div",{className:"ac-chips",children:l.capabilities.map(o=>s.jsx("span",{className:"ac-chip",children:o},o))})]}):null,a.conversationId&&e?s.jsx("button",{type:"button",className:"ac-railOpen",onClick:()=>e(a.id),children:"Open conversation →"}):null]})}function b({k:n,v:e,mono:a}){return s.jsxs("span",{className:"ac-metaItem",children:[s.jsx("span",{className:"ac-metaKey",children:n}),s.jsx("span",{className:"ac-metaVal","data-mono":a||void 0,children:e})]})}function N({k:n,children:e,mono:a,title:l}){return s.jsxs("div",{className:"ac-configRow",children:[s.jsx("span",{className:"ac-configKey",children:n}),s.jsx("span",{className:"ac-configVal","data-mono":a||void 0,title:l,children:e})]})}function p({k:n,v:e,mono:a,mark:l}){return s.jsxs("div",{className:"ac-railFact",children:[s.jsx("span",{className:"ac-railFactKey",children:n}),s.jsxs("span",{className:"ac-railFactVal","data-mono":a||void 0,children:[l?s.jsx("span",{className:"ac-inlineMark",children:s.jsx(S,{harness:l,size:11})}):null,e]})]})}export{Ds as AgentsConsole};
|
|
1
|
+
import{r as h,j as s}from"./index-DvLtl7rV.js";import{A as B}from"./AgentAvatar-6-KBVKUu.js";import{H as S,h as w}from"./HarnessMark-B979GCSB.js";import{c as P}from"./colors-BtO5_zlx.js";import{f as R}from"./text-BP3oyl8-.js";import{t as C}from"./time-Dhsh_2EG.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"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./loader-circle-pM56HNhR.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./voice-levels-Dcr3jglk.js";function K(n){return n.needsYou?"needs":n.status==="in_turn"||n.status==="in_flight"?"live":"idle"}const H=[{id:"prompt",label:"System prompt",sigil:"◆"},{id:"config",label:"Config",sigil:"▤"},{id:"conversations",label:"Conversations",sigil:"◇"},{id:"context",label:"Context",sigil:"▸"}],q={prompt:"System prompt",config:"Config",conversations:"Conversations",context:"Context"};function U(n){return n?n.replace(/^\/Users\/[^/]+/,"~").replace(/^\/home\/[^/]+/,"~"):""}const k=(n,e)=>`${n} ${e}${n===1?"":"s"}`;function Ds({projects:n,initialSelection:e,onEdit:a,onInterrupt:l,onResetContext:i,onOpenConversation:m,onNewAgent:o}){const d=h.useMemo(()=>n.flatMap(t=>t.agents.map(c=>[t,c])),[n]),x=d[0]?.[1],[u,A]=h.useState(e?.agentId??x?.agent.id??null),[F,E]=h.useState(e?.facet??"prompt"),[I,y]=h.useState(()=>new Set(u?[u]:[])),[M,V]=h.useState(""),g=M.trim().toLowerCase(),D=h.useMemo(()=>g?n.map(t=>({...t,agents:t.agents.filter(c=>c.agent.name.toLowerCase().includes(g)||(c.agent.harness??"").toLowerCase().includes(g)||t.slug.toLowerCase().includes(g))})).filter(t=>t.agents.length>0):n,[n,g]),v=h.useMemo(()=>{for(const[t,c]of d)if(c.agent.id===u)return{project:t,entry:c};return null},[d,u]),T=n.reduce((t,c)=>t+c.agents.length,0),_=T*H.length,z=(t,c)=>{A(t),c&&E(c),y(r=>new Set(r).add(t))},$=t=>{y(c=>{const r=new Set(c);return r.has(t)?r.delete(t):r.add(t),r}),A(t)};return s.jsxs("div",{className:"s-acon",children:[s.jsxs("div",{className:"ac-shell",children:[s.jsxs("aside",{className:"ac-tree",children:[s.jsxs("div",{className:"ac-treeHead",children:[s.jsx("span",{className:"ac-treeIco","aria-hidden":!0,children:"⌕"}),s.jsx("input",{className:"ac-treeFind",placeholder:"Filter agents…",value:M,onChange:t=>V(t.target.value)})]}),s.jsxs("div",{className:"ac-treeScroll",children:[D.map(t=>s.jsxs("div",{className:"ac-treeGroup",children:[s.jsxs("div",{className:"ac-treeProject",children:[s.jsx("span",{className:"ac-sigil",children:"/"}),t.slug,s.jsx("span",{className:"ac-treeProjectCount",children:t.agents.length})]}),t.agents.map(c=>{const r=I.has(c.agent.id),f=K(c),G=c.agent.id===u;return s.jsxs("div",{className:"ac-agentBlock",children:[s.jsxs("button",{type:"button",className:"ac-agent","data-open":r||void 0,onClick:()=>$(c.agent.id),children:[s.jsx("span",{className:"ac-agentChev","data-open":r||void 0,"aria-hidden":!0,children:"▸"}),s.jsx("span",{className:"ac-agentAvatar","aria-hidden":!0,children:s.jsx(B,{agent:{name:c.agent.name,harness:c.agent.harness,state:c.agent.state},placement:"node",size:16})}),s.jsx("span",{className:"ac-agentName","data-idle":f==="idle"||void 0,children:c.agent.name}),f==="needs"?s.jsx("span",{className:"ac-needs",children:"needs you"}):null,s.jsxs("span",{className:"ac-agentTail",children:[f!=="idle"?s.jsx("span",{className:"ac-dot","data-tone":f,"aria-hidden":!0}):null,c.agent.harness?s.jsx("span",{className:"ac-agentMark","aria-hidden":!0,children:s.jsx(S,{harness:c.agent.harness,size:11})}):null]})]}),r?s.jsx("div",{className:"ac-facets",children:H.map(j=>{const L=j.id==="conversations"?c.sessions.length:void 0,W=G&&F===j.id;return s.jsxs("button",{type:"button",className:"ac-facet","data-active":W||void 0,onClick:()=>z(c.agent.id,j.id),children:[s.jsx("span",{className:"ac-facetSigil","aria-hidden":!0,children:j.sigil}),s.jsx("span",{className:"ac-facetLabel",children:j.label}),L!=null?s.jsx("span",{className:"ac-facetCount",children:L}):null]},j.id)})}):null]},c.agent.id)})]},t.key)),o?s.jsx("button",{type:"button",className:"ac-newAgent",onClick:o,children:"+ new agent"}):null]})]}),s.jsx("main",{className:"ac-read",children:v?s.jsx(Y,{project:v.project,entry:v.entry,facet:F,onEdit:a,onInterrupt:l,onResetContext:i,onOpenConversation:m}):s.jsx("div",{className:"ac-empty",children:"No agents."})}),s.jsx("aside",{className:"ac-rail",children:v?s.jsx(ss,{entry:v.entry,onOpenConversation:m}):null})]}),s.jsxs("div",{className:"ac-foot",children:[s.jsx("span",{className:"ac-footStat",children:k(n.length,"project")}),s.jsx("span",{className:"ac-footSep",children:"·"}),s.jsx("span",{className:"ac-footStat",children:k(T,"agent")}),s.jsx("span",{className:"ac-footSep",children:"·"}),s.jsx("span",{className:"ac-footStat",children:k(_,"facet")})]})]})}function Y({project:n,entry:e,facet:a,onEdit:l,onInterrupt:i,onResetContext:m,onOpenConversation:o}){const{agent:d,config:x}=e,u=e.status==="in_turn"||e.status==="in_flight";return s.jsxs(s.Fragment,{children:[s.jsxs("header",{className:"ac-readHead",children:[s.jsxs("div",{className:"ac-crumb",children:[s.jsx("span",{className:"ac-crumbDim",children:n.slug}),s.jsx("span",{className:"ac-crumbSep",children:"/"}),s.jsxs("span",{className:"ac-crumbAgent",children:["@",d.name]}),s.jsx("span",{className:"ac-crumbSep",children:"/"}),s.jsx("span",{className:"ac-crumbFacet",children:q[a]})]}),s.jsxs("div",{className:"ac-readActions",children:[(a==="prompt"||a==="config")&&l&&x.editable?s.jsx("button",{type:"button",className:"ac-actPrimary",onClick:()=>l(d.id),children:"Edit"}):null,u&&i?s.jsx("button",{type:"button",className:"ac-act",onClick:()=>i(d.id),children:"Interrupt"}):null,a==="context"&&m?s.jsx("button",{type:"button",className:"ac-act",onClick:()=>m(d.id),children:"Reset"}):null,o?s.jsx("button",{type:"button",className:"ac-act",onClick:()=>o(d.id),children:"Open ↗"}):null]})]}),s.jsxs("div",{className:"ac-metaStrip",children:[s.jsx(b,{k:"Type",v:Q(a)}),x.model?s.jsx(b,{k:"Model",v:x.model,mono:!0}):null,s.jsx(b,{k:"Editable",v:x.editable?"yes":"read-only"}),e.lastActivityAt?s.jsx(b,{k:"Active",v:C(e.lastActivityAt)}):null]}),s.jsxs("div",{className:"ac-readBody",children:[a==="prompt"?s.jsx(J,{entry:e}):null,a==="config"?s.jsx(X,{entry:e}):null,a==="conversations"?s.jsx(Z,{entry:e,onOpenConversation:o}):null,a==="context"?s.jsx(O,{entry:e}):null]})]})}function Q(n){switch(n){case"prompt":return"Markdown · system prompt";case"config":return"Runtime config";case"conversations":return"Conversation list";case"context":return"Live context window"}}function J({entry:n}){const{agent:e,config:a}=n,l=a.systemPrompt.trim()||a.templateHint||"default template",i=!a.systemPrompt.trim();return s.jsxs("div",{className:"ac-doc",children:[s.jsxs("div",{className:"ac-docHead",children:[s.jsx("span",{className:"ac-docKey",children:"name"}),s.jsx("span",{className:"ac-docVal",children:e.name}),e.role?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ac-docKey",children:"role"}),s.jsx("span",{className:"ac-docVal",children:R(e.role)??e.role})]}):null,s.jsx("span",{className:"ac-docKey",children:"harness"}),s.jsx("span",{className:"ac-docVal",children:w(e.harness)}),a.model?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ac-docKey",children:"model"}),s.jsx("span",{className:"ac-docVal",children:a.model})]}):null]}),s.jsx("div",{className:"ac-docLabel",children:i?"Default template":"System prompt"}),s.jsx("pre",{className:"ac-prose","data-default":i||void 0,children:l})]})}function X({entry:n}){const{agent:e,config:a}=n;return s.jsxs("div",{className:"ac-config",children:[s.jsxs(N,{k:"Harness",children:[s.jsx("span",{className:"ac-inlineMark",children:s.jsx(S,{harness:e.harness,size:12})}),w(e.harness)]}),s.jsx(N,{k:"Model",children:a.model??"—"}),s.jsx(N,{k:"Permissions",children:a.permission??"default"}),s.jsx(N,{k:"Transport",children:a.runtime.transport}),s.jsx(N,{k:"Workdir",mono:!0,title:a.runtime.cwd,children:U(a.runtime.cwd)||a.runtime.cwd}),s.jsx(N,{k:"Session",mono:!0,children:a.runtime.sessionId}),a.launchArgs.length?s.jsxs("div",{className:"ac-configBlock",children:[s.jsx("div",{className:"ac-configKey",children:"Launch"}),s.jsxs("pre",{className:"ac-cmd",children:[a.runtime.harness," ",a.launchArgs.join(" ")]})]}):null,a.capabilities.length?s.jsxs("div",{className:"ac-configBlock",children:[s.jsx("div",{className:"ac-configKey",children:"Capabilities"}),s.jsx("div",{className:"ac-chips",children:a.capabilities.map(l=>s.jsx("span",{className:"ac-chip",children:l},l))})]}):null]})}function Z({entry:n,onOpenConversation:e}){return n.sessions.length?s.jsx("div",{className:"ac-convos",children:n.sessions.map(a=>s.jsxs("button",{type:"button",className:"ac-convo",disabled:!e,onClick:()=>e?.(n.agent.id,a.id),children:[s.jsx("span",{className:"ac-convoDot","aria-hidden":!0}),s.jsxs("span",{className:"ac-convoBody",children:[s.jsx("span",{className:"ac-convoTitle",children:a.title||a.preview||"Conversation"}),a.preview&&a.title?s.jsx("span",{className:"ac-convoPreview",children:a.preview}):null,s.jsxs("span",{className:"ac-convoMeta",children:[a.currentBranch?s.jsx("span",{className:"ac-convoBranch",children:a.currentBranch}):null,s.jsxs("span",{children:[a.messageCount," msgs"]}),a.lastMessageAt?s.jsx("span",{children:C(a.lastMessageAt)}):null]})]})]},a.id))}):s.jsx("div",{className:"ac-empty",children:"No conversations yet."})}function O({entry:n}){const e=n.context;if(!e)return s.jsx("div",{className:"ac-empty",children:"No live context — agent is not in an active session."});const a=e.usedPercent!=null?Math.round(e.usedPercent):null;return s.jsxs("div",{className:"ac-ctx",children:[s.jsxs("div",{className:"ac-ctxTop",children:[s.jsx("span",{className:"ac-ctxState","data-state":e.state,children:e.state}),s.jsxs("span",{className:"ac-ctxTurns",children:[e.turnCount," turns"]})]}),a!=null?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"ac-ctxGauge",children:s.jsx("span",{className:"ac-ctxFill",style:{width:`${Math.min(100,a)}%`}})}),s.jsxs("div",{className:"ac-ctxRead",children:[s.jsxs("span",{className:"ac-ctxNum",children:[a,"%"]}),s.jsx("span",{className:"ac-ctxDim",children:"of context window used"})]})]}):null,e.contextInputTokens!=null&&e.contextWindowTokens!=null?s.jsxs("div",{className:"ac-ctxTokens",children:[e.contextInputTokens.toLocaleString()," / ",e.contextWindowTokens.toLocaleString()," ","tokens"]}):null]})}function ss({entry:n,onOpenConversation:e}){const{agent:a,config:l}=n,i=K(n),m=a.ownerName||a.ownerHandle||null;return s.jsxs("div",{className:"ac-railInner",children:[s.jsxs("div",{className:"ac-railIdent",children:[s.jsx("span",{className:"ac-railAvatar","aria-hidden":!0,children:s.jsx(B,{agent:{name:a.name,harness:a.harness,state:a.state},placement:"inspector"})}),s.jsxs("div",{className:"ac-railNames",children:[s.jsxs("div",{className:"ac-railName",children:["@",a.name]}),a.role?s.jsx("div",{className:"ac-railRole",children:R(a.role)??a.role}):null]})]}),s.jsxs("div",{className:"ac-railState","data-tone":i==="idle"?void 0:i,children:[i!=="idle"?s.jsx("span",{className:"ac-dot","data-tone":i,"aria-hidden":!0}):null,s.jsx("span",{children:n.needsYou?"Needs you":P(a.state)})]}),n.activeTask?s.jsx("div",{className:"ac-railTask",children:n.activeTask}):null,s.jsxs("div",{className:"ac-railGroup",children:[s.jsx(p,{k:"Harness",v:w(a.harness),mark:a.harness}),s.jsx(p,{k:"Model",v:l.model??"—"}),m?s.jsx(p,{k:"Owner",v:m}):null,a.branch?s.jsx(p,{k:"Branch",v:a.branch,mono:!0}):null,s.jsx(p,{k:"State",v:P(a.state)}),a.updatedAt?s.jsx(p,{k:"Updated",v:C(a.updatedAt)}):null,s.jsx(p,{k:"Sessions",v:String(n.sessions.length)})]}),l.permission?s.jsxs("div",{className:"ac-railSub",children:[s.jsx("div",{className:"ac-railSubHead",children:"Permissions"}),s.jsx("span",{className:"ac-chip",children:l.permission})]}):null,l.capabilities.length?s.jsxs("div",{className:"ac-railSub",children:[s.jsxs("div",{className:"ac-railSubHead",children:["Capabilities · ",l.capabilities.length]}),s.jsx("div",{className:"ac-chips",children:l.capabilities.map(o=>s.jsx("span",{className:"ac-chip",children:o},o))})]}):null,a.conversationId&&e?s.jsx("button",{type:"button",className:"ac-railOpen",onClick:()=>e(a.id),children:"Open conversation →"}):null]})}function b({k:n,v:e,mono:a}){return s.jsxs("span",{className:"ac-metaItem",children:[s.jsx("span",{className:"ac-metaKey",children:n}),s.jsx("span",{className:"ac-metaVal","data-mono":a||void 0,children:e})]})}function N({k:n,children:e,mono:a,title:l}){return s.jsxs("div",{className:"ac-configRow",children:[s.jsx("span",{className:"ac-configKey",children:n}),s.jsx("span",{className:"ac-configVal","data-mono":a||void 0,title:l,children:e})]})}function p({k:n,v:e,mono:a,mark:l}){return s.jsxs("div",{className:"ac-railFact",children:[s.jsx("span",{className:"ac-railFactKey",children:n}),s.jsxs("span",{className:"ac-railFactVal","data-mono":a||void 0,children:[l?s.jsx("span",{className:"ac-inlineMark",children:s.jsx(S,{harness:l,size:11})}):null,e]})]})}export{Ds as AgentsConsole};
|