@openscout/scout 0.2.98 → 0.2.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +7 -0
- package/README.md +37 -0
- package/bin/scout.mjs +6 -0
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +4 -4
- package/dist/chat.mjs +285 -0
- package/dist/client/assets/ActivityScreen-CcDdQTBK.js +1 -0
- package/dist/client/assets/{AddProjectForm-fXndbzXT.js → AddProjectForm-CHNJ4NnS.js} +1 -1
- package/dist/client/assets/AdventureEvidence-B4mEvXeD.js +5 -0
- package/dist/client/assets/AdventureReader-ZsBDQITY.js +4 -0
- package/dist/client/assets/AdventureScenery-DSxDlqG1.js +1 -0
- package/dist/client/assets/AgentAdventures-BxrYq_2v.js +1 -0
- package/dist/client/assets/AgentAvatar-NZOqcsB2.js +1 -0
- package/dist/client/assets/AgentConfigurationScreen-BhD1PEAM.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-BqS6MXqF.js +1 -0
- package/dist/client/assets/AgentDetailCard-MIEBKw_S.js +1 -0
- package/dist/client/assets/AgentFloorView-A0dDRlRV.js +1 -0
- package/dist/client/assets/AgentFloorWorld-BTqwmK5G.js +1 -0
- package/dist/client/assets/AgentInfoScreen-DuaN0sgE.js +1 -0
- package/dist/client/assets/{AgentLaneCard-Cc9uyfBr.js → AgentLaneCard-C4rKLLdT.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-Dv2lBFoH.js → AgentLaneChrome-fGC-ZrJS.js} +1 -1
- package/dist/client/assets/{AgentLaneDetailSheet-CGqtqSHQ.js → AgentLaneDetailSheet-BTF4_th9.js} +2 -2
- package/dist/client/assets/{AgentLaneSummaryResize-Di4u6df2.js → AgentLaneSummaryResize-DgSeA_vS.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-CeNiaZ9_.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-CCGBArIb.js → AgentLanesPreflight-CcS23wij.js} +1 -1
- package/dist/client/assets/AgentLanesView-WZhEDBFE.js +2 -0
- package/dist/client/assets/AgentLiveActions-6Kfr1uOT.js +1 -0
- package/dist/client/assets/AgentMasterScreen-DUDUTAnU.js +1 -0
- package/dist/client/assets/AgentSessions-CO1WGa8Z.js +6 -0
- package/dist/client/assets/AgentsConsole-BQOWkj35.js +1 -0
- package/dist/client/assets/AgentsScreen-BMNAj1PH.js +1 -0
- package/dist/client/assets/AgentsSubnav-CeHhuzyM.js +1 -0
- package/dist/client/assets/{AstronautSuit-CwB4Dw07.js → AstronautSuit-D67fIBdR.js} +1 -1
- package/dist/client/assets/AtopView-Ck30FbzG.js +1 -0
- package/dist/client/assets/BackToPicker-CkBhGRlD.js +1 -0
- package/dist/client/assets/BriefingDetailScreen-yZG8_m4h.js +1 -0
- package/dist/client/assets/BriefingsScreen-DTxYMr3a.js +1 -0
- package/dist/client/assets/{BrokerMetadataPanel-BJSwU9XZ.js → BrokerMetadataPanel-crirZCdo.js} +1 -1
- package/dist/client/assets/BrokerScreen-CT37VQiL.js +8 -0
- package/dist/client/assets/Canvas-CRP0KjKb.js +1 -0
- package/dist/client/assets/{CastPicker-CkgTalIt.js → CastPicker-ZPomvOf-.js} +1 -1
- package/dist/client/assets/ChannelComposer-BVItWlEz.js +1 -0
- package/dist/client/assets/ChannelSidebar-B-2spawY.js +1 -0
- package/dist/client/assets/CharacterFamilyPreview-BniL8sEL.css +1 -0
- package/dist/client/assets/CharacterFamilyPreview-ckVkecDO.js +1 -0
- package/dist/client/assets/ChatAvatar-DKBsbOqk.js +1 -0
- package/dist/client/assets/ChatBits-CLJ71hTY.js +1 -0
- package/dist/client/assets/ChatCollapsedStrip-Co0NmqOO.js +1 -0
- package/dist/client/assets/ChatRightPanel-pKQtkAgl.js +1 -0
- package/dist/client/assets/ChatSpaceSurface-NrLwdPkE.js +1 -0
- package/dist/client/assets/ChatSpaceTheme-BPMgPdVK.css +1 -0
- package/dist/client/assets/ChatSpaceTheme-D37Jk7bl.js +1 -0
- package/dist/client/assets/{CodeDiffPane-DfluIWmO.js → CodeDiffPane-D-iv28LJ.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-By_Wz9ex.js → CodeProjectPicker-CZ3gDdiT.js} +1 -1
- package/dist/client/assets/CodeScreen-CSC-zbP9.js +1 -0
- package/dist/client/assets/CommsCanvas-BR2YS76H.css +1 -0
- package/dist/client/assets/CommsCanvas-DdNAwjGW.js +1 -0
- package/dist/client/assets/CommsDeck-mGWY7Ivi.js +1 -0
- package/dist/client/assets/CommsFlowGraph-vQucylxF.css +1 -0
- package/dist/client/assets/CommsFlowGraph-voDD9M5R.js +1 -0
- package/dist/client/assets/CommsFlowMap-C33sgD48.js +1 -0
- package/dist/client/assets/CommsSelection-BL8aYD7z.js +1 -0
- package/dist/client/assets/{ConversationComposer-BUIjWMBi.js → ConversationComposer-DNcn5U6D.js} +1 -1
- package/dist/client/assets/ConversationFeedRows-RnYSa7Io.js +1 -0
- package/dist/client/assets/ConversationHeader-Y9TEJxP_.js +1 -0
- package/dist/client/assets/ConversationPanels-6pprBpmq.js +6 -0
- package/dist/client/assets/ConversationScreen-Brfas2y0.css +1 -0
- package/dist/client/assets/ConversationScreen-tpj4cqWs.js +2 -0
- package/dist/client/assets/ConversationStatus-Cv-7hErW.js +1 -0
- package/dist/client/assets/{CrewAvatar-CZ_faQ_s.js → CrewAvatar-zgzC3cbU.js} +1 -1
- package/dist/client/assets/CrewSprite-Dp9KBBGY.js +1 -0
- package/dist/client/assets/CrewSprite-DsQJdu3Z.css +1 -0
- package/dist/client/assets/CrewWorkspaces-DDuYMByu.css +1 -0
- package/dist/client/assets/CrewWorkspaces-K2jcyLec.js +1 -0
- package/dist/client/assets/{DataTable-C6aMSilS.js → DataTable-av71ehJV.js} +1 -1
- package/dist/client/assets/DispatchAftermath-CcYGUB10.js +1 -0
- package/dist/client/assets/DocumentFocusViewer-DlMiEALb.js +1 -0
- package/dist/client/assets/{EmbeddableSurfacesLab-D3iZiS8o.js → EmbeddableSurfacesLab-CTkO_tQR.js} +1 -1
- package/dist/client/assets/{EmptyState-CKPWFSjq.js → EmptyState-CYUwYyAW.js} +1 -1
- package/dist/client/assets/{FileViewerPane-CxNbcTYf.js → FileViewerPane-Cxhixtks.js} +2 -2
- package/dist/client/assets/FlightObserveScreen-CvzhzuWc.js +1 -0
- package/dist/client/assets/FloorContextSheet-Vj_wVZq1.js +1 -0
- package/dist/client/assets/FloorExchangePanel-B3TFhjLk.css +1 -0
- package/dist/client/assets/FloorExchangePanel-CjHSDXad.js +1 -0
- package/dist/client/assets/FloorMessagePasses-BG4ebnX5.js +1 -0
- package/dist/client/assets/FloorMessagePasses-nxwwiUom.css +1 -0
- package/dist/client/assets/FloorReplay-BoYaGY9t.js +1 -0
- package/dist/client/assets/FloorResourcesSheet-_Iy5UqgY.js +1 -0
- package/dist/client/assets/FloorSavedWork-jbtRs-YE.js +1 -0
- package/dist/client/assets/FloorTacticalHUD-BhyOqlL5.js +1 -0
- package/dist/client/assets/FollowScreen-CupyOgt4.js +1 -0
- package/dist/client/assets/HarnessMark-DSvM_H7H.js +1 -0
- package/dist/client/assets/HarnessesScreen-DyjqbZ4k.js +1 -0
- package/dist/client/assets/{HerdrSession-DsuxCtfX.js → HerdrSession-Dcm3vf9U.js} +3 -3
- package/dist/client/assets/{HomeHero-DXJo2QSO.js → HomeHero-pIZtE1cC.js} +1 -1
- package/dist/client/assets/HostAdvisorView-Dv5meXo2.js +1 -0
- package/dist/client/assets/InviteLandingScreen-xZQ2na1z.js +1 -0
- package/dist/client/assets/InviteSheet--5Zjct25.js +1 -0
- package/dist/client/assets/JumpPalette-BmiSOEmp.js +1 -0
- package/dist/client/assets/KnowledgeSearchInspector-B8yiM524.js +1 -0
- package/dist/client/assets/KnowledgeSearchScreen-BPqAjHnH.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-t7-XJP-h.js → LaneToolHoverCard-D2cnTeUd.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-jl4XQmEx.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-BB5DhFQm.js → LaneTraceEventFocus-BLhVHwff.js} +1 -1
- package/dist/client/assets/MeshCanvas-BR25OBTJ.js +3 -0
- package/dist/client/assets/MeshCanvasMinimap-ClVolr4-.js +1 -0
- package/dist/client/assets/MeshScreen-BW1dMFWF.js +1 -0
- package/dist/client/assets/{MeshTopologyView-Dc0GSrKa.js → MeshTopologyView-BT3ke2D1.js} +2 -2
- package/dist/client/assets/MessagesScreen-CtNMfIvC.js +1 -0
- package/dist/client/assets/MissionContextRail-CafjuseK.js +1 -0
- package/dist/client/assets/MissionControlView-BjPOViGY.js +1 -0
- package/dist/client/assets/MissionFocusOverlay-nhy3hkxQ.js +1 -0
- package/dist/client/assets/MissionLeftAgentRow-Dms0DBjO.js +1 -0
- package/dist/client/assets/MissionLogPane-DiUf3vWW.js +1 -0
- package/dist/client/assets/NativeAreaScreen-BQSTo8As.js +1 -0
- package/dist/client/assets/NativeAreaScreen-Brix6xDB.js +1 -0
- package/dist/client/assets/NativeAreaScreen-D7HyQNlM.js +1 -0
- package/dist/client/assets/NewAgentModal-BQ2wQ5gp.js +1 -0
- package/dist/client/assets/NewChatComposer-BEXS8vV6.js +19 -0
- package/dist/client/assets/{NewChatOrigin-DCn5cWPZ.js → NewChatOrigin-C8ROO4ps.js} +1 -1
- package/dist/client/assets/NodeDetailPanel-BNTqYC7m.js +1 -0
- package/dist/client/assets/NodeMenu-CcOeFRCB.js +1 -0
- package/dist/client/assets/ObserveEmbedScreen-Dh30EjAQ.js +2 -0
- package/dist/client/assets/{ObserveTextFlow-DCJ5EmD8.js → ObserveTextFlow-CC5mnngm.js} +2 -2
- package/dist/client/assets/{ObservedTopologyPanel-CJVqIqQ2.js → ObservedTopologyPanel-DF6tRZL_.js} +1 -1
- package/dist/client/assets/OpenScoutAppShell-D9pgw36i.js +31 -0
- package/dist/client/assets/OpsAgentsView-D3rM0udq.js +1 -0
- package/dist/client/assets/OpsScreen-DySeNQ1V.js +1 -0
- package/dist/client/assets/OpsSubnav-C9E0r3GZ.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-FUav75j2.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-CUzZ4Rpx.js → ProjectAgentProfileBar-C8z22pJ2.js} +1 -1
- package/dist/client/assets/ProjectAgentProfileHero-BLK0EwMg.js +1 -0
- package/dist/client/assets/ProjectsInbox-DfCXReZK.js +2 -0
- package/dist/client/assets/ProjectsRail-CELVubfJ.js +1 -0
- package/dist/client/assets/ProjectsScreen-DMw4TLKy.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-D1Sh4fnX.js +1 -0
- package/dist/client/assets/Provider-CNZluAZb.js +5 -0
- package/dist/client/assets/{RailRow-B0sRaJc6.css → RailRow-B25zKEub.css} +1 -1
- package/dist/client/assets/RailRow-DUPqXMZh.js +1 -0
- package/dist/client/assets/RailToggle-BwmY70B8.js +1 -0
- package/dist/client/assets/RawSessionsTable-6OVJq0JZ.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-D41TYY0x.js +9 -0
- package/dist/client/assets/RenderedWorkerSprite-C8fxndAh.js +1 -0
- package/dist/client/assets/RenderedWorkerSprite-qnTfkd_4.css +1 -0
- package/dist/client/assets/ReplayClock-DUVJjrIu.js +1 -0
- package/dist/client/assets/ReplayLog-Bek1Vc4W.js +1 -0
- package/dist/client/assets/ReplayOutpost-DlRg3172.js +1 -0
- package/dist/client/assets/ReplayOutpost-Y1DvZgeu.css +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-mexrJPhW.js → RepoDiffEmbedScreen-CVUMnt6A.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-DbqX4L3q.js → RepoDiffPageScreen-D9-s5PyB.js} +1 -1
- package/dist/client/assets/RepoDiffViewer-D7FN-oyY.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-BpMR7tlx.js +2 -0
- package/dist/client/assets/{ReposScreen-CzbO1Fuy.js → ReposScreen-BQ7HO1om.js} +2 -2
- package/dist/client/assets/RiggedWorkerCharacter-BpYECnyK.css +1 -0
- package/dist/client/assets/RiggedWorkerCharacter-CJMWlvV-.js +1 -0
- package/dist/client/assets/SageModelStudio-768dRQr4.css +1 -0
- package/dist/client/assets/SageModelStudio-B526NSnw.js +4108 -0
- package/dist/client/assets/ScoutDeckSurface-ChkvGyEW.js +1 -0
- package/dist/client/assets/{ScoutSurface-NlhDsPzg.js → ScoutSurface-6g1f5chk.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-l2WAahCg.js → ScoutbotFxLab-BuwBdnPf.js} +1 -1
- package/dist/client/assets/{SecondaryNav-Cs0_FQdj.js → SecondaryNav-Bs-_VwTC.js} +1 -1
- package/dist/client/assets/SessionEmbedScreen-C2wf35-P.js +1 -0
- package/dist/client/assets/SessionObserve-B64YsYhy.js +12 -0
- package/dist/client/assets/{SessionObserve-CLrHfAKZ.css → SessionObserve-CDdJ7fAE.css} +1 -1
- package/dist/client/assets/SessionObserveEvidence-CS1aQBpQ.js +1 -0
- package/dist/client/assets/SessionRefScreen-DURV0MpF.js +1 -0
- package/dist/client/assets/SessionsScreen-D71ZR-8t.js +1 -0
- package/dist/client/assets/SettingsDrawer-Nz98oBVl.js +3 -0
- package/dist/client/assets/SettingsScreen-CYBHal6y.js +1 -0
- package/dist/client/assets/SharedFloorCharacter-Bi5_md4R.css +1 -0
- package/dist/client/assets/SharedFloorCharacter-V04kD5T9.js +1 -0
- package/dist/client/assets/SharedWorkFloor-BCmdeb3Q.css +1 -0
- package/dist/client/assets/SharedWorkFloor-C0xxW4SN.js +2 -0
- package/dist/client/assets/{ShikiPane-C0TuCATU.js → ShikiPane-XwFI-pCp.js} +1 -1
- package/dist/client/assets/{SlidePanel-CETQ5NTx.js → SlidePanel-BMpkXai_.js} +1 -1
- package/dist/client/assets/SpaceSwitcher-BfeIf-ad.js +1 -0
- package/dist/client/assets/SpriteAvatar-aHeF4ZQZ.js +1 -0
- package/dist/client/assets/SproutActionSprite-DI5N3gOj.js +1 -0
- package/dist/client/assets/{StatusPill-BllrY-eg.js → StatusPill-Dw4LP7wu.js} +1 -1
- package/dist/client/assets/{TailView-_gKWfaQM.js → TailView-BofjmUMJ.js} +2 -2
- package/dist/client/assets/Terminal-jIqnIZZ6.js +4 -0
- package/dist/client/assets/TerminalEmbedScreen-3XsjuySR.js +1 -0
- package/dist/client/assets/TerminalHeaderMount-CwbQhXcI.js +1 -0
- package/dist/client/assets/TerminalRelay--qOBwnbR.js +46 -0
- package/dist/client/assets/{TextDocumentSurface-2X1Gw4eA.js → TextDocumentSurface-BK6Qy41F.js} +1 -1
- package/dist/client/assets/{TmuxPeek-CqTJRhkI.js → TmuxPeek-DpUT9Tpc.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-C4vkU-sU.js → VoicePermissionsPanel-D35fOnQj.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-DqGnuK0e.js → WorkDetailScreen-Bcf_yHhU.js} +4 -4
- package/dist/client/assets/WorkFilesViewer-t8AEyx3Q.js +1 -0
- package/dist/client/assets/WorkRunView-CxwAZ2QQ.css +1 -0
- package/dist/client/assets/WorkRunView-_mhG_FR2.js +1 -0
- package/dist/client/assets/WorldActorTalk-CKerDikx.js +1 -0
- package/dist/client/assets/WorldCharacter-BRrj3MQN.js +1 -0
- package/dist/client/assets/WorldMinimap-DOptgrc4.js +1 -0
- package/dist/client/assets/WorldSky-D-RJzSa6.js +1 -0
- package/dist/client/assets/{activity-CzTJ-YMX.js → activity-BJqFrZyB.js} +1 -1
- package/dist/client/assets/{addon-fit-Zx3A7pGS.js → addon-fit-CHohcvS3.js} +1 -1
- package/dist/client/assets/{addon-webgl-DitJj-N0.js → addon-webgl-CaRy2x2b.js} +1 -1
- package/dist/client/assets/adventure-evidence-DgQbBmfa.css +1 -0
- package/dist/client/assets/adventure-habitats-v1-CVMbdB_Z.png +0 -0
- package/dist/client/assets/adventure-habitats-v1-M1lcpTJh.js +1 -0
- package/dist/client/assets/adventure-playback-DTfkhIc0.js +3 -0
- package/dist/client/assets/adventure-reader-DM5UDDm9.css +1 -0
- package/dist/client/assets/agent-adventures-DZtWpj6k.css +1 -0
- package/dist/client/assets/agent-autocomplete-_u9o5EZu.js +2 -0
- package/dist/client/assets/{agent-essentials-K9B6kbTS.js → agent-essentials-bKWYOZaH.js} +1 -1
- package/dist/client/assets/{agent-floor-CuJr1iK1.css → agent-floor-Dmr9hZHL.css} +1 -1
- package/dist/client/assets/agent-floor-actor-DW8zLht0.js +1 -0
- package/dist/client/assets/agent-floor-world-Bnd1AtwK.css +1 -0
- package/dist/client/assets/agent-floor-world-layout-hfMjuoui.js +1 -0
- package/dist/client/assets/agent-lane-card-model-CeqQGp-8.js +1 -0
- package/dist/client/assets/{agent-lane-detail-ppJId6Jc.js → agent-lane-detail-Ti3trpfH.js} +1 -1
- package/dist/client/assets/{agent-lane-preview-BhplDYGf.js → agent-lane-preview-Dpa3DuOn.js} +1 -1
- package/dist/client/assets/{agent-lanes-DlqcEf0l.css → agent-lanes-DmgipV9D.css} +1 -1
- package/dist/client/assets/agent-lanes-model-DMAdqCmK.js +4 -0
- package/dist/client/assets/agent-master-THmq-1k8.css +1 -0
- package/dist/client/assets/agent-master-model-C-KdOFDK.js +1 -0
- package/dist/client/assets/{agent-specialization-CtF_jI34.js → agent-specialization-BplZUa_0.js} +1 -1
- package/dist/client/assets/agent-state-DDhnFEEP.js +1 -0
- package/dist/client/assets/{api-HFH8wFyb.js → api-BQYTwoz6.js} +1 -1
- package/dist/client/assets/api-DSqpVKC7.js +1 -0
- package/dist/client/assets/{arc.es-BNXJqSw7.js → arc.es-CubLvQ4W.js} +1 -1
- package/dist/client/assets/{arrow-left-eToA6GxC.js → arrow-left-DFfKAq0d.js} +1 -1
- package/dist/client/assets/{arrow-right-DTX42clh.js → arrow-right-DmAWnyAH.js} +1 -1
- package/dist/client/assets/{arrow-up-right-B09GPwFl.js → arrow-up-right-B0aLKiyF.js} +1 -1
- package/dist/client/assets/at-sign-DM7xeppo.js +1 -0
- package/dist/client/assets/book-open-BL9qvhEI.js +1 -0
- package/dist/client/assets/{bot-WxKXYtEX.js → bot-BhAVbcCA.js} +1 -1
- package/dist/client/assets/broker-display-BkBzyvbR.js +2 -0
- package/dist/client/assets/{cache-CeWH_KzJ.js → cache-DGBo3vIf.js} +1 -1
- package/dist/client/assets/chat-api-BPVC0asu.js +1 -0
- package/dist/client/assets/chat-space-model-B6Jg2CY4.js +4 -0
- package/dist/client/assets/{check-Dz2SRHft.js → check-g7D7-c1J.js} +1 -1
- package/dist/client/assets/{chevron-down-D120PY4g.js → chevron-down-CDzRQQGl.js} +1 -1
- package/dist/client/assets/{chevron-right-CowuvuE6.js → chevron-right-DKGTLiqc.js} +1 -1
- package/dist/client/assets/chevron-up-DX7R6KY2.js +1 -0
- package/dist/client/assets/{chunk-HRAB3GC3-KjjrTLCU.js → chunk-HRAB3GC3-Dvk_QpRq.js} +1 -1
- package/dist/client/assets/{clock-_9FDplIT.js → clock-CQb4FeMf.js} +1 -1
- package/dist/client/assets/{code-xml-CkkNdRmu.js → code-xml-Cmadr3pQ.js} +1 -1
- package/dist/client/assets/coffee-ljG1_krY.js +1 -0
- package/dist/client/assets/colors-CFlbwC25.js +1 -0
- package/dist/client/assets/comms-deck-C8nVeMBh.css +1 -0
- package/dist/client/assets/comms-deck-CBhsXnY-.js +2 -0
- package/dist/client/assets/comms-gesture-_aGFo6g3.js +2 -0
- package/dist/client/assets/{compass-BdpImt_W.js → compass-CvzkzkIh.js} +1 -1
- package/dist/client/assets/content-0AXa0klu.js +1 -0
- package/dist/client/assets/content-BEyJ19Lx.js +1 -0
- package/dist/client/assets/content-BN5weWKW.js +1 -0
- package/dist/client/assets/content-BNokkm7C.js +1 -0
- package/dist/client/assets/content-BV4PUM9q.js +1 -0
- package/dist/client/assets/content-BxUPlcx5.js +1 -0
- package/dist/client/assets/content-CIC5sku8.js +1 -0
- package/dist/client/assets/content-CKJ9zb7Z.js +1 -0
- package/dist/client/assets/content-CdkTyxqk.js +1 -0
- package/dist/client/assets/content-CnhhSCZq.js +1 -0
- package/dist/client/assets/content-D1Ze_FG9.js +1 -0
- package/dist/client/assets/content-DY3F9Vfr.js +1 -0
- package/dist/client/assets/content-DrKBYpcb.js +1 -0
- package/dist/client/assets/content-LSStQYj5.js +1 -0
- package/dist/client/assets/content-YvU-D0hF.js +1 -0
- package/dist/client/assets/content-oKQMyVnH.js +1 -0
- package/dist/client/assets/{context-budget-DqxWzalx.js → context-budget-8qFKqM-j.js} +1 -1
- package/dist/client/assets/{conversation-icons-DHGc9wbT.js → conversation-icons-CIRaxmid.js} +1 -1
- package/dist/client/assets/conversation-model-m8HhzroS.js +1 -0
- package/dist/client/assets/conversation-motion-features-D9PxLoDt.js +1 -0
- package/dist/client/assets/conversations-Cbg9h_Af.js +1 -0
- package/dist/client/assets/{copy-BzdzWsQd.js → copy-BGOC1tJB.js} +1 -1
- package/dist/client/assets/{cpu-CHFIGw87.js → cpu-Q6nrHFTN.js} +1 -1
- package/dist/client/assets/{createLucideIcon-Dv8H8m7J.js → createLucideIcon-ChvMq-zl.js} +1 -1
- package/dist/client/assets/{credentials-BTce3VP1.js → credentials-OeoF-VKJ.js} +1 -1
- package/dist/client/assets/discover-DlwbftpC.js +2 -0
- package/dist/client/assets/embed-entry-c0lwtjBG.js +2 -0
- package/dist/client/assets/embed-navigation-DayfkQau.js +1 -0
- package/dist/client/assets/{external-link-BvX5PfLh.js → external-link-BVccgH0n.js} +1 -1
- package/dist/client/assets/{eye-C9cGk5z6.js → eye-CsGfEVR6.js} +1 -1
- package/dist/client/assets/{file-code-corner-jlGFdr8d.js → file-code-corner-Be6da5l3.js} +1 -1
- package/dist/client/assets/{file-text-BHro8MkG.js → file-text-DP6txVW-.js} +1 -1
- package/dist/client/assets/flag-DAFE2wZ5.js +1 -0
- package/dist/client/assets/floor-character-name-CqJPOlXb.js +1 -0
- package/dist/client/assets/floor-context-model-rWKqaKmV.js +1 -0
- package/dist/client/assets/floor-context-sheet-BFnkFiY3.css +1 -0
- package/dist/client/assets/floor-memory-YMM8AlLY.js +1 -0
- package/dist/client/assets/floor-message-passes-CO3Ix_wR.js +1 -0
- package/dist/client/assets/floor-preview-text-HrORUJ7D.js +1 -0
- package/dist/client/assets/floor-replay-CccYqE-f.css +1 -0
- package/dist/client/assets/floor-tactical-hud-HL5Vja5Y.css +1 -0
- package/dist/client/assets/folder-B_S7gBVr.js +1 -0
- package/dist/client/assets/{gauge-DSflSery.js → gauge-DQCGlE3o.js} +1 -1
- package/dist/client/assets/{gestures-YA5IIwp-.js → gestures-CofqY4Km.js} +1 -1
- package/dist/client/assets/{git-branch-Bc_eDIpG.js → git-branch-DcUCsWdJ.js} +1 -1
- package/dist/client/assets/go-shortcuts-KQy-ZOpV.js +1 -0
- package/dist/client/assets/home-moving-signal-BIHUGNfI.js +1 -0
- package/dist/client/assets/home-now-card-CaLgZze2.js +1 -0
- package/dist/client/assets/{home-now-card-nano-Jmy7eJ6H.js → home-now-card-nano-CvU8B61b.js} +1 -1
- package/dist/client/assets/{hooks-D6NI15f6.css → hooks-D787lBmm.css} +1 -1
- package/dist/client/assets/hooks-DaUOREpP.js +2 -0
- package/dist/client/assets/index-CGbs0SBm.css +1 -0
- package/dist/client/assets/index-CbqBwfIW.js +1 -0
- package/dist/client/assets/index-CyPMl7Up.js +1 -0
- package/dist/client/assets/index-DReVb7jZ.js +10 -0
- package/dist/client/assets/index-PQpJveGO.js +1 -0
- package/dist/client/assets/index-kkXUq-zf.js +1 -0
- package/dist/client/assets/{inspector-panel-CwrHjRaQ.js → inspector-panel-CLU7wjnT.js} +2 -2
- package/dist/client/assets/{keyboard-nav-B8sQ_8IF.js → keyboard-nav-CJXPaHXj.js} +1 -1
- package/dist/client/assets/knowledge-search-BNdQweGz.css +1 -0
- package/dist/client/assets/lane-ask-display-BTVSakyo.js +18 -0
- package/dist/client/assets/{lane-edit-display-C_Aujldz.js → lane-edit-display-BjdT9oZl.js} +1 -1
- package/dist/client/assets/{lane-observe-vfyACHi0.js → lane-observe-CteDwdD-.js} +3 -3
- package/dist/client/assets/lane-roster-store-Ch9t6lb0.js +1 -0
- package/dist/client/assets/{lane-tool-detail-0WhMf4Vj.js → lane-tool-detail-Czggx8oM.js} +1 -1
- package/dist/client/assets/{layers-CW2-qHsG.js → layers-BOwyWodP.js} +1 -1
- package/dist/client/assets/{layout-grid-BoVnPOk-.js → layout-grid-B36Qsh0y.js} +1 -1
- package/dist/client/assets/left-0vBrvrBG.js +2 -0
- package/dist/client/assets/{left-DH44V4I_.css → left-BV9yMiTL.css} +1 -1
- package/dist/client/assets/left-C6SyaqlJ.js +1 -0
- package/dist/client/assets/left-CTuXysZR.js +2 -0
- package/dist/client/assets/left-Cc6s4DT2.js +1 -0
- package/dist/client/assets/left-DF5caiyh.js +1 -0
- package/dist/client/assets/left-DgT4tWCx.js +1 -0
- package/dist/client/assets/left-R0wppTTr.js +1 -0
- package/dist/client/assets/left-advisor-C-kt8V28.js +1 -0
- package/dist/client/assets/left-agents-thnBO156.js +1 -0
- package/dist/client/assets/left-default-CT42fnpF.js +1 -0
- package/dist/client/assets/left-lanes-CSmZgciK.js +1 -0
- package/dist/client/assets/left-mission-C86x6i9h.js +1 -0
- package/dist/client/assets/left-mission-DENnfshd.css +1 -0
- package/dist/client/assets/library-DdhYL_9v.js +1 -0
- package/dist/client/assets/{loader-circle-DmUG_YC7.js → loader-circle-DNUsuPWz.js} +1 -1
- package/dist/client/assets/{local-agents-VP1-ZlPw.js → local-agents-I40PawYA.js} +1 -1
- package/dist/client/assets/machine-children-CdhNzDF0.js +1 -0
- package/dist/client/assets/machine-scope-DJt9RZ2w.js +1 -0
- package/dist/client/assets/mentions-Ck_Vjnyp.js +1 -0
- package/dist/client/assets/{mesh-ops-CKSWgax2.js → mesh-ops-DSlvHp-D.js} +1 -1
- package/dist/client/assets/{mesh-screen-D1Yvo8fU.css → mesh-screen-DjA4mOaN.css} +1 -1
- package/dist/client/assets/mesh-view-store-C1-mdP3P.js +1 -0
- package/dist/client/assets/{message-circle-joGFxfj1.js → message-circle-cI5_A5mj.js} +1 -1
- package/dist/client/assets/{message-markup-DC0QFEZn.js → message-markup-6Tgo4qFJ.js} +1 -1
- package/dist/client/assets/{message-square-BLiFqpe_.js → message-square-CJW4WRlo.js} +1 -1
- package/dist/client/assets/{message-visibility-CGOmSSKs.js → message-visibility-DwxgcgYK.js} +1 -1
- package/dist/client/assets/mission-control-CsX3Yc58.css +1 -0
- package/dist/client/assets/mission-control-model-C30vU1Fe.js +1 -0
- package/dist/client/assets/mission-control-store-p_cboAm4.js +1 -0
- package/dist/client/assets/{mission-wall-CocIM1cF.js → mission-wall-DOuGOxQy.js} +1 -1
- package/dist/client/assets/monitor-C7_cHlkC.js +1 -0
- package/dist/client/assets/nav-destinations-CU_euC-Q.js +1 -0
- package/dist/client/assets/observe-CtS0l3zu.js +1 -0
- package/dist/client/assets/{operator-attention-RqieiSY8.js → operator-attention-DBaRg5ep.js} +1 -1
- package/dist/client/assets/ops-screen-CxYM0VOW.css +1 -0
- package/dist/client/assets/page-status-DwFR4wSw.js +1 -0
- package/dist/client/assets/panel-right-qP17MwMl.js +1 -0
- package/dist/client/assets/pause-B_hliKuR.js +1 -0
- package/dist/client/assets/{persistent-state-BubPQ7tT.js → persistent-state-BUsTTZFE.js} +1 -1
- package/dist/client/assets/pin-Oi4qHR6M.js +1 -0
- package/dist/client/assets/pip-idle-v1-Tt-CZsRG.png +0 -0
- package/dist/client/assets/pip-thinking-v1-BoHWSEye.png +0 -0
- package/dist/client/assets/pip-waiting-v1-DkuvJ-dN.png +0 -0
- package/dist/client/assets/pip-working-v1-wWQLRS1z.png +0 -0
- package/dist/client/assets/play-CVeRmqLH.js +1 -0
- package/dist/client/assets/{plus-BWKhylds.js → plus-D5NLH_fM.js} +1 -1
- package/dist/client/assets/profile-BegEUmB7.js +1 -0
- package/dist/client/assets/projects-inbox-CKPLZN8s.css +1 -0
- package/dist/client/assets/{projects-inbox-DFbgVlXL.js → projects-inbox-CfwxCTdN.js} +1 -1
- package/dist/client/assets/provider-DwmCoSlc.js +1 -0
- package/dist/client/assets/{proxy-DVDRhSRR.js → proxy-DgzP27W8.js} +1 -1
- package/dist/client/assets/{radio-CxIXS1nU.js → radio-Cas2qg1D.js} +1 -1
- package/dist/client/assets/{refresh-cw-Bkh7Cvnd.js → refresh-cw-IcD2lPoT.js} +1 -1
- package/dist/client/assets/resolve-panes-pfZTezKo.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-D5ksvrb_.js +1 -0
- package/dist/client/assets/right-BDaCJ0CF.js +1 -0
- package/dist/client/assets/right-BP6lXRFS.js +1 -0
- package/dist/client/assets/right-Cb1VCrdj.js +1 -0
- package/dist/client/assets/right-CeFaxfBo.js +1 -0
- package/dist/client/assets/right-Ck2SrYCj.js +1 -0
- package/dist/client/assets/right-D-uv5YfF.js +1 -0
- package/dist/client/assets/right-DJMSICky.js +1 -0
- package/dist/client/assets/right-Dnljs8ah.js +1 -0
- package/dist/client/assets/right-SdCSF8PP.js +1 -0
- package/dist/client/assets/{right-DVUq5374.js → right-cjPTwPXS.js} +2 -2
- package/dist/client/assets/{rocket-CnxqjX_K.js → rocket-DAqYvu8I.js} +1 -1
- package/dist/client/assets/router-C-MF5-mb.js +1 -0
- package/dist/client/assets/{runtime-picker-BYAFNLNq.css → runtime-picker-C3JwrDKP.css} +1 -1
- package/dist/client/assets/runtime-picker-C_AVYF63.js +1 -0
- package/dist/client/assets/{scope-views-KPY85UUx.js → scope-views-Dl3ml9OZ.js} +1 -1
- package/dist/client/assets/scout-voice-CqAyfblr.js +1 -0
- package/dist/client/assets/{scoutbot-D7kGGyK_.js → scoutbot-Bk3nyrkj.js} +2 -2
- package/dist/client/assets/{scoutbot-markdown-yb87JlSE.js → scoutbot-markdown-DwvGQOWo.js} +1 -1
- package/dist/client/assets/{scroll-text-DFcBYy5J.js → scroll-text-B0tKI9Sg.js} +1 -1
- package/dist/client/assets/{search-FB2vVxCp.js → search-UsM-9-_W.js} +1 -1
- package/dist/client/assets/secondaryNavConfig-D15P1Y9k.css +1 -0
- package/dist/client/assets/secondaryNavConfig-DzNHk6IH.js +1 -0
- package/dist/client/assets/{selection-bridge-qBGFCJv8.js → selection-bridge-OTS2iFkt.js} +1 -1
- package/dist/client/assets/{send-horizontal-CS7mxVhX.js → send-horizontal-BlQsRK6C.js} +1 -1
- package/dist/client/assets/send-to-agent-session-C1mgqdow.js +1 -0
- package/dist/client/assets/{server-WY6gsbZz.js → server-DBlPW0Mp.js} +1 -1
- package/dist/client/assets/{session-catalog-CG4oL_yN.js → session-catalog-CnpZMB7C.js} +1 -1
- package/dist/client/assets/{session-table-uJh3v-ly.js → session-table-CGkfG5Yd.js} +1 -1
- package/dist/client/assets/sessions-view-Bge4XZ4I.js +1 -0
- package/dist/client/assets/{settings-DQEtqkM9.js → settings-C69Zjrpq.js} +1 -1
- package/dist/client/assets/shared-work-artifacts-DfNl9KTo.js +1 -0
- package/dist/client/assets/{sliders-horizontal-57e99_qO.js → sliders-horizontal-6bzeod7c.js} +1 -1
- package/dist/client/assets/solar-system-scope-2k-stars-points-1FwHnkj0.png +0 -0
- package/dist/client/assets/{sparkles-D0vWLTyC.js → sparkles-Cc5lPZRv.js} +1 -1
- package/dist/client/assets/sprout-action-sprite-DZ8C0fTl.css +1 -0
- package/dist/client/assets/sprout-actions-proof-v1-BzUdc812.png +0 -0
- package/dist/client/assets/{sse-B29iGBnw.js → sse-A8AyLH0g.js} +1 -1
- package/dist/client/assets/system-surfaces-redesign-DKFg4GB5.css +1 -0
- package/dist/client/assets/{tail-display-DcliDVkW.js → tail-display-DHSNmvor.js} +2 -2
- package/dist/client/assets/{tail-events-LK29oCKm.js → tail-events-C4WdhVeK.js} +1 -1
- package/dist/client/assets/{terminal-UDy4lzV1.js → terminal-DMZjX1es.js} +1 -1
- package/dist/client/assets/{terminal-relay-CXHMdain.js → terminal-relay-mO89dX-Y.js} +1 -1
- package/dist/client/assets/terminal-screen-Bpb2SZrn.css +1 -0
- package/dist/client/assets/{terminal-sessions-Bdt2W3Y4.js → terminal-sessions-3RfJpen8.js} +1 -1
- package/dist/client/assets/{terminal-takeover-BMeBjBB2.js → terminal-takeover-CZZsnPzj.js} +1 -1
- package/dist/client/assets/use-beside-D3cJpA5p.js +1 -0
- package/dist/client/assets/use-conversation-list-D5EnpVba.js +1 -0
- package/dist/client/assets/{use-fleet-active-asks-CCGrll5q.js → use-fleet-active-asks-D_QOmjg5.js} +1 -1
- package/dist/client/assets/use-mesh-node-state-3V3ADQ-G.js +1 -0
- package/dist/client/assets/{use-mesh-ops-items-BjyeFJTz.js → use-mesh-ops-items-DI9GKWlF.js} +1 -1
- package/dist/client/assets/{use-reduced-motion-CPoX8iV2.js → use-reduced-motion-CiaZHMnk.js} +1 -1
- package/dist/client/assets/use-scout-dev-flags-CkdAHlDR.js +1 -0
- package/dist/client/assets/{useAgentHoverCard-BgTLNcF-.js → useAgentHoverCard-A3QGXqIy.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-DrL_nkCZ.js +1 -0
- package/dist/client/assets/{useEmbedHeadline-DuUnwTB7.js → useEmbedHeadline-atkQVfGw.js} +1 -1
- package/dist/client/assets/usePersistentState-Y8XwSTg-.js +1 -0
- package/dist/client/assets/{usePierreRuntime-35AHf9RQ.js → usePierreRuntime-DTvcwISe.js} +1 -1
- package/dist/client/assets/users-RLK3P5U4.js +1 -0
- package/dist/client/assets/worker-rendered-v1-DmGVMlVi.png +0 -0
- package/dist/client/assets/worker-thinking-v1-ujakpzrK.png +0 -0
- package/dist/client/assets/worker-waiting-v1-DbTSsfJJ.png +0 -0
- package/dist/client/assets/worker-working-v1-BROAvJ_z.png +0 -0
- package/dist/client/assets/world-outposts-v1-DOt0i98W.png +0 -0
- package/dist/client/assets/{wrench-BfVeded5.js → wrench-B4maQJai.js} +1 -1
- package/dist/client/assets/{x-DgmmnPKt.js → x-rlMdRqJF.js} +1 -1
- package/dist/client/assets/{xterm-DnJJmrCA.js → xterm-B1zHHOLQ.js} +1 -1
- package/dist/client/assets/{zap-Bcja1lHG.js → zap-B4X0OrEw.js} +1 -1
- package/dist/client/characters/sage/sage.glb +0 -0
- package/dist/client/crew/brik-bust.webp +0 -0
- package/dist/client/crew/brik-chip-id.webp +0 -0
- package/dist/client/crew/fenn-bust.webp +0 -0
- package/dist/client/crew/fenn-chip-id.webp +0 -0
- package/dist/client/crew/lulu-bust.webp +0 -0
- package/dist/client/crew/milo-bust.webp +0 -0
- package/dist/client/crew/milo-chip-id.webp +0 -0
- package/dist/client/crew/nori-bust.webp +0 -0
- package/dist/client/crew/pip-bust.webp +0 -0
- package/dist/client/crew/pip-chip-id.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/blink-half.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/blink-shut.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-left.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-right.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-up.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/rest.webp +0 -0
- package/dist/client/crew/sheets/sprout/blink-half.webp +0 -0
- package/dist/client/crew/sheets/sprout/blink-shut.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-left.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-right.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-up.webp +0 -0
- package/dist/client/crew/sprout-bust.webp +0 -0
- package/dist/client/crew/sprout-chip-id.webp +0 -0
- package/dist/client/crew/tuck-bust.webp +0 -0
- package/dist/client/crew/tuck-chip-id.webp +0 -0
- package/dist/client/crew/vex-bust.webp +0 -0
- package/dist/client/crew/vex-chip-id.webp +0 -0
- package/dist/client/crew/wrench-bust.webp +0 -0
- package/dist/client/crew/wrench-chip-id.webp +0 -0
- package/dist/client/index.html +15 -3
- package/dist/drizzle/0017_wise_silver_sable.sql +26 -0
- package/dist/drizzle/0018_message_epoch_order.sql +1 -0
- package/dist/drizzle/0019_session_actor_targets.sql +227 -0
- package/dist/drizzle/README.md +19 -0
- package/dist/drizzle/meta/0017_snapshot.json +6785 -0
- package/dist/drizzle/meta/0018_snapshot.json +6804 -0
- package/dist/drizzle/meta/0019_snapshot.json +6804 -0
- package/dist/drizzle/meta/_journal.json +21 -0
- package/dist/highlights-eq9cgrbb.scm +604 -0
- package/dist/highlights-ghv9g403.scm +205 -0
- package/dist/highlights-hk7bwhj4.scm +284 -0
- package/dist/highlights-r812a2qc.scm +150 -0
- package/dist/highlights-x6tmsnaa.scm +115 -0
- package/dist/injections-73j83es3.scm +27 -0
- package/dist/main.mjs +32163 -29049
- package/dist/node/main.mjs +7189 -6285
- package/dist/openscout-terminal-relay.mjs +391 -9
- package/dist/pairing-runtime-controller.mjs +36724 -35406
- package/dist/runtime/base-daemon.mjs +14204 -63
- package/dist/runtime/broker-daemon.mjs +23498 -3137
- package/dist/runtime/broker-process-manager.mjs +19 -5
- package/dist/runtime/mesh-discover.mjs +18 -5
- package/dist/scout-control-plane-web.mjs +58517 -36972
- package/dist/statusline.mjs +1021 -35
- package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
- package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
- package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
- package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
- package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
- package/dist/update-helper.mjs +32235 -0
- package/package.json +2 -2
- package/dist/client/assets/ActivityScreen-sfonf5SR.js +0 -1
- package/dist/client/assets/AgentAvatar-Dz79iTxB.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-DDc3udYM.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-DHDS9Pgd.js +0 -1
- package/dist/client/assets/AgentDetailCard-8viaEY8b.js +0 -1
- package/dist/client/assets/AgentFloorView-DuyvyMMj.js +0 -1
- package/dist/client/assets/AgentInfoScreen-qntgg2q2.js +0 -1
- package/dist/client/assets/AgentLanesEmbedScreen-BA6fRwkD.js +0 -1
- package/dist/client/assets/AgentLanesView-96lHsoX7.js +0 -2
- package/dist/client/assets/AgentLiveActions-DlSKL60c.js +0 -1
- package/dist/client/assets/AgentMasterScreen-DHrMuQ6_.js +0 -1
- package/dist/client/assets/AgentSessions-DV9v34aq.js +0 -6
- package/dist/client/assets/AgentsConsole-DTpVhS67.js +0 -1
- package/dist/client/assets/AgentsScreen-hZ4o2I-e.js +0 -1
- package/dist/client/assets/AgentsSubnav-Ci7uWM7P.js +0 -1
- package/dist/client/assets/AtopView-D7vyQDtE.js +0 -1
- package/dist/client/assets/BackToPicker-BHicJyfc.js +0 -1
- package/dist/client/assets/BriefingDetailScreen-B-wD_Bot.js +0 -1
- package/dist/client/assets/BriefingsScreen-Cn4Mbam9.js +0 -1
- package/dist/client/assets/BrokerScreen-C8FQ5rlg.js +0 -5
- package/dist/client/assets/ChatCollapsedStrip-7Wrg8Ge0.js +0 -1
- package/dist/client/assets/CodeScreen-cLC0tJ4S.js +0 -1
- package/dist/client/assets/ConversationFeedRows-Bx0gFyG_.js +0 -1
- package/dist/client/assets/ConversationHeader-Bt2RBj93.js +0 -1
- package/dist/client/assets/ConversationPanels-o6W-cOoU.js +0 -6
- package/dist/client/assets/ConversationScreen-CkWnKXt6.css +0 -1
- package/dist/client/assets/ConversationScreen-DIU7m_aC.js +0 -2
- package/dist/client/assets/ConversationStatus-CTYOywFh.js +0 -1
- package/dist/client/assets/CrewWorkspaces-DNX-QQ1h.js +0 -1
- package/dist/client/assets/CrewWorkspaces-Diq11KDq.css +0 -1
- package/dist/client/assets/DispatchAftermath-ZCEB75hh.js +0 -1
- package/dist/client/assets/DocumentFocusViewer-D8iB6SMt.js +0 -1
- package/dist/client/assets/FlightObserveScreen-BTe1YRPr.js +0 -1
- package/dist/client/assets/FollowScreen-CkR-okdL.js +0 -1
- package/dist/client/assets/HarnessMark-DttReffF.js +0 -1
- package/dist/client/assets/HarnessesScreen-COO_Q8VY.js +0 -1
- package/dist/client/assets/HostAdvisorView-DeJ-8RZV.js +0 -1
- package/dist/client/assets/KnowledgeSearchInspector-W_zNIBRV.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-_rxJNUUh.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-DNIECgEl.js +0 -1
- package/dist/client/assets/MeshCanvas-DZv2ipsy.js +0 -3
- package/dist/client/assets/MeshCanvasMinimap-BXHRNb7l.js +0 -1
- package/dist/client/assets/MeshScreen-DuNvpDC5.js +0 -1
- package/dist/client/assets/MessagesScreen-dNNPFwAc.js +0 -1
- package/dist/client/assets/MissionContextRail-DnCWPzAM.js +0 -1
- package/dist/client/assets/MissionControlView-DmaThhNR.js +0 -1
- package/dist/client/assets/MissionFocusOverlay-K21ssTxv.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-CbQm4BLv.js +0 -1
- package/dist/client/assets/MissionLogPane-BLvSSIdT.js +0 -1
- package/dist/client/assets/NewAgentModal-B7qxjZlW.js +0 -1
- package/dist/client/assets/NewChatComposer-D2Ah4T-W.js +0 -19
- package/dist/client/assets/ObserveEmbedScreen-DvKGsaLv.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-C9TOLB7u.js +0 -79
- package/dist/client/assets/OpsAgentsView-vIoY-AW1.js +0 -1
- package/dist/client/assets/OpsScreen-CJBwshEp.js +0 -1
- package/dist/client/assets/OpsSubnav-CjDTnp64.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-Br1eTD7G.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-mjxNcRvw.js +0 -1
- package/dist/client/assets/ProjectsInbox-Bq29DE_o.js +0 -2
- package/dist/client/assets/ProjectsRail-kMDA0yn4.js +0 -1
- package/dist/client/assets/ProjectsScreen-BDaJYhc0.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-B940p3vW.js +0 -1
- package/dist/client/assets/Provider-D0bB7q6y.js +0 -1
- package/dist/client/assets/RailRow-B88JVr62.js +0 -1
- package/dist/client/assets/RawSessionsTable-CzGhEdiZ.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-CyP1CWsX.js +0 -1
- package/dist/client/assets/RepoDiffViewer-Bw5yMC4A.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-DzfoFhbl.js +0 -2
- package/dist/client/assets/ScoutDeckSurface-DQoZofzH.js +0 -1
- package/dist/client/assets/SessionEmbedScreen-CpduQ0O9.js +0 -1
- package/dist/client/assets/SessionObserve-BVeTkcIl.js +0 -12
- package/dist/client/assets/SessionObserveEvidence-BkOezTGV.js +0 -1
- package/dist/client/assets/SessionRefScreen-DetLMkTT.js +0 -1
- package/dist/client/assets/SessionsScreen-B-McKw6d.js +0 -1
- package/dist/client/assets/SettingsDrawer-CPB32w0n.js +0 -3
- package/dist/client/assets/SettingsScreen-BEzYFdjz.js +0 -1
- package/dist/client/assets/SpriteAvatar-DFO4Kb4Z.js +0 -1
- package/dist/client/assets/Terminal-DWyZTZdY.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-_SSzwhWa.js +0 -1
- package/dist/client/assets/TerminalHeaderMount-CY7uIWBg.js +0 -1
- package/dist/client/assets/WorkFilesViewer-D8-4vF5l.js +0 -1
- package/dist/client/assets/agent-autocomplete-BlK8wY06.js +0 -10
- package/dist/client/assets/agent-lane-card-model-CY3OE1Xu.js +0 -1
- package/dist/client/assets/agent-lanes-model-tc-1hE6q.js +0 -2
- package/dist/client/assets/agent-master-I1W-5d-x.css +0 -1
- package/dist/client/assets/agent-master-model-DMcHeNq3.js +0 -1
- package/dist/client/assets/api-Co9aQ2Jw.js +0 -1
- package/dist/client/assets/arrow-down-BAGkhHA6.js +0 -1
- package/dist/client/assets/broker-display-Q75fupqG.js +0 -2
- package/dist/client/assets/chunk-JTPDIGGW-COJ00z94.js +0 -46
- package/dist/client/assets/chunk-T65CQEWV-H2QEKfr1.js +0 -1
- package/dist/client/assets/chunk-YOZR3KYS-CrCgXw9l.js +0 -2
- package/dist/client/assets/colors-BtO5_zlx.js +0 -1
- package/dist/client/assets/content-0RBfbCIJ.js +0 -1
- package/dist/client/assets/content-BTmnk2bl.js +0 -1
- package/dist/client/assets/content-Bk5DKhyP.js +0 -1
- package/dist/client/assets/content-Bw_8GE_S.js +0 -1
- package/dist/client/assets/content-CI4gLEWi.js +0 -1
- package/dist/client/assets/content-CLCtp9Rb.js +0 -1
- package/dist/client/assets/content-C_FAGTNk.js +0 -1
- package/dist/client/assets/content-CnnzWOE3.js +0 -1
- package/dist/client/assets/content-DKlY98pO.js +0 -1
- package/dist/client/assets/content-Df7ndXTG.js +0 -1
- package/dist/client/assets/content-DkZDzzx3.js +0 -1
- package/dist/client/assets/content-DnGmb2L0.js +0 -1
- package/dist/client/assets/content-Ds-zs-Ss.js +0 -1
- package/dist/client/assets/content-JIWSyC0f.js +0 -1
- package/dist/client/assets/content-Q3TIYC8q.js +0 -1
- package/dist/client/assets/content-evaBfvxD.js +0 -1
- package/dist/client/assets/conversation-model-C2KuZUXc.js +0 -1
- package/dist/client/assets/conversation-motion-features-BJnHs3Ul.js +0 -1
- package/dist/client/assets/discover-DutlV0ZU.js +0 -2
- package/dist/client/assets/embed-entry-CJG7WEVw.js +0 -2
- package/dist/client/assets/home-moving-signal-PHSqSBu_.js +0 -1
- package/dist/client/assets/home-now-card-C_qsI6C6.js +0 -1
- package/dist/client/assets/hooks-ME7rmhpE.js +0 -2
- package/dist/client/assets/index-C1VaWNuD.js +0 -10
- package/dist/client/assets/index-C8UCRm2W.js +0 -1
- package/dist/client/assets/index-Cn0I2Hgi.js +0 -1
- package/dist/client/assets/index-Cx6Gbr6n.js +0 -1
- package/dist/client/assets/index-i7TMxlwW.css +0 -1
- package/dist/client/assets/knowledge-search-D_bLoYtC.css +0 -1
- package/dist/client/assets/lane-ask-display-B6iCAVcd.js +0 -18
- package/dist/client/assets/lane-roster-store-DN2jxXF-.js +0 -1
- package/dist/client/assets/left-BRu9pnqx.js +0 -2
- package/dist/client/assets/left-BjS1dKNV.js +0 -2
- package/dist/client/assets/left-CL-TVLJ7.js +0 -1
- package/dist/client/assets/left-DLpsDi55.js +0 -1
- package/dist/client/assets/left-DPcM9o8Y.js +0 -1
- package/dist/client/assets/left-MmTJf1tK.js +0 -1
- package/dist/client/assets/left-P80i5V8L.js +0 -1
- package/dist/client/assets/left-advisor-CbXVzAqS.js +0 -1
- package/dist/client/assets/left-agents-7mJsiNyr.js +0 -1
- package/dist/client/assets/left-default-COK26l3H.js +0 -1
- package/dist/client/assets/left-lanes-Dbdm9Veu.js +0 -1
- package/dist/client/assets/left-mission-DSenPIyb.css +0 -1
- package/dist/client/assets/left-mission-DqGR5jby.js +0 -1
- package/dist/client/assets/library-COnWzUWv.js +0 -1
- package/dist/client/assets/mentions-BZ5SBMtc.js +0 -1
- package/dist/client/assets/mesh-buckets-CLYS8Jx8.js +0 -1
- package/dist/client/assets/mesh-view-store-CBM1za_N.js +0 -1
- package/dist/client/assets/mission-control-CnU7dNt1.css +0 -1
- package/dist/client/assets/mission-control-model-C0fByIjm.js +0 -1
- package/dist/client/assets/mission-control-store-CM8mQGg8.js +0 -1
- package/dist/client/assets/observe-BLmy4quB.js +0 -1
- package/dist/client/assets/ops-screen-giu3If_N.css +0 -1
- package/dist/client/assets/page-status-BE0-J1xY.js +0 -1
- package/dist/client/assets/paperclip-Br7wUDFl.js +0 -1
- package/dist/client/assets/perf-PX8Rx0EP.js +0 -1
- package/dist/client/assets/profile-BCvk8jOQ.js +0 -1
- package/dist/client/assets/projects-inbox-BIW7nv-H.css +0 -1
- package/dist/client/assets/resolve-panes-DhD5qmQO.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-GqhZNRPY.js +0 -1
- package/dist/client/assets/right-B_08ilv6.js +0 -1
- package/dist/client/assets/right-Brm67HOL.js +0 -1
- package/dist/client/assets/right-BveAPKBW.js +0 -1
- package/dist/client/assets/right-CpTB_-Ya.js +0 -1
- package/dist/client/assets/right-CqC4Qdot.js +0 -1
- package/dist/client/assets/right-D91j9d5Y.js +0 -1
- package/dist/client/assets/right-DaLRhYl3.js +0 -1
- package/dist/client/assets/right-Dt1wOwA5.js +0 -1
- package/dist/client/assets/right-DtzqIZQF.js +0 -1
- package/dist/client/assets/router-kfcaYqZr.js +0 -1
- package/dist/client/assets/runtime-picker-C20lTGhV.js +0 -1
- package/dist/client/assets/scout-voice-Cg1qfepC.js +0 -1
- package/dist/client/assets/secondaryNavConfig-C0Srrmy8.js +0 -1
- package/dist/client/assets/secondaryNavConfig-xssF_ubT.css +0 -1
- package/dist/client/assets/system-surfaces-redesign-kuf3wuE_.css +0 -1
- package/dist/client/assets/terminal-screen-vMICbBJh.css +0 -1
- package/dist/client/assets/use-conversation-list-UG-tMN67.js +0 -1
- package/dist/client/assets/use-scout-dev-flags-DTseRrFi.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-CoIoz7JU.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as n,r as y}from"./index-DReVb7jZ.js";import{u as L,j as _,l as F,e as T,m as E,a as b,r as C,f as $,d as P,t as R}from"./mesh-view-store-C1-mdP3P.js";import{u as B}from"./Provider-CNZluAZb.js";import{n as z}from"./agent-state-DDhnFEEP.js";import{a as H,b as O,d as U,m as q}from"./machine-children-CdhNzDF0.js";import{u as K,h as V}from"./use-fleet-active-asks-D_QOmjg5.js";import{R as I}from"./RailRow-DUPqXMZh.js";import{nodeMenuRowProps as G,NodeMenu as Q}from"./NodeMenu-CcOeFRCB.js";import{u as D,l as J,r as W}from"./use-mesh-node-state-3V3ADQ-G.js";import{o as X}from"./openAgent-Dbv5wfuL.js";/* empty css */import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./AgentAvatar-NZOqcsB2.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./CrewAvatar-zgzC3cbU.js";import"./openContent-C6XO6kr5.js";function Y({value:t,onChange:l,placeholder:a="Search…",onKeyDown:s}){return n.jsx("input",{type:"search",className:"fleet-search",placeholder:a,value:t,onChange:m=>l(m.target.value),onKeyDown:s,spellCheck:!1,autoCorrect:"off",autoCapitalize:"off"})}const Z=["needs_attention","in_turn","in_flight","callable","blocked"],ee={in_turn:"in turn",in_flight:"in flight",needs_attention:"needs attention",callable:"callable",blocked:"blocked"},te={in_turn:"working",in_flight:"working",needs_attention:"working",callable:"available",blocked:"offline"};function ne({active:t,onToggle:l}){return n.jsx("div",{className:"fleet-pills",role:"group","aria-label":"State filters",children:Z.map(a=>{const s=t.has(a);return n.jsx("button",{type:"button",className:`fleet-pill fleet-pill--${te[a]}${s?" fleet-pill--on":""}`,onClick:()=>l(a),"aria-pressed":s,children:ee[a]},a)})})}const k=10;function oe(t){return z(t.state)}function ae({bucket:t,active:l,hidden:a,anyHidden:s,positioned:m,full:c,selectedId:v,selectedType:h,activeAsks:A,onSelect:N,onFocus:w,onSelectAgent:p,onToggleFull:x}){const d=y.useRef(null),u=D(t.machineId),M=u?.view??null,g=O({machineId:t.machineId,machineLabel:t.machineLabel,nodeId:t.node?.nodeId??null,brokerUrl:t.node?.brokerUrl??M?.node?.brokerUrl??null,hidden:a,anyHidden:s,positioned:m,canCopy:typeof navigator<"u"&&!!navigator.clipboard,checking:u?.loading??!1,on:{select:e=>N(e),refresh:e=>{W(e)},focus:e=>w(e),toggleHidden:e=>R(e),showAll:()=>T(),clearPosition:e=>P(e),copy:e=>{navigator.clipboard?.writeText(e)}}}),r=U(t,M),S=c?r:r.slice(0,k),f=r.length-S.length;return n.jsxs("div",{className:"mesh-nav-machine",children:[n.jsx(I,{name:t.machineLabel,meta:q(t,M,u?.loading??!1),tone:"neutral",active:l,onClick:()=>N(t.machineId),onPointerEnter:()=>{u||J(t.machineId,{deep:!1})},title:`${t.machineLabel} — click to see what is running here`,actions:n.jsx(Q,{ref:d,machineLabel:t.machineLabel,actions:g,className:"mesh-nav-menu-btn"}),...G(d)}),S.map(e=>n.jsx(I,{name:e.name,meta:e.meta,tone:e.tone,depth:1,active:v===e.selectId&&h==="agent",unread:e.agent?V(A,e.agent.id):!1,onClick:e.agent?()=>p(e.agent):void 0,title:e.title},e.key)),!c&&f>0&&n.jsx(I,{name:`see ${f} more`,depth:1,tone:"neutral",onClick:()=>x(t.machineId),title:"Show all agents on this machine"}),c&&r.length>k&&n.jsx(I,{name:"see less",depth:1,tone:"neutral",onClick:()=>x(t.machineId),title:"Show recent agents only"})]})}function rt(){const{agents:t,navigate:l}=B(),{meshSnapshot:a,selectedId:s,selectedType:m,query:c,agentStateFilters:v,hiddenMachineIds:h,treeFullMachineIds:A,machinePositions:N}=L(),w=K(),p=y.useMemo(()=>a?H(t,a):[],[t,a]),x=y.useMemo(()=>{const e=c.trim().toLowerCase();return p.filter(o=>!h.has(o.machineId)).map(o=>{const i=o.agents.filter(j=>v.has(oe(j))?e?`${j.name??""} ${j.project??""} ${j.branch??""} ${j.harness??""}`.toLowerCase().includes(e):!0:!1);return{...o,agents:i}})},[p,c,v,h]),d=y.useMemo(()=>{const e=new Map([["this",[]],["peer",[]],["tailnet",[]]]);for(const o of x){const i=o.reachability==="this"?"this":o.reachability==="peer"?"peer":"tailnet";e.get(i)?.push(o)}return e},[x]);if(!a)return n.jsx("div",{className:"ctx-panel ctx-panel--empty",children:n.jsx("div",{className:"ctx-panel-empty-state",children:n.jsx("div",{className:"ctx-panel-empty-hint",children:"Loading mesh…"})})});const u=e=>{b(e,"node"),C(e)},M=e=>{$(e,p.map(o=>o.machineId)),b(e,"node"),C(e)},g=h.size,r=p.length,S=e=>{b(e.id,"agent");const o=e.authorityNodeId??e.homeNodeId;o&&C(o),X(l,e,{returnTo:{view:"mesh"}})},f=(e,o)=>o.length===0?null:n.jsxs("section",{className:"mesh-nav-group",children:[n.jsx("div",{className:"mesh-nav-group-label",children:e}),o.map(i=>n.jsx(ae,{bucket:i,active:s===i.machineId&&m==="node",hidden:h.has(i.machineId),anyHidden:g>0,positioned:i.machineId in N,full:A.has(i.machineId),selectedId:s,selectedType:m,activeAsks:w,onSelect:u,onFocus:M,onSelectAgent:S,onToggleFull:E},i.machineId))]},e);return n.jsxs("div",{className:"ctx-panel mesh-nav",children:[n.jsxs("div",{className:"mesh-nav-head",children:[n.jsx(Y,{value:c,onChange:_,placeholder:"Find machines or agents…"}),n.jsx(ne,{active:v,onToggle:F}),g>0&&g<r&&n.jsxs("button",{type:"button",className:"mesh-nav-focus-chip",onClick:T,title:"Show all machines",children:[n.jsxs("span",{className:"mesh-nav-focus-chip-label",children:["focused · ",r-g,"/",r]}),n.jsx("span",{className:"mesh-nav-focus-chip-clear","aria-hidden":!0,children:"×"})]})]}),n.jsxs("div",{className:"mesh-nav-tree",children:[f("this host",d.get("this")??[]),f("peers",d.get("peer")??[]),f("tailnet",d.get("tailnet")??[])]})]})}export{rt as MeshLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as m,j as t}from"./index-DReVb7jZ.js";import{u as ee,L as F}from"./usePersistentState-Y8XwSTg-.js";import{b as te,f as ae,a as ne,c as se,d as ie,s as re}from"./terminal-sessions-3RfJpen8.js";import{a as le,r as K,i as oe}from"./keyboard-nav-CJXPaHXj.js";import{u as ce}from"./Provider-CNZluAZb.js";import{c as me}from"./agent-state-DDhnFEEP.js";import{r as D,c as de}from"./terminal-relay-mO89dX-Y.js";import{t as ue,a as G,s as ve,b as j,P as pe}from"./session-table-CGkfG5Yd.js";/* empty css */import{R as he}from"./refresh-cw-IcD2lPoT.js";import{A as fe}from"./activity-BJqFrZyB.js";import{C as be}from"./clock-CQb4FeMf.js";import{F as xe}from"./folder-B_S7gBVr.js";import{L as ye}from"./layers-BOwyWodP.js";import{C as ge}from"./chevron-right-DKGTLiqc.js";import{E as B}from"./eye-CsGfEVR6.js";import{T as je}from"./terminal-DMZjX1es.js";import"./createLucideIcon-ChvMq-zl.js";import"./api-DSqpVKC7.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";const ke=[{id:"fleet",label:"Fleet",title:"Group by fleet: herdr, tmux, background"},{id:"places",label:"Places",title:"Group by project"},{id:"time",label:"Time",title:"Group by last activity"},{id:"attention",label:"Attention",title:"Group by attention state: attached, live, detached, exited"}],Ne=[{id:"herdr",label:"Herdr"},{id:"tmux-named",label:"Tmux"},{id:"tmux-auto",label:"Tmux · auto"},{id:"external",label:"Background"}],we=900*1e3,Se=1440*60*1e3,Ae=10080*60*1e3,W=[{key:"now",label:"Now",maxAgeMs:we},{key:"today",label:"Today",maxAgeMs:Se},{key:"week",label:"This week",maxAgeMs:Ae},{key:"older",label:"Older",maxAgeMs:null},{key:"unknown",label:"Unknown",maxAgeMs:null}],Ee=[{key:"attached",label:"Attached",rank:3},{key:"live",label:"Live",rank:2},{key:"detached",label:"Detached",rank:1},{key:"exited",label:"Exited",rank:0}];function Ie(n){return Ne.map(s=>({key:s.id,label:s.label,items:n.filter(o=>te(o)===s.id)})).filter(s=>s.items.length>0)}function Te(n){const s=new Map;for(const i of n){const l=s.get(i.project);l?l.push(i):s.set(i.project,[i])}const o=new Set(["backend-only","unscoped"]),r=[...s.entries()].map(([i,l])=>({key:`project:${i}`,label:i,items:l,latestActivity:Math.max(...l.map(u=>G(u)??0)),isCatchAll:o.has(i)}));return r.sort((i,l)=>i.isCatchAll!==l.isCatchAll?i.isCatchAll?1:-1:i.latestActivity!==l.latestActivity?l.latestActivity-i.latestActivity:i.label.localeCompare(l.label,void 0,{numeric:!0,sensitivity:"base"})),r.map(({key:i,label:l,items:u})=>({key:i,label:l,items:u}))}function Ce(n,s){const o=r=>{const i=G(r);if(i===null)return"unknown";const l=Math.max(0,s-i);for(const u of W)if(u.maxAgeMs!==null&&l<u.maxAgeMs)return u.key;return"older"};return W.map(r=>({key:r.key,label:r.label,items:n.filter(i=>o(i)===r.key)})).filter(r=>r.items.length>0)}function Re(n){return Ee.map(s=>({key:s.key,label:s.label,items:n.filter(o=>ue(o)===s.rank)})).filter(s=>s.items.length>0)}function Me(n,s,o=Date.now()){switch(s){case"fleet":return Ie(n);case"places":return Te(n);case"time":return Ce(n,o);case"attention":return Re(n)}}const Le=8e3,$e=[{id:"recent",label:"Recent"},{id:"name",label:"A–Z"}],_e={fleet:ye,places:xe,time:be,attention:fe};function Ft(){const{route:n,navigate:s,agents:o}=ce(),[r,i]=m.useState({state:"loading",sessions:[]}),[l,u]=m.useState("recent"),[k,P]=ee("terminal-nav-mode","fleet"),[U,V]=m.useState(!1),[q,I]=m.useState(null),[T,C]=m.useState(null),H=m.useRef(null),Y=le();m.useEffect(()=>{const e=a=>{if(a.key!=="/"||a.metaKey||a.ctrlKey||a.altKey||oe(a.target))return;const c=()=>{const d=document.querySelector("[data-terminal-find]");return d?(d.focus(),d.select(),!0):!1};if(c()){a.preventDefault();return}a.preventDefault(),s({view:"terminal"}),requestAnimationFrame(()=>{c()||requestAnimationFrame(c)})};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[s]);const h=m.useCallback((e={})=>{e.silent||i(a=>({state:"loading",sessions:a.sessions})),ae({includeDiscovered:!0}).then(a=>{i({state:"ready",sessions:a})}).catch(a=>{e.silent||i(c=>({state:"failed",sessions:c.sessions,error:a instanceof Error?a.message:String(a)}))})},[]);m.useEffect(()=>{h()},[h]),m.useEffect(()=>{const e=()=>{document.visibilityState==="visible"&&h({silent:!0})},a=window.setInterval(e,Le);return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),()=>{window.clearInterval(a),window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[h]);const b=m.useMemo(()=>ne(r.sessions),[r.sessions]),f=m.useMemo(()=>ve(se(b),l==="recent"?{column:"activity",direction:"desc"}:{column:"name",direction:"asc"}),[l,b]),R=m.useMemo(()=>Oe(o,l).filter(e=>{const a=D(e);return a?!b.some(c=>c.surface.backend===a.backend&&c.surface.sessionName===a.sessionName&&(a.paneId==null||c.surface.paneId===a.paneId)):!0}),[o,b,l]),x=f.filter(e=>j(e)==="current"),Z=Me(x,k),y=f.filter(e=>j(e)==="inactive"),v=f.filter(e=>j(e)==="review"),M=y.length+v.length,L=v.length,g=U,p=R,J=n.view==="terminal"?n.terminalSurfaceKey??null:null,$=n.view==="terminal"?n.terminalSessionId??null:null,N=e=>ie(e.key,J)&&(!$||e.session.id===$),w=n.view==="terminal"&&n.agentId?`agent:${n.agentId}`:null,_=!!(x.some(N)||g&&[...y,...v].some(N)||w!=null&&p.some(e=>`agent:${e.id}`===w)),O=x[0]?.id??(g?y[0]?.id??v[0]?.id:void 0)??(p[0]?`agent:${p[0].id}`:void 0),Q=r.state==="loading"?"Syncing":`${f.length+R.length} targets`,S=(e,a)=>({view:"terminal",terminalSessionId:e.session.id,terminalSurfaceKey:re(e.surface),...a?{mode:a}:{}}),A=(e,a="takeover")=>({view:"terminal",agentId:e.id,mode:a}),X=async e=>{if(e.surface.backend==="tmux"&&window.confirm(`Release inactive terminal ${e.surface.sessionName}? The tmux surface will stop, but any associated Scout agent remains available and can be started again.`)){I(e.id),C(null);try{await de({backend:"tmux",sessionName:e.surface.sessionName,paneId:e.surface.paneId??null,socketDir:e.surface.socketDir??null},"release"),h({silent:!0})}catch(a){C(a instanceof Error?a.message:String(a))}finally{I(null)}}},E=e=>{const a=N(e),c=j(e),d=q===e.id;return t.jsxs("div",{className:`terminal-nav-row${a?" terminal-nav-row--active":""}${c==="review"?" terminal-nav-row--review":""}`,title:e.surface.sessionName,children:[t.jsxs("button",{type:"button","data-list-primary":!0,className:"terminal-nav-row-select",tabIndex:K(a,_,e.id===O),onClick:()=>s(S(e)),children:[t.jsx(je,{className:"terminal-nav-row-icon",size:14,strokeWidth:1.7}),t.jsxs("span",{className:"terminal-nav-row-main",children:[t.jsx("span",{className:"terminal-nav-row-title",children:t.jsx("span",{children:e.title})}),t.jsx("span",{className:"terminal-nav-row-detail",children:e.detail||e.session.sourceSessionId})]}),t.jsxs("span",{className:"terminal-nav-badges",children:[t.jsx("span",{className:"terminal-nav-badge terminal-nav-badge--backend",children:e.surface.backend}),t.jsx("span",{className:`terminal-nav-badge${c==="review"?" terminal-nav-badge--review":""}`,children:c==="current"?e.condition:c})]})]}),t.jsxs("div",{className:"terminal-nav-row-actions",children:[t.jsxs("button",{type:"button",className:`terminal-nav-action${n.view==="terminal"&&a&&n.mode==="takeover"?" terminal-nav-action--selected":""}`,onClick:()=>s(S(e,"takeover")),title:"Enter this terminal","aria-label":"Enter this terminal",children:[t.jsx(F,{size:12,strokeWidth:1.8}),t.jsx("span",{children:"Enter"})]}),t.jsxs("button",{type:"button",className:`terminal-nav-action${n.view==="terminal"&&a&&n.mode==="observe"?" terminal-nav-action--selected":""}`,onClick:()=>s(S(e,"observe")),title:"Observe this terminal read-only","aria-label":"Observe this terminal read-only",children:[t.jsx(B,{size:12,strokeWidth:1.8}),t.jsx("span",{children:"Observe"})]}),c==="review"&&e.surface.backend==="tmux"&&t.jsxs("button",{type:"button",className:"terminal-nav-action terminal-nav-action--release",onClick:()=>{X(e)},disabled:d,title:"Release this inactive tmux surface; keep the agent","aria-label":"Release this inactive tmux surface; keep the agent",children:[t.jsx(pe,{size:12,strokeWidth:1.8}),t.jsx("span",{children:d?"Releasing":"Release"})]})]})]},e.id)};return t.jsxs("div",{className:"ctx-panel terminal-nav",children:[t.jsxs("div",{className:"terminal-nav-head",children:[t.jsxs("div",{children:[t.jsx("div",{className:"terminal-nav-title",children:"Terminals"}),t.jsx("div",{className:"terminal-nav-summary",children:Q})]}),t.jsx("button",{type:"button",className:"terminal-nav-refresh",onClick:()=>h(),disabled:r.state==="loading",title:"Refresh terminals","aria-label":"Refresh terminals",children:t.jsx(he,{size:14,strokeWidth:1.8})})]}),t.jsx("div",{className:"terminal-nav-modes",role:"group","aria-label":"Group terminals",children:ke.map(e=>{const a=_e[e.id];return t.jsx("button",{type:"button",title:e.title,"aria-label":e.title,"aria-pressed":k===e.id,className:`terminal-nav-mode${k===e.id?" terminal-nav-mode--active":""}`,onClick:()=>P(e.id),children:t.jsx(a,{size:13,strokeWidth:1.8})},e.id)})}),t.jsx("div",{className:"ctx-panel-toolbar terminal-nav-toolbar",children:t.jsx("div",{className:"ctx-panel-sort",role:"group","aria-label":"Sort terminals",children:$e.map(e=>t.jsx("button",{type:"button",title:e.id==="recent"?"Sort by most recent":"Sort alphabetically","aria-pressed":l===e.id,className:`ctx-panel-sort-option${l===e.id?" ctx-panel-sort-option--active":""}`,onClick:()=>u(e.id),children:e.label},e.id))})}),r.state==="failed"&&t.jsx("div",{className:"terminal-nav-error",children:r.error}),T&&t.jsx("div",{className:"terminal-nav-error",children:T}),t.jsx("div",{ref:H,className:"terminal-nav-list",onKeyDown:Y,children:f.length===0&&p.length===0&&r.state!=="loading"?t.jsx("div",{className:"ctx-panel-empty",children:"No terminal targets"}):t.jsxs(t.Fragment,{children:[Z.map(e=>e.items.length===0?null:t.jsxs("div",{className:"terminal-nav-section",children:[t.jsxs("div",{className:"terminal-nav-section-title",children:[t.jsx("span",{children:e.label}),t.jsx("span",{children:e.items.length})]}),e.items.map(a=>E(a))]},e.key)),x.length===0&&r.state!=="loading"&&t.jsx("div",{className:"terminal-nav-empty",children:"No sessions"}),M>0&&t.jsxs("div",{className:"terminal-nav-section terminal-nav-section--inactive",children:[t.jsxs("button",{type:"button",className:"terminal-nav-inactive-toggle","aria-expanded":g,onClick:()=>V(e=>!e),children:[t.jsx(ge,{size:13,strokeWidth:1.8}),t.jsx("span",{children:"Inactive"}),t.jsx("span",{children:M}),L>0&&t.jsxs("span",{className:"terminal-nav-review-count",children:[L," review"]})]}),g&&t.jsxs(t.Fragment,{children:[y.map(e=>E(e)),v.length>0&&t.jsxs("div",{className:"terminal-nav-section-title terminal-nav-section-title--review",children:[t.jsx("span",{children:"Review after 30 days"}),t.jsx("span",{children:v.length})]}),v.map(e=>E(e))]})]}),t.jsxs("div",{className:"terminal-nav-section",children:[t.jsxs("div",{className:"terminal-nav-section-title",children:[t.jsx("span",{children:"Available agents"}),t.jsx("span",{children:p.length})]}),p.map(e=>{const a=`agent:${e.id}`,c=a===w,d=D(e);return t.jsxs("div",{className:`terminal-nav-row terminal-nav-row--agent${c?" terminal-nav-row--active":""}`,title:e.name,children:[t.jsxs("button",{type:"button","data-list-primary":!0,className:"terminal-nav-row-select",tabIndex:K(c,_,a===O),onClick:()=>s(A(e)),children:[t.jsx("span",{className:`terminal-nav-agent-dot${d?" terminal-nav-agent-dot--bound":""}`,"aria-hidden":!0}),t.jsxs("span",{className:"terminal-nav-row-main",children:[t.jsx("span",{className:"terminal-nav-row-title",children:t.jsx("span",{children:e.name})}),t.jsx("span",{className:"terminal-nav-row-detail",children:Fe(e)})]}),t.jsxs("span",{className:"terminal-nav-badges",children:[t.jsx("span",{className:"terminal-nav-badge terminal-nav-badge--backend",children:d?.backend??e.harness??"agent"}),t.jsx("span",{className:"terminal-nav-badge",children:d?"bound":me(e.state)})]})]}),t.jsxs("div",{className:"terminal-nav-row-actions",children:[t.jsxs("button",{type:"button",className:`terminal-nav-action${n.view==="terminal"&&c&&n.mode==="takeover"?" terminal-nav-action--selected":""}`,onClick:()=>s(A(e,"takeover")),title:"Enter this agent terminal","aria-label":"Enter this agent terminal",children:[t.jsx(F,{size:12,strokeWidth:1.8}),t.jsx("span",{children:"Enter"})]}),d&&t.jsxs("button",{type:"button",className:`terminal-nav-action${n.view==="terminal"&&c&&n.mode==="observe"?" terminal-nav-action--selected":""}`,onClick:()=>s(A(e,"observe")),title:"Observe this agent terminal read-only","aria-label":"Observe this agent terminal read-only",children:[t.jsx(B,{size:12,strokeWidth:1.8}),t.jsx("span",{children:"Observe"})]})]})]},e.id)}),p.length===0&&t.jsx("div",{className:"terminal-nav-empty",children:"No agents"})]})]})})]})}function Oe(n,s){return[...n].filter(o=>!o.retiredFromFleet&&!o.staleLocalRegistration).sort((o,r)=>{const i=o.name.localeCompare(r.name,void 0,{numeric:!0,sensitivity:"base"});return s==="name"?i||o.id.localeCompare(r.id):(r.updatedAt??0)-(o.updatedAt??0)||i||o.id.localeCompare(r.id)})}function Fe(n){const s=n.project??z(n.cwd)??z(n.projectRoot)??n.definitionId;return[n.handle?`@${n.handle}`:null,n.harness,s,n.branch].filter(Boolean).join(" · ")}function z(n){const s=n?.trim().replace(/\/+$/u,"");return s?s.split("/").pop()||s:null}export{Ft as TerminalLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as N,j as e}from"./index-DReVb7jZ.js";import{a as I}from"./api-DSqpVKC7.js";import{d as L,e as j,s as R}from"./router-C-MF5-mb.js";import{u as $,r as y,s as b,i as C}from"./mesh-ops-DSlvHp-D.js";import{u as E,s as T}from"./mesh-view-store-C1-mdP3P.js";import{u as A}from"./Provider-CNZluAZb.js";import{R as h}from"./RailRow-DUPqXMZh.js";import{u as U}from"./use-mesh-ops-items-DI9GKWlF.js";/* empty css */import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./provider-DwmCoSlc.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./AgentAvatar-NZOqcsB2.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./CrewAvatar-zgzC3cbU.js";function S(s){return s.hostName?.split(".")[0]??s.name??s.id.slice(0,12)}function Tt(){const{route:s,navigate:u}=A(),l=L(s),{items:i,unattributedOnly:m,lab:M,refreshToken:g}=$(),{meshSnapshot:r}=E();U(l);const[w]=N.useState(()=>y());N.useEffect(()=>{let t=!1;return I("/api/mesh").then(o=>{t||T(o)}).catch(()=>{}),()=>{t=!0}},[g]);const c=t=>{b(!1),u(t?R(s,t):j(s))},O=()=>{u(j(s)),b(!0)},p=r?.localNode??null,d=r?Object.values(r.nodes).filter(t=>t.id!==p?.id):[],a=t=>M.lastLook?t.filter(o=>C(o,w)).length:0,x=i.filter(t=>t.hostNodeId===null),f=t=>{const o=i.filter(k=>k.hostNodeId===t.id),n=a(o),v=l===t.id;return e.jsx(h,{name:S(t),meta:o.length>0?`${n>0?`${n}·`:""}${o.length}`:"—",tone:n>0?"needs_attention":"neutral",active:v,unread:n>0,onClick:()=>c(v?null:t.id),title:`Scope the list to ${S(t)}`},t.id)};return e.jsxs("div",{className:"ctx-panel mesh-ops-rail",children:[e.jsxs("div",{className:"ctx-panel-section",children:[e.jsx("div",{className:"ctx-panel-section-label",children:"Mesh"}),e.jsx(h,{name:"everywhere",meta:`${a(i)>0?`${a(i)}·`:""}${i.length}`,tone:a(i)>0?"needs_attention":"neutral",active:l===null&&!m,onClick:()=>c(null),title:"Show items across all hosts"})]}),p&&e.jsxs("div",{className:"ctx-panel-section",children:[e.jsx("div",{className:"ctx-panel-section-label",children:"This host"}),f(p)]}),d.length>0&&e.jsxs("div",{className:"ctx-panel-section",children:[e.jsx("div",{className:"ctx-panel-section-label",children:"Peers"}),d.map(t=>f(t))]}),e.jsxs("div",{className:"ctx-panel-section",children:[e.jsx("div",{className:"ctx-panel-section-label",children:"No venue"}),e.jsx(h,{name:"unattributed",meta:x.length>0?String(x.length):"—",tone:"neutral",active:m,onClick:()=>m?c(null):O(),title:"Items with no venue host"})]}),!r&&e.jsx("div",{className:"ctx-panel-empty",children:"Loading mesh…"})]})}export{Tt as MeshOpsLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as r}from"./index-DReVb7jZ.js";import{u as o}from"./Provider-CNZluAZb.js";import{OpsAgentsLeft as i}from"./left-agents-thnBO156.js";import{OpsDefaultLeft as m}from"./left-default-CT42fnpF.js";import{OpsLanesLeft as p}from"./left-lanes-CSmZgciK.js";import{OpsMissionLeft as s}from"./left-mission-C86x6i9h.js";import{OpsAdvisorLeft as e}from"./left-advisor-C-kt8V28.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";/* empty css */import"./use-fleet-active-asks-D_QOmjg5.js";import"./RailRow-DUPqXMZh.js";import"./AgentAvatar-NZOqcsB2.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./CrewAvatar-zgzC3cbU.js";import"./operator-attention-DBaRg5ep.js";import"./openContent-C6XO6kr5.js";import"./agent-lanes-model-DMAdqCmK.js";import"./lane-ask-display-BTVSakyo.js";import"./context-budget-8qFKqM-j.js";import"./lane-observe-CteDwdD-.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./lane-roster-store-Ch9t6lb0.js";import"./mission-control-store-p_cboAm4.js";import"./MissionLeftAgentRow-Dms0DBjO.js";import"./page-status-DwFR4wSw.js";import"./server-DBlPW0Mp.js";import"./layers-BOwyWodP.js";import"./sparkles-Cc5lPZRv.js";import"./activity-BJqFrZyB.js";import"./cpu-Q6nrHFTN.js";import"./gauge-DQCGlE3o.js";import"./terminal-DMZjX1es.js";function Rr(){const{route:t}=o();if(t.view!=="ops")return null;switch(t.mode){case"mission":return r.jsx(s,{});case"agents":return r.jsx(i,{});case"advisor":return r.jsx(e,{});case"lanes":case"world":return r.jsx(p,{});default:return r.jsx(m,{})}}export{Rr as OpsLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as i,j as s}from"./index-DReVb7jZ.js";/* empty css */import{a as c}from"./api-DSqpVKC7.js";import{u as h}from"./sse-A8AyLH0g.js";import{u as v}from"./Provider-CNZluAZb.js";import{S as u}from"./server-DBlPW0Mp.js";import{L as j}from"./layers-BOwyWodP.js";import{S as b}from"./sparkles-Cc5lPZRv.js";import{A as N}from"./activity-BJqFrZyB.js";import{C as f}from"./cpu-Q6nrHFTN.js";import{G as g,D as k}from"./gauge-DQCGlE3o.js";import{T as y}from"./terminal-DMZjX1es.js";import"./index-BWHgHrtv.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";function ks(){const{agents:l,navigate:t}=v(),[m,p]=i.useState(null),[r,x]=i.useState([]),a=i.useCallback(async()=>{const[e,o]=await Promise.allSettled([c("/api/tail/discover"),c("/api/service-budgets")]);e.status==="fulfilled"&&p(e.value),o.status==="fulfilled"&&o.value?.gauges&&x(o.value.gauges)},[]);i.useEffect(()=>{a()},[a]),h(()=>{a()});const d=m?.processes??[],n=r.length>0?Math.round(Math.max(...r.map(e=>e.fill??0))*100):100;return s.jsxs("div",{className:"s-advisor-left-nav",children:[s.jsxs("div",{className:"s-ctx-panel-section",children:[s.jsxs("div",{className:"s-ctx-panel-head",children:[s.jsx(u,{size:14,className:"s-ctx-icon"}),s.jsx("span",{className:"label-xs",children:"HOST TELEMETRY"})]}),s.jsxs("div",{className:"s-ctx-stat-list",children:[s.jsxs("div",{className:"s-ctx-stat-item",children:[s.jsx("span",{className:"label-xs s-ctx-stat-label",children:"Agents Connected"}),s.jsx("span",{className:"chip chip--sm chip--mono",children:l.length})]}),s.jsxs("div",{className:"s-ctx-stat-item",children:[s.jsx("span",{className:"label-xs s-ctx-stat-label",children:"Active Processes"}),s.jsx("span",{className:"chip chip--sm chip--working chip--mono",children:d.length})]}),s.jsxs("div",{className:"s-ctx-stat-item",children:[s.jsx("span",{className:"label-xs s-ctx-stat-label",children:"Peak Quota"}),s.jsxs("span",{className:`chip chip--sm chip--mono ${n>80?"chip--warning":"chip--working"}`,children:[n,"%"]})]})]})]}),s.jsxs("div",{className:"s-ctx-panel-section",children:[s.jsxs("div",{className:"s-ctx-panel-head",children:[s.jsx(j,{size:14,className:"s-ctx-icon"}),s.jsx("span",{className:"label-xs",children:"OPERATIONS SURFACES"})]}),s.jsxs("div",{className:"s-ctx-nav-list",children:[s.jsxs("button",{type:"button",className:"s-ctx-nav-btn s-ctx-nav-btn--active",onClick:()=>t({view:"ops",mode:"advisor"}),children:[s.jsx(b,{size:13}),s.jsx("span",{children:"Host Advisor"})]}),s.jsxs("button",{type:"button",className:"s-ctx-nav-btn",onClick:()=>t({view:"ops",mode:"mission"}),children:[s.jsx(N,{size:13}),s.jsx("span",{children:"Mission Control"})]}),s.jsxs("button",{type:"button",className:"s-ctx-nav-btn",onClick:()=>t({view:"ops",mode:"lanes"}),children:[s.jsx(f,{size:13}),s.jsx("span",{children:"Agent Lanes"})]}),s.jsxs("button",{type:"button",className:"s-ctx-nav-btn",onClick:()=>t({view:"harnesses"}),children:[s.jsx(g,{size:13}),s.jsx("span",{children:"Agent Providers & Quotas"})]}),s.jsxs("button",{type:"button",className:"s-ctx-nav-btn",onClick:()=>t({view:"terminal"}),children:[s.jsx(y,{size:13}),s.jsx("span",{children:"Terminal Relays"})]}),s.jsxs("button",{type:"button",className:"s-ctx-nav-btn",onClick:()=>t({view:"search"}),children:[s.jsx(k,{size:13}),s.jsx("span",{children:"Knowledge Indexer"})]})]})]})]})}export{ks as OpsAdvisorLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,j as o}from"./index-DReVb7jZ.js";/* empty css */import{a as j}from"./api-DSqpVKC7.js";import{a as v}from"./sse-A8AyLH0g.js";import{u as N}from"./Provider-CNZluAZb.js";import{u as g}from"./use-fleet-active-asks-D_QOmjg5.js";import{i as w}from"./agent-state-DDhnFEEP.js";import{R as a}from"./RailRow-DUPqXMZh.js";import"./index-BWHgHrtv.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./AgentAvatar-NZOqcsB2.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./CrewAvatar-zgzC3cbU.js";const $=new Set(["message.posted","conversation.upserted","agent.updated"]);function k(e){const n=x(e.cwd),m=x(e.projectRoot);return e.authorityNodeName??e.homeNodeName??e.authorityNodeId??e.homeNodeId??e.transport??n??m??"local"}function R(e){return e.project??e.role??e.agentClass??"Unassigned"}function x(e){if(!e)return null;const n=e.split("/").filter(Boolean);return n[n.length-1]??null}function gt(){const{agents:e,navigate:n}=N(),[m,f]=r.useState([]),p=g(),c=r.useCallback(async()=>{const t=await j("/api/conversations").catch(()=>[]);f(t)},[]);r.useEffect(()=>{c()},[c]),v(t=>$.has(t.kind),()=>{c()});const h=r.useMemo(()=>e.filter(t=>w(t.state)).length,[e]),l=r.useMemo(()=>{let t=0;for(const s of p.asks)(s.status==="failed"||s.status==="needs_attention")&&(t+=1);return t},[p]),u=r.useMemo(()=>{const t=new Map;for(const s of e){const i=R(s);t.set(i,(t.get(i)??0)+1)}return[...t.entries()].sort((s,i)=>i[1]-s[1]).slice(0,8)},[e]),d=r.useMemo(()=>{const t=new Map;for(const s of e){const i=k(s);t.set(i,(t.get(i)??0)+1)}return[...t.entries()].sort((s,i)=>i[1]-s[1]).slice(0,8)},[e]);return o.jsxs("div",{className:"ctx-panel",children:[o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Agents"}),o.jsx(a,{name:"Overview",meta:`${e.length}`,tone:"neutral",onClick:()=>n({view:"inbox"})}),o.jsx(a,{name:"Agents",meta:`${h}`,tone:"callable",active:!0,onClick:()=>n({view:"ops",mode:"agents"})}),o.jsx(a,{name:"Sessions",meta:`${m.length}`,tone:"neutral",onClick:()=>n({view:"sessions"})}),o.jsx(a,{name:"Alerts",meta:`${l}`,tone:l>0?"in_turn":"neutral",unread:l>0,onClick:()=>n({view:"activity"})})]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Projects"}),u.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No projects"}):u.map(([t,s])=>o.jsx(a,{name:t,meta:`${s}`,tone:"neutral",title:`${s} agent${s===1?"":"s"} on ${t}`},t))]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Machines"}),d.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No machines"}):d.map(([t,s])=>o.jsx(a,{name:t,meta:`${s}`,tone:"neutral",title:`${s} agent${s===1?"":"s"} on ${t}`},t))]})]})}export{gt as OpsAgentsLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as s,j as o}from"./index-DReVb7jZ.js";/* empty css */import{a as h}from"./api-DSqpVKC7.js";import{n as f}from"./agent-state-DDhnFEEP.js";import{r as g,a as j}from"./operator-attention-DBaRg5ep.js";import{u as N}from"./sse-A8AyLH0g.js";import{t as c}from"./time-Dhsh_2EG.js";import{u as w}from"./Provider-CNZluAZb.js";import{o as l}from"./openContent-C6XO6kr5.js";import{R as m}from"./RailRow-DUPqXMZh.js";import"./index-BWHgHrtv.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./AgentAvatar-NZOqcsB2.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./CrewAvatar-zgzC3cbU.js";const A=[{name:"Control",route:{view:"ops",mode:"mission"},active:e=>e.view==="ops"&&(e.mode===void 0||e.mode==="mission")},{name:"Dispatch",route:{view:"broker"},active:e=>e.view==="broker"},{name:"Network",route:{view:"mesh"},active:e=>e.view==="mesh"},{name:"Tail",route:{view:"ops",mode:"tail"},active:e=>e.view==="ops"&&e.mode==="tail"},{name:"Runtime",route:{view:"ops",mode:"atop"},active:e=>e.view==="ops"&&e.mode==="atop"}];function jt(){const{navigate:e,route:n}=w(),[p,d]=s.useState(null),r=s.useCallback(async()=>{const t=await h("/api/fleet").catch(()=>null);d(t)},[]);s.useEffect(()=>{r()},[r]),N(t=>{(t.kind==="message.posted"||t.kind==="flight.updated"||t.kind==="collaboration.event.appended")&&r()});const i=p?.needsAttention??[],a=(p?.activeAsks??[]).filter(t=>t.status!=="needs_attention"),u=t=>{l(e,g(t),{returnTo:n})},v=t=>{l(e,j(t),{returnTo:n})};return o.jsxs("div",{className:"ctx-panel ctx-panel--ops",children:[o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Surfaces"}),A.map(t=>o.jsx(m,{name:t.name,tone:"neutral",active:t.active(n),onClick:()=>e(t.route)},t.name))]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsxs("div",{className:"ctx-panel-section-label",children:["Needs you",i.length>0&&o.jsx("span",{className:"ctx-panel-count",children:i.length})]}),i.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"All clear"}):i.slice(0,4).map(t=>{const x=t.agentName??t.agentId??"operator";return o.jsx(m,{name:t.title,meta:c(t.updatedAt),tone:"in_turn",unread:!0,title:`${x} · ${t.kind}`,onClick:()=>u(t)},t.recordId)})]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsxs("div",{className:"ctx-panel-section-label",children:["Active",a.length>0&&o.jsx("span",{className:"ctx-panel-count",children:a.length})]}),a.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No active requests"}):a.slice(0,10).map(t=>o.jsx(m,{name:t.task,meta:c(t.updatedAt),tone:f(t.agentState),title:`${t.agentName??t.agentId} · ${t.statusLabel}`,onClick:()=>v(t)},t.invocationId))]})]})}export{jt as OpsDefaultLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as f,j as t}from"./index-DReVb7jZ.js";/* empty css */import{t as x}from"./time-Dhsh_2EG.js";import{u as g}from"./Provider-CNZluAZb.js";import{R as b}from"./RailRow-DUPqXMZh.js";import{H as h}from"./HarnessMark-DSvM_H7H.js";import{n as j}from"./agent-state-DDhnFEEP.js";import{b as v,c as L,l as m,d as _}from"./agent-lanes-model-DMAdqCmK.js";import{u as N,b as A,g as p}from"./lane-roster-store-Ch9t6lb0.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./AgentAvatar-NZOqcsB2.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./CrewAvatar-zgzC3cbU.js";import"./lane-ask-display-BTVSakyo.js";import"./context-budget-8qFKqM-j.js";import"./lane-observe-CteDwdD-.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";function c(s,e,i){const r=`[data-lane-id="${s.replace(/["\\]/g,"\\$&")}"]`,a=typeof document<"u"?document.querySelector(r):null;if(a){a.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"}),a.focus();return}e&&i({view:"agents-v2",agentId:e,tab:"profile"})}function R(s){return s.filter(e=>!v(e)&&L(e)).sort((e,i)=>{const r=(i.updatedAt??0)-(e.updatedAt??0);return r!==0?r:m(e,"scout").localeCompare(m(i,"scout"))}).map(e=>({id:e.id,label:m(e,"scout"),statusLabel:_(e,"scout"),tone:j(e.state,e),agentId:e.id,updatedAt:e.updatedAt??void 0}))}function wo(){const{agents:s,navigate:e}=g(),i=N(),r=A(),a=f.useMemo(()=>R(s),[s]),l=i??a,d=l.some(o=>o.floor);return t.jsx("div",{className:"ctx-panel ctx-panel--ops",children:t.jsxs("section",{className:"ctx-panel-section",children:[t.jsxs("div",{className:"ctx-panel-section-label",children:[d?"Fleet":"Lanes",l.length>0&&t.jsx("span",{className:"ctx-panel-count",children:l.length})]}),l.length===0?t.jsx("div",{className:"ctx-panel-empty",children:"No active lanes"}):l.map(o=>o.floor?t.jsxs("button",{type:"button",className:`agent-floor__ledger-row is-rail${r===o.id?" is-focus":""}`,onClick:()=>{const n=p();n?n.onSelect(o.id):c(o.id,o.agentId,e)},onPointerEnter:()=>p()?.onHover(o.id),onPointerLeave:()=>p()?.onHover(null),children:[t.jsxs("span",{className:"agent-floor__ledger-id",children:[t.jsx(h,{harness:o.floor.harness,size:15,title:null}),t.jsxs("span",{className:"agent-floor__ledger-lines",children:[t.jsx("span",{className:"agent-floor__ledger-name",children:o.floor.identity}),o.floor.project?t.jsx("span",{className:"agent-floor__ledger-where",children:o.floor.project}):null]}),t.jsx("span",{className:`agent-floor__card-dot${o.floor.live?" is-live":""}`})]}),t.jsx("span",{className:"agent-floor__ledger-strip",children:o.floor.strip.slice(-6).map((n,u)=>t.jsx("span",{className:`agent-floor__ledger-cell is-${n}`},u))})]},o.id):t.jsx(b,{name:o.label,sub:o.statusLabel||void 0,meta:o.updatedAt?x(o.updatedAt):void 0,tone:o.tone,title:o.statusLabel,onClick:()=>c(o.id,o.agentId,e)},o.id))]})})}export{wo as OpsLanesLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,j as s}from"./index-DReVb7jZ.js";/* empty css */import{n as S}from"./agent-state-DDhnFEEP.js";import{u as M,m as I,s as w,a as u,M as k,b as A,c as C,d as E,r as F,t as R}from"./mission-control-store-p_cboAm4.js";import{u as T}from"./Provider-CNZluAZb.js";import{a as K,b as q,r as L,m as B}from"./keyboard-nav-CJXPaHXj.js";import{MissionLeftAgentRow as D}from"./MissionLeftAgentRow-Dms0DBjO.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./createLucideIcon-ChvMq-zl.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./page-status-DwFR4wSw.js";import"./RailRow-DUPqXMZh.js";import"./AgentAvatar-NZOqcsB2.js";import"./SpriteAvatar-aHeF4ZQZ.js";import"./CrewAvatar-zgzC3cbU.js";function Le(){const{navigate:a}=T(),i=M(),l=i.visibleAgents,m=r.useRef(null),p=r.useRef(null),h=K(),x=B(()=>m.current);q(r.useCallback(()=>p.current,[]));const[d,v]=r.useState(null),j=I(i),c=i.selectedIds.length,b=e=>{v(t=>t===e?null:e)},N=()=>{if(c===0)return;const t=l.filter(o=>i.selectedIds.includes(o.id)).map(o=>o.handle??o.name).filter(Boolean).join("|");t&&a({view:"ops",mode:"tail",tailQuery:t})};return s.jsxs("div",{className:"ctx-panel ml-panel",children:[s.jsxs("div",{className:"ml-section",children:[s.jsx("div",{className:"ml-section-label",children:"Source"}),s.jsx("div",{className:"ml-chips ml-chips--primary",children:["all","scout","native"].map(e=>s.jsx("button",{type:"button",className:["ml-chip",i.sourceFilter===e&&"ml-chip--active"].filter(Boolean).join(" "),onClick:()=>w(e),children:e==="all"?"All":e==="scout"?"Scout":"Native"},e))})]}),s.jsx("div",{className:"ctx-panel-search",children:s.jsx("input",{ref:p,type:"text",className:"ctx-panel-search-input",placeholder:"Filter agents… (press /)",value:i.query,onChange:e=>u(e.target.value),onKeyDown:e=>{x(e),e.key==="Escape"&&i.query&&u("")}})}),s.jsx("div",{className:"ml-section ml-section--secondary",children:s.jsxs("div",{className:"ml-chips ml-chips--secondary",role:"group","aria-label":"Show logs active within",children:[s.jsx("span",{className:"ml-section-label ml-section-label--inline",children:"Within"}),k.map(e=>{const t=j===e.id;return s.jsx("button",{type:"button",className:["ml-chip ml-chip--ghost",t&&"ml-chip--ghost-active"].filter(Boolean).join(" "),"aria-pressed":t,onClick:()=>A(e.id),children:e.label},e.id)})]})}),s.jsxs("div",{className:"ml-section ml-section--grouping",children:[s.jsx("div",{className:"ml-section-label",children:"Order by"}),s.jsx("div",{className:"ml-chips ml-chips--grouping",children:[["activity","Activity"],["workspace","Project"],["harness","Harness"],["state","Status"],["source","Source"]].map(([e,t])=>s.jsx("button",{type:"button",className:["ml-chip","ml-chip--group",i.groupMode===e&&"ml-chip--group-active"].filter(Boolean).join(" "),"aria-pressed":i.groupMode===e,onClick:()=>C(e),children:t},e))})]}),c>0?s.jsxs("div",{className:"ml-selection",children:[s.jsxs("span",{className:"ml-selection-label",children:[c," selected"]}),s.jsxs("div",{className:"ml-selection-actions",children:[s.jsx("button",{type:"button",className:"ml-selection-btn ml-selection-btn--primary",onClick:N,children:"Tail ↗"}),s.jsx("button",{type:"button",className:"ml-selection-btn",onClick:E,children:"Clear"})]})]}):s.jsxs("div",{className:"ml-count",children:[l.length," visible",s.jsx("span",{className:"ml-count-hint",children:"⌘-click · ⌘A all"})]}),s.jsx("div",{ref:m,className:"ctx-panel-list ctx-panel-list--scroll",onKeyDown:h,children:l.length===0?s.jsx("div",{className:"ctx-panel-empty",children:i.query?"No match":"Nothing visible"}):l.map((e,t)=>{const o=e.id===d,y=l.some(n=>n.id===d),g=i.selectedIds.includes(e.id),f=S(e.state);return s.jsx(D,{agent:e,state:f,isExpanded:o,isSelected:g,tabIndex:L(o,y,t===0),onToggle:n=>{n.metaKey||n.ctrlKey||n.shiftKey?R(e.id):b(e.id)},onReveal:()=>F(e.id),onOpen:()=>a({view:"agents-v2",agentId:e.id})},e.id)})})]})}export{Le as OpsMissionLeft};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ml-panel{display:flex;flex-direction:column;min-height:0}.ml-section{padding:var(--space-lg) var(--space-lg) var(--space-xs)}.ml-section--secondary{padding-top:var(--space-2xs);border-top:1px dashed color-mix(in srgb,var(--ink) 8%,transparent)}.ml-section--grouping{padding-top:var(--space-sm);padding-bottom:var(--space-sm);border-top:1px dashed color-mix(in srgb,var(--ink) 8%,transparent)}.ml-section-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim);margin-bottom:var(--space-xs)}.ml-chips{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.ml-chips--primary .ml-chip{flex:1 1 0;min-width:0;padding:var(--space-xs) var(--space-md);background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-sm);cursor:pointer;text-align:center;border-radius:var(--radius-xs);transition:background .12s,border-color .12s}.ml-chips--primary .ml-chip:hover{border-color:color-mix(in srgb,var(--accent) 28%,transparent)}.ml-chips--primary .ml-chip--active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.ml-chips--secondary{align-items:center;gap:var(--space-3xs)}.ml-chip--ghost{padding:var(--space-2xs) var(--space-sm);background:transparent;border:0;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-lg);text-transform:uppercase;cursor:pointer;border-radius:var(--radius-xs);transition:color .12s,background .12s}.ml-chip--ghost:hover{color:var(--ink)}.ml-chip--ghost-active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.ml-section-label--inline{margin:0 var(--space-2xs) 0 0}.ml-chips--grouping{gap:var(--space-3xs)}.ml-chip--group{flex:1 1 calc(33.333% - var(--space-3xs));min-width:58px;padding:var(--space-2xs) var(--space-xs);background:color-mix(in srgb,var(--surface) 55%,transparent);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-xs);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;cursor:pointer;transition:color .12s,background .12s,border-color .12s}.ml-chip--group:hover{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 28%,transparent)}.ml-chip--group-active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 32%,transparent)}.ml-count{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) var(--space-lg) var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.ml-count-hint{font-size:var(--text-2xs);letter-spacing:var(--tracking-lg);opacity:.7}.ml-selection{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);background:color-mix(in srgb,var(--accent) 10%,transparent);border-top:1px solid color-mix(in srgb,var(--accent) 24%,transparent);border-bottom:1px solid color-mix(in srgb,var(--accent) 24%,transparent)}.ml-selection-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--accent)}.ml-selection-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2xs)}.ml-selection-btn{padding:var(--space-2xs) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;background:transparent;border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);color:var(--accent);cursor:pointer;border-radius:var(--radius-xs);transition:background .12s}.ml-selection-btn:hover{background:color-mix(in srgb,var(--accent) 16%,transparent)}.ml-selection-btn--primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.ml-selection-btn--primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--ink))}.ml-selection-status{flex:1 1 100%;min-width:0;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-align:right;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-selection-status--ok{color:var(--accent)}.ml-selection-status--error{color:var(--red)}.ml-detail-actions{display:flex;gap:var(--space-xs);margin-top:var(--space-sm)}.ml-detail-btn{flex:1 1 0;padding:var(--space-xs) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;background:transparent;border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);color:var(--ink);cursor:pointer;border-radius:var(--radius-xs);transition:background .12s,border-color .12s}.ml-detail-btn:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 32%,transparent)}.ml-detail-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.ml-detail-btn--primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--ink))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as l,j as e}from"./index-DReVb7jZ.js";/* empty css */import{t as O}from"./time-Dhsh_2EG.js";import{u as H,a as $}from"./Provider-CNZluAZb.js";import{S as G}from"./SpriteAvatar-aHeF4ZQZ.js";import{H as R}from"./HarnessMark-DSvM_H7H.js";import{AgentSessions as J}from"./AgentSessions-CO1WGa8Z.js";import{a as T}from"./api-DSqpVKC7.js";import{g as q,p as V,b as _}from"./model-CBkMvT1w.js";import{c as Q,e as X,f as Y,g as Z}from"./NewChatComposer-BEXS8vV6.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./createLucideIcon-ChvMq-zl.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./file-text-DP6txVW-.js";import"./x-rlMdRqJF.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-CJXPaHXj.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./openContent-C6XO6kr5.js";import"./clipboard-e3fSpeo7.js";import"./runtime-picker-C_AVYF63.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./NewChatOrigin-C8ROO4ps.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";const ee=30*6e4,D=a=>a==="pi"?"grok":a,K=a=>a?a.replace(/^claude-/,"").replace(/-\d{8}$/,""):null;function Ze({agents:a,fleet:d,sessionByAgentId:c,sessions:A,discovery:k,loading:C,navigate:N,selectedAgentId:S}){const{route:u,reload:p,openContextCapture:j}=H(),m=u.view==="agents-v2"?u.projectSlug:void 0,v=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]),f=l.useMemo(()=>a.map(n=>Q(n,c.get(n.id)??null,v.get(n.id)??[])),[v,a,c]),g=l.useMemo(()=>X(k,Date.now()),[k]),h=l.useMemo(()=>Y(f,A,g),[f,A,g]),w=l.useMemo(()=>h.find(n=>n.slice.slug===m)??h[0]??null,[h,m]),r=w?.slice.slug,M={selectAgent:n=>N({view:"agents-v2",agentId:n.agent.id,...r?{projectSlug:r}:{}}),openAgentPage:n=>N({view:"agents-v2",agentId:n.agent.id,tab:"profile"}),startSession:n=>j({intent:"new-task",projectPath:n.agent.projectRoot??n.agent.cwd??void 0}),openSession:n=>N(n),configureAgent:n=>N({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 N=$(),S=Date.now()-a.lastActivityAt<ee,u=a.needs?"needs":S?"live":"idle",p=a.nodes[0];if(!p)return null;const j=p.row.agent.handle?.trim()||a.name,m=a.branches.length>0?a.branches:["main"],v=m.length>1,f=v?`${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":u,"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:u}),e.jsx("span",{className:"ap-rowMark","data-idle":u==="idle"||void 0,"aria-hidden":!0,children:e.jsx(R,{harness:D(a.harness),size:11})}),e.jsxs("span",{className:"ap-rowName","data-idle":u==="idle"||void 0,children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"@"}),j]}),a.needs?e.jsx("span",{className:"ap-needsWord",children:"needs you"}):u==="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:v?m.join(" · "):void 0,children:f}),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":u==="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(),N(r,w)},children:"⋯"})]})]}),e.jsx(J,{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(""),[N,S]=l.useState(null),[u,p]=l.useState(!1),[j,m]=l.useState(-1),v=l.useRef(null),f=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=>(!N||D(s.harness)===N)&&(!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||N),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(),v.current?.focus(),v.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(x=>x<0?0:Math.min(F-1,x+1));else if(t.key==="ArrowUp"||t.key==="k")t.preventDefault(),m(x=>x<0?0:Math.max(0,x-1));else if(t.key==="Enter"&&(t.metaKey||t.ctrlKey)){const x=i.find(P=>P.needs)??i[0];x&&(t.preventDefault(),m(i.indexOf(x)),c.selectAgent(x.nodes[0].row))}else if(t.key==="Enter"){const x=j<0?0:j,P=i[x];P&&(t.preventDefault(),m(x),c.selectAgent(P.nodes[0].row))}}}return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[i,j,c]),l.useEffect(()=>{if(!(j<0)){if(j>=i.length){m(i.length-1);return}f.current.get(i[j]?.name??"")?.scrollIntoView({block:"nearest"})}},[j,i]),e.jsx("div",{className:"ap-view",children:e.jsxs("div",{className:"ap-content",children:[e.jsxs("header",{className:"ap-head",children:[e.jsx(G,{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:v,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":N===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:j===t,rowRef:y=>{y?f.current.set(s.name,y):f.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:u?"▴":"▾"})]}),u?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{Ze as AgentsLibrary};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c}from"./createLucideIcon-
|
|
1
|
+
import{c}from"./createLucideIcon-ChvMq-zl.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r}from"./index-
|
|
1
|
+
import{r}from"./index-DReVb7jZ.js";import{a as d}from"./api-DSqpVKC7.js";import{u as f}from"./Provider-CNZluAZb.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{a as A,n as H}from"./agent-state-DDhnFEEP.js";import{g as R}from"./Provider-CNZluAZb.js";import{s as v}from"./use-mesh-node-state-3V3ADQ-G.js";function c(e){return e?e.replace(/^https?:\/\//,"").split("/")[0].split(":")[0].split(".")[0]||e.slice(0,8):""}function m(e){return e&&((e.hostName?c(e.hostName):null)||e.name)||"this host"}function j(e){if(!e)return"Host";const n=m(e.localNode);return n==="this host"?"Host":n}const u=new Set(["localhost","localhost.localdomain","127.0.0.1","::1"]);function I(e){const n=(e??"").trim().toLowerCase();return n.length===0||u.has(n)}function $(e){if(!I(e.hostName)){const a=c(e.hostName);if(a)return a}const n=c(e.dnsName);if(n&&!u.has(n.toLowerCase()))return n;const t=(e.name??"").trim();return t&&!u.has(t.toLowerCase())?t:"tailnet peer"}function g(e){const n=c(e.dnsName);if(n&&!u.has(n.toLowerCase()))return n.toLowerCase();if(!I(e.hostName)){const t=c(e.hostName);if(t)return t.toLowerCase()}return(e.name??"").trim().toLowerCase()}function b(e){return(c(e.hostName)||(e.name?c(e.name):"")).toLowerCase()}function M(e){return g(e).length===0}function N(e){if(e)return{nodeId:e.id,brokerUrl:e.brokerUrl??null,advertiseScope:e.advertiseScope??null,lastSeenAt:typeof e.lastSeenAt=="number"?e.lastSeenAt:null,capabilities:e.capabilities??[]}}function L(e){const n=(e??"").split("/")[0]?.trim();return n||null}function P(e,n){const t=R(e),a=new Map,r=n.localNode?.id??"local",S=m(n.localNode),y=(n.localNode&&n.nodes?.[n.localNode.id])??n.nodes?.[r];a.set(r,{machineId:r,machineLabel:S,kind:"this",reachability:"this",presence:"self",online:!0,host:y?.host,node:N(y)??{nodeId:r,brokerUrl:n.localNode?.brokerUrl??null,advertiseScope:n.localNode?.advertiseScope??null,lastSeenAt:null,capabilities:n.localNode?.capabilities??[]},agents:[]});const d=!!n.tailscale?.running,h=new Map;for(const o of n.tailscale?.peers??[]){const i=g(o);i&&(h.has(i)||h.set(i,o))}for(const o of Object.values(n.nodes??{})){if(!o?.id||o.id===r)continue;const i=h.get(b(o)),s=!i||!d?"unknown":i.online?"reachable":"unreachable";a.set(o.id,{machineId:o.id,machineLabel:m(o)||o.id,kind:"node",reachability:"peer",presence:s,online:s!=="unreachable",host:o.host,node:N(o),...i?{tailnet:{peerId:i.id,address:L(i.addresses?.[0]),os:i.os??null,online:!!(i.online&&d)}}:{},agents:[]})}for(const o of t){const i=o.authorityNodeId??o.homeNodeId??r,s=a.get(i);s&&s.agents.push(o)}const l=new Set;for(const o of a.values()){l.add(o.machineLabel.toLowerCase());const i=n.nodes?.[o.machineId];if(i){const s=b(i);s&&l.add(s)}}const k=n.localNode?b(n.localNode):"";k&&l.add(k);for(const o of n.tailscale?.peers??[]){if(M(o))continue;const i=$(o),s=g(o);if(s&&l.has(s)||l.has(i.toLowerCase()))continue;const f=`tailnet:${o.id}`;if(a.has(f))continue;const p=!!(o.online&&d);a.set(f,{machineId:f,machineLabel:i,kind:"tailnet",reachability:"tailnet",presence:d?p?"reachable":"unreachable":"unknown",online:p,tailnet:{peerId:o.id,address:L(o.addresses?.[0]),os:o.os??null,online:p},agents:[]}),s&&l.add(s),l.add(i.toLowerCase())}const w=o=>o.reachability==="this"?0:o.reachability==="peer"?1:2;return Array.from(a.values()).sort((o,i)=>{const s=w(o)-w(i);return s!==0?s:o.machineLabel.localeCompare(i.machineLabel)})}function z(e){const{machineId:n,on:t}=e,a=[{id:"open",label:"Show what's running here",hint:"Load this machine's current agents and activity",run:()=>t.select(n)},{id:"refresh",label:e.checking?"Checking…":"Refresh this node",hint:"Check reachability and re-read state now",disabled:e.checking,run:()=>t.refresh(n)},{id:"focus",label:`Focus on ${e.machineLabel}`,hint:"Show only this machine",run:()=>t.focus(n)},{id:"visibility",label:e.hidden?"Show this machine":"Hide this machine",run:()=>t.toggleHidden(n)}];return e.anyHidden&&a.push({id:"show-all",label:"Show all machines",run:()=>t.showAll()}),e.positioned&&t.clearPosition&&a.push({id:"clear-position",label:"Reset position",hint:"Put this machine back in the automatic layout",run:()=>t.clearPosition?.(n)}),e.canCopy&&e.nodeId&&a.push({id:"copy-node-id",label:"Copy node ID",run:()=>t.copy(e.nodeId)}),e.canCopy&&e.brokerUrl&&a.push({id:"copy-broker-url",label:"Copy broker address",run:()=>t.copy(e.brokerUrl)}),a}function C(e){return e.updatedAt??e.createdAt??0}function F(e,n){return e.kind==="this"?[...e.agents].sort((t,a)=>C(a)-C(t)).map(t=>({key:t.id,name:t.name,tone:H(t.state),title:t.name,agent:t,selectId:t.id})):!n||n.roster.length===0?[]:n.roster.map(t=>({key:t.id,name:t.title,meta:t.statusLabel??void 0,tone:B(t.state),title:t.projectRoot?`${t.title} — ${t.projectRoot}`:t.title,agent:null,selectId:null}))}function B(e){return e==="working"?"in_turn":e==="available"?"callable":"neutral"}function T(e,n,t){const a=n?.workload??null;if(a){const r=a.working===null?`${a.total}`:`${a.working}/${a.total}`;return n?.stale?`${r} · last known`:r}return t?"checking…":e.kind==="this"&&e.agents.length>0?`${e.agents.filter(r=>A(r.state)).length}/${e.agents.length}`:v(n).label.toLowerCase()}function _(e,n){return P(e,n).map(t=>t.kind==="this"?t:{...t,agents:[]})}export{P as a,z as b,_ as c,F as d,j as l,T as m};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function v(e){const t=e instanceof Error?e.message:String(e);return l(t)?"Scout server is unreachable":t}function d(e){return e==="Scout server is unreachable"}function l(e){return/failed to fetch|fetch failed|networkerror|load failed|couldn'?t connect|could not connect|connection refused|econnrefused|server is unreachable/i.test(e)}function f(e,t){const n=t?.trim();n&&e.add(n)}function h(e,t){const n=new Set;return f(n,e.authorityNodeId),f(n,e.homeNodeId),n.size===0&&f(n,t),n}function a(e,t,n){return t?h(e,n).has(t):!0}function y(e,t,n){return t?e.filter(r=>a(r,t,n)):e}function A(e,t,n){return t?new Set(e.filter(r=>a(r,t,n)).map(r=>r.id)):null}function i(e,t,n){return!t&&!n||n&&e.authorityNodeId===n?!0:t?e.agentId&&t.has(e.agentId)||e.actorId&&t.has(e.actorId)||e.ownerId&&t.has(e.ownerId)||e.nextMoveOwnerId&&t.has(e.nextMoveOwnerId)?!0:!!e.participantIds?.some(r=>t.has(r)):!1}function p(e,t,n){return i(e,t,n)}function w(e,t,n){return!t&&!n?e:e.filter(r=>p(r,t,n))}function M(e,t){return i(e,t)}function S(e,t){return t?e.filter(n=>M(n,t)):e}function s(e,t){return i(e,t)}function k(e,t){if(!e||!t)return e;const n=e.activeAsks.filter(c=>i(c,t)),r=e.recentCompleted.filter(c=>i(c,t)),u=e.needsAttention.filter(c=>i(c,t)),o=S(e.activity,t);return{...e,totals:{active:n.length,recentCompleted:r.length,needsAttention:u.length,activity:o.length},activeAsks:n,recentCompleted:r,needsAttention:u,activity:o}}function m(e,t){if(!t)return e;const n=e.activeFlights.filter(o=>i(o,t)),r=e.childWork.filter(o=>s(o,t));return s(e,t)||n.length>0||r.length>0?{...e,activeFlights:n,childWork:r}:null}export{S as a,y as b,w as c,k as d,m as e,v as f,d as i,A as m};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as l,r as d}from"./index-DReVb7jZ.js";import{a as y}from"./colors-CFlbwC25.js";import{r as T}from"./index-CbqBwfIW.js";import{a as F}from"./api-DSqpVKC7.js";import{n as V,d as K,e as Z}from"./agent-state-DDhnFEEP.js";import{u as N}from"./Provider-CNZluAZb.js";import{A as U}from"./AgentDetailCard-MIEBKw_S.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=o==="oc"?"opencode":o,s=e.model?m(e.model):void 0,c=e.nodeQualifier?m(e.nodeQualifier):void 0;return n?{definitionId:n,...t?{workspaceQualifier:t}:{},...r?{profile:r}:{},...i?{harness:i}:{},...s?{model:s}:{},...c?{nodeQualifier:c}:{}}: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;V(e.state);const c=K(e.state,e)?30:Z(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 F(`/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 Le(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)":y(i.definitionId);return l.jsx(de,{identity:i,color:c},o)})}export{Le as r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as p}from"./index-
|
|
1
|
+
import{r as p}from"./index-DReVb7jZ.js";const M={active:"active",moving:"moving",done:"done",archive:"archive"},b=["active","moving","done","archive"],h=300*1e3,O=1800*1e3,S=1440*60*1e3;function L(t,n=Date.now()){const o=n-u(t);return o<=h?"active":o<=O?"moving":o<=S?"done":"archive"}const i="openscout.meshOps.lastLookAt";function y(){if(typeof window>"u")return 0;try{const t=window.localStorage.getItem(i);return t?Number(t)||0:Date.now()}catch{return Date.now()}}function A(){if(!(typeof window>"u"))try{window.localStorage.setItem(i,String(Date.now()))}catch{}}function E(t,n){return u(t)>n}function v(t){if(t.labels.length>0)return t.labels[0];if(t.projectRoot){const n=t.projectRoot.split("/").filter(Boolean);return n[n.length-1]??t.projectRoot}return"unlabeled"}function u(t){return t.lastMeaningfulAt??t.updatedAt}const l="openscout.mesh-ops.lab.",r={lastLook:!0,routeStrip:!0,compact:!1,relays:!1,simulateHosts:!1};function m(){if(typeof window>"u")return r;const t=n=>{try{const o=window.localStorage.getItem(`${l}${n}`);return o===null?r[n]:o==="1"}catch{return r[n]}};return{lastLook:t("lastLook"),routeStrip:t("routeStrip"),compact:t("compact"),relays:t("relays"),simulateHosts:t("simulateHosts")}}function _(t,n){if(!(typeof window>"u"))try{window.localStorage.setItem(`${l}${t}`,n?"1":"0")}catch{}}let e={status:"idle",error:null,generatedAt:null,items:[],hosts:[],machineId:null,selectedItemId:null,groupBy:"family",attnFilter:null,unattributedOnly:!1,lab:m(),refreshToken:0};const a=new Set;function s(){for(const t of a)t()}function D(t){e={...e,status:"loading",error:null,machineId:t},s()}function R(t,n,o,c=[]){const f=e.selectedItemId!==null&&!n.some(d=>d.id===e.selectedItemId);e={...e,status:"ready",error:null,items:n,hosts:c,generatedAt:o,machineId:t,selectedItemId:f?null:e.selectedItemId},s()}function F(t,n){e={...e,status:"error",error:n,machineId:t},s()}function T(t){e.selectedItemId!==t&&(e={...e,selectedItemId:t},s())}function H(t){e.groupBy!==t&&(e={...e,groupBy:t},s())}function N(t){e.attnFilter!==t&&(e={...e,attnFilter:t},s())}function B(t){e.unattributedOnly!==t&&(e={...e,unattributedOnly:t},s())}function G(t){const n={...e.lab,[t]:!e.lab[t]};_(t,n[t]),e={...e,lab:n},s()}function P(){e={...e,refreshToken:e.refreshToken+1},s()}function g(t){return a.add(t),()=>{a.delete(t)}}function I(){return e}function W(){return p.useSyncExternalStore(g,I)}function k(){return e}export{b as M,T as a,A as b,u as c,M as d,N as e,v as f,H as g,G as h,E as i,P as j,D as k,R as l,k as m,F as n,y as r,B as s,L as t,W as u};
|
|
@@ -1 +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-join-toggle{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.mesh-join-toggle input{width:14px;height:14px;margin:0;accent-color:var(--acc, #3b82f6)}.mesh-join-toggle-copy{font-size:var(--text-sm);color:var(--ink)}.mesh-join-hint{margin:var(--space-xs) 0 0;font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--muted)}.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)}
|
|
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-join-toggle{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.mesh-join-toggle input{width:14px;height:14px;margin:0;accent-color:var(--acc, #3b82f6)}.mesh-join-toggle-copy{font-size:var(--text-sm);color:var(--ink)}.mesh-join-hint{margin:var(--space-xs) 0 0;font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--muted)}.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)}.mesh-node-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:color-mix(in srgb,var(--ink) 55%,transparent);font-size:13px;line-height:1;cursor:pointer}.mesh-node-menu-btn:hover{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink)}.mesh-node-menu-btn:focus-visible{outline:none;border-color:color-mix(in srgb,var(--accent) 60%,transparent);color:var(--ink)}.mesh-node-menu-btn[aria-expanded=true]{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}.mesh-node-menu{position:fixed;z-index:240;max-height:min(60vh,420px);overflow-y:auto;min-width:208px;max-width:280px;padding:4px;display:flex;flex-direction:column;gap:1px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 8px 28px #00000059}.mesh-node-menu-item{display:flex;flex-direction:column;gap:1px;width:100%;padding:5px 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font-size:12px;text-align:left;cursor:pointer}.mesh-node-menu-item:hover:not(:disabled),.mesh-node-menu-item:focus-visible{outline:none;background:color-mix(in srgb,var(--accent) 14%,transparent)}.mesh-node-menu-item:disabled{cursor:default;color:color-mix(in srgb,var(--ink) 40%,transparent)}.mesh-node-menu-item-label{font-weight:500}.mesh-node-menu-item-hint{font-size:10.5px;color:color-mix(in srgb,var(--ink) 52%,transparent)}.mesh-nav-machine>.rr-row--has-actions .rr-row-actions{display:inline-flex;position:static;transform:none;background:transparent;padding:0}.mesh-nav-machine>.rr-row--has-actions .rr-row-meta{opacity:1}.mesh-node-inspector{display:flex;flex-direction:column;gap:10px}.mesh-node-inspector-actions{display:flex;align-items:center;gap:6px}.mesh-node-inspector-section{display:flex;flex-direction:column;gap:4px}.mesh-node-reach--ok{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.mesh-node-reach--warn{color:var(--warning, #d08b28);border-color:color-mix(in srgb,var(--warning, #d08b28) 35%,transparent)}.mesh-node-reach--bad{color:var(--danger, #c8553d);border-color:color-mix(in srgb,var(--danger, #c8553d) 35%,transparent)}.mesh-node-reach--muted{color:color-mix(in srgb,var(--ink) 50%,transparent)}.mesh-node-reach-note{margin-top:2px}.mesh-node-workload{display:flex;flex-wrap:wrap;gap:10px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--ink) 3%,transparent)}.mesh-node-workload-cell{display:flex;flex-direction:column;gap:1px;min-width:54px}.mesh-node-workload-num{font-size:17px;font-weight:600;line-height:1.1}.mesh-node-workload-cell--working .mesh-node-workload-num{color:var(--accent)}.mesh-node-workload-label,.mesh-node-workload-note{font-size:10.5px;color:color-mix(in srgb,var(--ink) 55%,transparent)}.mesh-node-workload-cell--unknown{flex:1 1 140px;justify-content:center}.mesh-node-workload--unknown{display:block}.mesh-node-stale-tag{margin-left:6px;padding:0 4px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ink) 8%,transparent);font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:color-mix(in srgb,var(--ink) 55%,transparent)}.mesh-node-section-count{margin-left:6px;color:color-mix(in srgb,var(--ink) 45%,transparent)}.mesh-node-unreported,.mesh-node-empty{margin:2px 0 0;font-size:11.5px;color:color-mix(in srgb,var(--ink) 52%,transparent)}.mesh-node-unreported{font-style:italic}.mesh-node-rows{display:flex;flex-direction:column;gap:2px}.mesh-node-row{display:flex;align-items:baseline;gap:6px;padding:3px 0;font-size:11.5px;border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.mesh-node-row-name{flex:0 1 auto;font-weight:500}.mesh-node-row-meta{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:color-mix(in srgb,var(--ink) 52%,transparent)}.mesh-node-row-state{flex:0 0 auto;font-size:10px;text-transform:lowercase;color:color-mix(in srgb,var(--ink) 55%,transparent)}.mesh-node-row-state--running,.mesh-node-row-state--active{color:var(--accent)}.mesh-node-roster-note{margin:4px 0 0;font-size:10.5px;color:color-mix(in srgb,var(--ink) 45%,transparent)}.mesh-nav-machine,.mesh-machine-header{position:relative}.mesh-machine-menu-btn{position:absolute;top:3px;right:3px;z-index:3;width:18px;height:18px;font-size:12px;background:color-mix(in srgb,var(--surface) 80%,transparent)}.mesh-machine-reach{margin-left:auto;padding:0 5px;border-radius:999px;font-size:9px;letter-spacing:.02em;text-transform:lowercase;white-space:nowrap;background:color-mix(in srgb,var(--ink) 6%,transparent)}.mesh-summary-hint{margin:8px 0 0;font-size:11px;line-height:1.5;color:color-mix(in srgb,var(--ink) 55%,transparent)}.mesh-machine-detail-link{display:block;width:100%;padding:12px;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer;white-space:normal;overflow-wrap:anywhere}.mesh-machine-detail-link:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as d}from"./index-DReVb7jZ.js";const u=new Set(["in_turn","in_flight","needs_attention","callable","blocked"]),r="openscout.mesh.machinePositions.v1";function f(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(r);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 l(e){if(!(typeof window>"u"))try{window.localStorage.setItem(r,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 P(e){t.query!==e&&(t={...t,query:e},s())}function I(e){t.stateFilter!==e&&(t={...t,stateFilter:e},s())}function b(e){const n=new Set(t.agentStateFilters);n.has(e)?n.delete(e):n.add(e),t={...t,agentStateFilters:n},s()}function m(e){const n=new Set(t.treeFullMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,treeFullMachineIds:n},s()}function x(e){const n=new Set(t.hiddenMachineIds);n.has(e)?n.delete(e):n.add(e),t={...t,hiddenMachineIds:n},s()}function T(e,n){const i=new Set;for(const c of n)c!==e&&i.add(c);t={...t,hiddenMachineIds:i},s()}function _(){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},l(i),s()}function O(e){if(!(e in t.machinePositions))return;const n={...t.machinePositions};delete n[e],t={...t,machinePositions:n},l(n),s()}function E(){if(Object.keys(t.machinePositions).length===0)return;const e={};t={...t,machinePositions:e},l(e),s()}function j(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 M(){return t}function N(){return d.useSyncExternalStore(h,M)}export{w as a,F as b,A as c,O as d,_ as e,T as f,E as g,p as h,g as i,P as j,I as k,b as l,m,j as r,y as s,x as t,N as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./createLucideIcon-
|
|
1
|
+
import{c as e}from"./createLucideIcon-ChvMq-zl.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};
|