@openscout/scout 0.2.76 → 0.2.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -2
- package/bin/openscout-runtime.mjs +48 -30
- package/bin/scout.mjs +2 -2
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/ActivityScreen-Cu_1V4bq.js +1 -0
- package/dist/client/assets/AddProjectForm-DMnobKch.js +1 -0
- package/dist/client/assets/AgentAvatar-D90c1Rzk.js +1 -0
- package/dist/client/assets/AgentConfigurationScreen-BqfOz90D.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-CUpUrY57.js +1 -0
- package/dist/client/assets/AgentDetailCard-BcRBRp88.js +1 -0
- package/dist/client/assets/AgentDetailCard-C4WVeJvJ.css +1 -0
- package/dist/client/assets/AgentFloorView-8LoAEBwS.js +1 -0
- package/dist/client/assets/AgentInfoScreen-DZs2_ibL.js +1 -0
- package/dist/client/assets/AgentLaneCard-RrNnDZu8.js +1 -0
- package/dist/client/assets/AgentLaneChrome-D9ZwUKrl.js +1 -0
- package/dist/client/assets/AgentLaneDetailSheet-BXbPls9N.js +5 -0
- package/dist/client/assets/AgentLaneSummaryResize-BhFmGNzT.js +1 -0
- package/dist/client/assets/AgentLanesEmbedScreen-W3qs022h.js +1 -0
- package/dist/client/assets/AgentLanesPreflight-eSAoDsPi.js +1 -0
- package/dist/client/assets/AgentLanesView-B9vuEEmZ.js +2 -0
- package/dist/client/assets/AgentLiveActions-CGS-Bxb7.css +1 -0
- package/dist/client/assets/AgentLiveActions-DBtnD0qE.js +1 -0
- package/dist/client/assets/AgentSessions-DyqOf4nG.js +6 -0
- package/dist/client/assets/AgentsConsole-BgiYP2wR.js +1 -0
- package/dist/client/assets/AgentsConsole-BjSTs-TV.css +1 -0
- package/dist/client/assets/AgentsScreen-DBi8x4MB.js +1 -0
- package/dist/client/assets/AgentsSubnav-DIEO4NPx.js +1 -0
- package/dist/client/assets/AtopView-BCkae3e1.js +1 -0
- package/dist/client/assets/BackToPicker-BRvfostO.js +1 -0
- package/dist/client/assets/BackToPicker-CdgVu-to.css +1 -0
- package/dist/client/assets/BriefingDetailScreen-BwFyysT8.js +6 -0
- package/dist/client/assets/BriefingsScreen-BQEevztH.js +1 -0
- package/dist/client/assets/BrokerMetadataPanel-7UjcuNjd.js +1 -0
- package/dist/client/assets/BrokerScreen-7ekklu88.js +5 -0
- package/dist/client/assets/ChatCollapsedStrip-CQSYSd8s.js +1 -0
- package/dist/client/assets/CodeDiffPane-DDPt6KPh.js +1 -0
- package/dist/client/assets/CodeProjectPicker-DqKFCpLU.js +2 -0
- package/dist/client/assets/CodeScreen-BxCrpRHd.js +1 -0
- package/dist/client/assets/ContextMenu-bARZqTzD.js +1 -0
- package/dist/client/assets/ConversationComposer-Bla3DDvM.js +1 -0
- package/dist/client/assets/ConversationFeedRows-B_gPxcqA.js +1 -0
- package/dist/client/assets/ConversationHeader-DE3FC0m-.js +1 -0
- package/dist/client/assets/ConversationPanels-DLek4H6A.js +2 -0
- package/dist/client/assets/ConversationScreen-BDRhx-RU.js +1 -0
- package/dist/client/assets/ConversationScreen-C9yMAMYF.css +1 -0
- package/dist/client/assets/ConversationStatus-BwVLiiO4.js +1 -0
- package/dist/client/assets/DataTable-E8s_MmoA.js +1 -0
- package/dist/client/assets/DispatchAftermath-Dpe88DFX.js +1 -0
- package/dist/client/assets/DocumentFocusViewer-BeVwwl26.js +1 -0
- package/dist/client/assets/EmbeddableSurfacesLab-BQqFQVnI.js +1 -0
- package/dist/client/assets/EmptyState-4F9XDFQm.js +1 -0
- package/dist/client/assets/FileViewerPane-CLgUhSm4.js +3 -0
- package/dist/client/assets/FleetSearch-Dz5euQJe.js +1 -0
- package/dist/client/assets/FleetSearch-EXOe8ulE.css +1 -0
- package/dist/client/assets/FlightObserveScreen-6RpZYwVz.js +1 -0
- package/dist/client/assets/FollowScreen-DZ4qfYOY.js +1 -0
- package/dist/client/assets/HarnessMark-Cbv3Ib0c.js +1 -0
- package/dist/client/assets/HarnessesScreen-CznAImej.js +1 -0
- package/dist/client/assets/HomeHero-B3uYd-pP.js +1 -0
- package/dist/client/assets/HomeHero-DEl-WBsT.css +1 -0
- package/dist/client/assets/KnowledgeSearchInspector-Dgdkfvvz.js +1 -0
- package/dist/client/assets/KnowledgeSearchScreen-DJDGGaqC.js +1 -0
- package/dist/client/assets/LaneToolHoverCard-Bla0gBdm.js +1 -0
- package/dist/client/assets/LaneTraceDetailSheet-D1CspRbl.js +1 -0
- package/dist/client/assets/LaneTraceEventFocus-BF9ERP5O.js +1 -0
- package/dist/client/assets/MeshCanvas-DFEPkpqY.js +3 -0
- package/dist/client/assets/MeshCanvasMinimap-CyVFYixr.js +1 -0
- package/dist/client/assets/MeshCanvasMinimap-Dv7nMbl5.css +1 -0
- package/dist/client/assets/MeshScreen-DFgevn8N.js +1 -0
- package/dist/client/assets/MeshTopologyView-CalkZghg.js +2 -0
- package/dist/client/assets/MessageComposerSuggestions-DpxN9WiB.js +1 -0
- package/dist/client/assets/MessagesScreen-C8YKW10Y.js +1 -0
- package/dist/client/assets/MissionControlView-lUeAiSVg.js +1 -0
- package/dist/client/assets/MissionFocusOverlay-wlCmWDCT.js +1 -0
- package/dist/client/assets/MissionLeftAgentRow-BpZWntfl.js +1 -0
- package/dist/client/assets/MissionLogPane-__MVtEl9.js +1 -0
- package/dist/client/assets/NewAgentModal-Bg-eWHpY.js +1 -0
- package/dist/client/assets/NewAgentModal-ru8u5YdJ.css +1 -0
- package/dist/client/assets/NewChatComposer-Cs6OsxK6.js +19 -0
- package/dist/client/assets/NewChatComposer-W-t-L4oV.css +1 -0
- package/dist/client/assets/NewChatOrigin-Bk2OyVjI.js +1 -0
- package/dist/client/assets/ObserveEmbedScreen-y2EpuqRZ.js +2 -0
- package/dist/client/assets/ObserveTextFlow-rsFj_rVo.js +2 -0
- package/dist/client/assets/ObservedTopologyPanel-BsBsvVPL.css +1 -0
- package/dist/client/assets/ObservedTopologyPanel-DyUeV98H.js +2 -0
- package/dist/client/assets/OpenScoutAppShell-Bh6FnEJO.css +1 -0
- package/dist/client/assets/OpenScoutAppShell-C_URc8sV.js +87 -0
- package/dist/client/assets/OpsAgentsView-UN7iOscs.js +1 -0
- package/dist/client/assets/OpsScreen-Buf3LKjb.js +1 -0
- package/dist/client/assets/OpsSubnav-DsuXzHah.js +1 -0
- package/dist/client/assets/PlanView-C1CjH3PG.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-DJusrAV-.js +1 -0
- package/dist/client/assets/ProjectAgentProfileBar-CtTpj6fU.js +1 -0
- package/dist/client/assets/ProjectAgentProfileHero-BFwNJo_N.js +1 -0
- package/dist/client/assets/ProjectsInbox-GhVMxOhw.js +2 -0
- package/dist/client/assets/ProjectsRail-BgiuV4LR.js +1 -0
- package/dist/client/assets/ProjectsScreen-eNUBy4YU.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-CoBgnHmr.js +1 -0
- package/dist/client/assets/Provider-C7UKGHQy.js +1 -0
- package/dist/client/assets/Provider-CCzjtkda.css +1 -0
- package/dist/client/assets/RailRow-BoGxAHNF.js +1 -0
- package/dist/client/assets/RailRow-Cf9LOiEj.css +1 -0
- package/dist/client/assets/RawSessionsTable-DL8y_eEy.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-ffS-39zy.js +1 -0
- package/dist/client/assets/RepoDiffEmbedScreen-C0rumUME.js +1 -0
- package/dist/client/assets/RepoDiffPageScreen-DMv6DioL.js +1 -0
- package/dist/client/assets/RepoDiffViewer-D_exm6xK.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-BPgF92Bg.js +2 -0
- package/dist/client/assets/ReposScreen-CB_YBWYf.js +6 -0
- package/dist/client/assets/ScoutDeckSurface-CxIYFyWx.js +1 -0
- package/dist/client/assets/ScoutDeckSurface-uhmuZRzC.css +1 -0
- package/dist/client/assets/ScoutSurface-CYz_TcWC.js +1 -0
- package/dist/client/assets/ScoutbotBroadcastChip-CxtYZWPZ.css +1 -0
- package/dist/client/assets/ScoutbotBroadcastChip-L_R9atj0.js +2 -0
- package/dist/client/assets/ScoutbotFxLab-CgiZMDMW.js +4 -0
- package/dist/client/assets/ScoutbotRealtimeVoiceCall-FMQOr1Np.js +1 -0
- package/dist/client/assets/SecondaryNav-B3-nh5dM.js +1 -0
- package/dist/client/assets/SessionEmbedScreen-BVC7yvWF.js +1 -0
- package/dist/client/assets/SessionObserve-BpggNO_M.css +1 -0
- package/dist/client/assets/SessionObserve-yfXFafp8.js +12 -0
- package/dist/client/assets/SessionRefScreen-DRgJu7Jo.js +1 -0
- package/dist/client/assets/SessionsScreen-D6XUsZfA.js +1 -0
- package/dist/client/assets/SettingsDrawer-CmJt72ww.css +1 -0
- package/dist/client/assets/SettingsDrawer-XfdAa_nD.js +3 -0
- package/dist/client/assets/SettingsScreen-Cy8z-EuR.js +1 -0
- package/dist/client/assets/ShikiPane-Ap1iPxYb.js +15 -0
- package/dist/client/assets/SlidePanel-Bg5dVaIa.css +1 -0
- package/dist/client/assets/SlidePanel-COwtoJqR.js +1 -0
- package/dist/client/assets/SpriteAvatar-DyaGuhik.js +1 -0
- package/dist/client/assets/StatusPill-DhBL__p8.js +1 -0
- package/dist/client/assets/TailView-DGj_5HA9.js +2 -0
- package/dist/client/assets/TailView-Mj3AU2u0.css +1 -0
- package/dist/client/assets/Terminal-CqvGbjXU.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-DuZZFFzW.js +1 -0
- package/dist/client/assets/TextDocumentSurface-BpAw4eQS.js +4 -0
- package/dist/client/assets/TmuxPeek-m1osv33Q.js +1 -0
- package/dist/client/assets/VoicePermissionsPanel-DsK53ar4.js +1 -0
- package/dist/client/assets/VoicePermissionsPanel-RijAZ1gP.css +1 -0
- package/dist/client/assets/WorkDetailScreen-Bx0JimPC.js +5 -0
- package/dist/client/assets/WorkFilesViewer-Btl6C2Q1.js +1 -0
- package/dist/client/assets/activity-CA8qS6PI.js +1 -0
- package/dist/client/assets/{addon-fit-BOSszMLK.js → addon-fit-BZ-kXjeN.js} +1 -1
- package/dist/client/assets/{addon-webgl-WE840gr0.js → addon-webgl-D9-EQVEK.js} +1 -1
- package/dist/client/assets/agent-chat-Bfjd9y6c.js +1 -0
- package/dist/client/assets/agent-definitions-CymTYqvo.css +1 -0
- package/dist/client/assets/agent-directory-studio-injection-Bc8590z5.css +1 -0
- package/dist/client/assets/agent-essentials-BSY1o46q.js +1 -0
- package/dist/client/assets/agent-floor-CuJr1iK1.css +1 -0
- package/dist/client/assets/agent-lane-card-Dm7YWoew.css +1 -0
- package/dist/client/assets/agent-lane-card-model-r2frk57c.js +1 -0
- package/dist/client/assets/agent-lane-detail-Djm3YJEa.js +1 -0
- package/dist/client/assets/agent-lane-preview-CmHVe3dU.js +4 -0
- package/dist/client/assets/agent-lanes-BDNktFBZ.css +1 -0
- package/dist/client/assets/agent-lanes-model-B4YTt4OF.js +2 -0
- package/dist/client/assets/agents-detail-redesign-h34ROjOW.css +1 -0
- package/dist/client/assets/agents-project-COzHxZAF.css +1 -0
- package/dist/client/assets/agents-project-model-UYiamtrU.js +1 -0
- package/dist/client/assets/agents-screen-BMu6PpRY.css +1 -0
- package/dist/client/assets/api-BkjHJfgJ.js +1 -0
- package/dist/client/assets/api-h5zurxmi.js +1 -0
- package/dist/client/assets/{arc.es-KGqGKGIy.js → arc.es-CQBb-dVu.js} +1 -1
- package/dist/client/assets/arrow-down-BPLe0am9.js +1 -0
- package/dist/client/assets/arrow-left-DEZzHiPS.js +1 -0
- package/dist/client/assets/arrow-up-right-ClxBnsi7.js +1 -0
- package/dist/client/assets/bash-format-BRV5C6Gv.js +1 -0
- package/dist/client/assets/bot-eu8pBNvI.js +1 -0
- package/dist/client/assets/briefings-BwuAFQK6.css +1 -0
- package/dist/client/assets/broker-display-pp33bLsu.js +2 -0
- package/dist/client/assets/cache-Dr0why2k.js +2 -0
- package/dist/client/assets/check-DjgFiBxb.js +1 -0
- package/dist/client/assets/chevron-down-BGk5qoEw.js +1 -0
- package/dist/client/assets/chevron-right-XiIHsk4m.js +1 -0
- package/dist/client/assets/chunk-T65CQEWV-CrzwSeEt.js +1 -0
- package/dist/client/assets/chunk-YOZR3KYS-Bet8khjg.js +47 -0
- package/dist/client/assets/clipboard-e3fSpeo7.js +1 -0
- package/dist/client/assets/code-screen-DrKinCyh.css +1 -0
- package/dist/client/assets/code-xml-B6jOCM4V.js +1 -0
- package/dist/client/assets/collapsed-strip-Dz-of2SM.css +1 -0
- package/dist/client/assets/colors-BtO5_zlx.js +1 -0
- package/dist/client/assets/console-B1IBqLI_.css +1 -0
- package/dist/client/assets/content-BDt9VBPk.js +1 -0
- package/dist/client/assets/content-BIXf4cKR.js +1 -0
- package/dist/client/assets/content-BLm0NBJM.js +1 -0
- package/dist/client/assets/content-C2EwTb2y.js +1 -0
- package/dist/client/assets/content-C5UbLsDF.js +1 -0
- package/dist/client/assets/content-CHU0wwA3.css +1 -0
- package/dist/client/assets/content-CR3vdrYY.js +1 -0
- package/dist/client/assets/content-CSPVmo2s.js +1 -0
- package/dist/client/assets/content-C_FGqx1X.js +1 -0
- package/dist/client/assets/content-CvlVUOG8.js +1 -0
- package/dist/client/assets/content-D5kJmfgl.js +1 -0
- package/dist/client/assets/content-DTpQsomG.js +1 -0
- package/dist/client/assets/content-DikVsqLf.js +1 -0
- package/dist/client/assets/content-DlUe5Ono.js +1 -0
- package/dist/client/assets/content-GIBv_55n.js +1 -0
- package/dist/client/assets/content-Q2oclDzi.js +1 -0
- package/dist/client/assets/context-budget-CbB4BDcO.js +1 -0
- package/dist/client/assets/conversation-icons-IIG5ha6D.js +1 -0
- package/dist/client/assets/conversation-model-B47vYmWN.js +1 -0
- package/dist/client/assets/conversation-motion-features-BdAONVls.js +1 -0
- package/dist/client/assets/conversation-prefs-DNre-Lcx.js +1 -0
- package/dist/client/assets/copy-CQGYbxdu.js +1 -0
- package/dist/client/assets/createLucideIcon-OpA4Amw5.js +1 -0
- package/dist/client/assets/ctx-panel-B4s49N9e.css +1 -0
- package/dist/client/assets/discover-C1YwpBDE.js +2 -0
- package/dist/client/assets/document-focus-viewer-BSC_JwVE.css +1 -0
- package/dist/client/assets/embed-entry-BAcGL3g9.js +2 -0
- package/dist/client/assets/external-link-CXBytO9o.js +1 -0
- package/dist/client/assets/eye-0PvebX_a.js +1 -0
- package/dist/client/assets/file-text-BODxCjcz.js +1 -0
- package/dist/client/assets/flight-observe-GFg9L8ft.css +1 -0
- package/dist/client/assets/follow-route-BvcGtBIL.js +1 -0
- package/dist/client/assets/fx-z37u1o2z.js +1 -0
- package/dist/client/assets/gestures-CcwOTu8C.js +1 -0
- package/dist/client/assets/harnesses-screen-DBZoTZz8.css +1 -0
- package/dist/client/assets/home-live-action-B22u89j7.js +1 -0
- package/dist/client/assets/home-moving-signal-CAa0V91u.css +1 -0
- package/dist/client/assets/home-moving-signal-CK147hxn.js +1 -0
- package/dist/client/assets/home-now-card-BgvNWuea.js +1 -0
- package/dist/client/assets/home-now-card-nano-BcjnOU9H.js +1 -0
- package/dist/client/assets/hooks-B6y_O2FB.js +2 -0
- package/dist/client/assets/hooks-D6NI15f6.css +1 -0
- package/dist/client/assets/inbox-thread-redesign-Bz4FjWzr.css +1 -0
- package/dist/client/assets/index-BWHgHrtv.js +1 -0
- package/dist/client/assets/index-BcuhqXLe.js +1 -0
- package/dist/client/assets/index-CJXzfjo9.js +1 -0
- package/dist/client/assets/index-CvF09yvf.css +1 -0
- package/dist/client/assets/index-DMiGbrBt.js +10 -0
- package/dist/client/assets/index-DQPvraRS.js +1 -0
- package/dist/client/assets/index-DxGoC5l5.css +1 -0
- package/dist/client/assets/inspector-panel-DPoCWxKs.js +2 -0
- package/dist/client/assets/keyboard-nav-2kv_tGUS.js +1 -0
- package/dist/client/assets/knowledge-search-CVxQwxPn.js +1 -0
- package/dist/client/assets/knowledge-search-DjrQdiiW.css +1 -0
- package/dist/client/assets/lane-ask-display-B6iCAVcd.js +18 -0
- package/dist/client/assets/lane-edit-display-C_Aujldz.js +9 -0
- package/dist/client/assets/lane-observe-D0rfKDnU.js +7 -0
- package/dist/client/assets/lane-roster-store-D8x1jac2.js +1 -0
- package/dist/client/assets/lane-tool-detail-0WhMf4Vj.js +9 -0
- package/dist/client/assets/left-Bk3XnxPD.css +1 -0
- package/dist/client/assets/left-C--GiIh8.js +2 -0
- package/dist/client/assets/left-CAaRBK9S.css +1 -0
- package/dist/client/assets/left-CCoobxPS.css +1 -0
- package/dist/client/assets/left-Cj7Rt89X.js +1 -0
- package/dist/client/assets/left-CpNEtFEg.js +1 -0
- package/dist/client/assets/left-CzXAuK_t.js +2 -0
- package/dist/client/assets/left-agents-Bo9sO1by.js +1 -0
- package/dist/client/assets/left-bN4PCAXa.js +1 -0
- package/dist/client/assets/left-default-DV9GdvYi.js +1 -0
- package/dist/client/assets/left-jYYGAOYD.js +1 -0
- package/dist/client/assets/left-lanes-D0l_Co7V.js +1 -0
- package/dist/client/assets/left-mission-Ci7zREkQ.js +1 -0
- package/dist/client/assets/left-mission-DSenPIyb.css +1 -0
- package/dist/client/assets/left-plan-D4U1uflW.js +2 -0
- package/dist/client/assets/library-D-RxGiCw.js +1 -0
- package/dist/client/assets/loader-circle-CbHjZsz1.js +1 -0
- package/dist/client/assets/local-agents--00gLMqr.js +1 -0
- package/dist/client/assets/mentions-jSuTGeet.js +1 -0
- package/dist/client/assets/mesh-buckets-CfAukILK.js +1 -0
- package/dist/client/assets/mesh-screen-BSDUjrnV.css +1 -0
- package/dist/client/assets/mesh-view-store-CWidRbTE.js +1 -0
- package/dist/client/assets/message-circle-CG-96zts.js +1 -0
- package/dist/client/assets/message-markup-3J9pi3nx.js +15 -0
- package/dist/client/assets/message-square-DSaGpjFU.js +1 -0
- package/dist/client/assets/message-visibility-kJM8XcSG.js +1 -0
- package/dist/client/assets/mission-control-D3ikEPND.css +1 -0
- package/dist/client/assets/mission-control-model-C0fByIjm.js +1 -0
- package/dist/client/assets/mission-control-store-BlnEhiCq.js +1 -0
- package/dist/client/assets/model-Co0zkMIc.js +1 -0
- package/dist/client/assets/model-CpAxGuis.js +1 -0
- package/dist/client/assets/observe-CuLGD9Zp.js +1 -0
- package/dist/client/assets/openAgent-Bjt57GdM.js +1 -0
- package/dist/client/assets/openContent-C6XO6kr5.js +1 -0
- package/dist/client/assets/operator-attention-BwSPeheT.js +1 -0
- package/dist/client/assets/ops-agents-BOYxzPTm.css +1 -0
- package/dist/client/assets/ops-atop-BB4B4JdE.css +1 -0
- package/dist/client/assets/ops-screen-giu3If_N.css +1 -0
- package/dist/client/assets/page-status-DpkedE1F.js +1 -0
- package/dist/client/assets/page-status-bar-ByUD7VPM.css +1 -0
- package/dist/client/assets/plan-view-D56fneVF.css +1 -0
- package/dist/client/assets/plus--b1raV_O.js +1 -0
- package/dist/client/assets/profile-CVRziEDA.js +1 -0
- package/dist/client/assets/project-overview-helpers-BQTc_Ous.js +1 -0
- package/dist/client/assets/projects-inbox-CHyUFQ6w.js +1 -0
- package/dist/client/assets/projects-inbox-COZ23dLR.css +1 -0
- package/dist/client/assets/radio-Bz8ZePxj.js +1 -0
- package/dist/client/assets/refresh-cw-BBmAnCB7.js +1 -0
- package/dist/client/assets/repo-diff-C9Qs-bEn.css +1 -0
- package/dist/client/assets/resizable-columns-C7ygvLt8.css +1 -0
- package/dist/client/assets/resolve-panes-r9B3mpW7.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-DcG8xGaB.js +1 -0
- package/dist/client/assets/right-BHeiIaty.js +1 -0
- package/dist/client/assets/right-BkgKo9VT.js +1 -0
- package/dist/client/assets/right-BpEU5jWE.js +1 -0
- package/dist/client/assets/right-CRZXoy-X.js +1 -0
- package/dist/client/assets/right-ChF_pbPy.js +1 -0
- package/dist/client/assets/right-DMoUT3KN.js +1 -0
- package/dist/client/assets/right-DjRXbnRP.js +2 -0
- package/dist/client/assets/right-T4Ue6EqM.js +1 -0
- package/dist/client/assets/right-wzrLXKur.js +1 -0
- package/dist/client/assets/rocket-BSNS_rLs.js +1 -0
- package/dist/client/assets/router-Bq5dwf78.js +1 -0
- package/dist/client/assets/runtime-picker-Bcl5iIX5.js +1 -0
- package/dist/client/assets/runtime-picker-vhm0gtLs.css +1 -0
- package/dist/client/assets/scope-views-4khCg2_z.css +1 -0
- package/dist/client/assets/scope-views-U-ucT9m0.js +1 -0
- package/dist/client/assets/scout-voice-CU5c0LGi.js +1 -0
- package/dist/client/assets/scoutbot-BTIErYHo.js +3 -0
- package/dist/client/assets/scroll-text-D6Pdnar7.js +1 -0
- package/dist/client/assets/search-CWfZtOt2.js +1 -0
- package/dist/client/assets/secondaryNavConfig-DqUIp0Es.js +1 -0
- package/dist/client/assets/secondaryNavConfig-xssF_ubT.css +1 -0
- package/dist/client/assets/selection-bridge-16pk1qyG.js +1 -0
- package/dist/client/assets/send-horizontal-Bg5-QggH.js +1 -0
- package/dist/client/assets/server-CPp4ZJhZ.js +1 -0
- package/dist/client/assets/session-catalog-BmoyVTJ_.js +1 -0
- package/dist/client/assets/session-table-DZcrKoIH.js +1 -0
- package/dist/client/assets/sessionRead-CvFz2RHv.js +1 -0
- package/dist/client/assets/sliders-horizontal-1oW76Xc9.js +1 -0
- package/dist/client/assets/sparkles-ClfRJQ6w.js +1 -0
- package/dist/client/assets/sse-CjIkKo46.js +1 -0
- package/dist/client/assets/status-tone-BM_zuRy1.js +1 -0
- package/dist/client/assets/surface-activity-B1rgWB1i.js +1 -0
- package/dist/client/assets/system-surfaces-redesign-CD26LFc0.css +1 -0
- package/dist/client/assets/tail-display-BdyoLvzY.js +2 -0
- package/dist/client/assets/tail-events-D19uAGe3.js +1 -0
- package/dist/client/assets/terminal-B9AOZQKR.js +1 -0
- package/dist/client/assets/terminal-relay-CWbJ1RCW.js +1 -0
- package/dist/client/assets/terminal-screen-19jAI0Cw.css +1 -0
- package/dist/client/assets/terminal-sessions-D5CIR2OL.js +1 -0
- package/dist/client/assets/terminal-takeover-B8UeD9OX.js +1 -0
- package/dist/client/assets/text-DsBWV_4k.js +1 -0
- package/dist/client/assets/time-DltNTpLl.js +1 -0
- package/dist/client/assets/types-B0PlfpKc.js +1 -0
- package/dist/client/assets/ui-LM8pS8qE.js +1 -0
- package/dist/client/assets/use-conversation-list-Byab41G6.js +1 -0
- package/dist/client/assets/use-fleet-active-asks-BIbQx5AS.js +1 -0
- package/dist/client/assets/use-reduced-motion-RRBkmVkk.js +1 -0
- package/dist/client/assets/useAgentHoverCard-DMrbBif0.js +1 -0
- package/dist/client/assets/useContentSecondaryNav-DMl1WNm7.js +1 -0
- package/dist/client/assets/usePierreRuntime-wC-yMtBb.js +50 -0
- package/dist/client/assets/voice-levels-Dcr3jglk.js +1 -0
- package/dist/client/assets/wrench-Bkc_0lKF.js +1 -0
- package/dist/client/assets/x-D3GElQbe.js +1 -0
- package/dist/client/assets/{xterm-6eL7V7pF.js → xterm-BKR8oAkR.js} +1 -1
- package/dist/client/index.html +6 -3
- package/dist/drizzle/0003_harsh_meltdown.sql +45 -0
- package/dist/drizzle/0004_medical_aaron_stack.sql +40 -0
- package/dist/drizzle/0005_wet_shriek.sql +57 -0
- package/dist/drizzle/0006_woozy_dark_beast.sql +1 -0
- package/dist/drizzle/README.md +7 -0
- package/dist/drizzle/meta/0003_snapshot.json +4952 -0
- package/dist/drizzle/meta/0004_snapshot.json +5235 -0
- package/dist/drizzle/meta/0005_snapshot.json +5599 -0
- package/dist/drizzle/meta/0006_snapshot.json +5606 -0
- package/dist/drizzle/meta/_journal.json +28 -0
- package/dist/main.mjs +24907 -12910
- package/dist/node/main.mjs +10212 -195
- package/dist/openscout-terminal-relay.mjs +507 -64
- package/dist/pairing-runtime-controller.mjs +10793 -5165
- package/dist/runtime/base-daemon.mjs +627 -159
- package/dist/runtime/broker-daemon.mjs +65039 -30990
- package/dist/runtime/broker-process-manager.mjs +247 -54
- package/dist/runtime/mesh-discover.mjs +246 -54
- package/dist/scout-control-plane-web.mjs +56699 -47427
- package/dist/scout-web-server.mjs +56699 -47427
- package/package.json +1 -1
- package/dist/client/assets/RepoDiffViewer-DLVleMPW.js +0 -56
- package/dist/client/assets/embed-entry-BdmREZuc.js +0 -1
- package/dist/client/assets/index-DPFmfHm5.js +0 -271
- package/dist/client/assets/index-jpYnsyHM.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as l,j as e}from"./index-DMiGbrBt.js";/* empty css */import{t as O}from"./time-DltNTpLl.js";import{u as H}from"./Provider-C7UKGHQy.js";import{S as $}from"./SpriteAvatar-DyaGuhik.js";import{H as R}from"./HarnessMark-Cbv3Ib0c.js";import{AgentSessions as G}from"./AgentSessions-DyqOf4nG.js";import{a as T}from"./api-h5zurxmi.js";import{u as J}from"./ContextMenu-bARZqTzD.js";import{g as q,p as V,b as _}from"./agents-project-model-UYiamtrU.js";import{c as Q,e as X,f as Y,g as Z}from"./model-Co0zkMIc.js";import"./router-Bq5dwf78.js";import"./terminal-sessions-D5CIR2OL.js";import"./sse-CjIkKo46.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BTIErYHo.js";import"./DocumentFocusViewer-BeVwwl26.js";import"./createLucideIcon-OpA4Amw5.js";import"./TextDocumentSurface-BpAw4eQS.js";/* empty css */import"./file-text-BODxCjcz.js";import"./x-D3GElQbe.js";import"./chevron-right-XiIHsk4m.js";import"./code-xml-B6jOCM4V.js";import"./arrow-left-DEZzHiPS.js";import"./scout-voice-CU5c0LGi.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-2kv_tGUS.js";import"./MessageComposerSuggestions-DpxN9WiB.js";import"./NewChatComposer-Cs6OsxK6.js";import"./runtime-picker-Bcl5iIX5.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CbHjZsz1.js";import"./index-CJXzfjo9.js";import"./conversation-model-B47vYmWN.js";import"./NewChatOrigin-Bk2OyVjI.js";import"./agent-chat-Bfjd9y6c.js";import"./chevron-down-BGk5qoEw.js";import"./search-CWfZtOt2.js";import"./openContent-C6XO6kr5.js";import"./clipboard-e3fSpeo7.js";import"./text-DsBWV_4k.js";const ee=30*6e4,D=a=>a==="pi"?"grok":a,K=a=>a?a.replace(/^claude-/,"").replace(/-\d{8}$/,""):null;function _e({agents:a,fleet:d,sessionByAgentId:c,sessions:A,discovery:k,loading:C,navigate:x,selectedAgentId:S}){const{route:N,reload:p,openContextCapture:u}=H(),m=N.view==="agents-v2"?N.projectSlug:void 0,f=l.useMemo(()=>{const n=new Map;for(const b of d?.activeAsks??[]){const i=n.get(b.agentId)??[];i.push(b),n.set(b.agentId,i)}return n},[d?.activeAsks]),v=l.useMemo(()=>a.map(n=>Q(n,c.get(n.id)??null,f.get(n.id)??[])),[f,a,c]),g=l.useMemo(()=>X(k,Date.now()),[k]),h=l.useMemo(()=>Y(v,A,g),[v,A,g]),w=l.useMemo(()=>h.find(n=>n.slice.slug===m)??h[0]??null,[h,m]),r=w?.slice.slug,M={selectAgent:n=>x({view:"agents-v2",agentId:n.agent.id,...r?{projectSlug:r}:{}}),openAgentPage:n=>x({view:"agents-v2",agentId:n.agent.id,tab:"profile"}),startSession:n=>u({intent:"new-task",projectPath:n.agent.projectRoot??n.agent.cwd??void 0}),openSession:n=>x(n),configureAgent:n=>x({view:"agents-v2",agentId:n.agent.id,tab:"config"}),restartAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/config`,{method:"POST",body:JSON.stringify({restart:!0})}).catch(()=>{})},stopAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/interrupt`,{method:"POST",body:JSON.stringify({})}).catch(()=>{})},archiveAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/archive`,{method:"POST",body:JSON.stringify({archived:!0})}).then(()=>p()).catch(()=>{})}};return!w&&C?e.jsx("div",{className:"s-aproj","aria-busy":"true",children:e.jsx("div",{className:"ap-loading",role:"status","aria-label":"Loading agents",children:Array.from({length:7},(n,b)=>e.jsx("span",{"aria-hidden":"true"},b))})}):w?e.jsx("div",{className:"s-aproj",children:e.jsx(te,{project:w,selectedAgentId:S,gestures:M,sessions:A})}):e.jsx("div",{className:"s-aproj",children:e.jsx("div",{className:"ap-empty",children:"No agents discovered yet — they appear here as harnesses register and work."})})}function se(){return e.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[e.jsx("circle",{cx:"7",cy:"7",r:"4.2",stroke:"currentColor",strokeWidth:"1.3"}),e.jsx("path",{d:"m10.5 10.5 3 3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}function ae({tone:a}){return a==="idle"?null:e.jsx("span",{className:"ap-dot","data-tone":a,"aria-hidden":!0})}function ne({g:a,gestures:d,sessions:c,selected:A,cursor:k,rowRef:C}){const x=J(),S=Date.now()-a.lastActivityAt<ee,N=a.needs?"needs":S?"live":"idle",p=a.nodes[0];if(!p)return null;const u=p.row.agent.handle?.trim()||a.name,m=a.branches.length>0?a.branches:["main"],f=m.length>1,v=f?`${m.length} branches`:m[0],g=[...new Set(a.nodes.map(r=>r.row.agent.model).filter(r=>!!r))],h=g.length>1,w=[{kind:"action",label:"Configure…",onSelect:()=>d.configureAgent(p.row)},{kind:"action",label:"Restart",onSelect:()=>d.restartAgent(p.row)},{kind:"separator"},{kind:"action",label:"Stop",onSelect:()=>d.stopAgent(p.row)},{kind:"action",label:"Archive",onSelect:()=>d.archiveAgent(p.row)}];return e.jsxs("div",{ref:C,tabIndex:-1,className:"ap-row","data-tone":N,"data-selected":A||void 0,"data-cursor":k||void 0,children:[e.jsxs("div",{className:"ap-rowMain",onClick:()=>d.selectAgent(p.row),children:[e.jsxs("div",{className:"ap-rowBody",children:[e.jsxs("div",{className:"ap-rowTop",children:[e.jsx(ae,{tone:N}),e.jsxs("span",{className:"ap-rowName","data-idle":N==="idle"||void 0,children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"@"}),u]}),e.jsx("span",{className:"ap-rowMark","aria-hidden":!0,children:e.jsx(R,{harness:D(a.harness),size:11})}),a.needs?e.jsx("span",{className:"ap-needsWord",children:"needs you"}):N==="live"?e.jsx("span",{className:"ap-rowState",children:"working"}):null]}),e.jsxs("div",{className:"ap-rowMeta",children:[e.jsx("span",{className:"ap-rowBranch","data-dim":!0,title:f?m.join(" · "):void 0,children:v}),h?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"ap-rowDivider","aria-hidden":!0}),e.jsxs("span",{className:"ap-rowDim",title:g.join(" · "),children:[g.length," models"]})]}):null,a.sessionCount?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"ap-rowDivider","aria-hidden":!0}),e.jsxs("span",{className:"ap-rowDim",children:[a.sessionCount," session",a.sessionCount===1?"":"s"]})]}):null]})]}),e.jsxs("div",{className:"ap-rowTailWrap",children:[e.jsxs("div",{className:"ap-rowTail",children:[e.jsxs("div",{className:"ap-tailMeta","aria-hidden":N==="needs"||void 0,children:[e.jsx("span",{className:"ap-rowAgo",children:a.lastActivityAt?O(a.lastActivityAt):"—"}),!h&&K(a.model)?e.jsx("span",{className:"ap-rowModel",children:K(a.model)}):null]}),e.jsxs("div",{className:"ap-rowActions",children:[e.jsx("button",{type:"button",className:"ap-act ap-actPrimary",onClick:r=>{r.stopPropagation(),d.openAgentPage(p.row)},children:"Open ↗"}),e.jsx("button",{type:"button",className:"ap-act",onClick:r=>{r.stopPropagation(),d.startSession(p.row)},children:"+ Session"})]})]}),e.jsx("button",{type:"button",className:"ap-rowMore","aria-label":"Agent actions",title:"Configure · restart · stop",onClick:r=>{r.stopPropagation(),x(r,w)},children:"⋯"})]})]}),e.jsx(G,{agentIds:a.nodes.map(r=>r.row.agent.id),sessions:c})]})}function te({project:a,selectedAgentId:d,gestures:c,sessions:A}){const[k,C]=l.useState(""),[x,S]=l.useState(null),[N,p]=l.useState(!1),[u,m]=l.useState(-1),f=l.useRef(null),v=l.useRef(new Map),g=l.useMemo(()=>q(a),[a]),{primary:h,ephemeral:w}=l.useMemo(()=>V(g),[g]),r=l.useMemo(()=>_(a),[a]),M=l.useMemo(()=>[...new Set(h.map(s=>D(s.harness)))],[h]),n=k.trim().toLowerCase(),b=s=>(!x||D(s.harness)===x)&&(!n||s.name.toLowerCase().includes(n)||s.branches.some(t=>t.toLowerCase().includes(n))||s.harness.includes(n)),i=h.filter(b),I=w.filter(b),E=!!(n||x),o=i.find(s=>s.needs)??i[0],U=i.some(s=>s.needs),B=h.length<=1;Z(a);const W=g.reduce((s,t)=>s+t.sessionCount,0),z=s=>!!(d&&s.nodes.some(t=>t.row.agent.id===d));return l.useEffect(()=>{function s(t){const y=document.activeElement,L=!!y&&(y.tagName==="INPUT"||y.tagName==="TEXTAREA"||y.isContentEditable);if(t.key.toLowerCase()==="k"&&(t.metaKey||t.ctrlKey)||t.key==="/"&&!L){t.preventDefault(),f.current?.focus(),f.current?.select();return}if(t.key==="Escape"){L&&y?.blur();return}if(L)return;const F=i.length;if(F){if(t.key==="ArrowDown"||t.key==="j")t.preventDefault(),m(j=>j<0?0:Math.min(F-1,j+1));else if(t.key==="ArrowUp"||t.key==="k")t.preventDefault(),m(j=>j<0?0:Math.max(0,j-1));else if(t.key==="Enter"&&(t.metaKey||t.ctrlKey)){const j=i.find(P=>P.needs)??i[0];j&&(t.preventDefault(),m(i.indexOf(j)),c.selectAgent(j.nodes[0].row))}else if(t.key==="Enter"){const j=u<0?0:u,P=i[j];P&&(t.preventDefault(),m(j),c.selectAgent(P.nodes[0].row))}}}return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[i,u,c]),l.useEffect(()=>{if(!(u<0)){if(u>=i.length){m(i.length-1);return}v.current.get(i[u]?.name??"")?.scrollIntoView({block:"nearest"})}},[u,i]),e.jsx("div",{className:"ap-view",children:e.jsxs("div",{className:"ap-content",children:[e.jsxs("header",{className:"ap-head",children:[e.jsx($,{name:a.slice.title,size:56,tile:!0}),e.jsxs("div",{className:"ap-headIdent",children:[e.jsx("div",{className:"ap-headTop",children:e.jsxs("h1",{className:"ap-headName",children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"/"}),a.slice.title]})}),a.slice.root?e.jsx("span",{className:"ap-headRoot",children:a.slice.root}):null]}),e.jsx("div",{className:"ap-headActions",children:e.jsx("button",{type:"button",className:"ap-headCta",disabled:!o,onClick:()=>o&&c.startSession(o.nodes[0].row),children:"+ New agent"})})]}),e.jsxs("div",{className:"ap-digest",children:[e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:h.length}),e.jsx("span",{className:"ap-statLbl",children:h.length===1?"agent":"agents"})]}),e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:W}),e.jsx("span",{className:"ap-statLbl",children:W===1?"session":"sessions"})]}),r.length>0?e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:r.length}),e.jsx("span",{className:"ap-statLbl",children:"in flight"})]}):null,e.jsx("span",{className:"ap-statMarks",children:M.map(s=>e.jsx("span",{title:s,"aria-hidden":!0,children:e.jsx(R,{harness:s,size:12})},s))})]}),o&&!E&&!B?e.jsxs("div",{className:"ap-resume","data-tone":o.needs?"needs":"live","aria-live":"polite",children:[e.jsx("span",{className:"ap-dot","data-tone":o.needs?"needs":"live","aria-hidden":!0}),e.jsx("span",{className:"ap-resumeLbl",children:o.needs?"Waiting on you":"Most recent"}),e.jsxs("span",{className:"ap-resumeWho",children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"@"}),o.nodes[0].row.agent.handle?.trim()||o.name]}),e.jsxs("span",{className:"ap-resumeMeta",children:[o.branches[0]??"main"," · ",o.lastActivityAt?O(o.lastActivityAt):"—"]}),e.jsxs("span",{className:"ap-resumeActions",children:[e.jsx("button",{type:"button",className:"ap-linkAccent",onClick:()=>c.selectAgent(o.nodes[0].row),children:o.needs?"Continue":"Resume"}),e.jsx("button",{type:"button",className:"ap-link",onClick:()=>c.openAgentPage(o.nodes[0].row),children:"Open ↗"})]})]}):null,B?null:e.jsxs("div",{className:"ap-find",children:[e.jsx("span",{className:"ap-findIco","aria-hidden":!0,children:e.jsx(se,{})}),e.jsx("input",{ref:f,className:"ap-findInput",placeholder:"Find an agent, branch, or harness… (⌘K)",value:k,onChange:s=>C(s.target.value)}),e.jsx("div",{className:"ap-findFilters",children:M.map(s=>e.jsxs("button",{type:"button",className:"ap-filter","data-on":x===s||void 0,onClick:()=>S(t=>t===s?null:s),children:[e.jsx(R,{harness:s,size:11}),s.charAt(0).toUpperCase()+s.slice(1)]},s))})]}),e.jsxs("div",{className:"ap-main",children:[e.jsxs("div",{className:"ap-sectionHead",children:[e.jsx("span",{className:"ap-sectionTitle",children:"Agents"}),e.jsxs("span",{className:"ap-sectionMeta",children:[i.length," shown",E?" · filtered":""]}),e.jsxs("span",{className:"ap-kbdHint","aria-hidden":!0,children:["↑↓ move · ↵ open",U?" · ⌘↵ needs":""]})]}),e.jsxs("div",{className:"ap-roster",children:[i.map((s,t)=>e.jsx(ne,{g:s,gestures:c,sessions:A,selected:z(s),cursor:u===t,rowRef:y=>{y?v.current.set(s.name,y):v.current.delete(s.name)}},s.name)),i.length===0?e.jsx("div",{className:"ap-empty",children:E?"No agents match.":I.length?"No primary agents — workflow & clone agents are in the fold below.":"No agents in this project yet."}):null]}),I.length?e.jsxs("div",{className:"ap-ephBlock",children:[e.jsxs("button",{type:"button",className:"ap-ephToggle",onClick:()=>p(s=>!s),children:[e.jsx("span",{className:"ap-ephCount",children:I.length})," ephemeral · workflow & clone agents",e.jsx("span",{className:"ap-ephCaret",children:N?"▴":"▾"})]}),N?e.jsx("div",{className:"ap-ephList",children:I.map(s=>e.jsxs("button",{type:"button",className:"ap-ephRow",onClick:()=>c.openAgentPage(s.nodes[0].row),children:[e.jsx("span",{className:"ap-ephMark","aria-hidden":!0,children:e.jsx(R,{harness:D(s.harness),size:10})}),e.jsx("span",{className:"ap-ephName",children:s.name}),e.jsx("span",{className:"ap-ephBranch",children:s.branches[0]??"main"}),e.jsx("span",{className:"ap-ephAgo",children:s.lastActivityAt?O(s.lastActivityAt):"—"})]},s.name))}):null]}):null,e.jsx("button",{type:"button",className:"ap-newAgent",disabled:!o,onClick:()=>o&&c.startSession(o.nodes[0].row),children:"+ New agent on this project"})]})]})})}export{_e as AgentsLibrary};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c}from"./createLucideIcon-OpA4Amw5.js";const e=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],a=c("loader-circle",e);export{a as L};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r}from"./index-DMiGbrBt.js";import{a as d}from"./api-h5zurxmi.js";import{u as f}from"./Provider-C7UKGHQy.js";function p(e){if(!e)return null;const s=e.split("/").filter(Boolean);return s[s.length-1]??null}function m(e,s){if(!e)return[];const l=new Set;for(const t of s)t.cwd&&l.add(t.cwd),t.projectRoot&&l.add(t.projectRoot);const o=new Map;for(const t of e.transcripts){if(!t.cwd)continue;const n=o.get(t.cwd),a=t.lastEventAt??t.mtimeMs,c=n?.lastEventAt??n?.mtimeMs??0;(!n||a>c)&&o.set(t.cwd,t)}const i=[];for(const t of e.processes){if(t.harness==="scout-managed"||t.cwd&&l.has(t.cwd))continue;const n=t.cwd?o.get(t.cwd):void 0,a=n?.project??p(t.cwd)??null,c=n?.lastEventAt??n?.mtimeMs??e.generatedAt,u=n?.sessionId??null;i.push({id:`harness:${t.source}:${t.pid}`,definitionId:`harness:${t.source}:${t.pid}`,name:t.source,handle:null,agentClass:"organic",harness:t.source,state:"working",projectRoot:t.cwd,cwd:t.cwd,updatedAt:c,createdAt:null,transport:null,selector:null,defaultSelector:null,nodeQualifier:null,workspaceQualifier:null,wakePolicy:null,capabilities:[],project:a,branch:null,role:null,model:null,harnessSessionId:u,terminalSurface:null,harnessLogPath:n?.transcriptPath??null,conversationId:u??`harness:${t.pid}`,homeNodeId:null,homeNodeName:null,ownerId:null,ownerName:null,ownerHandle:null,staleLocalRegistration:!1,retiredFromFleet:!1,replacedByAgentId:null})}return i}function A(){const{agents:e}=f(),[s,l]=r.useState(null);r.useEffect(()=>{let t=!1;const n=async()=>{const c=await d("/api/tail/discover").catch(()=>null);t||l(c)};n();const a=setInterval(()=>{n()},1e4);return()=>{t=!0,clearInterval(a)}},[]);const o=r.useMemo(()=>m(s,e),[s,e]);return{agents:r.useMemo(()=>[...e,...o],[e,o]),scoutAgents:e,organicAgents:o,discovery:s}}export{A as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as l,r as d}from"./index-DMiGbrBt.js";import{n as y,e as F,f as V,d as K}from"./colors-BtO5_zlx.js";import{r as T}from"./index-CJXzfjo9.js";import{a as Z}from"./api-h5zurxmi.js";import{u as N}from"./Provider-C7UKGHQy.js";import{A as U}from"./AgentDetailCard-BcRBRp88.js";const X={workspace:"workspace",worktree:"workspace",branch:"workspace",profile:"profile",persona:"profile",harness:"harness",runtime:"harness",model:"model",node:"node",host:"node"};function G(e){return e.trim().replace(/^@+/,"").replace(/[.,!?;)\]]+$/,"")}function m(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const Y="scout";function B(e){return X[m(e)]??null}function D(e){const n=m(e.definitionId),t=e.workspaceQualifier?m(e.workspaceQualifier):void 0,r=e.profile?m(e.profile):void 0,o=e.harness?m(e.harness):void 0,i=e.model?m(e.model):void 0,s=e.nodeQualifier?m(e.nodeQualifier):void 0;return n?{definitionId:n,...t?{workspaceQualifier:t}:{},...r?{profile:r}:{},...o?{harness:o}:{},...i?{model:i}:{},...s?{nodeQualifier:s}:{}}:null}function O(e){const n=e.split(".").filter(Boolean),t=n.shift();if(!t)return null;const r={definitionId:t},o=[];for(const i of n){if(i.includes(":")){const[s,c=""]=i.split(":",2),a=B(s),u=m(c);if(!a||!u)return null;a==="workspace"?r.workspaceQualifier=u:a==="profile"?r.profile=u:a==="harness"?r.harness=u:a==="model"?r.model=u:a==="node"&&(r.nodeQualifier=u);continue}o.push(i)}if(o.length===1){const i=m(o[0]);if(!i)return null;r.workspaceQualifier=i}else if(o.length===2){const i=m(o[0]),s=m(o[1]);if(!i||!s)return null;r.workspaceQualifier||(r.workspaceQualifier=i),r.nodeQualifier||(r.nodeQualifier=s)}else if(o.length>2)return null;return M(r,{raw:e})}function J(e){const n=e.indexOf("#"),t=e.indexOf("?");if(n===-1&&t===-1||e.indexOf("#",n+1)!==-1||e.indexOf("?",t+1)!==-1||n!==-1&&t!==-1&&t<n)return null;const r=Math.min(...[n,t].filter(a=>a>=0)),o=e.slice(0,r);if(!o)return null;const i=O(o);if(!i)return null;const s=n>=0?e.slice(n+1,t>=0?t:e.length):"",c=t>=0?e.slice(t+1):"";return n>=0&&!s||t>=0&&!c||s.includes("#")||s.includes("?")||c.includes("#")||c.includes("?")||i.harness&&s||i.model&&c?null:M({definitionId:i.definitionId,nodeQualifier:i.nodeQualifier,workspaceQualifier:i.workspaceQualifier,profile:i.profile,harness:s||i.harness,model:c||i.model},{raw:e})}function q(e){const n=G(e);return!n||n.includes("@")?null:n.includes("#")||n.includes("?")?J(n):O(n)}function L(e,n={}){const t=D(e);if(!t)return n.includeSigil===!1?"":"@";const o=[`${n.includeSigil===!1?"":"@"}${t.definitionId}`];return t.workspaceQualifier&&o.push(t.workspaceQualifier),t.profile&&o.push(`profile:${t.profile}`),t.harness&&o.push(`harness:${t.harness}`),t.model&&o.push(`model:${t.model}`),t.nodeQualifier&&o.push(`node:${t.nodeQualifier}`),o.join(".")}function M(e,n={}){const t=D(e);return t?{raw:n.raw??L(t,{includeSigil:!1}),label:L(t),definitionId:t.definitionId,...t.nodeQualifier?{nodeQualifier:t.nodeQualifier}:{},...t.workspaceQualifier?{workspaceQualifier:t.workspaceQualifier}:{},...t.profile?{profile:t.profile}:{},...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{}}:null}function ee(e){return ne(e).parsed}function ne(e){const n=Array.from(e.matchAll(/(^|[\s([{'"`])@([a-z0-9][a-z0-9._/:-]*(?:#[a-z0-9][a-z0-9._/:-]*)?(?:\?[a-z0-9][a-z0-9._/:-]*)?)(?=$|[\s)\]}",.!?:;'"`])/gi)),t=new Map,r=[];for(const o of n){const i=o[2]??"",s=q(i);if(!s){i&&r.push(`@${i}`);continue}t.set(s.label,s)}return{parsed:Array.from(t.values()),unparsed:Array.from(new Set(r))}}const te=280,re=120,E=320,j=8,Q=new Map,ie=1e4;function p(e){const n=e?.trim().replace(/^@+/,"").toLowerCase();return n&&n.length>0?n:null}function W(e){const n=new Set,t=r=>{const o=p(r);o&&n.add(o)};return t(e.id),t(e.handle),t(e.name),t(e.selector),t(e.defaultSelector),t(e.definitionId),e.definitionId&&e.workspaceQualifier&&t(`${e.definitionId}.${e.workspaceQualifier}`),e.definitionId&&e.workspaceQualifier&&e.nodeQualifier&&(t(`${e.definitionId}.${e.workspaceQualifier}.${e.nodeQualifier}`),t(`${e.definitionId}.${e.workspaceQualifier}.node:${e.nodeQualifier}`)),e.definitionId&&e.nodeQualifier&&t(`${e.definitionId}.node:${e.nodeQualifier}`),n}function oe(e,n){const t=p(n.label),r=p(n.raw),o=W(e);return t&&o.has(t)||r&&o.has(r)?!0:n.definitionId&&p(e.definitionId)!==p(n.definitionId)||n.workspaceQualifier&&p(e.workspaceQualifier)!==p(n.workspaceQualifier)||n.nodeQualifier&&p(e.nodeQualifier)!==p(n.nodeQualifier)||n.harness&&p(e.harness)!==p(n.harness)||n.model&&p(e.model)!==p(n.model)?!1:!!n.definitionId}function _(e,n){const t=p(n.label),r=p(n.raw),o=W(e),i=t&&o.has(t)||r&&o.has(r)?1e3:0,s=[n.workspaceQualifier,n.nodeQualifier,n.harness,n.model,n.profile].filter(Boolean).length*100;y(e.state);const c=F(e.state,e)?30:V(e.state,e)?20:0;return i+s+c+Math.min(e.updatedAt??0,9999999999)/1e9}function se(e){const n=p(e.raw);return n&&n.split(".").length>=3?n:null}function H(e,n){const t=n.filter(r=>oe(r,e)).sort((r,o)=>_(o,e)-_(r,e));return t[0]?t[0]:null}async function le(e,n){const t=H(e,n),r=t?.id??se(e),o=r??e.label,i=Q.get(o);if(i&&Date.now()-i.fetchedAt<ie)return i.agent;if(!r)return Q.set(o,{agent:t,fetchedAt:Date.now()}),t;try{const s=await Z(`/api/agents/${encodeURIComponent(r)}`);return Q.set(o,{agent:s,fetchedAt:Date.now()}),s}catch{return Q.set(o,{agent:t,fetchedAt:Date.now()}),t}}function C(e){const n=window.innerWidth,t=window.innerHeight,r=Math.max(j,Math.min(n-E-j,e.left+e.width/2-E/2)),o=e.top-j;return o>200||e.bottom>t-200?{top:o,left:r,placement:"above"}:{top:e.bottom+j,left:r,placement:"below"}}function ae(e){let n=e;for(;n;){if(n instanceof HTMLElement&&n.dataset.scoutTheme)return n;n=n.parentElement??null}return document.body}function ce({identity:e,agent:n,triggerEl:t,onRequestClose:r}){const{agents:o,navigate:i}=N(),[s,c]=d.useState(()=>n??H(e,o)),[a,u]=d.useState(!n),[f,w]=d.useState(()=>C(t.getBoundingClientRect())),x=d.useRef(null),g=ae(t);d.useEffect(()=>{if(n){c(n),u(!1);return}let h=!1;return u(!0),le(e,o).then(I=>{h||(c(I),u(!1))}),()=>{h=!0}},[e,o,n]),d.useEffect(()=>{const h=()=>{w(C(t.getBoundingClientRect()))};return window.addEventListener("scroll",h,!0),window.addEventListener("resize",h),()=>{window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h)}},[t]),d.useEffect(()=>{const h=I=>{I.key==="Escape"&&r()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[r]);const k=d.useCallback(()=>{s&&(i({view:"agents-v2",agentId:s.id}),r())},[s,i,r]),b=f.placement==="above"?"bottom center":"top center",A=f.placement==="above"?"translateY(-100%)":"",$={position:"fixed",top:f.top,left:f.left,width:E,transform:A,transformOrigin:b};return s?T.createPortal(l.jsx("div",{onMouseEnter:()=>{},onMouseLeave:r,children:l.jsx(U,{ref:x,agent:s,pinned:!0,onOpen:k,onClose:r,onAction:r,style:$,className:"agent-card--mention"})}),g):T.createPortal(l.jsx("div",{ref:x,className:"agent-card agent-card--pinned agent-card--mention",role:"dialog","aria-label":`${e.label} snapshot`,style:$,onMouseEnter:()=>{},onMouseLeave:r,children:l.jsx("div",{style:{fontSize:"12px",color:"var(--dim)",padding:"4px 2px"},children:a?"loading…":l.jsxs(l.Fragment,{children:["No agent registered as ",l.jsx("code",{children:e.label}),"."]})})}),g)}function ue(e){return M({definitionId:e.definitionId,workspaceQualifier:e.workspaceQualifier??void 0,nodeQualifier:e.nodeQualifier??void 0,harness:e.harness??void 0,model:e.model??void 0})}function fe(e){const{agent:n,identity:t}=e,[r,o]=d.useState(!1),[i,s]=d.useState(!1),c=d.useRef(null),a=d.useRef(null),u=d.useRef(null),f=d.useCallback(()=>{a.current!==null&&(window.clearTimeout(a.current),a.current=null),u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),w=d.useCallback(()=>{r||(f(),a.current=window.setTimeout(()=>o(!0),te))},[r,f]),x=d.useCallback(()=>{i||(f(),u.current=window.setTimeout(()=>o(!1),re))},[i,f]),g=d.useCallback(()=>{f(),o(!1),s(!1)},[f]);d.useEffect(()=>()=>f(),[f]);const k=d.useMemo(()=>t??(n?ue(n):null),[t,n]),b=!!k,A=d.useCallback(v=>{if(v.preventDefault(),v.stopPropagation(),r&&i){g();return}f(),s(!0),o(!0)},[r,i,g,f]),$=d.useCallback(v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),s(!0),o(!0))},[]),h=b?{ref:c,onMouseEnter:w,onMouseLeave:x,onFocus:w,onBlur:x,onClick:A,onKeyDown:$,"data-hover-open":r?"true":void 0,"aria-haspopup":"dialog","aria-expanded":r}:{ref:c},I=r&&c.current&&k?l.jsx(ce,{identity:k,agent:n??null,triggerEl:c.current,onRequestClose:()=>{i?g():x()}}):null;return{triggerProps:h,popover:I,open:r,pinned:i}}function de({identity:e,color:n}){const{triggerProps:t,popover:r}=fe({identity:e});return l.jsxs(l.Fragment,{children:[l.jsx("span",{...t,className:"s-mention",role:"button",tabIndex:0,style:{"--mention-color":n},children:e.label}),r]})}const pe=["ts","tsx","js","jsx","mjs","cjs","md","mdx","txt","log","json","jsonc","yaml","yml","toml","css","scss","html","htm","sh","py","rb","go","rs","swift","kt","java","c","cpp","h","png","jpg","jpeg","gif","svg","webp","avif","env","conf","ini","gitignore","sql","xml"],he=pe.join("|"),S=new RegExp(`\\.(?:${he})(?:$|[?#])`,"i"),me=/^(?:\/Users\/|\/home\/|\/Volumes\/|\/var\/|\/etc\/|\/opt\/|\/tmp\/|\/private\/|\/mnt\/|\/Applications\/|\/usr\/|\/Library\/)/u,we=/(?:^|[\s(\[`'"])((?:~\/|\.\/|\.\.\/|\/)[A-Za-z0-9._/\-]+|[A-Za-z0-9._\-]+(?:\/[A-Za-z0-9._\-]+)+)/g;function xe(e){return e.startsWith("~/")||e.startsWith("./")||e.startsWith("../")?!0:e.startsWith("/")&&me.test(e)||S.test(e)}function P(e){const n=[],t=new RegExp(we.source,"g");let r;for(;(r=t.exec(e))!==null;){const o=r[1];if(!o)continue;const i=o.replace(/[.,;:!?]+$/u,"");if(!i||!xe(i))continue;const s=r[0].lastIndexOf(o);if(s<0)continue;const c=r.index+s;n.push({start:c,end:c+i.length,path:i})}return n}function ge(e){return/\.(png|jpe?g|gif|svg|webp|avif)(?:$|[?#])/iu.test(e)}function ve(e){return e.endsWith("/")?!0:!(e.split("/").pop()??"").includes(".")&&!e.startsWith("./")&&!e.startsWith("../")}function ke({kind:e}){return e==="dir"?l.jsx("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:l.jsx("path",{d:"M2 5a1 1 0 0 1 1-1h3.5l1.5 1.5h5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1Z"})}):e==="image"?l.jsxs("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[l.jsx("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),l.jsx("circle",{cx:"6",cy:"7",r:"1"}),l.jsx("path",{d:"m3 12 3.5-3 2.5 2 3-2.5L14 11"})]}):l.jsxs("svg",{className:"s-path-token-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[l.jsx("path",{d:"M4 2h5l3 3v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1Z"}),l.jsx("path",{d:"M9 2v3h3"})]})}function R({path:e}){const{openFilePreview:n}=N(),t=ge(e)?"image":ve(e)?"dir":"file";return l.jsxs("button",{type:"button",className:"s-path-token",onClick:r=>{r.preventDefault(),r.stopPropagation(),n(e)},title:`Open ${e}`,children:[l.jsx(ke,{kind:t}),e]})}function Ie(e,n){if(n.length===0)return[{kind:"text",value:e}];const t=new Map;for(const s of n)t.set(s.label.toLowerCase(),s);const r=[];let o=e;const i=/@([a-z0-9][a-z0-9._/:-]*)/i;for(;o.length>0;){const s=i.exec(o);if(!s||s.index===void 0){r.push({kind:"text",value:o});break}s.index>0&&r.push({kind:"text",value:o.slice(0,s.index)});const c=s[0],a=c.toLowerCase(),u=t.get(a);u?r.push({kind:"mention",identity:u}):r.push({kind:"text",value:c}),o=o.slice(s.index+c.length)}return r}function $e(e,n){const t=[],r=/`([^`\n]+)`|\*\*(.+?)\*\*|\*([^*\s][^*]*?)\*|\[([^\]\n]+)\]\(([^)\s]+)\)|(https?:\/\/[^\s<>"')\]]+)/g;let o=0,i,s=0;const c=a=>{if(!a)return;const u=P(a);if(u.length===0){t.push(l.jsx("span",{children:a},`${n}-${s++}`));return}let f=0;for(const w of u)w.start>f&&t.push(l.jsx("span",{children:a.slice(f,w.start)},`${n}-${s++}`)),t.push(l.jsx(R,{path:w.path},`${n}-${s++}`)),f=w.end;f<a.length&&t.push(l.jsx("span",{children:a.slice(f)},`${n}-${s++}`))};for(;(i=r.exec(e))!==null;){if(i.index>o&&c(e.slice(o,i.index)),i[1]!==void 0){const a=i[1],u=P(` ${a}`);u.length===1&&u[0].path===a?t.push(l.jsx(R,{path:a},`${n}-${s++}`)):t.push(l.jsx("code",{className:"s-inline-code",children:a},`${n}-${s++}`))}else if(i[2]!==void 0)t.push(l.jsx("strong",{children:i[2]},`${n}-${s++}`));else if(i[3]!==void 0)t.push(l.jsx("em",{children:i[3]},`${n}-${s++}`));else if(i[4]!==void 0&&i[5]!==void 0&&z(i[5]))t.push(l.jsx("a",{className:"s-inline-link",href:i[5],target:"_blank",rel:"noreferrer",children:i[4]},`${n}-${s++}`));else if(i[6]!==void 0&&z(i[6])){const a=i[6].replace(/[.,;:!?]+$/u,""),u=i[6].slice(a.length);t.push(l.jsx("a",{className:"s-inline-link",href:a,target:"_blank",rel:"noreferrer",children:a},`${n}-${s++}`)),u&&t.push(l.jsx("span",{children:u},`${n}-${s++}`))}else t.push(l.jsx("span",{children:i[0]},`${n}-${s++}`));o=i.index+i[0].length}return o<e.length&&c(e.slice(o)),t.length>0?t:[l.jsx("span",{children:e},n)]}function z(e){return/^(?:https?:\/\/|mailto:|\/|#)/iu.test(e)}function Te(e){if(!e)return e??"";const n=ee(e);return Ie(e,n).flatMap((r,o)=>{if(r.kind==="text")return $e(r.value,o*100);const{identity:i}=r,c=i.definitionId===Y?"var(--accent)":K(i.definitionId);return l.jsx(de,{identity:i,color:c},o)})}export{Te as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function c(e){return e?e.replace(/^https?:\/\//,"").split("/")[0].split(":")[0].split(".")[0]||e.slice(0,8):""}function h(e){return e&&((e.hostName?c(e.hostName):null)||e.name)||"this host"}function L(e){if(!e)return"Host";const a=h(e.localNode);return a==="this host"?"Host":a}function b(e){return c(e.hostName)||e.name||"tailnet peer"}function m(e){return c(e.dnsName)||c(e.hostName)||(e.name??"").toLowerCase()}function N(e){return c(e.hostName)||(e.name?c(e.name):"")}function p(e,a){const s=new Map,r=a.localNode?.id??"local",d=h(a.localNode),f=(a.localNode&&a.nodes?.[a.localNode.id]?.host)??a.nodes?.[r]?.host;s.set(r,{machineId:r,machineLabel:d,reachability:"this",online:!0,host:f,agents:[]});for(const t of e){const o=t.authorityNodeId??t.homeNodeId??r;let n=s.get(o);if(!n){const l=a.nodes?.[o];n={machineId:o,machineLabel:h(l)||t.authorityNodeName||t.homeNodeName||o,reachability:"peer",online:!0,host:l?.host,agents:[]},s.set(o,n)}n.agents.push(t)}const i=new Set;for(const t of s.values()){i.add(t.machineLabel.toLowerCase());const o=a.nodes?.[t.machineId];if(o){const n=N(o);n&&i.add(n.toLowerCase())}}for(const t of a.tailscale?.peers??[]){const o=b(t),n=m(t).toLowerCase();if(n&&i.has(n)||i.has(o.toLowerCase()))continue;const l=`tailnet:${t.id}`;s.has(l)||(s.set(l,{machineId:l,machineLabel:o,reachability:"tailnet",online:!!(t.online&&a.tailscale?.running),agents:[]}),n&&i.add(n),i.add(o.toLowerCase()))}const u=t=>t.reachability==="this"?0:t.reachability==="peer"?1:2;return Array.from(s.values()).sort((t,o)=>{const n=u(t)-u(o);return n!==0?n:t.machineLabel.localeCompare(o.machineLabel)})}export{p as b,L as l};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.mesh-map-canvas{position:relative;height:100%;min-height:0;overflow:hidden;background:var(--bg)}.mesh-hud{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) var(--space-2xl);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent);box-shadow:0 1px color-mix(in srgb,var(--ink) 4%,transparent),0 10px 22px color-mix(in srgb,var(--bg) 35%,transparent)}.mesh-hud-left{display:flex;align-items:center;gap:var(--space-md)}.mesh-hud-right{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end}.mesh-hud-filters{display:flex;align-items:center;gap:var(--space-sm);flex:1 1 auto;justify-content:center;min-width:0}.mesh-hud-search{flex:0 1 240px;min-width:120px;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-md);letter-spacing:.01em;outline:none;transition:border-color .12s,background .12s}.mesh-hud-search::placeholder{color:var(--muted);opacity:.7}.mesh-hud-search:focus{border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--surface) 92%,transparent)}.mesh-tree-page{display:flex;flex-direction:column;height:100%;min-height:0;width:100%;overflow:auto;background:var(--bg)}.mesh-tree-page .mesh-hud{position:sticky;top:0;flex-wrap:wrap}.mesh-tree-state{margin:var(--space-4xl)}.mesh-tree-panel{padding:var(--space-lg) var(--space-4xl) var(--space-4xl);width:100%}.mesh-density-toggle[aria-hidden=true]{opacity:.32;pointer-events:none}.mesh-tree-hint{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-xs) var(--space-lg);font-family:var(--font-mono);font-size:var(--text-xs);color:color-mix(in srgb,var(--ink) 38%,transparent);letter-spacing:var(--tracking-xs);-webkit-user-select:none;user-select:none}.mesh-tree-hint kbd{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);color:var(--muted);letter-spacing:0;min-width:16px;text-align:center}.mesh-tree-hint-sep{margin:0 var(--space-xs);color:color-mix(in srgb,var(--ink) 18%,transparent)}.mesh-tree-agent--active{background:color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-tree-agent--pinned{background:color-mix(in srgb,var(--accent) 6%,transparent)}.mesh-tree-agent:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 7%,transparent)}.mesh-tree-agent-inline{min-width:0;display:flex;align-items:center;gap:0;font-family:var(--font-mono);font-size:var(--text-sm);color:color-mix(in srgb,var(--ink) 48%,transparent);letter-spacing:.01em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mesh-tree-agent--active .mesh-tree-agent-inline{color:color-mix(in srgb,var(--ink) 70%,transparent)}.mesh-tree-agent-inline-part{display:inline-flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mesh-tree-agent-inline-part--cwd{flex:1 1 auto;min-width:40px}.mesh-tree-agent-inline-part--model{color:color-mix(in srgb,var(--accent) 75%,var(--ink))}.mesh-tree-agent-inline-part--sess{color:color-mix(in srgb,var(--ink) 50%,transparent)}.mesh-tree-agent-inline-sep{margin:0 var(--space-sm);color:color-mix(in srgb,var(--ink) 18%,transparent)}@media(max-width:1499px){.mesh-tree-agent-inline-part--sess{display:none}}@media(max-width:1199px){.mesh-tree-agent-inline-part--harness{display:none}}@media(max-width:999px){.mesh-tree-agent-inline-part--model{display:none}}@keyframes agentCardEnterRight{0%{opacity:0;transform:translate(-6px) scale(.985)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes agentCardEnterLeft{0%{opacity:0;transform:translate(6px) scale(.985)}to{opacity:1;transform:translate(0) scale(1)}}.agent-card{z-index:1000;padding:var(--space-xl) var(--space-2xl) var(--space-lg);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 96%,transparent);border:1px solid color-mix(in srgb,var(--ink) 11%,transparent);backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 8%,transparent),0 8px 22px #00000038,0 1px 4px #0000001a;pointer-events:none;transform-origin:center left;will-change:transform,opacity}.agent-card--side-right{animation:agentCardEnterRight .16s cubic-bezier(.16,1,.3,1);transform-origin:center left}.agent-card--side-left{animation:agentCardEnterLeft .16s cubic-bezier(.16,1,.3,1);transform-origin:center right}@keyframes agentCardEnterCenter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.agent-card--side-center{animation:agentCardEnterCenter .18s cubic-bezier(.16,1,.3,1);transform-origin:center;box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 8%,transparent),0 14px 36px #0000004d,0 3px 10px #00000024}.agent-card--pinned{pointer-events:auto;border-color:color-mix(in srgb,var(--accent) 22%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 10%,transparent),0 10px 26px #00000042,0 1px 6px #0000001f}.agent-card--pinned .agent-card-link,.agent-card--pinned .agent-card-close{pointer-events:auto}.agent-card-head{display:flex;flex-direction:column;gap:var(--space-2xs);padding-bottom:var(--space-xl);border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.agent-card-name{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:600;letter-spacing:.005em;color:var(--ink);line-height:var(--leading-tight);word-break:break-word}.agent-card-meta{display:flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--muted);letter-spacing:var(--tracking-xs)}.agent-card-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.agent-card-dot--active,.agent-card-dot--working{box-shadow:0 0 6px color-mix(in srgb,var(--accent) 60%,transparent)}.agent-card-dot--available{background:var(--green, #4ade80)}.agent-card-dot--unavailable,.agent-card-dot--offline{background:color-mix(in srgb,var(--ink) 25%,transparent)}.agent-card-state{text-transform:uppercase;letter-spacing:var(--tracking-md);font-weight:500;font-size:var(--text-xs)}.agent-card-state--active,.agent-card-state--working{color:var(--accent)}.agent-card-state--available{color:var(--green, #4ade80)}.agent-card-state--unavailable,.agent-card-state--offline{color:var(--muted)}.agent-card-sep{color:color-mix(in srgb,var(--ink) 22%,transparent)}.agent-card-sep--inline{margin:0 var(--space-xs)}.agent-card-time{color:var(--muted)}.agent-card-body{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-xl) 0 var(--space-lg)}.agent-card-field{display:flex;flex-direction:column;gap:var(--space-3xs)}.agent-card-label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-lg);text-transform:uppercase;color:color-mix(in srgb,var(--ink) 40%,transparent)}.agent-card-value{font-family:var(--font-mono);font-size:var(--text-md);color:var(--ink);line-height:var(--leading-snug);letter-spacing:.005em}.agent-card-mono{font-family:var(--font-mono);word-break:break-all}.agent-card-branch{color:var(--muted)}.agent-card-model{color:color-mix(in srgb,var(--accent) 80%,var(--ink))}.agent-card-caps{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.agent-card-cap{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-xs);padding:var(--space-3xs) var(--space-sm);border-radius:var(--radius-md);background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--muted)}.agent-card-cap--more{background:transparent;color:color-mix(in srgb,var(--ink) 40%,transparent)}.agent-card-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-top:var(--space-lg);border-top:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.agent-card-link{background:none;border:none;padding:var(--space-3xs) 0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--accent);letter-spacing:var(--tracking-xs);cursor:pointer;pointer-events:none}.agent-card-link span{margin-left:var(--space-2xs);transition:transform .14s;display:inline-block}.agent-card-link:hover span{transform:translate(2px)}.agent-card-close{background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);padding:var(--space-3xs) var(--space-sm);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--muted);cursor:pointer;pointer-events:none}.agent-card-close:hover{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}@media(prefers-reduced-motion:reduce){.agent-card--side-right,.agent-card--side-left{animation:none}}.mesh-hud-title{font-size:var(--text-lg);font-weight:600;color:var(--ink);letter-spacing:.01em}.mesh-hud-sync{font-size:var(--text-sm);color:var(--dim);font-family:var(--font-mono);opacity:.6}.mesh-discoverability-action{white-space:nowrap}.mesh-hud-banner{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-lg);font-size:var(--text-md);color:var(--muted);background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 16px #0006;white-space:nowrap;pointer-events:all}.mesh-hud-banner--warning{border-color:#f59e0b4d;color:var(--ink)}.mesh-canvas-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);z-index:10;pointer-events:none}.mesh-canvas-center>*{pointer-events:all}.mesh-canvas-center-label{font-size:var(--text-md);color:var(--dim);font-family:var(--font-mono)}.mesh-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);background:color-mix(in srgb,var(--surface) 70%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 2px 10px #0000004d;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:100px;transition:box-shadow .12s,border-color .12s}.mesh-card:hover{border-color:color-mix(in srgb,var(--ink) 18%,transparent);box-shadow:0 2px 14px #00000073}.mesh-card--local{border-color:#ffffff2e;box-shadow:0 0 18px #ffffff0a,0 2px 10px #00000059}.mesh-card--mesh-online{border-color:#4ade8038}.mesh-card--mesh-offline{opacity:.45}.mesh-card--tailnet-online{border:1px dashed rgba(56,189,248,.28)}.mesh-card--tailnet-offline{border:1px dashed color-mix(in srgb,var(--ink) 8%,transparent);opacity:.38}.mesh-card--selected{box-shadow:0 0 0 1.5px #ffffff38,0 2px 14px #00000080}.mesh-card--placeholder{border:1px dashed color-mix(in srgb,var(--ink) 6%,transparent);background:transparent;box-shadow:none;cursor:default;opacity:.3;min-width:unset}.mesh-card-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.mesh-card-dot--local{background:#ffffffd9;box-shadow:0 0 5px #fff6}.mesh-card-dot--green{background:var(--green);box-shadow:0 0 5px #4ade8073}.mesh-card-dot--sky{background:var(--cat-sky);box-shadow:0 0 5px #38bdf866}.mesh-card-dot--dim{background:color-mix(in srgb,var(--ink) 18%,transparent)}.mesh-card-body{display:flex;flex-direction:column;gap:1px;min-width:0}.mesh-card-name{font-size:var(--text-sm);font-weight:600;color:var(--ink);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis}.mesh-card--local .mesh-card-name{font-size:var(--text-md)}.mesh-card-sub{font-size:var(--text-2xs);color:var(--dim);font-family:var(--font-mono);letter-spacing:var(--tracking-xs);opacity:.7}.mesh-node-detail{width:180px;background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 4px 20px #00000073;overflow:hidden;pointer-events:all}.mesh-detail-section{padding:var(--space-md) var(--space-lg);border-bottom:1px solid color-mix(in srgb,var(--ink) 6%,transparent)}.mesh-detail-section:last-child{border-bottom:none}.mesh-detail-label{font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim);opacity:.55;margin-bottom:var(--space-xs);font-family:var(--font-mono)}.mesh-detail-agent{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-3xs) 0}.mesh-detail-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.mesh-detail-dot--active,.mesh-detail-dot--working{background:var(--accent);box-shadow:0 0 4px color-mix(in srgb,var(--accent) 60%,transparent)}.mesh-detail-dot--available{background:color-mix(in srgb,var(--ink) 35%,transparent)}.mesh-detail-dot--unavailable,.mesh-detail-dot--offline{background:color-mix(in srgb,var(--ink) 15%,transparent)}.mesh-detail-agent-name{font-size:var(--text-sm);font-weight:500;color:var(--ink);font-family:var(--font-mono);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-detail-agent-state{font-size:var(--text-2xs);font-family:var(--font-mono);letter-spacing:var(--tracking-xs)}.mesh-detail-agent-state--active,.mesh-detail-agent-state--working{color:var(--accent)}.mesh-detail-agent-state--available{color:var(--dim)}.mesh-detail-agent-state--unavailable,.mesh-detail-agent-state--offline{color:var(--dim);opacity:.4}.mesh-detail-caps{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.mesh-detail-cap{font-size:var(--text-2xs);padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--muted);font-family:var(--font-mono);letter-spacing:var(--tracking-xs)}.mesh-detail-row{display:flex;align-items:baseline;gap:var(--space-xs);padding:1.5px 0}.mesh-detail-key{font-size:var(--text-2xs);color:var(--dim);font-family:var(--font-mono);opacity:.6;flex-shrink:0;min-width:52px}.mesh-detail-val{font-size:var(--text-sm);color:var(--muted);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-detail-empty{font-size:var(--text-xs);color:var(--dim);opacity:.45;font-family:var(--font-mono);font-style:italic}.mesh-detail-probe-btn{width:100%;padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);font-family:var(--font-mono);font-weight:500;color:var(--muted);background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius-md);cursor:pointer;text-align:left;letter-spacing:var(--tracking-xs);transition:background .1s,color .1s}.mesh-detail-probe-btn:hover{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}.mesh-detail-agent-body{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0;overflow:hidden}.mesh-detail-agent-task{font-size:var(--text-2xs);color:var(--dim);font-family:var(--font-mono);opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-canvas-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);font-size:var(--text-xs);color:var(--dim);opacity:.3;pointer-events:none;font-family:var(--font-mono);letter-spacing:var(--tracking-sm)}.mesh-mode-toggle{display:inline-flex;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius-lg);overflow:hidden}.mesh-mode-btn{padding:var(--space-2xs) var(--space-xl);font-size:var(--text-md);font-weight:500;font-family:var(--font-mono);color:var(--muted);background:transparent;border:none;cursor:pointer;transition:background .12s,color .12s;letter-spacing:var(--tracking-xs)}.mesh-mode-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-mode-btn--active{color:var(--ink);background:color-mix(in srgb,var(--ink) 10%,transparent)}.mesh-stat-strip{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;padding:var(--space-sm) 0}.mesh-stat-chip{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-md);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 90%,transparent)}.mesh-stat-chip-label{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-sm);text-transform:uppercase;color:var(--dim)}.mesh-stat-chip-value{font-size:var(--text-md);font-weight:600;color:var(--ink);font-family:var(--font-mono)}.mesh-stat-issues-badge{margin-left:2px}.mesh-map-hero{min-height:380px;border:1px solid color-mix(in srgb,var(--ink) 6%,transparent);border-radius:var(--radius-lg);overflow:hidden;background:color-mix(in srgb,var(--bg) 70%,transparent)}.mesh-map-hero .s-mesh-topology{border:none;border-radius:0;aspect-ratio:unset;height:100%;width:100%;min-height:380px}.mesh-map-hero .s-mesh-topology-canvas{width:100%;height:100%}@keyframes meshTreeFadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.mesh-tree{display:flex;flex-direction:column;gap:var(--space-lg);animation:meshTreeFadeIn .12s ease-out}.mesh-tree-group{display:flex;flex-direction:column}.mesh-tree-project{display:grid;grid-template-columns:14px auto auto 1fr auto;align-items:baseline;gap:var(--space-md);padding:var(--space-xs) var(--space-2xs);background:transparent;border:none;border-bottom:1px solid color-mix(in srgb,var(--ink) 6%,transparent);cursor:pointer;text-align:left;color:inherit;width:100%;transition:border-color .12s}.mesh-tree-project:hover{border-bottom-color:color-mix(in srgb,var(--ink) 14%,transparent)}.mesh-tree-caret{display:inline-block;font-size:var(--text-md);line-height:var(--leading-none);color:var(--muted);font-family:var(--font-mono);transition:transform .18s cubic-bezier(.32,.72,0,1);transform:rotate(0);transform-origin:center;width:10px;text-align:center}.mesh-tree-caret--open{transform:rotate(90deg)}.mesh-tree-project-name{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:600;color:var(--ink);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-tree-project-count{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--muted);letter-spacing:var(--tracking-sm);padding:1px var(--space-xs);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ink) 6%,transparent)}.mesh-tree-counts{display:inline-flex;align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-xs)}.mesh-tree-count{display:inline-flex;align-items:center;gap:var(--space-2xs)}.mesh-tree-count-dot{width:5px;height:5px;border-radius:50%;display:inline-block}.mesh-tree-count--active,.mesh-tree-count--working{color:var(--ink)}.mesh-tree-count--active .mesh-tree-count-dot,.mesh-tree-count--working .mesh-tree-count-dot{background:var(--green);box-shadow:0 0 4px color-mix(in srgb,var(--green) 50%,transparent)}.mesh-tree-count--available{color:var(--ink)}.mesh-tree-count--available .mesh-tree-count-dot{background:var(--accent)}.mesh-tree-count--unavailable,.mesh-tree-count--offline{color:var(--muted)}.mesh-tree-count--unavailable .mesh-tree-count-dot,.mesh-tree-count--offline .mesh-tree-count-dot{background:color-mix(in srgb,var(--ink) 22%,transparent)}.mesh-tree-project-time{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);opacity:.7;white-space:nowrap;justify-self:end}.mesh-tree-branches{display:flex;flex-direction:column;gap:var(--space-sm);margin-left:var(--space-lg);padding:var(--space-sm) 0 var(--space-2xs);border-left:1px solid color-mix(in srgb,var(--ink) 7%,transparent)}.mesh-tree-branch{display:flex;flex-direction:column}.mesh-tree-branch-head{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-3xs) var(--space-lg) var(--space-2xs)}.mesh-tree-branch-elbow{font-family:var(--font-mono);font-size:var(--text-md);line-height:var(--leading-none);color:var(--muted);width:10px;text-align:center;-webkit-user-select:none;user-select:none}.mesh-tree-branch-name{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--ink);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-tree-agents{display:flex;flex-direction:column;margin-left:var(--space-lg);padding-left:var(--space-md);border-left:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-tree-agent{display:grid;grid-template-columns:8px auto minmax(0,1fr) auto auto;align-items:center;gap:var(--space-md);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);background:transparent;border:none;color:inherit;cursor:pointer;text-align:left;width:100%;transition:background .1s}.mesh-tree-agent-organic{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-none);color:var(--muted);-webkit-user-select:none;user-select:none}.mesh-tree-agent--organic .mesh-tree-agent-name{font-weight:500}.mesh-tree-agent:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-tree-agent-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.mesh-tree-agent-dot--offline{opacity:.4}.mesh-tree-agent-name{font-family:var(--font-mono);font-size:var(--text-md);font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-tree-agent-state{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-sm);text-transform:uppercase;font-weight:500;white-space:nowrap}.mesh-tree-agent-state--active,.mesh-tree-agent-state--working{color:var(--green)}.mesh-tree-agent-state--available{color:var(--accent)}.mesh-tree-agent-state--unavailable,.mesh-tree-agent-state--offline{color:var(--dim);opacity:.55}.mesh-tree-agent-time{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);opacity:.65;white-space:nowrap}.mesh-left-section-label{padding:var(--space-sm) var(--space-lg) var(--space-2xs);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim);opacity:.5}.mesh-left-node-row{display:flex;align-items:flex-start;gap:var(--space-sm);width:calc(100% - 8px);padding:var(--space-xs) var(--space-lg);background:transparent;border:none;cursor:pointer;text-align:left;border-radius:var(--radius-md);margin:1px var(--space-2xs);transition:background .1s}.mesh-left-node-row:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-left-node-row--active{background:color-mix(in srgb,var(--accent) 10%,transparent)}.mesh-left-node-row--dim{opacity:.5}.mesh-left-node-dot{width:6px;height:6px;border-radius:50%;margin-top:5px;flex-shrink:0}.mesh-left-node-dot--online{background:var(--green)}.mesh-left-node-dot--tailnet{background:var(--cat-sky)}.mesh-left-node-dot--muted{background:color-mix(in srgb,var(--ink) 25%,transparent)}.mesh-left-node-dot--offline{background:color-mix(in srgb,var(--ink) 15%,transparent)}.mesh-left-node-body{display:flex;flex-direction:column;gap:var(--space-3xs);min-width:0}.mesh-left-node-name{font-size:var(--text-md);font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.mesh-left-node-sub{font-size:var(--text-sm);color:var(--muted)}.mesh-left-empty{padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);color:var(--dim);opacity:.5}.mesh-left-tailnet-label{display:flex;align-items:baseline;justify-content:space-between;margin-top:var(--space-md)}.mesh-left-tailnet-state{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-sm);text-transform:lowercase;color:#f59e0bd9;padding-right:var(--space-lg)}.mesh-left-tailnet-group{display:flex;flex-direction:column;transition:opacity .16s ease}.mesh-left-tailnet-group--dim{opacity:.42}.mesh-left-tailnet-group--dim .mesh-left-node-row{cursor:default}@keyframes meshAgentPopIn{0%{transform:translate(-50%,-50%) scale(0);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.mesh-agent-sub{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-md);border-radius:var(--radius-md);border:1px solid rgba(56,189,248,.15);background:color-mix(in srgb,var(--surface) 78%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 8px #00000047;white-space:nowrap;max-width:130px}.mesh-agent-sub-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.mesh-agent-sub-dot--working{background:var(--accent);box-shadow:0 0 4px color-mix(in srgb,var(--accent) 55%,transparent)}.mesh-agent-sub-dot--available{background:var(--green);box-shadow:0 0 4px #4ade8066}.mesh-agent-sub-dot--offline{background:color-mix(in srgb,var(--ink) 18%,transparent)}.mesh-agent-sub-name{font-size:var(--text-sm);font-weight:500;color:var(--ink);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-local-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);min-width:148px;max-width:188px;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 2px 10px #00000052;cursor:pointer;text-align:left;font-family:var(--font-mono);color:inherit;transition:border-color .13s,box-shadow .13s,transform .13s}.mesh-local-card:hover{border-color:color-mix(in srgb,var(--ink) 18%,transparent);box-shadow:0 3px 14px #00000073;transform:translateY(-1px)}.mesh-local-card--working{border-color:color-mix(in srgb,var(--accent) 28%,transparent);box-shadow:0 2px 10px #00000052,0 0 12px color-mix(in srgb,var(--accent) 12%,transparent)}.mesh-local-card--offline{opacity:.55}.mesh-local-card--organic{border-style:dashed}.mesh-local-card-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.mesh-local-card--working .mesh-local-card-dot{box-shadow:0 0 6px color-mix(in srgb,var(--accent) 65%,transparent);animation:meshLocalDotPulse 2s ease-in-out infinite}@keyframes meshLocalDotPulse{0%,to{box-shadow:0 0 6px color-mix(in srgb,var(--accent) 65%,transparent);transform:scale(1)}50%{box-shadow:0 0 10px color-mix(in srgb,var(--accent) 85%,transparent);transform:scale(1.18)}}@media(prefers-reduced-motion:reduce){.mesh-local-card--working .mesh-local-card-dot{animation:none}}.mesh-local-card-body{display:flex;flex-direction:column;gap:1px;min-width:0}.mesh-local-card-name{font-size:var(--text-sm);font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-local-card-sub{font-size:var(--text-2xs);font-weight:500;color:var(--muted);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-local-card-time{font-size:var(--text-2xs);color:var(--dim);opacity:.65;white-space:nowrap;flex-shrink:0}.mesh-local-overflow{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-xs) var(--space-lg);border-radius:var(--radius-pill);border:1px dashed color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--surface) 60%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-xs);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.mesh-local-overflow:hover{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--surface) 80%,transparent)}.sys-inspector-content{padding:var(--space-2xl);overflow-y:auto;height:100%}.sys-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-lg)}.sys-inspector-title{font-size:var(--text-lg);font-weight:600;color:var(--ink);margin:0}.sys-inspector-section-label{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim);opacity:.5;margin-bottom:var(--space-xs)}.mesh-summary{display:flex;flex-direction:column;gap:var(--space-2xl)}.mesh-summary-mode{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-sm);color:var(--muted)}.mesh-summary-section{display:flex;flex-direction:column;gap:var(--space-sm)}.mesh-summary-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-xs)}.mesh-summary-count{display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:color-mix(in srgb,var(--surface) 88%,transparent)}.mesh-summary-count-value{font-family:var(--font-mono);font-size:var(--text-3xl);font-weight:600;color:var(--ink);line-height:var(--leading-none)}.mesh-summary-count-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--muted);margin-top:var(--space-3xs)}.mesh-summary-count--active .mesh-summary-count-value,.mesh-summary-count--working .mesh-summary-count-value{color:var(--accent)}.mesh-summary-count--unavailable .mesh-summary-count-value,.mesh-summary-count--offline .mesh-summary-count-value{color:var(--ink);opacity:.55}.mesh-summary-harness{display:flex;flex-direction:column;gap:var(--space-3xs)}.mesh-summary-harness-row{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:var(--space-md);padding:var(--space-2xs) var(--space-3xs);border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-summary-harness-row:last-child{border-bottom:none}.mesh-summary-harness-name{font-family:var(--font-mono);font-size:var(--text-md);color:var(--ink)}.mesh-summary-harness-count{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);font-weight:600}.mesh-summary-harness-working{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent);letter-spacing:var(--tracking-xs)}.mesh-summary-peers{display:flex;flex-direction:column;gap:var(--space-2xs)}.mesh-summary-peer-row{display:flex;align-items:baseline;justify-content:space-between;font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-2xs) var(--space-3xs);border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-summary-peer-row:last-child{border-bottom:none}.mesh-summary-peer-label{color:var(--muted)}.mesh-summary-peer-value{color:var(--ink);font-weight:500}.mesh-summary-peer-value--dim{opacity:.55}.mesh-summary-reach{margin-top:var(--space-2xs)}.mesh-reach{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);background:color-mix(in srgb,var(--surface) 80%,transparent)}.mesh-reach--on{flex-direction:row;align-items:center;gap:var(--space-sm);border-color:color-mix(in srgb,var(--green, #4ade80) 32%,transparent)}.mesh-reach--neutral{opacity:.7}.mesh-reach-row{display:flex;align-items:center;gap:var(--space-sm)}.mesh-reach-dot{width:8px;height:8px;border-radius:50%;background:var(--green, #4ade80);box-shadow:0 0 6px color-mix(in srgb,var(--green, #4ade80) 55%,transparent);flex-shrink:0}.mesh-reach-dot--off{background:color-mix(in srgb,var(--ink) 30%,transparent);box-shadow:none}.mesh-reach-label{font-family:var(--font-mono);font-size:var(--text-md);color:var(--ink);letter-spacing:.01em}.mesh-reach-action{align-self:stretch}.mesh-action-message{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);line-height:var(--leading-tight)}.sys-inspector-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-sm);color:var(--muted);font-size:var(--text-md);text-align:center;padding:var(--space-4xl)}.mesh-density-toggle{margin-left:var(--space-2xs)}.mesh-host-frame{position:absolute;top:56px;left:16px;z-index:18;display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 4px 14px #00000052;pointer-events:none;-webkit-user-select:none;user-select:none}.mesh-host-frame-eyebrow{font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim);opacity:.7}.mesh-host-frame-name{font-size:var(--text-lg);font-weight:600;color:var(--ink);font-family:var(--font-mono)}.mesh-host-frame-stats{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-3xs)}.mesh-host-frame-stat{font-size:var(--text-xs);color:var(--muted);font-family:var(--font-mono)}.mesh-host-frame-stat--working{color:var(--accent)}.mesh-cluster{border-radius:10px;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:color-mix(in srgb,var(--surface) 55%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 3%,transparent)}.mesh-cluster-header{display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-lg);border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-cluster-name{font-size:var(--text-sm);font-weight:600;color:var(--ink);font-family:var(--font-mono);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mesh-cluster-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 var(--space-xs);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ink) 7%,transparent);font-size:var(--text-2xs);font-weight:700;color:var(--muted);font-family:var(--font-mono)}.mesh-cluster-states{display:inline-flex;align-items:center;gap:var(--space-xs);margin-left:auto}.mesh-cluster-state{display:inline-flex;align-items:center;gap:var(--space-3xs);font-size:var(--text-2xs);font-family:var(--font-mono);color:var(--muted)}.mesh-cluster-state-dot{display:inline-block;width:5px;height:5px;border-radius:50%}.mesh-cluster-state--working .mesh-cluster-state-dot{background:var(--accent)}.mesh-cluster-state--available .mesh-cluster-state-dot{background:var(--green, #4ade80)}.mesh-cluster-state--offline .mesh-cluster-state-dot{background:var(--dim);opacity:.5}.mesh-cluster-state--working{color:var(--accent)}.mesh-instance-spec,.mesh-instance-sheet{position:relative;width:100%;height:100%;border:1px solid color-mix(in srgb,var(--ink) 7%,transparent);border-radius:0;background:color-mix(in srgb,var(--surface) 92%,transparent);font-family:var(--font-mono);color:var(--ink);text-align:left;overflow:hidden;transition:border-color .12s ease,background .12s ease}.mesh-instance-spec:before,.mesh-instance-sheet:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--state-stripe, var(--dim))}.mesh-instance-spec:hover,.mesh-instance-sheet:hover{border-color:color-mix(in srgb,var(--accent) 28%,transparent);background:color-mix(in srgb,var(--accent) 3%,transparent)}.mesh-instance--active{border-color:color-mix(in srgb,var(--accent) 55%,transparent)!important;background:color-mix(in srgb,var(--accent) 6%,transparent)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}.mesh-instance-spec--offline,.mesh-instance-sheet--offline{opacity:.55}.mesh-instance-spec--organic,.mesh-instance-sheet--organic{border-style:dashed}.mesh-sheet-open{flex:0 0 auto;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:transparent;color:color-mix(in srgb,var(--ink) 55%,transparent);font-family:var(--font-mono);font-size:var(--text-md);line-height:1;cursor:pointer;border-radius:0;transition:color .1s ease,background .1s ease,border-color .1s ease}.mesh-sheet-open:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.mesh-sheet-open:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.mesh-instance-spec{display:flex;flex-direction:column;justify-content:center;gap:1px;padding:var(--space-2xs) var(--space-2xs) var(--space-xs) var(--space-md)}.mesh-instance-spec-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);min-width:0}.mesh-instance-spec-primary{flex:1 1 auto;font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mesh-instance-spec-secondary{flex:1 1 auto;font-size:var(--text-2xs);color:var(--dim);letter-spacing:var(--tracking-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mesh-instance-spec-time{flex:0 0 auto;font-size:var(--text-2xs);letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim)}.mesh-instance-sheet{display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-lg);justify-content:center}.mesh-sheet-line{display:flex;align-items:center;gap:var(--space-md);min-width:0}.mesh-sheet-line--head{gap:var(--space-sm)}.mesh-sheet-id{flex:1 1 auto;font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-xs);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mesh-sheet-time{flex:0 0 auto;font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.mesh-sheet-path{flex:1 1 auto;font-size:var(--text-2xs);color:var(--muted, var(--dim));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mesh-sheet-ctx{flex:0 0 auto;font-size:var(--text-2xs);color:var(--ink);white-space:nowrap}.mesh-sheet-ctx-label{font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim);margin-right:var(--space-2xs)}.mesh-sheet-tag{flex:0 0 auto;font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim);padding:1px var(--space-xs);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.mesh-empty-pill{display:inline-block;padding:var(--space-xs) var(--space-xl);border-radius:var(--radius-pill);border:1px dashed color-mix(in srgb,var(--ink) 12%,transparent);background:color-mix(in srgb,var(--surface) 70%,transparent);font-size:var(--text-sm);color:var(--dim);font-family:var(--font-mono)}.mesh-machine-section{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 80%,transparent),color-mix(in srgb,var(--bg) 88%,transparent));border:1px solid color-mix(in srgb,var(--border) 45%,transparent);border-radius:4px;box-shadow:0 4px 14px -10px #00000073,inset 0 1px color-mix(in srgb,var(--ink) 4%,transparent);overflow:hidden;position:relative}.mesh-machine-section:after{content:"";position:absolute;right:0;top:18%;bottom:18%;width:4px;pointer-events:none;background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--ink) 10%,transparent) 0px,color-mix(in srgb,var(--ink) 10%,transparent) 1px,transparent 1px,transparent 3px);opacity:.3}.mesh-machine-section--collapsed{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 88%,transparent),color-mix(in srgb,var(--bg) 92%,transparent))}.mesh-machine-section--pinned{border-color:color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:0 4px 14px -10px #00000073}.mesh-machine-header{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:0 var(--space-lg);border:0;background:transparent;border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent);cursor:grab;text-align:left;font-family:var(--font-mono);color:var(--ink)}.mesh-machine-header:active{cursor:grabbing}.mesh-machine-header:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.mesh-machine-section--collapsed .mesh-machine-header{border-bottom:0}.mesh-machine-led{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--ink) 28%,transparent)}.mesh-machine-led--working{background:var(--accent);box-shadow:0 0 6px -1px color-mix(in srgb,var(--accent) 55%,transparent)}.mesh-machine-led--available{background:color-mix(in srgb,var(--ink) 45%,transparent)}.mesh-machine-led--offline,.mesh-machine-led--dim{background:color-mix(in srgb,var(--ink) 14%,transparent)}.mesh-machine-caret{flex:0 0 auto;width:11px;text-align:center;font-family:var(--font-mono);font-size:var(--text-2xs);color:color-mix(in srgb,var(--ink) 50%,transparent)}.mesh-machine-grip{flex:0 0 auto;font-size:var(--text-sm);color:color-mix(in srgb,var(--ink) 22%,transparent);cursor:grab;-webkit-user-select:none;user-select:none;letter-spacing:-1px}.mesh-machine-section--pinned .mesh-machine-grip{color:color-mix(in srgb,var(--accent) 65%,transparent)}.mesh-machine-name{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-xs);color:var(--ink)}.mesh-machine-chip{flex:0 0 auto;padding:1px var(--space-xs);border-radius:var(--radius-xs);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-xl);text-transform:uppercase;background:transparent;border:1px solid color-mix(in srgb,var(--border) 55%,transparent);color:color-mix(in srgb,var(--ink) 55%,transparent)}.mesh-machine-chip--this{border-color:color-mix(in srgb,var(--accent) 38%,transparent);color:var(--accent)}.mesh-machine-chip--peer{border-color:color-mix(in srgb,var(--border) 55%,transparent);color:color-mix(in srgb,var(--ink) 55%,transparent)}.mesh-machine-chip--tailnet{border-style:dashed;border-color:color-mix(in srgb,var(--border) 55%,transparent);color:color-mix(in srgb,var(--ink) 50%,transparent)}.mesh-machine-counts{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-xs)}.mesh-machine-count{color:color-mix(in srgb,var(--ink) 65%,transparent);font-variant-numeric:tabular-nums}.mesh-machine-count--working{color:var(--accent);font-weight:700;text-shadow:0 0 6px color-mix(in srgb,var(--accent) 30%,transparent)}.mesh-machine-spec{display:flex;flex-direction:column;font-family:var(--font-mono);background:transparent}.mesh-machine-spec-head{display:grid;grid-template-columns:96px 1fr;align-items:center;padding:0 var(--space-xl);border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);background:color-mix(in srgb,var(--ink) 4%,transparent)}.mesh-machine-spec-head-cell{font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-xl);text-transform:uppercase;color:color-mix(in srgb,var(--ink) 38%,transparent)}.mesh-machine-spec-row{display:grid;grid-template-columns:96px 1fr;align-items:center;padding:0 var(--space-xl);border-bottom:1px solid color-mix(in srgb,var(--border) 10%,transparent)}.mesh-machine-spec-row:last-child{border-bottom:0}.mesh-machine-spec-label{font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-xl);text-transform:uppercase;color:color-mix(in srgb,var(--ink) 40%,transparent)}.mesh-machine-spec-value{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-xs);color:color-mix(in srgb,var(--ink) 78%,transparent);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-machine-spec-value--accent{color:var(--accent);font-weight:600}.mesh-machine-ghost{display:flex;align-items:center}.mesh-machine-ghost-body{width:100%;height:100%;display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-lg);border:1px solid color-mix(in srgb,var(--border) 35%,transparent);background:color-mix(in srgb,var(--surface) 60%,transparent);border-radius:var(--radius-sm);cursor:pointer;text-align:left;color:var(--muted);font-family:var(--font-mono);position:relative;overflow:hidden;transition:background .18s,border-color .18s,color .18s,transform .18s}.mesh-machine-ghost-body:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--border));color:var(--ink);transform:translateY(-1px)}.mesh-machine-ghost-led{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--ink) 25%,transparent);animation:mesh-standby-pulse 2.6s ease-in-out infinite}@keyframes mesh-standby-pulse{0%,to{opacity:.45}50%{opacity:.95}}.mesh-machine-ghost-name{flex:1 1 auto;min-width:0;font-size:var(--text-sm);font-weight:650;letter-spacing:var(--tracking-sm);color:color-mix(in srgb,var(--ink) 72%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-machine-ghost-stamp{flex:0 0 auto;font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-xl);text-transform:uppercase;color:color-mix(in srgb,var(--ink) 55%,transparent);padding:1px var(--space-xs);border:1px solid color-mix(in srgb,var(--border) 50%,transparent);border-radius:var(--radius-xs)}.mesh-machine-ghost-counts{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-2xs);color:color-mix(in srgb,var(--ink) 50%,transparent)}.mesh-machine-chip--ghost{opacity:.6;box-shadow:none}.mesh-machine-state-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent);background:transparent}.mesh-machine-state-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3xs);padding:var(--space-xs) var(--space-2xs);border-right:1px solid color-mix(in srgb,var(--border) 18%,transparent)}.mesh-machine-state-cell:last-child{border-right:0}.mesh-machine-state-num{font-family:var(--font-mono);font-size:var(--text-3xl);font-weight:600;letter-spacing:var(--tracking-xs);color:color-mix(in srgb,var(--ink) 78%,transparent);font-variant-numeric:tabular-nums;line-height:var(--leading-none)}.mesh-machine-state-label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-xl);text-transform:uppercase;color:color-mix(in srgb,var(--ink) 38%,transparent)}.mesh-machine-state-cell--working .mesh-machine-state-num{color:var(--accent)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as d}from"./index-DMiGbrBt.js";const u=new Set(["in_turn","in_flight","needs_attention","callable","blocked"]),l="openscout.mesh.machinePositions.v1";function f(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(l);if(!e)return{};const n=JSON.parse(e);if(n&&typeof n=="object"){const i={};for(const[c,o]of Object.entries(n))o&&typeof o=="object"&&typeof o.x=="number"&&typeof o.y=="number"&&(i[c]={x:o.x,y:o.y});return i}}catch{}return{}}function r(e){if(!(typeof window>"u"))try{window.localStorage.setItem(l,JSON.stringify(e))}catch{}}let t={mode:"map",density:"comfortable",selectedId:null,selectedType:null,meshSnapshot:null,probeCache:{},query:"",stateFilter:"all",agentStateFilters:u,hiddenMachineIds:new Set,collapsedMachineIds:new Set,treeFullMachineIds:new Set,scrollTargetMachineId:null,machinePositions:f()};const a=new Set;function s(){for(const e of a)e()}function p(e){t.mode!==e&&(t={...t,mode:e},s())}function g(e){t.density!==e&&(t={...t,density:e},s())}function w(e,n){t.selectedId===e&&t.selectedType===n||(t={...t,selectedId:e,selectedType:n},s())}function y(e){t={...t,meshSnapshot:e},s()}function I(e){t.query!==e&&(t={...t,query:e},s())}function b(e){t.stateFilter!==e&&(t={...t,stateFilter:e},s())}function T(e){const n=new Set(t.agentStateFilters);n.has(e)?n.delete(e):n.add(e),t={...t,agentStateFilters:n},s()}function x(e){const n=new Set(t.treeFullMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,treeFullMachineIds:n},s()}function P(e){const n=new Set(t.hiddenMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,hiddenMachineIds:n},s()}function _(e,n){const i=new Set;for(const c of n)c!==e&&i.add(c);t={...t,hiddenMachineIds:i},s()}function m(){t.hiddenMachineIds.size!==0&&(t={...t,hiddenMachineIds:new Set},s())}function F(e){const n=new Set(t.collapsedMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,collapsedMachineIds:n},s()}function A(e,n){const i={...t.machinePositions,[e]:n};t={...t,machinePositions:i},r(i),s()}function O(){if(Object.keys(t.machinePositions).length===0)return;const e={};t={...t,machinePositions:e},r(e),s()}function E(e){t={...t,scrollTargetMachineId:e},s(),queueMicrotask(()=>{t.scrollTargetMachineId===e&&(t={...t,scrollTargetMachineId:null},s())})}function h(e){return a.add(e),()=>{a.delete(e)}}function S(){return t}function j(){return d.useSyncExternalStore(h,S)}export{w as a,F as b,A as c,O as d,p as e,g as f,I as g,b as h,T as i,m as j,x as k,_ as l,E as r,y as s,P as t,j as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./createLucideIcon-OpA4Amw5.js";const c=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],a=e("message-circle",c);export{a as M};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import{j as i}from"./index-DMiGbrBt.js";import{r as c}from"./mentions-jSuTGeet.js";const h=/^```([a-z0-9_-]+)?\s*$/iu,E=/^(#{1,6})\s+(.+)$/u,L=/^(?:-{3,}|\*{3,}|_{3,})$/u,_=/^\s*[-*]\s+(.+)$/u,M=/^\s*\d+[.)]\s+(.+)$/u,w=/^\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)+\|?$/u;function B(e){return/[\r\n]/u.test(e)||!(/(?:(?:\\r)?\\n){2}/u.test(e)||/(?:\\r)?\\n(?=\s*(?:#{1,6}\s|[-*+]\s|>\s|\d+[.)]\s|[A-Z][A-Za-z ]{0,40}:))/u.test(e))?e:e.replace(/\\r\\n|\\n|\\r/gu,`
|
|
2
|
+
`)}function P(e){const s=B(e).replace(/\r\n?/gu,`
|
|
3
|
+
`).trim();return s?s.replace(/([^\n])\s+---\s+(?=(?:#{1,6}\s|\*\*|[A-Z0-9]))/gu,`$1
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
`).replace(/([^\n])\s+(#{1,6}\s+)/gu,`$1
|
|
8
|
+
|
|
9
|
+
$2`).replace(/\n{3,}/gu,`
|
|
10
|
+
|
|
11
|
+
`):""}function T(e){return e.trim().length===0}function q(e){return E.test(e.trim())}function N(e){return L.test(e.trim())}function d(e){return e.match(_)?.[1]?.trim()??null}function p(e){return e.match(M)?.[1]?.trim()??null}function D(e){return d(e)!==null||p(e)!==null}function $(e){return e.trim().replace(/^\|/u,"").replace(/\|$/u,"").split("|").map(t=>t.trim())}function R(e,s){const t=e[s]?.trim(),r=e[s+1]?.trim();return!!(t&&r&&t.includes("|")&&w.test(r))}function H(e,s){const t=e[s]??"",r=t.trim();return!!(T(t)||h.test(r)||q(t)||N(t)||D(t)||r.startsWith(">")||R(e,s))}function S(e){const s=P(e);if(!s)return[];const t=s.split(`
|
|
12
|
+
`),r=[];let n=0;for(;n<t.length;){const u=t[n]??"",l=u.trim();if(!l){n+=1;continue}const g=l.match(h);if(g){const a=[];for(n+=1;n<t.length&&!h.test(t[n].trim());)a.push(t[n]),n+=1;n<t.length&&(n+=1),r.push({type:"code",language:g[1]??null,text:a.join(`
|
|
13
|
+
`)});continue}if(N(u)){r.push({type:"hr"}),n+=1;continue}const m=l.match(E);if(m){r.push({type:"heading",depth:m[1].length,text:m[2].trim()}),n+=1;continue}if(R(t,n)){const a=$(t[n]);n+=2;const o=[];for(;n<t.length&&t[n].includes("|")&&!T(t[n]);)o.push($(t[n])),n+=1;r.push({type:"table",headers:a,rows:o});continue}const A=d(u),f=p(u);if(A!==null||f!==null){const a=f!==null,o=[];for(;n<t.length;){const j=a?p(t[n]):d(t[n]);if(j===null)break;o.push(j),n+=1}r.push({type:"list",ordered:a,items:o});continue}if(l.startsWith(">")){const a=[];for(;n<t.length&&t[n].trim().startsWith(">");)a.push(t[n].trim().replace(/^>\s?/u,"")),n+=1;r.push({type:"blockquote",text:a.join(`
|
|
14
|
+
`).trim()});continue}const x=[];for(;n<t.length&&!H(t,n);)x.push(t[n].trimEnd()),n+=1;r.push({type:"paragraph",text:x.join(`
|
|
15
|
+
`).trim()})}return r}function z(e,s){const t=Math.min(6,Math.max(2,e.depth+1));return i.jsx("div",{role:"heading","aria-level":t,className:`s-message-markup-heading s-message-markup-heading-${e.depth}`,children:c(e.text)},s)}function I(e,s){return i.jsx("div",{className:"s-message-markup-table-wrap",children:i.jsxs("table",{className:"s-message-markup-table",children:[i.jsx("thead",{children:i.jsx("tr",{children:e.headers.map((t,r)=>i.jsx("th",{children:c(t)},`${s}:h:${r}`))})}),i.jsx("tbody",{children:e.rows.map((t,r)=>i.jsx("tr",{children:e.headers.map((n,u)=>i.jsx("td",{children:c(t[u]??"")},`${s}:c:${r}:${u}`))},`${s}:r:${r}`))})]})},s)}function O(e,s){switch(e.type){case"paragraph":return i.jsx("p",{className:"s-message-markup-paragraph",children:c(e.text)},s);case"heading":return z(e,s);case"hr":return i.jsx("hr",{className:"s-message-markup-rule"},s);case"list":return e.ordered?i.jsx("ol",{className:"s-message-markup-list",children:e.items.map((t,r)=>i.jsx("li",{children:c(t)},`${s}:${r}`))},s):i.jsx("ul",{className:"s-message-markup-list",children:e.items.map((t,r)=>i.jsx("li",{children:c(t)},`${s}:${r}`))},s);case"blockquote":return i.jsx("blockquote",{className:"s-message-markup-quote",children:c(e.text)},s);case"code":return i.jsx("pre",{className:"s-message-markup-code",children:i.jsx("code",{children:e.text})},s);case"table":return I(e,s)}}function Z({text:e,className:s}){const t=S(e??"");return t.length===0?e??"":i.jsx("div",{className:["s-message-markup",s].filter(Boolean).join(" "),children:t.map(O)})}export{Z as M};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a}from"./createLucideIcon-OpA4Amw5.js";const e=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],o=a("message-square",e);export{o as M};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function t(s){return s.class!=="status"||s.actorId!=="system"?!1:s.body.includes("failed to respond")&&s.body.includes("snapshot.messages")}export{t as i};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-wall{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg);font-family:var(--font-mono);color:var(--ink);overflow:hidden}.s-wall-status{flex:none;display:flex;align-items:center;gap:var(--space-sm);min-height:26px;padding:0 var(--space-lg);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 18%,var(--bg));font-size:var(--text-2xs);letter-spacing:.04em}.s-wall-status-key{color:var(--dim);text-transform:lowercase}.s-wall-status-value{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:var(--space-md)}.s-wall-status-hidden{color:var(--dim);font-variant-numeric:tabular-nums}.s-wall-status-pin{margin-left:auto;padding:0;border:0;background:none;color:var(--accent);font:inherit;letter-spacing:inherit;cursor:pointer}.s-wall-status-pin:hover{text-decoration:underline}.s-wall-grid{flex:1;min-height:0;display:grid;padding:var(--space-sm);overflow:hidden}.s-wall-pane{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid var(--border);border-radius:var(--radius-xs);background:color-mix(in srgb,var(--surface) 34%,var(--bg));overflow:hidden;cursor:pointer;transition:border-color .12s}.s-wall-pane:hover{border-color:color-mix(in srgb,var(--muted) 45%,var(--border))}.s-wall-pane--live{border-color:color-mix(in srgb,var(--green) 30%,var(--border))}.s-wall-pane--selected,.s-wall-pane--selected:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}.s-wall-pane--revealed{animation:s-wall-reveal 1.8s ease-out}@keyframes s-wall-reveal{0%,40%{box-shadow:inset 0 0 0 1px var(--accent);border-color:var(--accent)}to{box-shadow:inset 0 0 0 1px transparent}}@media(prefers-reduced-motion:reduce){.s-wall-pane--revealed{animation:none;border-color:var(--accent)}}.s-wall-pane-head{flex:none;display:flex;align-items:center;gap:var(--space-xs);min-height:22px;padding:0 var(--space-sm);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--ink) 3%,transparent);font-size:var(--text-2xs);letter-spacing:.02em;white-space:nowrap;overflow:hidden}.s-wall-pane-dot{flex:none;width:5px;height:5px;border-radius:50%}.s-wall-pane--live .s-wall-pane-dot{animation:s-ops-pulse 1.6s ease-in-out infinite}.s-wall-pane-title{flex:0 1 auto;min-width:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;font-weight:600;letter-spacing:inherit;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.s-wall-pane-title:hover{color:var(--accent)}.s-wall-pane-title:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.s-wall-pane-where{flex:0 1 auto;min-width:0;color:var(--dim);overflow:hidden;text-overflow:ellipsis}.s-wall-pane-spacer{flex:1 1 auto}.s-wall-pane-live{flex:none;color:var(--green);text-transform:uppercase;letter-spacing:var(--tracking-md)}.s-wall-pane-file{flex:none;max-width:40%;padding:0;border:0;background:none;color:var(--dim);font:inherit;letter-spacing:inherit;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.s-wall-pane-file:hover{color:var(--accent);text-decoration:underline}.s-wall-pane-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 0 4px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border) 80%,transparent) transparent}.s-wall-pane-body::-webkit-scrollbar{width:5px}.s-wall-pane-body::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border) 80%,transparent)}.s-wall-pane-idle{padding:var(--space-sm) var(--space-md);color:var(--dim);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm)}.s-wall-line{display:grid;grid-template-columns:52px 8px minmax(0,1fr);align-items:baseline;gap:var(--space-xs);padding:0 var(--space-sm);font-size:var(--text-2xs);line-height:15px;color:var(--muted)}.s-wall-line:nth-child(2n){background:color-mix(in srgb,var(--ink) 2.5%,transparent)}.s-wall-line-time{color:var(--dim);font-variant-numeric:tabular-nums}.s-wall-line-glyph{color:var(--dim)}.s-wall-line-text{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.s-wall-line-repeat{color:var(--dim);font-variant-numeric:tabular-nums}.s-wall-line--user .s-wall-line-text{color:var(--ink)}.s-wall-line--assistant .s-wall-line-text{color:color-mix(in srgb,var(--ink) 80%,transparent)}.s-wall-line--tool .s-wall-line-text{color:var(--accent)}.s-wall-line--system .s-wall-line-text,.s-wall-line--other .s-wall-line-text{color:var(--dim)}.s-wall-pane-body>.s-wall-line:last-child{animation:s-wall-line-in .22s cubic-bezier(.22,.61,.36,1) both}@keyframes s-wall-line-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.s-wall-pane-body>.s-wall-line:last-child{animation:none}}.s-wall-empty{grid-column:1 / -1;grid-row:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm)}.s-wall-empty-title{font-family:var(--font-accent-title);font-size:var(--text-4xl);color:var(--ink);letter-spacing:-.01em}.s-wall-empty-sub{font-size:var(--text-sm);color:var(--dim);letter-spacing:var(--tracking-sm)}.s-mission-overlay{position:absolute;inset:0;z-index:10;background:var(--scrim-soft);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);display:flex;align-items:stretch;justify-content:center;padding:var(--space-4xl);animation:s-mission-overlay-in .14s ease-out}@keyframes s-mission-overlay-in{0%{opacity:0}to{opacity:1}}.s-mission-overlay-dialog{display:flex;flex-direction:column;flex:1 1 auto;max-width:1180px;min-height:0;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:var(--radius-md);box-shadow:0 24px 80px -12px #000000b8,0 0 0 1px #ffffff0a;outline:none;overflow:hidden}.s-mission-overlay-header{display:flex;align-items:center;gap:var(--space-xl);padding:var(--space-lg) var(--space-xl) var(--space-md) var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent);flex:none}.s-mission-overlay-identity{flex:1 1 auto;min-width:0}.s-mission-overlay-handle{color:var(--dim);font-size:var(--text-sm)}.s-mission-overlay-close{flex:0 0 auto;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-xs);transition:color .1s,background .1s,border-color .1s}.s-mission-overlay-close:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-mission-overlay-tabs{display:flex;align-items:stretch;justify-content:space-between;gap:var(--space-lg);padding:0 var(--space-lg) 0 var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent);flex:none}.s-mission-overlay-tabs-group{display:flex}.s-mission-overlay-tabs-action{display:flex;align-items:center}.s-mission-overlay-jump{padding:var(--space-2xs) var(--space-md);background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);color:var(--accent);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-md);cursor:pointer;border-radius:var(--radius-xs);transition:background .12s,border-color .12s,color .12s}.s-mission-overlay-jump:hover{background:var(--accent);color:var(--bg)}.s-mission-overlay-jump:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.s-mission-overlay-tab{padding:var(--space-md) var(--space-xl);background:transparent;border:0;border-bottom:2px solid transparent;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-lg);text-transform:uppercase;cursor:pointer;transition:color .12s,border-color .12s;margin-bottom:-1px}.s-mission-overlay-tab:hover{color:var(--ink)}.s-mission-overlay-tab--active{color:var(--ink);border-bottom-color:var(--accent)}.s-mission-overlay-tab:focus-visible{outline:1px solid var(--accent);outline-offset:-2px}.s-focus-tab{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:var(--space-3xl) var(--space-3xl);gap:var(--space-2xl)}.s-focus-tab--activity{padding:0;overflow:hidden}.s-focus-tab--activity-preview{gap:var(--space-xl)}.s-focus-stats{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:color-mix(in srgb,var(--ink) 10%,transparent);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius-xs);overflow:hidden;flex:0 0 auto}.s-focus-stat{display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-sm) var(--space-lg);background:color-mix(in srgb,var(--surface) 90%,transparent);min-width:0}.s-focus-stat-label{margin:0;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-focus-stat-value{margin:0;font-family:var(--font-mono);font-size:var(--text-lg);font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}.s-focus-activity-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-y:auto;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-xs);background:color-mix(in srgb,var(--bg) 50%,transparent)}.s-focus-activity-empty{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:var(--space-4xl);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--dim);border:1px dashed color-mix(in srgb,var(--ink) 12%,transparent);border-radius:var(--radius-xs)}.s-focus-activity-empty--rich{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--space-xl);padding:var(--space-2xl);background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink)}.s-focus-activity-empty-head{display:flex;flex-direction:column;gap:var(--space-2xs)}.s-focus-activity-empty-eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-focus-activity-empty-title{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:500;color:var(--ink);letter-spacing:var(--tracking-sm)}.s-focus-activity-empty-facts{margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid color-mix(in srgb,var(--ink) 7%,transparent)}.s-focus-activity-empty-fact{display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-sm) var(--space-md);background:color-mix(in srgb,var(--surface) 92%,transparent);min-width:0}.s-focus-activity-empty-fact dt{margin:0;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-focus-activity-empty-fact dd{margin:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-focus-activity-empty-actions{display:flex;gap:var(--space-sm);margin-top:auto}.s-focus-activity-empty-btn{flex:1 1 auto;appearance:none;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-md);text-transform:uppercase;padding:var(--space-sm) var(--space-md);cursor:pointer;border-radius:var(--radius-xs);transition:background .12s ease,border-color .12s ease}.s-focus-activity-empty-btn:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);border-color:color-mix(in srgb,var(--ink) 22%,transparent)}.s-focus-activity-empty-btn--primary{border-color:color-mix(in srgb,var(--accent) 50%,transparent);color:var(--accent)}.s-focus-activity-empty-btn--primary:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:var(--accent)}.s-focus-activity-row{display:grid;grid-template-columns:36px 14px 44px 1fr;align-items:baseline;gap:var(--space-sm);padding:var(--space-xs) var(--space-lg);border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent);min-width:0}.s-focus-activity-row:last-child{border-bottom:0}.s-focus-activity-time{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim);font-variant-numeric:tabular-nums;text-align:right;letter-spacing:var(--tracking-md)}.s-focus-activity-glyph{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);text-align:center;line-height:var(--leading-none)}.s-focus-activity-row--tool .s-focus-activity-glyph{color:var(--accent)}.s-focus-activity-row--think .s-focus-activity-glyph{color:var(--muted, var(--dim))}.s-focus-activity-row--ask .s-focus-activity-glyph{color:var(--amber)}.s-focus-activity-row--message .s-focus-activity-glyph{color:var(--ink)}.s-focus-activity-row--boot .s-focus-activity-glyph{color:var(--green)}.s-focus-activity-kind{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim)}.s-focus-activity-text{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.s-focus-spec{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-5xl);row-gap:var(--space-lg);flex:0 0 auto}.s-focus-spec-row{display:grid;grid-template-columns:64px 1fr;column-gap:var(--space-lg);align-items:baseline;margin:0;min-width:0}.s-focus-spec-label{margin:0;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim);white-space:nowrap}.s-focus-spec-value{margin:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.s-focus-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.s-focus-action{display:flex;flex-direction:column;gap:var(--space-2xs);padding:var(--space-lg) var(--space-xl);text-align:left;background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);font-family:inherit;transition:background .12s,border-color .12s}.s-focus-action:hover{background:color-mix(in srgb,var(--accent) 6%,transparent);border-color:color-mix(in srgb,var(--accent) 32%,transparent)}.s-focus-action:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.s-focus-action-name{font-family:var(--font-mono);font-size:var(--text-md);font-weight:500;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--ink)}.s-focus-action-desc{font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--muted)}.s-focus-compose{display:flex;flex-direction:column;gap:var(--space-md);flex:1 1 auto;min-height:0}.s-focus-compose-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-focus-compose-target{color:var(--accent);text-transform:none;letter-spacing:var(--tracking-xs);font-size:var(--text-sm);margin-left:var(--space-xs)}.s-focus-compose-input{flex:1 1 auto;min-height:120px;padding:var(--space-md) var(--space-lg);background:color-mix(in srgb,var(--bg) 60%,transparent);border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:var(--radius-sm);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-md);line-height:var(--leading-normal);resize:none;outline:none;transition:border-color .12s}.s-focus-compose-input::placeholder{color:var(--dim)}.s-focus-compose-input:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.s-focus-compose-input:disabled{opacity:.6}.s-focus-compose-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.s-focus-compose-hint{flex:1 1 auto;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--dim);line-height:var(--leading-snug);min-width:0}.s-focus-compose-hint strong{color:var(--ink);font-weight:500}.s-focus-compose-error{color:var(--red)}.s-focus-compose-ok{color:var(--green);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-md)}.s-focus-compose-link{background:transparent;border:0;padding:0;margin-left:var(--space-sm);color:var(--accent);font-family:inherit;font-size:inherit;letter-spacing:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.s-focus-compose-link:hover{color:var(--ink)}.s-focus-compose-actions{display:flex;gap:var(--space-sm);flex:0 0 auto}.s-mission-overlay-name{font-size:var(--text-xl);font-weight:500}.s-mission-overlay-meta{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);letter-spacing:var(--tracking-sm)}.s-mission-overlay-actions{margin-left:auto;display:flex;gap:var(--space-xs)}.s-mission-overlay-body{flex:1;min-height:0;overflow:hidden}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,c as a}from"./colors-BtO5_zlx.js";const o=6e4;function r(s,t){switch(t){case"activity":return s.activityLabel;case"workspace":return s.workspace?.trim()||"Unassigned";case"harness":return s.harness?.trim()||"Unknown harness";case"state":return a(s.state??null);case"source":return s.source==="native"?"Native sessions":"Scout agents"}}const i={think:"think",tool:"tool",ask:"ask",message:"msg",note:"note",system:"sys",boot:"boot"};function c(s){return e(s)}export{o as A,i as K,r as m,c as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as o}from"./index-DMiGbrBt.js";const c=[{label:"5m",value:5*6e4},{label:"30m",value:30*6e4},{label:"4h",value:240*6e4},{label:"24h",value:1440*6e4}];let t={activityFilter:"active",sourceFilter:"all",activityWindowMs:c[3].value,groupMode:"activity",query:"",focusedId:null,revealRequest:null,visibleAgents:[],selectedIds:[]};const u=new Set;let a=0;function s(){for(const e of u)e()}function I(e){t.activityFilter!==e&&(t={...t,activityFilter:e},s())}function g(e){t.sourceFilter!==e&&(t={...t,sourceFilter:e},s())}function y(e){t.activityWindowMs!==e&&(t={...t,activityWindowMs:e},s())}function A(e){t.groupMode!==e&&(t={...t,groupMode:e},s())}function S(e){t.query!==e&&(t={...t,query:e},s())}function h(e){t.focusedId!==e&&(t={...t,focusedId:e},s())}function b(e){a+=1,t={...t,revealRequest:{id:e,serial:a}},s()}function p(e){t.revealRequest?.serial===e&&(t={...t,revealRequest:null},s())}function f(e,n){if(e===n)return!0;if(e.length!==n.length)return!1;for(let i=0;i<e.length;i++){const r=e[i],l=n[i];if(r.id!==l.id||r.state!==l.state||r.updatedAt!==l.updatedAt||r.activity!==l.activity||r.lastActiveAt!==l.lastActiveAt)return!1}return!0}function q(e){f(t.visibleAgents,e)||(t={...t,visibleAgents:e},s())}function _(e){const n=t.selectedIds.includes(e);t={...t,selectedIds:n?t.selectedIds.filter(i=>i!==e):[...t.selectedIds,e]},s()}function R(){t.selectedIds.length!==0&&(t={...t,selectedIds:[]},s())}function d(e){return u.add(e),()=>{u.delete(e)}}function v(){return t}function F(){return o.useSyncExternalStore(d,v)}export{c as M,h as a,R as b,p as c,g as d,S as e,I as f,y as g,A as h,b as r,q as s,_ as t,F as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as U,c as W}from"./colors-BtO5_zlx.js";import{f as w}from"./text-DsBWV_4k.js";function f(t){if(!t)return null;const e=t.replace(/\/+$/,""),n=e.lastIndexOf("/");return n>=0?e.slice(n+1):e}function h(t){const e=t?.trim();return e&&(e==="/private/tmp"||e.startsWith("/private/tmp/")?e.replace(/^\/private\/tmp/u,"/tmp"):e).replace(/\/+$/,"")||null}function z(t){const e=t.replace(/\/+$/,""),n=e.lastIndexOf("/");return n>=0?e.slice(0,n)||"/":null}function j(t){return t.split(/[-_\s]+/).filter(Boolean).map(e=>e.slice(0,1).toUpperCase()+e.slice(1)).join(" ")}function N(t){if(!t)return null;const e=x(t);if(e)return{title:j(f(e)??"Unscoped"),root:e};const n=f(t)?.trim().toLowerCase();if(!n||n==="~")return null;const o=n.match(/^(.+?)(?:-(?:parity|codex))?-c\d+$/)?.[1];if(!o)return null;const r=z(t);return{title:j(o),root:r?`${r}/${o}`:o}}function x(t){const e=t.replace(/\/+$/,"");if(/^(?:~|\/Users\/[^/]+)\/\.codex\/worktrees\//u.test(e))return null;const n=e.match(/^(.*)\/([^/]+)-worktrees(?:\/[^/]+)+$/);return n?.[1]&&n[2]?`${n[1]}/${n[2]}`:e.match(/^(.*\/[^/]+)\/(?:\.worktrees|worktrees)(?:\/[^/]+)+$/)?.[1]??null}function B(t){const n=f(t)?.match(/^(.+)-\d+$/u),s=z(t);return n?.[1]&&s?`${s}/${n[1]}`:null}function D(t){const e=t?.trim();if(!e)return null;const n=e.match(/^(\/Users\/[^/]+\/dev\/[^/]+)/);if(n?.[1])return n[1];const s=e.match(/^(~\/dev\/[^/]+)/);if(s?.[1])return s[1];const o=e.match(/\.claude\/projects\/-Users-([^-]+)-dev-([^/]+)/);if(o?.[1]&&o[2]){const r=o[2].split("-packages-")[0]??o[2];return`/Users/${o[1]}/dev/${r}`}return null}function E(t){const e=t.match(/^\/(?:Users|home)\/[^/]+(\/.*)?$/);if(!e)return t;const n=e[1]??"";return n?`~${n}`:"~"}function $(t){const e=h(t);if(!e)return null;const s=N(e)?.root??B(e)??e,r=E(D(s)??s);return r==="~"||/^\/(Users|home)\/[^/]+$/.test(r)||/^\/(Users|home)$/.test(r)?null:r}function I(t){return(t??"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+\d+$/,"").replace(/\s+/g,"")}function O(t){return(t??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-\d+$/,"")}function K(t){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e=Math.imul(e,16777619);return(e>>>0).toString(36)}function P(t){const e=t.root??"";return e?C(e)?3:e.startsWith("~/dev/")||/^\/Users\/[^/]+\/dev\//.test(e)?0:e.startsWith("~/")?1:2:4}function q(t,e){return P(t)-P(e)||t.key.localeCompare(e.key)}function H(t){const e=new Map;for(const n of t){const s=e.get(n.slug)??[];s.push(n),e.set(n.slug,s)}for(const n of e.values()){if(n.length<=1)continue;const s=[...n].sort(q)[0];for(const o of n)o!==s&&(o.slug=`${o.slug}-${K(o.key)}`)}}function J(t,e){const n=$(t);return n?`root:${n}`:`project:${I(e)||"unscoped"}`}function C(t){return!!(t?.startsWith("/tmp/")||t?.startsWith("/private/tmp/")||t?.startsWith("/var/tmp/")||t?.startsWith("/private/var/tmp/")||/^\/(?:private\/)?var\/folders\/[^/]+\/[^/]+\/T\//.test(t??""))}function M(t,e){const n=$(e),s=n?j(f(n)??(t?.trim()||"Unscoped")):t?.trim()||"Unscoped";return{key:J(n,s),title:s,root:n,slug:O(f(n)??s)||"unscoped"}}const V=new Set(["empty","unknown","unscoped","untitled","general"]);function G(t,e){t.agents.push(...e.agents),t.scoutSessions.push(...e.scoutSessions),t.nativeSessions.push(...e.nativeSessions),t.workflows.push(...e.workflows)}function Q(t){const e=new Map;for(const n of t.values()){if(!n.root)continue;const s=I(f(n.root)??n.title);s&&!e.has(s)&&e.set(s,n)}for(const[n,s]of[...t.entries()]){if(s.root)continue;const o=I(s.title),r=o?e.get(o):void 0;r?(G(r,s),t.delete(n)):(!o||V.has(s.title.trim().toLowerCase())||s.agents.length===0&&s.scoutSessions.length===0)&&t.delete(n)}}function vt(t,e){if(e.filter(o=>o.name===t.name).length<=1)return{name:t.name,qualifier:null};const s=t.project??t.branch??t.id.replace(/^.*\./,"");return{name:t.name,qualifier:s}}function At(t){const e=[...t].filter(o=>o.kind==="direct"&&!!o.agentId).sort((o,r)=>(r.lastMessageAt??0)-(o.lastMessageAt??0)),n=new Map,s=new Map;for(const o of e){const r=s.get(o.agentId);(!r||X(o,r))&&(n.set(o.agentId,o.id),s.set(o.agentId,o))}return{conversationByAgentId:n,sessionByAgentId:s}}function X(t,e){const n=t.lastMessageAt??0,s=e.lastMessageAt??0;return n!==s?n>s:t.id<e.id}const A={needs_attention:0,in_turn:1,in_flight:2,callable:3,blocked:4},Y=6e4;function v(t,e){const n=h(e),s=N(n);return s?M(s.title,s.root):M(t,n)}function Z(t){const e=h(t.agent.projectRoot??t.agent.cwd),n=t.agent.project??t.project;return v(n,e)}function tt(t){return v(t.project,t.cwd)}function et(t){return v(t.agentName??t.title,t.workspaceRoot)}function nt(t){return v(t.project.title,t.project.root)}function S(t){const e=t?.trim();if(!e)return null;const n=f(e)??e;return n.endsWith(".jsonl")?n.slice(0,-6):n}function p(t,e){const n=e?.trim();n&&t.add(n.toLowerCase());const s=S(n);s&&t.add(s.toLowerCase())}function F(t){const e=new Set;return p(e,t.agent.conversationId),p(e,t.agent.harnessSessionId),p(e,t.agent.harnessLogPath),p(e,t.session?.id),p(e,t.session?.harnessSessionId),p(e,t.session?.harnessLogPath),e}function g(t,e){const n=e?.trim();if(n&&t.has(n.toLowerCase()))return!0;const s=S(n);return!!(s&&t.has(s.toLowerCase()))}function st(t,e){if(t.agentId&&t.agentId===e.agent.id)return!0;const n=F(e);return g(n,t.id)||g(n,t.harnessSessionId)||g(n,t.harnessLogPath)}function ot(t,e){const n=t?.command?.toLowerCase();return n?[e.agent.id,e.agent.selector?.replace(/^@/,"").replace(/\.node:.+$/,""),e.agent.defaultSelector?.replace(/^@/,"").replace(/\.node:.+$/,""),e.agent.harnessSessionId].filter(o=>!!(o&&o.length>=8)).some(o=>n.includes(o.toLowerCase())):!1}function rt(t,e){const n=F(e);return g(n,t.refId)||g(n,t.sessionId)||g(n,t.transcriptPath)||ot(t.process,e)}function yt(t,e){if(!t)return[];const n=[];for(const s of t.transcripts??[]){const o=s.source||"unknown",r=S(s.sessionId)??S(s.transcriptPath);if(!r)continue;const l=(s.lastEventAt??s.mtimeMs)||null;n.push({key:`transcript:${s.transcriptPath}`,refId:r,source:o,project:s.project?.trim()||f(s.cwd)||f(s.transcriptPath)||"unknown",cwd:h(s.cwd),transcriptPath:s.transcriptPath,sessionId:s.sessionId,mtimeMs:s.mtimeMs,size:s.size,status:l&&e-l<=Y?"active":"idle",process:null,lastActivityAt:l})}for(const s of t.processes??[]){const o=s.source||"unknown",r=h(s.cwd);n.push({key:`process:${o}:${s.pid}`,refId:`pid-${s.pid}`,source:o,project:f(r)??"unknown",cwd:r,transcriptPath:null,sessionId:null,mtimeMs:null,size:null,status:"active",process:s,lastActivityAt:null})}return n.sort((s,o)=>{const r=(s.status==="active"?0:1)-(o.status==="active"?0:1);return r!==0?r:(o.lastActivityAt??0)-(s.lastActivityAt??0)||s.project.localeCompare(o.project)})}function at(t){if(!t)return"—";const e=t.replace(/^session[_:-]?/i,"");return e.length>10?e.slice(0,8):e}function m(t){const e=t?.trim();return e||void 0}function St(t){const e=m(t.projectRoot)??m(t.cwd);return{target:{agentId:t.id,...e?{projectPath:e}:{}},execution:{session:"new",...m(t.harness)?{harness:m(t.harness)}:{},...m(t.model)?{model:m(t.model)}:{}}}}function it(t){if(t.length===0)return null;const e={working:0,needs_attention:1,queued:2,failed:3,completed:4},n=[...t].sort((s,o)=>{const r=e[s.status]-e[o.status];return r!==0?r:(o.updatedAt??0)-(s.updatedAt??0)})[0];return(n.summary??n.task??n.statusLabel??"").trim()||null}function kt(t,e,n){const s=U(t.state,t),o=t.project??f(t.projectRoot)??"Unscoped",r=t.branch??"—",l=w(t.harness)??w(t.agentClass)??"agent";return{agent:t,status:s,stateLabel:W(t.state,t),project:o,branch:r,harness:l,session:e,activeTask:it(n),activeAskCount:n.length,lastActivityAt:Math.max(0,e?.lastMessageAt??0,t.updatedAt??0)||null}}function ct(t){return{...t,agents:[],scoutSessions:[],nativeSessions:[],workflows:[],status:"callable",lastActivityAt:null}}function y(t,e){const n=t.get(e.key);if(n)return e.root&&(!n.root||C(n.root)&&!C(e.root))&&(n.root=e.root),n;const s=ct(e);return t.set(e.key,s),s}function ut(t){const e=t.agents.some(a=>a.status==="in_turn"||a.status==="in_flight"),n=t.nativeSessions.some(a=>a.status==="active"),s=t.workflows.some(a=>a.activeTaskCount>0||a.status==="running"),o=t.agents.some(a=>a.status==="callable");t.status=e||n||s?"in_turn":o?"callable":"blocked";const r=t.agents.map(a=>a.lastActivityAt??0),l=t.scoutSessions.map(a=>a.lastMessageAt??0),c=t.nativeSessions.map(a=>a.lastActivityAt??0),i=t.workflows.map(a=>a.lastActivityAt??0),u=Math.max(0,...r,...l,...c,...i);t.lastActivityAt=u||null}function lt(t,e,n,s){const o=new Map,r=new Map;for(const i of t){const u=Z(i);y(o,u).agents.push(i),r.set(i.agent.id,u.key)}for(const i of n)y(o,tt(i)).nativeSessions.push(i);for(const i of s)y(o,nt(i)).workflows.push(i);const l=new Map;for(const i of e){const u=i.agentId?r.get(i.agentId):void 0,a=u?o.get(u)??null:$(i.workspaceRoot)?y(o,et(i)):null;if(!a)continue;const d=a,k=l.get(d.key)??new Set;k.has(i.id)||(k.add(i.id),l.set(d.key,k),d.scoutSessions.push(i))}Q(o);for(const i of o.values())i.agents.sort((u,a)=>{const d=A[u.status]-A[a.status];return d!==0?d:(a.lastActivityAt??0)-(u.lastActivityAt??0)||u.agent.name.localeCompare(a.agent.name)}),i.scoutSessions.sort((u,a)=>(a.lastMessageAt??0)-(u.lastMessageAt??0)),i.nativeSessions.sort((u,a)=>{const d=(u.status==="active"?0:1)-(a.status==="active"?0:1);return d!==0?d:(a.lastActivityAt??0)-(u.lastActivityAt??0)}),i.workflows.sort((u,a)=>{const d=(a.activeTaskCount>0?1:0)-(u.activeTaskCount>0?1:0);return d!==0?d:(a.lastActivityAt??0)-(u.lastActivityAt??0)||u.label.localeCompare(a.label)}),ut(i);const c=[...o.values()];return H(c),c.sort((i,u)=>{const a=A[i.status]-A[u.status];return a!==0?a:(u.lastActivityAt??0)-(i.lastActivityAt??0)||i.title.localeCompare(u.title)})}function b(t){const e=w(t.harness)??"scout";return{key:`scout:${t.id}`,kind:"scout",status:t.kind,harness:e,label:t.title||t.agentName||t.id,detail:t.preview??t.id,lastActivityAt:t.lastMessageAt,route:{view:"conversation",conversationId:t.id}}}function R(t){return{key:`native:${t.key}`,kind:"native",status:t.status,harness:t.source,label:at(t.sessionId??t.refId),detail:t.transcriptPath??t.process?.command??t.cwd,lastActivityAt:t.lastActivityAt,route:t.sessionId||t.transcriptPath?{view:"sessions",sessionId:t.refId}:null}}function dt(t,e){return t.agent.name.localeCompare(e.agent.name)||t.agent.id.localeCompare(e.agent.id)}function L(t){const e={workflow:0,native:1,scout:2};return[...t].sort((n,s)=>{const o=e[n.kind]-e[s.kind];return o!==0?o:n.harness.localeCompare(s.harness)||n.key.localeCompare(s.key)})}function ft(t){const e=new Set,n=new Set,s=[...t.agents].sort(dt).map(r=>{const l=[];for(const c of t.scoutSessions)e.has(c.id)||st(c,r)&&(e.add(c.id),l.push(b(c)));for(const c of t.nativeSessions)n.has(c.key)||rt(c,r)&&(n.add(c.key),l.push(R(c)));return{key:r.agent.id,row:r,sessions:L(l)}}),o=L([...t.nativeSessions.filter(r=>!n.has(r.key)).map(R),...t.scoutSessions.filter(r=>!e.has(r.id)).map(b)]);return{agents:s,unassignedSessions:o}}const pt=t=>t.status==="in_turn"||t.status==="in_flight";function mt(t){let e=t.row.lastActivityAt??0;for(const n of t.sessions)e=Math.max(e,n.lastActivityAt??0);return e}function T(t){return t.agents.filter(e=>pt(e.row)).length}function _(t){return t.agents.some(e=>e.row.activeAskCount>0)}function wt(t,e,n){const o=lt(t,e,n,[]).map(r=>{const l=ft(r);let c=0;for(const i of l.agents)c=Math.max(c,mt(i));for(const i of l.unassignedSessions)c=Math.max(c,i.lastActivityAt??0);return{slice:r,agents:l.agents,unassigned:l.unassignedSessions,lastActivityAt:c}});return o.sort((r,l)=>{const c=_(r)?1:0,i=_(l)?1:0;if(c!==i)return i-c;const u=T(r),a=T(l);return u!==a?a-u:l.lastActivityAt-r.lastActivityAt}),o}function jt(t,e){if(!e)return null;const n=e.trim().replace(/^@+/,"");if(!n)return null;const s=t.find(c=>c.id===n);if(s)return s;if(n.split(".").filter(Boolean).length>=3)return null;const r=t.filter(c=>c.handle===n||c.selector===`@${n}`||c.defaultSelector===`@${n}`||c.id.startsWith(`${n}.`)),l=Array.from(new Map(r.map(c=>[c.id,c])).values());return l.length===1?l[0]:null}function It(t){const n=t.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return n[n.length-1]??t}function Ct(t){const e=h(t.projectRoot??t.cwd),n=t.project??f(e);return v(n,e)}export{Ct as a,vt as b,kt as c,At as d,yt as e,wt as f,T as g,_ as h,pt as i,St as n,It as p,jt as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as u,p}from"./agents-project-model-UYiamtrU.js";import{t as d}from"./time-DltNTpLl.js";function h(e){return e==="pi"?"grok":e.toLowerCase()}function I(e,t){const s=[];for(const o of e){const n=u(o),{primary:i,ephemeral:r}=p(n),g=t?[...i,...r]:i;for(const a of g){const c=a.nodes[0];c&&s.push({group:a,projectSlug:o.slice.slug,projectTitle:o.slice.title,projectRoot:o.slice.root,leadRow:c.row,leadAgent:c.row.agent})}}return s.sort(f)}function f(e,t){return e.group.needs!==t.group.needs?e.group.needs?-1:1:t.group.lastActivityAt-e.group.lastActivityAt||t.group.sessionCount-e.group.sessionCount}function v(e){const t=(e.preview??"").replace(/^\[ask:[^\]]+\]\s*/i,"").replace(/\s+/g," ").trim();if(t)return t;const s=e.title?.trim();return s&&s!==e.agentName?s:"Untitled session"}function l(e,t=140){if(!e?.trim())return"";let s=e.replace(/^\[ask:[^\]]+\]\s*/gi,"").replace(/^#+\s+/gm,"").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/^[-*•]\s+/gm,"").replace(/\s+/g," ").trim();return s?s.length>t?`${s.slice(0,t-1).trim()}…`:s:""}function m(e){const t=[],s=(n,i)=>{const r=l(n);!r||r==="Untitled session"||t.push({text:r,at:i})};for(const n of e.group.nodes){n.row.session&&s(v(n.row.session),n.row.session.lastMessageAt??0);for(const i of n.sessions)s(i.detail??i.label,i.lastActivityAt??0)}return t.length===0?null:t.reduce((n,i)=>i.at>n.at?i:n).text}function j(e,t){const s=e.leadRow.activeTask?l(e.leadRow.activeTask):null;if(s)return s;const o=m(e);if(o)return o;if(e.group.sessionCount>0){const n=e.group.lastActivityAt?d(e.group.lastActivityAt):null;return n?`Idle · last active ${n}`:`Idle · ${e.group.sessionCount} sessions`}return t==="idle"?"No recent activity":e.leadRow.stateLabel}function R(e){return{view:"agents-v2",...e.projectSlug?{projectSlug:e.projectSlug}:{},...e.harness?{harness:e.harness}:{},...e.node?{node:e.node}:{},...e.set?{set:e.set}:{},...e.indexView?{indexView:e.indexView}:{},...e.stateFilter?{stateFilter:e.stateFilter}:{},...e.showEphemeral?{showEphemeral:!0}:{},...e.selectedAgentId?{selectedAgentId:e.selectedAgentId}:{},..."machineId"in e&&e.machineId?{machineId:e.machineId}:{}}}function k(e){return!!e.agentId}function x(e,t){return{...e,view:"agents-v2",agentId:t,selectedAgentId:void 0,sessionId:void 0,tab:void 0,conversationId:void 0}}export{j as a,I as b,l as c,h,k as i,x as o,R as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r}from"./index-DMiGbrBt.js";import{a as L}from"./api-h5zurxmi.js";import{a as S}from"./colors-BtO5_zlx.js";import{i as y,o as E}from"./surface-activity-B1rgWB1i.js";const _=1e4,b=6e4;function O(t,s){const[p,i]=r.useState({}),c=s?.enabled??!0,o=r.useRef(!0),f=r.useRef(!1),l=r.useRef(!1),u=s?.pauseWhenHidden??!1,d=t.map(e=>e.id.trim()).filter(e=>e.length>0).join(","),I=t.some(e=>S(e.state))?s?.activeIntervalMs??_:s?.idleIntervalMs??b,n=r.useCallback(async()=>{if(c){if(t.length===0){i({});return}if(!(u&&!y())){if(f.current){l.current=!0;return}f.current=!0;try{const e=d?`?ids=${encodeURIComponent(d)}`:"",v=await L(`/api/observe/agents${e}`);if(!o.current)return;i(h=>{const m={};for(const a of t)m[a.id]=h[a.id];for(const a of v){const{agentId:R,...A}=a;m[R]=A}return m})}finally{f.current=!1,l.current&&(l.current=!1,n())}}}},[d,t,c,u]);return r.useEffect(()=>{if(o.current=!0,!c||t.length===0)return i({}),()=>{o.current=!1};n();const e=setInterval(()=>{n()},I),v=u?E(()=>{n()}):null;return()=>{o.current=!1,clearInterval(e),v?.()}},[t.length,c,n,u,I]),p}export{O as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i,a as u}from"./terminal-sessions-D5CIR2OL.js";import{o as f}from"./openContent-C6XO6kr5.js";function m(r,t,e={}){if(i(t.id)){const s=u(t);s&&f(r,{view:"sessions",sessionId:s},{returnTo:e.returnTo});return}const n=e.tab??(e.observe?"observe":void 0),o={view:"agents-v2",agentId:t.id,...n?{tab:n}:{}};if(e.returnTo){r(o,{returnTo:e.returnTo});return}r(o)}export{m as o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(r,n,o={}){if(o.returnTo){r(n,{returnTo:o.returnTo});return}r(n)}export{e as o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as n}from"./api-h5zurxmi.js";function e({conversationId:t,workId:o,agentId:r}){return t?{view:"conversation",conversationId:t}:o?{view:"follow",workId:o,preferredView:"chat",...r?{targetAgentId:r}:{}}:r?{view:"agents-v2",agentId:r,tab:"message"}:{view:"inbox"}}function a(t){return e({conversationId:t.conversationId,workId:t.kind==="work_item"?t.recordId:null,agentId:t.agentId})}function s(t){return e({conversationId:t.conversationId,workId:t.collaborationRecordId,agentId:t.agentId})}async function d(t){await n("/api/operator-attention/dismiss",{method:"POST",body:JSON.stringify(t)})}export{a,d,s as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-ops-agents{display:flex;height:100%;min-height:0;background:color-mix(in srgb,var(--bg) 82%,black);color:var(--ink);font-family:var(--font-sans)}.s-ops-agents-main{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;min-height:0;overflow:hidden}.s-ops-agents-toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent)}.s-ops-agents-breadcrumb{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm)}.s-ops-agents-breadcrumb span{color:var(--dim);padding:0 var(--space-xs)}.s-ops-agents-live{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm)}.s-ops-agents-live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 7px color-mix(in srgb,var(--accent) 70%,transparent)}.s-ops-agents-search{display:flex;align-items:center;gap:var(--space-sm);width:min(340px,28vw);min-width:210px;padding:var(--space-xs) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--dim);background:color-mix(in srgb,var(--surface) 70%,transparent)}.s-ops-agents-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:var(--text-sm) var(--font-mono)}.s-ops-agents-search input::placeholder{color:var(--dim)}.s-ops-agents-icon-btn{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.s-ops-agents-icon-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-ops-agents-hero{padding:var(--space-5xl) var(--space-4xl) var(--space-3xl)}.s-ops-agents-kicker,.s-ops-agents-table-title,.s-ops-agents-metric-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-ops-agents-hero h1{margin-top:var(--space-sm);color:var(--ink);font-size:var(--text-5xl);line-height:var(--leading-none);font-weight:650;letter-spacing:0}.s-ops-agents-hero p{margin-top:var(--space-sm);color:var(--dim);font-size:var(--text-lg)}.s-ops-agents-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg);padding:0 var(--space-4xl) var(--space-4xl)}.s-ops-agents-metric{min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2xl);background:color-mix(in srgb,var(--surface) 60%,transparent)}.s-ops-agents-metric-value{margin-top:var(--space-lg);font-family:var(--font-mono);font-size:var(--text-5xl);line-height:var(--leading-none);font-variant-numeric:tabular-nums}.s-ops-agents-metric-sub{margin-top:var(--space-sm);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-sm)}.s-ops-agents-metric--warn .s-ops-agents-metric-value{color:var(--amber)}.s-ops-agents-table-panel{min-height:0;padding:0 var(--space-4xl) var(--space-4xl);overflow:hidden}.s-ops-agents-table-title{display:flex;align-items:center;gap:var(--space-sm);height:24px}.s-ops-agents-table-title span{color:var(--muted);letter-spacing:0}.s-ops-agents-table-wrap{height:calc(100% - 24px);min-height:0;overflow:hidden}.s-ops-agents-data-table{height:100%}.s-ops-agents-hint{display:inline-flex;align-items:center;gap:var(--space-xs);margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-xs);color:color-mix(in srgb,var(--ink) 38%,transparent);-webkit-user-select:none;user-select:none}.s-ops-agents-hint kbd{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);color:var(--muted);min-width:16px;text-align:center}.s-ops-agents-table-title{align-items:center}.s-ops-agents-agent-cell{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.s-ops-agents-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--dim)}.s-ops-agents-agent-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:.01em}.s-ops-agents-task{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm)}.s-ops-agents-task--idle{color:color-mix(in srgb,var(--ink) 22%,transparent)}.s-ops-agents-meta-cell{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm)}.s-ops-agents-num,.s-ops-agents-last{text-align:right}.s-ops-agents-num--warn{color:var(--amber)}.s-ops-agents-num--dim{color:var(--dim)}.s-ops-agents-num--covered{color:var(--green)}.s-ops-agents-spark{display:block;width:92px;height:22px;color:var(--accent)}.s-ops-agents-spark--warn{color:var(--amber)}@media(max-width:900px){.s-ops-agents-toolbar{flex-wrap:wrap}.s-ops-agents-search{width:100%;min-width:0;order:2}.s-ops-agents-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-atop{display:grid;grid-template-rows:auto auto auto 1fr auto;height:100%;min-height:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans)}.s-atop--sessions{grid-template-rows:auto minmax(0,1fr) auto}.s-atop-summary{display:flex;align-items:stretch;gap:0;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 60%,transparent)}.s-atop-summary-cell{display:flex;flex-direction:column;justify-content:center;gap:var(--space-2xs);padding:var(--space-md) var(--space-xl);min-width:0;border-right:1px solid var(--border)}.s-atop-summary-cell:last-of-type{border-right:0}.s-atop-summary-cell--breakdown{flex:1.2}.s-atop-summary-cell--rate{text-align:right}.s-atop-summary-num{display:flex;align-items:baseline;gap:var(--space-xs);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-5xl);font-weight:600;color:var(--ink);line-height:var(--leading-none)}.s-atop-summary-cell--rate .s-atop-summary-num{justify-content:flex-end}.s-atop-summary-num strong{font-weight:700}.s-atop-summary-of{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:400;color:var(--dim)}.s-atop-summary-lbl{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim)}.s-atop-summary-row{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.s-atop-summary-spacer{flex:1;border-right:1px solid var(--border)}.s-atop-spark{display:block;margin-top:var(--space-3xs);opacity:.8}.s-atop-fbar{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-lg);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 35%,transparent);font-family:var(--font-mono);font-size:var(--text-sm);overflow-x:auto;scrollbar-width:none}.s-atop-fbar::-webkit-scrollbar{display:none}.s-atop-search{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-sm);background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid var(--border);border-radius:var(--radius-md);flex:0 0 320px;min-width:240px}.s-atop-search:focus-within{border-color:var(--accent)}.s-atop-search-prompt{color:var(--accent);font-weight:600}.s-atop-search-input{flex:1;background:transparent;border:0;outline:0;color:var(--ink);font:inherit;min-width:0}.s-atop-search-input::placeholder{color:var(--dim)}.s-atop-search-kbd{font-size:var(--text-xs);color:var(--dim);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3xs) var(--space-2xs)}.s-atop-fbar-label{color:var(--dim);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:var(--tracking-md);padding:0 var(--space-2xs) 0 var(--space-sm)}.s-atop-fbar-spacer{flex:1}.s-atop-pill{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-md);background:color-mix(in srgb,var(--surface) 50%,transparent);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;transition:border-color .12s,color .12s,background .12s}.s-atop-pill:hover{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.s-atop-pill--on{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:var(--accent);color:var(--ink)}.s-atop-pill-ct{font-size:var(--text-xs);color:var(--dim);font-variant-numeric:tabular-nums}.s-atop-pill--on .s-atop-pill-ct{color:var(--accent)}.s-atop-chip{display:inline-flex;align-items:center;padding:var(--space-3xs) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-sm);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--border) 90%,transparent);background:transparent;color:var(--muted);white-space:nowrap}.s-atop-chip--harness{gap:var(--space-2xs);color:var(--scout-chrome-ink-soft);border-color:color-mix(in srgb,var(--ink) 12%,var(--border));background:color-mix(in srgb,var(--ink) 4%,transparent)}.s-atop-chip--mute{opacity:.55}.s-atop-status{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500}.s-atop-status-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--dim)}.s-atop-status--tool .s-atop-status-dot{background:var(--accent);box-shadow:0 0 6px color-mix(in srgb,var(--accent) 60%,transparent)}.s-atop-status--run .s-atop-status-dot{background:var(--green);box-shadow:0 0 6px color-mix(in srgb,var(--green) 50%,transparent)}.s-atop-status--idle .s-atop-status-dot{background:color-mix(in srgb,var(--dim) 70%,transparent)}.s-atop-status--tool{color:var(--accent)}.s-atop-status--run{color:var(--green)}.s-atop-status--idle{color:var(--dim)}.s-atop-pill--status-tool.s-atop-pill--on{border-color:var(--accent)}.s-atop-pill--status-run.s-atop-pill--on{border-color:var(--green);background:color-mix(in srgb,var(--green) 14%,transparent)}.s-atop-pill--status-run.s-atop-pill--on .s-atop-pill-ct{color:var(--green)}.s-atop-pill--status-idle.s-atop-pill--on{border-color:var(--dim);background:color-mix(in srgb,var(--dim) 14%,transparent)}.s-atop-pill--status-idle.s-atop-pill--on .s-atop-pill-ct{color:var(--muted)}.s-atop-data-table{min-height:0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border) 80%,transparent) transparent}.s-atop-data-table::-webkit-scrollbar{width:8px;height:8px}.s-atop-data-table::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border) 80%,transparent);border-radius:var(--radius-sm)}.s-atop-row--selected td{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink)}.s-atop-col-project{color:var(--ink);overflow:hidden;text-overflow:ellipsis}.s-atop-col-num{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.s-atop-col-num--dim{color:var(--dim)}.s-atop-col-num--amber{color:var(--amber)}.s-atop-col-num--green{color:var(--green)}.s-atop-col-last,.s-atop-col-runtime{color:var(--dim);text-align:right}.s-atop-agent-cell{display:flex;align-items:center;gap:var(--space-xs)}.s-atop-agent-id{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-xs)}.s-atop-cmd-base{color:var(--ink);font-weight:500}.s-atop-cmd-summary{color:var(--dim)}.s-atop-empty-row td{padding:0}.s-atop-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-8xl) var(--space-3xl);text-align:center;color:var(--dim);font-size:var(--text-md)}.s-atop-empty-title{color:var(--muted);font-size:var(--text-sm);letter-spacing:var(--tracking-xl);text-transform:uppercase}.s-atop-keys{display:flex;align-items:center;gap:var(--space-xl);padding:var(--space-2xs) var(--space-lg);border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 60%,transparent);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);letter-spacing:var(--tracking-sm)}.s-atop-keys-count strong{color:var(--ink);font-weight:600}.s-atop-keys-spacer{flex:1}.s-atop-keys kbd{display:inline-block;padding:0 var(--space-2xs);margin-right:var(--space-2xs);background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--muted);border-radius:var(--radius-xs);font-family:var(--font-mono);font-size:var(--text-sm);border:1px solid color-mix(in srgb,var(--border) 90%,transparent)}.s-atop-drawer{position:relative;margin-top:var(--space-xl);width:100%;max-height:52vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);display:grid;grid-template-rows:auto 1fr;animation:s-atop-drawer-in .16s ease-out}@keyframes s-atop-drawer-in{0%{transform:translateY(4px);opacity:0}to{transform:none;opacity:1}}.s-atop-drawer-head{position:relative;padding:var(--space-xl) var(--space-2xl);border-bottom:1px solid var(--border)}.s-atop-drawer-head-meta{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);flex-wrap:wrap}.s-atop-drawer-pid{color:var(--ink);font-weight:600}.s-atop-drawer-session{color:var(--dim)}.s-atop-drawer-title{margin:var(--space-sm) 0 var(--space-3xs);font:600 var(--text-2xl)/var(--leading-tight) var(--font-sans);color:var(--ink)}.s-atop-drawer-sub{margin:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim)}.s-atop-drawer-close{position:absolute;top:10px;right:12px;background:transparent;border:0;color:var(--dim);font-size:var(--text-3xl);cursor:pointer;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm)}.s-atop-drawer-close:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-atop-drawer-body{overflow:auto;padding:var(--space-xl) var(--space-2xl) var(--space-4xl);display:flex;flex-direction:column;gap:var(--space-2xl)}.s-atop-drawer-h3{margin:0 0 var(--space-sm);font:600 var(--text-sm)/var(--leading-tight) var(--font-mono);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim);display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm)}.s-atop-drawer-h3-aside{font-weight:400;letter-spacing:0;text-transform:none;font-size:var(--text-sm);color:var(--dim)}.s-atop-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.s-atop-metric{display:flex;flex-direction:column;gap:var(--space-2xs);padding:var(--space-sm) var(--space-md);background:var(--surface)}.s-atop-metric-lbl{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim)}.s-atop-metric-val{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;line-height:var(--leading-none)}.s-atop-metric--dim .s-atop-metric-val{color:var(--dim);font-weight:400}.s-atop-metric--amber .s-atop-metric-val{color:var(--amber)}.s-atop-metric--green .s-atop-metric-val{color:var(--green)}.s-atop-drawer-section--secondary{margin-top:var(--space-2xs);padding-top:var(--space-xl);border-top:1px dashed color-mix(in srgb,var(--border) 90%,transparent);opacity:.85}.s-atop-drawer-section--secondary .s-atop-drawer-h3{font-size:var(--text-xs);letter-spacing:var(--tracking-xl)}.s-atop-codeblock{display:block;font-family:var(--font-mono);font-size:var(--text-sm);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:var(--ink);white-space:pre-wrap;word-break:break-all;line-height:var(--leading-snug)}.s-atop-kvs{display:grid;grid-template-columns:110px 1fr;gap:var(--space-2xs) var(--space-lg);margin:var(--space-sm) 0 0;font-family:var(--font-mono);font-size:var(--text-sm)}.s-atop-kvs dt{color:var(--dim);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:var(--tracking-md);align-self:center}.s-atop-kvs dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums}.s-atop-chain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-sm)}.s-atop-chain li{display:grid;grid-template-columns:64px 1fr;gap:var(--space-sm);padding:var(--space-3xs) 0;border-bottom:1px dashed color-mix(in srgb,var(--border) 80%,transparent)}.s-atop-chain li:last-child{border-bottom:0}.s-atop-chain-pid{color:var(--dim);font-variant-numeric:tabular-nums}.s-atop-chain-cmd{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-atop-histo{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.s-atop-histo li{display:grid;grid-template-columns:140px 1fr 36px;gap:var(--space-md);align-items:center;font-family:var(--font-mono);font-size:var(--text-sm)}.s-atop-histo-name{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-atop-histo-bar{display:block;height:6px;background:color-mix(in srgb,var(--border) 80%,transparent);border-radius:var(--radius-pill);overflow:hidden}.s-atop-histo-fill{display:block;height:100%;background:var(--accent);border-radius:inherit}.s-atop-histo-count{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.s-atop-peek{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;font-family:var(--font-mono);font-size:var(--text-sm);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-xs) 0;max-height:320px;overflow:auto}.s-atop-peek-row{display:grid;grid-template-columns:76px 80px 1fr;gap:var(--space-sm);padding:var(--space-3xs) var(--space-lg);color:var(--muted)}.s-atop-peek-row:hover{background:color-mix(in srgb,var(--surface) 50%,transparent)}.s-atop-peek-time{color:var(--dim);font-variant-numeric:tabular-nums}.s-atop-peek-kind{color:var(--dim);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:var(--tracking-sm);align-self:center}.s-atop-peek-text{color:var(--ink);white-space:pre-wrap;word-break:break-word}.s-atop-peek-row--tool .s-atop-peek-kind{color:var(--accent)}.s-atop-peek-row--tool .s-atop-peek-text{color:var(--ink)}.s-atop-peek-row--tool-result .s-atop-peek-kind{color:color-mix(in srgb,var(--green) 60%,var(--ink) 40%)}.s-atop-peek-row--system .s-atop-peek-text,.s-atop-peek-row--other .s-atop-peek-text{color:var(--muted)}.s-atop-peek-empty{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);padding:var(--space-2xl);text-align:center;background:var(--bg);border:1px dashed var(--border);border-radius:var(--radius-md)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-ops{display:flex;flex-direction:column;height:100%;min-height:0}.s-ops-header{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--space-xl);padding:0 var(--space-3xl);height:44px;flex:none;border-bottom:1px solid color-mix(in srgb,var(--border) 62%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 34%,transparent),transparent),color-mix(in srgb,var(--bg) 94%,black)}.s-ops-header:empty{display:none}.s-ops-header:after{content:"";position:absolute;left:var(--space-xl);right:var(--space-xl);bottom:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 22%,transparent),transparent);pointer-events:none}.s-ops-tabs{display:flex;gap:0;max-width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);overflow-x:auto}.s-ops-tab{flex:none;padding:var(--space-2xs) var(--space-xl);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-md);border:0;cursor:pointer;background:transparent;color:var(--dim);transition:background .12s,color .12s}.s-ops-tab:hover{color:var(--ink)}.s-ops-tab--active{background:var(--accent);color:var(--bg)}.s-ops-body{flex:1;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.s-ops-body>.s-agent-lanes,.s-ops-body>.scope-lanes{flex:1;min-height:0}.s-ops-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-xl);color:var(--dim);text-transform:uppercase}.s-ops-eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim);margin-bottom:var(--space-sm)}.s-ops-avatar{width:var(--size, 24px);height:var(--size, 24px);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:600;font-size:calc(var(--size, 24px) * .5);flex-shrink:0;color:var(--scout-chrome-avatar-ink)}.s-ops-state-chip{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-sm);border:1px solid currentColor;min-width:64px;text-align:center;text-transform:uppercase}.s-ops-btn{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-sm);padding:var(--space-xs) var(--space-lg);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:background .12s,color .12s}.s-ops-btn:hover{background:var(--surface)}.s-ops-btn:disabled{cursor:not-allowed;opacity:.45}.s-ops-btn:disabled:hover{background:transparent}.s-ops-btn--primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.s-ops-btn--primary:hover{opacity:.9}.s-runs{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background:color-mix(in srgb,var(--bg) 86%,black);color:var(--ink);font-family:var(--font-sans)}.s-runs-toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.s-runs-breadcrumb{flex:none;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm);white-space:nowrap}.s-runs-breadcrumb span{color:var(--dim);padding:0 var(--space-xs)}.s-runs-search{display:flex;align-items:center;gap:var(--space-sm);width:min(380px,32vw);min-width:220px;margin-left:auto;padding:var(--space-xs) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--dim);background:color-mix(in srgb,var(--surface) 68%,transparent)}.s-runs-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:var(--text-sm) var(--font-mono)}.s-runs-search input::placeholder{color:var(--dim)}.s-runs-toggle{display:inline-flex;flex:none;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-sm)}.s-runs-toggle-btn{padding:var(--space-xs) var(--space-md);border:0;border-right:1px solid var(--border);background:transparent;color:var(--dim);cursor:pointer;font:var(--text-sm) var(--font-mono);letter-spacing:var(--tracking-md);text-transform:uppercase}.s-runs-toggle-btn:last-child{border-right:0}.s-runs-toggle-btn:hover{color:var(--ink)}.s-runs-toggle-btn--active{background:var(--accent);color:var(--bg)}.s-runs-filter{display:inline-flex;align-items:center;gap:var(--space-xs);flex:none;color:var(--dim);font:var(--text-xs) var(--font-mono);letter-spacing:var(--tracking-md);text-transform:uppercase}.s-runs-filter select{max-width:140px;height:27px;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 68%,transparent);color:var(--muted);font:var(--text-sm) var(--font-mono)}.s-runs-icon-btn{display:grid;place-items:center;flex:none;width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.s-runs-icon-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-runs-icon-btn--loading svg{animation:s-runs-spin .8s linear infinite}.s-runs-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-md);padding:var(--space-lg) var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--border) 56%,transparent)}.s-runs-metric{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 55%,transparent)}.s-runs-metric span{min-width:0;overflow:hidden;color:var(--dim);font:var(--text-2xs) var(--font-mono);letter-spacing:var(--tracking-xl);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.s-runs-metric strong{flex:none;color:var(--ink);font:var(--text-lg) var(--font-mono);font-variant-numeric:tabular-nums}.s-runs-metric--bad strong{color:var(--red)}.s-runs-error{margin:var(--space-md) var(--space-3xl) 0;padding:var(--space-sm) var(--space-md);border:1px solid color-mix(in srgb,var(--red) 65%,transparent);border-radius:var(--radius-sm);color:var(--red);background:color-mix(in srgb,var(--red) 8%,transparent);font:var(--text-sm) var(--font-mono)}.s-runs-table-wrap{flex:1;min-height:0;margin:var(--space-xl) var(--space-3xl) var(--space-3xl);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg) 72%,black)}.s-runs-table{width:100%;min-width:1160px;border-collapse:collapse;table-layout:fixed;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm)}.s-runs-table th{position:sticky;top:0;z-index:1;padding:var(--space-md) var(--space-md);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 89%,black);color:var(--dim);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-lg);text-align:left;text-transform:uppercase;white-space:nowrap}.s-runs-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid color-mix(in srgb,var(--border) 42%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.s-runs-table tbody tr:hover td{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}.s-runs-table th:nth-child(1),.s-runs-table td:nth-child(1){width:150px}.s-runs-table th:nth-child(2),.s-runs-table td:nth-child(2){width:105px}.s-runs-table th:nth-child(3),.s-runs-table td:nth-child(3){width:160px}.s-runs-table th:nth-child(4),.s-runs-table td:nth-child(4){width:auto}.s-runs-table th:nth-child(5),.s-runs-table td:nth-child(5){width:120px}.s-runs-table th:nth-child(6),.s-runs-table td:nth-child(6){width:130px}.s-runs-table th:nth-child(7),.s-runs-table td:nth-child(7){width:86px;text-align:right}.s-runs-table th:nth-child(8),.s-runs-table td:nth-child(8){width:185px}.s-runs-state{display:inline-flex;align-items:center;justify-content:center;width:76px;height:20px;border:1px solid currentColor;border-radius:var(--radius-sm);color:var(--dim);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase}.s-runs-state--live{color:var(--accent)}.s-runs-state--queued{color:var(--muted)}.s-runs-state--waiting{color:var(--amber)}.s-runs-state--done{color:var(--green)}.s-runs-state--bad{color:var(--red)}.s-runs-review{margin-left:var(--space-xs);color:var(--amber);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase}.s-runs-agent{all:unset;display:block;width:100%;min-width:0;cursor:pointer}.s-runs-agent strong,.s-runs-agent small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-runs-agent strong{color:var(--ink);font-size:var(--text-md)}.s-runs-agent small{margin-top:var(--space-3xs);color:var(--dim);font-size:var(--text-xs)}.s-runs-agent:hover strong,.s-runs-link:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.s-runs-task{overflow:hidden;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.s-runs-link{all:unset;max-width:100%;overflow:hidden;color:var(--accent);cursor:pointer;text-overflow:ellipsis;white-space:nowrap}.s-runs-muted,.s-runs-time{color:var(--dim)}.s-runs-ids{display:grid;gap:var(--space-3xs);min-width:0}.s-runs-id-primary,.s-runs-id-secondary{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-runs-id-secondary{color:var(--dim);font-size:var(--text-xs)}.s-runs-empty{padding:var(--space-6xl) var(--space-2xl);color:var(--dim);text-align:center}@keyframes s-runs-spin{to{transform:rotate(360deg)}}@media(max-width:900px){.s-runs-toolbar{flex-wrap:wrap}.s-runs-search{width:100%;min-width:0;margin-left:0;order:2}.s-runs-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@keyframes s-ops-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes s-ops-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:0;transform:scale(1.5)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as u}from"./index-DMiGbrBt.js";let e={hover:null,content:null};const n=new Set;function s(){for(const t of n)t()}function i(t){return n.add(t),()=>{n.delete(t)}}function r(){return e}function c(){return u.useSyncExternalStore(i,r,r)}function o(t){e.hover!==t&&(e={...e,hover:t},s())}function f(t){return!t||!t.route&&!t.label?{onPointerEnter:void 0,onPointerLeave:void 0}:{onPointerEnter:()=>o(t),onPointerLeave:()=>{e.hover===t&&o(null)}}}export{f as s,c as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-page-status{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);height:22px;padding:0 var(--space-lg);border-top:1px solid color-mix(in srgb,var(--ink) 7%,transparent);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);letter-spacing:var(--tracking-sm);min-width:0;-webkit-user-select:none;user-select:none;opacity:0;transform:translateY(4px);transition:opacity .14s ease-out,transform .14s ease-out}.s-page-status--show{opacity:1;transform:translateY(0)}.s-page-status--leave{opacity:0;transform:translateY(2px);transition-duration:.22s}.s-page-status-left,.s-page-status-right{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.s-page-status-right{margin-left:auto;justify-content:flex-end}.s-page-status-arrow{color:var(--accent)}.s-page-status-target{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60ch}.s-page-status-route{color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50ch}.s-page-status-route:before{content:"·";margin-right:var(--space-xs);color:color-mix(in srgb,var(--ink) 22%,transparent)}.s-page-status-content{color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80ch}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-plan{height:100%;overflow:auto;container-type:inline-size}.s-plan-inner{min-width:0;min-height:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:1px;background:var(--border)}.s-plan-inner--documents{grid-template-columns:minmax(0,1fr)}.s-plan-banner{grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xl);padding:var(--space-md) var(--space-2xl);border-bottom:1px solid var(--border);background:var(--bg)}.s-plan-banner-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-md);border:1px solid var(--accent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-lg)}.s-plan-banner-meta{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-sm)}.s-plan-banner-meta--error{max-width:min(480px,38vw);overflow:hidden;color:var(--amber);text-overflow:ellipsis;white-space:nowrap}.s-plan-banner-spacer{flex:1 1 auto}.s-plan-col{min-width:0;overflow:auto;background:var(--bg)}.s-plan-col--canvas{grid-column:1;grid-row:2;padding:var(--space-2xl) var(--space-2xl) var(--space-4xl)}.s-plan-empty-card{padding:var(--space-xl);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.s-plan-empty-title{color:var(--ink);font-size:var(--text-md);line-height:var(--leading-tight)}.s-plan-empty-copy{margin-top:var(--space-xs);color:var(--dim);font-size:var(--text-sm);line-height:var(--leading-snug)}.s-plan-left-nav{min-height:0;height:100%;display:flex;flex-direction:column}.s-plan-left-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0 var(--space-md) var(--space-sm);overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--border) 50%,transparent);flex-shrink:0}.s-plan-left-source{min-width:0;min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);padding:var(--space-2xs) var(--space-sm);border:0;background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--dim);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase}.s-plan-left-source:hover{color:var(--ink)}.s-plan-left-source--active{background:var(--accent);color:var(--bg)}.s-plan-left-source span,.s-plan-left-source strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-plan-left-list{min-height:0;flex:1;overflow:auto;display:grid;align-content:start;gap:var(--space-xs);padding:var(--space-xs) var(--space-md) var(--space-xl)}.s-plan-left-document{width:100%;min-width:0;display:grid;gap:var(--space-xs);padding:var(--space-md);border:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 66%,transparent);color:var(--ink);cursor:pointer;text-align:left}.s-plan-left-document:hover{border-color:color-mix(in srgb,var(--accent) 34%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.s-plan-left-document--active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.s-plan-left-document-top,.s-plan-left-document-foot{min-width:0;display:flex;align-items:center;gap:var(--space-xs);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm)}.s-plan-left-document-top time{margin-left:auto;white-space:nowrap}.s-plan-left-status{flex-shrink:0;padding:1px var(--space-xs);border:1px solid currentColor;border-radius:var(--radius-xs);text-transform:uppercase}.s-plan-left-status--active,.s-plan-left-status--completed{color:var(--green)}.s-plan-left-status--blocked{color:var(--amber)}.s-plan-left-status--draft{color:var(--accent)}.s-plan-left-status--archived,.s-plan-left-status--unknown{color:var(--dim)}.s-plan-left-document-title{min-width:0;overflow:hidden;color:var(--ink);font-size:var(--text-md);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap}.s-plan-left-document-summary{min-width:0;display:-webkit-box;overflow:hidden;color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-snug);-webkit-box-orient:vertical;-webkit-line-clamp:2}.s-plan-left-document-foot>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-plan-document{min-width:0}.s-plan-readonly-head{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-md);padding:0 var(--space-sm) var(--space-2xl)}.s-plan-readonly-head>div{min-width:0}.s-plan-title{margin:0 0 var(--space-lg);color:var(--ink);font-size:var(--text-3xl);font-weight:400;letter-spacing:0;line-height:var(--leading-none)}.s-plan-goal{margin:0 0 var(--space-2xl);color:var(--muted);font-size:var(--text-md);line-height:var(--leading-normal)}.s-plan-doc-section{min-width:0;margin-top:var(--space-3xl)}.s-plan-doc-section--primary{margin-top:0}.s-plan-tree-header{min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-md) var(--space-lg);padding:0 var(--space-sm) var(--space-xl);margin-bottom:var(--space-sm);border-bottom:1px solid var(--border)}.s-plan-tree-stats{min-width:0;overflow:hidden;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.s-plan-tree-toggle{display:flex;gap:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-sm);margin-left:auto}.s-plan-doc-mode-toggle{flex-shrink:0}.s-plan-tree-toggle-btn{padding:var(--space-2xs) var(--space-lg);border:0;background:transparent;color:var(--dim);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-lg);text-transform:uppercase}.s-plan-tree-toggle-btn--active{background:var(--accent);color:var(--bg)}.s-plan-doc-body{max-height:360px;overflow:auto;margin:0;padding:var(--space-xl);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap}.s-plan-doc-body--primary{max-height:calc(100vh - 300px);min-height:360px;border-color:color-mix(in srgb,var(--accent) 28%,var(--border));background:color-mix(in srgb,var(--surface) 90%,var(--bg));color:var(--ink)}.s-plan-doc-preview{max-height:calc(100vh - 300px);min-height:360px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 90%,var(--bg))}.s-plan-doc-preview .s-text-document-markdown{padding:clamp(18px,2.2vw,32px);font-size:var(--text-md)}.s-plan-doc-preview .s-text-document-markdown h1{font-size:var(--text-3xl)}.s-plan-doc-preview .s-text-document-markdown h2{font-size:var(--text-2xl)}.s-plan-doc-preview .s-text-document-markdown h3,.s-plan-doc-preview .s-text-document-markdown h4,.s-plan-doc-preview .s-text-document-markdown h5,.s-plan-doc-preview .s-text-document-markdown h6{font-size:var(--text-xl)}.s-plan-doc-meta{display:grid;gap:1px;margin:0 0 var(--space-3xl);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--border)}.s-plan-doc-meta-row{min-width:0;display:grid;grid-template-columns:minmax(86px,.36fr) minmax(0,1fr);gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--surface)}.s-plan-doc-meta-row dt,.s-plan-doc-meta-row dd{min-width:0;margin:0}.s-plan-doc-meta-row dt{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-lg);text-transform:uppercase}.s-plan-doc-meta-row dd{overflow:hidden;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}@container (min-width: 1040px){.s-plan-banner{padding-inline:var(--space-4xl)}.s-plan-col--canvas{padding:20px clamp(24px,5vw,72px) 40px}.s-plan-readonly-head{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:var(--space-2xl)}.s-plan-title{font-size:var(--text-5xl)}.s-plan-goal{font-size:var(--text-xl)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./createLucideIcon-OpA4Amw5.js";const o=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],c=e("plus",o);export{c as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as p,j as s}from"./index-DMiGbrBt.js";import{A as Z}from"./AgentAvatar-D90c1Rzk.js";import{a as B}from"./api-h5zurxmi.js";import{d as _,c as rs}from"./context-budget-CbB4BDcO.js";import{e as q}from"./agent-chat-Bfjd9y6c.js";import{b as Q,r as ss,s as es,a as ts}from"./session-catalog-BmoyVTJ_.js";import{u as X}from"./sse-CjIkKo46.js";import{t as z}from"./time-DltNTpLl.js";import{B as ls}from"./BackToPicker-BRvfostO.js";import{o as K}from"./openContent-C6XO6kr5.js";import{u as G}from"./Provider-C7UKGHQy.js";import{ConversationScreen as cs}from"./ConversationScreen-BDRhx-RU.js";import{SessionObserve as ds}from"./SessionObserve-yfXFafp8.js";import{H as ns}from"./HarnessMark-Cbv3Ib0c.js";/* empty css */import{AgentDefinitionsWorkspace as ms}from"./AgentDefinitionsWorkspace-CUpUrY57.js";import{AgentEssentialsGlyph as ps}from"./agent-essentials-BSY1o46q.js";import{b as us,p as F,n as as}from"./model-Co0zkMIc.js";import"./SpriteAvatar-DyaGuhik.js";import"./colors-BtO5_zlx.js";import"./terminal-relay-CWbJ1RCW.js";import"./router-Bq5dwf78.js";import"./terminal-sessions-D5CIR2OL.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-bARZqTzD.js";import"./DocumentFocusViewer-BeVwwl26.js";import"./createLucideIcon-OpA4Amw5.js";import"./TextDocumentSurface-BpAw4eQS.js";/* empty css */import"./file-text-BODxCjcz.js";import"./x-D3GElQbe.js";import"./chevron-right-XiIHsk4m.js";import"./code-xml-B6jOCM4V.js";import"./arrow-left-DEZzHiPS.js";import"./scout-voice-CU5c0LGi.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-2kv_tGUS.js";import"./MessageComposerSuggestions-DpxN9WiB.js";import"./NewChatComposer-Cs6OsxK6.js";import"./runtime-picker-Bcl5iIX5.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CbHjZsz1.js";import"./index-CJXzfjo9.js";import"./conversation-model-B47vYmWN.js";import"./NewChatOrigin-Bk2OyVjI.js";import"./chevron-down-BGk5qoEw.js";import"./search-CWfZtOt2.js";import"./ConversationComposer-Bla3DDvM.js";import"./message-markup-3J9pi3nx.js";import"./mentions-jSuTGeet.js";import"./AgentDetailCard-BcRBRp88.js";import"./AgentLiveActions-DBtnD0qE.js";import"./terminal-takeover-B8UeD9OX.js";import"./eye-0PvebX_a.js";import"./terminal-B9AOZQKR.js";import"./message-visibility-kJM8XcSG.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-DE3FC0m-.js";import"./ConversationFeedRows-B_gPxcqA.js";import"./ConversationPanels-DLek4H6A.js";import"./use-reduced-motion-RRBkmVkk.js";import"./activity-CA8qS6PI.js";import"./message-circle-CG-96zts.js";import"./tail-display-BdyoLvzY.js";import"./lane-edit-display-C_Aujldz.js";import"./tail-events-D19uAGe3.js";import"./ConversationStatus-BwVLiiO4.js";import"./conversation-icons-IIG5ha6D.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-Bla0gBdm.js";import"./lane-observe-D0rfKDnU.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-DyUeV98H.js";import"./ObserveTextFlow-rsFj_rVo.js";import"./wrench-Bkc_0lKF.js";import"./external-link-CXBytO9o.js";import"./text-DsBWV_4k.js";import"./project-overview-helpers-BQTc_Ous.js";import"./FileViewerPane-CLgUhSm4.js";/* empty css */function hs(e){if(e===null)return"age unknown";const t=Math.max(0,Math.round(e/6e4));if(t<60)return`${t}m old`;const o=Math.floor(t/60),c=t%60;return c>0?`${o}h ${c}m old`:`${o}h old`}function Y(e){return`${e.turnCount} turn${e.turnCount===1?"":"s"}`}function xs(e){return e?e.startsWith("/Users/")?"~/"+e.split("/").slice(3).join("/"):e:null}function is(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu.test(e)?e:e.length>16?`${e.slice(0,8)}…${e.slice(-4)}`:e}function vs(e){return e.replace(/^relay-/u,"").replace(/-arts-mac-mini-local-(claude|codex)$/u,"")}function fs(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:`${e}`}function U(e){return typeof e!="number"||!Number.isFinite(e)?"-":Math.abs(e)<1e3?`${Math.round(e)}`:Math.abs(e)<1e6?`${(e/1e3).toFixed(e%1e3===0?0:1)}k`:`${(e/1e6).toFixed(1)}m`}function js(e){if(!Number.isFinite(e)||e<=0)return"0s";if(e<60)return`${Math.round(e)}s`;const t=Math.round(e),o=Math.floor(t/3600),c=Math.floor(t%3600/60),i=t%60;return o>0?`${o}h ${c}m`:c>=10||i===0?`${c}m`:`${c}m ${i}s`}function Ns(e,t=32){if(e.length===0)return[];const o=e[e.length-1].t||1,c=new Array(t).fill(0);for(const i of e){const m=Math.min(t-1,Math.max(0,Math.floor(i.t/o*t)));c[m]+=1}return c}function bs(e){return e.kind!=="boot"&&e.kind!=="system"}function ws({buckets:e,emptyTitle:t,emptyDetail:o}){if(e.length===0)return s.jsxs("div",{className:"s-sum-observed-empty",children:[s.jsx("span",{children:t}),s.jsx("strong",{children:o})]});const c=Math.max(...e,1),i=240,m=20,r=1,u=(i-r*(e.length-1))/e.length;return s.jsxs("div",{className:"s-sum-spark",children:[s.jsx("svg",{viewBox:`0 0 ${i} ${m}`,preserveAspectRatio:"none",className:"s-sum-spark-svg","aria-hidden":!0,children:e.map((l,h)=>{const x=Math.max(1,l/c*m);return s.jsx("rect",{x:h*(u+r),y:m-x,width:u,height:x,fill:"var(--accent)",opacity:.22+.62*(l/c)},h)})}),s.jsxs("div",{className:"s-sum-spark-axis",children:[s.jsx("span",{children:"session start"}),s.jsx("span",{children:"now"})]})]})}function ys({agentId:e,session:t,active:o,onPrimary:c,primaryLabel:i,primaryTitle:m}){const[r,u]=p.useState(null),[l,h]=p.useState(null),x=p.useCallback(async()=>{const g=new URLSearchParams({sessionId:t.id}),[P,J]=await Promise.all([B(`/api/agents/${encodeURIComponent(e)}/observe?${g}`).catch(()=>null),B(`/api/agents/${encodeURIComponent(e)}/session/context`).catch(()=>null)]);u(P),h(J)},[e,t.id]);p.useEffect(()=>{x()},[x]),X(()=>{x()});const N=r?.data,v=(N?.events??[]).filter(bs),w=v.filter(g=>g.kind==="tool"),S=w.filter(g=>g.tool==="edit"||g.tool==="write"),y=w.filter(g=>g.tool==="read"),f=N?.files.length??0,b=N?.metadata?.session?.turnCount,$=l?.activeSessionId===t.id?l.turnCount:void 0,C=v.length>0||f>0,d=r?r.source==="unavailable"?"unavailable":C?"observed":"waiting":"loading",R=d==="loading"?"Loading trace":d==="unavailable"?"No trace source":"Session created",L=d==="loading"?"checking for terminal or transcript activity":d==="unavailable"?"this session has no observable transcript attached":"no agent work has been recorded yet",H=[{k:"turns",v:U(b??$)},{k:"tools",v:U(w.length)},{k:"edits",v:U(S.length)},{k:"reads",v:U(y.length)},{k:"files",v:U(f)},{k:"window",v:js(v.length>0?v[v.length-1].t:0)}],D=N?.metadata?.usage,a=_(D,{model:N?.metadata?.session?.model??t.model,adapterType:t.harness}),E=a?`${a.usedLabel} / ${a.budgetLabel} ctx`:l?Y(l):"context",T=a?`${a.pct}%${a.overLimit?" over":""}`:"tokens unavailable",O=l&&l.sessionAgeMs!==null?hs(l.sessionAgeMs):null,A=a&&l?`${Y(l)}${O?` · ${O}`:""}`:O,n=r?.sessionId?.trim()||r?.data.metadata?.session?.externalSessionId?.trim()||r?.data.metadata?.session?.threadId?.trim()||null,j=t.harnessSessionId?.trim()||t.threadId?.trim()||t.externalSessionId?.trim()||(o?n:null)||null,k=t.runtimeSessionId?.trim()||t.surfaceSessionId?.trim()||(j&&j!==t.id?t.id:null),M=j??t.id,W=j&&t.harness==="codex"?"codex session id":j&&t.harness?`${t.harness} session id`:t.id.startsWith("relay-")?"runtime id":"session id",V=t.cwd?F(t.cwd):"workspace";return s.jsxs("div",{className:"s-sum",children:[s.jsxs("div",{className:"s-sum-session-state",children:[s.jsx("span",{className:`s-sum-session-dot${o?" s-sum-session-dot--active":""}`}),s.jsxs("span",{className:"s-sum-session-copy",children:[s.jsx("strong",{children:o?"Session attached":"Previous session"}),s.jsxs("span",{className:"s-sum-session-ref",title:M,children:[s.jsx("span",{children:W}),s.jsx("code",{children:M})]}),k&&k!==M&&s.jsxs("span",{className:"s-sum-session-profile",title:k,children:["runtime ",k]}),s.jsx("small",{title:t.cwd||void 0,children:V})]}),d!=="observed"?s.jsx("span",{className:`s-sum-trace-pill s-sum-trace-pill--${d}`,children:d==="waiting"?"waiting for work":d==="loading"?"checking trace":"no trace"}):null]}),s.jsxs("div",{className:"s-sum-cols",children:[s.jsxs("div",{className:"s-sum-col s-sum-col--activity",children:[s.jsx("div",{className:"s-sum-label",children:"Observed work"}),s.jsx(ws,{buckets:Ns(v),emptyTitle:R,emptyDetail:L})]}),s.jsxs("div",{className:"s-sum-col s-sum-col--context",children:[s.jsx("div",{className:"s-sum-label",children:"Context"}),s.jsxs("div",{className:"s-sum-ctx-head",children:[s.jsx("span",{className:"s-sum-ctx-size",children:E}),s.jsx("span",{className:"s-sum-ctx-pct",children:T})]}),a?s.jsx("div",{className:"s-sum-gauge","aria-label":`Context ${a.pct}%`,children:s.jsx("div",{className:"s-sum-gauge-fill",style:{width:`${rs(a)}%`}})}):s.jsx("div",{className:"s-sum-ctx-unavailable",children:"No token-window usage yet"}),A&&s.jsx("div",{className:"s-sum-ctx-runway",children:A})]})]}),s.jsxs("div",{className:"s-sum-foot",children:[C?s.jsx("div",{className:"s-sum-stats",children:H.map((g,P)=>s.jsxs("span",{className:"s-sum-stat",children:[P>0&&s.jsx("span",{className:"s-sum-stat-sep",children:"·"}),s.jsx("span",{className:"s-sum-stat-v",children:g.v}),s.jsx("span",{className:"s-sum-stat-k",children:g.k})]},g.k))}):s.jsx("div",{className:"s-sum-status-note",children:o?"The session exists, but no turn/tool/file activity has reached Scout yet.":"This prior session has no observable work trace."}),s.jsx("button",{type:"button",className:"s-sess-explore-primary",onClick:c,title:m,children:i})]})]})}function it({agent:e,name:t,sessionCatalog:o,conversationId:c,navigate:i,route:m,homeView:r="agents-v2"}){const{focusedSession:u,focusSession:l}=G(),h=ss(e,o),x=p.useMemo(()=>es(o?.sessions??[],h),[o?.sessions,h]),N=x.find(n=>n.id===h)??null,I=N?.model??null,v=N?.reasoningEffort??e.reasoningEffort??null,S=[!!(I&&I!==e.model)&&I?`Session model: ${I}`:null,v?`Effort: ${v}`:null].filter(Boolean).join(" · ")||null,[y,f]=p.useState("idle"),[b,$]=p.useState(null),[C,d]=p.useState("idle"),[R,L]=p.useState(null);p.useEffect(()=>{f("idle"),$(null),d("idle"),L(null)},[e.id]);const H=m.view==="agents-v2"&&m.agentId===e.id?m.sessionId:null,D=ts(e.id,u,h,x,H),a=Q(H,x);p.useEffect(()=>{a&&(u?.agentId===e.id&&u.sessionId===a||l(e.id,a))},[e.id,u?.agentId,u?.sessionId,l,a]);const E=async()=>{if(C!=="opening"){d("opening"),L(null);try{const n=await q({...e,conversationId:c});i({view:r,agentId:e.id,conversationId:n,tab:"message"})}catch(n){L(n instanceof Error?n.message:"Could not open chat.")}finally{d("idle")}}},T=async()=>{if(y!=="starting"){f("starting"),$(null);try{const n=await B("/api/sessions",{method:"POST",body:JSON.stringify(as(e))}),j=n.sessionId?.trim();if(j){K(i,{view:"sessions",sessionId:j},{returnTo:m});return}const k=n.conversationId?.trim();if(!k)throw new Error("Session started, but no conversation was returned.");i({view:r,agentId:n.agentId?.trim()||e.id,conversationId:k,tab:"message"})}catch(n){$(n instanceof Error?n.message:"Could not start a new session.")}finally{f("idle")}}},O=n=>K(i,{view:"sessions",sessionId:n.id},{returnTo:m}),A=n=>{l(e.id,n)};return s.jsxs("div",{className:"s-sess-root",children:[s.jsxs("header",{className:"s-sess-head",children:[s.jsxs("div",{className:"s-sess-id",children:[s.jsx("span",{className:"s-sess-avatar",children:s.jsx(Z,{agent:e,size:46,tile:!0,presence:!1})}),s.jsxs("div",{className:"s-sess-id-copy",children:[s.jsxs("div",{className:"s-sess-name-row",children:[s.jsx("span",{className:"s-sess-name",children:t}),e.handle&&s.jsxs("span",{className:"s-sess-handle",children:["@",e.handle.replace(/^@+/,"")]})]}),s.jsx(ps,{agent:e,chipTitle:S})]})]}),s.jsxs("div",{className:"s-sess-head-actions",children:[s.jsx("button",{type:"button",className:"s-sess-action",onClick:()=>i({view:r,agentId:e.id,tab:"config"}),children:"Edit config"}),s.jsx("button",{type:"button",className:"s-sess-action s-sess-action--accent",disabled:y==="starting",onClick:T,children:y==="starting"?"Starting...":"+ New session"}),b&&s.jsx("div",{className:"s-sess-action-error",children:b}),R&&s.jsx("div",{className:"s-sess-action-error",children:R})]})]}),s.jsxs("section",{className:"s-sess-band",children:[s.jsxs("header",{className:"s-sess-band-head",children:[s.jsx("span",{className:"s-sess-band-label",children:"Recent sessions"}),x.length>0&&s.jsxs("span",{className:"s-sess-band-meta",children:[x.length," sessions"]})]}),s.jsx("div",{className:"s-sess-list",children:x.length===0?s.jsxs("div",{className:"s-sess-empty",children:["No sessions yet — start a new session for ",t,"."]}):x.map(n=>{const j=n.id===h,k=n.id===D,M=n.harness??e.harness??"session",W=n.model??e.model,V=W&&M&&W.startsWith(`${M}-`)?W.slice(M.length+1):W,g=[M,V,n.reasoningEffort].filter(os=>!!os).join(" · "),P=n.surfaceSessionId?`${n.transport??e.transport??"terminal"} surface ${vs(n.surfaceSessionId)}`:n.transport&&n.transport!==M?`${n.transport} surface`:null,J=j?"now":n.endedAt?`ended · ${z(n.endedAt)||"recent"}`:z(n.startedAt)||"recent";return s.jsxs("div",{className:`s-sess-item${k?" s-sess-item--selected":""}`,children:[s.jsxs("button",{type:"button",className:`s-sess-row${j?" s-sess-row--active":""}${k?" s-sess-row--selected":""}`,onClick:()=>A(n.id),"aria-expanded":k,children:[s.jsx("span",{className:"s-mod-dot s-sess-row-dot",style:{background:j?"var(--accent)":"var(--dim)",opacity:j?1:.55}}),s.jsxs("span",{className:"s-sess-row-main",children:[s.jsxs("span",{className:"s-sess-row-top",children:[s.jsx("span",{className:"s-sess-row-id",title:n.id,children:is(n.id)}),s.jsx("span",{className:"s-sess-row-tag",children:g})]}),s.jsxs("span",{className:"s-sess-row-sub",title:P??void 0,children:[n.cwd?F(n.cwd):"workspace",P?` · ${P}`:""]})]}),s.jsx("span",{className:`s-sess-row-when${j?" s-sess-row-when--active":""}`,children:J})]}),k&&s.jsx(ys,{agentId:e.id,session:n,active:j,onPrimary:()=>j?void E():O(n),primaryLabel:j?"Continue":"Resume",primaryTitle:j?"Send a message into this conversation":"Reopen this conversation and message it"})]},n.id)})})]})]})}function Ss(e){let t;if(e.kind==="tool"){const o=e.arg?.trim()||e.text?.trim()||"";t=`${e.tool??"tool"}${o?` ${o}`:""}`.trim()}else t=e.text?.trim()||e.kind;return t.length>160?`${t.slice(0,157)}…`:t}function ks({agent:e,session:t,active:o,onContinue:c,onTakeover:i,onOpen:m}){const[r,u]=p.useState(null),l=p.useCallback(async()=>{const d=await B(`/api/agents/${encodeURIComponent(e.id)}/observe`).catch(()=>null);u(d)},[e.id]);p.useEffect(()=>{u(null),l()},[l]),X(()=>{l()});const h=r?.data.events??[],x=e.branch||(t.cwd?F(t.cwd):"main"),N=e.model&&e.harness&&e.model.startsWith(`${e.harness}-`)?e.model.slice(e.harness.length+1):e.model??null,I=t.harness??e.harness??"session",v=(()=>{for(const d of h)if((d.kind==="message"||d.kind==="ask")&&d.text?.trim())return d.text.trim();return null})()??(t.cwd?F(t.cwd):null)??e.name,w=r?.data.metadata?.usage??null,S=w?.assistantMessages??null,y=_(w,{model:r?.data.metadata?.session?.model??N,adapterType:I}),f=y?Math.min(100,y.pct):null,b=o?"live":"idle",$=h.length,C=h.slice(-6).map(d=>({t:d.at??d.t?z(d.at??d.t):"",text:Ss(d),kind:d.kind}));return s.jsxs("section",{className:"ap-focus ap-profileCard","data-tone":b,"aria-label":v,children:[s.jsxs("header",{className:"ap-focusHead",children:[s.jsx("h1",{className:"ap-focusTitle",children:v}),s.jsx("span",{className:"ap-focusState","data-tone":b,children:o?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ap-dot","data-tone":"live","aria-hidden":!0})," working"]}):"idle"}),s.jsx("button",{type:"button",className:"ap-focusOpen",onClick:m,children:"Open ↗"})]}),s.jsxs("div",{className:"ap-focusAttr",children:[s.jsxs("span",{className:"ap-focusAttrText",children:[x,N?` · ${N}`:""]}),s.jsx("span",{className:"ap-rowMark","aria-hidden":!0,children:s.jsx(ns,{harness:I,size:11})})]}),s.jsxs("div",{className:"ap-decision",children:[s.jsx("button",{type:"button",className:"ap-decisionPrimary",onClick:c,children:o?"Continue":"Resume"}),s.jsx("button",{type:"button",className:"ap-decisionGhost",onClick:i,children:"Take over"}),s.jsxs("span",{className:"ap-decisionMeta",children:[f!=null?s.jsxs("span",{children:[s.jsx("span",{className:"ap-metaKey",children:"ctx"}),f,"%"]}):null,w&&(w.inputTokens||w.outputTokens)?s.jsxs("span",{children:[s.jsx("span",{className:"ap-metaKey",children:"tokens"}),fs(w.inputTokens??0)," in"]}):null,S!=null?s.jsxs("span",{children:[s.jsx("span",{className:"ap-metaKey",children:"turns"}),S]}):null]})]}),s.jsxs("div",{className:"ap-logHead",children:[s.jsx("span",{className:"ap-logHeadTitle",children:"Session log"}),s.jsx("span",{className:"ap-logHeadMeta",children:r===null?"loading…":`${r.source} · ${$} events`})]}),s.jsx("div",{className:"ap-log",children:r===null?s.jsx("div",{className:"ap-traceLoading",children:"Resolving the most recent session…"}):C.length===0?s.jsx("div",{className:"ap-traceLoading",children:"No activity captured for this session yet."}):C.map((d,R)=>s.jsxs("div",{className:"ap-logLine","data-kind":d.kind,children:[s.jsx("span",{className:"ap-logT",children:d.t}),s.jsx("span",{className:"ap-logText",children:d.text})]},R))})]})}function gs({agent:e,name:t,sessionCatalog:o,conversationId:c,navigate:i,route:m}){const{focusedSession:r,focusSession:u}=G(),l=ss(e,o),h=p.useMemo(()=>es(o?.sessions??[],l),[o?.sessions,l]),x=h.find(a=>a.id===l)??h[0]??null,N=m.view==="agents-v2"&&m.agentId===e.id?m.sessionId:null,I=ts(e.id,r,l,h,N),v=Q(N,h);p.useEffect(()=>{v&&(r?.agentId===e.id&&r.sessionId===v||u(e.id,v))},[e.id,r?.agentId,r?.sessionId,u,v]);const w=e.model&&e.harness&&e.model.startsWith(`${e.harness}-`)?e.model.slice(e.harness.length+1):e.model??null,S=e.cwd?xs(e.cwd)??e.cwd:null,y=e.homeNodeName?e.homeNodeName.replace(/\.local$/i,""):null,f=e.handle?.trim().replace(/^@+/,"")||null,b=f?`@${f}`:t,$=f&&t.toLowerCase()!==f.toLowerCase()?t:[e.project?`/${e.project}`:null,e.branch,w].filter(Boolean).join(" · "),C=a=>m.view==="agents-v2"?{...m,...a,view:"agents-v2"}:{view:"agents-v2",agentId:e.id,...a},d=async()=>{try{const a=await q({...e,conversationId:c});i(C({agentId:e.id,conversationId:a,tab:"message"}))}catch{}},R=async()=>{try{const a=await B("/api/sessions",{method:"POST",body:JSON.stringify(as(e))}),E=a.sessionId?.trim();if(E){K(i,{view:"sessions",sessionId:E},{returnTo:m});return}const T=a.conversationId?.trim();i(C({agentId:a.agentId?.trim()||e.id,...T?{conversationId:T}:{},tab:"message"}))}catch{}},L=a=>K(i,{view:"sessions",sessionId:a.id},{returnTo:m}),H=()=>K(i,{view:"terminal",agentId:e.id,mode:"takeover"},{returnTo:m}),D=a=>{u(e.id,a)};return s.jsxs("div",{className:"ap-profile",children:[s.jsxs("header",{className:"ap-profileHead",children:[s.jsx(Z,{agent:e,size:48,tile:!0,presence:!1}),s.jsxs("div",{className:"ap-profileIdent",children:[s.jsxs("div",{className:"ap-profileTop",children:[s.jsx("h1",{className:"ap-profileName",title:b,children:b}),e.harness?s.jsx("span",{className:"ap-rowMark","aria-hidden":!0,children:s.jsx(ns,{harness:e.harness,size:13})}):null]}),s.jsx("span",{className:"ap-profileSub",title:$,children:$||S||"—"}),f&&t.toLowerCase()!==f.toLowerCase()?s.jsx("span",{className:"ap-profileId",title:e.id,children:t}):null]}),s.jsxs("div",{className:"ap-headActions",children:[s.jsx("button",{type:"button",className:"ap-headGhost",onClick:()=>i(C({agentId:e.id,tab:"config"})),children:"Edit config"}),s.jsx("button",{type:"button",className:"ap-headCta",onClick:()=>{R()},children:"+ New session"})]})]}),s.jsxs("div",{className:"ap-profileBody",children:[s.jsxs("div",{className:"ap-profileMain",children:[s.jsx("div",{className:"ap-profileSection",children:"Current session"}),x?s.jsx(ks,{agent:e,session:x,active:x.id===l,onContinue:()=>{d()},onTakeover:H,onOpen:()=>{d()}}):s.jsxs("div",{className:"ap-traceLoading",children:["No active session for ",t,"."]}),s.jsxs("div",{className:"ap-profileSection",children:["Sessions ",s.jsx("span",{className:"ap-profileCount",children:h.length})]}),h.length===0?s.jsxs("div",{className:"ap-empty",children:["No sessions yet — start a new session for ",t,"."]}):s.jsxs("div",{className:"ap-sessTable",children:[s.jsxs("div",{className:"ap-sessTableHead","aria-hidden":!0,children:[s.jsx("span",{}),s.jsx("span",{children:"Session"}),s.jsx("span",{children:"Engine"}),s.jsx("span",{children:"Last"})]}),h.map(a=>{const E=a.id===l,T=E?"now":a.endedAt?`ended · ${z(a.endedAt)||"recent"}`:z(a.startedAt)||"recent",O=a.cwd?F(a.cwd):is(a.id),A=a.harness??e.harness??"session",n=a.model??e.model,j=n&&n.startsWith(`${A}-`)?n.slice(A.length+1):n,k=[A,j,a.reasoningEffort].filter(Boolean).join(" · ");return s.jsxs("button",{type:"button",className:"ap-sessRow","data-tone":E?"live":"idle","data-selected":a.id===I||void 0,onClick:()=>E?D(a.id):L(a),children:[E?s.jsx("span",{className:"ap-dot","data-tone":"live","aria-hidden":!0}):s.jsx("span",{className:"ap-sessRowDot","aria-hidden":!0}),s.jsx("span",{className:"ap-sessRowName",title:a.id,children:O}),s.jsx("span",{className:"ap-sessRowEngine",children:k}),s.jsx("span",{className:"ap-sessRowWhen",children:T})]},a.id)})]})]}),s.jsxs("aside",{className:"ap-profileAside",children:[s.jsxs("div",{className:"ap-group",children:[s.jsx("div",{className:"ap-groupHead",children:"Place"}),S?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"root"}),s.jsx("span",{className:"ap-kvVal",children:S})]}):null,y?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"host"}),s.jsx("span",{className:"ap-kvVal",children:y})]}):null,e.branch?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"branch"}),s.jsx("span",{className:"ap-kvVal",children:e.branch})]}):null]}),s.jsxs("div",{className:"ap-group",children:[s.jsx("div",{className:"ap-groupHead",children:"Runtime"}),e.harness?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"harness"}),s.jsx("span",{className:"ap-kvVal",children:e.harness})]}):null,w?s.jsxs("div",{className:"ap-kv",children:[s.jsx("span",{className:"ap-kvKey",children:"model"}),s.jsx("span",{className:"ap-kvVal",children:w})]}):null]})]})]})]})}function ot({agent:e,allAgents:t,conversationId:o,navigate:c,activeTab:i,renderProfile:m}){const{name:r}=us(e,t),[u,l]=p.useState(null),[h,x]=p.useState(!1),[N,I]=p.useState(null),{route:v}=G(),w=v.view==="agents-v2"&&v.agentId===e.id?v.sessionId??null:null,S=Q(w,N?.sessions??[])??w,y=p.useCallback(async()=>{const b=await B(`/api/agents/${encodeURIComponent(e.id)}/session-catalog`).catch(()=>null);I(b)},[e.id]),f=p.useCallback(async()=>{x(!0);try{const b=S?new URLSearchParams({sessionId:S}):null,$=await B(`/api/agents/${encodeURIComponent(e.id)}/observe${b?`?${b}`:""}`);l($)}catch{l({agentId:e.id,source:"unavailable",fidelity:"synthetic",historyPath:null,sessionId:null,updatedAt:Date.now(),data:{events:[{id:`${e.id}:observe-error`,t:0,kind:"system",text:"Observer data is temporarily unavailable.",detail:"Retrying will resume once the session source becomes reachable."}],files:[],contextUsage:[],live:!1}})}finally{x(!1)}},[e.id,S]);return p.useEffect(()=>{I(null),y();const b=window.setTimeout(()=>{y()},3e3);return()=>window.clearTimeout(b)},[y]),p.useEffect(()=>{l(null),x(!1)},[e.id,S]),p.useEffect(()=>{i==="observe"&&f()},[i,f]),X(()=>{y(),i==="observe"&&f()}),p.useEffect(()=>{if(i!=="observe"||!u?.data.live)return;const b=setInterval(()=>{f()},2500);return()=>clearInterval(b)},[i,u?.data.live,f]),s.jsxs("div",{className:`s-profile-center${i!=="profile"?" s-profile-center--tabbed":" s-profile-center--modular"}`,children:[i==="profile"&&(m?m({agent:e,sessionCatalog:N,conversationId:o,navigate:c,route:v}):s.jsx("div",{className:"s-aproj s-aproj--profile",children:s.jsx(gs,{agent:e,name:r,sessionCatalog:N,conversationId:o,navigate:c,route:v})})),i==="config"&&s.jsx(ms,{agent:e,navigate:c,homeView:"agents-v2"}),i==="observe"&&s.jsx("div",{className:"s-profile-tab-conversation",children:h&&!u?s.jsxs("div",{className:"s-profile-activity-empty",children:[s.jsx("div",{className:"s-profile-activity-empty-title",children:"Loading trace"}),s.jsx("div",{className:"s-profile-activity-empty-detail",children:"Resolving the best available live or history-backed session stream for this agent."})]}):s.jsx(ds,{data:u?.data,agentId:e.id,sessionId:u?.sessionId,showRail:!1})}),i==="message"&&(o?s.jsx("div",{className:"s-profile-tab-conversation",children:s.jsx(cs,{conversationId:o,navigate:c,embedded:!0})}):s.jsx(Is,{agent:e,navigate:c}))]})}function Is({agent:e,navigate:t}){const{route:o}=G(),[c,i]=p.useState("idle"),[m,r]=p.useState(null),u=async()=>{if(c!=="opening"){i("opening"),r(null);try{const l=await q(e);t(o.view==="agents-v2"?{...o,view:"agents-v2",agentId:e.id,conversationId:l,tab:"message"}:{view:"agents-v2",agentId:e.id,conversationId:l,tab:"message"})}catch(l){r(l instanceof Error?l.message:"Could not open chat.")}finally{i("idle")}}};return s.jsx("div",{className:"s-profile-tab-conversation",children:s.jsxs("div",{className:"s-profile-activity-empty",children:[s.jsx("div",{className:"s-profile-activity-empty-title",children:"No chat yet"}),s.jsxs("div",{className:"s-profile-activity-empty-detail",children:["Open a direct chat with ",e.name,". The broker will create a real chat ID and keep routing by this agent identity."]}),m&&s.jsx("div",{className:"s-sess-action-error",children:m}),s.jsx("button",{type:"button",className:"s-sess-action",disabled:c==="opening",onClick:()=>{u()},children:c==="opening"?"Opening...":"Open chat"})]})})}function rt({agent:e,conversationId:t,activeTab:o,navigate:c}){const i=[{key:"profile",label:"Sessions"},{key:"config",label:"Config"},{key:"observe",label:"Trace"},{key:"message",label:"Message"}],m=r=>c({view:"agents-v2",agentId:e.id,...t?{conversationId:t}:{},tab:r});return s.jsxs("div",{className:"s-agent-bar",children:[s.jsx(ls,{slot:"agents",fallback:{view:"agents-v2"},navigate:c,className:"s-agent-bar-back"}),s.jsx("nav",{className:"s-profile-tabs s-agent-bar-tabs",children:i.map(r=>s.jsx("button",{type:"button",className:`s-profile-tab${o===r.key?" s-profile-tab--active":""}`,disabled:r.disabled,onClick:()=>m(r.key),children:r.label},r.key))})]})}export{ot as AgentDetailWithRail,rt as AgentProfileBar,it as AgentProfileSessionsCenter,ks as CurrentSessionCard};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function a(r){return r.replace(/\/+$/,"").replace(/^\/Users\/[^/]+/,"~")}function c(r,n){return!r||!n?!1:a(r)===a(n)||r===n}function s(r,n){if(!r||!n)return null;for(const e of r.projects)if(c(e.root,n)||e.worktrees.some(t=>c(t.path,n)))return e;return null}function o(r){const n=r.branch.name??r.name,e=r.status.clean?"clean":`${r.status.changedFiles} changed`,t=r.branch.ahead>0||r.branch.behind>0?`${r.branch.ahead}↑ ${r.branch.behind}↓`:"synced";return`${n} · ${e} · ${t}`}function u(r){return r?r.replace(/^\/Users\/[^/]+/,"~"):"—"}function i(r){return typeof r=="string"&&r?r:"—"}export{i as p,s as r,u as s,o as w};
|