@openscout/scout 0.2.108 → 0.2.109
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/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/conversation-motion-features-PYM3Yx_M.js +1 -0
- package/dist/client/assets/index-DGR8nSEY.js +88 -0
- package/dist/client/assets/index-rA7f7Rt0.css +1 -0
- package/dist/client/index.html +3 -3
- package/dist/main.mjs +1 -1
- package/package.json +2 -2
- package/dist/client/assets/ActivityScreen-C1H-vL0L.js +0 -1
- package/dist/client/assets/AddProjectForm-4sVXmjfN.js +0 -1
- package/dist/client/assets/AdventureEvidence-D5wq1vu8.js +0 -5
- package/dist/client/assets/AdventureReader-BICypcDY.js +0 -4
- package/dist/client/assets/AdventureScenery-CGEcG0zV.js +0 -1
- package/dist/client/assets/AgentAdventures-5yBt-Zl3.js +0 -1
- package/dist/client/assets/AgentAvatar-Dn8TUv5W.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-C0D9WNyL.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-BzcBdC_s.js +0 -1
- package/dist/client/assets/AgentDetailCard-C4WVeJvJ.css +0 -1
- package/dist/client/assets/AgentDetailCard-CI-ufaEP.js +0 -1
- package/dist/client/assets/AgentFloorView-D8tlGlgy.js +0 -1
- package/dist/client/assets/AgentFloorWorld-DqmnQexg.js +0 -1
- package/dist/client/assets/AgentInfoScreen-BnRhfcFy.js +0 -1
- package/dist/client/assets/AgentLaneCard-pppHFROz.js +0 -1
- package/dist/client/assets/AgentLaneChrome-RptImDFc.js +0 -1
- package/dist/client/assets/AgentLaneDetailSheet-BqbwGskh.js +0 -4
- package/dist/client/assets/AgentLaneSummaryResize-DaIgwyVh.js +0 -1
- package/dist/client/assets/AgentLanesEmbedScreen-De6C4ZOw.js +0 -1
- package/dist/client/assets/AgentLanesPreflight-BQfj2twF.js +0 -1
- package/dist/client/assets/AgentLanesView-CiISx7pu.js +0 -2
- package/dist/client/assets/AgentLiveActions-CGS-Bxb7.css +0 -1
- package/dist/client/assets/AgentLiveActions-CkRGkv13.js +0 -1
- package/dist/client/assets/AgentMasterScreen-CijN_4tN.js +0 -1
- package/dist/client/assets/AgentSessions-ghjQcSrh.js +0 -6
- package/dist/client/assets/AgentsConsole-BjSTs-TV.css +0 -1
- package/dist/client/assets/AgentsConsole-D8upjDpn.js +0 -1
- package/dist/client/assets/AgentsScreen-C17BFqjf.js +0 -1
- package/dist/client/assets/AgentsSubnav-_1GVC4hj.js +0 -1
- package/dist/client/assets/AstronautSuit-Dzu4GOMR.js +0 -1
- package/dist/client/assets/AtopView-DJK5b3lZ.js +0 -1
- package/dist/client/assets/BackToPicker-BPU7kbXq.js +0 -1
- package/dist/client/assets/BackToPicker-CdgVu-to.css +0 -1
- package/dist/client/assets/BriefingDetailScreen-CTvFw523.js +0 -1
- package/dist/client/assets/BriefingsScreen-DpVC3OUk.js +0 -1
- package/dist/client/assets/BrokerMetadataPanel-glRVdwkU.js +0 -1
- package/dist/client/assets/BrokerScreen-CqKsBwEx.js +0 -8
- package/dist/client/assets/CastPicker-Y29K5kKk.js +0 -1
- package/dist/client/assets/CastPicker-zXsnkTIy.css +0 -1
- package/dist/client/assets/ChannelComposer-D4EY9jVW.js +0 -1
- package/dist/client/assets/ChannelSidebar-CVmykV4d.js +0 -1
- package/dist/client/assets/CharacterFamilyPreview-Bj8oMD-5.js +0 -1
- package/dist/client/assets/CharacterFamilyPreview-BniL8sEL.css +0 -1
- package/dist/client/assets/ChatAvatar-BsAOShUr.js +0 -1
- package/dist/client/assets/ChatBits-Cq54CmyB.js +0 -1
- package/dist/client/assets/ChatCollapsedStrip-B0DdrOo2.js +0 -1
- package/dist/client/assets/ChatRichInput-DYJRhGTP.js +0 -31
- package/dist/client/assets/ChatRightPanel-D94Lw7ud.js +0 -1
- package/dist/client/assets/ChatSpaceSurface-Cp532VmZ.js +0 -1
- package/dist/client/assets/ChatSpaceTheme-3wLZGsvT.css +0 -1
- package/dist/client/assets/ChatSpaceTheme-DPzYpw-v.js +0 -1
- package/dist/client/assets/CodeDiffPane-DCgMUi39.js +0 -1
- package/dist/client/assets/CodeProjectPicker-Dq787L77.js +0 -2
- package/dist/client/assets/CodeScreen-BN4TkiR0.js +0 -1
- package/dist/client/assets/CommsCanvas-BR2YS76H.css +0 -1
- package/dist/client/assets/CommsCanvas-Dh056d91.js +0 -1
- package/dist/client/assets/CommsDeck-CRXKIerH.js +0 -1
- package/dist/client/assets/CommsFlowGraph-Cc48o9u_.js +0 -1
- package/dist/client/assets/CommsFlowGraph-vQucylxF.css +0 -1
- package/dist/client/assets/CommsFlowMap-Ckasql5e.js +0 -1
- package/dist/client/assets/CommsSelection-CuphnUny.js +0 -1
- package/dist/client/assets/ComposerAttachments-9uYp_Lh5.js +0 -1
- package/dist/client/assets/ConversationComposer-hYtLurqy.js +0 -1
- package/dist/client/assets/ConversationFeedRows-Bu0ZJcy8.js +0 -1
- package/dist/client/assets/ConversationHeader-L9738YVP.js +0 -1
- package/dist/client/assets/ConversationPanels-D6KuqvGu.js +0 -6
- package/dist/client/assets/ConversationScreen-9MlMnEo4.css +0 -1
- package/dist/client/assets/ConversationScreen-Pzxy9x4m.js +0 -2
- package/dist/client/assets/ConversationStatus-BEefIbXq.js +0 -1
- package/dist/client/assets/CrewAvatar-BnIPIn_Z.css +0 -1
- package/dist/client/assets/CrewAvatar-a_C_F9r_.js +0 -1
- package/dist/client/assets/CrewSprite-CguHb2Ny.js +0 -1
- package/dist/client/assets/CrewSprite-DsQJdu3Z.css +0 -1
- package/dist/client/assets/CrewStage-IPpS3Oja.js +0 -1
- package/dist/client/assets/CrewWorkspaces-BTPtcEcx.js +0 -1
- package/dist/client/assets/CrewWorkspaces-DDuYMByu.css +0 -1
- package/dist/client/assets/DataTable-DnL_8SAu.js +0 -1
- package/dist/client/assets/DispatchAftermath-CoAYaL3B.js +0 -1
- package/dist/client/assets/DocumentFocusViewer-BSC_JwVE.css +0 -1
- package/dist/client/assets/DocumentFocusViewer-mxzPxQQW.js +0 -1
- package/dist/client/assets/EmbeddableSurfacesLab-BAZ_eRMc.js +0 -1
- package/dist/client/assets/EmptyState-DLiLgtPK.js +0 -1
- package/dist/client/assets/FileViewerPane-Dc7AoVod.js +0 -3
- package/dist/client/assets/FleetRollCallHud-VhpxVcGO.js +0 -1
- package/dist/client/assets/FlightObserveScreen-C1kASP3J.js +0 -1
- package/dist/client/assets/FloorContextSheet-BfrXNoBn.js +0 -1
- package/dist/client/assets/FloorExchangePanel-B3TFhjLk.css +0 -1
- package/dist/client/assets/FloorExchangePanel-DsG1cRzu.js +0 -1
- package/dist/client/assets/FloorMessagePasses-Cm3LbkHd.js +0 -1
- package/dist/client/assets/FloorMessagePasses-nxwwiUom.css +0 -1
- package/dist/client/assets/FloorReplay-Bg7kA-tR.js +0 -1
- package/dist/client/assets/FloorResourcesSheet-Ba9HubO2.js +0 -1
- package/dist/client/assets/FloorSavedWork-BDOvV3mA.js +0 -1
- package/dist/client/assets/FloorTacticalHUD-4d-Hr-YL.js +0 -1
- package/dist/client/assets/FollowScreen-DFVSlsQV.js +0 -1
- package/dist/client/assets/HarnessMark-CP-PWk2W.js +0 -1
- package/dist/client/assets/HarnessesScreen-j-91IoOo.js +0 -1
- package/dist/client/assets/HerdrSession-H2mmxeTK.js +0 -4
- package/dist/client/assets/HomeHero-7JwycwFY.css +0 -1
- package/dist/client/assets/HomeHero-g4H3Ctxg.js +0 -1
- package/dist/client/assets/HostAdvisorView-Cyt3b5Fq.js +0 -1
- package/dist/client/assets/InviteLandingScreen-C3DtAGD4.js +0 -1
- package/dist/client/assets/InviteSheet-BiGMNpsE.js +0 -1
- package/dist/client/assets/JumpPalette-goXAVByA.js +0 -1
- package/dist/client/assets/KnowledgeSearchInspector-BbOQIqdF.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-DC8yX-kA.js +0 -1
- package/dist/client/assets/LaneToolHoverCard-B8Am_1DC.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-CngYIxdI.js +0 -1
- package/dist/client/assets/LaneTraceEventFocus-BRR_jcl9.js +0 -1
- package/dist/client/assets/MeshCanvas-DzkuY_XI.js +0 -3
- package/dist/client/assets/MeshCanvasMinimap-BrscEPAH.js +0 -1
- package/dist/client/assets/MeshCanvasMinimap-Dv7nMbl5.css +0 -1
- package/dist/client/assets/MeshScreen-CAtRB8K6.js +0 -1
- package/dist/client/assets/MeshTopologyView-B1I2dAhu.js +0 -2
- package/dist/client/assets/MessageEmbeds-B-FbWI7a.js +0 -1
- package/dist/client/assets/MessagesScreen-hq7D3Lfi.js +0 -1
- package/dist/client/assets/MissionContextRail-ClR8amG1.js +0 -1
- package/dist/client/assets/MissionControlView-D6gbMrgx.js +0 -1
- package/dist/client/assets/MissionFocusOverlay-CzeNgI9Q.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-CB3cgeYr.js +0 -1
- package/dist/client/assets/MissionLogPane-2PMEoG44.js +0 -1
- package/dist/client/assets/NativeAreaScreen-BnlrAWT8.js +0 -1
- package/dist/client/assets/NativeAreaScreen-DSR5Tf6F.js +0 -1
- package/dist/client/assets/NativeAreaScreen-fGsxyeC3.js +0 -1
- package/dist/client/assets/NewAgentModal-4b_3aoZE.js +0 -1
- package/dist/client/assets/NewAgentModal-ru8u5YdJ.css +0 -1
- package/dist/client/assets/NewChatComposer-C5LT7MF7.css +0 -1
- package/dist/client/assets/NewChatComposer-D-VB5vdt.js +0 -19
- package/dist/client/assets/NewChatOrigin-BYsEu9dZ.js +0 -1
- package/dist/client/assets/NodeDetailPanel-9NaEnZAQ.js +0 -1
- package/dist/client/assets/NodeMenu-BgJMmffZ.js +0 -1
- package/dist/client/assets/ObserveEmbedScreen-W7Q5HbXP.js +0 -2
- package/dist/client/assets/ObserveTextFlow-C0oQEerY.js +0 -2
- package/dist/client/assets/ObservedTopologyPanel-BsBsvVPL.css +0 -1
- package/dist/client/assets/ObservedTopologyPanel-Ci7emnnj.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-Bh6FnEJO.css +0 -1
- package/dist/client/assets/OpenScoutAppShell-Di9qdmI0.js +0 -22
- package/dist/client/assets/OpsAgentsView-DVotOMg2.js +0 -1
- package/dist/client/assets/OpsScreen-C955zgr3.js +0 -1
- package/dist/client/assets/OpsSubnav-CjMVj7Sk.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-B1VqGSmu.js +0 -1
- package/dist/client/assets/ProjectAgentProfileBar-DhVU7zew.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-CJk-Dx4t.js +0 -1
- package/dist/client/assets/ProjectsInbox-B7kap8nR.js +0 -2
- package/dist/client/assets/ProjectsInbox-B8zYE4vP.css +0 -1
- package/dist/client/assets/ProjectsRail-BhSaqbv0.js +0 -1
- package/dist/client/assets/ProjectsScreen-CSb7nwjb.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-pEJutIO8.js +0 -1
- package/dist/client/assets/Provider-BEXAZWd9.js +0 -5
- package/dist/client/assets/Provider-CCzjtkda.css +0 -1
- package/dist/client/assets/RailRow-B25zKEub.css +0 -1
- package/dist/client/assets/RailRow-Ddz90weI.js +0 -1
- package/dist/client/assets/RawSessionsTable-TdKlJIPl.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-BU5KmlNo.js +0 -8
- package/dist/client/assets/RenderedWorkerSprite-BNhFXMIo.js +0 -1
- package/dist/client/assets/RenderedWorkerSprite-qnTfkd_4.css +0 -1
- package/dist/client/assets/ReplayClock-wLpb4VqN.js +0 -1
- package/dist/client/assets/ReplayLog-IUyQdklN.js +0 -1
- package/dist/client/assets/ReplayOutpost-C4djhjZJ.js +0 -1
- package/dist/client/assets/ReplayOutpost-Y1DvZgeu.css +0 -1
- package/dist/client/assets/RepoDiffEmbedScreen-BmQX_8E-.js +0 -1
- package/dist/client/assets/RepoDiffPageScreen-B9oAjrC6.js +0 -1
- package/dist/client/assets/RepoDiffViewer-Ch_lIMt-.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-DL6A2o_z.js +0 -2
- package/dist/client/assets/ReposScreen-D-E7fSAB.js +0 -6
- package/dist/client/assets/RiggedWorkerCharacter-BpYECnyK.css +0 -1
- package/dist/client/assets/RiggedWorkerCharacter-CF6fhzGd.js +0 -1
- package/dist/client/assets/SageModelStudio-768dRQr4.css +0 -1
- package/dist/client/assets/SageModelStudio-CSet_ITs.js +0 -4108
- package/dist/client/assets/ScoutDeckSurface-BJ-fl8AX.js +0 -1
- package/dist/client/assets/ScoutDeckSurface-uhmuZRzC.css +0 -1
- package/dist/client/assets/ScoutSurface-BvFRdce6.js +0 -1
- package/dist/client/assets/ScoutbotFxLab-CfPzycZ7.js +0 -4
- package/dist/client/assets/SecondaryNav-1FjBDWuY.js +0 -1
- package/dist/client/assets/SessionContextStrip-BoiIxXvS.js +0 -1
- package/dist/client/assets/SessionContextStrip-DAIXwtHd.css +0 -1
- package/dist/client/assets/SessionEmbedScreen-BizGNGOz.js +0 -1
- package/dist/client/assets/SessionHopMenu-DX6PJPNk.js +0 -1
- package/dist/client/assets/SessionObserve-CDdJ7fAE.css +0 -1
- package/dist/client/assets/SessionObserve-Dw3bVQYF.js +0 -12
- package/dist/client/assets/SessionObserveEvidence-uD1OX-R5.js +0 -1
- package/dist/client/assets/SessionRefScreen-Ch9H-qVk.js +0 -1
- package/dist/client/assets/SessionsScreen-DUeP23Xy.js +0 -1
- package/dist/client/assets/SettingsDrawer-BVrP6J52.js +0 -3
- package/dist/client/assets/SettingsDrawer-R8a0TlJD.css +0 -1
- package/dist/client/assets/SettingsScreen-BcJ05LE5.js +0 -1
- package/dist/client/assets/SharedFloorCharacter-Bi5_md4R.css +0 -1
- package/dist/client/assets/SharedFloorCharacter-dnamlt1p.js +0 -1
- package/dist/client/assets/SharedWorkFloor-0rqtdF-n.css +0 -1
- package/dist/client/assets/SharedWorkFloor-H-e2TVj9.js +0 -2
- package/dist/client/assets/ShikiPane-CDiIT_qn.js +0 -15
- package/dist/client/assets/SlidePanel-Bg5dVaIa.css +0 -1
- package/dist/client/assets/SlidePanel-D5oPQocF.js +0 -1
- package/dist/client/assets/SpaceSwitcher-WccPJ0fS.js +0 -1
- package/dist/client/assets/SpriteAvatar-D53GaaK3.js +0 -1
- package/dist/client/assets/SproutActionSprite-BrFCmgWS.js +0 -1
- package/dist/client/assets/StatusPill-jT--OXbn.js +0 -1
- package/dist/client/assets/TailView-B44cSuyl.js +0 -2
- package/dist/client/assets/TailView-Mj3AU2u0.css +0 -1
- package/dist/client/assets/Terminal-D0PanmIk.js +0 -4
- package/dist/client/assets/TerminalEmbedScreen-Eddi4sts.js +0 -1
- package/dist/client/assets/TerminalHeaderMount-CYYcKxQ-.js +0 -1
- package/dist/client/assets/TextDocumentSurface-DBslUq9k.js +0 -4
- package/dist/client/assets/TmuxPeek-Ctw5yYO5.js +0 -1
- package/dist/client/assets/VoiceControlWell-BkjuWjYu.js +0 -1
- package/dist/client/assets/VoicePathDiagram-u0i6ntbx.js +0 -1
- package/dist/client/assets/VoicePermissionsPanel-9Nuw-xCr.js +0 -1
- package/dist/client/assets/VoicePermissionsPanel-RijAZ1gP.css +0 -1
- package/dist/client/assets/VoiceTurnDetails-kS7lfbmt.js +0 -8
- package/dist/client/assets/VoiceTurnStage-DLY6aYDg.js +0 -1
- package/dist/client/assets/VoiceTurnView-CF4tIldB.js +0 -1
- package/dist/client/assets/WorkDetailScreen-BrrkENYq.js +0 -5
- package/dist/client/assets/WorkFilesViewer-B63sKRYZ.js +0 -1
- package/dist/client/assets/WorkRunView-CxwAZ2QQ.css +0 -1
- package/dist/client/assets/WorkRunView-DLIzAsc3.js +0 -1
- package/dist/client/assets/WorldActorTalk-CHhFTiQV.js +0 -1
- package/dist/client/assets/WorldCharacter-CJGx2DVy.js +0 -1
- package/dist/client/assets/WorldMinimap-DL12pBw3.js +0 -1
- package/dist/client/assets/WorldSky-BlPNvGLo.js +0 -1
- package/dist/client/assets/activity-CXkZ620t.js +0 -1
- package/dist/client/assets/addon-fit-G3qi01sy.js +0 -1
- package/dist/client/assets/addon-webgl-Bo7kSgOB.js +0 -82
- package/dist/client/assets/adventure-evidence-DgQbBmfa.css +0 -1
- package/dist/client/assets/adventure-habitats-v1-CVMbdB_Z.png +0 -0
- package/dist/client/assets/adventure-habitats-v1-M1lcpTJh.js +0 -1
- package/dist/client/assets/adventure-playback-DTfkhIc0.js +0 -3
- package/dist/client/assets/adventure-reader-DM5UDDm9.css +0 -1
- package/dist/client/assets/agent-adventures-DZtWpj6k.css +0 -1
- package/dist/client/assets/agent-definitions-CymTYqvo.css +0 -1
- package/dist/client/assets/agent-directory-studio-injection-Bc8590z5.css +0 -1
- package/dist/client/assets/agent-essentials-DnfdGmIX.js +0 -1
- package/dist/client/assets/agent-floor-Dmr9hZHL.css +0 -1
- package/dist/client/assets/agent-floor-actor-DW8zLht0.js +0 -1
- package/dist/client/assets/agent-floor-world-Bnd1AtwK.css +0 -1
- package/dist/client/assets/agent-floor-world-layout-hfMjuoui.js +0 -1
- package/dist/client/assets/agent-lane-card-BkWVDYM8.css +0 -1
- package/dist/client/assets/agent-lane-card-model-CeqQGp-8.js +0 -1
- package/dist/client/assets/agent-lane-detail-Ti3trpfH.js +0 -2
- package/dist/client/assets/agent-lane-preview-Dpa3DuOn.js +0 -4
- package/dist/client/assets/agent-lanes-DmgipV9D.css +0 -1
- package/dist/client/assets/agent-lanes-model-DMAdqCmK.js +0 -4
- package/dist/client/assets/agent-master-THmq-1k8.css +0 -1
- package/dist/client/assets/agent-master-model-Bk_yuUXJ.js +0 -1
- package/dist/client/assets/agent-specialization-DYX_DSlY.js +0 -1
- package/dist/client/assets/agent-state-DDhnFEEP.js +0 -1
- package/dist/client/assets/agents-detail-redesign-h34ROjOW.css +0 -1
- package/dist/client/assets/agents-project-DgbqDc65.css +0 -1
- package/dist/client/assets/agents-screen-BYakbO50.css +0 -1
- package/dist/client/assets/api-BQYTwoz6.js +0 -1
- package/dist/client/assets/api-DSqpVKC7.js +0 -1
- package/dist/client/assets/arc.es-CLA3XI14.js +0 -188
- package/dist/client/assets/arrow-down--OUDFWIq.js +0 -1
- package/dist/client/assets/arrow-left-DNjQHf4C.js +0 -1
- package/dist/client/assets/arrow-right-A_yyXwoH.js +0 -1
- package/dist/client/assets/arrow-up-DFy-9ghF.js +0 -1
- package/dist/client/assets/arrow-up-right-DUW1A1Hb.js +0 -1
- package/dist/client/assets/bash-format-BRV5C6Gv.js +0 -1
- package/dist/client/assets/book-open-B_idZgTF.js +0 -1
- package/dist/client/assets/bot-BNv_ZJzi.js +0 -1
- package/dist/client/assets/briefings-BwuAFQK6.css +0 -1
- package/dist/client/assets/broker-display-BkBzyvbR.js +0 -2
- package/dist/client/assets/cache-DGBo3vIf.js +0 -2
- package/dist/client/assets/chat-api-BHGHALv2.js +0 -2
- package/dist/client/assets/chat-message-markup-esR-YLtN.js +0 -1
- package/dist/client/assets/chat-space-model-aW3Fd8_U.js +0 -4
- package/dist/client/assets/chat-transport-CtxnPLMU.js +0 -1
- package/dist/client/assets/check-BM6QtbB7.js +0 -1
- package/dist/client/assets/chevron-down-DEDSNJNY.js +0 -1
- package/dist/client/assets/chevron-right-B02kAw12.js +0 -1
- package/dist/client/assets/chevron-up-CzveykKG.js +0 -1
- package/dist/client/assets/chunk-HRAB3GC3-DVhUsgOw.js +0 -1
- package/dist/client/assets/chunk-JTPDIGGW-hdpdYwXb.js +0 -46
- package/dist/client/assets/chunk-T65CQEWV-G_Z0lqtn.js +0 -1
- package/dist/client/assets/chunk-YOZR3KYS-apgUnfXh.js +0 -2
- package/dist/client/assets/clipboard-e3fSpeo7.js +0 -1
- package/dist/client/assets/clock-8tb9t2t9.js +0 -1
- package/dist/client/assets/code-screen-DrKinCyh.css +0 -1
- package/dist/client/assets/code-xml-E9gBuiVs.js +0 -1
- package/dist/client/assets/coffee-D0YEK6-l.js +0 -1
- package/dist/client/assets/collapsed-strip-raJWthAH.css +0 -1
- package/dist/client/assets/colors-CFlbwC25.js +0 -1
- package/dist/client/assets/comms-deck-C8nVeMBh.css +0 -1
- package/dist/client/assets/comms-deck-CBhsXnY-.js +0 -2
- package/dist/client/assets/comms-gesture-_aGFo6g3.js +0 -2
- package/dist/client/assets/compass-EmGkpxIe.js +0 -1
- package/dist/client/assets/console-B1IBqLI_.css +0 -1
- package/dist/client/assets/content-B-rn1rka.js +0 -1
- package/dist/client/assets/content-BHV-ZU8_.js +0 -1
- package/dist/client/assets/content-BI9yWpWC.js +0 -1
- package/dist/client/assets/content-BLVuukzF.js +0 -1
- package/dist/client/assets/content-BP3cQkAj.js +0 -1
- package/dist/client/assets/content-BRY-UTkP.js +0 -1
- package/dist/client/assets/content-BXTmYOPB.js +0 -1
- package/dist/client/assets/content-C3DZ77HZ.js +0 -1
- package/dist/client/assets/content-CINHz-rZ.css +0 -1
- package/dist/client/assets/content-CPchclaV.js +0 -1
- package/dist/client/assets/content-CVqPTQnr.js +0 -1
- package/dist/client/assets/content-CjAERU44.js +0 -1
- package/dist/client/assets/content-CoYG0nWL.js +0 -1
- package/dist/client/assets/content-DK1KeRPw.js +0 -1
- package/dist/client/assets/content-iWBSSXa6.js +0 -1
- package/dist/client/assets/content-ryJeaQk8.js +0 -1
- package/dist/client/assets/content-srNyLgDt.js +0 -1
- package/dist/client/assets/context-budget-8qFKqM-j.js +0 -1
- package/dist/client/assets/conversation-icons-Dxn9N1Kx.js +0 -1
- package/dist/client/assets/conversation-model-FxDeWlle.js +0 -1
- package/dist/client/assets/conversation-motion-features-BfmPlONx.js +0 -1
- package/dist/client/assets/conversation-prefs-DNre-Lcx.js +0 -1
- package/dist/client/assets/conversations-DoAAO6kA.js +0 -1
- package/dist/client/assets/copy-C1XrY27_.js +0 -1
- package/dist/client/assets/cpu-DVZ_LhPn.js +0 -1
- package/dist/client/assets/createLucideIcon-CKbjXlwv.js +0 -1
- package/dist/client/assets/credentials-OeoF-VKJ.js +0 -1
- package/dist/client/assets/ctx-panel-BC8fpcWJ.css +0 -1
- package/dist/client/assets/direct-voice-DAOUU-kc.js +0 -10
- package/dist/client/assets/direct-voice-DbO7CSv_.css +0 -1
- package/dist/client/assets/discover-BNa3BPr_.js +0 -2
- package/dist/client/assets/embed-entry-gK3z8Yxi.js +0 -2
- package/dist/client/assets/embed-navigation-DayfkQau.js +0 -1
- package/dist/client/assets/external-link-Df1R34rX.js +0 -1
- package/dist/client/assets/eye-CD-_aphP.js +0 -1
- package/dist/client/assets/file-code-corner-DtMWHBN3.js +0 -1
- package/dist/client/assets/file-text-BOJQiS8p.js +0 -1
- package/dist/client/assets/flag-CeKO8NoD.js +0 -1
- package/dist/client/assets/fleet-roll-call-BUgf7w-V.css +0 -1
- package/dist/client/assets/flight-observe-GFg9L8ft.css +0 -1
- package/dist/client/assets/floor-character-name-CqJPOlXb.js +0 -1
- package/dist/client/assets/floor-context-model-rWKqaKmV.js +0 -1
- package/dist/client/assets/floor-context-sheet-BFnkFiY3.css +0 -1
- package/dist/client/assets/floor-memory-YMM8AlLY.js +0 -1
- package/dist/client/assets/floor-message-passes-CO3Ix_wR.js +0 -1
- package/dist/client/assets/floor-preview-text-HrORUJ7D.js +0 -1
- package/dist/client/assets/floor-replay-CccYqE-f.css +0 -1
- package/dist/client/assets/floor-tactical-hud-HL5Vja5Y.css +0 -1
- package/dist/client/assets/folder-C2emmTHq.js +0 -1
- package/dist/client/assets/follow-route-BvcGtBIL.js +0 -1
- package/dist/client/assets/fx-z37u1o2z.js +0 -1
- package/dist/client/assets/gauge-BR5CrhRM.js +0 -1
- package/dist/client/assets/gestures-Dh8szhcU.js +0 -1
- package/dist/client/assets/git-branch-C45vy8qT.js +0 -1
- package/dist/client/assets/go-shortcuts--25Qg0lD.js +0 -1
- package/dist/client/assets/harnesses-screen-2z36fJKE.css +0 -1
- package/dist/client/assets/home-live-action-BkqGLVRY.js +0 -1
- package/dist/client/assets/home-moving-signal-BiiyEKEb.js +0 -1
- package/dist/client/assets/home-moving-signal-DMguaRWR.css +0 -1
- package/dist/client/assets/home-now-card-DaCpqUZe.js +0 -1
- package/dist/client/assets/home-now-card-nano-wbxgyY4q.js +0 -1
- package/dist/client/assets/hooks-D787lBmm.css +0 -1
- package/dist/client/assets/hooks-JNwYSH18.js +0 -2
- package/dist/client/assets/host-advisor-B2Fqs5Dd.css +0 -1
- package/dist/client/assets/inbox-thread-redesign-B_1ocqaX.css +0 -1
- package/dist/client/assets/index-BFbLvCJn.js +0 -10
- package/dist/client/assets/index-BRNHY2fp.css +0 -1
- package/dist/client/assets/index-BWHgHrtv.js +0 -1
- package/dist/client/assets/index-BrXaMEdK.js +0 -1
- package/dist/client/assets/index-CXzJ_hGx.js +0 -1
- package/dist/client/assets/index-V8FYEUpD.js +0 -1
- package/dist/client/assets/index-mYtyYeAe.js +0 -1
- package/dist/client/assets/index-wLwc74Pu.css +0 -1
- package/dist/client/assets/inspector-panel-BgU5xUln.js +0 -2
- package/dist/client/assets/keyboard-nav-CEe-ApvZ.js +0 -1
- package/dist/client/assets/knowledge-search-BNdQweGz.css +0 -1
- package/dist/client/assets/lane-ask-display-BTVSakyo.js +0 -18
- package/dist/client/assets/lane-edit-display-BjdT9oZl.js +0 -9
- package/dist/client/assets/lane-observe-CteDwdD-.js +0 -7
- package/dist/client/assets/lane-roster-store-MraynTHP.js +0 -1
- package/dist/client/assets/lane-tool-detail-Czggx8oM.js +0 -9
- package/dist/client/assets/layers-ClmyjwpB.js +0 -1
- package/dist/client/assets/layout-grid-DG2-JaPn.js +0 -1
- package/dist/client/assets/left-B66YR0c5.js +0 -1
- package/dist/client/assets/left-BP5P8lzw.js +0 -2
- package/dist/client/assets/left-BV9yMiTL.css +0 -1
- package/dist/client/assets/left-BbCKRDbW.js +0 -1
- package/dist/client/assets/left-CAaRBK9S.css +0 -1
- package/dist/client/assets/left-CaY5FK2k.js +0 -1
- package/dist/client/assets/left-CemrfeSs.js +0 -1
- package/dist/client/assets/left-DcYA26sH.js +0 -1
- package/dist/client/assets/left-DdMMaqFT.js +0 -2
- package/dist/client/assets/left-R2OOE7VG.css +0 -1
- package/dist/client/assets/left-advisor-DBml48M5.js +0 -1
- package/dist/client/assets/left-agents-DowYF2ag.js +0 -1
- package/dist/client/assets/left-default-Bifaeg_V.js +0 -1
- package/dist/client/assets/left-lanes-BGhjdqpD.js +0 -1
- package/dist/client/assets/left-mission-CvXPUovR.js +0 -1
- package/dist/client/assets/left-mission-DENnfshd.css +0 -1
- package/dist/client/assets/library-CnC8uzJt.js +0 -1
- package/dist/client/assets/loader-circle-CCG7hG7z.js +0 -1
- package/dist/client/assets/local-agents-BMcFlY_x.js +0 -1
- package/dist/client/assets/log-in-VL9mdgeE.js +0 -1
- package/dist/client/assets/machine-children-DvCiQxwA.js +0 -1
- package/dist/client/assets/machine-scope-DJt9RZ2w.js +0 -1
- package/dist/client/assets/media-blobs-Bi8pxr1u.js +0 -1
- package/dist/client/assets/mentions-s5oW4aQU.js +0 -1
- package/dist/client/assets/mesh-ops-9SzD3sPw.js +0 -1
- package/dist/client/assets/mesh-ops-B1kDjizF.css +0 -1
- package/dist/client/assets/mesh-screen-DjA4mOaN.css +0 -1
- package/dist/client/assets/mesh-view-store-CVqzYz4K.js +0 -1
- package/dist/client/assets/message-circle-BB3rFCVD.js +0 -1
- package/dist/client/assets/message-markup-BQW5jdJw.js +0 -15
- package/dist/client/assets/message-markup-D1C7GzHo.js +0 -1
- package/dist/client/assets/message-square-BwqBIfv5.js +0 -1
- package/dist/client/assets/message-visibility-DwxgcgYK.js +0 -1
- package/dist/client/assets/mission-control-CsX3Yc58.css +0 -1
- package/dist/client/assets/mission-control-model-BpJHDV5D.js +0 -1
- package/dist/client/assets/mission-control-store-e8F85JhP.js +0 -1
- package/dist/client/assets/mission-wall-CAo4BKfa.js +0 -1
- package/dist/client/assets/model-CBkMvT1w.js +0 -1
- package/dist/client/assets/monitor-M0VSmHQ-.js +0 -1
- package/dist/client/assets/nav-destinations-B3R5zxFX.js +0 -1
- package/dist/client/assets/observe-M3rLosT5.js +0 -1
- package/dist/client/assets/openAgent-Dbv5wfuL.js +0 -1
- package/dist/client/assets/openContent-C6XO6kr5.js +0 -1
- package/dist/client/assets/operator-attention-DBaRg5ep.js +0 -1
- package/dist/client/assets/ops-agents-BOYxzPTm.css +0 -1
- package/dist/client/assets/ops-atop-BB4B4JdE.css +0 -1
- package/dist/client/assets/ops-screen-CxYM0VOW.css +0 -1
- package/dist/client/assets/page-status-BIuh3C5p.js +0 -1
- package/dist/client/assets/page-status-bar-ByUD7VPM.css +0 -1
- package/dist/client/assets/panel-right-WKLdPm0F.js +0 -1
- package/dist/client/assets/paperclip-DLf_ABSv.js +0 -1
- package/dist/client/assets/pause-7mmEEvVx.js +0 -1
- package/dist/client/assets/persistent-state-3mbBFRDO.js +0 -1
- package/dist/client/assets/pin-q_0gAA6i.js +0 -1
- 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-N5-hnPCV.js +0 -1
- package/dist/client/assets/plus-B0hdY0fF.js +0 -1
- package/dist/client/assets/profile-B7ZGToTo.js +0 -1
- package/dist/client/assets/project-overview-helpers-BQTc_Ous.js +0 -1
- package/dist/client/assets/projects-inbox-CMFBjQt0.js +0 -1
- package/dist/client/assets/projects-inbox-ColX6lpx.css +0 -1
- package/dist/client/assets/proxy-k0ILOVkK.js +0 -1
- package/dist/client/assets/radio-Bjqmv997.js +0 -1
- package/dist/client/assets/refresh-cw-BcqctLqo.js +0 -1
- package/dist/client/assets/repo-diff-DyYmQMSA.css +0 -1
- package/dist/client/assets/resizable-columns-C7ygvLt8.css +0 -1
- package/dist/client/assets/resolve-panes-wzGu9d8o.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-C8SOo5oZ.js +0 -1
- package/dist/client/assets/right-9rMRZN_r.js +0 -1
- package/dist/client/assets/right-BHZq648O.js +0 -1
- package/dist/client/assets/right-BNJzCaH9.js +0 -2
- package/dist/client/assets/right-CAd7lTvY.js +0 -1
- package/dist/client/assets/right-Cc57bCTW.js +0 -1
- package/dist/client/assets/right-DY49Prjj.js +0 -1
- package/dist/client/assets/right-DfU47xKY.js +0 -1
- package/dist/client/assets/right-Dr7vxdZl.js +0 -1
- package/dist/client/assets/right-DsE4aR3A.js +0 -1
- package/dist/client/assets/right-zlkRjnkv.js +0 -1
- package/dist/client/assets/rocket-BahsdUe6.js +0 -1
- package/dist/client/assets/router-CJIx83Ia.js +0 -1
- package/dist/client/assets/runtime-picker-C3JwrDKP.css +0 -1
- package/dist/client/assets/runtime-picker-IRcTkMZ5.js +0 -1
- package/dist/client/assets/scope-views-4khCg2_z.css +0 -1
- package/dist/client/assets/scope-views-KDtZoLUC.js +0 -1
- package/dist/client/assets/scout-voice-Cdh6pCsb.js +0 -1
- package/dist/client/assets/scoutbot-Bk3nyrkj.js +0 -3
- package/dist/client/assets/scoutbot-markdown-7PRQHaAc.js +0 -6
- package/dist/client/assets/scroll-text-CA0QxBHu.js +0 -1
- package/dist/client/assets/search-Bv2IONmc.js +0 -1
- package/dist/client/assets/secondaryNavConfig-Bmb-oRvD.js +0 -1
- package/dist/client/assets/secondaryNavConfig-D15P1Y9k.css +0 -1
- package/dist/client/assets/selection-bridge-CthAuPRw.js +0 -1
- package/dist/client/assets/send-horizontal-_Tf_It04.js +0 -1
- package/dist/client/assets/send-to-agent-session-CWDHHgFB.js +0 -1
- package/dist/client/assets/server-U_l8A83n.js +0 -1
- package/dist/client/assets/session-catalog-Dx4tl3sx.js +0 -1
- package/dist/client/assets/session-recap-lanes-D-eVJnpY.js +0 -1
- package/dist/client/assets/session-recap-queue-GeicPLsQ.js +0 -1
- package/dist/client/assets/session-ref-lookup-state-SATH_jAP.js +0 -1
- package/dist/client/assets/session-table-BI62J4NP.js +0 -1
- package/dist/client/assets/sessionRead-CvFz2RHv.js +0 -1
- package/dist/client/assets/sessions-view-lGMwwZY7.js +0 -1
- package/dist/client/assets/settings-bo9X410k.js +0 -1
- package/dist/client/assets/shared-work-artifacts-DfNl9KTo.js +0 -1
- package/dist/client/assets/sliders-horizontal-CPSx6wd2.js +0 -1
- package/dist/client/assets/solar-system-scope-2k-stars-points-1FwHnkj0.png +0 -0
- package/dist/client/assets/sparkles-Br-bA2aZ.js +0 -1
- package/dist/client/assets/sprout-action-sprite-DZ8C0fTl.css +0 -1
- package/dist/client/assets/sprout-actions-proof-v1-BzUdc812.png +0 -0
- package/dist/client/assets/sse-BVxO0zNp.js +0 -1
- package/dist/client/assets/status-tone-BM_zuRy1.js +0 -1
- package/dist/client/assets/surface-activity-B1rgWB1i.js +0 -1
- package/dist/client/assets/synthetic-agent-routing-aduMYO7P.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-q2BmCB7e.css +0 -1
- package/dist/client/assets/tail-display-DHSNmvor.js +0 -2
- package/dist/client/assets/tail-events-C6NWFB1N.js +0 -1
- package/dist/client/assets/terminal-DMBAZjPP.js +0 -1
- package/dist/client/assets/terminal-relay-CpGHpDa8.js +0 -1
- package/dist/client/assets/terminal-screen-Bpb2SZrn.css +0 -1
- package/dist/client/assets/terminal-sessions-3RfJpen8.js +0 -1
- package/dist/client/assets/terminal-takeover-CXwdoZ5j.js +0 -1
- package/dist/client/assets/theme-vars-DNK0nn3k.js +0 -1
- package/dist/client/assets/time-Dhsh_2EG.js +0 -1
- package/dist/client/assets/triangle-alert-BZikHKuT.js +0 -1
- package/dist/client/assets/types-B0PlfpKc.js +0 -1
- package/dist/client/assets/ui-LM8pS8qE.js +0 -1
- package/dist/client/assets/use-beside-DopIbJwf.js +0 -1
- package/dist/client/assets/use-conversation-list-CGtcpdPd.js +0 -1
- package/dist/client/assets/use-fleet-active-asks-DAHOPYPV.js +0 -1
- package/dist/client/assets/use-mesh-node-state-BlWIPTc4.js +0 -1
- package/dist/client/assets/use-mesh-ops-items-pKWBro7o.js +0 -1
- package/dist/client/assets/use-reduced-motion-DkdIQBwh.js +0 -1
- package/dist/client/assets/use-scout-dev-flags-CduUFb7l.js +0 -1
- package/dist/client/assets/useAgentHoverCard-DNlXPYQf.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-LJGNYG3U.js +0 -1
- package/dist/client/assets/useEmbedHeadline-BeeBDb7E.js +0 -1
- package/dist/client/assets/usePierreRuntime-DUXZ-DTK.js +0 -50
- package/dist/client/assets/useSidebarCollapse-DoMvU_2R.js +0 -1
- package/dist/client/assets/users-BQPEIUfd.js +0 -1
- package/dist/client/assets/voice-levels-Dcr3jglk.js +0 -1
- package/dist/client/assets/voice-paths-CJUuBPh3.css +0 -1
- package/dist/client/assets/voice-turn-DftA0iIb.css +0 -1
- package/dist/client/assets/voice-turn-ledger-BMZxlSjg.js +0 -1
- 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-C-wjicn5.js +0 -1
- package/dist/client/assets/x-BcfhXYiF.js +0 -1
- package/dist/client/assets/xterm-qXD45dc0.js +0 -34
- package/dist/client/assets/zap-BqL8ttGz.js +0 -1
- package/dist/client/characters/sage/sage.glb +0 -0
- package/dist/highlights-eq9cgrbb.scm +0 -604
- package/dist/highlights-ghv9g403.scm +0 -205
- package/dist/highlights-hk7bwhj4.scm +0 -284
- package/dist/highlights-r812a2qc.scm +0 -150
- package/dist/highlights-x6tmsnaa.scm +0 -115
- package/dist/injections-73j83es3.scm +0 -27
- 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
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{r as u,j as s}from"./index-BFbLvCJn.js";import{C as pe}from"./chunk-T65CQEWV-G_Z0lqtn.js";import{u as ne,t as oe,a as D,b as ue,c as fe,d as xe,e as ye,f as we}from"./mesh-view-store-CVqzYz4K.js";import{NodeMenu as ge,nodeMenuRowProps as be}from"./NodeMenu-BgJMmffZ.js";import{c as ve,b as Ne}from"./machine-children-DvCiQxwA.js";import{u as je,s as Ce,r as Me}from"./use-mesh-node-state-BlWIPTc4.js";import{n as T}from"./agent-state-DDhnFEEP.js";import{s as z}from"./colors-CFlbwC25.js";import{t as Z}from"./time-Dhsh_2EG.js";import{u as Ie}from"./Provider-BEXAZWd9.js";import{u as He}from"./useAgentHoverCard-DNlXPYQf.js";import"./plus-B0hdY0fF.js";import"./createLucideIcon-CKbjXlwv.js";import"./index-CXzJ_hGx.js";import"./api-DSqpVKC7.js";import"./theme-vars-DNK0nn3k.js";import"./router-CJIx83Ia.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BVxO0zNp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-D-VB5vdt.js";import"./runtime-picker-IRcTkMZ5.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CCG7hG7z.js";import"./media-blobs-Bi8pxr1u.js";import"./HarnessMark-CP-PWk2W.js";import"./conversation-model-FxDeWlle.js";import"./conversations-DoAAO6kA.js";import"./NewChatOrigin-BYsEu9dZ.js";import"./keyboard-nav-CEe-ApvZ.js";import"./x-BcfhXYiF.js";import"./chevron-down-DEDSNJNY.js";import"./search-Bv2IONmc.js";import"./file-text-BOJQiS8p.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-mxzPxQQW.js";import"./TextDocumentSurface-DBslUq9k.js";import"./index-V8FYEUpD.js";import"./chevron-right-B02kAw12.js";import"./folder-C2emmTHq.js";import"./chevron-up-CzveykKG.js";import"./code-xml-E9gBuiVs.js";import"./arrow-left-DNjQHf4C.js";import"./arrow-right-A_yyXwoH.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DVhUsgOw.js";import"./AgentDetailCard-CI-ufaEP.js";import"./AgentLiveActions-CkRGkv13.js";import"./terminal-takeover-CXwdoZ5j.js";import"./openContent-C6XO6kr5.js";import"./eye-CD-_aphP.js";import"./terminal-DMBAZjPP.js";function $e(e,t){if(t.type==="pan")return{...e,pan:{x:e.pan.x+t.delta.x,y:e.pan.y+t.delta.y}};if(t.type==="zoom"){const n=Math.max(.25,Math.min(4,e.scale*t.factor)),{mx:i,my:d,cx:o,cy:f}=t,p=(i-o)/e.scale-e.pan.x,y=(d-f)/e.scale-e.pan.y;return{scale:n,pan:{x:(i-o)/n-p,y:(d-f)/n-y}}}return e}const re="openscout.mesh.canvas.viewport.v1";function Se(){const e={pan:{x:0,y:0},scale:1};if(typeof window>"u")return e;try{const t=window.sessionStorage.getItem(re);if(!t)return e;const n=JSON.parse(t);if(n&&typeof n=="object"&&typeof n.scale=="number"&&n.pan&&typeof n.pan.x=="number"&&typeof n.pan.y=="number")return{pan:{x:n.pan.x,y:n.pan.y},scale:n.scale}}catch{}return e}function ke(e){const t=e.name&&e.name.trim()||e.handle&&e.handle.trim()||e.harness&&e.harness.trim()||"agent";return{key:t.toLowerCase(),label:t}}function Ee(e){const t=new Map;for(const n of e){const{key:i,label:d}=ke(n);let o=t.get(i);o||(o={key:i,label:d,instances:[]},t.set(i,o)),o.instances.push(n)}return Array.from(t.values()).map(n=>(n.instances.sort((i,d)=>i.id.localeCompare(d.id)),n)).sort((n,i)=>{const d=n.label.localeCompare(i.label);return d!==0?d:i.instances.length-n.instances.length})}function Ae(e){switch(e){case"compact":return{density:e,instanceW:138,instanceH:32,stepX:144,stepY:38,clusterPadX:12,clusterPadY:12,labelH:22,clusterGap:16};case"spacious":return{density:e,instanceW:260,instanceH:68,stepX:268,stepY:76,clusterPadX:14,clusterPadY:14,labelH:26,clusterGap:16};default:return{density:"comfortable",instanceW:210,instanceH:52,stepX:218,stepY:60,clusterPadX:12,clusterPadY:12,labelH:24,clusterGap:14}}}function _e(e,t){return Math.max(1,Math.round(Math.sqrt(e*t)))}function Ye(e,t,n){if(e.length===0)return[];const i=e.map(h=>{const I=h.instances.length,r=_e(I,Math.max(.6,Math.min(n,2))),H=Math.ceil(I/r),C=r*t.stepX-(t.stepX-t.instanceW),E=H*t.stepY-(t.stepY-t.instanceH);return{cluster:h,cols:r,width:C+t.clusterPadX*2,height:E+t.clusterPadY*2+t.labelH}}),d=i.reduce((h,I)=>h+I.width*I.height,0),o=Math.max(Math.max(...i.map(h=>h.width)),Math.sqrt(d*n)),f=t.clusterGap,p=[];let y=0,M=0,g=0;for(const h of i)y>0&&y+h.width>o&&(M+=g+f,y=0,g=0),p.push({cluster:h.cluster,x:y,y:M,width:h.width,height:h.height,cols:h.cols}),y+=h.width+f,g=Math.max(g,h.height);const b=Math.min(...p.map(h=>h.x)),l=Math.max(...p.map(h=>h.x+h.width)),v=Math.min(...p.map(h=>h.y)),j=Math.max(...p.map(h=>h.y+h.height)),c=-((b+l)/2),x=-((v+j)/2);return p.map(h=>({...h,x:h.x+c,y:h.y+x}))}function Pe(e,t,n){const i=e%t,d=Math.floor(e/t);return{x:n.clusterPadX+i*n.stepX,y:n.labelH+n.clusterPadY+d*n.stepY}}function ee(e){const t=e.harness?.trim(),n=e.model?.trim();return t&&n?`${t}/${n}`:t||n||"—"}function se(e){const t=e.project?.trim(),n=e.branch?.trim();return t&&n?`${t}/${n}`:t||n||"—"}function B(e){return e.cwd||e.projectRoot||"—"}function te({onClick:e}){return s.jsx("button",{type:"button",className:"mesh-sheet-open",title:"Open agent view","aria-label":"Open agent view",onClick:t=>{t.stopPropagation(),e()},children:"↗"})}function Oe({agent:e,onOpen:t,bindings:n,active:i}){const d=T(e.state),o=e.agentClass==="organic",f=e.updatedAt?Z(e.updatedAt):"",p=ee(e),y=se(e);return s.jsxs("div",{...n??{},className:`mesh-instance-spec mesh-instance-spec--${d}${o?" mesh-instance-spec--organic":""}${i?" mesh-instance--active":""}`,style:{"--state-stripe":z(e.state)},title:`${p} — ${y}`,children:[s.jsxs("span",{className:"mesh-instance-spec-row",children:[s.jsx("span",{className:"mesh-instance-spec-primary",children:p}),f&&s.jsx("span",{className:"mesh-instance-spec-time",children:f})]}),s.jsxs("span",{className:"mesh-instance-spec-row",children:[s.jsx("span",{className:"mesh-instance-spec-secondary",children:y}),s.jsx(te,{onClick:t})]})]})}function Xe({agent:e,onOpen:t,bindings:n,active:i}){const d=T(e.state),o=e.agentClass==="organic",f=e.updatedAt?Z(e.updatedAt):"—",p=`${ee(e)} · ${se(e)}`;return s.jsxs("div",{...n??{},className:`mesh-instance-sheet mesh-instance-sheet--${d}${o?" mesh-instance-sheet--organic":""}${i?" mesh-instance--active":""}`,style:{"--state-stripe":z(e.state)},title:`${p}
|
|
2
|
-
${B(e)}`,children:[s.jsxs("span",{className:"mesh-sheet-line mesh-sheet-line--head",children:[s.jsx("span",{className:"mesh-sheet-id",children:p}),s.jsx("span",{className:"mesh-sheet-time",children:f}),s.jsx(te,{onClick:t})]}),s.jsxs("span",{className:"mesh-sheet-line",children:[s.jsx("span",{className:"mesh-sheet-path",children:B(e)}),s.jsxs("span",{className:"mesh-sheet-ctx",children:[s.jsx("span",{className:"mesh-sheet-ctx-label",children:"CTX"})," —"]})]})]})}function Le({agent:e,onOpen:t,bindings:n,active:i}){const d=T(e.state),o=e.agentClass==="organic",f=e.updatedAt?Z(e.updatedAt):"—",p=`${ee(e)} · ${se(e)}`,y=e.agentClass?.trim();return s.jsxs("div",{...n??{},className:`mesh-instance-sheet mesh-instance-sheet--spacious mesh-instance-sheet--${d}${o?" mesh-instance-sheet--organic":""}${i?" mesh-instance--active":""}`,style:{"--state-stripe":z(e.state)},title:`${p}
|
|
3
|
-
${B(e)}`,children:[s.jsxs("span",{className:"mesh-sheet-line mesh-sheet-line--head",children:[s.jsx("span",{className:"mesh-sheet-id",children:p}),s.jsx("span",{className:"mesh-sheet-time",children:f}),s.jsx(te,{onClick:t})]}),s.jsx("span",{className:"mesh-sheet-line",children:s.jsx("span",{className:"mesh-sheet-path",children:B(e)})}),s.jsxs("span",{className:"mesh-sheet-line",children:[s.jsxs("span",{className:"mesh-sheet-ctx",children:[s.jsx("span",{className:"mesh-sheet-ctx-label",children:"CTX"})," —"]}),y&&s.jsx("span",{className:"mesh-sheet-tag",children:y})]})]})}function Re({layout:e,metrics:t,onAgentOpen:n,bindFor:i,activeId:d}){const{cluster:o,x:f,y:p,width:y,height:M,cols:g}=e,b=u.useMemo(()=>{const l={working:0,ready:0,notReady:0};for(const v of o.instances){const j=T(v.state);j==="in_turn"||j==="in_flight"?l.working+=1:j==="callable"?l.ready+=1:l.notReady+=1}return l},[o.instances]);return s.jsxs("div",{className:"mesh-cluster",style:{position:"absolute",left:f,top:p,width:y,height:M},children:[s.jsxs("div",{className:"mesh-cluster-header",style:{height:t.labelH},children:[s.jsx("span",{className:"mesh-cluster-name",children:o.label}),s.jsx("span",{className:"mesh-cluster-count",children:o.instances.length}),s.jsxs("span",{className:"mesh-cluster-states",children:[b.working>0&&s.jsxs("span",{className:"mesh-cluster-state mesh-cluster-state--working",children:[s.jsx("span",{className:"mesh-cluster-state-dot"}),b.working]}),b.ready>0&&s.jsxs("span",{className:"mesh-cluster-state mesh-cluster-state--available",children:[s.jsx("span",{className:"mesh-cluster-state-dot"}),b.ready]}),b.notReady>0&&s.jsxs("span",{className:"mesh-cluster-state mesh-cluster-state--offline",children:[s.jsx("span",{className:"mesh-cluster-state-dot"}),b.notReady]})]})]}),o.instances.map((l,v)=>{const j=Pe(v,g,t);return s.jsx("div",{style:{position:"absolute",left:j.x,top:j.y,width:t.instanceW,height:t.instanceH},children:t.density==="compact"?s.jsx(Oe,{agent:l,onOpen:()=>n(l),bindings:i(l.id),active:d===l.id}):t.density==="spacious"?s.jsx(Le,{agent:l,onOpen:()=>n(l),bindings:i(l.id),active:d===l.id}):s.jsx(Xe,{agent:l,onOpen:()=>n(l),bindings:i(l.id),active:d===l.id})},l.id)})]})}const Q=34,le=22,Te=6,ae=28,ie=10,F=12,ce=380,Ge=240,J=38;function We(e,t,n,i,d,o){const f=[],p=[],y=[];for(const c of e)i[c.machineId]?y.push(c):p.push(c);let M=0,g=ce;const b=(c,x)=>{const I=t.has(c.machineId)||!c.online,r=n.has(c.machineId);let H=0,C=0,E=0;for(const R of c.agents){const k=T(R.state);k==="in_turn"||k==="in_flight"?H+=1:k==="callable"?C+=1:E+=1}const G=c.online?H>0?"working":C>0?"available":"offline":"offline";if(I)return{machineId:c.machineId,machineLabel:c.machineLabel,reachability:c.reachability,online:c.online,agentCount:c.agents.length,workingCount:H,availableCount:C,offlineCount:E,dominantState:G,host:c.host,collapsed:!1,ghost:!0,pinned:x,x:0,y:0,width:Ge,height:J,headerHeight:J,chromeHeight:J,layouts:[]};const Y=r?[]:Ee(c.agents),S=r?[]:Ye(Y,d,o),V=r?Ve():0,A=r?he+V*le+Te:0,P=Q+A;let O=0,X=0;if(!r&&S.length>0){const R=Math.min(...S.map(m=>m.x)),k=Math.max(...S.map(m=>m.x+m.width)),_=Math.min(...S.map(m=>m.y)),K=Math.max(...S.map(m=>m.y+m.height));O=k-R,X=K-_;const U=-R+F,a=-_+P+ie;for(const m of S)m.x+=U,m.y+=a}const L=Math.max(ce,O+F*2),q=r?P:P+ie+X+F+(c.kind==="this"?0:64);return{machineId:c.machineId,machineLabel:c.machineLabel,reachability:c.reachability,online:c.online,agentCount:c.agents.length,workingCount:H,availableCount:C,offlineCount:E,dominantState:G,host:c.host,collapsed:r,ghost:!1,pinned:x,x:0,y:0,width:L,height:q,headerHeight:Q,chromeHeight:P,layouts:S}};for(const c of p){const x=b(c,!1);x.x=0,x.y=M,f.push(x),g=Math.max(g,x.width),M+=x.height+ae}const l=Math.max(0,M-ae),v=-g/2,j=-l/2;for(const c of f)c.ghost||(c.width=g),c.x=v,c.y+=j;for(const c of y){const x=b(c,!0),h=i[c.machineId];x.x=h.x,x.y=h.y,f.push(x)}return f}function De({section:e,metrics:t,onAgentOpen:n,bindFor:i,activeId:d,anyHidden:o,machineIds:f,onHeaderPointerDown:p,onHeaderClick:y,onGhostActivate:M}){const g=u.useRef(null),b=je(e.machineId),l=b?.view??null,v=Ce(l),j=s.jsx(ge,{ref:g,machineLabel:e.machineLabel,className:"mesh-machine-menu-btn",actions:Ne({machineId:e.machineId,machineLabel:e.machineLabel,nodeId:l?.node?.id??null,brokerUrl:l?.node?.brokerUrl??null,hidden:e.ghost,anyHidden:o,positioned:e.pinned,canCopy:typeof navigator<"u"&&!!navigator.clipboard,checking:b?.loading??!1,on:{select:r=>D(r,"node"),refresh:r=>{Me(r)},focus:r=>{we(r,f),D(r,"node")},toggleHidden:r=>oe(r),showAll:()=>ye(),clearPosition:r=>xe(r),copy:r=>{navigator.clipboard?.writeText(r)}}})}),c=be(g),x=e.reachability==="this"?"this node":e.reachability==="peer"?"peer":e.reachability==="tailnet"?"tailnet":"",h=l?v.label.toLowerCase():e.online?"not checked":"unreachable";if(e.ghost)return s.jsxs("div",{"data-machine-id":e.machineId,className:"mesh-machine-ghost",style:{position:"absolute",left:e.x,top:e.y,width:e.width,height:e.height,pointerEvents:"all"},title:`${e.machineLabel} · ${h} — click to show`,...c,children:[j,s.jsxs("button",{type:"button",className:"mesh-machine-ghost-body",onPointerDown:r=>p(r,e),onClick:()=>M(e.machineId),children:[s.jsx("span",{className:"mesh-machine-ghost-led","aria-hidden":!0}),s.jsx("span",{className:"mesh-machine-ghost-name",children:e.machineLabel}),s.jsx("span",{className:"mesh-machine-ghost-stamp",children:h}),x&&s.jsx("span",{className:`mesh-machine-chip mesh-machine-chip--${e.reachability} mesh-machine-chip--ghost`,children:x}),s.jsxs("span",{className:"mesh-machine-ghost-counts",children:[s.jsx("span",{className:"mesh-machine-count",children:e.reachability==="this"?e.agentCount:l?.workload?.total??"—"}),e.workingCount>0&&s.jsxs("span",{className:"mesh-machine-count mesh-machine-count--working",children:[e.workingCount,"W"]})]})]})]});const I=e.collapsed?Be(e):[];return s.jsxs("div",{"data-machine-id":e.machineId,className:`mesh-machine-section${e.collapsed?" mesh-machine-section--collapsed":""}${e.pinned?" mesh-machine-section--pinned":""}`,style:{position:"absolute",left:e.x,top:e.y,width:e.width,height:e.height,pointerEvents:"all"},...c,children:[j,s.jsxs("button",{type:"button",className:"mesh-machine-header",style:{height:e.headerHeight},onPointerDown:r=>p(r,e),onClick:()=>y(e.machineId),"aria-expanded":!e.collapsed,children:[s.jsx("span",{className:`mesh-machine-led mesh-machine-led--${e.dominantState}`,style:{color:z(e.dominantState)},"aria-hidden":!0}),s.jsx("span",{className:"mesh-machine-caret","aria-hidden":!0,children:e.collapsed?"▸":"▾"}),s.jsx("span",{className:"mesh-machine-grip","aria-hidden":!0,children:"⠿"}),s.jsx("span",{className:"mesh-machine-name",children:e.machineLabel}),x&&s.jsx("span",{className:`mesh-machine-chip mesh-machine-chip--${e.reachability}`,children:x}),s.jsx("span",{className:`mesh-machine-reach mesh-node-reach--${v.tone}`,title:v.detail??v.label,children:v.label})]}),e.collapsed&&s.jsxs("div",{className:"mesh-machine-spec",children:[s.jsxs("div",{className:"mesh-machine-state-strip",style:{height:he},children:[s.jsxs("div",{className:"mesh-machine-state-cell mesh-machine-state-cell--working",children:[s.jsx("span",{className:"mesh-machine-state-num",children:e.reachability==="this"?e.workingCount:l?.workload?.working??"—"}),s.jsx("span",{className:"mesh-machine-state-label",children:"working"})]}),s.jsxs("div",{className:"mesh-machine-state-cell",children:[s.jsx("span",{className:"mesh-machine-state-num",children:e.reachability==="this"?e.availableCount:l?.workload?.available??"—"}),s.jsx("span",{className:"mesh-machine-state-label",children:"ready"})]}),s.jsxs("div",{className:"mesh-machine-state-cell",children:[s.jsx("span",{className:"mesh-machine-state-num",children:e.reachability==="this"?e.agentCount:l?.workload?.total??"—"}),s.jsx("span",{className:"mesh-machine-state-label",children:"total"})]})]}),I.map(r=>s.jsxs("div",{className:"mesh-machine-spec-row",style:{height:le},children:[s.jsx("span",{className:"mesh-machine-spec-label",children:r.label}),s.jsx("span",{className:"mesh-machine-spec-value",title:r.value,children:r.value})]},r.label))]}),!e.collapsed&&e.reachability!=="this"&&s.jsx("button",{type:"button",className:"mesh-machine-detail-link",onClick:()=>D(e.machineId,"node"),children:l?.workload?`${l.workload.total} registered here${l.stale?" · last known":""} — view agents and activity`:"View this node’s agents and activity"}),!e.collapsed&&e.layouts.map(r=>s.jsx(Re,{layout:r,metrics:t,onAgentOpen:n,bindFor:i,activeId:d},r.cluster.key))]})}function Be(e){const t=e.host;return[{label:"os",value:t?.os??"—"},{label:"arch",value:t?.arch??"—"},{label:"cpu",value:t?.cpuCores?`${t.cpuCores}c`:"—"},{label:"ram",value:t?.memoryGb?`${t.memoryGb} G`:"—"},{label:"disk",value:t?.storageCapacityGb?`${t.storageCapacityGb} G`:"—"},{label:"network",value:t?.network??"—"},{label:"scout",value:t?.scoutVersion?`v${t.scoutVersion}`:"—"}]}const ze=7,he=54;function Ve(e,t,n,i){return ze}function Js({mesh:e,agents:t=[]}){const n=u.useRef(null),[i,d]=u.useState({w:0,h:0}),[o,f]=u.useReducer($e,void 0,Se);u.useEffect(()=>{if(!(typeof window>"u"))try{window.sessionStorage.setItem(re,JSON.stringify({pan:o.pan,scale:o.scale}))}catch{}},[o.pan,o.scale]);const{density:p,query:y,agentStateFilters:M,hiddenMachineIds:g,collapsedMachineIds:b,scrollTargetMachineId:l}=ne(),{navigate:v}=Ie();u.useLayoutEffect(()=>{const a=n.current;if(!a)return;const m=()=>d({w:a.clientWidth,h:a.clientHeight});m();const N=new ResizeObserver(m);return N.observe(a),()=>N.disconnect()},[]),u.useLayoutEffect(()=>{const a=n.current;if(!a)return;const m=N=>{N.preventDefault();const w=N.deltaY<0?1.12:1/1.12,$=a.getBoundingClientRect();f({type:"zoom",factor:w,mx:N.clientX-$.left,my:N.clientY-$.top,cx:$.width/2,cy:$.height/2})};return a.addEventListener("wheel",m,{passive:!1}),()=>a.removeEventListener("wheel",m)},[]);const{machinePositions:j}=ne(),c=u.useMemo(()=>Ae(p),[p]),x=u.useMemo(()=>{const a=y.trim().toLowerCase();return t.filter(m=>{const w=T(m.state);return M.has(w)?a?`${m.name??""} ${m.handle??""} ${m.harness??""} ${m.project??""} ${m.branch??""}`.toLowerCase().includes(a):!0:!1})},[t,y,M]),h=u.useMemo(()=>ve(x,e),[x,e]),I=i.w>0&&i.h>0?i.w/i.h:1.6,r=u.useMemo(()=>We(h,g,b,j,c,I),[h,g,b,j,c,I]),H=u.useRef(null),[C,E]=u.useState(null),G=u.useCallback((a,m)=>{if(a.button!==0)return;a.stopPropagation(),a.currentTarget.setPointerCapture(a.pointerId),H.current={machineId:m.machineId,startClientX:a.clientX,startClientY:a.clientY,startSectionX:m.x,startSectionY:m.y,pointerId:a.pointerId,moved:!1}},[]);u.useEffect(()=>{const a=N=>{const w=H.current;if(!w||N.pointerId!==w.pointerId)return;const $=N.clientX-w.startClientX,W=N.clientY-w.startClientY;if(!w.moved&&Math.hypot($,W)<4)return;w.moved=!0;const me=$/o.scale,de=W/o.scale;E({machineId:w.machineId,x:w.startSectionX+me,y:w.startSectionY+de})},m=N=>{const w=H.current;if(!(!w||N.pointerId!==w.pointerId)){if(H.current=null,w.moved){const $=(N.clientX-w.startClientX)/o.scale,W=(N.clientY-w.startClientY)/o.scale;fe(w.machineId,{x:w.startSectionX+$,y:w.startSectionY+W})}E(null)}};return window.addEventListener("pointermove",a),window.addEventListener("pointerup",m),window.addEventListener("pointercancel",m),()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",m),window.removeEventListener("pointercancel",m)}},[o.scale]);const Y=u.useRef(!1);u.useEffect(()=>{if(C)Y.current=!0;else{const a=setTimeout(()=>{Y.current=!1},50);return()=>clearTimeout(a)}},[C]);const S=u.useCallback(a=>{Y.current||oe(a)},[]),V=u.useCallback(a=>{Y.current||(D(a,"node"),ue(a))},[]),A=u.useMemo(()=>C?r.map(a=>a.machineId===C.machineId?{...a,x:C.x,y:C.y,pinned:!0}:a):r,[r,C]);u.useEffect(()=>{if(!l)return;const a=A.find(m=>m.machineId===l);a&&f({type:"pan",delta:{x:-a.x-o.pan.x-a.width/2,y:-a.y-o.pan.y+i.h/4-Q}})},[l,A,o.pan.x,o.pan.y,i.h]);const P=u.useCallback(a=>{a.agentClass!=="organic"&&v({view:"agents-v2",agentId:a.id})},[v]),O=u.useMemo(()=>x.filter(a=>a.agentClass!=="organic"),[x]),X=u.useMemo(()=>O.map(a=>a.id),[O]),L=He({agents:O,orderedIds:X,navigate:v,selectMode:"preview"}),q=u.useCallback(a=>X.includes(a)?L.bind(a):null,[L,X]),R=L.activeAgent?.id??null,{pan:k,scale:_}=o,K=i.w/2,U=i.h/2;return s.jsxs("div",{ref:n,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[i.w>0&&s.jsx(pe,{panOffset:k,scale:_,onPan:a=>f({type:"pan",delta:a}),gridOpacity:.7}),s.jsx("div",{style:{position:"absolute",left:0,top:0,width:0,height:0,transform:`translate(${K}px, ${U}px) translate(${k.x*_}px, ${k.y*_}px) scale(${_})`,transformOrigin:"0 0",pointerEvents:"none"},children:A.length===0?s.jsx("div",{style:{position:"absolute",left:-120,top:-20,width:240,textAlign:"center",pointerEvents:"none"},children:s.jsx("div",{className:"mesh-empty-pill",children:"no machines visible"})}):A.map(a=>s.jsx(De,{section:a,metrics:c,onAgentOpen:P,bindFor:q,activeId:R,anyHidden:g.size>0,machineIds:A.map(m=>m.machineId),onHeaderPointerDown:G,onHeaderClick:V,onGhostActivate:S},a.machineId))}),s.jsx("div",{className:"mesh-canvas-hint",children:"scroll to zoom · drag to pan"}),L.card]})}export{Js as MeshCanvas};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as g,j as e}from"./index-BFbLvCJn.js";import{u as I,g as S,t as k,a as b,r as B}from"./mesh-view-store-CVqzYz4K.js";import{u as L}from"./Provider-BEXAZWd9.js";import{a as N,e as P}from"./agent-state-DDhnFEEP.js";import{a as v}from"./use-mesh-node-state-BlWIPTc4.js";import{c as R,m as y}from"./machine-children-DvCiQxwA.js";import{s as w}from"./colors-CFlbwC25.js";function D(){const[i,m]=g.useState("rack"),{agents:c}=L(),{meshSnapshot:t,selectedId:h,selectedType:a,hiddenMachineIds:s,machinePositions:r}=I(),n=g.useMemo(()=>t?R(c,t):[],[c,t]);if(!t||n.length===0)return null;const u=n.filter(p=>!s.has(p.machineId)).length,l=n.length,d=Object.keys(r).length,o=p=>{b(p,"node"),B(p)};return e.jsxs("div",{className:"mesh-rail",children:[e.jsxs("div",{className:"mesh-rail-head",children:[e.jsx("span",{className:"mesh-rail-ear","aria-hidden":!0}),e.jsxs("div",{className:"mesh-rail-mode",role:"group","aria-label":"Bottom view",children:[e.jsx("button",{type:"button",className:`mesh-rail-mode-btn${i==="map"?" mesh-rail-mode-btn--active":""}`,onClick:()=>m("map"),"aria-pressed":i==="map",children:"map"}),e.jsx("button",{type:"button",className:`mesh-rail-mode-btn${i==="rack"?" mesh-rail-mode-btn--active":""}`,onClick:()=>m("rack"),"aria-pressed":i==="rack",children:"rack"})]}),e.jsx("span",{className:"mesh-rail-title-count",children:l}),e.jsx("span",{className:"mesh-rail-ear","aria-hidden":!0})]}),i==="rack"?e.jsx(A,{buckets:n,hiddenMachineIds:s,selectedId:h,selectedType:a,onFocus:o}):e.jsx(F,{buckets:n,selectedId:h,selectedType:a,onFocus:o}),e.jsxs("div",{className:"mesh-rail-foot",children:[e.jsx("span",{className:"mesh-rail-foot-mark","aria-hidden":!0}),e.jsx("span",{className:"mesh-rail-foot-meta",children:i==="map"?`${l} machines`:`${u}/${l} shown`}),d>0&&i==="rack"?e.jsx("button",{type:"button",className:"mesh-rail-foot-reset",onClick:()=>S(),title:"Reset machine layout",children:"reset"}):e.jsx("span",{className:"mesh-rail-foot-mark","aria-hidden":!0})]})]})}function A({buckets:i,hiddenMachineIds:m,selectedId:c,selectedType:t,onFocus:h}){const{entries:a}=v();return e.jsx("div",{className:"mesh-rail-body",children:i.map((s,r)=>{const n=m.has(s.machineId),u=c===s.machineId&&t==="node",l=s.agents.filter(x=>N(x.state)).length;s.agents.filter(x=>P(x.state)).length;const d=s.online?s.agents.length===0?"offline":l>0?"working":"available":"offline",o=n||!s.online?void 0:w(d),p=s.reachability==="this"?"L":s.reachability==="peer"?"P":s.reachability==="tailnet"?"T":"·",M=String(r+1).padStart(2,"0"),f=a[s.machineId],j=f?.view??null,C=y(s,j,f?.loading??!1),$=s.kind==="this"?s.agents.length:j?.workload?.total??"—";return e.jsxs("div",{className:["mesh-rail-unit",n&&"mesh-rail-unit--off",!s.online&&"mesh-rail-unit--unreachable",u&&"mesh-rail-unit--active"].filter(Boolean).join(" "),children:[e.jsxs("button",{type:"button",className:"mesh-rail-unit-body",onClick:()=>h(s.machineId),title:`Focus ${s.machineLabel} on the map`,children:[e.jsx("span",{className:"mesh-rail-slot",children:M}),e.jsx("span",{className:`mesh-rail-led${n||!s.online?"":" mesh-rail-led--on"}`,style:o?{background:o,color:o}:void 0,"aria-hidden":!0}),e.jsxs("span",{className:"mesh-rail-unit-text",children:[e.jsx("span",{className:"mesh-rail-unit-name",title:s.machineLabel,children:s.machineLabel}),e.jsxs("span",{className:"mesh-rail-unit-sub",children:[e.jsx("span",{className:`mesh-rail-reach mesh-rail-reach--${s.reachability}`,children:p}),e.jsx("span",{className:"mesh-rail-unit-stamp",children:C})]})]}),e.jsx("span",{className:"mesh-rail-unit-count",children:$})]}),e.jsx("div",{className:"mesh-rail-unit-actions",children:e.jsx("button",{type:"button",className:`mesh-rail-unit-eye${n?" mesh-rail-unit-eye--off":""}`,onClick:x=>{x.stopPropagation(),k(s.machineId)},title:n?"Show in workspace":"Hide from workspace","aria-pressed":!n,children:n?"○":"●"})}),e.jsx("span",{className:"mesh-rail-vent","aria-hidden":!0})]},s.machineId)})})}function F({buckets:i,selectedId:m,selectedType:c,onFocus:t}){const{entries:h}=v();return e.jsx("div",{className:"mesh-rail-body mesh-rail-body--map",children:e.jsx("div",{className:"mesh-mini-map",children:i.map(a=>{const s=h[a.machineId],r=a.kind==="this"?a.agents.length:s?.view?.workload?.total,n=m===a.machineId&&c==="node",u=a.agents.filter(o=>N(o.state)).length,l=a.online?a.agents.length===0?"offline":u>0?"working":"available":"offline",d=a.online?w(l):void 0;return e.jsxs("button",{type:"button",className:`mesh-mini-node mesh-mini-node--${l}${n?" mesh-mini-node--active":""}${a.online?"":" mesh-mini-node--off"}`,onClick:()=>t(a.machineId),title:`${a.machineLabel} — ${y(a,s?.view??null,s?.loading??!1)}`,children:[e.jsx("span",{className:"mesh-mini-led",style:d?{background:d}:void 0,"aria-hidden":!0}),e.jsx("span",{className:"mesh-mini-label",children:a.machineLabel}),r!==void 0&&r>0&&e.jsx("span",{className:"mesh-mini-count",children:r})]},a.machineId)})})})}export{D as M};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mesh-rail{display:flex;flex-direction:column;height:100%;min-height:0;padding:var(--space-sm);background:transparent;font-family:var(--font-mono)}.mesh-rail-head,.mesh-rail-foot{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 7%,transparent),color-mix(in srgb,var(--ink) 1%,transparent));border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 6%,transparent)}.mesh-rail-foot{border-top:0;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:0 0 var(--radius-sm) var(--radius-sm);justify-content:space-between;padding:var(--space-2xs) var(--space-sm);box-shadow:inset 0 -1px color-mix(in srgb,var(--ink) 6%,transparent),0 4px 12px -8px #0006}.mesh-rail-ear{flex:0 0 auto;width:4px;height:12px;border-radius:1px;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--ink) 18%,transparent) 0%,transparent 70%),color-mix(in srgb,var(--ink) 10%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 14%,transparent),inset 0 -1px color-mix(in srgb,var(--border) 60%,transparent)}.mesh-rail-title{font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-xl);color:color-mix(in srgb,var(--ink) 78%,transparent)}.mesh-rail-title-count{margin-left:auto;padding:1px var(--space-xs);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--muted);font-size:var(--text-2xs);font-weight:700}.mesh-rail-mode{display:inline-flex;align-items:stretch;border:1px solid color-mix(in srgb,var(--border) 50%,transparent);border-radius:var(--radius-sm);overflow:hidden}.mesh-rail-mode-btn{padding:var(--space-3xs) var(--space-sm);border:0;background:transparent;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) 45%,transparent);cursor:pointer;transition:background .12s,color .12s}.mesh-rail-mode-btn+.mesh-rail-mode-btn{border-left:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.mesh-rail-mode-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 4%,transparent)}.mesh-rail-mode-btn--active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.mesh-rail-body--map{background:transparent;border-left:1px solid color-mix(in srgb,var(--border) 35%,transparent);border-right:1px solid color-mix(in srgb,var(--border) 35%,transparent);padding:var(--space-sm)}.mesh-mini-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:var(--space-2xs)}.mesh-mini-node{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border:1px solid color-mix(in srgb,var(--border) 45%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 65%,transparent);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--ink);text-align:left;min-width:0;transition:background .12s,border-color .12s}.mesh-mini-node:hover{border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.mesh-mini-node--active{border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.mesh-mini-node--off{opacity:.55}.mesh-mini-led{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--ink) 25%,transparent)}.mesh-mini-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-mini-count{flex:0 0 auto;color:color-mix(in srgb,var(--ink) 55%,transparent);font-variant-numeric:tabular-nums}.mesh-rail-body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--ink) 5%,transparent) 0px,color-mix(in srgb,var(--ink) 5%,transparent) 1px,transparent 1px,transparent 3px);border-left:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-right:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.mesh-rail-unit{position:relative;display:flex;align-items:stretch;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 70%,transparent),color-mix(in srgb,var(--bg) 78%,transparent));border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 4%,transparent),inset 0 -1px color-mix(in srgb,var(--ink) 10%,transparent)}.mesh-rail-unit:last-child{border-bottom:0}.mesh-rail-unit-body{flex:1 1 auto;display:flex;align-items:center;gap:var(--space-sm);min-width:0;padding:var(--space-sm) var(--space-md) var(--space-sm);border:0;background:transparent;cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:background .12s}.mesh-rail-unit-body:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.mesh-rail-unit-body:focus-visible{outline:1px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:-1px}.mesh-rail-unit--off .mesh-rail-unit-body{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 70%,transparent),color-mix(in srgb,var(--bg) 84%,transparent));filter:saturate(.4)}.mesh-rail-unit--off .mesh-rail-unit-name{color:color-mix(in srgb,var(--ink) 38%,transparent)}.mesh-rail-unit--unreachable .mesh-rail-unit-stamp{color:color-mix(in srgb,var(--amber) 80%,transparent)}.mesh-rail-unit--active{box-shadow:inset 2px 0 0 0 var(--accent)}.mesh-rail-unit--active .mesh-rail-unit-name{color:var(--accent)}.mesh-rail-slot{flex:0 0 auto;font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-md);color:color-mix(in srgb,var(--ink) 32%,transparent);width:16px}.mesh-rail-led{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--ink) 14%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 12%,transparent),inset 0 -1px color-mix(in srgb,var(--border) 80%,transparent)}.mesh-rail-led--on{box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 24%,transparent),0 0 6px 0 currentColor,0 0 14px -2px currentColor}.mesh-rail-unit-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--space-3xs)}.mesh-rail-unit-name{font-size:var(--text-sm);font-weight:600;color:var(--ink);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-rail-unit-sub{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-2xs);color:color-mix(in srgb,var(--ink) 45%,transparent)}.mesh-rail-reach{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border-radius:var(--radius-xs);font-size:var(--text-3xs);font-weight:800;background:color-mix(in srgb,var(--ink) 8%,transparent);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);color:var(--muted)}.mesh-rail-reach--this{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.mesh-rail-reach--peer{background:color-mix(in srgb,var(--green, #4ade80) 14%,transparent);border-color:color-mix(in srgb,var(--green, #4ade80) 32%,transparent);color:var(--green, #4ade80)}.mesh-rail-reach--tailnet{background:color-mix(in srgb,var(--amber) 16%,transparent);border-color:color-mix(in srgb,var(--amber) 40%,transparent);color:var(--amber)}.mesh-rail-unit-stamp{font-variant-numeric:tabular-nums}.mesh-rail-unit-count{flex:0 0 auto;font-size:var(--text-xs);font-weight:600;color:color-mix(in srgb,var(--ink) 55%,transparent);font-variant-numeric:tabular-nums}.mesh-rail-unit-actions{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-2xs);padding-right:var(--space-sm)}.mesh-rail-unit-eye{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--border) 60%,transparent);background:color-mix(in srgb,var(--ink) 4%,transparent);color:color-mix(in srgb,var(--ink) 60%,transparent);font-size:var(--text-2xs);cursor:pointer;border-radius:var(--radius-xs);transition:background .12s,color .12s,border-color .12s}.mesh-rail-unit-eye:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.mesh-rail-unit-eye--off{color:color-mix(in srgb,var(--ink) 30%,transparent)}.mesh-rail-vent{position:absolute;right:0;top:50%;transform:translateY(-50%);width:5px;height:60%;background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--ink) 14%,transparent) 0px,color-mix(in srgb,var(--ink) 14%,transparent) 1px,transparent 1px,transparent 3px);pointer-events:none;opacity:.45}.mesh-rail-foot-mark{flex:0 0 auto;width:4px;height:10px;border-radius:1px;background:color-mix(in srgb,var(--ink) 10%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 12%,transparent)}.mesh-rail-foot-meta{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-xl);text-transform:uppercase;color:color-mix(in srgb,var(--ink) 45%,transparent)}.mesh-rail-foot-reset{padding:var(--space-3xs) var(--space-xs);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-3xs);font-weight:700;letter-spacing:var(--tracking-xl);text-transform:uppercase;cursor:pointer;border-radius:var(--radius-xs)}.mesh-rail-foot-reset:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as m,j as e}from"./index-BFbLvCJn.js";import{a as z}from"./api-DSqpVKC7.js";import{b as E}from"./use-mesh-node-state-BlWIPTc4.js";import{t as A}from"./time-Dhsh_2EG.js";import{n as _,b as F,c as H}from"./agent-state-DDhnFEEP.js";import{b as K}from"./machine-scope-DJt9RZ2w.js";import{u as q,g as U}from"./Provider-BEXAZWd9.js";import{b as V}from"./router-CJIx83Ia.js";import{MeshCanvas as Q}from"./MeshCanvas-DzkuY_XI.js";import{s as J}from"./colors-CFlbwC25.js";import{u as W}from"./useAgentHoverCard-DNlXPYQf.js";import{u as X}from"./local-agents-BMcFlY_x.js";import{u as Y,a as Z,s as G,h as T,i as R,j as ee,k as L}from"./mesh-view-store-CVqzYz4K.js";import{u as se}from"./useContentSecondaryNav-LJGNYG3U.js";import{OpsSubnav as te}from"./OpsSubnav-CjMVj7Sk.js";/* empty css *//* empty css */import"./theme-vars-DNK0nn3k.js";import"./sse-BVxO0zNp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-D-VB5vdt.js";import"./runtime-picker-IRcTkMZ5.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CCG7hG7z.js";import"./createLucideIcon-CKbjXlwv.js";import"./media-blobs-Bi8pxr1u.js";import"./index-CXzJ_hGx.js";import"./HarnessMark-CP-PWk2W.js";import"./conversation-model-FxDeWlle.js";import"./conversations-DoAAO6kA.js";import"./NewChatOrigin-BYsEu9dZ.js";import"./keyboard-nav-CEe-ApvZ.js";import"./x-BcfhXYiF.js";import"./chevron-down-DEDSNJNY.js";import"./search-Bv2IONmc.js";import"./file-text-BOJQiS8p.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-mxzPxQQW.js";import"./TextDocumentSurface-DBslUq9k.js";import"./index-V8FYEUpD.js";import"./chevron-right-B02kAw12.js";import"./folder-C2emmTHq.js";import"./chevron-up-CzveykKG.js";import"./code-xml-E9gBuiVs.js";import"./arrow-left-DNjQHf4C.js";import"./arrow-right-A_yyXwoH.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DVhUsgOw.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./chunk-T65CQEWV-G_Z0lqtn.js";import"./plus-B0hdY0fF.js";import"./NodeMenu-BgJMmffZ.js";import"./machine-children-DvCiQxwA.js";import"./AgentDetailCard-CI-ufaEP.js";import"./AgentLiveActions-CkRGkv13.js";import"./terminal-takeover-CXwdoZ5j.js";import"./openContent-C6XO6kr5.js";import"./eye-CD-_aphP.js";import"./terminal-DMBAZjPP.js";import"./SecondaryNav-1FjBDWuY.js";import"./secondaryNavConfig-Bmb-oRvD.js";import"./nav-destinations-B3R5zxFX.js";import"./message-square-BwqBIfv5.js";import"./compass-EmGkpxIe.js";import"./settings-bo9X410k.js";import"./git-branch-C45vy8qT.js";import"./scroll-text-CA0QxBHu.js";/* empty css */function ne(c){const p=new Map,f=new Map;for(const a of c){const o=a.project??"Unassigned",i=o.toLowerCase(),h=a.branch??"—";let r=p.get(i);r||(r=new Map,p.set(i,r));const u=r.get(h)??[];u.push(a),r.set(h,u);let s=f.get(i);s||(s=new Map,f.set(i,s)),s.set(o,(s.get(o)??0)+1)}const g=a=>{const o=f.get(a);if(!o)return a;let i=null,h=-1;for(const[r,u]of o)u>h&&(i=r,h=u);return i??a},j=[];for(const[a,o]of p){const i=g(a),h=[];let r=0;const u={in_turn:0,in_flight:0,needs_attention:0,callable:0,blocked:0},s=[];for(const[l,n]of o){const t=[...n].sort((d,x)=>(x.updatedAt??0)-(d.updatedAt??0)),y=t.reduce((d,x)=>Math.max(d,x.updatedAt??0),0);r=Math.max(r,y);for(const d of t)u[_(d.state)]+=1,s.push(d);h.push({branch:l,agents:t,latest:y})}h.sort((l,n)=>n.latest-l.latest),j.push({project:i,branches:h,agents:s,latest:r,counts:u})}return j.sort((a,o)=>o.latest-a.latest),j}function P(c){return c?c.replace(/^\/Users\/[^/]+/,"~"):null}function ae({agents:c,emptyTitle:p="No agents registered",emptyBody:f="Agents connected to this broker will appear here.",selectMode:g="preview"}){const{navigate:j}=q(),a=m.useMemo(()=>ne(c),[c]),[o,i]=m.useState(()=>new Set),h=m.useMemo(()=>{const s=[];for(const l of a)if(!o.has(l.project))for(const n of l.branches)for(const t of n.agents)s.push(t.id);return s},[a,o]),r=W({agents:c,orderedIds:h,navigate:j,selectMode:g});if(c.length===0)return e.jsxs("div",{className:"sys-list-empty",children:[e.jsx("h3",{children:p}),e.jsx("p",{children:f})]});const u=s=>{i(l=>{const n=new Set(l);return n.has(s)?n.delete(s):n.add(s),n})};return e.jsxs("div",{className:"mesh-tree",ref:r.containerRef,children:[a.map(s=>{const l=o.has(s.project);return e.jsxs("div",{className:`mesh-tree-group${l?" mesh-tree-group--collapsed":""}`,children:[e.jsxs("button",{type:"button",className:"mesh-tree-project",onClick:()=>u(s.project),"aria-expanded":!l,children:[e.jsx("span",{className:`mesh-tree-caret${l?"":" mesh-tree-caret--open"}`,"aria-hidden":!0,children:"›"}),e.jsx("span",{className:"mesh-tree-project-name",children:s.project}),e.jsx("span",{className:"mesh-tree-project-count",children:s.agents.length}),e.jsxs("span",{className:"mesh-tree-counts",children:[s.counts.in_turn+s.counts.in_flight+s.counts.needs_attention>0&&e.jsxs("span",{className:"mesh-tree-count mesh-tree-count--working",children:[e.jsx("span",{className:"mesh-tree-count-dot"}),s.counts.in_turn+s.counts.in_flight+s.counts.needs_attention]}),s.counts.callable>0&&e.jsxs("span",{className:"mesh-tree-count mesh-tree-count--available",children:[e.jsx("span",{className:"mesh-tree-count-dot"}),s.counts.callable]}),s.counts.blocked>0&&e.jsxs("span",{className:"mesh-tree-count mesh-tree-count--offline",children:[e.jsx("span",{className:"mesh-tree-count-dot"}),s.counts.blocked]})]}),e.jsx("span",{className:"mesh-tree-project-time",children:s.latest?A(s.latest):""})]}),!l&&e.jsx("div",{className:"mesh-tree-branches",children:s.branches.map(n=>e.jsxs("div",{className:"mesh-tree-branch",children:[e.jsxs("div",{className:"mesh-tree-branch-head",children:[e.jsx("span",{className:"mesh-tree-branch-elbow","aria-hidden":!0,children:"└"}),e.jsx("span",{className:"mesh-tree-branch-name",children:n.branch})]}),e.jsx("div",{className:"mesh-tree-agents",children:n.agents.map(t=>{const y=_(t.state),d=F(t.state),x=t.agentClass==="organic",k=r.getState(t.id),M=P(t.cwd)??P(t.projectRoot),C=t.harnessSessionId?t.harnessSessionId.slice(0,8):null,b=[];M&&b.push({kind:"cwd",text:M}),t.harness&&b.push({kind:"harness",text:t.harness}),t.model&&b.push({kind:"model",text:t.model}),C&&b.push({kind:"sess",text:`sess:${C}`});const $=r.bind(t.id);return e.jsxs("button",{type:"button",className:`mesh-tree-agent${x?" mesh-tree-agent--organic":""}${k.isActive?" mesh-tree-agent--active":""}${k.isPinned?" mesh-tree-agent--pinned":""}`,title:x?`${t.harness??t.name} · organic session`:void 0,...$,children:[e.jsx("span",{className:`mesh-tree-agent-dot mesh-tree-agent-dot--${d}`,style:{background:J(t.state)}}),e.jsx("span",{className:"mesh-tree-agent-name",children:t.handle??t.name}),x&&e.jsx("span",{className:"mesh-tree-agent-organic","aria-label":"organic session",children:"○"}),e.jsx("span",{className:"mesh-tree-agent-inline",children:b.map((S,I)=>e.jsxs("span",{className:`mesh-tree-agent-inline-part mesh-tree-agent-inline-part--${S.kind}`,children:[I>0&&e.jsx("span",{className:"mesh-tree-agent-inline-sep",children:"·"}),S.text]},S.kind))}),e.jsx("span",{className:`mesh-tree-agent-state mesh-tree-agent-state--${d}`,children:H(y)}),e.jsx("span",{className:"mesh-tree-agent-time",children:t.updatedAt?A(t.updatedAt):""})]},t.id)})})]},n.branch))})]},s.project)}),r.card]})}function O({mode:c,density:p,query:f,stateFilter:g,loading:j,refreshing:a,error:o,lastLoadedAt:i,hasMesh:h,onRefresh:r}){return e.jsxs("div",{className:`mesh-hud mesh-hud--${c}`,children:[e.jsxs("div",{className:"mesh-hud-left",children:[e.jsxs("div",{className:"mesh-mode-toggle",children:[e.jsx("button",{type:"button",className:`mesh-mode-btn${c==="map"?" mesh-mode-btn--active":""}`,onClick:()=>T("map"),children:"Map"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${c==="tree"?" mesh-mode-btn--active":""}`,onClick:()=>T("tree"),children:"Tree"})]}),e.jsxs("div",{className:"mesh-mode-toggle mesh-density-toggle",role:"group","aria-label":"Density","aria-hidden":c!=="map","data-mode-only":"map",children:[e.jsx("button",{type:"button",className:`mesh-mode-btn${p==="compact"?" mesh-mode-btn--active":""}`,onClick:()=>R("compact"),disabled:c!=="map",title:"Compact — dots",children:"Compact"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${p==="comfortable"?" mesh-mode-btn--active":""}`,onClick:()=>R("comfortable"),disabled:c!=="map",title:"Comfortable — chips",children:"Comfortable"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${p==="spacious"?" mesh-mode-btn--active":""}`,onClick:()=>R("spacious"),disabled:c!=="map",title:"Spacious — cards",children:"Spacious"})]})]}),h&&e.jsxs("div",{className:"mesh-hud-filters",children:[e.jsx("input",{type:"search",className:"mesh-hud-search",placeholder:"Filter agents…",value:f,onChange:u=>ee(u.target.value),spellCheck:!1,autoCorrect:"off",autoCapitalize:"off"}),e.jsxs("div",{className:"mesh-mode-toggle",role:"group","aria-label":"State",children:[e.jsx("button",{type:"button",className:`mesh-mode-btn${g==="all"?" mesh-mode-btn--active":""}`,onClick:()=>L("all"),children:"All"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${g==="in_turn"?" mesh-mode-btn--active":""}`,onClick:()=>L("in_turn"),children:"In turn"}),e.jsx("button",{type:"button",className:`mesh-mode-btn${g==="callable"?" mesh-mode-btn--active":""}`,onClick:()=>L("callable"),children:"Callable"})]})]}),e.jsxs("div",{className:"mesh-hud-right",children:[e.jsx("span",{className:"mesh-hud-sync",children:j?"Loading…":o&&h?`Last sync old — ${i?A(i):"unknown"}`:i?A(i):"—"}),e.jsx("button",{type:"button",className:"s-btn",disabled:j||a,onClick:r,children:a?"Refreshing…":"Refresh"})]})]})}function Cs({navigate:c}){const[p,f]=m.useState(!0),[g,j]=m.useState(!1),[a,o]=m.useState(null),[i,h]=m.useState(null),{mode:r,density:u,query:s,stateFilter:l,meshSnapshot:n}=Y(),{agents:t}=X(),{route:y}=q(),d=V(y),x=m.useMemo(()=>U(t),[t]),k=m.useMemo(()=>K(x,d,n?.localNode?.id),[x,d,n?.localNode?.id]),M=m.useRef(null),C=m.useRef(0);m.useEffect(()=>{M.current=n},[n]),m.useEffect(()=>{d&&Z(d,"node")},[d]);const b=m.useCallback(async(v="initial")=>{const N=++C.current;!(M.current!==null)&&v!=="background"?(f(!0),o(null)):j(!0);try{const w=await z("/api/mesh");if(N!==C.current)return;G(w),o(null),h(Date.now())}catch(w){if(N!==C.current)return;o(w instanceof Error?w.message:String(w))}finally{N===C.current&&(f(!1),j(!1))}},[]);m.useEffect(()=>{b("initial")},[b]),m.useEffect(()=>{const v=setInterval(()=>{b("background")},1e4);return()=>clearInterval(v)},[b]),m.useEffect(()=>{E();const v=setInterval(()=>{E()},15e3);return()=>clearInterval(v)},[]);const $=m.useMemo(()=>{const v=s.trim().toLowerCase();return k.filter(N=>l!=="all"&&_(N.state)!==l?!1:v?`${N.name??""} ${N.handle??""} ${N.harness??""} ${N.project??""} ${N.branch??""}`.toLowerCase().includes(v):!0)},[s,k,l]),S={mode:r,density:u,query:s,stateFilter:l,loading:p,refreshing:g,error:a,lastLoadedAt:i,hasMesh:!!n,onRefresh:()=>{b("manual")}},I=r==="map"?e.jsxs("div",{className:"mesh-map-canvas",children:[n&&e.jsx(Q,{mesh:n,agents:$}),p&&!n&&e.jsx("div",{className:"mesh-canvas-center",children:e.jsx("p",{className:"mesh-canvas-center-label",children:"Loading mesh…"})}),!p&&!n&&a&&e.jsxs("div",{className:"mesh-canvas-center",children:[e.jsx("p",{className:"mesh-canvas-center-label",children:a}),e.jsx("button",{type:"button",className:"s-btn",onClick:()=>{b("manual")},children:"Try again"})]}),e.jsx(O,{...S})]}):e.jsxs("div",{className:"mesh-tree-page",children:[e.jsx(O,{...S}),p&&!n&&e.jsxs("div",{className:"sys-panel sys-state-card mesh-tree-state",children:[e.jsx("h3",{className:"sys-state-title",children:"Loading mesh status"}),e.jsx("p",{className:"sys-state-body",children:"Inspecting broker reachability and peer discovery inputs."})]}),!p&&!n&&a&&e.jsxs("div",{className:"sys-panel sys-state-card sys-state-card-error mesh-tree-state",children:[e.jsx("h3",{className:"sys-state-title",children:"Mesh status is unavailable"}),e.jsx("p",{className:"sys-state-body",children:a}),e.jsx("div",{className:"sys-inline-actions",children:e.jsx("button",{type:"button",className:"s-btn",onClick:()=>{b("manual")},children:"Try again"})})]}),n&&e.jsxs("section",{className:"mesh-tree-panel",children:[e.jsxs("div",{className:"mesh-tree-hint","aria-hidden":!0,children:[e.jsx("kbd",{children:"↑"}),e.jsx("kbd",{children:"↓"}),e.jsx("span",{children:"navigate"}),e.jsx("span",{className:"mesh-tree-hint-sep",children:"·"}),e.jsx("kbd",{children:"enter"}),e.jsx("span",{children:"pin"}),e.jsx("span",{className:"mesh-tree-hint-sep",children:"·"}),e.jsx("kbd",{children:"o"}),e.jsx("span",{children:"open"}),e.jsx("span",{className:"mesh-tree-hint-sep",children:"·"}),e.jsx("kbd",{children:"esc"}),e.jsx("span",{children:"clear"})]}),e.jsx(ae,{agents:$,emptyTitle:k.length===0?d?"No agents on this machine":"No agents registered":"No agents match your filter",emptyBody:k.length===0?"Agents connected to this broker will appear here.":"Try clearing the search or switching the state pill back to All."})]})]}),B=se();return e.jsxs("div",{className:"s-ops",children:[B?e.jsx("div",{className:"s-ops-header",children:e.jsx(te,{activeRoute:y,navigate:c})}):null,e.jsx("div",{className:"s-ops-body",children:I})]})}export{Cs as MeshScreen};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/arc.es-CLA3XI14.js","assets/index-BFbLvCJn.js","assets/index-BRNHY2fp.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as g,j as d,_ as j}from"./index-BFbLvCJn.js";const E=g.lazy(()=>j(()=>import("./arc.es-CLA3XI14.js"),__vite__mapDeps([0,1,2])).then(t=>({default:t.ArcDiagram})));function i(t){if(!t)return"";const e=t.replace(/^https?:\/\//,"").split("/")[0],[o]=e.split(":");return o.split(".")[0]}function S(t){const e=t.hostName?.trim();if(e&&e.toLowerCase()!=="localhost")return i(e)||e;const o=t.dnsName?.trim().replace(/\.$/,"");return o?i(o)||o:i(t.name)||t.name}function y(t){if(!t)return"";const e=t.replace(/^https?:\/\//,"").split("/")[0],[o]=e.split(":");return o.replace(/\.$/,"").toLowerCase()}function l(t){const e=y(t);return e?e.split(".")[0]??e:""}function B(t){return t.brokerUrl?i(t.brokerUrl):t.hostName?i(t.hostName):t.id.slice(0,10)}function I(t,e){return Math.abs(t)>=Math.abs(e)?t>=0?["right","left"]:["left","right"]:e>=0?["bottom","top"]:["top","bottom"]}function W(t,e){const o=l(e.hostName||e.name),c=l(t.localNode?.hostName||t.localNode?.name);return!!c&&o===c}function C(t,e){const o=new Set([l(t.hostName),l(t.name),...t.addresses.map(n=>y(n)),...t.addresses.map(n=>l(n))].filter(Boolean)),c=new Set([l(e.hostName),l(e.name),y(e.brokerUrl),l(e.brokerUrl)].filter(Boolean));for(const n of o)if(c.has(n))return!0;return!1}function L(t){if(!t.localNode)return null;const e=t.localNode.id,o=Object.values(t.nodes).filter(s=>s.id!==e),c=t.tailscale.peers.filter(s=>!W(t,s)).filter(s=>!o.some(u=>C(s,u))),n=[...o.map(s=>({kind:"mesh",peer:s})),...c.map(s=>({kind:"tailnet",peer:s}))],M=800,_=300,h=M/2,m=_/2,f={[e]:{x:h,y:m,size:"m"}},p={[e]:{icon:"Database",name:i(t.localNode.hostName)||t.localNode.name||"broker",subtitle:"this node",color:"violet"}},N=[];if(n.length===0)f.__placeholder={x:h+220,y:m,size:"m"},p.__placeholder={icon:"CircleDashed",name:"No peers yet",subtitle:"awaiting discovery",color:"zinc"},N.push({from:e,to:"__placeholder",fromAnchor:"right",toAnchor:"left",style:"pending"});else{const s=n.length,u=Math.min(170,100+s*10);n.forEach(({kind:r,peer:a},z)=>{const v=z/s*Math.PI*2-Math.PI/2,x=Math.round(h+u*Math.cos(v)),k=Math.round(m+u*Math.sin(v)),b=r==="mesh"?a.id:`tailnet:${a.id}`,A=r==="mesh"?i(a.hostName)||a.name||"peer":S(a)||"tailnet",D=r==="mesh"?B(a):a.online?a.addresses[0]??"tailnet only":"tailnet offline";f[b]={x,y:k,size:r==="mesh"?"m":"s"},p[b]={icon:r==="mesh"?"Database":"CircleDashed",name:A,subtitle:D,color:r==="mesh"?a.advertiseScope==="mesh"?"emerald":"zinc":a.online?"sky":"zinc"};const[w,P]=I(x-h,k-m);N.push({from:e,to:b,fromAnchor:w,toAnchor:P,style:r==="mesh"?a.advertiseScope==="mesh"?"mesh":"local":a.online?"tailnet":"tailnet-offline"})})}return{layout:{width:M,height:_},nodes:f,nodeData:p,connectors:N,connectorStyles:{mesh:{color:"emerald",strokeWidth:2,label:"mesh"},local:{color:"zinc",strokeWidth:1.5},tailnet:{color:"sky",strokeWidth:1.5,dashed:!0,label:"tailnet"},"tailnet-offline":{color:"zinc",strokeWidth:1.25,dashed:!0,label:"tailnet"},pending:{color:"zinc",strokeWidth:1.5,dashed:!0}}}}function U({mesh:t}){const e=g.useMemo(()=>L(t),[t]);return e?d.jsx("div",{className:"s-mesh-topology",children:d.jsx(g.Suspense,{fallback:d.jsx("div",{className:"s-mesh-topology-fallback"}),children:d.jsx(E,{data:e,className:"s-mesh-topology-canvas",mode:"light",theme:"cool",interactive:!0,showArcToggle:!1,defaultZoom:"fit",maxFitZoom:.95,hoverEffects:{dim:!0,lift:!0,glow:!0,highlightEdges:!0}})})}):null}export{U as MeshTopologyView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as a,r as b}from"./index-BFbLvCJn.js";const N=/\.(?:apng|avif|gif|jpe?g|png|svg|webp)(?:$|[?#])/iu,x=/\bhttps?:\/\/[^\s<>"')\]]+/giu;function o(e){if(typeof e!="string")return null;try{const t=new URL(e.trim());return t.protocol==="http:"||t.protocol==="https:"?t.toString():null}catch{return null}}function i(e,t){const n=e?.[t];return typeof n=="string"&&n.trim()?n.trim():null}function j(e){return e.mediaType.toLowerCase().startsWith("image/")}function y(e){return N.test(e)}function U(e){try{const t=new URL(e),n=[t.pathname==="/"?"":t.pathname,t.search].join("").trim();return{host:t.hostname.replace(/^www\./iu,""),detail:n||t.hostname}}catch{return{host:e,detail:e}}}function E(e){const t=new Set,n=[];for(const r of e.matchAll(x)){const l=r[0]?.replace(/[.,;:!?]+$/u,""),m=o(l);!m||t.has(m)||(t.add(m),n.push(m))}return n}const T=/^\/api\/blobs\/[^/]+$/u;function g(e){try{const t=new URL(e);return T.test(t.pathname)?`${t.pathname}${t.search}`:e}catch{return e}}function u(e){return o(e.url)??o(i(e.metadata,"url"))??o(i(e.metadata,"href"))}function k(e){const t=e.metadata??null,n=i(t,"kind")??i(t,"type"),r=u(e);if(!r||n!=="link_preview"&&n!=="link-preview"&&e.mediaType!=="text/x-uri")return null;const l=U(r);return{id:e.id,url:r,title:i(t,"title")??l.host,description:i(t,"description"),imageUrl:o(i(t,"imageUrl")??i(t,"image")),siteName:i(t,"siteName")??l.host}}function w({src:e,alt:t}){const[n,r]=b.useState(!1);return n?a.jsxs("a",{className:"s-message-embed s-message-embed--file",href:e,target:"_blank",rel:"noreferrer",children:[a.jsx("span",{className:"s-message-embed-title",children:t}),a.jsx("span",{className:"s-message-embed-description",children:"Preview unavailable"})]}):a.jsx("a",{className:"s-message-embed s-message-embed--image",href:e,target:"_blank",rel:"noreferrer",children:a.jsx("img",{src:e,alt:t,loading:"lazy",decoding:"async",onError:()=>r(!0)})})}function A({preview:e}){return a.jsxs("a",{className:"s-message-embed s-message-embed--link",href:e.url,target:"_blank",rel:"noreferrer",children:[e.imageUrl&&a.jsx("span",{className:"s-message-embed-thumb",children:a.jsx("img",{src:e.imageUrl,alt:"",loading:"lazy",decoding:"async"})}),a.jsxs("span",{className:"s-message-embed-copy",children:[e.siteName&&a.jsx("span",{className:"s-message-embed-site",children:e.siteName}),a.jsx("span",{className:"s-message-embed-title",children:e.title}),e.description&&a.jsx("span",{className:"s-message-embed-description",children:e.description})]})]})}function L({message:e}){const t=e.attachments??[],n=new Set,r=[],l=[];for(const s of t){const c=u(s);if(c&&j(s)){n.add(s.id),r.push({id:s.id,src:g(c),alt:s.fileName??"Image attachment"});continue}const d=k(s);d&&(n.add(s.id),l.push(d))}const m=new Set(l.map(s=>s.url)),f=new Set(t.map(u).filter(s=>!!s));for(const s of E(e.body))f.has(s)||m.has(s)||y(s)&&r.push({id:s,src:g(s),alt:"Embedded image"});const p=t.filter(s=>!n.has(s.id));return r.length===0&&l.length===0&&p.length===0?null:a.jsxs("div",{className:"s-message-embeds",children:[r.map(s=>a.jsx(w,{src:s.src,alt:s.alt},s.id)),l.slice(0,1).map(s=>a.jsx(A,{preview:s},s.id)),p.map(s=>{const c=u(s),d=c?g(c):null,h=s.fileName??i(s.metadata,"title")??s.mediaType;return d?a.jsxs("a",{className:"s-message-embed s-message-embed--file",href:d,target:"_blank",rel:"noreferrer",children:[a.jsx("span",{className:"s-message-embed-title",children:h}),a.jsx("span",{className:"s-message-embed-description",children:s.mediaType})]},s.id):a.jsxs("div",{className:"s-message-embed s-message-embed--file",children:[a.jsx("span",{className:"s-message-embed-title",children:h}),a.jsx("span",{className:"s-message-embed-description",children:s.mediaType})]},s.id)})]})}export{L as M,g as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,r as p}from"./index-BFbLvCJn.js";import{a as w,c as b}from"./conversations-DoAAO6kA.js";import{m as M,c as A}from"./machine-scope-DJt9RZ2w.js";import{u as B,f as L}from"./use-fleet-active-asks-DAHOPYPV.js";import{u as I,e as R,b as E}from"./router-CJIx83Ia.js";import{l as D,i as F,s as T}from"./sessionRead-CvFz2RHv.js";import{u as $}from"./use-conversation-list-CGtcpdPd.js";import{u as C}from"./Provider-BEXAZWd9.js";import{AgentMasterScreen as O}from"./AgentMasterScreen-CijN_4tN.js";import{CommsDeck as P}from"./CommsDeck-CRXKIerH.js";import{ConversationScreen as S}from"./ConversationScreen-Pzxy9x4m.js";import{u as V,a as Y}from"./use-beside-DopIbJwf.js";/* empty css */import{P as z}from"./plus-B0hdY0fF.js";import"./time-Dhsh_2EG.js";import"./api-DSqpVKC7.js";import"./sse-BVxO0zNp.js";import"./index-BWHgHrtv.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./theme-vars-DNK0nn3k.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-D-VB5vdt.js";import"./runtime-picker-IRcTkMZ5.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CCG7hG7z.js";import"./createLucideIcon-CKbjXlwv.js";import"./media-blobs-Bi8pxr1u.js";import"./index-CXzJ_hGx.js";import"./HarnessMark-CP-PWk2W.js";import"./conversation-model-FxDeWlle.js";import"./colors-CFlbwC25.js";import"./NewChatOrigin-BYsEu9dZ.js";import"./keyboard-nav-CEe-ApvZ.js";import"./x-BcfhXYiF.js";import"./chevron-down-DEDSNJNY.js";import"./search-Bv2IONmc.js";import"./file-text-BOJQiS8p.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-mxzPxQQW.js";import"./TextDocumentSurface-DBslUq9k.js";import"./index-V8FYEUpD.js";import"./chevron-right-B02kAw12.js";import"./folder-C2emmTHq.js";import"./chevron-up-CzveykKG.js";import"./code-xml-E9gBuiVs.js";import"./arrow-left-DNjQHf4C.js";import"./arrow-right-A_yyXwoH.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DVhUsgOw.js";import"./AgentAvatar-Dn8TUv5W.js";import"./SpriteAvatar-D53GaaK3.js";import"./CrewAvatar-a_C_F9r_.js";import"./sessions-view-lGMwwZY7.js";import"./message-visibility-DwxgcgYK.js";import"./CommsFlowGraph-Cc48o9u_.js";import"./comms-gesture-_aGFo6g3.js";import"./CommsCanvas-Dh056d91.js";import"./comms-deck-CBhsXnY-.js";import"./CommsFlowMap-Ckasql5e.js";import"./CommsSelection-CuphnUny.js";/* empty css */import"./agent-master-model-Bk_yuUXJ.js";import"./panel-right-WKLdPm0F.js";import"./arrow-up-right-DUW1A1Hb.js";import"./ComposerAttachments-9uYp_Lh5.js";import"./message-markup-D1C7GzHo.js";import"./message-markup-BQW5jdJw.js";import"./mentions-s5oW4aQU.js";import"./AgentDetailCard-CI-ufaEP.js";import"./AgentLiveActions-CkRGkv13.js";import"./terminal-takeover-CXwdoZ5j.js";import"./openContent-C6XO6kr5.js";import"./eye-CD-_aphP.js";import"./terminal-DMBAZjPP.js";import"./operator-attention-DBaRg5ep.js";import"./clipboard-e3fSpeo7.js";import"./MessageEmbeds-B-FbWI7a.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-L9738YVP.js";import"./BackToPicker-BPU7kbXq.js";import"./AstronautSuit-Dzu4GOMR.js";import"./ConversationComposer-hYtLurqy.js";import"./zap-BqL8ttGz.js";import"./ConversationFeedRows-Bu0ZJcy8.js";import"./ConversationPanels-D6KuqvGu.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./use-reduced-motion-DkdIQBwh.js";import"./proxy-k0ILOVkK.js";import"./activity-CXkZ620t.js";import"./message-circle-BB3rFCVD.js";import"./tail-events-C6NWFB1N.js";import"./ConversationStatus-BEefIbXq.js";import"./check-BM6QtbB7.js";import"./sparkles-Br-bA2aZ.js";import"./triangle-alert-BZikHKuT.js";import"./SessionContextStrip-BoiIxXvS.js";function Ut({conversationId:s,agentId:l,threadId:x,machineId:m,navigate:r}){const t=V(),d=Y(r,m);let n;return l?n=e.jsx(O,{agentId:l,threadId:x,machineId:m,navigate:r}):s?n=e.jsx(U,{conversationId:s,navigate:r,beside:t}):n=e.jsx(_,{}),e.jsxs("div",{className:"amv",children:[e.jsx("section",{className:"amv-main",children:n}),e.jsx(P,{ids:t.ids,onClose:t.remove,onStage:o=>{d(o),t.remove(o)},renderConversation:o=>e.jsx(S,{conversationId:o,navigate:r,embedded:!0,showBackNav:!1},o)})]})}function U({conversationId:s,navigate:l,beside:x}){const{agents:m}=C(),r=I(),t=p.useMemo(()=>R(r.state),[r.state]),d=p.useMemo(()=>!t||t.view!=="messages"||!t.agentId?void 0:`Back to ${m.find(o=>o.id===t.agentId)?.name??t.agentId.split(".")[0]??t.agentId}`,[t,m]);return e.jsx(S,{conversationId:s,navigate:l,showBackNav:!!t,backLabel:d,beside:x},s)}function _(){const{onlineCount:s,apiConnection:l,reload:x,route:m,agents:r,openContextCapture:t,navigate:d}=C(),{sessions:n,loading:o,loadError:a}=$(),[h]=p.useState(()=>D()),j=B(),i=l.status==="offline",u=E(m),g=p.useRef(!1),N=p.useMemo(()=>{const y=M(r,u);return[...A(n,y,u)].sort((k,c)=>(c.lastMessageAt??0)-(k.lastMessageAt??0))},[n,r,u]),v=p.useMemo(()=>{const y=N.filter(c=>!w(c));return y.find(c=>L(j,c)?.status==="needs_attention"&&F(c.lastMessageAt,c.id,h))??y[0]},[N,j,h]);p.useEffect(()=>{g.current||o||a||i||v&&(g.current=!0,T(v.id),d({view:"messages",conversationId:v.id,...u?{machineId:u}:{}},{replace:!0}))},[v,o,a,i,u,d]);const f=!i&&!a&&(o||!!v);return e.jsx("div",{className:`s-conv-empty${i?" s-conv-empty--offline":""}`,children:e.jsxs("div",{className:"s-conv-empty-inner",children:[e.jsx(G,{}),e.jsx("div",{className:"s-conv-empty-eyebrow",children:i?"Connection":"Conversations"}),e.jsx("p",{className:"s-conv-empty-title",children:i?"Scout server offline":f?"Opening your latest conversation":a?"Chats unavailable":"Nothing open yet"}),e.jsx("p",{className:"s-conv-empty-detail",children:i?"Start or restart Scout services. Chats and context will appear when the server responds.":f?q(v):a||"Start a chat by choosing an agent and sending the first message."}),i||a?e.jsx("button",{type:"button",className:"s-conv-empty-action",onClick:()=>{x()},children:"Retry connection"}):f?null:e.jsxs("button",{type:"button",className:"s-conv-empty-new",onClick:()=>t(),children:[e.jsx(z,{size:16,"aria-hidden":"true"}),"New chat"]}),e.jsxs("div",{className:"s-conv-empty-ambient",children:[e.jsx("span",{className:"s-conv-empty-ambient-dot","aria-hidden":"true"}),i?"waiting for server":`${s} ${s===1?"agent":"agents"} active`]})]})})}function q(s){return s?b(s):"Finding where you left off."}function G(){return e.jsxs("svg",{className:"s-conv-empty-mesh",viewBox:"0 0 72 72",fill:"none","aria-hidden":"true",children:[e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"14",y1:"20",x2:"36",y2:"12"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"36",y1:"12",x2:"58",y2:"24"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"14",y1:"20",x2:"24",y2:"46"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"24",y1:"46",x2:"36",y2:"12"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"24",y1:"46",x2:"50",y2:"54"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"50",y1:"54",x2:"58",y2:"24"}),e.jsx("line",{className:"s-conv-empty-mesh-link",x1:"36",y1:"12",x2:"50",y2:"54"}),e.jsx("circle",{className:"s-conv-empty-mesh-node",cx:"14",cy:"20",r:"2.5"}),e.jsx("circle",{className:"s-conv-empty-mesh-node",cx:"58",cy:"24",r:"2.5"}),e.jsx("circle",{className:"s-conv-empty-mesh-node",cx:"24",cy:"46",r:"2.5"}),e.jsx("circle",{className:"s-conv-empty-mesh-node",cx:"50",cy:"54",r:"2.5"}),e.jsx("circle",{className:"s-conv-empty-mesh-node s-conv-empty-mesh-node--accent",cx:"36",cy:"12",r:"3.5"})]})}export{Ut as MessagesScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as h,j as s}from"./index-BFbLvCJn.js";import{H as A}from"./HarnessMark-CP-PWk2W.js";import{s as C,t as M,b as k}from"./bash-format-BRV5C6Gv.js";import{d as E,c as S}from"./context-budget-8qFKqM-j.js";import{s as b}from"./page-status-BIuh3C5p.js";import{t as T}from"./time-Dhsh_2EG.js";import{b as y,a as B,l as O}from"./agent-lane-detail-Ti3trpfH.js";import{b as _}from"./agent-lane-preview-Dpa3DuOn.js";import{m as F}from"./mission-wall-CAo4BKfa.js";import"./lane-observe-CteDwdD-.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./lane-ask-display-BTVSakyo.js";import"./mission-control-model-BpJHDV5D.js";import"./colors-CFlbwC25.js";import"./agent-state-DDhnFEEP.js";const P=/^\[[a-z][a-z-]*\]$/i;function H(a,e){const l=w=>w.replace(/[…\s]+$/u,""),n=l(a),i=l(e);if(!n)return!0;const r=n.slice(0,Math.min(n.length,i.length));return i.startsWith(r)||n.startsWith(i)}function D(a,e){const l=a?.headline.trim();if(l&&!P.test(l)){const i=a?.detail?.trim(),r=a?.headFull??l;return i&&H(l,i)?{headline:i.length>l.length?i:l,full:r,detail:null}:{headline:l,full:r,detail:i??null}}const n=[...e?.events??[]].reverse().find(i=>i.kind==="tool");if(n){const i=n.arg?C(M(n.arg)).rest||n.arg:null,r=[n.tool,i].filter(Boolean).join(" · ").trim()||"Running tool";return{headline:r,full:r,detail:null}}return l?{headline:l,full:a?.headFull??l,detail:null}:null}const W=8,z=6,G={created:"+",modified:"~",read:"○"};function f(a,e=42){return a?a.length<=e?a:`…${a.slice(-(e-1))}`:"—"}function K(a){const e=a.replace(/\\/g,"/"),l=e.lastIndexOf("/");return l<0?{dir:"",base:e}:{dir:e.slice(0,l+1),base:e.slice(l+1)}}function os({log:a,lane:e,onClose:l,onExpand:n,onTail:i,onOpenLog:r,onOpenFile:w}){const{agent:j,observe:o}=e,t=h.useMemo(()=>y(e),[e]),v=h.useMemo(()=>_(o,j,{isLive:a.live}),[o,j,a.live]),m=h.useMemo(()=>D(v,o),[v,o]),u=h.useMemo(()=>B(o,W),[o]),p=h.useMemo(()=>O(o,z),[o]),d=h.useMemo(()=>E(t.usage,{model:t.model,adapterType:t.harness}),[t.usage,t.model,t.harness]),N=F(a),g=[a.project,j.branch].filter(Boolean).join("/")||a.cwd||"—",L=u.filter(c=>c.state!=="read").length,$=[["MODEL",[t.harness,t.model].filter(Boolean).join("/")||"—",null],["BRANCH",t.branch??"—",null],["CWD",f(t.cwd),t.cwd],["SESSION",f(t.sessionId,30),t.sessionId],["LOG",f(a.logPath,30),a.logPath]];return s.jsxs("aside",{className:"s-wall-rail","aria-label":`${N} context`,children:[s.jsxs("div",{className:"s-wall-rail-head",children:[s.jsx("span",{className:`s-wall-rail-dot${a.live?" s-wall-rail-dot--live":""}`,"aria-hidden":"true"}),s.jsx(A,{harness:a.source,size:12,title:null}),s.jsxs("div",{className:"s-wall-rail-identity",children:[s.jsx("div",{className:"s-wall-rail-title",title:j.name,children:N}),s.jsxs("div",{className:"s-wall-rail-sub",title:a.cwd??g,children:[g," · ",a.lastActiveAt?T(a.lastActiveAt):"idle"]})]}),s.jsx("button",{type:"button",className:"s-wall-rail-close",onClick:l,"aria-label":"Close context (Esc)",title:"Close context (Esc)",children:"✕"})]}),s.jsxs("div",{className:"s-wall-rail-body",children:[s.jsxs("section",{className:"s-wall-rail-sec",children:[s.jsxs("div",{className:"s-wall-rail-sechead",children:[s.jsx("span",{className:"s-wall-rail-seclabel",children:a.live?"executing now":"last action"}),s.jsx("span",{className:"s-wall-rail-secrule","aria-hidden":"true"})]}),m?s.jsxs("div",{className:"s-wall-rail-now",children:[s.jsx("div",{className:"s-wall-rail-headline",title:m.full,children:m.headline}),m.detail&&s.jsx("div",{className:"s-wall-rail-detail",title:m.detail,children:m.detail})]}):s.jsx("div",{className:"s-wall-rail-empty",children:"No interpreted trace yet — the pane is streaming raw output."}),s.jsxs("dl",{className:"s-wall-rail-stats",children:[s.jsx(x,{label:"events",value:t.events}),s.jsx(x,{label:"tools",value:t.tools}),s.jsx(x,{label:"edits",value:t.edits}),s.jsx(x,{label:"reads",value:t.reads}),s.jsx(x,{label:"files",value:t.files})]}),d&&s.jsxs("div",{className:`s-wall-rail-gauge${d.overLimit?" s-wall-rail-gauge--over":""}`,children:[s.jsxs("div",{className:"s-wall-rail-gauge-line",children:[s.jsx("span",{className:"s-wall-rail-gauge-label",children:"context"}),s.jsxs("span",{className:"s-wall-rail-gauge-value",children:[d.usedLabel,s.jsxs("span",{className:"s-wall-rail-gauge-of",children:[" / ",d.budgetLabel]})]}),s.jsxs("span",{className:"s-wall-rail-gauge-pct",children:[d.pct,"%",d.overLimit?" over":""]})]}),s.jsx("div",{className:"s-wall-rail-gauge-bar",role:"progressbar","aria-label":"Context budget","aria-valuenow":d.pct,"aria-valuemin":0,"aria-valuemax":Math.max(100,d.pct),children:s.jsx("span",{className:"s-wall-rail-gauge-fill",style:{width:`${S(d)}%`}})})]})]}),s.jsxs("section",{className:"s-wall-rail-sec",children:[s.jsxs("div",{className:"s-wall-rail-sechead",children:[s.jsx("span",{className:"s-wall-rail-seclabel",children:"runtime"}),s.jsx("span",{className:"s-wall-rail-secrule","aria-hidden":"true"})]}),s.jsx("dl",{className:"s-wall-rail-facts",children:$.map(([c,R,I])=>s.jsxs("div",{className:"s-wall-rail-fact",children:[s.jsx("dt",{className:"s-wall-rail-fact-label",children:c}),s.jsx("dd",{className:"s-wall-rail-fact-value",title:I??R,children:R})]},c))})]}),s.jsxs("section",{className:"s-wall-rail-sec",children:[s.jsxs("div",{className:"s-wall-rail-sechead",children:[s.jsx("span",{className:"s-wall-rail-seclabel",children:"files"}),u.length>0&&s.jsxs("span",{className:"s-wall-rail-seccount",children:[L," changed · ",u.length-L," read"]}),s.jsx("span",{className:"s-wall-rail-secrule","aria-hidden":"true"})]}),u.length===0?s.jsx("div",{className:"s-wall-rail-empty",children:"No files touched in this window."}):s.jsx("div",{className:"s-wall-rail-files",children:u.map(c=>s.jsx(U,{file:c,onOpen:w},`${c.path}:${c.lastT}`))})]}),s.jsxs("section",{className:"s-wall-rail-sec",children:[s.jsxs("div",{className:"s-wall-rail-sechead",children:[s.jsx("span",{className:"s-wall-rail-seclabel",children:"commands"}),p.length>0&&s.jsx("span",{className:"s-wall-rail-seccount",children:p.length}),s.jsx("span",{className:"s-wall-rail-secrule","aria-hidden":"true"})]}),p.length===0?s.jsx("div",{className:"s-wall-rail-empty",children:"No shell commands in this window."}):s.jsx("div",{className:"s-wall-rail-cmds",children:p.map(c=>s.jsx(q,{entry:c},c.id))})]})]}),s.jsxs("div",{className:"s-wall-rail-foot",children:[s.jsx("button",{type:"button",className:"s-wall-rail-act",onClick:n,...b({label:`Expand ${N}`}),children:"Expand"}),s.jsx("button",{type:"button",className:"s-wall-rail-act",onClick:i,...b({label:`Tail · ${N}`,route:`/ops/tail?q=${encodeURIComponent(a.sessionId)}`}),children:"Tail ↗"}),s.jsx("button",{type:"button",className:"s-wall-rail-act",onClick:r,...b({label:`Session · ${a.sessionId}`,route:`/sessions/${a.sessionId}`}),children:"Session ↗"}),s.jsxs("span",{className:"s-wall-rail-keys",children:[s.jsx("kbd",{children:"hjkl"})," move · ",s.jsx("kbd",{children:"esc"})," close"]})]})]})}function x({label:a,value:e}){return s.jsxs("div",{className:"s-wall-rail-stat",children:[s.jsx("dt",{className:"s-wall-rail-stat-label",children:a}),s.jsx("dd",{className:"s-wall-rail-stat-value",children:e>0?e.toLocaleString():"—"})]})}function U({file:a,onOpen:e}){const{dir:l,base:n}=K(a.path);return s.jsxs("button",{type:"button",className:"s-wall-rail-frow",title:a.path,onClick:()=>e(a.path),children:[s.jsx("span",{className:`s-wall-rail-fstate s-wall-rail-fstate--${a.state}`,"aria-hidden":"true",children:G[a.state]??"○"}),s.jsxs("span",{className:"s-wall-rail-fpath",children:[l&&s.jsx("span",{className:"s-wall-rail-fdir",children:l}),s.jsx("span",{className:"s-wall-rail-fbase",children:n})]})]})}function q({entry:a}){const{dir:e,rest:l}=C(M(a.command)),n=k(l||a.command);return s.jsxs("div",{className:"s-wall-rail-crow",title:a.command,children:[s.jsx("span",{className:"s-wall-rail-cmark","aria-hidden":"true",children:"❯"}),s.jsxs("span",{className:"s-wall-rail-ctext",children:[e&&s.jsxs("span",{className:"s-wall-rail-bash-dir",children:[e,"/"]}),n.map((i,r)=>s.jsxs("span",{className:`s-wall-rail-bash-${i.tier}${i.flag?" s-wall-rail-bash-flag":""}`,children:[r>0?" ":"",i.text]},r))]}),a.outcome&&s.jsx("span",{className:"s-wall-rail-cresult",children:a.outcome})]})}export{os as MissionContextRail};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,j as a}from"./index-BFbLvCJn.js";import{s as Ae}from"./send-to-agent-session-CWDHHgFB.js";/* empty css */import{a as de}from"./api-DSqpVKC7.js";import{u as Se,e as Me,f as Ee,m as je,M as ke,b as Ne,t as z,g as A,d as me}from"./mission-control-store-e8F85JhP.js";import{u as Le}from"./observe-M3rLosT5.js";import{h as Te}from"./NewChatComposer-D-VB5vdt.js";import{i as Ce,c as Fe}from"./keyboard-nav-CEe-ApvZ.js";import{f as Oe}from"./tail-display-DHSNmvor.js";import{u as Pe}from"./tail-events-C6NWFB1N.js";import{u as De}from"./Provider-BEXAZWd9.js";import{MissionContextRail as _e}from"./MissionContextRail-ClR8amG1.js";import{FocusOverlay as We}from"./MissionFocusOverlay-CzeNgI9Q.js";import{MissionLogPane as $e}from"./MissionLogPane-2PMEoG44.js";import{o as Ke}from"./agent-lanes-model-DMAdqCmK.js";import{a as Ve,A as qe}from"./mission-control-model-BpJHDV5D.js";import{b as He,s as Be,f as Qe,c as ze,n as Ue,d as Ge,m as Ye,W as Je}from"./mission-wall-CAo4BKfa.js";import"./agent-state-DDhnFEEP.js";import"./surface-activity-B1rgWB1i.js";import"./runtime-picker-IRcTkMZ5.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CCG7hG7z.js";import"./createLucideIcon-CKbjXlwv.js";import"./router-CJIx83Ia.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./media-blobs-Bi8pxr1u.js";import"./index-CXzJ_hGx.js";import"./HarnessMark-CP-PWk2W.js";import"./conversation-model-FxDeWlle.js";import"./time-Dhsh_2EG.js";import"./conversations-DoAAO6kA.js";import"./colors-CFlbwC25.js";import"./NewChatOrigin-BYsEu9dZ.js";import"./x-BcfhXYiF.js";import"./chevron-down-DEDSNJNY.js";import"./search-Bv2IONmc.js";import"./file-text-BOJQiS8p.js";import"./lane-edit-display-BjdT9oZl.js";import"./index-BWHgHrtv.js";import"./theme-vars-DNK0nn3k.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BVxO0zNp.js";import"./scoutbot-Bk3nyrkj.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-mxzPxQQW.js";import"./TextDocumentSurface-DBslUq9k.js";import"./index-V8FYEUpD.js";import"./chevron-right-B02kAw12.js";import"./folder-C2emmTHq.js";import"./chevron-up-CzveykKG.js";import"./code-xml-E9gBuiVs.js";import"./arrow-left-DNjQHf4C.js";import"./arrow-right-A_yyXwoH.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DVhUsgOw.js";import"./bash-format-BRV5C6Gv.js";import"./context-budget-8qFKqM-j.js";import"./page-status-BIuh3C5p.js";import"./agent-lane-detail-Ti3trpfH.js";import"./lane-observe-CteDwdD-.js";import"./agent-lane-preview-Dpa3DuOn.js";import"./lane-ask-display-BTVSakyo.js";function Xe(t,o,i,p){if(o<=0)return-1;const v=o-1,k=Math.max(1,Math.floor(i));if(t<0||t>v)return p==="left"||p==="up"||p==="last"?v:0;switch(p){case"first":return 0;case"last":return v;case"left":return Math.max(0,t-1);case"right":return Math.min(v,t+1);case"up":{const h=t-k;return h>=0?h:t}case"down":{const h=t+k;return h<=v?h:v}}}function Ze(t){switch(t){case"h":case"ArrowLeft":return"left";case"l":case"ArrowRight":return"right";case"k":case"ArrowUp":return"up";case"j":case"ArrowDown":return"down";case"Home":return"first";case"G":case"End":return"last";default:return null}}const $=4e3,et=250,tt=3e4,st=1800;function nt(t,o){return t.map(i=>({id:i.id,name:i.name,handle:i.handle,state:i.state,project:i.project,branch:i.branch,harness:i.harness,model:i.model,sessionIds:o.get(i.id)??[]}))}function rt(t){return{id:`native:${t.source}:${t.sessionId}`,definitionId:`native:${t.source}:${t.sessionId}`,name:`${t.source} · ${t.project}`,handle:t.sessionId.slice(0,8),agentClass:"native-session",harness:t.source,state:t.live?"working":"ready",projectRoot:t.cwd,cwd:t.cwd,updatedAt:t.lastActiveAt,createdAt:null,transport:"tail",selector:null,defaultSelector:null,nodeQualifier:null,workspaceQualifier:null,wakePolicy:null,capabilities:[],project:t.project,branch:t.attribution==="unattributed"?"native session":t.attribution,role:"native session",model:null,harnessSessionId:t.sessionId,terminalSurface:null,harnessLogPath:t.logPath,conversationId:null,homeNodeId:null,homeNodeName:null,ownerId:null,ownerName:null,ownerHandle:null,staleLocalRegistration:!1,retiredFromFleet:!1,replacedByAgentId:null}}function it(t){return t.agentClass==="native-session"||t.id.startsWith("native:")}function fe(t,o){if(t.agent){const i=o.find(p=>p.id===t.agent.id);if(i)return i}return rt(t)}function at(t,o){const i=o.find(p=>p.sessionId?.trim()===t.sessionId);return i||{source:t.source,transcriptPath:t.logPath??"",sessionId:t.sessionId,cwd:t.cwd,project:t.project,harness:t.attribution,mtimeMs:t.lastActiveAt,size:0}}function ot(t,o,i){return t.live?"active":t.lastActiveAt>0&&o-t.lastActiveAt<=i?"recent":"idle"}function xs({navigate:t,agents:o}){const i=Se(),{openFilePreview:p}=De(),{activityFilter:v,sourceFilter:k,activityWindowMs:h,groupMode:U,query:G,focusedId:F,revealRequest:y}=i,[Y,J]=n.useState([]),[O,pe]=n.useState(null),[g,he]=n.useState(()=>Date.now()),N=Le(o),P=n.useRef([]);Pe(e=>{P.current.push(e)}),n.useEffect(()=>{const e=setInterval(()=>{if(P.current.length===0)return;const s=P.current;P.current=[],J(r=>{const c=new Set(r.map(d=>d.id)),I=s.filter(d=>!d.id||!c.has(d.id));if(I.length===0)return r;const u=r.concat(I);return u.length>$?u.slice(u.length-$):u})},et);return()=>clearInterval(e)},[]),n.useEffect(()=>{const e=setInterval(()=>he(Date.now()),1e4);return()=>clearInterval(e)},[]),n.useEffect(()=>{let e=!1;return de(Ve()).then(s=>{if(e)return;const r=s.events??[];J(c=>{const I=new Set(c.map(d=>d.id)),u=r.filter(d=>!I.has(d.id)).concat(c);return u.length>$?u.slice(u.length-$):u})}).catch(()=>{}),()=>{e=!0}},[]),n.useEffect(()=>{let e=!1;const s=async()=>{try{const c=await de("/api/tail/discover");e||pe(c)}catch{}};s();const r=setInterval(()=>{s()},tt);return()=>{e=!0,clearInterval(r)}},[]);const X=n.useMemo(()=>{const e=new Map;for(const s of o){const r=N[s.id],c=[s.harnessSessionId,r?.sessionId,r?.data.metadata?.session?.externalSessionId].map(I=>I?.trim()).filter(I=>!!I);e.set(s.id,[...new Set(c)])}return e},[o,N]),b=n.useMemo(()=>He({events:Oe(Y),transcripts:O?.transcripts??[],agents:nt(o,X),now:g,liveWindowMs:qe}),[o,O?.transcripts,g,X,Y]),[R,K]=n.useState(null),w=n.useMemo(()=>{const e=Be(Qe(b,{sourceFilter:k,activityFilter:v,query:G,now:g,activeWindowMs:h}),U);if(!R)return e;const s=e.find(r=>r.id===R);return s?[s,...e.filter(r=>r.id!==R)]:e},[v,h,U,b,g,R,G,k]),Z=n.useRef(null),ee=n.useRef(null),V=n.useRef({w:0,h:0}),te=n.useRef(0);te.current=w.length;const[m,ve]=n.useState(()=>ze(0,{w:0,h:0})),q=n.useRef(m),D=n.useCallback((e,s)=>{const r=Ue(q.current,e,s);r!==q.current&&(q.current=r,ve(r))},[]);n.useEffect(()=>{const e=ee.current;if(!e)return;const s=new ResizeObserver(([r])=>{V.current={w:r.contentRect.width,h:r.contentRect.height},D(te.current,V.current)});return s.observe(e),()=>s.disconnect()},[D]),n.useLayoutEffect(()=>{D(w.length,V.current)},[w.length,D]);const S=n.useMemo(()=>w.slice(0,m.shown),[w,m.shown]),se=n.useRef(1);se.current=Math.max(1,m.cols),n.useEffect(()=>{Me(w.map(e=>({id:e.id,name:e.agent?.name??Ye(e),handle:e.agent?.handle??Ge(e),harness:e.source,branch:e.agent?.branch??null,project:e.project,model:e.agent?.model??null,state:e.agent?.state??null,agentClass:e.agent?"agent":"native-session",updatedAt:e.lastActiveAt,source:e.agent||e.attribution==="scout-managed"?"scout":"native",activity:ot(e,g,h),lastActiveAt:e.lastActiveAt})))},[h,g,w]);const[we,ne]=n.useState(null),re=n.useRef(null),L=n.useRef(null);n.useEffect(()=>{y&&re.current!==y.serial&&(re.current=y.serial,K(y.id),ne(y.id),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>ne(null),st),Ee(y.serial))},[y]),n.useEffect(()=>()=>{L.current&&clearTimeout(L.current)},[]);const T=F?b.find(e=>e.id===F)??null:null,f=n.useMemo(()=>T?fe(T,o):null,[o,T]),Ie=T?.agent?N[T.agent.id]?.data??null:null,[x,C]=n.useState(null),[M,_]=n.useState(!1),ge=x?S.findIndex(e=>e.id===x):-1,ie=n.useRef({index:-1,ids:[]});ie.current={index:ge,ids:S.map(e=>e.id)};const H=x?b.find(e=>e.id===x)??null:null,l=M?H:null;n.useEffect(()=>{M&&!H&&_(!1)},[H,M]);const B=n.useRef(new Map),xe=n.useCallback((e,s)=>{s?B.current.set(e,s):B.current.delete(e)},[]);n.useEffect(()=>{x&&B.current.get(x)?.focus({preventScroll:!0})},[x]);const ae=n.useMemo(()=>{if(!l)return null;const e=fe(l,o),s=(l.agent?N[l.agent.id]?.data??null:null)??Ke(at(l,O?.transcripts??[]),l.lines,l.live,{now:g});return{id:l.id,agent:e,source:l.agent?"scout":"native",observe:s,lastActiveAt:l.lastActiveAt,current:l.live}},[o,O?.transcripts,g,N,l]),oe=n.useCallback(e=>{t({view:"ops",mode:"tail",tailQuery:e.sessionId})},[t]),Q=n.useCallback(e=>{C(e),_(!0)},[]),le=n.useRef({focusedId:F,railOpen:M,pinnedId:R,selectedIds:i.selectedIds,visibleAgents:i.visibleAgents});le.current={focusedId:F,railOpen:M,pinnedId:R,selectedIds:i.selectedIds,visibleAgents:i.visibleAgents},n.useEffect(()=>{const e=s=>{if(Ce(s.target))return;const r=le.current;if(r.focusedId){s.key==="Escape"&&A(null);return}if(Fe())return;if(s.key==="Escape"){r.railOpen?_(!1):r.selectedIds.length>0?me():r.pinnedId?K(null):C(null);return}if((s.metaKey||s.ctrlKey)&&s.key==="a"){if(r.visibleAgents.length===0)return;s.preventDefault();const W=r.visibleAgents.map(j=>j.id);if(W.every(j=>r.selectedIds.includes(j))){me();return}for(const j of W)r.selectedIds.includes(j)||z(j);return}if(s.metaKey||s.ctrlKey||s.altKey||s.defaultPrevented)return;const c=s.target instanceof Node?s.target:null;if(!(!c||c===document.body||c===document.documentElement)&&!Z.current?.contains(c))return;const{index:u,ids:d}=ie.current;if(d.length===0)return;const ue=Ze(s.key);if(ue){s.preventDefault();const W=Xe(u,d.length,se.current,ue);C(d[W]??null);return}if(c instanceof Element&&c.closest("button, a, [role='button'], [role='link']"))return;const Re=u<0?0:u,E=d[Re];if(E){if(s.key==="Enter"||s.key==="i"){s.preventDefault(),Q(E);return}if(s.key==="o"){s.preventDefault(),C(E),A(E);return}(s.key==="x"||s.key===" ")&&(s.preventDefault(),C(E),z(E))}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[Q]);const ye=S.reduce((e,s)=>e+s.lines.length,0),ce=b.length-w.length,be=je(i);return a.jsxs("div",{className:"s-wall",ref:Z,children:[a.jsxs("div",{className:"s-wall-status",children:[a.jsx("span",{className:"s-wall-status-key",children:"logs"}),a.jsxs("span",{className:"s-wall-status-value",children:[m.shown,"/",w.length]}),a.jsx("span",{className:"s-wall-status-key",children:"grid"}),a.jsx("span",{className:"s-wall-status-value",children:m.cols>0?`${m.cols}×${m.rows}`:"—"}),a.jsx("span",{className:"s-wall-status-key",children:"lines"}),a.jsx("span",{className:"s-wall-status-value",children:ye}),m.hidden>0&&a.jsxs("span",{className:"s-wall-status-hidden",title:"Least recently active logs are withheld to keep panes readable",children:[m.hidden," withheld"]}),ce>0&&a.jsxs("span",{className:"s-wall-status-hidden",title:"Sessions discovery knows of that have produced no output to tail",children:[ce," quiet"]}),a.jsxs("span",{className:"s-wall-status-filter",role:"group","aria-label":"Show logs active within",children:[a.jsx("span",{className:"s-wall-status-key",children:"within"}),ke.map(e=>{const s=be===e.id;return a.jsx("button",{type:"button",className:`s-wall-status-chip${s?" s-wall-status-chip--active":""}`,"aria-pressed":s,onClick:()=>Ne(e.id),children:e.label},e.id)})]}),S.length>0&&a.jsxs("span",{className:"s-wall-status-keys",children:[a.jsx("kbd",{children:"hjkl"})," move · ",a.jsx("kbd",{children:"⏎"})," context · ",a.jsx("kbd",{children:"o"})," expand"]}),R&&a.jsx("button",{type:"button",className:"s-wall-status-pin",onClick:()=>K(null),children:"unpin"})]}),a.jsx("div",{ref:ee,className:`s-wall-grid${M?" s-wall-grid--railed":""}`,style:{gridTemplateColumns:`repeat(${Math.max(1,m.cols)}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${Math.max(1,m.rows)}, minmax(0, 1fr))`,gap:Je},children:S.length===0?a.jsxs("div",{className:"s-wall-empty",children:[a.jsx("div",{className:"s-wall-empty-title",children:b.length===0?"No logs on the wire":"No matching logs"}),a.jsx("div",{className:"s-wall-empty-sub",children:b.length===0?"Panes appear as sessions start writing to their transcripts.":"Widen the activity window or clear the filter."})]}):S.map(e=>a.jsx($e,{log:e,selected:i.selectedIds.includes(e.id),revealed:we===e.id,cursor:x===e.id,paneRef:s=>xe(e.id,s),onOpen:()=>Q(e.id),onToggleSelected:()=>z(e.id),onOpenLog:()=>oe(e)},e.id))}),l&&ae&&a.jsx(_e,{log:l,lane:ae,onClose:()=>_(!1),onExpand:()=>A(l.id),onTail:()=>oe(l),onOpenLog:()=>t({view:"sessions",sessionId:l.sessionId}),onOpenFile:p}),f&&a.jsx(We,{agent:f,observe:Ie,onClose:()=>A(null),onSend:async e=>{await Ae(f,e)},onOpenConversation:()=>{if(A(null),it(f)&&f.harnessSessionId){t({view:"sessions",sessionId:f.harnessSessionId});return}Te(f).then(e=>t({view:"conversation",conversationId:e})).catch(()=>t({view:"agents-v2",agentId:f.id,tab:"message"}))},onTail:()=>{A(null),t({view:"ops",mode:"tail",tailQuery:f.harnessSessionId??f.handle??f.name})},onProfile:()=>{A(null),t({view:"agents-v2",agentId:f.id})}})]})}export{xs as MissionControlView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as f,j as e}from"./index-BFbLvCJn.js";import{a as w}from"./colors-CFlbwC25.js";import{c as N,n as $}from"./agent-state-DDhnFEEP.js";import{u as C}from"./keyboard-nav-CEe-ApvZ.js";import{t as j}from"./time-Dhsh_2EG.js";import{M,f as S}from"./runtime-picker-IRcTkMZ5.js";import{s as v}from"./page-status-BIuh3C5p.js";import"./api-DSqpVKC7.js";import"./index-CXzJ_hGx.js";import{K as k}from"./mission-control-model-BpJHDV5D.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CCG7hG7z.js";import"./createLucideIcon-CKbjXlwv.js";import"./router-CJIx83Ia.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";function g({agent:s,observe:a,onClose:l,onSend:o,onOpenConversation:r,onTail:d,onProfile:p}){const h=w(s.name),{ref:m,onKeyDown:u}=C(),[i,n]=f.useState("profile"),c=t=>{if(u(t),t.defaultPrevented)return;const y=t.target;y instanceof HTMLInputElement||y instanceof HTMLTextAreaElement||(y?.isContentEditable??!1)||(t.key==="1"?(t.preventDefault(),n("profile")):t.key==="2"?(t.preventDefault(),n("activity")):t.key==="3"&&(t.preventDefault(),n("message")))};return e.jsx("div",{className:"s-mission-overlay",onClick:l,children:e.jsxs("div",{ref:m,role:"dialog","aria-modal":"true","aria-labelledby":"mission-overlay-title",onClick:t=>t.stopPropagation(),onKeyDown:c,tabIndex:-1,className:"s-mission-overlay-dialog",children:[e.jsxs("div",{className:"s-mission-overlay-header",children:[e.jsx("div",{className:"s-ops-avatar",style:{"--size":"28px",background:h},children:s.name[0]?.toUpperCase()}),e.jsxs("div",{className:"s-mission-overlay-identity",children:[e.jsxs("div",{className:"s-mission-overlay-name",id:"mission-overlay-title",children:[s.name," ",e.jsx("span",{className:"s-mission-overlay-handle",children:s.handle?`@${s.handle}`:""})]}),e.jsxs("div",{className:"s-mission-overlay-meta",children:[s.project??"—"," · ",s.branch??"main"," · ",N(s.state)]})]}),e.jsx("button",{className:"s-mission-overlay-close",onClick:l,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"✕"})]}),e.jsxs("div",{className:"s-mission-overlay-tabs",role:"tablist",children:[e.jsxs("div",{className:"s-mission-overlay-tabs-group",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":i==="profile",className:`s-mission-overlay-tab${i==="profile"?" s-mission-overlay-tab--active":""}`,onClick:()=>n("profile"),children:"Profile"}),e.jsx("button",{type:"button",role:"tab","aria-selected":i==="activity",className:`s-mission-overlay-tab${i==="activity"?" s-mission-overlay-tab--active":""}`,onClick:()=>n("activity"),children:"Activity"}),e.jsx("button",{type:"button",role:"tab","aria-selected":i==="message",className:`s-mission-overlay-tab${i==="message"?" s-mission-overlay-tab--active":""}`,onClick:()=>n("message"),children:"Message"})]}),e.jsxs("div",{className:"s-mission-overlay-tabs-action",children:[i==="profile"&&e.jsx("button",{type:"button",className:"s-mission-overlay-jump",onClick:p,...v({label:`Open profile · ${s.handle??s.name}`,route:`/agents/${s.id}`}),children:"Open profile ↗"}),i==="activity"&&e.jsx("button",{type:"button",className:"s-mission-overlay-jump",onClick:d,...v({label:`Tail · ${s.handle??s.name}`,route:`/ops/tail?q=${encodeURIComponent(s.handle??s.name)}`}),children:"Open in Tail ↗"}),i==="message"&&e.jsx("button",{type:"button",className:"s-mission-overlay-jump",onClick:r,...v({label:`Open conversation with ${s.handle??s.name}`,...s.conversationId?{route:`/c/${s.conversationId}`}:{}}),children:"Open conversation ↗"})]})]}),e.jsxs("div",{className:"s-mission-overlay-body",children:[i==="profile"&&e.jsx(E,{agent:s}),i==="activity"&&e.jsx(D,{agent:s,observe:a,onOpenConversation:r,onMessage:()=>n("message")}),i==="message"&&e.jsx(O,{agent:s,onSend:o,onOpenConversation:r})]})]})})}function E({agent:s}){const a=[["MODEL",[s.harness,s.model].filter(Boolean).join("/")||"—"],["AT",[s.project,s.branch].filter(Boolean).join("/")||"—"],["CWD",s.cwd||s.projectRoot||"—"],["AGENT",s.agentClass||"—"],["ROLE",s.role||s.transport||"—"],["MACHINE",s.authorityNodeName??s.homeNodeName??s.authorityNodeId??s.homeNodeId??"—"],["OWNER",s.ownerHandle??s.ownerName??s.ownerId??"—"],["SPAWNED",s.createdAt?j(s.createdAt):"—"],["STATE",N(s.state)]];return e.jsx("div",{className:"s-focus-tab",children:e.jsx("dl",{className:"s-focus-spec",children:a.map(([l,o])=>e.jsxs("div",{className:"s-focus-spec-row",children:[e.jsx("dt",{className:"s-focus-spec-label",children:l}),e.jsx("dd",{className:"s-focus-spec-value",title:o,children:o})]},l))})})}const T={tool:"▸",think:"·",ask:"?",message:"✉",note:"•",system:"◇",boot:"↑"};function A(s,a){if(a){const o=Date.now()-(a+s*1e3);return o<6e4?`${Math.max(0,Math.round(o/1e3))}s`:o<36e5?`${Math.round(o/6e4)}m`:o<864e5?`${Math.round(o/36e5)}h`:`${Math.round(o/864e5)}d`}const l=Math.max(0,Math.round(s));return l<60?`${l}s`:l<3600?`${Math.round(l/60)}m`:`${Math.round(l/3600)}h`}function I(s){if(s.kind==="tool"){const a=s.tool??"tool";return s.arg?`${a} · ${s.arg}`:a}return s.kind==="ask"?s.text||"request received":s.text||s.detail||k[s.kind]||s.kind}function D({agent:s,observe:a,onOpenConversation:l,onMessage:o}){const r=a?.events??[],d=a?.metadata?.usage,p=typeof a?.metadata?.session?.sessionStart=="number"?(a?.metadata?.session).sessionStart:null,h=r.slice(-14).reverse(),m=d?.assistantMessages??r.filter(t=>t.kind==="message").length,u=r.filter(t=>t.kind==="tool").length,i=r.filter(t=>t.kind==="tool"&&(t.tool==="edit"||t.tool==="write")).length,n=a?.contextUsage&&a.contextUsage.length>0?Math.round(a.contextUsage[a.contextUsage.length-1]*100):null,c=n!==null?`${n}%`:d?.contextWindowTokens&&d?.contextInputTokens?`${Math.round(d.contextInputTokens/d.contextWindowTokens*100)}%`:"—";return e.jsxs("div",{className:"s-focus-tab s-focus-tab--activity-preview",children:[e.jsxs("dl",{className:"s-focus-stats",children:[e.jsx(b,{label:"Turns",value:m||"—"}),e.jsx(b,{label:"Tools",value:u||"—"}),e.jsx(b,{label:"Edits",value:i||"—"}),e.jsx(b,{label:"Context",value:c})]}),h.length===0?e.jsx(L,{agent:s,onOpenConversation:l,onMessage:o}):e.jsx("ul",{className:"s-focus-activity-list",children:h.map(t=>e.jsxs("li",{className:`s-focus-activity-row s-focus-activity-row--${t.kind}`,children:[e.jsx("span",{className:"s-focus-activity-time",children:A(t.t,p)}),e.jsx("span",{className:"s-focus-activity-glyph","aria-hidden":!0,children:T[t.kind]??"·"}),e.jsx("span",{className:"s-focus-activity-kind",children:k[t.kind]??t.kind}),e.jsx("span",{className:"s-focus-activity-text",children:I(t)})]},t.id))})]})}function L({agent:s,onOpenConversation:a,onMessage:l}){const o=S(s.role),r=[s.harness,s.model].filter(Boolean).join("/"),d=[s.project,s.branch].filter(Boolean).join("/"),p=$(s.state),h=N(p),m=s.createdAt?j(s.createdAt):null,u=s.updatedAt?j(s.updatedAt):null,i=s.homeNodeName??s.homeNodeId,n=s.ownerHandle??s.ownerName??s.ownerId,c=[];return o&&c.push({label:"Role",value:o}),r&&c.push({label:"Stack",value:r}),d&&c.push({label:"At",value:d}),i&&c.push({label:"Home",value:i}),n&&c.push({label:"Owner",value:n}),m&&c.push({label:"Spawned",value:m}),c.push({label:"State",value:h}),u&&c.push({label:"Last seen",value:u}),e.jsxs("div",{className:"s-focus-activity-empty s-focus-activity-empty--rich",children:[e.jsxs("div",{className:"s-focus-activity-empty-head",children:[e.jsx("span",{className:"s-focus-activity-empty-eyebrow",children:"No tool or turn events recorded"}),e.jsx("span",{className:"s-focus-activity-empty-title",children:s.handle??s.name})]}),e.jsx("dl",{className:"s-focus-activity-empty-facts",children:c.map(t=>e.jsxs("div",{className:"s-focus-activity-empty-fact",children:[e.jsx("dt",{children:t.label}),e.jsx("dd",{title:t.value,children:t.value})]},t.label))}),e.jsxs("div",{className:"s-focus-activity-empty-actions",children:[e.jsx("button",{type:"button",className:"s-focus-activity-empty-btn",onClick:a,...v({label:`Open conversation with ${s.handle??s.name}`,...s.conversationId?{route:`/c/${s.conversationId}`}:{}}),children:"Open conversation ↗"}),e.jsx("button",{type:"button",className:"s-focus-activity-empty-btn s-focus-activity-empty-btn--primary",onClick:l,...v({label:`Compose message · ${s.handle??s.name}`}),children:"Send a message"})]})]})}function b({label:s,value:a}){return e.jsxs("div",{className:"s-focus-stat",children:[e.jsx("dt",{className:"s-focus-stat-label",children:s}),e.jsx("dd",{className:"s-focus-stat-value",children:a})]})}function O({agent:s,onSend:a,onOpenConversation:l}){const[o,r]=f.useState(""),[d,p]=f.useState(!1),[h,m]=f.useState(!1),[u,i]=f.useState(null),n=f.useRef(null);f.useEffect(()=>{n.current?.focus()},[]);const c=async()=>{const y=o.trim();if(!(!y||d)){p(!0),i(null);try{await a(y),r(""),m(!0),setTimeout(()=>m(!1),1800)}catch(x){i(x instanceof Error?x.message:String(x))}finally{p(!1)}}},t=s.handle??s.name;return e.jsx("div",{className:"s-focus-tab",children:e.jsx("div",{className:"s-focus-compose",children:e.jsx(M,{density:"panel",value:o,onChange:r,onSend:()=>{c()},sending:d,placeholder:`Message @${t}…`,textareaRef:n,rows:4,"aria-label":`Message @${t}`,header:e.jsxs("div",{className:"s-focus-compose-label",children:["Message ",e.jsxs("span",{className:"s-focus-compose-target",children:["@",t]})]}),tools:e.jsx("div",{className:"s-focus-compose-hint",children:u?e.jsxs("span",{className:"s-focus-compose-error",children:["Send failed: ",u]}):h?e.jsxs("span",{className:"s-focus-compose-ok",children:["Sent ↗"," ",e.jsx("button",{type:"button",className:"s-focus-compose-link",onClick:l,children:"Open Chat"})]}):e.jsx("span",{children:"Send starts a Run, or steers the active Run when this agent is already working."})})})})})}export{g as FocusOverlay};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as o}from"./index-BFbLvCJn.js";import{c as j}from"./agent-state-DDhnFEEP.js";import{s as x}from"./page-status-BIuh3C5p.js";import{t as l}from"./time-Dhsh_2EG.js";import{R as b}from"./RailRow-Ddz90weI.js";import"./colors-CFlbwC25.js";import"./AgentAvatar-Dn8TUv5W.js";import"./Provider-BEXAZWd9.js";import"./theme-vars-DNK0nn3k.js";import"./router-CJIx83Ia.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BVxO0zNp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-D-VB5vdt.js";import"./runtime-picker-IRcTkMZ5.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CCG7hG7z.js";import"./createLucideIcon-CKbjXlwv.js";import"./media-blobs-Bi8pxr1u.js";import"./index-CXzJ_hGx.js";import"./HarnessMark-CP-PWk2W.js";import"./conversation-model-FxDeWlle.js";import"./conversations-DoAAO6kA.js";import"./NewChatOrigin-BYsEu9dZ.js";import"./keyboard-nav-CEe-ApvZ.js";import"./x-BcfhXYiF.js";import"./chevron-down-DEDSNJNY.js";import"./search-Bv2IONmc.js";import"./file-text-BOJQiS8p.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-mxzPxQQW.js";import"./TextDocumentSurface-DBslUq9k.js";import"./index-V8FYEUpD.js";import"./chevron-right-B02kAw12.js";import"./folder-C2emmTHq.js";import"./chevron-up-CzveykKG.js";import"./code-xml-E9gBuiVs.js";import"./arrow-left-DNjQHf4C.js";import"./arrow-right-A_yyXwoH.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DVhUsgOw.js";import"./SpriteAvatar-D53GaaK3.js";import"./CrewAvatar-a_C_F9r_.js";function ut({agent:t,state:r,isExpanded:e,isSelected:p,tabIndex:s,onToggle:a,onReveal:n,onOpen:c}){const m=x({label:`Focus ${t.handle??t.name}`,route:`/ops/control · ${t.id}`}),d=o.jsxs(o.Fragment,{children:[o.jsxs("dl",{className:"rr-spec-list",children:[o.jsx(i,{label:"MODEL",value:[t.harness,t.model].filter(Boolean).join("/")||"—"}),o.jsx(i,{label:"AT",value:[t.project,t.branch].filter(Boolean).join("/")||"—"}),o.jsx(i,{label:"STATE",value:j(r)}),o.jsx(i,{label:"ACTIVITY",value:t.activity}),o.jsx(i,{label:"SOURCE",value:t.source})]}),o.jsxs("div",{className:"ml-detail-actions",children:[o.jsx("button",{type:"button",className:"ml-detail-btn",onClick:n,children:"Reveal on wall"}),o.jsx("button",{type:"button",className:"ml-detail-btn ml-detail-btn--primary",onClick:c,children:"Open ↗"})]})]});return o.jsx(b,{name:t.handle??t.name,meta:t.lastActiveAt?l(t.lastActiveAt):t.updatedAt?l(t.updatedAt):void 0,tone:r,caret:e?"open":"closed",selected:p,expanded:e,detail:d,tabIndex:s,onClick:u=>a(u),onPointerEnter:m.onPointerEnter,onPointerLeave:m.onPointerLeave})}function i({label:t,value:r}){return o.jsxs("div",{className:"rr-spec",children:[o.jsx("dt",{className:"rr-spec-label",children:t}),o.jsx("dd",{className:"rr-spec-value",title:r,children:r})]})}export{ut as MissionLeftAgentRow};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as a,j as l}from"./index-BFbLvCJn.js";import{H as k}from"./HarnessMark-CP-PWk2W.js";import{n as y}from"./agent-state-DDhnFEEP.js";import{s as P}from"./page-status-BIuh3C5p.js";import{c as T,b as I,T as C,d as H}from"./tail-display-DHSNmvor.js";import{d as A}from"./time-Dhsh_2EG.js";import{s as E}from"./mission-control-model-BpJHDV5D.js";import{m as R,a as K}from"./mission-wall-CAo4BKfa.js";import"./lane-edit-display-BjdT9oZl.js";import"./colors-CFlbwC25.js";const _=24;function U({log:s,selected:f,revealed:h,cursor:i=!1,onOpen:c,onToggleSelected:w,onOpenLog:v,paneRef:j}){const o=a.useRef(null),m=a.useRef(!0),r=a.useMemo(()=>T(s.lines.map(e=>({event:e,meta:void 0}))).map(e=>({...e,outcome:e.event.kind==="tool-result"?I(e.event).result?.outcome??null:null})),[s.lines]),x=a.useCallback(()=>{const e=o.current;if(!e)return;const n=e.scrollHeight-e.scrollTop-e.clientHeight;m.current=n<=_},[]);a.useEffect(()=>{const e=o.current;!e||!m.current||(e.scrollTop=e.scrollHeight)},[r.length,s.lastActiveAt]);const N=y(s.agent?.state??null),t=R(s),b=K(s),p=[s.project,s.agent?.branch].filter(Boolean).join("/")||s.cwd||"—",d=a.useMemo(()=>P({label:`Tail · ${t}`,route:`/ops/tail?q=${encodeURIComponent(s.sessionId)}`}),[s.sessionId,t]),L=e=>{if(e.metaKey||e.ctrlKey||e.shiftKey){w();return}c()};return l.jsxs("div",{ref:j,className:["s-wall-pane",s.live?"s-wall-pane--live":null,f?"s-wall-pane--selected":null,h?"s-wall-pane--revealed":null,i?"s-wall-pane--cursor":null].filter(Boolean).join(" "),"data-cursor":i?!0:void 0,tabIndex:i?0:-1,onClick:L,children:[l.jsxs("div",{className:"s-wall-pane-head",children:[l.jsx("span",{className:"s-wall-pane-dot",style:{background:s.agent?E(N):"var(--dim)"},"aria-hidden":!0}),l.jsx(k,{harness:s.source,size:11,title:null}),l.jsx("button",{type:"button",className:"s-wall-pane-title",title:s.agent?.name??s.sessionId,"aria-label":`Focus ${t}`,onClick:e=>{e.stopPropagation(),c()},children:t}),l.jsx("span",{className:"s-wall-pane-where",title:s.cwd??p,children:p}),l.jsx("span",{className:"s-wall-pane-spacer"}),s.live&&l.jsx("span",{className:"s-wall-pane-live",children:"live"}),l.jsx("button",{type:"button",className:"s-wall-pane-file",title:s.logPath??`session ${s.sessionId}`,"aria-label":"Open raw tail",onClick:e=>{e.stopPropagation(),v()},onPointerEnter:d.onPointerEnter,onPointerLeave:d.onPointerLeave,children:b})]}),l.jsx("div",{className:"s-wall-pane-body",ref:o,onScroll:x,children:r.length===0?l.jsx("div",{className:"s-wall-pane-idle",children:"no output since page load"}):r.map(({event:e,repeatCount:n,outcome:u})=>l.jsxs("div",{className:["s-wall-line",`s-wall-line--${e.kind}`,u==="success"?"s-wall-line--result-ok":null,u==="error"?"s-wall-line--result-error":null].filter(Boolean).join(" "),children:[l.jsx("span",{className:"s-wall-line-time",children:A(e.ts,{milliseconds:!1})||"—"}),l.jsx("span",{className:"s-wall-line-glyph",title:H[e.kind],children:C[e.kind]}),l.jsxs("span",{className:"s-wall-line-text",children:[e.summary,n>1&&l.jsxs("span",{className:"s-wall-line-repeat",title:`${n} identical events`,children:[" ","×",n]})]})]},e.id))})]})}export{U as MissionLogPane};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as r}from"./index-BFbLvCJn.js";import{K as e}from"./KnowledgeSearchInspector-BbOQIqdF.js";import{SearchContent as m}from"./content-CjAERU44.js";import{u as p}from"./Provider-BEXAZWd9.js";import{d as s}from"./types-B0PlfpKc.js";/* empty css */import"./api-DSqpVKC7.js";import"./router-CJIx83Ia.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./createLucideIcon-CKbjXlwv.js";import"./x-BcfhXYiF.js";import"./check-BM6QtbB7.js";import"./copy-C1XrY27_.js";import"./external-link-Df1R34rX.js";import"./loader-circle-CCG7hG7z.js";import"./KnowledgeSearchScreen-DC8yX-kA.js";import"./time-Dhsh_2EG.js";import"./search-Bv2IONmc.js";import"./sparkles-Br-bA2aZ.js";import"./chevron-down-DEDSNJNY.js";import"./clock-8tb9t2t9.js";import"./theme-vars-DNK0nn3k.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BVxO0zNp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-D-VB5vdt.js";import"./runtime-picker-IRcTkMZ5.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./media-blobs-Bi8pxr1u.js";import"./index-CXzJ_hGx.js";import"./HarnessMark-CP-PWk2W.js";import"./conversation-model-FxDeWlle.js";import"./conversations-DoAAO6kA.js";import"./colors-CFlbwC25.js";import"./NewChatOrigin-BYsEu9dZ.js";import"./keyboard-nav-CEe-ApvZ.js";import"./file-text-BOJQiS8p.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-mxzPxQQW.js";import"./TextDocumentSurface-DBslUq9k.js";import"./index-V8FYEUpD.js";import"./chevron-right-B02kAw12.js";import"./folder-C2emmTHq.js";import"./chevron-up-CzveykKG.js";import"./code-xml-E9gBuiVs.js";import"./arrow-left-DNjQHf4C.js";import"./arrow-right-A_yyXwoH.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DVhUsgOw.js";function cr({navigate:t}){const{route:o,selectedKnowledgeHit:i}=p();return r.jsxs("div",{style:{display:"flex",flex:1,minHeight:0,minWidth:0},children:[r.jsx("div",{style:{flex:1,minWidth:0,overflow:"auto"},children:r.jsx(m,{navigate:t,route:o.view==="search"?o:{view:"search"}})}),i?r.jsx("aside",{"aria-label":"Search result",style:{width:"38%",minWidth:260,overflow:"auto"},children:r.jsx(e,{navigate:t})}):null]})}const nr=s({id:"search",label:"Search",route:{view:"search"},webPath:"/search",screen:"NativeAreaScreen",embed:{path:"/embed/search",profile:"macos.search",ownsInternalRoutes:!0,hosts:{macos:!0}}});export{cr as NativeAreaScreen,nr as scoutSurface};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as i}from"./index-BFbLvCJn.js";import{n as p}from"./embed-navigation-DayfkQau.js";import{k as m}from"./router-CJIx83Ia.js";import{OpsScreen as e}from"./OpsScreen-C955zgr3.js";import{u as s}from"./Provider-BEXAZWd9.js";import{d as a}from"./types-B0PlfpKc.js";import"./scoutbot-Bk3nyrkj.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";/* empty css *//* empty css */import"./page-status-BIuh3C5p.js";import"./AgentLanesView-CiISx7pu.js";/* empty css */import"./tail-events-C6NWFB1N.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./observe-M3rLosT5.js";import"./agent-state-DDhnFEEP.js";import"./useEmbedHeadline-BeeBDb7E.js";import"./AgentAvatar-Dn8TUv5W.js";import"./SpriteAvatar-D53GaaK3.js";import"./CrewAvatar-a_C_F9r_.js";import"./HarnessMark-CP-PWk2W.js";import"./runtime-picker-IRcTkMZ5.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CCG7hG7z.js";import"./createLucideIcon-CKbjXlwv.js";import"./colors-CFlbwC25.js";import"./SessionObserve-Dw3bVQYF.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./lane-tool-detail-Czggx8oM.js";import"./LaneToolHoverCard-B8Am_1DC.js";import"./index-CXzJ_hGx.js";import"./lane-observe-CteDwdD-.js";import"./time-Dhsh_2EG.js";import"./lane-ask-display-BTVSakyo.js";import"./mentions-s5oW4aQU.js";import"./AgentDetailCard-CI-ufaEP.js";import"./AgentLiveActions-CkRGkv13.js";import"./terminal-takeover-CXwdoZ5j.js";import"./openContent-C6XO6kr5.js";import"./eye-CD-_aphP.js";import"./terminal-DMBAZjPP.js";import"./message-markup-D1C7GzHo.js";import"./message-markup-BQW5jdJw.js";import"./SessionHopMenu-DX6PJPNk.js";import"./external-link-Df1R34rX.js";import"./NewChatComposer-D-VB5vdt.js";import"./media-blobs-Bi8pxr1u.js";import"./conversation-model-FxDeWlle.js";import"./conversations-DoAAO6kA.js";import"./NewChatOrigin-BYsEu9dZ.js";import"./keyboard-nav-CEe-ApvZ.js";import"./x-BcfhXYiF.js";import"./chevron-down-DEDSNJNY.js";import"./search-Bv2IONmc.js";import"./file-text-BOJQiS8p.js";import"./ObservedTopologyPanel-Ci7emnnj.js";import"./ObserveTextFlow-C0oQEerY.js";import"./use-reduced-motion-DkdIQBwh.js";import"./proxy-k0ILOVkK.js";import"./SessionObserveEvidence-uD1OX-R5.js";import"./SessionContextStrip-BoiIxXvS.js";import"./message-circle-BB3rFCVD.js";import"./wrench-C-wjicn5.js";import"./chevron-up-CzveykKG.js";import"./AgentFloorView-D8tlGlgy.js";import"./AgentAdventures-5yBt-Zl3.js";import"./ReplayClock-wLpb4VqN.js";import"./SproutActionSprite-BrFCmgWS.js";/* empty css */import"./CrewSprite-CguHb2Ny.js";import"./agent-lanes-model-DMAdqCmK.js";import"./context-budget-8qFKqM-j.js";import"./adventure-playback-DTfkhIc0.js";import"./AdventureScenery-CGEcG0zV.js";import"./adventure-habitats-v1-M1lcpTJh.js";import"./AdventureReader-BICypcDY.js";import"./index-V8FYEUpD.js";import"./TextDocumentSurface-DBslUq9k.js";import"./chevron-right-B02kAw12.js";import"./folder-C2emmTHq.js";import"./floor-preview-text-HrORUJ7D.js";/* empty css */import"./book-open-B_idZgTF.js";import"./scroll-text-CA0QxBHu.js";import"./ReplayLog-IUyQdklN.js";import"./AdventureEvidence-D5wq1vu8.js";import"./agent-lane-detail-Ti3trpfH.js";/* empty css */import"./arrow-up-right-DUW1A1Hb.js";/* empty css */import"./flag-CeKO8NoD.js";import"./pause-7mmEEvVx.js";import"./play-N5-hnPCV.js";import"./radio-Bjqmv997.js";import"./arrow-left-DNjQHf4C.js";import"./arrow-right-A_yyXwoH.js";import"./SharedWorkFloor-H-e2TVj9.js";import"./WorldMinimap-DL12pBw3.js";import"./WorldSky-BlPNvGLo.js";import"./WorldActorTalk-CHhFTiQV.js";import"./send-to-agent-session-CWDHHgFB.js";import"./FloorExchangePanel-DsG1cRzu.js";import"./floor-character-name-CqJPOlXb.js";import"./floor-message-passes-CO3Ix_wR.js";import"./shared-work-artifacts-DfNl9KTo.js";import"./floor-memory-YMM8AlLY.js";import"./CharacterFamilyPreview-Bj8oMD-5.js";import"./RenderedWorkerSprite-BNhFXMIo.js";import"./FloorMessagePasses-Cm3LbkHd.js";import"./WorkRunView-DLIzAsc3.js";import"./floor-context-model-rWKqaKmV.js";import"./agent-floor-actor-DW8zLht0.js";import"./SharedFloorCharacter-dnamlt1p.js";import"./WorldCharacter-CJGx2DVy.js";import"./RiggedWorkerCharacter-CF6fhzGd.js";import"./file-code-corner-DtMWHBN3.js";import"./FloorReplay-Bg7kA-tR.js";import"./AgentFloorWorld-DqmnQexg.js";/* empty css */import"./agent-floor-world-layout-hfMjuoui.js";import"./coffee-D0YEK6-l.js";import"./git-branch-C45vy8qT.js";/* empty css */import"./FloorTacticalHUD-4d-Hr-YL.js";import"./FloorSavedWork-BDOvV3mA.js";import"./pin-q_0gAA6i.js";/* empty css */import"./triangle-alert-BZikHKuT.js";import"./FloorResourcesSheet-Ba9HubO2.js";/* empty css */import"./theme-vars-DNK0nn3k.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BVxO0zNp.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-mxzPxQQW.js";import"./code-xml-E9gBuiVs.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DVhUsgOw.js";/* empty css */import"./FloorContextSheet-BfrXNoBn.js";import"./lane-roster-store-MraynTHP.js";import"./session-recap-lanes-D-eVJnpY.js";import"./message-square-BwqBIfv5.js";import"./AgentLanesPreflight-BQfj2twF.js";import"./AgentLaneChrome-RptImDFc.js";import"./AgentLaneCard-pppHFROz.js";/* empty css */import"./AgentLaneSummaryResize-DaIgwyVh.js";import"./clipboard-e3fSpeo7.js";import"./agent-lane-card-model-CeqQGp-8.js";import"./agent-lane-preview-Dpa3DuOn.js";import"./AgentLaneDetailSheet-BqbwGskh.js";import"./SlidePanel-D5oPQocF.js";import"./LaneTraceDetailSheet-CngYIxdI.js";import"./LaneTraceEventFocus-BRR_jcl9.js";import"./MissionControlView-D6gbMrgx.js";/* empty css */import"./mission-control-store-e8F85JhP.js";import"./MissionContextRail-ClR8amG1.js";import"./mission-wall-CAo4BKfa.js";import"./mission-control-model-BpJHDV5D.js";import"./MissionFocusOverlay-CzeNgI9Q.js";import"./MissionLogPane-2PMEoG44.js";import"./OpsAgentsView-DVotOMg2.js";/* empty css */import"./DataTable-DnL_8SAu.js";/* empty css */import"./useAgentHoverCard-DNlXPYQf.js";import"./sliders-horizontal-CPSx6wd2.js";import"./HostAdvisorView-Cyt3b5Fq.js";/* empty css */import"./compass-EmGkpxIe.js";import"./layout-grid-DG2-JaPn.js";import"./refresh-cw-BcqctLqo.js";import"./cpu-DVZ_LhPn.js";import"./gauge-BR5CrhRM.js";import"./AtopView-DJK5b3lZ.js";/* empty css */import"./TailView-B44cSuyl.js";import"./useContentSecondaryNav-LJGNYG3U.js";import"./OpsSubnav-CjMVj7Sk.js";import"./SecondaryNav-1FjBDWuY.js";import"./secondaryNavConfig-Bmb-oRvD.js";import"./nav-destinations-B3R5zxFX.js";import"./settings-bo9X410k.js";import"./FleetRollCallHud-VhpxVcGO.js";import"./session-recap-queue-GeicPLsQ.js";/* empty css */function Mr({navigate:t}){const{route:o}=s(),r=m("ops.control",!0);return i.jsx(e,{navigate:t,mode:(o.view==="ops"?o.mode:void 0)??(r?"mission":"tail"),tailQuery:o.view==="ops"?o.tailQuery:void 0,showSecondaryNav:!0})}const Tr=a({id:"ops",label:"Ops",route:{view:"ops"},webPath:"/ops",screen:"NativeAreaScreen",embed:{path:"/embed/ops",profile:"macos.ops",ownsInternalRoutes:!0,isInternalRoute:p,hosts:{macos:!0}}});export{Mr as NativeAreaScreen,Tr as scoutSurface};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as r}from"./index-BFbLvCJn.js";import{HomeContent as t}from"./content-BP3cQkAj.js";import{d as m}from"./types-B0PlfpKc.js";import"./HomeHero-g4H3Ctxg.js";import"./refresh-cw-BcqctLqo.js";import"./createLucideIcon-CKbjXlwv.js";import"./activity-CXkZ620t.js";import"./TailView-B44cSuyl.js";import"./SlidePanel-D5oPQocF.js";import"./HarnessMark-CP-PWk2W.js";import"./api-DSqpVKC7.js";import"./time-Dhsh_2EG.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./tail-events-C6NWFB1N.js";import"./index-BWHgHrtv.js";import"./openContent-C6XO6kr5.js";import"./Provider-BEXAZWd9.js";import"./theme-vars-DNK0nn3k.js";import"./router-CJIx83Ia.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BVxO0zNp.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-D-VB5vdt.js";import"./runtime-picker-IRcTkMZ5.js";import"./scout-voice-Cdh6pCsb.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CCG7hG7z.js";import"./media-blobs-Bi8pxr1u.js";import"./index-CXzJ_hGx.js";import"./conversation-model-FxDeWlle.js";import"./conversations-DoAAO6kA.js";import"./colors-CFlbwC25.js";import"./NewChatOrigin-BYsEu9dZ.js";import"./keyboard-nav-CEe-ApvZ.js";import"./x-BcfhXYiF.js";import"./chevron-down-DEDSNJNY.js";import"./search-Bv2IONmc.js";import"./file-text-BOJQiS8p.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-mxzPxQQW.js";import"./TextDocumentSurface-DBslUq9k.js";import"./index-V8FYEUpD.js";import"./chevron-right-B02kAw12.js";import"./folder-C2emmTHq.js";import"./chevron-up-CzveykKG.js";import"./code-xml-E9gBuiVs.js";import"./arrow-left-DNjQHf4C.js";import"./arrow-right-A_yyXwoH.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DVhUsgOw.js";import"./observe-M3rLosT5.js";import"./persistent-state-3mbBFRDO.js";import"./operator-attention-DBaRg5ep.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"./home-moving-signal-BiiyEKEb.js";import"./home-live-action-BkqGLVRY.js";import"./cpu-DVZ_LhPn.js";import"./git-branch-C45vy8qT.js";import"./file-code-corner-DtMWHBN3.js";import"./terminal-DMBAZjPP.js";import"./external-link-Df1R34rX.js";function wo({navigate:o}){return r.jsx(t,{navigate:o})}const Ao=m({id:"home",label:"Home",route:{view:"inbox"},webPath:"/",screen:"NativeAreaScreen",embed:{path:"/embed/home",profile:"macos.home",ownsInternalRoutes:!0,hosts:{macos:!0}}});export{wo as NativeAreaScreen,Ao as scoutSurface};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,j as e}from"./index-BFbLvCJn.js";import{r as se}from"./index-CXzJ_hGx.js";import{a as U}from"./api-DSqpVKC7.js";import{u as ne}from"./keyboard-nav-CEe-ApvZ.js";import{o as te}from"./openContent-C6XO6kr5.js";import{s as A,w as le}from"./project-overview-helpers-BQTc_Ous.js";import{X as ie}from"./x-BcfhXYiF.js";import{R as re}from"./rocket-BahsdUe6.js";import"./createLucideIcon-CKbjXlwv.js";const V=[{value:"codex",label:"Codex",runtimeId:"codex"},{value:"claude",label:"Claude",runtimeId:"claude"},{value:"pi",label:"Grok",runtimeId:"pi"}];function w(t){return t.trim().toLowerCase().replace(/^@+/,"").replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||void 0}function oe(t){const n=new Set;for(const o of t){if(!o)continue;const s=w(o);s&&n.add(s)}return n}function ce(t,n,o){const s=t.trim();if(!s)return{status:"auto",normalized:void 0,rewritten:!1,message:o==="sticky"?"Scout will assign a reusable handle from the name pool.":"Scout will assign a disposable handle from the name pool.",tone:"ok"};const l=w(s);return l?n.has(l)?{status:"conflict",normalized:l,rewritten:l!==s.toLowerCase().replace(/^@+/,""),message:`@${l} already exists here. Pick another handle or leave it blank for auto.`,tone:"warn"}:{status:"ok",normalized:l,rewritten:l!==s.toLowerCase().replace(/^@+/,""),message:null,tone:"ok"}:{status:"invalid",normalized:void 0,rewritten:!1,message:"Use letters, numbers, dot, or dash.",tone:"warn"}}function S(t){return t==="pi"?"grok":t}function de(t,n,o,s=3){const l=w(t)??"agent",m=[l,`${l}-${S(n)}`,`${l}-dev`,`${l}-2`,`${l}-${S(n)}-2`],u=[];for(const v of m){const x=w(v);if(!(!x||o.has(x)||u.includes(x))&&(u.push(x),u.length>=s))break}return u}function ue(t){const{handle:n,persistence:o,harness:s,projectRootLabel:l}=t,m="A card starts a fresh session for each request. Use session:<id> only to continue an exact run.";return o==="one_time"?{disposable:!0,card:null,cli:`scout ask --project ${l} --harness ${s} "…"`,resolves:"Disposable session — Scout assigns a provisional handle that may be recycled. Not addressable later.",note:m}:n?{disposable:!1,card:`@${n}`,cli:`scout ask @${n} "…"`,resolves:`Reusable ${S(s)} session on this project — @${n} routes here from any surface.`,note:m}:{disposable:!1,card:"@auto",cli:'scout ask @<assigned-handle> "…"',resolves:`Scout assigns a reusable ${S(s)} handle from the name pool.`,note:m}}const me={ready:"ready",configured:"configured",installed:"login needed",missing:"not found"},q={ready:"ok",configured:"ok",installed:"warn",missing:"off"};function ke({open:t,onClose:n,projectTitle:o,projectRoot:s,primaryWt:l,worktreeCount:m,branches:u,existingAgents:v,agentCount:x,sessionCount:H,route:D,navigate:C}){const{ref:J,onKeyDown:W}=ne(t),[h,G]=r.useState("codex"),[M,X]=r.useState(""),[d,E]=r.useState("sticky"),[$,P]=r.useState(""),[R,Q]=r.useState(""),[L,I]=r.useState("idle"),[_,j]=r.useState(null),[K,Y]=r.useState(null);r.useEffect(()=>{t&&(j(null),I("idle"))},[t]),r.useEffect(()=>{if(!t)return;let a=!1;return(async()=>{const c=await U("/api/agent-config/snapshot").catch(()=>null);if(a||!c)return;const f=new Map;for(const g of c.runtimes)f.set(g.id,{state:g.state,detail:g.detail,loginCommand:g.loginCommand});Y(f)})(),()=>{a=!0}},[t]),r.useEffect(()=>{if(!t)return;const a=c=>{c.key==="Escape"&&(c.preventDefault(),n())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[t,n]);const k=r.useMemo(()=>oe(v.flatMap(a=>[a.name,a.handle])),[v]),i=r.useMemo(()=>ce($,k,d),[$,k,d]),z=r.useMemo(()=>de(o,h,k,3),[o,h,k]),T=s?A(s):"<no-root>",p=r.useMemo(()=>ue({handle:i.normalized,persistence:d,harness:h,projectRootLabel:T}),[i.normalized,d,h,T]),N=K?.get(V.find(a=>a.value===h)?.runtimeId??h);if(!t)return null;const Z=!!s&&L!=="starting"&&i.status!=="invalid"&&i.status!=="conflict",ee=L==="starting"?"Starting…":d==="one_time"?"Dispatch one-off":i.status==="conflict"?"Handle exists":i.normalized?`Create @${i.normalized}`:"Create with auto handle",O=async()=>{if(!(!s||L==="starting")){I("starting"),j(null);try{const a=M.trim(),c=R.trim(),f=i.normalized,g=await U("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:s},execution:{session:"new",harness:h,...a?{model:a}:{}},agent:{persistence:d,...f?{handle:f}:{}},...c?{seed:{instructions:c}}:{}})}),B=g.agentId?.trim(),F=g.sessionId?.trim(),y=g.conversationId?.trim();if(F){n(),te(C,{view:"sessions",sessionId:F},{returnTo:D});return}if(B){n(),C({...D,view:"agents-v2",agentId:B,selectedAgentId:void 0,sessionId:void 0,...y?{conversationId:y,tab:"message"}:{tab:"profile"}});return}if(y){n(),C({view:"conversation",conversationId:y});return}j("Agent start was accepted, but no target came back.")}catch(a){j(a instanceof Error?a.message:"Could not start an agent.")}finally{I("idle")}}},ae=a=>{if((a.metaKey||a.ctrlKey)&&a.key==="Enter"){a.preventDefault(),O();return}W(a)},b=[];return b.push({label:"root",value:s?A(s):"no project root",title:s??void 0}),l?b.push({label:"branch",value:le(l),title:l.path}):u.length>0&&b.push({label:"branch",value:u.length===1?u[0]:`${u.length} branches`}),m>1&&b.push({label:"worktrees",value:String(m)}),b.push({label:"existing",value:`${x} agent${x===1?"":"s"} · ${H} session${H===1?"":"s"}`}),se.createPortal(e.jsx("div",{className:"na-backdrop",role:"presentation",onClick:n,children:e.jsxs("div",{ref:J,className:"na-panel",role:"dialog","aria-modal":"true","aria-labelledby":"na-title",tabIndex:-1,onClick:a=>a.stopPropagation(),onKeyDown:ae,children:[e.jsxs("header",{className:"na-head",children:[e.jsxs("div",{className:"na-headIdent",children:[e.jsx("h2",{id:"na-title",className:"na-title",children:"New agent"}),e.jsxs("span",{className:"na-scope",children:["/",o]})]}),e.jsx("button",{type:"button",className:"na-close",onClick:n,"aria-label":"Close (Esc)",children:e.jsx(ie,{size:14,strokeWidth:2,"aria-hidden":!0})})]}),e.jsx("div",{className:"na-context",children:b.map(a=>e.jsxs("span",{className:"na-contextChip",title:a.title,children:[e.jsx("span",{className:"na-contextLabel",children:a.label}),e.jsx("span",{className:"na-contextValue",children:a.value})]},a.label))}),e.jsxs("div",{className:"na-body",children:[e.jsxs("section",{className:"na-section na-modeSection",children:[e.jsx("span",{className:"na-sectionLabel",children:"What are you creating?"}),e.jsxs("div",{className:"na-modeChoice",role:"radiogroup","aria-label":"Agent kind",children:[e.jsxs("button",{type:"button",role:"radio","aria-checked":d==="one_time",className:"na-modeCard","data-active":d==="one_time"||void 0,onClick:()=>E("one_time"),children:[e.jsx("span",{className:"na-modeTitle",children:"One-off run"}),e.jsx("span",{className:"na-modeSub",children:"Disposable session · not addressable later"})]}),e.jsxs("button",{type:"button",role:"radio","aria-checked":d==="sticky",className:"na-modeCard","data-active":d==="sticky"||void 0,onClick:()=>E("sticky"),children:[e.jsx("span",{className:"na-modeTitle",children:"Named agent"}),e.jsx("span",{className:"na-modeSub",children:"Reusable card · addressable by handle"})]})]})]}),e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"Runtime"}),e.jsx("div",{className:"na-harnessRow",role:"radiogroup","aria-label":"Harness",children:V.map(a=>{const c=K?.get(a.runtimeId),f=h===a.value;return e.jsxs("button",{type:"button",role:"radio","aria-checked":f,className:"na-harness","data-active":f||void 0,onClick:()=>G(a.value),children:[e.jsx("span",{className:"na-harnessName",children:a.label}),c?e.jsxs("span",{className:"na-harnessState","data-tone":q[c.state],children:[e.jsx("span",{className:"na-dot","aria-hidden":!0}),me[c.state]]}):e.jsx("span",{className:"na-harnessState","data-tone":"off",children:"…"})]},a.value)})}),N&&N.state!=="ready"?e.jsxs("p",{className:"na-readinessNote","data-tone":q[N.state],children:[N.detail,N.loginCommand?e.jsxs("code",{className:"na-code",children:[" ",N.loginCommand]}):null]}):null,e.jsxs("label",{className:"na-field",children:[e.jsx("span",{children:"Model / profile"}),e.jsx("input",{value:M,placeholder:"default",onChange:a=>X(a.currentTarget.value)})]})]}),d==="sticky"?e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"Handle (optional)"}),e.jsxs("label",{className:"na-field",children:[e.jsx("span",{children:"Address"}),e.jsxs("div",{className:"na-handleWrap","data-tone":i.tone,children:[e.jsx("span",{className:"na-handleAt",children:"@"}),e.jsx("input",{value:$,placeholder:z[0]??"auto","aria-invalid":i.tone==="warn",autoFocus:!0,onChange:a=>P(a.currentTarget.value)})]})]}),z.length>0?e.jsxs("div",{className:"na-suggestRow",children:[e.jsx("span",{className:"na-suggestLabel",children:"suggest"}),z.map(a=>e.jsxs("button",{type:"button",className:"na-suggest",onClick:()=>P(a),children:["@",a]},a))]}):null,i.message?e.jsx("p",{className:"na-validation","data-tone":i.tone,children:i.message}):i.rewritten&&i.normalized?e.jsxs("p",{className:"na-validation","data-tone":"ok",children:["Saved as ",e.jsxs("code",{className:"na-code",children:["@",i.normalized]})]}):null]}):null,e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"First instruction"}),e.jsx("textarea",{className:"na-prompt",value:R,rows:3,placeholder:`Start in /${o}…`,onChange:a=>Q(a.currentTarget.value)})]}),e.jsxs("section",{className:"na-section na-routing",children:[e.jsx("span",{className:"na-sectionLabel",children:p.disposable?"Dispatch preview":"Routing preview"}),p.disposable?e.jsxs("div",{className:"na-routingBody","data-disposable":!0,children:[e.jsx("p",{className:"na-routingResolves",children:p.resolves}),e.jsx("button",{type:"button",className:"na-promote",onClick:()=>E("sticky"),children:"Name it to keep it →"})]}):e.jsxs("div",{className:"na-routingBody",children:[p.card?e.jsxs("div",{className:"na-routingLine",children:[e.jsx("span",{className:"na-routingKey",children:"address"}),e.jsx("code",{className:"na-routingValue na-routingCard",children:p.card})]}):null,e.jsxs("div",{className:"na-routingLine",children:[e.jsx("span",{className:"na-routingKey",children:"cli"}),e.jsx("code",{className:"na-routingValue",children:p.cli})]}),e.jsx("p",{className:"na-routingResolves",children:p.resolves}),e.jsx("p",{className:"na-routingNote",children:p.note})]})]})]}),_?e.jsx("div",{className:"na-error",children:_}):null,e.jsxs("footer",{className:"na-foot",children:[e.jsx("span",{className:"na-footRoot",title:s??void 0,children:s?A(s):"No project root — cannot create."}),e.jsxs("div",{className:"na-footActions",children:[e.jsx("button",{type:"button",className:"na-cancel",onClick:n,children:"Cancel"}),e.jsxs("button",{type:"button",className:"na-create",disabled:!Z,onClick:()=>{O()},children:[e.jsx(re,{size:12,strokeWidth:2,"aria-hidden":!0}),ee]})]})]})]})}),document.body)}export{ke as NewAgentModal};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.na-backdrop{--na-bg: var(--hud-bg);--na-ink: var(--scout-chrome-ink-strong);--na-muted: var(--scout-chrome-ink-soft);--na-dim: var(--scout-chrome-ink-faint);--na-hairline: color-mix(in srgb, var(--hud-ink) 10%, transparent);--na-accent: var(--accent);--na-mono: var(--hud-font-mono);--na-sans: var(--hud-font-sans);--na-radius: 8px;--na-radius-sm: 6px;--na-surface: color-mix(in srgb, var(--hud-surface) 80%, var(--na-bg));--na-field: color-mix(in srgb, var(--hud-surface) 36%, transparent);--na-danger: var(--hud-danger, #ff5a5f);--na-warn: var(--hud-warning, #e9b949);position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding:clamp(24px,8vh,80px) 16px;overflow-y:auto;background:color-mix(in srgb,black 56%,transparent);backdrop-filter:blur(5px) saturate(118%);-webkit-backdrop-filter:blur(5px) saturate(118%);animation:na-fade .12s ease-out;font-family:var(--na-sans);color:var(--na-ink)}@keyframes na-fade{0%{opacity:0}to{opacity:1}}.na-panel{width:min(560px,100%);display:flex;flex-direction:column;border:1px solid var(--na-hairline);border-radius:var(--na-radius);background:var(--na-surface);box-shadow:0 28px 80px -20px color-mix(in srgb,black 80%,transparent),inset 0 1px color-mix(in srgb,white 5%,transparent);outline:none;animation:na-rise .14s var(--av2-ease, cubic-bezier(.22, 1, .36, 1))}@keyframes na-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.na-backdrop,.na-panel{animation:none}}.na-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--na-hairline)}.na-headIdent{display:flex;align-items:baseline;gap:10px;min-width:0}.na-title{margin:0;font-size:var(--text-lg);font-weight:600;letter-spacing:.01em;color:var(--na-ink)}.na-scope{font-family:var(--na-mono);font-size:var(--text-sm);color:var(--na-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.na-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:var(--na-radius-sm);background:transparent;color:var(--na-dim);cursor:pointer}.na-close:hover,.na-close:focus-visible{color:var(--na-ink);background:color-mix(in srgb,var(--hud-ink) 8%,transparent);outline:none}.na-context{flex:none;display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 16px;border-bottom:1px solid var(--na-hairline);background:color-mix(in srgb,var(--hud-surface) 22%,transparent)}.na-contextChip{display:inline-flex;align-items:baseline;gap:6px;min-width:0}.na-contextLabel{font-family:var(--na-mono);font-size:var(--text-3xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--na-dim)}.na-contextValue{font-family:var(--na-mono);font-size:var(--text-xs);color:var(--na-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.na-body{display:flex;flex-direction:column;gap:16px;padding:16px}.na-section{display:flex;flex-direction:column;gap:8px}.na-sectionLabel{font-family:var(--na-mono);font-size:var(--text-3xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--na-dim)}.na-modeChoice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.na-modeCard{display:flex;flex-direction:column;gap:3px;padding:10px 11px;border:1px solid var(--na-hairline);border-radius:var(--na-radius-sm);background:var(--na-field);color:var(--na-muted);cursor:pointer;text-align:left}.na-modeCard:hover{border-color:color-mix(in srgb,var(--hud-ink) 18%,transparent)}.na-modeCard[data-active]{border-color:color-mix(in srgb,var(--na-accent) 58%,var(--na-hairline));background:color-mix(in srgb,var(--na-accent) 11%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--na-accent) 22%,transparent)}.na-modeTitle{font-size:var(--text-md);font-weight:600;color:var(--na-ink)}.na-modeCard[data-active] .na-modeTitle{color:var(--na-accent)}.na-modeSub{font-family:var(--na-mono);font-size:var(--text-2xs);line-height:1.4;letter-spacing:.01em;color:var(--na-dim)}.na-field{min-width:0;display:flex;flex-direction:column;gap:4px}.na-field>span{font-family:var(--na-mono);font-size:var(--text-3xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--na-dim)}.na-field input,.na-prompt{width:100%;min-width:0;border:1px solid var(--na-hairline);border-radius:var(--na-radius-sm);background:var(--na-field);color:var(--na-ink);font:inherit;font-size:var(--text-md);outline:none}.na-field input{height:30px;padding:0 9px}.na-field input::placeholder,.na-prompt::placeholder{color:var(--na-dim)}.na-field input:focus,.na-prompt:focus{border-color:color-mix(in srgb,var(--na-accent) 50%,var(--na-hairline));box-shadow:0 0 0 1px color-mix(in srgb,var(--na-accent) 18%,transparent)}.na-prompt{resize:vertical;min-height:64px;max-height:200px;padding:8px 9px;line-height:1.5}.na-harnessRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.na-harness{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:9px 10px;border:1px solid var(--na-hairline);border-radius:var(--na-radius-sm);background:var(--na-field);color:var(--na-muted);cursor:pointer;text-align:left}.na-harness:hover{color:var(--na-ink);border-color:color-mix(in srgb,var(--hud-ink) 18%,transparent)}.na-harness[data-active]{color:var(--na-ink);border-color:color-mix(in srgb,var(--na-accent) 55%,var(--na-hairline));background:color-mix(in srgb,var(--na-accent) 10%,transparent)}.na-harnessName{font-size:var(--text-md);font-weight:600}.na-harnessState{display:inline-flex;align-items:center;gap:4px;font-family:var(--na-mono);font-size:var(--text-3xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--na-dim)}.na-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.na-harnessState[data-tone=ok]{color:var(--na-accent)}.na-harnessState[data-tone=warn]{color:var(--na-warn)}.na-harnessState[data-tone=off]{color:var(--na-dim)}.na-readinessNote{margin:0;font-size:var(--text-xs);line-height:1.45;color:var(--na-muted)}.na-readinessNote[data-tone=off]{color:color-mix(in srgb,var(--na-danger) 70%,var(--na-muted))}.na-handleWrap{display:flex;align-items:center;height:30px;border:1px solid var(--na-hairline);border-radius:var(--na-radius-sm);background:var(--na-field);padding-left:8px}.na-handleWrap:focus-within{border-color:color-mix(in srgb,var(--na-accent) 50%,var(--na-hairline));box-shadow:0 0 0 1px color-mix(in srgb,var(--na-accent) 18%,transparent)}.na-handleWrap[data-tone=warn]{border-color:color-mix(in srgb,var(--na-warn) 55%,var(--na-hairline))}.na-handleAt{font-family:var(--na-mono);font-size:var(--text-md);color:var(--na-dim)}.na-handleWrap input{flex:1;min-width:0;height:100%;border:none;background:transparent;color:var(--na-ink);font-family:var(--na-mono);font-size:var(--text-md);padding:0 8px 0 2px;outline:none}.na-suggestRow{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.na-suggestLabel{font-family:var(--na-mono);font-size:var(--text-3xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--na-dim)}.na-suggest{padding:3px 7px;border:1px solid var(--na-hairline);border-radius:999px;background:transparent;color:var(--na-muted);font-family:var(--na-mono);font-size:var(--text-xs);cursor:pointer}.na-suggest:hover{color:var(--na-ink);border-color:color-mix(in srgb,var(--na-accent) 45%,var(--na-hairline));background:color-mix(in srgb,var(--na-accent) 9%,transparent)}.na-validation{margin:0;font-size:var(--text-xs);line-height:1.45;color:var(--na-muted)}.na-validation[data-tone=warn]{color:color-mix(in srgb,var(--na-warn) 86%,var(--na-ink))}.na-validation[data-tone=hint]{color:var(--na-muted)}.na-code{font-family:var(--na-mono);font-size:var(--text-xs);color:var(--na-ink)}.na-routing .na-routingBody{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--na-hairline);border-radius:var(--na-radius-sm);background:color-mix(in srgb,var(--hud-surface) 28%,transparent)}.na-routingLine{display:flex;align-items:baseline;gap:8px;min-width:0}.na-routingKey{flex:none;width:52px;font-family:var(--na-mono);font-size:var(--text-3xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--na-dim)}.na-routingValue{flex:1;min-width:0;font-family:var(--na-mono);font-size:var(--text-sm);color:var(--na-muted);word-break:break-all}.na-routingCard{color:var(--na-accent);font-weight:600}.na-routingResolves{margin:2px 0 0;font-size:var(--text-xs);line-height:1.45;color:var(--na-muted)}.na-routingNote{margin:0;font-size:var(--text-2xs);line-height:1.45;color:var(--na-dim)}.na-routing .na-routingBody[data-disposable]{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;border-style:dashed;background:transparent}.na-routingBody[data-disposable] .na-routingResolves{margin:0}.na-promote{flex:none;padding:4px 9px;border:1px solid color-mix(in srgb,var(--na-accent) 40%,var(--na-hairline));border-radius:999px;background:transparent;color:var(--na-accent);font-family:var(--na-mono);font-size:var(--text-2xs);font-weight:700;letter-spacing:.03em;cursor:pointer;white-space:nowrap}.na-promote:hover{background:color-mix(in srgb,var(--na-accent) 12%,transparent);color:var(--na-ink)}.na-error{margin:0 16px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--na-danger) 30%,transparent);border-radius:var(--na-radius-sm);background:color-mix(in srgb,var(--na-danger) 9%,transparent);color:color-mix(in srgb,var(--na-danger) 84%,var(--na-ink));font-size:var(--text-sm)}.na-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 14px;margin-top:4px;border-top:1px solid var(--na-hairline)}.na-footRoot{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--na-mono);font-size:var(--text-2xs);color:var(--na-dim)}.na-footActions{flex:none;display:flex;align-items:center;gap:8px}.na-cancel{height:30px;padding:0 12px;border:1px solid var(--na-hairline);border-radius:var(--na-radius-sm);background:transparent;color:var(--na-muted);font-family:var(--na-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;cursor:pointer}.na-cancel:hover{color:var(--na-ink);border-color:color-mix(in srgb,var(--hud-ink) 18%,transparent)}.na-create{height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border:1px solid color-mix(in srgb,var(--na-accent) 42%,transparent);border-radius:var(--na-radius-sm);background:color-mix(in srgb,var(--na-accent) 16%,transparent);color:var(--na-accent);font-family:var(--na-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.na-create:hover:not(:disabled){background:color-mix(in srgb,var(--na-accent) 24%,transparent);color:var(--na-ink)}.na-create:disabled{cursor:not-allowed;opacity:.46}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.s-agents-actions{display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-md) var(--space-md) var(--space-sm);border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);flex-shrink:0}.s-rail-action{display:flex;align-items:center;gap:var(--space-sm);width:100%;text-align:left;cursor:pointer;padding:var(--space-sm);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:var(--text-md);font-weight:500;transition:background .1s,color .1s,border-color .1s}.s-rail-action:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}.s-rail-action--primary{border-color:color-mix(in srgb,var(--border) 50%,transparent)}.s-rail-action-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:none;color:var(--dim)}.s-rail-action:hover .s-rail-action-icon{color:var(--accent)}.s-rail-action-label{flex:1;min-width:0}.s-agents-recent{flex:1;min-height:0;overflow-y:auto;padding:14px 0}.s-rail-see-all{border:none;background:transparent;color:var(--muted);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm);text-transform:lowercase}.s-rail-see-all:hover{color:var(--accent)}.s-agents-foot{flex-shrink:0;margin-top:auto;padding:var(--space-sm) var(--space-md) var(--space-md);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-rail-foot-icons{display:flex;align-items:center;gap:var(--space-2xs)}.s-rail-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--dim);cursor:pointer;transition:background .1s,color .1s}.s-rail-icon:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}.s-rail-icon--end{margin-left:auto}.s-newchat-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding-top:8vh;background:color-mix(in srgb,var(--bg) 76%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.s-newchat-panel{position:relative;display:flex;width:560px;max-height:84vh;flex-direction:column;max-width:calc(100vw - 48px);background:color-mix(in srgb,var(--surface) 96%,var(--bg));border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 24px 60px -28px #0009}.s-newchat-panel--starting{box-shadow:0 24px 60px -28px #0009,0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}.s-newchat-panel--dragging{border-color:color-mix(in srgb,var(--accent) 72%,var(--border));box-shadow:0 24px 60px -28px #0009,0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.s-newchat-panel[data-framed=true]{position:absolute;margin:0}.s-newchat-panel[data-gesture]{-webkit-user-select:none;user-select:none}.s-newchat-panel[data-gesture=move] .s-newchat-head{cursor:grabbing}.s-newchat-panel[data-framed=true] .s-msg-compose-input{min-height:var(--s-newchat-input-min, 154px);max-height:none}.s-newchat-resize{position:absolute;z-index:1;touch-action:none}.s-newchat-resize--e{top:0;right:0;width:6px;height:100%;cursor:ew-resize}.s-newchat-resize--s{bottom:0;left:0;width:100%;height:6px;cursor:ns-resize}.s-newchat-resize--se{right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize}.s-newchat-head{display:flex;align-items:center;justify-content:space-between;cursor:grab;touch-action:none;padding:var(--space-md) var(--space-lg);border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent);background:color-mix(in srgb,var(--bg) 46%,var(--surface))}.s-newchat-title{flex:0 0 auto;font-size:var(--text-md);font-weight:600;color:var(--ink)}.s-newchat-head-status{display:grid;min-width:0;flex:1;padding:0 var(--space-md);color:color-mix(in srgb,var(--ink) 72%,transparent);font-size:var(--text-xs);line-height:var(--leading-normal);text-align:right}.s-newchat-head-status>span{grid-area:1 / 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-newchat-head-status [role=alert]{color:var(--accent);font-weight:600}.s-newchat-drop-prompt{padding:var(--space-sm) var(--space-lg);border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 10%,var(--bg));color:var(--accent);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;text-align:center}.s-newchat-close{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;line-height:1}.s-newchat-close:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-newchat-close:hover{color:var(--ink)}.s-newchat-close:disabled{cursor:default;opacity:.35}.s-newchat-body{display:flex;min-height:0;flex-direction:column;gap:var(--space-3xl);padding:var(--space-lg);overflow-y:auto}.s-newchat-lead{display:flex;min-width:0;flex-direction:column;gap:var(--space-sm)}.s-newchat-project-bar{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;min-width:0;padding:0 0 var(--space-xs);border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}.s-newchat-project-label{color:var(--dim)}.s-newchat-project-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:var(--space-sm);min-width:0;min-height:30px;padding:var(--space-2xs) var(--space-xs);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer;text-align:left}.s-newchat-project-summary:hover,.s-newchat-project-summary:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 5%,transparent)}.s-newchat-project-summary:disabled{cursor:default;opacity:.55}.s-newchat-project-summary-title,.s-newchat-project-summary-path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-newchat-project-summary-title{font-size:var(--text-sm);font-weight:600}.s-newchat-project-summary[data-empty=true] .s-newchat-project-summary-title{color:var(--muted);font-weight:500}.s-newchat-project-summary-path{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);text-align:right}.s-newchat-project-summary svg{align-self:center;color:var(--dim);transition:transform .12s ease}.s-newchat-project-summary[aria-expanded=true] svg{transform:rotate(180deg)}.s-newchat-project-reminder{margin:calc(var(--space-2xs) * -1) 0 0 58px;color:var(--red);font-size:var(--text-xs)}.s-newchat-project-panel{display:flex;min-width:0;flex-direction:column;gap:var(--space-2xs);padding-left:58px}.s-newchat-project-panel-foot{display:flex;min-height:22px;align-items:center;justify-content:space-between;gap:var(--space-sm)}.s-newchat-project-clear{flex:0 0 auto;padding:var(--space-2xs) var(--space-xs);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--dim);font-size:var(--text-xs);cursor:pointer}.s-newchat-project-clear:hover,.s-newchat-project-clear:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}.s-newchat-config{display:flex;min-width:0;flex-direction:column;gap:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}.s-newchat-field{display:flex;flex-direction:column;gap:var(--space-2xs)}.s-newchat-field-label{color:var(--muted)}.s-newchat-forward-intro{max-width:68ch;margin:0 0 var(--space-xs);color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.s-newchat-forward-config{display:flex;min-width:0;flex-direction:column;gap:var(--space-lg);padding:var(--space-sm) 0 var(--space-md)}.s-newchat-forward-runtime{display:flex;min-height:34px;align-items:center;padding:0 var(--space-xs);border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.s-newchat-forward-runtime .s-rt-chip{min-height:28px;max-width:100%;border-radius:var(--radius-sm)}.s-newchat-context-options{display:flex;flex-direction:column;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.s-newchat-context-option{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.35fr);align-items:baseline;gap:var(--space-md);min-height:42px;padding:var(--space-xs) var(--space-sm);border:none;border-bottom:1px solid color-mix(in srgb,var(--ink) 7%,transparent);background:transparent;color:var(--ink);cursor:pointer;text-align:left}.s-newchat-context-option:last-child{border-bottom:none}.s-newchat-context-option:hover,.s-newchat-context-option:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 5%,transparent)}.s-newchat-context-option[aria-checked=true]{background:color-mix(in srgb,var(--accent) 8%,transparent)}.s-newchat-context-option[aria-checked=true] .s-newchat-context-option-title{color:var(--accent)}.s-newchat-context-option:disabled{cursor:default;opacity:.45}.s-newchat-context-option-title{font-size:var(--text-sm);font-weight:600}.s-newchat-context-option-copy,.s-newchat-context-note{color:var(--dim);font-size:var(--text-xs);line-height:var(--leading-normal)}.s-newchat-context-note{margin:var(--space-2xs) 0 0}.s-newchat-project-picker{position:relative}.s-newchat-project-search-icon{position:absolute;z-index:1;top:50%;left:var(--space-sm);color:var(--muted);pointer-events:none;transform:translateY(-50%)}.s-newchat-project-search{width:100%;box-sizing:border-box;min-height:36px;padding:var(--space-xs) var(--space-md) var(--space-xs) 30px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-radius:var(--radius-md);outline:none;background:color-mix(in srgb,var(--bg) 72%,var(--surface));color:var(--ink);font-family:var(--font-sans);font-size:var(--text-sm)}.s-newchat-project-search:focus{border-color:color-mix(in srgb,var(--accent) 54%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 10%,transparent)}.s-newchat-project-search::-webkit-search-cancel-button{opacity:.55}.s-newchat-project-results{display:flex;flex-direction:column;gap:1px;margin-top:var(--space-2xs)}.s-newchat-project-option{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:baseline;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);border:none;border-left:2px solid transparent;border-radius:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.s-newchat-project-option:hover,.s-newchat-project-option[data-active=true]{background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-newchat-project-option[aria-selected=true]{border-left-color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.s-newchat-project-option[aria-selected=true] .s-newchat-project-option-title{color:var(--accent)}.s-newchat-project-option[aria-disabled=true]{cursor:default;opacity:.55}.s-newchat-project-option--path{border-top:1px solid color-mix(in srgb,var(--border) 38%,transparent)}.s-newchat-project-option-title,.s-newchat-project-option-path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-newchat-project-option-title{font-size:var(--text-sm);font-weight:600}.s-newchat-project-option-path{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-newchat-project-empty{margin:0;padding:var(--space-md) var(--space-sm);color:var(--muted);font-size:var(--text-xs);line-height:var(--leading-normal)}.s-newchat-project-foot{margin:0;padding-left:var(--space-sm);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-newchat-target{margin:0;overflow:hidden;color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-2xs)}.s-newchat-runtime-note{display:flex;align-items:center;gap:var(--space-xs);margin:0;color:var(--amber);font-size:var(--text-xs);line-height:var(--leading-normal)}.s-newchat-runtime-note[data-pending=true]{color:var(--muted)}.s-newchat-runtime-note-spinner{flex:0 0 auto;animation:s-spin .9s linear infinite}.s-newchat-panel .s-msg-compose-shell{border-color:color-mix(in srgb,var(--ink) 16%,transparent);background:color-mix(in srgb,var(--bg) 64%,var(--surface))}.s-newchat-panel .s-msg-compose-input{min-height:154px}.s-newchat-panel .s-msg-compose-shell:focus-within{border-color:color-mix(in srgb,var(--accent) 24%,var(--border))}.s-newchat-panel .s-msg-compose-input::placeholder{color:var(--muted)}.s-newchat-panel .s-msg-compose-toolbar{border-top-color:color-mix(in srgb,var(--ink) 10%,transparent)}.s-newchat-compose-triggers{display:inline-flex;align-items:center;gap:var(--space-2xs);color:var(--dim)}.s-newchat-command-trigger{padding:var(--space-2xs) var(--space-xs);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer}.s-newchat-command-trigger:hover,.s-newchat-command-trigger:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}.s-newchat-command-trigger:disabled{cursor:default;opacity:.45}.s-newchat-error{font-size:var(--text-sm);color:var(--red)}.s-newchat-attachment-feedback{margin-top:calc(var(--space-sm) * -1);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-newchat-progress{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--ink)}.s-newchat-progress-spinner,.s-newchat-start-spinner{flex:0 0 auto;animation:s-spin .9s linear infinite}.s-newchat-progress-copy{display:flex;min-width:0;flex-direction:column;gap:var(--space-2xs)}.s-newchat-progress-title{color:var(--accent)}.s-newchat-progress-detail,.s-newchat-progress-message{font-size:var(--text-xs);line-height:var(--leading-normal)}.s-newchat-progress-detail{color:var(--muted)}.s-newchat-progress-message{display:-webkit-box;overflow:hidden;color:var(--ink);-webkit-box-orient:vertical;-webkit-line-clamp:3}@media(max-width:620px){.s-newchat-backdrop{padding-top:12px}.s-newchat-panel{width:calc(100vw - 24px);max-width:none;max-height:calc(100vh - 24px)}.s-newchat-resize{display:none}.s-newchat-head{cursor:default}.s-newchat-body{padding:var(--space-md)}.s-newchat-project-bar{grid-template-columns:52px minmax(0,1fr)}.s-newchat-project-panel{padding-left:0}.s-newchat-project-reminder{margin-left:52px}.s-newchat-project-summary-path{display:none}.s-newchat-context-option{grid-template-columns:1fr;gap:var(--space-2xs)}.s-newchat-panel .s-msg-compose-input{min-height:120px}}@keyframes s-spin{to{transform:rotate(360deg)}}.s-rail-projects{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:1px}.s-rail-projects:before{content:"Projects";display:block;flex:none;font-size:var(--text-2xs);font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:2px 8px 10px}.s-rail-projects .ctx-panel-section-label{display:flex;align-items:center;justify-content:space-between}.s-rail-proj-total{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim)}.s-rail-proj{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:1px solid transparent;cursor:pointer;padding:6px 8px;border-radius:var(--radius-md);transition:background .12s ease,border-color .12s ease}.s-rail-proj-count{flex:none;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--dim)}.s-rail-proj-count[data-needs]{color:var(--accent)}.s-rail-proj:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.s-rail-proj[data-selected]{background:color-mix(in srgb,var(--ink) 8%,transparent)}.s-rail-proj-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.s-rail-proj-top{display:flex;align-items:center;gap:var(--space-sm)}.s-rail-proj-name{flex:1;min-width:0;font-size:var(--text-md);font-weight:540;line-height:1.2;letter-spacing:-.01em;text-transform:lowercase;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-rail-proj-name[data-idle]{color:var(--dim);font-weight:480}.s-rail-proj[data-selected] .s-rail-proj-name,.s-rail-proj:hover .s-rail-proj-name{color:var(--ink)}.s-rail-proj-sub{display:flex;align-items:center;gap:7px}.s-rail-proj-dots{display:inline-flex;align-items:center;gap:3px;flex:none}.s-rail-proj-dots span{width:5px;height:5px;border-radius:999px;opacity:.9}.s-rail-proj-meta{flex:1;min-width:0;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-rail-proj-ago{flex:none;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--dim)}.s-rail-proj-live{flex:none;display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm);font-weight:600;font-family:var(--font-mono);color:var(--accent)}.s-rail-proj-livepip{width:5px;height:5px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.s-rail-proj-needs{flex:none;font-size:var(--text-3xs);font-weight:650;letter-spacing:var(--tracking-sm);text-transform:uppercase;color:var(--bg);background:var(--accent);padding:2px 7px;border-radius:999px}.s-newchat-origin{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs) var(--space-sm);margin:0 0 var(--space-xs)}.s-newchat-origin-label{color:var(--muted)}.s-newchat-origin-facts{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);margin:0;min-width:0}.s-newchat-origin-fact{display:flex;align-items:baseline;gap:var(--space-3xs);min-width:0}.s-newchat-origin-fact dt{color:var(--muted);font-size:var(--text-xs)}.s-newchat-origin-fact dd{margin:0;max-width:42ch;overflow:hidden;color:var(--ink);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.s-newchat-origin-attach{padding:2px var(--space-xs);border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--muted);font-size:var(--text-xs);cursor:pointer}.s-newchat-origin-attach:hover,.s-newchat-origin-attach:focus-visible{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--ink)}.s-newchat-origin-attach[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--ink)}
|